porzucenie warstwy sieci neuronowej w Keras Explained
Posted on
Uczenie maszynowe jest ostatecznie wykorzystywane do przewidywania wyników w oparciu o zestaw funkcji. Dlatego wszystko, co możemy zrobić, aby uogólnić wydajność naszego modelu, jest postrzegane jako zysk netto. Dropout jest techniką stosowaną w celu zapobieżenia przepełnieniu modelu. Dropout działa poprzez losowe ustawienie wychodzących krawędzi ukrytych jednostek (neuronów tworzących ukryte warstwy) na 0 przy każdej aktualizacji fazy treningowej. Jeśli spojrzysz na dokumentację Keras dla warstwy dropout, zobaczysz link do białej księgi napisanej przez Geoffreya Hintona i przyjaciół, która odnosi się do teorii stojącej za porzuceniem.
jak widać, utrata walidacji jest znacznie niższa niż uzyskana przy użyciu modelu zwykłego.
jak widać, model zbiegał się znacznie szybciej i uzyskał dokładność zbliżoną do 98% na zestawie walidacji, podczas gdy poprzedni model plateaued około trzeciej epoki.
dokładność uzyskana na zestawie testowym nie różni się zbytnio od tej uzyskanej z modelu bez rezygnacji. Jest to najprawdopodobniej spowodowane ograniczoną liczbą próbek.
porzucenie może pomóc modelowi uogólnić, losowo ustawiając wyjście dla danego neuronu na 0. Przy ustawieniu wyjścia na 0, funkcja kosztowa staje się bardziej wrażliwa na sąsiednie neurony, zmieniając sposób aktualizacji wag podczas procesu backpropagacji.