E N D
Biological Neural Networks • Neuron switching time : > 10-3 secs • Number of neurons in the human brain: ~10^10 • Connections (synapses) per neuron : ~10^4–10^5 • Face recognition : 0.1 secs • High degree of parallel computation • Distributed representations H. Galhardas
Um neurónio - k • The n-dimensional input vector x is mapped into variable y by means of the scalar product and a nonlinear function mapping x0 w0 x1 w1 f å output y xn wn Input vector x weight vector w weighted sum Activation function H. Galhardas
Um neurónio - k x0 w0 x1 w1 f å output y xn wn Input vector x weight vector w weighted sum Activation function H. Galhardas
Um Perceptrão H. Galhardas
Output layer Input layer Hidden layer Redes Neuronais - Composição • Rede composta por: • 1 input layer • 1 ou mais hidden layer(s) • 1 output layer H. Galhardas
Output layer Input layer Hidden layer Redes Neuronais - Tipos • Redes 2-layer - apenas 1 hidden layer • O mais comum • Redes 3-layer - com 2 hidden layer • feed-forward • Sem existência de ciclos • fully connected • Cada nó transmite input para todos os nós da layer seguinte H. Galhardas
Appropriate Problem Domainsfor Neural Network Learning • Input is high-dimensional discrete or real valued (e.g. raw sensor input) • Output is discrete or real valued • Output is a vector of values • Form of target function is unknown • Humans do not need to interpret the results (black box model) H. Galhardas
Redes Neuronais - Vantagens • Possui a capacidade de aprender ao longo do tempo • Bons resultados mesmo com dados sujos • Por vezes descobrem-se padrões para os quais não foi sequer treinada H. Galhardas
Redes Neuronais - Desvantagens • Dificuldade em efectuar treino da rede numa BD de grande dimensão (tempos de treino muito grandes) • Trabalha apenas com dados númericos (necessário transformação dos dados) • Não existe conhecimento sobre o tratamento dos dados no interior da rede (Caixa Preta) => dificil de interpretar H. Galhardas
M/F Idade Altura Peso Fuma? Bebe? Aplicação de Redes Neuronais em DM • Ex1: Determinar o risco de ter Cancro Risco de Cancro Dados Saida Dados Entrada H. Galhardas
Aplicação de Redes Neuronais em DM • Ex2: Determinar se dado cliente possui crédito Renda Débito Idade Reg. Pagamentos H. Galhardas % de ter crédito % de não ter crédito
Transformação de dados BD Resultados Passos para efectuar DM em Redes Neuronais 1 - Transformação de dados 2 - Criação da Rede 3 - Treino da rede 4 - Uso da rede, obtenção de resultados H. Galhardas
Transformação de dados • Para a utilização de DM em Redes Neuronais é necessário converter todos os campos da BD para valores númericos entre 0 e 1. • Exemplo: H. Galhardas
Transformação de Dados • Exemplo 2: Dada a seguinte tabela… • Como converter os dados de modo a permitir o uso de Rede Neuronal para inferir se determinada pessoa tem o cabelo enfraquecido pelo sol? H. Galhardas
Hair Height … … Sunburned? Weight Lotion Criação da Rede Neuronal • Vamos criar uma rede 2-layer • Input layer • Hair – precisamos de 3 inputs • Height, Weight – 3 inputs • Lotion – 2 inputs • Output layer • Sunburned? – 2 Outputs • Hidden layer • Qualquer valor é aceitável • 5 nós • Ficamos com uma rede 11x5x2 H. Galhardas
Treino da Rede • Usa-se um conjunto de amostras cujo valor da função alvo (ou objectivo) é conhecido - amostras de treino • Ex: a linha da tabela relativa a Sarah pode ser usada como amostra de treino H. Galhardas
Treino de Rede Neuronal - Exemplo • Rede Neuronal • 2-layer • Apenas 1 hidden layer • feed forward • Sem ciclos • 3 nós de Input • 1 nó de Output • Utilização do algoritmo de backpropagation • o mais comum para o treino de redes neuronais H. Galhardas
1 θ θ 0 θ 1 Algoritmo de Backpropagation • Dada a amostra de treino… • Calcular o erro em cada nó • Alterar o peso dos arcos • Alterar o bias dos nós ≠ O,55 • Treinar a nova rede com outra amostra de treino H. Galhardas
Multi-Layer neural network Output vector Output nodes Hidden nodes wij Input nodes Input vector: xi H. Galhardas
=0,2 Nó 1 Nó 2 Nó 3 Nó 4 Nó 5 Nó 6 w14 θ =-0,4 =-0,3 =-0,3 w15 θ =0,1 w46 =0,4 w24 =0,1 θ =0,2 w25 =-0,2 w56 =-0,5 w34 =0,2 w35 Ex: Inicialização da rede • Inicializar todos os valores da rede • Inicializar valores de w • Valor aleatório entre -0.5 e 0.5 ou entre -1.0 e 1.0 • Inicializar valores de θ (bias) dos nós • Valor aleatório entre -0.5 e 0.5 H. Galhardas
=0,2 Nó 1 Nó 2 Nó 3 Nó 4 Nó 5 Nó 6 w14 θ =-0,4 =-0,3 =-0,3 w15 θ =0,1 w46 =0,4 w24 =0,1 θ =0,2 w25 =-0,2 w56 =-0,5 w34 =0,2 w35 Ex: Input Forward (Propagação das entradas) 1 -0,7 Passo 1: Propagar o valor de input na rede • I4 = 1x0,2 + 0x0,4 + 1x(-0,5) – 0,4 = -0,7 • Mesmo para I5 0 0,1 1 H. Galhardas
=0,2 Nó 1 Nó 2 Nó 3 Nó 4 Nó 5 Nó 6 w14 θ =-0,4 =-0,3 =-0,3 w15 θ =0,1 w46 =0,4 w24 =0,1 θ =0,2 w25 =-0,2 w56 =-0,5 w34 =0,2 w35 Ex: Input Forward (cálculo dos Outputs) 1 0,33 0 0,55 0,52 1 Passo 2: Calcular o valor de Output • O4 = 1 / (1 + e0,7) = 0,33 • Mesmo para O5 • Repetir passos 1 e 2 para Nó 6 H. Galhardas
=0,2 Nó 1 Nó 2 Nó 3 Nó 4 Nó 5 Nó 6 w14 θ =-0,4 =-0,3 =-0,3 w15 θ =0,1 w46 =0,4 w24 =0,1 θ =0,2 w25 =-0,2 w56 =-0,5 w34 =0,2 w35 Ex: Backpropagate Error 1 0,33 0 0,55 0,52 Err6 = 0,1311 1 Passo 3: Calcular o valor do erro no Output layer • Sendo Tj o valor de Output real, nesta amostra Oreal6=1 • Err6 = (0,55)(1 – 0,55)(1 – 0,55) = 0,1311 H. Galhardas
=0,2 Nó 1 Nó 2 Nó 3 Nó 4 Nó 5 Nó 6 w14 θ =-0,4 =-0,3 =-0,3 w15 θ =0,1 w46 =0,4 w24 =0,1 θ =0,2 w25 =-0,2 w56 =-0,5 w34 =0,2 w35 Ex: Backpropagate Error 1 0,33 0 0,55 0,52 Err6 = 0,1311 Err5 = -0,0065 1 Err4 = -0,087 Passo 4: Calcular o valor do erro na Hidden layer • Não podemos usar o valor real, pois os valores do hidden layer são desconhecidos • Err4 = (0,33)(1 – 0,33)(0,1311)(-0,3) = -0,0087 • Mesmo para Err5 H. Galhardas
=0,180 Nó 1 Nó 2 Nó 3 Nó 4 Nó 5 Nó 6 w14 θ =-0,4 =-0,267 w15 θ =0,1 w46 =0,4 w24 =0,1 θ =0,2 w25 =-0,032 w56 =-0,52 w34 =0,233 w35 Ex: Actualizar valores de W 1 0,33 =-0,153 0 0,55 0,52 Err6 = 0,1311 Err5 = -0,0065 1 Err4 = -0,087 Passo 5: Recalcular os valores de w • ℓ - constante de learning rate com valor entre 0 e 1 (neste exemplo ℓ=0,9) • Δw46 = (0,9)(0,1311)(0,33) = 0,039 • W46 = w46 + Δw46 = -0,3 + 0,039 = -0,261 • Mesmo para os restantes valores de w. H. Galhardas
=0,192 Nó 1 Nó 2 Nó 3 Nó 4 Nó 5 Nó 6 w14 θ =-0,408 =-0,306 w15 θ =0,218 w46 =0,4 w24 =0,1 w25 =-0,138 w56 =-0,508 w34 =0,194 w35 Ex: Actualizar valores de θ 1 0,33 =-0,261 0 0,55 θ =0,194 0,52 1 Passo 5: Recalcular os valores de θ • e • Δθ5 = (0,9)(-0,065) = -0,0585 • θ5 = θ5 + Δθ5 = 0,2 - 0,0585 = 0,194 • Mesmo para os restantes valores de θ. H. Galhardas
=0,192 Nó 1 Nó 2 Nó 3 Nó 4 Nó 5 Nó 6 w14 θ =-0,408 =-0,306 w15 θ =0,218 w46 =0,4 w24 =0,1 w25 =-0,138 w56 =-0,508 w34 =0,194 w35 Ex: Caso Paragem 1 0,33 =-0,261 0 0,55 θ =0,194 0,52 1 • Realizar todos os passos com uma nova amostra de treino, até que… (casos de paragem) • Todos os Δw são inferiores a um valor pré-determinado • A percentagem de amostras mal classificadas na ultima iteração é abaixo de determinado valor • Foi atingido um número máximo de iterações • Uma iteração é o treino da rede com todas as amostras existentes uma vez H. Galhardas
Finalmente… • Uma vez terminado o treino da Rede… • Esta deve ser validada através de um conjunto de dados de teste • Uma vez validada, a rede pode ser utilizada para obter valores desconhecidos H. Galhardas
Bibliografia • Data Mining: Concepts and Techniques, J. Han & M. Kamber, Morgan Kaufmann, 2001 (Cap 7) • Machine Learning, Tom Mitchell, McGraw 1997 (Cap 4) • Trabalho de Investigação de SAD03/04 de Pedro Canteiro sobre Redes Neuronais • Princípios Essenciais do Data Mining, Sérgio Navega, http://www.intelliwise.com/snavega H. Galhardas