forked from tzietkiewicz/aitech-ium
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