Sự khác biệt giữa các mạng thần kinh tích chập, máy Boltzmann bị hạn chế và bộ mã hóa tự động là gì?


Câu trả lời:


237

Autoencoder là một mạng thần kinh 3 lớp đơn giản, nơi các đơn vị đầu ra được kết nối trực tiếp trở lại các đơn vị đầu vào . Ví dụ: trong một mạng như thế này:

nhập mô tả hình ảnh ở đây

output[i]có cạnh trở lại input[i]cho mọi i. Thông thường, số lượng đơn vị ẩn ít hơn nhiều so với số lượng đơn vị hiển thị (đầu vào / đầu ra). Kết quả là, khi bạn truyền dữ liệu qua một mạng như vậy, trước tiên, nó sẽ nén (mã hóa) vectơ đầu vào để "khớp" trong một biểu diễn nhỏ hơn, sau đó cố gắng xây dựng lại (giải mã) nó trở lại. Nhiệm vụ của đào tạo là giảm thiểu lỗi hoặc tái cấu trúc, tức là tìm biểu diễn nhỏ gọn (mã hóa) hiệu quả nhất cho dữ liệu đầu vào.

RBM chia sẻ ý tưởng tương tự, nhưng sử dụng phương pháp ngẫu nhiên. Thay vì xác định (ví dụ logistic hoặc ReLU), nó sử dụng các đơn vị ngẫu nhiên với phân phối cụ thể (thường là nhị phân của Gaussian). Quy trình học tập bao gồm một số bước lấy mẫu Gibbs (tuyên truyền: mẫu hiddens đã cho visibles; tái tạo: mẫu visibles cho hiddens; lặp lại) và điều chỉnh trọng số để giảm thiểu lỗi tái cấu trúc.

nhập mô tả hình ảnh ở đây

Trực giác đằng sau RBM là có một số biến ngẫu nhiên có thể nhìn thấy (ví dụ: đánh giá phim từ những người dùng khác nhau) và một số biến ẩn (như thể loại phim hoặc các tính năng bên trong khác) và nhiệm vụ của đào tạo là tìm hiểu xem hai bộ biến này thực sự như thế nào kết nối với nhau (nhiều hơn về ví dụ này có thể được tìm thấy ở đây ).

Mạng nơ-ron kết hợp có phần giống với hai mạng này, nhưng thay vì học ma trận trọng số toàn cầu duy nhất giữa hai lớp, chúng nhằm mục đích tìm ra một tập hợp các nơ-ron kết nối cục bộ. CNN chủ yếu được sử dụng trong nhận dạng hình ảnh. Tên của họ xuất phát từ toán tử "tích chập" hoặc đơn giản là "bộ lọc". Nói tóm lại, các bộ lọc là một cách dễ dàng để thực hiện thao tác phức tạp bằng cách thay đổi đơn giản hạt nhân chập. Áp dụng nhân mờ Gaussian và bạn sẽ làm cho nó được làm mịn. Áp dụng nhân Canny và bạn sẽ thấy tất cả các cạnh. Áp dụng kernel Gabor để có được các tính năng gradient.

nhập mô tả hình ảnh ở đây

(hình ảnh từ đây )

Mục tiêu của các mạng nơ ron tích chập không phải là sử dụng một trong các hạt nhân được xác định trước mà thay vào đó để tìm hiểu các hạt nhân cụ thể dữ liệu . Ý tưởng này giống như với bộ tự động hoặc RBM - dịch nhiều tính năng cấp thấp (ví dụ: đánh giá của người dùng hoặc pixel hình ảnh) sang biểu diễn mức cao được nén (ví dụ như thể loại phim hoặc cạnh) - nhưng giờ đây trọng lượng chỉ được học từ các nơ-ron không gian gần nhau.

nhập mô tả hình ảnh ở đây

