ResNet

Mạng thần kinh dư (tiếng Anh: residual neural network, viết tắt ResNet) là một kiến trúc học sâu trong đó các lớp học các hàm dư (residual function) dựa trên đầu vào của lớp đó. ResNet được phát triển vào năm 2015 cho bài toán nhận dạng hình ảnh và giành chiến thắng tại cuộc thi nhận dạng hình ảnh quy mô lớn ImageNet năm đó. Khi kiến trúc này có số ở sau, ta hiểu đây là số lớp của mạng này, chẳng hạn ResNet50 thì có 50 lớp.

Kết nối dư (residual connection) là một mô-típ kiến trúc cụ thể có dạng , trong đó  là một mô-đun mạng thần kinh tùy ý. Mô-típ này đã được sử dụng trước đó, nhưng bài báo ResNet đã phổ biến rộng rãi nó trong các mạng thần kinh truyền thẳng. Kết nối dư giúp ổn định quá trình huấn luyện và hội tụ của các mạng thần kinh sâu với hàng trăm lớp, và là thành phần phổ biến trong nhiều kiến trúc học sâu hiện đại, chẳng hạn như các mô hình transformer BERT và GPT.

Lịch sử

Bối cảnh 

Kết nối dư có tiền thân trong nghiên cứu thần kinh học, chẳng hạn như công trình của Lorente de Nó (1938). McCulloch và Pitts (1943) khi đề xuất mạng thần kinh nhân tạo cũng đã xem xét các mạng có kết nối dư. Năm 1961, Frank Rosenblatt mô tả một mô hình perceptron đa lớp ba lớp có kết nối bỏ qua (skip connection), gọi là "hệ thống liên kết chéo" (cross-coupled system).

Trong cuối thập niên 1980, kết nối bỏ qua được sử dụng rải rác trong các mạng thần kinh. Lang và Witbrock (1988) đã huấn luyện một mạng truyền thẳng đầy đủ trong đó mỗi lớp kết nối với tất cả các lớp sau, tương tự với DenseNet (2016) sau này, và gọi kết nối này là "kết nối tắt" (short-cut connection). Một mô hình ngôn ngữ thần kinh sớm của Bengio và cộng sự (2003) cũng sử dụng kết nối dư và gọi chúng là "kết nối trực tiếp" (direct connection).

Vấn đề suy thoái 

Sepp Hochreiter phát hiện ra vấn đề gradient biến mất (vanishing gradient) vào năm 1991 và cho rằng đây là nguyên nhân khiến các mạng thần kinh hồi quy thời đó không hoạt động tốt với chuỗi dài. Ông và Jürgen Schmidhuber sau đó thiết kế kiến trúc LSTM để giải quyết vấn đề này, với "trạng thái ô" (cell state)  đóng vai trò như một kết nối dư tổng quát.

Trong thời kỳ đầu của học sâu, các nhà nghiên cứu nỗ lực huấn luyện các mô hình ngày càng sâu hơn. AlexNet (2012) có 8 lớp và VGG-19 (2014) có 19 lớp là những ví dụ tiêu biểu. Tuy nhiên, việc xếp chồng quá nhiều lớp dẫn đến độ chính xác huấn luyện giảm mạnh, được gọi là vấn đề "suy thoái" (degradation problem). Về lý thuyết, thêm lớp vào mạng không nên làm tăng mất mát huấn luyện, nhưng thực tế điều đó xảy ra với VGGNet. Năm 2014, phương pháp tối ưu nhất là huấn luyện các mạng thần kinh sâu từ 20 đến 30 lớp. Nhóm nghiên cứu ResNet đã thử nghiệm nhiều phương pháp huấn luyện mạng sâu hơn cho đến khi tìm ra kiến trúc ResNet.

Highway network (2015) đã áp dụng ý tưởng từ LSTM khai triển theo thời gian vào mạng truyền thẳng. ResNet về bản chất tương đương với một highway network có cổng mở hoàn toàn, tức là cổng này giá trị bao nhiêu thì lấy đúng như vậy.

Kiến trúc

Kết nối dư 

Trong một mô hình mạng thần kinh nhiều lớp, xét một mạng con gồm một số lớp xếp chồng (ví dụ 2 hoặc 3 lớp). Gọi hàm mà mạng con này thực hiện là , trong đó  là đầu vào. Học dư (residual learning) tái tham số hóa mạng con này và để các lớp tham số biểu diễn một "hàm dư" . Đầu ra  của mạng con được biểu diễn là:

Phép toán "" được thực hiện qua một "kết nối bỏ qua" (skip connection) thực hiện ánh xạ đồng nhất nối đầu vào với đầu ra của mạng con. Hàm  thường được biểu diễn bằng nhân ma trận xen kẽ với các hàm kích hoạt và phép chuẩn hóa (ví dụ chuẩn hóa theo lô hay chuẩn hóa lớp). Một mạng con như vậy được gọi là một "khối dư" (residual block), và một mạng dư sâu được xây dựng bằng cách xếp chồng các khối này.

Nếu hàm  có kiểu  với , thì  không xác định. Trong trường hợp này, một kết nối chiếu (projection connection) được dùng thay thế:

trong đó  thường là một phép chiếu tuyến tính , với  là ma trận  được học qua lan truyền ngược.

Lan truyền tín hiệu 

