Hỏi - đáp Nơi cung cấp thông tin nghề nghiệp và giải đáp những thắc mắc thường gặp của bạn

Top 10 Thuật toán Machine Learning dành cho người mới học

Không ai dám phủ nhận rằng sự phát triển của lĩnh vực máy học (Machine Learning) hay trí tuệ nhân tạo (AI) ngày nay càng trở nên thân thiết với con người. Một trong số đó là Big Data, một trong những xu hướng hot nhất của lĩnh vực này. Học máy hoạt động với hiệu suất vô cùng lớn để đưa ra được những dự đoán hoặc những gợi ý được tính dựa trên những dữ liệu lớn. Ví dụ phổ biến về thuật toán machine learning là những thuật toán của Netflix để đưa ra nhưng list phim mà bạn đã xem trước đây. Chính hệ thống trong gợi ý đó (Recommended System) đem lại lại ích cho người dùng trong việc đưa ra những lựa chọn của mình.

Ngoài ra sản phẩm AI còn có thể tạo ra bằng nhiều loại ngôn ngữ lập trình khác nhau với rất nhiều khả năng khác nhau như nhận dạng biển số xe một cách tự động, tự động sửa lỗi chính tả, hoặc tạo các con robot có khả năng tương tác với con người,… và còn nhiều hơn thế nữa. AI đã và đang là xu hướng phát triển mạnh mẽ.

I. Những loại thuật toán Machine Learning

Machine Learning được phân thành 3 loại chính: supervised learning (học có giám sát), unsupervised learning (học không có sự giám sát), reinforcement learing (học tăng cường).

  • Superveised Learning (học có giám sát) được dùng trong các trường hợp một thuộc tính (nhãn) có sẵn cho một tập dữ liệu nhất định (tập huấn luyện), nhưng không được đầy đủ và được dự đoán cho nhiều trường hợp khác.
  • Unsupervised Learning (học không có sự giám sát) được sử dụng trong các trường hợp mà bạn muốn khám phá các mối quan hệ tiềm ẩn nằm trong dữ liệu không có nhãn (các mục hoàn toàn không có sự chỉ định trước).
  • Reinforcement Learning (Học tăng cường) nằm giữa hai loại trên. Tức là một số hình thức phản hồi sẽ có sẵn trong bước tiên đoán, nhưng nhãn lại không chính xác hoặc thông báo lỗi đến người dùng.

Dưới đây là TOP 10 Thuật toán Machine Learning chủ yếu rơi vào hai loại đầu. Tuy nhiên chúng lại là những thuật toán mà các kỹ sư cần biết.

II. Top 10 Thuật toán Machine Learning mà các kỹ sư cần biết

1. Cây quyết định (Decision Tree)

Cây quyết định (Decision Tree) là công cụ hỗ trợ đắc lực cho việc ra quyết định của các kỹ sư. Với mô hình dạng cây chỉ ra những quyết định và kết quả có thể xảy ra của những quyết định đó (bao gồm cả kết quả ngẫu nhiên, chi phí cho tài nguyên và lợi ích). Dưới đây là mô hình trực quan cho các bạn dễ hình dung:

Khi nhìn vào cây quyết định các bạn sẽ đưa ra cho mình được những lựa chọn đúng đắn hơn. Như ví dụ trên các bạn sẽ có được gợi ý về việc có nên đi đá bóng hay không. Giả sử trời nắng đẹp các bạn sẽ đưa ra quyết định đi đá bóng. Ngược lại nếu thời tiết mưa, gió mạnh các bạn sẽ ở nhà xem đá bóng chẳng hạn.

Tuy đây là một mô hình cũ nhưng cây quyết định vẫn là sự lựa chọn hữu ích đối với các kỹ sư còn non trẻ. Đứng dưới góc nhìn của một người làm chủ dự án cây quyết định chính là danh sách tối ưu các phương án lựa chọn.

2. Phân loại tự động Bayes (Naïve Bayes Classification)

Phân loại Bayes dựa trên định lý Bayes với những giả định hoàn toàn độc lập (naïve) của các đặc tính. Từ đó cho ra các loại xác xuất đơn giản.

Trong đó:  P(A|B) được hiểu là xác suất có điều kiện là A khi biết B, P(A) là xác suất giả thuyết A (tức là tri thức về A là có trước khi dữ liệu B xuất hiện),  P(B|A) chính là xác suất có điều kiện B khi biết gỉ thuyết A, P(B) là xác suất của quan sát B mà không có liên quan đến bất kỳ giả thuyết A nào khác.

