Głęboka nauka

Warstwowa reprezentacja obrazów na kilku poziomach abstrakcji.

Głębokie uczenie ( niemiecki : wielowarstwowe uczenie , głębokie uczenie lub głębokie uczenie ) opisuje metodę uczenia maszynowego, która wykorzystuje sztuczne sieci neuronowe (ANN) z licznymi warstwami pośrednimi ( angielskie warstwy ukryte ) pomiędzy warstwą wejściową a wyjściową, tworząc w ten sposób rozległą Struktura wewnętrzna. Jest to szczególna metoda przetwarzania informacji.

Po lewej: warstwa wejściowa z w tym przypadku trzema neuronami wejściowymi. Po prawej: warstwa wyjściowa z neuronami wyjściowymi, dwa na tym obrazku. Warstwa środkowa nazywana jest warstwą ukrytą, ponieważ jej neurony nie są ani wejściami, ani wyjściami. Widać tu tylko ukrytą warstwę, ale wiele sieci ma znacznie więcej. Niezbędna liczba poziomów, od których mówi się o „głębokim uczeniu się”, nie jest dokładnie określona.

Wymagania i podstawy

Problemy rozwiązywane w początkach sztucznej inteligencji były trudne intelektualnie dla ludzi , ale łatwe do przetworzenia przez komputery . Problemy te można by opisać za pomocą formalnych reguł matematycznych . Prawdziwym wyzwaniem dla sztucznej inteligencji było jednak rozwiązywanie zadań, które są łatwe do wykonania dla człowieka, ale których rozwiązanie jest trudne do sformułowania za pomocą reguł matematycznych. Są to zadania, które ludzie rozwiązują intuicyjnie , takie jak rozpoznawanie mowy czy twarzy .

Komputerowe rozwiązanie tego typu zadań obejmuje zdolność komputerów do uczenia się na podstawie doświadczenia i rozumienia świata w kategoriach hierarchii pojęć. Każde pojęcie jest definiowane przez jego związek z prostszymi pojęciami. Dzięki zdobywaniu wiedzy z doświadczenia, takie podejście pozwala uniknąć konieczności formalnego określania przez operatorów całej wiedzy, jakiej komputer potrzebuje do wykonywania swojej pracy. Hierarchia pojęć pozwala komputerowi uczyć się skomplikowanych pojęć, łącząc je z prostszych. Jeśli narysujesz diagram, który pokazuje, jak te koncepcje są zbudowane jedna na drugiej, to diagram jest głęboki, z wieloma warstwami. Z tego powodu w sztucznej inteligencji takie podejście nazywa się „głębokim uczeniem”.

Komputerowi trudno jest zrozumieć znaczenie nieprzetworzonych danych sensorycznych, takich jak rozpoznawanie pisma ręcznego , gdzie tekst początkowo istnieje tylko jako zbiór pikseli. Konwersja zestawu pikseli na łańcuch cyfr i liter jest bardzo skomplikowana. Z surowych danych należy wyodrębnić złożone wzorce. Nauka lub ocena tego zadania wydaje się niezmiernie trudna, jeśli zostało zaprogramowane ręcznie.

Jedną z najczęstszych technik w sztucznej inteligencji jest uczenie maszynowe . Uczenie maszynowe to samoadaptujący się algorytm. Głębokie uczenie, podzbiór uczenia maszynowego, wykorzystuje szereg warstw hierarchicznych lub hierarchię pojęć do przeprowadzenia procesu uczenia maszynowego. Zastosowane tutaj sztuczne sieci neuronowe są zbudowane jak ludzki mózg, z neuronami połączonymi ze sobą jak sieć. Pierwsza warstwa sieci neuronowej, widoczna warstwa wejściowa, przetwarza surowe dane wejściowe, takie jak pojedyncze piksele obrazu. Wprowadzane dane zawierają zmienne, które są dostępne do obserwacji, stąd „widoczna warstwa”.

Ta pierwsza zmiana przekazuje swoje dane wyjściowe na następną zmianę. Ta druga warstwa przetwarza informacje z poprzedniej warstwy, a także przekazuje wynik. Następna warstwa otrzymuje informacje z drugiej warstwy i dalej je przetwarza. Warstwy te nazywane są odpowiednio warstwami ukrytymi ( angielskie ukryte warstwy ). Zawarte w nich cechy stają się coraz bardziej abstrakcyjne. Ich wartości nie są podane w oryginalnych danych. Zamiast tego model musi określić, które koncepcje są przydatne w wyjaśnianiu relacji w obserwowanych danych. Dzieje się tak na wszystkich poziomach sztucznej sieci neuronowej. Wynik jest wyprowadzany w ostatniej widocznej zmianie. Dzieli to pożądane złożone przetwarzanie danych na szereg zagnieżdżonych prostych skojarzeń, z których każde jest opisane przez inną warstwę modelu.

Historia, rozwój i użytkowanie

Sposób grupy danych obsługi -KNNs (GMDH-Ann) z 1960 roku z Oleksiy Iwachnenko były pierwsze układy głębokiego uczenia wielowarstwowej wyprzedzającego perceptronu typu. Dalsze podejścia do głębokiego uczenia się, zwłaszcza w dziedzinie widzenia maszynowego , rozpoczęły się od neokognitronu , który został opracowany przez Kunihiko Fukushimę w 1980 roku. W 1989 r. Yann LeCun i współpracownicy wykorzystali algorytm propagacji wstecznej do uczenia wielowarstwowych sieci ANN w celu rozpoznawania odręcznych kodów pocztowych. Od 1997 r. Sven Behnke rozszerzył wybiegające w przyszłość podejście hierarchiczno-konwolucyjne w piramidzie abstrakcji neuronalnej o połączenia boczne i wsteczne w celu elastycznego uwzględniania kontekstu w decyzjach i iteracyjnego rozwiązywania lokalnych niejednoznaczności.

Termin „głębokie uczenie” został po raz pierwszy użyty w kontekście uczenia maszynowego w 1986 roku przez Rinę Dechter , gdzie opisuje proces, w którym zapisywane są wszystkie rozwiązania zastosowane w obszarze wyszukiwania, które nie prowadzą do pożądanego rozwiązania. Analiza tych zarejestrowanych rozwiązań powinna umożliwić lepszą kontrolę kolejnych testów, a tym samym zapobiec możliwym ślepym zaułkom w znajdowaniu rozwiązania na wczesnym etapie. Obecnie jednak termin ten jest używany głównie w połączeniu ze sztucznymi sieciami neuronowymi i pojawił się w tym kontekście po raz pierwszy w 2000 r. w publikacji Multi-Valued and Universal Binary Neurons: Theory, Learning and Applications autorstwa Igora Aizenberga i współpracowników.

Ostatnie sukcesy metod głębokiego uczenia, takie jak wygrana w turnieju Go programu AlphaGo z najlepszymi graczami na świecie, opierają się na zwiększonej szybkości przetwarzania sprzętu na wykorzystaniu głębokiego uczenia do trenowania sieci neuronowej używanej w AlphaGo. To samo dotyczy przewidywania fałdowania białek, które jest skuteczne od 2020 roku . Sieci te wykorzystują sztucznie generowane neurony ( perceptrony ) do rozpoznawania wzorców.

Yann LeCun , Yoshua Bengio i Geoffrey Hinton otrzymali nagrodę Turinga w 2018 roku za wkład w sieci neuronowe i głębokie uczenie .

Złożoność i granice wyjaśnialności

Głębokie sieci neuronowe mogą mieć złożoność do stu milionów pojedynczych parametrów i dziesięciu miliardów operacji arytmetycznych na dane wejściowe. Umiejętność interpretacji parametrów i wyjaśnienia, w jaki sposób powstały wyniki, jest możliwa tylko w ograniczonym zakresie i wymaga użycia specjalnych technik, które zostały podsumowane w Explainable Artificial Intelligence . Innym efektem ubocznym głębokiego uczenia się jest podatność na nieprawidłowe obliczenia, które mogą być wywołane przez subtelne manipulacje sygnałami wejściowymi, które nie są widoczne dla człowieka, na przykład na obrazach. Zjawisko to jest podsumowane w przykładach kontradyktoryjnych .

Biblioteki programów

Oprócz możliwości, zwykle prezentowanej w przykładach szkoleniowych, zrozumienia wewnętrznej struktury, programowania sieci neuronowej całkowicie ręcznie, istnieje szereg bibliotek oprogramowania , często open source , zwykle wykonywalnych na kilku platformach systemów operacyjnych w popularnych językach programowania, takich jak jako C , C++ , Java lub Python . Niektóre z tych bibliotek programów obsługują procesory GPU lub TPU w celu przyspieszenia obliczeń lub udostępniają samouczki dotyczące korzystania z tych bibliotek. Dzięki modelom ONNX można wymieniać między niektórymi z tych narzędzi.

  • TensorFlow (Python, JavaScript, C++, Java, Go, Swift) od Google
  • Keras (Python, od wersji 1.4.0 również zawarty w API TensorFlow) - popularny framework (2018) obok Tensorflow.
  • Caffe z Berkeley Vision and Learning Center (BVLC)
  • PyTorch (Python), opracowany przez zespół badawczy sztucznej inteligencji Facebooka
  • Torch (C, Lua) (Community) i oparty na nim framework Facebook Torrechner
  • Microsoft Cognitive Toolkit (C++)
  • PaddlePaddle (Python) od producenta wyszukiwarki Baidu
  • OpenNN (C++), implementuje sztuczną sieć neuronową.
  • Theano (Python) z Université de Montréal
  • Deeplearning4j (Java) od Skymind
  • MXNet od Apache Software Foundation

literatura

linki internetowe

