Sự khác biệt giữa Convolutional1D, Convolutional2D và Convolutional3D là gì?


10

Tôi đã được học về Mạng thần kinh chuyển đổi. Khi xem xét các Kerasví dụ, tôi đã bắt gặp ba phương pháp tích chập khác nhau. Cụ thể, 1D, 2D & 3D. Sự khác biệt giữa ba lớp này là gì? Trường hợp sử dụng của họ là gì? Có một số liên kết hoặc tài liệu tham khảo để hiển thị trường hợp sử dụng của họ?

Câu trả lời:


5

Sự khác biệt duy nhất là chiều của không gian đầu vào. Đầu vào cho một lớp chập có hình dạng sau:

input_shape = (batch_size, input_dims, kênh)

  • Hình dạng đầu vào cho conv1D : (batch_size, W, kênh)

    Ví dụ: Tín hiệu giọng nói stereo 1 giây được lấy mẫu ở 44100 Hz, hình dạng: (batch_size, 44100,2)

  • Hình dạng đầu vào cho conv2D : (batch_size, (H, W), kênh)

    Ví dụ: hình ảnh 32x32 RGB, hình dạng: (batch_size, 32,32,3)

  • Hình dạng đầu vào cho conv3D : (batch_size, (H, w, D), kênh)

    Ví dụ (khó hơn): video 1 giây của hình ảnh 32x32 RGB ở 24 khung hình / giây, hình dạng: (batch_size, 32,32,3,24)

Kênh là gì?

Điều quan trọng là suy nghĩ về ý nghĩa của kênh đối với dữ liệu đầu vào của chúng tôi. Lớp chập áp dụng các bộ lọc khác nhau cho mỗi kênh, do đó, các trọng số của lớp đối lưu có hình dạng sau:

(kernel_size,num_channels,num_filter_per_channels)

Thí dụ:

Lớp kết hợp với 12 bộ lọc và ma trận nhân vuông có kích thước 3. Lớp này sẽ áp dụng 12 bộ lọc khác nhau cho mỗi kênh. Trong các ví dụ đã nêu trước đây:

  • Tín hiệu thoại stereo 1 giây được lấy mẫu ở 44100 Hz, kernel_size = 3

    12 x 2 = 24 bộ lọc một chiều, 12 bộ lọc cho mỗi kênh

     Weigths shape: (3, 2, 12)
  • Hình ảnh 32x32 RGB, kernel_size = (3,3)

    12 x 3 = 36 bộ lọc hai chiều, 12 bộ lọc cho mỗi kênh

    Weights shape: (3, 3, 3, 12)
  • Video 1 giây của hình ảnh 32x32 RGB ở 24 khung hình / giây, kernel_size = (3,3,3)

    24 x 12 = 288 bộ lọc ba chiều, 12 bộ lọc cho mỗi kênh

    Weights shape: (3, 3, 3, 24, 12)

Do đó, việc quyết định ý nghĩa của kênh là rất quan trọng, vì mỗi kênh có bộ bộ lọc riêng. Đối với các ví dụ đầu tiên, dường như rất đơn giản để quyết định rằng tín hiệu âm thanh nổi và hình ảnh RGB là các kênh khác nhau ... chúng thường được đặt tên như vậy (kênh âm thanh nổi, kênh RGB). Trong ví dụ về video, nó mơ hồ hơn ... Đặt video làm đầu vào 3D với kích thước tạm thời vì kênh có thể không phải là lựa chọn tốt nhất vì theo cách đó, thứ tự mà các khung thời gian không thành vấn đề (đầu ra cho các bộ lọc của mỗi kênh được tóm tắt) dẫn đến mất động lực thời gian nội tại của dữ liệu đầu vào. Một cách tiếp cận tốt hơn (tùy thuộc vào ứng dụng) là xử lý hình ảnh RGB với các kết cấu 2D trong mạng thần kinh tái phát. Điều tương tự cũng xảy ra với tín hiệu thoại,

Điều quan trọng cần lưu ý là tín hiệu có thứ nguyên đầu vào D có thể được coi là tín hiệu có thứ nguyên D + 1 với một kênh, nhưng không gian tính năng kết quả có thể ít đại diện / hữu ích hơn :

 (44100,2) --> expand_dimension(axis=-1)--> ((44100,2),1)

Mã Keras áp dụng các ví dụ

from keras import Input, Conv1D, Conv2D, Conv3D
#1D
in_ = Input(shape=(44100,2))
layer = Conv1D(filters=12,kernel_size=3)
out_ = layer(in_)
print("Weights shape: {}".format(layer.get_weights()[0].shape))

#2D
in_ = Input(shape=(32,32,3))
layer = Conv2D(filters=12,kernel_size=3)
out_ = layer(in_)
print("Weights shape: {}".format(layer.get_weights()[0].shape))

#3D
in_ = Input(shape=(32,32,3,24))
layer = Conv3D(filters=12,kernel_size=3)
out_ = layer(in_)
print("Weights shape: {}".format(layer.get_weights()[0].shape))

8

Conv1D được sử dụng cho các tín hiệu đầu vào tương tự như giọng nói. Bằng cách sử dụng chúng, bạn có thể tìm thấy các mẫu trên tín hiệu. Chẳng hạn, bạn có tín hiệu thoại và bạn có lớp chập. Mỗi tích chập đi qua giọng nói để tìm các mẫu có ý nghĩa bằng cách sử dụng hàm chi phí.

Conv2D được sử dụng cho hình ảnh. Trường hợp sử dụng này là rất phổ biến. Phương pháp tích chập được sử dụng cho lớp này được gọi là tích chập trên khối lượng . Điều này có nghĩa là bạn có một hình ảnh hai chiều chứa nhiều kênh, RGB là một ví dụ. Trong trường hợp này, mỗi bộ lọc tích chập phải là bộ lọc ba chiều để được tích hợp, tương quan chéo thực sự với hình ảnh để tìm các mẫu thích hợp trên ảnh.

3D

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.