{ "metadata": { "name": "" }, "nbformat": 3, "nbformat_minor": 0, "worksheets": [ { "cells": [ { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "The Learning Problem" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Problem 1\n", " What types of learning, if any, best describe the following three scenarios:\n", " \n", " i. A coin classifcation system is created for a vending machine. In order to do this,\n", " the developers obtain exact coin specifcations from the U.S. Mint and derive\n", " a statistical model of the size, weight, and denomination, which the vending\n", " machine then uses to classify its coins.\n", " ii. Instead of calling the U.S. Mint to obtain coin information, an algorithm is\n", " presented with a large set of labeled coins. The algorithm uses this data to\n", " infer decision boundaries which the vending machine then uses to classify its\n", " coins.\n", " iii. A computer develops a strategy for playing Tic-Tac-Toe by playing repeatedly\n", " and adjusting its strategy by penalizing moves that eventually lead to losing.\n", " \n", " [a] (i) Supervised Learning, \n", " (ii) Unsupervised Learning, \n", " (iii) Reinforcement Learning\n", " \n", " [b] (i) Supervised Learning, \n", " (ii) Not learning, \n", " (iii) Unsupervised Learning\n", " \n", " [c] (i) Not learning, \n", " (ii) Reinforcement Learning, \n", " (iii) Supervised Learning\n", " \n", " [d] (i) Not learning, \n", " (ii) Supervised Learning, \n", " (iii) Reinforcement Learning\n", " \n", " [e] (i) Supervised Learning, \n", " (ii) Reinforcement Learning, \n", " (iii) Unsupervised Learning" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ " Answer: [d]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Problem 2\n", " Which of the following problems are best suited for the learning approach?\n", " \n", " (i) Classifying numbers into primes and non-primes.\n", " (ii) Detecting potential fraud in credit card charges.\n", " (iii) Determining the time it would take a falling object to hit the ground.\n", " (iv) Determining the optimal cycle for traffic lights in a busy intersection.\n", " \n", " [a] (ii) and (iv)\n", " [b] (i) and (ii)\n", " [c] (i), (ii), and (iii)\n", " [d] (iii)\n", " [e] (i) and (iii)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ " Answer: [a]" ] }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Bins and Marbles" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Problem 3\n", " We have 2 opaque bags, each containing 2 balls. One bag has 2 black balls and\n", " the other has a black ball and a white ball. You pick a bag at random and then pick\n", " one of the balls in that bag at random. When you look at the ball, it is black. You\n", " now pick the second ball from that same bag. What is the probability that this ball\n", " is also black?\n", " \n", " [a] 1 / 4\n", " [b] 1 / 3\n", " [c] 1 / 2\n", " [d] 2 / 3\n", " [e] 3 / 4" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ " possible outcomes:\n", " bag_bw -> b -> w\n", " bag_bw -> w -> b\n", " bag_bb -> b -> b\n", " bag_bb -> b -> b\n", " \n", " since ball1 = b we are left with 3 possible outcomes\n", " from those only 2 give us the b->b so the answer is 2/3\n", " \n", " Answer: [d]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Consider a sample of 10 marbles drawn from a bin that has red and green marbles.\n", "The probability that any marble we draw is red is $\\mu = 0.55$ (independently, with\n", "replacement). We address the probability of getting no red marbles $(\\nu = 0)$ in the\n", "following cases:" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Problem 4\n", " We draw only one such sample. Compute the probability that $\\nu = 0$. The\n", " closest answer is (closest is the answer that makes the expression jyour answer\n", " given optionj closest to 0):\n", " [a] 7.331 * 10^6\n", " [b] 3.405 * 10^4\n", " [c] 0.289\n", " [d] 0.450\n", " [e] 0.550" ] }, { "cell_type": "code", "collapsed": false, "input": [ "p_green = 1-0.55\n", "pow(p_green,10)\n" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 2, "text": [ "0.0003405062891601559" ] } ], "prompt_number": 2 }, { "cell_type": "markdown", "metadata": {}, "source": [ " Answer: [b]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Problem 5\n", " We draw 1,000 independent samples. Compute the probability that (at least)\n", " one of the samples has nu = 0. The closest answer is:\n", " [a] 7.331 * 10^6\n", " [b] 3.405 * 10^4\n", " [c] 0.289\n", " [d] 0.450\n", " [e] 0.550" ] }, { "cell_type": "code", "collapsed": false, "input": [ "r = pow(p_green, 10) * 1000\n", "print r\n", "print 'c=', abs(r - 0.28)\n", "print 'd=', abs(r - 0.45)\n", "print 'e=', abs(r - 0.55)" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "0.34050628916\n", "c= 0.0605062891602\n", "d= 0.10949371084\n", "e= 0.20949371084\n" ] } ], "prompt_number": 3 }, { "cell_type": "markdown", "metadata": {}, "source": [ " Answer: [c]" ] }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Feasibility of Learning" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Problem 6" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ " Answer: [e] all get same score = 3*1 + 2*3 + 1*3 + 0 * 1 = 12" ] }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "The Perceptron Learning Algorithm" ] }, { "cell_type": "code", "collapsed": false, "input": [ "%pylab inline\n", "\n", "import random as rnd\n", "import numpy as np\n", "import matplotlib.pyplot as plt\n", "\n", "\n", "def generateLine():\n", " points = np.random.uniform(-1, 1, (2, 2))\n", " (x1,y1),(x2,y2) = points\n", " k = (y2 - y1) / (x2 - x1)\n", " m = y1 - k * x1\n", " return k,m\n", "\n", "def generateData(line, N=10):\n", " k,m = line\n", " x = np.ones((N, 3))\n", " x[:,1:] = np.random.uniform(-1, 1, (N, 2))\n", " y = x[:,2] - (x[:,1] * k + m)\n", " return x,np.sign(y)\n", "\n", "def showData(x,y, line, label):\n", " pos = y > 0\n", " neg = y < 0\n", " plt.plot(x[:,1][pos], x[:,2][pos], 'gD')\n", " plt.plot(x[:,1][neg], x[:,2][neg], 'rs')\n", " k,m = line\n", " v = np.array([-1.0, 1.0])\n", " plt.plot(v, v * k + m, label=label)\n", "\n", "def perceptron(x, y):\n", " w = np.zeros(x.shape[1], dtype=float)\n", " t = 0\n", " while True:\n", " missed = []\n", " for i, r in enumerate(x):\n", " result = np.sign(np.dot(r, w))\n", " u = r * (y[i] - result)\n", " if result != y[i]: missed.append(u)\n", " if len(missed) == 0: return w,t\n", " w = w + rnd.choice(missed)\n", " t += 1\n", " \n", "def disagreement(x,y,w):\n", " result = np.dot(x, w)\n", " d = np.ones(y.size)[y != np.sign(result)]\n", " return np.sum(d) / y.size\n", " \n", "def runProblem(N, n=1000):\n", " c = 0.0\n", " d = 0.0\n", " for i in xrange(n):\n", " line = generateLine()\n", " x,y = generateData(line, N)\n", " w,t = perceptron(x,y)\n", " testX, testY = generateData(line, n)\n", " d += disagreement(testX, testY, w)\n", " c += t\n", " return {'iterations': c / n, 'disagreement': d / n}\n", " \n", " " ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Populating the interactive namespace from numpy and matplotlib\n" ] } ], "prompt_number": 52 }, { "cell_type": "code", "collapsed": false, "input": [ "line = generateLine()\n", "x,y = generateData(line, 10)\n", "w,_ = perceptron(x,y)\n", "\n", "plt.title(\"PLA training result\")\n", "showData(x,y, line, \"original\")\n", "showData(x, y, (- w[1] / w[2], - w[0] / w[2]), \"PLA\")\n", "plt.legend(loc='best')\n" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 60, "text": [ "" ] }, { "metadata": {}, "output_type": "display_data", "png": "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\nRU5ErkJggg==\n", "text": [ "" ] } ], "prompt_number": 60 }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Problem 7 & 8" ] }, { "cell_type": "code", "collapsed": false, "input": [ "runProblem(10)" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 51, "text": [ "{'disagreement': 0.10742300000000012, 'iterations': 10.338}" ] } ], "prompt_number": 51 }, { "cell_type": "markdown", "metadata": {}, "source": [ " Answer7: [b]\n", " Answer8: [c]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Problem 9 & 10" ] }, { "cell_type": "code", "collapsed": false, "input": [ "runProblem(100)" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 52, "text": [ "{'disagreement': 0.013583999999999969, 'iterations': 92.811}" ] } ], "prompt_number": 52 }, { "cell_type": "markdown", "metadata": {}, "source": [ " Answer9: [b]\n", " Answer10: [b]" ] } ], "metadata": {} } ] }