Zajecia 1.
This commit is contained in:
parent
7885030ca3
commit
6009d366e7
166
IUM_00.Organizacyjne.ipynb
Normal file
166
IUM_00.Organizacyjne.ipynb
Normal 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
246
IUM_01.Wprowadzenie.ipynb
Normal 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
|
||||
}
|
BIN
Sylabus-AITech-InzynieriaUczeniaMaszynowego.pdf
Normal file
BIN
Sylabus-AITech-InzynieriaUczeniaMaszynowego.pdf
Normal file
Binary file not shown.
Loading…
Reference in New Issue
Block a user