Splotowego sieci neuronowych - Convolutional neural network


Z Wikipedii, wolnej encyklopedii

W głębokiej nauki , o splotowego sieci neuronowych ( CNN lub ConvNet ) to klasa głębokich sieci neuronowych , najczęściej stosowane do analizowania obrazów wideo.

CNNs użyć wariancji perceptron wielowarstwowy mających wymagają minimalnej wstępne przetwarzanie . Są one znane także jako przesunięcie niezmiennego lub kosmicznych niezmiennych sztucznych sieci neuronowych ( SIANN ), w oparciu o ich wspólne ciężarki architektury i tłumaczeń niezmienność charakterystyk.

Sieci splotu były inspirowane przez biologicznych procesów tym, że wzór połączeń między neuronami przypomina organizację zwierząt korze wzrokowej . Poszczególne neurony korowe reagować na bodźce tylko w ograniczonym obszarze pola widzenia znanego jako pola otwarci . Chłonny pola różnych neuronów częściowo nakładają się na siebie, tak że obejmują one cały pole widzenia.

CNNs użyciu stosunkowo niewiele wstępną obróbkę w porównaniu do innych algorytmy klasyfikacji obrazu . Oznacza to, że sieć uczy się filtry , które w tradycyjnych algorytmów zostały ręcznie inżynierii . Ta niezależność od wcześniejszej wiedzy i wysiłku ludzkiego w funkcji projektu jest głównym atutem.

Mają one zastosowanie w obrazu i wideo uznania , Recommender systemów , klasyfikacji obrazu , analizy obrazu medycznego i przetwarzania języka naturalnego .

Projekt

CNN składa się z wejściowych i wyjściowych warstwy, a także wielu warstw ukrytych . Ukryte warstwy CNN zwykle składają się z warstwy splotowych, łączenie warstw, w pełni połączone warstwy i warstwy normalizacji.

Opis procesu jako splot w sieciach neuronowych jest umownie. Matematycznie jest korelacja krzyżowa niż splot (chociaż korelacja krzyżowa jest związane z obsługą). Ma to znaczenie tylko dla indeksów w matrycy, a tym samym o gramaturze są umieszczone na jakim indeksu.

splotowego

Splotowe warstwy zastosowanie operacji splotu do wejścia, przechodzącej wynik do następnej warstwy. Splot emuluje odpowiedź indywidualnego neuronu na bodźce wizualne.

Każdy neuron splotowego przetwarza dane tylko dla jego otwarci dziedzinie . Chociaż w pełni połączone wyprzedzającym sieci neuronowe mogą być wykorzystywane, aby dowiedzieć się, jak również możliwości klasyfikowania danych, to nie jest praktyczne zastosowanie tej architektury do zdjęć. Bardzo duża liczba neuronów byłoby to konieczne, nawet w płytkim (naprzeciwko głębokiego) architektury, ze względu na bardzo dużych rozmiarach wejściowych związanych z obrazami, gdzie każdy piksel jest odpowiednie zmienne. Na przykład, w pełni połączone warstwy do (małych) obrazu o wymiarach 100 x 100 ma 10000 wag dla poszczególnych neuronów w drugiej warstwie. Operacji splotu przynosi rozwiązanie tego problemu, ponieważ zmniejsza liczbę wolnych parametrami, dzięki czemu sieci znajduje się głębiej w mniejszej ilości parametrów. Na przykład, bez względu na rozmiar, regiony Dachówka rozmiarze 5 x 5, przy czym każdy z tego samego wspólnego wag wymaga tylko 25 parametrów nauczenia. W ten sposób rozwiązuje problemy znikające lub eksplodujące gradienty szkolenia tradycyjnych wielowarstwowych sieci neuronowych z wielu warstw, przy użyciu wstecznej .

pooling

Sieci splotowe może obejmować miejscowe lub globalne warstwy łączenie, które łączą wyjścia skupisk neuronów w jednej warstwie w jednej neuronu w następnej warstwy. Na przykład, maksymalna pule wykorzystuje maksymalną wartość z każdego klastra neuronów wcześniejszej warstwie. Innym przykładem jest średnia łączenie , który stosuje średnią wartość z każdego klastra neuronów wcześniejszej warstwie.

pełni połączona

Pełni połączone warstwy połączyć każdą neuronu w jednej warstwie dla każdego neuronu w innej warstwie. To jest w zasadzie taka sama jak tradycyjnego perceptron wielowarstwowej sieci neuronowej (MLP).

Pole odbiorcze

W sieciach neuronowych Każdy neuron odbiera dane wejściowe z pewnej liczbie lokalizacji w poprzedniej warstwie. W pełni połączonych warstwą Każdy neuron odbiera sygnał z każdego elementu w poprzedniej warstwie. W splotowego warstwie neuronów odbierać sygnał z jedynie ograniczoną podobszarze poprzedniej warstwy. Typowo podobszarze ma kształt kwadratowy (na przykład, rozmiar 5 od 5). Obszar wejściowy neuron nazywa swój otwarci boiska . Tak, w pełni połączonych warstwą pole otwarta jest cały poprzedniej warstwy. W splotowego warstwę, obszar chłonny jest mniejszy niż całej poprzedniej warstwy.

Ciężarki

Każdy neuron w sieci neuronowej wylicza wartość wyjściową przez zastosowanie niektórych funkcji do wartości wejściowych pochodzących z pola otwarci w poprzedniej warstwy. Funkcja, która jest stosowana do wprowadzania wartości jest określony przez wektor wag i błędu (typowo liczb rzeczywistych). Uczenia się sieci neuronowej postępuje dokonując przyrostowych zmian do uprzedzeń i wagi. Wektor wag i nastawienia nazywane są filtry i reprezentuje pewną funkcję wprowadzania (na przykład, szczególny kształt). Wyróżniającą cechą jest to, że wiele CNNs neurony dzielić ten sam filtr. Zmniejsza to zużycie pamięci , ponieważ pojedynczy stronniczość i pojedynczy wektor wag jest stosowany we wszystkich pól recepcyjnych dzielących ten filtr, a nie każde pole otwarci posiadający własne uprzedzenia i wektor wag.

Historia

CNN konstrukcja następuje przetwarzanie wizji w organizmach żywych .

Otwarci pola w korze wzrokowej

Praca Hubel i Wiesel w latach 1950 i 1960 wykazały, że kotów i małp wizualny cortexes zawierają neurony, które indywidualnie reagują na małych regionach pola widzenia . Pod warunkiem, że oczy nie są w ruchu, obszar przestrzeni wizualnej, w których bodźce wzrokowe wpływają na wystrzeliwanie pojedynczego neuronu jest znany jako podatny dziedzinie . Komórki sąsiednie mają podobne i nakładających się pól receptory. Otwarci rozmiar pola i położenie zmienia się systematycznie w całej korze, tworząc kompletną mapę przestrzeni wizualnej. Kora w każdej półkuli przeciwnej reprezentuje pole widzenia .

Ich 1968 papier zidentyfikowano dwa podstawowe typy komórek wzrokowych w mózgu:

  • proste komórki , którego wyjście jest zmaksymalizowane prostych krawędziach, szczególne konfiguracje wewnątrz ich chłonnego dziedzinie
  • kompleks komórki , które mają większe pola receptory , którego wyjście jest niewrażliwy na dokładną pozycję krawędzi w tej dziedzinie.

Neocognitron

W „ neocognitron ” został wprowadzony w 1980 roku neocognitron nie wymaga jednostki znajdujące się na wielu stanowiskach sieciowych mają te same wyszkolić ciężarów. Ten pomysł pojawia się w 1986 roku w wersji książkowej oryginalnego papieru back-propagacji. Neocognitrons zostały opracowane w 1988 roku dla sygnałów czasowych. Ich konstrukcja została poprawiona w 1998 roku, w 2003 roku uogólnione i uproszczone w tym samym roku.

Opóźnienie czasowe sieci neuronowe

Czas opóźnienia sieci neuronowej (TDNN) była pierwszą siecią splotowego.

TDNNs są stałym rozmiarze sieci splotowego że podzielają ciężarów wzdłuż wymiaru czasowego Pozwalają one sygnały mowy być przetwarzane niezmienniczo czasu, analogicznie do niezmienności tłumaczeń oferowanych przez CNNs. Zostały one wprowadzone w 1980 roku. Płytki wyjść neuron może obejmować etapy czasowe.

wyszkolić ciężary

System rozpoznawania odręcznego Kod pocztowy numery zaangażowanych zwoje, w których współczynniki jądra zostały zaprojektowane pracowicie ręcznie.

Yann LeCun i in. (1989), stosowane wstecznej propagacji nauczyć współczynniki jądra splotu bezpośrednio z obrazów liczb odręcznymi. Nauka była więc w pełni automatyczny, lepsze wyniki niż ręcznego projektowania współczynnika i została dostosowana do szerszego zakresu problemów rozpoznawania obrazu i typów obrazów.

LeNet-5

LeNet-5 pionierem 7 poziomu splotowego sieci przez LeCun et al. w 1998 roku, który klasyfikuje cyfry, była stosowana przez kilka banków rozpoznać numery ręcznie napisany na kontroli ( British English : sprawdze ) zdigitalizowanych obrazów w 32x32 pikseli. Zdolność do przetwarzania zdjęć wyższej rozdzielczości wymaga większych i bardziej warstw splotowych sieci neuronowych, więc technika ta jest ograniczana przez dostępność zasobów obliczeniowych.

Shift-niezmiennicze sieć neuronowa

Podobnie, zmiana niezmienna sieć neuronowa została zaproponowana dla obrazu rozpoznawania znaków w roku 1988. Algorytm architektura i szkolenia zostały zmodyfikowane w 1991 roku i jest stosowana do przetwarzania obrazów medycznych i automatycznego wykrywania raka piersi w mammografii .

Inaczej wzór splotu oparte zaproponował w 1988 roku do stosowania do rozkładu jednowymiarowych EMG spleciony sygnałów przez de-splotu. Ten projekt został zmodyfikowany w 1989 roku do innych wzorów de-splot opartych.

Neural abstrakcji piramida

Architektura feed-forward z splotowych sieci neuronowych została przedłużona w nerwowej abstrakcji piramidy połączeń bocznych i sprzężenia zwrotnego. Powstały charakterze powtarzającym sieć splotowego pozwala na elastyczne inkorporacja informacji kontekstowych do iteracyjnego rozwiązywania lokalnych niejasności. W przeciwieństwie do poprzednich modeli, obraz podobny do wyjścia w najwyższej rozdzielczości zostały wygenerowane.

implementacje GPU

Po papierze 2005, który ustanowił wartość GPGPU dla uczenia maszynowego , kilka publikacji opisano bardziej skutecznych sposobów, aby trenować splotowych sieci neuronowych przy użyciu GPU s. W 2011 roku zostały one dopracowane i wdrożone na GPU, z imponujących wyników. W 2012 r Ciresan et al. znacznie poprawiła się na najlepszej wydajności w literaturze dla wielu graficznych baz danych , w tym bazy danych MNIST , bazy Norb, zbioru danych HWDB1.0 (chińskie znaki) oraz zbioru danych CIFAR10 (zbioru danych z 60000 32x32 znakowanych obrazów RGB ). Wspomniany bazie MNIST Klasyfikacja na podstawie porównania w badaniu Hussain i in.

Cechy wyróżniające

Tradycyjny perceptron wielowarstwowy modele (MLP) były z powodzeniem wykorzystywane do rozpoznawania obrazów. Jednak ze względu na pełną łączność między węzłami oni cierpią z powodu przekleństwa wymiarowości , a tym samym nie dobrze skalować do zdjęć o wyższej rozdzielczości. 1000 1000 x pikseli obrazu z kolorów RGB kanałów ma 3 milionów wymiarach, które są zbyt wysokie, aby w efektywny sposób na rzeczywiste skali o pełnej łączności.

Warstwy CNN umieszczony w 3 wymiarach

Na przykład, w CIFAR-10 , obrazy są jedynie wielkości 32 x 32 x 3 (32 szerokiej, 32 wysokości, 3 kanałów kolor), a więc pojedynczy pełni połączone neuronów w pierwszej warstwie ukrytej regularnej sieci neuronowej miałby 32 * 32 * 3 = 3072 wagi. A 200 x 200 obrazu, jednakże prowadziłoby do neuronów, które mają 200 * 200 * 3 = 120,000 wag.

Ponadto, takie architektura sieci nie bierze pod uwagę strukturę przestrzenną danych, traktując pikseli wejściowych, które są daleko od siebie w taki sam sposób, jakby piksele, które są blisko siebie. To ignoruje lokalizację odniesienia w danych obrazu, zarówno obliczeniowo i semantycznie. Tak więc, pełna łączność neuronów jest marnotrawstwem do celów takich jak rozpoznawanie obrazów, które są zdominowane przez przestrzennie lokalnych wzorców wejściowych.

Splotowego sieci neuronowe są inspirowane biologicznie warianty perceptron wielowarstwowy, które są zaprojektowane, aby naśladować zachowanie kory wzrokowej . Modele te łagodzić wyzwania stawiane przez architekturę MLP wykorzystując silną przestrzennie lokalnej korelacji obecny w naturalnych obrazów. W przeciwieństwie do MLPS, CNNs mieć następujące cechy wyróżniające:

  • Tomy 3D neuronów . Warstwy o CNN neuronów ułożonych w 3 wymiarach : szerokość, wysokość i głębokość. Neurony wewnątrz warstwy są połączone jedynie na niewielkim obszarze warstwy przed zwany pole chłonny. Różne typy warstw, zarówno lokalnie, jak i całkowicie połączone są spiętrzone tworząc strukturę CNN.
  • Łączność lokalna : po koncepcji pól recepcyjnych, CNNs wykorzystać lokalizację przestrzenną poprzez egzekwowanie lokalnego wzór łączność między neuronami sąsiednich warstwach. Architektura zapewnia zatem, że uczeni „ filtry ” produkować najsilniejszą reakcję na przestrzennie lokalnego wzorca wejściowego. Układania wiele takich warstw prowadzi do filtrów nieliniowych , które stają się coraz bardziej globalny (czyli reaguje na większym obszarze przestrzeni pikseli), tak że sieć najpierw tworzy reprezentacje małych częściach wejściowych, a następnie z nich montuje reprezentacje większych obszarach.
  • Udostępnione ciężary : W CNNs każdy filtr jest replikowane w całym polu widzenia. Te jednostki replikowane podziela tą parametryzację (wektor waga i stronniczości) i utworzenia funkcji map. Oznacza to, że wszystkie neurony w danej warstwie splotowego odpowiedzi na tym samym funkcję w swojej konkretnej dziedzinie reagowania. Replikacja jednostek w ten sposób pozwala na funkcje mają być wykrywane niezależnie od ich położenia w polu widzenia, a tym samym stanowić własność translacji niezmienności .

Wszystkie te właściwości pozwalają CNNs osiągnąć lepszą uogólnienie na problemy ze wzrokiem . Dzieląc ciężar dramatycznie zmniejsza liczbę wolnych parametrów uczonych, obniżając wymagania dotyczące pamięci dla funkcjonowania sieci i umożliwiając kształcenie większych, bardziej zaawansowanych sieciach.

Cegiełki

CNN architektura jest utworzony przez stos oddzielnych warstw, które przekształcają objętość wejściowej do wielkości produkcji (np posiadający karby klasa) przez różniczkowej funkcji. są powszechnie stosowane kilka różne typy warstw. Są one dalej omówione poniżej.

Neurony splotowego warstwy (niebieski), połączonych z ich chłonnego dziedzinie (czerwony)

warstwa splotowego

Splotowego warstwa rdzenia budulcowym CNN. Parametry warstwa składają się z zestawem definiowanych filtrów (lub jąder ), które mają małe pole chłonny, ale rozciągają się przez całą głębokość wielkości wejściowych. Podczas przejściu do przodu, każdy filtr jest kołowo na całej szerokości i wysokości wielkości wejściowych, obliczając iloczyn skalarny pomiędzy pozycją filtra i do wejścia i wytwarzania 2-wymiarową mapę aktywacji tego filtra. W rezultacie sieć uczy się filtry, które aktywują, gdy wykryje jakiś konkretny typ funkcji w pewnym położeniu przestrzennym w wejściu.

Układanie mapy aktywacyjnych dla wszystkich filtrów wzdłuż wymiaru głębokości tworzy pełną głośność wyjściową warstwę splotu. Każdy wpis w wielkości produkcji może więc być interpretowany jako wyjście neuronu, który wygląda na małym obszarze w parametrach wejściowych i dzieli się z neuronów w tej samej mapie aktywacji.

łączność lokalna

Typowa architektura CNN

Gdy mamy do czynienia z wysokimi-wymiarowej wejść takich jak obrazy, nie jest możliwa do podłączenia do wszystkich neuronów neuronów w poprzednim tomie ponieważ taka architektura sieci nie bierze strukturę przestrzenną danych pod uwagę. Sieci splotowe wykorzystują korelację lokalnej przestrzennie przez wymuszenie rzadki Łączność wzór między neuronami sąsiednich warstw: Każdy neuron jest połączony jedynie niewielkiego obszaru objętości wejściowego.

Zakres tej łączności jest hyperparameter nazywany pola otwarci neuronu. Połączenia są lokalne w przestrzeni (wzdłuż szerokości i wysokości), ale zawsze biegną wzdłuż całej głębokości wielkości wejściowej. Taka architektura zapewnia, że uczeni filtry produkują najsilniejszą reakcję na przestrzennie lokalnego wzorca wejściowego.

układ przestrzenny

Trzy hiperparametrów kontrolować wielkość objętości wyjściowej splotowego warstw: głębokości, krok i zerami.

  • Głębokość objętości wyjściowej kontroluje liczbę neuronów w warstwie, które łączą się w tym samym regionie wielkości wejściowych. Te neurony uczyć, aby włączyć do różnych funkcji w wejściu. Na przykład, jeśli pierwsza warstwa splotowego wykonuje zdjęcie surowego jako wejście, a następnie różne neurony wzdłuż wymiaru głębokości może aktywować w obecności różnych zorientowanych krawędzi lub plamy barwy.
  • Stride kontrole jak kolumny głębokość około wymiarów przestrzennych (szerokość i wysokość) są rozdzielane. Kiedy krok jest 1 następnie ruszamy filtrów jeden piksel na raz. Prowadzi to do mocno nakładających się pól recepcyjnych między kolumnami, a także duże ilości wyjściowych. Po kroku 2 jest następnie filtry jump 2 piksele w momencie, gdy przemieszczał się. Podobnie, dla każdej liczby całkowitejkroku z S powoduje, że filtr jest tłumaczony przez S jednostek w tym samym czasie na wyjściu. W praktyce krok długościachsą rzadkie. Pola receptywne pokrywają mniejsze i uzyskaną objętość wyjściowy ma mniejsze wymiary przestrzenne, gdy długość kroku jest zwiększona.
  • Czasem wygodnie jest pad wejście zerami na granicy wielkości wejściowej. Wielkość tej wyściółki jest trzecim hyperparameter. Wyściółka zapewnia sterowanie wielkość wyjściowa wielkość przestrzenną. W szczególności często pożądane jest, aby dokładnie zachować rozmiar przestrzenny objętości wejściowego.

