Was ist maschinelles Lernen? [geschlossen]

93
  • Was ist maschinelles Lernen ?
  • Was ist maschinelles Lernen Code tun?
  • Wenn wir sagen, dass die Maschine lernt, ändert sie den Code von sich selbst oder ändert sie den Verlauf (Datenbank), der die Erfahrung von Code für bestimmte Eingaben enthält?
Kushal Waikar
quelle

Antworten:

146

Was ist maschinelles Lernen?

Im Wesentlichen handelt es sich um eine Methode, mit der Computern beigebracht wird, anhand einiger Daten Vorhersagen oder Verhaltensweisen zu treffen und zu verbessern. Was sind diese "Daten"? Nun, das hängt ganz vom Problem ab. Dies können Messwerte von den Sensoren eines Roboters sein, wenn dieser das Laufen lernt, oder die korrekte Ausgabe eines Programms für bestimmte Eingaben.

Eine andere Möglichkeit, über maschinelles Lernen nachzudenken, besteht darin, dass es sich um "Mustererkennung" handelt - das Unterrichten eines Programms, um auf Muster zu reagieren oder diese zu erkennen.

Was macht maschinelles Lernen?

Hängt von der Art des maschinellen Lernens ab, von dem Sie sprechen. Maschinelles Lernen ist ein riesiges Feld mit Hunderten verschiedener Algorithmen zur Lösung unzähliger verschiedener Probleme. Weitere Informationen finden Sie in Wikipedia . Schauen Sie sich insbesondere die Algorithmus-Typen an .

Wenn wir sagen, dass die Maschine lernt, ändert sie den Code von sich selbst oder den Verlauf (Datenbank), der die Erfahrung des Codes für bestimmte Eingaben enthält?

Es kommt wieder darauf an .

Ein Beispiel für Code, der tatsächlich geändert wird, ist die genetische Programmierung , bei der Sie im Wesentlichen ein Programm entwickeln, um eine Aufgabe zu erledigen (natürlich ändert sich das Programm nicht selbst - aber es ändert ein anderes Computerprogramm).

Neuronale Netze hingegen ändern ihre Parameter automatisch als Reaktion auf vorbereitete Reize und erwartete Reaktionen. Dies ermöglicht es ihnen, viele Verhaltensweisen zu erzeugen (theoretisch können sie jedes Verhalten erzeugen, da sie jede Funktion bei ausreichender Zeit mit beliebiger Genauigkeit approximieren können).


Ich sollte beachten, dass Ihre Verwendung des Begriffs "Datenbank" impliziert, dass Algorithmen für maschinelles Lernen funktionieren, indem Informationen, Ereignisse oder Erfahrungen "gespeichert" werden. Dies ist nicht unbedingt (oder sogar oft!) Der Fall.

Neuronale Netze, die ich bereits erwähnt habe, behalten nur den aktuellen "Zustand" der Approximation bei, der beim Lernen aktualisiert wird. Anstatt sich daran zu erinnern, was passiert ist und wie man darauf reagiert, bauen neuronale Netze eine Art "Modell" ihrer "Welt" auf. Das Modell sagt ihnen, wie sie auf bestimmte Eingaben reagieren sollen, auch wenn die Eingaben etwas sind, was es noch nie zuvor gesehen hat.

Diese letzte Fähigkeit - die Fähigkeit, auf Eingaben zu reagieren, die noch nie zuvor gesehen wurden - ist einer der Grundpfeiler vieler Algorithmen für maschinelles Lernen. Stellen Sie sich vor, Sie möchten einem Computerfahrer das Navigieren auf Autobahnen im Verkehr beibringen. Mit Ihrer "Datenbank" -Metapher müssten Sie dem Computer genau beibringen, was in Millionen möglicher Situationen zu tun ist . Ein effektiver Algorithmus für maschinelles Lernen könnte (hoffentlich!) Ähnlichkeiten zwischen verschiedenen Zuständen lernen und auf ähnliche Weise darauf reagieren.

Die Ähnlichkeiten zwischen Staaten können alles sein - sogar Dinge, die wir als "banal" betrachten, können einen Computer wirklich auslösen! Nehmen wir zum Beispiel an, der Computerfahrer hat gelernt, dass ein Auto davor langsamer werden muss, wenn es langsamer wird. Für einen Menschen ändert das Ersetzen des Autos durch ein Motorrad nichts - wir erkennen, dass das Motorrad auch ein Fahrzeug ist. Für einen Algorithmus für maschinelles Lernen kann dies tatsächlich überraschend schwierig sein! Eine Datenbank müsste Informationen über den Fall, in dem sich ein Auto vor und ein Motorrad vor ihnen befindet, separat speichern. Ein maschineller Lernalgorithmus hingegen würde aus dem Fahrzeugbeispiel "lernen" und in der Lage sein, automatisch auf das Motorradbeispiel zu verallgemeinern.

Daniel G.
quelle
3
Ihre Erklärungen sind wirklich sehr wertvoll und bemerkenswert. Können Sie bitte das Beispiel eines "Computer" -Treibers ausführlich erläutern (in Bezug auf Ihre Aussage "Ähnlichkeiten zwischen verschiedenen Zuständen lernen")?
Kushal Waikar
3
Exzellentes Beispiel. Ich schätze Ihre Bemühungen um Erklärung. Danke vielmals !
Kushal Waikar
1
Warum 'KNN' oder 'K' bedeutet, fällt unter maschinelles Lernen. Kannst du bitte erklären. Vielen Dank
Sunku Vamsi Tharun Kumar
23

Maschinelles Lernen ist ein Bereich der Informatik, Wahrscheinlichkeitstheorie und Optimierungstheorie, in dem komplexe Aufgaben gelöst werden können, für die ein logischer / prozeduraler Ansatz nicht möglich oder machbar wäre.

Es gibt verschiedene Kategorien des maschinellen Lernens, einschließlich (aber nicht beschränkt auf):

  • Überwachtes Lernen
  • Verstärkungslernen

Überwachtes Lernen
Beim überwachten Lernen haben Sie eine wirklich komplexe Funktion (Zuordnung) von Eingaben zu Ausgaben, Sie haben viele Beispiele für Eingabe / Ausgabe-Paare, aber Sie wissen nicht, was diese komplizierte Funktion ist. Ein überwachter Lernalgorithmus ermöglicht es bei einem großen Datensatz von Eingabe- / Ausgabepaaren, den Ausgabewert für einen neuen Eingabewert vorherzusagen, den Sie möglicherweise noch nicht gesehen haben. Die grundlegende Methode besteht darin, dass Sie den Datensatz in einen Trainingssatz und einen Testsatz aufteilen. Sie haben ein Modell mit einer zugehörigen Fehlerfunktion, das Sie über den Trainingssatz hinweg zu minimieren versuchen, und stellen dann sicher, dass Ihre Lösung auf dem Testsatz funktioniert. Wenn Sie dies mit verschiedenen Algorithmen und / oder Parametern für maschinelles Lernen wiederholt haben, bis das Modell auf dem Testsatz eine recht gute Leistung erbringt, können Sie versuchen, das Ergebnis für neue Eingaben zu verwenden. Beachten Sie, dass sich in diesem Fall das Programm nicht ändert, sondern nur das Modell (die Daten). Man könnte zwar theoretisch ein anderes Programm ausgeben, aber das wird meines Wissens in der Praxis nicht gemacht. Ein Beispiel für überwachtes Lernen wäre das von der Post verwendete Ziffernerkennungssystem, bei dem die Pixel den Beschriftungen in der Gruppe 0 ... 9 zugeordnet werden, wobei eine große Anzahl von Bildern von Ziffern verwendet wird, die von Hand als 0 gekennzeichnet wurden ... 9.

Verstärkungslernen
Beim verstärkten Lernen ist das Programm für das Treffen von Entscheidungen verantwortlich und erhält regelmäßig eine Auszeichnung / einen Nutzen für seine Aktionen. Anders als im Fall des überwachten Lernens sind die Ergebnisse jedoch nicht unmittelbar. Der Algorithmus könnte eine große Folge von Aktionen vorschreiben und erst ganz am Ende eine Rückmeldung erhalten. Beim Bestärkungslernen besteht das Ziel darin, ein gutes Modell aufzubauen, sodass der Algorithmus die Folge von Entscheidungen generiert, die langfristig zum höchsten Nutzen / zur höchsten Belohnung führen. Ein gutes Beispiel für das Erlernen von Verstärkung ist das Erlernen des Navigierens, indem eine negative Strafe verhängt wird, wenn sein Stoßsensor feststellt, dass er gegen ein Objekt gestoßen ist. Bei korrekter Codierung kann der Roboter möglicherweise seine Entfernungsmesser-Sensordaten mit seinen Stoßfängersensordaten und den Richtungen, die an die Räder gesendet werden, korrelieren.

