{ "cells": [ { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "Sveučilište u Zagrebu
\n", "Fakultet elektrotehnike i računarstva\n", "\n", "# Strojno učenje\n", "\n", "http://www.fer.unizg.hr/predmet/su\n", "\n", "Ak. god. 2015./2016.\n", "\n", "# Bilježnica 6: Linearni diskriminativni modeli\n", "\n", "(c) 2015 Jan Šnajder\n", "\n", "Verzija: 0.1 (2015-11-11)" ] }, { "cell_type": "code", "execution_count": 188, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Populating the interactive namespace from numpy and matplotlib\n" ] } ], "source": [ "import scipy as sp\n", "import scipy.stats as stats\n", "import matplotlib.pyplot as plt\n", "import pandas as pd\n", "%pylab inline" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Sadržaj:\n", "\n", "* Uvod\n", "\n", "* Poopćeni linearni model\n", "\n", "* Geometrija linearnog modela\n", "\n", "* Višeklasna klasifikacija\n", "\n", "* Klasifikacija regresijom\n", "\n", "* Gradijentni spust\n", "\n", "* Perceptron\n", "\n", "* Sažetak" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Uvod\n", "\n", "* **Diskriminativni modeli:** Za razliku od generativnih modela, koji modeliraju\n", "$\n", "P(\\mathcal{C}_j|\\mathbf{x})\\ \\propto\\ P(\\mathbf{x}|\\mathcal{C}_j) P(\\mathcal{C}_j)\n", "$, \n", "modeliramo:\n", " * izravno aposteriornu vjerojatnost klase, $P(\\mathcal{C}_j|\\mathbf{x})$, ili\n", " * izravno *diskriminacijsku* (klasifikacijsku) funkciju $h(\\mathbf{x})$\n", " \n", " \n", "* **Linearan modeli:** Granica je linearna (hiperravnina):\n", " \n", "$$\n", "h(\\mathbf{x}) = \\mathbf{w}^\\intercal\\tilde{\\mathbf{x}}\n", "$$\n", "\n", "\n", "* Model je linearan u značajkama $\\mathbf{x}$ $\\Rightarrow$ to daje linearnu granica u ulaznom\n", "prostoru\n", "\n", "\n", "* Granica je hiperravnina za koju $h(\\mathbf{x})=0$ ili $h(\\mathbf{x})=0.5$ (ovisno o modelu)\n", "\n", "\n", "* Granicu zovemo **diskriminativna funkcija** (engl. *discriminative functions*) ili **granica odluke**, **decizijska granica** (engl. *decision boundary*)" ] }, { "cell_type": "code", "execution_count": 189, "metadata": { "collapsed": true }, "outputs": [], "source": [ "def h(x, w): return sp.dot(x, w)" ] }, { "cell_type": "code", "execution_count": 190, "metadata": { "collapsed": false }, "outputs": [], "source": [ "def plot_decision_boundary(h, boundary=0, margins=None):\n", " x = linspace(-10, 10)\n", " y = linspace(-10, 10)\n", " X1, X2 = np.meshgrid(x, y)\n", " XX = sp.dstack((sp.ones((50, 50)), X1, X2))\n", " plt.contour(X1, X2, h(XX), linecolor='red', levels=[boundary])\n", " if margins!=None:\n", " CS = plt.contour(X1, X2, h(XX), colors=['gray', 'gray'], levels=[margins[0],margins[1]])\n", " plt.clabel(CS, fontsize=9, inline=1)" ] }, { "cell_type": "code", "execution_count": 191, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "w = [-2, 1, -0.5]\n", "plot_decision_boundary(lambda x : h(x, w), margins=(-1,1))" ] }, { "cell_type": "code", "execution_count": 112, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\nyANAAfv/3+qHHk2J/QsAAAAASUVORK5CYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "w = [2, -1, 0.5]\n", "plot_decision_boundary(lambda x : h(x, w), margins=(-1,1))" ] }, { "cell_type": "code", "execution_count": 115, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "w = [2, -1.5, 0.3]\n", "plot_decision_boundary(lambda x : h(x, w), margins=(-1,1))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Poopćeni linearan model\n", "\n", "* **Aktivacijska funkcija:** nelinearna funkcija \n", "$$\n", "f:\\mathbb{R}\\to[0,1]\n", "$$ \n", "ili\n", "$$\n", "f:\\mathbb{R}\\to[-1,1]\n", "$$\n", "\n", "\n", "* Poopćeni linearan model (engl. *generalized linear model*, GLM):\n", "\n", "$$\n", " h(\\mathbf{x}) = \\color{red}{f\\big(}\\mathbf{w}^\\intercal\\tilde{\\mathbf{x}}\\color{red}{\\big)}\n", "$$\n", "\n", "$\\Rightarrow$ **Linearna granica** u ulaznom prostoru (premda je $f$ nelinearna)\n", "\n", "$\\Rightarrow$ Model je **nelinearan u parametrima** (jer je $f$ nelinearna)\n", "\n", "* Tipične funkcije preslikavanja:\n", " * Funkcija identiteta (tj. kao da nema preslikavanja)\n", " * Sigmoidalna (logistička) funkcija\n", " * Funkcija skoka (step-funkcija)" ] }, { "cell_type": "code", "execution_count": 32, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "xs = sp.linspace(-5,5, 100)\n", "plt.plot(xs, xs);" ] }, { "cell_type": "code", "execution_count": 33, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "def sigm(x): return 1 / (1 + sp.exp(-x))\n", "\n", "plt.plot(xs, sigm(xs));" ] }, { "cell_type": "code", "execution_count": 34, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\nkvt/W3maWweKfe0AAAAASUVORK5CYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.plot(xs, sign(xs));" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "* Odabir funkcije $f$ nema utjecaja na linearnost granice, budući da će, očigledno, funkcija $f$ za iste ulazne vrijednosti $\\mathbf{w}^\\intercal\\mathbf{x}$ davati iste vrijednosti $f(\\mathbf{w}^\\intercal\\mathbf{x})$" ] }, { "cell_type": "code", "execution_count": 192, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "w = [-4, 2, -1]\n", "plot_decision_boundary(lambda x : h(x, w), margins=(-1,1))" ] }, { "cell_type": "code", "execution_count": 193, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\nAABJRU5ErkJggg==\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plot_decision_boundary(lambda x : sigm(sp.dot(x, w)), boundary=0.5, margins=(0.1,0.9))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Kao i kod regresije, možemo koristiti preslikavanje\n", " $\\boldsymbol{\\phi}:\\mathbb{R}^n\\to\\mathbb{R}^m$ iz ulaznog\n", "prostora u prostor značajki:\n", "\n", "$$\n", " h(\\mathbf{x}) = f\\big(\\mathbf{w}^\\intercal\\mathbf{\\phi}(\\mathbf{x})\\big)\n", "$$\n", "\n", "$\\Rightarrow$ Linearna granica u prostoru značajki\n", "\n", "$\\Rightarrow$ **Nelinearna granica** u ulaznom\n", "prostoru\n", "\n", "$\\Rightarrow$ Model je **nelinearan u parametrima** (jer je $f$ nelinearna)\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Primjer:\n", "\n", "* Preslikavanje iz dvodimenzijskog ulaznog prostora u 5-dimenzijski prostor značajki\n", "\n", "$$\n", "\\boldsymbol{\\phi}(\\mathbf{x}) = (1,x_1,x_2,x_1 x_2, x_1^2, x_2^2)\n", "$$" ] }, { "cell_type": "code", "execution_count": 194, "metadata": { "collapsed": false }, "outputs": [], "source": [ "def h2(x, w): \n", " x2 = sp.dstack((x, x[:,:,1]*x[:,:,2], x[:,:,1]**2, x[:,:,2]**2))\n", " return sp.dot(x2, w)" ] }, { "cell_type": "code", "execution_count": 121, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\nmIO8mVkd+w9EqXHNNyOumwAAAABJRU5ErkJggg==\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "w = [-0.05 , -0.15 , -0.5 , 0.15 , -0.08 , 0.05]\n", "plot_decision_boundary(lambda x : h2(x, w), margins=[-1, 1])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Geometrija linearnog modela" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "* [Skica]\n", "\n", "\n", "* Za točke $\\mathbf{x}_1$ i $\\mathbf{x}_2$ na hiperravnini:\n", "$$\n", "h(\\mathbf{x}_1)=h(\\mathbf{x}_2)=0\\quad \\Rightarrow\\quad \\mathbf{w}^\\intercal(\\mathbf{x}_1-\\mathbf{x}_2) = 0\n", "$$\n", "$\\Rightarrow$ $\\mathbf{w}$ je normala hiperravnine\n", "\n", "\n", "* **NB:** U iduće dvije točke $\\mathbf{w}$ ne uključuje $w_0$\n", "\n", "\n", "* Za točku $\\mathbf{x}$ na hiperravnini:\n", "$$\n", "\\mathbf{w}^\\intercal\\mathbf{x} + w_0 = 0 \\quad\\Rightarrow\\quad\n", "\\frac{\\mathbf{w}^\\intercal\\mathbf{x}}{\\|\\mathbf{w}\\|}=-\\frac{w_0}{\\|\\mathbf{w}\\|}\n", "$$\n", "$\\Rightarrow$ udaljenost ravnine od ishodišta je $-w_0/\\|\\mathbf{w}\\|$\n", "\n", "\n", "* Za točku $\\mathbf{x}$ izvan hiperravnine:\n", "$$\n", "\\begin{align*}\n", "\\mathbf{x} &= \\mathbf{x}_{\\bot} + d\\frac{\\mathbf{w}}{\\|\\mathbf{w}\\|}\\\\\n", "\\mathbf{w}^\\intercal\\mathbf{x} + w_0 &= \\mathbf{w}^\\intercal\\mathbf{x}_{\\bot} + w_0 + d \\frac{\\mathbf{w}^\\intercal\\mathbf{w}}{\\|\\mathbf{w}\\|}\\\\\n", "h(\\mathbf{x}) &= d \\|\\mathbf{w}\\|\n", "\\end{align*}\n", "$$\n", "\n", "$\\Rightarrow$ udaljenost točke $\\mathbf{x}$ od ravnine je $d=h(\\mathbf{x})/\\|\\mathbf{w}\\|$\n", " * $h(\\mathbf{x}) > 0\\ \\Rightarrow\\ $ $\\mathbf{x}$ je na strani hiperravnine u smjeru normale $\\mathbf{w}$\n", " * $h(\\mathbf{x}) < 0\\ \\Rightarrow\\ $ $\\mathbf{x}$ je na suprotnoj strani hiperravnine\n", " * $h(\\mathbf{x}) = 0\\ \\Rightarrow\\ $ $\\mathbf{x}$ je na hiperravnini" ] }, { "cell_type": "code", "execution_count": 122, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "w = sp.array([-4, 2, -1])\n", "X = sp.array([[1, 5, -1],\n", " [1, -5, 5]])\n", "\n", "plot_decision_boundary(lambda x : h(x, w), margins=(-1, 1))\n", "plt.scatter(X[:,1],X[:,2]);" ] }, { "cell_type": "code", "execution_count": 78, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "7" ] }, "execution_count": 78, "metadata": {}, "output_type": "execute_result" } ], "source": [ "h(X[0], w)" ] }, { "cell_type": "code", "execution_count": 82, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "-19" ] }, "execution_count": 82, "metadata": {}, "output_type": "execute_result" } ], "source": [ "h(X[1], w)" ] }, { "cell_type": "code", "execution_count": 176, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "2.2360679774997898" ] }, "execution_count": 176, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sp.linalg.norm(w[1:])" ] }, { "cell_type": "code", "execution_count": 195, "metadata": { "collapsed": false }, "outputs": [], "source": [ "def distance(x,w): return sp.dot(x, w) / sp.linalg.norm(w[1:])" ] }, { "cell_type": "code", "execution_count": 196, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "3.1304951684997055" ] }, "execution_count": 196, "metadata": {}, "output_type": "execute_result" } ], "source": [ "distance(X[0], w)" ] }, { "cell_type": "code", "execution_count": 180, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "-8.4970583144992009" ] }, "execution_count": 180, "metadata": {}, "output_type": "execute_result" } ], "source": [ "distance(X[1], w)" ] }, { "cell_type": "code", "execution_count": 181, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\nMgDWdk2QaQAAAABJRU5ErkJggg==\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "w2 = w/10.0\n", "\n", "plot_decision_boundary(lambda x : h(x, w2), margins=(-1,1))\n", "plt.scatter(X[:,1],X[:,2]);" ] }, { "cell_type": "code", "execution_count": 182, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "0.69999999999999996" ] }, "execution_count": 182, "metadata": {}, "output_type": "execute_result" } ], "source": [ "h(X[0], w2)" ] }, { "cell_type": "code", "execution_count": 183, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "-1.8999999999999999" ] }, "execution_count": 183, "metadata": {}, "output_type": "execute_result" } ], "source": [ "h(X[1], w2)" ] }, { "cell_type": "code", "execution_count": 185, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "0.223606797749979" ] }, "execution_count": 185, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sp.linalg.norm(w2[1:])" ] }, { "cell_type": "code", "execution_count": 186, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "3.1304951684997051" ] }, "execution_count": 186, "metadata": {}, "output_type": "execute_result" } ], "source": [ "distance(X[0], w2)" ] }, { "cell_type": "code", "execution_count": 187, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "-8.4970583144991991" ] }, "execution_count": 187, "metadata": {}, "output_type": "execute_result" } ], "source": [ "distance(X[1], w2)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Višeklasna klasifikacija ($K>2$)\n", "\n", "\n", "* Shema **jedan-naspram-jedan** (engl. *one-vs-one*, **OVO**) \n", " * $K\\choose 2$ binarnih klasifikatora, razdjeljuju sve parove klasa\n", " * Model:\n", "$$\n", "h(\\mathbf{x})=\\mathrm{argmax}_i\\sum_{i\\neq j}\\mathrm{sgn}\\big(h_{ij}(\\mathbf{x})\\big)\n", "$$\n", "gdje $h_{ji}(\\mathbf{x})=- h_{ij}(\\mathbf{x})$\n", "\n", "\n", "* [Skica: OVO]\n", "\n", "\n", "* Shema **jedan-naspram-ostali** (engl. *one-vs-rest*, **OVR**, *one-vs-all*) \n", " * $K$ binarnih klasifikatora s pouzdanošću, po jedan za svaku klasu\n", " * Model:\n", "$$\n", "h(\\mathbf{x}) = \\mathrm{argmax}_j\\ h_j(\\mathbf{x})\n", "$$\n", "\n", "\n", "* [Skica: OVR]\n", "\n", "\n", "* Prednost OVR nad OVO je da imamo manje modela, međutim OVR lako rezultira neuravnoteženim brojem primjera kroz klase" ] }, { "cell_type": "code", "execution_count": 197, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "h1 = lambda x: h(x, [0, 2, 1])\n", "plot_decision_boundary(h1)\n", "h2 = lambda x: h(x, [-0.2, 0.7, -0.8])\n", "plot_decision_boundary(h2)\n", "h3 = lambda x: h(x, [-1.5, 0.1, 0.5])\n", "plot_decision_boundary(h3)\n", "plt.scatter(X[:,1],X[:,2]);" ] }, { "cell_type": "code", "execution_count": 152, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "9 4.1 -1.5\n" ] } ], "source": [ "print h1(X[0]), h2(X[0]), h3(X[0])" ] }, { "cell_type": "code", "execution_count": 153, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "-5 -7.7 0.5\n" ] } ], "source": [ "print h1(X[1]), h2(X[1]), h3(X[1])" ] }, { "cell_type": "code", "execution_count": 198, "metadata": { "collapsed": true }, "outputs": [], "source": [ "def ovr(x): return sp.argmax([h1(x), h2(x), h3(x)])" ] }, { "cell_type": "code", "execution_count": 199, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "0" ] }, "execution_count": 199, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ovr(X[0])" ] }, { "cell_type": "code", "execution_count": 200, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "2" ] }, "execution_count": 200, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ovr(X[1])" ] }, { "cell_type": "code", "execution_count": 157, "metadata": { "collapsed": true }, "outputs": [], "source": [ "x = linspace(-10, 10)\n", "y = linspace(-10, 10)\n", "X1, X2 = np.meshgrid(x, y)\n", "XX = sp.dstack((sp.ones((50, 50)), X1, X2))" ] }, { "cell_type": "code", "execution_count": 166, "metadata": { "collapsed": false }, "outputs": [], "source": [ "n, m, _ = shape(XX)\n", "YY = sp.zeros((n,m))\n", "for i in range(0,n):\n", " for j in range(0,m):\n", " YY[i,j] = ovr(XX[i, j])" ] }, { "cell_type": "code", "execution_count": 175, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\nAAAAAElFTkSuQmCC\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.contourf(X1, X2, YY);" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Klasifikacija regresijom" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Podsjetnik\n", "\n", "* [Skica]\n", "\n", "\n", "* Funkcija pogreške (empirijsko očekivanje kvadratnog gubitka):\n", "$$\n", "E(\\mathbf{w}|\\mathcal{D})=\\frac{1}{2}\n", "\\sum_{i=1}^N\\big(\\mathbf{w}^\\intercal\\boldsymbol{\\phi}(\\mathbf{x}^{(i)}) - y^{(i)}\\big)^2 = \n", "\\frac{1}{2}\n", "(\\boldsymbol\\Phi\\mathbf{w} - \\mathbf{y})^\\intercal\n", "(\\boldsymbol\\Phi\\mathbf{w} - \\mathbf{y})\n", "$$\n", "\n", "\n", "* Minimizator pogreške:\n", "$$\n", " \\mathbf{w} = (\\boldsymbol\\Phi^\\intercal\\boldsymbol\\Phi)^{-1}\\boldsymbol\\Phi^\\intercal\\mathbf{y}\n", " = \\color{red}{\\boldsymbol\\Phi^{+}}\\mathbf{y}\n", "$$\n", "\n", "\n", "* **Q:** Kako iskoristiti regresiju za klasifikaciju?" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Binarna klasifikacija $(K=2)$\n", "\n", "* Ideja: regresijska funkcija $h(\\mathbf{x})$ koja za primjere iz klase $\\mathcal{C}_1$ daje $h(\\mathbf{x})=1$, a za primjere iz klase $\\mathcal{C}_2$ daje $h(\\mathbf{x})=0$ \n", "\n", "\n", "* Primjer $\\mathbf{x}$ klasificiriamo u klasu $\\mathcal{C}_j$ za koju je $h(\\mathbf{x})$ najveći\n", "\n", "\n", "* Granica između $\\mathcal{C}_1$ i $\\mathcal{C}_2$ je na $h(\\mathbf{x})=0.5$\n", "\n", "\n", "* Primjer za $n=1$\n", " * $h(x) = w0 + w1 x$\n", " * [Skica]\n", "\n", "\n", "* Primjer za $n=2$\n", " * $h(x) = w0 + w1 x_1 + w2 * x_2$\n", " * [Skica]\n", " \n", " \n", "* Alternativno, model možemo trenirati tako da za primjere iz klase $\\mathcal{C_2}$ bude ciljana vrijednost bude $y=-1$\n", " * Diskriminativna funkcija onda je $h(\\mathbf{x})=0$" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Višeklasna klasifikacija $(K>2)$\n", "\n", "* Shema jedan-naspram-ostali (OVR)\n", "\n", "\n", "* Treniramo po jedan model $h_j$ za svaku klasu $\\mathcal{C}_j$\n", "\n", "$$\n", "h_j(\\mathbf{x}) = \\mathbf{w}_j^\\intercal\\boldsymbol{\\phi}(\\mathbf{x})\n", "$$\n", "\n", "* Primjeri za učenje $\\mathcal{D}=\\{\\mathbf{x}^{(i)},\\color{red}{\\mathbf{y}^{(i)}}\\}_{i=1}^N$:\n", "\n", "\\begin{align*}\n", "\\boldsymbol\\Phi = \n", "\\begin{pmatrix}\n", " \\boldsymbol{\\phi}(\\mathbf{x}^{(1)})^\\intercal \\\\\n", " \\boldsymbol{\\phi}(\\mathbf{x}^{(2)})^\\intercal \\\\\n", "\\vdots\\\\\n", " \\boldsymbol{\\phi}(\\mathbf{x}^{(N)})^\\intercal \\\\\n", "\\end{pmatrix}_{N\\times (m+1)}\n", "&\n", "\\qquad\n", " \\color{red}{\\mathbf{y}_j} = \n", "\\begin{pmatrix}\n", " y_j^{(1)}\\\\\n", " y_j^{(2)}\\\\\n", " \\vdots\\\\\n", " y_j^{(N)}\n", "\\end{pmatrix}_{N\\times 1}\n", "\\end{align*}\n", "\n", "\n", "* [Primjer] \n", "\n", "\n", "* Rješenje koje minimizira kvadratnu pogrešku:\n", "\\begin{equation*}\n", "\\mathbf{w}_j = (\\boldsymbol\\Phi^\\intercal\\boldsymbol\\Phi)^{-1}\\boldsymbol\\Phi^\\intercal\\mathbf{y}_j = \\boldsymbol\\Phi^{+}\\mathbf{y}_j\n", "\\end{equation*}\n", "\n", "\n", "* Model (OVR):\n", "$$\n", "h(\\mathbf{x}) = \\mathrm{argmax}_j\\ \\mathbf{w}_j\\boldsymbol\\phi(\\mathbf{x})\n", "$$\n", "\n", "* Primjer ($K=3$)\n", "\n", "![Tri ravnine](images/ravnine3.png)\n", "\n", "\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Prednosti i nedostatci klasifikacije regresijom\n", "\n", "* Prednosti:\n", " * Rješenje u zatvorenoj formi\n", " * Jednostavan postupak\n", "\n", "\n", "* Nedostatci:\n", " * Izlazi modela nemaju vjerojatnosnu intepretaciju ($h(\\mathbf{x})$ nije ograničena na interval $[0,1]$)\n", " * Nerobusnost: osjetljivost na vrijednosti koje odskaču (kažnjavanje \"pretočno''\n", " klasificiranih primjera)\n", " * Zbog toga, u nekim slučajevima: pogrešna klasifikacija unatoč tome što su primjeri linearno odvojivi\n", "\n", "\n", "* [Primjer]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Gradijentni spust" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Perceptron" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Sažetak\n", "\n", "* **Diskriminativni linearni modeli** modeliraju granicu između klasa, ali ne i način generiranja primjera\n", "\n", "\n", "* **Poopćeni linearan model** je linearan model s aktivacijskom funkcijom\n", "\n", "\n", "* **Klasifikacija regresijom** je jednostavan postupak, ali nije robusan\n", "\n", "\n", "* **Konveksna optimizacija** važna je za strojno učenje jer je funkcija gubitka (a time i funkcija pogreške) tipično konveksna\n", "\n", "\n", "* Ako minimizacija pogreške nema rješenje u zatvorenoj formi, a možemo izračunati gradijent, onda možemo primijeniti **gradijentni spust**\n", "\n", "\n", "* **Perceptron** je linearan klasifikacijski model koji gradijentnim spustom mimimizira aproksimaciju broja pogrešnih klasifikacija\n", "\n", "\n", "* Perceptron **ne konvergira** za linearno nedvojive probleme, dok za linearno odvojive rješenje ovisi o inicijalizaciji i redoslijedu primjera\n", "\n", "\n", "* Niti regresija niti perceptron ne daju probabilistički izlaz" ] } ], "metadata": { "kernelspec": { "display_name": "Python 2", "language": "python", "name": "python2" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 2 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython2", "version": "2.7.6" } }, "nbformat": 4, "nbformat_minor": 0 }