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

Redes Neurais Artificiais

Embed Size (px)

Citation preview

Page 1: Redes Neurais Artificiais

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

Page 2: Redes Neurais Artificiais

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: 0a = , se o argumento de entrada n for inferior a 0, ou 1a = , 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

Page 3: Redes Neurais Artificiais

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 1 2, ,..., Rp p p é multiplicado por seu respectivo peso

1,1 1,2 1,, ,..., Rw w w . 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 .

Page 4: Redes Neurais Artificiais

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): 1R elementos de entrada e 1S neurônios.

Page 5: Redes Neurais Artificiais

Camada 2: Os 1S elementos do vetor de saída 1a serão as entradas para os 2S neurônios da segunda camada.

Camada 3 (de saída): A camada de saída recebe o vetor 2a como entrada para seus 3S 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.

Page 6: Redes Neurais Artificiais

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 1 2 3, , ,..., Rp p p p 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

Page 7: Redes Neurais Artificiais

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

Page 8: Redes Neurais Artificiais

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.

Page 9: Redes Neurais Artificiais

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.

Page 10: Redes Neurais Artificiais

Referências Bibliográficas

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