Học machine learning ở đâu

[Hỏi Tinh tế] Nên bắt đầu học machine learning và AI như thế nào?

Học machine learning ở đâu

Hôm qua có một loạt chủ đề về AI xuất hiện, trong đó nhiều anh em đang làm trong lĩnh vực IT có hỏi rằng làm sao để bắt đầu học và nghiên cứu về AI. Một số bạn sắp lên đại học cũng hứng thú với bộ môn này nên mình lập topic để anh em nào biết có thể chia sẻ cho những anh em đi sau về cách tiếp cận với machine learning và AI nói chung nhé. AI sẽ là một xu hướng mới, và rất nhiều công ty đang tuyển dụng nhân sự trong ngành này nhưng lại cực kì khó kiếm được người nên đây sẽ là cơ hội lớn cho các anh em thích công nghệ.

Riêng mình thì bắt đầu học bằng các khóa miễn phí trên Coursera hoặc các trang dạy học online. Những kiến thức nền tảng bạn cần có là một chút xíu về lập trình, một ít về toán cao cấp (ma trận, vector), và một ít "não" để suy nghĩ. Anh em nào hứng thú thì có thể bắt đầu với khóa học nổi tiếng của Andrew Ng, giáo sư Đại học Stanford ở đây. Trong khóa học này giáo sư có dạy cả về toán cao cấp nên nếu bạn chưa biết kiến thức đó thì cũng không sao, xem clip sẽ hiểu ngay. Sau khi học về cơ bản (mình chưa học hết 😁), mình bắt đầu tự đi kiếm các bài tập thực tế trên Google có rất nhiều, chủ yếu là các bài toán về phân loại và dự đoán.

Tiết lộ chút: machine learning sắp được áp dụng cho Tinh tế để gợi ý bài đọc cho anh em đó :D phần thuật toán và dữ liệu đã xong, đang chờ hiển thị lên thôi hihi.

Học machine learning ở đâu

Học machine learning ở đâu

Học Machine learning (ML)!!! nghe có vẻ là nhiệm vụ bất khả thi, đặc biệt là khi bạn học sai cách.

Tuy nhiên, sau khi dành trọn 1 tuần để học những thức căn bản của ML, mình nhận thấy nó dễ tiếp cận hơn nhiều so với những gì mình tưởng tượng.

Trong bài viết này mình sẽ giới thiệu các bạn một lộ trình bắt đầu học ML như thế nào từ những kinh nghiệm thực tế trong tuần đầu mình học.

Học machine learning ở đâu

Trước khi mình học ML, mình đã đọc trước về nó một chút, và có tham gia một nửa khoá học của Andrew Ng trên Coursera và một vài khoá học lý thuyết khác. Nhờ vậy mà mình có được một ít kiến thức về ML, nhưng mình vẫn không thể dùng mớ kiến thức đó để viết code, cũng như ứng dụng thực tiễn. Và mình muốn thay đổi việc này.

Mình muốn có khả năng giải quyết vấn đề với ML vào cuối tuần học đó, mặc cho việc bỏ qua rất nhiều nguyên tắc cơ bản, và phải tiếp cận theo hướng từ trên xuống dưới, thay vì từ dưới đi lên.

Sau khi tham khảo trên Hacker News, mình đi đến kết luận rằng module Scikit Learn của Python là điểm xuất phát tuyệt vời nhất. Module này cung cấp cho bạn rất nhiều thuật toán machine learning để lựa chọn, đưa việc học máy thực tế xuống chỉ còn một vài dòng code.

Mình bắt đầu tuần học bằng cách tìm kiếm video tutorial về Scikit Learn. Cuối cùng mình cũng tìm được tutotial của Sentdex về cách sử dụng ML để đầu tư cổ phiếu, tutorial này cung cấp cho mình một số kiến thức cấn thiết để chuyển sang bước tiếp theo.

Học machine learning ở đâu

Ưu điểm của tutorial của Sentdex là người hướng dẫn giới thiệu bạn toàn bộ các bước thu thập data. Khi bạn xem hết, bạn sẽ nhận ra việc tìm nạp và dọn dẹp data có thể tốn nhiều thời gian hơn cả việc học máy thực sự. Vậy nên kỹ năng viết script để scrape data từ các file hoặc crawl trên web là những kỹ năng cần thiết cho những người đam mê ML.

Mình cũng phải xem lại một số video mỗi khi gặp vấn đề, và mình nghĩ các bạn cũng nên như thế.

Tuy nhiên, nếu bạn đã biết cách scrape data từ website, tutorial này có lẽ sẽ không phù hợp với bạn vì có nhiều video cũng nói về tìm nạp dữ liệu rồi. Trong trường hợp đó, Intro to Machine Learning của Udacity sẽ là nơi xuất phát tốt nhất dành cho bạn.

  Hướng triển khai cho các project Machine Learning

  Máy học - Machine Learning và một vài hạn chế.