Tất cả ba mô hình đều có trường hợp sử dụng, ưu và nhược điểm, nhưng có lẽ các thuộc tính quan trọng nhất là:

  1. Autoencoders là những người đơn giản nhất. Chúng có thể hiểu được bằng trực giác, dễ thực hiện và lý do (ví dụ: việc tìm các tham số meta tốt cho chúng dễ dàng hơn nhiều so với RBM).
  2. RBM là thế hệ. Đó là, không giống như các bộ điều khiển tự động chỉ phân biệt một số vectơ dữ liệu có lợi cho các vectơ khác, RBM cũng có thể tạo dữ liệu mới với phân phối đã tham gia. Họ cũng được coi là giàu tính năng và linh hoạt hơn.
  3. CNN là mô hình rất cụ thể chủ yếu được sử dụng cho nhiệm vụ rất cụ thể (mặc dù nhiệm vụ khá phổ biến). Hầu hết các thuật toán cấp cao nhất trong nhận dạng hình ảnh bằng cách nào đó dựa trên CNN ngày nay, nhưng bên ngoài thị trường đó chúng khó có thể áp dụng (ví dụ lý do sử dụng tích chập để phân tích đánh giá phim là gì?).

CẬP NHẬT.

Giảm kích thước

Khi chúng ta biểu diễn một số đối tượng là một vectơ của phần tử, chúng ta nói rằng đây là một vectơ trong không gian chiều. Do đó, giảm chiều dùng để chỉ một quá trình dữ liệu lọc theo cách như vậy, rằng mỗi vector dữ liệu được dịch sang một vector trong một không gian ba chiều (vector với phần tử), nơi . Có lẽ cách phổ biến nhất để làm điều này là PCA . Nói một cách đơn giản, PCA tìm thấy "các trục bên trong" của một tập dữ liệu (được gọi là "các thành phần") và sắp xếp chúng theo mức độ quan trọng của chúng. Đầu tiênnnxxmmm<nmcác thành phần quan trọng nhất sau đó được sử dụng làm cơ sở mới. Mỗi thành phần này có thể được coi là một tính năng cấp cao, mô tả các vectơ dữ liệu tốt hơn các trục gốc.

Cả hai - autoencoders và RBM - đều làm điều tương tự. Lấy một vector trong không gian ba chiều họ dịch nó thành một một chiều, cố gắng giữ càng nhiều thông tin quan trọng càng tốt, và đồng thời, loại bỏ tiếng ồn. Nếu việc đào tạo autoencoder / RBM thành công, mỗi yếu tố của vectơ kết quả (tức là mỗi đơn vị ẩn) đại diện cho một điều quan trọng về đối tượng - hình dạng của lông mày trong một hình ảnh, thể loại phim, lĩnh vực nghiên cứu trong bài báo khoa học, v.v. lấy nhiều dữ liệu gây nhiễu làm đầu vào và tạo ra ít dữ liệu hơn trong một biểu diễn hiệu quả hơn nhiều.nm

Kiến trúc sâu

Vì vậy, nếu chúng ta đã có PCA, tại sao chúng ta lại nghĩ ra bộ điều khiển tự động và RBM? Nó chỉ ra rằng PCA chỉ cho phép chuyển đổi tuyến tính của một vectơ dữ liệu. Nghĩa là, có thành phần chính , bạn chỉ có thể biểu diễn các vectơ . Điều này là khá tốt rồi, nhưng không phải lúc nào cũng đủ. Bất kể, bao nhiêu lần bạn sẽ áp dụng PCA cho dữ liệu - mối quan hệ sẽ luôn duy trì tuyến tính.mc1..cmx=i=1mwici

Mặt khác, Autoencoder và RBM là phi tuyến tính, và do đó, chúng có thể tìm hiểu các mối quan hệ phức tạp hơn giữa các đơn vị ẩn và ẩn. Hơn nữa, chúng có thể được xếp chồng lên nhau , khiến chúng thậm chí còn mạnh hơn. Ví dụ: bạn huấn luyện RBM với đơn vị ẩn và ẩn, sau đó bạn đặt một RBM khác với đơn vị hiển thị và ẩn trên đầu đơn vị đầu tiên và cũng huấn luyện nó, v.v. Và chính xác theo cách tương tự với bộ tự động.nmmk

