Deep learning cho người mới: Nên bắt đầu từ đâu?

  1. Công nghệ thông tin

Từ khóa: 

công nghệ thông tin

Câu hỏi được gộp với Tự học Deep Learning như thế nào?

Chào bạn, có một sự thật phũ phàng là cái ngành khoa học xuất hiện từ những năm 1959 không ai quan tâm giờ lại được bà con đổ xô đi học nhờ ơn của báo giới lúc nào cũng ra rả về Deep Learning này Deep Learning nọ... Mình thấy nhiều bạn bây giờ cứ muốn học là đâm đầu vào học Deep Learning trong khi kí hiệu này θ chưa chắc đã biết đọc tên như thế nào... mình cảm thấy quan ngại sâu sắc :v


Deep Learning chỉ là 1 mảng con của Machine Learning, và để tiếp cận được Deep Learning thì cần phải nắm được rất nhiều khái niệm cơ bản từ Machine Learning. Nếu không thì trong quá trình học các bạn sẽ rất dễ bỏ qua một vài keyword quan trọng, dẫn tới ko hiểu gì hết luôn.


Sau gần 1 năm theo đuổi việc tự học Machine Learning và thử nghiệm hết các thể loại course online, mình trích lược lại thành lộ trình học như sau, hy vọng sẽ giúp ích được cho nhiều bạn đang quan tâm và muốn bắt đầu tìm hiểu:


Học lý thuyết


Đầu tiên: Học course Machine Learning trên Coursera của Andrew Ng kết hợp đọc tài liệu course CS299 (đây là course chính của Andrew, cái course trên Coursera chỉ là trích lược từ course này)

Tiếp theo: Học tiếp course Deep Learning của Google, và nếu muốn đi sâu vào Neural Network thì đọc trước bài Neural Network And Deep Learning để nắm kiến thức cơ bản về Neural Network.

Để học được course này bạn cần có kiến thức về (trích nguyên văn trên udacity luôn nha):

- Basic machine learning knowledge (especially supervised learning)

- Basic statistics knowledge (mean, variance, standard deviation, etc.)

- Linear algebra (vectors, matrices, etc.)

- Calculus (differentiation, integration, partial derivatives, etc.)

Và 4 cái trên nó được cover trong course CS299.

Sau cùng: Học tiếp course CS231n, vì course này chỉ nói về CNN dùng cho nhận diện hình ảnh (tức là một ngách hẹp hơn nữa của Neural Network)


Học thực hành


Tất nhiên các khóa trên đều thuộc phạm trù Machine Learning Lý Thuyết (theo như phân loại trên lộ trình học Machine Learning của a @ZuzooVn), trong thời gian ôn luyện lý thuyết, bạn có thể order vài cuốn sách thiên về Machine Learning thực hành để làm quen ví dụ như cuốn:

  • Data Science from Scratch
  • Python Machine Learning
  • Make your own Neural Network


Và học thêm Sci-Kit hoặc TensorFlow qua loạt bài ví dụ này để tự implement thử vài thứ cho dễ hiểu thêm. Hoặc máu thì có thể tự implement thủ công hoàn toàn, trong trường hợp này mình khuyên nên dùng Swift hoặc Ruby vì cả 2 ngôn ngữ này đều có sẵn một vài cấu trúc dữ liệu cũng như hàm tính toán có thể vận dụng ngay, tránh tốn thời gian implement những cái vặt vãnh, để focus vào cái thuật toán toàn cục.

Hai bước thực hành và lý thuyết bạn có thể tiến hành song song, nhưng tuyệt đối ko đc bỏ phần lý thuyết nếu bạn muốn học ML một cách nghiêm túc :D

Trả lời

Chào bạn, có một sự thật phũ phàng là cái ngành khoa học xuất hiện từ những năm 1959 không ai quan tâm giờ lại được bà con đổ xô đi học nhờ ơn của báo giới lúc nào cũng ra rả về Deep Learning này Deep Learning nọ... Mình thấy nhiều bạn bây giờ cứ muốn học là đâm đầu vào học Deep Learning trong khi kí hiệu này θ chưa chắc đã biết đọc tên như thế nào... mình cảm thấy quan ngại sâu sắc :v


Deep Learning chỉ là 1 mảng con của Machine Learning, và để tiếp cận được Deep Learning thì cần phải nắm được rất nhiều khái niệm cơ bản từ Machine Learning. Nếu không thì trong quá trình học các bạn sẽ rất dễ bỏ qua một vài keyword quan trọng, dẫn tới ko hiểu gì hết luôn.


Sau gần 1 năm theo đuổi việc tự học Machine Learning và thử nghiệm hết các thể loại course online, mình trích lược lại thành lộ trình học như sau, hy vọng sẽ giúp ích được cho nhiều bạn đang quan tâm và muốn bắt đầu tìm hiểu:


Học lý thuyết


Đầu tiên: Học course Machine Learning trên Coursera của Andrew Ng kết hợp đọc tài liệu course CS299 (đây là course chính của Andrew, cái course trên Coursera chỉ là trích lược từ course này)

Tiếp theo: Học tiếp course Deep Learning của Google, và nếu muốn đi sâu vào Neural Network thì đọc trước bài Neural Network And Deep Learning để nắm kiến thức cơ bản về Neural Network.

Để học được course này bạn cần có kiến thức về (trích nguyên văn trên udacity luôn nha):

- Basic machine learning knowledge (especially supervised learning)

- Basic statistics knowledge (mean, variance, standard deviation, etc.)

- Linear algebra (vectors, matrices, etc.)

- Calculus (differentiation, integration, partial derivatives, etc.)

Và 4 cái trên nó được cover trong course CS299.

Sau cùng: Học tiếp course CS231n, vì course này chỉ nói về CNN dùng cho nhận diện hình ảnh (tức là một ngách hẹp hơn nữa của Neural Network)


Học thực hành


Tất nhiên các khóa trên đều thuộc phạm trù Machine Learning Lý Thuyết (theo như phân loại trên lộ trình học Machine Learning của a @ZuzooVn), trong thời gian ôn luyện lý thuyết, bạn có thể order vài cuốn sách thiên về Machine Learning thực hành để làm quen ví dụ như cuốn:

  • Data Science from Scratch
  • Python Machine Learning
  • Make your own Neural Network


Và học thêm Sci-Kit hoặc TensorFlow qua loạt bài ví dụ này để tự implement thử vài thứ cho dễ hiểu thêm. Hoặc máu thì có thể tự implement thủ công hoàn toàn, trong trường hợp này mình khuyên nên dùng Swift hoặc Ruby vì cả 2 ngôn ngữ này đều có sẵn một vài cấu trúc dữ liệu cũng như hàm tính toán có thể vận dụng ngay, tránh tốn thời gian implement những cái vặt vãnh, để focus vào cái thuật toán toàn cục.

Hai bước thực hành và lý thuyết bạn có thể tiến hành song song, nhưng tuyệt đối ko đc bỏ phần lý thuyết nếu bạn muốn học ML một cách nghiêm túc :D

Mình thấy nhiều bạn bây giờ cứ muốn học là đâm đầu vào học Deep Learning, như vậy rất có hại.


Deep Learning chỉ là 1 mảng con của Machine Learning, và để tiếp cận được Deep Learning thì cần phải nắm được rất nhiều khái niệm cơ bản từ Machine Learning. Nếu không thì trong quá trình học các bạn sẽ rất dễ bỏ qua một vài keyword quan trọng, dẫn tới ko hiểu gì hết luôn.


Theo mình thì có các cách học như sau cho hiệu quả:


Học lý thuyết


Đầu tiên: Học course ML trên Coursera của Andrew Ng kết hợp đọc tài liệu course CS29960 (đây là course chính của Andrew, cái course trên Coursera chỉ là trích lược từ course này)


Tiếp theo: Học tiếp course Deep Learning của Google20, và nếu muốn đi sâu vào Neural Network thì đọc trước link

http://neuralnetworksanddeeplearning.com/chap1.html20
để nắm kiến thức cơ bản về Neural Network


Để học được course này bạn cần có kiến thức về (trích nguyên văn trên udacity luôn nha):


Basic machine learning knowledge (especially supervised learning)

Basic statistics knowledge (mean, variance, standard deviation, etc.)

Linear algebra (vectors, matrices, etc.)

Calculus (differentiation, integration, partial derivatives, etc.)

Và 4 cái trên nó được cover trong course CS299.


Sau cùng: Học tiếp course CS231n12 tại

http://cs231n.stanford.edu/
, vì course này chỉ nói về CNN dùng cho nhận diện hình ảnh (tức là một ngách hẹp hơn nữa của Neural Network)



Học thực hành


Tất nhiên các khóa trên đều thuộc phạm trù Machine Learning Lý Thuyết, trong thời gian ôn luyện lý thuyết, bạn có thể order vài cuốn sách thiên về Machine Learning thực hành để làm quen ví dụ như cuốn:


Data Science from Scratch13

Python Machine Learning26

Make your own Neural Network10

Và học thêm Sci-Kit2 hoặc TensorFlow qua loạt bài ví dụ này24 để tự implement thử vài thứ cho dễ hiểu thêm.


Hai bước thực hành và lý thuyết bạn có thể tiến hành song song, nhưng tuyệt đối ko đc bỏ phần lý thuyết nếu bạn muốn học ML một cách nghiêm túc.

Anh dự là thầy giáo em theo dõi khoá này của Stanford,

http://cs231n.stanford.edu/88


Điểm khởi đầu của machine learning và deep learning là trên cơ sở toán học đại cương, số học, tuyến tính, xác xuất và thống kê.


https://www.edx.org/course/calculus-1a-differentiation-mitx-18-01-1x31

https://ocw.mit.edu/courses/mathematics/18-06sc-linear-algebra-fall-2011/index.htm18

www.coursera.org 11


Sau đó có thể tiếp cận với một số framework về deep learning: Tensorflow, Torch, Theano.


Với xử lý ảnh thì sẽ quan tâm tới Computer Vision và ImageNet.


Em có thể tham khảo thêm tại cái reading list này:

http://deeplearning.net/reading-list/61