Ich bin etwas verwirrt über den Unterschied zwischen den Begriffen "Maschinelles Lernen" und "Deep Learning". Ich habe es gegoogelt und viele Artikel gelesen, aber es ist mir immer noch nicht sehr klar.
Eine bekannte Definition von maschinellem Lernen von Tom Mitchell ist:
Ein Computerprogramm soll aus der Erfahrung E in Bezug auf eine Klasse von Aufgaben T und das Leistungsmaß P lernen , wenn sich seine Leistung bei Aufgaben in T , gemessen durch P , mit der Erfahrung E verbessert .
Wenn ich ein Bildklassifizierungsproblem beim Klassifizieren von Hunden und Katzen als mein T nehme , verstehe ich aus dieser Definition, dass der ML-Algorithmus lernen könnte , wenn ich einem ML-Algorithmus eine Reihe von Bildern von Hunden und Katzen geben würde (Erfahrung E ) Unterscheiden Sie ein neues Bild entweder als Hund oder als Katze (vorausgesetzt, das Leistungsmaß P ist genau definiert).
Dann kommt Deep Learning. Ich verstehe, dass Deep Learning Teil des maschinellen Lernens ist und dass die obige Definition gilt. Die Leistung bei der Task T verbessert mit Erfahrung E . Alles in Ordnung bis jetzt.
Dieser Blog gibt an, dass es einen Unterschied zwischen maschinellem Lernen und tiefem Lernen gibt. Der Unterschied nach Adil besteht darin, dass beim (traditionellen) maschinellen Lernen die Funktionen von Hand gefertigt werden müssen, während beim Deep Learning die Funktionen gelernt werden. Die folgenden Abbildungen verdeutlichen seine Aussage.
Ich bin verwirrt darüber, dass beim (traditionellen) maschinellen Lernen die Funktionen von Hand gefertigt werden müssen. Aus der obigen Definition von Tom Mitchell würde ich denken, dass diese Merkmale aus Erfahrung E und Leistung P gelernt werden würden . Was könnte man sonst im maschinellen Lernen lernen?
In Deep Learning verstehe ich, dass Sie aus Erfahrung die Funktionen und ihre Beziehung zueinander lernen, um die Leistung zu verbessern. Könnte ich daraus schließen, dass beim maschinellen Lernen Funktionen von Hand hergestellt werden müssen und was gelernt wird, ist die Kombination von Funktionen? Oder fehlt mir noch etwas?
quelle
Antworten:
Zusätzlich zu dem, was Himanshu Rai sagte, ist Deep Learning ein Teilfeld, in dem neuronale Netze verwendet werden. Diese neuronalen Netze versuchen, die zugrunde liegende Verteilung zu lernen, indem sie die Gewichte zwischen den Schichten modifizieren. Betrachten Sie nun den Fall der Bilderkennung mithilfe von Deep Learning: Ein neuronales Netzwerkmodell wird auf Ebenen aufgeteilt. Diese Ebenen sind durch Verknüpfungen verbunden, die als Gewichte bezeichnet werden. Zu Beginn des Trainingsprozesses passen diese Ebenen die Gewichte so an, dass jede Ebene versucht, ein Merkmal zu erkennen Der wichtigste zu beachtende Punkt ist, dass wir die Ebene nicht explizit anweisen, Kanten, Augen, Nase oder Gesichter zu erkennen. Das Modell lernt dies selbst. Im Gegensatz zu klassischen Modellen für maschinelles Lernen.
quelle
Als Forschungsgebiet ist Deep Learning eigentlich nur ein Teilbereich des maschinellen Lernens, da maschinelles Lernen ein Teilbereich der künstlichen Intelligenz ist.
1) Unüberwachtes Lernen von Funktionen
Konzeptionell ist der erste Hauptunterschied zwischen " traditionellem " (oder " flachem ") maschinellem Lernen und tiefem Lernen das unbeaufsichtigte Feature-Lernen.
Wie Sie bereits wissen, ist ein erfolgreiches Training eines " traditionellen " Modells für maschinelles Lernen (z. B. SVM, XGBoost ...) nur nach geeigneter Vorverarbeitung und sorgfältiger Merkmalsextraktion möglich, um aussagekräftige Informationen aus den Daten auszuwählen. Das heißt, gute Merkmalsvektoren enthalten Merkmale, die zwischen Datenpunkten mit unterschiedlichen Beschriftungen unterscheiden und zwischen Datenpunkten mit derselben Beschriftung konsistent sind. Feature Engineering ist somit der Prozess der manuellen Merkmalsauswahl durch Experten. Dies ist eine sehr wichtige, aber langwierige Aufgabe!
Unüberwachtes Feature-Lernen ist ein Prozess, bei dem das Modell selbst Features automatisch durch Training auswählt. Die Topologie eines neuronalen Netzwerks, das in miteinander verbundenen Schichten organisiert ist, hat die nette Eigenschaft, eine Darstellung der Daten auf niedriger Ebene einer Darstellung auf höherer Ebene zuzuordnen. Durch Training kann das Netzwerk somit " entscheiden ", welcher Teil der Daten wichtig ist und welcher Teil der Daten nicht. Dies ist besonders interessant in der Bildverarbeitung oder in der Verarbeitung natürlicher Sprache, wo es ziemlich schwierig ist, robuste Funktionen manuell auszuwählen oder zu entwickeln.
(Bildnachweis: Tony Beltramelli)
Nehmen wir als Beispiel an, wir möchten Katzenbilder klassifizieren. Mit einem Deep Neural Net können wir die Rohpixelwerte einspeisen, die von der ersten Ebene einer Reihe von Gewichten zugeordnet werden. Diese Gewichte werden dann von der zweiten Ebene anderen Gewichten zugeordnet, bis die letzte Ebene einige Gewichte zulässt auf Zahlen abgebildet werden, die Ihr Problem darstellen. (Beispiel: in diesem Fall die Wahrscheinlichkeit, dass das Bild eine Katze enthält)
Obwohl Deep Neural Networks unbeaufsichtigtes Feature-Learning durchführen kann, hindert es Sie nicht daran, Feature Engineering selbst durchzuführen, um Ihr Problem besser darzustellen. Unüberwachtes Feature-Learning, Feature-Extraktion und Feature-Engineering schließen sich nicht gegenseitig aus!
Quellen:
2) Lineare Trennbarkeit
Tiefe neuronale Netze können einige nicht linear trennbare Probleme lösen, indem der Merkmalsraum so gebogen wird, dass Merkmale linear trennbar werden. Dies ist wiederum möglich dank der Netzwerktopologie, die in Schichten organisiert ist, die Eingaben neuen Darstellungen der Daten zuordnen.
(Bildnachweis: Christopher Olah)
Quellen: http://colah.github.io/posts/2014-03-NN-Manifolds-Topology/
3) Statistische Invarianz
Schließlich übertreffen tiefe neuronale Netze in einigen Bereichen die traditionellen Algorithmen für maschinelles Lernen, da einige Architekturen statistische Invarianz aufweisen (z. B. räumliche statistische Invarianz mit Faltungs-Neuronalen Netzen und zeitliche statistische Invarianz mit wiederkehrenden neuronalen Netzen).
Weitere Informationen finden Sie in diesem Udacity-Video: https://www.youtube.com/watch?v=5PH2Vot-tD4
quelle
Inspiriert von Einstein: "Wenn Sie es einem Sechsjährigen nicht erklären können, verstehen Sie es selbst nicht."
Alle oben genannten Antworten sind sehr gut erklärt, aber wenn man nach einem leicht zu merkenden, abstrakten Unterschied sucht, ist hier die beste, die ich kenne:
Quelle. Natürlich steckt noch viel mehr dahinter, aber für Anfänger kann es viel zu verwirrend werden.
quelle
Okay, denk so darüber nach. In Algorithmen für maschinelles Lernen, wie z. B. lineare Regression oder zufällige Gesamtstruktur, geben Sie den Algorithmen eine Reihe von Merkmalen und das Ziel und versuchen dann, die Kostenfunktion zu minimieren, sodass keine neuen Merkmale erlernt werden, sondern nur die Gewichte. Wenn Sie nun zu tiefem Lernen kommen, haben Sie mindestens eine (fast immer mehr) verborgene Ebene mit einer festgelegten Anzahl von Einheiten. Dies sind die Funktionen, über die gesprochen wird. Ein Deep-Learning-Algorithmus lernt also nicht nur die Gewichtungssätze, sondern auch die Werte für versteckte Einheiten, die komplexe Merkmale der von Ihnen angegebenen trivialen Daten auf hoher Ebene sind. Während Sie Vanilla Machine Learning üben, liegt viel Fachwissen in Ihrer Fähigkeit, Funktionen zu entwickeln, da der Algorithmus nicht von selbst lernt. Ich hoffe ich habe deine Frage beantwortet.
quelle