TÌM HIỂU VỀ MÔ HÌNH INCEPTION TRONG COMPUTER VISION

TÌM HIỂU VỀ MÔ HÌNH INCEPTION TRONG COMPUTER VISION

Uniduc JSC - 2020-03-25 05:07:16 | 3646 lượt xem

Mục lục

Deep learning đang nhanh chóng đạt được nhiều thành tựu khi ngày càng có nhiều tài liệu nghiên cứu xuất hiện từ khắp nơi trên thế giới. Những bài báo này chắc chắn chứa rất nhiều thông tin, nhưng chúng thường có thể khó phân tích. Và để hiểu chúng, bạn có thể phải nghiên cứu bài báo đó nhiều lần

Cá nhân, tôi thấy nhiệm vụ phải hiểu một bài nghiên cứu, diễn giải mấu chốt đằng sau nó và thực thi mã là một kỹ năng quan trọng mà mọi người đam mê và học viên nên có. Thực tế thực hiện các ý tưởng nghiên cứu đưa ra quá trình suy nghĩ của tác giả và cũng giúp chuyển đổi những ý tưởng đó thành các ứng dụng công nghiệp trong thế giới thực.

Vì vậy, trong bài viết này (và loạt bài viết tiếp theo) tôi sẽ chia ra làm 2 phần:

  • Cho phép người đọc theo kịp với nghiên cứu tiên tiến bằng cách chia nhỏ các bài học sâu thành các khái niệm dễ hiểu
  • Học cách chuyển đổi ý tưởng nghiên cứu để tự viết mã và khuyến khích mọi người thực hiện đồng thời

Bài viết này giả định rằng bạn có một nắm bắt tốt về những điều cơ bản của học tập sâu. Trong trường hợp bạn chưa có kiến thức vững chắc, hãy xem các bài viết dưới đây trước và sau đó quay lại đây ngay:

  • Fundamentals of Deep Learning – Starting with Artificial Neural Network
  • Tutorial: Optimizing Neural Networks using Keras

Sơ lược về bài báo "Going Deeper with Convolutions"

Bài viết này tập trung vào bài báo “Going deeper with convolutions” mà từ đó ý tưởng nổi bật về mạng Inception được đưa ra. Mạng Inception đã từng được coi là một kiến trúc (hoặc mô hình) học tập tối tân (SOTA) để giải quyết các vấn đề nhận dạng và phát hiện hình ảnh.

Nó đưa ra một hiệu suất đột phá trong ImageNet Visual Recognition Challenge (năm 2014), đây là một nền tảng có uy tín để đánh giá các thuật toán phát hiện và nhận dạng hình ảnh. Cùng với điều này, nó đặt ra một tấn nghiên cứu trong việc tạo ra các kiến trúc học sâu mới với các ý tưởng sáng tạo và có tác động.

Chúng tôi sẽ xem xét các ý tưởng và đề xuất chính được đưa ra trong bài báo nói trên và cố gắng nắm bắt các kỹ thuật bên trong. Theo lời của tác giả:

In this paper, we will focus on an efficient deep neural network architecture for computer vision, code named Inception, which derives its name from (…) the famous “we need to go deeper” internet meme.

Mục đích của bài báo

Có một cách đơn giản nhưng mạnh mẽ để tạo ra các mô hình học sâu tốt hơn. Bạn chỉ có thể tạo ra một mô hình lớn hơn, về độ sâu, tức là, số lớp hoặc số lượng neurons trong mỗi lớp. Nhưng như bạn có thể tưởng tượng, điều này thường có thể tạo ra các biến chứng: 

  • Mô hình lớn hơn, dễ bị overfitting. Điều này đặc biệt đáng chú ý khi dữ liệu đào tạo nhỏ
  • Tăng số lượng tham số có nghĩa là bạn cần tăng tài nguyên tính toán hiện có của mình

Một giải pháp cho vấn đề này, như bài báo gợi ý, là chuyển sang các kiến trúc mạng được kết nối thưa thớt, sẽ thay thế các kiến trúc mạng được kết nối đầy đủ, đặc biệt là bên trong các lớp convolutional.

Bài viết này đề xuất một ý tưởng mới về việc tạo ra các kiến trúc sâu. Cách tiếp cận này cho phép bạn duy trì khả năng tính toán trên mạng, trong khi tăng độ sâu và chiều rộng của mạng. Sao mà tin được! Đây là cách ý tưởng được khái niệm hóa:

Chúng ta hãy nhìn vào kiến trúc được đề xuất chi tiết hơn một chút.

Chi tiết kiến trúc

Bài viết đề xuất một loại kiến trúc mới - GoogLeNet hoặc Inception v1. Về cơ bản, nó là một mạng neuron convolutions (CNN)  27 lớp. Dưới đây là tóm tắt mô hình:

Lưu ý trong hình trên là có một lớp gọi là lớp Inception. Đây thực sự là ý tưởng chính đằng sau cách tiếp cận trong bài báo. Lớp Inception là khái niệm cốt lõi của một kiến trúc được kết nối thưa thớt.

Hãy để tôi giải thích chi tiết hơn một chút về một lớp inception là gì. Lấy một đoạn trích từ bài báo:

(Inception Layer) is a combination of all those layers (namely, 1×1 Convolutional layer, 3×3 Convolutional layer, 5×5 Convolutional layer) with their output filter banks concatenated into a single output vector forming the input of the next stage.

