Perceptron

Trong học máy, perceptron có hai nghĩa liên quan chặt chẽ nhau. Thứ nhất, perceptron là một thuật toán học có giám sát cho bài toán phân loại nhị phân: thuật toán nhận một vector số thực làm đầu vào và cho ra một giá trị nhị phân dựa trên tổ hợp tuyến tính có trọng số của các đầu vào đó. Thứ hai, perceptron là đơn vị cơ bản của mạng thần kinh nhân tạo: mỗi perceptron mô phỏng một lớp neuron nhân tạo, nhận tín hiệu từ các đơn vị khác, tính tổng có trọng số, rồi truyền kết quả qua một hàm kích hoạt. Thuật toán perceptron được dùng để huấn luyện một mô hình mạng thần kinh truyền thẳng với duy nhất một lớp perceptron cho bài toán phân loại nhị phân. 

Khi kết hợp nhiều đơn vị cơ bản này với nhau, ta có một mạng perceptron đa lớp (tiếng Anh: multilayer perceptron, viết tắt MLP). Khi này, nhiều perceptron được tổ chức thành các lớp nối tiếp nhau với các hàm kích hoạt phi tuyến, tạo thành nền tảng của học sâu hiện đại.

Perceptron được Frank Rosenblatt đề xuất năm 1958 dựa trên mô hình neuron nhân tạo của Warren McCulloch và Walter Pitts (1943). Dù perceptron đơn lớp chỉ có thể phân loại các tập dữ liệu tuyến tính phân ly được (tức là có hai loại dữ liệu mà chỉ cần kẻ một đường thẳng tuyến tính là chia rẽ được hai nhóm với nhau), perceptron đa lớp kết hợp với thuật toán lan truyền ngược đã khắc phục giới hạn này và mở ra thời kỳ phát triển mạnh của học sâu.

Định nghĩa

Perceptron đơn lớp 
Perceptron đơn lớp là một bộ phân loại tuyến tính (linear classifier): nó ánh xạ vector đầu vào  sang giá trị nhị phân  theo công thức

trong đó  là vector trọng số (weight vector),  là hệ số điều chỉnh (bias), và  là hàm dấu:  nếu , ngược lại . Hệ số điều chỉnh  là giá trị đầu ra của tổ hợp tuyến tính khi tất cả đầu vào bằng không, cho phép đường biên phân loại (decision boundary) dịch chuyển tự do thay vì bị buộc phải đi qua gốc tọa độ.

Thuật toán 

Perceptron học bằng cách điều chỉnh trọng số sau mỗi mẫu huấn luyện. Cho tập huấn luyện (training set)  với  là nhãn mong muốn, thuật toán gồm các bước sau:

 Khởi tạo vector trọng số , bias , và đặt bộ đếm thời gian .
 Với mỗi mẫu  trong tập huấn luyện:
 Tính đầu ra hiện tại: 
 Cập nhật trọng số và bias theo quy tắc:trong đó  là tốc độ học (learning rate). Nếu dự đoán đúng thì  và trọng số cũng như bias không thay đổi; nếu dự đoán sai thì cả hai được đẩy theo hướng làm giảm sai số.
 Tăng bộ đếm: 
 Lặp lại bước 2 cho đến khi sai số trên toàn tập huấn luyện nhỏ hơn ngưỡng cho trước, hoặc đạt số vòng lặp tối đa.

Perceptron đa lớp 

Perceptron đa lớp (multilayer perceptron, MLP) là một mạng thần kinh truyền thẳng gồm ít nhất ba lớp: một lớp đầu vào (input layer), một hoặc nhiều lớp ẩn (hidden layer), và một lớp đầu ra (output layer). Các lớp kết nối đầy đủ với nhau (fully connected), tức là mỗi đơn vị trong một lớp kết nối với mọi đơn vị trong lớp kế tiếp. Khác với perceptron đơn lớp, các đơn vị trong lớp ẩn dùng hàm kích hoạt phi tuyến, cho phép MLP xấp xỉ các hàm phức tạp tùy ý.

Lan truyền thuận (forward propagation) qua một lớp ẩn được tính như sau. Cho đầu vào , đầu ra của lớp ẩn là

và đầu ra của lớp cuối là

trong đó  là vector kích hoạt của lớp ẩn trước đấy,  và  là ma trận trọng số (weight matrix) của lớp ẩn hiện tại và lớp đầu ra,  và  là vector hệ số điều chỉnh tương ứng, và  là hàm kích hoạt phi tuyến áp dụng theo từng phần tử — ví dụ ReLU () hoặc hàm sigmoid ().

