Làm thế nào để LSTM ngăn chặn vấn đề độ dốc biến mất?


35

LSTM được phát minh đặc biệt để tránh vấn đề độ dốc biến mất. Nó được cho là làm điều đó với Carousel lỗi liên tục (CEC), trên sơ đồ bên dưới (từ Greff và cộng sự ) tương ứng với vòng lặp quanh ô .

LSTM
(nguồn: deeplearning4j.org )

Và tôi hiểu rằng phần đó có thể được xem như là một loại hàm nhận dạng, do đó đạo hàm là một và độ dốc không đổi.

Điều tôi không hiểu là làm thế nào nó không biến mất do các chức năng kích hoạt khác? Các cổng đầu vào, đầu ra và quên sử dụng một sigmoid, đạo hàm này nhiều nhất là 0,25, và g và h theo truyền thống là tanh . Làm thế nào để backpropagating qua những người không làm cho gradient biến mất?


2
LSTM là một mô hình mạng thần kinh tái phát rất hiệu quả trong việc ghi nhớ các phụ thuộc dài hạn và điều đó không dễ bị ảnh hưởng bởi vấn đề độ dốc biến mất. Tôi không chắc bạn đang tìm kiếm lời giải thích nào
TheWalkingCube

LSTM: Bộ nhớ ngắn hạn dài. (Tham khảo: Hochreiter, S. và Schmidhuber, J. (1997). Trí nhớ ngắn hạn dài. Tính toán thần kinh 9 (8): 1735-80 · Tháng 12 năm 1997)
horaceT

Các sinh viên trong các LSTM biến mất, chỉ chậm hơn so với RNN của vanilla, cho phép họ bắt được các phụ thuộc ở xa hơn. Tránh vấn đề biến mất độ dốc vẫn là một lĩnh vực nghiên cứu tích cực.
Artem Sobolev

1
Quan tâm để trở lại chậm biến mất với một tài liệu tham khảo?
bayerj

Câu trả lời:


22

Độ dốc biến mất được giải thích tốt nhất trong trường hợp một chiều. Đa chiều phức tạp hơn nhưng về cơ bản là tương tự nhau. Bạn có thể xem lại nó trong bài báo xuất sắc này [1].

Giả sử chúng ta có một trạng thái ẩn tại thời điểm bước t . Nếu chúng ta làm cho những thành kiến những điều đơn giản và loại bỏ và các đầu vào, chúng ta có h t = σ ( w h t - 1 ) . Sau đó, bạn có thể chỉ ra rằnghtt

ht= =σ(wht-1).

t'-t

ht'ht= =Πk= =1t'-twσ'(wht'-k)= =wt'-t!!!Πk= =1t'-tσ'(wht'-k)
Nhân tố được đánh dấu bằng !!! là một trong những quan trọng. Nếu trọng lượng không bằng 1, nó sẽ phân rã về 0 nhanh theo cấp số nhân trong , hoặc tăng nhanh theo cấp số nhânt'-t .

Trong LSTM, bạn có trạng thái ô . Đạo hàm có dạng Ở đây là đầu vào cho cổng quên. Như bạn có thể thấy, không có yếu tố phân rã nhanh theo cấp số nhân liên quan. Do đó, có ít nhất một đường dẫn mà độ dốc không biến mất. Đối với đạo hàm hoàn chỉnh, xem [2].s t 'St

St'St= =Πk= =1t'-tσ(vt+k).
vt

[1] Pascanu, Razvan, Tomas Mikolov và Yoshua Bengio. "Về khó khăn của việc đào tạo mạng lưới thần kinh tái phát." ICML (3) 28 (2013): 1310-1318.

[2] Bayer, Justin Simon. Trình bày trình tự học tập. Tiêu tan. München, Technische Đại học München, Diss., 2015, 2015.


3
Đối với lstm, không h_t cũng phụ thuộc vào h_ {t-1}? Bạn có ý nghĩa gì trong bài báo của bạn khi bạn nói ds_t / d_s {t-1} "là phần duy nhất mà độ dốc chảy qua thời gian"?
dùng3243135

@ user3243135 h_t không phụ thuộc vào h_ {t-1}. Tuy nhiên, giả sử DS_t / d_s {t-1} được giữ, ngay cả khi các luồng gradient khác biến mất, toàn bộ luồng gradient không biến mất. Điều này giải quyết biến mất gradient.
hóa đơn

