Neurônio artificial - Artificial neuron

Um neurônio artificial é uma função matemática concebida como um modelo de neurônios biológicos , uma rede neural . Neurônios artificiais são unidades elementares em uma rede neural artificial . O neurônio artificial recebe uma ou mais entradas (representando potenciais pós-sinápticos excitatórios e potenciais pós-sinápticos inibitórios em dendritos neurais ) e os soma para produzir uma saída (ouativação , representando o potencial de ação de um neurônioque é transmitido ao longo de seu axônio ). Normalmente, cada entrada é ponderada separadamentee a soma é passada por uma função não linear conhecida como função de ativação ou função de transferência . As funções de transferência geralmente têm uma forma sigmóide , mas também podem assumir a forma de outras funções não lineares, funções lineares por partes ou funções de etapa . Eles também são frequentemente monotonicamente crescentes , contínuos , diferenciáveis e limitados . A função de limite inspirou a construção de portas lógicas conhecidas como lógica de limite; aplicável à construção de circuitos lógicos semelhantes ao processamento cerebral. Por exemplo, novos dispositivos, como memristores , foram amplamente usados ​​para desenvolver tal lógica nos últimos tempos.

A função de transferência de neurônios artificiais não deve ser confundida com a função de transferência de um sistema linear .

Estrutura básica

Para um dado neurio artificial k, que haja m  + 1 entradas com sinais x 0 através x m e pesos w k 0 através w k m . Normalmente, a entrada x 0 recebe o valor +1, o que a torna uma entrada de polarização com w k 0  =  b k . Isso deixa apenas m entradas reais para o neurônio: de x 1 a x m .

A saída do k- ésimo neurônio é:

Onde (phi) é a função de transferência (comumente uma função de limite).

Artificial neuron.png

A saída é análoga ao axônio de um neurônio biológico e seu valor se propaga para a entrada da próxima camada, por meio de uma sinapse. Ele também pode sair do sistema, possivelmente como parte de um vetor de saída .

Não tem nenhum processo de aprendizagem como tal. Os pesos da função de transferência são calculados e o valor limite é predeterminado.

Tipos

Dependendo do modelo específico utilizado que pode ser chamado de uma unidade semi-linear , Nv neurónio , neurónio binário , função limiar linear , ou McCulloch-Pitts ( MCP ) neurónio .

Neurônios artificiais simples, como o modelo de McCulloch-Pitts, às vezes são descritos como "modelos caricaturais", pois pretendem refletir uma ou mais observações neurofisiológicas, mas sem levar em conta o realismo.

Modelos biológicos

Neurônio e axônio mielinizado, com fluxo de sinal de entradas em dendritos para saídas em terminais de axônio

Os neurônios artificiais são projetados para imitar aspectos de suas contrapartes biológicas.

  • Dendritos - em um neurônio biológico, os dendritos atuam como o vetor de entrada. Esses dendritos permitem que a célula receba sinais de um grande número (> 1000) de neurônios vizinhos. Como no tratamento matemático acima, cada dendrito é capaz de realizar a "multiplicação" pelo "valor de peso" desse dendrito. A multiplicação é realizada aumentando ou diminuindo a proporção de neurotransmissores sinápticos para sinais químicos introduzidos no dendrito em resposta ao neurotransmissor sináptico. Um efeito de multiplicação negativo pode ser alcançado pela transmissão de inibidores de sinal (ou seja, íons de carga oposta) ao longo do dendrito em resposta à recepção de neurotransmissores sinápticos.
  • Soma - Em um neurônio biológico, o soma atua como a função de soma, vista na descrição matemática acima. À medida que os sinais positivos e negativos (excitantes e inibidores, respectivamente) chegam ao soma dos dendritos, os íons positivos e negativos são efetivamente adicionados na soma, pelo simples fato de serem misturados na solução dentro do corpo da célula.
  • Axônio - o axônio recebe seu sinal do comportamento de soma que ocorre dentro do soma. A abertura para o axônio essencialmente amostra o potencial elétrico da solução dentro do soma. Uma vez que o soma atinge um certo potencial, o axônio irá transmitir um pulso de sinal all-in ao longo de seu comprimento. Nesse sentido, o axônio se comporta como a capacidade de conectarmos nosso neurônio artificial a outros neurônios artificiais.

