Tại sao các RNN với các đơn vị LSTM cũng có thể bị ảnh hưởng bởi độ nổ của gradient?


13

Tôi có kiến ​​thức cơ bản về cách RNNs (và đặc biệt, với các đơn vị LSTM) hoạt động. Tôi có một ý tưởng hình ảnh về kiến ​​trúc của một đơn vị LSTM, đó là một ô và một vài cổng, điều chỉnh dòng chảy của các giá trị.

Tuy nhiên, rõ ràng, tôi chưa hiểu đầy đủ về cách LSTM giải quyết vấn đề "biến mất và nổ độ dốc", xảy ra trong khi đào tạo, sử dụng phương pháp truyền ngược qua thời gian, một RNN thông thường. Tôi chưa có cơ hội đọc các bài báo để hiểu đầy đủ về toán học.

Câu trả lời này đưa ra lời giải thích ngắn gọn về cách RNN với các đơn vị LSTM giải quyết vấn đề "độ dốc biến mất". Về mặt toán học, lý do dường như là sự không tồn tại của một công cụ phái sinh không biến mất, tức là không có xu hướng bằng không. Do đó, tác giả tuyên bố, "có ít nhất một con đường mà độ dốc không biến mất". IMHO, lời giải thích này là một chút mơ hồ.

Trong khi đó, tôi đang đọc bài báo Trình tự học theo trình tự với Mạng lưới thần kinh (của Ilya Sutskever, Oriol Vinyals, Quốc V. Le), và trong bài báo đó, phần "3.4 Chi tiết đào tạo", nó được nêu

Mặc dù các LSTM có xu hướng không gặp phải vấn đề độ dốc biến mất, nhưng chúng có thể có độ dốc phát nổ.

Tôi đã luôn nghĩ rằng các RNN với các đơn vị LSTM giải quyết cả hai vấn đề "biến mất" và "nổ độ dốc", nhưng, rõ ràng, các RNN với các đơn vị LSTM cũng bị "nổ độ dốc".

Theo trực giác, tại sao vậy? Về mặt toán học, những lý do là gì?

Câu trả lời:


12

Một câu trả lời rất ngắn:

LSTM tách trạng thái ô (thường được biểu thị bởi c) và lớp / đầu ra bị ẩn (thường được ký hiệu là h) và chỉ thực hiện cập nhật phụ gia c, giúp bộ nhớ cổn định hơn. Do đó, độ dốc chảy qua cđược giữ và khó biến mất (do đó độ dốc tổng thể khó biến mất). Tuy nhiên, các đường dẫn khác có thể gây ra vụ nổ gradient.


Một câu trả lời chi tiết hơn với lời giải thích toán học:

Trước tiên, hãy xem xét cơ chế CEC (Constant Error Carousel). CEC cho biết, từ bước thời gian tđến t+1, nếu cổng quên là 1 (Không có cổng quên trong giấy LSTM ban đầu, do đó, đây luôn là trường hợp), gradient có thể chảy mà không thay đổi. Theo các công thức BPTT trong bài viết LSTM: A Tìm kiếm không gian tìm kiếm Phụ lục A.2 ( trong bài viết là trong tài liệu khác), luồng CEC thực sự tương ứng với phương trình . Khi gần bằng 1, tích lũy thành . δ c t = + δ c t + 1f t + 1 f t + 1 δ c t + 1 δ c tdl/dctyhδct=+δct+1ft+1ft+1δct+1δct

Tuy nhiên, LSTM còn hơn cả CEC. Ngoài đường dẫn CEC từ đến , các đường dẫn khác tồn tại giữa hai bước thời gian liền kề. Ví dụ: . Đi qua quy trình nhân giống qua 2 bước, chúng ta có: , chúng tôi thấy được nhân hai lần trên đường dẫn này giống như RNN của vanilla, có thể gây nổ gradient. Tương tự, các đường dẫn qua cổng đầu vào và cổng quên cũng có khả năng gây nổ gradient do tự nhân các ma trận .ctct+1ytot+1yt+1δytRoTδot+1δyt+1RoTδot+2RoTRiT,RfT,RzT

Tài liệu tham khảo:

K. Greff, RK Srivastava, J. Koutn Mạnhık, BR Steunebrink và J.Schmidhuber. LSTM: Một cuộc phiêu lưu không gian tìm kiếm. CoRR, abs / 1503.04069, 2015.


Bạn có thể bao gồm một trích dẫn đầy đủ cho bài báo đó? Liên kết có xu hướng đi chết.
mkt - Tái lập Monica

2
@mkt Cảm ơn lời khuyên của bạn. Trên thực tế đây là một bài báo rất nổi tiếng và liên kết đến arXiv, vì vậy nó không có khả năng chết, lol ~ Nhưng hãy chắc chắn kiểm tra phiên bản v1 (Vì phiên bản hiện tại v2 không bao gồm phụ lục).
hóa đơn

Cảm ơn vì đã thêm nó vào bất cứ điều gì, và các chi tiết về phụ lục.
mkt - Tái lập Monica

Câu trả lời tuyệt vời, tôi thường không bình luận để đặt +1, nhưng điều này xứng đáng. Hiển thị một ví dụ thực tế với đại số ma trận của các đường dẫn có thể không ổn định trong một ô LSTM trả lời chính xác cho OP.
DeltaIV

3

Các RNN trước LSTM / GRU trước đây không ổn định vì những gì họ đang thực hiện về cơ bản là nhân với trạng thái ẩn với một số trọng số cho mỗi dấu thời gian, có nghĩa là đó là một hoạt động theo cấp số nhân. Và như chúng ta đã biết, lũy thừa rất không ổn định: LSTM / GRU giải quyết vấn đề này bằng cách biến phép nhân thành phép cộng. Bạn có một trạng thái ô và thay vì nhân lên, bạn có thể cộng hoặc trừ nó.

0.992000.134
1200=1
1.0120013

Tuy nhiên, vẫn còn một số đường dẫn qua đó độ dốc có thể trở nên không ổn định và mạng càng lớn thì khả năng cao là bạn sẽ gặp phải vấn đề này.


3
Tại sao điều này sẽ trả lời câu hỏi của tôi? Tôi muốn biết chi tiết.
nbro
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.