Indywidualne dowody

  1. Hannes Schulz, Sven Behnke: Głębokie uczenie: warstwowe uczenie hierarchii cech . W: AI - Sztuczna Inteligencja . taśma 26 , nie. 4 listopada 2012 r., ISSN  0933-1875 , s. 357-363 , doi : 10.1007/s13218-012-0198-z ( springer.com [dostęp 13 stycznia 2020]).
  2. Herbert Bruderer: Wynalezienie komputera, kalkulatora elektronicznego, rozwój w Niemczech, Anglii i Szwajcarii . W: Kamienie milowe w informatyce . Drugie, całkowicie zmienione i znacznie rozszerzone wydanie. taśma 2 . De Gruyter, 2018, ISBN 978-3-11-060261-6 , Słownik historii techniki , s. 408 ( ograniczony podgląd w Google Book Search [dostęp 23 listopada 2019 r.]).
  3. a b c d e f Ian Goodfellow, Yoshua Bengio, Aaron Courville: Deep Learning. MIT Press, dostęp 19 lutego 2017 .
  4. a b David Kriesel : Mały przegląd sieci neuronowych. (PDF; 6,1 MB) W: dkriesel.com. 2005, dostęp 21 stycznia 2019 .
  5. ^ Li Deng, Dong Yu: Głębokie uczenie: metody i zastosowania . 1 maja 2014 ( microsoft.com [dostęp 17 maja 2020]).
  6. ^ B Michael Nielsen: Neural Networks i Deep Learning. Determination Press, dostęp 21 lutego 2017 .
  7. ^ Li Deng, Dong Yu: Głębokie uczenie: metody i zastosowania . W: Microsoft Research (red.): Foundations and Trends in Signal Processing Volume 7 Issues 3-4 . 1 maja 2014, ISSN  1932-8346 (angielski, microsoft.com [dostęp 22 lutego 2017]).
  8. ^ Iwachnenko AG i Lapa VG (1965). Cybernetyczne urządzenia prognozujące. Korporacja Informacyjna CCM.
  9. Jürgen Schmidhuber : Głębokie uczenie w sieciach neuronowych: przegląd. W: Sieci neuronowe. 61, 2015, s. 85, arxiv : 1404.7828 [cs.NE] .
  10. Jürgen Schmidhuber: Krytyka papieru autorstwa „Deep Learning Conspiracy” (Nature 521, s. 436). W: ludzie.idsia.ch . Czerwiec 2015, dostęp 12 kwietnia 2019.
  11. Yann LeCun i in.: wsteczna propagacja stosowana do ręcznego rozpoznawania kodu pocztowego, obliczenia neuronowe, 1, str. 541-551, 1989 , dostęp 11 maja 2020 r.
  12. ^ Sven Behnke: Hierarchiczne sieci neuronowe do interpretacji obrazu (=  Notatki do wykładu z informatyki . Tom 2766 ). Springer Berlin Heidelberg, Berlin, Heidelberg 2003, ISBN 978-3-540-40722-5 , doi : 10.1007/b11963 ( springer.com [dostęp 28 listopada 2020]).
  13. ^ Rina Dechter: Uczenie się podczas poszukiwania w problemach z ograniczeniami i satysfakcją. (PDF; 531 KB) W: fmdb.cs.ucla.edu. University of California, Computer Science Department, Cognitive Systems Laboratory, 1985, dostęp 9 lipca 2020 .
  14. Horváth & Partners: „Sztuczna inteligencja zmieni wszystko” (od 0:11:30) na YouTube , 9 maja 2016 r., dostęp 6 listopada 2018 r. (prezentacja Jürgena Schmidhubera).
  15. ^ Jürgen Schmidhuber: Deep Learning od 1991 roku. W: people.idsia.ch. 31 marca 2017, dostęp 1 grudnia 2018 .
  16. Igor Aizenberg, Naum N. Aizenberg, Joos PL Vandewalle: Wielowartościowy i uniwersalny neuron binarny: teoria, uczenie się i zastosowania . Springer Science & Business Media, 14 marca 2013, ISBN 978-1-4757-3115-6 .
  17. Demis Hassabis: AlphaGo: wykorzystanie uczenia maszynowego do opanowania starożytnej gry Go. W: blog.google. Google, 27 stycznia 2016, dostęp 16 lipca 2017 .
  18. AlphaFold: rozwiązanie 50-letniego wielkiego wyzwania w biologii. W: deepmind.com. 30 listopada 2020, dostęp 19 grudnia 2020 .
  19. Alexander Neumann: Deep Learning: Nagroda Turinga dla Yoshuy Bengio, Geoffreya Hintona i Yanna LeCuna - heise online. W: heise.de. 28 marca 2019, dostęp 29 marca 2019 .
  20. Leilani H. Gilpin, David Bau, Ben Z. Yuan, Ayesha Bajwa, Michael Spectre: Wyjaśnienie wyjaśnień: przegląd możliwości interpretacji uczenia maszynowego . W: 2018 IEEE 5th International Conference on Data Science and Advanced Analytics (DSAA) . IEEE, Turyn, Włochy 2018, ISBN 978-1-5386-5090-5 , s. 80–89 , doi : 10.1109 / DSAA.2018.00018 ( ieee.org [dostęp 8 grudnia 2019]).
  21. ^ Dan Clark: 16 najlepszych bibliotek i platform Open Source Deep Learning. KDnuggets, kwiecień 2018, dostęp 8 stycznia 2019 .
  22. Dokumentacja Keras. W: Keras: Biblioteka Deep Learning dla Theano i TensorFlow. Źródło 6 marca 2017 .
  23. Dlaczego Keras? W: keras.io. Pobrane 8 stycznia 2020 r. (w języku angielskim): „Keras jest również ulubieńcem badaczy głębokiego uczenia się, zajmując drugie miejsce pod względem wzmianek w artykułach naukowych przesłanych na serwer preprintów arXiv.org . Keras został również przyjęty przez naukowców z dużych organizacji naukowych, w szczególności CERN i NASA.”
  24. Latarka | Obliczenia naukowe dla LuaJIT. Źródło 17 lutego 2017 .
  25. Rainald Menge-Sonnentag: Uczenie maszynowe: Facebook publikuje framework open source dla Torch. W: heise.de. 24 czerwca 2016 . Źródło 17 luty 2017 .
  26. ^ Microsoft Cognitive Toolkit. W: microsoft.com. Pobrano 11 sierpnia 2017 r. (Amerykański angielski).
  27. Dom. W: paddlepaddle.org. Źródło 17 lutego 2017 .
  28. Alexander Neumann: Baidu wypuszcza system głębokiego uczenia się jako open source. W: heise.de. 2 września 2016 . Źródło 17 luty 2017 .
  29. ^ Teano. W: deeplearning.net. Źródło 20 września 2019 .
  30. Apache MXNet (inkubacja) — elastyczna i wydajna biblioteka do głębokiego uczenia się. W: mxnet.apache.org. Źródło 5 września 2019 .