19.01.2015 Views

Poznawanie własności sieci neuronowych w środowisku MATLAB

Poznawanie własności sieci neuronowych w środowisku MATLAB

Poznawanie własności sieci neuronowych w środowisku MATLAB

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

30 Rozdział 3. Sieci dwuwarstwowe MLP<br />

[ W1przed , W2przed ] = init2 ( 2 , 2 , 1 )<br />

% sprawdzenie działania <strong>sieci</strong> przed uczeniem<br />

[ Y1 , Y2a ] = dzialaj2 ( W1przed , W2przed , P (:,1) ) ;<br />

[ Y1 , Y2b ] = dzialaj2 ( W1przed , W2przed , P (:,2) ) ;<br />

[ Y1 , Y2c ] = dzialaj2 ( W1przed , W2przed , P (:,3) ) ;<br />

[ Y1 , Y2d ] = dzialaj2 ( W1przed , W2przed , P (:,4) ) ;<br />

Yprzed = [ Y2a , Y2b , Y2c , Y2d ]<br />

[ W1po , W2po ] = ucz2 ( W1przed , W2przed , P , T , 2000 )<br />

% sprawdzenie działania <strong>sieci</strong> po uczeniu<br />

[ Y1 , Y2a ] = dzialaj2 ( W1po , W2po , P (:,1) ) ;<br />

[ Y1 , Y2b ] = dzialaj2 ( W1po , W2po , P (:,2) ) ;<br />

[ Y1 , Y2c ] = dzialaj2 ( W1po , W2po , P (:,3) ) ;<br />

[ Y1 , Y2d ] = dzialaj2 ( W1po , W2po , P (:,4) ) ;<br />

Ypo = [ Y2a , Y2b , Y2c , Y2d ]<br />

Ciąg uczący składa się teraz z czterech przykładów, zawartych w kolejnych<br />

parach kolumn macierzy P i T. W ćwiczeniu użyjemy najmniejszej możliwej<br />

<strong>sieci</strong>, która jest w stanie rozwiązać problem XOR. Jest to sieć o dwóch wejściach,<br />

dwóch neuronach w warstwie ukrytej i jednym neuronie wyjściowym. W<br />

dalszej części rozdziału przeanalizujemy możliwości pojedynczych neuronów oraz<br />

<strong>sieci</strong> wielowarstwowych w zakresie kształtowania granic decyzyjnych, a wtedy dowiemy<br />

się, dlaczego właśnie taka architektura jest konieczna do rozwiązania tego<br />

problemu. Oczywiście w powyższym skrypcie wystarczy zmienić tylko jeden parametr,<br />

aby móc przebadać zachowanie <strong>sieci</strong> o innej liczbie neuronów w pierwszej<br />

warstwie.<br />

Jak wspomniano wcześniej, w <strong>sieci</strong>ach dwuwarstwowych nie można już przy<br />

pomocy jednego polecenia sprawdzić działania <strong>sieci</strong> na całym zbiorze uczącym,<br />

czy testującym. Jak widać, trzeba po kolei podawać przykłady na wejście <strong>sieci</strong>, a<br />

otrzymane wyjścia (tylko warstwy wyjściowej) zebrać w wektor odpowiedzi i porównać<br />

z wektorem wartości żądanych T.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!