Académique Documents
Professionnel Documents
Culture Documents
UNIVERCIDAD NACIONAL
APLICACIONES DEL
D E L S A N TA
PERCEPTRON
INGENIERIA DE SISTEMAS
E I N F O R M AT I C A
En
R AelMsiguiente
OS SAM informe
A M E se
JOpresentan
N A T H Alas
N
aplicaciones del perceptron en java
CICLOV
1 BIOINFORMATICA
PERCEPTRON DE 2 ENTRADAS
El Perceptrn es un tipo de red neuronal artificial desarrollado por Frank
Rosenblat, tambin puede entenderse como perceptrn la neurona artificial y
unidad bsica de inferencia en forma de discriminador lineal, que constituye este
modelo de red neuronal artificial, esto debido a que el perceptrn puede usarse
como neurona dentro de un perceptrn ms grande u otro tipo de red neuronal
artificial.
Definicin
Aprendizaje
Los dos tipos de aprendizaje difieren en este paso. Para el primer tipo de
aprendizaje, utilizando tasa de aprendizaje, utilizaremos la siguiente regla de
actualizacin de los pesos:
Pasar a la regla de
actualizacin
package redneuronal2;
import java.util.*;
int n,filas,i,j,aux,cont,cont2,grupo;
n=2;
filas=(int)Math.pow(2,n);
aux=filas;
for(j=0;j<=n;j++){
aux=aux/2;
cont=0;
cont2=0;
grupo=1;
for(i=0;i<=filas-1;i++){
if(j!=n){
6 BIOINFORMATICA
if(cont==aux){
cont=0;
grupo++;
if(grupo%2!=0){
TablaAnd[i][j]=1;
cont++;
}else{
TablaAnd[i][j]=-1;
cont++;
}else{
for(int h=0;h<n;h++){
if(TablaAnd[i][h]==-1){
cont2++;
if(cont2==0){
TablaAnd[i][j]=1;
}else{
TablaAnd[i][j]=-1;
}}
7 BIOINFORMATICA
for(j=0;j<=filas-1;j++){
for(i=0;i<=n;i++){
if(TablaAnd[j][i]==1){
}else{
System.out.print(TablaAnd[j][i]+" ");
System.out.println();
System.out.println();
double[]peso=new double[n+1];
int Xo=-1;
double Wo=0,e=0;
8 BIOINFORMATICA
for(i=1;i<=n;i++){
peso[i]=R.nextDouble();
Wo=R.nextDouble();
System.out.println("Ingresa el Factor de
Aprendizaje");
e=R.nextDouble();
int[]y=new int[filas+1];
double SubSalida;
int aux2=1,z,it=0;
String salidas="";
while(aux2!=0){
aux2=0;
9 BIOINFORMATICA
z = 0;
salidas="";
for(j=1;j<=filas;j++){
SubSalida=0;
for(i=1;i<=n;i++){
SubSalida=SubSalida+TablaAnd[j-1][i-1]*peso[i];
salida[j]=SubSalida+Wo*Xo;
salida[j]=salida[j]*100;salida[j]=Math.round(salida[j]);salida[j]
=salida[j]/100;
if(salida[j]>=0){
y[j]=1;
}else{
y[j]=-1;
if(y[j]!=TablaAnd[j-1][n]){
aux2=aux2+1;
10 BIOINFORMATICA
salidas=j+", "+salidas;
if(aux2==1){
z=j-1;
}}
if(aux2!=0){
if(aux2==1){
}else{
for(i=1;i<=n;i++){
peso[i]=peso[i]+(2*e*TablaAnd[z][n]*TablaAnd[z]
[i-1]);
11 BIOINFORMATICA
peso[i]=peso[i]*100;peso[i]=Math.round(peso[i]);peso[i]=pes
o[i]/100;
Wo=Wo+(2*e*TablaAnd[z][n]*Xo);
Wo=Wo*100;Wo=Math.round(Wo);Wo=Wo/100;
it++;
}else{
System.out.println();
for(i=1;i<=n;i++){
System.out.println("\n");
}
12 BIOINFORMATICA
PERCEPTRON DE N ENTRADAS
14 BIOINFORMATICA
package redneuronal2;
import java.util.*;
int n,filas,i,j,aux,cont,cont2,grupo;
n=2;
filas=(int)Math.pow(2,n);
aux=filas;
for(j=0;j<=n;j++){
aux=aux/2;
cont=0;
15 BIOINFORMATICA
cont2=0;
grupo=1;
for(i=0;i<=filas-1;i++){
if(j!=n){
if(cont==aux){
cont=0;
grupo++;
if(grupo%2!=0){
TablaAnd[i][j]=1;
cont++;
}else{
TablaAnd[i][j]=-1;
cont++;
}else{
for(int h=0;h<n;h++){
if(TablaAnd[i][h]==-1){
cont2++;
if(cont2==0){
TablaAnd[i][j]=1;
16 BIOINFORMATICA
}else{
TablaAnd[i][j]=-1;
}}
for(j=0;j<=filas-1;j++){
for(i=0;i<=n;i++){
if(TablaAnd[j][i]==1){
}else{
System.out.print(TablaAnd[j][i]+" ");
System.out.println();
System.out.println();
double[]peso=new double[n+1];
int Xo=-1;
double Wo=0,e=0;
for(i=1;i<=n;i++){
peso[i]=R.nextDouble();
Wo=R.nextDouble();
System.out.println("Ingresa el Factor de
Aprendizaje");
e=R.nextDouble();
int[]y=new int[filas+1];
double SubSalida;
int aux2=1,z,it=0;
String salidas="";
18 BIOINFORMATICA
while(aux2!=0){
aux2=0;
z = 0;
salidas="";
for(j=1;j<=filas;j++){
SubSalida=0;
for(i=1;i<=n;i++){
SubSalida=SubSalida+TablaAnd[j-1][i-1]*peso[i];
salida[j]=SubSalida+Wo*Xo;
salida[j]=salida[j]*100;salida[j]=Math.round(salida[j]);salida[j]
=salida[j]/100;
if(salida[j]>=0){
y[j]=1;
}else{
y[j]=-1;
}
19 BIOINFORMATICA
if(y[j]!=TablaAnd[j-1][n]){
aux2=aux2+1;
salidas=j+", "+salidas;
if(aux2==1){
z=j-1;
}}
if(aux2!=0){
if(aux2==1){
}else{
for(i=1;i<=n;i++){
peso[i]=peso[i]+(2*e*TablaAnd[z][n]*TablaAnd[z]
[i-1]);
peso[i]=peso[i]*100;peso[i]=Math.round(peso[i]);peso[i]=pes
o[i]/100;
Wo=Wo+(2*e*TablaAnd[z][n]*Xo);
Wo=Wo*100;Wo=Math.round(Wo);Wo=Wo/100;
it++;
}else{
System.out.println();
for(i=1;i<=n;i++){
System.out.println("\n");
21 BIOINFORMATICA
OBTENEMOS LA SALIDAS: