lab
Neural Network
Português

Como uma rede neural simula uma função arbitrária

Visão geral

A razão pela qual a rede neural é poderosa está em sua poderosa capacidade de simulação. Em teoria, ele pode simular funções arbitrárias com erros infinitamente pequenos.


Em outras palavras, podemos usar redes neurais para construir funções arbitrárias e obter algoritmos arbitrários.


Usamos alguns exemplos visuais aqui para ajudá-lo a obter uma compreensão intuitiva.

Simulação de função unária

Linha reta

Este é o caso mais simples, podemos simulá-lo usando um neurônio sem função de ativação.

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

Ajustando os parâmetros w,bw, b, qualquer linha reta pode ser simulada.

Função de passo

Usamos um neurônio com função de ativação sigmoid para simulá-lo.

ww30
bb0

À medida que o parâmetro ww continua a aumentar, a rede neural se aproximará gradualmente da função.

Função de pulso retangular

Dividimos em várias etapas:

  1. Use um único neurônio para simular a metade esquerda da função.
f1(x)=sigmoid(w1x+b1)f_1(x) = \text{sigmoid}(w_1x+b_1)
w1w_120
b1b_120
  1. Use um único neurônio para simular a metade direita da função (de cabeça para baixo).
f2(x)=sigmoid(w2x+b2)f_2(x) = \text{sigmoid}(w_2x+b_2)
w2w_220
b2b_2-20
  1. Use outro neurônio para sintetizar as imagens das 2 primeiras etapas
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

O resultado obtido é uma boa aproximação da função objetivo.

Outras funções unárias

Usando a função de impulso retangular, podemos facilmente aproximar outras funções arbitrárias, assim como o princípio da integração.

nn10

Experimente

Complete a missão Broken Line e observe a função correspondente a cada neurônio.

Simulação de função binária

Avião

Este é o caso mais simples, podemos simulá-lo usando um neurônio sem função de ativação.

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

Ajustando os parâmetros de w1,w2,bw_1, w_2, b, qualquer plano pode ser simulado.

Função de etapa binária

Usamos um neurônio com função de ativação sigmoid para simulá-lo.

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

Função de impulso retangular binário

Semelhante ao caso de funções unárias, implementamos passo a passo:

  1. Use um único neurônio para simular uma borda da função
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. Então podemos obter a seguinte função:
wiw_i10
wjw_j-10
bib_i-5
  1. Finalmente, as seguintes funções podem ser sintetizadas
w51w_{51}10
w52w_{52}-10
w53w_{53}10
w54w_{54}-10
b5b_5-15

A estrutura final da rede neural é mostrada na figura abaixo:

Outras funções binárias

Usando a função de impulso retangular binária, podemos facilmente aproximar qualquer outra função binária, assim como o princípio da integração.

Experimente

Complete a missão Circle e observe a função correspondente a cada neurônio.

Simulação de função de n elementos

O princípio é o mesmo, imagine você mesmo! 😥

Pergunta

Já temos circuitos digitais e algoritmos de programas de software, por que precisamos de redes neurais?

Programas de software construídos em circuitos digitais também podem simular funções arbitrárias, então por que inventar redes neurais artificiais?