Warum interessieren sich NLP- und Machine Learning-Communities für Deep Learning?

24

Ich hoffe, Sie können mir helfen, da ich einige Fragen zu diesem Thema habe. Ich bin neu auf dem Gebiet des tiefen Lernens und während ich einige Tutorials gemacht habe, kann ich Konzepte nicht miteinander in Beziehung setzen oder voneinander unterscheiden.

user3352632
quelle
8
Grundsätzlich, weil sie hochmoderne Ergebnisse liefern und das Feature-Engineering überflüssig machen.
Emre
2
Ich würde vorschlagen, NLP und ML in einem solchen Kontext nicht zusammen zu verwenden, als wären sie vergleichbare Einheiten. Sie sind meiner Meinung nach zwei deutlich getrennte Felder. Trotz der Tatsache, dass NLP viele ML-Ansätze, Methoden, Algorithmen und Werkzeuge verwendet, ist NLP ein angewandtes Feld, während ML ein (allgemeineres) Feld ist.
Aleksandr Blekh

Antworten:

27

Warum tiefe Netzwerke nutzen?

Versuchen wir zunächst, eine sehr einfache Klassifikationsaufgabe zu lösen. Angenommen, Sie moderieren ein Webforum, das manchmal mit Spam-Nachrichten überflutet ist. Diese Nachrichten sind leicht zu identifizieren - meistens enthalten sie bestimmte Wörter wie "buy", "porn" usw. und eine URL zu externen Ressourcen. Sie möchten einen Filter erstellen, der Sie auf solche verdächtigen Nachrichten hinweist. Es wird ziemlich einfach - Sie erhalten eine Liste von Funktionen (z. B. Liste verdächtiger Wörter und Vorhandensein einer URL) und trainieren eine einfache logistische Regression (auch bekannt als Perzeptron), dh Modell wie:

g(w0 + w1*x1 + w2*x2 + ... + wnxn)

Wo x1..xnsind Ihre Merkmale (entweder Vorhandensein eines bestimmten Wortes oder einer URL)? w0..wn- Gelernte Koeffizienten und g()eine logistische Funktion , um ein Ergebnis zwischen 0 und 1 zu erhalten lineare Entscheidungsgrenze. Angenommen, Sie haben nur zwei Features verwendet, sieht diese Grenze möglicherweise folgendermaßen aus:

lineare Grenze

Hier stellen 2 Achsen Merkmale dar (z. B. Anzahl der Vorkommen eines bestimmten Wortes in einer Nachricht, normalisiert um Null), rote Punkte bleiben für Spam und blaue Punkte - für normale Nachrichten, während die schwarze Linie die Trennlinie darstellt.

Aber bald merkt man, dass einige gute Nachrichten viele Vorkommen des Wortes "buy" enthalten, aber keine URLs oder ausführliche Diskussionen über die Erkennung von Pornos , die sich nicht wirklich auf Pornofilme beziehen. Eine lineare Entscheidungsgrenze kann mit solchen Situationen einfach nicht umgehen. Stattdessen brauchst du so etwas:

nichtlineare Grenze

Diese neue nichtlineare Entscheidungsgrenze ist viel flexibler , dh sie kann die Daten viel genauer anpassen. Es gibt viele Möglichkeiten, diese Nichtlinearität zu erreichen - Sie können Polynommerkmale (z. B. x1^2) oder deren Kombination (z. B. x1*x2) verwenden oder wie bei Kernel-Methoden auf eine höhere Dimension projizieren . In neuronalen Netzen ist es jedoch üblich, sie durch Kombinieren von Perzeptronen oder mit anderen Worten durch Bilden von mehrschichtigen Perzeptronen zu lösen. Die Nichtlinearität ergibt sich hier aus der logistischen Funktion zwischen den Schichten. Je mehr Schichten, desto ausgefeiltere Muster können von MLP abgedeckt werden. Eine einzelne Schicht (Perceptron) kann einfache Spam-Erkennung durchführen, ein Netzwerk mit 2 bis 3 Schichten kann schwierige Kombinationen von Funktionen erkennen, und Netzwerke mit 5 bis 9 Schichten, die von großen Forschungslabors und Unternehmen wie Google verwendet werden, können die gesamte Sprache modellieren oder Katzen erkennen auf Bildern.

