Bước tới nội dung

ResNet

Bách khoa toàn thư mở Wikipedia
Tập tin:ResBlock.png
Một khối dư (residual block) trong mạng dư sâu. Kết nối dư (residual connection) bỏ qua hai lớp.

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 đó.[1][2] 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 xf(x)+x, trong đó f 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 BERTGPT.

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).[3] 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ư.[4] 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).[5]

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).[6] 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).[7]

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[8] 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) ct đóng vai trò như một kết nối dư tổng quát.[9]

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.[10] 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).[1] 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.[10] 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.[11] 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

Tập tin:ResNet block.svg
Sơ đồ khối của ResNet (2015). Mỗi đơn vị như trên được gọi là một "khối dư"

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à H(x), trong đó x 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ư" F(x)=H(x)x. Đầu ra y của mạng con được biểu diễn là:

y=F(x)+x

Phép toán "+x" đượ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 F(x) 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.[1]

Nếu hàm F có kiểu F:nm với nm, thì F(x)+x 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ế:

y=F(x)+P(x)

trong đó P thường là một phép chiếu tuyến tính P(x)=Mx, với M là ma trận m×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.[12]

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

xL=x+i=L1F(xi)

trong đó L 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 L.

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:[12]

x=xL+xLxi=L1F(xi)

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

Biến thể

Tập tin:ResBlockVariants.png
Hai biến thể của khối dư tích chập.[1] Trái: khối cơ bản với hai lớp tích chập 3×3. Phải: khối cổ chai với 3 lớp tích chập.

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.[1] 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ư.[1] 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ư F:[12]

x+1=F(ϕ(x))+x

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.[13]

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.[14]

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:[15]

x+1=F(x1,x2,,x1,x)

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.[16]

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.[17][18]

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.[19] Mô-đun SE lấy một tensor H×W×C làm đầu vào, tính trung bình theo chiều không gian để thu được vector C, 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

Tập tin:Transformer, full architecture.png
Kiến trúc Transformer bao gồm các kết nối dư.

ResNet ban đầu được thiết kế cho thị giác máy tính.[1] 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.[20]

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.[21] 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.[22]

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.[23]

Tham khảo

  1. ^ a b c d e f g He, Kaiming; Zhang, Xiangyu; Ren, Shaoqing; Sun, Jian (2016). Deep Residual Learning for Image Recognition (PDF). Conference on Computer Vision and Pattern Recognition. arXiv:1512.03385. doi:10.1109/CVPR.2016.90.
  2. ^ "ILSVRC2015 Results". image-net.org.
  3. ^ De Nó, Rafael Lorente (1938). "Analysis of the Activity of the Chains of Internuncial Neurons". Journal of Neurophysiology. Quyển 1 số 3. tr. 207–244. doi:10.1152/jn.1938.1.3.207.
  4. ^ McCulloch, Warren S.; Pitts, Walter (1943). "A logical calculus of the ideas immanent in nervous activity". The Bulletin of Mathematical Biophysics. Quyển 5 số 4. tr. 115–133. doi:10.1007/BF02478259.
  5. ^ Rosenblatt, Frank (1961). Principles of neurodynamics: perceptrons and the theory of brain mechanisms (PDF).
  6. ^ Lang, Kevin; Witbrock, Michael (1988). "Learning to tell two spirals apart" (PDF). Proceedings of the 1988 Connectionist Models Summer School. tr. 52–59.
  7. ^ Bengio, Yoshua; Ducharme, Réjean; Vincent, Pascal; Jauvin, Christian (2003). "A Neural Probabilistic Language Model". Journal of Machine Learning Research. Quyển 3. tr. 1137–1155.
  8. ^ Hochreiter, Sepp (1991). Untersuchungen zu dynamischen neuronalen Netzen (PDF) (Luận văn). Technical University Munich.
  9. ^ Hochreiter, Sepp; Schmidhuber, Jürgen (1997). "Long short-term memory". Neural Computation. Quyển 9 số 8. tr. 1735–1780. doi:10.1162/neco.1997.9.8.1735.
  10. ^ a b Simonyan, Karen; Zisserman, Andrew (2015). "Very Deep Convolutional Networks for Large-Scale Image Recognition". arXiv. Quyển 1409.1556.
  11. ^ Srivastava, Rupesh Kumar; Greff, Klaus; Schmidhuber, Jürgen (2015). Training Very Deep Networks (PDF). Conference on Neural Information Processing Systems. arXiv:1507.06228.
  12. ^ a b c He, Kaiming; Zhang, Xiangyu; Ren, Shaoqing; Sun, Jian (2016). Identity Mappings in Deep Residual Networks (PDF). European Conference on Computer Vision. arXiv:1603.05027. doi:10.1007/978-3-319-46493-0_38.
  13. ^ Radford, Alec; Wu, Jeffrey; Child, Rewon; Luan, David; Amodei, Dario; Sutskever, Ilya (2019). "Language models are unsupervised multitask learners" (PDF).
  14. ^ Zagoruyko, Sergey; Komodakis, Nikos (2016). "Wide Residual Networks". arXiv. Quyển 1605.07146.
  15. ^ Huang, Gao; Liu, Zhuang; van der Maaten, Laurens; Weinberger, Kilian (2017). Densely Connected Convolutional Networks (PDF). Conference on Computer Vision and Pattern Recognition. arXiv:1608.06993. doi:10.1109/CVPR.2017.243.
  16. ^ Huang, Gao; Sun, Yu; Liu, Zhuang; Weinberger, Kilian (2016). Deep Networks with Stochastic Depth (PDF). European Conference on Computer Vision. arXiv:1603.09382. doi:10.1007/978-3-319-46493-0_39.
  17. ^ Zhang, Aston; Lipton, Zachary; Li, Mu; Smola, Alexander J. (2024). "8.6. Residual Networks (ResNet) and ResNeXt". Dive into deep learning. Cambridge University Press. ISBN 978-1-009-38943-3.
  18. ^ Xie, Saining; Girshick, Ross; Dollar, Piotr; Tu, Zhuowen; He, Kaiming (2017). Aggregated Residual Transformations for Deep Neural Networks (PDF). Conference on Computer Vision and Pattern Recognition. arXiv:1611.05431. doi:10.1109/CVPR.2017.634.
  19. ^ Hu, Jie; Shen, Li; Sun, Gang (2018). Squeeze-and-Excitation Networks (PDF). Conference on Computer Vision and Pattern Recognition. arXiv:1709.01507. doi:10.1109/CVPR.2018.00745.
  20. ^ Dong, Yihe; Cordonnier, Jean-Baptiste; Loukas, Andreas (2021). Attention is not all you need: pure attention loses rank doubly exponentially with depth (PDF). International Conference on Machine Learning. arXiv:2103.03404.
  21. ^ Xu, Wanni; Fu, Yu-Ling; Zhu, Dong (2023). "ResNet and its application to medical image processing: Research progress and challenges". Computer Methods and Programs in Biomedicine. Quyển 240. tr. 107660. doi:10.1016/j.cmpb.2023.107660. PMID 37320940.
  22. ^ "Classification of Alzheimer's Disease MRI Images with CNN Based Hybrid Method | IIETA". www.iieta.org (bằng tiếng Anh). doi:10.18280/isi.250402. Truy cập ngày 21 tháng 4 năm 2026.
  23. ^ Ren, Shaoqing; He, Kaiming; Girshick, Ross; Sun, Jian (2015). Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks. Advances in Neural Information Processing Systems. Quyển 28.