Klasyfikacja danych mikromacierzowych

Celem badań było wykorzystanie TensorFlow do klasyfikacji danych numerycznych, a konkretnie danych mikromacierzowych. Projekt odpowiadał na pytanie jaki efekt da stosowanie technik deep learningu do problemu klasyfikacji danych mikromacierzowych. W ramach projektu poszukiwano rozwiązania problemu związanego z ilością danych (mała liczba obiektów - od kilkudziesięciu do kilkuset w porównaniu do liczby genów), starano się znaleźć najbardziej optymalną architekturę sztucznej sieci neuronowej, przeprowadzono eksperymenty i wnioskowanie.

Celem projektu jest wykorzystanie biblioteki uczenia maszynowego  do klasyfikacji danych numerycznych, w tym przypadku mikromacierzowych. Zadanie podzielono na 3 etapy:

a) Przekonwertowanie danych wejściowych w celu zwiększenia liczby obiektów,

b) Wykorzystanie sieci neuronowej w problemie klasyfikacji,

c) Przeprowadzenie eksperymentów i wnioskowania.

W niniejszym opracowaniu postanowiono sztucznie zwiększyć zbiór uczący, przetwarzając go tak, aby każdy obiekt zbioru uczącego zawierał relacje genu „i” z pozostałymi genami. W ten oto sposób z jednego obiektu tworzymy 1000 obiektów (liczba nowych obiektów jest równa liczbie atrybutów opisowych), a po zastosowaniu tej metody na powyższym zbiorze otrzymamy 130000 obiektów. W zadaniu sprawdzimy następujące relacje:

a) Xi >= Xj ]

b) Xi - Xj

c) Xi / Xj

W przypadku MLP najlepszą efektywność otrzymaliśmy dla relacji „/”. Zwiększenie danych w zbiorze uczącym wpłynęło pozytywnie na właściwości uogólniające klasyfikatora. Niestety, próba dodania szumu do danych wejściowych skończyła się niepowodzeniem – skuteczność klasyfikacji nieznacznie zmalała. Na pewno należałoby przeprowadzić analizę dla bardziej zróżnicowanych zbiorów treningowych. Wymaga to jednak znacznie szybszego komputera (lub poprawy efektywności kodu), bowiem przy zbiorze wejściowym o rozmiarze 3MB potrzebujemy nawet 9 godzin na przetworzenie danych dla wszystkich relacji na typowym komputerze domowym. W przypadku CNN najlepszą jakość klasyfikacji otrzymano dla relacji „-‘’ oraz „/” z szumem, odpowiednio 0.89 i 0.89. Analizując problem całościowo (dla wszystkich relacji), lepsze wyniki w większej liczbie przypadków otrzymaliśmy dla sieci CNN. Jednak czasami jest to poprawa o tylko kilka punktów procentowych. Największa różnica w jakości działania obu tych sieci występuje przy relacji „-‘’ – tu CNN ma wyższą skuteczność o 11 punktów procentowych.

 

Wkrótce umieszczę tutaj link do powstałej publikacji.