Czym jest autokoder?
Autokoder (autoencoder) to specjalny rodzaj sieci neuronowej pozwalający na kompresję wysokowymiarowych przykładów do niskowymiarowego kodu. Jego schemat został pokazany na rysunku 1. Składa się z dwóch części: kodera (encoder) i dekodera (decoder). Zadaniem pierwszego jest kompresja przykładów do kodu. Następnie dekoder stara się wykonać odwrotne zadanie: na podstawie kodu musi odtworzyć przykład. Funkcją celu używaną do treningu jest minimalizacja błędu między przykładem, a rekonstrukcją. Gdyby kod miał taki sam wymiar, jak przykład, to sieć nie tworzyłaby niczego ciekawego. Jednak, gdy jest on mniejszy, w wyniku treningu otrzymamy niskowymiarową reprezentację, która powinna opisywać najważniejsze cechy przykładu. Jest to uczenie nienadzorowane – sieć nie dostaje żadnych dodatkowych informacji poza zbiorem danych. Możemy także użyć samego dekodera, do generowania nowych przykładów podobnych to tych zastosowanych do treningu.
Implementacja
Eksperymenty wykonamy na zbiorze danych zebranych w poprzednim odcinku, dotyczących gestów. Cały kod znajdziemy w notatniku [1]. Na początku znajdują się dane. Jedyną różnicą względem poprzedniego odcinka jest znormalizowanie danych z przetwornika ADC poprzez podzielenie ich przez maksymalną możliwą wartość dla 12-bitowego przetwornika czyli 4096.