Notes on Convolutional Neural Network

About CNN...

[1 - LeNet 1998] *(good for explain how convo layer works)

| CONVO LAYER |

With local receptive field, neurons can extract elementary visual features such as:
- oriented edges
- end points
- corners...
These features are then combined by the subsequent layers in order to detect higher-order features.
A unit in a feature map has 25 inputs connected to a 5 by 5 area in the input, called "receptive" field.

All the units in a feature map detect the same feature at all possible locations on the input.
In the case of LeNet-5, at each input location six different types of features are extracted, by six units in identical locations in the six feature maps.

If the input image is shifted, the feature map output will be shifted by the same amout, but will be left unchanged otherwise.

==========================================================

| Activation function |

Sau mỗi tầng Convolution, thường áp dụng activation function để đưa tính phi tuyến vào mô hình.
Trong thực tế, dữ liệu không tuyến tính
Sử dụng activation function để xác định sự có mặt của một đặc trưng nhất định, đưa ra ranh giới quyết định phi tuyến (ngoài hai giá trị 0-1)


==========================================================

| POOLING LAYER |

Khi 1 feature đã được detected, vi trí chính xác của nó trở nên bớt quan trọng đi. Chỉ vị trí tương đối so với các feature khác là quan trọng. Không chỉ vị trí chính xác của những feature đó là ko liên quan cho việc nhận diện mẫu hình, nó còn có thể có hại vì vị trí có thể sẽ thay đổi với những đối tượng khác nhau. Cách đơn giản để giảm độ chính xác mà cùng với nó là vị trí riêng biệt của feature trong feature map là: giảm độ phân giải của feature map => Sử dụng sub-sampling, giảm sự nhạy cảm của output đối với shift và distortion. Layer này chứa 6 feature maps, ứng với mỗi feature map trong tầng trước.

Các receptive field liền kề thì không chồng chéo lên nhau.

==========================================================
Số lượng lớn những bất biến về biến đổi hình học của đầu vào có thể đạt được nhờ sự giảm về độ phân giải, bù vào sự tăng lên của việc biểu diễn (số lượng feature map)

Tất cả những weight (trọng số) đều đc học từ back-propagation, mạng nhân chập có thể đc xem như là sự tổng hợp những feature extractor của chính nó. Kỹ thuật chung trọng số cho 1 kernel có hiệu ứng phụ nhằm giảm số lượng các tham số tự do, do đó mà giảm dung lượng của machine và giảm khoảng cách giữa test error và training error

==========================================================
| Dropout regulation |

Mạng nơ ron sâu cùng với số lượng lớn các tham số là hệ thống học máy rất mạnh mẽ. Tuy nhiên, overfitting là một vấn đề nghiêm trọng trong đó. Những mạng lớn thường chạy khá chậm, rất khó để đối phó với overfitting bằng cách kết hợp dự đoán của nhiều mạng lớn lúc đang chạy test.

Dropout là một kỹ thuật để xử lý vấn đề này. Ý tưởng chủ đạo là ngẫu nhiên bỏ đi các khối (cùng với những kết nối liên quan) từ mạng nơ ron trong quá trình training. Điều này sẽ cản trở việc các khối co-adapting quá mức. Trong quá trình training, các mẫu dropout từ số lượng hàm mũ của các mạng mỏng đi. Tại test time, khá dễ dàng để ước lượng hiệu ứng từ các dự đoán trung bình của những mạng đã mỏng đi bằng cách sử dụng một mạng không mỏng mà có trọng số nhỏ hơn. Điều này giảm overfitting và mang lại cải thiện đáng kể so với các pp điều chỉnh khác.

Tại training time: một số lượng các neuron bị vô hiệu hóa

Khi training: Mỗi node có thể bị bỏ đi với xác suất 1-p hoặc đc giữ lại với xác suất p, từ đó ta có đc một mạng tối giản. Chỉ có mạng đã giảm được trained với data trong bước này. Những node bị loại bỏ sau đó đc chèn lại vào mạng với weight ban đầu. Xác suất để 1 hidden node bị bỏ đi thường là 0.5; với input node thì số này thấp hơn nhiều vì ttin sẽ bị mất trực tiếp nếu input node bị loại bỏ.

Khi test: Ta thường muốn tìm được một mẫu trung bình cho tất cả 2 mũ n network đã đropped out có thể có. Điều này là ko thể với n lớn. Tuy nhiên ta có thể tìm sự xấp xỉ bằng cách sử dụng mạng đầy đủ với mỗi node có trọng số giảm đi p lần, nên giá trị mong đợi ở output tại mỗi node thì giống với training stage.

Đây là đóng góp lớn nhất của dropout method: Mặc dù nó tạo ra 2 mũ n mạng nơ ron, cho phép việc kết hợp các model, tại thời điểm test chỉ cần một mạng để thử.

Bằng cách tránh train mọi node trên toàn bộ data, dropout giảm overfitting. PP này cải thiện đáng kể tốc độ training, làm cho việc kết hợp model thực tế hơn, giảm thiểu tương tác giữa các node, làm cho chúng có thể học được những đặc trưng mạnh mẽ hơn để khái quát hóa data dễ dàng hơn.

=========================================================
top-5 error rate: tỷ lệ của test images có nhãn đúng ko nằm trong 5 nhãn đưa ra bởi model

=========================================================

Reference:


Link trên là một (trong 1 series) bài viết rất hay về CNN. Rất khuyến khích đọc :)
Trong đó có 1 phần nói về các task cụ thể trong loạt các bài toán liên quan: Classification, Localization, Detection, Segmentation.

Comments

Popular Posts