1. ProgrammierungBig DataData ScienceData Science Programmierung All-in-One für Dummies Spickzettel
Konzept des Datenwissenschaftsprogrammiercodes
  1. ProgrammingBig DataData ScienceMachine Learning vs. Deep Learning: Erklären der Unterschiede zwischen Deep Learning und anderen Formen der KI

Von John Paul Müller, Luca Müller

In Anbetracht der Verlegenheit von Reichtümern, die die KI als Ganzes betreffen, wie große Datenmengen, neue und leistungsfähige Computerhardware, die jedem zur Verfügung steht, und vielen privaten und öffentlichen Investitionen, stehen Sie der Technologie hinter Deep Learning, die darin besteht, möglicherweise skeptisch gegenüber von neuronalen Netzen, die mehr Neuronen und versteckte Schichten als in der Vergangenheit haben. Tiefe Netzwerke stehen im Gegensatz zu den einfacheren, flacheren Netzwerken der Vergangenheit, die bestenfalls ein oder zwei versteckte Schichten aufwiesen. Viele Lösungen, die Deep Learning heute ermöglichen, sind überhaupt nicht neu, aber Deep Learning nutzt sie auf neue Weise.

Deep Learning ist nicht einfach eine Umbenennung einer alten Technologie, des Perzeptrons, das 1957 von Frank Rosenblatt im Cornell Aeronautical Laboratory entdeckt wurde. Deep Learning funktioniert aufgrund der zusätzlichen Raffinesse, die durch die volle Nutzung leistungsfähiger Computer und die Verfügbarkeit besserer (nicht nur mehr) Daten entsteht, besser. Deep Learning impliziert auch eine tiefgreifende qualitative Veränderung der Fähigkeiten, die die Technologie bietet, zusammen mit neuen und erstaunlichen Anwendungen. Das Vorhandensein dieser Fähigkeiten modernisiert alte, aber gute neuronale Netze und verwandelt sie in etwas Neues. Der folgende Artikel beschreibt, wie tiefes Lernen seine Aufgabe erreicht.

Hinzufügen weiterer Ebenen für tiefes Lernen

Sie mögen sich fragen, warum Deep Learning erst jetzt aufblüht, wenn die Technologie, die als Grundlage für Deep Learning dient, schon vor langer Zeit existiert. Computer sind heutzutage leistungsfähiger und Deep Learning kann auf riesige Datenmengen zugreifen. Diese Antworten deuten jedoch nur auf wichtige Probleme beim Deep Learning in der Vergangenheit hin, und eine geringere Rechenleistung zusammen mit weniger Daten waren nicht die einzigen unüberwindbaren Hindernisse. Bis vor kurzem litt Deep Learning auch unter einem wichtigen technischen Problem, das neuronale Netze davon abhielt, über genügend Schichten zu verfügen, um wirklich komplexe Aufgaben auszuführen.

Durch die Verwendung vieler Ebenen kann Deep Learning Probleme lösen, die außerhalb des maschinellen Lernens liegen, z. B. Bilderkennung, maschinelle Übersetzung und Spracherkennung. Mit nur wenigen Schichten ausgestattet, ist ein neuronales Netzwerk ein perfekter universeller Funktionsapproximator, ein System, das jede mögliche mathematische Funktion nachbilden kann. Wenn ein neuronales Netzwerk mit viel mehr Schichten ausgestattet ist, kann es innerhalb seiner internen Kette von Matrixmultiplikationen ein ausgeklügeltes Repräsentationssystem zur Lösung komplexer Probleme erstellen. Um zu verstehen, wie eine komplexe Aufgabe wie die Bilderkennung funktioniert, gehen Sie wie folgt vor:

  1. Ein Deep-Learning-System, das darauf trainiert ist, Bilder zu erkennen (z. B. ein Netzwerk, in dem Fotos von Hunden von Bildern mit Katzen unterschieden werden können), definiert interne Gewichte, mit denen ein Bildthema erkannt werden kann. Nach dem Erkennen jeder einzelnen Kontur und Ecke im Bild fügt das Deep-Learning-Netzwerk alle diese Grundmerkmale zu zusammengesetzten charakteristischen Merkmalen zusammen. Das Netzwerk ordnet solche Funktionen einer idealen Darstellung zu, die die Antwort liefert.

Mit anderen Worten, ein Deep-Learning-Netzwerk kann Hunde anhand seiner internen Gewichte von Katzen unterscheiden, um eine Darstellung dessen zu definieren, was im Idealfall einem Hund und einer Katze ähneln sollte. Anschließend werden diese internen Gewichte verwendet, um mit jedem neuen Bild übereinzustimmen, das Sie bereitstellen.

Eine der frühesten Errungenschaften des tiefen Lernens, die die Öffentlichkeit auf ihre Möglichkeiten aufmerksam gemacht haben, ist das Katzenneuron. Das Google Brain-Team, das zu dieser Zeit von Andrew Ng und Jeff Dean geleitet wurde, hat 16.000 Computer zusammengestellt, um ein Deep-Learning-Netzwerk mit mehr als einer Milliarde Gewichten zu berechnen und so unbeaufsichtigtes Lernen aus YouTube-Videos zu ermöglichen. Das Computernetzwerk konnte sogar selbst bestimmen, was eine Katze ist, ohne dass ein menschliches Eingreifen erforderlich wäre, und Google-Wissenschaftler haben es geschafft, eine Darstellung darüber aus dem Netzwerk zu ziehen, wie das Netzwerk selbst aussehen sollte, wenn eine Katze aussehen sollte (siehe den verkabelten Artikel über neuronale Netze). .

Während der Zeit, in der Wissenschaftler aufgrund der Grenzen der Computerhardware nicht mehr Schichten in ein neuronales Netzwerk stapeln konnten, blieb das Potenzial der Technologie verborgen, und Wissenschaftler ignorierten neuronale Netzwerke. Der mangelnde Erfolg verstärkte die tiefe Skepsis, die im letzten KI-Winter im Zusammenhang mit der Technologie aufkam. Was Wissenschaftler jedoch wirklich daran hinderte, etwas Anspruchsvolleres zu erschaffen, war das Problem mit verschwundenen Verläufen.

Ein verschwindender Gradient tritt auf, wenn Sie versuchen, ein Signal über ein neuronales Netzwerk zu übertragen, und das Signal schnell auf Werte nahe Null abfällt. Es kann die Aktivierungsfunktionen nicht durchlaufen. Dies geschieht, weil neuronale Netze verkettete Multiplikationen sind. Jede Multiplikation unter Null verringert die eingehenden Werte schnell und Aktivierungsfunktionen benötigen ausreichend große Werte, um das Signal passieren zu lassen. Je weiter die Neuronenebenen von der Ausgabe entfernt sind, desto höher ist die Wahrscheinlichkeit, dass Updates für sie gesperrt werden, da die Signale zu klein sind und die Aktivierungsfunktionen sie stoppen. Infolgedessen hört Ihr Netzwerk auf, als Ganzes zu lernen, oder es lernt in einem unglaublich langsamen Tempo.

Jeder Versuch, komplexe Netzwerke zusammenzustellen und zu testen, schlug fehl, da der Backpropagation-Algorithmus die Layer nicht näher an der Eingabe aktualisieren konnte, sodass das Lernen aus komplexen Daten, selbst wenn diese Daten zu diesem Zeitpunkt verfügbar waren, fast unmöglich war. Dank der Studien von Wissenschaftlern der University of Toronto in Kanada, wie Geoffrey Hinton, die darauf bestanden, an neuronalen Netzwerken zu arbeiten, sind heute tiefe Netzwerke möglich, auch wenn sie für die meisten ein altmodischer Ansatz des maschinellen Lernens zu sein schienen.

Professor Hinton, ein Veteran auf dem Gebiet der neuronalen Netze (er trug zur Definition des Backpropagation-Algorithmus bei), und sein Team in Toronto entwickelten einige Methoden, um das Problem des Verschwindens von Gradienten zu umgehen. Er öffnete das Feld, um neue Lösungen zu überdenken, die neuronale Netze wieder zu einem entscheidenden Werkzeug für maschinelles Lernen und KI machten.

Professor Hinton und sein Team gehören zu den Ersten, die die GPU-Nutzung getestet haben, um das Training eines tiefen neuronalen Netzwerks zu beschleunigen. 2012 gewannen sie einen offenen Wettbewerb, der von den Pharmaunternehmen Merck und Kaggle (letzteres eine Website für datenwissenschaftliche Wettbewerbe) unter Verwendung ihrer neuesten Erkenntnisse aus dem Bereich Deep Learning organisiert wurde. Diese Veranstaltung hat große Aufmerksamkeit auf ihre Arbeit gelenkt. In diesem Interview mit Geoffrey Hinton erfahren Sie alles über die revolutionäre Leistung des Hinton-Teams mit neuronalen Netzwerkebenen.

Ändern der Aktivierungen für tiefes Lernen

Das Team von Geoffrey Hinton konnte einer neuronalen Architektur weitere Ebenen hinzufügen, da zwei Lösungen Probleme mit der Rückübertragung verhinderten:

  • Sie haben das Problem explodierender Farbverläufe durch eine intelligentere Netzwerkinitialisierung verhindert. Ein explodierender Gradient unterscheidet sich von einem verschwindenden Gradienten, da ein Netzwerk explodieren kann, wenn der explodierende Gradient zu groß wird, um gehandhabt zu werden. Ihr Netzwerk kann explodieren, es sei denn, Sie initialisieren das Netzwerk ordnungsgemäß, um zu verhindern, dass große Gewichtszahlen berechnet werden. Dann lösen Sie das Problem des Verschwindens von Verläufen, indem Sie die Netzwerkaktivierungen ändern. Das Team erkannte, dass das Weiterleiten eines Signals durch verschiedene Aktivierungsschichten dazu neigte, das Backpropagation-Signal zu dämpfen, bis es nach der Untersuchung der Funktionsweise einer Sigma-Aktivierung zu schwach wird, um weiterzulaufen. Sie verwendeten eine neue Aktivierung als Lösung für dieses Problem. Die Wahl des zu verwendenden Algorithmus fiel auf einen alten Aktivierungstyp von ReLU, der für gleichgerichtete Lineareinheiten steht. Eine ReLU-Aktivierung stoppte das empfangene Signal, wenn es unter Null lag, um die Nichtlinearitätscharakteristik neuronaler Netze sicherzustellen und das Signal so passieren zu lassen, als wäre es über Null. (Die Verwendung dieser Art der Aktivierung ist ein Beispiel für die Kombination alter, aber immer noch guter Technologie mit aktueller Technologie.) Das folgende Bild zeigt, wie dieser Prozess funktioniert.
ReLU Aktivierungsfunktion beim Deep Learning

Die ReLU funktionierte unglaublich gut und ließ das Backpropagation-Signal zu den anfänglichen tiefen Netzwerkschichten gelangen. Wenn das Signal positiv ist, ist seine Ableitung 1. Sie können den Beweis für die ReLU-Ableitung auch beim Schauen finden. Beachten Sie, dass die Änderungsrate konstant ist und einer Einheit entspricht, wenn das Eingangssignal positiv ist (während die Ableitung 0 ist, wenn das Signal negativ ist, wodurch verhindert wird, dass das Signal durchgelassen wird).

Sie können die ReLU-Funktion mit f (x) = max (0, x) berechnen. Die Verwendung dieses Algorithmus erhöhte die Trainingsgeschwindigkeit erheblich und ermöglichte ein schnelles Training von noch tieferen Netzwerken, ohne dass tote Neuronen entstehen. Ein totes Neuron kann vom Netzwerk nicht aktiviert werden, da die Signale zu schwach sind.

Hinzufügen von Regularisierung durch Dropout für tiefes Lernen

Die andere Einführung in Deep Learning, die von Hintons Team gemacht wurde, um die anfängliche Deep-Learning-Lösung zu vervollständigen, die auf die Regularisierung des Netzwerks abzielt. Ein reguliertes Netzwerk begrenzt die Netzwerkgewichte, wodurch das Netzwerk davon abgehalten wird, die Eingabedaten zu speichern und die beobachteten Datenmuster zu verallgemeinern.

Denken Sie daran, dass bestimmte Neuronen bestimmte Informationen auswendig lernen und die anderen Neuronen dazu zwingen, sich auf dieses stärkere Neuron zu verlassen, was dazu führt, dass die schwachen Neuronen nicht mehr selbst etwas Nützliches lernen (eine Situation, die als Co-Anpassung bezeichnet wird). Um eine Co-Anpassung zu verhindern, schaltet der Code die Aktivierung eines zufälligen Teils der Neuronen im Netzwerk vorübergehend aus.

Wie Sie auf der linken Seite des Bildes unten sehen können, multiplizieren die Gewichte normalerweise ihre Eingänge mit den Ausgängen für die Aktivierungen. Um die Aktivierung auszuschalten, multipliziert der Code eine Maske aus einer zufälligen Mischung von Einsen und Nullen mit den Ergebnissen. Wenn das Neuron mit eins multipliziert wird, gibt das Netzwerk sein Signal weiter. Wenn ein Neuron mit Null multipliziert wird, stoppt das Netzwerk sein Signal und zwingt andere Neuronen, sich dabei nicht darauf zu verlassen.

tiefer Lernabbruch

Der Ausfall funktioniert nur während des Trainings und berührt keinen Teil der Gewichte. Es maskiert und verbirgt einfach einen Teil des Netzwerks und zwingt den nicht maskierten Teil, eine aktivere Rolle beim Lernen von Datenmustern zu übernehmen. Während der Vorhersagezeit funktioniert das Ausfallende nicht und die Gewichte werden numerisch neu skaliert, um die Tatsache zu berücksichtigen, dass sie während des Trainings nicht alle zusammengearbeitet haben.

  1. ProgrammingBig DataData ScienceMit AI zur Stimmungsanalyse

Von John Paul Müller, Luca Müller

Die Stimmungsanalyse leitet sich rechnerisch aus einem geschriebenen Text ab, wobei die Haltung des Autors (ob positiv, negativ oder neutral) zum Textthema verwendet wird. Diese Art der Analyse erweist sich für Marketing- und Kommunikationsmitarbeiter als nützlich, da sie ihnen hilft, die Meinung von Kunden und Verbrauchern zu einem Produkt oder einer Dienstleistung zu verstehen und auf diese Weise angemessen zu handeln (z. B. um unzufriedene Kunden wiederzugewinnen oder sich für eine andere Vertriebsstrategie zu entscheiden) ). Jeder führt eine Stimmungsanalyse durch. Zum Beispiel versuchen Menschen beim Lesen von Texten auf natürliche Weise, das Gefühl zu bestimmen, das die Person bewegt hat, die es geschrieben hat. Wenn jedoch die Anzahl der zu lesenden und zu verstehenden Texte zu groß ist und sich der Text ständig ansammelt, wie in Social Media und Kunden-E-Mails, ist die Automatisierung der Stimmungsanalyse wichtig.

KI-Stimmungsanalyse

Das nächste Beispiel ist ein Testlauf von RNNs unter Verwendung von Keras und TensorFlow, der einen Stimmungsanalysealgorithmus erstellt, mit dem die in einem Filmbericht zum Ausdruck gebrachten Einstellungen klassifiziert werden können. Die Daten sind eine Stichprobe des IMDb-Datensatzes, der 50.000 Bewertungen (aufgeteilt in Zug- und Testsätze) von Filmen enthält, die von einem Etikett begleitet sind, das die Stimmung der Bewertung ausdrückt (0 = negativ, 1 = positiv). IMDb ist eine große Online-Datenbank mit Informationen zu Filmen, Fernsehserien und Videospielen. Ursprünglich von einer Fangemeinde unterhalten, wird es jetzt von einer Amazon-Tochtergesellschaft betrieben. Auf IMDb finden die Nutzer die Informationen, die sie zu ihrer Lieblingssendung benötigen, und veröffentlichen ihre Kommentare oder schreiben eine Rezension, die andere Besucher lesen können.

Keras bietet einen herunterladbaren Wrapper für IMDb-Daten an. Sie bereiten diese Daten vor, mischen sie und ordnen sie in einen Zug und ein Test-Set ein. Insbesondere werden die von Keras angebotenen IMDb-Textdaten von Satzzeichen befreit, in Kleinbuchstaben normalisiert und in numerische Werte umgewandelt. Jedes Wort ist in eine Zahl codiert, die seine Rangfolge in der Häufigkeit darstellt. Die häufigsten Wörter haben niedrige Zahlen. seltenere Wörter haben höhere Zahlen.

Als Einstieg importiert der Code die imdb-Funktion von Keras und verwendet sie zum Abrufen der Daten aus dem Internet (etwa 17,5 MB Download). Die Parameter, die in diesem Beispiel verwendet werden, umfassen nur die ersten 10.000 Wörter, und Keras sollte die Daten mit einem bestimmten zufälligen Startwert mischen. (Wenn Sie den Startwert kennen, können Sie das Mischen nach Bedarf reproduzieren.) Die Funktion gibt zwei Zug- und Testsätze zurück, die beide aus Textsequenzen und dem Sentiment-Ergebnis bestehen.

aus keras.datasets import imdb
top_words = 10000
((x_train, y_train),
(x_test, y_test) = imdb.load_data (num_words = top_words,
seed = 21)

Nach Abschluss des vorherigen Codes können Sie die Anzahl der Beispiele mit dem folgenden Code überprüfen:

print ("Trainingsbeispiele:% i"% len (x_train))
print ("Testbeispiele:% i"% len (x_test))

Nach der Abfrage der Anzahl der Fälle, die für die Trainings- und Testphase des neuronalen Netzwerks verfügbar sind, gibt der Code eine Antwort von 25.000 Beispielen für jede Phase aus. (Dieser Datensatz ist für ein Sprachproblem relativ klein; der Datensatz dient eindeutig hauptsächlich Demonstrationszwecken.) Darüber hinaus bestimmt der Code, ob der Datensatz ausgeglichen ist, was bedeutet, dass er eine nahezu gleiche Anzahl positiver und negativer Stimmungsbeispiele enthält.

numpy als np importieren
print (np.unique (y_train, return_counts = True))

Das Ergebnis Array ([12500, 12500]) bestätigt, dass der Datensatz gleichmäßig zwischen positiven und negativen Ergebnissen aufgeteilt ist. Ein solches Gleichgewicht zwischen den Antwortklassen ist ausschließlich auf den demonstrativen Charakter des Datensatzes zurückzuführen. In der realen Welt finden Sie selten ausgewogene Datensätze. Im nächsten Schritt werden einige Python-Wörterbücher erstellt, die zwischen dem im Datensatz verwendeten Code und den tatsächlichen Wörtern konvertiert werden können. Tatsächlich ist der in diesem Beispiel verwendete Datensatz vorverarbeitet und enthält Zahlenfolgen, die die Wörter und nicht die Wörter selbst darstellen. (LSTM- und GRU-Algorithmen, die Sie in Keras finden, erwarten Zahlenfolgen als Zahlen.)

word_to_id = {w: i ​​+ 3 für w, i in imdb.get_word_index (). items ()}
id_to_word = {0: '', 1: '', 2: ''}
id_to_word.update ({i + 3: w für w, i in imdb.get_word_index (). items ()})
def convert_to_text (sequence):
return '' .join ([id_to_word [s] für s nacheinander, wenn s> = 3])
print (convert_to_text (x_train [8]))

Das vorherige Code-Snippet definiert zwei Konvertierungswörterbücher (von Wörtern zu numerischen Codes und umgekehrt) und eine Funktion, die die Dataset-Beispiele in lesbaren Text übersetzt. Als Beispiel gibt der Code das neunte Beispiel aus: "Dieser Film war wie ein schlimmes Zugunglück, so schrecklich es auch war ...". Aus diesem Auszug können Sie leicht ersehen, dass die Stimmung für diesen Film nicht positiv ist. Wörter wie schlecht, Wrack und schrecklich vermitteln ein starkes negatives Gefühl, und das macht es einfach, das richtige Gefühl zu erraten.

In diesem Beispiel erhalten Sie die numerischen Sequenzen und wandeln sie wieder in Wörter um, aber das Gegenteil ist üblich. Normalerweise erhalten Sie Phrasen, die aus Wörtern bestehen, und wandeln sie in Folgen von Ganzzahlen um, um sie einer Schicht von RNNs zuzuführen. Keras bietet eine spezielle Funktion, Tokenizer, die das für Sie erledigt. Es verwendet die Methoden fit_on_text, um zu lernen, wie Wörter Ganzzahlen aus Trainingsdaten zugeordnet werden, und texts_to_matrix, um Text in eine Sequenz umzuwandeln.

In anderen Sätzen finden Sie jedoch möglicherweise keine so aussagekräftigen Wörter für die Stimmungsanalyse. Das Gefühl wird subtiler oder indirekter ausgedrückt, und das frühzeitige Verstehen des Gefühls im Text ist möglicherweise nicht möglich, da die Enthüllung von Phrasen und Wörtern möglicherweise viel später im Diskurs erfolgt. Aus diesem Grund müssen Sie auch entscheiden, wie viel von der Phrase Sie analysieren möchten.

Üblicherweise nehmen Sie einen ersten Teil des Textes und verwenden ihn als Repräsentant für die gesamte Rezension. Manchmal braucht man nur ein paar Anfangswörter - zum Beispiel die ersten 50 Wörter -, um den Sinn zu verstehen. manchmal braucht man mehr. Besonders lange Texte lassen ihre Orientierung nicht früh erkennen. Es liegt daher an Ihnen, die Art des Texts zu verstehen, mit dem Sie arbeiten, und zu entscheiden, wie viele Wörter mit Deep Learning analysiert werden sollen. In diesem Beispiel werden nur die ersten 200 Wörter berücksichtigt, die ausreichen sollten.

Sie haben bemerkt, dass der Code Wörter mit der Nummer 3 mit einem Code versieht, der von 0 bis 2 reicht. Niedrigere Nummern werden für spezielle Tags verwendet, z. B. zur Signalisierung des Phrasenanfangs und zum Füllen von Leerstellen, damit die Reihenfolge festgelegt wird ab einer bestimmten Länge, und markieren Sie die Wörter, die ausgeschlossen werden, weil sie nicht häufig genug sind. In diesem Beispiel werden nur die häufigsten 10.000 Wörter erfasst. Das Verwenden von Tags, um auf Start-, End- und wichtige Situationen hinzuweisen, ist ein Trick, der mit RNNs funktioniert, insbesondere bei maschineller Übersetzung.

aus keras.preprocessing.sequence importiere pad_sequences
max_pad = 200
x_train = pad_sequences (x_train,
maxlen = max_pad)
x_test = pad_sequences (x_test,
maxlen = max_pad)
print (x_train [0])

Wenn Sie die Funktion pad_sequences von Keras verwenden, wobei max_pad auf 200 gesetzt ist, übernimmt der Code die ersten zweihundert Wörter jeder Überprüfung. Wenn die Überprüfung weniger als zweihundert Wörter enthält, gehen der Sequenz so viele Nullwerte voraus, wie erforderlich sind, um die erforderliche Anzahl von Sequenzelementen zu erreichen. Das Schneiden der Sequenzen auf eine bestimmte Länge und das Füllen der Lücken mit Nullwerten wird als Eingabeauffüllung bezeichnet, eine wichtige Verarbeitungsaktivität bei der Verwendung von RNNs wie Deep-Learning-Algorithmen. Der Code entwirft nun die Architektur:

aus keras.models importieren Sequential
aus keras.layers importieren Sie Bidirectional, Dense, Dropout
aus keras.layers importieren Sie GlobalMaxPool1D, LSTM
aus keras.layers.embeddings importieren Sie Embedding
embedding_vector_length = 32
model = Sequential ()
model.add (Embedding (top_words,
embedding_vector_length,
input_length = max_pad))
model.add (Bidirektional (LSTM (64, return_sequences = True))
model.add (GlobalMaxPool1D ())
model.add (Dichte (16, Aktivierung = "relu"))
model.add (Dicht (1, Aktivierung = "Sigmoid"))
model.compile (loss = 'binary_crossentropy',
optimizer = 'adam',
Metriken = ['Genauigkeit'])
print (model.summary ())

Das vorherige Code-Snippet definiert die Form des Deep-Learning-Modells, in dem einige spezielle Ebenen für die Verarbeitung natürlicher Sprachen von Keras verwendet werden. Das Beispiel erforderte auch eine Zusammenfassung des Modells (Befehl model.summary ()), um zu bestimmen, was mit der Architektur geschieht, indem verschiedene neuronale Ebenen verwendet werden.

Sie haben die Einbettungsebene, die die numerischen Sequenzen in eine dichte Worteinbettung umwandelt. Diese Art der Worteinbettung ist besser geeignet, um von einer Schicht von RNNs gelernt zu werden. Keras bietet eine Einbettungsschicht, die nicht nur die erste Schicht des Netzwerks sein muss, sondern auch zwei Aufgaben erfüllen kann:

  • Anwenden der vorab geschulten Worteinbettung (z. B. Word2vec oder GloVe) auf die Sequenzeingabe. Sie müssen nur die Matrix mit der Einbettung an die Parametergewichte übergeben. Erstellen eines von Grund auf neu eingebetteten Worts auf der Grundlage der eingegangenen Eingaben.

In diesem zweiten Fall muss das Einbetten nur wissen:

  • input_dim: Die Größe des von den Daten erwarteten Vokabulars output_dim: Die Größe des zu erzeugenden Einbettungsraums (die sogenannten Dimensionen) input_length: Die zu erwartende Sequenzgröße

Nachdem Sie die Parameter festgelegt haben, ermittelt Embedding die besseren Gewichte, um die Sequenzen während des Trainings in eine dichte Matrix umzuwandeln. Die dichte Matrixgröße ergibt sich aus der Länge der Sequenzen und der Dimensionalität der Einbettung.

Wenn Sie die von Keras bereitgestellte Einbettungsebene verwenden, müssen Sie berücksichtigen, dass die Funktion nur eine Gewichtsmatrix der Größe des Vokabulars anhand der Dimension der gewünschten Einbettung bereitstellt. Es ordnet die Wörter den Spalten der Matrix zu und stimmt dann die Matrixgewichte auf die bereitgestellten Beispiele ab. Obwohl diese Lösung für nicht standardisierte Sprachprobleme praktisch ist, entspricht sie nicht den zuvor diskutierten Worteinbettungen, die auf andere Weise und an Millionen von Beispielen trainiert wurden.

In diesem Beispiel wird bidirektionales Wrapping verwendet - eine LSTM-Schicht mit 64 Zellen. Bidirektionale Transformationen einer normalen LSTM-Ebene durch Verdoppeln: Auf der ersten Seite wird die normale Reihenfolge der von Ihnen bereitgestellten Eingaben angewendet. beim zweiten passiert es die umgekehrte Reihenfolge. Sie verwenden diesen Ansatz, weil Sie manchmal Wörter in einer anderen Reihenfolge als der angegebenen verwenden. Wenn Sie eine bidirektionale Ebene erstellen, wird jedes Wortmuster unabhängig von der Reihenfolge erfasst. Die Keras-Implementierung ist in der Tat unkompliziert: Sie wenden sie einfach als Funktion auf die Ebene an, die Sie bidirektional rendern möchten.

Das bidirektionale LSTM ist so eingestellt, dass es Sequenzen zurückgibt (return_sequences = True); Das heißt, für jede Zelle wird das Ergebnis zurückgegeben, das nach dem Anzeigen der einzelnen Elemente der Sequenz bereitgestellt wurde. Das Ergebnis für jede Sequenz ist eine Ausgabematrix von 200 × 128, wobei 200 die Anzahl der Sequenzelemente und 128 die Anzahl der in der Schicht verwendeten LSTM-Zellen ist. Diese Technik verhindert, dass der RNN das letzte Ergebnis jeder LSTM-Zelle erfasst. Hinweise auf das Gefühl des Textes können tatsächlich an einer beliebigen Stelle in der Sequenz der eingebetteten Wörter erscheinen.

Kurz gesagt, es ist wichtig, nicht das letzte Ergebnis jeder Zelle zu ermitteln, sondern das beste Ergebnis. Der Code stützt sich daher auf die folgende Ebene, GlobalMaxPool1D, um jede von jeder LSTM-Zelle bereitgestellte Folge von Ergebnissen zu überprüfen und nur das maximale Ergebnis beizubehalten. Dies sollte sicherstellen, dass das Beispiel das stärkste Signal von jeder LSTM-Zelle auswählt, die hoffentlich durch ihr Training darauf spezialisiert ist, einige aussagekräftige Signale auszuwählen.

Nachdem die neuronalen Signale gefiltert wurden, weist das Beispiel eine Schicht von 128 Ausgängen auf, einen für jede LSTM-Zelle. Der Code reduziert und mischt die Signale unter Verwendung einer aufeinanderfolgenden dichten Schicht von 16 Neuronen mit ReLU-Aktivierung (wodurch nur positive Signale durchgelassen werden). Die Architektur endet mit einem Endknoten mit Sigmoid-Aktivierung, der die Ergebnisse in den Bereich von 0 bis 1 drückt und sie als Wahrscheinlichkeiten erscheinen lässt.

Nachdem Sie die Architektur definiert haben, können Sie das Netzwerk für die Stimmungsanalyse schulen. Drei Epochen (dreimaliges Durchlaufen des Netzwerks, um die Muster zu lernen) sind ausreichend. Der Code verwendet jeweils 256 Überprüfungsstapel, sodass das Netzwerk jedes Mal eine ausreichende Anzahl von Wörtern und Stimmungen sehen kann, bevor die Gewichtung mithilfe der Backpropagation aktualisiert wird. Schließlich konzentriert sich der Code auf die Ergebnisse der Validierungsdaten (die nicht Teil der Trainingsdaten sind). Wenn die Validierungsdaten ein gutes Ergebnis liefern, verarbeitet das neuronale Netz die Eingabe ordnungsgemäß. Der Code meldet die Validierungsdaten unmittelbar nach Ablauf jeder Epoche.

history = model.fit (x_train, y_train,
validation_data = (x_test, y_test),
Epochen = 3, Batch_Size = 256)

Das Abrufen der Ergebnisse dauert eine Weile. Wenn Sie jedoch eine GPU verwenden, wird diese in der Zeit abgeschlossen, die Sie zum Trinken einer Tasse Kaffee benötigen. An dieser Stelle können Sie die Ergebnisse erneut anhand der Validierungsdaten auswerten. (Die Ergebnisse sollten keine Überraschungen oder Unterschiede zu dem aufweisen, was der Code während des Trainings gemeldet hat.)

loss, metric = model.evaluate (x_test, y_test, verbose = 0)
print ("Testgenauigkeit:% 0.3f"% metrisch)

Die endgültige Genauigkeit, dh der Prozentsatz der korrekten Antworten aus dem tiefen neuronalen Netz, liegt bei 85 bis 86 Prozent. Das Ergebnis ändert sich jedes Mal geringfügig, wenn Sie den Test ausführen, da beim Aufbau Ihres neuronalen Netzwerks eine Zufallsgenerierung vorgenommen wird. Dies ist angesichts der geringen Datenmenge, mit der Sie arbeiten, völlig normal. Wenn Sie mit den richtigen Glücksgewichten beginnen, wird das Lernen in einer so kurzen Trainingseinheit einfacher.

Letztendlich ist Ihr Netzwerk ein Stimmungsanalysator, der in etwa 85 Prozent der Fälle die in einer Filmkritik zum Ausdruck gebrachte Stimmung richtig einschätzen kann. Wenn Sie noch mehr Trainingsdaten und ausgefeiltere neuronale Architekturen verwenden, können Sie noch beeindruckendere Ergebnisse erzielen. Im Marketing werden mit einem ähnlichen Tool viele Prozesse automatisiert, bei denen Text gelesen und Maßnahmen ergriffen werden müssen. Auch hier können Sie ein Netzwerk wie dieses mit einem neuronalen Netzwerk koppeln, das auf eine Stimme hört und diese in Text verwandelt. (Dies ist eine weitere Anwendung von RNNs, die jetzt Alexa, Siri, Google Voice und viele andere persönliche Assistenten mit Strom versorgen.) Durch den Übergang kann die Anwendung die Stimmung auch in stimmlichen Ausdrücken wie einem Telefonanruf von einem Kunden verstehen.

  1. ProgrammingBig DataData Science10 Arten von Jobs, die Deep Learning verwenden

Von John Paul Müller, Luca Müller

Deep Learning kann auf viele verschiedene Arten eingesetzt werden - von sprachaktivierten Funktionen Ihres digitalen Assistenten bis hin zu selbstfahrenden Autos. Deep Learning zu nutzen, um Ihr tägliches Leben zu verbessern, ist natürlich schön, aber die meisten Menschen brauchen andere Gründe, um sich auf eine Technologie einzulassen, wie zum Beispiel einen Job zu bekommen. Glücklicherweise beeinträchtigt Deep Learning nicht nur Ihre Fähigkeit, Informationen schneller zu finden, sondern bietet auch einige wirklich interessante Beschäftigungsmöglichkeiten und den „Wow“ -Faktor, den nur Deep Learning bieten kann. Dieser Artikel gibt Ihnen einen Überblick über zehn interessante Berufe, die sich heute zum Teil auf Deep Learning stützen. Dieses Material stellt jedoch nur die Spitze des Eisbergs dar; Es entstehen mehr Berufe, die schnell tiefes Lernen nutzen, und jeden Tag kommen mehr hinzu.

Deep Learning kann beim Umgang mit Menschen hilfreich sein

Ein erschreckender Film mit dem Titel The Circle lässt Sie glauben, dass moderne Technologie im Buch 1984 von George Orwell noch invasiver sein wird als Big Brother. Ein Teil der Geschichte des Films besteht darin, überall Kameras zu installieren - sogar in Schlafzimmern. Die Hauptfigur wacht jeden Morgen auf, um alle zu begrüßen, die sie beobachten. Ja, es kann dir die Willies geben, wenn du es zulässt.

Bei echtem Tiefenlernen geht es jedoch größtenteils nicht darum, Menschen zu überwachen und zu beurteilen. Es ähnelt eher der Global Human Resources Cloud von Oracle. Diese spezielle Technologie ist nicht nur beängstigend, sondern lässt Sie auch schick aussehen und über alle Aktivitäten Ihres Tages hinwegsehen. Das Video ist ein wenig übertrieben, aber es gibt Ihnen eine gute Vorstellung davon, wie tiefgreifendes Lernen derzeit Ihre Arbeit erleichtern kann.

Die Idee hinter dieser Technologie ist es, den Menschen den Erfolg zu erleichtern. Wenn Sie sich das Video und die zugehörigen Materialien von Oracle ansehen, werden Sie feststellen, dass die Technologie dem Management dabei hilft, potenzielle Wege zu den Zielen der Mitarbeiter innerhalb des Unternehmens aufzuzeigen. In einigen Fällen mögen die Mitarbeiter ihre aktuelle Situation, aber die Software kann dennoch Möglichkeiten vorschlagen, um ihre Arbeit ansprechender und unterhaltsamer zu gestalten. Die Software verhindert, dass Mitarbeiter im System verloren gehen, und hilft, die Mitarbeiter auf einer benutzerdefinierten Ebene zu verwalten, sodass jeder Mitarbeiter individuelle Eingaben erhält.

Tiefes Lernen verbessert die Medizin

Tiefes Lernen beeinflusst die Ausübung der Medizin in vielerlei Hinsicht, wie Sie sehen können, wenn Sie zum Arzt gehen oder Zeit in einem Krankenhaus verbringen. Deep Learning hilft bei der Diagnose von Krankheiten und der Suche nach der richtigen Heilung. Deep Learning wird sogar verwendet, um den Diagnoseprozess für schwer zu erkennende Probleme, einschließlich des Auges, zu verbessern. Eine der wichtigsten Anwendungen für tiefes Lernen in der Medizin liegt jedoch in der Forschung.

Das scheinbar einfache Finden der richtigen Patienten für Forschungszwecke ist nicht ganz so einfach. Die Patienten müssen strenge Kriterien erfüllen, sonst können sich Testergebnisse als ungültig erweisen. Die Forscher verlassen sich jetzt auf tiefes Lernen, um Aufgaben wie das Finden des richtigen Patienten, das Entwerfen der Versuchskriterien und das Optimieren der Ergebnisse durchzuführen. Offensichtlich wird die Medizin viele Menschen benötigen, die sowohl in der Medizin als auch in der Anwendung von Tiefenlerntechniken für die Medizin geschult sind, um weiterhin Fortschritte in ihrem derzeitigen Tempo zu erzielen.

Deep Learning hilft bei der Entwicklung neuer Geräte

Die Innovation in einigen Bereichen der Computertechnologie, wie dem Basissystem, das inzwischen zur Handelsware geworden ist, hat sich im Laufe der Jahre verlangsamt. Die Innovation in Bereichen, die erst kürzlich rentabel wurden, hat jedoch stark zugenommen. Ein Erfinder hat heute mehr Möglichkeiten für neue Geräte als je zuvor. Einer dieser neuen Bereiche ist das Durchführen von Deep-Learning-Aufgaben. Um das Potenzial für komplexere Deep-Learning-Aufgaben zu schaffen, verwenden viele Unternehmen jetzt spezielle Hardware, die die Fähigkeiten von GPUs übertrifft - der derzeit bevorzugten Verarbeitungstechnologie für Deep-Learning.

Die Deep-Learning-Technologie steckt noch in den Kinderschuhen, sodass sich ein kluger Erfinder etwas Interessantes einfallen lassen kann, ohne wirklich hart zu arbeiten. In diesem Artikel werden neue KI-Technologien beschrieben, aber selbst diese Technologien loten nicht die Tiefen dessen aus, was passieren könnte.

Deep Learning zieht sowohl die Aufmerksamkeit von Erfindern als auch von Investoren auf sich, da es das derzeitige Patentrecht und die Art und Weise, wie Menschen neue Dinge schaffen, verbessern kann. Ein interessanter Teil der meisten Artikel dieser Art ist, dass sie eine signifikante Zunahme von Arbeitsplätzen vorhersagen, die sich auf verschiedene Arten von vertieftem Lernen beziehen, von denen die meisten die Schaffung von etwas Neuem beinhalten. Wenn Sie Deep Learning in irgendeiner Weise nutzen und es mit einem aktuellen, dynamischen Beruf verbinden können, können Sie im Wesentlichen einen Job finden oder ein eigenes Unternehmen aufbauen.

Deep Learning kann Kundenunterstützung bieten

Viele vertiefte Diskussionen beziehen sich auf Chatbots und andere Formen der Kundenunterstützung, einschließlich Übersetzungsdienstleistungen. Wenn Sie neugierig sind, können Sie bei Pandorabots.com eine interaktive Erfahrung mit einem Chatbot machen. Die Verwendung von Chatbots und anderen Kundensupporttechnologien hat jedoch Besorgnis erregt.

Wie in diesem Artikel von Forbes sind einige Verbrauchergruppen zum Scheitern verurteilt, die sagen, dass die Kundenbetreuung durch Menschen zum Scheitern verurteilt ist. Wenn Sie sich jedoch jemals mit einem Chatbot befassen mussten, um etwas Komplexes auszuführen, wissen Sie, dass die Erfahrung weniger als ansprechend ist. Das neue Paradigma ist also die Kombination aus Mensch und Chatbot.

Ein Großteil der heute verwendeten Technologie soll einen Menschen ersetzen, kann dies aber in den meisten Fällen nicht. Vorerst sollten Sie mit vielen Situationen rechnen, in denen Menschen und Bots als Team zusammenarbeiten. Der Bot reduziert die Belastung durch körperlich intensive Aufgaben sowie die alltäglichen, langweiligen Aufgaben. Der Mensch wird die interessanteren Dinge tun und kreative Lösungen für unerwartete Situationen liefern. Folglich müssen die Menschen eine Ausbildung erhalten, die für die Arbeit in diesen Bereichen erforderlich ist, und sich sicher fühlen, dass sie weiterhin eine Erwerbstätigkeit ausüben können.

Deep Learning kann Ihnen dabei helfen, Daten auf neue Weise zu sehen

Wenn Sie sich eine Reihe von Websites und anderen Datenquellen ansehen, bemerken Sie Folgendes: Alle Daten werden unterschiedlich dargestellt. Ein Computer versteht keine Unterschiede in der Präsentation und lässt sich nicht von der einen oder anderen Seite beeinflussen. Daten werden nicht verstanden. es sucht nach Mustern. Deep Learning versetzt Anwendungen in die Lage, mehr Daten selbstständig zu erfassen, indem sichergestellt wird, dass die Anwendung geeignete Muster sehen kann, auch wenn sich diese Muster von denen unterscheiden, die die Anwendung zuvor gesehen hat. Auch wenn tiefes Lernen die Datenerfassung verbessern und beschleunigen wird, muss ein Mensch die Daten dennoch interpretieren. Tatsächlich muss der Mensch immer noch sicherstellen, dass die Anwendung gute Daten sammelt, da die Anwendung wirklich nichts über Daten versteht.

Eine andere Möglichkeit, Daten auf neue Weise anzuzeigen, besteht darin, eine Datenerweiterung durchzuführen. Auch hier erledigt die Anwendung das Grunzen, aber es erfordert einen Menschen, um zu bestimmen, welche Art von Augmentation bereitgestellt werden soll. Mit anderen Worten, der Mensch übernimmt den kreativen, interessanten Teil, und die Anwendung schleicht sich einfach an, um sicherzustellen, dass die Dinge funktionieren.

Diese ersten beiden Deep Learning-Anwendungen sind interessant und werden weiterhin Arbeitsplätze schaffen. Die interessanteste Anwendung von Deep Learning ist jedoch für Aktivitäten, die es noch nicht gibt. Ein kreativer Mensch kann nach Möglichkeiten suchen, wie andere tiefes Lernen anwenden, und sich etwas Neues einfallen lassen. Schauen Sie sich einige interessante Anwendungen von KI, maschinellem Lernen und Tiefenlernen an, die gerade erst praktisch werden.

Deep Learning kann die Analyse schneller durchführen

Wenn die meisten Menschen von Analyse sprechen, denken sie an einen Forscher, eine Art Wissenschaftler oder einen Spezialisten. Deep Learning setzt sich jedoch an einigen interessanten Orten durch, an denen die Teilnahme des Menschen erforderlich ist, um seine volle Nutzung zu gewährleisten, z. B. bei der Vorhersage von Verkehrsunfällen.

Stellen Sie sich eine Polizeidienststelle vor, die Ressourcen basierend auf Verkehrsflussmustern zuweist, sodass ein Beamter bereits an der Stelle eines erwarteten Unfalls wartet. Der Leutnant der Polizei musste wissen, wie man eine solche Anwendung benutzt. Natürlich ist diese spezielle Verwendung noch nicht erfolgt, aber es ist sehr wahrscheinlich, dass dies möglich ist, da die vorhandene Technologie bereits verwendet werden kann. Daher ist das Durchführen von Analysen für diejenigen, die vor ihrem Namen „Dr.“ haben, keine Aufgabe mehr. es wird für alle sein.

Die Analyse an sich ist gar nicht so nützlich. Es ist der Vorgang, die Analyse mit einem bestimmten Bedarf in einer bestimmten Umgebung zu kombinieren, der nützlich wird. Was Sie mit der Analyse tun, bestimmt die Auswirkung dieser Analyse auf Sie und Ihre Umgebung. Ein Mensch kann das Konzept der Analyse mit einem Zweck verstehen; Eine Deep-Learning-Lösung kann nur die Analyse durchführen und eine Ausgabe liefern.

Deep Learning kann dazu beitragen, ein besseres Arbeitsumfeld zu schaffen

Deep Learning macht Ihr Leben besser und Ihre Arbeit angenehmer, wenn Sie über Fähigkeiten verfügen, mit denen Sie erfolgreich mit einer KI interagieren können. Dieser Artikel beschreibt, wie KI den Arbeitsplatz in Zukunft verändern kann. Ein wichtiges Element dieser Diskussion ist es, die Arbeit einladender zu gestalten.

Zu einem Zeitpunkt in der Geschichte der Menschheit war die Arbeit für die meisten Menschen wirklich angenehm. Es ist nicht so, dass sie die ganze Zeit gesungen und gelacht haben, aber viele Menschen freuten sich darauf, jeden Tag zu beginnen. Später, während der industriellen Revolution, setzten andere Menschen die Plackerei in die Arbeit ein und machten jeden Tag von der Arbeit zum einzigen Vergnügen, das manche Menschen genossen. Das Problem ist so schwerwiegend geworden, dass Sie beliebte Songs wie „Working for the Weekend“ finden können. Indem Sie die Plackerei vom Arbeitsplatz nehmen, hat Deep Learning das Potenzial, die Arbeit wieder angenehm zu machen.

Deep Learning wird das Arbeitsumfeld in vielerlei Hinsicht stark beeinflussen und nicht nur die tatsächliche Arbeitsleistung. Zum Beispiel haben Technologien, die auf Tiefenlernen basieren, das Potenzial, Ihre Gesundheit und damit Ihre Produktivität zu verbessern. Es ist ein Gewinn für alle, denn Sie werden das Leben und die Arbeit mehr genießen, während Ihr Chef mehr von diesem verborgenen Potenzial aus Ihren Bemühungen herausholt.

Eines der Dinge, die Sie nicht oft sehen, ist die Auswirkung einer sinkenden Geburtenrate in Industrieländern auf die Produktivität. Dieser McKinsey-Artikel greift dieses Problem in gewissem Maße auf und zeigt die möglichen Auswirkungen von Deep Learning auf verschiedene Branchen. Wenn der derzeitige Trend anhält, bedeutet weniger verfügbare Arbeitskräfte, dass die Zahl der Beschäftigten am Arbeitsplatz erhöht werden muss.

Sie fragen sich jedoch möglicherweise über Ihre Zukunft, wenn Sie befürchten, dass Sie sich möglicherweise nicht an die neue Realität anpassen können. Das Problem ist, dass Sie möglicherweise nicht genau wissen, ob Sie in Sicherheit sind. In Artificial Intelligence For Dummies von John Paul Mueller und Luca Massaron [Wiley] sehen Sie Diskussionen über AI-sichere Berufe und neue Berufe, die AI schaffen wird. Sie können sogar herausfinden, wie Sie möglicherweise irgendwann im Weltraum arbeiten. Leider wollen nicht alle so etwas tun, so wie es die Ludditen während der industriellen Revolution nicht getan haben. Sicherlich wird das, was die KI verspricht, noch größere Konsequenzen haben als die industrielle Revolution (lesen Sie über die Auswirkungen der industriellen Revolution) und noch störender sein. Einige Politiker, wie Andrew Wang, sehen bereits kurzfristige Lösungen wie das universelle Grundeinkommen. Wenn diese Richtlinien in Kraft treten, können sie dazu beitragen, die Auswirkungen der KI zu verringern. Sie bieten jedoch keine langfristige Lösung. Irgendwann wird sich die Gesellschaft aufgrund der KI erheblich von der heutigen Gesellschaft unterscheiden, da die industrielle Revolution die Gesellschaft bereits verändert hat.

Deep Learning kann dazu beitragen, obskure oder detaillierte Informationen zu recherchieren

Computer können eine Sache erledigen - den Mustervergleich - und das außergewöhnlich gut (und viel besser als Menschen. Wenn Sie jemals das Gefühl hatten, in Informationen zu schweben und nichts davon mit Ihrem aktuellen Bedarf zu tun zu haben, sind Sie nicht allein. Informationen Überlastung stellt seit vielen Jahren ein Problem dar und verschlechtert sich jedes Jahr. Sie finden viele Ratschläge zum Umgang mit Informationsüberlastung. Das Problem ist, dass Sie immer noch in Informationen ertrinken. Anstelle von Monaten kann eine gute Deep-Learning-Lösung die benötigten Informationen in den meisten Fällen innerhalb weniger Stunden finden.

Zu wissen, dass die Informationen vorhanden sind, reicht jedoch in der Regel nicht aus. Sie benötigen Informationen, die detailliert genug sind, um Ihre Frage vollständig zu beantworten. Dies bedeutet häufig, dass Sie mehr als eine Quelle suchen und die Informationen konsolidieren müssen. Auch hier könnte eine Deep-Learning-Lösung Muster finden und die Daten für Sie zusammenführen, sodass Sie die Eingaben aus mehreren Quellen nicht manuell kombinieren müssen.

Nachdem AI die Daten gefunden und die verschiedenen Quellen zu einem zusammenhängenden Bericht zusammengefasst hat (wie Sie hoffen), hat es alles getan, was es für Sie tun kann. Es liegt immer noch am Menschen, die Informationen zu verstehen und einen Weg zu finden, sie erfolgreich zu nutzen. Der Computer entfernt den kreativen Teil der Aufgabe nicht. Es macht die mühsame Suche nach den Ressourcen überflüssig, die zur Ausführung des kreativen Teils der Aufgabe erforderlich sind. Wenn die Informationen weiter zunehmen, ist mit einem Anstieg der Anzahl der Personen zu rechnen, die sich auf die Suche nach detaillierten oder undurchsichtigen Informationen spezialisiert haben.

Der Informationsbroker wird zu einem wesentlichen Bestandteil der Gesellschaft und stellt einen interessanten Karriereweg dar, von dem viele Menschen noch nicht einmal gehört haben. Dieser Artikel bietet eine gute Zusammenfassung der Aufgaben von Informationsbrokern.

Tiefes Lernen kann beim Entwerfen von Gebäuden helfen

Die meisten Menschen betrachten Architektur als kreatives Handwerk. Stellen Sie sich vor, Sie planen das nächste Empire State Building oder ein anderes Gebäude, das den Test der Zeit bestehen wird. In der Vergangenheit hat die Planung eines solchen Gebäudes Jahre gedauert. Seltsamerweise baute der Bauunternehmer das Empire State Building in etwas mehr als einem Jahr, aber das ist normalerweise nicht der Fall. Tiefes Lernen und Computertechnologie können dazu beitragen, die Zeit für das Entwerfen und Bauen von Gebäuden erheblich zu verkürzen, indem sie beispielsweise virtuelle exemplarische Vorgehensweisen ermöglichen. Tatsächlich verbessert der Einsatz von Deep Learning das Leben von Architekten in erheblichem Maße.

Es ist jedoch nicht einmal die beeindruckendste Leistung, ein Design in eine virtuelle Tour zu verwandeln. Mithilfe von Deep Learning können Konstrukteure potenzielle technische Probleme lokalisieren, Stresstests durchführen und auf andere Weise für Sicherheit sorgen, bevor die Konstruktion das Zeichenbrett verlässt. Diese Funktionen minimieren die Anzahl der Probleme, die nach der Inbetriebnahme eines Gebäudes auftreten, und der Architekt kann sich über die Erfolge und nicht über die Verachtung und die potenzielle Tragödie eines Ausfalls freuen.

Tiefes Lernen kann die Sicherheit erhöhen

Unfälle passieren! Deep Learning kann jedoch dazu beitragen, Unfälle zu vermeiden - zumindest größtenteils. Durch die Analyse komplexer Muster in Echtzeit kann Deep Learning Menschen helfen, die an verschiedenen Aspekten der Sicherheitssicherung beteiligt sind. Durch die frühzeitige Verfolgung verschiedener Verkehrsmuster und die Vorhersage des Unfallpotenzials könnte eine Deep-Learning-Lösung beispielsweise Sicherheitsexperten Vorschläge zur Verhinderung des Unfalls liefern. Ein Mensch konnte die Analyse aufgrund zu vieler Variablen nicht durchführen. Eine Deep-Learning-Lösung kann jedoch die Analyse durchführen und dann einem Menschen eine Ausgabe zur potenziellen Implementierung bereitstellen.

Wie bei jedem anderen Beruf, bei dem es um tiefes Lernen geht, fungiert der Mensch als verständnisvoller Teil der Lösung. Verschiedene Arten von Unfällen werden die Fähigkeit einer Deep-Learning-Lösung, jedes Mal präzise Lösungen bereitzustellen, zunichte machen. Menschen sind nicht vorhersehbar, aber andere Menschen können die Wahrscheinlichkeit verringern, dass etwas Schreckliches passiert, wenn sie die richtigen Informationen erhalten. Die Deep-Learning-Lösung liefert die richtigen Informationen, erfordert jedoch menschliche Weitsicht und Intuition, um die Informationen richtig zu interpretieren.

  1. ProgrammierungBig DataData Science10 Anwendungen, die tiefes Lernen erfordern

Von John Paul Müller, Luca Müller

Dieser Artikel ist zu kurz. Es kann nicht einmal anfangen zu beschreiben, wie Deep Learning Sie in Zukunft beeinflussen wird. Betrachten Sie diesen Artikel als ein verlockendes Leckerbissen - eine Vorspeise, die Ihren Appetit anregt, die Welt des tiefen Lernens weiter zu erforschen.

Diese Deep-Learning-Anwendungen sind in einigen Fällen bereits weit verbreitet. Sie haben heute wahrscheinlich mindestens eine davon verwendet, und höchstwahrscheinlich mehr als nur eine. Obwohl die Technologie inzwischen weit verbreitet ist, ist sie eigentlich nur der Anfang. Wir sind am Anfang von etwas und die KI ist zu diesem Zeitpunkt noch ziemlich unausgereift.

Wiederherstellen der Farbe von Fotos mit Deep Learning-Anwendungen

In diesem Artikel werden Killerroboter, dystopische Futures, KI-Run-Amok oder andere sensationelle Szenarien, die Sie möglicherweise in den Filmen sehen, nicht behandelt. Die Informationen, die Sie hier finden, beziehen sich auf real existierende KI-Anwendungen, mit denen Sie heute interagieren können.

Deep Learning kann verwendet werden, um die Farbe von Schwarzweißvideos und -bildern wiederherzustellen

Wahrscheinlich haben Sie einige Schwarzweißvideos oder Bilder von Familienmitgliedern oder besonderen Ereignissen, die Sie gerne in Farbe sehen würden. Farbe besteht aus drei Elementen: Farbton (die tatsächliche Farbe), Wert (die Dunkelheit oder Helligkeit der Farbe) und Sättigung (die Intensität der Farbe). Seltsamerweise sind viele Künstler farbenblind und nutzen den Farbwert in ihren Kreationen. Das Fehlen eines Farbtons (das Element, das der Schwarzweißkunst fehlt) ist also nicht das Ende der Welt. Im Gegenteil, einige Künstler sehen es als Vorteil an.

Wenn Sie etwas in Schwarzweiß betrachten, sehen Sie Wert und Sättigung, aber keinen Farbton. Bei der Kolorierung wird der Farbton wieder hinzugefügt. Künstler führen diesen Vorgang in der Regel mit einer sorgfältigen Auswahl einzelner Farben durch. AI hat diesen Prozess jedoch mithilfe von Convolutional Neural Networks (CNNs) automatisiert.

Die einfachste Möglichkeit, CNN zum Einfärben zu verwenden, besteht darin, eine Bibliothek zu finden, die Ihnen hilft. Die Algorithmia-Site bietet eine solche Bibliothek und zeigt einen Beispielcode. Sie können die Anwendung auch testen, indem Sie eine URL in das angegebene Feld einfügen. Dieser Petapixel.com-Artikel beschreibt, wie gut diese Anwendung funktioniert. Es ist absolut erstaunlich!

Deep Learning kann die Posen einer Person in Echtzeit approximieren

Personen-Posen sagen Ihnen nicht, wer sich in einem Videostream befindet, sondern welche Elemente einer Person sich im Videostream befinden. Wenn Sie beispielsweise eine Personenpose verwenden, können Sie feststellen, ob und wo der Ellbogen der Person im Video angezeigt wird. In diesem Artikel erfahren Sie mehr über die Funktionsweise dieser gesamten Visualisierungstechnik. In der Tat können Sie anhand einer kurzen Animation von einer Person im ersten Fall und drei Personen im zweiten Fall sehen, wie das System funktioniert.

Posen von Personen können alle möglichen nützlichen Zwecke haben. Zum Beispiel könnten Sie eine Personenpose verwenden, um Menschen dabei zu helfen, ihre Form für verschiedene Sportarten zu verbessern - von Golf bis Bowling. Eine Personenhaltung könnte auch neue Arten von Videospielen ermöglichen. Stellen Sie sich vor, Sie können die Position einer Person für ein Spiel ohne die übliche Auswahl an umständlicher Ausrüstung nachverfolgen. Theoretisch könnten Sie Personenposen verwenden, um eine Tatortanalyse durchzuführen oder die Möglichkeit zu ermitteln, dass eine Person ein Verbrechen begeht.

Eine weitere interessante Anwendung der Posenerkennung ist für medizinische und Rehabilitationszwecke. Durch Deep Learning unterstützte Software kann Ihnen mitteilen, ob Sie Ihre Übungen korrekt ausführen, und Sie können Ihre Verbesserungen nachverfolgen. Eine solche Anwendung kann die Arbeit eines professionellen Rehabilitators unterstützen, indem Sie sich um Sie kümmern, wenn Sie sich nicht in einer medizinischen Einrichtung befinden (eine Aktivität namens Telerehabilitation).

Glücklicherweise können Sie heute mit der Bibliothek tfjs-models (PoseNet) mit der Arbeit an Personenposen beginnen. Sie können es mit einer Webcam in Aktion sehen, die den Quellcode enthält. Das Laden des Beispiels dauert eine Weile, daher müssen Sie geduldig sein.

Deep Learning kann Verhaltensanalysen in Echtzeit durchführen

Die Verhaltensanalyse geht einen Schritt weiter als die Analyse der Person. Bei der Verhaltensanalyse geht es immer noch nicht darum, wen, sondern wie. Diese spezielle KI-Anwendung wirkt sich darauf aus, wie Anbieter Produkte und Websites entwerfen. Artikel wie dieser aus Amplitude gehen sehr weit, um die Verwendung der Verhaltensanalyse vollständig zu definieren und zu charakterisieren. In den meisten Fällen können Sie anhand der Verhaltensanalyse feststellen, ob der vom Produktdesigner erwartete Prozess nicht mit dem tatsächlich verwendeten Prozess übereinstimmt.

Verhaltensanalysen spielen auch in anderen Lebensbereichen eine Rolle. Beispielsweise kann eine Verhaltensanalyse dazu beitragen, dass Angehörige der Ärzteschaft potenzielle Probleme mit Menschen mit bestimmten Erkrankungen wie Autismus erkennen und den Patienten bei der Bewältigung dieser Probleme unterstützen. Die Verhaltensanalyse kann auch Lehrern der physischen Künste helfen, Schülern zu zeigen, wie sie ihre Fähigkeiten verbessern können. Möglicherweise wird es auch in der Anwaltschaft verwendet, um das Motiv zu ermitteln. (Die Schuld ist offensichtlich, aber warum eine Person etwas tut, ist wesentlich für eine gerechte Beseitigung eines unerwünschten Verhaltens.)

Glücklicherweise können Sie mit Python bereits Verhaltensanalysen durchführen.

Deep Learning kann zum Übersetzen von Sprachen verwendet werden

Das Internet hat eine Umgebung geschaffen, in der Sie nicht wissen können, mit wem Sie wirklich sprechen, wo sich diese Person befindet oder manchmal sogar, wenn die Person mit Ihnen spricht. Eines hat sich jedoch nicht geändert: Die Notwendigkeit, eine Sprache in eine andere zu übersetzen, wenn die beiden Parteien keine gemeinsame Sprache sprechen. In einigen Fällen kann eine Fehlübersetzung humorvoll sein, vorausgesetzt, beide Parteien haben Sinn für Humor.

Die Fehlübersetzung hat jedoch auch zu allen möglichen schwerwiegenden Konsequenzen geführt, einschließlich des Krieges. Folglich ist eine sorgfältige Auswahl des zu verwendenden Produkts wichtig, obwohl die Übersetzungssoftware im Internet äußerst zugänglich ist. Eine der beliebtesten dieser Anwendungen ist Google Translate, es stehen jedoch auch viele andere Anwendungen zur Verfügung, z. B. DeepL. Laut Forbes ist die maschinelle Übersetzung ein Bereich, in dem sich AI auszeichnet.

Übersetzungsanwendungen basieren im Allgemeinen auf bidirektionalen, wiederkehrenden neuronalen Netzen (BRNNs). Sie müssen keine eigene BRNN erstellen, da Sie über viele vorhandene APIs verfügen, aus denen Sie auswählen können. Beispielsweise können Sie über die Bibliothek Python-Zugriff auf die Google Translate-API gewähren. Der Punkt ist, dass Übersetzung möglicherweise eine der beliebtesten Deep-Learning-Anwendungen ist und von vielen Menschen verwendet wird, ohne darüber nachzudenken.

Deep Learning kann zur Abschätzung des Solareinsparpotenzials verwendet werden

Es ist schwierig festzustellen, ob Solarenergie an Ihrem Standort tatsächlich funktioniert, es sei denn, viele andere Menschen nutzen sie ebenfalls. Darüber hinaus ist es noch schwieriger zu ermitteln, in welchem ​​Umfang Sie möglicherweise sparen. Natürlich möchten Sie keine Solarenergie installieren, wenn diese nicht Ihren Nutzungszielen entspricht, was möglicherweise keine langfristigen Kosteneinsparungen beinhaltet (obwohl dies im Allgemeinen der Fall ist). Einige Projekte zur Vertiefung des Lernens helfen Ihnen jetzt dabei, das Rätselraten der Sonnenenergie zu beenden, einschließlich des Projekts Sonnendach. Glücklicherweise können Sie diese Art der Vorhersage auch in Ihrer Python-Anwendung unterstützen.

KI kann Menschen bei Computerspielen schlagen

Der Wettbewerb zwischen KI und Menschen stößt weiterhin auf Interesse. Vom Schachgewinn bis zum Sieg bei Go scheint die KI unschlagbar geworden zu sein - zumindest in einem Spiel unschlagbar. Im Gegensatz zu Menschen ist die KI spezialisiert, und eine KI, die bei Go gewinnen kann, kann beim Schach wahrscheinlich nicht gut abschneiden. Trotzdem wird 2017 oft als Beginn des Endes für Menschen über KI in Spielen gefeiert. Natürlich gibt es den Wettbewerb schon seit einiger Zeit, und Sie können wahrscheinlich Wettbewerbe finden, die die KI weit vor 2017 gewonnen hat. In der Tat geben einige Quellen das Datum für einen Go-Sieg bereits im Oktober 2015 an. Der Artikel bei Interesting Engineering beschreibt 11 andere Male, die die KI gewonnen hat.

Das Problem besteht darin, eine KI zu erstellen, die ein bestimmtes Spiel gewinnen kann, und zu erkennen, dass die KI bei anderen Spielen möglicherweise nicht gut abschneidet, wenn sie sich auf dieses Spiel spezialisiert. Der Prozess der Erstellung einer KI für nur ein Spiel kann schwierig aussehen. In diesem Artikel wird beschrieben, wie Sie eine einfache Schach-KI erstellen, die einen Schachmeister zwar nicht besiegt, aber mit einem fortgeschrittenen Spieler gut zurechtkommt.

Es ist jedoch ein bisschen zu früh, um zu sagen, dass die Leute aus dem Spiel sind. In Zukunft können die Spieler mit mehr als einem Spiel gegen die KI antreten. Beispiele für diese Art von Wettkämpfen gibt es bereits zuhauf, beispielsweise Menschen, die bei einem Triathlon von Spielen mit drei statt nur einem Sportereignis auftreten. Der Wettbewerb würde dann zu einem Wettkampf mit Flexibilität werden: Die KI könnte sich nicht einfach hocken und nur ein Spiel lernen, sodass der Mensch einen Flexibilitätsvorteil hätte. Diese Art der KI-Nutzung zeigt, dass Menschen und KI möglicherweise in Zukunft zusammenarbeiten müssen, wobei sich die KI auf bestimmte Aufgaben spezialisiert hat und der Mensch die erforderliche Flexibilität bietet, um alle erforderlichen Aufgaben auszuführen.

Deep Learning kann verwendet werden, um Stimmen zu erzeugen

Möglicherweise spricht Ihr Auto bereits mit Ihnen. Viele Autos sprechen jetzt regelmäßig mit Menschen. Seltsamerweise ist die Stimmenerzeugung oft so gut, dass es schwierig ist, die erzeugte Stimme von einer echten zu unterscheiden. In einigen Artikeln wird darüber gesprochen, wie die Erfahrung, Computerstimmen zu finden, die sich real anhören, immer häufiger wird. Das Problem wird jetzt genügend beachtet, da viele Callcenter Ihnen mitteilen, dass Sie mit einem Computer und nicht mit einer Person sprechen.

Obwohl die Anrufausgabe auf Antwortskripten beruht, die es ermöglichen, Antworten mit einem extrem hohen Maß an Sicherheit zu generieren, ist die Spracherkennung etwas schwieriger durchzuführen (sie wurde jedoch erheblich verbessert). Um mit der Spracherkennung erfolgreich zu arbeiten, müssen Sie Ihre Eingabe häufig auf bestimmte Schlüsselbegriffe beschränken. Durch die Verwendung von Schlüsselwörtern, die von der Spracherkennung verstanden werden sollen, müssen Benutzer eine Anforderung nicht wiederholen. Die Notwendigkeit spezifischer Begriffe bedeutet, dass Sie mit einem Computer sprechen - fragen Sie einfach nach etwas Unerwartetem, und der Computer weiß nicht, was er damit tun soll.

Die einfache Möglichkeit, Ihr eigenes Sprachsystem zu implementieren, besteht darin, auf eine vorhandene API wie Cloud Speech to Text zurückzugreifen. Natürlich benötigen Sie möglicherweise etwas, das Sie anpassen können. In diesem Fall ist die Verwendung einer API hilfreich. In diesem Artikel erfahren Sie, wie Sie mit Python Ihre eigene sprachbasierte Anwendung erstellen.

Deep Learning kann verwendet werden, um Demografie vorherzusagen

Demografie, jene Vital- oder Sozialstatistik, die Menschen nach bestimmten Merkmalen gruppiert, war schon immer Teil der Kunst und Teil der Wissenschaft. Sie finden eine beliebige Anzahl von Artikeln darüber, wie Sie Ihren Computer dazu bringen können, demografische Daten für Kunden (oder potenzielle Kunden) zu generieren. Die Verwendung von demografischen Merkmalen ist breit gefächert. Sie werden jedoch beispielsweise verwendet, um vorherzusagen, welches Produkt eine bestimmte Gruppe kaufen wird (im Vergleich zur Konkurrenz). Demografische Daten sind ein wichtiges Mittel, um Personen zu kategorisieren und dann auf der Grundlage ihrer Gruppenzuordnungen Maßnahmen von ihrer Seite vorherzusagen. Die folgenden Methoden werden beim Sammeln von demografischen Daten häufig für AIs angegeben:

  • Historisch: Basierend auf früheren Aktionen verallgemeinert eine KI, welche Aktionen Sie möglicherweise in Zukunft ausführen werden. Aktuelle Aktivität: Basierend auf der Aktion, die Sie jetzt ausführen, und möglicherweise anderen Merkmalen, wie z. B. dem Geschlecht, sagt ein Computer Ihre nächste Aktion voraus. Merkmale: Basierend auf den Eigenschaften, die Sie definieren, wie z. B. Geschlecht, Alter und Wohnort, sagt ein Computer die Entscheidungen voraus, die Sie wahrscheinlich treffen werden.

Sie finden Artikel über die Vorhersagemöglichkeiten von AI, die fast zu gut scheinen, um wahr zu sein. In diesem Medium-Artikel heißt es beispielsweise, dass AI Ihre demografischen Daten jetzt nur auf der Grundlage Ihres Namens vorhersagen kann. Das Unternehmen in diesem Artikel, Demografy, gibt an, Geschlecht, Alter und kulturelle Affinität ausschließlich anhand des Namens anzugeben. Obwohl die Website behauptet, dass sie zu 100 Prozent korrekt ist, ist diese Statistik höchst unwahrscheinlich, da einige Namen geschlechtsspezifisch sind, z. B. Renee, und andere in einigen Ländern einem Geschlecht und in anderen Ländern einem anderen Geschlecht zugeordnet sind. Ja, die demografische Vorhersage kann funktionieren, aber seien Sie vorsichtig, bevor Sie alles glauben, was diese Websites Ihnen sagen.

Wenn Sie mit der demografischen Vorhersage experimentieren möchten, finden Sie online eine Reihe von APIs. Mit der DeepAI-API können Sie beispielsweise anhand des Aussehens einer Person in einem Video Alter, Geschlecht und kulturellen Hintergrund vorhersagen. Jede der Online-APIs ist spezialisiert, daher müssen Sie die API mit Blick auf die Art der Eingabedaten auswählen, die Sie bereitstellen können.

KI kann Kunst aus realen Bildern erstellen

Deep Learning kann den Inhalt eines realen Bildes und eines vorhandenen Meisters für Stil verwenden, um eine Kombination aus beiden zu erstellen. Tatsächlich erzielen einige Kunstwerke, die mit diesem Ansatz hergestellt wurden, hohe Preise auf dem Auktionsblock. Sie können alle Arten von Artikeln über diese Art von Kunstgeneration finden, wie zum Beispiel diesen Artikel über Kabel.

Auch wenn Bilder zum Aufhängen an der Wand gut geeignet sind, möchten Sie vielleicht andere Arten von Kunstwerken produzieren. Beispielsweise können Sie mit Produkten wie Smoothie 3-D eine 3D-Version Ihres Bildes erstellen. Es ist nicht dasselbe wie eine Skulptur zu schaffen. Stattdessen verwenden Sie einen 3D-Drucker, um eine 3D-Version Ihres Bildes zu erstellen. Schauen Sie sich ein Experiment an, das Sie durchführen können, um zu sehen, wie der Prozess funktioniert.

Die Ausgabe einer KI muss auch nicht aus etwas Visuellem bestehen. Mit Deep Learning können Sie beispielsweise Musik basierend auf dem Inhalt eines Bildes erstellen. Diese Kunstform macht die Methode der KI klarer. Die KI wandelt Inhalte, die sie nicht versteht, von einer Form in eine andere um. Als Menschen sehen und verstehen wir die Transformation, aber alles, was der Computer sieht, sind Zahlen, die mit cleveren Algorithmen verarbeitet werden müssen, die von anderen Menschen erstellt wurden.

Deep Learning kann zur Vorhersage von Naturkatastrophen eingesetzt werden

Die Menschen haben versucht, Naturkatastrophen vorherzusagen, solange es Menschen und Naturkatastrophen gab. Niemand möchte Teil eines Erdbebens, eines Tornados, eines Vulkanausbruchs oder einer anderen Naturkatastrophe sein. Schnelle Flucht ist in diesem Fall das Hauptaugenmerk, da der Mensch seine Umwelt noch nicht gut genug kontrollieren kann, um Naturkatastrophen vorzubeugen.

Deep Learning bietet die Möglichkeit, nach äußerst subtilen Mustern zu suchen, die den Geist des Menschen verwirren. Diese Muster können laut dem Artikel über die Google-Lösung dazu beitragen, eine Naturkatastrophe vorherzusagen. Die Tatsache, dass die Software jede Katastrophe vorhersagen kann, ist einfach erstaunlich. Dieser Artikel warnt jedoch davor, dass es ein Fehler wäre, sich ausschließlich auf solche Software zu verlassen.

Übermäßiges Vertrauen in die Technologie ist ein ständiges Thema. Seien Sie also nicht überrascht, dass Tiefenlernen auch bei der Vorhersage von Naturkatastrophen nicht perfekt ist.

  1. ProgrammierungBig DataData ScienceDeep Learning und wiederkehrende neuronale Netze

Von John Paul Müller, Luca Müller

Neuronale Netze bieten eine Transformation Ihrer Eingabe in eine gewünschte Ausgabe. Selbst beim tiefen Lernen ist der Prozess derselbe, obwohl die Transformation komplexer ist. Im Gegensatz zu einem einfacheren neuronalen Netzwerk, das aus wenigen Schichten besteht, benötigt Deep Learning mehr Schichten, um komplexe Transformationen durchzuführen. Die Ausgabe von einer Datenquelle verbindet sich mit der Eingabeschicht des neuronalen Netzwerks, und die Eingabeschicht beginnt mit der Verarbeitung der Daten. Die ausgeblendeten Ebenen ordnen die Muster zu und verknüpfen sie mit einer bestimmten Ausgabe, die ein Wert oder eine Wahrscheinlichkeit sein kann. Dieser Vorgang eignet sich perfekt für jede Art von Eingabe und eignet sich besonders gut für Bilder.

Nachdem jeder Layer seine Daten verarbeitet hat, gibt er die transformierten Daten an den nächsten Layer aus. Diese nächste Schicht verarbeitet die Daten völlig unabhängig von den vorherigen Schichten. Die Verwendung dieser Strategie impliziert, dass, wenn Sie ein Video in Ihr neuronales Netzwerk einspeisen, das Netzwerk jedes Bild einzeln nacheinander verarbeitet und das Ergebnis sich auch dann nicht ändert, wenn Sie die Reihenfolge der bereitgestellten Bilder gemischt haben . Wenn Sie ein Netzwerk auf diese Weise betreiben, erhalten Sie keinen Vorteil aus der Reihenfolge der Informationsverarbeitung.

Die Erfahrung lehrt jedoch auch, dass man zum Verstehen eines Prozesses manchmal Ereignisse nacheinander beobachten muss. Wenn Sie die Erfahrungen aus einem vorherigen Schritt nutzen, um einen neuen Schritt zu erkunden, können Sie die Lernkurve verkürzen und den Zeit- und Arbeitsaufwand verringern, der zum Verstehen der einzelnen Schritte erforderlich ist.

Wiederkehrende neuronale Netze: Modellierung von Sequenzen unter Verwendung von Speicher

Bei einigen neuronalen Architekturen können Sie eine Folge von Elementen nicht gleichzeitig mit einer einzigen Eingabe verarbeiten. Wenn Sie beispielsweise eine Reihe von monatlichen Produktverkäufen haben, nehmen Sie die Verkaufszahlen mit zwölf Eingaben auf, eine für jeden Monat, und lassen Sie sie vom neuronalen Netzwerk gleichzeitig analysieren. Wenn Sie also längere Sequenzen haben, müssen Sie diese mit einer größeren Anzahl von Eingängen unterbringen, und Ihr Netzwerk wird ziemlich umfangreich, da jeder Eingang mit jedem anderen Eingang verbunden werden sollte. Am Ende haben Sie ein Netzwerk, das sich durch eine große Anzahl von Verbindungen auszeichnet (was sich auch in vielen Gewichten niederschlägt).

Recurrent Neural Networks (RNNs) sind eine Alternative zu Perceptron und CNNs. Sie tauchten zum ersten Mal in den 1980er Jahren auf, und verschiedene Forscher haben daran gearbeitet, sie zu verbessern, bis sie vor kurzem dank der Entwicklungen im Bereich des tiefen Lernens und der Rechenleistung an Popularität gewannen.

Die Idee hinter RNNs ist einfach: Sie untersuchen jedes Element der Sequenz einmal und behalten den Speicher, damit sie es bei der Untersuchung des nächsten Elements in der Sequenz wiederverwenden können. Es ähnelt der Funktionsweise des menschlichen Geistes beim Lesen von Text: Eine Person liest den Text Buchstabe für Buchstabe, versteht jedoch Wörter, indem sie sich an jeden Buchstaben im Wort erinnert. In ähnlicher Weise kann eine RNN ein Wort einem Ergebnis zuordnen, indem sie sich die Reihenfolge der empfangenen Buchstaben merkt. Eine Erweiterung dieser Technik ermöglicht es einem RNN zu bestimmen, ob eine Phrase positiv oder negativ ist - eine weit verbreitete Analyse, die als Stimmungsanalyse bezeichnet wird. Das Netzwerk verknüpft eine positive oder negative Antwort mit bestimmten Wortfolgen, die es in Trainingsbeispielen gesehen hat.

Sie stellen ein RNN grafisch als eine neuronale Einheit (auch als Zelle bezeichnet) dar, die einen Eingang mit einem Ausgang verbindet, aber auch eine Verbindung zu sich selbst herstellt. Diese Selbstverbindung stellt das Konzept der Rekursion dar, die eine Funktion ist, die auf sich selbst angewendet wird, bis sie eine bestimmte Ausgabe erreicht. Eines der am häufigsten verwendeten Beispiele für Rekursion ist die Berechnung einer Fakultät. Das Bild unten zeigt ein bestimmtes RNN-Beispiel, in dem eine Buchstabenfolge verwendet wird, um das Wort Jazz zu erzeugen. Die rechte Seite des Bildes unten zeigt eine Darstellung des Verhaltens der RNN-Einheit, die Jazz als Eingabe empfängt, aber es gibt tatsächlich nur die eine Einheit, wie auf der linken Seite gezeigt.

Deep Learning und wiederkehrende neuronale Netze

Dieses Bild zeigt eine rekursive Zelle auf der linken Seite und erweitert sie als entfaltete Folge von Einheiten, die die einzelnen Buchstaben des Wortes Jazz auf der rechten Seite erhalten. Es beginnt mit j, gefolgt von den anderen Buchstaben. Während dieses Vorgangs gibt die RNN eine Ausgabe aus und ändert ihre internen Parameter. Durch Ändern seiner internen Parameter lernt das Gerät aus den empfangenen Daten und aus dem Speicher der vorherigen Daten. Die Summe dieses Lernens ist der Zustand der RNN-Zelle.

Wenn Sie über neuronale Netze sprechen, werden Sie viele Diskussionen über Gewichte hören. Bei RNNs müssen Sie auch den Begriff Status kennen. Die Gewichte helfen, die Eingabe in eine Ausgabe in einem RNN zu verarbeiten, aber der Zustand enthält die Spuren der Informationen, die der RNN bisher gesehen hat, so dass der Zustand die Funktion des RNN beeinflusst. Der Status ist eine Art Kurzzeitspeicher, der nach Abschluss einer Sequenz zurückgesetzt wird. Wenn eine RNN-Zelle Teile einer Sequenz erhält, geschieht Folgendes:

  1. Verarbeitet sie und ändert den Status bei jeder Eingabe. Gibt eine Ausgabe aus. Nachdem der RNN die letzte Ausgabe gesehen hat, lernt er die besten Gewichte für die Zuordnung der Eingabe zur richtigen Ausgabe unter Verwendung von Backpropagation.

Wiederkehrende neuronale Netze: Erkennen und Übersetzen von Sprache

Die Fähigkeit, Sprachen zu erkennen und zwischen ihnen zu übersetzen, wird von Tag zu Tag wichtiger, da die Volkswirtschaften überall zunehmend globalisiert werden. Sprachübersetzung ist ein Bereich, in dem KI einen entscheidenden Vorteil gegenüber Menschen hat - so sehr, dass in Artikeln von Digitalist Magazine und Forbes in Frage gestellt wird, wie lange der menschliche Übersetzer überleben wird.

Natürlich müssen Sie den Übersetzungsprozess mithilfe von Deep Learning durchführbar machen. Aus der Perspektive der neuronalen Architektur haben Sie mehrere Möglichkeiten:

  • Behalten Sie alle von der RNN-Zelle bereitgestellten Ausgaben bei Behalten Sie die letzte RNN-Zellenausgabe bei

Die letzte Ausgabe ist die Ausgabe der gesamten RNN, da sie nach Abschluss der Sequenzprüfung erstellt wurde. Sie können jedoch die vorherigen Ausgaben verwenden, wenn Sie eine andere Sequenz vorhersagen müssen oder wenn Sie beabsichtigen, nach der aktuellen weitere RNN-Zellen zu stapeln, z. B. wenn Sie mit Convolutional Neural Networks (CNNs) arbeiten. Durch vertikales Setzen von RNNs kann das Netzwerk komplexe Sequenzmuster lernen und Vorhersagen effektiver erstellen.

Sie können RNNs auch horizontal in derselben Ebene stapeln. Das Ermöglichen, dass mehrere RNNs aus einer Sequenz lernen, kann dazu beitragen, dass die Daten besser genutzt werden. Die Verwendung mehrerer RNNs ähnelt CNNs, bei denen jede einzelne Schicht die Tiefe der Windungen verwendet, um Details und Muster aus dem Bild zu lernen. Im Fall mehrerer RNNs kann eine Schicht verschiedene Nuancen der zu untersuchenden Sequenz erfassen.

Das horizontale und vertikale Entwerfen von RNN-Gittern verbessert die Vorhersageleistung. Die Entscheidung, wie die Ausgabe verwendet werden soll, bestimmt jedoch, was eine Deep-Learning-Architektur mit RNNs erreichen kann. Der Schlüssel ist die Anzahl der als Eingaben verwendeten Elemente und die als Ausgabe erwartete Sequenzlänge. Während das Deep Learning-Netzwerk die RNN-Ausgaben synchronisiert, erhalten Sie das gewünschte Ergebnis.

Sie haben einige Möglichkeiten, wenn Sie mehrere RNNs verwenden, wie in der folgenden Abbildung dargestellt:

  • Eins zu eins: Wenn Sie einen Eingang haben und einen Ausgang erwarten. Sie nehmen einen Fall, der sich aus einer bestimmten Anzahl informativer Variablen zusammensetzt, und liefern eine Schätzung, wie beispielsweise eine Anzahl oder eine Wahrscheinlichkeit. Eins zu viele: Hier haben Sie einen Eingang und erwarten eine Folge von Ausgängen. Neuronale Netze mit automatischer Untertitelung verwenden diesen Ansatz: Sie geben ein einzelnes Bild ein und erstellen eine Phrase, die den Bildinhalt beschreibt. Viele zu Eins: Das klassische Beispiel für RNNs. Beispielsweise geben Sie eine Textsequenz ein und erwarten ein einzelnes Ergebnis als Ausgabe. Sie sehen diesen Ansatz für die Erstellung einer Stimmungsanalyse-Schätzung oder einer anderen Klassifizierung des Texts. Viele zu viele: Sie stellen eine Sequenz als Eingabe bereit und erwarten eine resultierende Sequenz als Ausgabe. Dies ist die Kernarchitektur für viele der beeindruckendsten KI-Anwendungen mit Deep-Learning-Funktionen. Dieser Ansatz wird für die maschinelle Übersetzung (z. B. ein Netzwerk, das automatisch eine Phrase aus dem Englischen ins Deutsche übersetzt), für Chatbots (ein neuronales Netzwerk, das Ihre Fragen beantworten und mit Ihnen diskutieren kann) und für die Sequenzkennzeichnung (Klassifizierung der einzelnen Bilder in) verwendet ein Video).
wiederkehrende neuronale Netzeingabe und -ausgabe

Maschinelle Übersetzung ist die Fähigkeit einer Maschine, eine menschliche Sprache korrekt und sinnvoll in eine andere zu übersetzen. Diese Fähigkeit streben Wissenschaftler seit langem an, insbesondere für militärische Zwecke. In dem Artikel von Vasily Zubarev können Sie die faszinierende Geschichte aller Versuche lesen, maschinelle Übersetzungen von US-amerikanischen und russischen Wissenschaftlern durchzuführen. Der eigentliche Durchbruch gelang erst nach der Einführung von GNMT (Google Neural Machine Translation), über das Sie im Google AI-Blog mehr erfahren können. GNMT stützt sich auf eine Reihe von RNNs (unter Verwendung des Many-to-Many-Paradigmas), um die Wortsequenz in der Sprache zu lesen, aus der Sie übersetzen möchten (als Codierschicht bezeichnet) und die Ergebnisse an eine andere RNN-Schicht (die Decodierschicht) zurückzugeben wandelt es in übersetzte Ausgabe um.

Neuronale maschinelle Übersetzung benötigt zwei Ebenen, da sich Grammatik und Syntax einer Sprache von der anderen unterscheiden können. Ein einzelner RNN kann nicht zwei Sprachsysteme gleichzeitig erfassen, daher wird das Encoder-Decoder-Paar benötigt, um die beiden Sprachen zu verarbeiten. Das System ist nicht perfekt, aber es ist ein unglaublicher Fortschritt gegenüber den vorherigen Lösungen, die in Vasily Zubarevs Artikel beschrieben wurden. Es reduziert Fehler in der Wortreihenfolge, lexikalische Fehler (das ausgewählte Übersetzungswort) und Grammatik (wie Wörter verwendet werden) erheblich.

Darüber hinaus hängt die Leistung vom Trainingsumfang, den Unterschieden zwischen den beteiligten Sprachen und ihren spezifischen Merkmalen ab. Zum Beispiel investiert die japanische Regierung aufgrund der Art und Weise, wie die Satzstruktur auf Japanisch aufgebaut ist, jetzt in einen Echtzeit-Sprachübersetzer, um bei den Olympischen Spielen in Tokio im Jahr 2020 zu helfen und den Tourismus durch die Entwicklung einer fortschrittlichen neuronalen Netzwerklösung zu fördern.

RNNs sind der Grund, warum Ihr Sprachassistent Ihnen antworten kann oder Ihr automatischer Übersetzer Ihnen eine fremdsprachige Übersetzung liefern kann. Da ein RNN einfach eine wiederkehrende Operation aus Multiplikation und Summation ist, können Deep-Learning-Netzwerke keine Bedeutung wirklich verstehen. Sie verarbeiten Wörter und Phrasen einfach basierend auf dem, was sie während des Trainings gelernt haben.

Wiederkehrende neuronale Netze: Platzieren der richtigen Beschriftung auf Bildern

Eine weitere mögliche Anwendung von RNNs unter Verwendung des Many-to-Many-Ansatzes ist die Untertitelerzeugung, bei der ein Bild für ein neuronales Netzwerk bereitgestellt und eine Textbeschreibung empfangen wird, in der erläutert wird, was im Bild geschieht. Im Gegensatz zu Chatbots und Maschinenübersetzern, deren Ausgabe vom Menschen verbraucht wird, arbeitet die Untertitelerstellung mit Robotik. Es werden nicht nur Bild- oder Videobeschreibungen erstellt.

Mithilfe von Bildunterschriften können Sehbehinderte mithilfe von Geräten wie dem Horus Wearable ihre Umgebung wahrnehmen oder eine Brücke zwischen Bildern und (textbasierten) Wissensdatenbanken für Roboter schlagen, sodass sie ihre Umgebung besser verstehen können. Sie gehen von speziell entwickelten Datensätzen wie dem Pascal-Satz-Datensatz aus. das Flickr 30K, das aus Flickr-Bildern besteht, die mit Crowd-Sourcing-Anmerkungen versehen sind; oder der MS Coco-Datensatz. In all diesen Datensätzen enthält jedes Bild einen oder mehrere Ausdrücke, die den Bildinhalt erläutern. Im Beispiel mit der MS Coco-Dataset-Nummer 5947 sehen Sie beispielsweise vier fliegende Flugzeuge, die Sie korrekt mit folgenden Bezeichnungen versehen können:

  • Vier Flugzeuge im Himmel obenliegend an einem bewölkten Tag Vier einmotorige Flugzeuge in der Luft an einem wolkigen Tag Eine Gruppe von vier Flugzeugen fliegen in Formation Eine Gruppe Flugzeuge, die durch den Himmel fliegen Eine Flotte von Flugzeugen, die durch den Himmel fliegen

Ein gut trainiertes neuronales Netzwerk sollte in der Lage sein, analoge Phrasen zu produzieren, wenn ein ähnliches Foto angezeigt wird. Google veröffentlichte 2014 zunächst einen Artikel zur Lösung dieses Problems mit dem Namen Show and Tell-Netzwerk oder Neural Image Caption (NIC) und aktualisierte ihn ein Jahr später.

Seitdem hat Google die Netzwerkkarte als Open-Source-Lösung und als Teil des TensorFlow-Frameworks angeboten. Als neuronales Netzwerk besteht es aus einem vorab geschulten CNN (wie Google LeNet, dem Gewinner des ImageNet-Wettbewerbs 2014), das Bilder ähnlich verarbeitet, um Lernen zu übertragen.

Ein Bild wird in eine Folge von Werten umgewandelt, die die vom CNN erkannten Bildmerkmale auf hoher Ebene darstellen. Während des Trainings wird das eingebettete Bild an eine Schicht von RNN übergeben, die die Bildeigenschaften in ihrem internen Zustand speichern. Die CNN vergleicht die von den RNNs erzeugten Ergebnisse mit allen möglichen Beschreibungen, die für das Trainingsbild bereitgestellt werden, und ein Fehler wird berechnet. Der Fehler wird dann auf den Teil des Netzwerks des RNN übertragen, um die Gewichtung des RNN anzupassen und zu lernen, wie Bilder korrekt beschriftet werden. Nach mehrmaliger Wiederholung dieses Vorgangs mit verschiedenen Bildern ist das Netzwerk bereit, neue Bilder anzuzeigen und eine Beschreibung dieser neuen Bilder bereitzustellen.

Wiederkehrende neuronale Netze bieten Möglichkeiten für fortgeschrittenere Innovationen und könnten dazu beitragen, einige notwendige Aufgaben zu automatisieren.

  1. ProgrammierungBig DataData ScienceDeep Learning und Verarbeitung natürlicher Sprachen

Von John Paul Müller, Luca Müller

Zur Vereinfachung können Sie Sprache als eine Folge von Wörtern aus Buchstaben (sowie Satzzeichen, Symbole, Emoticons usw.) anzeigen. Deep Learning verarbeitet die Sprache am besten mithilfe von RNN-Schichten wie LSTM oder GRU. Wenn Sie jedoch wissen, wie Sie RNNs verwenden, erfahren Sie nicht, wie Sie Sequenzen als Eingaben verwenden. Sie müssen die Art der Sequenzen bestimmen. Tatsächlich akzeptieren Deep-Learning-Netzwerke nur numerische Eingabewerte. Computer codieren Buchstabenfolgen, die Sie verstehen, nach einem Protokoll in Zahlen, z. B. nach dem Unicode Transformation Format-8-Bit (UTF-8). UTF-8 ist die am häufigsten verwendete Codierung.

Deep Learning kann auch Textdaten mithilfe von Convolutional Neural Networks (CNNs) anstelle von RNNs verarbeiten, indem Sequenzen als Matrizen dargestellt werden (ähnlich wie bei der Bildverarbeitung). Keras unterstützt CNN-Layer wie den Conv1D, die geordnete Merkmale in der Zeit verarbeiten können, dh Wortfolgen oder andere Signale. Auf die 1D-Faltungsausgabe folgt normalerweise eine MaxPooling1D-Ebene, die die Ausgaben zusammenfasst. Auf Sequenzen angewendete CNNs finden eine Grenze in ihrer Unempfindlichkeit gegenüber der globalen Reihenfolge der Sequenz. (Sie neigen dazu, lokale Muster zu erkennen.) Aus diesem Grund werden sie am besten bei der Sequenzverarbeitung in Kombination mit RNNs verwendet und nicht als Ersatz.

Natural Language Processing (NLP) besteht aus einer Reihe von Verfahren, die die Verarbeitung von Wörtern und Phrasen für statistische Analysen, Algorithmen für maschinelles Lernen und Deep Learning verbessern. NLP verdankt seine Wurzeln der Computerlinguistik, die auf KI-Regeln basierende Systeme wie Expertensysteme unterstützt, die Entscheidungen auf der Grundlage einer Computerübersetzung von menschlichem Wissen, Erfahrung und Denkweise treffen. NLP verdaute unstrukturierte Textinformationen in strukturiertere Daten, sodass Expertensysteme sie leicht manipulieren und auswerten konnten.

Tiefes Lernen hat heute die Oberhand gewonnen, und Expertensysteme sind auf bestimmte Anwendungen beschränkt, bei denen die Interpretierbarkeit und Kontrolle von Entscheidungsprozessen von größter Bedeutung sind (z. B. in medizinischen Anwendungen und bei Entscheidungssyste- men für das Fahrverhalten einiger selbstfahrender Autos). Dennoch ist die NLP-Pipeline für viele Deep-Learning-Anwendungen immer noch von großer Relevanz.

Verarbeitung natürlicher Sprache: Verständnis als Tokenisierung definieren

In einer NLP-Pipeline besteht der erste Schritt darin, Rohtext abzurufen. Normalerweise speichern Sie es im Speicher oder greifen von der Festplatte darauf zu. Wenn die Daten zu groß sind, um in den Arbeitsspeicher zu passen, behalten Sie einen Zeiger auf der Festplatte bei (z. B. den Verzeichnisnamen und den Dateinamen). Im folgenden Beispiel verwenden Sie drei Dokumente (dargestellt durch Zeichenfolgenvariablen), die in einer Liste gespeichert sind (der Dokumentcontainer ist der Corpus in Nat

numpy als np importieren
texts = ["Mein Hund versteht sich mit Katzen",
"Diese Katze ist bösartig",
"Mein Hund freut sich über das Mittagessen"]

Nachdem Sie den Text erhalten haben, verarbeiten Sie ihn. Während Sie die einzelnen Phrasen verarbeiten, extrahieren Sie die relevanten Funktionen aus dem Text (Sie erstellen normalerweise eine Matrix mit vielen Wörtern) und übergeben alles an ein Lernmodell, z. B. einen Deep-Learning-Algorithmus. Während der Textverarbeitung können Sie verschiedene Transformationen verwenden, um den Text zu bearbeiten (wobei die Tokenisierung die einzige obligatorische Transformation ist):

  • Normalisierung: Entfernen Sie die Großschreibung. Reinigung: Entfernen Sie nicht kontextbezogene Elemente wie Satzzeichen und Zahlen. Tokenization: Teilen Sie einen Satz in einzelne Wörter. Stoppen der Wortentfernung: Entfernen Sie gebräuchliche, nicht informative Wörter, die dem Satz keine Bedeutung verleihen, z. B. die Artikel the und a. Das Entfernen von Negationen wie "Nicht" kann sich nachteilig auswirken, wenn Sie die Stimmung erraten möchten. Stemming: Reduzieren Sie ein Wort auf seinen Stamm (das ist die Wortform vor dem Hinzufügen von Flexionszusätzen). Ein Algorithmus, Stemmer genannt, kann dies basierend auf einer Reihe von Regeln tun. Lemmatisierung: Transformieren Sie ein Wort in seine Wörterbuchform (das Lemma). Es ist eine Alternative zum Stemming, aber komplexer, weil Sie keinen Algorithmus verwenden. Stattdessen verwenden Sie ein Wörterbuch, um jedes Wort in sein Lemma umzuwandeln. Pos-Tagging: Kennzeichnen Sie jedes Wort in einer Phrase mit seiner grammatikalischen Rolle im Satz (z. B. Kennzeichnen eines Wortes als Verb oder als Substantiv). N-Gramm: Ordnen Sie jedes Wort einer bestimmten Zahl (dem n in n-Gramm) der folgenden Wörter zu und behandeln Sie sie als eindeutige Menge. Normalerweise eignen sich Bi-Gramme (eine Reihe von zwei benachbarten Elementen oder Token) und Tri-Gramme (eine Reihe von drei benachbarten Elementen oder Token) am besten für Analysezwecke.

Um diese Transformationen zu erreichen, benötigen Sie möglicherweise ein spezielles Python-Paket wie NLTK oder Scikit-learn. Wenn Sie mit Deep Learning und einer Vielzahl von Beispielen arbeiten, benötigen Sie nur grundlegende Transformationen: Normalisierung, Bereinigung und Tokenisierung. Die tiefen Lernebenen können bestimmen, welche Informationen extrahiert und verarbeitet werden sollen. Wenn Sie mit wenigen Beispielen arbeiten, müssen Sie so viel NLP-Verarbeitung wie möglich bereitstellen, damit das Deep-Learning-Netzwerk trotz der wenigen Anleitungen, die in den Beispielen enthalten sind, bestimmen kann, was zu tun ist.

Keras bietet eine Funktion, keras.preprocessing.text.Tokenizer, die normalisiert (unter Verwendung des unteren Parametersatzes auf True) und bereinigt (der filter-Parameter enthält eine Zeichenfolge, die entfernt werden muss, normalerweise diese: '! ”# $% & ( ) * +, -. / :; <=>? @ [\] ^ _ `{|} ~ ') und tokenizes.

Verarbeitung in natürlicher Sprache: Alle Dokumente in eine Tasche packen

Nach der Verarbeitung des Texts müssen Sie die relevanten Features extrahieren. Dies bedeutet, dass der verbleibende Text in numerische Informationen umgewandelt wird, die das neuronale Netzwerk verarbeiten kann. Dies geschieht üblicherweise mit dem Bag-of-Word-Ansatz, der durch Frequenzcodierung oder Binärcodierung des Texts erhalten wird. Dieser Vorgang entspricht der Umwandlung jedes Wortes in eine Matrixspalte, die so breit ist wie die Anzahl der Wörter, die Sie darstellen müssen. Das folgende Beispiel zeigt, wie dieser Prozess erreicht wird und was er impliziert. Als ersten Schritt bereiten Sie eine grundlegende Normalisierung und Tokenisierung mit einigen Python-Befehlen vor, um die Wortvokabulargröße für die Verarbeitung zu bestimmen:

unique_words = set (word.lower () für Phrase in Texten für
wort in phrase.split (""))
print (f "Es gibt {len (unique_words)} eindeutige Wörter")

Der Code enthält 14 Wörter. Sie laden jetzt die Tokenizer-Funktion von Keras und stellen sie so ein, dass sie den Text verarbeitet, indem Sie die erwartete Vokabulargröße bereitstellen:

aus keras.preprocessing.text importieren Tokenizer
vocabulary_size = len (unique_words) + 1
tokenizer = Tokenizer (num_words = vocabulary_size)

Die Verwendung einer zu kleinen Vokabellänge kann wichtige Wörter vom Lernprozess ausschließen. Bei einem zu großen Speicher wird möglicherweise unnötigerweise Computerspeicher verbraucht. Sie müssen Tokenizer eine korrekte Schätzung der Anzahl der in der Textliste enthaltenen Wörter mitteilen. Sie fügen der Wortschatzgröße auch immer 1 hinzu, um ein zusätzliches Wort für den Anfang einer Phrase bereitzustellen (ein Begriff, der dem Deep Learning-Netzwerk hilft). Zu diesem Zeitpunkt ordnet Tokenizer die in den Texten enthaltenen Wörter den Indizes zu, bei denen es sich um numerische Werte handelt, die die Wörter im Text darstellen:

tokenizer.fit_on_texts (Texte)
print (tokenizer.index_word)

Die resultierenden Indizes lauten wie folgt:

{1: 'is', 2: 'my', 3: 'dog', 4: 'gets', 5: 'along',
6: "mit", 7: "Katzen", 8: "das", 9: "Katze", 10: "bösartig",
11: "glücklich", 12: "wann", 13: "es", 14: "Mittagessen"}

Die Indizes stellen die Spaltennummer dar, die die Wortinformationen enthält:

print (tokenizer.texts_to_matrix (texts))

Hier ist die resultierende Matrix:

[[0. 0. 1. 1. 1. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.]
[0. 1. 0. 0. 0. 0. 0. 0. 1. 1. 1. 0. 0. 0. 0.]
[0. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 1. 1. 1. 1.]]

Die Matrix besteht aus 15 Spalten (14 Wörter plus dem Anfang des Phrasenzeigers) und drei Zeilen, die die drei verarbeiteten Texte darstellen. Dies ist die Textmatrix, die unter Verwendung eines flachen neuronalen Netzwerks verarbeitet werden soll (RNNs erfordern ein anderes Format, wie später erörtert wird), das immer als Vokabulargröße anhand der Anzahl der Texte bemessen wird. Die Zahlen in der Matrix geben an, wie oft ein Wort in der Phrase vorkommt. Dies ist jedoch nicht die einzige mögliche Darstellung. Hier sind die anderen:

  • Frequenzkodierung: Zählt die Anzahl der Wörter in der Phrase. One-Hot-Codierung oder Binärcodierung: Notiert das Vorhandensein eines Wortes in einer Phrase, unabhängig davon, wie oft es vorkommt. Häufigkeit des Ausdrucks - Inverse Dokumenthäufigkeit (TF-IDF): Codiert ein Maß dafür, wie oft ein Wort in einem Dokument im Verhältnis zur Gesamtzahl der Wörter in der Matrix erscheint. (Wörter mit höheren Punktzahlen sind unterscheidungskräftiger; Wörter mit niedrigeren Punktzahlen sind weniger informativ.)

Sie können die TF-IDF-Umwandlung von Keras direkt verwenden. Der Tokenizer bietet eine Methode, texts_to_matrix, die Ihren Text standardmäßig codiert und in eine Matrix umwandelt, in der die Spalten Ihre Wörter, die Zeilen Ihre Texte und die Werte die Worthäufigkeit innerhalb eines Textes sind. Wenn Sie die Transformation anwenden, indem Sie mode = 'tfidf' angeben, verwendet die Transformation TF-IDF anstelle von Worthäufigkeiten, um die Matrixwerte zu füllen:

print (np.round (tokenizer.texts_to_matrix (texts,
mode = 'tfidf'), 1))

Beachten Sie, dass Sie durch die Verwendung einer Matrixdarstellung, unabhängig davon, ob Sie Binär- oder Frequenzdarstellung oder die komplexere TF-IDF verwenden, die in der Phrase vorhandene Wortreihenfolge verloren haben. Während der Verarbeitung verteilen sich die Wörter in verschiedenen Spalten, und das neuronale Netzwerk kann die Wortreihenfolge in einer Phrase nicht erraten. Dieser Mangel an Ordnung ist der Grund, warum Sie es einen Bag-of-Word-Ansatz nennen.

Der Bag-of-Word-Ansatz wird in vielen Algorithmen für maschinelles Lernen verwendet, wobei die Ergebnisse häufig von gut bis fair reichen. Sie können ihn auf ein neuronales Netzwerk anwenden, indem Sie Schichten mit dichter Architektur verwenden. Transformationen von Wörtern, die in n_grams codiert sind (im vorherigen Abschnitt als NLP-Verarbeitungstransformation beschrieben), bieten weitere Informationen, aber Sie können die Wörter auch nicht in Beziehung setzen.

RNNs verfolgen Sequenzen, verwenden also weiterhin One-Hot-Codierung, codieren jedoch nicht die gesamte Phrase, sondern codieren jeden Token einzeln (das kann ein Wort, ein Zeichen oder sogar eine Reihe von Zeichen sein). Aus diesem Grund erwarten sie eine Folge von Indizes, die den Ausdruck darstellen:

print (tokenizer.texts_to_sequences (texts))

Wenn jede Phrase als Folge von Indexnummern an einen neuronalen Netzeingang übergeben wird, wird die Nummer in einen One-Hot-codierten Vektor umgewandelt. Die One-Hot-kodierten Vektoren werden dann einzeln in die RNN-Schichten eingespeist, so dass sie leicht zu erlernen sind. Hier ist zum Beispiel die Transformation der ersten Phrase in der Matrix:

[[0. 0. 1. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.]
[0. 0. 0. 1. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.]
[0. 0. 0. 0. 1. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.]
[0. 0. 0. 0. 0. 1. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.]
[0. 0. 0. 0. 0. 0. 1. 0. 0. 0. 0. 0. 0. 0. 0. 0.]
[0. 0. 0. 0. 0. 0. 0. 1. 0. 0. 0. 0. 0. 0. 0. 0.]]

In dieser Darstellung erhalten Sie für jedes Textstück eine eigene Matrix. Jede Matrix repräsentiert die einzelnen Texte als unterschiedliche Wörter unter Verwendung von Spalten, aber jetzt repräsentieren die Zeilen die Reihenfolge der Worterscheinung. (Die erste Zeile ist das erste Wort, die zweite Zeile ist das zweite Wort usw.)

Mit diesem grundlegenden Ansatz können Datenwissenschaftler Deep Learning für die Verarbeitung natürlicher Sprachen verwenden.

  1. ProgrammierungBig DataData ScienceNeural Networks and Deep Learning: Neuronale Netzwerkdifferenzierung

Von John Paul Müller, Luca Müller

Wenn Sie wissen, wie neuronale Netze grundsätzlich funktionieren, müssen Sie besser verstehen, was sie von anderen unterscheidet, um ihre Rolle beim vertieften Lernen zu verstehen. Über die verschiedenen Architekturen des neuronalen Netzwerks hinaus kann die Auswahl der Aktivierungsfunktionen, Optimierer und der Lernrate des neuronalen Netzwerks den Unterschied ausmachen. Es reicht nicht aus, die Grundfunktionen zu kennen, da Sie nicht die gewünschten Ergebnisse erzielen. Ein Blick unter die Haube eines neuronalen Netzwerks hilft Ihnen zu verstehen, wie Sie Ihre Lösung auf modellspezifische Probleme abstimmen können. Wenn Sie die verschiedenen Algorithmen kennen, die zum Erstellen eines neuronalen Netzwerks verwendet werden, können Sie mit weniger Aufwand und in kürzerer Zeit bessere Ergebnisse erzielen. Der folgende Artikel konzentriert sich auf drei Bereiche der neuronalen Netzwerkdifferenzierung.

Auswahl der richtigen Aktivierungsfunktion für Ihr neuronales Netzwerk

Eine Aktivierungsfunktion ist der Teil eines neuronalen Netzwerks, der einfach definiert, wann ein Neuron feuert. Betrachten Sie es als eine Art Wendepunkt: Wenn Sie einen bestimmten Wert eingeben, wird das Neuron nicht ausgelöst, da dies nicht ausreicht. Ein bisschen mehr Eingaben können jedoch dazu führen, dass das Neuron ausgelöst wird. Ein Neuron wird auf einfache Weise wie folgt definiert:

y = ∑ (Gewicht * Eingabe) + Bias

Die Ausgabe y kann ein beliebiger Wert zwischen + unendlich und - unendlich sein. Das Problem ist dann, zu entscheiden, welcher Wert von y der Zündwert ist, bei dem eine Aktivierungsfunktion in Ihrem neuronalen Netzwerk ins Spiel kommt. Die Aktivierungsfunktion bestimmt, welcher Wert hoch oder niedrig genug ist, um einen Entscheidungspunkt im neuronalen Netzwerk für ein bestimmtes Neuron oder eine bestimmte Gruppe von Neuronen widerzuspiegeln.

Wie bei allen anderen neuronalen Netzen gibt es nicht nur eine Aktivierungsfunktion. Sie verwenden die Aktivierungsfunktion, die in einem bestimmten Szenario am besten funktioniert. In diesem Sinne können Sie die Aktivierungsfunktionen in folgende Kategorien unterteilen:

  • Schritt: Eine Schrittfunktion (auch als Binärfunktion bezeichnet) hängt von einer bestimmten Schwelle ab, um die Entscheidung über die Aktivierung zu treffen oder nicht. Die Verwendung einer Sprungfunktion bedeutet, dass Sie wissen, welcher bestimmte Wert eine Aktivierung hervorruft. Die Schrittfunktionen sind jedoch dahingehend eingeschränkt, dass sie entweder vollständig aktiviert oder deaktiviert sind - es gibt keine Graustufen. Folglich funktioniert eine Sprungfunktion nicht, wenn versucht wird, anhand einer bestimmten Eingabe zu bestimmen, welche Klasse am wahrscheinlichsten richtig ist. Linear: Eine lineare Funktion (A = cx) liefert eine lineare Bestimmung der Aktivierung basierend auf der Eingabe. Mithilfe einer linearen Funktion können Sie anhand der am besten zutreffenden Ausgabe (ausgedrückt durch Gewichtung) bestimmen, welche Ausgabe aktiviert werden soll. Lineare Funktionen funktionieren jedoch nur als einzelne Ebene. Wenn Sie mehrere lineare Funktionsebenen stapeln, entspricht die Ausgabe der Verwendung einer einzelnen Ebene, wodurch der Zweck der Verwendung neuronaler Netze zunichte gemacht wird. Folglich kann eine lineare Funktion als einzelne Ebene, jedoch niemals als mehrere Ebenen angezeigt werden. Sigmoid: Eine Sigmoidfunktion (A = 1/1 + e-x), die eine Kurve erzeugt, die wie der Buchstabe C oder S geformt ist, ist nichtlinear. Zunächst sieht es wie die Sprungfunktion aus, nur dass die Werte zwischen zwei Punkten tatsächlich auf einer Kurve vorhanden sind. Dies bedeutet, dass Sie Sigmoidfunktionen stapeln können, um eine Klassifizierung mit mehreren Ausgängen durchzuführen. Der Bereich einer Sigmoidfunktion liegt zwischen 0 und 1, nicht - unendlich bis + unendlich wie bei einer linearen Funktion, daher sind die Aktivierungen innerhalb eines bestimmten Bereichs gebunden. Die Sigmoid-Funktion leidet jedoch unter einem Problem, das als Fluchtgradient bezeichnet wird. Dies bedeutet, dass die Funktion nach einem bestimmten Punkt nicht mehr lernt, da der propagierte Fehler bei Annäherung an weit entfernte Schichten auf Null schrumpft. Tanh: Eine Tanh-Funktion (A = (2/1 + e-2x) - 1) ist eigentlich eine skalierte Sigmoid-Funktion. Es hat einen Bereich von –1 bis 1, was wiederum eine präzise Methode zur Aktivierung von Neuronen darstellt. Der große Unterschied zwischen Sigmoid- und Tanh-Funktionen besteht darin, dass der Tanh-Funktionsgradient stärker ist, was bedeutet, dass das Erkennen kleiner Unterschiede einfacher ist und die Klassifizierung empfindlicher wird. Wie die Sigmoidfunktion leidet tanh unter verschwundenen Gradientenproblemen. ReLU: Eine ReLU-Funktion (Rectified Linear Units, gleichgerichtete Lineareinheiten) (A (x) = max (0, x)) liefert eine Ausgabe im Bereich von 0 bis unendlich. Sie ähnelt also der linearen Funktion, ist jedoch auch nichtlinear und ermöglicht es Ihnen ReLU-Funktionen zu stapeln. Ein Vorteil von ReLU ist, dass es weniger Rechenleistung benötigt, weil weniger Neuronen feuern. Das Fehlen von Aktivität, wenn sich das Neuron dem 0-Teil der Linie nähert, bedeutet, dass weniger potenzielle Ausgaben zu betrachten sind. Dieser Vorteil kann jedoch auch zu einem Nachteil werden, wenn Sie ein Problem haben, das als sterbende ReLU bezeichnet wird. Nach einer Weile erzielen die Gewichte des neuronalen Netzwerks nicht mehr den gewünschten Effekt (sie hören einfach auf zu lernen) und die betroffenen Neuronen sterben ab - sie reagieren nicht auf Eingaben.

Die ReLU hat auch einige Varianten, die Sie berücksichtigen sollten:

  • ELU (Exponential Linear Unit): Unterscheidet sich von ReLU, wenn die Eingänge negativ sind. In diesem Fall gehen die Ausgänge nicht auf Null, sondern verringern sich langsam exponentiell auf –1. PReLU (Parametric Rectified Linear Unit): Unterscheidet sich von ReLU, wenn die Eingänge negativ sind. In diesem Fall ist der Ausgang eine lineare Funktion, deren Parameter mit der gleichen Technik wie alle anderen Parameter des Netzwerks gelernt werden. LeakyReLU: Ähnlich wie PReLU, jedoch ist der Parameter für die lineare Seite festgelegt.

Verlassen Sie sich auf einen intelligenten Optimierer für Ihr neuronales Netzwerk

Ein Optimierer stellt sicher, dass Ihr neuronales Netzwerk schnelle und korrekte Modelle für jedes Problem ausführt, das Sie lösen möchten, indem Sie die Vorurteile und Gewichte des neuronalen Netzwerks ändern. Es stellt sich heraus, dass ein Algorithmus diese Aufgabe ausführt, Sie müssen jedoch den richtigen Algorithmus auswählen, um die erwarteten Ergebnisse zu erzielen. Wie bei allen neuronalen Netzwerkszenarien haben Sie eine Reihe von optionalen Algorithmus-Typen zur Auswahl:

Stochastischer Gradientenabstieg (SGD)

  • RMSProp AdaGrad AdaDelta AMSGrad Adam und seine Varianten, Adamax und Nadam

Ein Optimierer minimiert oder maximiert die Ausgabe einer Zielfunktion (auch als Fehlerfunktion bezeichnet), die als E (x) dargestellt wird. Diese Funktion hängt von den internen lernbaren Parametern des Modells ab, die zur Berechnung der Zielwerte (Y) aus den Prädiktoren (X) verwendet werden. Zwei interne lernbare Parameter sind Gewichte (W) und Bias (b). Die verschiedenen Algorithmen haben unterschiedliche Methoden, um mit der Zielfunktion umzugehen.

Sie können die Optimiererfunktionen nach der Art und Weise kategorisieren, in der sie mit der Ableitung (dy / dx) umgehen, bei der es sich um die augenblickliche Änderung von y in Bezug auf x handelt. Hier sind die zwei Ebenen der Bearbeitung von Derivaten:

  • Erste Ordnung: Diese Algorithmen minimieren oder maximieren die Zielfunktion unter Verwendung von Gradientenwerten in Bezug auf die Parameter. Zweite Ordnung: Diese Algorithmen minimieren oder maximieren die Objektfunktion unter Verwendung der Ableitungswerte zweiter Ordnung in Bezug auf die Parameter. Die Ableitung zweiter Ordnung kann einen Hinweis darauf geben, ob die Ableitung erster Ordnung zunimmt oder abnimmt, was Informationen über die Krümmung der Linie liefert.

In neuronalen Netzwerken wie Gradient Descent verwenden Sie in der Regel Optimierungstechniken erster Ordnung, da diese weniger Berechnungen erfordern und bei der Arbeit mit großen Datenmengen relativ schnell zu einer guten Lösung konvergieren.

Festlegen einer funktionierenden Lernrate in Ihrem neuronalen Netzwerk

Jeder Optimierer hat völlig unterschiedliche Parameter, um Ihr neuronales Netzwerk abzustimmen. Eine Konstante ist das Festlegen der Lernrate, die die Rate darstellt, mit der der Code die Gewichte des Netzwerks aktualisiert (z. B. den Alpha-Parameter). Die Lernrate kann sich sowohl auf die Zeit auswirken, die das neuronale Netz zum Erlernen einer guten Lösung benötigt (Anzahl der Epochen), als auch auf das Ergebnis. In der Tat, wenn die Lernrate zu niedrig ist, wird Ihr Netzwerk ewig dauern, um zu lernen. Wenn Sie den Wert zu hoch einstellen, wird die Aktualisierung der Gewichte instabil, und das Netzwerk wird nie zu einer guten Lösung konvergieren.

Die Wahl einer Lernrate, die funktioniert, und das Trainieren Ihres neuronalen Netzwerks ist schwierig, da Sie effektiv Werte im Bereich von 0,000001 bis 100 ausprobieren können. Der beste Wert variiert von Optimierer zu Optimierer. Der von Ihnen gewählte Wert hängt von der Art Ihrer Daten ab. Theorie kann hier wenig helfen; Sie müssen verschiedene Kombinationen testen, bevor Sie die am besten geeignete Lernrate für ein erfolgreiches Training Ihres neuronalen Netzwerks finden.

Trotz der Mathematik, die sie umgibt, ist die Optimierung neuronaler Netze und ihre optimale Funktion meistens eine Frage empirischer Bemühungen, verschiedene Kombinationen von Architekturen und Parametern auszuprobieren.

Nehmen Sie sich Zeit, um die Lernrate zu bewerten und entsprechend einzustellen, um sicherzustellen, dass Ihr neuronales Netzwerk optimal funktioniert.

  1. ProgrammierungBig DataData ScienceWie funktioniert maschinelles Lernen?

Von John Paul Müller, Luca Müller

Maschinelles Lernen ist eine Anwendung der KI, die aus Erfahrungen automatisch lernen und sich verbessern kann, ohne ausdrücklich dafür programmiert zu sein. Das maschinelle Lernen erfolgt als Ergebnis der Analyse immer größerer Datenmengen, sodass sich die grundlegenden Algorithmen nicht ändern, die internen Gewichte und Vorurteile des Codes, die zur Auswahl einer bestimmten Antwort verwendet werden, jedoch. Natürlich ist nichts so einfach. Der folgende Artikel beschreibt mehr darüber, was maschinelles Lernen ist, damit Sie seinen Platz in der Welt der KI verstehen und was Deep Learning daraus erwächst.

Datenwissenschaftler bezeichnen die Technologie, mit der maschinelles Lernen implementiert wird, häufig als Algorithmen. Ein Algorithmus ist eine Reihe von schrittweisen Operationen, normalerweise Berechnungen, die ein definiertes Problem in einer endlichen Anzahl von Schritten lösen können. Beim maschinellen Lernen verwenden die Algorithmen eine Reihe von endlichen Schritten, um das Problem durch Lernen aus Daten zu lösen.

Verstehen, wie maschinelles Lernen funktioniert

Algorithmen für maschinelles Lernen lernen, aber es ist oft schwierig, eine genaue Bedeutung für den Begriff "Lernen" zu finden, da je nach dem, wie der Algorithmus für maschinelles Lernen aufgebaut ist, unterschiedliche Methoden zum Extrahieren von Informationen aus Daten existieren. Im Allgemeinen erfordert der Lernprozess große Datenmengen, die bei bestimmten Eingaben eine erwartete Antwort liefern. Jedes Eingabe / Antwort-Paar stellt ein Beispiel dar, und weitere Beispiele erleichtern dem Algorithmus das Lernen. Dies liegt daran, dass jedes Eingabe- / Antwortpaar in eine Zeile, einen Cluster oder eine andere statistische Darstellung passt, die einen Problembereich definiert.

Beim maschinellen Lernen wird ein Modell optimiert, bei dem es sich um eine mathematische, zusammengefasste Darstellung von Daten selbst handelt, sodass eine angemessene Antwort vorhergesagt oder anderweitig bestimmt werden kann, selbst wenn Eingaben eingehen, die es zuvor noch nicht gesehen hat. Je genauer das Modell die richtigen Antworten liefern kann, desto besser hat das Modell aus den bereitgestellten Daten gelernt. Ein Algorithmus passt das Modell an die Daten an, und dieser Anpassungsprozess ist Training.

Das Bild unten zeigt eine extrem einfache Grafik, die simuliert, was beim maschinellen Lernen passiert. In diesem Fall bestimmt der Algorithmus für maschinelles Lernen, beginnend mit den Eingabewerten 1, 4, 5, 8 und 10 und deren Paarung mit den entsprechenden Ausgängen 7, 13, 15, 21 und 25, dass der beste Weg zur Darstellung des ist Die Beziehung zwischen Eingabe und Ausgabe ist die Formel 2x + 5. Diese Formel definiert das Modell, das zur Verarbeitung der Eingabedaten - auch neuer, unsichtbarer Daten - verwendet wird, um einen entsprechenden Ausgabewert zu berechnen. Die Trendlinie (das Modell) zeigt das von diesem Algorithmus gebildete Muster, sodass eine neue Eingabe von 3 eine vorhergesagte Ausgabe von 11 ergibt. Auch wenn die meisten Szenarien für maschinelles Lernen viel komplizierter sind als diese (und der Algorithmus nicht erstellen kann) Regeln, die jede Eingabe genau auf eine genaue Ausgabe abbilden.) Das Beispiel gibt Ihnen eine grundlegende Vorstellung davon, was passiert. Anstatt eine Antwort für eine Eingabe von 3 einzeln programmieren zu müssen, kann das Modell die richtige Antwort basierend auf den erlernten Eingabe / Antwort-Paaren berechnen.

grundlegendes Szenario des maschinellen Lernens

Zu verstehen, dass maschinelles Lernen reine Mathematik ist

Der zentrale Gedanke beim maschinellen Lernen ist, dass Sie die Realität mithilfe einer mathematischen Funktion darstellen können, die der Algorithmus nicht im Voraus kennt, die er jedoch nach dem Anzeigen einiger Daten erraten kann (immer in Form von gepaarten Ein- und Ausgängen). Sie können die Realität und all ihre herausfordernde Komplexität in unbekannten mathematischen Funktionen ausdrücken, die von Algorithmen für maschinelles Lernen als Modifikation ihrer internen mathematischen Funktion gefunden und zur Verfügung gestellt werden. Das heißt, jeder Algorithmus für maschinelles Lernen basiert auf einer modifizierbaren mathematischen Funktion. Die Funktion kann geändert werden, da sie für diesen Zweck interne Parameter oder Gewichte enthält. Infolgedessen kann der Algorithmus die Funktion auf bestimmte Informationen aus Daten zuschneiden. Dieses Konzept ist die Kernidee für alle Arten von Algorithmen für maschinelles Lernen.

Lernen im maschinellen Lernen ist rein mathematisch und endet damit, dass bestimmte Eingaben bestimmten Ausgaben zugeordnet werden. Es hat nichts damit zu tun, zu verstehen, was der Algorithmus gelernt hat. (Wenn Menschen Daten analysieren, bauen wir bis zu einem gewissen Grad ein Verständnis der Daten auf.) Der Lernprozess wird häufig als Training bezeichnet, da der Algorithmus so trainiert wird, dass er die richtige Antwort (die Ausgabe) auf jede angebotene Frage (die Eingabe) abgleicht. (Machine Learning For Dummies von John Paul Mueller und Luca Massaron beschreibt, wie dieser Prozess im Detail funktioniert.)

Trotz des Mangels an bewußtem Verständnis und eines mathematischen Prozesses kann sich maschinelles Lernen bei vielen Aufgaben als nützlich erweisen. Es bietet vielen KI-Anwendungen die Möglichkeit, rationales Denken in einem bestimmten Kontext nachzuahmen, wenn mithilfe der richtigen Daten gelernt wird.

Verschiedene Strategien für maschinelles Lernen

Maschinelles Lernen bietet verschiedene Möglichkeiten, aus Daten zu lernen. Abhängig von Ihrer erwarteten Ausgabe und der Art der von Ihnen bereitgestellten Eingabe können Sie Algorithmen nach Lernstil kategorisieren. Der von Ihnen gewählte Stil hängt von der Art Ihrer Daten und dem erwarteten Ergebnis ab. Die vier Lernstile, die zum Erstellen von Algorithmen verwendet werden, sind:

  • Betreutes maschinelles Lernen Unüberwachtes maschinelles Lernen Selbstüberwachtes maschinelles Lernen Verstärkung maschinelles Lernen

In den folgenden Abschnitten werden diese maschinellen Lernstile erläutert.

Betreutes maschinelles Lernen

Bei der Arbeit mit überwachten Algorithmen für maschinelles Lernen werden die Eingabedaten beschriftet und haben ein bestimmtes erwartetes Ergebnis. Sie verwenden Training, um ein Modell zu erstellen, das von einem Algorithmus an die Daten angepasst wird. Mit fortschreitendem Training werden die Vorhersagen oder Klassifizierungen genauer. Hier einige Beispiele für überwachte Algorithmen für maschinelles Lernen:

  • Lineare oder logistische Regression Support Vector Machines (SVMs) Naive Bayes K-Nearest Neighbours (KNN)

Sie müssen zwischen Regressionsproblemen, deren Ziel ein numerischer Wert ist, und Klassifizierungsproblemen, deren Ziel eine qualitative Variable ist, wie z. B. eine Klasse oder ein Tag, unterscheiden. Eine Regressionsaufgabe könnte die Durchschnittspreise von Häusern in der Region Boston bestimmen, während ein Beispiel für eine Klassifizierungsaufgabe darin besteht, Arten von Irisblumen anhand ihrer Kelchblatt- und Blütenblattmaße zu unterscheiden. Hier einige Beispiele für überwachtes maschinelles Lernen:

Unüberwachtes maschinelles Lernen

Bei der Arbeit mit unbeaufsichtigten maschinellen Lernalgorithmen werden die Eingabedaten nicht beschriftet und die Ergebnisse sind nicht bekannt. In diesem Fall ergibt die Analyse der Strukturen in den Daten das erforderliche Modell. Die Strukturanalyse kann eine Reihe von Zielen verfolgen, z. B. die Reduzierung der Redundanz oder die Gruppierung ähnlicher Daten. Beispiele für unbeaufsichtigtes maschinelles Lernen sind

  • Clustering Erkennung von Anomalien Neuronale Netze

Selbstüberwachtes maschinelles Lernen

Im Internet werden alle möglichen Arten von Lernen beschrieben, aber selbstüberwachtes Lernen ist eine eigene Kategorie. Einige Leute bezeichnen es als autonomes überwachtes Lernen, das Ihnen die Vorteile von überwachtem Lernen bietet, jedoch ohne die gesamte Arbeit, die zum Kennzeichnen von Daten erforderlich ist.

Theoretisch könnte selbstüberwachtes Lernen Probleme mit anderen Arten des Lernens lösen, die Sie derzeit verwenden. In der folgenden Liste wird selbstüberwachtes Lernen mit anderen Lernmethoden verglichen, die von Menschen verwendet werden.

  • Überwachtes maschinelles Lernen: Die naheliegendste Form des Lernens im Zusammenhang mit selbstüberwachtem Lernen ist überwachtes maschinelles Lernen, da beide Arten des Lernens auf Paaren von Eingaben und gekennzeichneten Ausgaben beruhen. Darüber hinaus sind beide Lernformen mit Regression und Klassifikation verbunden. Der Unterschied besteht jedoch darin, dass für das selbstüberwachte Lernen keine Person erforderlich ist, um die Ausgabe zu kennzeichnen. Stattdessen stützt es sich auf Korrelationen, eingebettete Metadaten oder Domänenwissen, die in die Eingabedaten eingebettet sind, um die Ausgabebezeichnung kontextbezogen zu erkennen. Unüberwachtes maschinelles Lernen: Wie unüberwachtes maschinelles Lernen erfordert auch selbstüberwachtes Lernen keine Datenkennzeichnung. Unbeaufsichtigtes Lernen konzentriert sich jedoch auf die Datenstruktur - also auf Muster innerhalb der Daten. Daher verwenden Sie selbstüberwachtes Lernen nicht für Aufgaben wie Clustering, Gruppierung, Dimensionsreduzierung, Empfehlungsengines oder ähnliches. Halbüberwachtes maschinelles Lernen: Eine halbüberwachte Lernlösung arbeitet wie eine unbeaufsichtigte Lernlösung, indem sie nach Datenmustern sucht. Halbüberwachtes Lernen setzt jedoch eine Mischung aus gekennzeichneten und nicht gekennzeichneten Daten voraus, um seine Aufgaben schneller auszuführen, als dies mit streng nicht gekennzeichneten Daten möglich ist. Selbstüberwachtes Lernen erfordert niemals Labels und verwendet den Kontext, um seine Aufgabe zu erfüllen, sodass die Labels im Auslieferungszustand ignoriert werden.

Verstärkung maschinelles Lernen

Sie können das Bestärkungslernen als Erweiterung des selbstüberwachten Lernens betrachten, da beide Formen denselben Lernansatz mit unbeschrifteten Daten verwenden, um ähnliche Ziele zu erreichen. Durch das Erlernen der Verstärkung wird der Mischung jedoch eine Rückkopplungsschleife hinzugefügt. Wenn eine Lösung für das Lernen von Bestärkungen eine Aufgabe korrekt ausführt, erhält sie positives Feedback, was das Modell bei der Verknüpfung der Zieleingaben und -ausgaben stärkt. Ebenso kann es bei fehlerhaften Lösungen zu negativen Rückmeldungen kommen. In mancher Hinsicht funktioniert das System ähnlich wie die Arbeit mit einem Hund, der auf einem Belohnungssystem basiert.

Schulung, Validierung und Testen von Daten für maschinelles Lernen

Maschinelles Lernen ist ein Prozess, genauso wie alles ein Prozess in der Welt der Computer ist. Um eine erfolgreiche Lösung für maschinelles Lernen zu erstellen, führen Sie diese Aufgaben nach Bedarf und so oft wie nötig aus:

  • Training: Maschinelles Lernen beginnt, wenn Sie ein Modell mit einem bestimmten Algorithmus anhand bestimmter Daten trainieren. Die Trainingsdaten sind von allen anderen Daten getrennt, müssen aber auch repräsentativ sein. Wenn die Trainingsdaten nicht wirklich die Problemdomäne darstellen, kann das resultierende Modell keine nützlichen Ergebnisse liefern. Während des Trainings sehen Sie, wie das Modell auf die Trainingsdaten reagiert, und nehmen bei Bedarf Änderungen an den von Ihnen verwendeten Algorithmen und der Art und Weise vor, wie Sie die Daten vor der Eingabe in den Algorithmus massieren. Validierung: Viele Datensätze sind groß genug, um in einen Trainingsteil und einen Testteil aufgeteilt zu werden. Sie trainieren das Modell zunächst anhand der Trainingsdaten und validieren es anschließend anhand der Testdaten. Natürlich müssen die Testdaten die Problemdomäne wieder genau darstellen. Es muss auch statistisch mit den Trainingsdaten kompatibel sein. Andernfalls werden keine Ergebnisse angezeigt, die die tatsächliche Funktionsweise des Modells widerspiegeln. Testen: Nachdem ein Modell trainiert und validiert wurde, müssen Sie es noch mit realen Daten testen. Dieser Schritt ist wichtig, da Sie überprüfen müssen, ob das Modell tatsächlich mit einem größeren Datensatz funktioniert, den Sie weder für Schulungen noch für Tests verwendet haben. Wie bei den Schulungs- und Validierungsschritten müssen alle Daten, die Sie während dieses Schritts verwenden, die Problemdomäne widerspiegeln, mit der Sie mithilfe des maschinellen Lernmodells interagieren möchten.

Das Training bietet einen Algorithmus für maschinelles Lernen mit allen möglichen Beispielen für die gewünschten Ein- und Ausgaben, die von diesen Eingaben erwartet werden. Der Algorithmus für maschinelles Lernen verwendet diese Eingabe dann, um eine mathematische Funktion zu erstellen. Mit anderen Worten, Training ist der Prozess, bei dem der Algorithmus erarbeitet, wie eine Funktion an die Daten angepasst wird. Die Ausgabe einer solchen Funktion ist typischerweise die Wahrscheinlichkeit einer bestimmten Ausgabe oder einfach ein numerischer Wert als Ausgabe.

Stellen Sie sich ein Kind vor, das lernt, Bäume von Objekten, Tieren und Menschen zu unterscheiden, um eine Vorstellung davon zu bekommen, was während des Trainings passiert. Bevor das Kind dies auf unabhängige Weise tun kann, überreicht ein Lehrer dem Kind eine bestimmte Anzahl von Baumbildern, die alle Fakten enthalten, die einen Baum von anderen Objekten der Welt unterscheidbar machen. Solche Tatsachen können Merkmale sein, wie das Baummaterial (Holz), seine Teile (Stamm, Zweige, Blätter oder Nadeln, Wurzeln) und die Position (im Boden gepflanzt). Das Kind schafft ein Verständnis dafür, wie ein Baum aussieht, indem es die Darstellung von Baummerkmalen mit den Bildern anderer Beispiele kontrastiert, z. B. Möbelstücke aus Holz, die jedoch keine anderen Merkmale mit einem Baum teilen.

Ein Klassifikator für maschinelles Lernen funktioniert genauso. Ein Klassifikator-Algorithmus liefert Ihnen eine Klasse als Ausgabe. Beispielsweise könnte es Ihnen sagen, dass das Foto, das Sie als Eingabe bereitstellen, der Baumklasse entspricht (und nicht einem Tier oder einer Person). Zu diesem Zweck werden die kognitiven Fähigkeiten erweitert, indem eine mathematische Formulierung erstellt wird, die alle angegebenen Eingabemerkmale auf eine Weise enthält, mit der eine Funktion erstellt wird, die eine Klasse von einer anderen unterscheiden kann.

Auf der Suche nach Verallgemeinerungen beim maschinellen Lernen

Um nützlich zu sein, muss ein maschinelles Lernmodell eine allgemeine Ansicht der bereitgestellten Daten darstellen. Wenn das Modell den Daten nicht genau genug folgt, ist es nicht ausreichend angepasst - das heißt, es ist aufgrund mangelnder Schulung nicht ausreichend angepasst. Wenn das Modell den Daten jedoch zu genau folgt, ist es überpasst und folgt den Datenpunkten wie angegossen, weil zu viel Training vorhanden ist. Unter- und Überanpassung verursachen Probleme, da das Modell nicht verallgemeinert genug ist, um nützliche Ergebnisse zu erzielen. Bei unbekannten Eingabedaten enthalten die resultierenden Vorhersagen oder Klassifizierungen große Fehlerwerte. Nur wenn das Modell korrekt an die Daten angepasst ist, liefert es Ergebnisse innerhalb eines angemessenen Fehlerbereichs.

Diese ganze Frage der Verallgemeinerung ist auch wichtig für die Entscheidung, wann maschinelles Lernen angewendet werden soll. Eine Lösung für maschinelles Lernen verallgemeinert sich immer von bestimmten Beispielen auf allgemeine Beispiele derselben Art. Wie diese Aufgabe ausgeführt wird, hängt von der Ausrichtung der maschinellen Lernlösung und den dafür verwendeten Algorithmen ab.

Das Problem für Datenwissenschaftler und andere, die maschinelles Lernen und Deep-Learning-Techniken anwenden, besteht darin, dass der Computer kein Zeichen anzeigt, das besagt, dass das Modell korrekt zu den Daten passt. Oft ist es eine Frage der menschlichen Intuition, zu entscheiden, wann ein Modell genug trainiert ist, um ein gutes verallgemeinertes Ergebnis zu erzielen. Darüber hinaus muss der Lösungsersteller den richtigen Algorithmus aus den Tausenden auswählen, die vorhanden sind. Ohne den richtigen Algorithmus, um das Modell an die Daten anzupassen, sind die Ergebnisse enttäuschend. Damit der Auswahlprozess funktioniert, muss der Datenwissenschaftler über Folgendes verfügen

  • Gute Kenntnisse der verfügbaren Algorithmen für maschinelles Lernen Erfahrung im Umgang mit der Art der Daten Ein Verständnis für die gewünschte Leistung Der Wunsch, mit verschiedenen Algorithmen für maschinelles Lernen zu experimentieren

Die letzte Anforderung ist die wichtigste, da es keine festen Regeln gibt, die besagen, dass ein bestimmter Algorithmus mit jeder Art von Daten in jeder möglichen Situation funktioniert. In diesem Fall wären so viele Algorithmen nicht verfügbar. Um den besten Algorithmus zu finden, experimentiert der Datenwissenschaftler häufig mit einer Reihe von Algorithmen und vergleicht die Ergebnisse.

Grenzen der Voreingenommenheit kennenlernen

Ihr Computer hat keine Vorurteile. Es hat kein Ziel, die Welt zu beherrschen oder dir das Leben schwer zu machen. Tatsächlich haben Computer keinerlei Ziele. Das einzige, was ein Computer bieten kann, ist eine Ausgabe, die auf Eingaben und Verarbeitungstechniken basiert. Die Verzerrung gelangt jedoch immer noch in den Computer und beeinträchtigt die Ergebnisse auf verschiedene Weise:

  • Daten: Die Daten selbst können Falschangaben oder Falschdarstellungen enthalten. Wenn beispielsweise ein bestimmter Wert in den Daten doppelt so häufig vorkommt wie in der realen Welt, ist die Ausgabe einer Lösung für maschinelles Lernen fehlerhaft, obwohl die Daten selbst korrekt sind. Algorithmus: Die Verwendung des falschen Algorithmus führt dazu, dass die Lösung für maschinelles Lernen das Modell nicht korrekt an die Daten anpasst. Training: Zu viel oder zu wenig Training ändert die Anpassung des Modells an die Daten und damit an das Ergebnis. Menschliche Interpretation: Selbst wenn eine Lösung für maschinelles Lernen ein korrektes Ergebnis ausgibt, kann der Mensch, der diese Ausgabe verwendet, es falsch interpretieren. Die Ergebnisse sind genauso schlecht und möglicherweise noch schlimmer als wenn die maschinelle Lernlösung nicht wie erwartet funktioniert.

Sie müssen die Auswirkungen der Verzerrung berücksichtigen, unabhängig davon, welche Art von Lösung für maschinelles Lernen Sie erstellen. Es ist wichtig zu wissen, welche Grenzen diese Verzerrungen Ihrer maschinellen Lernlösung setzen und ob die Lösung zuverlässig genug ist, um nützliche Ergebnisse zu liefern.

Berücksichtigung der Modellkomplexität beim maschinellen Lernen

Einfacher ist immer besser, wenn es um maschinelles Lernen geht. Viele verschiedene Algorithmen liefern möglicherweise nützliche Ergebnisse aus Ihrer Lösung für maschinelles Lernen. Der beste zu verwendende Algorithmus ist jedoch derjenige, der am einfachsten zu verstehen ist und die einfachsten Ergebnisse liefert. Occams Rasiermesser gilt allgemein als die beste Strategie, der man folgen sollte. Grundsätzlich empfiehlt Ihnen Razor von Occam, die einfachste Lösung zu verwenden, mit der ein bestimmtes Problem gelöst werden kann. Mit zunehmender Komplexität steigt auch das Fehlerpotential.

Der wichtigste Leitfaktor bei der Auswahl eines Algorithmus sollte die Einfachheit sein.