pms
/
ium
forked from AITech/aitech-ium
4
5
Fork 1

Zajecia 1.

This commit is contained in:
Tomasz Ziętkiewicz 2021-03-07 23:52:43 +01:00
parent 7885030ca3
commit 6009d366e7
3 changed files with 412 additions and 0 deletions

166
IUM_00.Organizacyjne.ipynb Normal file
View File

@ -0,0 +1,166 @@
{
"cells": [
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"# AITech Inżynieria Uczenia Maszynowego\n",
"\n",
"\n",
"## 1. Informacje organizacyjne"
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"## Przedmiot\n",
"- Kod przedmiotu: 06-DIUMUI0\n",
"- Nazwa: Inżynieria Uczenia Maszynowego\n",
"- WMI UAM 2021\n",
"- Sylabus: Sylabus-AITech-InzynieriaUczeniaMaszynowego.pdf"
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"## Prowadzący\n",
"- imię i nazwisko:\tTomasz Ziętkiewicz\n",
"- stopień naukowy:\tmagister inżynier\n",
"- stanowisko:\tdoktorant\n",
"- [Zakład Sztucznej Inteligencji](https://ai.wmi.amu.edu.pl/pl/)\n",
"- email: tomasz.zietkiewicz@amu.edu.pl\n",
"- www: http://tz47965.home.amu.edu.pl/\n",
"- konsultacje: przez MS Teams, po wcześniejszym umówieniu mailowym lub przez chat"
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"### Prowadzący\n",
"### Zainteresowania naukowe\n",
"- Przetwarzanie języka naturalnego\n",
"- Rozpoznawanie mowy\n",
"- Postprocessing wyników rozpoznawania mowy\n",
"- Normalizacja tekstu\n",
"- Korekta błędów systemów rozpoznawania mowy"
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"## Program zajęć\n",
"1. Wprowadzenie\n",
"2. Dane\n",
"3. Ciągła Integracja - Jenkins\n",
"4. Biblioteki ML\n",
"5. Konteneryzacja - Docker\n",
"6. Przygotowanie eksperymentu ML\n",
"7. Jenkins pipeline\n",
"8. Kontrola eksperymentów - Sacred\n",
"9. Kontrola eksperymentów - MLFlow\n",
"10. Kontrola eksperymentów - DVC\n",
"11. Wizualizacja\n",
"12. Finalizacja projektu\n",
"13. Finalizacja projektu\n",
"14. Podsumowanie"
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"## Zasady zaliczenia\n",
"\n",
"W trakcie kolejnych zajęć będą Państwo poznawać różne techniki i narzędzia wspomagające proces rozwoju modeli uczenia maszynowgo.\n",
"\n",
"W wyniku realizacji zadań z poszczególnych zajęć powstaną części składowe potoku uczenia maszynowego (Machine Learning Pipeline), które na końcu zostaną zintegrowane w jedną całość.\n",
"\n",
"\n",
" - Za wykonywanie na bieżąco zadań z poszczególnych zajęć będą przyznawane punkty.\n",
" - Zadania powinny zostać wykonane przez Państwa do końca dnia poprzedzającego następne zajęcia (o ile w zadaniu nie podano inaczej) \n",
" - Zobowiązuję się ocenić zadania najpóźniej do początku następnych zajęć \n",
" (czyli np. zadanie z zajęć 2. musi zostać oddane najpóźniej dzień przed zajęciami 3. a wyniki oceny tego zadania zostaną opublikowane najpóźniej w trakcie zajęć 4.)\n",
" \n",
" - W przypadku braku wykonania zadań w terminie nie zostaną przyznane za nie punkty.\n",
" - W przypadku braku wystawienia przez prowadzącego punktów w terminie, uznaje się przyznanie za zadanie maksymalnej ilości punktów\n",
" - Za wykonanie zadań cząstkowych w terminie można zdobyć 50% całkowitej liczby punktów\n",
" - Za wykonanie finalnego projektu można zdobyć 50% całkowitej liczby punktów\n",
" - Punkty przysługujące za każde zadanie cząstkowe będą podane przy opisie zadania\n",
" \n",
" Przelicznik punktów na oceny:\n",
" \n",
"| Ocena | % całkowitej liczby punktów |\n",
"| --------------------------- | ----------- |\n",
"| bardzo dobry (bdb; 5,0) | >= 90% |\n",
"| dobry plus (+db; 4,5) | >= 80% |\n",
"| dobry (db; 4,0)\t | >= 70% |\n",
"| dostateczny plus (+dst; 3,5)| >= 60% |\n",
"| dostateczny (dst; 3,0) | >= 50% |\n",
"| niedostateczny (ndst; 2,0) | < 50% |"
]
}
],
"metadata": {
"celltoolbar": "Slideshow",
"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.8.5"
},
"toc": {
"base_numbering": 1,
"nav_menu": {},
"number_sections": false,
"sideBar": false,
"skip_h1_title": false,
"title_cell": "Table of Contents",
"title_sidebar": "Contents",
"toc_cell": false,
"toc_position": {},
"toc_section_display": false,
"toc_window_display": false
}
},
"nbformat": 4,
"nbformat_minor": 4
}

246
IUM_01.Wprowadzenie.ipynb Normal file
View File