Nhưng bạn không chỉ thêm các lớp mới. Trên mỗi lớp, bạn cố gắng học cách biểu diễn tốt nhất có thể cho dữ liệu từ lớp trước:

nhập mô tả hình ảnh ở đây

Trên hình ảnh trên có một ví dụ về một mạng lưới sâu như vậy. Chúng tôi bắt đầu với các pixel thông thường, tiến hành với các bộ lọc đơn giản, sau đó với các yếu tố khuôn mặt và cuối cùng kết thúc với toàn bộ khuôn mặt! Đây là bản chất của học tập sâu .

Bây giờ lưu ý rằng, trong ví dụ này, chúng tôi đã làm việc với dữ liệu hình ảnh và tuần tự lấy các vùng pixel lớn hơn và lớn hơn về mặt không gian. Nghe có vẻ không giống nhau? Vâng, bởi vì đó là một ví dụ về mạng chập sâu . Có thể dựa trên bộ tự động hoặc RBM, nó sử dụng tích chập để nhấn mạnh tầm quan trọng của địa phương. Đó là lý do tại sao CNN hơi khác biệt so với autoencoder và RBM.

Phân loại

Không có mô hình nào được đề cập ở đây hoạt động như các thuật toán phân loại mỗi se. Thay vào đó, chúng được sử dụng để sơ bộ - học các phép biến đổi từ biểu diễn mức độ thấp và khó tiêu thụ (như pixel) sang mức độ cao. Khi mạng sâu (hoặc có thể không sâu) được xử lý trước, các vectơ đầu vào được chuyển thành biểu diễn tốt hơn và vectơ kết quả cuối cùng được chuyển đến phân loại thực (như SVM hoặc hồi quy logistic). Trong một hình ảnh ở trên có nghĩa là ở phía dưới cùng có thêm một thành phần thực sự phân loại.


3
@ffriend Giải thích rất ngắn gọn và rõ ràng. Có rất nhiều bài viết về những chủ đề này nhưng cuộc họp của bạn thật tuyệt vời. "RockTheStar" Nếu bạn muốn giải thích chi tiết hơn, bạn có thể đọc cuốn sách 100 trang này của Yoshua Bengio (www.iro.umontreal.ca/~bengioy/ con / ftml_book.pdf)
Javierfdr

bạn sẽ dùng gì để dự đoán chuỗi sự kiện?
skan

2
@skan: hãy xem RNNs . Cụ thể, LSTM khá phổ biến hiện nay. Bạn cũng có thể muốn hỏi một câu hỏi riêng với nhiều chi tiết hơn để có câu trả lời đủ điều kiện, bởi vì RNN không hoàn toàn là lĩnh vực chuyên môn của tôi.

15

Tất cả các kiến ​​trúc này có thể được hiểu là một mạng lưới thần kinh. Sự khác biệt chính giữa AutoEncoder và Convolutional Network là mức độ kết nối mạng. Convolutional Nets là khá nhiều khó khăn. Hoạt động chuyển đổi là khá nhiều cục bộ trong miền hình ảnh, có nghĩa là sự thưa thớt hơn nhiều về số lượng kết nối trong chế độ xem mạng thần kinh. Hoạt động gộp (lấy mẫu) trong miền hình ảnh cũng là một tập hợp các kết nối thần kinh trong miền thần kinh. Những hạn chế tô pô như vậy về cấu trúc mạng. Với những hạn chế như vậy, việc đào tạo CNN học được các trọng số tốt nhất cho hoạt động tích chập này (Trong thực tế có nhiều bộ lọc). CNN thường được sử dụng cho các tác vụ hình ảnh và lời nói trong đó các ràng buộc tích chập là một giả định tốt.

Ngược lại, Autoencoder gần như không xác định gì về cấu trúc liên kết của mạng. Họ chung chung hơn nhiều. Ý tưởng là tìm ra sự biến đổi thần kinh tốt để tái tạo lại đầu vào. Chúng bao gồm bộ mã hóa (chiếu đầu vào vào lớp ẩn) và bộ giải mã (từ chối lớp ẩn thành đầu ra). Lớp ẩn tìm hiểu một tập hợp các tính năng tiềm ẩn hoặc các yếu tố tiềm ẩn. Bộ tự động tuyến tính trải dài trên cùng một không gian con với PCA. Đưa ra một tập dữ liệu, họ tìm hiểu số lượng cơ sở để giải thích mô hình cơ bản của dữ liệu.

