====== 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/]]
----