Tổng quan về các thuật toán Học Máy (Phần II)

 Trong phần 1:

https://www.sonresearch.blog/2023/05/tong-quan-ve-cac-thuat-toan-hoc-may.html

Chúng ta đã đi vào các thuật toán học máy được dùng trong các bài toán hồi quy và phân lớp. Bài viết này sẽ đề cập thêm các vấn đề quan trọng khác.

Chứng ta sẽ đi qua các vấn đề về mạng perceptron, các thuật toán phân cụm, mạng thần kinh sâu, chuỗi thời gian và các thuật toán được xử dụng trong hệ thống gợi ý (recommendation system) 

Mạng perceptron nhiều lớp (MLP)

Như đã đề cập ở phần đầu, một mạng lưới thần kinh nhân tạo (Artificial Neural Network - ANN) bắt chước cách bộ não con người học hỏi. Bộ não con người có một số lượng lớn các tế bào thần kinh được kết nối trong một mạng để xử lý thông tin. Mỗi nơ-ron trong mạng xử lý đầu vào (xung điện) từ một nơ-ron khác, xử lý và biến đổi đầu vào, đồng thời gửi đầu ra đến các nơ-ron trong mạng. Hình dưới đây mô phỏng hình ảnh của một tế bào thần kinh của con người:

Dựa vào cấu trúc đó, một tế bào thần kinh nhân tạo sẽ có cách hoạt động tương tự. Hình dưới đây cho thấy một tế bào thần kinh nhân tạo, về mặt toán học là một hàm tuyến tính cộng với một hàm hành động (Activation function). Hàm kích hoạt biến đổi đầu ra của hàm tuyến tính, chẳng hạn như nén giá trị trong khoảng từ 0 đến 1 (sigmoid activation), -1 và 1 (tanh activation) hoặc lớn hơn 0 (ReLU). Ý tưởng của hàm kích hoạt là tìm hiểu mối quan hệ phi tuyến tính giữa đầu vào và đầu ra. Chúng ta cũng có thể coi mỗi nơ-ron là một bộ phân loại tuyến tính, chẳng hạn như hồi quy logistic. Hình dưới đây cho thấy cấu trúc của một tế bào thần kinh nhân tạo:


Khi bạn xếp một số lượng lớn nơ-ron vào các lớp khác nhau (Bao gồm lớp đầu vào, lớp ẩn và lớp đầu ra) và kết nối tất cả các nơ-ron với nhau giữa hai lớp liền kề, chúng ta có một ANN được gọi là perceptron nhiều lớp (Multi-Layer Perceptron - MLP). Ở đây, thuật ngữ perceptron có nghĩa là nơ-ron nhân tạo và nó được phát minh lần đầu tiên bởi Frank Rosenblatt vào năm 1957. Ý tưởng đằng sau MLP là mỗi lớp ẩn sẽ học một số biểu diễn (features) cấp cao hơn của lớp trước đó và các tính năng cấp cao hơn đó, đồng thời nắm bắt thông tin quan trọng hơn trong lớp trước. Khi đầu ra từ lớp ẩn cuối cùng được sử dụng để dự đoán, mạng đã trích xuất thông tin quan trọng nhất từ các đầu vào thô để huấn luyện bộ phân loại hoặc bộ hồi quy. Hình dưới đây cho thấy kiến trúc của mạng MLP:

Trong quá trình đào tạo mô hình, mọi nơ ron trong mỗi lớp sẽ có một số ảnh hưởng đến đầu ra cuối cùng và trọng số của chúng ($W$) được điều chỉnh bằng cách sử dụng độ dốc giảm dần để tối ưu hóa mục đích đào tạo. Quá trình này được gọi là lan truyền ngược, trong đó tất cả các lỗi được truyền trở lại vào mọi nơ-ron trong mỗi lớp và trọng số cho mỗi nơ-ron được điều chỉnh cho phần của tất cả các lỗi liên quan đến từng nơ-ron.

