Skip to content

Instantly share code, notes, and snippets.

@jvangael
Last active December 24, 2015 12:19
Show Gist options
  • Save jvangael/6796561 to your computer and use it in GitHub Desktop.
Save jvangael/6796561 to your computer and use it in GitHub Desktop.
My presentation on numerical optimization for the October 2013 London Big O Meetup: http://www.meetup.com/big-o-london/
{
"metadata": {
"name": ""
},
"nbformat": 3,
"nbformat_minor": 0,
"worksheets": [
{
"cells": [
{
"cell_type": "code",
"collapsed": false,
"input": [
"from scipy import optimize"
],
"language": "python",
"metadata": {
"slideshow": {
"slide_type": "skip"
}
},
"outputs": [],
"prompt_number": 1
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"We are going to solve problems of the following form\n",
"\n",
"$\\min_x f(x)$\n",
"\n",
"- Unconstrained optimization\n",
"- Multivariate optimization\n",
"- Convex/Non-convex optimization"
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"A point $x^* $ is a global minimizer if $f(x^*) \\leq f(x)$ for all $x$."
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"A point is a local minimizer if there is a neighborhood $N$ such that $f(x^*) \\leq f(x)$ for all $x \\in N$."
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"In order to check whether a point is a local minimizer we don't need to \"check out out the neighborhood\" necessarily; if the function is smooth, we can use the gradient and Hessian of $f$ (proof by Taylor expansion of the function). Example function we will be working with:"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"def rosenbrock(x,y):\n",
" return 100.0 * (y-x**2)**2 + (1-x)**2\n",
"\n",
"x = arange(-2, 2, 0.01)\n",
"y = arange(-1, 3, 0.01)\n",
"[X, Y] = meshgrid(x, y)\n",
"Z = rosenbrock(X, Y)\n",
"CS = imshow(Z, interpolation='bilinear', origin='lower', extent=[-2,2,-1,3])\n",
"_ = colorbar(CS, shrink=0.8, extend='both')"
],
"language": "python",
"metadata": {
"slideshow": {
"slide_type": "subslide"
}
},
"outputs": [
{
"metadata": {},
"output_type": "display_data",
"png": "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\nRv4/LSQ8J//Z/0AAAAAASUVORK5CYII=\n",
"text": [
"<matplotlib.figure.Figure at 0x1080ee450>"
]
}
],
"prompt_number": 2
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"General strategy for solving optimization problems: start at a reasonable point, iteratively find better points. "
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"__Line Search__\n",
"\n",
"We slice the rosenbrock function at $y = 2$ and find a 1D method."
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"xs = arange(-2, 2, 0.01)\n",
"zs = array([rosenbrock(x, 2.0) for x in xs])"
],
"language": "python",
"metadata": {
"slideshow": {
"slide_type": "subslide"
}
},
"outputs": [],
"prompt_number": 3
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"x0 = array([-1.7, 2.0])\n",
"p0 = array([1.0, 0.0])\n",
"\n",
"def f(x):\n",
" plot(x[0], optimize.rosen(x), 'kx')\n",
" return optimize.rosen(x)\n",
"\n",
"plot(xs, zs)\n",
"\n",
"alpha, _, _, _, _, _ = optimize.line_search(f=f, myfprime=optimize.rosen_der, xk=x0, pk=p0)\n",
"\n",
"plot(-1.5+alpha, optimize.rosen(array([-1.5+alpha,2.0])), 'ro')"
],
"language": "python",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 4,
"text": [
"[<matplotlib.lines.Line2D at 0x109560fd0>]"
]
},
{
"metadata": {},
"output_type": "display_data",
"png": "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\n",
"text": [
"<matplotlib.figure.Figure at 0x1080ee6d0>"
]
}
],
"prompt_number": 4
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"__Gradient Descent__"
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "subslide"
}
},
"source": [
"Let's do standard gradient descent while using the line search method illustrated above."
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"x = array([-1.8, 0.9])\n",
"p = optimize.rosen_der(x)\n",
"\n",
"imshow(Z, interpolation='bilinear', origin='lower', extent=[-2,2,-1,3])\n",
"\n",
"pn_gd = []\n",
"for iter in xrange(5000):\n",
" alpha, _, _, _, _, _ = optimize.line_search(optimize.rosen, optimize.rosen_der, xk=x, pk=p)\n",
" x -= alpha * p\n",
" p = optimize.rosen_der(x)\n",
" if iter % 100 == 0:\n",
" plot(x[0], x[1], 'k.')\n",
" \n",
" pn_gd.append(np.dot(p,p))\n",
" \n",
" if np.dot(p,p) < 1e-14:\n",
" break\n",
"print \"Number of iterations = %d.\" % (iter+1)"
],
"language": "python",
"metadata": {
"slideshow": {
"slide_type": "subslide"
}
},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Number of iterations = 5000.\n"
]
},
{
"metadata": {},
"output_type": "display_data",
"png": "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\nL2F8fLwXWfalL305wtI1eLz22ms49dRTsWPHDlxzzTW4+uqrAZTXqo2iCM899xw2bdqECy64ALfe\nequXLO1LX/ryLybmCMg999xjhoeHzZo1a8ydd95pDh486Ez3wQcfmDVr1piRkRHz5JNPdp3fyy+/\nbM4991wTBIHZtWuXN93pp59uRkZGzNjYmLnooosWPb9ele/333831113nRkZGTEbN240hw4dcqZb\naPnaed777rvPjIyMmLVr15rp6emO82g3r+3bt5vjjjvOjI2NmbGxMfPQQw91nZcxxtxyyy1m2bJl\nZvXq1d40vSpbO/n1snw///yzWb9+vTn33HPNpZdeap5//nlnuk7Ld0TA49133zVpmpo0Tc3tt99u\nNm/e3JQmSRJz1llnmR9//NHUajUzOjpqvvnmm67ym56eNt9++61Zv359y8Z8xhlnmF9//bWrPDrN\nr5flu/fee82jjz5qjDHmkUcecb5PYxZWvnae9+233zZXX321McaYHTt2mLVr1y5aXtu3bzfXXntt\nV/d3yYcffmi++OILb2PuVdnaza+X5du3b5/58ssvjTHGHDhwwAwODvbk2y2qq9Ynl19+OYIgQBAE\nuPLKK7FnT7OXhGNE4jguYkS6keHhYZxzzjltpTU9IG7bya+X5XvzzTdx8803AwBuvvlmvP766960\n3Zavnefl51i7di0OHjyI/fvbdpl1lNdCyuKSdevW4YQTTvCe71XZ2s0P6F35li9fjrGxMQDASSed\nhIsuugi//PJLKU035Tsi4MHy7LPP4rrrrms63mmMSC+kUqngsssuw5o1a/Dss88ual69LN/+/fsx\nODgIABgcHPR+9IWUr53ndaVxdQy9yKtSqeCTTz7BqlWrsGHDBnzzTbtRrt1Jr8rWrixW+b7//nt8\n/fXXuPjii0vHuylf1xGm80k7MSJbtmzB0qVLccMNNzSl6zRGZKExKQDw8ccfY2hoCNPT09iwYQOG\nh4exbt26RcmvV+XbsmVL03199+6kfN0+r+4tOy1nu9ecf/752L17N+I4xuTkJMbHx/H99993nFcn\n0ouytSuLUb4//vgDExMTePzxx3Hsscc2ne+0fIsGHvPFiLzwwgvYtm0b3n//fef5TmJE2smvHRka\nGgIArFy5Eps2bcLOnTu9jetwxsDMl9/g4CBmZmawfPly7Nu3D8uWLXOm66R83TyvTrNnzx6ccsop\nbd2/07yWLl1abN92223YvHkzfvvtN5x44okd59fNM3Vbtnal1+Wr1+u4/vrrceONNzo1/W7Kd0TM\nlnfeeQePPfYY3nzzTSxZssSZZrFiRHx25J9//olDhw4BAA4cOIBt27ZhZGRk0fLrZfnGx8cxOZlF\ny05OTmLjxo1NaRZavnaed3x8HC+++CIAYMeOHTj++OMLc6oTaSev/fv3F+/2rbfewjHHHLNowAH0\nrmztSi/LZ4zBbbfdhlWrVuGuu+5ypumqfD2hczuUs88+25x22mmFG+qOO+4wxhizd+9es2HDhiLd\n1NSUGRsbM6tXrzZPPPFE1/m9+uqrZsWKFWbJkiVmcHDQXHXVVU35/fDDD2Z0dNSMjo6ayy67zDzz\nzDOLml8vy+dz1fa6fK7nfeaZZ0r32rx5s1m9erVZu3Zt196jdvJ6+umnzapVq8zo6Ki56aabzOef\nf951XsYYMzExYYaGhkwcx2bFihVm69ati1a2dvLrZfk++ugjU6lUzOjoaNHmtm3btuDyVYzpx4X3\npS996VyOuLelL33py7+m9MGjL33pS1fSB4++9KUvXUkfPPrSl750JX3w6Etf+tKV9MGjL33pS1fy\n/2MEM3H2uJUVAAAAAElFTkSuQmCC\n",
"text": [
"<matplotlib.figure.Figure at 0x1088d4ad0>"
]
}
],
"prompt_number": 5
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"We can also look at the squared norm of the gradient (note the log scale)."
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"semilogy(pn_gd)"
],
"language": "python",
"metadata": {
"slideshow": {
"slide_type": "subslide"
}
},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 6,
"text": [
"[<matplotlib.lines.Line2D at 0x10988af10>]"
]
},
{
"metadata": {},
"output_type": "display_data",
"png": "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\ntkUA2yIgntpi4MDAPMKVurvlFho9PYd9+4D/+i/52ueT8xD33gukpQVe//jH6vQiriekIHA4HPB4\nPEHnGhsbkZqaCus/nltXXFyMuro6LF26FHPmzAEAnDlzBr/61a/w2WefYcWKFViyZImqlSciijdJ\nSXKC2WqVz4S+0unTsjdx+DDQ0gL8z//Ir62twPDhgWC4915163TL6wja29thsVh635vNZjQ0NAR9\nJiUlBatXr7712hER6chdd8lj4sTg893d8lbXlhZ5HD6s7s+95SAwqLjTk5plxbvy8nKtqxAz2BYB\nbIsAtoX6bjkITCYTvF5v73uv1wuz2Rx2ObxjiIhIW7e8DCI3Nxetra3weDzw+XyoqalBYWGhmnUj\nIqI+EFIQlJSUoKCgAC0tLbBYLKiurkZycjKqqqpQVFSEnJwcKIqC9PT0kH+wHm49vdZtt+fPn8eT\nTz4Ju92OoqIiXLhwofd7b7/9Nux2O7Kzs7F9+/be883NzZgwYQLsdjtefvnlPv07qMXr9WLKlCm4\n//774XQ68ac//QmAPtvj4sWLmDBhAjIzMzFx4kS8+eabAPTZFoC8AzErKwszZswAoN92AACr1Qq7\n3Y6srCzk5+cD6KP2EBro6uoSY8eOFW1tbcLn84mMjAxx8OBBLaoSVW63W3z66adi/PjxvecWL14s\nVqxYIYQQ4rXXXhNLliwRQghx4MABkZGRIXw+n2hraxNjx44V3d3dQggh8vLyRENDgxBCiMcee0xs\n2LChj/8mkfvyyy/F3r17hRBCfP3118JoNIqDBw/qtj06OjqEEEJcvHhR3H///aKlpUW3bfG73/1O\nzJ49W8yYMUMIod//R4QQwmq1itOnTwed64v20CQIdu7cKR555JHe98uXLxfLly/XoipR19bWFhQE\naWlp4quvvhJCyItjWlqaEEKIV199Vbz22mu9n3vkkUfErl27xPHjx8W4ceN6z69du1bMnz+/j2of\nPU888YTYuHGj7tvj1KlTYty4ceLvf/+7LtvC6/WKadOmiS1btognnnhCCKHv/0esVqs4depU0Lm+\naA9NnuNzrVtP29vbtahKnztx4gSM/9gE3Wg04sSJEwCA48ePB02297TJ1edNJlPct9WRI0dw4MAB\nTJw4Ubft0d3djYyMDBiNRrz44ou45557dNkWL730El5//XUkXbFrmx7boYfBYMDUqVORlZWFP/7x\njwD6pj00eR4BbxeVDAaD7triwoULKC4uxptvvomhQ4cGfU9P7ZGUlIR9+/bB4/Fg+vTpeOCBB4K+\nr4e2+OCDDzBixAhkZWVdd+sIPbTDlXbs2IGRI0eiubkZ06dPx7hx44K+H6320KRHoNatp/HIaDTi\nq6++AgB8+eWXGDFiBIDvt8kXX3wBs9kMk8mEL774Iui8yWTq20qr5PLly3j66afx3HPPYebMmQD0\n3R6AnBycPn06tm7dqru22LlzJ9avX4/Ro0ejpKQEW7ZswZw5c3TXDlcaOXIkACA9PR1FRUVobGzs\nm/ZQa2wrHJcvXxZjxowRbW1t4tKlSwk7WSzE9+cIFi9e3Duut3z58u9N/Fy6dEkcPXpUjBkzpnfi\nJz8/X+zevVt0d3fH7URYd3e3mDNnjnjppZeCzuuxPb7++mvxzTffCCHkHMF9990nNm3apMu26OFy\nuXrnCPTaDh0dHeLcuXNCCCFOnjwp0tLSxEcffdQn7aFJEAgh/8NnZmaK8ePHi7feekurakRVcXGx\nGDlypOjfv78wm82iqqpKnDt3TsycOVPYbDbx5JNPivPnz/d+/ve//70YP368yMzMFG63u/f8gQMH\nRH5+vhg/frxYunSpFn+ViG3btk0YDAaRkZEhMjMzRWZmptiwYYMu2+Pzzz8XWVlZwm63i4cfflis\nWbNGCCF02RY9XC5X711Dem2Ho0ePioyMDJGRkSGmTp0qVq9eLYTom/bQ/AllRESkLU3mCIiIKHYw\nCIiIdI5BQESkcwwCIiKdYxAQEekcg4CISOcYBEREOvf/IHpkW+mBUtcAAAAASUVORK5CYII=\n",
"text": [
"<matplotlib.figure.Figure at 0x109579dd0>"
]
}
],
"prompt_number": 6
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"Rather than using only first order information to determine the direction of steepest descent, we can also use second order information to understand rates of change of the direction of steepest descent. We call this the Newton iteration."
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"x = array([-1.8, 0.9])\n",
"p = optimize.rosen_der(x)\n",
"H = optimize.rosen_hess(x)\n",
"\n",
"imshow(Z, interpolation='bilinear', origin='lower', extent=[-2,2,-1,3])\n",
"\n",
"pn_n = []\n",
"for iter in xrange(1000):\n",
" x -= linalg.solve(H, p)\n",
" p = optimize.rosen_der(x)\n",
" H = optimize.rosen_hess(x)\n",
" plot(x[0], x[1], 'k.')\n",
" \n",
" pn_n.append(np.dot(p,p))\n",
" \n",
" if np.dot(p,p) < 1e-14:\n",
" break\n",
"print \"Number of iterations = %d.\" % (iter+1)"
],
"language": "python",
"metadata": {
"slideshow": {
"slide_type": "subslide"
}
},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Number of iterations = 5.\n"
]
},
{
"metadata": {},
"output_type": "display_data",
"png": "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\nDKImg75nAAAAAElFTkSuQmCC\n",
"text": [
"<matplotlib.figure.Figure at 0x109dcabd0>"
]
}
],
"prompt_number": 7
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"semilogy(pn_n)"
],
"language": "python",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 8,
"text": [
"[<matplotlib.lines.Line2D at 0x109df42d0>]"
]
},
{
"metadata": {},
"output_type": "display_data",
"png": "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\nAAAAAElFTkSuQmCC\n",
"text": [
"<matplotlib.figure.Figure at 0x10884d890>"
]
}
],
"prompt_number": 8
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"Sometimes it is hard to compute the Hessian, or the dimensionality of the optimization is so large that it is impossible to compute or store the Hessian. In this case, we can try to approximate the Hessian using a low rank matrix."
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"__BFGS & L-BFGS__"
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "subslide"
}
},
"source": [
"The BFGS (or Broyden-Fletcher-Goldfarb-Shanno) algorithm is an algorithm when the Hessian is hard to compute, but it is still possible to store a full approximation to the Hessian."
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"x0 = array([-1.8, 0.9])\n",
"\n",
"def f(x):\n",
" plot(x[0], x[1], 'k.')\n",
" return optimize.rosen(x)\n",
"\n",
"imshow(Z, interpolation='bilinear', origin='lower', extent=[-2,2,-1,3])\n",
"\n",
"res = optimize.minimize(f, x0, method=\"BFGS\", jac=optimize.rosen_der, options={\"disp\": True})"
],
"language": "python",
"metadata": {
"slideshow": {
"slide_type": "subslide"
}
},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Optimization terminated successfully.\n",
" Current function value: 0.000000\n",
" Iterations: 23\n",
" Function evaluations: 31\n",
" Gradient evaluations: 31\n"
]
},
{
"metadata": {},
"output_type": "display_data",
"png": "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\nRU5ErkJggg==\n",
"text": [
"<matplotlib.figure.Figure at 0x1088d4490>"
]
}
],
"prompt_number": 9
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"There is an algorithm called L-BFGS (or Limited Memory BFGS) which is similar in spirit to BFGS but only keeps track of a low rank approximation to the Hessian approximation."
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"__Conjugate Gradient__"
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "subslide"
}
},
"source": [
"The conjugate gradient algorithm was originally developed to solve linear systems of equations. In the linear case, the algorithm generates a sequence of vectors which are _conjugate_ w.r.t. the matrix we are trying to solve for. The conjugate gradient algorithm can easily be adapted to work for nonlinear functions and has proven to be quite effective in practice."
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"x0 = array([-1.8, 0.9])\n",
"\n",
"def f(x):\n",
" plot(x[0], x[1], 'k.')\n",
" return optimize.rosen(x)\n",
"\n",
"imshow(Z, interpolation='bilinear', origin='lower', extent=[-2,2,-1,3])\n",
"\n",
"res = optimize.minimize(f, x0, method=\"CG\", jac=optimize.rosen_der, options={\"disp\": True})"
],
"language": "python",
"metadata": {
"slideshow": {
"slide_type": "subslide"
}
},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Optimization terminated successfully.\n",
" Current function value: 0.000000\n",
" Iterations: 18\n",
" Function evaluations: 51\n",
" Gradient evaluations: 40\n"
]
},
{
"metadata": {},
"output_type": "display_data",
"png": "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\nTz6ZKn6GYRi9zJwtwPe85z1oNBo4+eSTAQDvf//7cc899yQHMAvQMIwlYCbaMy8XeKEOwjAMY6GZ\nifbYTBDDMPoWE0DDMPoWE0DDMPoWE0DDMPoWE0DDMPoWE0DDMPoWE0DDMPoWE0DDMPoWE0DDMPoW\nE0DDMPoWE0DDMPoWE0DDMPoWE0DDMPoWE0DDMPoWE0DDMPoWE0DDMPoWE0DDMPoWE0DDMPoWE0DD\nMPoWE0DDMPoWE0DDMPoWE0DDMPoWE0DDMPqWOQvgrbfeio0bN2LTpk249tprceTIkYU8LsMwjEVn\nzjdGf+utt3D88ccDAL74xS+i1Wrhi1/8YnIAuzG6YRhLwKLeGF3Er9VqYXx8HJ7nzXVXhmEYS8K8\nYoC33HILVqxYgX/8x3/EX/zFXyzUMRmGYWRCVxd469atOHz4cOL9Xbt2Yfv27QCAiYkJ3HLLLQCA\n3bt3JwfI5XDbbbd1XlerVVSr1fket2EYRozh4WEMDw93Xt9+++3TusBzjgEyv/zlL3Httdfi5z//\neXIAiwEahrEELGoM8KWXXgIQxAAffPBBrF+/fq67MgzDWBLmbAF+4hOfwIsvvohKpYJqtYqbb74Z\np512WnIAswANw1gCZqI9C+ICz/cgDMMwFppFdYENwzCOdUwADcPoW0wADcPoW0wADcPoW0wADcPo\nW0wADcPoW0wADcPoW0wADcPoW0wADcPoW0wADcPoW0wADcPoW0wADcPoW0wADcPoW0wADcPoW0wA\nDcPoW0wADcNYMkZHR3HllVdidHR0ScY3ATQMY0kYHR3Ftm3bsHfvXmzbtm1JRNAE0DCMJWHHjh0Y\nGRkBAIyMjGDHjh2ZH4O1xDcMY0kQC3BkZARbtmzBvn37sGzZsgXbv90TxDCMnmZ0dBQ7duzAnj17\nFlT8ABNAwzD6GLspkmEYRhdMAA3D6FvmLYB33XUX8vk8fve73y3E8Sw4w8PDNr6N35fj9/PfPlPm\nJYAHDhzAD3/4Q7z73e9eqONZcJb6S7Dxbfx+HLsXxp8J8xLAL3zhC/jSl760UMdiGIaRKXMWwIce\neggrV67Ehg0bFvJ4DMMwMqNrGczWrVtx+PDhxPt33HEHdu3ahX379uGEE07AmWeeiZ/97Gc45ZRT\nkgPkcgt7xIZhGDNkUeoAn3/+eXzwgx/E4OAgAODgwYM444wz8PTTT+Md73jH3I7UMAwjYxakEPrM\nM8/EM888g5NPPnkhjskwDCMTFqQO0NxcwzCORRZEAH/zm9+kWn8333wz1q5di82bN+Omm27Cm2++\nuRBDzpi9e/di3bp1GBgYwLPPPpvZuE8++SQ2b96MDRs24O67785sXAC4/vrrsXz5cqxfvz7TcYUD\nBw7gwgsvxLp161CtVnH//fdnOn6tVsN5552HTZs24fzzz8fu3bszHR8A2u02hoaGsH379szHBoDV\nq1djw4YNGBoawh/+4R9mOvb4+Dg+9alPYWhoCO9973vx05/+NLOxX3zxRQwNDXWWE088EV/5ylfS\nP+AvMvv27fPb7bbfbrf9G264wf/Lv/zLxR4yxq9//Wv/xRdf9KvVqv/MM89kMmar1fLPOuss/5VX\nXvEbjYa/ceNG/1e/+lUmY/u+7z/55JP+s88+659zzjmZjcm89tpr/nPPPef7vu+//vrr/vLlyzP9\n+33f98fHx33f9/1areavW7fOf+mllzId/6677vKvueYaf/v27ZmOK6xevdo/cuTIkox93XXX+V/7\n2td83/f9ZrPpj46OLslxtNttf8WKFf5vf/vb1G0WfSrc1q1bkc/nkc/n8eEPfxgHDx5c7CFjnH32\n2fj93//9TMd8+umnsWbNGqxevRrFYhFXXXUVHnrooczGv+CCC3DSSSdlNp5mxYoV2LRpEwDg1FNP\nxZYtW/Dqq69megySoBsbG0Or1UK5XM5s7IMHD+LRRx/FDTfcsKSNQJZi7DfffBNPPfUUrr/+egBA\noVDAiSeemPlxAMCPfvQjnHXWWVi1alXqNpnOBb733ntx6aWXZjnkknDo0KHYSV+5ciUOHTq0hEe0\ndLz88st44YUXcP7552c67tTUFDZu3Ijly5fj85//fNeLYKH58z//c9x5553I55duqn0ul8NFF12E\noaEh3HvvvZmN+8orr+C0007Dpz/9aZxzzjm48cYbMTk5mdn4zDe/+U1cc801XbdZkG9o69atWL9+\nfWJ55JFHOtvccccdOP7443HFFVcsxJCzHj9LLCkUMDY2hquuugq7d+/Gcccdl+nY+Xwev/jFL/Dy\nyy/jnnvuwXPPPZfJuN///vfxjne8A0NDQ0tq/f3kJz/BL37xC3zjG9/Arl278NRTT2UybqvVwsjI\nCC6//HKMjIygXq9j7969mYzNNBoNPPLII9PqTWEhBvvhD3/Ydf3999+PRx99FE888cRCDDfr8bPm\njDPOwIEDBzqvDxw4gJUrVy7hEWVPs9nE5Zdfjk9+8pNLavWvXr0aF198MX784x9jaGho0cf7p3/6\nJypyAVUAAAIGSURBVDz88MN49NFHUavVcPToUVx33XV44IEHFn1s5vTTTwcArF27Fpdddhmefvpp\nXHDBBYs+7sqVK3HKKad0kj9XX301HnjgAVx33XWLPjbz2GOP4dxzz8Vpp53WdbtFt9Eff/xx3Hnn\nnXj44Yfhed5iD9eVrH6R3/e+9+Gll17C/v370Wg08K1vfQuXXHJJJmP3Ar7v47Of/SzWrVuHm266\nKfPx33jjjc4Ndo4cOYLHHnsss4z4rl27cODAAbzyyiv45je/iYsuuihz8ZuYmMBbb70FAHj99dfx\n6KOPZvb3r1ixAmvWrME///M/Y2pqCj/4wQ/woQ99KJOxmQcffBBXX3319BsudiZmzZo1/rve9S5/\n06ZN/qZNm/zPfe5ziz1kjO985zv+ypUrfc/z/OXLl/sf+chHMhl3eHjY37Rpk3/OOef4X/7ylzMZ\nU7jqqqv8008/3S+VSv7KlSv9++67L9Pxn3rqKT+Xy/kbN27sfO+PPfZYZuP/y7/8iz80NORv2LDB\n37Ztm//Vr341s7GZ4eHhJckC/+Y3v/E3btzob9y40b/ooov8v/mbv8l0/BdffNE/77zz/LPOOsv/\n+Mc/7o+NjWU6/tjYmH/KKaf4R48enXbbRW+JbxiG0atYR2jDMPoWE0DDMPoWE0DDMPoWE0DDMPoW\nE0DDMPoWE0DDMPqW/w97UjOsrCpZKwAAAABJRU5ErkJggg==\n",
"text": [
"<matplotlib.figure.Figure at 0x10984ee50>"
]
}
],
"prompt_number": 10
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"__Notes to consider when doing optimization__\n",
"\n",
"- Don't implement your own optimization methods (scipy has good support for existing methods).\n",
"- Spend your time checking and optimizing your function and gradient methods: use _scipy.optimize.check_grad_!"
]
}
],
"metadata": {}
}
]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment