1 of 43

Umělá inteligence�pro humanitní a společenské vědy

Barbora Hladká, Martin Holub�{hladka, holub}@ufal.mff.cuni.cz

https://ufal.mff.cuni.cz/courses/npfl142

unless otherwise stated

Univerzita Karlova

Matematicko-fyzikální fakulta

Ústav formální a aplikované lingvistiky

2 of 43

Osnova kurzu

  1. Předehra k metodám umělé inteligence
  2. Klasické metody statistického strojového učení
  3. Hluboké učení v neuronových sítích

Poznámka ke generativním modelům AI

  • Velké jazykové modely (LLM) vznikly jako jedna z aplikací hlubokého učení. Uživatelé k nim přistupují typicky přes chatovací rozhraní – např. ChatGPT.
  • V našem kurzu se nebudeme zabývat využitím žádných generativních modelů, které generují obsah – texty (LLM), obrázky, audio, …

2

hluboké�učení

strojové�učení

umělá inteligence�(AI)

symbolické�systémy�AI

Přednáška #1

3 of 43

Analýza dat – Zkáza Titanicu

3

Přednáška #1

4 of 43

Výzkumná otázka: Na čem záviselo přežití při zkáze Titanicu?

  • Na věku?
  • Na pohlaví?
  • Na místě nalodění?
  • Na ceně palubní jízdenky?

4

Přednáška #1

5 of 43

Data

  • Použijeme data ze soutěže Titanic - Machine Learning from Disaster, kterou organizovala společnost Kaggle
  • Soutěžící měli k dispozici dataset, který obsahuje informace o některých cestujících,�vč. informace o tom, zda-li přežili

5

Přednáška #1

6 of 43

Zkáza Titanicu

  • 14. dubna 1912 ve 23:40 se zaoceánská loď Titanic srazila�s ledovcem�
  • Nad ránem 15. dubna klesla ke dnu�
  • 2 200+ osob na palubě,�cca 1 500 zemřelo

6

Zdroj: Wikipedia

Přednáška #1

7 of 43

Načteme data do R

dataset <- read_csv("titanic.csv") # načtení dat ze souboru do tabulky v R�print(dataset) # řádky = záznamy o cestujících, � # sloupce = vlastnosti cestujících (= atributy)

7

O atributech (attributes) se též mluví jako o proměnných (variables), hlavně ve statistice. �Ve strojovém učení se atributy používají jako tzv. příznaky (features).

Přednáška #1

8 of 43

Seznámení s daty – Popis atributů

  1. PassengerId – jednoznačný identifikátor cestujícího
  2. Survived – informace o přežití
  3. Pclass – třída kabiny
  4. Name jméno
  5. Sex pohlaví
  6. Age věk
  7. SibSp počet sourozenců/partnerů na palubě
  8. Parch počet rodičů/dětí na palubě
  9. Ticket číslo lodního lístku
  10. Fare cena lodního lístku
  11. Cabin číslo kabiny
  12. Embarked místo nalodění

8

Přednáška #1

9 of 43

Seznámení s daty – Hodnoty atributů

  • Atributy číselné (= numerické)� – mohou být spojité (desetinná čísla, např. Fare)� – anebo diskrétní (celá čísla, např. SibSp)
  • Atributy kategoriální (= nominální) – jsou vždy diskrétní� – např. Embarked pro místa nalodění Southampton, Cherbourg, Queenstown
  • Všimněte si, že u některých cestujících jsou hodnoty některých atributů neznámé – viz NA

9

Přednáška #1

10 of 43

Jak záviselo přežití na pohlaví

table(dataset$Survived, dataset$Sex)� female male� 0 81 468� 1 233 109

barplot(� table(dataset$Survived, dataset$Sex),� main = "Survived and Sex",� xlab = "Sex",� ylab = "Passenger count",� col = c("darkgreen","gray")�)

legend(� legend = c("Survived", "Not Survived"),� fill = c("darkgreen","gray"),� "topleft"�)

10

Přednáška #1

11 of 43

Jaký byl poměr přeživších

N <- nrow(dataset) # počet cestujících�survived <- sum(dataset$Survived) # počet přeživších�round(survived/N, 3) # podíl přeživších, zaokrouhleno na 3 des. místa[1] 0.384

11

Přednáška #1

12 of 43

Jaký byl poměr přeživších žen a mužů

12

Přednáška #1

13 of 43

Věk cestujících

13

summary(dataset$Age) # číselné charakteristiky číselného atributu Age