Wymiary przestrzenne objętości wyjściowej może być obliczona jako funkcja wielkości objętości wejściowe , rozmiar pola jądro splotowych neuronach warstw , kroczyć, z którym są one stosowane , a ilość wypełnianie zerami stosowany na granicy. Wzór na obliczenie jak wiele neuronów „fit” w danej objętości jest podana przez

Jeśli ta liczba nie jest liczbą całkowitą , to postępy są błędne i neurony nie mogą być wyłożone w celu dopasowania całej objętości wejściowego w symetryczny sposób. Ogólnie ustawienie zerowe dopełnienie się , gdy krok to gwarantuje, że wielkość wejściowa i wyjściowa objętość będzie miał ten sam rozmiar przestrzennie. Jednak nie zawsze jest całkowicie niezbędne do korzystania z wszystkich neuronów poprzedniej warstwy. Na przykład, sieć neuronowa projektant może zdecydować, aby używać tylko część wyściółki.

udostępnianie parametr

Schemat podziału parametr jest używany w splotowych warstw kontrolować liczbę wolnych parametrów. Opiera się on na jednym rozsądnym założenie: jeśli funkcja plaster jest przydatny do obliczania na jakiejś pozycji przestrzennej, to powinno być również przydatna do obliczania w innych pozycjach. Innymi słowy, oznaczający pojedynczy 2-wymiarowej plasterka głębokości jako plaster głębokości , możemy ograniczyć neuronów w każdym wycinku głębokości do korzystania z tych samych wag i stronniczości.

Ponieważ wszystkie neurony w pojedynczym segmencie głębokości tych samych parametrów przejazdu do przodu w każdym segmencie głębokości splotowego warstwy można obliczyć jako splotu wag neuron jest z wielkością sygnału. Dlatego jest powszechne w odniesieniu do zestawów odważników jako filtr (lub jądra ), który jest spleciony z wejściem. Wynikiem tego splotu jest mapa aktywacji i zestaw aktywacji mapy dla każdego innego filtra są ułożone ze sobą wzdłuż wymiaru głębokości w celu wytworzenia wyjściowej głośności. Parametr podział przyczynia się do niezmienności tłumaczeń architektury CNN.

Zdarza się, że założenie dzielenie parametr nie może mieć sens. Jest to szczególnie przypadku, gdy obrazy wejściowe do CNN mieć jakiś konkretny wyśrodkowany strukturę; dla których oczekujemy zupełnie różne cechy, które należy wyciągnąć na różnych lokalizacjach przestrzennych. Praktycznym przykładem jest, gdy wejścia są twarze, które zostały w środku obrazu: możemy spodziewać się różne funkcje specyficzne dla oczu lub włosów specyficznych się nauczyć w różnych częściach obrazu. W tym przypadku jest to powszechne na relaks schemat podziału parametru, a zamiast tego po prostu zadzwonić warstwy do warstwy „podłączony lokalnie”.

łączenie warstw

Max łączenie z filtrem i 2x2 = 2 kroku

Innym ważnym pojęcie CNNs jest łączenie, które jest formą nieliniowej down-próbkowania . Istnieje kilka nieliniowe funkcje realizują łączenia wśród których max pooling jest najczęstszą. To dzieli obraz wejściowy do zestawu nie pokrywających prostokątów, a na każdej z tych subregionie wyprowadza wartość maksymalną.

Intuicyjnie, dokładna lokalizacja cecha jest mniej ważna niż jego szorstki położenie względem innych cech. Jest to idea wykorzystania łączenie w splotowych sieci neuronowych. Warstwę łączenie serwowane w celu stopniowego zmniejszenia wielkości przestrzennego przedstawienia, w celu zmniejszenia liczby parametrów, zużycie pamięci i ilością obliczeń w sieci, a tym samym sterować nadmiernego dopasowania . Powszechne jest okresowo wstawić warstwę pulowania splotowego pomiędzy kolejnymi warstwami w architekturze CNN. Operacja łączenie zapewnia inną formę tłumaczenia niezmienności.

Warstwę łączenie działa niezależnie na każdy kawałek głębokość wejścia i zmienia rozmiary to przestrzennie. Najbardziej powszechna forma jest warstwą łączenie z filtrami o wielkości 2 x 2 stosowane w kroku 2 próbkuje na każdej głębokości plaster na wejściu przez 2 wzdłuż zarówno szerokości i wysokości, odrzucając 75% aktywacji. W tym przypadku, każdy max operacja jest ponad 4 cyfr. Wymiar głębokość pozostaje niezmieniona.

Oprócz max łączenia jednostki łącznych można wykorzystywać inne funkcje, takie jak średnia łączenia lub 2 -norm łączenia. Średnia łączenie często wykorzystywane w przeszłości, ale niedawno wypadł z łask w porównaniu do max poolingu, która wykonuje lepiej w praktyce.

Ze względu na agresywną zmniejszenie wielkości reprezentacji, nie jest nowym trendem w kierunku mniejszych użyciu filtrów lub odrzuceniu warstwy pooling całkowicie.

RoI łączenie do wielkości 2x2. W tej propozycji przykład region (parametry wejściowe) ma rozmiar 7x5.

Obszar zainteresowania ” grupującym (znany również jako RoI łączenia) jest wariantem max łączenia, w którym wielkość wyjściowa jest stała i prostokąt wejściowego parametru.

Łączenie jest ważnym składnikiem splotowych sieci neuronowych do wykrywania obiektów w oparciu o szybki R-CNN architektury.

warstwa Relu

Relu jest skrótem wyprostowanego jednostce liniowej , która stosuje nienasycających funkcji aktywacji . Skutecznie usuwa negatywne wartości z mapą aktywacji, ustawiając je na zero. To zwiększa nieliniowych właściwości tej funkcji decyzyjnej i całej sieci bez wpływu na receptory obszary warstwy splotu.

Inne funkcje są również stosowane w celu zwiększenia nieliniowości np nasyconej tangens hiperboliczny , i funkcja esicy . Relu jest często preferowane do innych funkcji, ponieważ pociągi sieci neuronowej kilka razy szybciej bez znaczącej kary do uogólnienia dokładność.

Pełni połączone warstwy

W końcu, po kilku splotowych oraz max warstw łączenia, rozumowanie na wysokim poziomie w sieci neuronowej odbywa się poprzez całkowicie połączone warstwy. Neurony w pełni połączonych warstwą mają połączenia do wszystkich aktywacji w poprzedniej warstwy, jak widać w regularnych (non-splotowych) sztucznych sieci neuronowych . Ich aktywacji może być zatem obliczana jako afinicznej transformacji z mnożenia macierzy , po której następuje nastawienia przesunięcia ( Dodawanie wektorów w wyuczonych lub czas określony polaryzacji).

warstwa strata

„Warstwa strata” określa, w jaki sposób szkolenie penalizuje odchylenie między przewidywaną (wyjścia) i prawdziwych etykiet i jest zwykle ostatnią warstwę sieci neuronowej. Różne funkcje strat odpowiednie do różnych zadań mogą być użyte.

Softmax strata służy do przewidywania jednej klasy K wzajemnie wykluczających klas. Esicy przekroju entropia straty są wykorzystywane do przewidywania K wartości niezależnie prawdopodobieństwem . Euklidesowa strata służy do cofa się o wartościach rzeczywistych etykiet .

Wybór hiperparametrów

CNNs użyć więcej hiperparametrów niż standardowy perceptronu wielowarstwowego (MLP). Podczas gdy zwykłe zasady kursów kształcenia i legalizacji stałych nadal stosuje się, co następuje należy pamiętać podczas optymalizacji.

Ilość filtrów

Ponieważ wielkość cechą map maleje wraz z głębokością warstwy pobliżu warstwy wejściowe mają mniej filtrów natomiast wyższe warstwy mogą mieć więcej. Aby wyrównać obliczeń w każdej warstwie, produkt z funkcji wartości V z pozycji piksela jest utrzymywana w przybliżeniu stała w warstwach. Więcej informacji na temat zachowania wejścia wymaga utrzymywania całkowitą liczbę aktywacji (liczba funkcji odwzorowuje razy liczbę położeń pikseli) nie zmniejsza się od jednej warstwy do drugiej.

Liczba map fabularnych bezpośrednio kontroluje zdolności i zależy od liczby dostępnych przykładów i złożoności zadań.

kształt filtra

Typowe kształty filtry znalezione w literaturze różnią się znacznie, a zazwyczaj są wybierane na podstawie zestawu danych.

Wyzwaniem jest zatem, aby znaleźć odpowiedni poziom szczegółowości, tak aby stworzyć abstrakcje w odpowiedniej skali, biorąc pod uwagę szczególny zbiór danych, i bez nadmiernego dopasowania .

Max łączenie kształtów

Typowe wartości 2 x 2. Bardzo duże objętości wejściowe mogą wymagać 4 x 4 łączenie w dolnych warstwach. Jednak, wybierając większe kształty drastycznie zmniejszyć wymiar sygnału, co może skutkować nadmierną utratą informacji . Często, nie nakładające się okna grupowania wykonać najlepiej.

metody regularyzacji

Regularyzacja to proces wprowadzania dodatkowej informacji rozwiązać źle postawionego problemu lub zapobiegania nadmiernego dopasowania . CNNs korzystać z różnych rodzajów uregulowania.

Empiryczny

Spadkowicz

Ponieważ w pełni połączone warstwy mieści większość parametrów, to jest skłonne do nadmiernego dopasowania . Jednym ze sposobów zmniejszenia przeuczenia jest przerywania . Na każdym etapie szkolenia, indywidualne węzły są albo „wypadło” z siatki z prawdopodobieństwem lub trzymane z prawdopodobieństwem , dzięki czemu zmniejsza się sieć jest w lewo; przychodzące i wychodzące krawędzie do węzła upuszczony na są również usuwane. Jedynie zredukowana sieć jest szkolony na danych zawartych w tym etapie. Usunięte węzły są następnie ponownie wkładane w sieci z ich oryginalnych wag.

W etapach szkolenia, prawdopodobieństwo, że zostanie usunięty ukryty węzeł jest zwykle 0,5; dla węzłów wejściowych, to powinien być znacznie niższy, ponieważ intuicyjnie informacje bezpośrednio utracone, gdy węzły wejściowe są ignorowane.

W czasie testowania po zakończeniu szkolenia, chcemy jak najlepiej znaleźć średnia próbka wszystkich możliwych sieciach spadł-out; niestety jest to niewykonalne w przypadku dużych wartościach . Można jednak znaleźć przybliżenie przy użyciu pełnej sieci z wyjściem każdy węzeł jest ważone przez współczynnik , więc oczekiwana wartość na wyjściu każdego węzła jest takie samo jak w etapach szkolenia. Jest to największy wkład metody przerywania: chociaż skutecznie generuje sieci neuronowych, a jako taki pozwala na połączenie modelu, w czasie testu tylko jedna sieć musi być przetestowany.

Poprzez unikanie trenuje wszystkie węzły na wszystkich danych treningowych, przerywania zmniejsza przeuczenia. Sposób także znacznie poprawia szybkość treningu. To sprawia, że połączenie modelu praktyczny, nawet do głębokich sieci neuronowych . Technika ta wydaje się w celu zmniejszenia oddziaływania węzła, prowadząc ich do nauki bardziej rozbudowane funkcje, które lepiej uogólniać do nowych danych.

DropConnect

DropConnect jest uogólnieniem widełek, w których każde połączenie zamiast każdej jednostce wyjściowej, można usunąć z prawdopodobieństwem . Każda jednostka otrzymuje w ten sposób wejścia od losowego podzbioru jednostek w poprzedniej warstwie.

DropConnect jest podobny do Odpad ponieważ wprowadza dynamiczną sparsity w modelu, ale różni się tym, że sparsity jest wag, zamiast wektorów wyjściowych warstwie. Innymi słowy, w pełni połączone warstwy z DropConnect się słabo połączone warstwy w którym przyłącza są dobierane losowo w fazie treningowej.

Stochastic pooling

Główną wadą Dropout jest to, że nie mają takie same korzyści dla splotowych warstw, gdzie neurony nie są w pełni połączone.

W łączenia stochastycznego konwencjonalne deterministyczny operacji grupowania są zastąpione procedury losowego, przy czym aktywacja wewnątrz każdego obszaru pul jest wybierany losowo według podziału wielomianu , danego przez działania w regionie pulowania. Podejście takie jest wolne od hiperparametrów i może być połączona z innymi podejściami regularyzacji, jak widełek i uzupełniania danych.

Alternatywny widok łączenia stochastycznego że jest to równoważne z normą max łączenia, ale z wieloma kopiami obrazu wejściowego, każdy o małych lokalnych odkształceń . Jest to podobne do wyraźnych sprężystych odkształceń obrazów wejściowych, które zapewnia doskonałe osiągi na zbiorze danych MNIST . Korzystanie stochastyczny łączenia w wielowarstwowym modelu daje liczbę wykładniczą odkształceń ponieważ pozycje w wyższych warstwach są niezależne od tych poniżej.

sztuczna dane

Ponieważ stopień nadmiernego dopasowania modelu jest określony zarówno przez jego mocy i ilości szkoleń, które otrzymuje, zapewniając splotowego sieci z większą liczbą przykładów treningowych może zmniejszyć przeuczenia. Ponieważ te sieci są zwykle przeszkoleni z wszystkich dostępnych danych, jedno podejście jest albo generowania nowych danych od podstaw (jeśli to możliwe) lub zaburzyć istniejące dane, aby tworzyć nowe. Na przykład wejściowe obrazy mogą być asymetrycznie przycięte o kilka procent, aby tworzyć nowe przykłady z tej samej wytwórni co oryginał.

Wyraźny

Wczesne zatrzymania

Jednym z najprostszych sposobów, aby zapobiec przeuczenia sieci jest po prostu przerwać trening przed nadmiernego dopasowywania miał szansę wystąpić. Chodzi o taką wadę, że proces uczenia się jest zatrzymany.

Liczba parametrów

Kolejny prosty sposób uniknąć nadmiernego dopasowania jest ograniczenie liczby parametrów, na ogół przez ograniczenie liczby jednostek ukrytych w każdej z warstw lub ograniczenie głębokości sieci. W przypadku sieci splotowych, rozmiar filtra wpływa również na liczbę parametrów. Ograniczenie liczby parametrów ogranicza moc predykcyjną sieci bezpośrednio zmniejszenie złożoności funkcji, które można wykonywać na danych, a tym samym ogranicza ilość nadmiernego dopasowania. Jest to równoznaczne z „ normą zerowego ”.

rozpad waga

Prosta forma dodanej regularizer jest rozpad masy ciała, który po prostu dodaje dodatkowy błąd, proporcjonalny do sumy ciężarów ( norma L1 ) lub kwadratu wielkości ( normy L2 ) wektora wagi, do błędu przy każdym węźle. Poziom dopuszczalny złożoności modelu może być zmniejszona przez zwiększenie współczynnika proporcjonalności, zwiększając kary dla dużych wektorów wagi.

uregulowanie L2 jest najbardziej rozpowszechnioną formą legalizacji. Może on być realizowany przez karanie kwadratu wielkości wszystkich parametrów bezpośrednio w cel. Regularyzacji L2 intuicyjną interpretację silnie obciążania skokowo wektorów wagi i preferuje rozproszone wektorów wagi. Ze względu na multyplikatywnych interakcji pomiędzy wagą i wejść to ma użyteczną właściwość zachęcanie do sieci, aby korzystać ze wszystkich jego wejść trochę raczej niż niektóre z jego wejść dużo.

L1 uregulowanie to kolejny wspólny formularz. Możliwe jest łączenie L1 z L2 uregulowania (nazywa się to elastyczne uregulowanie netto ). Regularyzacji L1 prowadzi do wektorów wagi się rzadki podczas optymalizacji. Innymi słowy, neurony z L1 uregulowania kończy się przy użyciu jedynie rzadki podzbiór ich najważniejszych wejść i stać się prawie niezmienna do hałaśliwych wejściach.

Maks ograniczenia norma

Inną formą legalizacji jest wymusić absolutnym górnym ograniczeniem wielkości wektora wagi każdego neuronie wykorzystywać przewidywaną metoda gradientu prostego wymusić ograniczenie. W praktyce odpowiada wykonywania aktualizacji parametrów jako normalne, a następnie egzekwowanie ograniczenia poprzez zaciśnięcie wektor wagi każdego neuronu do zaspokojenia . Typowe wartości to kolejność 3-4. Niektóre papiery zgłosić poprawki przy korzystaniu z tej formy legalizacji.

Hierarchiczne współrzędnych ramki

Łączenie traci dokładnych stosunków przestrzennych pomiędzy częściami wysokiego poziomu (na przykład jak nos i usta w obrazu twarzy). Relacje te są potrzebne do uznania tożsamości. Nakładające się na baseny tak, że każda cecha występuje w wielu basenów, pomaga zachować te informacje. Tłumaczenie sam nie ekstrapolowanie zrozumienia geometrycznych do skrajnie nowego punktu widzenia, na przykład w innej orientacji lub skali. Z drugiej strony, ludzie są bardzo dobre na ekstrapolacji; po obejrzeniu nowego kształtu raz mogli rozpoznać go z innego punktu widzenia.

Obecnie powszechnym sposobem radzenia sobie z tym problemem jest przygotowanie sieci na danych przekształconych w różnych orientacjach, wagi, oświetlenie, itp tak, że sieć może poradzić sobie z tymi zmianami. To jest obliczeniowo dla dużych zestawów danych. Alternatywą jest użycie współrzędnych hierarchię ramki i zastosowanie grupy neuronów reprezentować powiązaniu z kształtem funkcji i jego ułożenia w stosunku do siatkówki . Stanowią stosunku do siatkówki jest związek układu współrzędnych siatkówki i istotne cechy układu współrzędnych.

Tak więc, jednym ze sposobów stanowiących co jest osadzenie układu współrzędnych w nim. Gdy to nastąpi, duże funkcje mogą być rozpoznawane za pomocą spójności pozach ich części (np nos i usta stawia dokonać spójnej prognozy pozie całej twarzy). Stosując to podejście zapewnia, że jednostka wyższym poziomie (na przykład twarz) jest obecny przy niższym poziomie (na przykład na nos i usta) zgadza się na jego predykcji ułożenia. Wektory aktywności neuronalnej, które reprezentują pozy ( „stanowić wektory”) pozwalają przekształceń przestrzennych modelowane jako operacji liniowych, które sprawiają, że łatwiej się nauczyć sieć hierarchię jednostek wizualnych i uogólniać całej punktów widzenia. Jest to podobne do sposobu ludzki układ wzrokowy nakłada współrzędnych ramek w celu przedstawienia kształty.

Aplikacje

rozpoznawanie obrazów

CNNs są często stosowane w systemach rozpoznawania obrazu. W 2012 wskaźnik błędu z 0,23 procent na bazie MNIST odnotowano. Kolejny na papier za pomocą CNN klasyfikacji obrazu poinformował, że proces uczenia się „zaskakująco szybki”; w tym samym papierze, najlepiej opublikowane wyniki jak w roku 2011 osiągnięto w bazie MNIST i bazy Norb. Następnie, podobnie CNN nazwał AlexNet wygrał IMAGEnet dużą skalę wizualna Uznanie Wyzwanie 2012.