Vào ngày thứ 3, mình muốn thử xem là mình đã có thể sử dụng những kiến thức vừa học để giải quyết một vấn đề thực tế chưa. Có 1 lập trình viên khác trong team code của mình đang tham gia cuộc thi data visualization của Ngân hàng Anh, mình cùng anh ta kiểm tra bộ dữ liệu mà ngân hàng công bố. Data thú vị nhất chính là các khảo sát hộ gia đình của họ. Đây là một khảo sát hàng năm mà ngân hàng thực hiện trên một vài nghìn hộ gia đình có liên quan đến tiền.

Vấn đề mà chúng mình phải giải quyết là: “Với thông tin về trình độ học vấn, tuổi tác và thu nhập của một người, máy tính có thể dự đoán được giới tính của người đó không?”

Mình lượn một vòng quanh bộ dữ liệu, dành một vài giờ clean data, và sử dụng Scikit Learn map để tìm thuật toán phù hợp cho vấn đề trên.

Học machine learning ở đâu

Cuối cùng bọn mình có được tỉ lệ thành công là 63%, cũng không ấn tượng là mấy. Nhưng ít nhất thì máy tính cũng đã có thể dự đoán tốt hơn một chút so với tỉ lệ 50% của việc tung đồng xu.

Xem kết quả giống như tự tạo động lực cho bản thân, nên mình khuyên các bạn hãy tự làm giống mình khi đã biết sơ cách sử dụng Scikit Learn nhé.

Và đó cũng là khoảnh khắc bạn nhận ra bạn có thể sử dụng ML để giải quyết các vấn đề thực tế trong cuộc sống.

Sau khi mần đủ các module Scikit Learn, mình quyết định thử viết một thuật toán hồi quy tuyến tính mặc dù chưa biết gì. Mình muốn làm điều này bởi vì mình cảm thấy là mình không thể thực sự hiểu được nếu không thực hành.

May mắn là vào thời điểm này mình tìm đươc khoá học Coursera có dạy chi tiết về cách một vài thuật toán làm việc. Cụ thể hơn, nó mô tả khái niệm cơ bản về việc sử dụng linear regression với gradient descent

Học machine learning ở đâu

Đây hoàn toàn là kỹ thuật hiệu quả nhất, vì nó giúp bạn hiểu được các bước từ đầu đến cuối. Mình cực kì khuyến khích các bạn nên làm thử.

Mình dự định viết lại cách triển khai của mình đối với các thuật toán phức tạp hơn khi mình thực hành, nhưng mình thích làm việc này sau khi mình đã “ngâm” hết các thuật toán tương ứng trong Scikit Learn hơn.

Vào ngày thứ 5, mình bắt đầu làm bài hướng dẫn giới thiệu của Kaggle. Kaggle là một platform dành cho các cuộc thi ML, nơi bạn có thể gửi các giải pháp cho các vấn đề mà công ty hay tổ chức nào đó đưa lên.

Mình khuyên bạn nên thử Kaggle sau khi có một ít thuật toán và kiến thức thực tế về Machine Learning để bắt đầu với nó. Nếu không thì lại chuyển từ có ích sang bực bội mà thôi.

Học machine learning ở đâu

Tutorial của Bag of Words hướng dẫn bạn từng bước tham gia bài dự thi, và cung cấp cho bạn một bản giới thiệu ngắn gọn và thú bị về Natural Language Processing (NLP). Mình thấy hứng thú với NLP hơn nhiều khi coi xong tutorial này.

Mình tiếp tục làm việc với những tutorial của Kaggle vào ngày thứ 6, và cũng bắt đầu dùng Intro to Machine Learning của Udacity. Mình đã đi được nửa chặng đường và mọi thứ khá thú vị.

Học machine learning ở đâu

Nó dễ hơn khoá học Coursera nhiều, vì nó không đào sâu vào các thuật toán. Nó cũng thực tế hơn, vì nó dạy Scikit Learn giúp việc áp dụng vào thực tế dễ hơn nhiều so với viết thuật toán trong Octave khi bạn học Coursera.

Xem thêm những nguồn nghiên cứu Machine Learning tốt nhất cho người mới bắt đầu.

1 tuần vừa rồi rất vui với mình, mình nhận thấy được sự hữu ích của ML trong xã hội. Càng tìm hiểu, mình càng thấy nó có thể sử dụng để giải quyết mọi vấn đề.

Nếu bạn hứng thú với machine learning, mình mạnh dạng khuyên bạn nên dành một vài ngày hoặc vài buổi tối để đắm chìm với nó.

Chọn cách tiếp cận từ trên xuống nếu bạn không sẵn sàng học nhiều thứ nặng nề và muốn giải quyết các vấn đề nhanh nhất có thể.

Chúc bạn may mắn!

Xem thêm việc làm Machine Learning hot nhất trên TopDev

  Tản mạn về Machine Learning

  Áp dụng Machine learning, xây dựng ứng dụng chatbot của riêng bạn