Khi nào nên sử dụng GRU trên LSTM?


95

Sự khác biệt chính giữa GRU và LSTM là GRU có hai cổng (cổng đặt lạicập nhật ) trong khi LSTM có ba cổng (cụ thể là cổng đầu vào , đầu ra và cổng quên ).

Tại sao chúng ta sử dụng GRU khi chúng ta rõ ràng có nhiều quyền kiểm soát hơn trên mạng thông qua mô hình LSTM (vì chúng ta có ba cổng)? Trong trường hợp nào GRU được ưa thích hơn LSTM?


1
GRU hơi phức tạp hơn một chút nhưng xấp xỉ bằng một hiệu suất LSTM khôn ngoan. Một triển khai trong TensorFlow được tìm thấy ở đây: data-blogger.com/2017/08/27/gru-imcellenceation-tensorflow .
www.data-blogger.com

Câu trả lời:


64

GRU có liên quan đến LSTM vì cả hai đều sử dụng cách khác nhau nếu thông tin gating để ngăn chặn vấn đề độ dốc biến mất. Dưới đây là một số điểm chính về GRU so với LSTM-

  • GRU kiểm soát luồng thông tin như đơn vị LSTM, nhưng không phải sử dụng đơn vị bộ nhớ . Nó chỉ hiển thị toàn bộ nội dung ẩn mà không có bất kỳ sự kiểm soát nào.
  • GRU tương đối mới, và theo quan điểm của tôi, hiệu suất ngang bằng với LSTM, nhưng tính toán hiệu quả hơn ( cấu trúc ít phức tạp hơn như đã chỉ ra ). Vì vậy, chúng tôi đang thấy nó được sử dụng ngày càng nhiều.

Để biết mô tả chi tiết, bạn có thể khám phá Tài liệu nghiên cứu này - Arxiv.org . Bài viết giải thích tất cả điều này một cách xuất sắc.

Ngoài ra, bạn cũng có thể khám phá những blog này để có ý tưởng tốt hơn-

Hy vọng nó giúp!


1
Ngoài câu trả lời của bạn, có một bài viết hay đánh giá hiệu suất giữa GRU và LSTM và các hoán vị khác nhau của họ "Một khám phá thực nghiệm về kiến ​​trúc mạng tái phát" của Google
khoáng sản

38

* Để bổ sung cho câu trả lời tuyệt vời ở trên.

  • Từ kinh nghiệm của tôi, GRU đào tạo nhanh hơn và hoạt động tốt hơn các LSTM trên dữ liệu đào tạo ít hơn nếu bạn đang thực hiện mô hình hóa ngôn ngữ (không chắc chắn về các nhiệm vụ khác).

  • GRU đơn giản hơn và do đó dễ sửa đổi hơn, ví dụ như thêm cổng mới trong trường hợp thêm đầu vào vào mạng. Nó chỉ là ít mã nói chung.

  • Về lý thuyết, các LSTM nên nhớ các chuỗi dài hơn GRU và vượt trội chúng trong các nhiệm vụ đòi hỏi phải mô hình hóa các mối quan hệ đường dài.

* Một số bài viết bổ sung phân tích GRU và LSTM.


9

Câu trả lời này thực sự nằm trên tập dữ liệu và trường hợp sử dụng. Thật khó để nói dứt khoát cái nào tốt hơn.

  • GRU trưng ra bộ nhớ hoàn chỉnh không giống như LSTM, vì vậy các ứng dụng hoạt động như lợi thế có thể hữu ích. Ngoài ra, thêm vào lý do tại sao sử dụng GRU - nó dễ dàng hơn so với LSTM vì nó chỉ có 2 cổng và nếu hiệu suất của nó ngang bằng với LSTM, thì tại sao không?
  • Bài viết này thể hiện xuất sắc với đồ thị tính ưu việt của các mạng được kiểm soát so với RNN đơn giản nhưng đề cập rõ ràng rằng nó không thể kết luận cái nào tốt hơn. Vì vậy, nếu bạn bối rối không biết nên sử dụng làm mô hình của mình, tôi khuyên bạn nên đào tạo cả hai và sau đó sử dụng chúng tốt hơn.

8

Đơn vị GRU đầy đủ

c~t= =tanh(Wc[Gr*ct-1,xt]+bc)

Gbạn= =σ(Wbạn[ct-1,xt]+bbạn)

Gr= =σ(Wr[ct-1,xt]+br)

ct= =Gbạn*c~t+(1-Gbạn)*ct-1

mộtt= =ct

Đơn vị LSTM

c~t= =tanh(Wc[mộtt-1,xt]+bc)

Gbạn= =σ(Wbạn[mộtt-1,xt]+bbạn)

Gđụ= =σ(Wđụ[mộtt-1,xt]+bđụ)

Go= =σ(Wo[mộtt-1,xt]+bo)

ct= =Gbạn*c~t+Gđụ*ct-1

mộtt= =Go*tmộtviết sai rồih(ct)

Như có thể thấy từ các phương trình LSTM có một cổng cập nhật riêng và cổng quên. Điều này rõ ràng làm cho các LSTM phức tạp hơn nhưng đồng thời cũng phức tạp hơn. Không có cách đơn giản để quyết định sử dụng cho trường hợp sử dụng cụ thể của bạn. Bạn luôn phải làm thử và lỗi để kiểm tra hiệu suất. Tuy nhiên, vì GRU đơn giản hơn LSTM, GRU sẽ mất ít thời gian hơn để đào tạo và hiệu quả hơn.

Tín dụng: Andrew Ng


một<t>= =Γotmộtviết sai rồih(c~<t>)

1

GRU tốt hơn LSTM vì nó dễ sửa đổi và không cần đơn vị bộ nhớ, do đó, đào tạo nhanh hơn LSTM và cung cấp theo hiệu suất.


12
vui lòng hỗ trợ yêu cầu thực hiện với các tài liệu tham khảo công bằng
Kari

1

Trên thực tế, sự khác biệt chính xuất hiện nhiều hơn thế: các tri giác dài hạn (LSTM) được tạo thành bằng cách sử dụng các thuật toán giảm dần động lượng và độ dốc. Khi bạn điều hòa các tri giác LSTM với các RNN đối tác đệ quy của chúng, bạn đưa ra GRU, đây thực sự chỉ là một đơn vị lặp lại tổng quát hoặc Đơn vị lặp lại Gradient (tùy thuộc vào ngữ cảnh) tích hợp chặt chẽ hơn các thuật toán giảm độ dốc và độ dốc. Tôi là bạn, tôi sẽ nghiên cứu thêm về AdamOptimators.

GRU là một khái niệm lỗi thời bằng cách này. Tuy nhiên, tôi có thể hiểu bạn đang nghiên cứu nó nếu bạn muốn có kiến ​​thức chuyên sâu về TF.


8
Tôi tò mò. Bạn có thể giải thích tại sao GRU là một khái niệm lỗi thời?
random_user
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.