Open hitogen opened 6 years ago
Nhớ update tình hình theo tiến độ nhé @hitogen
Hien da co 1 ban viet ve CNN. Minh dang len cho moi nguoi review nhe @hitogen @ThorPham @gachiemchiep @nxthuan512 @HaiDang2001VN https://dlapplications.github.io/2018-07-17-cnn-introduction/
@ducanh841988 bài viết có vẻ được viết rất cẩn thận, hơi dài nên e chưa đọc hết đc nhưng trước tiên là nên sửa lại format markdown với mấy chỗ hình ảnh ko hiển thị chứ nhìn vào làm giảm giá trị bài viết đi bao nhiêu. Cái này là a @ducanh841988 chưa kiểm tra lại phải ko ạ?
@ducanh841988 Em thấy bài viết rất chi tiết, tuy dài nhưng đầy đủ, Hình vẽ rất đẹp. Nội dung rất dễ hiểu
Dạ bài viết này được đầu tư rất công phụ ạ. Nhưng mà thêm vào đó, có thể cung cấp thêm thông tin vì sao lại dùng kỹ thuật Kernel và tại sao phép tích chập lại có thể cho ra kết quả như vậy có được không ạ (như là tại sao tích chập như vậy sẽ trích xuất được feature ạ)? Với lại em nhớ là CNN có ứng dụng trong cả NLP nữa thì phải ạ.
@HaiDang2001VN Comment rất hay. Ở phần cuối mình có giải thích tại sao phép tích chập lại được sử dụng với dữ liệu ảnh. Nhưng có vẻ nó thiên về giải thích tại sao nó hoạt động tốt thay vì giải tích tại sao nó lại hoạt động. Liên quan đến tại sao tích chập lại trích suất được feature của ảnh, thì đúng là mình chưa thực sự hiểu rõ @ducanh841988 @ThorPham và @hitogen có ý kiến gì không? Rõ ràng nếu dùng phép tích chập với thông số của bộ lọc (3x3 gía trị chẳng hạn) được thiết lập không đúng thì cũng không detect được features của ảnh.
@phamcong về vấn đề tại sao convolution lại hoạt động thì mình nghĩ có thể giải thích là các filter lấy cảm hứng từ thị giác của con người, cụ thể là cách xử lý hình ảnh ở các vùng V1~V4 trong visual cortex. Tuy nhiên, cụ thể là các filter được phát minh ra dựa vào đó hay là đc phát minh ra trc rồi họ mới khám phá ra não người cũng xử lý tương tự như vậy thì mình cũng ko chắc lắm :)).
@hitogen, trong link có nói, ảnh tự nhiên có tính chất tĩnh (nature images is stationary) thế nên một bộ lọc có thể được sử dụng cho nhiều vùng khác nhau, dẫn tới giảm số lượng trọng số cần tối ưu so với fully connected layers. Còn tại sao filter này (với tập tham số A) phát hiện được cạnh và filter khác (tập tham số B) không phát hiện được thì mình không biết giải thích sao. Nghĩa là ngoài cách thử sai (hoặc học từ tập dữ liệu => tập tham số tối ưu) - tức là làm ngược - thì không biết có cách nào mà từ một ma trận pixels của ảnh đầu vào ta tìm được bộ tham số cho bộ lọc cạnh?
On 18 Jul 2018, at 18:33, hitogen notifications@github.com wrote:
@phamcong https://github.com/phamcong về vấn đề tại sao convolution lại hoạt động tốt thì mình nghĩ có thể giải thích là các filter lấy cảm hứng từ thị giác của con người, cụ thể là cách xử lý hình ảnh ở các vùng V1~V4 trong visual cortex. Tuy nhiên, cụ thể là các filter được phát minh ra dựa vào đó hay là đc phát minh ra trc rồi họ mới khám phá ra não người cũng xử lý tương tự như vậy thì mình cũng ko chắc lắm :)).
— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/dlapplications/dlapplications.github.io/issues/16#issuecomment-405994826, or mute the thread https://github.com/notifications/unsubscribe-auth/AJHTNrL1Z482KNoeiFcozGBprNP2DYiwks5uH2NvgaJpZM4VAS6r.
@hitogen @phamcong CNN nguồn gốc là từ Neocognitron của ông fukushima. Lấy ý tưởng xử lý ảnh của visual cortex như Tuấn nói. Mỗi filter phát hiện một loại feature. Ví dụ như ở các layer đâu tiên thì các feature đơn giản (low level) như cạnh dọc, ngang, chéo, ... Các feature này thường nhìn vào không đoán được object. Các layer sau sẽ phát hiện các feature phức tạp hơn (high level) như mặt con mèo, con chó. Cái này người nhìn vào có thể đoán sơ sơ được. Ý nghĩa của filter là các input nào có tính chất tương tự thì khi qua filter nó giữ lại (active), cái nào không giống thì bị mất đi (inactive). Em có thể xem hình này sẽ dễ hiểu hơn. https://image.slidesharecdn.com/cnn-180115212855/95/convolutional-neural-network-cnn-image-recognition-39-638.jpg?cb=1516052307
Hi, video của Jason Yosinski minh họa conv. rất hay, mọi người xem thử. Có thể tải thử tool họ cung cấp để chạy thử https://www.youtube.com/watch?v=AgkfIQ4IGaM
Conv. nguồn gốc là từ xác suất, theo bài này viết https://colah.github.io/posts/2014-07-Understanding-Convolutions/
@phamcong đoạn comment "Còn tại sao filter này (với tập tham số A) phát hiện được cạnh và filter khác (tập tham số B) không phát hiện được thì mình không biết giải thích sao." mình ko hiểu lắm, bạn có thể giải thích thêm đc k? mình tưởng filter cho cạnh thì ở đâu có cạnh thì sẽ phát hiện đc thôi chứ nhỉ. Về việc có cách nào mà từ một ma trận pixels của ảnh đầu vào ta tìm được bộ tham số cho bộ lọc cạnh? thì mình nghĩ là cách người ta vẫn cố tạo hand-crafted feature trong Computer Vision trc khi DL phổ biến mà. Nhưng rõ ràng là ko tối ưu đc như là cách làm ngược của DL.
@hitogen ý mình là matrix 3x3 ví dụ [[1,2,3,],[4,5,6],[7,8,9]] không phát hiện được cạnh còn matrix 3x3 như F1, F2, F3, F4 trong bài thì làm được. Đúng là hơi tối nghĩa chút. Trong comment của @dl-applications có một ý rất hay, đó là input có tính chất tương tự qua filter thì được giữ lại (active), còn không thì bị mất đi (inactive). Có phải phép nhân chập (convolve - element wise) giữa input và filter cho phép thực hiện điều này? @dl-applications có thể edit lại link hình không, link hiện tại đang bị lỗi. Hai link @nxthuan512 gửi chất quá 👯♂️.
@phamcong đã sửa link nhé. A (Đức Anh) tạm thời đang login bằng dl_apps.
@nxthuan512 Cái này em xem rồi. Cũng hay mà bữa chạy thử code ko dc
hình như ý tưởng về filter cạnh, góc đầu tiên là từ visual cortex của mèo chứ ko phải của người. [1] https://www.ncbi.nlm.nih.gov/pmc/articles/PMC1363130/ [2] https://www.ncbi.nlm.nih.gov/pmc/articles/PMC1359523/
E dự định các bài viết tiếp theo sẽ là: