Saya memiliki pengetahuan dasar tentang bagaimana RNN (dan, khususnya, dengan unit LSTM) bekerja. Saya punya ide gambar arsitektur unit LSTM, yaitu sel dan beberapa gerbang, yang mengatur aliran nilai.
Namun, tampaknya, saya belum sepenuhnya memahami bagaimana LSTM memecahkan masalah "gradien menghilang dan meledak", yang terjadi saat pelatihan, menggunakan back-propagation melalui waktu, RNN konvensional. Saya belum berkesempatan membaca koran untuk memahami matematika sepenuhnya.
Jawaban ini memberikan penjelasan singkat tentang bagaimana RNN dengan unit LSTM memecahkan masalah "gradien hilang". Secara matematis, alasannya tampaknya adalah tidak adanya turunan yang tidak lenyap, yaitu tidak cenderung nol. Akibatnya, penulis menyatakan, "setidaknya ada satu jalur di mana gradien tidak hilang". IMHO, penjelasan ini agak kabur.
Sementara itu, saya membaca makalah Sequence to Sequence Learning dengan Neural Networks (oleh Ilya Sutskever, Oriol Vinyals, Quoc V. Le), dan, dalam makalah itu, bagian "3.4 detail pelatihan", dinyatakan
Meskipun LSTM cenderung tidak menderita masalah gradien hilang, mereka dapat memiliki gradien meledak.
Saya selalu berpikir bahwa RNN dengan unit LSTM memecahkan masalah "menghilang" dan "meledak gradien", tetapi, tampaknya, RNN dengan unit LSTM juga menderita "meledak gradien".
Secara intuitif, mengapa begitu? Secara matematis, apa alasannya?
RNNs sebelum LSTM / GRU dulu tidak stabil karena apa yang mereka lakukan pada dasarnya adalah penggandaan keadaan tersembunyi dengan beberapa bobot untuk setiap catatan waktu, yang berarti ini merupakan operasi eksponensial. Dan seperti yang kita ketahui, eksponensial sangat tidak stabil: sel LSTM / GRU menyelesaikan masalah ini dengan mengubah penggandaan menjadi penambahan. Anda memiliki status sel, dan alih-alih mengalikan, Anda menambah atau menguranginya.1 200 = 1 1,01 200 ≈ 13
Namun masih ada beberapa jalur di mana gradien menjadi tidak stabil, dan semakin besar jaringnya, semakin besar kemungkinan Anda akan mengalami masalah ini.
sumber