lab
Neural Network
Français

Comment un réseau de neurones simule-t-il une fonction arbitraire

Aperçu

La raison pour laquelle le réseau de neurones est puissant réside dans sa puissante capacité de simulation. En théorie, il peut simuler des fonctions arbitraires avec des erreurs infiniment petites.


En d'autres termes, nous pouvons utiliser des réseaux de neurones pour construire des fonctions arbitraires et obtenir des algorithmes arbitraires.


Nous utilisons ici quelques exemples visuels pour vous aider à acquérir une compréhension intuitive.

Simulation de fonction unaire

Ligne droite

C'est le cas le plus simple, on peut le simuler en utilisant un neurone sans fonction d'activation.

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

En ajustant les paramètres w,bw, b, n'importe quelle ligne droite peut être simulée.

Fonction pas à pas

Nous utilisons un neurone avec la fonction d'activation sigmoid pour le simuler.

ww30
bb0

Au fur et à mesure que le paramètre ww continue d'augmenter, le réseau de neurones se rapprochera progressivement de la fonction.

Fonction d'impulsion rectangulaire

Nous le divisons en plusieurs étapes:

  1. Utilisez un seul neurone pour simuler la moitié gauche de la fonction.
f1(x)=sigmoid(w1x+b1)f_1(x) = \text{sigmoid}(w_1x+b_1)
w1w_120
b1b_120
  1. Utilisez un seul neurone pour simuler la moitié droite de la fonction (à l'envers).
f2(x)=sigmoid(w2x+b2)f_2(x) = \text{sigmoid}(w_2x+b_2)
w2w_220
b2b_2-20
  1. Utilisez un autre neurone pour synthétiser les images des 2 premières étapes
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

Le résultat obtenu est une bonne approximation de la fonction objectif.

Autres fonctions unaires

En utilisant la fonction d'impulsion rectangulaire, nous pouvons facilement approximer d'autres fonctions arbitraires, tout comme le principe d'intégration.

nn10

Expérience

Terminez la mission Broken Line et observez la fonction correspondant à chaque neurone.

Simulation de fonction binaire

Avion

C'est le cas le plus simple, on peut le simuler en utilisant un neurone sans fonction d'activation.

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

En ajustant les paramètres de w1,w2,bw_1, w_2, b, n'importe quel avion peut être simulé.

Fonction d'étape binaire

Nous utilisons un neurone avec la fonction d'activation sigmoid pour le simuler.

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

Fonction d'impulsion rectangulaire binaire

Similaire au cas des fonctions unaires, nous l'implémentons étape par étape:

  1. Utilisez un seul neurone pour simuler un bord de la fonction
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. Ensuite, nous pouvons obtenir la fonction suivante:
wiw_i10
wjw_j-10
bib_i-5
  1. Enfin, les fonctions suivantes peuvent être synthétisées
w51w_{51}10
w52w_{52}-10
w53w_{53}10
w54w_{54}-10
b5b_5-15

La structure finale du réseau de neurones est illustrée dans la figure ci-dessous:

Autres fonctions binaires

En utilisant la fonction d'impulsion rectangulaire binaire, nous pouvons facilement approximer n'importe quelle autre fonction binaire, tout comme le principe d'intégration.

Expérience

Terminez la mission Cercle et observez la fonction correspondant à chaque neurone.

Simulation de la fonction n-élément

Le principe est le même, imaginez par vous-même ! ??

Question

Nous avons déjà des circuits numériques et des algorithmes de logiciels, pourquoi avons-nous besoin de réseaux de neurones?

Les logiciels construits sur des circuits numériques peuvent également simuler des fonctions arbitraires, alors pourquoi inventer des réseaux de neurones artificiels ?