You are on page 1of 10

1 Redes Neurais Artificiais

Redes neurais são dispositivos matemáticos inspirados em sistemas nervosos


biológicos que têm como objetivo adquirir conhecimento de uma função específica,
através de ajustamento de valores, a fim de que determinados dados de entrada levem a
uma meta específica de saída.

1.1 Estrutura de uma Rede Neural

1.1.1 Neurônio Simples


Um neurônio simples, como o representado na Figura 1, tem como dado de
entrada um escalar p que é transmitido através de uma conexão que o multiplica por um
peso escalar w. A entrada wp é o único argumento da função de transferência f que
determina a saída escalar a.

Figura 1 – Neurônio simples sem bias

Um neurônio simples pode conter um parâmetro denominado bias, um escalar que


é somado ao produto wp, que gera a entrada (wp+b) para a função de transferência.
Esse modelo de neurônio é representado na Figura 2.

Figura 2 – Neurônio simples com bias


O objetivo das redes neurais é que, através do ajuste dos parâmetros mencionados
(w e b), seja possível chegar à saída desejada o escalar p tendo como dado de entrada o
escalar a.

1.1.2 Principais Funções de Transferência

1.1.2.1 Função de Transferência Hard-Limit


A função de transferência Hard-Limit limita a saída do neurônio à apenas dois
possíveis valores: a = 0 , se o argumento de entrada n for inferior a 0, ou a = 1 , se n for
maior ou igual a 0. Essa função é representada graficamente na Figura 3.

Figura 3 - Função de Transferência Hard-Limit

1.1.2.2 Função de Transferência Linear


A função linear é utilizada para aproximação de valores em filtros lineares. O
vetor de saída a = n como mostra a representação gráfica na Figura 4.

Figura 4 – Função de Transferência Linear

1.1.2.3 Função de Transferência Log-Sigmoid


A utilização da função Log-Sigmoid em redes backpropagation é muito comum
principalmente por tratar-se de uma função diferenciável. Essa função recebe como
entrada n qualquer valor entre −∞ e +∞ e comprime a saída a à valores entre 0 e 1.

Figura 5 – Função de Transferência Log-Sigmoid


1.1.2.4 Função de Transferência Tan-Sigmoid
Essa função, da mesma forma de a Log-Sigmoid, é diferenciável e recebe como
entrada n qualquer valor entre −∞ e +∞ , porém comprime a saída a à valores entre -1
e 1.

Figura 6 – Função de Transferência Tan-Sigmoid

1.1.3 Neurônio com vetor de entrada


Um neurônio com R elementos de entrada é representado na Figura 7. Cada
elemento de entrada p1 , p2 ,..., pR é multiplicado por seu respectivo peso
w1,1 , w1,2 ,..., w1, R . O somatório desses valores ponderados com o acréscimo do parâmetro
bias é o argumento n da função de transferência f .

Figura 7 – Representação simbólica de um Neurônio com vetor de entrada

1.1.4 Rede Neural com uma Camada


Dois ou mais neurônios, como os vistos anteriormente, podem ser combinados em
uma ou mais camadas. Uma rede de uma camada com R elementos de entrada e S
neurônios é representada na Figura 8.
Neste caso casa elemento do vetor de entrada p está ligado à cada neurônio de
entrada através da matriz de pesos W .
Portanto, teremos S elementos nos vetores n , que será o argumento da função de
transferência f , e a , que é a saída. Não é necessário que a quantidade de neurônios
seja igual à de elementos de entrada.

Figura 8 – Representação de uma Rede Neural com camada única

Essa rede pode ser representada de uma forma compacta como mostra a Figura 9.

Figura 9 – Representação compacta de uma rede neural com camada única

1.1.5 Rede Neural com multicamadas


Uma rede neural pode ser estruturada com mais de uma camada. Neste caso, cada
camada contém uma matriz de pesos W , um vetor de bias, uma função de transferência
f e um vetor de saída a .
A Figura 10 mostra a representação de uma rede com 3 camadas estruturadas da
seguinte forma:
Camada 1(de entrada): R1 elementos de entrada e S 1 neurônios.
Camada 2: Os S 1 elementos do vetor de saída a1 serão as entradas para os S 2
neurônios da segunda camada.
Camada 3 (de saída): A camada de saída recebe o vetor a 2 como entrada para seus
S 3 neurônios.

Figura 10 – Representação de uma Rede Neural com multicamadas

