Istnieje wiele podejść, które mają na celu uczynienie wyszkolonej sieci neuronowej bardziej zrozumiałą i mniej podobną do „czarnej skrzynki”, w szczególności sieci neuronowych splotowych , o których wspomniałeś.
Wizualizacja aktywacji i wag warstw
Wizualizacja aktywacji jest pierwszą oczywistą i bezpośrednią. W sieciach ReLU aktywacje zwykle zaczynają wyglądać na stosunkowo blobkie i gęste, ale w miarę postępu treningu aktywacje stają się coraz rzadsze (większość wartości wynosi zero) i są zlokalizowane. Czasami pokazuje to, na czym dokładnie koncentruje się dana warstwa, gdy widzi obraz.
Inną świetną pracą nad aktywacjami, o której chciałbym wspomnieć, jest deepvis, który pokazuje reakcję każdego neuronu na każdej warstwie, w tym warstwy puli i normalizacji. Oto jak to opisują :
Krótko mówiąc, zebraliśmy kilka różnych metod, które pozwalają „triangulować” to, czego nauczył się neuron, co może pomóc w lepszym zrozumieniu działania DNN.
Drugą wspólną strategią jest wizualizacja wag (filtrów). Zwykle są one najbardziej interpretowalne na pierwszej warstwie CONV, która patrzy bezpośrednio na dane surowego piksela, ale możliwe jest również pokazanie wagi filtrów głębiej w sieci. Na przykład pierwsza warstwa zwykle uczy się filtrów typu gabor, które w zasadzie wykrywają krawędzie i plamy.
Eksperymenty z okluzją
Oto pomysł. Załóżmy, że ConvNet klasyfikuje obraz jako psa. Jak możemy być pewni, że tak naprawdę odbiera psa na obrazie, w przeciwieństwie do pewnych kontekstowych wskazówek z tła lub innych obiektów?
Jednym ze sposobów badania, z której części obrazu pochodzi prognoza przewidywania klasyfikacji, jest wykreślenie prawdopodobieństwa interesującej klasy (np. Klasa psa) jako funkcji położenia obiektu okludującego. Jeśli wykonamy iterację nad regionami obrazu, zastąpimy go wszystkimi zerami i sprawdzimy wynik klasyfikacji, możemy zbudować dwuwymiarową mapę cieplną tego, co najważniejsze dla sieci na danym obrazie. Podejście to zostało zastosowane w sieciach wizualizujących i rozumujących sieci konwergentne Matthew Zeilera (o których mowa w pytaniu):
Dekonwolucja
Innym podejściem jest synteza obrazu, który powoduje uruchomienie określonego neuronu, w zasadzie tego, czego neuron szuka. Chodzi o to, aby obliczyć gradient w odniesieniu do obrazu, zamiast zwykłego gradientu w odniesieniu do wag. Więc wybierz warstwę, ustaw gradient na zero, z wyjątkiem jednego dla jednego neuronu i cofnij się do obrazu.
Deconv faktycznie robi coś, co nazywa się propagacją wsteczną, aby uzyskać ładniejszy obraz, ale to tylko szczegół.
Podobne podejścia do innych sieci neuronowych
Bardzo polecam ten post Andreja Karpathy'ego , w którym dużo gra z Recurrent Neural Networks (RNN). W końcu stosuje podobną technikę, aby zobaczyć, czego faktycznie uczą się neurony:
Podświetlony na tym obrazie neuron wydaje się bardzo podekscytowany adresami URL i wyłącza się poza tymi adresami. LSTM prawdopodobnie używa tego neuronu do zapamiętania, czy znajduje się on w adresie URL, czy nie.
Wniosek
Wspomniałem tylko o niewielkiej części wyników w tej dziedzinie badań. Jest to dość aktywne i co roku pojawiają się nowe metody, które rzucają światło na wewnętrzną sieć neuronową.
Aby odpowiedzieć na twoje pytanie, zawsze jest coś, czego naukowcy jeszcze nie wiedzą, ale w wielu przypadkach mają dobry obraz (literacki) tego, co dzieje się w środku i mogą odpowiedzieć na wiele konkretnych pytań.
Dla mnie cytat z twojego pytania po prostu podkreśla znaczenie badań nie tylko poprawy dokładności, ale także wewnętrznej struktury sieci. Jak mówi Matt Zieler w tym wykładzie , czasami dobra wizualizacja może z kolei prowadzić do większej dokładności.