Czy naukowcy lub eksperci naukowi wiedzą z kuchni, co dzieje się w złożonej „głębokiej” sieci neuronowej z co najmniej milionami połączeń wyzwalanych w jednej chwili? Czy rozumieją za tym proces (np. Co dzieje się w środku i jak to dokładnie działa), czy jest to przedmiotem debaty?
Na przykład to badanie mówi:
Jednak nie ma jasnego zrozumienia, dlaczego osiągają tak dobre wyniki, ani w jaki sposób można je poprawić.
Czy to oznacza, że naukowcy faktycznie nie wiedzą, jak działają złożone modele sieci splotowej?
Odpowiedzi:
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ą :
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:
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.
źródło
To zależy od tego, co rozumiesz przez „wiedzieć, co się dzieje”.
Koncepcyjnie tak: ANN wykonuje regresję nieliniową. Rzeczywiste wyrażenie reprezentowane przez macierz wag / funkcje aktywacji ANN może zostać jawnie rozszerzone w formie symbolicznej (np. Zawierającej podwyrażenia, takie jak ).1/1+e1/1+e…
Jeśli jednak przez „know” masz na myśli przewidywanie wyników pewnego określonego (czarnego pola) ANN , innymi sposobami, wówczas przeszkodą jest obecność chaosu w ANN, która ma wysoki stopień swobody .
Oto także kilka stosunkowo niedawnych prac Hod Lipsona nad zrozumieniem ANN za pomocą wizualizacji .
źródło
Krótka odpowiedź to nie .
Interpretowalność modeli jest hiperaktywnym i bardzo gorącym obszarem obecnych badań (pomyśl o świętym Graalu, czy czymś podobnym), który został ostatnio wysunięty między innymi ze względu na (często ogromny) sukces modeli głębokiego uczenia się w różnych zadaniach; modele te są obecnie tylko czarnymi skrzynkami i naturalnie nie czujemy się z tym dobrze ...
Oto kilka ogólnych (i najnowszych, od grudnia 2017 r.) Zasobów na ten temat:
Niedawny (lipiec 2017 r.) Artykuł w Science zawiera ładny przegląd obecnego statusu i badań: w jaki sposób detektywi AI łamią czarną skrzynkę głębokiego uczenia się (brak linków w tekście, ale nazwy i terminy googlowania się opłacą)
Sama DARPA obecnie prowadzi program na Explainable Artificial Intelligence (XAI)
W NIPS 2016 odbyły się warsztaty na temat interpretacji uczenia maszynowego dla złożonych systemów , a także samouczek ICML 2017 na temat interpretacji uczenia maszynowego autorstwa Been Kim z Google Brain.
I na bardziej praktycznym poziomie (kod itp.):
Narzędzie What-If firmy Google, zupełnie nowa (wrzesień 2018 r.) Aplikacja internetowa TensorBoard typu open source, która pozwala użytkownikom analizować model ML bez pisania kodu ( strona projektu , post na blogu )
Zestaw narzędzi LRP (Layer-mądre Propagation Propagation) dla sieci neuronowych ( papier , strona projektu , kod , opakowanie TF Slim )
FairML: Audyt modeli prognostycznych Black-Box, autor: Cloudera Fast Forward Labs ( post na blogu , artykuł , kod )
WAPNO: Lokalne interpretowalne objaśnienia niezależne od modelu ( papier , kod , post na blogu , port R )
Bardzo niedawny (listopad 2017 r.) Artykuł autorstwa Geoffa Hintona, Distilling a Neural Network Into a Soft Decision Tree , z niezależną implementacją PyTorch
SHAP: Ujednolicone podejście do interpretacji prognoz modelu ( papier , autorski kod Python , pakiet R )
Interpretowalne splotowe sieci neuronowe ( papier , kod autorski )
Lucid, zbiór infrastruktury i narzędzi do badań nad interpretacją sieci neuronowej przez Google ( kod ; prace: Wizualizacja funkcji , elementy składowe interpretacji )
Sieci Transparecy-by-Design (TbD) ( papier , kod , demo )
SVCCA: Analiza kanonicznej wektorowej liczby pojedynczej dla dynamiki uczenia się i interpretacji ( papier , kod , post na blogu Google )
TCAV: Testowanie za pomocą wektorów aktywacji koncepcji ( papier ICML 2018 , kod Tensorflow )
Grad-CAM: wizualne Wyjaśnienia z głębokiego Networks przez Localization Gradient opartych ( papier , autorów kod Torch , kod Tensorflow , kod PyTorch , Keras przykład notebook )
Analiza sieci: Ocena ilościowa głębokich reprezentacji wizualnych, według MIT CSAIL ( strona projektu , kod Caffe , port PyTorch )
Analiza GAN: Wizualizacja i zrozumienie generatywnych sieci przeciwników, autor: MIT CSAIL ( strona projektu , z linkami do papieru i kodu)
Wyjaśnij, jak to naprawić: środowisko interpretacji i poprawiania prognoz detektora obiektów DNN ( papier , kod )
Ostatnio wzrosło zainteresowanie budowaniem bardziej teoretycznych podstaw do głębokiego uczenia sieci neuronowych. W tym kontekście wybitny pionier statystyk i detekcji kompresji David Donoho niedawno (jesień 2017 r.) Rozpoczął kurs w Stanford, Theories of Deep Learning (STATS 385) , z prawie wszystkimi materiałami dostępnymi online; jest wysoce zalecane ...
AKTUALIZACJE :
źródło
Nie jestem pewien, czy tego właśnie szukasz, ale Google wyodrębniło obrazy z sieci, gdy były zasilane białym szumem.
Zobacz : Incepcjonizm: głębiej w sieci neuronowe (blog Google Research) .
Ten rodzaj reprezentuje to, co wie sieć.
źródło
Obawiam się, że nie mam pod ręką konkretnych cytatów, ale widziałem / słyszałem cytaty ekspertów takich jak Andrew Ng i Geoffrey Hinton, w których wyraźnie mówią, że tak naprawdę nie rozumiemy sieci neuronowych. Oznacza to, że możemy zrozumieć coś z jak oni działać (na przykład matematyki za propagacji tyłu), ale nie bardzo rozumiem , dlaczego one działają. To trochę subtelne rozróżnienie, ale chodzi o to, że nie, nie rozumiemy najgłębszych szczegółów tego, jak dokładnie przechodzisz od kilku ciężarów, na przykład do rozpoznania kota bawiącego się piłką.
Przynajmniej jeśli chodzi o rozpoznawanie obrazów, najlepszym wytłumaczeniem, jakie słyszałem, jest to, że kolejne warstwy sieci neuronowej uczą się bardziej wyrafinowanych funkcji, złożonych z bardziej szczegółowych cech z wcześniejszych poziomów. To znaczy, pierwsza warstwa może rozpoznać „krawędzie” lub „linie proste”. Następna warstwa może następnie nauczyć się kształtów geometrycznych, takich jak „pudełko” lub „trójkąt”, a następnie wyższa warstwa może nauczyć się „nosa” lub „oka” na podstawie tych wcześniejszych cech, a wtedy warstwa wyższego poziomu nadal uczy się „twarzy” wykonanej w górę od „oka”, „nosa”, „szczęki” itp. Ale nawet to, jak rozumiem, wciąż jest hipotetyczne i / lub nie jest do końca szczegółowo rozumiane.
źródło
Oto odpowiedź Carlosa E. Pereza na pytanie Czym jest teoria głębokiego uczenia się?
Podsumowując: mamy kilka pomysłów, ale nie jesteśmy do końca pewni.
źródło
TAK
Myślę, że „wiedzieć z kuchni” oznacza „wiedzieć szczegółowo”?
Pozwól, że dam ci szereg analogii:
Diabeł tkwi w szczegółach, ale kluczowe jest tutaj, że chodzi o sztuczne struktury. Nie pojawiają się losowo. Potrzebujesz dużej wiedzy, aby uzyskać cokolwiek przydatnego. W przypadku sieci neuronowych powiedziałbym, że upłynęło około 40 lat od publikacji kluczowej idei (percepron Rosenblatt, 1957) do pierwszej aplikacji (US Postal Service, 1989). A stamtąd ponownie 13 lat aktywnego powrotu do naprawdę imponujących systemów (ImageNet 2012).
Bardzo dobrze wiemy, jak działa szkolenie . Ponieważ musi zostać zaimplementowany. Tak więc na bardzo małej strukturze wiemy to szczegółowo.
Pomyśl o komputerach. Projektanci układów doskonale wiedzą, jak działa ich układ. Ale prawdopodobnie będą mieli bardzo przybliżony pomysł na działanie systemu operacyjnego Linux.
Innym przykładem jest fizyka i chemia: fizyka opisuje podstawowe siły wszechświata. Czy to znaczy, że wiedzą wszystko o chemii? Do diabła nie! „Idealny” fizyk może wyjaśnić wszystko w chemii ... ale byłoby to prawie bezużyteczne. Potrzebowałby znacznie więcej informacji, nie byłby w stanie pominąć nieistotnych części. Po prostu dlatego, że za bardzo „powiększył” - rozważa szczegóły, które w praktyce nie są ani interesujące, ani ważne. Należy pamiętać, że wiedza fizyka nie jest błędna. Może można nawet wywnioskować z niej wiedzę chemika. Brakuje jednak tego „wysokiego poziomu” zrozumienia interakcji cząsteczek.
Kluczowym wglądem z tych dwóch przykładów są warstwy abstrakcji: Możesz budować złożoność z prostych struktur .
Co jeszcze?
Dobrze wiemy, co w zasadzie można osiągnąć dzięki projektowanym przez nas sieciom neuronowym :
No i oczywiście mamy analityczne podejście do sieci neuronowych. Pracę magisterską napisałem o analizie i optymalizacji architektur sieci neuronowych splotowych . W tym kontekście LIME (lokalne interpretowalne objaśnienia agnostyczne modelu) jest miły:
źródło
Chciałem tylko coś dodać:
zależy to od tego, co rozumiesz przez naukowca:
Jestem doktorantem elektrotechniki i widziałem, jak wielu badaczy pracuje z ANN w takich problemach jak regresja, kontrola prognozowania, kontrola adaptacyjna i problemy z klasyfikacją.
widać wyraźnie, że ich brak umiejętności kodowania jest poważną wadą, a tak naprawdę nie do końca rozumieją, co się dzieje w ANN, teraz nawet nie mówię o Deep , mają problemy ze zrozumieniem prostych rzeczy, takich jak ADALINE i ANFIS! słyszysz tylko, jak mówią: podaj dane, a dostosują się!
źródło