{
"cells": [
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"## Uczenie maszynowe – zastosowania\n",
"# 9. Sieci neuronowe – wprowadzenie"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"slideshow": {
"slide_type": "notes"
}
},
"outputs": [],
"source": [
"# Przydatne importy\n",
"\n",
"import matplotlib\n",
"import matplotlib.pyplot as plt\n",
"import numpy as np\n",
"\n",
"%matplotlib inline"
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"## 9.1. Perceptron"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"slideshow": {
"slide_type": "subslide"
}
},
"outputs": [
{
"data": {
"image/jpeg": "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\n",
"text/html": [
"\n",
" \n",
" "
],
"text/plain": [
""
]
},
"execution_count": 2,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"from IPython.display import YouTubeVideo\n",
"YouTubeVideo('cNxadbrN_aI', width=800, height=600)"
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "subslide"
}
},
"source": [
""
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "subslide"
}
},
"source": [
""
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "subslide"
}
},
"source": [
""
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "subslide"
}
},
"source": [
"### Pierwszy perceptron liniowy\n",
"\n",
"* Frank Rosenblatt, 1957\n",
"* aparat fotograficzny podłączony do 400 fotokomórek (rozdzielczość obrazu: 20 x 20)\n",
"* wagi – potencjometry aktualizowane za pomocą silniczków"
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "subslide"
}
},
"source": [
"### Uczenie perceptronu\n",
"\n",
"Cykl uczenia perceptronu Rosenblatta:\n",
"\n",
"1. Sfotografuj planszę z kolejnym obiektem.\n",
"1. Zaobserwuj, która lampka zapaliła się na wyjściu.\n",
"1. Sprawdź, czy to jest właściwa lampka.\n",
"1. Wyślij sygnał „nagrody” lub „kary”."
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "subslide"
}
},
"source": [
"### Funkcja aktywacji\n",
"\n",
"Funkcja bipolarna:\n",
"\n",
"$$ g(z) = \\left\\{ \n",
"\\begin{array}{rl}\n",
"1 & \\textrm{gdy $z > \\theta_0$} \\\\\n",
"-1 & \\textrm{wpp.}\n",
"\\end{array}\n",
"\\right. $$\n",
"\n",
"gdzie $z = \\theta_0x_0 + \\ldots + \\theta_nx_n$,
\n",
"$\\theta_0$ to próg aktywacji,
\n",
"$x_0 = 1$. "
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"slideshow": {
"slide_type": "notes"
}
},
"outputs": [],
"source": [
"def bipolar_plot():\n",
" matplotlib.rcParams.update({'font.size': 16})\n",
"\n",
" plt.figure(figsize=(8,5))\n",
" x = [-1,-.23,1] \n",
" y = [-1, -1, 1]\n",
" plt.ylim(-1.2,1.2)\n",
" plt.xlim(-1.2,1.2)\n",
" plt.plot([-2,2],[1,1], color='black', ls=\"dashed\")\n",
" plt.plot([-2,2],[-1,-1], color='black', ls=\"dashed\")\n",
" plt.step(x, y, lw=3)\n",
" ax = plt.gca()\n",
" ax.spines['right'].set_color('none')\n",
" ax.spines['top'].set_color('none')\n",
" ax.xaxis.set_ticks_position('bottom')\n",
" ax.spines['bottom'].set_position(('data',0))\n",
" ax.yaxis.set_ticks_position('left')\n",
" ax.spines['left'].set_position(('data',0))\n",
"\n",
" plt.annotate(r'$\\theta_0$',\n",
" xy=(-.23,0), xycoords='data',\n",
" xytext=(-50, +50), textcoords='offset points', fontsize=26,\n",
" arrowprops=dict(arrowstyle=\"->\"))\n",
"\n",
" plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"slideshow": {
"slide_type": "subslide"
}
},
"outputs": [
{
"data": {
"image/png": "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TLiU+fPn67PPPtPbb7/t7FIANDMEJlyKl5eXli9frunTp+unn35ydjkAmhECEy7nzjvv1JAhQ/TEE084uxQAzQiBCZe0bNkyrV27Vv/5z3+cXQqAZoLAhEvq3LmzlixZoilTpqisrMzZ5QBoBghMuKw//vGPatGihVauXOnsUgA0AwQmXFaLFi30yiuvaMGCBTp16pSzywHQxBGYcGk33XSTHnjgAc2cOdPZpQBo4ghMuLzHH39cBw4c0DvvvGPXt3r1amVkZDihKgBNDYEJl9eqVSu9/PLLmjp1qi5evGjTl5+fr48++shJlQFoSghMNAnDhw9XSEiInn76aZv2zp078/kmgHpBYKLJeOmll7RixQp9/vnn1rZrr71W3377rROrAtBUEJhoMrp27arHH39cDz/8sAzDkHQlMDnDBFAfCEy4rLNnz+rw4cM2bdOmTdNPP/2kN954QxJvyQKoPwQmXFZ+fr5uu+02zZo1Sz/++KMkqWXLlkpOTtbcuXN19uxZ3pIFUG8ITLis0NBQffbZZzp79qz69OmjLVu2yDAM9evXTzExMXr00Ud1zTXX6PLlyyosLHR2uQBcHIEJl9apUyetWbNG69ev14IFCzRixAjl5+dr8eLFeuedd7R//3517tyZs0wAdUZgokkICwtTdna2brvtNoWGhurll1/W888/r8mTJ9fpc8wTJ05o9OjRatOmja655hqNGjVKX331lamxRUVFmjNnjrp06SJvb28NHDhQ7733Xq3qAOB8BCaaDA8PD82fP19ZWVn64IMP9OSTT6pNmzb64YcfanWGWVhYqPDwcH3xxRdau3at1q1bpyNHjuiOO+7QhQsXqh3/4IMPatWqVXryySe1bds2denSRb/73e+UnZ1dm6cHwMncnF0AUN8CAgK0bds2bd26VY888oi++eYbHTp0SFLfGj3OqlWrdOzYMeXl5alnz56SpJtvvlm9evVScnJylevX/uc//9HGjRv12muvaeLEiZKunAUHBQXp8ccfV3p6eq2fHwDn4AwTTZLFYtGoUaOUl5en4cOHy8vLq8aPkZ6ergEDBljDUroSxoMHD1ZaWlq1Y93d3RUTE2Ntc3Nz09ixY7V7924VFxfXuB4AzkVgoknz9fXV22+/rTlz5tR4bE5OjoKDg+3ag4KClJubW+3YgIAA+fj42I29dOmSjh49WuN6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97//bXh5eRm///3vjYyMDGP16tVGu3btjNGjRzf003Apc+fONTw9PY1ly5YZe/fuNaZMmWJYLBYjPT3dZrvw8HCjR48e1vsFBQXGkCFDjL///e/G7t27jfT0dGPixImGxWIxpkyZ0tBPw46zr8P86aefjB49ehjBwcHGW2+9ZaSlpRk333yzERAQYPz444/W7QoKCgxJxhNPPGEzPiYmxmjbtq2xatUqIyMjw7j33nsNT09PrimuQk32ecuWLW32+fPPP2/88Y9/NDZs2GDs3bvXWLNmjREcHGy4u7sb7733njOejssoP0ZPmTLFkGQsX77cSE1NNTIzM63btGzZ0njggQdsxpk99jSACjOx0QfmhAkTDF1Z09bu9vOLYcu3u9q+ffuMAQMGGJ6enkanTp2MP//5zzZBC3slJSXG4sWLje7duxseHh7GTTfdZKSmptptFxYWZlx//fXW+2fPnjWioqKM7t27G56enoaXl5fxq1/9yvjb3/5mczGzszg7MA3DMI4fP26MGjXKaN26teHr62tERUXZXdSdn59f4SIdhYWFxowZM4zOnTsbnp6exq233mrs3bu3wWp3VbXd5+np6cagQYOM9u3bG25uboafn58RGRlp/POf/2zYJ+CCKjtmh4WF2WwzYcIEm3Fmjz0NoMJMZPF1NBssvg7AJNdcfB0AgMaAwAQAwAQCEwAAEwhMAABMIDABADCBwAQAwAQCEwAAEwhMAABMIDABADCBwAQAwAQCEwAAEwhMAABMIDABADCBwAQAwAQCEwAAEwhMAABMIDABADCBwAQAwAQCEwAAEwhMAABMIDABADCBwAQAwAQCEwAAEwhMAABMIDABADCBwAQAwAQCEwAAEwhMAABMIDABADCBwAQAwAQCEwAAEwhMoBJlZWVKTEyUv7+/vLy8dMstt2jLli2mxsbFxclisdjd4uPjHVw1AEdxc3YBQGO1YMECLV26VE899ZT69eunN998U2PGjNG2bds0bNiwasd37NhR6enpNm1dunRxVLkAHIzABCpw+vRpLV26VPPmzdPs2bMlSXfccYeOHj2qefPmmQpMDw8PDRgwwNGlAmggvCULVGD37t26dOmSYmNjbdpjY2N16NAh5efnO6kyAM5CYAIVyMnJkaenp3r27GnTHhQUJEnKzc2t9jFOnz6tDh06yM3NTYGBgXr22WdV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\n",
"text/plain": [
"