uczenie-maszynowe/wyk/01_Wprowadzenie.ipynb

556 lines
12 KiB
Plaintext
Raw Normal View History

2022-10-07 10:12:07 +02:00
{
"cells": [
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [
2022-10-07 10:26:52 +02:00
"### Uczenie maszynowe\n",
2022-10-07 10:12:07 +02:00
"# 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",
"> &mdash; <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",
"> &mdash; <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"
]
},
2022-10-07 10:26:52 +02:00
{
"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"
]
},
2022-10-07 10:12:07 +02:00
{
"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",
"> &mdash; 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",
2023-11-09 17:46:13 +01:00
"version": "3.10.12"
2022-10-07 10:12:07 +02:00
},
"livereveal": {
"start_slideshow_at": "selected",
"theme": "white"
}
},
"nbformat": 4,
"nbformat_minor": 4
}