Kiedy stosuje się do rozpoznawania twarzy , CNNs osiągnąć duży spadek stopy błędów. Inna gazeta odnotowano stopę rozpoznawania 97,6 procent na „5600 nadal obrazów ponad 10 osób”. CNNs zostały wykorzystane do oceny jakości wideo w sposób obiektywny po treningu ręcznej; powstały układ miał bardzo niski średni kwadratowy błąd .

IMAGEnet Large Scale wizualna Uznanie Wyzwanie jest punktem odniesienia w klasyfikacji obiektów i wykrywania, miliony obrazów i setek klas obiektów. W ILSVRC 2014 wyzwanie rozpoznanie wizualne dużą skalę, prawie każdy zespół wysoko w rankingu CNN wykorzystywane jako podstawowe ramy. Zwycięzcą GoogLeNet (fundament DeepDream ) zwiększył średnią przeciętną precyzję wykrywania obiektów do 0.439329 i zmniejszenie błędu klasyfikacji 0.06656, najlepszy wynik do tej pory. Jego sieć zastosowano więcej niż 30 warstw. Że wydajność splotowych sieci neuronowych na testach IMAGEnet był zbliżony do ludzi. Najlepsze algorytmy nadal borykają się z obiektami, które są małe i cienkie, jak małą mrówkę na łodydze kwiat lub osoby trzymającej pióro w ręku. Mają też problemy z obrazami, które zostały zniekształcone z filtrami, coraz bardziej powszechnym zjawiskiem z nowoczesnych kamer cyfrowych. Natomiast te rodzaje obrazów rzadko zapalnych u ludzi. Ludzie jednak mają zwykle problemy z innymi kwestiami. Na przykład, nie są dobre w klasyfikacji obiektów do drobnoziarnistych kategorii, takich jak konkretny rasy psów lub gatunku ptaków, a splotowe sieci neuronowe zająć.

W 2015 roku wiele-warstwowa CNN wykazały zdolność dostrzec twarze z szerokim zakresie kątów, w tym do góry nogami, nawet jeśli częściowo niedrożny, z konkurencyjną wydajność. Sieć był szkolony na bazie 200000 zdjęć, które obejmowały twarze pod różnymi kątami i orientacjach i dalsze 20 milionów obrazów bez twarzy. Są one stosowane partii 128 obrazów, 50000 iteracji.

analiza wideo

W porównaniu z domenami danych obrazu, jest stosunkowo niewiele prac na stosowaniu CNNs klasyfikacji wideo. Film jest bardziej złożona niż obrazy, ponieważ ma inną (Temporal) wymiar. Jednak niektóre rozszerzenia CNNs do domeny wideo zostały zbadane. Jedno podejście do traktowania miejsca i czasu, jak równoważnych wymiarów wejściowego i przeprowadzać zwoje w czasie i przestrzeni. Innym sposobem jest bezpiecznik cechy dwóch splotowych sieci neuronowych, po jednym dla przestrzenne i jeden dla strumienia skroniowej. Dobrą pamięć krótkoterminowa (LSTM) powtarzające się jednostki są zwykle umieszczone za CNN stanowią międzyramkowe lub między zaciskowych zależności. Uczenie Nienadzorowane programów szkoleniowych dla funkcji czasoprzestrzennych zostały wprowadzone w oparciu o splotowego GATED ograniczonych Boltzmann Maszyn i niezależna analiza podprzestrzeni.

Przetwarzanie języka naturalnego

CNNs zostały również zbadane dla przetwarzania języka naturalnego . Modele CNN są skuteczne dla różnych problemów NLP i osiąga doskonałe wyniki w semantycznej analizowania , wyszukiwania pobieranie zapytań, modelowania zdanie, klasyfikacji, prognozowania i innych tradycyjnych zadań NLP.

Odkrycie narkotyków

CNNs były stosowane w wykrywaniu leków . Przewidywania interakcji między cząsteczkami i biologiczne białek można zidentyfikować potencjalne leczenie. W 2015 roku wprowadzono AtomNet Atomwise, pierwszy głęboki uczenia sieci neuronowej do struktury opartej racjonalnego projektowania leków . System pociągi bezpośrednio na reprezentacjach 3-wymiarowych oddziaływań chemicznych. W podobny sposób sieci rozpoznawania obrazu nauczyć się tworzyć mniejsze przestrzennie proksymalny elementy do większych struktur złożonych, AtomNet odkrywa cechy chemiczne, takie jak aromatyczności , sp 3 atomów węgla i wiązanie wodorowe . Następnie AtomNet był używany do przewidywania nowych kandydatów biomolekuł dla wielu celów chorobowych, zwłaszcza zabiegi dla wirusa Ebola i stwardnienie rozsiane .

Ocena ryzyka zdrowotnego i biomarkerów starzenia odkrycia

CNNs może być oczywiście dostosowane do analizy wystarczająco duży zbiór szeregów czasowych danych reprezentujących jeden-tygodniowego ludzkich fizycznych strumieni aktywności zwiększona przez bogatych danych klinicznych (w tym rejestrze śmierci, jak przewiduje np NHANES badanie). Prosty CNN połączeniu z COX-Gompertza modelu proporcjonalnego hazardu i stosuje się do wytwarzania przykład cyfrowego dowód na koncepcję- biomarkerów starzenia w formie all-przyczyn śmiertelności predykcyjnych.

Warcaby gry

CNNs zostały wykorzystane w grze w warcaby . Od 1999 do 2001 roku, Fogel i Chellapilla opublikowane dokumenty pokazujące, w jaki sposób sieć neuronowa splotowego mógłby nauczyć się grać w warcaby z wykorzystaniem Koewolucja. Proces uczenia się nie korzystać z wcześniejszych gier ludzkich zawodowych, ale raczej koncentruje się na minimalny zestaw informacji zawartych w szachownicy: lokalizacja i rodzaj sztuk i dyferencjału jednostkowej. Docelowo program ( Blondie24 ) został przetestowany na 165 gier na graczy w rankingu w najwyższym 0,4%. To również zdobył zwycięstwo przed programem Chinook na jego poziom „Expert” gry.

Udać się