Dies ist ein wesentlicher Grund für tiefe Architekturen - sie können komplexere Muster modellieren .

Warum sind tiefe Netzwerke schwer zu trainieren?

Mit nur einem Merkmal und einer linearen Entscheidungsgrenze ist es in der Tat ausreichend, nur zwei Trainingsbeispiele zu haben - ein positives und ein negatives. Mit mehreren Funktionen und / oder nichtlineare Entscheidungsgrenze müssen Sie mehrere Aufträge mehr Beispiele , alle möglichen Fälle abzudecken (zB braucht man nicht nur Beispiele finden mit word1, word2und word3, aber auch mit allen möglichen deren Kombinationen). Und im wirklichen Leben müssen Sie sich mit Hunderten und Tausenden von Merkmalen (z. B. Wörtern in einer Sprache oder Pixeln in einem Bild) und mindestens mehreren Ebenen befassen, um eine ausreichende Nichtlinearität zu erreichen. Die Größe eines Datensatzes, der zum vollständigen Trainieren solcher Netzwerke benötigt wird, übersteigt leicht 10 ^ 30 Beispiele, sodass es absolut unmöglich ist, genügend Daten abzurufen. Mit anderen Worten, mit vielen Funktionen und vielen Ebenen wird unsere Entscheidungsfunktion zu flexibelum es genau lernen zu können .

Es gibt jedoch Möglichkeiten, dies ungefähr zu lernen . Wenn wir zum Beispiel in probabilistischen Umgebungen arbeiten, könnten wir anstelle des Lernens von Frequenzen aller Kombinationen aller Merkmale davon ausgehen, dass sie unabhängig sind und nur einzelne Frequenzen lernen, was den vollständigen und nicht eingeschränkten Bayes-Klassifikator auf einen naiven Bayes reduziert und somit viel erfordert. viel weniger Daten zu lernen.

In neuronalen Netzen gab es mehrere Versuche, die Komplexität (Flexibilität) der Entscheidungsfunktion (sinnvoll) zu reduzieren. Beispielsweise setzen Faltungsnetzwerke, die häufig in der Bildklassifizierung verwendet werden, nur lokale Verbindungen zwischen nahegelegenen Pixeln voraus und versuchen daher, nur Kombinationen von Pixeln in kleinen "Fenstern" (z. B. 16 × 16 Pixel = 256 Eingangsneuronen) zu lernen, im Gegensatz zu Vollbildern (z. B. 100 x 100 Pixel = 10000 Eingangsneuronen). Andere Ansätze umfassen Feature-Engineering, dh die Suche nach bestimmten, von Menschen entdeckten Deskriptoren von Eingabedaten.

Manuell entdeckte Features sind tatsächlich sehr vielversprechend. In der Verarbeitung natürlicher Sprachen ist es beispielsweise manchmal hilfreich, spezielle Wörterbücher (z. B. mit spamspezifischen Wörtern) zu verwenden oder die Verneinung abzufangen (z. B. " nicht gut"). Und in der Bildverarbeitung sind Dinge wie SURF-Deskriptoren oder Haar-ähnliche Merkmale fast unersetzlich.

Das Problem beim manuellen Feature-Engineering ist jedoch, dass es buchstäblich Jahre dauert, bis gute Deskriptoren vorliegen. Darüber hinaus sind diese Merkmale häufig spezifisch

Unbeaufsichtigtes Pretraining

Es stellt sich jedoch heraus, dass wir mithilfe von Algorithmen wie Autoencodern und eingeschränkten Boltzmann-Maschinen automatisch gute Funktionen direkt aus den Daten erhalten können . Ich habe sie in meiner anderen Antwort ausführlich beschrieben , aber kurz gesagt, sie ermöglichen es , wiederholte Muster in den Eingabedaten zu finden und sie in übergeordnete Features umzuwandeln. Wenn diese Algorithmen beispielsweise nur Zeilenpixelwerte als Eingabe verwenden, können sie höhere ganze Kanten identifizieren und durchlaufen und dann aus diesen Kanten Zahlen usw. konstruieren, bis Sie wirklich übergeordnete Deskriptoren wie Variationen in Gesichtern erhalten.

tiefes Lernen

Nach einer solchen (unbeaufsichtigten) Vorschulung wird das Netzwerk in der Regel in MLP umgewandelt und für ein normales beaufsichtigtes Training verwendet. Beachten Sie, dass das Vorlernen schichtweise erfolgt. Dies reduziert den Lösungsraum für den Lernalgorithmus erheblich (und damit die Anzahl der benötigten Trainingsbeispiele), da nur die Parameter in jeder Ebene ohne Berücksichtigung anderer Ebenen gelernt werden müssen.

Und darüber hinaus...

Unbeaufsichtigtes Pretraining gibt es schon seit einiger Zeit. In letzter Zeit wurde jedoch festgestellt, dass andere Algorithmen das Lernen sowohl zusammen mit als auch ohne Pretraining verbessern. Ein bemerkenswertes Beispiel für solche Algorithmen ist die Dropout- einfache Technik, bei der einige Neuronen während des Trainings zufällig "herausfallen", eine gewisse Verzerrung erzeugt und Netzwerke daran gehindert werden, Daten zu genau zu folgen. Dies ist immer noch ein heißes Forschungsthema, daher überlasse ich dies einem Leser.

freund
quelle
3
Eine schöne Erklärung dafür ist!
Dawny33
6

Zuerst müssen wir verstehen, warum wir Deep Learning brauchen. Für den Bau von Modellen benötigt ML Testdaten mit Labels (überwacht oder unbeaufsichtigt). In vielen Bereichen ist es schwierig, die Daten mit Beschriftungen zu pflegen, wenn die Daten wachsen. Deep Learning-Netzwerke benötigen keine beschrifteten Daten. Die Deep-Learning-Algorithmen können die Bezeichnungen ermitteln. Daher müssen Domänenexperten keine Bezeichnungen für die Daten herausgeben, was in den Bereichen Spracherkennung, Computersicht und Sprachverständnis von großer Bedeutung ist. Die Google Cat-Bilderkennung ist ein sehr interessantes Experiment. Interessant ist auch "Geoffrey hinton", der Professor, der von Google engagiert wurde.

http://www.wired.com/2014/01/geoffrey-hinton-deep-learning/

Möglicherweise erhalten Sie weitere Einblicke, wenn Sie in diesem Rahmen nachforschen.

i5Vemula
quelle
1
Deep Learning kann die Bezeichnungen nicht herausfinden (wie könnte es sein?), Sondern nur Funktionen lernen. Zum Lösen von Aufgaben wie Klassifizierung oder Regression benötigen Sie noch eine gewisse Menge an beschrifteten Daten und überwachtes Lernen.
Freund
0

Deep Learning gibt es schon lange. CNN, RNN, Boltzmann Maschinen sehen zwar aus wie neue Techniken, wurden aber schon vor langer Zeit entwickelt. Überprüfen Sie die Geschichte des tiefen Lernens

https://en.wikipedia.org/wiki/Deep_learning#History

Das Wiederaufleben von Deep Learning ist auf die Tatsache zurückzuführen, dass die Rechenleistung seit dieser Zeit exponentiell zugenommen hat. Mit einem mit GPUs ausgestatteten Laptop können Sie ein komplexes Deep-Learning-Modell trainieren. Deep-Learning-Modelle sind auch empirisch sehr effizient. Aktueller Stand der Technik in den Bereichen Bilder, Sprache und vielen Bereichen sind Deep Learning-Modelle.

Ich glaube, dass aufgrund dieser Faktoren viele NLP / ML-Communitys ihren Fokus auf Deep Learning verlagert haben.

SHASHANK GUPTA
quelle