RBM cũng là một mạng lưới thần kinh. Nhưng giải thích của mạng là hoàn toàn khác nhau. RBM diễn giải mạng không phải là một nguồn cấp dữ liệu, mà là một biểu đồ lưỡng cực trong đó ý tưởng là tìm hiểu phân phối xác suất chung của các biến ẩn và biến đầu vào. Chúng được xem như một mô hình đồ họa. Hãy nhớ rằng cả AutoEncoder và CNN đều học một hàm xác định. RBM, mặt khác, là mô hình thế hệ. Nó có thể tạo mẫu từ các biểu diễn ẩn đã học. Có các thuật toán khác nhau để đào tạo RBM. Tuy nhiên, vào cuối ngày, sau khi học RBM, bạn có thể sử dụng trọng số mạng của nó để diễn giải nó như một mạng tiếp liệu.


6

RBM có thể được xem như một loại mã hóa tự động xác suất. Trên thực tế, nó đã được chứng minh rằng trong những điều kiện nhất định, chúng trở nên tương đương.

Tuy nhiên, việc thể hiện sự tương đương này khó hơn nhiều so với việc chỉ tin rằng chúng là những con thú khác nhau. Thật vậy, tôi thấy khó tìm thấy nhiều điểm tương đồng giữa ba người, ngay khi tôi bắt đầu nhìn kỹ.

Ví dụ: nếu bạn viết ra các hàm được triển khai bởi bộ mã hóa tự động, RBM và CNN, bạn sẽ nhận được ba biểu thức toán học hoàn toàn khác nhau.


1

Tôi không thể nói với bạn nhiều về RBM, nhưng autoencoder và CNN là hai loại khác nhau. Bộ mã hóa tự động là một mạng lưới thần kinh được đào tạo theo kiểu không giám sát. Mục tiêu của bộ mã hóa tự động là tìm ra cách biểu diễn dữ liệu nhỏ gọn hơn bằng cách học một bộ mã hóa, biến đổi dữ liệu thành biểu diễn nhỏ gọn tương ứng của chúng và bộ giải mã, tái tạo lại dữ liệu gốc. Phần mã hóa của bộ mã hóa tự động (và RBM ban đầu) đã được sử dụng để tìm hiểu trọng lượng ban đầu tốt của kiến ​​trúc sâu hơn, nhưng có những ứng dụng khác. Về cơ bản, một bộ mã hóa tự động học một cụm dữ liệu. Ngược lại, thuật ngữ CNN dùng để chỉ một loại mạng thần kinh sử dụng toán tử tích chập (thường là tích chập 2D khi nó được sử dụng cho các tác vụ xử lý ảnh) để trích xuất các tính năng từ dữ liệu. Trong xử lý ảnh, bộ lọc, được kết hợp với hình ảnh, được học tự động để giải quyết nhiệm vụ trong tay, ví dụ: nhiệm vụ phân loại. Cho dù tiêu chí đào tạo là hồi quy / phân loại (được giám sát) hay tái cấu trúc (không giám sát) đều không liên quan đến ý tưởng về các kết cấu như là một thay thế cho các phép biến đổi affine. Bạn cũng có thể có bộ mã hóa tự động CNN.


autoencoder được giám sát đào tạo, khi bạn đào tạo để tạo ra thông tin giống như đầu ra như đầu vào đã cho, chỉ với một bộ ẩn nhỏ hơn, để mạng phải tìm một mã hóa thích hợp, biến đổi đầu vào thành kích thước của lớp ẩn và quay lại . trong đào tạo không được kiểm duyệt, như được sử dụng trong các mạng thống kê, như SOM hoặc khí thần kinh, bạn không có thông tin mục tiêu được trình bày cho mạng dưới dạng đầu ra.
SCI
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.