uczenie-maszynowe/wyk/01_Wprowadzenie.ipynb
2023-11-09 17:46:13 +01:00

556 lines
12 KiB
Plaintext
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{
"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",
"> &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"
]
},
{
"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",
"> &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",
"version": "3.10.12"
},
"livereveal": {
"start_slideshow_at": "selected",
"theme": "white"
}
},
"nbformat": 4,
"nbformat_minor": 4
}