RNN z L2 Regulararyzacja przestaje się uczyć


10

Korzystam z dwukierunkowego RNN, aby wykryć zdarzenie niezrównoważonego wystąpienia. Klasa dodatnia jest 100 razy rzadziej niż klasa negatywna. Chociaż nie używa się regularyzacji, mogę uzyskać 100% dokładności na zestawie pociągów i 30% na zestawie walidacji. Włączam regularyzację l2, a wynik to tylko 30% dokładności na zestawie pociągów zamiast dłuższego uczenia się i 100% dokładności na zestawie sprawdzania poprawności.

Pomyślałem, że może moje dane są za małe, więc dla eksperymentu połączyłem zestaw pociągów z zestawem testowym, którego wcześniej nie używałem. Sytuacja była taka sama, jak bym użył regularyzacji l2, czego nie zrobiłem teraz. Dostaję 30% dokładności na pociąg + test i walidację.

W użyciu 128 ukrytych jednostek i 80 kroków czasowych we wspomnianych eksperymentach Kiedy zwiększyłem liczbę ukrytych jednostek do 256, mogę ponownie przełożyć się na pociąg + zestaw testowy, aby uzyskać 100% dokładności, ale nadal tylko 30% na zestawie walidacyjnym.

Próbowałem tak wielu opcji dla hiperparametrów i prawie bez rezultatu. Być może problem stanowi entropia krzyżowa ważona, w danych eksperymentach waga klasy dodatniej wynosi 5. Podczas próby większych ciężarów wyniki są często gorsze, około 20% dokładności.

Próbowałem komórek LSTM i GRU, bez różnicy.

Najlepsze wyniki, jakie uzyskałem. Wypróbowałem 2 ukryte warstwy z 256 ukrytymi jednostkami, zajęło to około 3 dni obliczeń i 8 GB pamięci GPU. Osiągnąłem około 40-50% dokładności, zanim znów zacznie się przestawiać, gdy normalizacja l2 była włączona, ale nie tak silna.

Używam optymalizatorów Adama, inne nie działały tak dobrze. Funkcja, którą posiadam, jest wystarczająca, ponieważ podczas korzystania z automatu stanów mogę uzyskać 90% dokładności. W maszynie stanów główną cechą jest sumowanie i progowanie na podstawie innych właściwości elementu, a jego zmienna długość czasami wynosi 10, a czasem 20 znaczników czasu, które mówią o tej funkcji.

Czy istnieją jakieś ogólne wytyczne dotyczące postępowania w tej sytuacji? Nic nie znalazłem.

Odpowiedzi:


11

Artykuł Bengio i wsp. „ Trudności w uczeniu się nawracających sieci neuronowych ” daje wskazówkę, dlaczego regularyzacja L2 może zabić wydajność RNN. Zasadniczo, L1 / L2 regularyzująca komórki RNN również pogarsza zdolność komórek do uczenia się i zatrzymywania informacji w czasie.

Użycie kary L1 lub L2 dla powtarzających się wag może pomóc w eksplodowaniu gradientów. Zakładając, że wagi są inicjalizowane na małe wartości, największe wartości osobliweλ1 z Wrec jest prawdopodobnie mniejsza niż 1. Termin L1 / L2 może zapewnić, że podczas szkolenia λ1pozostaje mniejsza niż 1, aw tym systemie gradienty nie mogą wybuchnąć. Takie podejście ogranicza model do atraktora jednopunktowego w punkcie początkowym, gdzie każda informacja wstawiona do modelu umiera wykładniczo szybko. Zapobiega to modelowi uczenia się sieci generatorów, ani nie może wykazywać śladów pamięci długoterminowej.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.