{ "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": [ "" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "### Uczenie maszynowe – klasyczne definicje" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "\n", "\n", "> Uczenie maszynowe to dziedzina nauki,\n", "> która daje komputerom umiejętność uczenia się\n", "> bez programowania ich _explicite_.\n", "\n", "> — Arthur Samuel, 1959" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "\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", "> — Tom Mitchell, 1998" ] }, { "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.4" }, "livereveal": { "start_slideshow_at": "selected", "theme": "white" } }, "nbformat": 4, "nbformat_minor": 4 }