Việc đưa vào các ánh xạ đồng nhất giúp tín hiệu lan truyền ổn định hơn theo cả hai chiều.

Xét đầu ra của khối dư thứ  là đầu vào của khối thứ . Áp dụng đệ quy cho ra:

trong đó  là chỉ số của khối sâu hơn và  là chỉ số của khối nông hơn. Điều này cho thấy luôn có một tín hiệu được truyền trực tiếp từ khối nông  đến khối sâu .

Về chiều ngược (lan truyền ngược), đạo hàm riêng của hàm mất mát  theo đầu vào của một khối nông luôn có thêm một số hạng trực tiếp từ khối sâu hơn:

Ngay cả khi các gradient của các số hạng  nhỏ, tổng gradient  vẫn không biến mất hoàn toàn nhờ số hạng cộng thêm . Đây là cơ chế giúp ResNet giảm thiểu vấn đề gradient biến mất.

Biến thể

Khối cơ bản 

Khối cơ bản (basic block) là khối xây dựng đơn giản nhất được nghiên cứu trong bài báo ResNet gốc. Khối này gồm hai lớp tích chập 3×3 nối tiếp và một kết nối dư, với chiều đầu vào và đầu ra bằng nhau.

Khối cổ chai 

Khối cổ chai (bottleneck block) gồm ba lớp tích chập nối tiếp và một kết nối dư. Lớp đầu tiên là tích chập 1×1 để giảm chiều; lớp thứ hai là tích chập 3×3; lớp cuối là tích chập 1×1 để khôi phục chiều. Các mô hình ResNet-50, ResNet-101 và ResNet-152 đều dựa trên khối cổ chai.

Khối tiền kích hoạt 

Khối dư tiền kích hoạt (pre-activation residual block) áp dụng hàm kích hoạt trước khi tính hàm dư :

trong đó  có thể là bất kỳ hàm kích hoạt (chẳng hạn như ReLU) hoặc chuẩn hóa (chẳng hạn như LayerNorm) nào. Thiết kế này làm giảm số lượng ánh xạ không đồng nhất giữa các khối dư, cho phép tín hiệu đi thẳng từ đầu vào đến đầu ra qua ánh xạ đồng nhất. Biến thể này được dùng để huấn luyện các mô hình từ 200 đến hơn 1.000 lớp. Kể từ GPT-2, các khối transformer hầu hết được triển khai theo dạng tiền kích hoạt này, thường gọi là "tiền chuẩn hóa" (pre-normalization) trong tài liệu về transformer.

Các kiến trúc hậu ResNet 

Wide Residual Network (2016) cho thấy việc dùng nhiều kênh hơn và ít lớp hơn so với ResNet gốc cải thiện cả hiệu suất lẫn hiệu quả tính toán GPU, và rằng một khối với hai tích chập 3×3 vượt trội hơn các cấu hình khác.

DenseNet (2016) kết nối đầu ra của mỗi lớp với đầu vào của tất cả các lớp sau:

Stochastic depth (2016) là phương pháp chuẩn hóa ngẫu nhiên bỏ một tập con các lớp trong quá trình huấn luyện và để tín hiệu đi qua các kết nối bỏ qua (còn gọi là DropPath). Phương pháp này giúp chuẩn hóa huấn luyện cho các mô hình sâu như vision transformer.

ResNeXt (2017) kết hợp mô-đun Inception (trong quá trình tích chập, chạy nhiều kernel với các kích thước khác nhau cùng một lúc trên dữ liệu, rồi gộp kết quả lại thành một đặc trưng duy nhất) với ResNet.

Squeeze-and-Excitation Networks (2018) bổ sung mô-đun squeeze-and-excitation (SE) vào ResNet và giành chiến thắng tại ILSVRC 2017. Mô-đun SE lấy một tensor  làm đầu vào, tính trung bình theo chiều không gian để thu được vector , rồi đưa qua một mạng perceptron đa lớp (với cấu trúc tuyến tính–ReLU–tuyến tính–sigmoid) trước khi nhân lại với tensor gốc.

Ứng dụng 

ResNet ban đầu được thiết kế cho thị giác máy tính. Tất cả các kiến trúc transformer đều bao gồm kết nối dư, do thực tế là các transformer thường rất sâu với nhiều lớp nên không thể huấn luyện được nếu không có chúng.

Trong lĩnh vực y tế, ResNet được ứng dụng rộng rãi để phân tích hình ảnh chẩn đoán, bao gồm phát hiện khối u, chẩn đoán ung thư da, bệnh vú và các bệnh về não từ ảnh X-quang, MRI và CT. Ngoài ra, việc kết hợp ResNet với các thành phần từ nhiều mạng tích chập khác như AlexNet, DenseNet, hay VGG cũng giúp đạt độ chính xác lên tới 90% trong việc chẩn đoán bệnh Alzheimer.

Trong phát hiện đối tượng, ResNet thường được dùng làm mạng xương sống (backbone) trích xuất đặc trưng cho các mô hình như Faster R-CNN và Mask R-CNN, được ứng dụng trong hệ thống xe tự lái để nhận diện người đi bộ, biển báo và chướng ngại vật.

Tham khảo

Khoa học máy tính
Trí tuệ nhân tạo
Học máy
Học sâu
Mạng thần kinh nhân tạo
Thị giác máy tính