From 3424ca9041c4fd2ea40ab56bf6ca18931c1765ec Mon Sep 17 00:00:00 2001 From: Filip Gralinski Date: Wed, 14 Apr 2021 13:23:33 +0200 Subject: [PATCH] Up --- wyk/06_Uczenie_maszynowe.ipynb | 215 ++++++++++++++++++++++++++++++++- 1 file changed, 214 insertions(+), 1 deletion(-) diff --git a/wyk/06_Uczenie_maszynowe.ipynb b/wyk/06_Uczenie_maszynowe.ipynb index efe49ea..a08a594 100644 --- a/wyk/06_Uczenie_maszynowe.ipynb +++ b/wyk/06_Uczenie_maszynowe.ipynb @@ -134,7 +134,9 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "## Uczenie maszynowe - widok z góry" + "## Uczenie maszynowe - widok z góry\n", + "\n", + "![Uczenie maszynowe - schemat](./uczenie-schemat.png)" ] }, { @@ -142,6 +144,217 @@ "metadata": {}, "source": [ "## Wyzwania uczenia maszynowego\n", + "\n", + "Zbiór danych (_data set_) - w uczeniu nadzorowanym po prostu zestaw danych wejściowych i oczekiwanych danych wyjściowych $(X, Y)$.\n", + "Wyzwanie uczenia maszynowego (_ML challenge_) - ustandaryzowany zbiór danych, podzielony na zbiór uczący i zbiory testowe, z określoną metryką ewaluacji.\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Zob. listę na stronie https://gonito.net/list-challenges" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Uczenie nadzorowane\n", + "\n", + "#### Klasyfikacja binarna\n", + "\n", + "$$V^* \\mapsto \\{c,\\bar{c}\\}$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Przykłady:\n", + " \n", + "* klasyfikacja spam/nie-spam \n", + "* https://gonito.net/challenge/petite-difference-challenge2\n", + "* https://gonito.net/challenge/sentiment-by-emoticons\n", + "* https://gonito.net/challenge/sane-words" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "Na platformie Gonito wyzwania (i zgłoszenia) są dostępne jako repozytoria git." + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "/home/filipg/ext/amu/aitech-eks/wyk\n", + "Klonowanie do „sentiment-by-emoticons”...\n", + "remote: Wymienianie obiektów: 29, gotowe.\u001b[K\n", + "remote: Zliczanie obiektów: 100% (29/29), gotowe.\u001b[K\n", + "remote: Kompresowanie obiektów: 100% (25/25), gotowe.\u001b[K\n", + "remote: Razem 29 (delty 5), użyte ponownie 0 (delty 0), paczki użyte ponownie 0\n", + "Pobieranie obiektów: 100% (29/29), 155.07 MiB | 2.39 MiB/s, gotowe.\n", + "Rozwiązywanie delt: 100% (5/5), gotowe.\n" + ] + } + ], + "source": [ + "%cd wyk\n", + "! git clone --single-branch git://gonito.net/sentiment-by-emoticons" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "/home/filipg/ext/amu/aitech-eks/wyk/sentiment-by-emoticons\n", + "config.txt dev-0 README.md test-A train\n" + ] + } + ], + "source": [ + "%cd sentiment-by-emoticons\n", + "! ls" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "--metric LogLoss --metric Accuracy --precision 5 -%\n" + ] + } + ], + "source": [ + "# plik konfiguracyjny\n", + "! cat config.txt" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "expected.tsv in.tsv.xz meta.tsv.xz\n" + ] + } + ], + "source": [ + "# zbiór uczący, oczywiście z oczekiwanym wyjściem\n", + "! ls train" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "expected.tsv in.tsv meta.tsv\n" + ] + } + ], + "source": [ + "# zbiór deweloperski też ma\n", + "! ls dev-0" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "in.tsv\n" + ] + } + ], + "source": [ + "# a ostateczny zbiór testowy - nie ma (plik jest dostępny tylko dla ewaluatora)\n", + "! ls test-A" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1\t1) Amor omnia vincit!!!!- miłość wszystko zwycięży!!!! 2) każdy człowiek jest jak kwiat...Więdnieje bez miłości *) 3) Szukaj mnie cierpliwie dzień po dniu... 4) BĄDű DLA INNYCH SŁONECZNYM ZEGAREM, ODMIERZAJ TYLKO SŁONECZNE GODZINY 5) \\\"... Momenty ze ze snu wyrwana; zas nie wyspana...\\\" 6) ULEWA JEST MA SIOSTRA , STRUMIEN BRATEM 7) KażdaMiłośMusiPrzejścPrzezPróbęWtedyOkażeSięJejPrawdziwaWartość... 8) Zaplątana w pajęczynę snów.. Lepkie nici marzeń.. Utkane przez noc.. 9) Podobno ludzi lubimy za ich zalety, a kochamy za ich wady.... 10) Pozwól mi pozostać... 11) KIEDYŚ-to juz przeszeszłosc...Trzeba przyzwyczajic sie do-DZISIAJ;/ 12) To MoJa JeSt..NiEdOrOsLa MiLoSć..UpArcIe WiEc...BeDe BrOnIć JeJ... 13) Jeszcze jeden krok , a zgine.. 14) *CoRazBl!ŻejŚw!ęTa* NapisałamListDoŚw.Mikołaja ProszącOTwojąMiłość! 15) JeStEm W TeScO Na UrOdZiNaCh 16) Facet jest jak plemnik,tylko jeden na milion staje się człowiekiem! 17) Jeżeli ktoś komuś coś, ewentualnie nikt nikomu nic, to myślę iż wątpię 18) Samotna wśród ludzi którzy myślą...ONA NIGDY NIE JEST SAMA ! 19) PotrzebaCałegoŻycia, AbyZapomniecOKimś, KtoByłDla NasNaprawdeWażny :&# 20) NieŻałujTegoCoZrobiłeś,KaraPrzyjdzieZCzasem;TymczasemUczSięDobroci...\n", + "0\t@ Rodzyn \"Ech szkoda, że to wersja komercyjna \" A jaki to problem załatać jądro np. za pomocą RTAI lub skorzystać z preempt_RT? Tylko co ci po tym? @ Mily \"Ja chetnie bym przetestowal ten system. Mysle, ze pomimo ze jest on dedykowany do innych zastosowan, bardzo dobrze sprawowal by sie jako system desktopowy. Mam tu na mysli gwarantowane czsy odpowiedzi (muzyka, film, reakcja interface'u graficznego na dzialania uzytkownika).\" To nie działa w ten sposób. Zagadnienia systemów czasu rzeczywistego są o wiele bardziej skomplikowane. Zazwyczaj tylko krytyczne aplikacje działają w czasie rzeczywistym. Gdybyś nadał priorytet czasu rzeczywistego wszystkim aplikacjom \"zwykłego użytkownika\" walczyłyby między sobą o zasoby tak samo jak teraz. O wiele lepiej byłoby gdyby w końcu zaczęto tworzyć aplikacje również z myślą o oszczędności zasobów. @ Macius \"8 rdzeni rowna sie 1system, 2desktop, 3muza,4film, 5net, 6 7 8 inne pierdoly ktore dzialaja w czasie rzeczywistym to jest cos.\" Wybacz, ale uważam to za piekielne marnotrawienie zasobów. Chcesz żeby jeden rdzeń obsługiwał np. tylko muzykę? Przecież to będzie jakieś 5% zasobów współczesnego rdzenia. Wszystko działałoby szybciej gdybyśmy większą uwagę przywiązywali do szybkości działania aplikacji niż jej wizualnych bajerów.\n", + "0\tCzy u Was też taka brzydka pogoda, która sprawia, że nic się nie chce? ale ja na szczęście jakoś chyba na przekór tej jesieni zaczęłam wyplatać...\n", + "0\tPo spektaklu w teatrze,,KOMEDIA''wracałam obok tej pani samochodem i uśmiechałam się ,ale pani jest faktycznie sztuczna i sztywna....zagrała ,wyszła i ma gdzieś sympatię ludzi...ja już jej nie mam dla tej pani\n", + "1\ta wtedy i ekskomunika niestraszna \n", + "paste: błąd zapisu: Przerwany potok\n", + "paste: błąd zapisu\n" + ] + } + ], + "source": [ + "# W każdym wierszu jest osobny dokument\n", + "! xzcat train/in.tsv.xz | paste train/expected.tsv - | head -n 5" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Klasyfikacja wieloklasowa\n", + "\n", + "$$V^* \\mapsto \\{c_1,\\dots,c_n\\}$$\n", + "\n", + "#### Regresja\n", + "\n", + "$$V^* \\mapsto \\mathbb{R}$$\n", + "\n", + "#### Zadania seq2seq\n", + "\n", + "$$V^* \\mapsto Y^*$$\n", + "\n", + "##### Zadania tłumaczenia maszynowego\n", + "\n", + "$$V^* \\mapsto V^*$$\n", + "\n", + "##### Zadania sequence labeling\n", + "\n", + "$$V^* \\mapsto L^*$$\n", + "\n", + "\n", + "\n", + "\n", "\n" ] },