Huy Bui
2,462
25-04-2022
Machine Learning là một chủ đề được quan tâm nhất hiện nay và lộ trình học machine learning cũng theo đó có ngày càng nhiều người muốn tìm hiểu về nó. Bài này hướng dẫn cho bạn lộ trình tự học machine learning và nghiên cứu hoàn chỉnh để trở thành chuyên gia Machine Learning và dành cho người mới bắt đầu. Nếu bạn đã là một chuyên gia thì hãy bỏ qua bài này.
Nếu ai đó nói rằng tự học học Machine Learning mà không cần toán, thì chứng tỏ người đó không nghiêm túc trong quá trình tự học Machine Learning!
Đúng vậy, bạn không cần phải là một nhà toán học để tìm hiểu về machine learning, nhưng một số kiến thức cơ bản về Đại số tuyến tính (Linear Algebra) , Giải tích (Calculus) và Xác suất (Probability) sẽ giúp bạn bắt đầu học machine learning dễ dàng hơn.
Kỹ năng tiếp theo trong lộ trình học Machine Learning là Python. Đương nhiên để trở thành chuyên gia Machine Learning thì bạn phải là lập trình viên có kỹ năng coding trước. Nếu bạn đã có một nền tảng coding vững chắc, thì xin chúc mừng một lần nữa. Nhưng nếu bạn chưa có, chỉ cần chọn một ngôn ngữ lập trình để học. Thực tế, Python là ngôn ngữ phù hợp nhất để học và làm Machine Learning, nhưng tùy thuộc vào các dự án cụ thể của bạn, bạn có thể chọn C ++, Java hoặc bất cứ ngôn ngữ nào khác. Nếu bạn muốn bắt đầu nhanh với Python, thì khóa học Python Machine learning là một trong những lựa chọn tốt nhất.
NumPy (NumPy.org): Là một thư viện để xử lý và tính toán các ma trận, được dùng cùng với SciPy và Matplotlib để thay thế cho Matlab. NumPy được viết bằng 2 ngôn ngữ lập trình phổ biến là Python và C, đặc biệt là các hàm liên quan tới phần Đại số tuyến tính. Ngoài NumPy thì Google Colaboratory là một lựa chọn đơn giản hơn, phù hợp với những người mới đang bắt đầu tìm hiểu về Machine Learning cơ bản. Khám phá thêm các thư viện python để học lập trình AI
TensorFlow: Là một thư viện mã nguồn mở được phát triển bởi Google. Nó được sử dụng để training/ inference các mô hình Machine Learning. Đây là công cụ vô cùng hữu ích với những nhà phát triển học máy.
Kỹ năng tiếp theo trong lộ trình học Machine Learning là kỹ thuật hồi quy, Hồi quy là quá trình tìm mối quan hệ phụ thuộc của một biến (được gọi là biến phụ thuộc hay biến được giải thích, biến được dự báo, biến được hồi quy, biến phản ứng, biến nội sinh) vào một hoặc nhiều biến khác (được gọi là biến độc lập, biến giải thích, biến dự báo, biến hồi quy, biến tác nhân hay biến kiểm soát, biến ngoại sinh) nhằm mục đích ước lượng hoặc tiên đoán giá trị kỳ vọng của biến phụ thuộc khi biết trước giá trị của biến độc lập. Hình 6 tượng trưng cho ý tưởng của các thuật toán hồi quy.
Ví dụ như, dự đoán rằng nếu tăng lãi suất tiền gửi thì sẽ huy động được lượng tiền gửi nhiều hơn, khi đó ngân hàng A cần biết mối quan hệ giữa lượng tiền gửi và lãi suất tiền gửi, cụ thể hơn họ muốn biết khi tăng lãi suất thêm 0.1% thì lượng tiền gửi sẽ tăng trung bình là bao nhiêu.
Các thuật toán hồi quy phổ biến nhất là:
Bài toán phân lớp là quá trình phân lớp 1 đối tượng dữ liệu vào 1 hay nhiều lớp đã cho trước nhờ 1 mô hình phân lớp (model) thuộc lộ trình học machine learning
Như vậy, nhiệm vụ của bài toán phân lớp là cần tìm 1 mô hình phần lớp để khi có dữ liệu mới thì có thể xác định được dữ liệu đó thuộc vào phân lớp nào.
Có nhiều bài toán phân lớp dữ liệu như phân lớp nhị phân (binary classification), phân lớp đa lớp (multiclass classification), phân lớp đa trị.
Ứng dụng của bài toán này được sử dụng rất nhiều và rộng rãi trong thực tế ví dụ như bài toán nhận dạng khuôn mặt, nhận diện giọng nói, phát hiện email spam, …
Và đối với các bài toán phân lớp dữ liệu sử dụng các thuật toán học có giám sát (supervised learning) để xây dựng mô hình cho bài toán này.
Đây là phương pháp xây dựng mô hình ra quyết định dựa trên các giá trị thực của những thuộc tính trong dữ liệu. Sự quyết định được rẽ nhánh trong cấu trúc cây cho đến khi quyết định dự đoán được đưa ra cho một mẫu nhất định như minh hoạ ở Hình 9. Phương pháp này được sử dụng trong việc huấn luyện dữ liệu cho bài toán phân lớp và hồi quy. Vì sự nhanh chóng, chính xác nên phương pháp này rất được ưa chuộng trong machine learning.
Các thuật toán cây quyết định phổ biến nhất bao gồm:
Mạng nơron nhân tạo là các mô hình được lấy cảm hứng từ cấu trúc và chức năng của mạng lưới thần kinh sinh học. Hình 13 minh hoạ cho một mạng truyền thẳng. Nhóm thuật toán này có thể được sử dụng cho bài toán phân lớp và hồi quy với rất nhiều biến thể khác nhau cho hầu hết các vấn đề. Tuy nhiên, trong bài viết này mình chỉ trình bày các thuật toán cổ điển và phổ biến nhất:
Convolutional Neural Network (CNNs – Mạng nơ-ron tích chập) là một trong những mô hình Deep Learning tiên tiến. Nó giúp cho chúng ta xây dựng được những hệ thống thông minh với độ chính xác cao như hiện nay. Mạng CNN là một tập hợp các lớp Convolution chồng lên nhau và sử dụng các hàm nonlinear activation như ReLU và tanh để kích hoạt các trọng số trong các node. Mỗi một lớp sau khi thông qua các hàm kích hoạt sẽ tạo ra các thông tin trừu tượng hơn cho các lớp tiếp theo.
Mạng CNN sử dụng 3 ý tưởng cơ bản:
Trong bài toán xử lý ngôn ngữ (NLP) thì không thể xử lý cả câu được và người ta tách ra từng từ làm input, giống như trong video người ta tách ra các ảnh (frame) làm input.
Bạn cần chuẩn bị cho hệ thống Machine Learning sẵn sàng chạy tốt ở môi trường production (là môi trường người dùng cuối họ truy cập);
Là một giải pháp phần mềm, hệ thống Machine learning này sẽ được thử nghiệm trước và cần được theo dõi đầy đủ ngay cả khi đã chạy thực tế
Trong quá trình chạy hệ thống Machine learning, bạn vẫn cần phải bổ sung thêm dữ liệu để huấn luyện máy ngày càng chính xác hơn.
Tensorflow.js là một thư viện học máy mới ra mắt của tensorflow. Với tensorflow.js, bạn không những có thể chạy những mô hình học máy ngay trên trình duyệt của mình để quan sát quá trình làm việc nó mà thậm chí còn có thể TRAIN cả model trên đây nữa.
TensorFlow là một thư viện mã nguồn mở (open-source) cho các ứng dụng machine learning. TensorFlow cũng có thể được sử dụng để implement các neural networks hay các thuật toán deep learning.
Được phát hành tháng 11, 2015, ban đầu TensorFlow là một thư viện Python. Nó được sử dụng khả năng tính toán của CPU và GPU để training và đánh giá các machine learning models. Và tất nhiên, thời điểm đó, nó được thiết để chạy trên các máy chủ có hiệu suất cực cao và đắt tiền.
Gần đây, TensorFlow đã thay đổi rất nhiều, khi nó có thể chạy trên các thiết bị có hiệu suất thấp hơn Mobile hay trình duyệt web.
Chắc hẳn bạn đã nắm cho mình trong tay lộ trình học machine learning. Nhưng học machine learning ở đâu cũng là vấn đề khó khăn cho khá nhiều người. Đối với các bạn ở HCM và Hà Nội có thể tham khảo ngay khóa học machine learning với python của trường Đại học Bách Khoa bạn nhé.