Ao contrário da maioria dos neurônios artificiais, no entanto, os neurônios biológicos disparam em pulsos discretos. Cada vez que o potencial elétrico dentro do soma atinge um certo limiar, um pulso é transmitido pelo axônio. Essa pulsação pode ser traduzida em valores contínuos. A taxa (ativações por segundo, etc.) na qual um axônio dispara se converte diretamente na taxa em que as células vizinhas recebem íons de sinal introduzidos nelas. Quanto mais rápido um neurônio biológico dispara, mais rapidamente os neurônios próximos acumulam potencial elétrico (ou perdem potencial elétrico, dependendo do "peso" do dendrito que se conecta ao neurônio que disparou). É essa conversão que permite aos cientistas da computação e matemáticos simular redes neurais biológicas usando neurônios artificiais que podem produzir valores distintos (frequentemente de -1 a 1).

Codificação

A pesquisa mostrou que a codificação unária é usada nos circuitos neurais responsáveis ​​pela produção do canto dos pássaros . O uso de unário em redes biológicas é provavelmente devido à simplicidade inerente da codificação. Outro fator contribuinte pode ser que a codificação unária fornece um certo grau de correção de erros.

História

O primeiro neurônio artificial foi a Threshold Logic Unit (TLU), ou Linear Threshold Unit, proposta pela primeira vez por Warren McCulloch e Walter Pitts em 1943. O modelo foi especificamente direcionado como um modelo computacional da "rede nervosa" no cérebro. Como uma função de transferência, ela empregou um limite, equivalente ao uso da função de passo de Heaviside . Inicialmente, apenas um modelo simples foi considerado, com entradas e saídas binárias, algumas restrições sobre os pesos possíveis e um valor de limite mais flexível. Desde o início já se percebeu que qualquer função booleana poderia ser implementada por redes de tais dispositivos, o que é facilmente percebido pelo fato de se poderem implementar as funções AND e OR, e utilizá-las na forma disjuntiva ou na forma normal conjuntiva . Os pesquisadores também logo perceberam que as redes cíclicas, com feedbacks por meio de neurônios, poderiam definir sistemas dinâmicos com memória, mas a maior parte da pesquisa se concentrou (e ainda o faz) em redes estritamente feed-forward devido à menor dificuldade que apresentam.

Uma rede neural artificial importante e pioneira que usou a função de limiar linear foi o perceptron , desenvolvido por Frank Rosenblatt . Este modelo já considerava valores de peso mais flexíveis nos neurônios, e era usado em máquinas com capacidades adaptativas. A representação dos valores de limiar como um termo de polarização foi introduzida por Bernard Widrow em 1960 - veja ADALINE .

No final da década de 1980, quando as pesquisas sobre redes neurais ganharam força, neurônios com formas mais contínuas começaram a ser considerados. A possibilidade de diferenciar a função de ativação permite o uso direto do gradiente descendente e outros algoritmos de otimização para o ajuste dos pesos. As redes neurais também começaram a ser usadas como um modelo de aproximação de função geral . O algoritmo de treinamento mais conhecido, chamado backpropagation , foi redescoberto várias vezes, mas seu primeiro desenvolvimento remonta ao trabalho de Paul Werbos .

Tipos de funções de transferência

A função de transferência (função de ativação ) de um neurônio é escolhida para ter uma série de propriedades que aumentam ou simplificam a rede que contém o neurônio. Crucialmente, por exemplo, qualquer perceptron multicamadas usando uma função de transferência linear tem uma rede de camada única equivalente; uma função não linear é, portanto, necessária para obter as vantagens de uma rede multicamadas.