Weitere Informationen
Wenn Sie mehr erfahren möchten, empfehle ich Ihnen dringend, Mustererkennung und maschinelles Lernen von Christopher M. Bishop zu lesen oder an einem Kurs für maschinelles Lernen teilzunehmen. Möglicherweise möchten Sie auch die Vorlesungsunterlagen aus CIS 520: Maschinelles Lernen bei Penn kostenlos lesen .

Michael Aaron Safyan
quelle
2
Sie erwähnten "... ein logischer / prozeduraler Ansatz wäre nicht möglich oder machbar." Könnten Sie dies bitte anhand von Beispielen erläutern? Danke dir.
LionHeart
@ LionHeart, ein gutes Beispiel ist die Zeichenerkennung. Sie könnten versuchen, einen Algorithmus zu codieren, der verschiedene Kurven, Linien und andere Merkmale der verschiedenen Zeichen erkennt, aber wenn es darauf ankommt, ist das eine sehr schwierige Aufgabe, und ML löst sie ganz einfach.
Michael Aaron Safyan
12

Maschinelles Lernen ist eine Methode, um ein Modell basierend auf Beispieldaten zu erstellen und das Modell zu verwenden, um eine Vorhersage oder Strategie zu erstellen. Es gehört zur künstlichen Intelligenz.

zs2020
quelle
11
  • Maschinelles Lernen ist eine wissenschaftliche Disziplin, die sich mit dem Entwurf und der Entwicklung von Algorithmen befasst, mit denen Computer Verhaltensweisen entwickeln können, die auf empirischen Daten basieren, z. B. aus Sensordaten oder Datenbanken. Lesen Sie mehr auf Wikipedia

  • Der Code für maschinelles Lernen zeichnet "Fakten" oder Annäherungen in einer Art Speicher auf und berechnet mit den Algorithmen verschiedene Wahrscheinlichkeiten.

  • Der Code selbst wird nicht geändert, wenn eine Maschine lernt, sondern nur die Datenbank dessen, was "sie weiß".

Espo
quelle
Für maschinelles Lernen ist keine Datenbank erforderlich. Es werden auch nicht immer "Fakten" aufgezeichnet. Einige Dinge sind Vermutungen. Einige Dinge sind Annäherungen. Nicht alles, was eine Maschine lernt, kann als Tatsache angesehen werden.
Kevin Crowell
2
Sie beschränken Ihre Antwort immer noch auf eine bestimmte Region des maschinellen Lernens. Fakten oder Annäherungen werden nicht immer aufgezeichnet. Dinge können erlebt, reagiert und vergessen werden. "Speicher" ist kein Grundnahrungsmittel des maschinellen Lernens. Es kann verwendet werden, ist aber keine Notwendigkeit.
Kevin Crowell
4
Wenn das maschinelle Lernprogramm die gelernten Daten speichern würde, hätte es keinen Sinn, das Programm zu haben ... wir würden nur die Daten selbst abfragen. Die meisten ML-Programme erstellen nur ein Modell der Daten, da ein Datensatz sehr groß sein kann (mehrere GB) und wir möchten, dass das Programm Vorhersagekraft über unsichtbare Datensätze hat. Es gibt fast keinen Grund für ein ML-Programm, Daten zu speichern.
Kiril
11

