Trong CNN, việc ghép mẫu và chuyển vị chập có giống nhau không?


12

Cả hai thuật ngữ "tăng tốc" và "tích chập chuyển vị" đều được sử dụng khi bạn thực hiện "giải mã" (<- không phải là một thuật ngữ tốt, nhưng hãy để tôi sử dụng nó ở đây). Ban đầu, tôi nghĩ rằng chúng có cùng ý nghĩa, nhưng dường như chúng khác với chúng sau khi tôi đọc những bài viết này. bất cứ ai có thể xin vui lòng làm rõ?

  1. Chuyển vị chập : có vẻ như chúng ta có thể sử dụng nó khi chúng ta chống lại sự mất mát thông qua mạng lưới thần kinh liên hợp.

    http://andrew.gibiansky.com/blog/machine-learning/convolutional-neural-networks/#Backward-Propagation

    https://github.com/vdumoulin/conv_arith chữ số

    https://arxiv.org/pdf/1312.6034v2.pdf , phần 4 "Dành cho lớp chập ..."

  2. Upsampling : có vẻ như chúng ta sử dụng nó khi chúng ta muốn lấy mẫu từ đầu vào nhỏ hơn sang đầu vào lớn hơn trong cấu trúc decnet-decovnet.

    https://www.youtube.com/watch?v=ByjaPdWXKJ4&feature=youtu.be&t=22m


1
Đăng chéo tại datascience.stackexchange.com/questions/15863/ ,. Vui lòng không đăng bài chéo nhưng quyết định trang web nào bạn muốn hỏi.
Scortchi - Phục hồi Monica

@Scortchi Oh họ được liên kết!? Xin lỗi, tôi loại bỏ một trong khoa học dữ liệu.
RockTheStar

Một bài viết thú vị về cái gọi là deconvolutions
hans

Câu trả lời:


9

Vì không có câu trả lời chi tiết và được đánh dấu, tôi sẽ cố gắng hết sức.

Trước tiên chúng ta hãy hiểu động lực cho các lớp như vậy đến từ đâu: ví dụ: bộ tự động tích chập. Bạn có thể sử dụng bộ mã hóa tự động tích chập để trích xuất các hình ảnh trong khi đào tạo bộ mã hóa tự động để tái tạo lại hình ảnh gốc. (Đây là một phương pháp không giám sát.)

Bộ mã hóa tự động như vậy có hai phần: Bộ mã hóa trích xuất các tính năng từ hình ảnh và bộ giải mã tái tạo lại hình ảnh gốc từ các tính năng này. Kiến trúc của bộ mã hóa và bộ giải mã thường được nhân đôi.

Trong một bộ mã hóa tự động chập, bộ mã hóa hoạt động với các lớp chập và gộp. Tôi giả sử rằng bạn biết làm thế nào những công việc này. Bộ giải mã cố gắng phản chiếu bộ mã hóa nhưng thay vì "làm cho mọi thứ nhỏ hơn", nó có mục tiêu là "làm cho mọi thứ lớn hơn" để phù hợp với kích thước ban đầu của hình ảnh.

Đối lập với các lớp chập là các lớp chập chuyển vị (còn được gọi là giải mã , nhưng nói một cách chính xác về mặt toán học thì đây là một cái gì đó khác biệt). Chúng hoạt động với các bộ lọc, hạt nhân, sải bước giống như các lớp chập nhưng thay vì ánh xạ từ các pixel đầu vào 3x3 sang 1 đầu ra, chúng ánh xạ từ 1 pixel đầu vào thành 3x3 pixel. Tất nhiên, backpropagation cũng hoạt động một chút khác nhau.

Đối diện của các lớp gộp là các lớp upampling mà ở dạng tinh khiết nhất của chúng chỉ thay đổi kích thước hình ảnh (hoặc sao chép pixel nhiều lần nếu cần). Một kỹ thuật tiên tiến hơn là unpooling giúp chuyển đổi maxpooling bằng cách nhớ vị trí của cực đại trong các lớp maxpooling và trong các lớp unpooling sao chép giá trị vào chính xác vị trí này. Để trích dẫn từ bài viết này ( https://arxiv.org/pdf/1311.2901v3.pdf ):

Trong mạng lưới, hoạt động gộp tối đa là không thể đảo ngược, tuy nhiên chúng ta có thể có được một nghịch đảo gần đúng bằng cách ghi lại các vị trí của cực đại trong mỗi vùng gộp trong một tập hợp các biến chuyển đổi. Trong deconvnet, hoạt động unpooling sử dụng các công tắc này để đặt các cấu trúc lại từ lớp trên vào các vị trí thích hợp, bảo toàn cấu trúc của kích thích.

Để biết thêm về đầu vào kỹ thuật và bối cảnh, hãy xem phần giải thích thực sự hay, minh họa và chuyên sâu này: http://deeplearning.net/software/theano/tutorial/conv_arithatures.html

Và hãy xem https://www.quora.com/What-is-the-difference-b between-Deconvolution-Upsampling-Unpooling -and -Convolutional-Sparse-Coding


F. Chollet (người tạo ra Keras) sẽ cho rằng đây là một kỹ thuật tự giám sát .
hans

6

Nó có thể phụ thuộc vào gói bạn đang sử dụng.

Trong máy ảnh họ là khác nhau. Upsampling được định nghĩa ở đây https://github.com/fchollet/keras/blob/master/keras/layers/convolutional.py Miễn là bạn sử dụng phụ trợ tensorflow, những gì thực sự xảy ra là keras cuộc gọi tensorflow resize_images chức năng, trong đó chủ yếu là một suy và không đào tạo được.

Chuyển đổi tích chập có liên quan nhiều hơn. Nó được định nghĩa trong cùng một kịch bản python được liệt kê ở trên. Nó gọi hàm tenorflow conv2d_transpose và nó có kernel và có thể huấn luyện được.

Hi vọng điêu nay co ich.


1

Sự giải mã trong bối cảnh của các mạng nơ ron tích chập đồng nghĩa với sự tích chập chuyển vị. Giải mã có thể có ý nghĩa khác trong các lĩnh vực khác.

Kết hợp chuyển vị là một chiến lược trong số các chiến lược khác để thực hiện upampling.


Vâng tôi đồng ý. nhưng có vẻ như cách các tài liệu tham khảo giải thích chúng là khác nhau. Hãy xem video trong số 2 và sau đó xem các tài liệu tham khảo trong Số 1 (Cá nhân, tôi đi giải thích số 1)
RockTheStar

@RockTheStar Khái niệm nào được giải thích khác nhau? Chuyển đổi tích chập hoặc upampling?
Franck Dernoncourt

1
khái niệm upampling / deconvolution được giải thích trong video trong số 2. Đó là khoảng vài phút.
RockTheStar

0

đây là một minh họa khá hay về sự khác biệt giữa 1) tích chập chuyển vị và 2) ghép mẫu + tích chập. https://distill.pub/2016/deconv-checkerboard/

Mặc dù phép tích chập chuyển vị hiệu quả hơn, bài viết ủng hộ việc ghép mẫu + tích chập vì nó không chịu sự giả tạo của bàn cờ.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.