You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

ls.ipynb 333 kB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968
  1. {
  2. "cells": [
  3. {
  4. "cell_type": "markdown",
  5. "metadata": {},
  6. "source": [
  7. "# 最小二乘\n",
  8. "\n",
  9. "## 1. 最小二乘的基本原理\n",
  10. "\n",
  11. "最小二乘法(Least Squares)是一种数学优化技术,它通过最小化误差的平方和找到一组数据的最佳函数匹配, 最小二乘法通常用于曲线拟合、求解模型。很多其他的优化问题也可通过最小化能量或最大化熵用最小二乘形式表达。\n",
  12. "\n",
  13. "![ls_theory](images/least_squares.png)\n",
  14. "\n",
  15. "最小二乘原理的一般形式为:\n",
  16. "$$\n",
  17. "L = \\sum (V_{obv} - V_{target}(\\theta))^2\n",
  18. "$$\n",
  19. "其中\n",
  20. "* $V_{obv}$是观测的多组样本值\n",
  21. "* $V_{target}$是假设拟合函数的输出值\n",
  22. "* $\\theta$为构造模型的参数\n",
  23. "* $L$是目标函数\n",
  24. "\n",
  25. "如果通过调整模型参数$\\theta$,使得$L$下降到最小则表明,拟合函数与观测最为接近,也就是找到了最优的模型。\n"
  26. ]
  27. },
  28. {
  29. "cell_type": "markdown",
  30. "metadata": {},
  31. "source": [
  32. "### 1.1 示例\n",
  33. "\n",
  34. "假设我们有下面的一些观测数据,我们希望找到他们内在的规律。"
  35. ]
  36. },
  37. {
  38. "cell_type": "code",
  39. "execution_count": 1,
  40. "metadata": {},
  41. "outputs": [
  42. {
  43. "data": {
  44. "image/png": "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\nn86vU3yvpnYAAAAASUVORK5CYII=\n",
  45. "text/plain": [
  46. "<matplotlib.figure.Figure at 0x7f793ad5aa90>"
  47. ]
  48. },
  49. "metadata": {},
  50. "output_type": "display_data"
  51. }
  52. ],
  53. "source": [
  54. "%matplotlib inline\n",
  55. "\n",
  56. "import matplotlib.pyplot as plt\n",
  57. "import numpy as np\n",
  58. "\n",
  59. "# 生成数据\n",
  60. "data_num = 50\n",
  61. "X = np.random.rand(data_num, 1)*10\n",
  62. "Y = X * 3 + 4 + 4*np.random.randn(data_num,1)\n",
  63. "\n",
  64. "# 画出数据的分布\n",
  65. "plt.scatter(X, Y)\n",
  66. "plt.xlabel(\"X\")\n",
  67. "plt.ylabel(\"Y\")\n",
  68. "plt.show()"
  69. ]
  70. },
  71. {
  72. "cell_type": "markdown",
  73. "metadata": {},
  74. "source": [
  75. "### 1.2 数学原理\n",
  76. "有$N$个观测数据为:\n",
  77. "$$\n",
  78. "\\mathbf{X} = \\{x_1, x_2, ..., x_N \\} \\\\\n",
  79. "\\mathbf{Y} = \\{y_1, y_2, ..., y_N \\}\n",
  80. "$$\n",
  81. "其中$\\mathbf{X}$为自变量,$\\mathbf{Y}$为因变量。\n",
  82. "\n",
  83. "我们希望找到一个模型能够解释这些数据,假设使用最简单的线性模型来拟合数据:\n",
  84. "$$\n",
  85. "y = ax + b\n",
  86. "$$\n",
  87. "那么问题就变成求解参数$a$, $b$能够使得模型输出尽可能和观测数据有比较小的误差。\n",
  88. "\n",
  89. "如何构建函数来评估模型输出与观测数据之间的误差是一个关键问题,这里我们使用观测数据与模型输出的平方和来作为评估函数(也被称为损失函数Loss function):\n",
  90. "$$\n",
  91. "L = \\sum_{i=1}^{N} \\{y_i - (a x_i + b)\\}^2 \\\\\n",
  92. "L = \\sum_{i=1}^{N} (y_i - a x_i - b)^2 \n",
  93. "$$\n",
  94. "\n",
  95. "使误差函数最小,那么我们就可以求出模型的参数:\n",
  96. "$$\n",
  97. "\\frac{\\partial L}{\\partial a} = -2 \\sum_{i=1}^{N} (y_i - a x_i - b) x_i \\\\\n",
  98. "\\frac{\\partial L}{\\partial b} = -2 \\sum_{i=1}^{N} (y_i - a x_i - b)\n",
  99. "$$\n",
  100. "\n",
  101. "即当偏微分为0时,误差函数为最小,因此我们可以得到:\n",
  102. "$$\n",
  103. "-2 \\sum_{i=1}^{N} (y_i - a x_i - b) x_i = 0 \\\\\n",
  104. "-2 \\sum_{i=1}^{N} (y_i - a x_i - b) = 0 \\\\\n",
  105. "$$\n",
  106. "\n",
  107. "将上式调整一下顺序可以得到:\n",
  108. "$$\n",
  109. "a \\sum x_i^2 + b \\sum x_i = \\sum y_i x_i \\\\\n",
  110. "a \\sum x_i + b N = \\sum y_i\n",
  111. "$$\n",
  112. "\n",
  113. "上式中$\\sum x_i^2$, $\\sum x_i$, $\\sum y_i$, $\\sum y_i x_i$都是已知的数据,而参数$a$, $b$是我们想要求得未知参数。通过求解二元一次方程组,我们即可求出模型的最优参数。"
  114. ]
  115. },
  116. {
  117. "cell_type": "markdown",
  118. "metadata": {},
  119. "source": [
  120. "### 1.3 求解程序"
  121. ]
  122. },
  123. {
  124. "cell_type": "code",
  125. "execution_count": 2,
  126. "metadata": {},
  127. "outputs": [
  128. {
  129. "name": "stdout",
  130. "output_type": "stream",
  131. "text": [
  132. "a = 3.159836, b = 3.125757\n"
  133. ]
  134. },
  135. {
  136. "data": {
  137. "image/png": "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\n",
  138. "text/plain": [
  139. "<matplotlib.figure.Figure at 0x7f245e9404e0>"
  140. ]
  141. },
  142. "metadata": {},
  143. "output_type": "display_data"
  144. }
  145. ],
  146. "source": [
  147. "N = X.shape[0]\n",
  148. "\n",
  149. "S_X2 = np.sum(X*X)\n",
  150. "S_X = np.sum(X)\n",
  151. "S_XY = np.sum(X*Y)\n",
  152. "S_Y = np.sum(Y)\n",
  153. "\n",
  154. "A1 = np.array([[S_X2, S_X], \n",
  155. " [S_X, N]])\n",
  156. "B1 = np.array([S_XY, S_Y])\n",
  157. "\n",
  158. "# numpy.linalg模块包含线性代数的函数。\n",
  159. "# 使用这个模块,可以计算逆矩阵、求特征值、解线性方程组以及求解行列式等。\n",
  160. "coeff = np.linalg.inv(A1).dot(B1)\n",
  161. "\n",
  162. "print('a = %f, b = %f' % (coeff[0], coeff[1]))\n",
  163. "\n",
  164. "x_min = np.min(X)\n",
  165. "x_max = np.max(X)\n",
  166. "y_min = coeff[0] * x_min + coeff[1]\n",
  167. "y_max = coeff[0] * x_max + coeff[1]\n",
  168. "\n",
  169. "plt.scatter(X, Y, label='original data')\n",
  170. "plt.plot([x_min, x_max], [y_min, y_max], 'r', label='model')\n",
  171. "plt.legend()\n",
  172. "plt.show()"
  173. ]
  174. },
  175. {
  176. "cell_type": "markdown",
  177. "metadata": {},
  178. "source": [
  179. "## 2. 如何使用迭代的方法求出模型参数\n",
  180. "\n",
  181. "当数据比较多的时候,或者模型比较复杂,无法直接使用解析的方式求出模型参数。因此更为常用的方式是,通过迭代的方式逐步逼近模型的参数。\n",
  182. "\n",
  183. "### 2.1 梯度下降法\n",
  184. "在机器学习算法中,对于很多监督学习模型,需要对原始的模型构建损失函数,接下来便是通过优化算法对损失函数进行优化,以便寻找到最优的参数。在求解机器学习参数的优化算法中,使用较多的是基于梯度下降的优化算法(Gradient Descent, GD)。\n",
  185. "\n",
  186. "梯度下降法有很多优点,其中最主要的优点是,**在梯度下降法的求解过程中只需求解损失函数的一阶导数,计算的代价比较小,这使得梯度下降法能在很多大规模数据集上得到应用。**\n",
  187. "\n",
  188. "梯度下降法的含义是通过当前点的梯度方向寻找到新的迭代点。梯度下降法的基本思想可以类比为一个下山的过程。假设这样一个场景:\n",
  189. "* 一个人被困在山上,需要从山上下来(i.e. 找到山的最低点,也就是山谷)。\n",
  190. "* 但此时山上的浓雾很大,导致可视度很低。因此,下山的路径就无法全部确定,他必须利用自己周围的信息去找到下山的路径。\n",
  191. "* 这个时候,他就可以利用梯度下降算法来帮助自己下山。\n",
  192. " - 具体来说就是,以他当前的所处的位置为基准,寻找这个位置最陡峭的地方,然后朝着山的高度下降的地方走\n",
  193. " - 然后每走一段距离,都反复采用同一个方法,最后就能成功的抵达山谷。\n",
  194. "\n",
  195. "\n",
  196. "一般情况下,这座山最陡峭的地方是无法通过肉眼立马观察出来的,而是需要一个工具来测量;同时,这个人此时正好拥有测量出最陡峭方向的能力。所以,此人每走一段距离,都需要一段时间来测量所在位置最陡峭的方向,这是比较耗时的。那么为了在太阳下山之前到达山底,就要尽可能的减少测量方向的次数。这是一个两难的选择,如果测量的频繁,可以保证下山的方向是绝对正确的,但又非常耗时;如果测量的过少,又有偏离轨道的风险。所以需要找到一个合适的测量方向的频率,来确保下山的方向不错误,同时又不至于耗时太多!\n",
  197. "\n",
  198. "\n",
  199. "![gradient_descent](images/gradient_descent.png)\n",
  200. "\n",
  201. "如上图所示,得到了最优解。$x$,$y$表示的是$\\theta_0$和$\\theta_1$,$z$方向表示的是花费函数,很明显出发点不同,最后到达的收敛点可能不一样。当然如果是碗状的,那么收敛点就应该是一样的。\n",
  202. "\n",
  203. "对于最小二乘的损失函数\n",
  204. "$$\n",
  205. "L = \\sum_{i=1}^{N} (y_i - a x_i - b)^2\n",
  206. "$$\n",
  207. "\n",
  208. "我们更新的策略是:\n",
  209. "$$\n",
  210. "\\theta^1 = \\theta^0 - \\eta \\triangledown L(\\theta)\n",
  211. "$$\n",
  212. "其中$\\theta$代表了模型中的参数,例如$a$, $b$\n",
  213. "\n",
  214. "此公式的意义是:$L$是关于$\\theta$的一个函数,我们当前所处的位置为$\\theta_0$点,要从这个点走到L的最小值点,也就是山底。首先我们先确定前进的方向,也就是梯度的反向,然后走一段距离的步长,也就是$\\eta$,走完这个段步长,就到达了$\\theta_1$这个点!\n",
  215. "\n",
  216. "更新的策略是:\n",
  217. "\n",
  218. "$$\n",
  219. "a^1 = a^0 + 2 \\eta [ y - (ax+b)]*x \\\\\n",
  220. "b^1 = b^0 + 2 \\eta [ y - (ax+b)] \n",
  221. "$$\n",
  222. "\n",
  223. "下面就这个公式的几个常见的疑问:\n",
  224. "\n",
  225. "* **$\\eta$是什么含义?**\n",
  226. "$\\eta$在梯度下降算法中被称作为学习率或者步长,意味着我们可以通过$\\eta$来控制每一步走的距离,以保证不要步子跨的太大,错过了最低点。同时也要保证不要走的太慢,导致太阳下山了,还没有走到山下。所以$\\eta$的选择在梯度下降法中往往是很重要的。\n",
  227. "![gd_stepsize](images/gd_stepsize.png)\n",
  228. "\n",
  229. "* **为什么要梯度要乘以一个负号?**\n",
  230. "梯度前加一个负号,就意味着朝着梯度相反的方向前进!梯度的方向实际就是函数在此点上升最快的方向,而我们需要朝着下降最快的方向走,自然就是负的梯度的方向,所以此处需要加上负号。\n",
  231. "\n"
  232. ]
  233. },
  234. {
  235. "cell_type": "markdown",
  236. "metadata": {},
  237. "source": [
  238. "### 2.2 示例代码"
  239. ]
  240. },
  241. {
  242. "cell_type": "code",
  243. "execution_count": 3,
  244. "metadata": {},
  245. "outputs": [
  246. {
  247. "name": "stdout",
  248. "output_type": "stream",
  249. "text": [
  250. "epoch 0: loss = 706.814761, a = 3.405291, b = 1.325704\n",
  251. "epoch 100: loss = 673.646148, a = 3.147842, b = 2.914551\n",
  252. "epoch 200: loss = 670.748958, a = 3.189792, b = 3.074196\n",
  253. "epoch 300: loss = 691.807179, a = 3.272848, b = 3.110038\n",
  254. "epoch 400: loss = 669.919974, a = 3.158443, b = 3.088828\n"
  255. ]
  256. },
  257. {
  258. "data": {
  259. "image/png": "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\nuuuugD9DTcvy7dq1i6FDh9K2bVtat27N0KFDy+vA33HHHbz33nuMGzeO5s2bM378eABuuOEGjjji\nCFq0aEGfPn1YunRp8H/YUDjn6uThXUpEQlXd/0OTJv3eNWnyM5eWNsE1adLbXXjh/7jS0tLy9wcP\nvtDBQ85bhcM5sz+4YcOuqHSO999/33XpcqxLT2/p+vUb5DZt2hRUbCUlJa5bt25u2rRprqSkxC1e\nvNg1a9bMff75584550aOHOlatmzpPvjgA+ecc3v37nUjR450kyZNcs45989//tN16NDBffbZZ66o\nqMj95je/cSkpKe7//u//yo8v29fn87nU1FQ3ZcoUt3//frdgwQLXuHFjt2vXLuecc++8845bu3at\nc865NWvWuPbt27tXXnnFOedcfn6+S0lJcQcOHDjkMxQXF7usrCz34IMPuv3797sXXnjBpaWllV93\n+/btbt68eW7v3r2usLDQXXzxxe68884rPz4nJ8fl5uZWOuff//53t3PnTnfgwAE3Y8YM1759e7dv\n374q/4bV/fv1bw8q36rFLpLAdu3axb333svu3f+ipGQGu3cv5Z//fI+VK1eW77Nz549Al/LXznVh\n+/Yfyl9v3ryZM888l6+/nkJR0RcsW3YCAweeF9TQymXLlrF7925uueUWUlNT6d+/P7/+9a+ZPXt2\n+T7nnnsuv/jFLwBo1KhRpePnzp3LqFGj6N69O4cddlil8iNVadiwIZMmTaJBgwacddZZNG3atPxX\nyK9+9SuOOeYYAHr06MGwYcN45513AvoMNS3L16pVK84//3waNWpEkyZNmDhxIu+++26N5xwxYgQt\nW7YkJSWFCRMmsG/fvqj8WjqYErtIAtu1axepqS2BsiXo0klNzWb79u3l+wwbNpTGje8EPgVW06TJ\n7xk+fGj5+x988AEpKX3xJo634cCBqXz55Xp27twZcBybN2+mc+fOlbZlZWWxadOm8tcHv1/T8Z07\nd67xi6V169aV+ugbN25MYWEhAB9++CEDBgygbdu2tGzZkscff5zvv/8+oM9Q07J8RUVFjBkzhuzs\nbFq2bMlpp53Grl27aoxz+vTp/Nd//RcZGRlkZGTw448/BhRLuJTYRRJYp06daNOmKSkpfwJ+BObi\n3Kf07t27fJ/rr7+W3/3uv2nTZgiZmecyadIVjBz5P+XvZ2RkUFr6NbDfv2UTzpXQpEmTgOM4/PDD\n+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\nRK5CYII=\n",
  260. "text/plain": [
  261. "<matplotlib.figure.Figure at 0x7f245e8bbb38>"
  262. ]
  263. },
  264. "metadata": {},
  265. "output_type": "display_data"
  266. }
  267. ],
  268. "source": [
  269. "import random\n",
  270. "\n",
  271. "n_epoch = 500 # epoch size\n",
  272. "a, b = 1, 1 # initial parameters\n",
  273. "epsilon = 0.001 # learning rate\n",
  274. "\n",
  275. "for i in range(n_epoch):\n",
  276. " data_idx = list(range(N))\n",
  277. " random.shuffle(data_idx)\n",
  278. " \n",
  279. " for j in data_idx:\n",
  280. " a = a + epsilon*2*(Y[j] - a*X[j] - b)*X[j]\n",
  281. " b = b + epsilon*2*(Y[j] - a*X[j] - b)\n",
  282. "\n",
  283. " L = 0\n",
  284. " for j in range(N):\n",
  285. " L = L + (Y[j]-a*X[j]-b)**2\n",
  286. " \n",
  287. " if i % 100 == 0:\n",
  288. " print(\"epoch %4d: loss = %f, a = %f, b = %f\" % (i, L, a, b))\n",
  289. " \n",
  290. "x_min = np.min(X)\n",
  291. "x_max = np.max(X)\n",
  292. "y_min = a * x_min + b\n",
  293. "y_max = a * x_max + b\n",
  294. "\n",
  295. "plt.scatter(X, Y, label='original data')\n",
  296. "plt.plot([x_min, x_max], [y_min, y_max], 'r', label='model')\n",
  297. "plt.legend()\n",
  298. "plt.savefig(\"gd_res.pdf\")\n",
  299. "plt.show()"
  300. ]
  301. },
  302. {
  303. "cell_type": "markdown",
  304. "metadata": {},
  305. "source": [
  306. "## 3. 如何可视化迭代过程"
  307. ]
  308. },
  309. {
  310. "cell_type": "code",
  311. "execution_count": 11,
  312. "metadata": {},
  313. "outputs": [
  314. {
  315. "name": "stdout",
  316. "output_type": "stream",
  317. "text": [
  318. "fig_name = gd_res_00.pdf\n"
  319. ]
  320. },
  321. {
  322. "data": {
  323. "image/png": "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\n",
  324. "text/plain": [
  325. "<matplotlib.figure.Figure at 0x7f7937fcef98>"
  326. ]
  327. },
  328. "metadata": {},
  329. "output_type": "display_data"
  330. },
  331. {
  332. "name": "stdout",
  333. "output_type": "stream",
  334. "text": [
  335. "fig_name = gd_res_01.pdf\n"
  336. ]
  337. },
  338. {
  339. "data": {
  340. "image/png": "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\nA1bGYQAAAABJRU5ErkJggg==\n",
  341. "text/plain": [
  342. "<matplotlib.figure.Figure at 0x7f7937f71e48>"
  343. ]
  344. },
  345. "metadata": {},
  346. "output_type": "display_data"
  347. },
  348. {
  349. "name": "stdout",
  350. "output_type": "stream",
  351. "text": [
  352. "fig_name = gd_res_02.pdf\n"
  353. ]
  354. },
  355. {
  356. "data": {
  357. "image/png": "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\n",
  358. "text/plain": [
  359. "<matplotlib.figure.Figure at 0x7f7937542780>"
  360. ]
  361. },
  362. "metadata": {},
  363. "output_type": "display_data"
  364. },
  365. {
  366. "name": "stdout",
  367. "output_type": "stream",
  368. "text": [
  369. "fig_name = gd_res_03.pdf\n"
  370. ]
  371. },
  372. {
  373. "data": {
  374. "image/png": "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\nxbZAUIGBAAAAAElFTkSuQmCC\n",
  375. "text/plain": [
  376. "<matplotlib.figure.Figure at 0x7f793756c400>"
  377. ]
  378. },
  379. "metadata": {},
  380. "output_type": "display_data"
  381. },
  382. {
  383. "name": "stdout",
  384. "output_type": "stream",
  385. "text": [
  386. "fig_name = gd_res_04.pdf\n"
  387. ]
  388. },
  389. {
  390. "data": {
  391. "image/png": "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\n",
  392. "text/plain": [
  393. "<matplotlib.figure.Figure at 0x7f793752deb8>"
  394. ]
  395. },
  396. "metadata": {},
  397. "output_type": "display_data"
  398. },
  399. {
  400. "name": "stdout",
  401. "output_type": "stream",
  402. "text": [
  403. "fig_name = gd_res_05.pdf\n"
  404. ]
  405. },
  406. {
  407. "data": {
  408. "image/png": "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\n",
  409. "text/plain": [
  410. "<matplotlib.figure.Figure at 0x7f7937589978>"
  411. ]
  412. },
  413. "metadata": {},
  414. "output_type": "display_data"
  415. },
  416. {
  417. "name": "stdout",
  418. "output_type": "stream",
  419. "text": [
  420. "fig_name = gd_res_06.pdf\n"
  421. ]
  422. },
  423. {
  424. "data": {
  425. "image/png": "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\nAABJRU5ErkJggg==\n",
  426. "text/plain": [
  427. "<matplotlib.figure.Figure at 0x7f7937861ac8>"
  428. ]
  429. },
  430. "metadata": {},
  431. "output_type": "display_data"
  432. },
  433. {
  434. "name": "stdout",
  435. "output_type": "stream",
  436. "text": [
  437. "fig_name = gd_res_07.pdf\n"
  438. ]
  439. },
  440. {
  441. "data": {
  442. "image/png": "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\nNqBBAAAAAElFTkSuQmCC\n",
  443. "text/plain": [
  444. "<matplotlib.figure.Figure at 0x7f793785c160>"
  445. ]
  446. },
  447. "metadata": {},
  448. "output_type": "display_data"
  449. },
  450. {
  451. "name": "stdout",
  452. "output_type": "stream",
  453. "text": [
  454. "fig_name = gd_res_08.pdf\n"
  455. ]
  456. },
  457. {
  458. "data": {
  459. "image/png": "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\npMD8f5ABORzDBhiUAAAAAElFTkSuQmCC\n",
  460. "text/plain": [
  461. "<matplotlib.figure.Figure at 0x7f7937671e10>"
  462. ]
  463. },
  464. "metadata": {},
  465. "output_type": "display_data"
  466. },
  467. {
  468. "name": "stdout",
  469. "output_type": "stream",
  470. "text": [
  471. "fig_name = gd_res_09.pdf\n"
  472. ]
  473. },
  474. {
  475. "data": {
  476. "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXYAAAEKCAYAAAAGvn7fAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3Xl8VPXZ9/HPxT6KQaJRXNpQawVvKwKKtdrWQXHt89Ru\nt5Z6u1Jti1td2qJdiNb9rmsVFQVEK2jr7tO6UUjdDaKIC2hpTdwKSUVRIGAg1/PHOcFJmCRzZp/J\n9/16zcvJmTnnXJPSa375nd+5LnN3RESkfPQqdAAiIpJdSuwiImVGiV1EpMwosYuIlBkldhGRMqPE\nLiJSZpTYRUTKjBK7lDUz+8TMhubguK3hsX+X7WMnOdeXwnOtN7MTc30+KX1K7JIzZvaWmR0QPj/O\nzJ7M8fnmdUx87r6Fu9fn4HQOjHD33yScf6SZvWBmq81svpnt0Umcfwu/GHolbKs1s2Yz+zhM4osT\nPsM/3H0LIKe/PykfSuySL0aQDNPb2ax3FmPJBgsfwQ9mfYH7gduALcP/PmBmfdrtZPZDoA+b/i4c\nmOjuFeGX0a65DF7KmxK75JyZDQduAL4ajkZXhNv7mdnvzazBzP5tZlPMrH/42v5m9o6Z/cLM/g1M\nN7MtzewhM2s0sw/C59uH778Q+DpwXTjqvTbc3mpmO4XPK8zstnD/t8zsVwkxHmdmT5rZ/5rZCjP7\np5kdGuFjxoHe7n6tu7e4+x8IEv8BCeeoAH4L/LyzX1WE84l0Soldcs7dlwA/AZ4NR6OV4UuXATsD\nI8L/7kCQ+NoMIRj9fh44meDf63Tgc+G2NcD14Tl+TTBVcWo46j297fQJx7sO2AIYSpCIjzWzExJe\n3xtYDGwF/C8wLcLH3A1Y1GHby+H2NhcDU4DlnRzjkvBL50kz2z/CuUXaUWKXQjoJONPdV7r7auBS\nYHzC6xuAyeEIeJ27r3D3+8Lnq4FLgG90cw4DCOezjwImufsad28ArgCOSXhvg7tP96Ay3kxgiJlt\nk+JnGQis7LDtY4IvEsxsL2Bf4A+d7P8LYCeCL7ebgYfM7AspnluknT7dv0Uk+8ysCtgMWGC2cQai\nF+2nI5rcvSVhnxhwNXAIwUjegIFmZt59mdKtCf69v52wrYEgkbZZ1vbE3ZstCGwg0JjCR1oFVHTY\nNgj4JDzO9cAZ7u6W8IETzjc/4cfbzGw8cHi4n0gkGrFLvnRMvP8hmErZzd0rw8eW7j6oi33OBr4E\njHH3LflstG6dvL/j+VqA6oRt1cB7ET5DV14jmFJKNAJ4lSDh7wXcFV4vqCOI+V0z26+T4zmac5c0\nKbFLviwHdgxXjxCOsG8Grg5H75jZDmZ2cBfH2AJoBj42s0qgJsk5dkq2o7u3An8CLjKzgWZWDZwJ\n3J7+R2qnFthgZqeFF4VPB1qBee6+EtgOGAnsQTASBxgNPG9mg8zsYDPrb2a9zexoggvBj2QpNulh\nIid2M+tlZi+a2YPhz4PN7DEze8PMHjWzQd0dQ3qMxBH0XIJR7TIza5vamAQsBZ4zs4+Ax4Bdujje\n1QTTN/8BngH+2uH1a4D/DlfMXJ0khtMJ/kr4F/AE8Ed3n5Fi/F0Kp4y+DRwHfAgcCxzh7uvD1xvb\nHkBTeOzG8PW+wIUEUz5NwCnhvktTPb9IIovaQcnMzgT2BCrc/Vtmdhnwgbtfbma/BAa7+6QcxCpS\nNMxsDbAOuNbdJ+f4XDsD8wm+ACa6+225PJ+UvkiJ3cx2BGYAFwFnhYl9CbC/uy83syFArbsPz024\nIiLSnahTMVcR3FyR+G2wrbsvB3D3ZUCqy8NERCQHUk7sZvZNYLm7L6Trq/Xqji0iUkBR1rHvB3zL\nzA4HYsAWZnY7wcWwbROmYpKu+TUzJXwRkTS4e6SlrymP2N39PHf/vLvvBPwAmOvuxwAPAceHbzsO\neKCLY5TsY/LkyQWPoafGX8qxK/7CP0o9/nRkYx37pcBBZvYGcGD4s4iIFEhaJQXc/e/A38PnK4Bx\n2QxKRETSpztPUxSPxwsdQkZKOf5Sjh0Uf6GVevzpiHyDUtonSqlOk4iIJDIzPFcXT0VEpDQosYuI\nlBkldhGRMqPELiJSZpTYRUTKjBK7iEiZUWIXESkzSuwiImVGiV1Eyk5TUxPz58+nqamp0KEUhBK7\niJSV2bPvorp6OAcd9BOqq4cze/ZdhQ4p71RSQERyrqmpifr6eoYOHUpVVVVOz1NdPZzm5nnACGAR\nsdhYGhqW5PS8uaSSAiJSdPI5gq6vr6dfv6EESR1gBH37VlNfX5+zcxYjjdhFJGfyPYLWiD2gEbuI\n5Ey+R9BVVVVMmzaFWGwsFRWjicXGMm3alJJN6ulKecRuZv2BJ4B+BA067nb3881sMnASn/U6Pc/d\nH0myv0bsIj1MoUbQ+ZrTz4d0RuyRpmLMbDN3X2NmvYGngdOBw4BP3P3KbvZVYhfpgWbPvosJEybS\nt281LS0NTJs2hfHjjyp0WCUj54k94USbEYzefwocDqxy9yu62UeJXaSHKqcRdL7lfI7dzHqZ2UvA\nMuBxd58fvnSqmS00s1vMbFCUY4pI+auqqmLMmDFZS+o9/Qak7kRqZu3urcAoM6sA7jOz/wKmABe4\nu5vZhcCVwIRk+9fU1Gx8Ho/He2QvQhHJTNvUTr9+Q/n00/qym9qpra2ltrY2o2OkvdzRzH4DrE6c\nWzezauAhdx+R5P2aihHpobI1FVOOyxm7k9OpGDPbum2axcxiwEHAEjMbkvC27wKvRglARMpbNm9Q\nSmX5pKZpos2xbwfMM7OFwPPAo+7+V+ByM1sUbt8fODMHcYpIhgqR8JqampgwYSLNzfNYuXIBzc3z\nmDBhYtoxDB0aTL/AonDLIlpaGhg6dCigOjEbuXteHsGpRKQQZs2602OxSh80aLTHYpU+a9adeTlv\nXV2dDxo02sE3PioqRnldXV3ax2z7LBUVo9p9lsbGRo/FKh1eDs/1ssdild7Y2Jitj1MQYe6MlG9V\nUkCkzBVyXjpX5042Zz9//nwOOugnrFy5gH15mjcYRkvFwcyZcxNjxozJzgcqAJUUEJFNFLIwVq5u\n8U+2fHLo0KHYure4nOO5m++zM4+0m6bpSSItdxSR0tN+XjoYNecz4Y0ffxTjxh2Q8aqY7lbWVDU0\nUL/VZsz99yz222wYyzac0SPrxICqO4r0CKV+W3+Xa9c//RQuvBBuugmuvpqmAw+kvqGhbO5yzVtJ\ngXQosYsUVqne1t/lPP2yZXDssbDDDjB1Kmy/faHDzbp0ErumYkR6iKqqqpJK6G3arhE0N392jWBA\nn8+zrqYG/vQnuOwyOOEEsEi5r6wpsYtIUet4jWAXHuT2Va+wzStbwAsvQHV1gSMsPloVIyJFrW1l\nTf++X+d0tuZpjuCP1pt7fvxTJfVOaI5dRIreBy+8wGt770Nv34njuZ2lxMq+RkwbrWMXkfLiDlOn\nUjFuHI/1H8I3WMxSvkJPbVKdKiV2ESlO774Lhx0GU6fyyUMPcaU108pr4Yv5XYtfapTYRaS4uMPt\nt8Po0bDffvDss1R+/etqUh2B5thFpHgsXw4/+QksXQq33QajRrV7uVTX4mdCc+wiUrruvhv22AOG\nDw+WMXZI6pD9FnvlSuvYRaSwVqyAU0+FBQvg/vthn30KHVHJ04hdRArnL3+B3XeHbbaBl15SUs+S\nlEfsZtYfeALoF+53t7ufb2aDgbuAaqAeONLdV+YgVhEpFx9/DGeeCXPnwh13gBrbZ1XKI3Z3XweM\ndfdRwEjgMDPbG5gEzHH3YcBc4NycRCrSw5VNL8+//Q1GjIA+fWDRom6Tetl87jyKNBXj7mvCp/0J\nRu0OHAHMDLfPBL6dtehEBCiTXp6rVwdz6ccdBzfeGJTZ3WKLLncpi89dAJGWO5pZL2AB8EXgenc/\n18w+dPfBCe9Z4e6VSfbVckeRNBSytV3WPP10kNC/+lW49loYPLjbXcric2dBzsv2unsrMMrMKoD7\nzGw3glF7u7d1tn9NTc3G5/F4nLjm1US6laxsbdvt9EWf4Nauhd/+NrjhaMoU+M53Ut61pD93Bmpr\na6mtrc3oGGnfoGRmvwHWAD8C4u6+3MyGAPPcfdck79eIXSQNhR65pn1T0AsvBKP0XXeFG26AiLEW\n+nMXi5zeoGRmW5vZoPB5DDgIWAw8CBwfvu044IEoAYhI13LVEDoVac1xf/opTJ4Mhx8Ov/41/PnP\nkZM6FPZzl7qUR+xmtjvBxdFe4eMud7/IzCqBPwGfAxoIljt+lGR/jdhFMpDv2+nTGjG/8kowSt9u\nO7j55qy0quuJZQQS5XSO3d1fAUYn2b4CGBflpCISXb5b20Wa416/Hn7/e7jiCrj0UjjxxKy1qivV\nln6FpJICIpJUx5Z0nZbKffPNYJS+2WZqVVckVFJARJLqdo67tRWuuQb23ReOPhoef1xJvUiobK+I\ndCnpHPdbb/HpMcew7pNPaJk6lcqvfKWwQZYxle0VkaxrVyo3bFW3bsQe1Dz/ItX1vdlx7OG6I7TI\naMQuUsayuqLkvfdgwgRali1jnyVv8eK6J+nJ68vzRSN2Edkoa3VW3OGPfwwaX+y7Ly/fcAP/HLAz\nQVIHNZYuPhqxi5ShrN212dgYtKp7882gVd3o0bojNM80YhcR4LM16BmNqu++OyivO2xY0N1odHAb\ni+4ILX4asYuUoYxG1W2t6l54AWbODCoydnKOnnxHaL5oxC5SJjJtLpH2qLqtVV1VFSxc2GlSbzuH\nGksXJ43YRYrM7Nl3MWHCRPr1C+78nDZtCuPHH5XWsVIeVX/8MZx1VtDdaPp0GDs2zegl29IZsSux\nixSRglyYnDs3qO1y8MFBrZduuhpJfuW80YaI5FZem0usXg2TJsF99wWVGA87LLvHl4LRHLtIERk4\ncCBr1y4FasMtnRTeytQzz8DIkfDRR0GpXSX1sqLELlIkZs++iz33/Bq9elUDhzNgwBeyv5Rw7Vr4\nxS/ge9+Dyy8PWtal0H9USovm2EWKQLK59f799+ell55h11036TSZngUL4NhjYfhwuPHGtLoaSf7l\nujXejmY218xeM7NXzOy0cPtkM3vXzF4MH4dGDVykp0t2Q1H//l9g1apVmR+8pQVqaoLpll/9Krjx\nSEm9rEW5eLoeOMvdF5rZQGCBmT0evnalu1+Z/fBEeoaUm1pE1daqbsiQYF16FlrVSfFLecTu7svc\nfWH4fBVBI+sdwpez0wNLpIfK+m36GzbAZZfBAQfAKacENx4pqfcYac2xm9lQgsv2XwbOBo4HVgIv\nAGe7+8ok+2iOXaQbWblNv61VXSwGM2aoq1GJy8s69nAa5m7gDHdfZWZTgAvc3c3sQuBKYEKyfWtq\najY+j8fjxOPxqKcXKWsZNW5ubYXrroMLLgjm1CdOhF5a+FZqamtrqa2tzegYkUbsZtYH+H/Aw+5+\nTZLXq4GH3H1Ektc0YhfpRMYj9fp6OOEEWLcuKNz1pS/l7lySV/koAjYdeD0xqZvZkITXvwu8GvGY\nIj1aRg0x3IO7RvfaK1j18uSTXSb1rDXfkKKW8ojdzPYDngBeATx8nAf8EBgJtAL1wI/dfXmS/TVi\nF+kgo9ow770HP/pR0Axj5kz48pdzdy4pmJzOsbv700DvJC89EuWEIvKZtGrDuMMddwTVGE85Bc47\nD/r2zc25pCSpCJhIAUVev57Yqu6RRzZ2NcrJuaRk6ZK5SJ4ka54Raf36PffAHnvALru0a1WXKrW0\n6zlUK0YkD7prntHlSpUVK+C002D+fLj1Vth334xi0aqY0qJGGyJFKKOLln/9K5x8clCN8ZJLYLPN\n8hGyFBE12hApQmldtPz4Yzj7bHj88aC0rlrVSQSaYxfJsfYXLaHbi5Zz58KIEWAGixYpqUtkSuwi\nOZbyRcvVq+H004Oa6TfcAFOnQkVFYYKWkqY5dpE86fKi5TPPBIW7vvIVuPZaqKwsTJBSdHTxVKTU\nrF0LkyfDbbfB9dfDd7+b8q5a3dIz5KNWjAiQfE22RLRgQVDjZelSePnlSEldNV+kKxqxS2TdrcmW\nbrS0wEUXwZQpcNVV8MMfBhdKU6SaLz2LRuySc01NTUyYMJHm5nmsXLmA5uZ5TJgwUSP3VL36Kuyz\nD9TVwUsvwdFHR0rqkLw/atvySRFQYpeIlFTS1NaqLh6Hn/40aFW3ww7d7pZM5OWT0uPoBiWJRIWk\n0vDmm3D88TBgALzwAmT4u2pbPjlhwlj69q2mpaVBNV+kHc2xS2Rtc+yJSUVz7Em0tgYrXc4/P1j5\ncsopWW1Vp1UxPUNOlzua2Y7AbcC2BE01bnb3a81sMHAXUE3QaONINbMuf0oq3aivhxNPhObmoAnG\nLrts8pZUf4f6Xfdsub54uh44y913A74KnGJmw4FJwBx3HwbMBc6NEoCUpqqqKsaMGaNE05E73HIL\njBkDhx4KTz2VNKl3XK544YUXJ70ArWWNko60p2LM7H7guvCxv7svD/uf1rr78CTv14hdSlLKI+b3\n3oOTToJly4IbjjppVZdsuSJ8lQED+jF9+o0bp7W0rFEgj8sdzWwoQZ/T54Bt23qcuvsyYJt0jilS\njFIaMbe1qhs1KigJ8PzzXfYfTbayCIaxdu317ZaOagWSpCvyqhgzGwjcDZzh7qvMrOMwXMNyKQuJ\na/aDkruLmDBhLOPGHfDZiLmxMVi++MYb8PDDsOee3R432coiaAAOalfOVyuQJF2REruZ9SFI6re7\n+wPh5uVmtm3CVExjZ/vX1NRsfB6Px4nH45EDFsmXbuuo33tvsNLl2GODEfuAASkdN3G5YnPzYGAF\ncAPw73aJW8sae6ba2lpqa2szOkakOXYzuw34j7uflbDtMmCFu19mZr8EBrv7pCT7ao5dSkpnc9xv\nv/wcW59/fjDlMnNm2q3qmpqauOmmm7noov+lX78vdLp0VKtierZcL3fcD3gCeIVgusWB84A64E/A\n5wj+njzS3T9Ksr8Su5Scjmv2/3raScTv+GNQsOuSS2DzzTM+hxK3dEVle0VyoKmpibdffZX/mj6d\n2JNPwvTpcMABhQ5Legj1PBXJgapXX6XqxBNh3LigVZ26GkmRU2IX6cyaNTBpUnCRdOpUOPzwQkck\nkhJVdxRJ5plnYORI+OCDYJSupC4lRCN2kUTr1gUFu269NSjg9b3vFToikciU2EXavPhisCZ9l12C\nUfo2uolaSpOmYqRHateztaUlKK176KFw7rlwzz1K6lLSNGKXkpPpuu/Enq1fXLuUx7fbisrhw4JW\ndWl2NRIpJhqxS0nJtIxtW/2Xdc1zOHnlUTy6rhe/eW85TTNnKqlL2VBil5KRjUba9fX1DO89hCc5\nhcN4mL14iT/GhlHf0JDDyEXyS4ldSkbGZWxbWxk+Zw6PrVrMnXydA/kbDXwcuWJiu/l5kSKkxC4l\no30ZW4hUxrahAcaNY4sHH+S5K67gltgtbFGxF7HY2EgVE9XRSEqBasVISYncSNsdpk0LVrucc07w\n6N07rQuw6mgkhaBaMVL2xo8/inHjDkgtKb//PvzoR0GrurlzYffdN75UVVUVORl3W59dpEhoKkZK\nTreNtN1h1qygJMDeewd10xOSeroymgoSySON2KW8NDUFreoWL065VV2q1NFISoXm2KV8JLaqO//8\nlFvVRaXGGJJPue6gNA34P8Bydx8RbpsMnMRnfU7Pc/dHOtlfiV1y48MP4bTTgimXW2+F/fYrdEQi\nWZNOYo8yxz4DOCTJ9ivdfXT4SJrURXLm4YeD+fPBg2HhQiV1ESLMsbv7U2ZWneSlSN8kIlnxySdw\n9tnw2GNw221qVSeSIBurYk41s4VmdouZDcrC8US6VlsLI0ZAa2tQXldJXaSdTBP7FGAndx8JLAOu\nzDwkKXYFu6V+zRo44wz4n/+B666DW24paP9RlRaQYpXRckd3T/wXfTPwUFfvr6mp2fg8Ho8Tj8cz\nOb0UQGLJ208/re/+zs9sefZZOO44GDMmGKVXVub+nF0o2O9Byl5tbS21tbUZHSPSckczGwo85O67\nhz8Pcfdl4fMzgTHu/sNO9tWqmBJXkFvqE1rVrbz4Yt7cffeCLzNUaQHJp5yuijGzWcAzwC5m9raZ\nnQBcbmaLzGwhsD9wZqSIpaRkWl2xs6mLTqc0XnwR9toL3niDe2suYLtTf14UxbcyrjIpkmvunpdH\ncCopZY2NjR6LVTq87MF9+y97LFbpjY2N3e47a9adHotV+qBBoz0Wq/RZs+7sfPunn7qff757VZX7\n7bd74/LlaZ83FzL5PYhEFebOaPk26g7pPpTYy0NbIq6oGNUuQXels0T4+uuvb7J9dP8K/3SPPdwP\nOcT9nXfc3b2urs4HDRodvid4VFSM8rq6uqx+tsbGRq+rq4v0RRXl9yCSDiV2yYsoCdC988R86623\nbtzei/V+Dpf7f6y3/+u889xbW9udL9cj5M7+ouhK1N+DSDqU2KUodTdi35kH/Sn29Xns5cP7D0qa\nKHM5QtbUihSzdBK7yvZKzrVVRYzFxlJRMXpj16Jdhw3jiSO/xbMcwQP9G/jmgH/y2xk3JV1ZMn78\nUTQ0LGHOnJtoaFiS1aWFxXIxVOviJVtU3VHypl1VxDVr4MQTYc0aVlx5Jf/s06dgyxiLYfmi1sVL\nZ3Ja3TFTSuwCBDMd06fDpElBrZdzzoE+hW8LELnlXhYVwxeLFC+1xpPi9v77cNJJwX87tKortEgt\n97JMLfck2zTHLrnnYau6UaOCG46y1Kou27ptuZcjarkn2aYRu+RWYqu6v/wlSOzSjlruSbZpjl1y\n5/77g6R+zDFwwQU5a1VXLtRyT5LRxVMpDh9+CKefHlRknDlTXY1EMpDr1ngi3XvkkaAJxpZbwssv\nK6mLFIDm2CU7PvkkWLr4yCNBQ+kDDyx0RCI9lkbskrm2VnUbNsArr+Q0qevuTJHuKbFLl7pMpGvW\nwM9+BkcfnZdWdbNn30V19fCiqMkuUsyU2KVTXSbSZ5+FkSOhsTFoVffNb+Y0lqamJiZMmEhz8zxW\nrlxAc/M8JkyYqJG7SBJROihNM7PlZrYoYdtgM3vMzN4ws0fNbFBuwpR86zSRvvsunHsufOc7cPHF\nwY1HW22V83iKpVCXSCmIMmKfARzSYdskYI67DwPmAudmKzAprGSJdM9eVWwej8OSJcGKl+9/P2/x\n6O5MkdSlnNjd/Sngww6bjwBmhs9nAt/OUlxSYImJtA8t/IaJ3LP6TdafeSbcey9su21e4+ms9K9u\n5BHZVKQblMysGnjI3UeEP69w98qE19v93GHfHnGDUjndPTh79l38/oSTuaWlhf+wntXXXM23T51Y\n0JjK6fcrkopiqO7YZeauqanZ+DwejxOPx7N8+sIqq5raGzYw/t23OWrzPrz941PY8Wc/o2qbbQod\nFVVVVUroUtZqa2upra3N6BiZjtgXA3F3X25mQ4B57r5rJ/uW9Yi9rGpqL10Kxx0HffsGtdN32qnQ\nEYn0WPkoKWDho82DwPHh8+OAByIer2x0tWqjZG6qaW2F66+HffaBI48MaqYrqYuUnJSnYsxsFhAH\ntjKzt4HJwKXAn83sRKABODIXQZaC9qs2ghF7S0sDL764kP33P7Tb6Zm2ueOBAweyatWq/M8hv/12\n0Kpu1Sp4+mkYNix/5xaR7Ira/TrdR3Cq8jZr1p0ei1V6RcUoj8Uq/cYbp3osVunwsgfdJl72WKzS\nGxsbk+4Xi+3kEPNYbHePxSp91qw7cx90a6v7tGnuW2/tfskl7i0tuT+niKQszJ2R8q3K9mZZ4qqN\n+vp6DjroJ6xcuWDj6xUVo5kz5ybGjBmz8f3B3Pw9wPeAPM7RJ7aqmzkzqPciIkVFZXuLQGJ7tVRu\nqvlsbn5zYCh5ubPSHWbPDlrV7bln0KpOSV2kbKhsbw6l0vLss+S/Gqin4xx9xzsrM17H3dQEEyfC\na6+pVZ1ImdKIPcfGjz+KhoYlzJlzEw0NSza5cPrZHZXfo1+/gcA+xGK7J72zMuPqhvffH4zMhw6F\nF1/sMqmXzEoeEdlU1En5dB/0gIun6Zo1604fMGBL33zzYd6/f4X/7ncXbXKBtbGxMaULsUmtWOF+\nzDHuX/yi+5NPphRPLFbpgwaNzt9FXBFJijQunmrEnmcdR8JtVRTXrv07q1cvYd26J7n44is22S/t\n6oaPPhqM0isqgsJdX/tat/GpPK5IaVNiz6NkUympJuzI1Q0/+QR+/GM4+WSYMSNohLH55t3GqPK4\nIqVPiT1HOhuZdxwJDxw4MKWEHam64d//DnvsAevXB00wxo1LOW6VxxUpA1HnbtJ90IPm2JPNUdfV\n1fmgQaPD+fHgUVExyuvq6ja5samrOe3Gxkavq6tLPre+Zo37z37mvv327g89lHH8qcQjIrmFblAq\nvM6KgS1Y8BR77vm1TouEZbyM8bnngsJdo0cH0y4ZdjVSeVyR4lAMZXt7vLY56ubm9nPUq1at6nJN\ne9rlaNetg/PPD6ow/uEP8N//nZXPofK4IqVLiT3LOisGNnToUMaMGcO4cQdkbyT80kvBKH2nnYIV\nL3nuaiQixUkXT7Osu4uciSUH0tbSAr/7HRxyCPz853Dffe2Sum4uEunZNMeeIzmbo3799WCUXlkJ\n06bBjju2e7msujiJSFpz7ErspWLDBrjqKrj0UrjoomB9urX/37qsujiJCKCLp+Vr6VI4/njo3Rvq\n6jrtatTZhdv6+noldpEeJCtz7GZWb2Yvm9lLZlaXjWMK7VvVff/7MG9el63qdHORiED2RuytBE2t\nP8zS8XqUpPPxabSqS6VMsIiUv6zMsZvZW8Be7v5BF+/RHHsSm1zsvOV6xq9dA7/8JZx1VrDqpU+0\n71/dXCRSPgp28dTM/gV8BGwAprr7zUneU/aJPWpC7Xixcwh/Y3qvwzho113oM2uWuhqJSEEvnu7n\n7v82syrgcTNb7O5PdXxTTU3NxufxeJx4PJ6l0xdeOssMP7vYuTtHcSfXcAYz+1RSNXUqeympi/RI\ntbW11NbWZnSMrC93NLPJwCfufmWH7WU7Yu9qmSHQ6Si+qamJ0Z/fhSvW7s2XeYfj+DWvxU7T8kQR\n2aggzay9UYKgAAAHU0lEQVTNbDMzGxg+3xw4GHg10+OWks5qmN90081dtrKreuYZ3hhgvNfnCeJb\n9OO12Gm62CkiGct4xG5mXwDuA5xgaucOd780yft61Ih9wID9MeuV/Gahvn3hjDOC1S633krTsGG6\n2CkiSRVkxO7ub7n7SHcf5e67J0vq5S5ZfZhf/ernSUfxK2bPht13h4EDYeFC+NrXslM/RkQkpJIC\nWZS4KgZoN4ofyLNc1XssJ2xXRe8ZMyJ1NRKRnku1YopM20qZuFVyffO/8G98g50euB8GDSp0aCJS\nIpTYcyitm36am1lz5pn0ufdemq+6ikFHH53bIEWk7BRkjr0nmD37ri5XtyT1/PMwahSbrVxJv8WL\nldRFJG80Yu9G5FK4ba3qpk0LWtUdeWS+QxaRMqIRew50tka9vr5+0zcvXAhjxsBrr8GiRUrqIlIQ\nSuzdSKkU7vr1cOGFcPDBcM45cP/96j8qIgWjRhvd6LYUblurusGDYcEC+NznChuwiPR4mmNP0Sar\nYjZsgKuvhksu6bRVnYhIprTcMV8SW9XNmNFlVyMRkUzo4mmutbbClCkpt6oTESkEzbGn6u23YcIE\n+PhjeOopGD680BGJiCSlEXuqnnsOxo4NKjIqqYtIEdMcu4hIEdMcu4iIKLGLiJSbrCR2MzvUzJaY\n2Ztm9stsHFNERNKTjdZ4vYA3gQOB94H5wA/cfUmH92mOXUQkokLNse8N/MPdG9y9BbgTOCILxxUR\nkTRkI7HvALyT8PO74TYRESmAvN6gVFNTs/F5PB4nHo/n8/QiIkWvtraW2trajI6RjTn2fYAadz80\n/HkS4O5+WYf3aY5dRCSiQs2xzwd2NrNqM+sH/AB4MAvHFRGRNGQ8FePuG8zsVOAxgi+Kae6+OOPI\nREQkLSopICJSxFRSQERElNhFRMqNEruISJlRYhcRKTNK7CIiZUaJXUSkzCixi4iUGSV2EZEyo8Qu\nIlJmlNhFRMqMEruISJlRYhcRKTNK7CIiZUaJXUSkzCixi4iUmYwSu5lNNrN3zezF8HFotgITEZH0\nZGPEfqW7jw4fj2TheEUp0+ayhVbK8Zdy7KD4C63U409HNhJ7pM4eparU/3GUcvylHDso/kIr9fjT\nkY3EfqqZLTSzW8xsUBaOJyIiGeg2sZvZ42a2KOHxSvjf/wtMAXZy95HAMuDKXAcsIiJdy1ozazOr\nBh5y9xGdvK5O1iIiaYjazLpPJiczsyHuviz88bvAq9kKTERE0pNRYgcuN7ORQCtQD/w444hERCQj\nWZuKERGR4pDXO0/N7HIzWxyuornHzCryef50mNmhZrbEzN40s18WOp4ozGxHM5trZq+FF71PL3RM\n6TCzXuENcA8WOpaozGyQmf05/Hf/mpl9pdAxRWFmZ5rZq+GCiTvMrF+hY+qKmU0zs+Vmtihh22Az\ne8zM3jCzR4t59V4n8UfOm/kuKfAYsFu4iuYfwLl5Pn8kZtYLuA44BNgNGG9mwwsbVSTrgbPcfTfg\nq8ApJRZ/mzOA1wsdRJquAf7q7rsCewCLCxxPysxse+A0YHS4KKIP8IPCRtWtGQT/f000CZjj7sOA\nuRR33kkWf+S8mdfE7u5z3L01/PE5YMd8nj8NewP/cPcGd28B7gSOKHBMKXP3Ze6+MHy+iiCp7FDY\nqKIxsx2Bw4FbCh1LVOHI6uvuPgPA3de7+8cFDiuq3sDmZtYH2Ax4v8DxdMndnwI+7LD5CGBm+Hwm\n8O28BhVBsvjTyZuFLAJ2IvBwAc+fih2AdxJ+fpcSS4xtzGwoMBJ4vrCRRHYV8HOgFC8GfQH4j5nN\nCKeSpppZrNBBpcrd3weuAN4G3gM+cvc5hY0qLdu4+3IIBjvANgWOJxMp5c2sJ/Zubmhqe8+vgBZ3\nn5Xt88umzGwgcDdwRjhyLwlm9k1gefhXh1F65Sv6AKOB6919NLCGYFqgJJjZlgSj3Wpge2Cgmf2w\nsFFlRSkOEiLlzUyXO27C3Q/q6nUzO57gT+sDsn3uHHgP+HzCzzuG20pG+Cf03cDt7v5AoeOJaD/g\nW2Z2OBADtjCz29z92ALHlap3gXfc/YXw57uBUroAPw74l7uvADCze4F9gVIbkC03s23dfbmZDQEa\nCx1QVFHzZr5XxRxK8Gf1t9x9XT7Pnab5wM5mVh2uBvgBUGorM6YDr7v7NYUOJCp3P8/dP+/uOxH8\n7ueWUFIn/PP/HTPbJdx0IKV1EfhtYB8zG2BmRhB/KVz87fjX3YPA8eHz44BiH+C0iz+dvJnXdexm\n9g+gH/BBuOk5d5+YtwDSEP5SryH4Epzm7pcWOKSUmdl+wBPAKwR/fjpwXimWVzaz/YGz3f1bhY4l\nCjPbg+DCb1/gX8AJ7r6ysFGlzswmE3yptgAvAT8KFxIUJTObBcSBrYDlwGTgfuDPwOeABuBId/+o\nUDF2pZP4zyNi3tQNSiIiZUat8UREyowSu4hImVFiFxEpM0rsIiJlRoldRKTMKLGLiJQZJXYRkTKj\nxC4iUmb+P8pHNdYYNQ1cAAAAAElFTkSuQmCC\n",
  477. "text/plain": [
  478. "<matplotlib.figure.Figure at 0x7f7937fc2710>"
  479. ]
  480. },
  481. "metadata": {},
  482. "output_type": "display_data"
  483. },
  484. {
  485. "name": "stdout",
  486. "output_type": "stream",
  487. "text": [
  488. "fig_name = gd_res_10.pdf\n"
  489. ]
  490. },
  491. {
  492. "data": {
  493. "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXYAAAEKCAYAAAAGvn7fAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3XmYVNW19/HvQgYLoRFMK8YB1CRqjAho45Q3Fg7RGxNj\n1GhIrmJsvElw1uSK06Wdx3gdUURAIRfEOGKuU7hSmjg1ooBjBhWcgG5FiUALCOv945zG6qa6u07N\nVf37PE89qT5V5+xdHVy1e5291zZ3R0REKkeXYndARERyS4FdRKTCKLCLiFQYBXYRkQqjwC4iUmEU\n2EVEKowCu4hIhVFgl4pmZp+b2cA8XHd9eO1Lc33tFG19M2zrSzM7Kd/tSflTYJe8MbN3zezA8PlI\nM/tLntub3TrwuXtvd1+Yh+YcGOTuFyW1P9jMXjKzlWY2x8z2SHptZBiY/xUG6X+Z2feSXu9rZg+a\n2Yrw9zYi6TP8w917A3n9/UnlUGCXQjGCYJjZyWab5LAvuWDhI/jBrBvwEDAF2Dz834fNrGvSOc+5\ne1X4ZVPl7s8kvTYO+AKoBv4duM3Mds33h5DKpMAueWdmuwC3AfuGo9Vl4fHuZnadmS0ys8VmNs7M\neoSvHWBm75vZf5rZYmCSmW1uZo+YWYOZfRI+/3r4/suA/wfcEo6GbwqPrzezHcPnVWY2JTz/XTO7\nIKmPI83sL2Z2rZktM7O3zeywCB8zDmzi7je5+1p3v5kg8B+Yxu+nJ3AUcKG7N7n7s8DDwPER2hfZ\nQIFd8s7d3wJ+DTwfjlb7hS9dDXwDGBT+7zbAfyWd2p9g9Ls98B8E/14nAduFx1YBt4ZtXEiQqjg1\nHA2f3tx80vVuAXoDAwkC8Qlm9suk14cBbwJbANcCEyN8zN2ABa2OzQ+PNxsSfqm8ZWYXmlnzf3/f\nAta6+9vtnCuSNgV2KaaTgbPcfbm7rwSuAkYkvb4OGBuOgFe7+zJ3fzB8vhK4EvheiusmM4AwiB4H\njHH3Ve6+CPg9LUfFi9x9kgeV8e4G+pvZlml+ll7A8lbH/kXwRQLwNPAdd98SODr8nL9LOvdf7Zwr\nEknXjt8ikntmVg30BOaabUhVdyEpbw00uvvapHNiwA3AoQQjeQN6mZl5x2VKv0bw7/29pGOLCP5K\naLak+Ym7N1nQsV5AQxofaQVQ1epYH+Dz8HoLk679upldAvyW4K+Wds8ViUojdimU1oH3Y4JUym7u\n3i98bO7ufdo55xzgm0CNu2/OV6N1a+P9rdtbCwxIOjYA+DDCZ2jP6wQppWSDwuNtae7334GuZrZT\n0mt7dHCuSJsU2KVQlgLbhrNHCEfYE4AbwtE7ZraNmX2/nWv0BpqAf5lZP6AuRRs7pjrR3dcD9wKX\nm1kvMxsAnAVMzfwjtZAA1pnZaeFN4dOB9cBTAGZ2WHNaJ7yZfCHBLBrcfRXwAHCJmfU0s+8CP8ph\n36STiRzYzayLmb1sZjPDn/ua2ZNm9jcze8LM+nR0Dek0kkfQTxGMQJeYWXNqYwzwT+AFM/sMeJLg\nRmJbbiBI33wMPAc82ur1G4GfhjNmbkjRh9MJ/kp4B3gG+IO7T06z/+0KU0ZHAiOBT4ETgB+7+5fh\nWw4CFpjZ58CfgPsI7hE0OyX8bA3AH4Bfu/ub6bYvksyi7qBkZmcBewJV7n6EmV0NfOLu15jZuUBf\ndx+Th76KlAwzWwWsBm5y97F5busbwBygGzDa3afksz0pf5ECu5ltC0wGLgfODgP7W8AB7r7UzPoD\nCXffJT/dFRGRjkRNxfw3wRSt5G+Drdx9KYC7LwHSnR4mIiJ5kHZgN7PDgaXuPo+WU9Ja0+7YIiJF\nFGUe+/7AEWb2AyAG9DazqQQ3w7ZKSsWknPNrZgr4IiIZcPf2BtMbSXvE7u7nu/v27r4j8DPgKXc/\nHngEODF820iCGhdtXaNsH2PHji16Hzpr/8u57+p/8R/l3v9M5GIe+1XAIWb2N4IpXVfl4JoiIpKh\njEoKuPvTBLUvcPdlwMG57JSIiGROK0/TFI/Hi92FrJRz/8u576D+F1u59z8TkRcoZdxQWnWaREQk\nmZnh+bp5KiIi5UGBXUSkwiiwi4hUGAV2EZEKo8AuIlJhFNhFRCqMAruISIVRYBcRqTAK7CJScRob\nG5kzZw6NjY3F7kpRKLCLSEWZPn0GAwbswiGH/JoBA3Zh+vQZxe5SwamkgIjkXWNjIwsXLmTgwIFU\nV1fntZ0BA3ahqWk2MAhYQCw2nEWL3spru/mkkgIiUnIKOYJeuHAh3bsPJAjqAIPo1m0ACxcuzFub\npUgjdhHJm0KPoDViD2jELiJ5U+gRdHV1NRMnjiMWG05V1VBiseFMnDiubIN6ptIesZtZD+AZoDvB\nBh33ufvFZjYWOJmv9jo9390fT3G+RuwinUyxRtCFyukXQiYj9kipGDPr6e6rzGwT4FngdODfgM/d\n/foOzlVgF+mEpk+fQW3taLp1G8DatYuYOHEcI0YcV+xulY28B/akhnoSjN5/A/wAWOHuv+/gHAV2\nkU6qkkbQhZb3HLuZdTGzV4AlwJ/dfU740qlmNs/M7jSzPlGuKSKVr7q6mpqampwF9c6+AKkjkTaz\ndvf1wBAzqwIeNLNvA+OAS9zdzewy4HqgNtX5dXV1G57H4/FOuRehiGSnObXTvftA1qxZWHGpnUQi\nQSKRyOoaGU93NLOLgJXJuXUzGwA84u6DUrxfqRiRTipXqZhKnM7YkbymYszsa81pFjOLAYcAb5lZ\n/6S3HQW8FqUDIlLZcrlAKZ3pk0rTRMuxbw3MNrN5wIvAE+7+KHCNmS0Ijx8AnJWHfopIlooR8Bob\nG6mtHU1T02yWL59LU9NsamtHZ9yHgQOD9AssCI8sYO3aRQwcOBAIv0S235lp3zuag7b7ZqesEwOA\nuxfkETQlIsUwbdo9Hov18z59hnos1s+nTbunIO3W19d7nz5DHXzDo6pqiNfX12d8zebPUlU1pMVn\naWho8J023dwfYz+vZy//BjM9FuvnDQ0Nufo4RRHGzkjxViUFRCpcMfPS+Wo7Vc7+7csvp/dFddzi\nF3El5/El3aiqGsqsWeOpqanJzQcqgkxy7JFmxYhI+WnOSzc1bZyXzndgb17iX1s7vMUCpWzbra6u\n/uoan3wCp5zCgJdfJt69J8+uPhLoRus0TWeiWjEiFa6jvHS+jRhxHIsWvcWsWeNZtOitjKcmprxH\n8NhjsMcesPXWdJ0/n1Mm39Hp68SAqjuKdArlvqy/9dz1u2+9np+++Dw8/jhMngzDh294b6Wtci1Y\nSYFMKLCLFFe5BrzWefr9uJupdhJfP+5YNr39duhT2YvdlWMXkTa1yEuXkeZ7BOuaduZixjCSuzln\n0wGcdfbZ1FR4UM+UcuwiUtIGDhzIzl/8kznszs78jT2YxkMs75Q3RdOlwC4ipWvdOqonTuTp7s6N\nm3zAUSygkR/y5ZdrmDXrqWL3rmQpxy4ipemf/4SRI6FHDz657jq23f8gvvjiVoJqJosrvkZMM22N\nJyLlzx1uvx322QeOPRZmzeKddevo0WNH4OdANZ11k+p06eapiJSODz+EUaPg44/hL3+BXXcFWs/F\nD1awdtbFR+nQiF1ESsM998DQocFI/bnnNgR10CbVUSnHLiLFtWwZjB4N8+fD1Kmw115tvrVc5+Jn\nQzl2ESkvjz0GgwbB1lvDyy+3G9Qh91vsVSrl2EWk8FasgN/+NgjsU6e2KAkg2dOIXUQK69lnYfBg\nWL0aFixQUM+DtEfsZtYDeAboHp53n7tfbGZ9gRnAAGAhcKy7L89DX0WknK1eDWPHwt13w223wZFH\nFrtHFSvtEbu7rwaGu/sQYDDwb2Y2DBgDzHL3nYGngPPy0lORTq6s9/KcPx9qauCtt4LnEYJ6WX/u\nIomUinH3VeHTHgSjdgd+DNwdHr8b0NewSI7lckPoglq3Dq66Cg4+GM45Bx58ELbcMu3Ty/ZzF1mk\n6Y5m1gWYC+wE3Oru55nZp+7eN+k9y9y9X4pzNd1RJAPF3NouK2+/DSecAD16BDXTBwyIdHrZfu4c\ny3vZXndfDwwxsyrgQTPbjWDU3uJtbZ1fV1e34Xk8Hicej0dpXqRTKubWdhlxh/Hj4aKL4MIL4bTT\noEv0eRpl97lzJJFIkEgksrpGxguUzOwiYBUwCoi7+1Iz6w/MdvddU7xfI3aRDBR75BppUdBHH0Ft\nLTQ2BtMYd90oFERqVyP2PC9QMrOvmVmf8HmMoMTam8BM4MTwbSOBh6N0QETaV8zl9JFy3DNmwJAh\nQUmA55/PKqiDyghkI+0Ru5ntTnBztEv4mOHul5tZP+BeYDtgEcF0x89SnK8Ru0gWCr2cPu0R87Jl\ncMopMG9ehyUBMu1HZysjkCyvOXZ3fxUYmuL4MuDgKI2KSHSF3tourRz3448H1Rh/+tOgJEAslvN+\nlOuWfsWkkgIiklK7pXJXrIDf/Q4efRSmTIEDDyxqX6UllRQQkZTazHH//e9BSYCmpqAkgIJ6yVHZ\nXhFp14Yc99ZbU33rrXDXXXDbbTTuv3+nzn0Xisr2ikjOVVdXU9OjB9WHHw5vvgnz5zO9abVWhJYw\njdhFKljWM0rWrYPrrgse114LI0fS+PHHml9eQBqxi8gGWddZefttOOAAeOIJeOklOPFEMNswWyYI\n6qCNpUuPArtIBWpsbKS2djRNTbNZvnwuTU2zqa0dnV6FxOaSAHvvDcccA7Nmtajz0nK2DGhj6dKj\n6Y4iFSjjOivJJQGeeQa+/e2N3tI8W6a2djjdug1g7dpFWhFaYpRjF6lAGdVZmTEDTj8dfvMbuOAC\n6NatwzY0Kyb/8l7dUUQKI9ugGWlU3VwS4JVX4E9/CjbESLMNBfTSpBG7SImZPn0GtbWj6d49yGVP\nnDiOESOOy+haHX5BNJcEOOYYuPLKvJQEkOxkMmJXYBcpIQUrVZtcEmDyZK0eLWGa7ihS5goylfC5\n51QSoMIpsIuUkF69evHFF/8EEuGRHE4lXL0azjsPjjoqWGx0113Qp0/215WSo8AuUiKmT5/Bnnt+\nly5dBgA/YNNNd8jd5hILFsCwYRtKAvCTn+Skz1KalGMXKQGpcus9ehzAK688x67Z7ESUoiQAFild\nK0WW1+mOZrYtMAXYClgP3OHuN5vZWOBkoCF86/nu/niUToh0dqkWFPXosQMrVqzI/KJvvx0E8m7d\ngpIASatHpbJFScV8CZzt7rsB+wKnmtku4WvXu/vQ8KGgLhJRTpfpu8MddwR7jx5zDPzf/ymodzJR\ntsZbAiwJn68wszeBbcKX9bedSBZytkz/o4+CeekNDfD00ylLAkjlyyjHbmYDCW7bfwc4BzgRWA68\nBJzj7stTnKMcu0gHslpxGrEkgJSHgpQUMLNewH3AGeHIfRxwibu7mV0GXA/Upjq3rq5uw/N4PE48\nHo/avEhFy2iZ/rJlcOqpwWbSEUoCSGlKJBIkEomsrhFpxG5mXYE/AY+5+40pXh8APOLug1K8phG7\nSBsyHqk/8URQjfGYY+CKK6Bnz/y1JUVRiJWnk4A3koO6mfVPev0o4LWI1xTp1DLaEGPlyiDl8h//\nAVOmwA03pBXUs958Q8pC2iN2M9sfeAZ4FfDwcT7wc2AwwRTIhcCv3H1pivM1YhdpJaPaMM89F0xj\n3G8/uOmmtFePFqwOjeRUXnPs7v4ssEmKlzS9USRDkTbEWL0aLr44KNo1blzk1aMZb74hZUclBUSK\nKO35680lAV5/HebNy6gkgLa06zwU2EUKpLGxkTlz5rTYd7R5/nosNpyqqqEb14ZZtw6uuQYOOgjO\nPBMeegi22iqj9jtsSyqGasWIFEBHm2eknKnSXBKga9egEmOORtaaFVNetNGGSAmKfNPSHSZMCBYZ\nXXBBsOioi/647qy056lICYp003Lx4mBe+tKlKgkgGdMwQCTP0r5pee+9wc5GNTXwwgsK6pIxjdhF\n8qzDAl8qCSA5phy7SIGkvGnZXBLg6KPhyivTWj0qnYtunoqUi5Ur4Xe/C0bokycH0xkj0uyWzqEQ\ntWJEgNRzsiVNzz0X5NJXrgwWHmUQ1FXzRdqjEbtE1tGcbGnDmjVQVweTJgUlAY46KqPLqOZL56IR\nu+RdY2MjtbWjaWqazfLlc2lqmk1t7WiN3Dvy6qtBSYDXXoP58zMO6vDV9MkgqEPy9EkRUGCXiBRU\nImouCXDggXDGGfDwwxmXBGimmi/SEU13lEhaBpUgDaCg0obkkgBz5uSsJEDO9keViqUcu0TWnGNP\nDirKsSdpLglw/vlBSYAzzshLSQDNiukc8jrd0cy2BaYAWxFsqjHB3W8ys77ADGAAwUYbx2oz68qn\noNKGxYth1ChYsgSmTm139Wi6v0P9rju3fN88/RI42913A/YFTjGzXYAxwCx33xl4CjgvSgekPFVX\nV1NTU6NAk6y5JMBee3VYEqD1dMXLLrsi5Q1oTWuUTGScijGzh4BbwscB7r403P804e67pHi/RuxS\nljocMTeXBJg7NxilDxvW4fVaT1eEfdl00+5MmnT7hrSWpjUKFHC6o5kNJNjn9AVgq+Y9Tt19CbBl\nJtcUKUUdjpiffBL22AOqq+GVVzoM6pB6ZhHszBdf3Npi6qhmIEmmIgd2M+sF3Aec4e4rCDa1TqZh\nuVSEdufsr1wJo0fDyScHm2DceGPadV5STVeERcAhLQK3pjVKpiJNdzSzrgRBfaq7PxweXmpmWyWl\nYhraOr+urm7D83g8Tjwej9xhkUJpq45648yZVF91Fey3X7DYaPPNI103ebpiU1NfYBlwG7C4ReDW\ntMbOKZFIkEgksrpGpBy7mU0BPnb3s5OOXQ0sc/erzexcoK+7j0lxrnLsUlZa57i7MZfLun6X3/bt\nTZfbb89q9Wjz9cePn8Dll19L9+47tDl1VLNiOrd8T3fcH3gGeJUg3eLA+UA9cC+wHcHfk8e6+2cp\nzldgl7LTPGd/jy5bMn7VP+g3ZDDbPvq/Wa8eTabALe1R2V6RXFu3jhUXX0yPm2+m6eKLqTrtNLBI\n/42JZEV7nork0jvvwMiR9NpkE3jlFbrppqWUCRUBE2mtuSTA3nvDT34CTz2VszovIoWgEbtIsuSS\nAE8/rQ2lpSxpxC7S7I9/DEoC7LlnhyUBREqZRuwin34alAR46SWYOTNIwYiUMY3YpVNq3rP1s3vv\nhUGDYIstgpIACupSARTYpexku5H29Okz2HX7nZn33R/w+c9G8NTxI+Gmm9IuCSBS6hTYpaxkW8a2\nsbGR8SeezPNf9KbHmn9jd3+aH95wm/ZslYqiBUpSNrIuY7tmDR/96ldscvcfGO338ABHA1BVNZRZ\ns8ZTU1OT1/6LZKJgZXtFiiGrMravvgrDhrHF4sXs06MXD/DN8IXoFROzTQWJ5JsCu5SNjMrYrlsH\n114LBx4Ip59Oj8ce44pJtxOLDaeqaiix2PBIFRO1o5GUA6VipKxE2kg7LAlAly5BzfQddtjwUiaF\nt7SjkRSDioBJp9BhUHaHO++E88+H886DM88MgnuW5syZwyGH/Jrly+duOKb8vOSbioBJp1BdXd32\nCLm5JMDixZBIwG675azdlqmgYMSuHY2kFCnHLpWjdUmAHAZ1+GpHo0zz8yKFolSMlL/kkgBTpuR9\n9ag2xpBCyut0RzObaGZLzWxB0rGxZvaBmb0cPg6L0rhI1p58suAlAaqrq6mpqVFQl5IVZWu87wIr\ngCnuPig8Nhb43N2vT+N8jdgld1auhP/8T3jkEZg0CQ4+uNg9EsmLvI7Y3f2vwKep2o3SoEjWnn8e\nhgyBzz+HBQsU1EVaycXN01PNbJ6Z3WlmfXJwPZHU1qyBCy4IdjW68sogn7755sXulUjJyTawjwN2\ndPfBwBKgw5SMlL+iLKl/7bUgf75gAcybB0cfXbi226DSAlKqsprH7u7J/6InAI+09/66uroNz+Px\nOPF4PJvmpQiaV3527x7M6W535WcurFsH118P11wDV18Nv/wlWPGzfwX/PUinkUgkSCQSWV0j0nRH\nMxsIPOLuu4c/93f3JeHzs4Aad/95G+fq5mmZK/iS+lYlARp79SqJaYYqLSCFlO/pjtOA54Bvmdl7\nZvZL4BozW2Bm84ADgLMi9VjKSlbVFWk7dbHR8eaSAHvvDUceCbNnM/2F+pIpvpXt70Ek79y9II+g\nKSlnDQ0NHov1c5jvQfSd77FYP29oaOjw3GnT7vFYrJ/36TPUY7F+Pm3aPSmPPzDudvfDD3cfMsT9\ntdeybjcfSq0/UtnC2Bkt3kY9IdOHAntlaA7EVVVDWgTo9rQVCN94440Wx4/mOl+C+Yqzz3ZfvXrD\n+fX19d6nz9Dw3OBRVTXE6+vrc/rZGhoavL6+PtIXVZTfg0gmFNilIKIEQPe2A/Ndd93lffoM9c1Z\n5lP5hf+Nb/rwnt/aKGAXYoTc1l8U7Yn6exDJhAK7lKT2RuyHd+/t77GV38SpHuOFNgN2PkfISq1I\nKcsksKtsr+Rdc1XE2trhGzbIuOvW69n11luZ0bs7x32+ir9s+iysndZmtcQRI47j4IMPzMusmOab\noU1NG98MLeQsFxUXk1xRdUcpmObA9Y2PP6bvGWcEs15uvpnGtWuLGtBKYfqi5sVLW7SDkpS2NWvg\nkkuCqYy33ALHHFPsHm0Qacu9HCuFLxYpXdpBSUrXa6/B8cfDttsGJQH69y92j1rIZ6qnI6WSCpLK\noR2UJL/WrYPrroPhw4PNMGbOLLmg3qxYddZbbrkH2nJPsqURu+TPu+8GJQEA6uthhx2K258Slerm\nsrbck2woxy655w4TJ8J558GYMXDmmbDJJsXuVcnTrBhJRTdPpfiWLIFRo+Cjj4J66d/5TrF7JFLW\n8loETKRD990HgwcHuxu98IKCukiRKMcu2fv0UzjttCCP/tBDsM8+xe6RSKemEbtk589/hkGDoG/f\nYBpjnoO6di0S6ZgCu7SrzUC6cmUwffGkk2DSJLj5ZujZM699mT59RsnUZBcpZQrs0qY2A+kLLwR5\n9OXLgz1IDzkk731pbGyktnY0TU2zWb58Lk1Ns6mtHa2Ru0gKUXZQmmhmS81sQdKxvmb2pJn9zcye\nMLM++emmFFqqQPrrk37DyrPPDnY1uuIKmDo1SMEUgHYtEklflBH7ZODQVsfGALPcfWfgKeC8XHVM\niqt1IN2NLvxlzResnTMnyKUXuM6LVmeKpC/twO7ufwU+bXX4x8Dd4fO7gSNz1C8psuZA2oVXOIfr\nmM33uG2TLqy9//6ilARoXp0Ziw2nqmoosdhwrc4UaUOkBUpmNgB4xN0HhT8vc/d+Sa+3+LnVuZ1i\ngVIlrR6ceePN9D37bLpYD0Z17cp/TR5f9FKylfT7FUlHKVR3bDdy19XVbXgej8eJx+M5br64Kqam\ntjtMmsQRl13Civ+6kDcPPZRndtqpJAJpdXV1SfRDJF8SiQSJRCKra2Q7Yn8TiLv7UjPrD8x2913b\nOLeiR+wVU1N7yRI4+WT44IPg5qhWj4oUVSFKClj4aDYTODF8PhJ4OOL1KkZ7szbKZlHN/fcHJQEG\nD4YXX1RQFylTaadizGwaEAe2MLP3gLHAVcAfzewkYBFwbD46WQ5aztoIRuxr1y7i5ZfnccABh3WY\nnmnOHffq1YsVK1YUNof82WdBSYAXX1RJAJFKEHX360wfQVOVbdq0ezwW6+dVVUM8Fuvnt99+h8di\n/Rzme5C4nu+xWD9vaGhIeV4stqNDzGOx3T0W6+fTpt2T/04/+aT7dtu5n3KK+4oV+W9PRCIJY2ek\neKuyvTmWPGtj4cKFHHLIr1m+fO6G16uqhjJr1nhqamo2vD/Izd8PHA0UKEe/ahWce24wQp84Eb7/\n/dy3ISJZK4VZMZ1e61kbqdIzyYtqvtrvcjNgIKly9DkP7C++CCecADU1QUmAAq0eFZHCUK2YPEpn\nUc1XufmVwEI6WlmZ1Y3YNWvgoovgiCPg8svhD39QUBepQErFFEBHi2qa57+vW9eLNWsaicV2Aj7a\n6EZrVvPkX38djj8evv51mDABtt46qz6LSGFkkorRzdMSMG3aPb7pppv7Zpvt7D16VPmll16+0Q3W\nhoaGtG7EbuTLL92vu879a19znzDBff36tPoTi/XzPn2GFu4mroikhG6elr7WI+F0FzbNmTOnwxux\nG3n3XTjxxOB74K67YMcd0+pfRSy0EqkQ2vO0xKWqb55uOdpI1Q3dg5kuw4bBj34Es2enFdRB5XFF\nKkLUIX6mDzpZKqahocHr6+s3pEraSqW88cYbaadYWs+TT5kiWbzY/Yc/dB882P3VVzPqd0YpHxHJ\nCzJIxSiw50GqHHV9fb336TM0DJbBo6pqiNfX16cXsEOtvzBauO8+9622cr/gAvfVq7Pufzr9EZH8\nyiSwK8eeY23lqOfO/St77vndNnPXWc1CSS4JMGVKTkoCaFaMSGnQAqUS8NWCo5Y56hUrVjBx4jhq\na4fTrdsA1q5d1GJOe8blaGfNCjaUPuIIeOUV2GyznHwOlccVKV8asedYR7NKcjYSVkkAkU5Bs2JK\nQEerTaurq6mpqckuqL/4IgwZAp9+GpQEaBXUy6ZMsIjkhUbseZKXHPWaNXDppXDHHXDLLfDTn270\nlorZxUlEgMxG7Ars5SKNkgBaXCRSeZSKqUTr1sHvfw/xOIweDY880madFy0uEhHI0awYM1sILAfW\nA2vdfVgurtvpLVwII0fC+vVBXr2D1aNt7eKUcnWqiFSsXI3Y1xNsaj1EQT26jW52usOkSUG99B/9\nCBKJtEoCpFMmWEQqX05y7Gb2LrCXu3/SznuUY0+h9c3O//n9Ffzksf+F99+HqVMz2lBai4tEKkfR\nbp6a2TvAZ8A64A53n5DiPRUf2KMG1NY3O4/iesbxW3qddSabXXUVdO+e/06LSEkr5srT/d19sZlV\nA382szfd/a+t31RXV7fheTweJx6P56j54stkmmHzzc7uTdtzEyewDy/wi57f5MoRI6hRUBfplBKJ\nBIlEIqtr5Hy6o5mNBT539+tbHa/YEXt70wyBNkfxjY2NnLjtTty2ZjNmcjTn8u947HBNTxSRDYoy\n3dHMepo/qDBSAAAHX0lEQVRZr/D5ZsD3gdeyvW45aWua4fjxEzaqv77BqlVUX3op9/bqxindV3JB\n1XN47HDd7BSRrGU9YjezHYAHASdI7fyPu1+V4n2dasS+6aYHYNYl9WKhd98NFhvttRfccguNX36p\nm50ikpJWnhZRc469uXLj+eefw3XX3d9iK7steg9m/rF7sc2f/gQ335yyJICISDIF9iJLnhUDtBjF\nf5sH+IMdy7cPGk6PKVPaXD0qIpJMgb3ETJ8+g1En/YYzvCdnrf6Id0eNYtgd48Ei/X8kIp2YAnse\nZbToZ+FC1vziF6xeuZI1EyawRU1NfjspIhVHRcDyZPr0GW3PbkklqSRA9yOPpPfcuQrqIlIwGrF3\nIHIp3KVL4eST4b33gpIAu+9e6C6LSAXRiD0PIpXCfeAB2GOPIJjX1yuoi0hRaDPrDqRVCvezz+D0\n0+H55+HBB2HffYvSVxER0Ii9Qx2Wwp01CwYNgt69Yd48BXURKTrl2NO00ayYVatgzJhghH7nnXDo\nocXuoohUoGJWd6x41dXVX43S6+u/KgmwYAH07VvczomIJFFgj2LtWrj0Uhg/PigJcOyxxe6RiMhG\nFNjT9cYbwSi9f/8gl66SACJSopRjT9ejj8KHH8KoUSoJICIFo5ICIiIVRguUREREgV1EpNLkJLCb\n2WFm9paZ/d3Mzs3FNUVEJDO52BqvC/B34CDgI2AO8DN3f6vV+5RjFxGJqFg59mHAP9x9kbuvBe4B\nfpyD64qISAZyEdi3Ad5P+vmD8JiIiBRBQRco1dXVbXgej8eJx+OFbF5EpOQlEgkSiURW18hFjn0f\noM7dDwt/HgO4u1/d6n3KsYuIRFSsHPsc4BtmNsDMugM/A2bm4LoiIpKBrFMx7r7OzE4FniT4opjo\n7m9m3TMREcmISgqIiJQwlRQQEREFdhGRSqPALiJSYRTYRUQqjAK7iEiFUWAXEakwCuwiIhVGgV1E\npMIosIuIVBgFdhGRCqPALiJSYRTYRUQqjAK7iEiFUWAXEakwCuwiIhUmq8BuZmPN7AMzezl8HJar\njomISGZyMWK/3t2Hho/Hc3C9kpTt5rLFVs79L+e+g/pfbOXe/0zkIrBH2tmjXJX7P45y7n859x3U\n/2Ir9/5nIheB/VQzm2dmd5pZnxxcT0REstBhYDezP5vZgqTHq+H//ggYB+zo7oOBJcD1+e6wiIi0\nL2ebWZvZAOARdx/UxuvayVpEJANRN7Pumk1jZtbf3ZeEPx4FvJarjomISGayCuzANWY2GFgPLAR+\nlXWPREQkKzlLxYiISGko6MpTM7vGzN4MZ9Hcb2ZVhWw/E2Z2mJm9ZWZ/N7Nzi92fKMxsWzN7ysxe\nD296n17sPmXCzLqEC+BmFrsvUZlZHzP7Y/jv/nUz27vYfYrCzM4ys9fCCRP/Y2bdi92n9pjZRDNb\namYLko71NbMnzexvZvZEKc/ea6P/keNmoUsKPAnsFs6i+QdwXoHbj8TMugC3AIcCuwEjzGyX4vYq\nki+Bs919N2Bf4JQy63+zM4A3it2JDN0IPOruuwJ7AG8WuT9pM7OvA6cBQ8NJEV2BnxW3Vx2aTPDf\na7IxwCx33xl4itKOO6n6HzluFjSwu/ssd18f/vgCsG0h28/AMOAf7r7I3dcC9wA/LnKf0ubuS9x9\nXvh8BUFQ2aa4vYrGzLYFfgDcWey+RBWOrP6fu08GcPcv3f1fRe5WVJsAm5lZV6An8FGR+9Mud/8r\n8Gmrwz8G7g6f3w0cWdBORZCq/5nEzWIWATsJeKyI7adjG+D9pJ8/oMwCYzMzGwgMBl4sbk8i+2/g\nd0A53gzaAfjYzCaHqaQ7zCxW7E6ly90/An4PvAd8CHzm7rOK26uMbOnuSyEY7ABbFrk/2UgrbuY8\nsHewoKn5PRcAa919Wq7bl42ZWS/gPuCMcOReFszscGBp+FeHUX7lK7oCQ4Fb3X0osIogLVAWzGxz\ngtHuAODrQC8z+3lxe5UT5ThIiBQ3s53uuBF3P6S9183sRII/rQ/Mddt58CGwfdLP24bHykb4J/R9\nwFR3f7jY/Ylof+AIM/sBEAN6m9kUdz+hyP1K1wfA++7+UvjzfUA53YA/GHjH3ZcBmNkDwH5AuQ3I\nlprZVu6+1Mz6Aw3F7lBUUeNmoWfFHEbwZ/UR7r66kG1naA7wDTMbEM4G+BlQbjMzJgFvuPuNxe5I\nVO5+vrtv7+47EvzunyqjoE745//7Zvat8NBBlNdN4PeAfcxsUzMzgv6Xw83f1n/dzQRODJ+PBEp9\ngNOi/5nEzYLOYzezfwDdgU/CQy+4++iCdSAD4S/1RoIvwYnuflWRu5Q2M9sfeAZ4leDPTwfOL8fy\nymZ2AHCOux9R7L5EYWZ7ENz47Qa8A/zS3ZcXt1fpM7OxBF+qa4FXgFHhRIKSZGbTgDiwBbAUGAs8\nBPwR2A5YBBzr7p8Vq4/taaP/5xMxbmqBkohIhdHWeCIiFUaBXUSkwiiwi4hUGAV2EZEKo8AuIlJh\nFNhFRCqMAruISIVRYBcRqTD/H5DpuXGdvOrcAAAAAElFTkSuQmCC\n",
  494. "text/plain": [
  495. "<matplotlib.figure.Figure at 0x7f793754b1d0>"
  496. ]
  497. },
  498. "metadata": {},
  499. "output_type": "display_data"
  500. },
  501. {
  502. "name": "stdout",
  503. "output_type": "stream",
  504. "text": [
  505. "fig_name = gd_res_11.pdf\n"
  506. ]
  507. },
  508. {
  509. "data": {
  510. "image/png": "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\n",
  511. "text/plain": [
  512. "<matplotlib.figure.Figure at 0x7f7937671400>"
  513. ]
  514. },
  515. "metadata": {},
  516. "output_type": "display_data"
  517. },
  518. {
  519. "name": "stdout",
  520. "output_type": "stream",
  521. "text": [
  522. "fig_name = gd_res_12.pdf\n"
  523. ]
  524. },
  525. {
  526. "data": {
  527. "image/png": "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\n",
  528. "text/plain": [
  529. "<matplotlib.figure.Figure at 0x7f7937893ac8>"
  530. ]
  531. },
  532. "metadata": {},
  533. "output_type": "display_data"
  534. },
  535. {
  536. "name": "stdout",
  537. "output_type": "stream",
  538. "text": [
  539. "fig_name = gd_res_13.pdf\n"
  540. ]
  541. },
  542. {
  543. "data": {
  544. "image/png": "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\nAABJRU5ErkJggg==\n",
  545. "text/plain": [
  546. "<matplotlib.figure.Figure at 0x7f79375f1828>"
  547. ]
  548. },
  549. "metadata": {},
  550. "output_type": "display_data"
  551. },
  552. {
  553. "name": "stdout",
  554. "output_type": "stream",
  555. "text": [
  556. "fig_name = gd_res_14.pdf\n"
  557. ]
  558. },
  559. {
  560. "data": {
  561. "image/png": "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\n+25p+SbxVgAAAABJRU5ErkJggg==\n",
  562. "text/plain": [
  563. "<matplotlib.figure.Figure at 0x7f79378ffba8>"
  564. ]
  565. },
  566. "metadata": {},
  567. "output_type": "display_data"
  568. },
  569. {
  570. "name": "stdout",
  571. "output_type": "stream",
  572. "text": [
  573. "fig_name = gd_res_15.pdf\n"
  574. ]
  575. },
  576. {
  577. "data": {
  578. "image/png": "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\nYII=\n",
  579. "text/plain": [
  580. "<matplotlib.figure.Figure at 0x7f7937551128>"
  581. ]
  582. },
  583. "metadata": {},
  584. "output_type": "display_data"
  585. }
  586. ],
  587. "source": [
  588. "import matplotlib.pyplot as plt\n",
  589. "import matplotlib.animation as animation\n",
  590. "import random\n",
  591. "\n",
  592. "\n",
  593. "n_epoch = 300 # epoch size\n",
  594. "a, b = 1, 1 # initial parameters\n",
  595. "epsilon = 0.0001 # learning rate\n",
  596. "\n",
  597. "fig = plt.figure()\n",
  598. "\n",
  599. "# 生成数据\n",
  600. "data_num = 50\n",
  601. "X = np.random.rand(data_num, 1)*10\n",
  602. "Y = X * 3 + 4 + 4*np.random.randn(data_num,1)\n",
  603. "\n",
  604. "N = np.shape(X)[0]\n",
  605. "\n",
  606. "k = 0\n",
  607. "for i in range(n_epoch):\n",
  608. " data_idx = list(range(N))\n",
  609. " random.shuffle(data_idx)\n",
  610. " \n",
  611. " for j in data_idx[:10]:\n",
  612. " a = a + epsilon*2*(Y[j] - a*X[j] - b)*X[j]\n",
  613. " b = b + epsilon*2*(Y[j] - a*X[j] - b)\n",
  614. "\n",
  615. "\n",
  616. " \n",
  617. " if i<80 and i % 5 == 0:\n",
  618. " x_min = np.min(X)\n",
  619. " x_max = np.max(X)\n",
  620. " y_min = a * x_min + b\n",
  621. " y_max = a * x_max + b\n",
  622. "\n",
  623. " plt.clf()\n",
  624. " plt.cla()\n",
  625. " plt.scatter(X, Y, label='original data')\n",
  626. " plt.plot([x_min, x_max], [y_min, y_max], 'r', label='model')\n",
  627. " plt.title(\"Iteration [%03d]\" % i)\n",
  628. " #plt.legend()\n",
  629. " fname = \"gd_res_%02d.pdf\" % k\n",
  630. " print(\"fig_name = %s\" % fname)\n",
  631. " plt.savefig(fname)\n",
  632. " k = k + 1\n",
  633. " plt.show()\n"
  634. ]
  635. },
  636. {
  637. "cell_type": "code",
  638. "execution_count": null,
  639. "metadata": {
  640. "collapsed": true
  641. },
  642. "outputs": [],
  643. "source": [
  644. "import matplotlib.pyplot as plt\n",
  645. "import matplotlib.animation as animation\n",
  646. "\n",
  647. "n_epoch = 300 # epoch size\n",
  648. "a, b = 1, 1 # initial parameters\n",
  649. "epsilon = 0.0001 # learning rate\n",
  650. "\n",
  651. "fig = plt.figure()\n",
  652. "imgs = []\n",
  653. "\n",
  654. "for i in range(n_epoch):\n",
  655. " data_idx = list(range(N))\n",
  656. " random.shuffle(data_idx)\n",
  657. " \n",
  658. " for j in data_idx[:10]:\n",
  659. " a = a + epsilon*2*(Y[j] - a*X[j] - b)*X[j]\n",
  660. " b = b + epsilon*2*(Y[j] - a*X[j] - b)\n",
  661. "\n",
  662. " j = 0\n",
  663. " if i<80 and i % 5 == 0:\n",
  664. " x_min = np.min(X)\n",
  665. " x_max = np.max(X)\n",
  666. " y_min = a * x_min + b\n",
  667. " y_max = a * x_max + b\n",
  668. "\n",
  669. " img = plt.scatter(X, Y, label='original data')\n",
  670. " img = plt.plot([x_min, x_max], [y_min, y_max], 'r', label='model')\n",
  671. " imgs.append(img)\n",
  672. " \n",
  673. "ani = animation.ArtistAnimation(fig, imgs)\n",
  674. "plt.show()"
  675. ]
  676. },
  677. {
  678. "cell_type": "markdown",
  679. "metadata": {},
  680. "source": [
  681. "## 4. 如何使用批次更新的方法?\n",
  682. "\n",
  683. "如果有一些数据包含比较大的错误(异常数据),因此每次更新仅仅使用一个数据会导致不精确,同时每次仅仅使用一个数据来计算更新也导致计算效率比较低。\n",
  684. "\n",
  685. "\n",
  686. "* [梯度下降方法的几种形式](https://blog.csdn.net/u010402786/article/details/51188876)"
  687. ]
  688. },
  689. {
  690. "cell_type": "markdown",
  691. "metadata": {},
  692. "source": [
  693. "## 5. 如何拟合多项式函数?\n",
  694. "\n",
  695. "需要设计一个弹道导弹防御系统,通过观测导弹的飞行路径,预测未来导弹的飞行轨迹,从而完成摧毁的任务。按照物理学,可以得知模型为:\n",
  696. "$$\n",
  697. "y = at^2 + bt + c\n",
  698. "$$\n",
  699. "我们需要求解三个模型参数$a, b, c$。\n",
  700. "\n",
  701. "损失函数的定义为:\n",
  702. "$$\n",
  703. "L = \\sum_{i=1}^N (y_i - at_i^2 - bt_i - c)^2\n",
  704. "$$\n"
  705. ]
  706. },
  707. {
  708. "cell_type": "code",
  709. "execution_count": 6,
  710. "metadata": {},
  711. "outputs": [
  712. {
  713. "data": {
  714. "image/png": "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\n",
  715. "text/plain": [
  716. "<Figure size 432x288 with 1 Axes>"
  717. ]
  718. },
  719. "metadata": {
  720. "needs_background": "light"
  721. },
  722. "output_type": "display_data"
  723. }
  724. ],
  725. "source": [
  726. "%matplotlib inline\n",
  727. "import matplotlib.pyplot as plt\n",
  728. "import numpy as np\n",
  729. "\n",
  730. "pa = -20\n",
  731. "pb = 90\n",
  732. "pc = 800\n",
  733. "\n",
  734. "t = np.linspace(0, 10) \n",
  735. "y = pa*t**2 + pb*t + pc + np.random.randn(np.size(t))*15\n",
  736. "\n",
  737. "\n",
  738. "plt.plot(t, y)\n",
  739. "plt.show()"
  740. ]
  741. },
  742. {
  743. "cell_type": "markdown",
  744. "metadata": {},
  745. "source": [
  746. "### 5.1 如何得到更新项?\n",
  747. "\n",
  748. "$$\n",
  749. "L = \\sum_{i=1}^N (y_i - at_i^2 - bt_i - c)^2\n",
  750. "$$\n",
  751. "\n",
  752. "\\begin{eqnarray}\n",
  753. "\\frac{\\partial L}{\\partial a} & = & - 2\\sum_{i=1}^N (y_i - at_i^2 - bt_i -c) t_i^2 \\\\\n",
  754. "\\frac{\\partial L}{\\partial b} & = & - 2\\sum_{i=1}^N (y_i - at_i^2 - bt_i -c) t_i \\\\\n",
  755. "\\frac{\\partial L}{\\partial c} & = & - 2\\sum_{i=1}^N (y_i - at_i^2 - bt_i -c)\n",
  756. "\\end{eqnarray}"
  757. ]
  758. },
  759. {
  760. "cell_type": "markdown",
  761. "metadata": {},
  762. "source": [
  763. "### 5.2 程序"
  764. ]
  765. },
  766. {
  767. "cell_type": "code",
  768. "execution_count": 7,
  769. "metadata": {},
  770. "outputs": [
  771. {
  772. "name": "stdout",
  773. "output_type": "stream",
  774. "text": [
  775. "epoch 0: loss = 2.45413e+07, a = -3.07866, b = 6.90614, c = 4.30938\n",
  776. "epoch 500: loss = 1.14068e+06, a = -28.6118, b = 222.36, c = 434.835\n",
  777. "epoch 1000: loss = 399358, a = -23.4814, b = 153.657, c = 605.164\n",
  778. "epoch 1500: loss = 165221, a = -20.5589, b = 114.526, c = 702.159\n",
  779. "epoch 2000: loss = 92877.7, a = -18.8947, b = 92.2414, c = 757.394\n",
  780. "epoch 2500: loss = 71458.8, a = -17.9469, b = 79.5512, c = 788.849\n"
  781. ]
  782. },
  783. {
  784. "data": {
  785. "image/png": "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\n",
  786. "text/plain": [
  787. "<Figure size 432x288 with 1 Axes>"
  788. ]
  789. },
  790. "metadata": {
  791. "needs_background": "light"
  792. },
  793. "output_type": "display_data"
  794. }
  795. ],
  796. "source": [
  797. "n_epoch = 3000 # epoch size\n",
  798. "a, b, c = 1.0, 1.0, 1.0 # initial parameters\n",
  799. "epsilon = 0.0001 # learning rate\n",
  800. "\n",
  801. "N = np.size(t)\n",
  802. "\n",
  803. "for i in range(n_epoch):\n",
  804. " for j in range(N):\n",
  805. " a = a + epsilon*2*(y[j] - a*t[j]**2 - b*t[j] - c)*t[j]**2\n",
  806. " b = b + epsilon*2*(y[j] - a*t[j]**2 - b*t[j] - c)*t[j]\n",
  807. " c = c + epsilon*2*(y[j] - a*t[j]**2 - b*t[j] - c)\n",
  808. "\n",
  809. " L = 0\n",
  810. " for j in range(N):\n",
  811. " L = L + (y[j] - a*t[j]**2 - b*t[j] - c)**2\n",
  812. " \n",
  813. " if i % 500 == 0:\n",
  814. " print(\"epoch %4d: loss = %10g, a = %10g, b = %10g, c = %10g\" % (i, L, a, b, c))\n",
  815. " \n",
  816. " \n",
  817. "y_est = a*t**2 + b*t + c \n",
  818. "\n",
  819. "\n",
  820. "plt.plot(t, y, 'r-', label='Real data')\n",
  821. "plt.plot(t, y_est, 'g-x', label='Estimated data')\n",
  822. "plt.legend()\n",
  823. "plt.show()\n"
  824. ]
  825. },
  826. {
  827. "cell_type": "markdown",
  828. "metadata": {},
  829. "source": [
  830. "## 6. 如何使用sklearn求解线性问题?\n"
  831. ]
  832. },
  833. {
  834. "cell_type": "code",
  835. "execution_count": 8,
  836. "metadata": {},
  837. "outputs": [
  838. {
  839. "name": "stdout",
  840. "output_type": "stream",
  841. "text": [
  842. "X: (100, 1)\n",
  843. "Y: (100, 1)\n",
  844. "a = 2.743186, b = 4.076122\n"
  845. ]
  846. },
  847. {
  848. "data": {
  849. "image/png": "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\n",
  850. "text/plain": [
  851. "<Figure size 432x288 with 1 Axes>"
  852. ]
  853. },
  854. "metadata": {
  855. "needs_background": "light"
  856. },
  857. "output_type": "display_data"
  858. }
  859. ],
  860. "source": [
  861. "%matplotlib inline\n",
  862. "\n",
  863. "from sklearn import linear_model\n",
  864. "import numpy as np\n",
  865. "\n",
  866. "# load data\n",
  867. "# generate data\n",
  868. "data_num = 100\n",
  869. "X = np.random.rand(data_num, 1)*10\n",
  870. "Y = X * 3 + 4 + 8*np.random.randn(data_num,1)\n",
  871. "\n",
  872. "print(\"X: \", X.shape)\n",
  873. "print(\"Y: \", Y.shape)\n",
  874. "\n",
  875. "# create regression model\n",
  876. "regr = linear_model.LinearRegression()\n",
  877. "regr.fit(X, Y)\n",
  878. "\n",
  879. "a, b = np.squeeze(regr.coef_), np.squeeze(regr.intercept_)\n",
  880. "\n",
  881. "print(\"a = %f, b = %f\" % (a, b))\n",
  882. "\n",
  883. "x_min = np.min(X)\n",
  884. "x_max = np.max(X)\n",
  885. "y_min = a * x_min + b\n",
  886. "y_max = a * x_max + b\n",
  887. "\n",
  888. "plt.scatter(X, Y)\n",
  889. "plt.plot([x_min, x_max], [y_min, y_max], 'r')\n",
  890. "plt.show()"
  891. ]
  892. },
  893. {
  894. "cell_type": "markdown",
  895. "metadata": {},
  896. "source": [
  897. "## 7. 如何使用sklearn拟合多项式函数?"
  898. ]
  899. },
  900. {
  901. "cell_type": "code",
  902. "execution_count": 11,
  903. "metadata": {},
  904. "outputs": [
  905. {
  906. "data": {
  907. "text/plain": [
  908. "array([800., 90., -20.])"
  909. ]
  910. },
  911. "execution_count": 11,
  912. "metadata": {},
  913. "output_type": "execute_result"
  914. }
  915. ],
  916. "source": [
  917. "# Fitting polynomial functions\n",
  918. "\n",
  919. "from sklearn.preprocessing import PolynomialFeatures\n",
  920. "from sklearn.linear_model import LinearRegression\n",
  921. "from sklearn.pipeline import Pipeline\n",
  922. "\n",
  923. "t = np.array([2, 4, 6, 8])\n",
  924. "\n",
  925. "pa = -20\n",
  926. "pb = 90\n",
  927. "pc = 800\n",
  928. "\n",
  929. "y = pa*t**2 + pb*t + pc\n",
  930. "\n",
  931. "model = Pipeline([('poly', PolynomialFeatures(degree=2)),\n",
  932. " ('linear', LinearRegression(fit_intercept=False))])\n",
  933. "model = model.fit(t[:, np.newaxis], y)\n",
  934. "model.named_steps['linear'].coef_\n"
  935. ]
  936. },
  937. {
  938. "cell_type": "markdown",
  939. "metadata": {},
  940. "source": [
  941. "## 参考资料\n",
  942. "* [梯度下降法](https://blog.csdn.net/u010402786/article/details/51188876)\n",
  943. "* [如何理解最小二乘法?](https://blog.csdn.net/ccnt_2012/article/details/81127117)\n"
  944. ]
  945. }
  946. ],
  947. "metadata": {
  948. "kernelspec": {
  949. "display_name": "Python 3",
  950. "language": "python",
  951. "name": "python3"
  952. },
  953. "language_info": {
  954. "codemirror_mode": {
  955. "name": "ipython",
  956. "version": 3
  957. },
  958. "file_extension": ".py",
  959. "mimetype": "text/x-python",
  960. "name": "python",
  961. "nbconvert_exporter": "python",
  962. "pygments_lexer": "ipython3",
  963. "version": "3.5.4"
  964. }
  965. },
  966. "nbformat": 4,
  967. "nbformat_minor": 2
  968. }

机器学习越来越多应用到飞行器、机器人等领域,其目的是利用计算机实现类似人类的智能,从而实现装备的智能化与无人化。本课程旨在引导学生掌握机器学习的基本知识、典型方法与技术,通过具体的应用案例激发学生对该学科的兴趣,鼓励学生能够从人工智能的角度来分析、解决飞行器、机器人所面临的问题和挑战。本课程主要内容包括Python编程基础,机器学习模型,无监督学习、监督学习、深度学习基础知识与实现,并学习如何利用机器学习解决实际问题,从而全面提升自我的《综合能力》。