�Min. 1st Qu. Median Mean 3rd Qu. Max. NA's �0.42 20.12 28.00 29.70 38.00 80.00 177

  • Nejmladšímu cestujícímu bylo 5 měsíců (Min), nejstaršímu 80 let (Max)
  • Průměrný věk cestujících byl téměř 30 let (Mean)
  • Polovina cestujících byla starších 28 let (Median)
  • U 177 cestujících není znám jejich věk (NA’s)

Přednáška #1

14 of 43

Histogram

Histogram je sloupcový graf, který vizualizuje rozdělení hodnot numerického atributu

  • Rozsah hodnot rozdělíme do několika intervalů stejné šířky
  • Počty sloupců histogramu odpovídají počtu intervalů
  • Výšky sloupců histogramu odpovídají četnostem v jednotlivých intervalech

14

Přednáška #1

15 of 43

Věk mužů a žen

  • Nejvíce pasažérů bylo ve věkové kategorii 20–40 let, což je patrné z nejvyšších sloupců ve všech třech grafech.
  • Celkový histogram potvrzuje, že pasažéři byli převážně mladší dospělí, ale objevují se i starší jedinci.
  • Rozložení je lehce pravostranně šikmé (existují starší pasažéři, ale méně častí).
  • Starší ženy jsou méně zastoupené než starší muži, což může odrážet tehdejší demografii nebo preference v cestování. Může to souviset i s tím, že Titanic měl více mužských pasažérů a že na lodi cestovalo mnoho mladých rodin a jednotlivců hledajících nový život.
  • Odlehlé hodnoty vidíme u starších věkových kategorií (nad 70 let), jednotky pasažérů. To znamená, že cestování lodí v té době bylo pro starší lidi méně běžné. Mohlo jít o bohatší cestující, kteří si mohli dovolit lístek první třídy.

15

Přednáška #1

16 of 43

Jak záviselo přežití na třídě obývané kajuty

16

table(dataset$Pclass) # počty cestujících v jednotlivých třídách 1 2 3 �216 184 491

Přednáška #1

17 of 43

Kontingenční tabulka

Kontingenční tabulka (contingency table) zobrazuje četnosti hodnot diskrétních atributů.�V buňkách tabulky jsou četnosti kombinací hodnot atributů.

table(dataset$Pclass) # kontingenční tabulka

1 2 3 # počty cestujících ve třech třídách

216 184 491

table(dataset$Survived, dataset$Sex) # kontingenční tabulka� female male # počty žen a mužů, kteří (ne)přežili 0 81 468� 1 233 109

table(dataset$Survived, dataset$Embarked) # kontingenční tabulka

C Q S # počty cestujících z jednotlivých

0 75 47 427 # přístavů,kteří (ne)přežili

1 93 30 217

17

Přednáška #1

18 of 43

Jak záviselo přežití na třídě obývané kajuty

18

table(dataset$Pclass, dataset$Survived) # kontingenční tabulka

0 1 # počty (ne)přeživších v jednotlivých třídách

1 80 136

2 97 87

3 372 119

Přednáška #1

19 of 43

Jaký byl poměr přeživších cestujících ve třech třídách kajut

19

Přednáška #1

20 of 43

Jak záviselo přežití na pohlaví, věku a třídě

Kombinace tří atributů Age, Sex, Pclass

20

0

1

1

3

91

2

6

70

3

72

72

0

1

1

77

45

2

91

17

3

300

47

Přednáška #1

21 of 43

Jak záviselo přežití na pohlaví v Google Spreadsheet

  • Načíst data do Google Spreadsheet url
  • Vytvořit kontingenční tabulku (v R table())
    • Označit sloupce B-E
    • Insert > Pivot table > Create pivot table > titanic.csv!B:E892 & Existing sheet
    • Pivot table editor
      • Rows Add > Sex & Odškrtnout Show total
      • Columns Add > Survived & Descending order & Odškrtnout Show total
      • Values Add > Sex & Summarize by COUNTA
  • Vytvořit sloupcový graf (v R barplot() + legend())
    • Označit řádky female a male s počty > Insert > Chart > Chart type > Stacked column chart
    • Upravit graf, např. doplnit popisky k osám

21

Přednáška #1

22 of 43

AI assisted coding – programování např. s ChatGPT

22

Přednáška #1

23 of 43

AI assisted coding – programování např. s ChatGPT

  • ChatGPT evidentně datovou sadu Titanic zná, viz např. názvy atributů

  • Je důležité ověřit správnost výstupu, což vyžaduje porozumění kódu.
  • Byl nejmladší chlapec na palubě s rodičem, nebo sourozencem? Je potřeba upravit kód, což rovněž vyžaduje jeho porozumění.

23

Přednáška #1

24 of 43

Automatická predikce a strojové učení�Motivační příklad

24

Přednáška #1

25 of 43

Automatické určování autorství Kredit: M. Holub & J. Genči

�Možní autoři

�(1) A. Stašek (2) J. Neruda (3) J. Arbes��(4) K. Klostermann (5) F. X. Šalda (6) T. G. Masaryk

25

Přednáška #1

26 of 43

Co udělat, abychom mohli úspěšně predikovat autora ukázky?

Příprava na rozpoznávání – jak by postupoval člověk

  • Přečíst co nejvíce textů příslušných autorů
  • Rozpoznat jejich charakteristické styly
  • Tuto znalost si zapamatovat

26

Přednáška #1

27 of 43

Jak predikovat autora ukázky?

Postup predikce

  • Ukázku textu porovnat se znalostmi charakteristických stylů autorů
  • Predikovat autora ukázky s nejpodobnější stylem��⟶ Tudíž přísně vzato vlastně predikujeme autorský styl, nikoliv autora (!).� – Předpokládáme však, že tím lze autora rozpoznat.

Možné problémy

  • Úspěšnost predikce záleží i na délce ukázky
  • Co dělat, pokud styly různých autorů nejsou odlišné? Nebo se liší jen nepatrně?
  • Co dělat, pokud ukázka není napsaná ve stylu charakteristickém pro svého autora?

27

Přednáška #1

28 of 43

Jak predikovat autora ukázky automaticky?

  • Úloha z oblasti počítačového zpracování přirozeného jazyka (NLP, Natural Language Processing)
  • Konkrétně jde o úlohu klasifikace textů (text classification)
  • Použijeme strojové učení (machine learning)

28

hluboké�učení

strojové�učení

informatika

lingvistika

NLP

umělá inteligence�(AI)

symbolická�AI

Přednáška #1

29 of 43

Strojové učení – nástin základních principů

  • Počítač se „učí“ z dat podobně jako člověk ze zkušeností
  • Počítač se učí z trénovacích příkladů (training examples)
  • Čím více trénovacích příkladů, tím lépe; např. hodně ukázek z děl autorů� – příklad (example) je vždy dvojice: ukázka textu a její autor
  • Autory chápeme jako kategorie, tzv. cílové hodnoty (target values), které párujeme s ukázkami
    • technicky je příklad dvojice „objekt reálného světa“ a cílová hodnota (ukázka z díla a její autor)
  • Počítač se pomocí algoritmů a trénovacích příkladů „naučí“ model znalostí = trénování modelu
    • v našem případě počítač získá „znalosti“ o autorském stylu jednotlivých autorů
    • před trénováním se objekty reálného světa převedou na vektory příznaků (feature vectors)
  • Model pak otestujeme na testovacích příkladech (test examples) = testování modelu
    • během testování model použijeme k predikci autorů dosud neviděných ukázek (unseen data)
    • testovací příklady se rovněž převádějí na vektory příznaků
  • Na základě testování vyhodnotíme kvalitu modelu = evaluace modelu (model evaluation)

29

Přednáška #1

30 of 43

Automatické určování autorství

  • Formulace úlohy, např. takto
  • Trénovací příklady
    • = ukázky textů délky 1000, nebo 200 slov
    • Delexikalizované
      • plnovýznamová slova jsou nahrazena značkami pro slovní druhy
      • účel delexikalizace = chceme abstrahovat od tématu textu, soustředíme se pouze na styl
  • Cílové hodnoty
    • Autoři mají číselný kód 1–6
  • Vektory příznaků
    • jako příznak můžeme zahrnout cokoliv, co lze určit na základě dané ukázky textu
    • příklad – jeden příznak může být např. průměrná délka vět
  • Trénování modelu pomocí algoritmu Support Vector Machines
  • Evaluace

30

Přednáška #1

31 of 43

Vektory příznaků

Jeden příznak může být např. průměrná délka vět.

31

Přednáška #1

32 of 43

Příprava trénovacích dat

  • Pro jednoduchost zde uvažujeme pouze dva autory – modrý a červený.
  • Ukázky textů jsou zde popsány pouze dvěma příznaky A1 a A2 (např. průměrná délka věty a četnost přídavných jmen), a proto jsou rozloženy v 2-dimenzionálním prostoru.
  • Tuto množinu trénovacích příkladů následně využije učící algoritmus (learning algorithm)

32

Ilustrace

Přednáška #1

33 of 43

Příklad učícího algoritmu – Support Vector Machines

  • SVM algoritmus hledá lineární separaci oddělující červené a modré trénovací příklady
  • Výsledkem učení je nalezená optimální přímka
  • Obecně (v případě jiných algoritmů) může být výsledkem učení mnohem komplikovanější (nelineární) funkce�

Testování – pro odhad úspěšnosti modelu

  • Testovací ukázka (černý bod) bude klasifikována dle její pozice vzhledem k přímce (nad/pod).
  • Není s jistotou zaručeno, že testovací příklad bude klasifikován správně

33

Výsledek strojového učení – ilustrace

Přednáška #1

34 of 43

Evaluace – ukázka matice konfuze

34

Autor 01 � 429x správně klasifikován��Chybné predikce� 1x nesprávně jako autor 2� 2x nesprávně jako autor 4� 5x nesprávně jako autor 5� 3x nesprávně jako autor 6

Přednáška #1

35 of 43

Evaluace – správné predikce na diagonále matice konfuze

35

Accuracy = 429+333+406+353+263+284/2152

Přednáška #1

36 of 43

Malý teaser – datasety, se kterými budeme pracovat

36

dataset

metody (plán)

doména

zdroj

Titanic

analýza + bin. klasifikace

sociologie

Migranti

analýza + NLP + klasifikace

sociologie

Andersen

analýza + NLP

literární vědy

Autorství

analýza + NLP + klasifikace + NN

literární vědy

Koně

NLP + klasifikace

jazykověda, historie

Soud

NLP + lin. regrese + shluky + NN

právo

Kampaně

NLP + NN bin. klasifikace

podnikání

Nemovitosti

regrese + NN

realitní trh

Přijímačky

bin. klasifikace

vzdělávání

Výška

korelace + shlukování

psychologie

Přednáška #1

37 of 43

Informace k organizaci kurzu

37

Přednáška #1

38 of 43

Místo a čas

  • Místo
  • Čas
    • Přednáška pátek 9:30–10:50
    • Cvičení pátek 11:00–12:20
    • Konzultace domluva e-mailem {hladka,holub}@ufal.mff.cuni.cz

38

Přednáška #1

39 of 43

Učební materiály

Hlavní rozcestník https://ufal.mff.cuni.cz/courses/npfl142

  • slajdy k přednáškám (CZ)
  • tutoriály ke cvičením (EN)
  • zadání domácích úkolů (CZ)
  • doporučená literatura – zejména
    • Grolemund, Garrett and Hadley Wickham: R for Data Science: Import, Tidy, Transform, Visualize, and Model Data. O'Reilly Media, 2016. [https://r4ds.hadley.nz/]�
    • Hvitfeldt, Emil and Julie Silge: Supervised Machine Learning for Text Analysis in R. CRC Press. 2022. [https://smltar.com/]

39

Přednáška #1

40 of 43

Studijní předpoklady

  • Základy systému R
  • Elementární znalosti o systematickém zpracování a statistické analýze dat
  • Doporučujeme paralelně probíhající kurz NPFL143, který je koncipován jako systematická podpora pro zlepšení teoretických znalostí i praktických dovedností při užívání systému R

40

Přednáška #1

41 of 43

Požadavky na splnění předmětu – 4 kredity za kurz

  • Účast na všech přednáškách a cvičeních není povinná, ale velmi doporučujeme
  • Požadavky na zápočet
    • Odevzdání řešení min 75 % domácích úkolů (tj. 9 z 12)
      • Každý týden domácí úkol (2-4 cvičení), termín odevzdání vždy do příští středy
      • Časová náročnost týdenních úkolů = cca 1,5-2 hodiny
      • Celkem 12 domácích úkolů, včetně závěrečného projektu
      • Ke každému řešení obdržíte stručnou zpětnou vazbu + hodnocení SPLNĚNO/NESPLNĚNO
    • Odevzdání závěrečného projektu, příp. s vlastním tématem
      • Zadání několik týdnů před koncem semestru
      • Termín pro vypracování bude ve zkouškovém období
      • Odevzdání je povinné před zkouškou
  • Požadavky ke zkoušce
    • Udělení zápočtu
  • Zkouška
    • Ústní pohovor k závěrečnému projektu
    • Student má prokázat praktické znalosti metod vyučovaných během semestru

41

Přednáška #1

42 of 43

Shrnutí

42

Přednáška #1

43 of 43

Take-home message – aneb co si máte zapamatovat a naučit

  • Smysl a struktura kurzu a praktická motivace
    • příklad konkrétního datasetu: Titanic
    • příklad konkrétní úlohy: predikce autorství textu

  • Ukázka zpracování dat v prostředí R

  • Typy atributů, histogramy, kontingenční tabulky

  • Hlavní principy strojového učení, trénování a evaluace modelu

  • Organizace výuky a studijní povinnosti

43

Přednáška #1