Trong bài trước, chúng ta đã tìm hiểu về hồi quy logistic, trong bài này, hãy cùng tìm hiểu về thuật toán perceptron, nguồn gốc của các mang nơ ron mạnh mẽ hiện nay.
Giới thiệu về Perceptron
Perceptron là một trong những thuật toán học máy đầu tiên và đơn giản nhất, được Frank Rosenblatt phát minh vào năm 1957. Nó được thiết kế như một mô hình phân loại nhị phân, nghĩa là dự đoán một trong hai lớp có thể xác định. Mặc dù đơn giản, Perceptron là nguồn cảm hứng cho các mạng neuron sâu ngày nay.
Cấu trúc của Perceptron
Một Perceptron có thể được xem như là một neuron nhân tạo đơn lẻ. Nó bao gồm:
- Đầu vào (inputs): Mỗi đầu vào được đánh trọng số (weights) riêng biệt.
- Tổng trọng số (weighted sum): Tính tổng các đầu vào nhân với trọng số tương ứng.
- Hàm kích hoạt (activation function): Đơn vị tính toán sẽ quyết định neuron có nên được kích hoạt hay không.
Thông thường, hàm kích hoạt được sử dụng cho Perceptron là hàm step function, nghĩa là nếu tổng trọng số vượt quá một ngưỡng nào đó, đầu ra sẽ là 1 (hoặc lớp A), còn nếu không vượt quá, đầu ra sẽ là -1 (hoặc lớp B).
Thuật toán Perceptron Learning
Thuật toán Perceptron tìm hiểu cách phân chia dữ liệu thành hai lớp bằng cách tìm một “siêu phẳng” (hyperplane) hợp lý. Trong không gian hai chiều, siêu phẳng này là một đường thẳng.
Quá trình học diễn ra qua các bước sau:
- Khởi tạo trọng số với giá trị nhỏ hoặc bằng không.
- Với mỗi mẫu trong tập dữ liệu huấn luyện:
- Tính tổng trọng số.
- Áp dụng hàm kích hoạt để nhận được dự đoán.
- Cập nhật trọng số dựa trên sự chênh lệch giữa dự đoán và nhãn thực tế.
- Lặp lại bước 2 cho đến khi đạt được số lượt lặp tối đa hoặc lỗi trên tập huấn luyện không thay đổi.
Cách cập nhật trọng số
Cập nhật trọng số được thực hiện dựa trên công thức sau:
w_i(t+1) = w_i(t) + η * (y_j - ŷ_j) * x_ijTrong đó:
- w_i là giá trị trọng số thứ i.
- η là tốc độ học (learning rate ), một số thực dương nhỏ.
- y_j là nhãn thực tế của mẫu j.
- ŷ_j là nhãn dự đoán.
- x_ij là giá trị đầu vào thứ i của mẫu j.
Lưu ý khi sử dụng Perceptron
Perceptron chỉ có thể phân loại chính xác khi hai lớp là tuyến tính phân biệt được, tức là có thể tách biệt bằng một đường thẳng. Trong trường hợp dữ liệu không tuyến tính phân biệt, Perceptron sẽ không thể đạt được hội tụ hoàn toàn.
Kết luận
Perceptron là một thuật toán cơ bản và quan trọng trong lịch sử phát triển của Machine Learning và Neural Networks. Nó đặt nền móng cho sự phát triển của các thuật toán phức tạp hơn như mạng Perceptron đa lớp và sau này là mạng neuron sâu. Hiểu rõ Perceptron và thuật toán học của nó là bước đầu tiên quan trọng trong việc học máy và xây dựng các mô hình AI.