5

Trước khi đọc, hãy chắc chắn kiểm tra Phần 1Phần 2 !

Trong bài đăng này, chúng tôi sẽ đi vào tóm tắt rất nhiều phát triển mới và quan trọng trong lĩnh vực thị giác máy tính và mạng lưới thần kinh tích chập. Chúng tôi sẽ xem xét một số bài báo quan trọng nhất đã được xuất bản trong năm năm qua và thảo luận về lý do tại sao chúng rất quan trọng. Nửa đầu của danh sách (AlexNet đến ResNet) liên quan đến những tiến bộ trong kiến ​​trúc mạng nói chung, trong khi nửa sau chỉ là một tập hợp các bài báo thú vị ở các vùng đất khác. 

1. AlexNet (2012)

Đây là cuốn đã bắt đầu tất cả (mặc dù một số người có thể nói rằng bài báo của Yann LeCun năm 1998 là ấn phẩm tiên phong thực sự). Bài viết này, có tiêu đề Phân loại ImageNet với các mạng kết hợp sâu, đã được trích dẫn tổng cộng 6.184 lần và được coi là một trong những ấn phẩm có ảnh hưởng nhất trong lĩnh vực này. Alex Krizhevsky, Ilya Sutskever và Geoffrey Hinton đã tạo ra một mạng lưới thần kinh tích hợp lớn, sâu rộng được sử dụng để chiến thắng ILSVRC năm 2012 (Thử thách nhận dạng hình ảnh quy mô lớn của ImageNet). Đối với những người không quen thuộc, cuộc thi này có thể được coi là Thế vận hội thị giác máy tính hàng năm, nơi các đội từ khắp nơi trên thế giới cạnh tranh để xem ai có mô hình thị giác máy tính tốt nhất cho các nhiệm vụ như phân loại, bản địa hóa, phát hiện và hơn thế nữa . Năm 2012 đánh dấu năm đầu tiên sử dụng CNN để đạt tỷ lệ lỗi thử nghiệm cao nhất là 15,4% (năm lỗi hàng đầu là tốc độ mà trong một hình ảnh, mô hình không đưa ra nhãn chính xác với năm dự đoán hàng đầu của nó). Mục tốt nhất tiếp theo đạt được lỗi 26,2%, đó là một cải tiến đáng kinh ngạc đã gây sốc cho cộng đồng thị giác máy tính. Thật an toàn khi nói rằng CNN đã trở thành tên hộ gia đình trong cuộc thi từ đó trở đi.

Trong bài báo, nhóm đã thảo luận về kiến ​​trúc của mạng (được gọi là AlexNet). Họ đã sử dụng một bố cục tương đối đơn giản so với các kiến ​​trúc hiện đại. Mạng được tạo thành từ năm lớp đối lưu, lớp gộp tối đa, lớp thả ra và ba lớp được kết nối đầy đủ. Mạng mà họ thiết kế đã được sử dụng để phân loại với 1.000 danh mục có thể.

Ý chính

  • Đã đào tạo mạng trên dữ liệu ImageNet, chứa hơn 15 triệu hình ảnh chú thích trong tổng số hơn 22.000 danh mục.
  • ReLU được sử dụng cho các hàm phi tuyến (được tìm thấy để giảm thời gian đào tạo vì ReLU nhanh hơn nhiều lần so với hàm tanh thông thường).
  • Được sử dụng các kỹ thuật tăng dữ liệu bao gồm các bản dịch hình ảnh, phản xạ ngang và trích xuất bản vá.
  • Đã thực hiện các lớp bỏ học để chống lại vấn đề quá mức đối với dữ liệu huấn luyện.
  • Đã đào tạo mô hình bằng cách sử dụng độ dốc dốc ngẫu nhiên hàng loạt, với các giá trị cụ thể cho phân rã động lượng và trọng lượng.
  • Được đào tạo trên hai GPU GTX 580 trong năm đến sáu ngày .

Tại sao nó quan trọng

Mạng lưới thần kinh được phát triển bởi Krizhevsky, Sutskever và Hinton vào năm 2012 là bữa tiệc sắp diễn ra cho các CNN trong cộng đồng thị giác máy tính. Đây là lần đầu tiên một mô hình hoạt động tốt trên bộ dữ liệu ImageNet khó khăn trong lịch sử. Sử dụng các kỹ thuật vẫn được sử dụng cho đến ngày nay, chẳng hạn như tăng và giảm dữ liệu, bài viết này thực sự minh họa lợi ích của CNN và sao lưu chúng với hiệu suất phá kỷ lục trong cuộc thi.

2. Mạng ZF (2013)

Với việc AlexNet đánh cắp chương trình vào năm 2012, đã có sự gia tăng lớn về số lượng các mô hình CNN được gửi tới ILSVRC 2013. Người chiến thắng trong cuộc thi năm đó là một mạng lưới được xây dựng bởi Matthew Zeiler và Rob Fergus từ NYU. Được đặt tên là ZF Net , mô hình này đạt tỷ lệ lỗi 11,2%. Kiến trúc này giống với cấu trúc AlexNet trước đây, nhưng vẫn phát triển một số ý tưởng rất quan trọng về việc cải thiện hiệu suất. Một lý do khác đây là một bài báo tuyệt vời là các tác giả đã dành một lượng thời gian tốt để giải thích rất nhiều trực giác đằng sau ConvNets và chỉ ra cách hiển thị chính xác các bộ lọc và trọng lượng.

Trong bài báo có tiêu đề Trực quan hóa và hiểu về mạng nơ ron kết hợp , Zeiler và Fergus bắt đầu bằng cách thảo luận về ý tưởng rằng sự quan tâm mới này đối với CNN là do khả năng tiếp cận của các bộ đào tạo lớn và tăng sức mạnh tính toán với việc sử dụng GPU. Họ cũng nói về kiến ​​thức hạn chế mà các nhà nghiên cứu đã có về cơ chế bên trong của các mô hình này, nói rằng nếu không có cái nhìn sâu sắc này, sự phát triển của các mô hình tốt hơn đã giảm xuống còn thử nghiệm và sai sót. Hiện tại chúng tôi hiểu rõ hơn ba năm trước, đây vẫn là một vấn đề đối với rất nhiều nhà nghiên cứu! Những đóng góp chính của bài viết này là chi tiết về một mô hình AlexNet được sửa đổi một chút và một cách rất thú vị để hiển thị các bản đồ đặc trưng.

Ý chính

  • Kiến trúc rất giống với AlexNet ngoại trừ một vài sửa đổi nhỏ.
  • AlexNet đã đào tạo trên 15 triệu hình ảnh, trong khi ZF Net chỉ đào tạo trên 1,3 triệu hình ảnh.
  • Thay vì sử dụng các bộ lọc có kích thước 11x11 trong lớp đầu tiên (đó là những gì AlexNet đã triển khai), ZF Net đã sử dụng các bộ lọc có kích thước 7x7 và giảm giá trị sải chân. Lý do đằng sau sửa đổi này là kích thước bộ lọc nhỏ hơn trong lớp đối lưu đầu tiên giúp giữ lại nhiều thông tin pixel gốc trong khối lượng đầu vào. Một bộ lọc có kích thước 11x11 được chứng minh là bỏ qua rất nhiều thông tin liên quan, đặc biệt vì đây là lớp đối lưu đầu tiên.
  • Khi mạng phát triển, chúng tôi cũng thấy số lượng bộ lọc được sử dụng tăng lên.
  • ReLUs đã sử dụng cho các chức năng kích hoạt của chúng, sử dụng mất entropy chéo cho chức năng lỗi và được đào tạo bằng cách sử dụng giảm dần độ dốc ngẫu nhiên hàng loạt.
  • Được đào tạo trên GPU GTX 580 trong mười hai ngày .
  • Phát triển một kỹ thuật trực quan có tên là mạng giải mã, giúp kiểm tra các kích hoạt tính năng khác nhau và mối quan hệ của chúng với không gian đầu vào; được gọi là deconvnet, vì nó ánh xạ các tính năng thành pixel (ngược lại với những gì một lớp chập làm).

DeConvNet

Ý tưởng cơ bản đằng sau cách thức hoạt động của nó là ở mỗi lớp của CNN được đào tạo, bạn đính kèm một bộ deconvnet tinh có một đường dẫn trở lại các pixel hình ảnh. Một hình ảnh đầu vào được đưa vào CNN và kích hoạt được tính toán ở mỗi cấp độ. Đây là vượt qua phía trước. Bây giờ, giả sử chúng ta muốn kiểm tra kích hoạt của một tính năng nhất định trong lớp đối lưu thứ tư. Chúng tôi sẽ lưu trữ các kích hoạt của một bản đồ tính năng này nhưng đặt tất cả các kích hoạt khác trong lớp thành 0 và sau đó chuyển bản đồ tính năng này làm đầu vào vào deconvnet. Deconvnet này có cùng bộ lọc với CNN gốc. Đầu vào này sau đó trải qua một loạt các hoạt động unpool (maxpooling ngược), chỉnh lưu và lọc các hoạt động cho từng lớp trước cho đến khi đạt được không gian đầu vào.

Lý do đằng sau toàn bộ quá trình này là chúng tôi muốn kiểm tra loại cấu trúc nào kích thích bản đồ đặc trưng nhất định. Chúng ta hãy nhìn vào trực quan hóa của lớp thứ nhất và thứ hai.

Giống như chúng ta đã thảo luận trong Phần 1 , lớp đầu tiên của ConvNet của bạn luôn là trình phát hiện tính năng cấp thấp sẽ phát hiện các cạnh hoặc màu đơn giản trong trường hợp cụ thể này. Chúng ta có thể thấy rằng với lớp thứ hai, chúng ta có nhiều tính năng tròn hơn đang được phát hiện. Chúng ta hãy nhìn vào các lớp 3, 4 và 5.

Các lớp này hiển thị nhiều hơn các tính năng cấp cao hơn, chẳng hạn như khuôn mặt hoặc hoa của chó. Một điều cần lưu ý là như bạn có thể nhớ, sau lớp đối lưu đầu tiên, chúng ta thường có một lớp gộp để lấy mẫu hình ảnh xuống (ví dụ, biến âm lượng 32x32x3 thành âm lượng 16x16x3). Hiệu ứng này có là lớp thứ hai có phạm vi rộng hơn về những gì nó có thể nhìn thấy trong ảnh gốc. Để biết thêm thông tin về deconvnet hoặc bài báo nói chung, hãy xem Zeiler tự trình bày về chủ đề này.

Tại sao nó quan trọng

ZF Net không chỉ là người chiến thắng trong cuộc thi năm 2013 mà còn cung cấp trực giác tuyệt vời về hoạt động trên CNN và minh họa nhiều cách hơn để cải thiện hiệu suất. Phương pháp trực quan được mô tả không chỉ giúp giải thích hoạt động bên trong của CNN, mà còn cung cấp cái nhìn sâu sắc để cải thiện kiến ​​trúc mạng. Cách tiếp cận trực quan deconv hấp dẫn và các thí nghiệm tắc nghẽn làm cho nó trở thành một trong những bài báo yêu thích cá nhân của tôi.

3. Mạng lưới VGG (2014)

Đơn giản và chuyên sâu: Đó là những gì một mô hình được tạo ra trong năm 2014 (không phải là người chiến thắng của ILSVRC 2014), được sử dụng tốt nhất với tỷ lệ lỗi 7,3%. Karen Simonyan và Andrew Zisserman của Đại học Oxford đã tạo ra một CNN 19 lớp sử dụng nghiêm ngặt các bộ lọc 3x3 với sải chân và pad 1, cùng với các lớp maxpooling 2x2 với sải chân 2. Đủ đơn giản, phải không?

Ý chính

  • Việc sử dụng chỉ các bộ lọc có kích thước 3x3 khá khác biệt so với các bộ lọc 11x11 của AlexNet trên lớp đầu tiên và các bộ lọc 7x7 của ZF Net. Lý luận của các tác giả là sự kết hợp của hai lớp đối lưu 3x3 có trường tiếp nhận hiệu quả là 5x5. Đến lượt nó, mô phỏng bộ lọc lớn hơn trong khi vẫn giữ được lợi ích của kích thước bộ lọc nhỏ hơn. Một trong những lợi ích là giảm số lượng tham số. Ngoài ra, với hai lớp đối lưu, chúng tôi có thể sử dụng hai lớp ReLU thay vì một lớp.
  • Ba lớp đối lưu trở lại có một lĩnh vực tiếp nhận hiệu quả là 7x7.
  • Khi kích thước không gian của các khối lượng đầu vào ở mỗi lớp giảm (kết quả của các lớp đối lưu và nhóm bể bơi), độ sâu của các khối tăng lên do số lượng bộ lọc tăng lên khi bạn đi xuống mạng.
  • Thật thú vị khi nhận thấy rằng số lượng bộ lọc tăng gấp đôi sau mỗi lớp maxpool. Điều này củng cố ý tưởng thu nhỏ kích thước không gian, nhưng độ sâu ngày càng tăng.
  • Hoạt động tốt trên cả nhiệm vụ phân loại hình ảnh và nội địa hóa. Các tác giả đã sử dụng một hình thức bản địa hóa như hồi quy (xem trang 10 của bài viết để biết tất cả các chi tiết).
  • Xây dựng một mô hình với hộp công cụ Caffe.
  • Được sử dụng jitter quy mô như một kỹ thuật tăng dữ liệu trong quá trình đào tạo.
  • Các lớp ReLU được sử dụng sau mỗi lớp đối lưu và được đào tạo với độ dốc giảm dần hàng loạt.
  • Được đào tạo trên bốn GPU Nvidia Titan Black trong hai đến ba tuần .

Tại sao nó quan trọng

VGG Net là một trong những bài báo có ảnh hưởng nhất trong tâm trí của tôi bởi vì nó củng cố quan niệm rằng các mạng thần kinh tích chập phải có một mạng lưới các lớp sâu để biểu diễn dữ liệu trực quan phân cấp này hoạt động . Giữ nó sâu. Giữ cho nó đơn giản.

4. GoogLeNet (2015)

Bạn biết ý tưởng về sự đơn giản trong kiến ​​trúc mạng mà chúng ta vừa nói đến? Vâng, Google đã ném nó ra khỏi cửa sổ với việc giới thiệu mô-đun Inception. GoogLeNet là một CNN 22 lớp và là người chiến thắng của ILSVRC 2014 với tỷ lệ lỗi cao nhất là 6,7%. Theo hiểu biết của tôi, đây là một trong những kiến ​​trúc CNN đầu tiên thực sự đi lạc từ cách tiếp cận chung chỉ đơn giản là xếp chồng các lớp và gộp các lớp lên nhau trong một cấu trúc tuần tự. Các tác giả của bài báo cũng nhấn mạnh rằng mô hình mới này có sự cân nhắc đáng chú ý về việc sử dụng bộ nhớ và năng lượng (lưu ý quan trọng mà đôi khi tôi cũng quên: Việc xếp tất cả các lớp này và thêm số lượng lớn các bộ lọc có chi phí tính toán và bộ nhớ, cũng như tăng cơ hội thừa chất lượng).

Mô-đun khởi động

Khi chúng tôi lần đầu tiên nhìn vào cấu trúc của GoogLeNet, chúng tôi nhận thấy ngay lập tức rằng không phải mọi thứ đều diễn ra tuần tự, như đã thấy trong các kiến ​​trúc trước đây. Chúng tôi có các phần của mạng đang xảy ra song song.

Hộp này được gọi là mô-đun Inception. Chúng ta hãy xem xét kỹ hơn những gì nó được làm từ.

Hộp màu xanh lá cây phía dưới là đầu vào của chúng tôi và hộp trên cùng là đầu ra của mô hình (xoay hình này sang phải 90 độ sẽ cho phép bạn hình dung mô hình liên quan đến hình ảnh cuối cùng hiển thị toàn bộ mạng). Về cơ bản, ở mỗi lớp của ConvNet truyền thống, bạn phải đưa ra lựa chọn nên có thao tác gộp hay thao tác đối lưu (cũng có lựa chọn kích thước bộ lọc). Một mô-đun Inception cho phép bạn thực hiện song song tất cả các hoạt động này. Trên thực tế, đây chính xác là ý tưởng của những người ngây thơ mà các tác giả đã nghĩ ra.

Bây giờ, tại sao điều này không làm việc? Nó sẽ dẫn đến cáchquá nhiều đầu ra. Chúng tôi sẽ kết thúc với một kênh độ sâu cực lớn cho âm lượng đầu ra. Cách mà các tác giả giải quyết vấn đề này là bằng cách thêm các hoạt động của 1x1 trước các lớp 3x3 và 5x5. Các kết cấu 1x1 (hoặc mạng trong lớp mạng) cung cấp phương pháp giảm kích thước. Ví dụ: giả sử bạn có âm lượng đầu vào là 100x100x60 (Đây không nhất thiết là kích thước của hình ảnh, chỉ là đầu vào cho bất kỳ lớp nào của mạng). Áp dụng 20 bộ lọc tích chập 1x1 sẽ cho phép bạn giảm âm lượng xuống 100x100x20. Điều này có nghĩa là các kết cấu 3x3 và 5x5 sẽ không có khối lượng lớn để giải quyết. Điều này có thể được coi là một nhóm các tính năng của người dùng vì chúng tôi đang giảm độ sâu của âm lượng, tương tự như cách chúng tôi giảm kích thước chiều cao và chiều rộng với các lớp maxpooling thông thường.bài đăng tuyệt vời để biết thêm về hiệu quả của các kết quả 1x1). Và xem video này để có một hình dung tuyệt vời về sự kết hợp bộ lọc ở cuối.

Bạn có thể tự hỏi mình, Kiến trúc này giúp ích như thế nào? Vâng, bạn có một mô-đun bao gồm một mạng trong lớp mạng, một bộ lọc kích thước trung bình, một bộ lọc kích thước lớn và hoạt động gộp. Mạng trong mạng đối lưu có thể trích xuất thông tin về các chi tiết rất mịn trong âm lượng, trong khi bộ lọc 5x5 có thể bao phủ một trường tiếp nhận lớn của đầu vào và do đó cũng có thể trích xuất thông tin của nó. Bạn cũng có một hoạt động tổng hợp giúp giảm kích thước không gian và chống lại tình trạng thừa. Trên hết, bạn có ReLUs sau mỗi lớp đối lưu, giúp cải thiện tính phi tuyến của mạng. Về cơ bản, mạng có thể thực hiện các chức năng của các hoạt động khác nhau này trong khi vẫn cân nhắc tính toán.giấy . Vẫn chưa hoàn toàn rõ ràng với tôi, nhưng nếu có ai có bất kỳ hiểu biết nào, tôi rất muốn nghe họ trong các bình luận!).

Ý chính

  • Đã sử dụng chín mô-đun khởi động trong toàn bộ kiến ​​trúc với tổng số hơn 100 lớp! Bây giờ, đó là sâu sắc
  • Không sử dụng các lớp kết nối đầy đủ! Thay vào đó, họ sử dụng một nhóm trung bình để chuyển từ âm lượng 7x7x1024 sang âm lượng 1x1x1024. Điều này tiết kiệm một số lượng lớn các tham số.
  • Sử dụng các tham số ít hơn 12 lần so với AlexNet.
  • Trong quá trình thử nghiệm, nhiều loại cây trồng của cùng một hình ảnh đã được tạo và đưa vào mạng và xác suất softmax được tính trung bình để cung cấp cho chúng tôi giải pháp cuối cùng.
  • Các khái niệm được sử dụng từ R-CNN (một bài báo chúng ta sẽ thảo luận sau) cho mô hình phát hiện của họ.
  • Có các phiên bản cập nhật của mô-đun Inception (Phiên bản 6 và 7).
  • Được đào tạo trên một vài GPU cao cấp trong vòng một tuần .

Tại sao nó quan trọng

GoogLeNet là một trong những mô hình đầu tiên đưa ra ý tưởng rằng các lớp CNN không phải luôn được xếp chồng lên nhau một cách tuần tự. Đến với mô-đun Inception, các tác giả đã chỉ ra rằng cấu trúc các lớp sáng tạo có thể dẫn đến cải thiện hiệu suất và hiệu quả tính toán. Bài viết này đã thực sự tạo tiền đề cho một số kiến ​​trúc tuyệt vời mà chúng ta có thể thấy trong những năm tới.

