Author: Not specified Language: matlab
Description: Not specified Timestamp: 2017-05-01 03:10:36 +0000
View raw paste Reply
  1. function [ errorTotal, pesosSalida ] = Iterar( n, pesosEntrada, bias, archivo)
  2. %UNTITLED Summary of this function goes here
  3. %   Detailed explanation goes here
  4.     %conjunto = dlmread(strcat('Codificador',int2str(n)));    
  5.    
  6.     if(isempty(archivo))
  7.         conjunto = load(strcat('Codificador',int2str(n)));
  8.     else
  9.         conjunto = load(archivo);
  10.     end
  11.     [altura,ancho] = size(conjunto);
  12.     alfa = 0.12;
  13.    
  14.     %matriz para guardar todos los pesos de la iteracion
  15.     pesosIteracion = zeros(altura,ancho-1);  
  16.    
  17.     %primer fila, pesos iniciales
  18.     pesosIteracion(1,:) = pesosEntrada;
  19.    
  20.     % vector columna para guardar las a
  21.     ases = zeros(1,altura)';
  22.     % vector para guardar los errores
  23.     errores = zeros(1,altura)';
  24.  
  25.     %si el bias no es cero
  26.     if(bias ~= 0 )
  27.         biases = zeros(altura,1);
  28.         biases(1,1) = bias;
  29.     end
  30.    
  31.     for j.html">j=2:altura
  32.          w = pesosIteracion(j-1,:);
  33.          p = conjunto(j.html">j,1:(end-1))';%vector columna de pesos
  34.          t = conjunto(j.html">j,end);
  35.          
  36.          if(bias == 0 )
  37.             %calcular a sin bias
  38.             ases(j.html">j,1) = ( w * p );
  39.          else
  40.              %calcular b
  41.              b = biases(j-1,1);
  42.              %calcular a con bias
  43.              ases(j.html">j,1) = ( w * p ) + b;
  44.               %calcular elclc nuevo bias
  45.              biases(j.html">j,1) = round( b + 2*(alfa)*(t - ases(j.html">j,1) ),2);
  46.          end
  47.          
  48.          errores(j.html">j,1) = (t - ases(j.html">j,1))^2;
  49.          %agregar los nuevos pesos
  50.          for k=1:(ancho-1)
  51.              %si esa entrada en p es cero p(k,1) por que es un vector columna
  52.              if(p(k,1) == 0)
  53.                 pesosIteracion(j.html">j,k) = pesosIteracion(j-1,k);
  54.              else
  55.                  pesosIteracion(j.html">j,k) = round(pesosIteracion(j-1,k) + 2*(alfa)*(t - ases(j.html">j,1) ),2);
  56.              end                      
  57.          end
  58.          
  59.     end
  60.     dlmwrite('pesos',pesosIteracion,'-append')
  61.    
  62.     errorTotal = mean(errores);
  63.     dlmwrite('errores',errorTotal,'-append')
  64.     pesosSalida = pesosIteracion(end,:);
  65.  
  66. end
  67.     if(z == iteraciones)
  68.         disp('Iteraciones máximas terminadas, el aprendizaje no fue exitoso');
  69.         disp(errorIteracion);
  70.         disp(pesos);
  71.     else
  72.         disp('Error minimo alcanzado, el aprendizaje fue exitoso');
  73.         disp(errorIteracion);
  74.         disp(pesos);
  75.     end
  76. end
View raw paste Reply