Zum Inhalt springen
L

Das Video kommt von YouTube: erst beim Abspielen verbindet sich die Seite mit YouTube (Google).

So funktionieren neuronale Netze | KI-Basics

c't uplink9:18 40.257 Aufrufe veröffentlicht Auf YouTube

Das Wichtigste aus dem Video

Tipp auf eine Zeit – das Video springt genau dorthin.

Transkriptautomatisch erstellt · 148 Zeilen
Herunterladen
  1. Neuronen, also Nervenzellen, können elektrische Impulse an
  2. ihren Synapsen wahrnehmen. Wenn sie von diesen Impulsen genug
  3. gereizt werden, dann feuern sie, indem sie selbst einen Impuls erzeugen.
  4. Biologisch ist das ein komplexer Vorgang, aber die Grundidee lässt sich
  5. ziemlich leicht am Rechner simulieren. Echte Neuronen werden kontinuierlich aus
  6. wie schnell Impulse ankommen. Das ist aufwendig zu simulieren.
  7. Stattdessen kann die Simulation einfach alles in einem Schritt rechnen.
  8. Viele oder starke Impulse stellt sie durch größere Zahlen dar, wenige oder
  9. schwache durch kleinere Zahlen. Das ist viel einfacher zu berechnen.
  10. Unterschiedlich starke Reize werden dann einfach über die Summe aller Werte
  11. dargestellt, die über die Synapsen reinkommen.
  12. Je höher diese Summe, umso höher der Reiz.
  13. Synapsen sind unterschiedlich reizbar, aber auch sehr anpassungsfähig.
  14. Nach neuen Erfahrungen verändern sie ihre Reizbarkeit.
  15. Und das ist der biologische Prozess hinter dem Begriff „Lernen“.
  16. Die einfachste Art, diesen Prozess mathematisch zu simulieren, ist,
  17. wenn man jede Eingabe mit einem eigenen Wert multipliziert.
  18. Irrelevante Eingaben kann das Neuron dann mit einem ganz kleinen Wert wie
  19. zum Beispiel 0,01 multiplizieren. Ganz wichtige mit 1,8 - oder so ähnlich.
  20. Normalerweise würde diese Summe dann immer nur um den Nullpunkt oszillieren.
  21. Und um das zu vermeiden, addiert die Simulation einfach noch
  22. pro Neuron einen festen Wert dazu. Das ist der sogenannte „Bias“.
  23. Was jetzt noch fehlt, ist das Feuern. Unser Modell muss vor allem simulieren,
  24. dass Neuronen einfach nichts tun, wenn sie nur wenig gereizt werden.
  25. Und genau dafür ist jetzt die Aktivierungsfunktion zuständig.
  26. Der einfachste Fall von so einer Aktivierungsfunktion, der hat einen
  27. ziemlich fancy Namen: „Rectified Linear Unit“, kurz: „ReLU“.
  28. Die Funktion ist aber extrem einfach. Sie reicht die Werte einfach unverändert durch,
  29. außer die Eingabe wäre negativ, dann gibt sie stattdessen 0 zurück.
  30. Programmiert ist das einfach das Maximum aus 0 und der Eingabe x.
  31. Den Wert, den wir vorhin berechnet haben, - also die Profis nennen
  32. solche Werte oft „Logits“ - schieben wir jetzt
  33. noch einmal durch die ReLU. Und das war es eigentlich schon! Das ist
  34. im Prinzip die komplette Mathematik, die in neuronalen Netzen steckt.
  35. Der nächste Schritt, der jetzt kommt, der ist für Informatiker gewohnt, für
  36. den Rest der Welt aber ein bisschen verwirrend:
  37. Da wir jetzt wissen, wie wir ein einzelnes Neuron simulieren, können wir
  38. das Gleiche ein paar Millionen mal machen und auch die Logits von Neuronen als
  39. Eingaben für andere Neuronen benutzen. Und wenn ihr jetzt sagt: „Hey, Moment mal!
  40. Ein paar Millionen mal! Und jedes Neuron hat einen eigenen Wert,
  41. die dann alle miteinander multipliziert werden. - Das ist doch
  42. eigentlich viel zu komplex! Das versteht doch kein Mensch!“
  43. Dann habt ihr eigentlich so den wichtigsten Aspekt von KI verstanden.
  44. Es ist wirklich so komplex, dass es selbst die Entwickler nicht verstehen.
  45. Aber dafür gibt es dann eben einige Algorithmen, die das
  46. Ganze automatisch berechnen. Und die Algorithmen sind alle so
  47. optimiert, dass der Mensch überhaupt keinen Überblick behalten muss.
  48. Aber damit man trotzdem versteht, was darin eigentlich passiert und wie das
  49. Ganze innerhalb dieser Netze berechnet wird,
  50. hat sich meine Kollegin Pina mal ein Beispiel überlegt, an dem man das alles
  51. auch selbst nachrechnen kann. Stellt euch für mein Beispiel vor,
  52. dass ich Smart-Home-Sensoren habe. Einer erkennt, ob mein Fahrrad im Keller steht
  53. und der andere ist ein smarter Lichtschalter in meinem Zimmer.
  54. Es geht darum, anhand dieser Daten vorherzusagen, ob ich schlafe.
  55. Der Datensatz besteht aus 8 Zeilen in einer Tabelle. In der Spalte Y steht,
  56. was das neuronale Netz ausgeben sollte. Vom Fahrradschloss kommt ein Bit vom
  57. Lichtschalter ein Stromverbrauch in Watt, einer etwas größeren Zahl.
  58. Dass aus einem einzelnen Neuron bestehenden Netz muss lernen,
  59. die Eingaben in die richtige Größenordnung, - normalerweise der Bereich zwischen 0 und 1 -
  60. zu skalieren und logisch zu verknüpfen. Ich schlafe, wenn das Fahrrad
  61. da ist und das Licht aus ist. Das heißt, das Gewicht für die Synapse
  62. zum Lichtschalter-Stromverbrauch muss eine kleine negative Zahl sein.
  63. Bei nur einem Neuron kommt man mit kurzem Nachdenken auf die perfekten Werte:
  64. 1,0 ... 0,05 und 0 für den Bias. Man kann das aber auch programmieren.
  65. Eine Loss-Funktion definieren, die partielle Ableitung für alle drei Werte berechnen
  66. und dann in mehreren kleinen Schritten ausgehend
  67. von Zufallszahlen die gleichen Werte mit dem Gradientenabstiegsalgorithmus annähern.
  68. Diese ganzen Schritte, die Pina da jetzt einfach so dahergesagt hat:
  69. Dahinter steckt die große Innovation aus den 80er Jahren,
  70. ohne die, die KI, wie wir es hier heute kennen, eigentlich gar
  71. nicht möglich gewesen wäre. Das Verfahren nennt sich „Backpropagation“.
  72. Und damit kann man die ganzen Parameter, also sowohl von sehr kleinen als auch
  73. den ganz großen Netzen annähern. Wie gut so ein künstliches neuronales
  74. Netz mit bestehenden Parametern funktioniert, kann ein Programm
  75. automatisch mit einer Loss-Funktion bestimmen.
  76. Diese Fehlerfunktion berechnet, wie stark die Ausgabe vom
  77. gewünschten Wert abweicht. Oft wird dazu der ausgegebene Wert vom
  78. gewünschten Wert abgezogen und das Ergebnis quadriert - damit immer eine
  79. positive Zahl entsteht. Je größer die ist, desto schlechter sind
  80. die momentan gewählten Parameter. Angenommen es gäbe nur zwei
  81. Parameter wie ein Pinas Beispiel: Dann könnte man die
  82. Loss-Funktion als Fläche darstellen. Am Punkt (1, –0,05) wäre
  83. sie besonders klein. An Punkten in der
  84. Nähe schon etwas größer. Und an weit entfernten
  85. Punkten ziemlich groß. Die Loss-Funktionen von neuronalen Netzen
  86. haben immer dort ein Tal, wo die optimale Parameterkombination liegt.
  87. Hat man diese fabelhaften Werte gefunden, dann liegen die Berechnungen des Netzes
  88. und die Zielwerte der Trainingsdaten in den meisten Fällen sehr nahe beieinander.
  89. Also rein mathematisch funktioniert das für Tausende oder Millionen Dimensionen
  90. genauso wie für zwei. Nur kann man dann eben keine Diagramme
  91. mehr zeichnen, auf denen man was erkennen kann.
  92. Weil die Loss-Funktion immer runtergeht in Richtung besserer Parameter,
  93. kann man einen Algorithmus benutzen, um sich vom Rechner gute
  94. Parameter suchen zu lassen. Dazu fängt man einfach mit zufälligen
  95. Werten an und berechnet, in welche Richtung es runtergeht.
  96. Dann ändert man die Werte ein wenig in diese Richtung.
  97. Von diesem besseren Punkt aus macht man das Gleiche wieder für den nächsten
  98. Schritt und so weiter. Nach genügend Schritten kommt man bei
  99. ziemlich guten Parametern an. Im Grunde rechnet der Algorithmus das
  100. Netz dann rückwärts, um herauszufinden, welche Parameter am
  101. meisten dazu beitragen, dass die Loss-Funktion
  102. noch größer als 0 ist. Das Ganze nennt man eben „Backpropagation“,
  103. weil das Netz rückwärts gerechnet wird. Künstliche neuronale Netze wurden
  104. eigentlich sogar schon in den 50ern erfunden.
  105. Die waren aber überhaupt nicht effizient trainierbar, weil die Backpropagation,
  106. also die zentrale Technik, die heutige KIs erst möglich macht,
  107. wurde erst in den 80ern erfunden und erst seitdem gibt es auch
  108. nennenswerte Forschung zu ihnen. Und das wirklich coole an
  109. neuronalen Netzen ist - also diese Erkenntnis hat mich total begeistert! -
  110. - ist einfach, dass sie jede Art von Funktionen nachbilden können, jede Art
  111. von Berechnungen ausführen können! Und das wurde übrigens
  112. auch theoretisch bewiesen! Und mit nur zwei Neurunenschichten
  113. kann man im Endeffekt alle Logikgatter nachbilden.
  114. Es gibt unendlich viele Möglichkeiten, wie man die Neuronen
  115. miteinander verdrahten könnte. Manche funktionieren gut für den einen
  116. Datensatz, andere missarabel. Theoretisch sind neuronale Netze
  117. beliebige Function-Approximator, also Programme,
  118. die jede Berechnung - nur anhand von Daten - nachahmen können.
  119. Aber in der Praxis brauchen Data-Scientists - also das
  120. sind die KI-Informatiker - eine Menge Bauchgefühl dafür, welche
  121. Netzwerksstrukturen für einen Datensatz funktionieren könnten
  122. und welche eben nicht. Damit die Datenwissenschaftler schnell
  123. experimentieren können, gibt es KI-Frameworks wie
  124. PyTorch oder TensorFlow. Die berechnen beispielsweise
  125. vollautomatisch die ganzen partiellen Ableitungen und nutzen wirklich alles,
  126. was das System hergibt. Das heißt, die rechnen mit voller
  127. Hardwarebeschleunigung der Vektor-Einheiten in der
  128. CPU und auf der Grafikkarte! Für die allerersten Experimente müsst ihr
  129. aber noch nicht mal was installieren. Ihr könnt nämlich auch im Browser ein
  130. paar Sachen ausprobieren, was sogar ziemlich schön umgesetzt ist.
  131. Es gibt den „TensorFlow-Playground“, das ist eine Webseite, die zu TensorFlow,
  132. dem KI-Framework von Google gehört. Auf der Webseite könnt ihr so ein
  133. bisschen Einstellungen machen, wie viele Neuronen ihr haben
  134. wollt, auf mehreren Schichten und könnt mit so ganz einfachen
  135. Minidatensätzen dann trainieren und auch sehen, wie gut das Training geklappt hat.
  136. Das haben sie sehr schön umgesetzt! Was ich euch zusätzlich empfehlen kann,
  137. ist eine Webseite namens „Hart und Trocken“, wo es diverse Visualisierungen gibt,
  138. auch eine zu neuronalen Netzen. Und da könnt ihr auch die einzelnen
  139. Parameter genau einsehen und seht also sozusagen die Matrix an Parametern,
  140. aus denen das Netz dann eigentlich besteht bzw. wo die
  141. Intelligenz dann drin steckt. Wenn ihr dann Lust gekriegt habt, wie es
  142. damit weitergeht und wollt vielleicht auch mal für ein reales Problem -
  143. so was wie handgeschriebene Ziffern erkennen - ein Netz selber trainieren,
  144. dann solltet ihr vielleicht den Kanal abonnieren! Weil wir werden nämlich hier
  145. so eine kleine Reihe von Videos veröffentlichen,
  146. wo wir auf die Installation eingehen und danach auch auf den Code, wie ihr das
  147. selber programmiert. Und deswegen abonniert vielleicht
  148. einfach, wenn ihr das nicht verpassen wollt.

Zum Nachlesen