MLP là một mạng thần kinh có mục đích chung có thể được sử dụng để phân loại và hồi quy. Nó có thể được sử dụng để giải quyết các vấn đề tương tự như Random forest và XGBoost. Nó chủ yếu được sử dụng cho các bộ dữ liệu dạng bảng, nhưng cũng có thể hoạt động với các định dạng dữ liệu khác, chẳng hạn như hình ảnh và văn bản. Nó có thể mô hình hóa các mối quan hệ phi tuyến tính phức tạp trong tập dữ liệu. Nó cũng hiệu quả về mặt tính toán, vì nó có thể dễ dàng song song hóa. MLP thường yêu cầu nhiều dữ liệu đào tạo hơn để đào tạo một mô hình hiệu suất cao so với các thuật toán ML truyền thống.

Các thuật toán để phân cụm (Clustering)

Phân cụm là một kỹ thuật khai thác dữ liệu để nhóm các mục lại với nhau dựa trên các thuộc tính của mục. Một ví dụ về phân cụm là tạo các phân khúc khách hàng khác nhau dựa trên dữ liệu nhân khẩu học và dữ liệu hành vi hoặc lịch sử giao dịch. Có nhiều thuật toán phân cụm khác nhau. Trong phần này, chúng ta sẽ nói về thuật toán phân cụm K-means.

Thuật toán K-means

Thuật toán K-means được sử dụng rộng rãi trong các ứng dụng thực tế trong thế giới thực, chẳng hạn như phân tích phân khúc khách hàng, phân loại tài liệu dựa trên thuộc tính tài liệu và phát hiện gian lận bảo hiểm. K-means là một trong những thuật toán phân cụm phổ biến nhất. Nó được sử dụng để tìm các cụm điểm dữ liệu trong đó các điểm dữ liệu tương tự thuộc cùng một cụm. Nó là một thuật toán không giám sát (unsupervised learning), vì nó không yêu cầu nhãn. Cách thức hoạt động của nó là bắt đầu với trọng tâm ngẫu nhiên (trung tâm của cụm) cho tất cả K-cụm và sau đó tìm trọng tâm tốt nhất bằng cách lặp lại việc gán các điểm dữ liệu cho trọng tâm gần nhất và di chuyển trọng tâm về giá trị trung bình. 

Một số lợi ích của việc sử dụng K-means là:
  • Nó đảm bảo sự hội tụ.
  • Nó mở rộng tốt với một tập dữ liệu lớn.
Tuy nhiên, để sử dụng K-means, bạn sẽ cần chọn K (số lượng cụm) theo cách thủ công – không phải lúc nào cũng dễ thực hiện. Ngoài ra, hiệu suất của nó phản ứng nhạy cảm với các lựa chọn ban đầu của các giá trị ngẫu nhiên, do đó, không phải lúc nào bạn cũng có thể tìm được trọng tâm tối ưu. Các trọng tâm cũng có thể dễ dàng bị tác động bởi các điểm dữ liệu ngoại lai.

Các thuật toán để phân tích chuỗi thời gian (Time series)

Chuỗi thời gian là danh sách các điểm dữ liệu tuần tự được lấy tại các thời điểm khác nhau. Ví dụ về chuỗi thời gian bao gồm giá cổ phiếu hàng ngày trong một khoảng thời gian hoặc doanh số bán sản phẩm hàng tuần trong vài tháng hoặc vài năm. Phân tích chuỗi thời gian có giá trị kinh doanh thiết thực đối với nhiều doanh nghiệp, vì nó có thể giúp giải thích các hành vi lịch sử và dự báo các hành vi kinh doanh trong tương lai. Dự báo chuỗi thời gian hoạt động dựa trên cơ sở giá trị tương lai của một biến có sự phụ thuộc vào các giá trị trước đó.