Πt'-tσ'(wht'-k)
σ'(z)σ'(x)= =σ(z)(1-σ(z))đó là <1 cho chắc chắn). Đó không phải là lý do tại sao ReLUs trở nên được chấp nhận trong CNN? Đây là một điều luôn làm tôi bối rối về sự khác biệt trong cách xử lý độ dốc biến mất trong các mô hình chuyển tiếp nguồn cấp so với Mô hình lặp lại. Bất kỳ làm rõ cho điều này?
Pinocchio

Độ dốc của sigmoid cũng có thể trở thành một vấn đề, giả sử phân phối đầu vào có phương sai lớn và / hoặc có nghĩa là từ 0. Tuy nhiên, ngay cả khi bạn sử dụng ReLU, vấn đề chính vẫn tồn tại: nhân lên nhiều lần bởi ma trận trọng số (thường là nhỏ ) gây ra độ dốc biến mất, hoặc trong một số trường hợp, trong đó chính quy hóa không đầy đủ, làm nổ độ dốc.
Ataxias

3

Hình ảnh của khối LSTM từ Greff et al. (2015) mô tả một biến thể mà các tác giả gọi là vanilla LSTM . Nó hơi khác so với định nghĩa ban đầu từ Hochreiter & Schmidhuber (1997). Định nghĩa ban đầu không bao gồm cổng quên và các kết nối lổ nhìn trộm.

Thuật ngữ Constant Error Carousel đã được sử dụng trong bài báo gốc để biểu thị kết nối định kỳ của trạng thái tế bào. Xem xét định nghĩa ban đầu trong đó trạng thái ô chỉ được thay đổi bằng cách thêm, khi cổng đầu vào mở. Độ dốc của trạng thái tế bào liên quan đến trạng thái tế bào ở bước thời gian sớm hơn bằng không.

Lỗi vẫn có thể vào CEC thông qua cổng đầu ra và chức năng kích hoạt. Chức năng kích hoạt làm giảm cường độ của lỗi một chút trước khi nó được thêm vào CEC. CEC là nơi duy nhất mà lỗi có thể chảy không thay đổi. Một lần nữa, khi cổng đầu vào mở ra, lỗi sẽ thoát qua cổng đầu vào, chức năng kích hoạt và chuyển đổi affine, làm giảm cường độ của lỗi.

Do đó, lỗi được giảm khi nó được sao lưu qua lớp LSTM, nhưng chỉ khi nó xâm nhập và thoát khỏi CEC. Điều quan trọng là nó không thay đổi trong CEC cho dù nó di chuyển bao xa. Điều này giải quyết vấn đề trong RNN cơ bản rằng mỗi bước áp dụng một phép biến đổi affine và phi tuyến, nghĩa là khoảng cách thời gian giữa đầu vào và đầu ra càng dài thì lỗi càng nhỏ.


2

http://www.felixgers.de/ con / phd.pdf Vui lòng tham khảo phần 2.2 và 3.2.2 trong đó phần lỗi bị cắt cụt được giải thích. Họ không truyền lỗi nếu nó rò rỉ ra khỏi bộ nhớ di động (nghĩa là nếu có cổng đầu vào đóng / kích hoạt), nhưng họ cập nhật trọng số của cổng chỉ dựa vào lỗi trong thời gian đó. Sau đó, nó được làm bằng 0 trong quá trình nhân giống trở lại. Đây là loại hack nhưng lý do để làm là lỗi chảy dọc theo cổng dù sao cũng phân rã theo thời gian.


7
Bạn có thể mở rộng một chút về điều này? Hiện tại, câu trả lời sẽ không có giá trị nếu vị trí liên kết thay đổi hoặc giấy được lấy ngoại tuyến. Ít nhất nó sẽ giúp đưa ra một trích dẫn đầy đủ (tham khảo) sẽ cho phép tìm lại bài viết nếu liên kết ngừng hoạt động, nhưng một bản tóm tắt ngắn làm cho câu trả lời này được khép kín là tốt nhất.
Cá bạc

2

Tôi muốn thêm một số chi tiết vào câu trả lời được chấp nhận, bởi vì tôi nghĩ nó có nhiều sắc thái hơn và sắc thái có thể không rõ ràng đối với người đầu tiên tìm hiểu về RNNs.

ht'ht= =Πk= =1t'-twσ'(wht'-k)

St'St= =Πk= =1t'-tσ(vt+k)

  • t'-t
  • câu trả lời là , đó là lý do tại sao LSTM cũng sẽ bị biến mất dần dần, nhưng không nhiều như Rilla vanilla

wσ'()σ()

σ()1
vt+k= =wxwxw

x= =1w= =10 vt+k= =10σ()= =0,999995

(0,999995)t'-t

wσ'(wht'-k)1

ht'-k= =1wσ'(w*1)0,224w= =1,5434

(0,224)t'-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.