Algorithmen für künstliche Intelligenz

Originalartikel

Backup

<html> <header class=„article-header“><h1 class=„articleheading“>Algorithmen f&#252;r k&#252;nstliche Intelligenz</h1><div class=„publish-info“>the next big thing Golo Roden</div></header><p><strong class=„manuell_vorspann“>Im Bereich der k&#252;nstlichen Intelligenz (KI) gibt es zahlreiche Algorithmen f&#252;r die verschiedensten Arten von Problemen. Welche grundlegenden Algorithmen sollte man in dem Zusammenhang einordnen k&#246;nnen?</strong></p><p>Vergangene Woche ging es um verschiedene <a href=„https://www.heise.de/developer/artikel/Grundbegriffe-der-kuenstlichen-Intelligenz-5054503.html“><strong>Grundbegriffe der k&#252;nstlichen Intelligenz [1]</strong></a>. Sie stellen die Basis dar, auf der man sich mit einigen grundlegenden Algorithmen besch&#228;ftigen kann. Selbstverst&#228;ndlich gibt es zahllose Algorithmen f&#252;r k&#252;nstliche Intelligenz, aber einige davon sind essenzieller als andere und geh&#246;ren somit eher zum elementaren Handwerkszeug.</p><p>Den Anfang macht dabei der k-Means-Algorithmus, der dazu dient, automatisiert Daten in Cluster einzuteilen, wobei lediglich die Anzahl, nicht aber die Art der Cluster vorgegeben sind. Da der Algorithmus vollst&#228;ndig autonom arbeitet, handelt es sich um einen Algorithmus, der unsupervised vorgeht.</p><p>k-Means besteht letztlich aus drei Schritten. Im ersten werden <em>k</em> Cluster erzeugt und die Daten zuf&#228;llig diesen Clustern zugewiesen. Im zweiten Schritt wird der Mittelwert f&#252;r jedes Cluster berechnet, der sogenannte „Centroid“. Im dritten Schritt werden die Daten den Clustern neu zugeordnet, sodass sie dem Centroid des jeweiligen Clusters m&#246;glichst &#228;hnlich sind. Anschlie&#223;end wird so lange iteriert, bis keine Ver&#228;nderung mehr auftritt.</p><p>Das wirkt auffallend unspektakul&#228;r und hat erschreckend wenig mit „Intelligenz“ zu tun, ist aber tats&#228;chlich einer der Algorithmen, die h&#228;ufig als Einstieg in die KI gelehrt werden. Im Prinzip handelt es sich bei k-Means um nichts anderes als eine geschickte Kombination aus Raten und Rechnen, in Verbindung mit ein bisschen Statistik. So ern&#252;chternd sich das anh&#246;rt &#8211; das ist leider der Kern von ziemlich jedem KI-Algorithmus, es schwankt lediglich die Komplexit&#228;t der Berechnungen.</p><h3 class=„subheading“>Genetische Algorithmen</h3><p>Nicht viel anders sieht es bei „genetischen Algorithmen“ aus, die h&#228;ufig zum L&#246;sen (beziehungsweise Ann&#228;hern) von Optimierungsprobleme genutzt werden. Im Prinzip wird auch hier eine anf&#228;ngliche L&#246;sung zuf&#228;llig geraten, die anschlie&#223;end iterativ verbessert wird. Dazu stehen verschiedene Ma&#223;nahmen zur Verf&#252;gung, die an die Genetik angelehnt sind.</p><p>Dazu z&#228;hlen beispielsweise die Mutation, bei der zuf&#228;llig Elemente der L&#246;sung ver&#228;ndert werden, und die Rekombination, bei der durch Mergen von verschiedenen L&#246;sungskandidaten ein neuer geformt wird. Da es h&#228;ufig bei Optimierungsproblemen schwierig ist, eine L&#246;sung absolut zu bewerten, begn&#252;gt man sich mit relativen Vergleichen: So lange die L&#246;sung durch Mutation, Rekombination &amp; Co. besser wird, bewegt man sich anscheinend in die richtige Richtung.</p><p>L&#246;sungen, die das Ergebnis wieder verschlechtern, werden in der Regel verworfen. Hier findet also eine Auslese statt. Auf dem Weg l&#228;sst sich beispielsweise eine L&#246;sung f&#252;r das TSP-Problem (Traveling Sales Person) ann&#228;hern, allerdings mit deutlich geringerem Rechenaufwand, als wenn man klassisch versuchen w&#252;rde, das Problem zu l&#246;sen.</p><h3 class=„subheading“>Neuronale Netze</h3><p>Etwas anders sieht es schlie&#223;lich bei neuronalen Netzen aus. Sie sind sozusagen das Paradebeispiel f&#252;r erfolgreiche KI-Algorithmen, da viele Entwicklungen der vergangenen Jahre auf dem Fortschritt bei neuronalen Netzen basieren. Dieser Fortschritt ist allerdings weniger der Grundlagenforschung, sondern vielmehr der schnelleren Hardware zu verdanken.</p><p>Die Grundkonzepte neuronaler Netzen sind heute n&#228;mlich immer noch die gleichen wie vor 50 Jahren &#8211; nur stehen heutzutage mit leistungsf&#228;higen GPUs extrem schnelle Chips zur Verf&#252;gung, die auf Vektor- und Matrizenrechnung spezialisiert sind, und Dinge erm&#246;glichen, von denen man vor ein paar Jahrzehnten nur zu tr&#228;umen wagte.</p><p>Prinzipiell besteht ein neuronales Netz aus Neuronen, wobei ein Neuron in dem Fall eine Funktion ist, die eine gewichtete Summe &#252;ber ihre Parameter berechnet. Die Eingabewerte liegen &#252;blicherweise zwischen 0 und 1, die gewichtete Summe kann aber gr&#246;&#223;er als 1 werden. Daher wird das Ergebnis h&#228;ufig noch normalisiert, beispielsweise mit der Sigmoid-Funktion. Durch die Gewichte lassen sich die einzelnen Summanden jeweils st&#228;rker betonen oder d&#228;mpfen.</p><p>Ordnet man solche Neuronen nun nebeneinander in einer Schicht und mehrere solcher Schichten hintereinander an und verbindet die Schichten, erh&#228;lt man ein neuronales Netz. Das Training findet supervised statt, was bedeutet, dass sich Fehler berechnen lassen. Aus den Fehlern l&#228;sst sich mit einem Vorgehen namens Back-Propagation ermitteln, wie die Gewichte angepasst werden m&#252;ssen, um den Fehler zu verringern. Auf dem Weg „lernt“ ein neuronales Netz.</p><p>Letztlich handelt es sich bei einem neuronalen Netz also um nichts anderes als eine sehr komplexe Funktion. &#220;blicherweise wird mit drei Schichten gearbeitet, einem Input-, einem Hidden- und einem Output-Layer. W&#228;hrend die Anzahl der Neuronen in der ersten und dritten Schicht durch die Form der Eingabe und der erwarteten Ausgabe feststehen, ist der Hidden-Layer variabel.</p><h3 class=„subheading“>Generative, Convolutional &amp; Co.</h3><p>Wichtig bei neuronalen Netzen ist, dass die Daten stets nur von Schicht zu Schicht, sozusagen „vorw&#228;rts“ weitergegeben werden. Daher spricht man auch von Feed-Forward-Netzen. Das muss aber nicht so sein. Es lassen sich beispielsweise Feedback-Schleifen einbauen, indem Neuronen sich selbst auf direktem oder indirektem Wege beeinflussen. In diesem Fall spricht man von Recurrent Neural Networks (RNN).</p><p>Daneben gibt es aber auch noch andere Arten neuronaler Netze, beispielsweise die Convolutional Neural Networks (CNN), die nicht nur einzelne Datenwerte, sondern auch deren Umgebung beachten. Das ist insbesondere im Bereich der Bild- und Spracherkennung sinnvoll, weshalb CNNs hier besonders h&#228;ufig zum Einsatz kommen.</p><p>Au&#223;erdem lassen sich neuronale Netze auch kombinieren, indem beispielsweise ein Netz Daten erzeugt, die von einem anderen auf G&#252;ltigkeit &#252;berpr&#252;ft werden. Auf dem Weg l&#228;sst sich Kreativit&#228;t nachahmen: Ein Netz erzeugt beispielsweise Bilder, das zweite entscheidet, ob die Bilder gewissen Kriterien entsprechen, woraus das erste Netz wiederum lernt. Man spricht hier von Generative Adversarial Networks (GAN).</p><h3 class=„subheading“>Deep Learning</h3><p>F&#252;gt man einem neuronalen Netz mehr als einen Hidden-Layer hinzu, spricht man von Deep Learning. Zun&#228;chst steigt der Rechenaufwand dadurch nat&#252;rlich enorm an, die Hoffnung ist aber, bessere Ergebnisse zu erhalten. Das kann auch tats&#228;chlich sein, allerdings wird die Frage nach der Anzahl der Neuronen in den Hidden-Layern nun schwieriger, zumal auch noch die Anzahl der Hidden-Layer an sich zu definieren ist. An der Stelle kommt daher viel Trial-and-Error zum Einsatz.</p><p>Der Ansatz kann mit den zuvor genannten Arten neuronaler Netze kombiniert werden, man spricht dann beispielsweise von Deep Convolutional Neural Networks (DCNN), was zugegebenerma&#223;en sehr hochtrabend klingt, aber eigentlich auch nichts anderes ist als das zuvor beschriebene Modell, nur mit mehr Rechenaufwand &#8211; was wiederum nur dank der heutzutage verf&#252;gbaren leistungsf&#228;higen Hardware m&#246;glich ist.</p><h3 class=„subheading“>Fazit</h3><p>Die Frage, die sich bei alldem stellt, ist: Wohin wird uns das noch bringen? Wirkliche Fortschritte im gro&#223;en Stil sind bis heute Mangelware, von einer starken KI, die dem Menschen ebenb&#252;rtig w&#228;re, ist man nach wie vor sehr weit entfernt. Die erste Ern&#252;chterung trat in den 1980er/90er-Jahren ein. Das ging so weit, dass damals vom sogenannten KI-Winter die Rede war.</p><p>All die modernen KI-Entwicklungen der vergangenen zehn Jahre sind einerseits beeindruckend, andererseits aber nicht das, was sie vorgeben zu sein, da sie eben prim&#228;r der gestiegenen Rechenleistung geschuldet sind. Es bleibt abzuwarten, wie lange das noch funktioniert, und wann der zweite KI-Winter einsetzt. Dass er kommen wird, steht fest &#8211; die Frage ist nur, wann.</p><hr /><p><strong>URL dieses Artikels:</strong><br /><small><code>https://www.heise.de/-5057766</code></small></p><p><strong>Links in diesem Artikel:</strong><br /><small><code><strong>[1]</strong>&#160;https://www.heise.de/developer/artikel/Grundbegriffe-der-kuenstlichen-Intelligenz-5054503.html</code></small><br /></p><p class=„printversioncopyright“><em>Copyright &#169; 2021 Heise Medien</em></p> </html>