To prawda, że trudno jest zrozumieć, czego uczy się sieć neuronowa, ale na tym froncie było dużo pracy. Zdecydowanie możemy dowiedzieć się, czego szuka nasza sieć.
Rozważmy przypadek splotowej sieci neuronowej dla obrazów. Mamy interpretację dla naszej pierwszej warstwy, że przesuwamy filtry na obrazie, więc nasza pierwsza ukryta warstwa odpowiada zgodności między małymi fragmentami obrazu i naszymi różnymi filtrami. Możemy wizualizować te filtry, aby zobaczyć, jaka jest nasza pierwsza warstwa reprezentacji:K
To zdjęcie jest pierwszą warstwą filtrów z AlexNet i pochodzi z tego wspaniałego samouczka: http://cs231n.github.io/understanding-cnn/ . To pozwala nam interpretować pierwszą ukrytą warstwę jako uczącą się reprezentować obraz, składający się z surowych pikseli, jako tensor, w którym każda współrzędna jest zgodnością filtra z małym obszarem obrazu. Następna warstwa działa z tymi aktywacjami filtrów.
⎡⎣⎢0101−41010⎤⎦⎥.
0
Artykuł Erhana i in. (2009) zgadza się z tym: twierdzą, że pierwsze wizualizacje warstw ukrytych są powszechne (i to było w 2009 roku), ale wizualizacja głębszych warstw jest trudniejsza. Z tego artykułu:
Główne odkrycie eksperymentalne tego badania jest bardzo zaskakujące: reakcja jednostki wewnętrznej na obrazy wejściowe, jako funkcja w przestrzeni obrazu, wydaje się być jednomodalna lub przynajmniej, że maksimum jest określone niezawodnie i konsekwentnie dla wszystkich testowanych losowych inicjalizacji . Jest to interesujące, ponieważ znalezienie tego dominującego trybu jest stosunkowo łatwe, a jego wyświetlenie zapewnia dobrą charakterystykę tego, co robi jednostka.
Chris Olah i wsp. ( Https://distill.pub/2017/feature-visualization/ ) opierają się na tym i dyskutują, jak ogólnie można (1) generować obrazy, które prowadzą do dużych aktywacji, aby zorientować się, co sieć szuka; lub (2) weź rzeczywiste obrazy wejściowe i zobacz, jak różne części obrazu aktywują sieć. Ten post koncentruje się na (1).
Na poniższym zdjęciu, zaczerpniętym z tego powiązanego artykułu autorstwa Olaha i wsp., Autorzy omawiają różne aspekty sieci, które można sprawdzić. Obraz po lewej stronie pokazuje wynik optymalizacji aktywacji określonego neuronu w przestrzeni obrazu wejściowego i tak dalej.
Zdecydowanie poleciłbym przeczytanie tego artykułu w całości, jeśli chcesz głębiej to zrozumieć, a czytając jego odnośniki powinieneś dokładnie zrozumieć, co zostało z tym zrobione.
Oczywiście było to tylko dla obrazów, w których my jako ludzie możemy zrozumieć dane wejściowe. Jeśli pracujesz z czymś trudniejszym do interpretacji, takim jak duży wektor liczb, możesz nie być w stanie wykonać tak fajnych wizualizacji, ale w zasadzie nadal możesz rozważyć te techniki oceny różnych neuronów, warstw itp. .