Perceptron
Perceptron
Bạn là nhà tuyển dụng. Ứng viên có 3 năm kinh nghiệm và bằng đại học. Bạn sẽ nhận hay từ chối?
Bạn vừa thấy rằng quyết định phụ thuộc vào trọng số và ngưỡng. Bây giờ, hãy thử TỰ MÌNH phân loại dữ liệu — bạn sẽ trải nghiệm chính xác điều mà một Perceptron làm.
Thử làm bộ phân loại
Hai nhóm điểm: xanh (A) và đỏ (B). Kéo hai đầu mút tím để chia đúng cả 12 điểm. Điểm sai có viền cam.
100%
Hoàn hảo! 12/12 điểm đúng.
Đường thẳng bạn vừa vẽ chính là decision boundary của một Perceptron — đơn vị tính toán đơn giản nhất của mạng nơ-ron!
Perceptron luôn tạo một đường thẳng chia dữ liệu thành 2 nhóm. Thay đổi trọng số = xoay đường. Thay đổi bias = dịch đường.
Hình minh họa
(1 × 0.60) + (0 × 0.40) + (-0.50) = 0.10 > 0 → 1 (NHẬN)
Perceptron có thể phân loại dữ liệu XOR (dữ liệu không thể chia bằng một đường thẳng) không?
Giải thích
Perceptron do Frank Rosenblatt phát minh năm 1958, là đơn vị tính toán đơn giản nhất của mạng nơ-ron. Nó mô phỏng cách một nơ-ron sinh học nhận tín hiệu, xử lý, và đưa ra quyết định Có/Không.
Tổng có trọng số: z = w1*x1 + w2*x2 + ... + wn*xn + b
Hàm kích hoạt bước: output = 1 nếu z > 0, ngược lại output = 0
Perceptron tự cập nhật trọng số khi dự đoán sai: w_i = w_i + lr * (target - output) * x_i
import numpy as np
class Perceptron:
def __init__(self, n_inputs, lr=0.1):
self.weights = np.zeros(n_inputs)
self.bias = 0.0
self.lr = lr
def predict(self, x):
z = np.dot(x, self.weights) + self.bias
return 1 if z > 0 else 0
def train(self, X, y, epochs=10):
for _ in range(epochs):
for xi, yi in zip(X, y):
error = yi - self.predict(xi)
self.weights += self.lr * error * xi
self.bias += self.lr * error
# Ví dụ: học cổng AND
X = np.array([[0,0],[0,1],[1,0],[1,1]])
y = np.array([0, 0, 0, 1])
p = Perceptron(n_inputs=2)
p.train(X, y, epochs=10)
for xi in X:
print(f"{xi} -> {p.predict(xi)}")Perceptron chỉ giải được bài toán phân tách tuyến tính (tương tự bài toán hồi quy tuyến tính). Năm 1969, Minsky & Papert chứng minh nó không giải được XOR, dẫn tới "mùa đông AI" đầu tiên. Giải pháp: xếp nhiều perceptron thành lớp → Multi-Layer Perceptron (MLP).
- Perceptron nhận đầu vào, nhân trọng số, cộng bias, áp hàm bước → xuất 0 hoặc 1.
- Trọng số (weight) quyết định mức quan trọng của mỗi đầu vào; bias dịch chuyển đường phân chia.
- Chỉ tạo được đường thẳng → chỉ giải bài toán phân tách tuyến tính (AND, OR, nhưng không XOR).
- Nhiều perceptron xếp thành lớp = MLP, giải được bài toán phi tuyến.
Perceptron là nền tảng của mạng nơ-ron nhân tạo hiện đại — mỗi neuron trong mạng sâu đều hoạt động theo nguyên lý tương tự nhưng với hàm kích hoạt phức tạp hơn.
Kiểm tra hiểu biết
Perceptron tính kết quả đầu ra bằng cách nào?