Có một số đặc điểm chính liên quan đến dữ liệu chuỗi thời gian bao gồm xu hướng, tính mùa vụ và tính ổn định (Trend, seasonality, stationarity). Xu hướng là hướng đi lên hoặc đi xuống tổng thể của một chuỗi thời gian theo thời gian. Nó giúp hiểu được chuyển động dài hạn của một chuỗi thời gian. tính mùa vụ giúp nắm bắt các dữ liệu trong một khoảng thời gian (thường là một năm). Nó giúp hiểu các đặc điểm phụ thuộc vào thời gian theo mùa của một chuỗi thời gian để giúp dự báo. Tính ổn định cho biết liệu các thuộc tính thống kê (chẳng hạn như giá trị trung bình và phương sai) có ổn định theo thời gian hay không. Điều quan trọng là phải hiểu liệu một chuỗi thời gian có ổn định hay không, vì dự báo về thời gian không cố định có xu hướng sai lệch. Nhiều kỹ thuật dự báo hoạt động dựa trên giả định rằng dữ liệu chuỗi thời gian cơ bản là ổn định. Bây giờ, chúng ta hãy xem xét một số thuật toán chuỗi thời gian phổ biến.

Thuật toán ARIMA

Có nhiều trường hợp sử dụng thực tế trong thế giới thực cho thuật toán trung bình di chuyển tích hợp tự hồi quy (Autoregressive Integrated Moving Average - ARIMA), chẳng hạn như dự báo ngân sách, dự báo doanh số bán hàng, dự báo lượt tới khám của bệnh nhân và dự báo số lượng cuộc gọi hỗ trợ khách hàng.

ARIMA đã tồn tại hàng thập kỷ và nó là một thuật toán để dự báo chuỗi thời gian (Dự đoán giá trị của dữ liệu trong tương lai). Cơ sở trưc quan đằng sau ARIMA là giá trị của một biến trong một khoảng thời gian có liên quan đến giá trị của chính nó (So với giá trị của các biến khác trong mô hình hồi quy tuyến tính) trong các giai đoạn trước (tự hồi quy), độ lệch của biến so với giá trị trung bình (trung bình động) phụ thuộc vào độ lệch trước đó so với giá trị trung bình và loại bỏ xu hướng cũng như tính thời vụ bằng sự khác biệt (sự khác biệt giữa các điểm dữ liệu thô từ thời kỳ này sang thời kỳ khác) để cho phép chuỗi thời gian trở nên ổn định (các thuộc tính thống kê như giá trị trung bình và phương sai không đổi theo thời gian). Ba thành phần của ARIMA được thể hiện bằng các công thức sau:

$y_t = c + \phi_1 y_{t-1}+\phi_2 y_{t-2}+...+\phi_p y_{t-p}+\varepsilon_t$

Thành phần tự hồi quy (AR) được biểu thị dưới dạng hồi quy của các giá trị trước đó $y_{t-1}, y_{t-2}, ... y_{t-p}$ (còn gọi là độ trễ). Hằng số C đại diện cho một sự "trôi dạt":

$y_t = c + \varepsilon_t +\theta_1 \varepsilon_{t-1}+\theta_2 \varepsilon_{t-2}...+\theta_q \varepsilon_{t-q}$

Thành phần trung bình động (Moving Average - MA) được biểu thị dưới dạng trung bình có trọng số của các lỗi dự báo cho các khoảng thời gian trước đó, trong đó nó biểu thị một hằng số:

