Sự khác biệt cơ bản giữa mạng thần kinh tích chập và mạng thần kinh tái phát là gì? Họ áp dụng ở đâu?
Sự khác biệt cơ bản giữa mạng thần kinh tích chập và mạng thần kinh tái phát là gì? Họ áp dụng ở đâu?
Câu trả lời:
Về cơ bản, một CNN lưu một tập các trọng số và áp dụng chúng theo không gian. Ví dụ: trong một lớp, tôi có thể có 32 bộ trọng số (còn được gọi là bản đồ đặc trưng). Mỗi bộ trọng số là một khối 3x3, nghĩa là tôi có 3x3x32 = 288 trọng số cho lớp đó. Nếu bạn đưa cho tôi một hình ảnh đầu vào, với mỗi bản đồ 3x3, tôi sẽ trượt nó trên tất cả các pixel trong hình ảnh, nhân các vùng lại với nhau. Tôi lặp lại điều này cho tất cả 32 bản đồ tính năng và chuyển các đầu ra trên. Vì vậy, tôi đang học một vài trọng lượng mà tôi có thể áp dụng ở rất nhiều địa điểm.
Đối với RNN, đó là một tập hợp các trọng số được áp dụng tạm thời (theo thời gian). Một đầu vào đi vào, và được nhân với trọng số. Các mạng lưu một trạng thái nội bộ và đưa ra một số loại đầu ra. Sau đó, phần dữ liệu tiếp theo xuất hiện và được nhân với trọng số. Tuy nhiên, trạng thái bên trong được tạo ra từ phần dữ liệu cuối cùng cũng xuất hiện và được nhân với một trọng số khác nhau. Chúng được thêm vào và đầu ra đến từ một kích hoạt được áp dụng cho tổng, nhân với trọng số khác. Trạng thái nội bộ được cập nhật và quá trình lặp lại.
CNN hoạt động thực sự tốt cho tầm nhìn máy tính. Ở mức độ thấp, bạn thường muốn tìm những thứ như đường dọc và ngang. Những thứ đó sẽ xuất hiện trên tất cả các hình ảnh, vì vậy sẽ rất hợp lý khi có trọng lượng mà bạn có thể áp dụng ở bất cứ đâu trong hình ảnh.
RNN thực sự tốt cho xử lý ngôn ngữ tự nhiên. Bạn có thể tưởng tượng rằng từ tiếp theo trong câu sẽ bị ảnh hưởng nhiều bởi những từ đi trước nó, vì vậy sẽ rất hợp lý khi đưa trạng thái nội bộ đó về phía trước và có một trọng số nhỏ có thể áp dụng cho bất kỳ đầu vào nào.
Tuy nhiên, có nhiều ứng dụng hơn. Ngoài ra, CNN đã thực hiện tốt các nhiệm vụ NLP. Ngoài ra còn có các phiên bản nâng cao hơn của RNN được gọi là LSTM mà bạn có thể kiểm tra.
Để được giải thích về CNN, hãy tham gia khóa học Stanford CS231n . Đặc biệt kiểm tra bài giảng 5. Có video đầy đủ trên YouTube.
Để được giải thích về RNN, hãy vào đây .
Mạng thần kinh tái phát (RNN) là mạng thần kinh nhân tạo (ANN) có một hoặc nhiều kết nối lặp lại (hoặc theo chu kỳ), trái ngược với việc chỉ có kết nối chuyển tiếp, như mạng thần kinh chuyển tiếp thức ăn (FFNN).
Các kết nối tuần hoàn này được sử dụng để theo dõi các mối quan hệ tạm thời hoặc phụ thuộc giữa các yếu tố của chuỗi. Do đó, RNN phù hợp cho dự đoán trình tự hoặc các nhiệm vụ liên quan.
Trong hình bên dưới, bạn có thể quan sát một RNN ở bên trái (chỉ chứa một đơn vị ẩn) tương đương với RNN ở bên phải, đó là phiên bản "mở ra" của nó. Ví dụ, chúng ta có thể quan sát rằng (đơn vị ẩn ở bước thời gian ) nhận cả đầu vào và giá trị của đơn vị ẩn ở bước thời gian trước đó, nghĩa là .
Các kết nối theo chu kỳ (hoặc trọng số của các cạnh theo chu kỳ), như các kết nối chuyển tiếp, được học bằng thuật toán tối ưu hóa (như giảm độ dốc) thường được kết hợp với lan truyền ngược (được sử dụng để tính toán độ dốc của hàm mất) .
Mạng thần kinh chuyển đổi (CNN) là ANN thực hiện một hoặc nhiều hoạt động tích chập (hoặc tương quan chéo ) (thường được thực hiện theo thao tác lấy mẫu xuống ).
Tích chập là một hoạt động có hai chức năng, và , làm đầu vào và tạo ra hàm thứ ba, , nơi biểu tượng biểu thị hoạt động tích chập. Trong ngữ cảnh của CNN, chức năng đầu vàoví dụ có thể là một hình ảnh (có thể được coi là một hàm từ tọa độ 2D đến giá trị RGB hoặc thang độ xám). Các chức năng khác được gọi là "kernel" (hoặc bộ lọc), có thể được coi là ma trận (nhỏ và vuông) (chứa đầu ra của hàm ). cũng có thể được coi là một ma trận (lớn) (chứa, cho mỗi ô, ví dụ: giá trị thang độ xám của nó).
Trong ngữ cảnh của CNN, hoạt động tích chập có thể được coi là sản phẩm chấm giữa hạt nhân (một ma trận) và một số phần của đầu vào (một ma trận).
Trong hình bên dưới, chúng tôi thực hiện phép nhân phần tử giữa các kernel và một phần của đầu vào , sau đó chúng tôi tổng hợp các phần tử của ma trận kết quả và đó là giá trị của hoạt động tích chập cho phần cụ thể của đầu vào.
Để cụ thể hơn, trong hình trên, chúng tôi đang thực hiện các thao tác sau
Ở đâu là phép nhân nguyên tố và phép tính tổng là trên tất cả các hàng và cột (của ma trận).
Để tính toán tất cả các yếu tố của , chúng ta có thể nghĩ về kernel như bị trượt trên ma trận .
Nói chung, hàm kernel có thể sửa được. Tuy nhiên, trong bối cảnh của CNN, kernel đại diện cho các tham số có thể học được của CNN: nói cách khác, trong quy trình đào tạo (sử dụng ví dụ: giảm độ dốc và lan truyền ngược), hạt nhân này (do đó có thể được coi là một ma trận trọng số) thay đổi.
Trong ngữ cảnh của CNN, thường có nhiều hơn một nhân: nói cách khác, thường là một chuỗi các hạt nhân Được áp dụng cho để tạo ra một chuỗi các kết cấu . Mỗi hạt nhân được sử dụng để "phát hiện các tính năng khác nhau của đầu vào", vì vậy các hạt nhân này khác nhau.
Một hoạt động lấy mẫu xuống là một hoạt động làm giảm kích thước đầu vào trong khi cố gắng duy trì càng nhiều thông tin càng tốt. Ví dụ: nếu kích thước đầu vào là một ma trận , một hoạt động lấy mẫu xuống phổ biến được gọi là tổng hợp tối đa , trong trường hợp, trả lại (yếu tố tối đa của ).
Các CNN đặc biệt phù hợp để xử lý các đầu vào chiều cao (ví dụ: hình ảnh), bởi vì, so với FFNN, chúng sử dụng một số lượng nhỏ hơn các tham số có thể học được (trong bối cảnh của CNN, là các hạt nhân). Vì vậy, chúng thường được sử dụng để phân loại hình ảnh.
Sự khác biệt cơ bản giữa RNN và CNN là gì? RNN có kết nối thường xuyên trong khi CNN không nhất thiết phải có chúng. Hoạt động cơ bản của CNN là hoạt động tích chập, không có trong RNN tiêu chuẩn.
CNN vs RNN
Trong số này, lớp chập áp dụng hoạt động tích chập trên thang đo 3D đầu vào. Các bộ lọc khác nhau trích xuất các loại tính năng khác nhau từ một hình ảnh. GIF dưới đây minh họa điểm này thực sự tốt:
Ở đây bộ lọc là ma trận 3x3 màu xanh lá cây trong khi hình ảnh là ma trận 7x7 màu xanh.
Nhiều lớp như vậy đi qua các bộ lọc trong CNN để cung cấp lớp đầu ra có thể lại là lớp được kết nối hoàn toàn NN hoặc lớp căng 3D.
Ví dụ, trong ví dụ trên, hình ảnh đầu vào đi qua lớp chập, rồi lớp gộp, rồi lớp chập, lớp gộp, sau đó lớp tenor 3D được làm phẳng giống như lớp Mạng thần kinh 1D, sau đó được chuyển đến lớp được kết nối đầy đủ và cuối cùng là lớp mềm. Điều này làm cho một CNN.
Mạng thần kinh tái phát RNN (RNN) là một loại Mạng thần kinh nơi đầu ra từ bước trước được đưa vào làm đầu vào cho bước hiện tại.
Đây, ,, và là các giá trị của dữ liệu đầu vào xảy ra tại các bước thời gian cụ thể và được đưa vào RNN đi qua các lớp ẩn cụ thể ,, và mà tiếp tục sản xuất đầu ra ,, và tương ứng.
Ở mức độ cơ bản, RNN là một mạng thần kinh có trạng thái tiếp theo phụ thuộc vào (các) trạng thái trong quá khứ của nó, trong khi CNN là mạng thần kinh thực hiện giảm kích thước (làm cho dữ liệu lớn nhỏ hơn trong khi lưu giữ thông tin) thông qua tích chập. Xem phần này để biết thêm thông tin về kết quả
Trong 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 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 takss.
Điều này có thể được mở rộng cho trường hợp chung.