Lịch sử 
Nền tảng lý thuyết của perceptron được đặt ra năm 1943, khi Warren McCulloch và Walter Pitts đề xuất mô hình neuron nhân tạo nhị phân như một mô hình logic của mạng thần kinh sinh học.Frank Rosenblatt tại Phòng thí nghiệm Hàng không Cornell công bố thuật toán perceptron năm 1958, đặt nền móng cho khái niệm học có giám sát bằng điều chỉnh trọng số. Ông cũng xây dựng phần cứng chuyên dụng gọi là Mark I Perceptron để nhận dạng hình ảnh.

Tuy nhiên, perceptron đơn lớp nhanh chóng bộc lộ giới hạn cơ bản: nó chỉ phân loại được các tập dữ liệu tuyến tính phân ly được. Năm 1969, Marvin Minsky và Seymour Papert trong cuốn Perceptrons chứng minh rằng perceptron đơn lớp không thể học hàm XOR, một hàm Boolean đơn giản mà không tuyến tính phân ly được. Dù về mặt lý thuyết chỉ cần thêm một lớp perceptron là có thể giải quyết bài toán này, tại thời điểm đó chưa có thuật toán huấn luyện hiệu quả nào cho mạng nhiều lớp, khiến MLP không khả thi trong thực tế. Hệ quả là nguồn tài trợ và sự quan tâm đến nghiên cứu mạng thần kinh sụt giảm mạnh trong suốt những năm 1970.

Bước ngoặt đến năm 1986, khi David E. Rumelhart, Geoffrey Hinton và Ronald Williams phổ biến thuật toán lan truyền ngược (backpropagation) cho MLP. Thuật toán này tính gradient của hàm mất mát theo từng trọng số trong mạng bằng quy tắc dây chuyền (chain rule) của giải tích, lan truyền sai số từ lớp đầu ra ngược về các lớp ẩn để cập nhật trọng số. Điều này cho phép huấn luyện MLP nhiều lớp một cách hiệu quả, giải quyết trực tiếp giới hạn mà Minsky và Papert đã chỉ ra.

Kể từ đó, MLP trở thành thành phần cốt lõi của các kiến trúc học sâu hiện đại. Trong các mạng tích chập (CNN), các lớp MLP ở cuối mạng đảm nhiệm việc phân loại dựa trên các đặc trưng mà các lớp tích chập trích xuất. Trong các mô hình transformer, khối MLP xuất hiện xen kẽ với cơ chế tự chú ý (self-attention) trong mỗi lớp của mạng.

Tính chất toán học

Định lý hội tụ perceptron 

Nếu tập huấn luyện là tuyến tính phân ly được, tức là tồn tại một siêu phẳng phân chia hoàn toàn hai nhóm dữ liệu, thì thuật toán perceptron được đảm bảo tìm ra được siêu phẳng đó sau hữu hạn bước.

Về mặt toán học: Cho tập huấn luyện  với . Tập này tuyến tính phân ly được bởi một vector  với biên phân ly (margin) . Khi đó thuật toán perceptron hội tụ sau nhiều nhất  lần cập nhật trọng số.

Để hiểu tại sao, có thể hình dung như sau: Vector trọng số  xác định hướng của đường biên phân loại trong không gian. Mỗi lần perceptron phân loại sai một điểm dữ liệu, nó điều chỉnh  bằng cách cộng thêm vector của điểm đó vào, qua đó di chuyển nhẹ đường biên về phía đúng hơn. 

Chứng minh xem liệu quá trình này có đạt đến kết quả  hay không bằng cách theo dõi hai đại lượng hình học song song. Đại lượng thứ nhất là góc giữa  hiện tại và  — vector trọng số tối ưu cần tìm. Mỗi lần cập nhật, tích vô hướng  tăng ít nhất một lượng :

Tích vô hướng lớn có nghĩa là  đang hướng ngày càng gần về phía  hơn. Đại lượng thứ hai là độ dài của . Mỗi lần cập nhật chỉ có thể làm tăng bình phương độ dài nhiều nhất một lượng , vì perceptron chỉ cập nhật khi phân loại sai, tức là khi :

Sau  lần cập nhật, tích vô hướng  tăng ít nhất , còn độ dài  tăng nhiều nhất . Ta thấy tích này tăng tỉ lệ thuận với số lần cập nhật, trong khi độ dài chỉ tăng theo căn bậc hai của số lần cập nhật. Góc giữa hai vector được xác định bởi tỉ lệ giữa tích vô hướng và tích của hai độ dài; vì tử số tăng nhanh hơn mẫu số, góc này buộc phải thu hẹp dần về không. Nhưng góc không thể âm, nên số lần cập nhật phải dừng lại ở ngưỡng thấp hơn .

Định lý cũng cho thấy perceptron hội tụ nhanh hơn khi biên phân ly  lớn (tức là khi hai nhóm dữ liệu cách xa nhau) và chậm hơn khi các điểm dữ liệu nằm xa gốc tọa độ ( lớn).