Thuật toán Machine Learning trên được ứng dụng trong một số bài toán sau:

  • Đánh dấu email là spam hay không
  • Phân loại bài viết tin tức thuộc các lĩnh vực như công nghệ, thể thao hay chính trị
  • Kiểm tra đoạn văn để biết chúng mang tích cực hay tiêu cực
  • Sử dụng cho những phần mềm nhận diện khuôn mặt…

3. Thuật toán Machine Learning Hồi quy tuyến tính ( Ordinary Least Squares Regression)

Chắc hẳn với những ai được học về thống kê đều thấy hồi quy tuyến tính thật quen thuộc. Phương pháp được sử dụng để hồi quy trong trường hợp này chính là bình phương nhỏ nhất. Để đơn giản hóa bạn hãy nghĩ về hồi quy tuyến đơn giản chỉ là kẻ một đường thẳng đi qua tập hợp các điểm. Khi có được đường thẳng các bạn tiến hành đo khoảng cách thẳng đứng giữa điểm và đường thẳng. Đường mà các bạn lựa chọn chính là đường có độ dài nhỏ nhất. Ngoài phương pháp bình phương nhỏ nhất còn nhiều phương pháp mà các bạn có thể sử dụng.

Mô hình này phù hợp cho các bài toán về dự đoán giá cả (chứng khoán, nhà đất,…)

4. Thuật toán Machine Learning Hồi quy Logistic (Logistic Regression)

Hồi quy là một cách thống kế toàn bộ qua đó nhằm mô hình hóa cho một kết quả nhị thức với một hoặc nhiều hơn một biến giải thích. Cách làm này đo lường mối quan hệ giữa biến phụ thuộc phân loại hoặc nhiều biến độc lập với nhau thông qua cách ước tính xác suất của một hàm logistic, là sự phân bố tích lũy logistic.

Hồi quy được sử dụng trong các bài toán như sau:

  • Đếm tín dụng (nhằm đưa ra quyết định nên hay không nên cho khách hàng vay vốn)
  • Kiểm tra mức độ đạt được của một chiến dịch marketing
  • Dự đoán doanh thu một sản phẩm cụ thể
  • Dự đoán thời thời tiết: động đất,…

5. Support Vector Machines (SVM)

SVM được dùng cho bài toán nhị phân. Giả sử đầu bài cho tập hợp các điểm thuộc 2 loại trong môi trường N chiều, SVM là phương pháp để tìm ra N-1 mặt phẳng để ngăn các điểm thành 2 nhóm. Một ví dụ cụ thể đó là cho một tập hợp các thuộc 2 loại như hình mô tả phía dưới, SVM có nhiệm vụ tìm ra một đường thẳng để phân tách những điểm đó thành 2 loại sao cho độ dài khoảng cách giữa đường thẳng và những điểm là xa nhất có thể.

Xét trên quy mô SVM đã giải quyết được nhiều vấn đề lớn như hiển thị quảng cáo, phát hiện ra giới tính bằng hình ảnh, phân loại hình ảnh có phạm vi rộng (cần sửa đổi SVM cho phù hợp).

6. Kết hợp nhiều phương pháp (Ensemble Methods)

Đây là phương pháp tích hợp từ nhiều phương pháp khác nhau nhằm dự đoán kết quả. Qua đó rút ra kết luận dựa vào trọng số của từng phương pháp được áp dụng. Dưới đây là mô tả cách làm của phương pháp kết hợp.

  • Trung bình sai số (bias): với một số phương pháp các bạn sẽ nhận được sai số nhỏ, ngược lại có những phương pháp lại cho các bạn sai số lớn. Trung bình của hai hoặc nhiều phương pháp các bạn sẽ được một số chấp nhận được. Có thể là số được chấp nhận nhỏ hơn sai số khi sử dụng một phương pháp duy nhất.
  • Giảm độ phụ thuộc vào tập dữ liệu (variance): tập hợp của nhiều ý kiến của nhiều mô hình sẽ tốt hơn là ý kiến của một mô hình. Đối với lĩnh vực tài chính đây là cách đa dạng hóa một – một danh mục hỗn hợp từ nhiều cổ phiếu sẽ thu được tính ổn định hơn là cổ phiếu riêng lẻ.
  • Giảm over-fit: là hiện tượng mà mô hình hoạt động kém với dữ liệu test nhưng lại tốt với training. Với việc sử dụng nhiều mô hình sẽ giảm tối đa được vấn đề nêu ra.

7. Thuật toán sắp xếp gom cụm (Clustering Algorithms)

Gom cụm là việc nhóm tất cả các đối tượng giống nhau vào trong một nhóm. Việc gom cụm có nhiều phương pháp khách nhau, dưới đây là một vài trong số phương pháp đó:

  • Gom cụm dựa vào tam điểm (Centroid-based algorithms)
  • Gom cụm dựa vào liên kết (Connectivity-based algorithms)
  • Gom cụm dựa theo xác suất (Probabilistic)
  • Gom cụm dựa vào tỉ lệ mật độ (Density-based algorithms)

8. Phân tích dữ liệu thành phần cốt lõi (Principal Component Analysis-PCA)

PCA là một thuật toán Machine Learning thống kê sử dụng phép biến đổi một tập hợp các dữ liệu từ một không gian nhiều chiều qua không gian ít chiều hơn. Việc làm này nhằm tối ưu việc thể hiện sự biến thiên của tập dữ liệu.

Phép biến đổi này tạo ra những ưu điểm với dữ liệu như:

  • Giảm tối đa số lượng không gian chứa dữ liệu nếu chúng có quá nhiều chiều khiến chúng ta khó hình dung.
  • Loại bỏ trục tọa độ cũ thay vào đó là trục tọa độ mới và vẫn đảm bảo độ biến thiên của dữ liệu trên trục tọa độ mới đó.
  • Tạo điều kiện để những liên kết bị ẩn có thể xuất hiện trên không gian mới.
  • Đảm bảo những trục tọa độ trong không gian luôn trực quan đôi một, có thể trong không gian ban đầu các trục có thể khó nhìn.

PCA được ứng dụng trong một số bài toán bao gồm nén, đơn giản hóa luồng dữ liệu để thuận tiện cho quá trình học tập. Các bạn cần chú ý kiến thức miền rất quan trọng để các bạn đưa ra được quyết định có nên dùng PCA hay không. PCA không phù hợp trong trường hợp dữ liệu nhiễu.

9. Singular Value Decomposition

SVD trong đại số tuyến tính là một thừa số của ma trận phức tạp. Ma trận m*n đã xác định M và tồn tại một phân rã thỏa mãn M = UΣV, với U và V là các ma trận đơn nhất và Σ là một ma trận chéo.

PCA mà được nhắc ở trên là một ứng dụng từ SVD. Kể cả trong khoa học máy tính những thuật toán liên quan đến nhận dạng khuôn mặt sơ khai đều được ứng dụng từ PCA và SVD để biểu diễn khuôn mặt như là sự kết hợp tuyến tính “egenfaces”. Sau đó kết hợp với khuôn mặt với những tính chất thông qua những phương pháp đơn giản. Cho dù các kỹ thuật hiện đại sẽ làm quá trình diễn ra nhanh hơn nhưng lại phức tạp hơn. Do đó nhiều người vẫn dùng kỹ thuật tương tự.

10. Phân tích dữ liệu thành phần độc lập (Independent Component Analysis)

ICA là kỹ thuật thống kê nhằm mục đích tìm ra các yếu tố còn ẩn dưới các bộ biến ngẫu nhiên, những phép đo hoặc tín hiệu. ICA định nghĩa một mô hình phát sinh cho dữ liệu đa biến quan sát được, và thường được đưa ra như một cơ sở dữ liệu lớn các mẫu. Trong mô hình những biến số liệu được giả định mang tính hỗn hợp tuyến tính của một biến tiềm ẩn bất kỳ, và hệ thống hỗn hợp cũng không rõ ràng. Những biến tiềm ẩn được gán gaussian và hoàn toàn độc lập với nhau, và chúng được gọi là các thành phần độc lập của tập dữ liệu được quan sát.

ICA cũng có mối quan hệ với PCA, nhưng thực tế nó là một kỹ thuật mạnh hơn nhiều so với PCA. ICA có khả năng tìm ra những yếu tố tiềm ẩn của nguồn trong khi các phương pháp khác không đảm nhận được. ICA giúp hiển thị hình ảnh kỹ thuật số, cơ sở dữ liệu, những chỉ số liên quan đến kinh tế và đo lường tâm lý.

III. Kết luận

Để có thể hiểu sâu hơn về Machine Learning đây là 10 thuật toán bề mặt mà bạn cần tìm hiểu kĩ. Nắm được những thuật toán cơ bản, Machine Learning Engineer sẽ dễ dàng hơn trong việc phát triển phần mềm, kĩ năng và học thêm nhiều loại thuật toán với cấu trúc phức tạp hơn.

Via: Freelancervietnam