Bài viết được dịch từ trang web Benfreu

Học Machine Learning cơ bản
Lộ trình học Machine Learning cho người mới bắt đầu như thế nào?

Đây là một hướng dẫn ngắn dành cho những người muốn bắt đầu học Machine Learning và đang cảm thấy chưa có phương hướng. Bài viết giới thiệu về các khóa học và những cuốn sách có nhiều giá trị, những công cụ nên cài đặt và làm thế nào có dữ liệu thực để thực hành những gì bạn đã học được.

Bạn có quan tâm đến Machine Learning? Tôi biết nhiều người thích Machine Learning (ML) nhưng không muốn bắt đầu tự tìm hiểu về nó, bởi vì khi bước vào nghiên cứu một chủ đề rộng như vậy thì họ thường cảm thấy choáng ngợp và khó khăn.

Trong bài viết này, tôi sẽ cung cấp cho bạn một số cách để tiếp cận với Machine Learning rất hiệu quả theo kinh nghiệm của bản thân mình.

Miễn là bạn có một chút nền tảng về lập trình và toán học thì sẽ thực sự dễ dàng để tìm hiểu những điều cơ bản. Thậm chí bạn có thể có một số ứng dụng trong cuộc sống thực nhờ sự kết hợp của các khóa học trực tuyến tuyệt vời, thư viện mã nguồn mở, tài liệu và dữ liệu có sẵn miễn phí.

Bạn lo lắng về phần cứng của bạn ư? Trong thực tế, bạn sẽ không cần các data center hoành tráng để làm việc trên những thách thức thú vị mà chỉ cần chiếc laptop của bạn là cũng là đủ xài rồi.

Chỉ có một lưu ý rất nhỏ: tùy thuộc vào hệ điều hành của bạn, việc cài đặt các công cụ và thư viện có thể cần một số thủ thuật. Nhưng đã có StackOverflow nên bạn chỉ cần tìm kiếm hướng dẫn trên Google một chút là ra ngay.

Những kỹ năng hữu ích

Tất nhiên sẽ là thuận lợi hơn nếu bạn có trước một số kiến thức. Machine Learning là sự giao thoa của khoa học máy tính và thống kê. Vì vậy, kiến thức trong cả hai lĩnh vực này sẽ rất hữu ích. Nếu bạn chưa biết gì về lĩnh vực thống kê thì hãy thử đọc cuốn sách Head-First Statistics. Nó là một cuốn sách khá dễ hiểu (mặc dù chỉ giới thiệu kiến thức ở mức tổng quan) về lĩnh vực thống kê.

Đối với Machine Learning thì việc biết một chút về ngôn ngữ lập trình Python cũng sẽ rất hữu ích. Bạn sẽ có khả năng truy cập vào rất nhiều thư viện tính toán, và dữ liệu rất tuyệt vời. May mắn là việc học Python khá dễ dàng. Bạn có thể tham khảo khóa học này.

Khóa học nhập môn Machine Learning cho lập trình viên. Học qua dự án nhỏ demo, ngôn ngữ lập trình Python, framework Scikit-Learn và TensorFlow

Bắt đầu

Khóa học Machine Learning của Andrew Ng trên Coursera có lẽ là khởi đầu tốt nhất. Bạn sẽ học các khái niệm cơ bản và các thuật toán mạnh mẽ. Khóa học này sử dụng GNU Octave ("Open Source Matlab") cho các bài tập lập trình. Vào cuối khóa học, bạn sẽ phải thực hiện các thuật toán của mình bao gồm một mạng nơron và có một sự hiểu biết thấu đáo về các khái niệm như bias/variance. Bạn chắc chắn sẽ thấy được những thách thức và giải pháp quy mô lớn trong Machine Learning. Lời khuyên của tôi đó là bạn hãy thực sự làm các bài kiểm tra và bài tập để nhận được nhiều lợi ích nhất từ khóa học.

Khi bạn đã có một số kiến thức cơ bản về toán học nhưng chưa biết nên học thêm những gì, thì hãy tham khảo giáo trình đại số tuyến tính trên Khan Academy và các kiến thức về toán học nói chung.

Một khi bạn biết những kiến thức cơ bản thì đó là lúc để ...

Bắt tay vào thực hành

Lộ trình học Machine Learning

Đến lúc này bạn đã tự mình thực hiện rất nhiều các thuật toán và do đó bạn đã biết rất nhiều về Machine Learning. (Xin chúc mừng bạn!) Bây giờ bạn sẽ cần có một số dữ liệu thực tế để thực hành, và kaggle.com là một nơi tuyệt vời dành cho bạn. Hoặc là bạn tham gia một cuộc thi thực sự nhưng ở mức đơn giản. Vì ở thời điểm này bạn cần có những cảm nhận về ứng dụng thực tế. 

Chỉ cần duyệt qua phần mô tả về cuộc thi và chọn những phần bạn quan tâm. Để có nhiều niềm vui ở đây bạn có thể sử dụng IPython/Jupyter notebooks với pandas để khám phá dữ liệu. 

Tiếp đến bạn cũng nên học những kiến thức cơ bản về numpy. Bạn cũng nên tham khảo thông tin trên trang web Kaggle nữa. Họ có một forum với những trợ giúp rất hữu ích từ cộng đồng, IPython notebooks và scripts chỉ cho bạn cách làm thể nào để load và transform dữ liệu và cuối cùng là đưa vào các thư viện Machine Learning.

Phổ biến nhất trong số đó là scikit-learn. Vì vậy, bạn hãy cố gắng load dữ liệu, tránh những tính năng bạn nghĩ là không quan trọng hoặc quá phức tạp để chuyển đổi và cung cấp dữ liệu đó vào một thuật toán scikit-learn phù hợp. (Bạn biết được vấn đề nào cần thuật toán nào.)

Nếu bạn đã từng gặp khó khăn, hãy xem cách người khác giải quyết các vấn đề như thế nào.

Một khi bạn đã thực hiện được những bước kể trên, thì bạn đã thực sự đi được một chặng đường dài rồi đó.

Bổ sung

Điều duy nhất thú vị hơn khi làm việc với dữ liệu đó là được làm việc với nhiều dữ liệu hơn. Vì vậy, bạn có thể quan tâm đến deep learning. Google đã phát hành TensorFlow và có một khóa học của Udacity về deep learning với TensorFlow. Nó không được hướng dẫn nhiều như khóa Machine Learning nhưng bạn sẽ trải qua những ví dụ sử dụng IPython notebooks và có thể tìm hiểu mọi thứ. Trong quá trình học đó bạn sẽ được tiếp xúc với một số vấn đề rất thú vị.