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

10 thuật toán machine learning mà lập trình viên cần biết (phần 2)

Học không có giám sát

7. Thuật toán gom cụm (Clustering Algorithms)

Gom cụm là nhiệm vụ nhóm một tập hợp các đối tượng sao cho các đối tượng trong cùng một nhóm (cluster) giống nhau hơn so với các đối tượng trong các nhóm khác.

 

Gom cụm có nhiều phương pháp khác nhau, sau đây là một vài trong số đó:

  • Gom cụm dựa vào tâm điểm (Centroid-based algorithms)
  • Gom cụm dựa vào tính kết nối (Connectivity-based algorithms)
  • Gom cụm dựa vào mật độ (Density-based algorithms)
  • Gom cụm dựa vào xác suất (Probabilistic)
  • Gom cụm dựa trên giảm chiều dữ liệu (Dimensionality Reduction)
  • Gom cụm dựa trên mạng nơ-ron/deep leanring (Neural networks / Deep Learning)

8. Phân tích thành phần chính (Principal Component Analysis – PCA)

PCA là một thuật toán thống kê sử dụng phép biến đổi trực giao để biến đổi một tập hợp dữ liệu từ một không gian nhiều chiều sang một không gian mới ít chiều hơn (2 hoặc 3 chiều) nhằm tối ưu hóa việc thể hiện sự biến thiên của dữ liệu.

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

  • Giảm số chiều của không gian chứa dữ liệu khi nó có số chiều lớn, không thể thể hiện trong không gian 2 hay 3 chiều.
  • Xây dựng những trục tọa độ mới, thay vì giữ lại các trục của không gian cũ, nhưng lại có khả năng biểu diễn dữ liệu tốt tương đương, và đảm bảo độ biến thiên của dữ liệu trên mỗi chiều mới.
  • Tạo điều kiện để các liên kết tiềm ẩn của dữ liệu có thể được khám phá trong không gian mới, mà nếu đặt trong không gian cũ thì khó phát hiện vì những liên kết này không thể hiện rõ.
  • Đảm bảo các trục tọa độ trong không gian mới luôn trực giao đôi một với nhau, mặc dù trong không gian ban đầu các trục có thể không trực

 

Một số ứng dụng của PCA bao gồm nén, đơn giản hóa dữ liệu để dễ dàng học tập, hình dung. Lưu ý rằng kiến thức miền là rất quan trọng trong khi lựa chọn có nên tiếp tục với PCA hay không. Nó không phù hợp trong trường hợp dữ liệu bị nhiễu (tất cả các thành phàn của PCA đều có độ biến thiên khá cao)

9. Singular Value Decomposition

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

 

PCA thực ra là một ứng dụng đơn giản của SVD. Trong khoa học máy tính, các thuật toán nhận dạng khuôn mặt đầu tiên được sử dụng PCA và SVD để biểu diễn khuôn mặt như là một sự kết hợp tuyến tính của “eigenfaces”, làm giảm kích thước, và sau đó kết hợp khuôn mặt với các tính chất thông qua các phương pháp đơn giản. Mặc dù các phương pháp hiện đại phức tạp hơn nhiều, nhiều người vẫn còn phụ thuộc vào các kỹ thuật tương tự.

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

ICA là một kỹ thuật thống kê nhằm tìm ra các yếu tố ẩn nằm dưới các bộ biến ngẫu nhiên, các 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, thường được đưa ra như một cơ sở dữ liệu lớn các mẫu. Trong mô hình, các biến số dữ liệu giả định là hỗn hợp tuyến tính của một số biến tiềm ẩn chưa biết, và hệ thống hỗn hợp cũng không rõ. Các biến tiềm ẩn được giả định không gaussian và độc lập với nhau, và chúng được gọi là các thành phần độc lập của dữ liệu được quan sát.

ICA có liên quan đến PCA, nhưng nó là một kỹ thuật mạnh hơn nhiều, có khả năng tìm ra các yếu tố bên dưới của các nguồn trong khi những phương pháp cổ điển thất bại hoàn toàn. Ứng dụng của nó bao gồm hình ảnh kỹ thuật số, cơ sở dữ liệu tài liệu, chỉ số kinh tế và đo lường tâm lý.
Kết thúc bài viết ở đây, hi vọng bạn đọc đã có những cái nhìn tổng quan về các thuật toán phổ biến trong AI. Nếu cảm thấy thích thú, hãy đào sâu hơn về chúng để có thể tạo ra những ứng dụng có “trí tuệ nhân tạo” phục vụ cho mọi người.

Via codehub