dlapplications / dlapplications.github.io

dl_ap wiki
https://dlapplications.github.io
MIT License
1 stars 3 forks source link

[Plan] Series Deep Learning cơ bản. #16

Open hitogen opened 6 years ago

hitogen commented 6 years ago

E dự định các bài viết tiếp theo sẽ là:

  1. Deadline July 15: Train perceptron và MLP (giới thiệu về gradient descent, backprob), kèm theo code minh họa.
  2. Deadline July 22/29: Giới thiệu về RNN, LSTM, lab cho RNN.
  3. Sau đó có thể là viết thêm về CNN.
ducanh841988 commented 6 years ago

Nhớ update tình hình theo tiến độ nhé @hitogen

ducanh841988 commented 6 years ago

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/

hitogen commented 6 years ago

@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 ạ?

ThorPham commented 6 years ago

@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

HaiDang2001VN commented 6 years ago

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 ạ.

phamcong commented 6 years ago

@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.

hitogen commented 6 years ago

@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 :)).

phamcong commented 6 years ago

@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.

dl-applications commented 6 years ago

@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

nxthuan512 commented 6 years ago

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/

hitogen commented 6 years ago

@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.

phamcong commented 6 years ago

@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á 👯‍♂️.

dl-applications commented 6 years ago

@phamcong đã sửa link nhé. A (Đức Anh) tạm thời đang login bằng dl_apps.

ThorPham commented 6 years ago

@nxthuan512 Cái này em xem rồi. Cũng hay mà bữa chạy thử code ko dc

hitogen commented 6 years ago

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/