$y^{'}_{t} = y_t - y_{t-1}$

Thành phần tích hợp (khoảng cách của chuỗi thời gian) của một chuỗi thời gian có thể được biểu thị bằng khoảng cách giữa các giá trị trong một khoảng thời gian so với khoảng thời gian trước đó.

ARIMA rất phù hợp với dự báo chuỗi thời gian đơn (đơn biến), vì nó không yêu cầu các biến khác để thực hiện dự báo. Nó hoạt động tốt hơn so với các kỹ thuật dự báo đơn giản khác, chẳng hạn như trung bình động đơn giản (Moving Average), làm mịn hàm mũ hoặc hồi quy tuyến tính. Nó cũng rất dễ hiểu. Tuy nhiên, ARIMA chủ yếu là một thuật toán nhìn ngược nên dự báo không tốt cho các sự kiện bất ngờ. Ngoài ra, ARIMA là một mô hình dựa trên tuyến tính nên nó sẽ không hoạt động tốt đối với dữ liệu chuỗi thời gian có mối quan hệ phi tuyến tính phức tạp.

Thuật toán DeepAR

Các thuật toán dự báo dựa trên học sâu giải quyết một số thiếu sót của các mô hình dự báo truyền thống (ví dụ: ARIMA), chẳng hạn như các mối quan hệ phi tuyến tính phức tạp hoặc không có khả năng tận dụng các bộ dữ liệu đa biến. Các mô hình dựa trên học sâu cũng giúp đào tạo một mô hình toàn cầu – nghĩa là bạn có thể đào tạo một mô hình duy nhất hoạt động với nhiều chuỗi thời gian mục tiêu tương tự (ví dụ: chuỗi thời gian tiêu thụ điện của tất cả khách hàng) thay vì tạo một mô hình cho mỗi chuỗi thời gian.

Tự động hồi quy sâu (Deep Autoregressive - DeepAR) là một thuật toán dự báo dựa trên mạng thần kinh nâng cao có thể xử lý các tập dữ liệu lớn với nhiều chuỗi thời gian đích tương tự. Nó hỗ trợ các chuỗi thời gian liên quan (ví dụ: giá sản phẩm) để cải thiện độ chính xác của các mô hình dự báo.,Điều này đặc biệt hữu ích cho các sự kiện đột biến do các biến bên ngoài.

DeepAR hoạt động bằng cách sử dụng một mạng nơ-ron được gọi là mạng nơ-ron tái phát (Recurrent Neural Network - RNN) để lập mô hình chuỗi thời gian đích và kết hợp mạng đó với các chuỗi thời gian hỗ trợ bên ngoài khác. Tại mỗi khoảng thời gian, thay vì lấy giá trị của một biến đơn lẻ, đầu vào của mạng thần kinh sẽ lấy một vectơ đầu vào duy nhất biểu thị giá trị cho các biến (nghĩa là giá trị của các điểm dữ liệu cho nhiều chuỗi thời gian đích và giá trị của dữ liệu điểm cho nhiều chuỗi thời gian hỗ trợ) và cùng tìm hiểu các mẫu của các vectơ kết hợp theo thời gian (AR). Cách tiếp cận này cho phép mạng tìm hiểu mối quan hệ phi tuyến tính nội tại giữa tất cả các chuỗi thời gian khác nhau và trích xuất các mẫu chung được thể hiện bởi các chuỗi thời gian này. DeepAR đào tạo một mô hình toàn cầu duy nhất có thể hoạt động với nhiều chuỗi thời gian mục tiêu tương tự để dự báo.

Mặc dù DeepAR hoạt động tốt với các bộ dữ liệu đa biến phức tạp, nhưng nó yêu cầu lượng dữ liệu rất lớn để hoạt động. Các trường hợp sử dụng thực tế trong thế giới thực bao gồm dự báo bán lẻ quy mô lớn cho hàng nghìn hoặc hàng triệu mặt hàng, có tính đến các sự kiện bên ngoài, chẳng hạn như chiến dịch tiếp thị hoặc mua sắm dịp nghỉ lễ.

Thuật toán đề xuất (recommendation)

Hệ thống đề xuất là một trong những ứng dụng học máy được áp dụng nhiều nhất trong các ngành như bán lẻ, truyền thông và giải trí, tài chính và chăm sóc sức khỏe.

Các vấn đề về thuật toán đề xuất đã phát triển qua nhiều năm. Chúng hoạt động bằng cách dự đoán sở thích của người dùng đối với một mặt hàng chủ yếu dựa trên sự tương đồng về thuộc tính của người dùng hoặc mặt hàng hoặc tương tác giữa người dùng và mặt hàng. Sau đây, chúng ta hãy xem xét một số thuật toán phổ biến cho hệ thống gợi ý (recommendation system).

Thuật toán lọc cộng tác (Collaborative filtering)

Lọc cộng tác là một thuật toán đề xuất phổ biến dựa trên khái niệm rằng những người khác nhau có chung sở thích hoặc sở thích về một nhóm mặt hàng sẽ có khả năng chia sẻ sở thích chung về các mặt hàng khác. Về cơ bản, nó sử dụng trải nghiệm tập thể của những người khác nhau để giới thiệu các mặt hàng cho người dùng.

Hình dưới đây hiển thị ma trận tương tác giữa người dùng và mục để xếp hạng phim và như bạn có thể thấy, đó là một ma trận thưa thớt. Điều này có nghĩa là có nhiều mục trống trong ma trận, điều này hợp lý vì không ai có thể xem mọi bộ phim:

Thừa số ma trận (Matrix factorization) là một trong những triển khai của phương pháp lọc cộng tác. Đây là một mô hình mà trong đó các biểu diễn véc tơ (các phép nhúng) được học cho tất cả người dùng (U) và các mục (V) trong ma trận tương tác giữa người dùng và các mục. Cách để tìm hiểu các phần nhúng là đảm bảo tích của ma trận $UV^T$ sẽ gần đúng với ma trận ban đầu, do đó, để dự đoán giá trị cho một mục bị thiếu (điểm số mà người dùng có thể đánh giá cho phim chưa xem) trong ma trận ban đầu, chúng ta chỉ cần tính toán sản phẩm chấm giữa người dùng nhúng và vật phẩm nhúng.

Nhúng là một khái niệm quan trọng trong ML, mà chúng ta sẽ đề cập nhiều hơn trong phần sau khi chúng ta nói về các thuật toán cho NLP. Ý tưởng chính đằng sau quá trình nhúng là tạo ra một biểu diễn toán học cho các thực thể khác nhau theo cách mà các biểu diễn cho các thực thể tương tự gần nhau hơn trong một không gian nhiều chiều được biểu diễn bởi quá trình nhúng. Bạn có thể nghĩ về việc nhúng như một cách để nắm bắt ngữ nghĩa tiềm ẩn của các đối tượng khác nhau.

Thuật toán kẻ cướp nhiều cánh tay/ kẻ cướp theo bối cảnh

Hệ thống đề xuất dựa trên lọc cộng tác yêu cầu dữ liệu tương tác trước cho những người dùng và các mục đã xác định để hoạt động. Khi không có tương tác trước đó hoặc người dùng ẩn danh, quá trình lọc cộng tác sẽ hoạt động kém. Điều này còn được gọi là vấn đề khởi động lạnh . Hệ thống đề xuất dựa trên nhóm cướp nhiều cánh tay (Multi-Arm Bandit - MAB) là một cách tiếp cận để khắc phục vấn đề khởi động lạnh. Nó hoạt động dựa trên khái niệm thử và sai, và nó là một hình thức học tăng cường (Reinforcement Learning). Nó tương tự như một con bạc chơi đồng đều nhiều máy đánh bạc cùng một lúc và cố gắng quan sát xem máy nào mang lại kết quả tốt hơn.

Thuật toán MAB không có bất kỳ dữ liệu huấn luyện sẵn sàng sử dụng nào để huấn luyện một mô hình trước khi nó được triển khai. Nó áp dụng một phương pháp gọi là học trực tuyến, có nghĩa là nó huấn luyện mô hình khi dữ liệu được cung cấp dần dần. Khi bắt đầu học MAB, mô hình MAB sẽ đề xuất tất cả các tùy chọn (ví dụ: sản phẩm trên các trang thương mại điện tử) với xác suất như nhau cho người dùng. Khi người dùng bắt đầu tương tác (nhận phần thưởng) với một nhóm nhỏ các mặt hàng, mô hình MAB sẽ bắt đầu cung cấp các mặt hàng mà nó đã nhận được phần thưởng cao hơn (ví dụ: nhiều tương tác hơn) thường xuyên hơn. Nó tiếp tục đề xuất các mặt hàng mới với tỷ lệ phần trăm nhỏ hơn để xem liệu chúng có nhận được bất kỳ tương tác nào không. Đây còn được gọi là sự đánh đổi giữa khám phá (cung cấp các mặt hàng mới) và khai thác (cung cấp các mặt hàng có phần thưởng tốt đã biết).

Liên hệ

Tên

Email *

Thông báo *