@ -0,0 +1,246 @@
{
"cells": [
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"### AITech Inżynieria Uczenia Maszynowego\n",
"# 1. Wprowadzenie"
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"## 1.1 Specyfika rozwoju systemów wykorzystujących uczenie maszynowe\n",
"Od czego zależy wynik działania systemu?\n",
"\n",
"System \"klasyczny\":\n",
" - Kod (algorytm)\n",
" - Środowisko\n",
" - Dane wejściowe\n",
" \n",
"System wykorzystujący uczenie maszynowe:\n",
" - Kod (algorytm) inferencji\n",
" - Środowisko\n",
" - Dane wejściowe\n",
" - Model:\n",
" - Dane trenujące\n",
" - Kod trenujący\n",
" - Architektura\n",
" - Hiperparametry\n",
"\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<img style=\"margin: auto\" width=\"50%\" src=\"img/ml-vs-classic.png\"/>\n",
"\n",
"<sub>Źródło: https://www.reddit.com/r/learnmachinelearning/comments/hkcf4o/traditional_programming_vs_machine_learning/</sub>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## 1.1 Specyfika rozwoju systemów wykorzystujących uczenie maszynowe\n",
"* Trenowanie modeli uczenie maszynowego to \"nauka eksperymentalna\".\n",
"* Nie da się wydedukować optymalnej architektury parametrów i hiperparametrów.\n",
"* Możemy stawiać hipotezy oparte na intuicji, doświadczeniu (własnym lub cudzym) i analogiach i weryfikować je empirycznie - metodą prób i błędów.\n",
"* .. albo wykorzystując [AutoML](https://en.wikipedia.org/wiki/Automated_machine_learning)"
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"## 1.1 Specyfika rozwoju systemów wykorzystujących uczenie maszynowe\n",
"- Więcej zmiennych wpływających na wynik -> trudniejsza kontrola na działaniem\n",
"- Powolna pętla sprzężenia zwrotnego (slow feedback) - trenowanie może zajmować godziny, dni, miesiące...\n",
"- ... i kosztować $.\n",
"- Nie stać nas na błędy wykrywane po dniach obliczeń!\n",
"- Potrzeba stosowania praktyk i narzędzi, które ułatwią kontrolę nad tymi zmiennymi."
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"## 1.2 Narzędzia\n",
"* Kontrola wersji\n",
"* Systemy ciągłej integracji\n",
"* Konteneryzacja i virtualne środowiska\n",
"* Kontrola eksperymentów\n",
"\n",
" \n"
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "subslide"
}
},
"source": [
"## 1.2.1 Systemy ciągłej integracji\n",
" - Jenkins <br/><img style=\"height: 50px;\" src=\"img/ci/jenkins.png\"/>\n",
" - Bamboo <br/><img style=\"height: 50px;\" src=\"img/ci/bamboo.png\"/>\n",
" - Circle CI <br/><img style=\"height: 50px;\" src=\"img/ci/circleci.png\"/>\n",
" - Team City <br/><img style=\"height: 50px;\" src=\"img/ci/teamcity.png\"/>\n",
" - Gitlab CI <br/><img style=\"height: 50px;\" src=\"img/ci/gitlabci.png\"/>"
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "subslide"
}
},
"source": [
"## 1.2.1 Systemy ciągłej integracji\n",
"Systemy takie umożliwiają automatyczne:\n",
" - budowanie\n",
" - testowanie\n",
" - wydawanie \n",
" \n",
"oprogramowania w stabilnym środowisku.\n",
"\n",
"Działają jako aplikacja webowa z graficznym interfejsem, umożliwiająca łatwe zarządzanie i monitorowanie wykonywanych w niej zadań."
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "subslide"
}
},
"source": [
"## 1.2.2 Konteneryzacja i virtualne środowiska\n",
" - Docker </br><img style=\"height: 50px;\" src=\"img/environments/docker.png\"/>\n",
" - Conda </br><img style=\"height: 50px;\" src=\"img/environments/conda.png\"/>\n",
" - Virtual Env </br><img style=\"height: 50px;\" src=\"img/environments/python.png\"/>"
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "subslide"
}
},
"source": [
"## 1.2.2 Konteneryzacja i virtualne środowiska\n",
"Konteneryzacja (np. za pomocą Dockera) i wirtualne środowiska (takie jak Conda i ViertualEnv) zapewniają:\n",
"- stabilne\n",
"- odizolowane\n",
"- łatwo konfigurowalne\n",
"środowisko do rozwoju aplikacji."
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "subslide"
}
},
"source": [
"## 1.2.3 Narzędzia do kontroli eksperymentów\n",
" - Sacred </br><img style=\"height: 50px;\" src=\"img/environments/python.png\"/>\n",
" - DVC </br><img style=\"height: 50px;\" src=\"img/expcontrol/dvc-logo.png\"/>\n",
" - MLFlow </br><img style=\"height: 50px;\" src=\"img/expcontrol/mlflow-logo.png\"/>\n"
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "subslide"
}
},
"source": [
"## 1.2.3 Narzędzia do kontroli eksperymentów\n",
"Ułatwiają prowadzenie eksperymentów uczenia maszynowego w sposób:\n",
" - powtarzalny\n",
" - kontrolowany\n",
" - zorganizowany"
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"## Dodatkowe materiały\n",
" - https://www.coursera.org/learn/machine-learning-projects\n",
" - \n"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"celltoolbar": "Slideshow",
"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.8.5"
},
"toc": {
"base_numbering": 1,
"nav_menu": {},
"number_sections": false,
"sideBar": false,
"skip_h1_title": false,
"title_cell": "Table of Contents",
"title_sidebar": "Contents",
"toc_cell": false,
"toc_position": {},
"toc_section_display": false,
"toc_window_display": false
}
},
"nbformat": 4,
"nbformat_minor": 4
}

Binary file not shown.