Wykład 6
This commit is contained in:
parent
7f9c8d2f7c
commit
eac3962fce
177
wyk/06_Uczenie_maszynowe.ipynb
Normal file
177
wyk/06_Uczenie_maszynowe.ipynb
Normal file
@ -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
|
||||||
|
}
|
1
wyk/uczenie-a-programowanie.drawio
Normal file
1
wyk/uczenie-a-programowanie.drawio
Normal file
@ -0,0 +1 @@
|
|||||||
|
<mxfile host="app.diagrams.net" modified="2021-04-13T11:39:17.647Z" agent="5.0 (X11)" etag="XxEtXX0WYzlqqzidtQgP" version="14.4.9" type="device"><diagram id="uLKjCm85fMcSPGM1o2xF" name="Page-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=</diagram></mxfile>
|
BIN
wyk/uczenie-a-programowanie.png
Normal file
BIN
wyk/uczenie-a-programowanie.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 30 KiB |
1
wyk/uczenie-schemat.drawio
Normal file
1
wyk/uczenie-schemat.drawio
Normal file
File diff suppressed because one or more lines are too long
BIN
wyk/uczenie-schemat.png
Normal file
BIN
wyk/uczenie-schemat.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 264 KiB |
Loading…
Reference in New Issue
Block a user