www.eprace.edu.pl » sztuczna-inteligencja » Sztuczny System Immunologiczny » Przykładowa realizacja klasyfikacji algorytmem aiNet

Przykładowa realizacja klasyfikacji algorytmem aiNet

Opis i znaczenie parametrów

Przykład przeprowadzono dla jednej iteracji algorytmu. Dane pochodzą z [1]. Dane zawarte w tabeli 5.1 zostały użyte jako dane wejściowe dla algorytmu Sztucznego Systemu Immunologicznego.

Parametry wykorzystane w procesie uczenia algorytmu aiNet w przykładzie:

Poszczególne parametry mają następujące znaczenia:

ts
- próg supresji. Zmieniając wartość progu supresji, wpływamy na plastyczność systemu. Wszystkie przeciwciała, których metryka odległości do antygenu jest mniejsza niż wartość progu supresji, będą usuwane. Jeśli próg supresji będzie bardzo mały, wówczas algorytm nie będzie generalizował danych, tylko je zapamiętywał (uczenie pamięciowe algorytmu),
n
- liczba najlepiej dopasowanych przeciwciał, które będą uczestniczyć w klonowaniu,
N
- początkowy rozmiar pamięci globalnej M,
qi
- procentowa wartość klonów, które mają być ponownie wybrane,
tp
- próg naturalnej śmierci komórek. Jest to próg, który określa odległość, jaką muszą spełniać przeciwciała, aby naturalnie umrzeć.

Według autora niniejszej pracy, najważniejszymi parametrami algorytmu aiNet, są progi supresji i naturalnej śmierci komórek. Należy zauważyć, że zachodzi następujące równanie
(7.5)

co oznacza, że wszystkie przeciwciała dodawane do wyjściowej pamięci klonalnej, posiadają wartość metryki, większą od progu supresji, ale zarazem mniejszą od progu naturalnej śmierci. Odpowiednie wyważenie tych dwóch współczynników progowych, pozwala na stworzenie dopasowanego do naszych potrzeb systemu klasyfikacyjnego.

Realizacja

Wywołanie funkcji ainet_6 w środowisku Matlab.

[M,D] = ainet6(input,ts,n,N,gen,qi,tp);

W funkcji ainet6, występuje losowy podział zbioru VAg na dwa zbiory:

  1. zbiór antygenów Ag - antygen (tabela 7.1 ),
  2. zbiór przeciwciał Ab - antybody (tabela 7.2 ).

Zbiory te dzielone są na dwie równe części, taki podział nazwany został w pracy "szczepieniem systemu immunologicznego". Pozwala to na szybsze uformowanie optymalnego zbioru przeciwciał, ale równocześnie może prowadzić do pamięciowego nauczania algorytmu.

Tablica 7.1: Zbiór antygenów





L.p.P1 P2 P3 P4










1 1,00,7142857140,2619047620,0





2 1,00,1555555560,7777777780,0





3 1,00,2553191490,7872340430,0





4 1,00,7291666670,2500000000,0





5 1,00,1296296300,7037037040,0





6 1,00,0555555560,8518518520,0





7 1,00,2708333330,7500000000,0





8 1,00,2500000000,7500000000,0





9 1,00,1489361700,6382978720,0





10 1,00,7083333330,2500000000,0





11 1,00,1351351350,8108108110,0





12 1,00,6250000000,2083333330,0





13 1,00,1739130430,6086956520,0





14 1,00,6086956520,2608695650,0





15 1,00,2380952380,6428571430,0





16 1,00,3404255320,6808510640,0





17 1,00,4090909090,6590909090,0





18 1,00,3111111110,6666666670,0





19 1,00,3255813950,6744186050,0





20 1,00,1636363640,8181818180,0





 

Źródło: Badania własne

Tablica 7.2: Zbiór przeciwciał





L.p.P1 P2 P3 P4










1 1,00,2564102560,8205128210,0





2 1,00,1636363640,7636363640,0





3 1,00,2083333330,6875000000,0





4 1,00,6170212770,2765957450,0





5 1,00,3043478260,6086956520,0





6 1,00,2857142860,6428571430,0





7 1,00,6590909090,2954545450,0





8 1,00,2826086960,8043478260,0





9 1,00,1627906980,7441860470,0





10 1,00,7021276600,2340425530,0





11 1,00,7209302330,2558139530,0





12 1,00,1777777780,7555555560,0





13 1,00,2500000000,6250000000,0





14 1,00,1428571430,8095238100,0





15 1,00,7000000000,2600000000,0





16 1,00,3953488370,6511627910,0





17 1,00,2444444440,8444444440,0





18 1,00,6250000000,2916666670,0





19 1,00,7000000000,1800000000,0





20 1,00,6904761900,2380952380,0





 

Źródło: Badania własne

Następnym krokiem realizowanym przez algorytm jest utworzenie macierzy odległości D, dla wszystkich przeciwciał z Ab i antygenów z Ag. Celem tej operacji jest wyznaczenie powinowactwa pomiędzy przeciwciałami a antygenami.

D = dist(Ab,Ag(vet(i), :)˘);

Dla tego przykładu wybrano odległość Euklidesową, która jest najpopularniejsza w tego typu przypadkach. Pomiędzy pierwszym antygenem (Ag1) a całą macierzą przeciwciał (Abi) obliczono za pomocą wzoru 7.2 wektor wyjściowy (tabela 7.3 ).

Najmniejsza odległość występuje pomiędzy Ag1 i Ab13, co oznacza największe powinowactwo.