Abaixo, u se refere em todos os casos à soma ponderada de todas as entradas do neurônio, ou seja, para n entradas,

onde W é um vector de pesos sinápticos e x é um vector de entradas.

Função de etapa

A saída y desta função de transferência é binária, dependendo se a entrada atende a um limite especificado, θ . O "sinal" é enviado, ou seja, a saída é definida como um, se a ativação atingir o limite.

Esta função é usada em perceptrons e freqüentemente aparece em muitos outros modelos. Ele realiza uma divisão do espaço de entradas por um hiperplano . É especialmente útil na última camada de uma rede destinada a realizar a classificação binária das entradas. Pode ser aproximado de outras funções sigmoidais atribuindo grandes valores aos pesos.

Combinação linear

Nesse caso, a unidade de saída é simplesmente a soma ponderada de suas entradas mais um termo de polarização . Vários desses neurônios lineares realizam uma transformação linear do vetor de entrada. Isso geralmente é mais útil nas primeiras camadas de uma rede. Existem várias ferramentas de análise baseadas em modelos lineares, como a análise harmônica , e todas podem ser usadas em redes neurais com esse neurônio linear. O termo de viés nos permite fazer transformações afins aos dados.

Veja: transformação Linear , Análise harmônica , filtro Linear , Wavelet , análise de componentes principais , análise de componentes independentes , Deconvolution .

Sigmóide

Uma função não linear bastante simples, a função sigmóide , como a função logística, também tem uma derivada facilmente calculada, que pode ser importante ao calcular as atualizações de peso na rede. Assim, torna a rede mais facilmente manipulável matematicamente e era atraente para os primeiros cientistas da computação que precisavam minimizar a carga computacional de suas simulações. Anteriormente, era comumente visto em perceptrons multicamadas . No entanto, um trabalho recente mostrou que os neurônios sigmóides são menos eficazes do que os neurônios lineares retificados . A razão é que os gradientes calculados pelo algoritmo de retropropagação tendem a diminuir para zero conforme as ativações se propagam através de camadas de neurônios sigmoidais, tornando difícil otimizar redes neurais usando várias camadas de neurônios sigmoidais.

Retificador

No contexto de redes neurais artificiais , o retificador é uma função de ativação definida como a parte positiva de seu argumento:

onde x é a entrada para um neurônio. Isso também é conhecido como função de rampa e é análogo à retificação de meia onda em engenharia elétrica. Esta função de ativação foi introduzida pela primeira vez em uma rede dinâmica por Hahnloser et al. em um artigo de 2000 na Nature com fortes motivações biológicas e justificativas matemáticas. Foi demonstrado pela primeira vez em 2011 que permite um melhor treinamento de redes mais profundas, em comparação com as funções de ativação amplamente utilizadas antes de 2011, ou seja, o sigmóide logístico (que é inspirado na teoria da probabilidade ; ver regressão logística ) e é mais prático contrapartida, a tangente hiperbólica .

Algoritmo de pseudocódigo

A seguir está uma implementação simples em pseudocódigo de um único TLU que recebe entradas booleanas (verdadeiro ou falso) e retorna uma única saída booleana quando ativado. Um modelo orientado a objetos é usado. Nenhum método de treinamento é definido, uma vez que existem vários. Se um modelo puramente funcional fosse usado, a classe TLU abaixo seria substituída por uma função TLU com limite de parâmetros de entrada, pesos e entradas que retornassem um valor booleano.

class TLU defined as:
    data member threshold : number
    data member weights : list of numbers of size X

    function member fire(inputs : list of booleans of size X) : boolean defined as:
        variable T : number
        T  0
        for each i in 1 to X do
            if inputs(i) is true then
                T  T + weights(i)
            end if
        end for each
        if T > threshold then
            return true
        else:
            return false
        end if
    end function
end class

Veja também

Referências

Leitura adicional

links externos