CNNs zostały wykorzystane w komputerowym idź . W grudniu 2014 roku, Clark i Storkey opublikowała dokument pokazujący, że CNN przeszkolony przez nadzorowanego uczenia się z bazy danych ludzkich grach profesjonalnych mogłyby przewyższyć GNU Go i wygrać kilka meczów z Monte Carlo wyszukiwania drzewo Fuego 1.1 w ułamku czasu zajęło Fuego do grać. Później ogłoszono, że duża 12-warstwowa splotowego sieć neuronowa słusznie przewidział profesjonalny ruch w 55% pozycji, wyrównując dokładność 6 dan odtwarzacza człowieka. Gdy wyszkolony sieć splotowego użyto bezpośrednio do gry Go, bez poszukiwania, to pokonać tradycyjnego programu wyszukiwarki GNU Go w 97% z gry i dopasowane wydajności Monte Carlo wyszukiwania drzewo programu Fuego symulującej dziesięć tysięcy playouts (około milion pozycji) na pojedynek.

Kilka CNNs wyboru ruchów, aby spróbować ( „sieć”) polityki i oceny pozycji ( „sieć”) wartość jazdy MCTS były używane przez AlphaGo pierwszy pokazał najlepszą ludzką odtwarzacza w czasie.

Strojenie

Dla wielu zastosowań, mało dane szkolenie jest dostępny. Splotowego sieci neuronowe zwykle wymagają dużej ilości danych treningowych w celu uniknięcia nadmiernego dopasowania . Wspólne technika jest przygotowanie sieci na większej zestawu danych z pokrewnej dziedziny. Raz parametry sieciowe konwergentnych dodatkowy etap szkolenia odbywa się za pomocą danych w domenę dostrojenie ciężary sieciowych. Pozwala sieci splotu być z powodzeniem stosowana do problemów z małych zestawów szkoleniowych.

Ludzkie interpretacji wyjaśnień

Szkolenia i przewidywania end-to-end są powszechną praktyką w wizji komputerowej . Jednak ludzkie interpretacji wyjaśnienia są wymagane dla systemów krytycznych , takich jako samochodom samodzielnym . „Modele Black-box nie wystarczy”. Dzięki ostatnim postępom w wyrazistości wizualnej , przestrzennej i czasowej uwagi , najbardziej krytyczne regiony przestrzenne / momenty czasowe mogą być wizualizowane w celu uzasadnienia prognoz CNN.

Powiązane Architektury

Głębokie Q sieciami

Głęboka Q-sieciowa (DQN) jest rodzajem głębokiego modelu uczenia się, który łączy w sobie głęboki CNN z Q-learning , forma nauki zbrojenia . W przeciwieństwie do wcześniejszych czynników wzmacniających nauka, DQNs mogą uczyć się bezpośrednio od wysokich-wymiarowej wejść sensorycznych.

Wstępne wyniki zostały zaprezentowane w 2014 roku, z towarzyszącym papieru w lutym 2015. Badania opisane wniosek do Atari 2600 gier. Inne modele uczenia głębokie wzmocnienie poprzedza go.

Głębokie sieci przekonan

Splotu głębokich sieci przekonan (CDBN) mają strukturę bardzo podobną do splotowych sieci neuronowych i są przeszkoleni podobnie do sieci głębokich przekonań. Dlatego też wykorzystać strukturę 2D obrazów, jak CNNs zrobić, i skorzystać z pre-szkolenia jak głębokie sieci przekonań . Zapewniają one strukturę rodzajową, które mogą być wykorzystywane w wielu graficznych i przetwarzania sygnałów zadań. Wyniki testów na standardowych zestawów danych obrazowych, takich jak CIFAR zostały uzyskane przy użyciu CDBNs.

wspólne biblioteki

  • Caffe : Popularny biblioteki splotowych sieciach neuronowych. Stworzony przez Vision i Learning Center w Berkeley (BVLC). Obsługuje zarówno CPU i GPU. Opracowany w C ++ i ma Python i MATLAB owijarki.
  • Deeplearning4j głęboka nauka w języku Java i Scala na multi-GPU obsługującym Spark . Ogólnego przeznaczenia głęboko learning Biblioteka dla stosu produkcji JVM uruchomiony na naukowej silnika c ++ obliczeniowej . Pozwala na tworzenie niestandardowych warstw. Integruje się z Hadoop i Kafki.
  • deeplearning-HS : głębokie nauki w Haskell , wspiera obliczeń z CUDA.
  • MatConvNet : Implementacja convnet w MATLAB .
  • MXNet : open-source głęboko ramy uczenia się, który jest skalowalny, w tym wsparcie dla wielu procesorów graficznych i procesorów w dystrybucji. Obsługuje interfejs w wielu językach (C ++, Python, Julia, Matlab, JavaScript , Go , R , Scala, Perl, Wolfram Język ).
  • neon : Najszybszy ramy splotowych sieciach neuronowych i głębokiej nauki ze wsparciem dla GPU i CPU backendów. Front-end jest w Pythonie, podczas gdy szybko jądra są zapisywane w niestandardowym montażu modułu cieniującego. Stworzony przez Nervana Systems , która została przejęta przez firmę Intel.
  • Theano : Odniesienie głęboko-learning biblioteki dla Pythona z API w dużej mierze zgodny z popularnym NumPy bibliotece. Pozwala użytkownikowi napisać symbolicznych wyrażeń matematycznych, a następnie automatycznie generuje ich pochodne, oszczędzając użytkownikowi konieczności gradientów kodowych lub wstecznej propagacji błędów. Te wyrażenia symboliczne są automatycznie skompilowany do CUDA kod do szybkiego, on-the-GPU realizacji.
  • TensorFlow : Apache 2.0 -licensed Theano podobny biblioteki ze wsparciem dla CPU, GPU, własność Google'a jednostkę przetwarzania tensor (TPU) i urządzenia przenośne.
  • TensorLayer ( GitHub ): Głęboka biblioteka uczenia się i uczenia się zbrojenie. Obsługuje zarówno CPU i GPU. Opracowany w Pythonie .
  • Latarka ( strona główna ): a naukowa computing ramy z szerokiego poparcia dla algorytmów uczenia maszynowego, napisany w C i Lua . Głównym autorem jest Ronan Collobert i jest obecnie wykorzystywana na Facebooku AI Badań i Twitter.
  • Dlib : ( strona ): Zestaw narzędzi do tworzenia aplikacji świata rzeczywistego uczenie maszynowe i analiza danych w C ++.
  • Microsoft poznawcza Toolkit : głęboka nauka Toolkit napisany przez Microsoft z kilku unikalnych zwiększenie skalowalności na wielu węzłach. Wspiera on pełnoprawnym interfejsy do szkolenia w C ++ i Python oraz z dodatkowego wsparcia dla modelu wnioskowania w C # i Java.

wspólne API

Kultura popularna

Splotowego sieci neuronowe są wymienione w 2017 powieść nieskończoność Born.

Zobacz też

Uwagi

Referencje

Linki zewnętrzne