A Figura 11 utiliza uma notação compacta para representar a mesma rede. A


matriz de pesos da camada de entrada é representada por IW e as demais por LW. O
vetor saída da terceira camada, que é o vetor de interesse da rede, é denominado y .

Figura 11 – Representação compacta de uma rede neural com multicamadas

1.2 Perceptron
As redes perceptron foram umas das primeiras a serem desenvolvidas, no final da
década de 1950 por Rosenblatt. São especialmente indicadas para problemas simples de
classificação devido à sua capacidade de generalização e de aprendizado a partir de
vetores inicialmente distribuídos de forma aleatória.
O treinamento é através da regra de aprendizado do perceptron (learnp), onde os
neurônios são treinados com exemplos do comportamento desejado.

1.2.1 Neurônio Perceptron


As entradas p1 , p2 , p3 ,..., pR são ponderadas com os pesos adequados e a soma
ponderada das entradas é enviada para a função de transferência Hard-Limit que retorna
como vetor de saída 0 ou 1, como explicado no Capítulo 1.2.1. A Figura 7 mostra a
representação simbólica de um neurônio perceptron.

Figura 12 – Neurônio Perceptron

1.2.2 Arquitetura de uma rede Perceptron


Uma variação simples de arquitetura de rede, com apenas uma camada com S
neurônios perceptron conectados a R entradas através de um conjunto de pesos, é
representada simbolicamente de duas formas na Figura 8.

Figura 13 - Arquitetura de uma rede perceptron com uma camada


1.3 Backpropagation
Backpropagation foi criado generalizando a regra de aprendizagem Widrow-Hoff
para redes multicamadas e funções de transferência não lineares e diferenciáveis. Os
vetores de entrada e os vetores alvos correspondentes são usados para formar uma rede
até que ela possa aproximar uma função, associar vetores de entrada com os de saída ou
classificar os vetores de entrada de determinada forma.
Uma rede backpropagation formada e treinada de forma adequada tende a
fornecer respostas razoáveis quando inseridos dados de entrada nunca antes vistos.

1.3.1 Arquitetura de uma rede backpropagation


É importante que as redes backpropagation tenham a capacidade de derivar as
funções usadas, portando o uso de funções de transferência diferenciáveis se faz
necessário, sendo utilizadas as funções Tan-Sigmoid, Log-Sigmoid e Linear. Se a última
camada de uma rede multicamadas tem neurônios sigmóides as saídas da rede estão
limitadas a um pequeno intervalo, se os neurônios forem lineares, as saídas da rede
podem assumir qualquer valor.
Uma variação comum de rede backpropagation é a feedforward apresentando,
muitas vezes, uma ou mais camadas de neurônios sigmóides seguidas por uma camada
de saída com neurônios lineares, para não limitar a valores entre -1 e 1. Uma rede de
camada única com R entradas e S neurônios sigmóides é representada de duas formas na
Figura 9.

Figura 14 - Arquitetura de uma rede backpropagation com uma camada

1.3.2 Principais Funções de Treinamento de Redes


Backpropagation

1.3.2.1 Função de Treinamento BFGS quasi-Newton (trainbfg)


Essa função de treinamento de redes atualiza os valores dos parâmetros pesos e
bias de acordo com o método BFGS quasi-Newton, também conhecido como método
das variáveis métricas. Esse algoritmo encontra os locais de máximos e mínimos de
funções, ou seja, os pontos estacionários da função, através das suas derivadas
(Gradiente e Hessian) .

1.3.2.2 Função de Treinamento por Regularização Bayesiana (trainbr)


A função de treinamento de redes por regularização bayesiana atualiza os valores
dos parâmetros de acordo com o algoritmo Levenberg-Marquardt, que fornece uma
solução numérica para o problema de minimizar uma função, geralmente não-linear, ao
longo do espaço de parâmetros da função.

1.3.2.3 Função de Treinamento Gradiente Conjugado com reínicio


Powell-Beale (traincgb)
Essa função atualiza os valores dos parâmetros através do método do gradiente
conjugado com algoritmo Powell-Beale. Todos os métodos do gradiente conjugado
buscam uma solução numérica de sistemas específicos de equações lineares, ou seja,
aqueles cuja matriz é simétrica e positiva definida. O algoritmo Powell-Beale restarts
foi proposto por Powell baseado em uma versão anterior criada por Beale e reinicia toda
vez que há pouca ortogonalidade entre o gradiente atual e o anterior. O requisito de
armazenamento é de 6 vetores.

