lab
Neural Network
Deutsch

Wie simuliert ein neuronales Netz eine beliebige Funktion

Überblick

Der Grund für die Leistungsfähigkeit des neuronalen Netzes liegt in seiner leistungsstarken Simulationsfähigkeit. Theoretisch kann es beliebige Funktionen mit unendlich kleinen Fehlern simulieren.


Mit anderen Worten, wir können neuronale Netze verwenden, um beliebige Funktionen zu konstruieren und beliebige Algorithmen zu erhalten.


Wir verwenden hier einige visuelle Beispiele, um Ihnen ein intuitives Verständnis zu vermitteln.

Simulation einer unären Funktion

Gerade Linie

Dies ist der einfachste Fall, wir können ihn simulieren, indem wir ein Neuron ohne Aktivierungsfunktion verwenden.

f(x)=wx+bf(x) = wx + b
ww1
bb0

Durch Anpassen der Parameter w,bw, b kann jede gerade Linie simuliert werden.

Stufenfunktion

Wir verwenden ein Neuron mit der Aktivierungsfunktion sigmoid, um es zu simulieren.

ww30
bb0

Wenn der Parameter ww weiter ansteigt, nähert sich das neuronale Netzwerk allmählich der Funktion.

Rechteckige Pulsfunktion

Wir unterteilen es in mehrere Schritte:

  1. Verwenden Sie ein einzelnes Neuron, um die linke Hälfte der Funktion zu simulieren.
f1(x)=sigmoid(w1x+b1)f_1(x) = \text{sigmoid}(w_1x+b_1)
w1w_120
b1b_120
  1. Verwenden Sie ein einzelnes Neuron, um die rechte Hälfte der Funktion (auf dem Kopf) zu simulieren.
f2(x)=sigmoid(w2x+b2)f_2(x) = \text{sigmoid}(w_2x+b_2)
w2w_220
b2b_2-20
  1. Verwenden Sie ein anderes Neuron, um die Bilder der ersten 2 Schritte zu synthetisieren
f3(x,y)=sigmoid(w31x+w32y+b3)f_3(x, y) = \text{sigmoid}(w_{31}x + w_{32}y + b_3)
w31w_{31}10
w32w_{32}-10
b3b_3-5

Das erhaltene Ergebnis ist eine gute Näherung der Zielfunktion.

Andere unäre Funktionen

Mit der Rechteckimpulsfunktion können wir andere beliebige Funktionen leicht annähern, genau wie das Integrationsprinzip.

nn10

Experiment

Schließe die Mission Broken Line ab und beobachte die Funktion jedes Neurons.

Simulation der Binärfunktion

Ebene

Dies ist der einfachste Fall, wir können ihn simulieren, indem wir ein Neuron ohne Aktivierungsfunktion verwenden.

f(x,y)=w1x+w2y+bf(x, y) = w_1x + w_2y + b
w1w_10
w2w_21
bb0

Durch Anpassen der Parameter von w1,w2,bw_1, w_2, b kann jede beliebige Ebene simuliert werden.

Binäre Schrittfunktion

Wir verwenden ein Neuron mit der Aktivierungsfunktion sigmoid, um es zu simulieren.

f(x)=sigmoid(w1x+w2y+b)f(x) = \text{sigmoid}(w_1x + w_2y + b)
w1w_10
w2w_230
bb0

Binäre Rechteckimpulsfunktion

Ähnlich wie bei unären Funktionen implementieren wir es Schritt für Schritt:

  1. Verwenden Sie ein einzelnes Neuron, um eine Kante der Funktion zu simulieren
f1(x,y)=sigmoid(w11x+w12y+b1)f_1(x, y) = \text{sigmoid}(w_{11}x + w_{12}y + b_1)
w11w_{11}0
w12w_{12}20
b1b_120
  1. Dann erhalten wir die folgende Funktion:
wiw_i10
wjw_j-10
bib_i-5
  1. Schließlich können die folgenden Funktionen synthetisiert werden
w51w_{51}10
w52w_{52}-10
w53w_{53}10
w54w_{54}-10
b5b_5-15

Die endgültige Struktur des neuronalen Netzes ist in der folgenden Abbildung dargestellt:

Andere binäre Funktionen

Mit der binären Rechteckimpulsfunktion können wir jede andere binäre Funktion leicht annähern, genau wie das Integrationsprinzip.

Experiment

Schließe die Mission Circle ab und beobachte die Funktion jedes Neurons.

Simulation der n-Element-Funktion

Das Prinzip ist das gleiche, stellen Sie sich selbst vor! 😥

Frage

Wir haben bereits digitale Schaltungen und Softwareprogrammalgorithmen, warum brauchen wir neuronale Netze?

Softwareprogramme, die auf digitalen Schaltkreisen basieren, können auch beliebige Funktionen simulieren, warum also künstliche neuronale Netze erfinden?