Tự học AI/ML (1b)

Tôi (NTZ) sẽ đánh số các bài viết hướng dẫn về tự học AI/ML theo tuần

Tuần đầu tiên của tháng 04/2018 cũng là tuần đầu tiên mở CLB học, các bài viết đánh số 1, 1b, 1c, v.v. Đến tuần thứ hai sẽ đánh số 2, và cứ thế.

Một số điều các bạn tham gia tự học nên lưu ý:

Cần chuẩn bị gì cho học AI/ML ?

  • Thứ nhất là cần chuẩn bị về ngôn ngữ: Hầu hết các tài liệu là bằng tiếng Anh. Các lệnh trong các ngôn ngữ lập trình cũng đều dùng tiếng Anh. Bởi vậy nếu không biết tiếng Anh thì rất khó hiểu thiên hạ nói cái gì. Thế nên cần học tiếng Anh. Nếu trình độ tiếng Anh còn yếu, thì vẫn có thể xem các bài giảng và đọc tài liệu, vừa xem/đọc vừa tra tiếng Anh. Như thế là một công đôi việc, vừa học AI vừa học tiếng Anh, nhưng tất nhiên tốc độ học AI sẽ chậm hơn so với nếu biết tiếng Anh tốt rồi.
  • Thứ hai là những khái niệm toán học, như là xác suất, tối ưu hoá, chọn lựa ngẫu nhiên, đạo hàm từng phần, gradient, v.v. Tất nhiên, nếu chưa biết khái niệm nào, thì cần đến đâu có thể tìm hiểu đến đó.
  • Thứ ba là cần làm quen với (các) ngôn ngữ lập trình. Đối với người chưa có hành trang lập trình nhiều, thì tốt nhất là học lập trình dùng Python, là ngôn ngữ thông dụng nhất cho ML hiện nay. (Tôi sẽ tìm course python cơ bản để giới thiệu)
  • Thứ tư là cần có máy tính. Hầu hết các máy tính cá nhân hiện tại chạy được các chương trình demo tương đối nhỏ nhẹ của ML, nhưng không đủ mạnh hay đủ nhanh để chạy các mô hình ML hơi phức tạp hơn, đặc biệt là các mô hình deep learning (DL) với hàng triệu tham số. Các chương trình tạo mô hình DL mà chạy trên máy dùng CPU (bộ xử lý trung tâm) thì sẽ chạy rất chậm. Thay vào đó, nếu chạy trên GPU (bộ xử lý hình ảnh) thì có thể chạy nhanh hơn vài chục lần (là chênh lệch khủng khiếp trung thực tế: thay vì chạy mấy 10 tiếng thì chỉ còn 20 phút chẳng hạn). Bởi vậy nếu muốn học sâu vào DL thì cần máy có GPU mạnh và cài đặt chạy ML trên GPU, đặc biệt là GPU thế hệ mới của NVIDIA được thiết kế dành cho ML. Giá thành các máy này từ một đến vài nghìn USD một cái PC. Có thể một nhóm chung nhau 1 cái máy cũng được, hoặc chạy cloud có GPU cũng được (nhưng nếu dùng nhiều để học thì cloud là giải pháp có thể tốn tiền hơn là máy cá nhân). Tui sẽ bày vài bài thực hành trên python+tensorflow.
  •  Thứ năm là tạo một nhóm trao đổi và cùng nhau làm các thí nghiệm. Học ML thì cần nhúng tay vào “chọc ngoáy” mới “vui” chứ “học  gạo” thì không thấm và chóng quên. Và có nhóm trao đổi thì dễ làm hơn là một mình. Tất nhiên có thể trao đổi online. Nhưng thỉnh thoảng gặp trao đổi được trực tiếp thì hiện tại vẫn hiệu quả hơn.
  • Thứ sáu là cần thu xếp thời gian. Để tiến bộ nhanh thì cần học đều đặn liên tục hàng ngày, trung bình mỗi ngày ít ra một vài tiếng.

Cần làm gì để thực hành sắp tới?

  1. Để thực hành (bắt đầu từ ngay tuần này) các bạn hãy gài Python vào máy tính của mình. Nói chung là có thể gài python trên tất cả các hệ điều hành phổ biến, như windows, MacOS, và Linux. Gài chỉ riêng Python thôi thì dùng bất tiện, nên gài nó trong một môi trường tiện dùng. Ví dụ như là môi trường Anaconda, dùng với Spider (giao diện để viết code và chạy python) . Anaconda cho phép gài các thư viện chạy cùng python. Đặc biệt là tensorflow (nền tảng học máy của Google). Và gài thêm Keras (thư viện tiện lợi cho viết các neural networks). Chú ý là tensorflow hiện không tương thích với Python 3.6, nên tạo môi trường dùng Python 3.5 + tensorflow. (Tất nhiên, thay vì Anaconda, có thể dùng các môi trường khác, như là Pycharm hay gì đó. Ai quen cái gì rồi thì có thể dùng cái đó, miễn sao gài được các thư viện chay cùng python). Ngoài ra cần các thư viện khác, như là opencv (để xử lý ảnh), numpy (tính toán với các bảng số trên python), v.v. Cần đến đâu có thể gài thêm đến đó.
  2. Sau khi gài python, thì tập viết code đơn giản trên python. Có thể cần xem các tutorials về python.