Làm thế nào lớp nhúng được đào tạo trong lớp nhúng Keras


8

Làm thế nào là lớp nhúng được đào tạo trong lớp nhúng Keras? (nói sử dụng phụ trợ kéo căng, nghĩa là nó tương tự như word2vec, găng tay hoặc fasttext)

Giả sử chúng tôi không sử dụng nhúng nhúng trước.

Câu trả lời:


6

Cả hai câu trả lời đều sai.

Lớp nhúng là lớp có thể huấn luyện chứa 1 ma trận nhúng, có hai chiều, trong một trục, số lượng giá trị duy nhất mà đầu vào phân loại có thể lấy (ví dụ 26 trong trường hợp bảng chữ cái viết thường) và trên trục kia là chiều không gian nhúng của bạn. Vai trò của lớp nhúng là ánh xạ một danh mục vào một không gian dày đặc theo cách có ích cho nhiệm vụ trong tay, ít nhất là trong một nhiệm vụ được giám sát. Điều này thường có nghĩa là có một số giá trị ngữ nghĩa trong các vectơ nhúng và các thể loại gần trong không gian này sẽ gần nghĩa với nhiệm vụ.

Điều này có liên quan đến mã hóa một nóng theo nghĩa là nó ánh xạ một danh mục riêng biệt thành một biểu diễn tính năng vector. Bạn vẫn có thể làm điều này cho một mạng lưới thần kinh nhưng nếu bạn sử dụng nó trong một lớp dày đặc, bạn sẽ tạo ra một lượng trọng lượng khổng lồ mà hầu hết chúng không được sử dụng thường xuyên. Đặt một lớp nhúng ở giữa sẽ giảm lượng trọng lượng có thể học được trước khi cho chúng tương tác với các phần khác trong đầu vào của bạn. Một lợi thế khác là về cơ bản ma trận nhúng hoạt động như một bảng tra cứu, vì vậy bạn thực sự có thể sử dụng độ thưa thớt của chỉ mục của danh mục của bạn để tìm kiếm giá trị hiện tại của nhúng là gì và khi áp dụng backpropagating chỉ điều chỉnh mục nhập của ma trận trọng số .

http://colah.github.io/posts/2014-07-NLP-RNNs-Repftimeations -> bài đăng trên blog này giải thích rõ ràng về cách lớp nhúng được đào tạo trong lớp Nhúng Keras. Hi vọng điêu nay co ich.


Cuối cùng một câu trả lời tốt, cảm ơn. Chúng tôi có thể thêm rằng Word2Vec được đào tạo như một mục tiêu mô hình hóa ngôn ngữ, điều này làm cho nó khác với các nhúng được đào tạo cho một nhiệm vụ cụ thể như bạn đã nói.
Elliot

0

Theo tôi hiểu, nó là một trình tự động mã hóa đơn giản, có nghĩa là tất cả những gì nó đang cố gắng ánh xạ đầu vào vào một không gian khác, vì vậy không cần đào tạo ưa thích, chỉ là một số chuyển tiếp đơn giản và backprop. Đây là lý do tại sao nó khá nhanh để đào tạo.

Nếu bạn muốn sử dụng các nhúng được đào tạo trước, bạn có thể làm theo cách đó


Bộ mã hóa tự động là một mô hình dự đoán chính nó. Đó có phải ý của bạn?
kbrose

Thật vậy, vì vậy bạn có thể xem nó như một mạng lưới thần kinh với một lớp ẩn duy nhất và nơi đầu vào và đầu ra giống hệt nhau Tôi không chắc đó là những gì Keras sử dụng, nhưng với tốc độ và tài liệu, tôi có xu hướng nghĩ rằng cách
Valentin Calomme

Bản thân lớp nhúng không làm điều đó. Nó chỉ gán một vectơ cho mỗi đầu vào số nguyên duy nhất. Bạn có thể xây dựng một mô hình mã hóa tự động xung quanh đó để huấn luyện các nhúng, nhưng nó không phải là một phần của lớp nhúng.
kbrose

Tôi đã bối rối vì câu trả lời của bạn phù hợp với sự hiểu biết của tôi về những gì Lớp nhúng thực hiện ngoài việc gọi nó là "bộ mã hóa tự động".
kbrose

0

Lớp nhúng sử dụng ma trận nhúng để ánh xạ dữ liệu và không bao giờ được cập nhật trong quá trình đào tạo . Không có tham số có thể huấn luyện trong lớp Nhúng Keras. Bạn có thể tham khảo các tài liệu lớp nhúng Keras để hiểu chi tiết.

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.