Cùng với các lớp được đề cập ở trên, có hai phần bổ trợ chính trong lớp inception ban đầu:

  •  Áp dụng lớp convoluton kernel 1x1 trước khi áp dụng lớp khác, chủ yếu được sử dụng để giảm kích thước
  • Lớp Max Pooling song song, cung cấp tùy chọn khác cho lớp inception

Để hiểu được tầm quan trọng của cấu trúc lớp inception, tác giả gọi nguyên tắc Hebbian từ việc học của con người. Tác giả cho rằng khi tạo một lớp tiếp theo trong mô hình học sâu, người ta nên chú ý đến việc học của lớp trước.

Giả sử, ví dụ, một lớp trong mô hình học sâu của chúng ta đã học cách tập trung vào các phần riêng lẻ của khuôn mặt. Lớp tiếp theo của mạng có thể sẽ tập trung vào tổng thể khuôn mặt trong ảnh để xác định các đối tượng khác nhau hiện diện ở đó. Bây giờ để thực sự làm điều này, lớp nên có các kích thước bộ lọc phù hợp để phát hiện các đối tượng khác nhau.

Đây là nơi mà lớp inception trở nên nổi bật. Nó cho phép các lớp bên trong chọn và chọn kích thước bộ lọc nào sẽ phù hợp để tìm hiểu thông tin cần thiết. Vì vậy, ngay cả khi kích thước của khuôn mặt trong hình ảnh là khác nhau (như được thấy trong các hình ảnh bên dưới), lớp hoạt động tương ứng để nhận diện khuôn mặt. Đối với hình ảnh đầu tiên, nó có thể sẽ có kích thước bộ lọc cao hơn, trong khi đó, nó sẽ lấy hình ảnh thấp hơn cho hình ảnh thứ hai.

Kiến trúc tổng thể, với tất cả các thông số kỹ thuật, trông như thế này:

Phương pháp đào tạo

Lưu ý rằng kiến ​​trúc này xuất hiện phần lớn là do các tác giả tham gia vào một thử thách nhận dạng và phát hiện hình ảnh. Do đó, có khá nhiều thông số mà họ đã giải thích trong bài báo. Bao gồm các:

  • Phần cứng họ dùng để huấn luyện các mô hình
  • Kỹ thuật tăng dữ liệu để tạo tập dữ liệu huấn luyện
  • Các hyperparameters của mạng nơ ron, như kỹ thuật tối ưu hóa và learning rate schedule
  • Đào tạo Auxiliary cần thiết cho việc đào tạo mô hình
  • Kỹ thuật tập hợp họ đã sử dụng để xây dựng submission cuối cùng

Trong số này, đào tạo auxiliary được thực hiện bởi các tác giả là khá thú vị và mới lạ. Vì vậy, bây giờ chúng tôi sẽ tập trung vào đó. Các chi tiết cho phần còn lại của các kỹ thuật có thể được lấy từ chính bài báo hoặc trong quá trình thực hiện mà chúng ta sẽ thấy dưới đây.

Để ngăn phần giữa của mạng không bị chết, các tác giả đã giới thiệu hai phân loại auxiliary (các hộp màu tím trong ảnh). Về cơ bản, họ đã áp dụng softmax cho các đầu ra của hai trong số các mô-đun inception và tính toán loss auxiliary trên cùng một nhãn. Hàm loss là tổng trọng số của auxiliary loss và real loss. Giá trị weight được sử dụng trong bài báo là 0,3 cho mỗi auxiliary loss.

Kết luận

Đây là một bài viết thực sự thú vị để viết và tôi hy vọng bạn thấy nó hữu ích. Inception v1 là tiêu điểm trong bài viết này, trong đó tôi đã giải thích sự cặn kẽ của những gì framework này nói.

Hẹn gặp lại ở các bài viết tiếp theo

Chúc bạn thành đạt trong công việc và hạnh phúc trong cuộc sống !

Hotline / Zalo: 0903 666 014

Website: https://uniduc.com/vi

-------------////--------------------------------------------////------------

HUMANOID ROBOT CỦA CÔNG TY UNIDUC SẢN XUẤT PHÁT TRIỂN.

Đăng kí nhận tin mới



Đánh giá bài viết

0%

0 Tổng người đánh giá
5
0%
4
0%
3
0%
2
0%
1
0%
THÔNG TIN LIÊN HỆ

Công ty Cổ phần Uniduc

Địa Chỉ: 22 Đường Số 54, Phường Thảo Điền, Quận 2

Hotline: 086 567 7939 (Phòng Kinh Doanh / HTKT)

Email: [email protected]

Website: https://uniduc.com/vi

 

 
TỔNG QUAN

Công ty Cổ Phần Uniduc chuyên cung cấp các loại robot phục vụ, Agv Robot, hệ thống tự động. Với kinh nghiệm nghiên cứu lâu năm và đội ngũ kỹ sư năng động sáng tạo. Hi vọng Uniduc là điếm đến công nghệ là nơi khách hàng luôn gửi trọn niềm tin. Chúng tôi sẽ luôn luôn phấn đấu cung cấp cho bạn giải pháp, máy móc, dịch vụ tốt nhất.

TIN MỚI
ĐĂNG KÝ NHẬN TIN

Nhận bản tin thường xuyên để cập nhật giá bán và các chương trình khuyến mãi.


©2018 - 2022 Copyright Uniduc., Jsc. Sitemap