Sự khác biệt giữa Convolution Convolution và Deconvolution là gì?


11

Hai hoạt động tích chập này rất phổ biến trong học tập sâu ngay bây giờ.

Tôi đã đọc về lớp chập giãn trong bài báo này: WAVENET: MÔ HÌNH TẠO CHO CHO ÂM THANH RAW

và Khử liên kết có trong bài viết này: Mạng kết hợp hoàn toàn cho phân đoạn ngữ nghĩa

Cả hai dường như up-mẫu hình ảnh nhưng sự khác biệt là gì?

Câu trả lời:


9

Trong các loại thuật ngữ cơ học / hình ảnh / dựa trên hình ảnh:

Độ giãn nở: ### XEM NHẬN XÉT, LÀM VIỆC ĐÚNG PHẦN NÀY

Sự giãn nở phần lớn giống như sự tích chập của máy nghiền (thật ra là quá trình giải mã), ngoại trừ việc nó đưa vào các khoảng trống vào các hạt nhân của nó, tức là trong khi một hạt nhân tiêu chuẩn thường trượt qua các phần tiếp giáp của nó, thì đối tác bị giãn có thể, ví dụ: "bao quanh" một phần lớn hơn của hình ảnh - trong khi đó vẫn chỉ có nhiều trọng lượng / đầu vào như dạng chuẩn.

(Lưu ý tốt, trong khi sự giãn nở bơm các số không vào nhân của nó để giảm nhanh hơn kích thước / độ phân giải của đầu ra của nó, chuyển đổi tích chập tiêm các số 0 vào đầu vào của nó để tăng độ phân giải của đầu ra.)

Để làm cho điều này cụ thể hơn, hãy lấy một ví dụ rất đơn giản:
Giả sử bạn có hình ảnh 9x9, x không có phần đệm. Nếu bạn lấy hạt nhân 3x3 tiêu chuẩn, với bước 2, tập hợp con quan tâm đầu tiên từ đầu vào sẽ là x [0: 2, 0: 2] và tất cả chín điểm trong các giới hạn này sẽ được xem xét bởi hạt nhân. Sau đó, bạn sẽ quét qua x [0: 2, 2: 4], v.v.

Rõ ràng, đầu ra sẽ có kích thước khuôn mặt nhỏ hơn, cụ thể là 4 x 4. Do đó, các tế bào thần kinh của lớp tiếp theo có các trường tiếp nhận với kích thước chính xác của các hạt nhân này. Nhưng nếu bạn cần hoặc mong muốn các nơ-ron có kiến ​​thức không gian toàn cầu hơn (ví dụ: nếu một tính năng quan trọng chỉ có thể xác định ở các vùng lớn hơn thế này) thì bạn sẽ cần phải tạo lớp này lần thứ hai để tạo lớp thứ ba trong đó trường tiếp nhận hiệu quả là một số liên minh của các lớp trước rf.

Nhưng nếu bạn không muốn thêm nhiều lớp hơn và / hoặc bạn cảm thấy rằng thông tin được truyền đi là quá dư thừa (tức là các trường tiếp nhận 3x3 của bạn trong lớp thứ hai chỉ thực sự mang lượng thông tin riêng biệt "2x2"), bạn có thể sử dụng một bộ lọc giãn. Chúng ta hãy cực kỳ hiểu điều này và nói rằng chúng ta sẽ sử dụng bộ lọc 3 số 9x9. Bây giờ, bộ lọc của chúng tôi sẽ "bao vây" toàn bộ đầu vào, vì vậy chúng tôi sẽ không phải trượt nó. Tuy nhiên, chúng tôi vẫn sẽ chỉ lấy 3x3 = 9 điểm dữ liệu từ đầu vào, x , thường:

x [0,0] U x [0,4] U x [0,8] U x [4,0] U x [4,4] U x [4,8] U x [8,0] U x [8.4] U x [8,8]

Bây giờ, tế bào thần kinh trong lớp tiếp theo của chúng ta (chúng ta sẽ chỉ có một) sẽ có dữ liệu "đại diện" cho phần lớn hơn của hình ảnh của chúng ta và một lần nữa, nếu dữ liệu của hình ảnh rất dư thừa cho dữ liệu liền kề, chúng ta có thể đã bảo toàn cùng thông tin và học được một phép biến đổi tương đương, nhưng với ít lớp hơn và ít tham số hơn. Tôi nghĩ rằng trong giới hạn của mô tả này, rõ ràng rằng trong khi có thể xác định lại là lấy mẫu lại, chúng tôi đang ở đây để lấy mẫu cho mỗi hạt nhân.


Sải bước hoặc chuyển đổi hoặc "giải mã":

Loại này là rất nhiều vẫn còn chập chững trong tim. Sự khác biệt là, một lần nữa, chúng ta sẽ chuyển từ âm lượng đầu vào nhỏ hơn sang âm lượng đầu ra lớn hơn. OP không đặt ra câu hỏi nào về việc lấy mẫu là gì, vì vậy tôi sẽ tiết kiệm một chút chiều rộng, lần này là 'và đi thẳng vào ví dụ có liên quan.

Trong trường hợp 9x9 của chúng tôi từ trước, giả sử bây giờ chúng tôi muốn nâng cấp lên 11x11. Trong trường hợp này, chúng tôi có hai tùy chọn phổ biến: chúng tôi có thể lấy hạt nhân 3x3 và sải bước 1 và quét nó qua đầu vào 3x3 của chúng tôi bằng cách đệm 2 lần để vượt qua lần đầu tiên của chúng tôi trên vùng [left-pad-2: 1, trên-pad-2: 1] sau đó [left-pad-1: 2, trên-pad-2: 1] và cứ thế tiếp tục.

Ngoài ra, chúng ta có thể chèn thêm phần đệm vào giữa dữ liệu đầu vào và quét kernel qua nó mà không cần nhiều phần đệm. Rõ ràng đôi khi chúng ta sẽ liên quan đến chính mình với cùng một điểm đầu vào chính xác hơn một lần cho một hạt nhân; đây là lúc thuật ngữ "phân đoạn nhỏ" có vẻ hợp lý hơn. Tôi nghĩ rằng hình ảnh động sau (được mượn từ đây và dựa trên (tôi tin) từ tác phẩm này sẽ giúp làm sáng tỏ mọi thứ mặc dù có kích thước khác nhau. Đầu vào có màu xanh, các số 0 và phần đệm được chèn màu trắng và màu xanh lá cây đầu ra:

chuyển đổi đối lưu, đầu vào là màu xanh, đầu ra màu xanh lá cây

Tất nhiên, chúng tôi liên quan đến tất cả các dữ liệu đầu vào trái ngược với sự giãn nở có thể hoặc không thể bỏ qua hoàn toàn một số khu vực. Và vì chúng tôi rõ ràng đang kết thúc với nhiều dữ liệu hơn so với khi chúng tôi bắt đầu, "upampling".

Tôi khuyến khích bạn đọc tài liệu tuyệt vời mà tôi đã liên kết để có một định nghĩa trừu tượng và giải thích rõ hơn về tích chập chuyển vị, cũng như để tìm hiểu lý do tại sao các ví dụ được chia sẻ là các hình thức minh họa nhưng phần lớn không phù hợp để thực sự tính toán chuyển đổi đại diện.


1
Xin lưu ý, tôi không phải là chuyên gia, - một người gần đây phải tự phân biệt các khái niệm này. Xin vui lòng cho tôi biết nếu có bất kỳ sai lầm hoàn toàn hoặc đơn giản hóa quá mức có thể làm suy yếu các câu trả lời chính xác tổng thể. Cảm ơn!
Doug Brummell

Doug Brummel Wow giải thích độc đáo. Tôi đã có cùng một ý tưởng. Tôi muốn biết ý kiến ​​của bạn về việc áp dụng tích chập giãn, Chúng ta nên bắt đầu áp dụng điều này như thế nào trong CNN. Trước tiên chúng ta có nên tích chập bình thường sau đó áp dụng phương pháp tích phân giãn không? Một điều nữa bị tích chập có thể bỏ lỡ thông tin nếu chúng ta không đệm. Vì vậy, tôi nghĩ rằng chúng ta nên áp dụng tích chập giãn sau vài lớp convnets bình thường?
Shamane Siriwardhana

Tôi tin rằng ý tưởng tiêu chuẩn là tăng lượng giãn nở về phía trước, bắt đầu với các bộ lọc thông thường, không pha loãng cho l = 1, di chuyển về phía 2 và sau đó là các bộ lọc 3 pha và cứ thế khi bạn tiến qua độ sâu của mạng. Điều này cho phép bạn đảm bảo tất cả dữ liệu trong một lớp được truyền vào lớp kế tiếp (bao gồm, quan trọng là vào chính mạng) trong khi vẫn cho phép lấy mẫu nhanh hơn theo cấp số nhân với mỗi lớp nhưng không tăng tham số. Mục tiêu là các lĩnh vực tiếp nhận rộng mà không phải hy sinh dữ liệu. Và có, chú ý đến đệm nên sớm quan trọng.
Doug Brummell

Xem [bài viết này] ( arxiv.org/pdf/1511.07122.pdf ), nó được tham chiếu ở trên và cung cấp một chút tốt về những gì tôi đã đọc về chủ đề này.
Doug Brummell

Một điều khác, bài báo nói rằng không có sự mất độ phân giải trong sơ đồ giãn nở ngày càng tăng như vậy ... Tôi đoán tôi chỉ cảnh giác với những mất mát khác mà tôi có thể che giấu dưới "độ phân giải". Tất nhiên, nếu bạn có thể thay thế một loạt các lớp đối lưu bằng các lớp giãn ít hơn và duy trì độ chính xác, tuyệt vời, bạn hoàn toàn nên. Nhưng với tôi (và tôi sẽ phải quay lại với những cuốn sách về điều này), tôi nghĩ về những mất mát tiềm ẩn trong trường hợp bạn là kiến ​​trúc sư ngay từ đầu với sự giãn nở ...
Doug Brummell

5

Mặc dù cả hai dường như đang làm điều tương tự, đó là lấy mẫu một lớp, nhưng có một lề rõ ràng giữa chúng.

Đầu tiên chúng ta nói về Convolution giãn nở

Tôi tìm thấy blog tốt đẹp về chủ đề trên. Vì vậy, theo tôi hiểu, điều này giống như khám phá các điểm dữ liệu đầu vào một cách rộng rãi . Hoặc tăng lĩnh vực tiếp nhận của hoạt động tích chập.

Dưới đây là một sơ đồ tích chập từ giấy .

Hình 3

Đây là nhiều tích chập thông thường, nhưng giúp thu được ngày càng nhiều bối cảnh toàn cầu từ các pixel đầu vào mà không làm tăng kích thước của các tham số. Điều này cũng có thể giúp tăng kích thước không gian của đầu ra. Nhưng điều chính ở đây là điều này làm tăng kích thước trường tiếp nhận theo cấp số nhân với số lượng lớp. Điều này rất phổ biến trong lĩnh vực xử lý tín hiệu.

Blog này thực sự giải thích những gì mới trong tích chập giãn và cách so sánh với tích chập thông thường.

Blog: Convolutions giãn nở và Kronecker Convolutions

Bây giờ tôi sẽ giải thích Deconvolution là gì

Điều này được gọi là tích chập chuyển. Điều này tương đương với chức năng mà chúng ta đã sử dụng để tích chập trong quá trình truyền ngược.

Đơn giản là trong backprop, chúng tôi phân phối gradient từ một nơron trong sơ đồ tính năng đầu ra cho tất cả các yếu tố trong các lĩnh vực tiếp nhận, sau đó chúng tôi cũng tổng hợp các gradient cho nơi chúng trùng với các yếu tố tiếp nhận giống nhau

Đây là một nguồn tài nguyên tốt với hình ảnh .

Vì vậy, ý tưởng cơ bản là deconvolution hoạt động trong không gian đầu ra. Không phải pixel đầu vào. Nó sẽ cố gắng tạo ra các kích thước không gian rộng hơn trong bản đồ đầu ra. Điều này được sử dụng trong Mạng lưới thần kinh chuyển đổi hoàn toàn cho phân đoạn ngữ nghĩa .

Vì vậy, nhiều hơn của Deconvolution là một lớp lấy mẫu có thể học được.

Đó là cố gắng học cách nâng cao mẫu trong khi kết hợp với mất mát cuối cùng

Đây là lời giải thích tốt nhất mà tôi tìm thấy cho việc giải mã. Bài giảng 13 trong cs231, từ 21,21 trở đi .


bạn có thể giải thích chi tiết về cách tích chập giãn giúp tăng kích thước không gian của đầu ra không? Nó dường như đòi hỏi nhiều phần đệm hơn so với kết cấu truyền thống, do đó tồi tệ hơn về kích thước đầu ra.
wlnirvana
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.