1.3.2.4 Função de Treinamento Gradiente Conjugado com atualização


Fletcher-Reeves (traincgf)
Essa função também utiliza o método do gradiente conjugado, porém com
atualizações Fletcher-Reeves. Este algoritmo calcula a ambas direções conjugadas da
pesquisa com relação à matriz de Hessian, diretamente a partir da função avaliação e
avaliação do gradiente, mas sem a avaliação direta do Hessian da função.

1.3.2.5 Função de Treinamento Gradiente Conjugado com atualização


Polak-Ribiére (traincgp)
Essa função, da mesma forma que todas as funções de gradiente conjugado, inicia
procurando o negativo do gradiente na primeira iteração, uma linha de pesquisa
determinar a melhor distancia para a próxima busca combinada com a busca anterior,
continuando assim de forma sucessiva. A versão proposta por Polak e Ribiére é muito
semelhante à de Fletcher-Reeves no que diz respeito à desempenho, porém os requisitos
de armazenamento são maiores: 4 vetores ao invés de 3.

1.3.2.6 Função de Treinamento Gradiente Descendente (traingd)


A atualização dos parâmetros dessa função é realizada de acordo com o método do
gradiente descendente, que busca o mínimo local da função.

1.3.2.7 Função de Treinamento Gradiente Descendente com Momento


(traingdm)
Essa variação de algoritmo de gradiente descendente fornece uma convergência
mais rápida pois trabalha não somente com o gradiente local mas também com as
tendências recentes da superfície de erro.

1.3.2.8 Funçôes de Treinamento Gradiente Descendente com taxa de


aprendizagem variável (traingda,traingdx)
São funções de gradiente descendente com taxa de aprendizagem variável.
Possibilitam que essa taxa se altere durante o treinamento de forma a maximizar, sem
desestabilizar, o aprendizado. A segunda função usa o algoritmo gradiente descendente
com momento.
1.3.2.9 Função de Treinamento Levenberg-Marquardt (trainlm)
É uma função que utiliza o algoritmo Levenberg-Marquardt para determinar os
parâmetros de treinamento. O algoritmo fornece uma solução numérica para o problema
de minimizar uma função, geralmente não-linear, ao longo do espaço de parâmetros da
função.

1.3.2.10 Função de Treinamento One-Step Secant (trainoss)


Essa função é uma tentativa de combinação dos algoritmos gradiente conjugado e
Quasi-Newton. Este algoritmo não armazena a matriz Hessian, ele assume que a cada
iteração, o Hessian anterior foi a matriz identidade. Este sistema tem a vantagem
adicional de que a nova direção da pesquisa pode ser computada sem calcular uma
matriz inversa.

1.3.2.11 Função de Treinamento Incremento de Ordem Randômico


(trainr)
Essa função atualiza os parâmetros de treinamento a cada apresentação de uma
nova entrada, que é feita de forma aleatória.

1.3.2.12 Função de Treinamento Resiliente (trainrp)


Essa função atualiza os parâmetros de treinamento através do algoritmo de
retropropagação resiliente (Rprop). Esse algoritmo foi criado por Martin Riedmiller e
consiste em atuar independentemente para cada peso e enfocar apenas o sinal da
derivada parcial da função erro para a comparação entre a iteração atual e a anterior.

1.3.2.13 Função de Treinamento Gradiente Conjugado Dimensionado


(trainscg)
Essa função utiliza o método do gradiente conjugado dimensionado. É um método
de aprendizagem supervisionado. Não é recomendado para classificação de padrões.

1.3.3 Funções de Aprendizagem de Redes Backpropagation


As funções de aprendizagem learngd e learngdm utilizam o método de gradiente
descendente para a atualização dos parâmetros pesos e bias.

1.3.4 Funções de Desempenho de Redes Backpropagation


A funções que utilizam o erro médio quadrático são MSE e MSEREG. MSE é o
padrão para esse tipo de rede.A função MSEREG mede o desempenho da rede com a
soma de dois fatores: o erro médio quadrático e os valores dos parâmetros (pesos e bias)
quadráticos, por isso chamada de erro médio quadrático com regularização.
SSE é a outra função de performance para redes backpropagation. Essa função
mede o desempenho da rede de acordo com a soma dos erros ao quadrado, ao contrario
das anteriores que utilizam a média dos erros.
Referências Bibliográficas

[1] Neural Network Toolbox 4. The MathWorks. 2005.

You might also like