diff --git a/wyk/06_Uczenie_maszynowe.ipynb b/wyk/06_Uczenie_maszynowe.ipynb new file mode 100644 index 0000000..efe49ea --- /dev/null +++ b/wyk/06_Uczenie_maszynowe.ipynb @@ -0,0 +1,177 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Uczenie maszynowe i jego wyzwania\n", + "\n", + "Uwaga: my skupiamy się na uczeniu maszynowym na tekstach (i ostatecznie zmierzamy do ekstrakcji z dokumentów tekstowych).\n", + "\n", + "## Oznaczenia\n", + "\n", + "* $x$ — wejście (często interpretowane jako wektor $\\vec{x}$) \n", + "* $y$ — oczekiwane wyjście\n", + "* $\\hat{y}$ — przewidywane wyjście\n", + "* $(X, Y)$, zbiór wejść $X$ traktujemy jako listę $X = (x_1, \\dots, x_N)$ albo jako macierz, a $Y$ jest na ogół ciągiem liczb albo wektorem\n", + "* $V$ — słownik (zbiór słów/symboli)\n", + " * $V^*$ — zbiór wszystkich tekstów (ciągów na $V$)\n", + "* $C = \\{c_1, c_2, \\dots, c_n\\}$ — zbiór klas\n", + " * $\\bar{c}$ - dopełnienie klasy $c$\n", + "* $L = \\{l_1, l_2, \\dots, l_n\\}$ — zbiór etykiet/tagów (_labels_/_tags_)\n", + " * czasami wymiennie używać będziemy terminów klasa oraz etykieta/tag\n", + " * $L^*$ — zbiór wszystkich ciągów etykiet\n", + "* $q$ — zapytanie\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Rekomendacje książkowe\n", + "\n", + "(Bez aparatu matematycznego! Na przykład do polecenia laikowi.)\n", + "\n", + "* Stanisław Lem, _Summa technologiae_, Wydawnictwo Literackie, 1964\n", + " * może zacząć od spojrzenia, jak kiedyś sobie to wyobrażano?\n", + "* Pedro Domingos, _Naczelny Algorytm. Jak jego odkrycie zmieni nasz świat_, Helion, 2016\n", + " * książka się trochę zestarzała, czas pokazał, że autor nie do końca trafnie przewidział, jak się dalej potoczą losy uczenia maszynowego (sieci neuronowe zdecydowanie wygrały)\n", + " * ... ale bardzo ciekawe spostrzeżenia, dobrze się czyta\n", + "* Kai-Fu Lee, _Inteligencja sztuczna, rewolucja prawdziwa_, Media Rodzina, 2019.\n", + " * ciekawe w kontekście ekonomicznym, szczególnie Chin\n", + " \n", + " " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Podstawowa idea\n", + "\n", + "**Uczenie maszynowe to odwrotność programowania** (trochę tak jak $\\sqrt{...}$ jest odwrotnością $^2$)." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "![Uczenie maszynowe a programowanie](./uczenie-a-programowanie.png)\n", + "\n", + "(Na razie trochę upraszczamy - odnosimy się tylko do uczenia nienadzorowanego.)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 5 epok uczenia maszynowego\n", + "\n", + "### I. Systemy regułowe\n", + "\n", + "Systemy regułowe, wyrażenia regularne, systemy eksperckie, programowanie logiczne (Prolog)\n", + "\n", + "Praca człowieka: tworzenie reguł (czasochłonne!)\n", + "\n", + "### II. Proste algorytmy uczenia maszynowego (lata 90.)\n", + "\n", + "Naiwny klasyfikator bayesowskie, regresja logistyczna, SVM, XGBoost\n", + "\n", + "Praca człowieka: inżynieria cech, optymalizacja hiperparametrów, unikanie przeuczenia\n", + "\n", + "### III. Sieci neuronowe 1 - ucz na _big data_ (2012-2016)\n", + "\n", + "Sieci feed-forward, splotowe, LSTM; wymagane duże zbiory uczące (w trybie nadzorowanym).\n", + "\n", + "Praca człowieka: specyficzna architektura, przygotowanie dużego zbioru danych\n", + "\n", + "### IV. Sieci neuronowe 2 - pretrenuj i dostrajaj (2017-2020)\n", + "\n", + "Sieci konwolucyjne, LSTM (ELMo), Transformer (BERT). Zbiory uczące do uczenia nadzorowanego nie muszą być obszerne.\n", + "\n", + "Praca człowieka: dostrajanie modelu.\n", + "\n", + "### V. Sieci neuronowe 3 - pretrenuj i... po po prostu korzystaj (2019-)\n", + "\n", + "Duże wielowarstwowe generatywne modele Transformer (GPT-2/3, T5), uczenie few-, one- i zero-shot.\n", + "\n", + "Praca człowieka: jak sformułować zadanie w języku naturalnym?\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Rodzaje uczenia maszynowego\n", + "\n", + "* uczenie nienadzorowane (_unsupervised learning_)\n", + "* uczenie nadzorowane (_supervised learning_)\n", + " * predykcja prostej wartości\n", + " * klasyfikacja\n", + " * klasyfikacja binarna\n", + " * klasyfikacja wieloklasowa\n", + " * regresja\n", + " * ekstrakcja informacji \n", + " * zadania _seq2seq_\n", + " * etykietowanie sekwencji (_sequence labeling_)\n", + " * tłumaczenie maszynowe (szeroko rozumiane)\n", + " * automatyczne streszczanie (sumaryzacja) \n", + " \n", + " \n", + " \n", + " \n", + " " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Uczenie maszynowe - widok z góry" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Wyzwania uczenia maszynowego\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.2" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/wyk/uczenie-a-programowanie.drawio b/wyk/uczenie-a-programowanie.drawio new file mode 100644 index 0000000..50800af --- /dev/null +++ b/wyk/uczenie-a-programowanie.drawio @@ -0,0 +1 @@ +7VpJc6M4FP41VE5xsRgvx9hJeg7JJNWdqV4uKQEyVgKIESK28+vniR2EHdttbGdmcnDQQ+t731uFYkz95ReGwvk9dbCn6KqzVIxrRdfHfQ1+BWGVEkzDSAkuI05K0krCN/KOM6KaUWPi4KjWkVPqcRLWiTYNAmzzGg0xRhf1bjPq1VcNkYslwjcbeTL1O3H4PKWO9GFJ/wMTd56vrA3G6Rsf5Z2zk0Rz5NBFhWTcKMaUUcrTJ385xZ7gXc6XdNztmrfFxhgO+DYD4PCq9qQOnx6nVPvB9D9/Te3LQbY3vsoPjB04f9akjM+pSwPk3ZTUCaNx4GAxqwqtss8dpSEQNSC+YM5XmTBRzCmQ5tz3srd4SfgPMbxnZq2flTfXy2zmpLHKGwFnq8og0fxZfVcOS1r5uPR84lBr2ZaRIhozG2/glVYIDcCOqY9hHRjHsIc4eavPjzLYuUW/YugjJbCyrmYaog/MdEimIFqOl3wKjpiLeTaqlC88VLZRkhKp74CAbMNvyIuzI3zHL8rUVMYTm2AJHqXwhbwWc8LxtxAlfFuAAagLOpsaM46Xm9kvszVnj1pnj5lxZ1EqY8GxeUURDXW9IGos3JVfusyv1Rnzyzg5w4afxcRsbypSlfwIJJ2bCn3ckFlqwjozFeYpJalV5Kj2jMbfZt8BjUfMCJwfM8mf1LxJ6Vy69yf9LcGkqZ2gSRupdTTlluNIjqcvGdJHRl2GfBJxJCENoqdQPMa+d2VzCmKcCDtJIFK7Qxb2HmlEOKEBdLEo59SvdLjyiCtecNqwtzTmHgnwtIgd1cMYYYmzsg02WkzwoCsTrMlOS9EHHiw7mdEEE1EeeA/+jkVAOtHKR3hys//JEKsmmbyXmOgyneYKOmhmuJSneGLIWdmrlwALfqbipgsUCMeZTg7ns5oLAi3dZk5uYAMExeuCjTijryBXTwDlOqCBMEUz4nkNEsqQYYNgMWuBjE8cJ7FjbZ67btsOgBttUAeOJuOmoFWB0wwZDwec4ZkA5y/7HScogbwqel8FdFEgxmItePnvYmhgmOeFId1owVCD+y6wIVx7+Cy3R1beXd1ZscYNxdJbouJBC1e0YWeqpX7Mljo4DpE8bJCQzLwTMkfOStere9hiZ1LC49eHL1+v7jfZBXm6kkJmsIULyOpe0QJfiD0HIl5L7FTLaOQLiQRWFG7VhviNx0zMqFU2KB0mrO/GFanmSI9DUt0RiCBw4Deg4vkiIF1u91LbaHrXn6CYQd1zgj12ve1KB3MHESgoCVwgmGXrKUl2LvV1akxBbWdeUh2cg7fAwX6eYSftzqdpsYT9NmXvLDo12oKMIzuIQSPyKmLx09lAY3Q2DiKV0Dk5CGN8WAdxe/9wfXO3m6NoM1WbF//feB0KeWdjvPobIpWm0PKU6aMUyBi3pUCKcbs2mWmD7ZoCih1b63KRCmCsVH53VkFA9qubSPUhLZpkdAex1weBE55UyHqqWSfqCbUb81OUvGumu2/KmGgreGvNetfhMNFWbjm2Q2vUoNr8WRtXuqtByWngkS+aNshqs2s76nWJJtdFj3zBtBOfVnV2nIxt/c9zk73xNuJkt9u52fzwOiINvX7jOuL35Gx+bFtzV+cvXfFNSs8mkU17NvXDGFgePUOu/ByCBMI5ZsiLesTyn30SkGcU9VW1LuFQXH9gdvMGDI0KnxfNC9RUoygF8G0MRuOhFHLBm1nyV7zJvyYBVu57kyFVHru6zxhqo16jqthyrdw3WtyJ3hUOPs218r66nbSahuKACq9te/+YqtzJFF5Og39ZRJkaysSAtEiN7Xdl2ldGpr2SEPGvKeqbjfr1SNa+UYu33aOmD83yk7T0qrf8rs+4+Qc= \ No newline at end of file diff --git a/wyk/uczenie-a-programowanie.png b/wyk/uczenie-a-programowanie.png new file mode 100644 index 0000000..9c1a6b9 Binary files /dev/null and b/wyk/uczenie-a-programowanie.png differ diff --git a/wyk/uczenie-schemat.drawio b/wyk/uczenie-schemat.drawio new file mode 100644 index 0000000..54770fe --- /dev/null +++ b/wyk/uczenie-schemat.drawio @@ -0,0 +1 @@ +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 \ No newline at end of file diff --git a/wyk/uczenie-schemat.png b/wyk/uczenie-schemat.png new file mode 100644 index 0000000..ea12e6c Binary files /dev/null and b/wyk/uczenie-schemat.png differ