Maschinelles Lernen ist einfach ein Oberbegriff, um eine Vielzahl von Lernalgorithmen zu definieren, die quasi aus Beispielen lernen (unbeschriftet / beschriftet). Die tatsächliche Genauigkeit / der tatsächliche Fehler wird vollständig von der Qualität der Trainings- / Testdaten bestimmt, die Sie Ihrem Lernalgorithmus zur Verfügung stellen. Dies kann unter Verwendung einer Konvergenzrate gemessen werden. Der Grund, warum Sie Beispiele angeben, liegt darin, dass Sie möchten, dass der Lernalgorithmus Ihrer Wahl durch Anleitung informativ eine Verallgemeinerung vornehmen kann. Die Algorithmen können in zwei Hauptbereiche unterteilt werden: überwachtes Lernen (Klassifizierung) und unbeaufsichtigtes Lernen (Clustering). Es ist äußerst wichtig, dass Sie eine fundierte Entscheidung darüber treffen, wie Sie Ihre Trainings- und Testdatensätze trennen möchten und welche Qualität Sie Ihrem Lernalgorithmus bieten. Wenn Sie Datensätze bereitstellen, möchten Sie auch Dinge wie Überanpassung und Aufrechterhaltung eines gesunden Voreingenommenheitsgefühls in Ihren Beispielen berücksichtigen. Der Algorithmus lernt dann im Grunde genommen Schreiben zu Schreiben auf der Grundlage der Verallgemeinerung, die er aus den Daten erzielt, die Sie ihm sowohl für das Training als auch für das Testen im Prozess zur Verfügung gestellt haben. Sie versuchen, Ihren Lernalgorithmus dazu zu bringen, auf der Grundlage Ihres gezielten Trainings neue Beispiele zu erstellen. Beim Clustering gibt es nur sehr wenige informative Anleitungen, die der Algorithmus im Grunde genommen durch Messungen von Mustern zwischen Daten zu erzeugen versucht, um verwandte Sätze von Clustern zu erstellen, z. B. km / knearest Nachbar. Der Algorithmus lernt dann im Grunde genommen Schreiben zu Schreiben auf der Grundlage der Verallgemeinerung, die er aus den Daten erzielt, die Sie ihm sowohl für das Training als auch für das Testen im Prozess zur Verfügung gestellt haben. Sie versuchen, Ihren Lernalgorithmus dazu zu bringen, auf der Grundlage Ihres gezielten Trainings neue Beispiele zu erstellen. Beim Clustering gibt es nur sehr wenige informative Anleitungen, die der Algorithmus im Grunde genommen durch Messungen von Mustern zwischen Daten zu erzeugen versucht, um verwandte Sätze von Clustern zu erstellen, z. B. km / knearest Nachbar. Der Algorithmus lernt dann im Grunde genommen Schreiben zu Schreiben auf der Grundlage der Verallgemeinerung, die er aus den Daten erzielt, die Sie ihm sowohl für das Training als auch für das Testen im Prozess zur Verfügung gestellt haben. Sie versuchen, Ihren Lernalgorithmus dazu zu bringen, auf der Grundlage Ihres gezielten Trainings neue Beispiele zu erstellen. Beim Clustering gibt es nur sehr wenige informative Anleitungen, die der Algorithmus im Grunde genommen durch Messungen von Mustern zwischen Daten zu erzeugen versucht, um verwandte Sätze von Clustern zu erstellen, z. B. km / knearest Nachbar.

Einige gute Bücher: Einführung in ML (Nilsson / Stanford), Gaußscher Prozess für ML, Einführung in ML (Alpaydin), Inferenz- und Lernalgorithmen der Informationstheorie (sehr nützliches Buch), Maschinelles Lernen (Mitchell), Mustererkennung und Maschinelles Lernen (Standard) ML-Kursbuch in Edinburgh und verschiedenen Unis, aber relativ viel Lesen mit Mathematik), Data Mining und praktisches maschinelles Lernen mit Weka (Arbeit mit Weka und Praxis in Java durcharbeiten)

Reinforcement Learning Es gibt ein kostenloses Buch online, das Sie lesen können: http://www.cs.ualberta.ca/~sutton/book/ebook/the-book.html

IR, IE, Recommenders und Text / Data / Web Mining verwenden im Allgemeinen viele Prinzipien des maschinellen Lernens. Sie können hier sogar metaheuristische / globale Optimierungstechniken anwenden, um Ihre Lernprozesse weiter zu automatisieren. Wenden Sie beispielsweise eine Evolutionstechnik wie GA (genetischer Algorithmus) an, um Ihren auf neuronalen Netzen basierenden Ansatz zu optimieren (der möglicherweise einen Lernalgorithmus verwendet). Sie können sich dem rein rein in Form eines probablistischen Ansatzes des maschinellen Lernens nähern, zum Beispiel des Bayes'schen Lernens. Die meisten dieser Algorithmen verwenden Statistiken sehr häufig. Konvergenz- und Generalisierungskonzepte sind für viele dieser Lernalgorithmen wichtig.

meme
quelle
8

