telefon: 61 665 2961
email: Mikolaj.Morzy@put.poznan.pl
Instytut Informatyki Politechniki Poznańskiej, ul. Piotrowo 2, 60-965 Poznań
Przedmiot obowiązkowy na II stopniu studiów magisterskich na kierunku Informatyka, specjalność Technologie Przetwarzania Danych
Celem przedmiotu jest zapoznanie studentów z podstawowymi technikami eksploracji danych i odkrywania wiedzy w bazach danych. Podczas laboratoriów studenci implementują i testują różne algorytmy eksploracji danych (określanie ważności atrybutów, odkrywanie cech, odkrywanie asocjacji, klasyfikacja, analiza skupień, regresja) oraz ćwiczą proces odkrywania wiedzy. Główny nacisk położony jest na ćwiczenia praktyczne, studenci poznają istniejące narzędzia służące do eksploracji danych (RapidMiner, Project R, Orange Data Mining, scikit-learn), jak i implementują własne rozwiązania przy użyciu języków R i Python. Najważniejszym celem przedmiotu jest jednak zmiana sposobu zdobywania wiedzy poprzez większe zaangażowanie studentów i większą swobodę w akademickim kształceniu.
Bez pracy nie ma kołaczy. Aby przeżyć, każdy górnik musi pracować. W trakcie każdego tygodnia górnik może wykonać jedną z prac prostych:
W zależności od liczby zdobytych punktów doświadczenia górnik osiąga określony poziom (a co za tym idzie, ocenę):
od XP | do XP | poziom | ocena |
---|---|---|---|
0 | 39 | parobek | 2.0 |
40 | 59 | gwarek | 3.0 |
60 | 69 | górnik | 3.5 |
70 | 89 | starszy górnik | 4.0 |
90 | 99 | sztygar | 4.5 |
100 | ++ | nadsztygar | 5.0 |
Program zajęć laboratoryjnych obejmuje następujące zagadnienia:
UWAGA : świetna kolekcja darmowych książek z obszaru eksploracji danych, uczenia maszynowego i predictive analytics : https://www.kdnuggets.com/2015/09/free-data-science-books.html
Z oczywistych względów część zajęć w bieżącym semestrze odbędzie się w formie zdalnej. Na kanale https://www.youtube.com/playlist?list=PLo3c57ljcCfrJIrZIz6UIXKohnErIhh_F będę umieszczał filmy demonstracyjne z prezentacją najważniejszych elementów na każdy tydzień. Będziecie dostawali zadania do samodzielnej pracy, będziemy też organizować tele-konferencje na zoomie w trakcie których będziecie mogli porozmawiać “na żywo”, podpytać o szczegóły laboratorium, wyjaśnić wątpliwości, itd. Do ciągłej komunikacji utworzyłem kanał na Slacku, który będę wykorzystywał do informowania (np. o umieszczeniu nowego filmu, zadaniach do pracy samodzielnej, itp.), ale może stać się też punktem zadawania pytań czy wymiany informacji. Proszę się dołączyć do kanału #ed.
W trakcie laboratoriów będą wykorzystywane następujące programy:
20.03.2020 wstępne przetwarzanie danych
27.03.2020 ocena ważności atrybutów
03.04.2020 odkrywanie reguł asocjacyjnych
10.04.2020
Moje drogie, moi drodzy
Nie zamierzam Was męczyć zajęciami w weekend świąteczny, wydaje mi się, że zasługujecie na trochę odpoczynku, a i ja muszę nadgonić zaległe quizy i zadania. W związku z tym w tym tygodniu nie ma zadań i laboratorium, jest natomiast propozycja. Niespełna 5 lat temu pojawiła się świetna książka Pedro Domingosa pt. The Master Algorithm, i do dziś nie straciła na aktualności. Jeśli nie znajdziecie czasu, żeby ją przeczytać, to możecie sobie obejrzeć wykład wygłoszony przez Domingosa w Google (ok. 60 min). Warto przy tym mieć pod ręką slajdy prezentowane przez Domingosa, znajdziecie je na SlideShare. Miłego oglądania, wypocznijcie, zrelaksujcie się, oderwijcie na chwilę od chaosu pandemii.
Do zobaczenia za tydzeń!
17.04.2020 wprowadzenie do klasyfikacji
24.04.2020 naiwny klasyfikator Bayesa
1.05.2020
Moje drogie, moi drodzy
Przed nami Majówka, macie wiele zaległych zadań do wykonania i nie ma sensu, żebym Wam jeszcze dorzucał pracy. Zamiast tego proponuję Wam dwie zabawy, które mogą Wam nie tylko umilić kwarantannowy czas, ale też przybliżyć praktyczne aspekty uczenia maszynowego.
My wracamy do regularnych zajęć po Majówce.
Do zobaczenia za tydzeń!
8.05.2020, 15.05.2020 indukcja drzew decyzyjnych
22.05.2020 maszyny wektorów wspierających
29.05.2020 analiza skupień
5.06.2020 ekstrakcja cech
12.06.2018 meta-metody klasyfikacji
Szanowni Państwo,
poniżej zamieszczam krótkie opisy proponowanych przeze mnie tematów prac magisterskich na rok 2020/21. Oba tematy są ściśle związane z eksploracją danych i uczeniem maszynowym, w szczególności z procesem trenowania głębokich sieci neuronowych. Oba projekty są (tak mi się wydaje) ciekawe, ale są trudne i wymagające. W obu przypadkach wymagana jest bardzo dobra znajomość Pythona, wcześniejszy kontakt zPyTorch
byłby bardzo pożądany. Ja traktuję oba projekty poważnie, mocno się angażuję w ich realizację, i oczekuję, że (a) zostaną ukończone najpóźniej do końca maja 2021 (b) zakończą się wysokiej jakości publikacją naukową. Praca odbywa się w 2-3 tygodniowych sprintach, każdy sprint kończy mała retrospektywa, pracujemy wg. gitflow.
W razie pytań lub wątpliwości proszę o kontakt mejlowy lub na Slacku. Chętnie też umówię telekonferencję, w trakcie której będę mógł opowiedzieć o projektach więcej.
Mikołaj Morzy
Uczenie pojemnościowe - nowa architektura trenowania głębokich sieci neuronowych (Capacity-based learning - a new architecture for training deep neural networks)
Większość współczesnych środowisk uczenia sieci głębokich zakłada statyczną architekturę sieci i modyfikację wag poszczególnych krawędzi w efekcie propagacji błędu. Istnieją też propozycje wykorzystania paradygmatu programowania genetycznego do szukania właściwej architektury, polega to z grubsza na jednoczesnym uruchomieniu całej populacji sieci neuronowych i implementację operatorów genetycznych (selekcja, krzyżowanie, mutacja). Celem niniejszego projektu jest zbadanie zupełnie innego podejścia do uczenia sieci. Zakładamy, że jeśli waga krawędzi ulegnie nasyceniu, to dany neuron wykorzystał całą swoją pojemność informacyjną. W ramach projektu należy zaimplementować mechanizm automatycznej ekspancji takich neuronów przez ich zastępowanie niewielkimi sieciami typu feed-forward, które zwiększają pojemność informacyjną zastępowanego neuronu. Dzięki temu sieć, po nauczeniu się pewnego generalnego konceptu, będzie mogła kontynuować specjalizację tego konceptu w rozszerzonym fragmencie sieci. Istotne będzie opracowanie metody oceny stopnia nasycenia krawędzi w trakcie poszczególnych epok uczenia, znalezienie dobrego rozmiaru rozszerzenia, którym zastępujemy poszczególne neurony, oraz określienie początkowej inicjalizacji wag w rozszerzeniu.
Zadania:
Komponentowe sieci neuronowe z fragmentacją wejścia (Component neural networks with input fragmentation)
Obowiązujący aktualnie paradygmat uczenia sieci neuronowych zakłada przedstawienie na wejściu przykładu uczącego, co zmusza sieć neuronową do automatycznego wykrywania zależności między poszczególnymi atrybutami. Takie podejście nie oddaje sposobu uczenia się przez ludzi, gdzie rozpoznawaniu podlegają jedynie fragmenty informacji, a połączenia między fragmentami informacji decydują o sukcesie uczenia. Celem projektu jest implementacja nowej architektury sieci neuronowej, w której niewielkie podsieci (komponenty) są odpowiedzialne za uczenie się jedynie fragmentów przykładów wejściowych. Między kolejnymi warstwami sieci komponenty przesyłają do siebie informacje, które mogą aktywować komponenty na wzajem. Hipoteza badawcza głosi, że tak skonstruowane sieci powinny mieć lepsze własności generalizacyjne i powinny szybciej osiągać zbieżność.
Zadania: