Xin lời khuyên của mọi người về hướng học machine learning, deep learning


#1

Chào mọi người, Em là sinh viên mới tốt nghiệp ngành công nghệ phần mềm của 1 trường đại học ở Hà Nội, đã làm về mobile được gần 1 năm rồi ậ. Hiện tại em đang có dự định tìm hiểu về machine learning, deep learning nhưng chưa biết bắt đầu từ đâu. Em có tìm hiểu thì thấy mọi người thường khuyên là học khóa của thầy andrew NG nhưng khi xem khóa của thầy Nguyễn Tuấn Anh : https://www.youtube.com/channel/UCd0EHQ8h7b1R7rz384EWnsQ

thì lại thấy thầy ấy dạy một chút python, vừa học vừa thực hành với keras, (cách học này có lẽ sẽ không gây nhàm chán). Vậy nên em muốn hỏi với trình độ hiện tại của em có nên học về ML và DL không ạ và nếu được thì nên bắt đầu như thế nào ạ. Nếu được mong anh chị chia sẻ thêm cách học của mình ạ. Em cảm ơn mọi người nhiều ạ


#2

Hi bạn, thấy chưa ai trả lời nên mình xin chia sẻ một tí.

  1. Trước hết bạn cần phân biệt Machine Learning và Deep Learning. Machine Learning là tập hợp nhiều thuật toán bao gồm: Linear Regression, Softmax Regression, SVM… Còn Deep Learning là một subset của ML khi nó imitate lại mạng neuron thần kinh của người, nổi tiếng nhất của DL có thể kể đến là CNN, Recurrent Neural Network. Tất nhiên có thể dùng DL để giải các bài toán regression, classification của ML nhưng nếu mình hiểu rõ 1 tí về bản chất của ML sẽ tốt hơn trong phân tích. Bạn có thể đọc qua thử link này để có 1 cái nhìn overview nhất link
  2. Học như thế nào? Cái này khó nói và tùy thuộc vào gu của từng người. Có người thích đi về pure math, có ng lại thích đi về ứng dụng. Mình thì nghiên về cách thứ 2 hơn 1 tẹo :D. Tùy gu bạn thôi.
  3. Lộ trình của mình như sau:
  • Python cơ bản. Cách dùng array, matrix, numpy trong python
  • Các bài toán trong ML: thế nào là Linear Regression, SVM, Perceptron Learning. Đầu vào là gì? Đầu ra là gì? Lúc nào dùng classification? Lúc nào dùng regression? Các thứ này + kèm code minh họa mình học theo các ví dụ trong sách a Tiệp. Cái này thì mình học kĩ về toán và giải tích, cần cho phân tích sau này và cả pv nghề nghiệp :smiley:
  • Học dùng thư viện sklearn. Mình nghĩ chỉ cần với sklearn thì bạn có thể đã làm dc 70-80% các bài toán của ML rồi. Trừ khi data quá lớn thì có thể nghĩ đến DL. Trong sách a Tiệp cũng có chỉ tương ứng, mình suggest thêm 1 nguồn mình thấy khá đầy đủ trên Kaggle. link
  • Học model DL như CNN, RNN, LSTM. Cái này thì nhiều, mình nghĩ bạn có thể tìm đến các khóa của Stanford về Computer Vision hay NLP đều có. Framework thì có thể lựa Tensorflow, Keras (trên nèn Tensorflow) hoặc Pytorch đều dc.
  • Học xử lý data bằng Pandas và analysis bằng Matplot hay Seaborn. Cái này cũng có thể tìm thấy trên link Kaggle lúc nãy.
  • Xong r thì tìm bài toán hay challenge nào đó làm thử thôi :smiley: Quan trọng là học đi đôi với hành. Làm nhiều sẽ quen tay,

Mình cũng hk biết nhiều lắm đâu. Có mấy thứ muốn chia sẻ với bạn. Chúc may mắn, có thiếu đủ gì nhờ mọi người bổ sung sau.


#3

Trước khi học thì cần kiến thức gì về toán học ạ! Em cảm ơn anh


#4

Mình nghĩ đó là Linear Algebra, tiếng việt gọi là Đại số tuyến tính. Vì phần lớn các thuật toán bạn sẽ làm việc trên ma trận và xử lý mạ trận. Kế đó là đạo hàm cùng các đạo hàm cơ bản (như cấp 3 vậy). Tiếp là các phân bố như phân bố chuẩn, phân bố đều,… Và cuối cùng là xác suất như xác suất có điều kiện, xác suất độc lập. Một số bài toán xác suất như tung đồng xu tính % bao nhiêu mặt chẳn lẽ mình thấy mn gợi ý :smile: nhưng thật ra mình cũng chưa thấy ứng dụng ở đâu lắm. Bản thân mình học xác suất cũng chỉ học ở các loại xác suất trên thôi, dùng để hiểu biến đổi trong công thức toán.


#5

cảm ơn a rất nhiều ạ!


#6

Mình từng học các kiến thức cơ bản về Machine Learning trước, để hiểu về cách giải quyết một bài toán bằng học máy. Sau đó tìm hiểu về neural network, rồi kỹ thuật trong deeplearning, các mạng convolution neural network, recurrent neural network. Cứ bắt đầu như vậy mình nghĩ là sẽ giỏi lên. Anh Tiệp có 1 blog khá cơ bản: machinelearningcoban.com Đặc biệt, mình nghĩ bạn cứ học rồi có gì thắc mắc hãy hỏi trên diễn đàn. Chúc bạn thành công!


#7

thanks for sharing. anh trả lời bổ ích quá


#8

Nên học 1 chút về tối ưu hóa, phương pháp tính, đại số tuyến tính và xác xuất thống kê, giải tích … Trước tiên cứ đọc cơ bản để hiểu khái niệm đã


#10

Câu hỏi này đã lâu nhưng và cũng đã có câu trả lời nhưng mình nghĩ có thêm thông tin cũng có thể ai đó sẽ cần. Một trong những bài viết mà mọi người có thể tham khảo: Lộ trình học Machine Learning, hoặc Kiến thức toán học cần cho Deep Learning là những bài có nhiều thông tin về chủ đề này.