Định lý cycling 

Khi tập huấn luyện không tuyến tính phân ly được, không tồn tại đường biên nào phân loại đúng toàn bộ dữ liệu, và thuật toán perceptron sẽ không bao giờ tìm được lời giải hoàn hảo. Tuy nhiên, điều đó không có nghĩa là thuật toán hoạt động tùy tiện.

Về mặt toán học: Nếu tập huấn luyện  hữu hạn, thì tồn tại một chặn trên  sao cho với mọi vector trọng số khởi tạo , tất cả các vector trọng số  trong quá trình học đều thỏa mãn .

Nói cách khác, dù không hội tụ, vector trọng số vẫn bị giới hạn trong một vùng hữu hạn. Thuật toán sẽ lặp đi lặp lại trong vùng đó thay vì tăng trưởng ra vô cùng. Điều này có nghĩa là với dữ liệu không tuyến tính phân ly được, perceptron không phải là công cụ phù hợp, và cần dùng MLP thay thế.

Định lý xấp xỉ toàn năng (Universal Approximation Theorem) 

Một MLP với một lớp ẩn duy nhất nhưng đủ số đơn vị có thể xấp xỉ bất kỳ hàm liên tục nào tùy ý gần trên một miền bị chặn. Nói cách khác, về mặt lý thuyết MLP không bị giới hạn bởi dạng hàm mà nó có thể học, miễn là mạng đủ lớn. Kết quả này được George Cybenko chứng minh lần đầu năm 1989 cho trường hợp hàm kích hoạt sigmoid, sau đó được Kurt Hornik tổng quát hóa năm 1991 cho mọi hàm kích hoạt liên tục phi đa thức.

Về mặt toán học: Cho  là một hàm kích hoạt liên tục phi đa thức. Khi đó với bất kỳ hàm liên tục  trên một tập compact  và bất kỳ , tồn tại một MLP một lớp ẩn với hàm kích hoạt  xấp xỉ  với sai số nhỏ hơn  trên toàn bộ .

Tuy nhiên, định lý này chỉ đảm bảo sự tồn tại về mặt lý thuyết: nó không nói gì về số lượng đơn vị cần thiết trong thực tế (thế nào mới là "đủ lớn"), cũng không đảm bảo rằng thuật toán huấn luyện sẽ tìm được mạng xấp xỉ mong muốn từ dữ liệu hữu hạn.

Ứng dụng 

MLP có thể được áp dụng cho bất kỳ bài toán nào có thể biểu diễn dưới dạng ánh xạ từ vector đầu vào sang đầu ra — phân loại, hồi quy, hay ước lượng xác suất. Tuy nhiên, trong nhiều lĩnh vực cụ thể, các phương pháp khác thường cho kết quả tốt hơn hoặc hiệu quả hơn.

Với dữ liệu dạng bảng (tabular data), MLP cũng có thể được dùng cho các bài toán phân loại và hồi quy. Tuy nhiên, trên loại dữ liệu này, các phương pháp dựa trên cây quyết định như random forest hay gradient boosting (XGBoost, LightGBM) thường cho kết quả tốt hơn và huấn luyện nhanh hơn trong thực tế.

Với dữ liệu tuần tự như văn bản hay giọng nói, MLP từng được dùng trong các hệ thống nhận dạng giọng nói và xử lý ngôn ngữ tự nhiên đời đầu. Tuy nhiên, vì MLP không mô hình hóa được thứ tự câu từ và sự phụ thuộc theo thời gian trong dữ liệu tuần tự, các kiến trúc chuyên dụng hơn như mạng thần kinh hồi quy (RNN) và bộ nhớ dài ngắn hạn (LSTM) từng trở thành lựa chọn chủ đạo cho các bài toán này, trước khi bị kiến trúc transformer thay thế gần như hoàn toàn tất cả các kiến trúc này.

Vai trò lớn nhất và bền vững nhất của MLP là làm thành phần trong các kiến trúc học sâu phức tạp hơn. Trong mạng thần kinh tích chập, các lớp tích chập trích xuất đặc trưng không gian từ ảnh, sau đó một hoặc nhiều lớp MLP ở cuối mạng tổng hợp các đặc trưng đó để đưa ra quyết định phân loại. Trong kiến trúc transformer, mỗi khối encoder và decoder chứa một lớp MLP (thường gọi là feed-forward sublayer) xen kẽ với cơ chế tự chú ý, đảm nhiệm việc biến đổi phi tuyến các biểu diễn sau khi chúng đã được tích hợp thông tin ngữ cảnh.

Tham khảo 

Thuật toán học máy
Học máy
Trí tuệ nhân tạo
Khoa học máy tính