2.4 Học Sâu (Deep Learning)
2.4.3 Mạng nơ-ron tích chập
Mạng nơ-ron tích chập (Convolutional Neural Network - CNN) là một trong những phương pháp được áp dụng nhiều nhất trong lĩnh vực xử lý ảnh (computer vision) để giải quyết các bài tốn như nhận dạng hình ảnh, phân loại hình ảnh, phát hiện đối tượng, nhận diện khn mặt,…v.v. CNN được xây dựng từ ba ý tưởng chính: trường tiếp nhận cục bộ (local receptive fields), chia sẻ trọng số (shared weights) và tổng hợp (pooling). CNNs bao gồm một vài tầng convolution kết hợp với các hàm kích hoạt phi tuyến (nonlinear activation function) để tạo ra thông tin trừu tượng hơn cho các tầng tiếp theo.
28
Lớp tích chập (Convolution)
Mục đích của tầng này là trích xuất các đặc trưng tương ứng với đầu vào. Từ ý tưởng local receptive fields, sẽ tiến hành chọn lựa một bộ lọc để tìm và lấy ra những thơng tin quan trọng từ đầu vào và thu nhỏ số chiều cho những lớp ẩn tiếp theo. Để tính tốn các giá trị đầu ra cho các vùng lọc chúng tơi sẽ dùng đến các hàm kích hoạt. Một số hàm kích hoạt được sử dụng hiện nay là ReLU, hàm kích hoạt Tanh hay Sigmoid. Hiện nay, hàm kích hoạt ReLU được sử dụng nhiều hơn so với các hàm cịn lại. Hình 2.11 sẽ mơ tả q trình tính tốn tại tầng tích chập, sử dụng hàm kích hoạt ReLu để tính tốn và sử dụng bước trượt cho bộ lọc là 1.
Hình 2. 11: Ví dụ phép tổng hợp lớn nhất (maxcoolinw cho đầu vào 5x5 và bộ lộc 3x3 với 2 dạng bước trượt 1 và 2
Hàm kích hoạt Rectfied Linear Units (ReLU)
ReLU là hàm kích hoạt phổ biến nhất cho CNN và đựợc ưa chuộng vì tính tốn đơn giản, giúp hạn chế tình trạng vanishing gradient, và cũng cho kết quả tốt hơn. ReLu cũng như các hàm kích hoạt khác, đuợc đặt ngay sau tầng convolution, ReLu sẽ gán những giá trị âm bằng 0 và giữ nguyên giá trị của đầu vào khi lớn hơn 0. ReLU cũng có một số vấn đề tiềm ẩn nhỏ khơng có đạo hàm tại điểm 0, giá trị của hàm ReLU có thể lớn đến vô cùng và nếu chúng ta không khởi tạo trọng số cẩn thận, hoặc khởi tạo learning rate quá lớn thì những nơ ron ở tầng này sẽ rơi vào trạng thái chết, tức là ln có giá trị < 0.
29
Tầng tổng hợp Pooling
Sau tầng tích chập sẽ thực hiện tầng tổng hợp để giảm số chiều đặc trưng đầu vào và đồng thời cũng giữ lại các thông tin quan trọng từ ngữ liệu đầu vào. Khi giảm số lượng chiều đi thì cho phép giảm số lượng tham số, rút ngắn thời gian huấn luyện và hạn chế overfitting. Cơ chế của tầng tổng hợp tương tự như tầng tích chập, cũng tiến hành sử dụng một bộ lọc trượt qua ngữ liệu đầu vào và trích xuất ra các đặc trưng cần thiết trong vùng bộ lọc đó. Thế nhưng, trái với bộ lọc tại tầng tích chập, bộ lọc ở tầng tổng hợp sẽ không chứa các tham số. Hiện nay, phương pháp được sử dụng phổ biến ở tầng tổng hợp là phép tổng hợp lớn nhất (maxpooling: chỉ lấy giá trị cao nhất trong vùng của bộ lọc đi qua). Ngồi ra, cịn có phương pháp phép tổng hợp trung bình (averagepooling: tính tốn giá trị trung bình trong vùng bộ lọc đi qua).
Hình 2. 12: Ví dụ minh họa lớp Pooling.
Lớp đầy đủ Fully connected layer
Kiến trúc của tầng liên kết đầu đủ tương tự như kiến trúc của mạng nơ-ron nhân tạo được trình bày ở phần đầu tiên. Kết quả đầu ra của cả hai tầng tích chập và tầng tổng hợp đều là các ma trận ở dạng hai chiều hoặc 3 chiều. Trong khi đó, đầu ra mong muốn của hệ thống là một vector một chiều. Để giải quyết vấn đề này trong tầng liên kết đầy đủ, đầu tiên chúng ta tiến hành làm phẳng đầu ra ở lớp tổng hợp cuối cùng thành một vector và vector này chính là đầu vào của các lớp liên kết đầy đủ. Lớp cuối cùng trong tầng liên kết đầy đủ chính là đầu ra của bài tốn được quan tâm đến.
Kỹ thuật DropOut
Đây là một kỹ thuật được sử dụng để giảm Overfitting. Overfitting là trường hợp mà mơ hình được xây dựng q khít so với bộ ngữ luyện huấn luyện. Tuy nhiên, đối với các trường hợp khác ngoài các trường hợp của bộ ngữ luyện huấn luyện thì mơ hình
30
khơng dự đốn được hoặc dự đốn sai. Để giải quyết vấn đề overfitting trong quá trình xây dựng mơ hình, một ý tưởng đơn giản được tiếp cận đó là kỹ thuật dropout. Ý tưởng của kỹ thuật dropout, trong quá trình huấn luyện, ở mỗi lần lặp, một số nơ-ron tạm thời sẽ bị bỏ đi hoặc vơ hiệu hóa với một xác suất p cho trước. Các nơ-ron bị loại bỏ sẽ được liên kết lại ở mỗi bước huấn luyện, do đó, một nơ-ron bị loại bỏ ở bước huấn luyện này thì có thể hoạt động trở lại ở bước huấn luyện tiếp theo. Với cách tiếp cận này, trong quá trình huấn luyện sẽ ngăn chặn được việc mơ hình q phụ thuộc vào một số lượng nhỏ các nơron và buộc mọi nơ-ron có thể hoạt động độc lập với nhau. Hình sau đây là một ví dụ của kỹ thuật dropout trong việc xử lý trường hợp overfitting.
Hình 2. 13: Kỹ thuật DropOut để giảm Overfitting