forked from pms/uczenie-maszynowe
556 lines
12 KiB
Plaintext
556 lines
12 KiB
Plaintext
{
|
||
"cells": [
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {
|
||
"slideshow": {
|
||
"slide_type": "slide"
|
||
}
|
||
},
|
||
"source": [
|
||
"### Uczenie maszynowe\n",
|
||
"# 1. Wprowadzenie"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {
|
||
"slideshow": {
|
||
"slide_type": "slide"
|
||
}
|
||
},
|
||
"source": [
|
||
"## 1.1. Czym jest uczenie maszynowe?"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {
|
||
"slideshow": {
|
||
"slide_type": "subslide"
|
||
}
|
||
},
|
||
"source": [
|
||
"### Sztuczna inteligencja (*artificial intelligence*)"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {
|
||
"slideshow": {
|
||
"slide_type": "fragment"
|
||
}
|
||
},
|
||
"source": [
|
||
"* Naśladowanie ludzkich procesów poznawczych za pomocą komputerów"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {
|
||
"slideshow": {
|
||
"slide_type": "fragment"
|
||
}
|
||
},
|
||
"source": [
|
||
"* Konstruowanie systemów (maszyn), których działanie podobne jest do przejawów ludzkiej inteligencji"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {
|
||
"slideshow": {
|
||
"slide_type": "fragment"
|
||
}
|
||
},
|
||
"source": [
|
||
"* Dziedzina nauki, która zajmuje się naśladowaniem ludzkiej inteligencji przez komputery"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {
|
||
"slideshow": {
|
||
"slide_type": "fragment"
|
||
}
|
||
},
|
||
"source": [
|
||
"* Obejmuje m.in. logikę rozmytą, algorytmy ewolucyjne, robotykę i uczenie maszynowe"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {
|
||
"slideshow": {
|
||
"slide_type": "subslide"
|
||
}
|
||
},
|
||
"source": [
|
||
"### Uczenie maszynowe (*machine learning*)"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {
|
||
"slideshow": {
|
||
"slide_type": "fragment"
|
||
}
|
||
},
|
||
"source": [
|
||
"* Tworzenie systemów, które potrafią doskonalić się przy pomocy zgromadzonego doświadczenia"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {
|
||
"slideshow": {
|
||
"slide_type": "subslide"
|
||
}
|
||
},
|
||
"source": [
|
||
"### Sieci neuronowe (neural networks)"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {
|
||
"slideshow": {
|
||
"slide_type": "fragment"
|
||
}
|
||
},
|
||
"source": [
|
||
"* Rodzaj struktur matematycznych, które wykonują obliczenia przy pomocy elementów zwanych _sztucznymi neuronami_"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {
|
||
"slideshow": {
|
||
"slide_type": "fragment"
|
||
}
|
||
},
|
||
"source": [
|
||
"* Budowa sieci neuronowych i zasady działania sztucznych neuronów były luźno inspirowane działaniem neuronów w mózgu"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {
|
||
"slideshow": {
|
||
"slide_type": "subslide"
|
||
}
|
||
},
|
||
"source": [
|
||
"### Uczenie głębokie (deep learning)"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {
|
||
"slideshow": {
|
||
"slide_type": "fragment"
|
||
}
|
||
},
|
||
"source": [
|
||
"* Użycie sieci neuronowych do automatycznego wydobywania cech z surowych danych"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {
|
||
"slideshow": {
|
||
"slide_type": "subslide"
|
||
}
|
||
},
|
||
"source": [
|
||
"### Data science"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {
|
||
"slideshow": {
|
||
"slide_type": "fragment"
|
||
}
|
||
},
|
||
"source": [
|
||
"* Dziedzina nauki zajmująca się przetwarzaniem danych w celu wydobycia z nich wiedzy"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {
|
||
"slideshow": {
|
||
"slide_type": "subslide"
|
||
}
|
||
},
|
||
"source": [
|
||
"<img style=\"margin: auto\" src=\"venn-ai-ml-nn-dl-ds.png\"/>"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {
|
||
"slideshow": {
|
||
"slide_type": "slide"
|
||
}
|
||
},
|
||
"source": [
|
||
"### Uczenie maszynowe – klasyczne definicje"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {
|
||
"slideshow": {
|
||
"slide_type": "subslide"
|
||
}
|
||
},
|
||
"source": [
|
||
"<img style=\"float: right;\" src=\"https://upload.wikimedia.org/wikipedia/commons/f/f8/This_is_the_photo_of_Arthur_Samuel.jpg\"/>\n",
|
||
"\n",
|
||
"> Uczenie maszynowe to dziedzina nauki,\n",
|
||
"> która daje komputerom umiejętność uczenia się\n",
|
||
"> bez programowania ich _explicite_.\n",
|
||
"\n",
|
||
"> — <cite>Arthur Samuel, 1959</cite>"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {
|
||
"slideshow": {
|
||
"slide_type": "subslide"
|
||
}
|
||
},
|
||
"source": [
|
||
"<img style=\"float: right;\" width=\"20%\" src=\"http://mediad.publicbroadcasting.net/p/wamc/files/styles/x_large/public/201401/tom_mitchell.jpg\"/>\n",
|
||
"\n",
|
||
"> Mówimy, że program komputerowy **uczy się**\n",
|
||
"> z doświadczenia E w odniesieniu do zadania T i miary skuteczności P,\n",
|
||
"> jeżeli jego skuteczność wykonywania zadania T mierzona według P\n",
|
||
"> wzrasta z doświadczeniem E.\n",
|
||
"\n",
|
||
"> — <cite>Tom Mitchell, 1998</cite>"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {
|
||
"slideshow": {
|
||
"slide_type": "subslide"
|
||
}
|
||
},
|
||
"source": [
|
||
"Uczenie maszynowe to:\n",
|
||
"\n",
|
||
"* doskonalenie działania dla pewnych zadań na podstawie doświadczenia"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {
|
||
"slideshow": {
|
||
"slide_type": "fragment"
|
||
}
|
||
},
|
||
"source": [
|
||
"* tworzenie systemów, które doskonalą swoje działania na podstawie przeszłych doświadczeń"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {
|
||
"slideshow": {
|
||
"slide_type": "fragment"
|
||
}
|
||
},
|
||
"source": [
|
||
"* zestaw metod, które potrafią w sposób automatyczny wykrywać wzorce w danych, a następnie używać wcześniej niezaobserwowanych wzorców do przewidywania przyszłych zjawisk"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {
|
||
"slideshow": {
|
||
"slide_type": "subslide"
|
||
}
|
||
},
|
||
"source": [
|
||
"Charakterystyczne cechy uczenia maszynowego:\n",
|
||
"\n",
|
||
"* „automatyzacja automatyzacji”\n",
|
||
"* komputer „sam się programuje”\n",
|
||
"* modelowanie danych zastępuje pisanie programu"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {
|
||
"slideshow": {
|
||
"slide_type": "notes"
|
||
}
|
||
},
|
||
"source": [
|
||
"Na czym polega uczenie maszynowe?\n",
|
||
" * Jak uczą się maszyny? https://www.youtube.com/watch?v=R9OHn5ZF4Uo\n",
|
||
" * Jak sztuczna inteligencja tworzy obrazy na podstawie opisów? https://www.youtube.com/watch?v=SVcsDDABEkM"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {
|
||
"slideshow": {
|
||
"slide_type": "slide"
|
||
}
|
||
},
|
||
"source": [
|
||
"## 1.2. Zastosowania uczenia maszynowego"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {
|
||
"slideshow": {
|
||
"slide_type": "subslide"
|
||
}
|
||
},
|
||
"source": [
|
||
"* rozpoznawanie i rozumienie mowy\n",
|
||
"* rozpoznawanie obrazów\n",
|
||
"* tłumaczenie maszynowe\n",
|
||
"* systemy rekomendacyjne\n",
|
||
"* detekcja spamu\n",
|
||
"* klasyfikacja dokumentów/obrazów\n",
|
||
"* analiza nastrojów\n",
|
||
"* rozpoznawanie pisma odręcznego\n",
|
||
"* samochody autonomiczne\n",
|
||
"* przewidywanie kursów giełdowych\n",
|
||
"* automatyczna diagnostyka medyczna\n",
|
||
"* analiza genów\n",
|
||
"* sztuczna inteligencja w grach"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {
|
||
"slideshow": {
|
||
"slide_type": "slide"
|
||
}
|
||
},
|
||
"source": [
|
||
"### Co potrafi uczenie maszynowe?"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {
|
||
"slideshow": {
|
||
"slide_type": "subslide"
|
||
}
|
||
},
|
||
"source": [
|
||
"* Tekst → obraz: https://labs.openai.com\n",
|
||
"* Tekst → wideo: https://make-a-video.github.io\n",
|
||
"* Generowanie obrazów twarzy: https://thispersondoesnotexist.com\n",
|
||
"* Generowanie obrazów kotów: https://thiscatdoesnotexist.com\n",
|
||
"* Zdanie → artykuł: https://blog.openai.com/better-language-models\n",
|
||
"* Rysunek odręczny → zdjęcie: https://affinelayer.com/pixsrv\n",
|
||
"* Film, którego scenariusz napisała sztuczna inteligencja: https://www.youtube.com/watch?v=Kx-2PyrhnFE\n",
|
||
"* Piosenka w całości wygenerowana przez AI (muzyka i słowa): https://www.youtube.com/watch?v=fN-bQddbbUI"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {
|
||
"slideshow": {
|
||
"slide_type": "subslide"
|
||
}
|
||
},
|
||
"source": [
|
||
"* Kanał YouTube \"Two-Minute Papers\" - krótkie prezentacje najnowszych artykułów naukowych z dziedziny sztucznej inteligencji: https://www.youtube.com/c/K%C3%A1rolyZsolnai\n",
|
||
" * AI uczy się grać w chowanego: https://www.youtube.com/watch?v=Lu56xVlZ40M\n",
|
||
" * Generowanie twarzy: https://www.youtube.com/watch?v=SWoravHhsUU\n",
|
||
" * Robot uczy się składać obiekty, których wcześniej nie widział: https://www.youtube.com/watch?v=O8l4Kn-j-5M\n",
|
||
" * \"Ożywianie\" dzieł sztuki: https://www.youtube.com/watch?v=4J0cpdR7qec"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {
|
||
"slideshow": {
|
||
"slide_type": "slide"
|
||
}
|
||
},
|
||
"source": [
|
||
"## 1.3. Metody uczenia maszynowego"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {
|
||
"slideshow": {
|
||
"slide_type": "subslide"
|
||
}
|
||
},
|
||
"source": [
|
||
"### Z jakimi rodzajami zadań mamy do czynienia?\n",
|
||
"\n",
|
||
"* Uczenie nadzorowane\n",
|
||
" * Regresja\n",
|
||
" * Klasyfikacja\n",
|
||
"* Uczenie nienadzorowane\n",
|
||
" * Klastrowanie\n",
|
||
"* Uczenie przez wzmacnianie\n",
|
||
"* Systemy rekomendacyjne"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {
|
||
"slideshow": {
|
||
"slide_type": "subslide"
|
||
}
|
||
},
|
||
"source": [
|
||
"### Klasyfikator\n",
|
||
"\n",
|
||
"* Klasyfikator to funkcja $h$, która przykładowi $x$ przyporządkowuje prognozowaną wartość $h(x)$.\n",
|
||
"* Jeżeli funkcja $h$ jest ciągła, to mówimy o zagadnieniu **regresji**.\n",
|
||
"* Jeżeli funkcja $h$ jest dyskretna, to mówimy o zagadnieniu **klasyfikacji**."
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {
|
||
"slideshow": {
|
||
"slide_type": "subslide"
|
||
}
|
||
},
|
||
"source": [
|
||
"### Algorytm uczący\n",
|
||
"\n",
|
||
"* Dane są przykładowe obserwacje $(X, y)$.\n",
|
||
"* Staramy się dobrać funkcję (klasyfikator) $h$ tak, żeby $h(x) \\sim y$."
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {
|
||
"slideshow": {
|
||
"slide_type": "fragment"
|
||
}
|
||
},
|
||
"source": [
|
||
"W jaki sposób można określić, czy klasyfikator jest „dobry”?"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {
|
||
"slideshow": {
|
||
"slide_type": "subslide"
|
||
}
|
||
},
|
||
"source": [
|
||
"### Podział metod uczenia maszynowego\n",
|
||
"\n",
|
||
"> \\[Każdy algorytm uczenia maszynowego\\] stanowi kombinację dokładnie trzech składników.\n",
|
||
"> Te składniki to:\n",
|
||
"> * reprezentacja\n",
|
||
"> * ewaluacja\n",
|
||
"> * optymalizacja\n",
|
||
"\n",
|
||
"> — Pedro Domingos, “A Few Useful Things to Know about Machine Learning”"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {
|
||
"slideshow": {
|
||
"slide_type": "subslide"
|
||
}
|
||
},
|
||
"source": [
|
||
"### Reprezentacja\n",
|
||
"\n",
|
||
"* drzewa decyzyjne\n",
|
||
"* regresja liniowa\n",
|
||
"* regresja logistyczna\n",
|
||
"* naiwny klasyfikator bayesowski\n",
|
||
"* algorytm $k$ najbliższych sąsiadów\n",
|
||
"* sieci neuronowe\n",
|
||
"* maszyny wektorów nośnych\n",
|
||
"* algorytmy genetyczne\n",
|
||
"* ..."
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {
|
||
"slideshow": {
|
||
"slide_type": "subslide"
|
||
}
|
||
},
|
||
"source": [
|
||
"### Ewaluacja\n",
|
||
"\n",
|
||
"* skuteczność (dokładność)\n",
|
||
"* precyzja i pokrycie\n",
|
||
"* błąd średniokwadratowy\n",
|
||
"* _information gain_\n",
|
||
"* _logistic loss_\n",
|
||
"* BLEU\n",
|
||
"* ..."
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {
|
||
"slideshow": {
|
||
"slide_type": "subslide"
|
||
}
|
||
},
|
||
"source": [
|
||
"### Optymalizacja\n",
|
||
"\n",
|
||
"* optymalizacja kombinatoryczna:\n",
|
||
" * wyszukiwanie zachłanne,\n",
|
||
" * _beam search_...\n",
|
||
"* optymalizacja ciągła:\n",
|
||
" * nieograniczona:\n",
|
||
" * metoda gradientu prostego,\n",
|
||
" * metoda Newtona...\n",
|
||
" * ograniczona:\n",
|
||
" * programowanie liniowe..."
|
||
]
|
||
}
|
||
],
|
||
"metadata": {
|
||
"celltoolbar": "Slideshow",
|
||
"kernelspec": {
|
||
"display_name": "Python 3 (ipykernel)",
|
||
"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.10.6"
|
||
},
|
||
"livereveal": {
|
||
"start_slideshow_at": "selected",
|
||
"theme": "white"
|
||
}
|
||
},
|
||
"nbformat": 4,
|
||
"nbformat_minor": 4
|
||
}
|