5. Microsoft ResNet (2015)

Hãy tưởng tượng một kiến ​​trúc CNN sâu sắc. Lấy số đó, nhân đôi số lớp, thêm một vài lớp nữa và có lẽ nó vẫn không sâu bằng kiến trúc ResNet mà Microsoft Research Asia đã đưa ra vào cuối năm 2015. ResNet là kiến ​​trúc mạng 152 lớp mới được thiết lập mới hồ sơ trong phân loại, phát hiện và bản địa hóa thông qua một kiến ​​trúc đáng kinh ngạc. Ngoài kỷ lục mới về số lượng lớp, ResNet đã thắng ILSVRC 2015 với tỷ lệ lỗi đáng kinh ngạc là 3,6%. (Tùy thuộc vào kỹ năng và chuyên môn của họ, con người thường di chuyển quanh tỷ lệ lỗi 5-10%. Xem Andrej Karpathy tuyệt vời đăng bài về kinh nghiệm của anh ấy khi thi đấu với ConvNets trong thử thách ImageNet.)

Khối dư

Ý tưởng đằng sau một khối dư là bạn có đầu vào x của bạn đi qua một chuỗi đối lưu. Điều này sẽ cung cấp cho bạn một số F (x). Kết quả đó sau đó được thêm vào đầu vào ban đầu x. Hãy gọi H (x) = F (x) + x. Trong các CNN truyền thống, H (x) của bạn sẽ chỉ bằng F (x) phải không? Vì vậy, thay vì chỉ tính toán chuyển đổi đó (trực tiếp từ x sang F (x)), chúng tôi đang tính toán thuật ngữ mà bạn phải thêm F (x) vào đầu vào x của mình. Về cơ bản, mô-đun nhỏ được hiển thị bên dưới đang tính toán một delta delta, hoặc thay đổi một chút so với đầu vào ban đầu x để có một đại diện thay đổi một chút (khi chúng ta nghĩ về CNN truyền thống, chúng ta đi từ x đến F (x), đó là một hoàn toàn đại diện mới không giữ bất kỳ thông tin nào về x gốc. Các tác giả tin rằng, việc tối ưu hóa ánh xạ dư dễ dàng hơn so với tối ưu hóa ánh xạ gốc, không được ước tính.

Một lý do khác cho lý do tại sao khối dư này có thể có hiệu quả là trong quá trình truyền ngược lại, độ dốc sẽ dễ dàng chảy qua biểu đồ vì chúng tôi có các hoạt động bổ sung, phân phối gradient.

Ý chính

  • Cơn sốt siêu sâu - Yann LeCun.
  • 152 lớp
  • Điều thú vị là chỉ sau hai  lớp đầu tiên , kích thước không gian được nén từ một khối lượng đầu vào là 224x224 đến một khối lượng 56x56.
  • Các tác giả cho rằng sự gia tăng ngây thơ của các lớp trong lưới trơn dẫn đến lỗi đào tạo và kiểm tra cao hơn (Hình 1 trong bài báo ).
  • Nhóm đã thử một mạng 1202 lớp, nhưng có độ chính xác kiểm tra thấp hơn, có lẽ là do quá mức.
  • Được đào tạo trên một máy 8 GPU trong hai đến ba tuần .

Tại sao nó quan trọng

Tỷ lệ lỗi 3,6%. Điều đó là đủ để thuyết phục bạn. Mô hình ResNet là kiến ​​trúc CNN tốt nhất mà chúng tôi hiện đang có và là một sự đổi mới tuyệt vời cho ý tưởng học tập còn lại. Với tỷ lệ lỗi giảm hàng năm kể từ năm 2012, tôi nghi ngờ về việc liệu họ có đi xuống ILSVRC hay không. Tôi tin rằng chúng ta đã đi đến điểm xếp chồng nhiều lớp lên nhau sẽ không dẫn đến tăng hiệu suất đáng kể. Chắc chắn sẽ có những kiến ​​trúc mới đầy sáng tạo như chúng ta đã thấy trong hai năm qua. 

Phần thưởng : ResNets bên trong ResNets . Vâng. Tôi đã đi đến đấy.

6. CNN dựa trên khu vực (R-CNN, 2013; R-CNN nhanh, 2015; R-CNN nhanh hơn, 2015)

Một số người có thể lập luận rằng sự ra đời của R-CNN đã có tác động mạnh hơn bất kỳ bài báo nào trước đây về kiến ​​trúc mạng mới. Với bài báo R-CNN đầu tiên được trích dẫn hơn 1.600 lần, Ross Girshick và nhóm của ông tại UC Berkeley đã tạo ra một trong những tiến bộ có ảnh hưởng nhất trong tầm nhìn máy tính. Bằng chứng là các tiêu đề của họ, Fast R-CNNFaster R-CNN đã làm việc để làm cho mô hình nhanh hơn và phù hợp hơn cho các nhiệm vụ phát hiện đối tượng hiện đại.

Mục đích của R-CNN là để giải quyết vấn đề phát hiện đối tượng. Đưa ra một hình ảnh nhất định, chúng tôi muốn có thể vẽ các hộp giới hạn trên tất cả các đối tượng. Quá trình có thể được chia thành hai thành phần chung: bước đề xuất khu vực và bước phân loại.

Các tác giả lưu ý rằng bất kỳ phương pháp đề xuất khu vực bất khả tri phải phù hợp. Tìm kiếm chọn lọc được sử dụng cụ thể cho R-CNN. Tìm kiếm chọn lọc thực hiện chức năng tạo 2.000 vùng khác nhau có xác suất chứa đối tượng cao nhất. Sau khi chúng tôi đưa ra một loạt các đề xuất khu vực, các đề xuất này sau đó đã biến War thành một kích thước hình ảnh có thể được đưa vào một CNN được đào tạo (AlexNet trong trường hợp này) để trích xuất một vectơ đặc trưng cho từng khu vực. Sau đó, vectơ này được sử dụng làm đầu vào cho một tập hợp các SVM tuyến tính được đào tạo cho mỗi lớp và đưa ra một phân loại. Vectơ cũng được đưa vào một bộ hồi quy hộp giới hạn để có được tọa độ chính xác nhất.

Ức chế không cực đại sau đó được sử dụng để triệt tiêu các hộp giới hạn có sự chồng chéo đáng kể với nhau.

R-CNN nhanh

Các cải tiến đã được thực hiện cho mô hình ban đầu vì ba vấn đề chính. Việc đào tạo đã diễn ra nhiều giai đoạn (Chuyển đổi thành SVM sang các biến hồi quy hộp giới hạn), rất tốn kém về mặt tính toán và cực kỳ chậm (RCNN mất 53 giây cho mỗi hình ảnh). R-CNN nhanh đã có thể giải quyết vấn đề tốc độ bằng cách chia sẻ cơ bản tính toán các lớp đối lưu giữa các đề xuất khác nhau và hoán đổi thứ tự tạo đề xuất khu vực và chạy CNN. Trong mô hình này, hình ảnh đầu tiên được cung cấp thông qua ConvNet, sau đó các tính năng của các đề xuất khu vực được lấy từ bản đồ tính năng cuối cùng của ConvNet (kiểm tra phần 2.1 của bài báo để biết thêm chi tiết) và cuối cùng, chúng tôi có các lớp được kết nối đầy đủ của chúng tôi cũng như người đứng đầu hồi quy và phân loại của chúng tôi.

R-CNN nhanh hơn

R-CNN nhanh hơn hoạt động để chống lại đường ống huấn luyện hơi phức tạp mà cả R-CNN và Fast R-CNN thể hiện. Các tác giả chèn một mạng đề xuất khu vực (RPN) sau lớp chập cuối cùng. Mạng này có thể chỉ cần nhìn vào bản đồ tính năng tích chập cuối cùng và đưa ra các đề xuất khu vực từ đó. Từ giai đoạn đó, đường ống tương tự như R-CNN được sử dụng (ROI gộp, FC, sau đó phân loại và hồi quy đầu).

Tại sao nó quan trọng

Có thể xác định rằng một đối tượng cụ thể có trong một hình ảnh là một chuyện, nhưng việc có thể xác định vị trí chính xác của đối tượng đó là một bước nhảy lớn về kiến ​​thức cho máy tính. R-CNN nhanh hơn đã trở thành tiêu chuẩn cho các chương trình phát hiện đối tượng ngày nay.

7. Mạng đối thủ sáng tạo (2014)

Theo Yann LeCun , các mạng này có thể là sự phát triển lớn tiếp theo. Trước khi nói về bài viết này , chúng ta hãy nói một chút về các ví dụ đối nghịch. Ví dụ: hãy xem xét một CNN được đào tạo hoạt động tốt trên dữ liệu ImageNet. Chúng ta hãy lấy một hình ảnh ví dụ và áp dụng một nhiễu loạn (hoặc một sửa đổi nhỏ) để lỗi dự đoán được tối đa hóa . Do đó, loại đối tượng của dự đoán thay đổi, trong khi hình ảnh trông giống nhau khi so sánh với hình ảnh mà không bị nhiễu loạn. Từ cấp độ cao nhất, các ví dụ đối nghịch về cơ bản là những hình ảnh đánh lừa ConvNets.

Ví dụ về nghịch cảnh ( giấy) chắc chắn làm ngạc nhiên rất nhiều nhà nghiên cứu và nhanh chóng trở thành một chủ đề được quan tâm. Bây giờ hãy nói về các mạng đối nghịch chung. Chúng ta hãy nghĩ về hai mô hình: một mô hình thế hệ và một mô hình phân biệt đối xử. Mô hình phân biệt đối xử có nhiệm vụ xác định xem một hình ảnh nhất định trông tự nhiên (một hình ảnh từ bộ dữ liệu) hoặc trông giống như nó đã được tạo ra một cách giả tạo. Nhiệm vụ của trình tạo là tạo ra các hình ảnh để người phân biệt được đào tạo để tạo ra các đầu ra chính xác. Điều này có thể được coi là một trò chơi hai người chơi bằng 0 hoặc tối thiểu. Điểm tương đồng được sử dụng trong bài báo là mô hình thế hệ giống như một nhóm người làm giả, cố gắng sản xuất và sử dụng tiền giả, trong khi mô hình phân biệt đối xử giống như cảnh sát, cố gắng phát hiện tiền giả. Máy phát điện đang cố gắng đánh lừa người phân biệt đối xử trong khi người phân biệt đối xử đang cố gắng không bị lừa bởi máy phát điện. Khi các mô hình được đào tạo, cả hai phương pháp đều được cải tiến cho đến thời điểm mà các hàng giả trên mạng không thể phân biệt được với các sản phẩm chính hãng.

Tại sao nó quan trọng

Nghe có vẻ đơn giản, nhưng tại sao chúng ta quan tâm đến các mạng này? Như Yann LeCun đã nói trong bài Quora của mình , người phân biệt đối xử bây giờ biết về đại diện nội bộ của dữ liệu vì nó đã được đào tạo để hiểu sự khác biệt giữa hình ảnh thực từ bộ dữ liệu và hình ảnh nhân tạo. Do đó, nó có thể được sử dụng như một trình trích xuất tính năng mà bạn có thể sử dụng trong CNN. Thêm vào đó, bạn chỉ có thể tạo ra những hình ảnh nhân tạo thực sự tuyệt vời trông khá tự nhiên đối với tôi ( link ).

8. Tạo mô tả hình ảnh (2014)

Điều gì xảy ra khi bạn kết hợp CNN với RNN? Không, bạn không nhận được R-CNN, xin lỗi. Nhưng bạn có một ứng dụng thực sự tuyệt vời. Được viết bởi Andrej Karpathy (một trong những tác giả yêu thích cá nhân của tôi) và Fei-Fei Li, bài viết này xem xét sự kết hợp giữa CNN và RNN hai chiều (Mạng thần kinh tái phát) để tạo ra các mô tả ngôn ngữ tự nhiên của các vùng hình ảnh khác nhau. Về cơ bản, mô hình có thể chụp ảnh và xuất ra điều này:

Điều đó thật tuyệt vời. Chúng ta hãy xem làm thế nào so sánh với CNN bình thường. Với các CNN truyền thống, có một nhãn rõ ràng duy nhất được liên kết với mỗi hình ảnh trong dữ liệu đào tạo. Mô hình được mô tả trong bài báo có các ví dụ đào tạo có một câu (hoặc chú thích) được liên kết với mỗi hình ảnh. Loại nhãn này được gọi là nhãn yếu, trong đó các phân đoạn của câu đề cập đến các phần (không xác định) của hình ảnh. Sử dụng dữ liệu huấn luyện này, một mạng lưới thần kinh sâu, sâu vào sự liên kết tiềm ẩn giữa các phân đoạn của câu và khu vực mà chúng mô tả về (trích dẫn từ bài báo). Một mạng lưới thần kinh khác lấy hình ảnh làm đầu vào và tạo mô tả trong văn bản. Chúng ta hãy xem xét riêng về hai thành phần: căn chỉnh và tạo.

Mô hình căn chỉnh

Mục tiêu của phần này của mô hình là có thể căn chỉnh dữ liệu trực quan và văn bản (hình ảnh và mô tả câu của nó). Mô hình hoạt động bằng cách chấp nhận một hình ảnh và một câu làm đầu vào trong đó đầu ra là một điểm cho mức độ phù hợp của chúng. Bây giờ, Karpathy đề cập đến một bài báo khác , đi sâu vào chi tiết cụ thể về cách thức hoạt động của nó. Mô hình này được đào tạo về các cặp câu hình ảnh tương thích và không tương thích.

Hãy suy nghĩ về việc đại diện cho hình ảnh. Bước đầu tiên là đưa hình ảnh vào R-CNN để phát hiện các đối tượng riêng lẻ. R-CNN này đã được đào tạo về dữ liệu ImageNet. Các vùng đối tượng 19 (cộng với hình ảnh gốc) hàng đầu được nhúng trong không gian 500 chiều. Bây giờ chúng ta có 20 vectơ 500 chiều khác nhau (được biểu thị bằng v trong bài viết) cho mỗi hình ảnh. Chúng tôi có thông tin về hình ảnh. Bây giờ chúng tôi muốn thông tin về câu. Chúng ta sẽ nhúng các từ vào cùng một không gian đa phương thức này. Điều này được thực hiện bằng cách sử dụng mạng thần kinh tái phát hai chiều. Từ cấp độ cao nhất, điều này phục vụ để minh họa thông tin về ngữ cảnh của các từ trong một câu nhất định. Vì thông tin này về hình ảnh và câu đều ở trong cùng một không gian, chúng tôi có thể tính toán các sản phẩm bên trong để hiển thị một thước đo tương tự.

Mô hình thế hệ

Mô hình căn chỉnh có mục đích chính là tạo một tập dữ liệu trong đó bạn có một tập hợp các vùng hình ảnh (được tìm thấy bởi RCNN) và văn bản tương ứng (nhờ BRNN). Bây giờ, mô hình thế hệ sẽ học từ tập dữ liệu đó để tạo mô tả cho một hình ảnh. Mô hình lấy hình ảnh và cung cấp thông qua CNN. Lớp softmax bị coi nhẹ khi các đầu ra của lớp được kết nối đầy đủ trở thành đầu vào cho một RNN khác. Đối với những người không quen thuộc với RNN, chức năng của họ về cơ bản là hình thành các phân phối xác suất cho các từ khác nhau trong một câu (RNN cũng cần được đào tạo giống như CNN).

Tuyên bố miễn trừ trách nhiệm : Đây chắc chắn là một trong những bài viết dày đặc hơn trong phần này, vì vậy nếu bất kỳ ai có bất kỳ chỉnh sửa hoặc giải thích nào khác, tôi rất muốn nghe họ trong các bình luận!

Tại sao nó quan trọng

Ý tưởng thú vị đối với tôi là sử dụng các mô hình RNN và CNN dường như khác nhau này để tạo ra một ứng dụng rất hữu ích, theo cách kết hợp các lĩnh vực của thị giác máy tính và xử lý ngôn ngữ tự nhiên. Nó mở ra cơ hội cho những ý tưởng mới về cách làm cho máy tính và mô hình thông minh hơn khi xử lý các tác vụ vượt qua các lĩnh vực khác nhau.

9. Mạng biến áp không gian (2015)

Cuối cùng, nhưng không kém phần quan trọng, chúng ta hãy đi vào một trong những bài báo gần đây hơn trong lĩnh vực này. Bài viết này được viết bởi một nhóm tại Google Deepmind hơn một năm trước. Đóng góp chính là sự ra đời của mô-đun Biến thế không gian. Ý tưởng cơ bản là mô-đun này biến đổi hình ảnh đầu vào theo cách để các lớp tiếp theo có thời gian phân loại dễ dàng hơn. Thay vì thực hiện các thay đổi đối với chính kiến ​​trúc CNN, các tác giả lo lắng về việc thay đổi hình ảnh trước đónó được đưa vào lớp đối lưu cụ thể. Hai điều mà mô-đun này hy vọng sẽ sửa là đặt ra chuẩn hóa (các tình huống trong đó đối tượng bị nghiêng hoặc thu nhỏ) và chú ý không gian (gây chú ý đến đối tượng chính xác trong hình ảnh đông đúc). Đối với các CNN truyền thống, nếu bạn muốn làm cho mô hình của mình bất biến thành các hình ảnh với các tỷ lệ và góc quay khác nhau, bạn cần rất nhiều ví dụ đào tạo để mô hình học đúng. Chúng ta hãy đi vào chi tiết cụ thể về cách mô-đun biến áp này giúp chống lại vấn đề đó.

Thực thể trong các mô hình CNN truyền thống xử lý bất biến không gian là lớp maxpooling. Lý do trực quan đằng sau lớp này là một khi chúng ta biết rằng một tính năng cụ thể nằm trong khối lượng đầu vào ban đầu (bất cứ nơi nào có giá trị kích hoạt cao), vị trí chính xác của nó không quan trọng bằng vị trí tương đối của nó với các tính năng khác. Biến áp không gian mới này là động theo cách nó sẽ tạo ra hành vi khác nhau (biến dạng / biến đổi khác nhau) cho mỗi hình ảnh đầu vào. Nó không chỉ đơn giản và được xác định trước như một maxpool truyền thống. Chúng ta hãy xem làm thế nào mô-đun biến áp này hoạt động. Các mô-đun bao gồm:

  • Một mạng nội địa hóa có các tham số đầu vào và đầu ra của phép biến đổi không gian sẽ được áp dụng . Các tham số, hoặc theta, có thể là sáu chiều cho một phép biến đổi affine.
  • Việc tạo ra một lưới lấy mẫu là kết quả của việc làm cong vênh lưới thông thường với phép biến đổi affine (theta) được tạo trong mạng nội địa hóa.
  • Một bộ lấy mẫu có mục đích là thực hiện cong vênh bản đồ tính năng đầu vào .

Mô-đun này có thể được thả vào CNN tại bất kỳ thời điểm nào và về cơ bản giúp mạng tìm hiểu cách chuyển đổi bản đồ tính năng theo cách giảm thiểu chức năng chi phí trong quá trình đào tạo.

Tại sao nó quan trọng

Bài viết này khiến tôi chú ý vì lý do chính là những cải tiến trong CNN không nhất thiết phải đến từ những thay đổi mạnh mẽ trong kiến ​​trúc mạng. Chúng tôi không cần tạo mô-đun ResNet hoặc Inception tiếp theo. Bài viết này thực hiện ý tưởng đơn giản là thực hiện các phép biến đổi affine thành hình ảnh đầu vào để giúp các mô hình trở nên bất biến hơn đối với dịch, tỷ lệ và xoay. Đối với những người quan tâm, đây là video từ Deepmind có một hình ảnh động tuyệt vời về kết quả của việc đặt mô-đun Biến thế không gian trong CNN và thảo luận tốt về Quora .

Và kết thúc loạt ba phần của chúng tôi trên ConvNets! Hy vọng tất cả mọi người đã có thể theo dõi, và nếu bạn cảm thấy rằng tôi có thể đã để lại một cái gì đó quan trọng, hãy cho tôi biết trong các ý kiến! Nếu bạn muốn biết thêm thông tin về một số khái niệm này, một lần nữa tôi rất khuyến nghị các video bài giảng của Stanford CS 231n, có thể tìm thấy bằng một tìm kiếm YouTube đơn giản.

|