Mạng tích chập (CNN) cho ảnh

Bài 5/715 phút

Ảnh có cấu trúc không gian: pixel gần nhau liên quan với nhau. Lớp tích chập trượt một bộ lọc nhỏ (vd 3×3) trên ảnh — cùng một bộ trọng số dùng cho mọi vị trí, nên ít tham số và phát hiện được cùng một đặc trưng (cạnh, góc…) ở bất cứ đâu.

conv.py
sobel_x = np.array([[1, 0, -1],
                    [2, 0, -2],
                    [1, 0, -1]])   # bộ lọc phát hiện cạnh dọc
# out[i, j] = Σ img[i+u, j+v] · kernel[u, v]   (padding 'valid', stride 1)
# Ảnh H×W, kernel k×k → kết quả (H−k+1)×(W−k+1)

Max pooling lấy giá trị lớn nhất trong mỗi ô nhỏ để giảm kích thước và giữ đặc trưng nổi bật. Một CNN điển hình: [Conv → ReLU → Pool] × vài lần → Flatten → MLP → softmax.

?Ảnh 28×28, kernel 5×5, padding valid, stride 1. Kết quả kích thước bao nhiêu?

Luyện tập ngay

Viết code và chấm tự động — có trợ lý AI gợi ý khi bí.