Avatar
0
tvd12 Enlightened
tvd12 Enlightened
[Machine Learning]Training bằng ảnh
video này anh thấy em đang training bằng ảnh, bên trong nó dùng thuật toán gì để so sánh ảnh em nhỉ? Liệu rằng có phải https://en.wikipedia.org/wiki/Cosine_similarity
  • Answer
machine learning
Remain: 5
2 Answers
Avatar
Vu Luong Anh Enlightened
Vu Luong Anh Enlightened
Video này mới load ảnh vào thôi chưa dùng thuật toán gì cả anh ạ.

Em chưa hiểu câu hỏi của anh lắm, vì sao cần so sánh ảnh anh nhỉ?

  • 0
  • Reply
Ví dụ là nhận dạng khuôn mặt chẳng hạn, thì anh hiểu rằng trên khuôn mặt mỗi người đều có một số điểm sinh trắc nhất định và liên kết với nhau thành 1 ma trận, và khi training là training dựa trên cái ma trận đúng không em? nếu anh hiểu đúng thì anh đang hiểu là việc nhận dạng chó mèo nó cũng như vậy đúng không em?  –  tvd12 1634542872000
Hình như e hiểu ý anh Dũng nên xin trả lời tí. Theo như em hiểu, deep learning thì sẽ cố gắng tạo ra 1 mạng, mà mạng này có khả năng biểu diễn input thành vector/ma trận gì đó. Lúc init các thống số của mạng thì có thể init xấp xỉ 0, hoặc có 1 vài kỹ thuật iinit khác.

Với bài toán phân loại, vd nhận diện khuôn mặt hay chó mèo, thì giai đoạn training là mình đang muốn mạng của chúng ta có khả năng tạo ra các vector "khác" nhau nhất có thể (Vd phân biệt mặt người thì sẽ muốn vector người A khác vector người B, người C nhất có thể | phân biệt chó mèo gà thì sẽ muốn vector 1 chú chó khác mèo hay gà nhất có thể).

Thường thì người ta sẽ quy bài toán trên về bài toán tối ưu của 1 hàm loss function, loss function này đại diện cho mục tiêu đạt được, vì vậy loss function thường là tổng thể của tất cả mục tiêu nhỏ mà ta muốn đạt được. Training là quá trình đi tìm cực tiểu của loss function này.

Như phân loại chó/mèo/gà thì phải bao gồm cả chó != mèo, chó != gà, gà != mèo

Để quá trình training diễn ra nhanh hơn thì e để ý người ta thường cố xây dựng cho hàm loss này càng "dốc" càng tốt (vì training bản chất là đi ngược chiều đạo hàm nên càng dốc thì đi càng nhanh), tức là những kq sai sẽ bị "trừng phạt" nặng (làm giá trị của loss function tăng nhiều)

Còn về việc xây dựng hàm loss function thì em nghĩ cosine similarity cũng là 1 cách, nhưng em thấy người ta thường chuộng cross entrophy loss hơn, vì hàm này sẽ "trừng phạt" rắt nặng nếu mà 2 gía trị thật & predict khác nhau. Hình như trong pytorch thì đây cũng là default loss function. Em có hỏi 1 người bạn đang học ML ở Hàn, thì tùy vào bài toán mà sẽ xây dựng hàm loss khác nhau, vd bạn e thì thường dùng cross entrophy loss trong hầu hết mọi training, do đặc thù của ngành bạn e nên trong 1 số trường hợp thì nó dùng thêm kull-back divergence loss

Em có thấy 1 bài báo nói sơ về 1 số loss function trong keras, còn nếu đi sâu về mặt toán thì chắc phải tìm trong các sách hàn lâm hơn

https://towardsdatascience.com/a-guide-to-neural-network-loss-functions-with-applications-in-keras-3a3baa9f71c5
 –  hieuthai642 1634679717000
Câu trả lời rất chi tiết em ạ. Chắc anh sẽ phải tách thành nhiều câu hỏi nữa thì mới hiểu hết được, cám ơn em nhé.  –  monkey 1634680910000
Cảm ơn anh ạ  –  hieuthai642 1634681654000
Avatar
Vu Luong Anh Enlightened
Vu Luong Anh Enlightened
Đấy là kiểu xử lý ảnh truyền thống anh ạ. Còn học máy nó đi tìm map f(x) = y, trong đó x là ảnh đầu vào, y là 0 (chó) hoặc 1 (mèo). Nhiều khi kết quả nó không giải thích được dưới dạng sinh học.
  • 1
  • Reply