You are on page 1of 2

Segui o backpropagation Xor do video, com as classes: Dados,Treinamento,Teste e

InterfaceVisual.
Na classe Dados:
-Alterar numMaxIteracoes para 1000000;
-var t_treinamento tem que ser declarada como matriz ao invés de vetor, que é
como está.
-função configuraTreinamento mudar o parametro t para matriz, assim como
acima o item acima; comentar as duas chamadas de funções ou métodos de peso fixo e
descomentar as duas chamas de peso rand.
-função configuraNumNeuroniosNasCamadas, alterar numNeuroniosSaida 7;
-função getT_treinamento mudar o retorno de vetor para matriz.
Na classe Treinamento:
-var t tem que ser declarada como matriz ao invés de vetor, que é como está.
-função executaTreinamento, no passo 06 está assim:
delta_k[k] = (this.t[p] - y[k]) * 0.5*(1 + y[k]) * (1 - y[k]);
e tem que aticionar o k, em this.t[p] fica this.t[p][k]

Nessa função ainda, esta assim:


erroQuadratico = erroQuadratico + Math.abs(0.5*Math.pow( (this.t[p] -
y[k]), 2));
e tem que aticionar o k, em this.t[p] fica this.t[p][k]
Na classe Teste:
-Nessa classe tem que criar e incializar com zero uma var da classe pra
contar os erros.
-No passo 5 onde tem os if e else, só nessa parte, tem que remover as linhas
que usa o resultadoRede, e onde tem acertou deixar só o print e no errou vai
incrementar a veriavel definida anteriormente com contador de erro
-função getResultadoRede, if a variavel contador de erro for maior que 0,
então return "Errou"; Else Return "Acertou";
Na classe Gui ou equivalente a interface visual:
- A interface pode ser feita alterando a do BackPropagation Xor, para como
está no slide da Perceptron Letras e adicionando mais uma caixa de selecão, ficando
2 uma caixa pra selecionar a letra de entrada do teste e a letra alvo do teste. Ex:
entrada -> A2, alvo -> A...
Na parte de código:
Na função do botao de treinamento:
-Usar o arquivo DadosPerceptronRNA.java disponivel no moodle e copiar
tudo o que estiver DENTRO da função letras() menos a última linha que tem o this,
copiar também tudo o que estiver dentro de Alvos() menos a última linha que tem o
this. Substituir todos os int que tem nesses códigos copiados por double.
-Onde tem a chamada de configuraTreinamento trocar x por vetorLetras e
o t por vetor Alvos.
Na função do botão de Teste:
Escolher um dos tipos de fonte para testar, cada letra tem 3 fontes,
por Exemplo fonte 2: A2, B2, C2... para seguir os proximos passos
-Copiar da função de treinamento as linhas da fonte que vai usar, se
for a 2, A2, B2, C2, D2, E2, J2, K2.
-Copiar da função de treinamento os alvos de cada letra Ta,Tb,...Tk.
-Criar var entrada do tipo matriz double e inicializar com new
double[7][];
-Criar var alvo do tipo vetor double e inicializar com null;
-Criar duas variaveis int para obter a opção selecionada na interface,
ex:
int letraEntrada = jCBx1.getSelectedIndex();
int alvoDaLetra = jCBAlvo.getSelectedIndex();
-Fazer um if para cada possivel escolha, para cada entrada e para cada
alvo, na entrada e no alvo vai de 0 a 6 pois são 7 letras.
No if da entrada, ex:
if(letraEntrada==0){
//letra A
entrada[0] = A2;
}
if(letraEntrada==1){
//letra B
entrada[0] = B2;
}
No if do alvo, ex:
if(alvoDaLetra==0){
//letra A
alvo = Ta;
}
if(alvoDaLetra==1){
//letra B
alvo = Tb;
}
-Na chamada da função configuraTeste, vai passar como
parametro(entrada, alvo);

You might also like