diff --git a/wyk/01_Wprowadzenie.ipynb b/wyk/01_Wprowadzenie.ipynb new file mode 100644 index 0000000..fdb1018 --- /dev/null +++ b/wyk/01_Wprowadzenie.ipynb @@ -0,0 +1,545 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "### AITech — 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": [ + "* 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\n", + "* 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": "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 +} diff --git a/wyk/venn-ai-ml-nn-dl-ds.png b/wyk/venn-ai-ml-nn-dl-ds.png new file mode 100644 index 0000000..c4f645f Binary files /dev/null and b/wyk/venn-ai-ml-nn-dl-ds.png differ diff --git a/wyk/venn-ai-ml-nn-dl-ds.svg b/wyk/venn-ai-ml-nn-dl-ds.svg new file mode 100644 index 0000000..eeb4923 --- /dev/null +++ b/wyk/venn-ai-ml-nn-dl-ds.svg @@ -0,0 +1,178 @@ + + + + + + + + + + image/svg+xml + + + + + + + + SZTUCZNA INTELIGENCJA(ARTIFICIAL INTELLIGENCE) + + UCZENIE MASZYNOWE(MACHINE LEARNING) + + SIECI NEURONOWE(NEURAL NETWORKS) + + UCZENIE GŁĘBOKIE(DEEP LEARNING) + + + DATA SCIENCE + +