Sieć konwolucyjna do klasyfikacji binarnej. Rozpoznaje czy na obrazie znajduje się pies czy kot.
Sieci konwolucyjne (inaczej: splotowe) to popularny rodzaj sieci wykorzystujący operację splotu do nakładania na sygnały (w tym wypadku obrazy) filtrów wyodrębniających ich cechy. Pozwala to im na znajdowanie wzorców niezależnie od położenia, co sprawia, że chociażby w problemach rozpoznawania obrazu są skuteczniejsze niż sieci zbudowane jedynie z gęsto połączonych neuronów.
Augmentacja danych:
Jest techniką szczególnie przydatną, gdy mały niewystarczający zbiór danych. Polega na przekształcani danych wejściowych poprzez takie operacje jak przycinanie, obrót czy powiększanie w celu wygenerowania nowych danych. Przykład augmentacji dla zdjęcia kota:
Mapy cech:
Powstają poprzez nałożenia filtrów na obraz. Każda taka mapa wyodrębnia nieco inne cechy obrazu, np. krawędzie poziome lub pionowe. Duża liczba takich map przyczynia się do skutecznego działania sieci konwolucyjnych.
Wizualizacja procesu uczenia:
Na tym etapie widzimy jak filtry w kolejnych warstwach dążą do wyodrębnienia coraz bardziej abstrakcyjnych cech. Pierwsza warstwa ma dostęp do wszystkich informacji zapisanych w obrazie i wykrywa jego niskopoziomowe cechy, tj: krawędzie. Każda kolejna specjalizuje się w bardziej złożonych i coraz trudniej do interpretacji graficznej cechach typowych dla danej klasy. Fioletowe pola oznaczają filtry, które zostały "amputowane", czyli automatycznie usunięte z sieci na skutek zbyt małych dawek informacji, które za sobą niosły.
Pierwsza warstwa splotowa:
Wizualizacja filtru:
Filtry ewoluują w procesie uczenia sieci, tak aby były w stanie wykrywać elementy charakteryzujące daną klasę.
Mapy ciepła:
To technika wizualizacji szczególnie przydatna do degubowania programu, ponieważ pozwala nam zobaczyć na podstawie jakich części obrazu sieć podjęła decyzję. Szczególnie pomocna podczas przeglądania błędnie sklasyfikowanych obrazów.
Kod programu na GitHub: https://github.com/PsorTheDoctor/Sekcja-SI/blob/master/neural_networks/CNN/dogs_vs_cats.ipynb
Sieci konwolucyjne (inaczej: splotowe) to popularny rodzaj sieci wykorzystujący operację splotu do nakładania na sygnały (w tym wypadku obrazy) filtrów wyodrębniających ich cechy. Pozwala to im na znajdowanie wzorców niezależnie od położenia, co sprawia, że chociażby w problemach rozpoznawania obrazu są skuteczniejsze niż sieci zbudowane jedynie z gęsto połączonych neuronów.
Augmentacja danych:
Jest techniką szczególnie przydatną, gdy mały niewystarczający zbiór danych. Polega na przekształcani danych wejściowych poprzez takie operacje jak przycinanie, obrót czy powiększanie w celu wygenerowania nowych danych. Przykład augmentacji dla zdjęcia kota:
Mapy cech:
Powstają poprzez nałożenia filtrów na obraz. Każda taka mapa wyodrębnia nieco inne cechy obrazu, np. krawędzie poziome lub pionowe. Duża liczba takich map przyczynia się do skutecznego działania sieci konwolucyjnych.
Wizualizacja procesu uczenia:
Na tym etapie widzimy jak filtry w kolejnych warstwach dążą do wyodrębnienia coraz bardziej abstrakcyjnych cech. Pierwsza warstwa ma dostęp do wszystkich informacji zapisanych w obrazie i wykrywa jego niskopoziomowe cechy, tj: krawędzie. Każda kolejna specjalizuje się w bardziej złożonych i coraz trudniej do interpretacji graficznej cechach typowych dla danej klasy. Fioletowe pola oznaczają filtry, które zostały "amputowane", czyli automatycznie usunięte z sieci na skutek zbyt małych dawek informacji, które za sobą niosły.
Pierwsza warstwa splotowa:
Druga warstwa splotowa:
Czwarta warstwa splotowa:Filtry ewoluują w procesie uczenia sieci, tak aby były w stanie wykrywać elementy charakteryzujące daną klasę.
Mapy ciepła:
To technika wizualizacji szczególnie przydatna do degubowania programu, ponieważ pozwala nam zobaczyć na podstawie jakich części obrazu sieć podjęła decyzję. Szczególnie pomocna podczas przeglądania błędnie sklasyfikowanych obrazów.
Kod programu na GitHub: https://github.com/PsorTheDoctor/Sekcja-SI/blob/master/neural_networks/CNN/dogs_vs_cats.ipynb
Komentarze
Prześlij komentarz