380 likes | 651 Views
Strojové učenie Machine Learning. Michal Holub. Prezentácia vznikla na základe. online kurz Machine Learning ( Andrew Ng ) Profesor na univerzite Stanford Spoluzakladateľ Coursera.org Hlavný výskumník v Baidu (čínsky Google) https:// www.coursera.org/course/ml
E N D
Strojové učenieMachineLearning Michal Holub
Prezentácia vznikla na základe • online kurz Machine Learning (Andrew Ng) • Profesor na univerzite Stanford • Spoluzakladateľ Coursera.org • Hlavný výskumník v Baidu (čínsky Google) • https://www.coursera.org/course/ml • kniha BuildingMachineLearning Systems withPython (WilliRichert, Luis Pedro Coelho) • Microsoft, projekt Bing • Bioinformatik, spracovanie obrázkov bio vzoriek Personalized Web Group @ FIIT STU
Čo je to strojové učenie? • Učí stroje, ako majú vykonávať úlohy samostatne. Personalized Web Group @ FIIT STU
2 základné typy algoritmov • supervisedlearningalgorithm • učenie s učiteľom • mám vzorku dát a k nim správne hodnoty • tieto chcem neskôr predikovať nad novými dátami Personalized Web Group @ FIIT STU
2 základné typy algoritmov • supervisedlearningalgorithm • učenie s učiteľom • mám vzorku dát a k nim správne hodnoty • tieto chcem neskôr predikovať nad novými dátami • unsupervisedlearningalgorithm • učenie bez učiteľa • mám dáta a neviem, čo v nich chcem objaviť • zhlukovanie – rozdelenie do rôznych skupín Personalized Web Group @ FIIT STU
Príklady učenia s učiteľom • Email JE / NIE JE spam • Rôzne metadáta emailu • Dĺžka, čas doručenia, štát / server odosielateľa, použité slová, ... • Na základe nich sa rozhodnem, či to je spam • Výstup z predvolenej množiny hodnôt (true alebo false) • Klasifikácia Personalized Web Group @ FIIT STU
Príklady učenia s učiteľom • Email JE / NIE JE spam • Rôzne metadáta emailu • Dĺžka, čas doručenia, štát / server odosielateľa, použité slová, ... • Na základe nich sa rozhodnem, či to je spam • Výstup z predvolenej množiny hodnôt (true alebo false) • Klasifikácia • Predajca notebookov – koľko ks výrobkov predám? • Rôzne metadáta notebooku • Cena, veľkosť RAM, rýchlosť CPU, veľkosť disku, displej, ... • Výstupom je spojitá veličina (počet ks) • Regresia Personalized Web Group @ FIIT STU
Príklady učenia bez učiteľa • Zoskupovanie ľudí podľa záujmov • Na sociálnej sieti publikujem správy, názory, záujmy, moje demografické info, ... • Vznikajú virtuálne skupiny podobných ľudí • Dopredu neviem, aké budú, nemám pre ne „štítok“ • Zhlukovanie Personalized Web Group @ FIIT STU
Predikcia cien bytov 140 135 130 125 120 115 110 105 100 95 90 85 [1000 €] 50 60 70 80 90 100 110 [m2] Personalized Web Group @ FIIT STU
Za koľko mám predať / kúpiť? 140 135 130 125 120 115 110 105 100 95 90 85 € = ? [1000 €] 50 60 70 80 90 100 110 [m2] Personalized Web Group @ FIIT STU
Reálne dáta, použijem na trénovanie 140 135 130 125 120 115 110 105 100 95 90 85 [1000 €] 50 60 70 80 90 100 110 [m2] Personalized Web Group @ FIIT STU
Model = lineárna funkcia 140 135 130 125 120 115 110 105 100 95 90 85 [1000 €] 50 60 70 80 90 100 110 [m2] Personalized Web Group @ FIIT STU
Predikovaná cena je cca 113 000 € 140 135 130 125 120 115 110 105 100 95 90 85 [1000 €] 50 60 70 80 90 100 110 [m2] Personalized Web Group @ FIIT STU
Model = polynomiálna funkcia 140 135 130 125 120 115 110 105 100 95 90 85 [1000 €] 50 60 70 80 90 100 110 [m2] Personalized Web Group @ FIIT STU
Predikovaná cena je cca 120 000 € 140 135 130 125 120 115 110 105 100 95 90 85 [1000 €] 50 60 70 80 90 100 110 [m2] Personalized Web Group @ FIIT STU
Model = polynomiálna funkcia 140 135 130 125 120 115 110 105 100 95 90 85 [1000 €] 50 60 70 80 90 100 110 [m2] Personalized Web Group @ FIIT STU
Predikovaná cena je cca 99 000 € 140 135 130 125 120 115 110 105 100 95 90 85 [1000 €] 50 60 70 80 90 100 110 [m2] Personalized Web Group @ FIIT STU
Zvolím lineárnu funkciu 140 135 130 125 120 115 110 105 100 95 90 85 [1000 €] 50 60 70 80 90 100 110 [m2] Personalized Web Group @ FIIT STU
Základná schéma výpočtu • trénovacia množina (plocha bytu | cena) • zvolím model (lineárna funkcia) • algoritmus strojového učenia • predikuje h – hypotéza z trénovacích hodnôt • tak, aby bola chyba čo najmenšia – testovanie po každom kroku • chybu ohodnocuje „funkcia nákladov“ – costfunction Personalized Web Group @ FIIT STU
Zvolím lineárnu funkciu 140 135 130 125 120 115 110 105 100 95 90 85 [1000 €] 50 60 70 80 90 100 110 [m2] Personalized Web Group @ FIIT STU
Nákladová funkcia • m – počet testovacích príkladov (dvojica plocha – cena) • minimalizujem funkciu J • vtedy moja hypotéza najpresnejšie (ako je to možné v rámci lineárnej funkcie) opisuje trénovacie dáta Personalized Web Group @ FIIT STU
Nákladová funkcia – priebeh 3 2.5 2 1.5 1 0.5 0 0.5 1 1.5 2 2.5 3 3.5 Personalized Web Group @ FIIT STU
Nákladová funkcia pre 2 parametre Image by AndrewNg, MachineLearning@Coursera Personalized Web Group @ FIIT STU
Algoritmus postupného klesania • Gradient descentalgorithm • Použijem ho na minimalizovanie funkcie J • Začni s nejakými hodnotami parametrov • Postupne ich mierne upravuj tak, aby J klesala • Opakuj, kým nedosiahneš minimum J Personalized Web Group @ FIIT STU
Nákladová funkcia – priebeh 3 2.5 2 1.5 1 0.5 0 0.5 1 1.5 2 2.5 3 3.5 Personalized Web Group @ FIIT STU
Nákladová funkcia – priebeh 3 2.5 2 1.5 1 0.5 0 0.5 1 1.5 2 2.5 3 3.5 Personalized Web Group @ FIIT STU
Nákladová funkcia – priebeh 3 2.5 2 1.5 1 0.5 0 0.5 1 1.5 2 2.5 3 3.5 Personalized Web Group @ FIIT STU
Nákladová funkcia – priebeh 3 2.5 2 1.5 1 0.5 0 0.5 1 1.5 2 2.5 3 3.5 Personalized Web Group @ FIIT STU
Nákladová funkcia – priebeh 3 2.5 2 1.5 1 0.5 0 0.5 1 1.5 2 2.5 3 3.5 Personalized Web Group @ FIIT STU
Nákladová funkcia – priebeh 3 2.5 2 1.5 1 0.5 0 0.5 1 1.5 2 2.5 3 3.5 Personalized Web Group @ FIIT STU
Výpočet aktualizácia súčasne! musím použiť temp premenné Personalized Web Group @ FIIT STU
Výpočet Personalized Web Group @ FIIT STU
Rekapitulácia • Máme trénovaciu množinu vzoriek (plocha, cena) • Vybrali sme si lineárnu funkciu ako model • Presnosť (chybu) spočítame nákladovou funkciou J • Cieľom je minimalizovať J • Použijeme na to algoritmus postupného klesania • Zistíme optimálne parametre pre model (hypotézu) • Následne vieme pre novú vzorku (plocha) určiť vhodnú cenu Personalized Web Group @ FIIT STU
Ďalšie možnosti • Viac atribútov • Iná hypotéza (polynomiálna funkcia) • Podtrénovanievs pretrénovanie • Under / over fitting • Rozdelenie trénovacej množiny • 80 : 20, 70 : 30 • Trénovanie a testovanie Personalized Web Group @ FIIT STU
Existujú knižnice pre rôzne platformy • By Awesome Machine Learning • Python • PyBrain - www.pybrain.org • Ruby • AI4R - www.ai4r.org • Java • Apache Mahout - mahout.apache.org • Weka - www.cs.waikato.ac.nz/ml/weka • C# • Accord.MachineLearning - www.nuget.org/packages/Accord.MachineLearning • C++ • Dlib - dlib.net • Octave, R Personalized Web Group @ FIIT STU
Užitočné odkazy • www.coursera.org/course/ml • cloud.google.com/prediction/ • azure.microsoft.com/en-us/services/machine-learning • github.com/josephmisiti/awesome-machine-learning • cs229.stanford.edu/materials.html • http://work.caltech.edu/lectures.html • ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-867-machine-learning-fall-2006/lecture-notes • www.toptal.com/machine-learning/machine-learning-theory-an-introductory-primer • http://ciml.info/ Personalized Web Group @ FIIT STU