====== Podstawy Sztucznej Inteligencji - Semestr zimowy 2019/2020 ====== * **Kierunek**: Informatyka * **Rok**: III * **Prowadzący**: * [[https://krzysztof.kutt.pl|dr inż. Krzysztof Kutt]] (KKT) * mgr inż. Dawid Bydłosz (DBD) ===== Organizacja zajęć i zasady zaliczenia ===== * Ogólne zasady, które Państwa **obowiązują**: [[http://geist.agh.edu.pl/pub:teaching:gris|GRIS]] - proszę przeczytać, zrozumieć, ew. wątpliwości zgłosić na 1.-2. zajęciach * Uwaga: zasady dotyczące **nieobecności** na PSI są **INNE niż opisane w GRIS**. Szczegóły poniżej. * Materiały do zajęć (i ciekawostki dot. SI) będziemy zbierać w **Wiki o sztucznej inteligencji**: * Celem wiki jest ułatwienie poznania podstawowej wiedzy o SI (będą tam najważniejsze informacje z podręczników) + poznanie aktualnych trendów/ciekawostek dot. SI (te materiały nie będą obowiązywać do kartkówek/kolokwium, ale pozwolą dowiedzieć się więcej o SI) * **Adres wiki: [[https://krzysztof.kutt.pl/psi-wiki/]]** * **[[https://docs.google.com/spreadsheets/d/e/2PACX-1vRepESH0K_pwzTFgbpF81VzBXiJT1-h9F88E31lpKoFjpNifSs7ILkY4-eBfQg8OHamQdmGjb6KK5V0/pubhtml?gid=0&single=true|Podstawowa lista tematów]]** * Można też dodawać do wiki dowolne inne tematy związane z SI (jako ciekawostki), jeżeli tylko ktoś uzna, że dane zagadnienie może być ciekawe dla innych osób z Roku * Tworzenie wiki: * ~15 osób tworzy "core" wiki i dba o ogólny poziom merytoryczny wiki -- te osoby będą oceniane za Bossa (patrz niżej) * Każdy może współtworzyć wiki, dodawać ciekawostki, poprawiać strony, oceniać strony (bez punktów) * Ocena stron w wiki polega na stworzeniu trójki RDF (zob. [[.:labs:lab_krr|Lab: Reprezentacja wiedzy]]): ''STRONA -- :ocena -- OCENA'', gdzie ''OCENA'' to liczba ze zbioru [1,2,3,4] * Podczas oceny proszę brać przede wszystkim pod uwagę to, że ktoś to opracowanie zrobił dla Państwa, aby nie musieli Państwo czytać oryginalnego tekstu tylko opracowanie w wiki * 4 pkt = tekst w porządku, na temat, zwięzły, zrozumiały; z linkami do innych powiązanych stron [tekst nie musi być długi! jeżeli tylko rozumie się o co chodzi w danym zagadnieniu! Może to być nawet tylko jeden obrazek, jeżeli to już zamyka zagadnienie ;-) ] * W czasie zajęć zdobywamy punkty doświadczenia (EXP). Punkty można zdobywać (i tracić) na kilka sposobów: * Główny wątek: __uczestniczenie w laboratoriach__ * //Zajęcia odbywają się co dwa tygodnie zgodnie z [[#harmonogram|Harmonogramem]]// * 6x5x**4 EXP** -- kartkówka na każdych zajęciach (poza pierwszymi) * 2 pytania po 2 EXP * Obowiązuje materiał spisany w //Wiki o sztucznej inteligencji// * Jeżeli //Boss 3: Wiki// nie będzie prowadzony rzetelnie to do kartkówek (i kolokwium) wchodzi materiał przedstawiony na początku każdej z instrukcji do zajęć! * **0.5 EXP** -- za aktywność na zajęciach (plusy z aktywności) * **-54.6 EXP** -- za **każdą** nieobecność nieusprawiedliwioną (__również pierwszą__) * Wątek poboczny: __udział w eksperymencie Affective Computing__ * **INFORMACJE O BADANIACH ZNAJDUJĄ SIĘ POD ADRESEM: [[http://bit.ly/badania2020]]** * Można brać udział w badaniu __osobiście__ i/lub __zaprosić do udziału kogoś spoza Roku__((Osoba badana po stawieniu się na badanie musi poinformować kto ją zaprosił.)) * **2 EXP** albo usprawiedliwienie nieobecności -- za udział osobisty i każdą zaproszoną osobę, która wzięła udział w badaniu * **-54.6 EXP** -- za **każdą nieobecność** na badaniu (również zaproszonych osób) bez zgłoszenia tego faktu najpóźniej **48h** przed badaniem * Boss: **26 EXP** * do wyboru **jeden** z trzech poniższych (można też nie atakować Bossów tylko przemknąć w cieniu, jeżeli ktoś ma wystarczającą liczbę EXP): * **//Boss 1:// Kolokwium** (test wielokrotnego wyboru) na podstawie materiałów obowiązujących do każdych zajęć (spisane na początku instrukcji) * W przypadku gdy //Boss 3: Wiki// będzie rzetelnie prowadzony, do kolokwium wchodzą tylko materiały z Wiki (nie trzeba czytać materiałów źródłowych!) * Każda osoba ma indywidualnie wygenerowany test oznaczony kodem kreskowym * W każdym zadaniu minimum 1 odpowiedź jest poprawna; maksymalnie wszystkie cztery * Punktacja każdego zadania: * +1 pkt za każdą poprawnie zaznaczoną odpowiedź (gdy powinna być zaznaczona) * -1 pkt za każdą niepoprawnie zaznaczoną (zaznaczenie odpowiedzi, która nie powinna zostać zaznaczona) * 0 pkt za niezaznaczoną odpowiedź * W ramach zadania nie można mieć punktów ujemnych. * W związku z tym, że każda osoba może mieć inną liczbę punktów, wyliczany jest wynik procentowy z kolokwium i przeliczany na 26 EXP * **//Boss 2:// Projekt** (w grupach 4-5 os.): "Modeli predykcji emocji i sposoby ich wyjaśniania" (analiza danych zebranych w ramach eksperymentu na poprzedniej edycji PSI -- wiosna 2018/2019) * **DANE DO PROJEKTU: [[https://zenodo.org/record/3442143|BIRAFFE dataset]]** * Ocenie podlega raport (kod + tekst; archiwum 7z/tar.gz/zip; preferowany Jupyter Notebook): * //3 EXP// -- Wstępna eksploracja * //6 EXP// -- Preprocessing * //3 EXP// -- Przygotowanie podstawowych modeli * //6 EXP// -- Dopracowanie parametrów modeli, ustalenie optymalnych parametrów * //2 EXP// -- Porównanie modeli i wybór najlepszego * //6 EXP// -- Opracowanie warstwy wyjaśniającej (//explainability//) * Punkty przyznawane są za działające fragmenty kodu oraz za **sensowne uzasadnienie** dlaczego dany krok został zrealizowany w taki, a nie inny sposób (np. dlaczego wybrano takie modele i takie ich parametry) * **//Boss 3:// Wiki o Sztucznej Inteligencji** -- ocena dla "core" zespołu: * 6x**2 EXP** wyliczane na podstawie ocen uzyskanych na roku z każdej z kartkówek (górny/trzeci kwartyl ze zbioru ocen z danej kartkówki; podzielony przez 2 = maks. 2 EXP za materiały do każdej z kartkówek) * **12 EXP** ocena jakości wiki przez prowadzącego * **14 EXP** na podstawie ocen stron w wiki (średnia ocena z przedziału [1,4] przeskalowana do przedziału [0,14] EXP) * **UWAGA:** Prowadzący zastrzega sobie prawo do zmiany wyliczonej oceny __na korzyść__ osób prowadzących wiki w przypadku, gdy ocena innych osób będzie krzywdząca * Sposób deklaracji wyboru Bossa (wybór jednego oznacza brak możliwości wyboru innego): * **//Boss 1:// Kolokwium** -- podejście do kolokwium zaliczeniowego (wejście do sali) * **//Boss 2:// Projekt** -- oddanie projektu (przesłanie raportu do zaliczenia, prośba o ocenę projektu na konsultacjach) * **//Boss 3:// Wiki** -- deklaracja wysłana mailem na [[kkutt@agh.edu.pl]]; //deklaracje można wysyłać od 09.09.2019 od godziny 12:00 do wyczerpania miejsc// * **5046 EXP** stanowi 100% łącznej liczby punktów (MAX). ==== Zaliczenia poprawkowe ==== * Zaliczenie poprawkowe obejmuje jednego z bossów. * Do zaliczenia poprawkowego **mogą przystąpić** osoby które: * Nie mają zaliczenia (mniej niż 25 EXP) lub * nie walczyły z żadnym Bossem i posiadają usprawiedliwienie (ważne w dzień walki z Bossem: Kolokwium). * Do wyników uzyskanych z zaliczenia poprawkowego nie wlicza się: * plusów - w 1. terminie poprawkowym, * plusów i nieusprawiedliwionych nieobecności - w 2. terminie poprawkowym. * W **2. terminie poprawkowym** można uzyskać co najwyżej ocenę 3.0. ===== Harmonogram ===== ^L.p.^ Tydzień A ^ Tydzień B ^ Laboratorium ^ ^ 0. | || [[.:labs:lab_wiki|Wprowadzenie do Wiki o SI]]| ^ 1. | 01.10.2019 | 08/09.10.2019 | [[.:labs:lab_krr|Reprezentacja wiedzy]]| ^ 2. | 15.10.2019 | 22/23.10.2019 | [[.:labs:lab_ml-supervised|Uczenie nadzorowane]]| ^ 3. | 29.10.2019 | 05/06.11.2019 | [[.:labs:lab_ml-unsupervised|Uczenie nienadzorowane]]| ^ 4. | 12.11.2019 | 19/20.11.2019 | [[.:labs:lab_uncertainty|Reprezentacja niepewności]]| ^ 5. | 26.11.2019 | 03/04.12.2019 | [[.:labs:lab_rules|Regułowe systemy ekspertowe]]| ^ 6. | 10.12.2019 | 17/18.12.2019 | [[.:labs:lab_csp|Programowanie z ograniczeniami]]((**UWAGA:** W związku z małą liczbą opracowanych tematów w wiki do kartkówki wchodzą jeszcze Sekcje 4.1-4.7 z [[https://artint.info/2e/html/ArtInt2e.Ch4.html|Chapter 4: Reasoning with Constraints]])) | ^ 7. | **21.01.2020** | **14/15.01.2020** | [[.:labs:lab_search|Przeszukiwanie grafów]] (UWAGA: najpierw Tydzień B!)| ^ | **21.01.2020 15:30-17:00 C6 307,308** || **Kolokwium** | ^ | 28.01.2020 10:00-13:00 C2 319 || Termin oddawania projektów | ^ | 29.01.2020 16:00-17:00 B1 H24 || **Egzamin. Termin 1** (tylko dla osób mających zaliczenie z lab; __zwolnienie za 5.0 z lab__) | **UWAGA:** Z powodu przedłużającej się niedyspozycji p. Bydłosza zajęcia nr 5 (Regułowe systemy ekspertowe) nie odbędą się, nie będzie kartkówki z tego tematu, a materiał nie będzie obowiązywać do kolokwium. * **[[https://krzysztof.kutt.pl/wiki/teaching:psi2020:start|Aktualna lista obecności i punktacja]]** ===== Literatura ===== Obowiązkowa: * **[ArtInt]** D. Poole, A. Mackworth. //[[http://artint.info/2e/html/ArtInt2e.html|Artificial Intelligence: Foundations of Computational Agents, 2nd Edition]]//. Cambridge University Press, 2017 * **[AIMA]** Stuart Russell and Peter Norvig. //[[http://aima.cs.berkeley.edu/|Artificial Intelligence: A Modern Approach]]//. 3rd Ed., Pearson, 2010. Dodatkowa: * Mariusz Flasiński. //[[http://ksiegarnia.pwn.pl/produkt/82635/wstep-do-sztucznej-inteligencji.html|Wstęp do Sztucznej Inteligencji]]//. Wydawnictwo Naukowe PWN, 2011. Inne: * [[http://ryszardtadeusiewicz.natemat.pl/174271,uporzadkowane-wiadomosci-na-temat-sztucznej-inteligencji|Popularnonaukowy wstęp do wybranych zagadnień sztucznej inteligencji]] na blogu prof. Tadeusiewicza * [[https://techcrunch.com/2017/05/22/judah-vs-the-machines/|Judah Vs. The Machines]] -- 8 odcinków x 6 minut, Człowiek vs Sztuczna Inteligencja -- kto wygra? ===== Dla Prowadzących ===== * [[.:prv:|Materiały]] ===== Wykłady ===== === Wykłady 2018/2019 === - 02-27: //Wprowadzenie// - 03-06: e-learning - 03-13: //Przeszukiwanie grafów// - 03-20: e-learn - 03-27: //LPP// - 04-03: //CSP// - 04-10: //RBS// - 04-17: //KRR// - 04-24: //KRR// - 05-08: //ML// - 05-15: e-learning - 05-22: //ML// - 05-29: //LOD// - 06-05: TBA - 06-12: Kolokwium === Wykłady 2017/2018 === - **Wprowadzenie do sztucznej inteligencji (AI). Problematyka reprezentacji i przetwarzania wiedzy. Charakterystyka metod i obszaru zastosowań. Przykłady problemów AI.** [28.02.2018; ALi] - **E-learning. Readings in AI: from * [[http://artint.info/|AI Book]] read and analyze Chapters 1, 2 and 3. ** [7.03.2018; ALi]; Also: compare courses in AI: * [[http://web.stanford.edu/class/cs221/|CS221: Artificial Intelligence]] * [[http://https://inst.eecs.berkeley.edu/~cs188/fa11/lectures.html|CS188: Artificial Intelligence]] - **Przeszukiwanie grafów. Tree Search vs. Graph Search. Metody systematyczne (ślepe). DFS vs. BFS. Problemy implementacji.** [14.03.2018; ALi] - **Przeszukiwanie grafów. Metody ślepe: DLS, ID, BS, UC (Dijkstry). Elementy implementcji w Prologu i Pythonie.** [21.03.2018; ALi] - **Przeszukiwanie grafów. Metody heurystyczne. Problemy implementacji.Elementy implementcji w Prologu i Pythonie.** [28.03.2017; ALi] - **Programowanie z ograniczeniami. Podstawy teoretyczne. Zastosowania. Narzędzia: Prolog+clpfd, MiniZinc.** [11.04.2018; ALi] - **Systemy regułowe i ekspertowe. Automatyczne planowanie operacji. Przykłady w Prologu.** [18.04.2018; ALi] - **Nowe paradygmaty w AI** [25.04.2018; GJN] - brak wykladu [09.05.2018; GJN] - **Uczenie maszynowe** [16.05.2018; GJN] - **Uczenie maszynowe** [23.05.2018; GJN] === Wykłady 2016/2017 === - **Wprowadzenie do Sztucznej Inteligencji. Rozwiązywanie problemów. Reprezentacja wiedzy i wnioskowanie. Przykłady systemów inteligentnych.** [1.03.2017;ALi] - **Algorytmy przeszukiwania grafów (DFS, BFS i pochodne). Tree Search vs. Graph Search. Backtracking Search. Implementacja w Prologu.** [8.03.2017; ALi] - **Algorytmy ślepe: BFS, UC, DFS, DFS-limited, DFS-Iterative-Deepening; Algorytm Dijkstry. Przykłady implementacji (Prolog, Python). Planowanie odporne (Robust Planning)** [15.03.2017; ALi] - **Algorytmy heurystyczne szukania w grafach. Algorytm A*. Szukanie wiązką. Algorytmy inspirowane biologicznie (GA) i fizycznie (SA).** [22.03.2017; ALi] - **Wprowadzenie do programowania z ograniczeniami. Przykłady problemów i rozwiązań w Prologu. Biblioteka clp(fd). Techniki i narzędzia programowania z ograniczeniami. Propagacja ograniczeń vs. szukanie. Przykłady zastosowań.** [29.03.2017; Ali] - **Systemy z Bazą Wiedzy. Systemy regułowe. Systemy eksperckie.** [5.04.2017; ALi] -E-Learning: Introduction to Artificial Intelligence. [[http://web.stanford.edu/class/cs221/|CS221]] [12.04.2017]] -E-Learning: Introduction to Artificial Intelligence. [[http://ai.berkeley.edu/home.html|CS188]] [19.04.2017] - C.D.N. [26.04.2017] - ... === Materiały pomocnicze (2017/2018) === * {{ :pl:dydaktyka:psi:2017:ai-intro-1.pdf |AI-Introduction}} * {{ :pl:dydaktyka:psi:2017:ke-intro-2010.pdf |KE - Introduction}} * {{ :pl:dydaktyka:psi:2017:search-blind-master.pdf |Blind Search}} * {{ :pl:dydaktyka:psi:2017:master.pdf |Heuristic Search}} * {{ :pl:dydaktyka:psi:2017:master-clp-est.pdf |CSP and Constraint Programming}} * {{ :pl:dydaktyka:psi:2017:rule-based-systems-krakow-2012.pdf |Rule-Based Systems}} ---- == Background Material == * [[http://artint.info/|AI Book]] * [[http://ai.ia.agh.edu.pl/wiki/pl:prolog:start|Prolog - page with external links]] * [[http://web.stanford.edu/class/cs221/|CS221: Artificial Intelligence]] * [[http://https://inst.eecs.berkeley.edu/~cs188/fa11/lectures.html|CS188: Artificial Intelligence]] * [[http://web.stanford.edu/class/cs227/|CS227: Knowledge Representation and Reasoning]] * [[http://www.inzynieriawiedzy.pl/|KRR: PL]] [[http://ml.unife.it/belief-propagation/]] ----