Ist es möglich, das neuronale Netz zu trainieren, um mathematische Gleichungen zu lösen?


24

Mir ist bewusst, dass neuronale Netze wahrscheinlich nicht dafür ausgelegt sind. Ist es jedoch möglich, das tiefe neuronale Netz (oder ähnliches) zu trainieren, um mathematische Gleichungen zu lösen?

Bei 3 Eingaben: 1. Nummer, Vorzeichen des Bedieners (1 - +, 2 - -, 3 - /, 4 - *usw.) und 2. Nummer, sollte das Netzwerk nach dem Training die gültigen Ergebnisse liefern.

Beispiel 1 ( 2+2):

  • Eingang 1: 2; Eingabe 2: 1( +); Eingang 3: 2; Erwartete Ausgabe:4
  • Eingang 1: 10; Eingabe 2: 2( -); Eingang 3: 10; Erwartete Ausgabe:0
  • Eingang 1: 5; Eingabe 2: 4( *); Eingang 3: 5; Erwartete Ausgabe:25
  • und so

Das Obige kann auf anspruchsvollere Beispiele erweitert werden.

Ist das möglich? Wenn ja, welche Art von Netzwerk kann das lernen / erreichen?



1
Dies könnte relevant sein - github.com/deepmind/mathematics_dataset
GaneshTata

Antworten:


21

Ja, es wurde getan!

Die Anwendungen sollen jedoch keine Taschenrechner oder ähnliches ersetzen. Das Labor, mit dem ich in Verbindung stehe, entwickelt neuronale Netzwerkmodelle für das Gleichungssystem, um besser zu verstehen, wie Menschen diese Probleme lösen können. Dies ist ein Teil des Gebiets, das als mathematische Erkenntnis bekannt ist . Leider ist unsere Website nicht sonderlich informativ, aber hier ist ein Link zu einem Beispiel für eine solche Arbeit.

Abgesehen davon neigen neuere Arbeiten zur Erweiterung neuronaler Netze auf externe Speicher (z. B. Neuronale Turing-Maschinen) dazu, mathematische Probleme als guten Proof-of-Concept-Ansatz zu verwenden. Dies liegt daran, dass viele arithmetische Probleme lange Prozeduren mit gespeicherten Zwischenergebnissen beinhalten. Lesen Sie die Abschnitte in diesem Artikel über lange binäre Additionen und Multiplikationen.


für mich nicht nur neuronale netze sondern auch neuronale architekturen mit externem speicher. Architekturen wie NTM und DNC können Algorithmen wie den kürzesten Weg lösen, da sie den iterativen Prozess ausführen können, indem sie verfolgen, was getan wurde (kein katastrophales Vergessen). Aber für mich ist es einfach falsch, nur betreutes Lernen anzuwenden, wie in der zweiten Antwort erwähnt.
Shamane Siriwardhana

Der erste Link ist tot. Hast du den Ersatz?
Kenorb

Beide Links haben gerade für mich funktioniert, was für ein ausgezeichnetes Papier!
Zakk Diaz

8

Nicht wirklich.

Neuronale Netze eignen sich zum Bestimmen nichtlinearer Beziehungen zwischen Eingaben, wenn ausgeblendete Variablen vorhanden sind. In den obigen Beispielen sind die Beziehungen linear und es gibt keine versteckten Variablen. Aber selbst wenn sie nicht linear wären, wäre ein traditionelles ANN-Design nicht gut geeignet, um dies zu erreichen.

Wenn Sie die Ebenen sorgfältig aufbauen und das Training genau überwachen, können Sie ein Netzwerk aufbauen, das konsistent die Ausgabe 4.01 erzeugt, beispielsweise für die Eingaben: 2, 1 (+) und 2, aber dies ist nicht nur falsch, sondern von Natur aus unzuverlässig Anwendung der Technologie.


5

1) Es ist möglich! Tatsächlich ist es ein Beispiel für das beliebte Deep-Learning-Framework Keras. Schauen Sie sich diesen Link an, um den Quellcode zu sehen .

2) In diesem speziellen Beispiel wird ein wiederkehrendes neuronales Netzwerk (RNN) verwendet, um das Problem als Folge von Zeichen zu verarbeiten, wobei eine Folge von Zeichen erzeugt wird, die die Antwort bilden. Beachten Sie, dass sich dieser Ansatz offensichtlich davon unterscheidet, wie Menschen dazu neigen, einfache Additionsprobleme zu lösen, und wahrscheinlich auch nicht, wie ein Computer jemals ein solches Problem lösen soll. Meist ist dies ein Beispiel für Sequenz-zu-Sequenz-Lernen mit Keras. Bei der Verarbeitung von sequentiellen oder Zeitreiheneingaben sind RNNs eine beliebte Wahl.



Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.