Wykład 1. Wprowadzenie

This commit is contained in:
Paweł Skórzewski 2022-10-07 10:12:07 +02:00
parent e754b8c519
commit 7f8d2f0c4c
3 changed files with 723 additions and 0 deletions

545
wyk/01_Wprowadzenie.ipynb Normal file
View File

@ -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": [
"<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": [
"* 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",
"> &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.4"
},
"livereveal": {
"start_slideshow_at": "selected",
"theme": "white"
}
},
"nbformat": 4,
"nbformat_minor": 4
}

BIN
wyk/venn-ai-ml-nn-dl-ds.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 79 KiB

178
wyk/venn-ai-ml-nn-dl-ds.svg Normal file
View File

@ -0,0 +1,178 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="800"
height="600"
viewBox="0 0 211.66667 158.75"
version="1.1"
id="svg8"
inkscape:version="0.92.3 (2405546, 2018-03-11)"
sodipodi:docname="venn-ai-ml-nn-dl-ds.svg"
inkscape:export-filename="/home/pawel/umz20/wyk/venn-ai-ml-nn-dl-ds.png"
inkscape:export-xdpi="96"
inkscape:export-ydpi="96">
<defs
id="defs2" />
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="1.25625"
inkscape:cx="105.87065"
inkscape:cy="298.80597"
inkscape:document-units="mm"
inkscape:current-layer="layer1"
showgrid="false"
units="px"
inkscape:window-width="1920"
inkscape:window-height="995"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1" />
<metadata
id="metadata5">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(0,-138.25001)">
<circle
style="opacity:1;fill:none;fill-opacity:1;stroke:#0000ff;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:fill markers stroke"
id="path815"
cx="105.83334"
cy="216.34158"
r="76.709419" />
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:4.23333311px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
x="105.76719"
y="156.21797"
id="text819"><tspan
sodipodi:role="line"
id="tspan817"
x="105.76719"
y="156.21797"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:5.64444447px;font-family:Arial;-inkscape-font-specification:Arial;text-align:center;text-anchor:middle;fill:#0000ff;stroke-width:0.26458332">SZTUCZNA INTELIGENCJA</tspan><tspan
sodipodi:role="line"
x="105.76719"
y="163.27353"
style="font-style:italic;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:5.64444447px;font-family:Arial;-inkscape-font-specification:Arial;text-align:center;text-anchor:middle;fill:#0000ff;stroke-width:0.26458332"
id="tspan856">(ARTIFICIAL INTELLIGENCE)</tspan></text>
<circle
style="opacity:1;fill:none;fill-opacity:1;stroke:#ff0000;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:fill markers stroke"
id="path815-3"
cy="227.69496"
cx="105.83334"
r="62.887901" />
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:4.23333311px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff0000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
x="105.77408"
y="180.74614"
id="text819-6"><tspan
sodipodi:role="line"
id="tspan817-7"
x="105.77408"
y="180.74614"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:5.64444447px;font-family:Arial;-inkscape-font-specification:Arial;text-align:center;text-anchor:middle;fill:#ff0000;stroke-width:0.26458332">UCZENIE MASZYNOWE</tspan><tspan
sodipodi:role="line"
x="105.77408"
y="187.8017"
style="font-style:italic;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:5.64444447px;font-family:Arial;-inkscape-font-specification:Arial;text-align:center;text-anchor:middle;fill:#ff0000;stroke-width:0.26458332"
id="tspan858">(MACHINE LEARNING)</tspan></text>
<circle
style="opacity:1;fill:none;fill-opacity:1;stroke:#008000;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:fill markers stroke"
id="path815-3-5"
r="48.474037"
cy="238.15984"
cx="105.83334" />
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:4.23333311px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#008000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
x="105.76719"
y="205.68544"
id="text819-6-3"><tspan
sodipodi:role="line"
id="tspan817-7-5"
x="105.76719"
y="205.68544"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:5.64444447px;font-family:Arial;-inkscape-font-specification:Arial;text-align:center;text-anchor:middle;fill:#008000;stroke-width:0.26458332">SIECI NEURONOWE</tspan><tspan
sodipodi:role="line"
x="105.76719"
y="212.741"
style="font-style:italic;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:5.64444447px;font-family:Arial;-inkscape-font-specification:Arial;text-align:center;text-anchor:middle;fill:#008000;stroke-width:0.26458332"
id="tspan858-6">(NEURAL NETWORKS)</tspan></text>
<circle
style="opacity:1;fill:none;fill-opacity:1;stroke:#ff00ff;stroke-width:1.05150509;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:fill markers stroke"
id="path815-3-5-2"
r="33.738243"
cy="248.52597"
cx="105.83334" />
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:4.23333311px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff00ff;fill-opacity:1;stroke:none;stroke-width:0.26458332"
x="105.77408"
y="238.65964"
id="text819-6-3-9"><tspan
sodipodi:role="line"
id="tspan817-7-5-1"
x="105.77408"
y="238.65964"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:5.64444447px;font-family:Arial;-inkscape-font-specification:Arial;text-align:center;text-anchor:middle;fill:#ff00ff;stroke-width:0.26458332">UCZENIE GŁĘBOKIE</tspan><tspan
sodipodi:role="line"
x="105.77408"
y="245.71519"
style="font-style:italic;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:5.64444447px;font-family:Arial;-inkscape-font-specification:Arial;text-align:center;text-anchor:middle;fill:#ff00ff;stroke-width:0.26458332"
id="tspan858-6-2">(DEEP LEARNING)</tspan></text>
<ellipse
style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:1.05150509;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:fill markers stroke"
id="path815-3-5-2-7"
cy="267.38251"
cx="165.4633"
rx="42.623505"
ry="27.024935" />
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:4.23333311px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
x="170.99191"
y="275.87283"
id="text959"><tspan
sodipodi:role="line"
id="tspan957"
x="170.99191"
y="279.61835"
style="stroke-width:0.26458332" /></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:4.23333311px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
x="180.80518"
y="278.14969"
id="text819-6-3-9-0"><tspan
sodipodi:role="line"
x="180.80518"
y="278.14969"
style="font-style:italic;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:5.64444447px;font-family:Arial;-inkscape-font-specification:Arial;text-align:center;text-anchor:middle;fill:#000000;stroke-width:0.26458332"
id="tspan858-6-2-3">DATA SCIENCE</tspan></text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 8.6 KiB