Kolejnym krokiem algorytmu jest utworzenie zbioru Abm, który będzie zawierał n przeciwciał o najwyższej wartości powinowactwa.

[Dn,I] = sort(normLiniowa(D˘,zakresOd,zakresDo)˘);

Nc = floor(N - Dn(1 : n, :) * N);

Otrzymano posortowany i znormalizowany do zakresu [-1, 1] wektor odległości Dn (tabela 7.3 ).

Tablica 7.3: Wektory D, Dn oraz I




L.p.Wektor odległości DWektor odległości DnWektor I








1 0,178597256 -1,000000000 13




2 0,141886378 -0,917281445 6




3 0,053654037 -0,898196790 3




4 0,527003183 -0,832144117 5




5 0,074541350 -0,668633357 9




6 0,047619048 -0,663644654 12




7 0,545825906 -0,619176607 2




8 0,167513249 -0,569887169 16




9 0,126247061 -0,538135864 8




10 0,618429832 -0,503084527 1




11 0,618815047 -0,460831746 14




12 0,127824600 -0,430066194 17




13 0,021461615 0,584523025 18




14 0,191958518 0,598691588 4




15 0,599946332 0,658215337 7




16 0,157472786 0,829362231 15




17 0,201687264 0,851750931 20




18 0,522522770 0,887813243 10




19 0,653905761 0,889031422 11




20 0,607026133 1,000000000 19




 

Źródło: Badania własne

Wektor I zawiera indeksy elementów wektora D w początku od najmniejszej do największej odległości (tabela 7.3 ).

Wektor Nc zawiera liczby które określają liczbę klonów dla danego przeciwciała Ab.

Tablica 7.4: Wektor Nc




20191818




 

Źródło: Badania własne

Tabela 7.4 przedstawia wektor Nc w naszym przypadku. Jak widzimy, pierwsze przeciwciało mające największe powinowactwo otrzyma przydział na 20 klonów, drugie będzie miało 19 itd.

Po tym wszystkim, następuje proces klonowania przeciwciał.

[C,Cag,Cmi] = clone(Ab,Ag(vet(i), :),mi,D,I,Nc);

Funkcja clone zwraca zbiory: C,Cag,Cmi. Macierz C zawiera 20 klonów przeciwciała Ab13, 19 klonów przeciwciała Ab6, oraz 18 klonów przeciwciał Ab3 i Ab5. Kolejność przeciwciał ustalana jest przez wektor I, a ilość klonów przez wektor Nc.

Elementy zbioru C poddawane są mutacji w wyniku której generowany jest zbiór C˘. Według algorytmu aiNet, prawdopodobieństwo mutacji jest odwrotnie proporcjonalne do powinowactwa przeciwciał rodzicielskich z j-tym antygenem Agj tak więc, czym większe powinowactwo tym mniejsze występuje prawdopodobieństwo mutacji przeciwciała.

Kolejnym krokiem jest ponowne wyznaczenie powinowactwa pomiędzy antygenem, a zmutowanymi klonami. Poniżej przedstawiony jest kod wyznaczania powinowactwa w środowisku Matlab:

D = metrykaskalar(C,Ag(vet(i), :));

D jest wektorem odległości pomiędzy C˘ a j-tym antygenem.

Po obliczeniu miary odległości następuje sortowanie wektora D od najmniejszej do największej wartości metryki, oraz wybranie qi% najlepiej dopasowanych przeciwciał, które będą dodane do pamięci immunologicznej

[Dn,I] = sort(D);

nR = round(qi * size(C, 1));

m = C(I(1 : nR), :);

D = D(I(1 : nR));

Z powstałej macierzy m, musimy usunąć przeciwciała które mają zbyt małe podobieństwo do antygenu, jest to tzw. przycinanie sieci (Network pruning). Każdy limfocyt dla którego zachodzi równanie metryka > tp jest usuwany.

Ip = find(D > tp);

m = extract(m,Ip);

D = extract(D,Ip);

W naszym wypadku wektor Ip jest pusty tak więc nie ma komórek, których wartość metryki odległości była zbyt duża.

Tablica 7.5: Globalna pamięć immunologiczna





L.p.P1 P2 P3 P4





1 1,00,1235339230,8118944050,0





2 1,00,2883696570,6457116650,0





3 1,00,1961082410,7544834280,0





4 1,00,6788578960,1877755820,0





5 1,00,6170826000,2658119220,0





6 1,00,2130957310,6266264210,0





7 1,00,1710892930,7004082430,0





8 1,00,2562886600,8174461330,0





9 1,00,7210087110,2556862990,0





10 1,00,3954301930,6516176060,0





 

Źródło: Badania własne

Następnym krokiem algorytmu jest zbadanie macierzy m czy nie posiada "zdublowanych" przeciwciał. Obliczone zostanie powinowactwo pomiędzy wszystkimi przeciwciałami w macierzy m, a następnie zostaną usunięte te limfocyty, które są do siebie bardzo podobne, równocześnie zostawiając jednego reprezentanta swojej klasy. Procedura ta nazywana jest supresją.

m = suppress(m,ts);

Po tym wszystkim pamięć klonalna powstała w tej iteracji, zostaje dodana do globalnej pamięci immunologicznej.

Po wykonaniu wszystkich wewnętrznych iteracji, globalna pamięć immunologiczna ma rozmiar 10x4 i przedstawiona jest w tabeli 7.5 .

komentarze

Copyright © 2008-2010 EPrace oraz autorzy prac.