RNN vs CNN ở mức cao


53

Tôi đã suy nghĩ về Mạng thần kinh tái phát (RNN) và các giống và Mạng thần kinh chuyển đổi (CNN) và các giống của chúng.

Hai điểm này có công bằng không khi nói:

  • Sử dụng CNN để chia một thành phần (chẳng hạn như hình ảnh) thành các thành phần con (chẳng hạn như một đối tượng trong hình ảnh, chẳng hạn như phác thảo của đối tượng trong hình ảnh, v.v.)
  • Sử dụng RNN để tạo kết hợp các thành phần phụ (chú thích hình ảnh, tạo văn bản, dịch ngôn ngữ, v.v.)

Tôi sẽ đánh giá cao nếu bất cứ ai muốn chỉ ra bất kỳ sự không chính xác trong các tuyên bố này. Mục tiêu của tôi ở đây là có được một nền tảng rõ ràng hơn về việc sử dụng CNN và RNN.

Câu trả lời:


42

Một CNN sẽ học cách nhận ra các mẫu trên không gian. Vì vậy, như bạn nói, một CNN sẽ học cách nhận biết các thành phần của hình ảnh (ví dụ: đường, đường cong, v.v.) và sau đó học cách kết hợp các thành phần này để nhận ra các cấu trúc lớn hơn (ví dụ: khuôn mặt, đối tượng, v.v.).

Theo một cách rất chung chung, RNN sẽ học cách nhận biết các mẫu tương tự theo thời gian. Vì vậy, một RNN được đào tạo để dịch văn bản có thể học được rằng "con chó" nên được dịch khác đi nếu đứng trước từ "nóng".

Tuy nhiên, cơ chế mà hai loại NN đại diện cho các mẫu này là khác nhau. Trong trường hợp của CNN, bạn đang tìm kiếm tương tự mẫu trên tất cả các trường con khác nhau của hình ảnh. Trong trường hợp RNN, bạn (trong trường hợp đơn giản nhất) cung cấp các lớp ẩn từ bước trước đó làm đầu vào bổ sung vào bước tiếp theo. Mặc dù RNN xây dựng bộ nhớ trong quá trình này, nhưng nó không tìm kiếm các mẫu giống nhau trên các lát thời gian khác nhau giống như cách mà CNN đang tìm kiếm các mẫu giống nhau trên các vùng không gian khác nhau.

Tôi cũng nên lưu ý rằng khi tôi nói "thời gian" và "không gian" ở đây, nó không nên được sử dụng quá đúng theo nghĩa đen. Chẳng hạn, bạn có thể chạy RNN trên một hình ảnh để chú thích hình ảnh và ý nghĩa của "thời gian" chỉ đơn giản là thứ tự xử lý các phần khác nhau của hình ảnh. Vì vậy, các đối tượng được xử lý ban đầu sẽ thông báo chú thích cho các đối tượng sau đó được xử lý.


3
Bạn có thể có được trực giác tốt cho sự khác biệt của mô hình RNN từ karpathy.github.io/assets/rnn/diags.jpeg - một đồ họa được sao chép nhiều. Các CNN cùng với MLP và các mô hình không đệ quy khác khi chỉ thực hiện trường hợp mô hình một-một.
Neil Slater

@NeilSlater Tôi thậm chí còn biết bài viết gốc của hình ảnh này, nhưng không bao giờ có thể trích xuất bất cứ điều gì hữu ích từ nó. Xin vui lòng, bạn có thể giải thích những gì bạn học được từ hình ảnh?
Hi-Angel

2
@ Hi-Angel: Hình ảnh hiển thị các mối quan hệ có thể có giữa các chuỗi và các thực thể đơn lẻ có thể được ánh xạ bởi một mô hình. Nếu bạn đã hiểu rõ về hoán vị, thì bạn có thể không nhận được gì từ nó. Lý do hình ảnh xuất hiện trong bài viết là vì nó thể hiện tính linh hoạt tương đối của RNNs: RNN có thể được áp dụng cho tất cả các loại vấn đề khác nhau được hiển thị (ví dụ: nó có thể được sử dụng trong các vấn đề dịch ngôn ngữ phù hợp với mục thứ 4), trong khi mạng chuyển tiếp chỉ áp dụng cho các vấn đề phù hợp với hình ảnh đầu tiên.
Neil Slater


23

Sự khác biệt giữa CNN và RNN như sau:

CNN:

  1. CNN lấy đầu vào có kích thước cố định và tạo đầu ra có kích thước cố định.

  2. CNN là một loại mạng thần kinh nhân tạo chuyển tiếp thức ăn - là các biến thể của các tri giác đa lớp được thiết kế để sử dụng số lượng tiền xử lý tối thiểu.

  3. Các CNN sử dụng mô hình kết nối giữa các nơ-ron của nó được lấy cảm hứng từ tổ chức vỏ thị giác động vật, có các nơ-ron riêng lẻ được sắp xếp theo cách mà chúng phản ứng với các vùng chồng chéo cho trường thị giác.

  4. CNN là lý tưởng cho xử lý hình ảnh và video.

RNN:

  1. RNN có thể xử lý độ dài đầu vào / đầu ra tùy ý.

  2. RNN, không giống như các mạng thần kinh feedforward, có thể sử dụng bộ nhớ trong của chúng để xử lý các chuỗi đầu vào tùy ý.

  3. Mạng thần kinh định kỳ sử dụng thông tin chuỗi thời gian (tức là những gì tôi nói cuối cùng sẽ ảnh hưởng đến những gì tôi sẽ nói tiếp theo.)

  4. RNN là lý tưởng cho phân tích văn bản và lời nói.



CNN không có lớp dày đặc có thể lấy đầu vào có kích thước tùy ý.
Mikael Rousson

1

Tôi nghĩ rằng hai câu lệnh này không đúng vì CNN không chia thành phần thành các thành phần con mà sử dụng các trọng số được chia sẻ trên tất cả các thành phần con chồng chéo (trường ẩn) để tìm cùng một mẫu. Nó không phải là một thuật toán phân chia và chinh phục.

Trong trường hợp chung, CNN có xu hướng trích xuất các tính năng cục bộ và bất biến vị trí (độc lập với vị trí của chúng) và RNN có xu hướng tìm thấy các mẫu khác nhau theo thời gian ngay cả khi chúng ở xa.

Ví dụ: trường hợp áp dụng cả hai cho ngôn ngữ tự nhiên, CNN rất giỏi trong việc trích xuất các tính năng bất biến cục bộ và vị trí nhưng nó không thu được các phụ thuộc ngữ nghĩa tầm xa. Nó chỉ xem xét các khóa địa phương.

Vì vậy, khi kết quả được xác định bởi toàn bộ câu hoặc một CNN phụ thuộc ngữ nghĩa tầm xa không hiệu quả như trong bài viết này , nơi các tác giả đã so sánh cả hai kiến ​​trúc trên NLP taks.

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.