PLIN037 Sémantika a počítače Zuzana Nevěřilová 2020/21 Strojové učení •Počítačový program se nemění •Výpočet se mění na základě dat •Z minulých příkladů může program •Kategorizovat (klasifikovat) •Predikovat •Spojité hodnoty •Diskrétní hodnoty •Existuje podobnost mezi minulými příklady a budoucími daty •Tradiční strojové učení •Neuronové sítě • •Proč učení? •Iterativní proces •Zpětná vazba (účelová funkce, loss function) •Znalosti (data) •Pořadí otázek •Otázku klademe tak, aby odpověď rychle redukovala počet možných řešení (ideální by bylo půlení) Příklad: hra „Myslím si zvíře“ ano ano ano ne ne ne • • • • • •Data o všech zvířatech •Nepřesné odpovědi •Neúplné odpovědi •Vývoj v čase (nová zvířata) Příklad: hra „Myslím si zvíře“ ano ano ano ne ne ne Savec >ovce V ČR voda dravec pták liška ano ne ano ne ano ne kapr ne ne ano ano ne ne zebra ano ano ne ne ne ne ? ano ano ano ne ne ne • • • • • •Strojové učení: •Existuje algoritmus, který se naučí klasifikovat neznámé zvíře na základě zjištěných rysů? Příklad: hra „Myslím si zvíře“ Savec >ovce V ČR voda dravec pták liška ano ne ano ne ano ne kapr ne ne ano ano ne ne zebra ano ano ne ne ne ne ? ano ano ano ne ne ne ano ano ano ne ne ne Algoritmy strojového učení model Rozhodovací strom •Každý uzel obsahuje •Prvky uzlu •Jeden příznak •Dělicí hodnotu •Giniho nečistota (Gini Impurity) •Jaká je pravděpodobnost, že náhodně zvolený prvek uzlu bude zvolený špatně? • Savec >ovce V ČR voda dravec pták liška ano ne ano ne ano ne kapr ne ne ano ano ne ne zebra ano ano ne ne ne ne ano ano ano ne ne ne Lineární regrese Naivní Bayesovský klasifikátor Zvíře Velikost Barva Potrava Slon Velký Šedý Býložravec Slon Střední Šedý Býložravec Kráva Velký Strakatý Býložravec Kráva Střední Strakatý Býložravec Kráva Velký Strakatý Býložravec Vlk Malý Černý Dravec Kráva Velký Černý Býložravec Vlk Velký Šedý Dravec Minulá data Nové pozorování: Velký černý býložravec Nepodmíněná pravděpodobnost: •50 % kráva •25 % vlk •25 % slon Naivní Bayesovský klasifikátor Zvíře Velikost Barva Potrava Slon Velký Šedý Býložravec Slon Střední Šedý Býložravec Kráva Velký Strakatý Býložravec Kráva Střední Strakatý Býložravec Kráva Velký Strakatý Býložravec Vlk Malý Černý Dravec Kráva Velký Černý Býložravec Vlk Velký Šedý Dravec Nepodmíněná pravděpodobnost: •50 % kráva •25 % vlk •25 % slon • Podmíněné pravděpodobnosti: Naivní Bayesovský klasifikátor Zvíře Velikost Barva Potrava Slon Velký Šedý Býložravec Slon Střední Šedý Býložravec Kráva Velký Strakatý Býložravec Kráva Střední Strakatý Býložravec Kráva Velký Strakatý Býložravec Vlk Malý Černý Dravec Kráva Velký Černý Býložravec Vlk Velký Šedý Dravec (Tradiční) strojové učení •Pozorování dat Určení rysů Volba algoritmu Může se strojové učení naučit vybrat rysy a algoritmus? •Pozorování dat Neuronové sítě Pozorování dat Architektura neuronové sítě Neuronové sítě •Modelování diskrétních objektů (slova) pomocí spojitých hodnot (vektory reálných čísel) • •Vektory kódující slova tak, aby: •Počet dimenzí nebyl moc vysoký •Vektory významově blízkých slov svíraly malý úhel • •Výpočet: •Predikce chybějícího slova ve větě Neuronové sítě Word Embeddings Strojové učení a neuronové sítě Literatura •Will Koehrsen: Neural Network Embeddings Explained. How deep learning can represent War and Peace as a vector. Towards Data Science. Oct 2, 2018·8. https://towardsdatascience.com/neural-network-embeddings-explained-4d028e6f0526 •Wikipedia contributors. (2021, April 13). Simple linear regression. In Wikipedia, The Free Encyclopedia. Retrieved 00:39, May 4, 2021, from https://en.wikipedia.org/w/index.php?title=Simple_linear_regression&oldid=1017542751 •Wikipedia contributors. (2021, May 3). Naive Bayes classifier. In Wikipedia, The Free Encyclopedia. Retrieved 00:40, May 4, 2021, from https://en.wikipedia.org/w/index.php?title=Naive_Bayes_classifier&oldid=1021201855 •Wikipedia contributors. (2021, April 23). Neural network. In Wikipedia, The Free Encyclopedia. Retrieved 00:44, May 4, 2021, from https://en.wikipedia.org/w/index.php?title=Neural_network&oldid=1019519177 •Avinash Navlani. Decision Tree Classification in Python. Datacamp Tutorial. December 28th, 2018. https://www.datacamp.com/community/tutorials/decision-tree-classification-python • •