Welcome, guest! Login / Register - Why register?
Psst.. new poll here.
Psst.. new forums here.
Microsoft is blocking us again (TY IP Reputation!) so just use oauth login instead. :)

Paste

Pasted as Scilab by Hubert ( 15 years ago )
// Kod eksperymentu 2

funcprot(0);
exec('mlp.sce', -1);
funcprot(1);

architecture = [13 26 1];
betaParam = 0.6;
[trainingInput, trainingOutput] = readDataFromCSVFile('housing.data')

//trainingInput=trainingInput(1:10,1:$);
//trainingOutput=trainingOutput(1:10);
trainingOutput=trainingOutput/100.0;
trainingInput(1:$,1)=trainingInput(1:$,1)/max(trainingInput(1:$,1));
trainingInput(1:$,2)=trainingInput(1:$,2)/max(trainingInput(1:$,2));
trainingInput(1:$,3)=trainingInput(1:$,3)/max(trainingInput(1:$,3));
trainingInput(1:$,4)=trainingInput(1:$,4)/max(trainingInput(1:$,4));
trainingInput(1:$,5)=trainingInput(1:$,5)/max(trainingInput(1:$,5));
trainingInput(1:$,6)=trainingInput(1:$,6)/max(trainingInput(1:$,6));
trainingInput(1:$,7)=trainingInput(1:$,7)/max(trainingInput(1:$,7));
trainingInput(1:$,8)=trainingInput(1:$,8)/max(trainingInput(1:$,8));
trainingInput(1:$,9)=trainingInput(1:$,9)/max(trainingInput(1:$,9));
trainingInput(1:$,10)=trainingInput(1:$,10)/max(trainingInput(1:$,10));
trainingInput(1:$,11)=trainingInput(1:$,11)/max(trainingInput(1:$,11));
trainingInput(1:$,12)=trainingInput(1:$,12)/max(trainingInput(1:$,12));
trainingInput(1:$,13)=trainingInput(1:$,13)/max(trainingInput(1:$,13));


epochsNo = 5000;
iters = 3;
learningCoeffs = [10 5.6];


for learningCoefficient = learningCoeffs
    clf();
    xtitle(sprintf('coeff. = %f' ,learningCoefficient), 't', 'SSE');
    for iter = 1:iters    
        W = createRandomizedWeights(architecture);
        SSElog = [];
        
        // Proces uczenia sieci w kolejnych epokach
        for epochNo = 1:epochsNo
          for exampleNo = 1:size(trainingInput, 1)
             [X, D] = getInputAndOutputVector(...
                 trainingInput, trainingOutput, exampleNo);
//             D=D/100.0;
             gradients = calculateGradients(W, X, D);
        
//             W(,1) = W(,1) - learningCoefficient*gradients;
             for i = 1:length(W)
                W(i) = W(i) - learningCoefficient*gradients(i);
             end
          end
          
          SSE = calculateSSE(W, trainingInput, trainingOutput);
          SSElog(epochNo) = SSE;
          //if SSE < 0.01 then
          //    break;
          //end
        end
        
        // przetestuj siec -- wypisz wartosci zwracane dla kazdego 
        // z wektorow ze zbioru uczacego i porownaj z docelowymi
        mprintf('\nTraining set examples results:\n');
        for exampleNo = 1:size(trainingInput, 1)
          [X, D] = getInputAndOutputVector(...
              trainingInput, trainingOutput, exampleNo);
          [XOut, U1, V1, U2, Y] = runNetwork(W, X);
          if size(X, 1) ~= 13 or size(D, 1) ~= 1
            error('Support for non-default input and output ' + ... 
                    'is not implemented');
          end    
          mprintf('X= [%f %f %f %f %f %f %f %f %f %f %f %f %f]^T, D=%f, Y=%f\n', ...
                X(1, 1), X(2, 1), X(3,1), X(4,1), X(5,1), X(6,1), X(7,1), ...
                X(8, 1), X(9,1), X(10,1), X(11,1), X(12,1), X(13,1), D, Y);
        end
        
        plot(SSElog);
    end
    mprintf('Zadanie wykonane dla parametru %f\n', learningCoefficient);
    mprintf('Wcisnij enter, aby wykonac test dla kolejnego parametru\n');
    halt();

end
mprintf('To koniec\n');

 

Revise this Paste

Parent: 32857
Your Name: Code Language: