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:
Các thuật toán để phân cụm (Clustering)
Thuật toán K-means
- 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.
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: