Khái niệm về mạng ResNet

Một phần của tài liệu Nhận diện khuôn mặt ứng dụng trong robot tiếp tân (Trang 37 - 41)

ResNet (residual network), là mạng học sâu được quan tâm từ những năm 2012 sau cuộc thi LSVRC2012 và trở nên phổ biến trong lĩnh vực computer vision. ResNet khiến cho việc huấn luyện hàng trăm thậm chí hàng nghìn lớp của mạng nơron trở nên khả thi và hiệu quả. Nhờ khả năng biểu diễn mạnh mẽ của ResNet, hiệu suất của những ứng dụng computer vision, không chỉ ứng các dụng phân loại hình ảnh được tăng cường. Một số ví dụ cụ thể kể đến là các ứng dụng phát hiện đồ vật và nhận dạng khuôn mặt.

Theo định lý gần đúng phổ quát, về mặt kiến trúc, một mạng nơron truyền thẳng có khả năng xấp xỉ mọi hàm với dữ liệu huấn luyện được cung cấp, miễn là không vượt quá sức chứa của nó. Tuy nhiên, xấp xỉ tốt dữ liệu không phải là mục tiêu duy nhất, chúng ta cần một mô hình có khả năng tổng quát hóa dữ liệu. Đó là lý do các kiến trúc sâu trở thành xu hướng của cộng đồng nghiên cứu.

Kể từ AlexNet, các kiến trúc CNN ngày càng sâu hơn. Trong khi AlexNet chỉ có 5 lớp tích chập, mạng VGG và GoogleNet (còn gọi là Inception_v1) có đến 19 và 22 lớp tương ứng. Tuy nhiên, tăng độ sâu mạng không chỉ đơn giản là xếp chồng các lớp lại với nhau. Mạng rất khó huấn luyện vì vấn đề vanishing gradient – vì gradient được truyền ngược tở lại các lớp trước đó, phép nhân lặp đi lặp lại có thể làm cho gradient cực nhỏ. Kết quả là, hiệu suất của mạng bị bão hòa hoặc giảm hiệu suất nhanh chóng.

26 Ý tưởng chính của ResNet là sử dụng kết nối tắt đồng nhất để xuyên qua một hay nhiều lớp. Một khối như vậy được gọi là một mô-đun residual như trong hình 2.26

Hình 2.26. Mô-đun Residual

ResNet không phải là kiến trúc đầu tiên sử dụng các kết nối tắt, Highway Network sử dụng kiến trúc cổng với các kết nối tắt. Các cổng được tham số hóa có nhiệm vụ kiểm soát lượng thông tin được phép truyền qua kết nối tắt. Ý tưởng tương tự cũng được sử dụng trong LSTM, cổng được tham số hóa kiểm soát lượng thông tin sẽ truyền đến bước tiếp theo. Do đó, ResNet có thể được coi là một trường hợp đặc biệt của Highway Network. Tuy nhiên, các thử nghiệm cho thấy Highway Network hoạt động không tốt hơn ResNet, điều này có vẻ khó giải thích vì highway Network đưa ra một giải pháp tổng quát hơn ResNet.

Sau ResNet, hàng loạt những biến thể của kiến trúc này được giới thiệu. Thực nghiệm cho thấy những kiến trúc sau này có thể được huấn luyện mạng nơron với đồ sâu hàng nghìn lớp. ResNet nhanh chóng trở thành kiến trúc phổ biến trong computer vision.

Mô-đun Residual và Bottlenecks Residual

Mô-đun Residual được giới thiệu vào năm 2015 dựa vào ánh xạ định danh, quá trình lấy đầu vào ban đầu cho mô-đun và thêm nó vào đầu ra của một loạt các hoạt động. Hình 2.27a mô tả kiến trúc của module này. Ở đầu mô-đun chúng ta tiếp nhận đầu vào cho mô-đun (tức là lớp trước đó trong mạng). Nhánh bên phải là một nối tắt tuyến tính – nó kết nối đầu vào với một hoạt động bổ sung ở dưới cùng của mô-đun. Sau đó, ở nhánh bên trái của mô-đun còn lại, chúng ta áp dụng một loạt các lớp convolution (tất cả đều là 3x3), hàm tác động Relu và batch normalization. Đây là một mẫu chuẩn khi xây dựng CNN.

27

Hình 2.27 Mô-đun Residual và Bottlenecks Residual (a) Mô-đun Residual, (b) Mô-đun Bottlenecks Residual

Điều khiến ResNet thú vị là thêm đầu vào ban đầu vào đầu ra của lớp CONV, RELU và BN. Các mạng thần kinh truyền thống có thể được xem là một hàm 𝑦 = 𝑓(𝑥), mô-đun residual cố gắng xấp xỉ y qua 𝑓(𝑥) + 𝑖𝑑(𝑥) = 𝑓(𝑥) + 𝑥 trong đó 𝑖𝑑(𝑥)

là hàm nhận dạng. Các mô-đun residual bắt đầu tại hàm nhận dạng và khai triển để trở nên phức tạp hơn khi mạng học. Khung học tập Residual cho phép đào tạo các mạng sâu hơn đáng kể so với các kiến trúc mạng được đề xuất trước đây.

Hơn nữa, vì đầu vào được bao gồm trong mọi mô-đun còn lại, mạng có thể học nhanh hơn với tốc độ học lớn hơn. Rất phổ biến để thấy tỷ lệ học tập cơ bản cho việc triển khai ResNet bắt đầu từ 1𝑒−1. Đối với hầu hết các kiến trúc như AlexNet hoặc VGGNet, tỷ lệ học tập cao này gần như sẽ đảm bảo mạng sẽ không hội tụ.

Trong hình 2.27(b), một phần mở rộng cho mô-đun residual được gọi là bottlenecks. Mô-đun này có ánh xạ nhận dạng tương tự đang xảy ra, các lớp CONV ở nhánh bên trái của mô-đun residual đã được thay đổi:

• Sử dụng ba lớp CONV thay vì hai lớp.

• Các lớp CONV đầu tiên và cuối cùng có cấu trúc 1x1.

• Số lượng bộ lọc đã học trong hai lớp CONV đầu tiên là 1/4 số lượng bộ lọc đã học trong CONV cuối cùng.

28

Hình 2.28 mô tả một quá trình “bottleneck”, trong đó hai mô-đun residual xếp chồng lên nhau.

Hình 2.28 Hình ảnh 2 mô-đun residual xếp chồng lên nhau

Mô-đun residual đầu tiên nhận đầu vào có kích thước 𝑀 × 𝑁 × 64, ba lớp CONV trong mô-đun đầu tiên lần lượt học các bộ lọc 𝐾 = 32, 32 và 128. Sau khi áp dụng mô-đun residual đầu tiên, kích thước đầu ra là 𝑀 × 𝑁 × 128 , sau đó đưa vào mô- đun residual thứ hai.

Trong mô-đun residual thứ hai, số lượng bộ lọc được giữ nguyên 𝐾 = 32, 32 và 128. Tuy nhiên 32 < 128 tương ứng giảm kích thước số chiều trong các lớp CONV

1 × 1 và 3 × 3 – để lại nút cổ chai 3 × 3 với kích thước đầu vào nhỏ hơn kích thước đầu ra. Sau đó, CONV 1 × 1 cuối cùng áp dụng số lượng bộ lọc gấp 4 lần so với hai lớp CONV đầu tiên, do đó tăng kích thước một lần nữa – đó là lý do mô-đun residual này được gọi là “bottleneck”.

Khi đào tạo mạng ResNet, các biến thể bottleneck của mô-đun residual thường được sử dụng nhiều hơn phiên bản gốc, đặc biệt là triển khai ResNet có số lớp lớn hơn 50.

Xem xét lại mô-đun Residual

Năm 2016, He et al. đã xuất bản bài báo thứ hai về mô-đun residual có tên Identity Mappings in Deep Residual Networks [33]. Ấn phẩm này mô tả một nghiên cứu toàn diện, cả lý thuyết và thực nghiệm, về thứ tự các lớp tích chập (convolutional), kích hoạt (activation) và batch normalization (BN) trong mô-đun residual (với bottleneck) như hình 2.29 a.

29

Hình 2.29 Mô-đun residual mới (a) Mô-đun residual với bottleneck

(b) Điều chỉnh mô-đun bottleneck để sử dụng tiền kích hoạt

Mô đun residual với bottleneck nhận đầu vào (hàm kích hoạt ReLU) và sau đó áp dụng một loạt (CONV => BN => RELU) => (CONV => BN => ReLU) => CONV => BN trước khi thêm đầu ra này vào đầu vào ban đầu và áp dụng hàm kích hoạt ReLU cuối cùng ( sau đó được đưa vào mô-đun residual tiếp theo trong mạng). Tuy nhiên, He at al. đã tìm thấy một thứ tự lớp tối ưu hơn có khả năng đạt được độ chính xác cao hơn – phương pháp này được gọi là tiền kích hoạt. (adsbygoogle = window.adsbygoogle || []).push({});

Phiên bản tiền kích hoạt của mô-đun residual loại bỏ ReLU ở dưới cùng của mô- đun và sắp xếp lại batch normalization (BN) và kích hoạt (activation) xuất hiện trước khi tích chập (convolutional) (Hình 2.29 b)

Thay vì bắt đầu tích chập, áp dụng một loạt (BN => RELU => CONV) * 3 (bottleneck đang được sử dụng). Đầu ra của mô-đun này được thêm vào đầu vào, sau đó được đưa vào mô-đun residual tiếp theo trong mạng.

Một phần của tài liệu Nhận diện khuôn mặt ứng dụng trong robot tiếp tân (Trang 37 - 41)