Академический Документы
Профессиональный Документы
Культура Документы
Sumrio
Feedforward
Em uma rede feedforward, cada camada se conecta prxima camada, porm no h caminho de volta. Todas as conexes portanto, tm a mesma direo, partindo da camada de entrada rumo a camada de sada.
Backpropagation
O algoritmo backpropagation se trata de um treinamento supervisionado. Com o erro calculado, o algoritmo corrige os pesos em todas as camadas, partindo da sada at a entrada.
Redes Feedforward
Deve se definir:
Apesar de haverem tcnicas bsicas, alguns experimentos so necessrios para se definir a estrutura tima da rede.
Camada de Entrada
Cada neurnio na camada de entrada deve representar alguma varivel independente que influencia o resultado da rede neural.
Em nossa implementao, cada entrada corresponde a um valor double, normalizado.
Camada de Sada
O nmero de neurnios est diretamente relacionado com a tarefa que a rede neural executa.
Em geral, o nmero de neurnios que um classificador deve possuir, nesta camada, igual ao nmero de grupos distintos.
OCR: Optimal Character Recognition. Suponha uma rede neural que reconhea as 26 letras do alfabeto ingls. Cada padro a ser classificado consiste em uma imagem de 35 pixels (5x7). A imagem consiste na entrada, sendo cada pixel representado por um respectivo neurnio. Portanto, 35 neurnios na entrada. A letra reconhecida representada pelo neurnio que dispara alguma sada positiva. Portanto, 26 neurnios na sada.
Funes de Ativao
Mtodos de treinamento como o backpropagation exigem que a funo de ativao possua derivada.
f(x) = x(1-x)
f(x) = 1-x
Problemas que requerem duas camadas intermedirias so raros. Basicamente, uma rede neural com duas camadas intermedirias capaz de representar funes de qualquer formato. No existem razes tericas para se utilizar mais que duas camadas intermedirias. Na prtica, para muitos problemas comuns, no h razes para se utilizar mais que uma camada intermediria.
Apesar de no interagirem com o ambiente externo, as camadas intermedirias exercem enorme influncia no funcionamento da rede.
Feedforward: computeOutputs(...)
Apresenta a rede um vetor de entrada. Chama o mtodo computeOutputs de cada camada. Retorna o valor disparado pela camada de sada.
FeedforwardLayer: computeOutputs(...)
Calcula o somatrio dos produtos entre entradas e pesos. Dedine os disparos de cada neurnio da prxima camada por meio da funo de ativao.
A funo que calcula o erro precisa ser diferencivel, assim como a funo de ativao. Atravs da derivada da funo do erro, podese encontrar os pesos que minimizam o erro. Um mtodo comum a descida do gradiente.
Backpropagation: iteration()
Percorre todos os conjuntos de treinamento. Cada conjunto apresentado a rede e o erro calculado. Aps apresentar todos os conjuntos de treinamento, o mtodo learn() chamado.
Backpropagation: calcError()
Limpa todos os erros anteriores nas camadas da rede. A partir da sada, percorre todas as camadas da rede, at a camada de entrada.
BackpropagationLayer: calcError(...)
Acumula uma matriz de deltas. Determina a contribuio da camada para o erro observando os deltas da prxima camada e os dispares da camada atual. Utiliza a derivada das funes de ativao para o clculo do delta.
Backpropagation: learn()
Chamado aps o clculo de todos os erros, este mtodo aplica os deltas aos pesos e limiares. Utiliza a taxa de aprendizado e o momentum para definir como as mudanas sero aplicadas.