Deep Learning: Wie funktioniert es? Teil 1

In diesem Artikel lernen Sie





-Was ist die Essenz des tiefen Lernens -Was sind



Aktivierungsfunktionen für



-Was ist FCNN



-Was Aufgaben kann FCNN lösen -Was



sind die Nachteile von FCNN und wie man damit umgeht




Kleine Einführung



Dies ist der Beginn einer Reihe von Artikeln darüber, welche Aufgaben in DL, Netzwerke, Architekturen, Arbeitsprinzipien, wie bestimmte Aufgaben gelöst werden und warum eine besser ist als die andere.



Welche vorbereitenden Fähigkeiten sind erforderlich, um alles zu verstehen? Es ist schwer zu sagen, aber wenn Sie wissen, wie man googelt oder Fragen richtig stellt, dann werden Ihnen meine Artikelserien sicher viel helfen, dies zu verstehen.



Was bringt tiefes Lernen?



Die Quintessenz besteht darin, einen Algorithmus zu erstellen, der X als Eingabe verwendet und Y vorhersagt. Wenn wir den Euklid-Algorithmus zum Finden von GCD schreiben, schreiben wir nur Zyklen, Bedingungen, Zuweisungen und das ist alles - wir wissen, wie man einen solchen Algorithmus erstellt. Und wie kann man einen Algorithmus erstellen, der ein Bild als Eingabe verwendet und einen Hund oder eine Katze sagt? Oder gar nichts? Und der Algorithmus, an dessen Eingabe wir den Text einreichen und wissen wollen - welches Genre ist das? Es ist so einfach, Zyklen und Bedingungen mit Stiften zu schreiben - hier helfen neuronale Netze, tiefes Lernen und all diese Schlagworte.



Formaler und ein wenig über Aktivierungsfunktionen



Formal wollen wir eine Funktion aus einer Funktion aus einer Funktion bauen ... aus dem Eingabeparameter X und den Gewichten unseres Netzwerks W, was uns ein Ergebnis liefern würde. Es ist wichtig anzumerken, dass wir nicht einfach viele lineare Funktionen übernehmen können, da Überlagerung linearer Funktionen - lineare Funktion. Dann ist jedes tiefe Netzwerk analog zu einem Netzwerk mit zwei Schichten (Eingabe und Ausgabe). Warum brauchen wir Nichtlinearität? Unsere Parameter, deren Vorhersage wir lernen möchten, hängen möglicherweise nicht linear von den Eingabedaten ab. Nichtlinearität wird erreicht, indem auf jeder Schicht unterschiedliche Aktivierungsfunktionen verwendet werden.



Vollständig verbundene neuronale Netze (FCNN)



Nur ein vollständig verbundenes neuronales Netzwerk. Es sieht ungefähr so ​​aus:



Bild



Unter dem Strich ist jedes Neuron einer Schicht mit jedem Neuron der nächsten und der vorherigen (falls vorhanden) verbunden.



Die erste Schicht ist der Eingang. Wenn wir beispielsweise ein 256x256x3-Bild in die Eingabe eines solchen Netzwerks einspeisen möchten, benötigen wir genau 256x256x3 Neuronen in der Eingabeschicht (jedes Neuron empfängt 1 Komponente (R, G oder B) eines Pixels). Wenn wir die Größe einer Person, ihr Gewicht und 23 weitere Merkmale anzeigen möchten, benötigen wir 25 Neuronen in der Eingabeebene. Die Anzahl der Neuronen am Ausgang - die Anzahl der Merkmale, die wir vorhersagen möchten. Es kann entweder 1 Feature oder alle 100 sein. Im Allgemeinen können Sie anhand der Ausgabeschicht des Netzwerks mit ziemlicher Sicherheit sagen, welches Problem es löst.



Jede Verbindung zwischen Neuronen ist ein Gewicht, das durch den Backpropagation-Algorithmus trainiert wird, über den ich hier geschrieben habe .



Welche Aufgaben kann FCNN lösen?



-Regressionsproblem . Zum Beispiel die Vorhersage des Werts eines Geschäfts anhand einiger Eingabekriterien wie Land, Stadt, Straße, Verkehr usw.



-Problem der Klassifizierung . Der Klassiker ist beispielsweise die MNIST-Klassifizierung.



-Ich werde mich nicht verpflichten, über die Aufgabe der Segmentierung und Objekterkennung mit FCNN zu sprechen. Vielleicht wird jemand in den Kommentaren teilen :)



Nachteile von FCNN



  1. Die Neuronen einer Schicht haben keine "gemeinsamen" Informationen (alle Gewichte im Netzwerk sind eindeutig).
  2. Eine große Anzahl trainierter Parameter (Gewichte), wenn wir das Netzwerk in Fotos trainieren wollen.


Was tun gegen diese Nachteile? Convolutional Neural Networks (CNN) ist in Ordnung. Dies wird mein nächster Artikel sein.



Fazit



Ich sehe nicht viel Sinn darin, sehr lange in vollständig verbundenen neuronalen Netzen zu verweilen. Wenn jemand an der Implementierung solcher Netzwerke interessiert ist, können Sie hier meine Implementierung sehen und lesen.



All Articles