Machine Learning (ML) là một nhánh của trí tuệ nhân tạo (AI), đang làm thay đổi cách chúng ta giải quyết các thách thức từ y tế đến sản xuất công nghiệp. Trong bài viết này, chúng ta sẽ tìm hiểu những kiến thức cơ bản về machine learning, phân loại các mô hình trong machine learning và cách bắt đầu học machine learning hiệu quả.
1. Machine learning là gì?
Machine learning (Học máy) là một nhánh của trí tuệ nhân tạo (Artificial Intelligence - AI) mà trong đó các máy tính được lập trình để học hỏi từ dữ liệu. Không giống như các chương trình máy tính truyền thống mà cần có các chỉ dẫn cụ thể, machine learning cho phép hệ thống tự động học hỏi và cải thiện từ kinh nghiệm mà không cần sự can thiệp trực tiếp của con người.
Các thuật toán machine learning sử dụng một loạt dữ liệu lớn, thường được gọi là dữ liệu huấn luyện (data set), để xây dựng và huấn luyện mô hình phát hiện mẫu và xu hướng. Một khi đã được huấn luyện, mô hình này có thể được sử dụng để đưa ra dự đoán hoặc ra quyết định dựa trên dữ liệu mới, mà không cần đến sự can thiệp hay chỉ dẫn thêm từ con người.
2. Phân loại machine learning
2.1. Supervised machine learning
Supervised machine learning (Học giám sát) là mô hình học máy được huấn luyện trên tập dữ liệu đã được gán nhãn (labelled data set), bao gồm các thẻ mô tả từng loại dữ liệu. Điều này có nghĩa là trong quá trình huấn luyện, mỗi mẫu dữ liệu đầu vào (input) đã có sẵn một đầu ra mong muốn (output) tương ứng, giúp mô hình học được mối quan hệ giữa đầu vào và đầu ra.
Ví dụ về mô hình Supervised machine learning:
- Nhận dạng khuôn mặt (Face recognition): Hệ thống nhận dạng khuôn mặt sử dụng camera để phát hiện và nhận dạng khuôn mặt con người. Ví dụ phổ biến bao gồm khóa mở điện thoại thông minh sử dụng khuôn mặt, hệ thống an ninh kiểm soát ra vào, và thậm chí là trong các ứng dụng xác thực trực tuyến. Mô hình học máy được huấn luyện để nhận biết các đặc điểm riêng biệt của mỗi khuôn mặt.
- Phát hiện vật thể (Object detection): Phát hiện vật thể là quá trình xác định vị trí của một hoặc nhiều vật thể trong một hình ảnh và phân loại chúng thành các danh mục khác nhau (như người, xe, động vật). Ví dụ điển hình là camera giám sát an ninh, phân tích hình ảnh từ drone, và hệ thống hỗ trợ lái xe tự động, nơi mô hình phải xác định và theo dõi các vật thể xung quanh.
- Nhận dạng chữ viết (Optical character recognition - OCR): OCR là kỹ thuật được sử dụng để chuyển đổi các loại hình ảnh của văn bản in hoặc viết tay thành dữ liệu văn bản máy có thể đọc được. Ứng dụng thường thấy bao gồm nhập dữ liệu tự động từ tài liệu giấy, nhận diện biển số xe, và digital hóa tài liệu cũ.
2.2. Unsupervised machine learning
Khác với supervised machine learning, unsupervised machine learning (Học không giám sát) là mô hình học máy được huấn luyện trên tập dữ liệu không có nhãn. Điều này có nghĩa là trong quá trình huấn luyện, không có chỉ dẫn rõ ràng về kết quả đầu ra mong muốn cho mỗi mẫu dữ liệu. Mục tiêu của unsupervised learning là để phát hiện cấu trúc, mối quan hệ, hoặc các mẫu ẩn trong dữ liệu.
Trong unsupervised machine learning, có nhiều phương pháp khác nhau được sử dụng để phân tích và khai thác dữ liệu không có nhãn. Dưới đây là một số phương pháp phổ biến:
1. Phân cụm (Clustering):
- K-means Clustering: Phân chia dữ liệu thành k nhóm dựa trên tính năng tương đồng. Mỗi điểm dữ liệu được gán vào cụm gần nhất dựa trên khoảng cách Euclidean tới trung tâm cụm.
- Hierarchical Clustering: Xây dựng một cây của cụm từ dữ liệu. Các nhóm được tạo ra theo một cấu trúc phân cấp, có thể là tập hợp (agglomerative) hoặc phân tách (divisive).
- DBSCAN (Density-Based Spatial Clustering of Applications with Noise): Phân cụm dựa trên mật độ, phù hợp cho dữ liệu có hình dạng không thông thường và có khả năng xử lý nhiễu và điểm lạ.
2. Giảm chiều (Dimensionality Reduction):
- Phân tích thành phần chính (Principal Component Analysis - PCA): Giảm số chiều của dữ liệu bằng cách chuyển đổi sang một tập hợp mới của các biến, được gọi là các thành phần chính, mà giữ lại phần lớn thông tin ban đầu.
- t-SNE (t-Distributed Stochastic Neighbor Embedding): Một kỹ thuật để giảm chiều dữ liệu để trực quan hóa dữ liệu nhiều chiều trong không gian có hai hoặc ba chiều.
3. Phát hiện bất thường (Anomaly Detection):
- Isolation Forest: Sử dụng các cây quyết định để cô lập và phát hiện các quan sát bất thường trong dữ liệu.
- One-Class SVM: Một biến thể của SVM được sử dụng cho các bài toán mà chỉ có dữ liệu về một lớp; nó cố gắng tìm ra ranh giới quyết định xa nhất xung quanh các điểm dữ liệu này.
4. Phân tích liên kết (Association Analysis):
- Apriori Algorithm: Phát hiện các mối liên hệ hay các mẫu thường xuyên xuất hiện trong các tập dữ liệu lớn.
- FP-Growth: Một phương pháp hiệu quả hơn so với Apriori để khai thác các mục và tập mục thường xuyên trong cơ sở dữ liệu mua hàng.
Ví dụ về mô hình Unsupervised machine learning:
- Phân tích khách hàng: Trong ngành bán lẻ hoặc ngân hàng, unsupervised learning có thể được sử dụng để phân loại khách hàng dựa vào các hành vi mua sắm hoặc giao dịch. Ví dụ, một mô hình có thể phát hiện các nhóm khách hàng có xu hướng mua các sản phẩm tương tự hoặc sử dụng dịch vụ tài chính tương tự, giúp doanh nghiệp định hình chiến lược tiếp thị và dịch vụ khách hàng.
- Phân tích thành phần chính (PCA): Trong các lĩnh vực có tập dữ liệu lớn như gen học hoặc xử lý hình ảnh, PCA được sử dụng để giảm số lượng biến (chiều) của tập dữ liệu mà vẫn giữ lại những thông tin quan trọng nhất. Điều này làm cho việc xử lý dữ liệu và phân tích trở nên đơn giản hơn và hiệu quả hơn.
- Phát hiện gian lận: Trong ngành tài chính, các mô hình unsupervised có thể được huấn luyện để nhận diện các giao dịch bất thường có khả năng là gian lận. Bằng cách phân tích các mẫu giao dịch, hệ thống có thể phát hiện những hoạt động không phù hợp hoặc bất thường so với hành vi thông thường của người dùng.
2.3. Semi-supervised machine learning
Semi-supervised machine learning là một phương pháp trong trí tuệ nhân tạo mà sử dụng cả dữ liệu có nhãn (labeled) và không có nhãn (unlabeled) trong quá trình huấn luyện.
Điều này cho phép hệ thống học hỏi một cách hiệu quả hơn, tận dụng lượng lớn dữ liệu không có nhãn mà thường sẵn có và ít tốn kém hơn so với dữ liệu đã được gắn nhãn. Phương pháp này rất hữu ích trong các tình huống mà việc lấy nhãn cho dữ liệu là tốn kém hoặc khó khăn.
Ví dụ về mô hình Semi-supervised Learning:
- Phân loại văn bản: Giả sử bạn có một lượng lớn các bài báo trên web mà bạn muốn phân loại vào các chủ đề như "thể thao", "khoa học", "nghệ thuật", v.v. Tuy nhiên, chỉ có một phần nhỏ trong số đó được gắn nhãn. Bằng cách sử dụng semi-supervised learning, bạn có thể dùng phần dữ liệu có nhãn để huấn luyện một mô hình cơ bản, sau đó sử dụng mô hình này để dán nhãn sơ bộ cho phần dữ liệu không có nhãn. Qua đó, mô hình có thể được cải tiến thêm bằng cách học từ dữ liệu đã được dán nhãn sơ bộ này, tạo điều kiện cho việc phân loại chính xác hơn.
- Nhận dạng giọng nói: Trong một hệ thống nhận dạng giọng nói, bạn có thể có hàng giờ đoạn thu âm giọng nói, nhưng chỉ một phần nhỏ trong số đó được ghi chú với bản chép chính xác của những gì được nói. Semi-supervised learning có thể được sử dụng để cải thiện chất lượng của mô hình nhận dạng giọng nói bằng cách học từ cả dữ liệu có nhãn và dữ liệu không nhãn. Mô hình sẽ học cách nhận diện mẫu giọng nói từ dữ liệu có nhãn và sau đó áp dụng kiến thức đó để hiểu và cải thiện kết quả trên dữ liệu không có nhãn.
2.4. Reinforcement learning
Reinforcement learning (RL) là mô hình học máy cho phép một tác nhân (agent) học hỏi trong một môi trường tương tác bằng cách dùng phương pháp thử và lỗi thông qua việc sử dụng phản hồi từ các hành động và kinh nghiệm của chính nó.
Trong RL, tác nhân không được huấn luyện bằng dữ liệu có nhãn mà thay vào đó, nó học bằng cách liên tục thực hiện các hành động và nhận phản hồi dưới dạng phần thưởng hoặc hình phạt (rewards or punishments). Mục đích là tối đa hóa tổng số phần thưởng mà tác nhân thu được.
Ví dụ về mô hình Reinforcement Learning:
- Trò chơi Video: Trong các trò chơi điện tử, như cờ vua hoặc Go, một tác tử RL có thể học cách trở nên giỏi hơn bằng cách chơi hàng loạt trận đấu chống lại đối thủ hoặc chính nó. AlphaGo của Google DeepMind là một ví dụ nổi tiếng, nơi một hệ thống RL học cách chơi Go ở cấp độ chuyên nghiệp. Tác tử nhận được phần thưởng dựa trên việc thắng hoặc thua trận, qua đó học được những chiến lược tốt nhất.
- Robotics: Trong lĩnh vực robotics, RL được sử dụng để dạy cho robot cách thực hiện các tác vụ như đi bộ, nhặt và đặt vật phẩm, hoặc điều hướng qua môi trường khó khăn. Ví dụ, một robot có thể được huấn luyện để đi bộ trên nhiều loại địa hình mà không bị ngã, với mỗi bước chân thành công là một phần thưởng.
- Tối ưu hệ thống giao thông: RL có thể được sử dụng để quản lý giao thông hiệu quả hơn. Tác tử RL có thể học cách điều chỉnh đèn giao thông để tối thiểu hóa thời gian chờ và cải thiện lưu lượng xe. Phần thưởng có thể dựa trên tổng thời gian chờ của xe hoặc số lượng xe qua giao lộ trong một khoảng thời gian nhất định.
3. Học machine learning bắt đầu từ đâu?
Để có thể học machine learning, bạn nên bắt đầu học theo thứ tự sau:
- Kiến thức toán cơ bản: bao gồm đại số tuyến tính, giải tích ma trận, xác suất thống kê
- Kỹ năng lập trình: Bạn nên bắt đầu với python vì nó là ngôn ngữ phổ biến trong machine learning. Ngoài ra, bạn cần học cách thao tác và phân tích dữ liệu trong machine learning với các thư viện phổ biến như NumPy, Pandas và Matplotlib.
- Các khái niệm cơ bản trong machine learning: các mô hình học máy phổ biến, kỹ thuật xây dựng vector đặc trưng cho dữ liệu, một mô hình machine learning cơ bản–linear regression, và hiện tượng cần tránh khi xây dựng các mô hình machine learning.
- Các thuật toán trong machine learning: bao gồm linear regression, logistic regression, decision trees, random forests, SVMs, k-nearest neighbors, và neural networks - là nền tảng cho các mô hình deep learning phức tạp hiện nay.
- Deep learning: các mô hình deep learning phổ biến và cách xây dựng chúng.
- MLOps: MLOps = ML (Machine learning) + Ops (Operations). Nghĩa là tối ưu hóa chu kỳ phát triển và duy trì các mô hình machine learning một cách hiệu quả và bền vững. Bạn cần học về các khái niệm cơ bản của DevOps như tự động hoá quy trình, CI/CD (Continuous Integration/Continuous Deployment), và quản lý cơ sở hạ tầng, cộng thêm các công cụ quản lý mô hình như MLflow, Kubeflow, TensorFlow Extended (TFX), hoặc Metaflow.
Một vài khoá học bạn nên tham khảo:
- "Machine Learning" bởi Andrew Ng (Coursera)
- "Deep Learning Specialization" (Coursera)
- "Intro to Machine Learning with PyTorch" và "Intro to Machine Learning with TensorFlow" (Udacity)
- Khóa học "MLOps: Machine Learning Engineering for Production" trên Coursera do Andrew Ng và DeepLearning.AI.
Một số đầu sách bạn nên tham khảo:
- "Machine learning cơ bản" của Vũ Hữu Tiệp
- "Machine Learning Engineering" của Andriy Burkov
- "Building Machine Learning Powered Applications: Going from Idea to Product" của Emmanuel Ameisen
4. Tổng kết
- Machine learning là một nhánh của trí tuệ nhân tạo, nơi các máy tính được lập trình để học hỏi từ dữ liệu và cải thiện hiệu suất của mình một cách tự động mà không cần can thiệp trực tiếp từ con người.
- Có 4 mô hình machine learning phổ biến là supervised learning, unsupervised learning, semi-supervised learning và reinforcement learning.
- Để học machine learning hiệu quả, bạn nên bắt đầu từ kiến thức toán cơ bản, kỹ năng lập trình, các khái niệm cơ bản trong machine learning, các thuật toán trong machine learning, deep learning và MLOps.