Bài viết này mình nhắm tới cho những người còn mông lung về việc học Machine Learning (nhất là các bạn tự học hoàn toàn), giúp các bạn biết nên học gì vào giai đoạn nào. Mình cũng trải qua khoảng thời gian đó, nên mình nghĩ những chia sẻ của mình sẽ giúp ích ít nhiều. Nó có thể đúng, có thể sai, vì dù sao mình mới là Intern, đi những bước đầu của nghề. Nhưng mình hy vọng, những gì mình viết có thể giúp con đường bắt đầu của các bạn trở nên rõ ràng và đỡ "ngoằn ngoèo" hơn so với bản thân mình.
1. Tản mạn về Ikigai
Các bạn có thể tìm hiểu thêm về Ikigai ở link này. Nó giống 1 triết lý sống hơn, nhưng với mình nó cũng khá đúng trong công việc nữa. Mình cũng hay nghĩ đến nó mỗi khi ngẫm lại về lựa chọn của mình với ngành này. Giờ cùng phân tích nó chút nhé:
-
Việc bạn yêu thích
Bạn có thích Machine Learning, hay khái quát hơn là AI không? Nghe khá fancy, nhưng để nói "thích" hay không là một chuyện, "thích trong thời gian dài" để có thể học, theo nghề lại là chuyện khác. Với mình thì... Mình không biết. Ít nhất đến giờ mình vẫn còn thích, còn sau này thì không biết nữa.
Thực ra chưa làm thì khó biết là có thích hay không lắm. Nhưng hãy bắt đầu hành trình với 1 đam mê, 1 ước mơ nho nhỏ, đừng nghe ngành này (hay bất kỳ ngành IT nào) lương nghìn đô như ông anh 96 nào đó. Không thì bạn nên tìm hiểu ngành nào khác hợp với bản thân hơn (mình cũng đỡ 1 đối thủ)
-
Bạn giỏi ở lĩnh vực này
Hồi năm nhất, mình đọc bài Linear Regression mà chẳng hiểu gì, shock lắm luôn. Thế mà vẫn kiên trì được đến giờ.
Các bạn có thể lên đọc mà mình vừa đề cập ở trên, hiểu thử phần toán, code thử xem sao. Nếu ổn, làm xong thấy vui, thì bạn có thể thử dấn thân theo Machine Learning xem sao. Còn nếu thấy khó quá, hãy cứ cố gắng, nhưng nên biết điểm dừng nhé. Ai cũng giỏi, chỉ là trong lĩnh vực nào thôi, không có duyên với Machine Learning cũng đâu có sao, nhỉ?
-
Bạn kiếm được tiền từ việc này
Thú thực là mình luôn né chuyện này, vì mình nghĩ nó sẽ liên quan đến phần "Bạn giỏi ở lĩnh vực này" (chính là chuyên môn của bạn đó) + thái độ trong công việc, ứng xử. Và có lẽ mỗi khi bắt đầu điều gì đó, sự ưu tiên dành cho tiền bạc thường không giữ được đam mê và sự nhiệt huyết lâu dài.
-
Xã hội cần
Hiển nhiên quá. Thôi lười chả viết nữa, báo chí viết hộ hết rùi.
Túm cái váy lại, ikigai là phải hội tụ đủ 4 yếu tố. Hãy ngẫm lại thật kỹ (thực ra chỉ cần nghĩ 2 cái đầu thôi) rồi quyết định nhé. Nếu vẫn muốn bắt đầu với Machine Learning, thì bạn có thể đọc tiếp phần sau (hoặc đọc cho vui cũng được)
2. Học gì bây giờ ?
-
Học lý thuyết
Như chia sẻ ở trên, sau khi đọc bài Linear Regression, mình khá shock. Chia sẻ thật lòng, nếu bạn giỏi toán, học full Đại số tuyến tính, Giải tích 1, 2 này nọ rồi thì nên đọc blog đó của anh Tiệp - một nơi với lượng kiến thức khá đầy đủ, tiếng Việt 100%, đương nhiên độ chính xác khỏi phải bàn. Còn mình thì hơi kém, nên lúc đó hoang mang thật.
May sao, bằng 1 cách nào đấy (thực ra trong phần "RECOMMENDED COURSES" của Machine Learning cơ bản) mà mình biết đến thầy Andrew Ng và khóa Machine Learning thần thánh. Cảm giác cách giảng của thầy học sinh cấp 3 cũng hiểu được. Mình nghĩ khóa học này của thầy Andrew Ng là cách tốt nhất để bắt đầu hành trình Machine Learning
Mình để phần này ở mục "học lý thuyết" vì đó là thứ gần như là duy nhất trong khóa học thần thánh kia. Thầy code bằng Octave, và giờ mình không chắc có doanh nghiệp nào dùng nó không nữa. Không trách thầy được, vì khóa này từ năm 2012 mà.
Vậy giờ học code thế nào?
-
Lập trình những thứ đã học
2 Framework nổi tiếng nhất và được sử dụng rộng rãi nhất là Tensorflow và Pytorch. Mình thì học Tensorflow, và giờ đang học cả Pytorch trong khi thực tập. Mình sẽ không đi sâu vào chúng cả 2 ở các bài viết kế tiếp, vì có cả triệu bài viết, video, tài liệu về chúng trên Internet, từ những người giỏi hơn mình rất nhiều.
Nhưng mình sẽ đề cập chút đến cách học, vì mình mong các bạn sẽ học nhanh và nhẹ nhàng hơn những gì mình trải qua. Với mình, thường khi học một công nghệ mới trong ngành IT, sẽ có 4 công cụ thường được tìm đến (ít nhất theo những gì mình biết):
Đầu tiên là documentation (hoặc paper) của công nghệ đó: thực ra nó khá nặng, và đến giờ mình vẫn khá ít dùng cách này để học kiến thức mới. Có lẽ sau này mình cũng phải dùng thôi, nhưng nếu bắt đầu học Machine Learning mà đọc docs (paper) thì dễ nản lắm, vừa khó hiểu vừa lê thê.
Tiếp theo là xem video (đặc biệt Youtube) của mấy anh Ấn Độ: phải nói là tuyệt vời. Thậm chí ta có thể vừa đọc lý thuyết, vừa code theo. Mình đặc biệt recommend https://www.youtube.com/user/krishnaik06 và https://www.youtube.com/c/codebasics. Có đủ mọi thứ, chỉ cần thêm sự kiên nhẫn của bạn thôi. À có hơi ngại việc code theo, nhưng coi như đó là cơ hội đi, dù sao tự tay code cũng giúp nhớ lâu hơn. Nếu bạn thấy lâu quá, có thể kiếm Github của 2 anh trên, ở đó có hết code của các video. Mình biết đấy, nhưng thôi, nói làm gì, tự code đi nào
Thứ 3 là các bài viết về công nghệ trên các trang tin, blog, tạp chí...: này thì copy code thoải mái, đọc cũng nhanh hơn (nhưng dù sao thì xem video, có người giảng có lẽ vẫn dễ hiểu hơn với nhiều người). Nếu bạn muốn học bằng cách này, có thể lên cách trang như Medium hay Towards Data Science (nếu bị chặn thì bật vpn hoặc lên proxysite.com nha). Nhược điểm khá nghiêm trọng là kiến thức rời rạc, ít có hệ thống, và độ khó xen lẫn. Nó không theo 1 trình tự, series như documentation hoặc các series từ dễ đến khó trên Youtube.
Cuối cùng là các trang web, khóa học online về Machine Learning: Đây có thể coi là "best solution", vì kiến thức được sắp xếp hệ thống, có cả code và lý thuyết, thậm chí có cả các cộng đồng theo sau ủng hộ (có thể hỏi đáp thắc mắc, tư vấn đủ thứ,...). Về các trang web chia sẻ kiến thức ML, mình nghĩ Mì AI và Machine Learning cơ bản sẽ phù hợp nhất với người bắt đầu. Vẫn cần solution phù hợp hơn ư, vậy hãy đến với các khóa học online ở Coursera, Udemy, hoặc các khóa học của Google (ví dụ trên link này chẳng hạn, học ổn phết mà lại free, mỗi tội hơi ít lý thuyết)
3. Nhà tuyển dụng cần gì ?
Ta thử xem, Sun-Asterisk (chủ của cái web Viblo này) cần gì ở những người mới ra trường muốn làm Machine Learning (không tính điểm cộng): https://sun-asterisk.vn/recruitment/fresher-machine-learning-full-time/
Wow! Thật luôn! Để mình giải thích nhé, có vài tiêu chí "có vẻ không liên quan lắm" đến Machine Learning. Thực ra, cái gì cũng có lý do của nó.
Giờ tưởng tượng, bạn vừa tạo ra 1 mô hình ML tuyệt vời. Độ chính xác ngon nghẻ, kiến trúc phức tạp, nhìn qua là thấy đỉnh rồi. And now what? Bạn không thể đưa file python cho khách hàng và bảo họ dùng. Bạn phải đưa sản phẩm của bạn lên web, app hay bất kỳ 1 thứ gì đó mà khách hàng có thể dùng được.
Nghĩa là ngoài ML, bạn phải có thêm kiến thức về nhiều thứ khác, những thứ giúp code của bạn trở thành 1 "sản phẩm" đúng nghĩa. Trong các bài viết tiếp theo, mình sẽ đề cập nhiều đến những thứ này - những kiến thức Non-ML mà bạn có lẽ sẽ cần trên hành trình của bản thân.