Maschinelles Lernen ist die Informatikstudie zur Herstellung von Algorithmen, mit denen Informationen klassifiziert werden können, die sie zuvor noch nicht gesehen haben, indem Muster aus dem Training mit ähnlichen Informationen gelernt werden. In diesem Sinne gibt es alle möglichen Arten von "Lernenden". Beispiele sind neuronale Netze, Bayes'sche Netze, Entscheidungsbäume, k-Clustering-Algorithmen, Hidden-Markov-Modelle und Support-Vektor-Maschinen.

Basierend auf dem Lernenden lernen sie jeweils auf unterschiedliche Weise. Einige Lernende erstellen für den Menschen verständliche Rahmenbedingungen (z. B. Entscheidungsbäume), andere sind im Allgemeinen unergründlich (z. B. neuronale Netze).

Alle Lernenden sind im Wesentlichen datengesteuert, dh sie speichern ihren Status als Daten, die später wiederverwendet werden sollen. Sie sind als solche zumindest im Allgemeinen nicht selbstmodifizierend.

Zottiger Frosch
quelle
8

Ich denke, eine der coolsten Definitionen des maschinellen Lernens, die ich gelesen habe, stammt aus diesem Buch von Tom Mitchell. Leicht zu merken und intuitiv.

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

vikram360
quelle
21
Ich habe es immer gehasst, wie diese Definition trotz der unnötigen Verwendung von Symbolen wiederholt oder sogar gelehrt wird. Einfacher, besser: Ein Computerprogramm soll aus der Erfahrung in Bezug auf eine bestimmte Aufgabenklasse lernen, wenn sich seine Leistung bei diesen Aufgaben in Bezug auf ein Leistungsmaß mit der Erfahrung verbessert. Lassen Sie uns jetzt noch etwas vereinfachen. A computer program is said to learn in the context of performing a task if its performance with respect to some measure improves with experience.
Ninjakannon
1
Ich mache jetzt seit ungefähr einem Jahr maschinelles Lernen und muss es auch heute noch einige Male lesen, um zu verstehen, was es genau bedeutet. Ich frage mich, ob ich schlecht bin oder ob es die Definition ist.
Maxim Dsouza
7
  • Schamlos aus Wikipedia herausgerissen: Maschinelles Lernen ist eine wissenschaftliche Disziplin, die sich mit dem Entwurf und der Entwicklung von Algorithmen befasst, die es Computern ermöglichen, Verhaltensweisen basierend auf empirischen Daten wie Sensordaten oder Datenbanken zu entwickeln.

  • Maschinelles Lernen erfüllt ganz einfach eine maschinelle Lernaufgabe. Dies kann eine Reihe von Dingen sein, von der Interpretation von Sensordaten bis hin zu einem genetischen Algorithmus.

  • Ich würde sagen, es kommt darauf an. Nein, das Ändern von Code ist nicht normal, liegt jedoch nicht außerhalb des Bereichs der Möglichkeiten. Ich würde auch nicht sagen, dass maschinelles Lernen immer eine Geschichte verändert. Manchmal haben wir keine Geschichte, auf die wir aufbauen können. Manchmal wollen wir einfach nur auf die Umwelt reagieren, aber nicht aus unseren Erfahrungen lernen.

Grundsätzlich ist maschinelles Lernen eine sehr offene Disziplin, die viele Methoden und Algorithmen enthält, die es unmöglich machen, eine Antwort auf Ihre dritte Frage zu geben.

Kevin Crowell
quelle
6

Maschinelles Lernen ist ein Begriff, der aus der realen Welt eines Menschen stammt und auf etwas angewendet wird, das nicht wirklich lernen kann - eine Maschine.

Um die anderen Antworten zu ergänzen: Durch maschinelles Lernen wird der Code (normalerweise) nicht geändert, es kann jedoch sein Ausführungspfad und seine Entscheidung basierend auf vorherigen Daten oder neu gesammelten Daten und damit dem "Lern" -Effekt geändert werden.

Es gibt viele Möglichkeiten, eine Maschine zu "lehren" - Sie geben vielen Parametern eines Algorithmus Gewichte und lassen sie dann für viele Fälle von der Maschine lösen, jedes Mal, wenn Sie ihr ein Feedback zur Antwort geben und die Maschine die Gewichte entsprechend anpasst Wie nah die maschinelle Antwort an Ihrer Antwort war oder an der Punktzahl, die Sie gegeben haben, oder an einem Testalgorithmus für einige Ergebnisse.

Dies ist eine Art zu lernen und es gibt viele weitere ...

Dani
quelle