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 đó.[1] 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.[2] 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).[3] 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.[4]
Định nghĩa Perceptron
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 độ.[2]
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:[5]
- 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 ý.[2]
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 (hidden layer activations), và là ma trận trọng số (weight matrix) của lớp ẩn 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 ().[2]
Lịch sử Perceptron
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.[6]

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.[5]
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.[8] 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.[9] 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.[10] 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.[11]
Tính chất toán học Perceptron
Đị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.[12]
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.[13] 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,[14] 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.[15]
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 Perceptron
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.[16] 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ế.[17]
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.[18] 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 cả các kiến trúc này.[19]
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.[10] 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.[19]
Tham khảo Perceptron
- ↑ Rosenblatt, Frank (1958). "The Perceptron: A Probabilistic Model for Information Storage and Organization in the Brain". Psychological Review. 65 (6): 386–408. doi:10.1037/h0042519.
- 1 2 3 4 Goodfellow, Ian; Bengio, Yoshua; Courville, Aaron (2016). Deep Learning. MIT Press. tr. 164–184. ISBN 978-0-262-03561-3.
- ↑ McCulloch, Warren S.; Pitts, Walter (1943). "A logical calculus of the ideas immanent in nervous activity". The Bulletin of Mathematical Biophysics. 5 (4): 115–133. doi:10.1007/BF02478259.
- ↑ Rumelhart, David E.; Hinton, Geoffrey E.; Williams, Ronald J. (1986). "Learning representations by back-propagating errors". Nature. 323 (6088): 533–536. doi:10.1038/323533a0.
- 1 2 Rosenblatt, Frank (1958). "The Perceptron: A Probabilistic Model for Information Storage and Organization in the Brain". Psychological Review. 65 (6): 386–408. doi:10.1037/h0042519.
- ↑ McCulloch, Warren S.; Pitts, Walter (1943). "A logical calculus of the ideas immanent in nervous activity". The Bulletin of Mathematical Biophysics. 5 (4): 115–133. doi:10.1007/BF02478259.
- ↑ Hay, John Cameron (1960). Mark I perceptron operators' manual (Project PARA) / (PDF). Buffalo: Cornell Aeronautical Laboratory. Bản gốc (PDF) lưu trữ ngày 27 tháng 10 năm 2023.
- ↑ Minsky, Marvin; Papert, Seymour (2017). Perceptrons: an introduction to computational geometry. Léon Bottou. Cambridge, Massachusetts: The MIT Press. ISBN 978-0-262-34393-0.
- ↑ Rumelhart, David E.; Hinton, Geoffrey E.; Williams, Ronald J. (1986). "Learning representations by back-propagating errors". Nature. 323 (6088): 533–536. doi:10.1038/323533a0.
- 1 2 LeCun, Yann; Bottou, Léon; Bengio, Yoshua; Haffner, Patrick (1998). "Gradient-based learning applied to document recognition". Proceedings of the IEEE. 86 (11): 2278–2324. doi:10.1109/5.726791.
- ↑ Vaswani, Ashish; Shazeer, Noam; Parmar, Niki; Uszkoreit, Jakob; Jones, Llion; Gomez, Aidan N.; Kaiser, Łukasz; Polosukhin, Illia (2017). "Attention is all you need". Advances in Neural Information Processing Systems. 30.
- ↑ Novikoff, Albert J. (1963). "On convergence proofs for perceptrons". Office of Naval Research.
- ↑ Block, H. D.; Levin, S. A. (1970). "On the boundedness of an iterative procedure for solving a system of linear inequalities". Proceedings of the American Mathematical Society. 26 (2): 229–235. doi:10.1090/S0002-9939-1970-0265383-5.
- ↑ Cybenko, George (1989). "Approximation by superpositions of a sigmoidal function". Mathematics of Control, Signals and Systems. 2 (4): 303–314. doi:10.1007/BF02551274.
- ↑ Hornik, Kurt (1991). "Approximation capabilities of multilayer feedforward networks". Neural Networks. 4 (2): 251–254. doi:10.1016/0893-6080(91)90009-T.
- ↑ Gardner, Matt W.; Dorling, Stephen R. (1998). "Artificial neural networks (the multilayer perceptron)—a review of applications in the atmospheric sciences". Atmospheric Environment. 32 (14–15): 2627–2636. doi:10.1016/S1352-2310(97)00447-0.
- ↑ Grinsztajn, Leo; Oyallon, Edouard; Varoquaux, Gael (ngày 6 tháng 12 năm 2022). "Why do tree-based models still outperform deep learning on typical tabular data?". Advances in Neural Information Processing Systems (bằng tiếng Anh). Quyển 35. tr. 507–520.
- ↑ Bengio, Yoshua; Ducharme, Réjean; Vincent, Pascal; Jauvin, Christian (2003). "A Neural Probabilistic Language Model". Journal of Machine Learning Research. Quyển 3 số Feb. tr. 1137–1155. ISSN 1533-7928.
- 1 2 Vaswani, Ashish; Shazeer, Noam; Parmar, Niki; Uszkoreit, Jakob; Jones, Llion; Gomez, Aidan N; Kaiser, Łukasz; Polosukhin, Illia (2017). "Attention is All you Need". Advances in Neural Information Processing Systems. Quyển 30. Curran Associates, Inc.
- 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