From d072ccd9e249d2cd640a882ff86bcafb44a9805f Mon Sep 17 00:00:00 2001 From: bushuhui Date: Thu, 30 Sep 2021 11:09:51 +0800 Subject: [PATCH] Update least squares & perception descriptions --- 2_knn/knn_classification.ipynb | 79 +++- 4_logistic_regression/1-Least_squares.ipynb | 663 ++++++---------------------- 5_nn/1-Perceptron.ipynb | 190 ++++++-- 3 files changed, 350 insertions(+), 582 deletions(-) diff --git a/2_knn/knn_classification.ipynb b/2_knn/knn_classification.ipynb index fe9c9ef..ae264ea 100644 --- a/2_knn/knn_classification.ipynb +++ b/2_knn/knn_classification.ipynb @@ -46,6 +46,80 @@ }, { "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "%matplotlib inline\n", + "\n", + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "\n", + "# data generation\n", + "np.random.seed(314)\n", + "\n", + "data_size1 = 300\n", + "x1 = np.random.randn(data_size1, 2) + np.array([4,4])\n", + "y1 = [0 for _ in range(data_size1)]\n", + "\n", + "data_size2 = 400\n", + "x2 = np.random.randn(data_size2, 2)*2 + np.array([10,10])\n", + "y2 = [1 for _ in range(data_size2)]\n", + "\n", + "\n", + "# all sample data\n", + "x = np.concatenate((x1, x2), axis=0)\n", + "y = np.concatenate((y1, y2), axis=0)\n", + "\n", + "data_size_all = data_size1 + data_size2\n", + "shuffled_index = np.random.permutation(data_size_all)\n", + "x = x[shuffled_index]\n", + "y = y[shuffled_index]\n", + "\n", + "# split train & test\n", + "split_index = int(data_size_all*0.7)\n", + "x_train = x[:split_index]\n", + "y_train = y[:split_index]\n", + "x_test = x[split_index:]\n", + "y_test = y[split_index:]\n", + "\n", + "\n", + "# plot data\n", + "plt.scatter(x_train[:,0], x_train[:,1], c=y_train, marker='.')\n", + "plt.title(\"train data\")\n", + "plt.show()\n", + "plt.scatter(x_test[:,0], x_test[:,1], c=y_test, marker='.')\n", + "plt.title(\"test data\")\n", + "plt.show()\n" + ] + }, + { + "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ @@ -80,9 +154,10 @@ "import numpy as np\n", "import matplotlib.pyplot as plt\n", "\n", - "# data generation (FIXME: feature name not good)\n", + "# data generation\n", "np.random.seed(314)\n", "data_size_1 = 300\n", + "\n", "x1_1 = np.random.normal(loc=5.0, scale=1.0, size=data_size_1)\n", "x2_1 = np.random.normal(loc=4.0, scale=1.0, size=data_size_1)\n", "y_1 = [0 for _ in range(data_size_1)]\n", @@ -475,7 +550,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.8.5" + "version": "3.7.9" } }, "nbformat": 4, diff --git a/4_logistic_regression/1-Least_squares.ipynb b/4_logistic_regression/1-Least_squares.ipynb index 1d0d6e9..c6b95e2 100644 --- a/4_logistic_regression/1-Least_squares.ipynb +++ b/4_logistic_regression/1-Least_squares.ipynb @@ -33,7 +33,7 @@ "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "
" ] @@ -49,14 +49,11 @@ "\n", "import matplotlib.pyplot as plt\n", "import numpy as np\n", - "import sklearn\n", - "from sklearn import datasets\n", "\n", - "# load data\n", - "d = datasets.load_diabetes()\n", - "\n", - "X = d.data[:, 2]\n", - "Y = d.target\n", + "# generate data\n", + "data_num = 100\n", + "X = np.random.rand(data_num, 1)*10\n", + "Y = X * 3 + 4 + 8*np.random.randn(data_num,1)\n", "\n", "# draw original data\n", "plt.scatter(X, Y)\n", @@ -124,12 +121,12 @@ "name": "stdout", "output_type": "stream", "text": [ - "a = 949.435260, b = 152.133484\n" + "a = 2.763945, b = 6.154651\n" ] }, { "data": { - "image/png": "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hz59+nBHPL/N2rVr6dmzJ2eeeSZ9+vRh/fr1CUU2/vznP9OzZ08OP/xwxowZwy233ALA2LFjmT7dqCXevXt3Jk6cSP/+/enbty8rV64EYMGCBfzsZz+jrKyMww47jFWrvC2fmpoaTj31VPbff39OPPFEamp2fZl+//vfM3DgQHr37s3EiRMBuOuuu/jyyy8ZOnQoQ4cOdd1P44+2VneRjbnMNXliuafCilq8eDGPPPII8+fPR0rJoEGDOOqoo2jXrh2ffvopjz32GIceemjCMQsXLmTGjBksW7aM2tpa+vfvz4ABAxzP36FDB95//33uvfdebrnlFv7xj3/Qq1cv3nrrLVq0aMHrr7/O1Vdf3Zhx0on77ruP4uJiPv74Y5YvX07//v0bX7vxxhtp37499fX1HH300SxfvpyLL76Y2267jTlz5tChQwfX/Q488MBQ96w5oa3VXejEXkkgJTQ0QGGh/74ByQvLPRVW1Ntvv82JJ55ImzZt2G233TjppJN46623ANhnn32aCDvAvHnzGDlyJK1bt2b33Xfn+OOPdz3/SSedBMCAAQNYu3YtAFu3buXkk0+mT58+XHrppaxYscKzjXPnzuX0008H4MADD0wQ5WeffZb+/ftTVlbGihUr+OijjxzPobpf1GSzv1qlbUGs1Wzta1Tt0om9QiAlvPwyDBoEDzyQkkvkheWebiuqTZs2SZ/DTB1cWFhIXV0dANdeey1Dhw7lhRdeYO3atQwZMiTUudesWcMtt9zCwoULadeuHWPHjmXHjh2h94uabPZXq7ZN1VrN1r5G3a5sCMfMCaSEV16BSZNg4ULo3h06dkzJpfLCck+Fz++II46goqKC6upqtm/fzgsvvMARRxzheczgwYN58cUX2bFjB99//z0vvfRSoGtu3bqV0lLjC/Loo4/67m9NK/zhhx82lvjbtm0bbdq0oW3btnzzzTe88sorjcfsvvvufPfdd777pZJs9lertk3VWs3WvmZru/zI1lGQL6aoH3oojBgBGzfCP/4Bn3wCJ5+ckkvmheWeCp9f//79GTt2LIcccggAv/3tbykrK2t0oThx8MEHc8IJJ3DggQey995707dvX9q2bat8zSuuuIKzzjqLyZMnM2LECN/9f//733P22Wez//77s//++zf69w866CDKysro1asXXbt2ZfDgwY3HjBs3jmOPPZbO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\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXAAAAD4CAYAAAD1jb0+AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAAAsTAAALEwEAmpwYAAAmPUlEQVR4nO3deZRU1bn38e9D0xFQIiBooBlNlJZJGpm00QjkOuGAJG00MUDURa7GOCQvityrmMFIolGSdY0JywkTjNoMLYqGyBSEZVQQRBBRoxBoFRBpEGm0gf3+UVVNdVFznWmfej5ruaSL6qpdp5vf2WfvZ+8jxhiUUkrZp5nfDVBKKZUfDXCllLKUBrhSSllKA1wppSylAa6UUpZq7uWbtW/f3nTv3t3Lt1RKKeutWrXqE2NMh8THPQ3w7t27s3LlSi/fUimlrCcim5M9rkMoSillKQ1wpZSylAa4UkpZytMx8GQaGhrYunUr+/fv97spRa1FixZ07tyZ0tJSv5uilMqS7wG+detWWrduTffu3RERv5tTlIwx7Ny5k61bt9KjRw+/m6OUypLvAb5//34Nb5+JCMcddxw7duzwuymqiNSsruWeBRv5sK6eTm1aMvHcnoyuKPO7WVbxPcABDe8A0J+B8lLN6lpum/Mm9Q0HAaitq+e2OW8CaIjnQCcxlVKeu2fBxsbwjqlvOMg9Czb61CI7aYA7rHv37nzyyScFP0epMPuwrj6nx1VyGuBKKc91atMyp8dVchrgwKZNmygvL2f8+PGcfPLJfP/732fhwoVUVlZy0kkn8eqrr/Lpp58yevRo+vXrx9ChQ1m7di0AO3fu5JxzzqF3795cc801xN/h6K9//SuDBw+mf//+/OhHP+LgwYOpmqBUUZl4bk9alpY0eaxlaQkTz+3pU4vsFIhJzEY33QRr1jj7mv37w7RpGZ/23nvvUV1dzSOPPMKgQYN44oknWL58OfPmzePXv/41Xbp0oaKigpqaGhYvXszYsWNZs2YNP//5zxk2bBh33HEH8+fP5+GHHwZgw4YNPPXUU6xYsYLS0lKuu+46Zs6cydixY539fEpZKDZRqVUohQlWgPuoR48e9O3bF4DevXszcuRIRIS+ffuyadMmNm/ezOzZswEYMWIEO3fuZM+ePSxbtow5c+YAMGrUKNq2bQvAokWLWLVqFYMGDQKgvr6e448/3odPplQwja4o08AuULACPIuesluOOuqoxj83a9as8etmzZpx4MCBnFcoGmMYN24cd999t6PtVEqpGB0Dz9KZZ57JzJkzAVi6dCnt27fnq1/9KmeddRZPPPEEAC+88AK7du0CYOTIkcyaNYvt27cD8Omnn7J5c9IdIZVSKi/B6oEH2J133slVV11Fv379aNWqFTNmzABgypQpXHHFFfTu3ZszzjiDrl27AtCrVy9+9atfcc4553Do0CFKS0t54IEH6Natm58fQykVIhJfNeG2gQMHmsQbOmzYsIFTTjnFszao1PRnoVQwicgqY8zAxMd1CEUppSylQyhKKRVl2wZbGuBKKYWdG2zpEIpSSmHnBlsa4EophZ0bbGmAK6UUdm6wpQGegwsuuIC6urq0z7njjjtYuHBhXq+/dOlSLrzwwozPO/vss0ksx0w0bdo09u3bl1c7lCpGNm6wpZOYWTDGYIzh+eefz/jcX/ziFx60KLNp06Zx5ZVX0qpVK7+bopQVbNxgy7oeeM3qWiqnLqbHpPlUTl1Mzeragl/zvvvuo0+fPvTp04dp0f1YNm3aRM+ePRk7dix9+vRhy5YtTW7E8Mtf/pKePXsybNgwrrjiCu69914Axo8fz6xZs4DIjRumTJnCgAED6Nu3L2+//TYAr776KqeffjoVFRWcccYZbNyYfpKkvr6eyy+/nFNOOYVLL72U+vrDY3LXXnstAwcOpHfv3kyZMgWAP/zhD3z44YcMHz6c4cOHp3yeUqqp0RVlrJg0gg+mjmLFpBGBDm+wrAfuRpnPqlWrePTRR3nllVcwxjBkyBC++c1v0rZtW959911mzJjB0KFDm3zPa6+9xuzZs3njjTdoaGhgwIABnHbaaUlfv3379rz++uv88Y9/5N577+Whhx6ivLycl156iebNm7Nw4UImT57cuNNhMg8++CCtWrViw4YNrF27lgEDBjT+3V133UW7du04ePAgI0eOZO3atdxwww3cd999LFmyhPbt26d8Xr9+/fI6ZkqFhW1134ms6oG7UeazfPlyLr30Uo4++miOOeYYxowZw0svvQRAt27djghvgBUrVnDJJZfQokULWrduzUUXXZTy9ceMGQPAaaedxqZNmwDYvXs3VVVV9OnTh5tvvpn169enbeOyZcu48sorAejXr1+T4H366acZMGAAFRUVrF+/nrfeeivp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\n", "text/plain": [ "
" ] @@ -243,517 +240,21 @@ "name": "stdout", "output_type": "stream", "text": [ - "epoch 0: loss = 2590736.867664, a = 18.689017, b = 148.815329\n", - "epoch 1: loss = 2557255.189453, a = 36.831348, b = 148.828655\n", - "epoch 2: loss = 2525130.800853, a = 54.614824, b = 148.822534\n", - "epoch 3: loss = 2494255.916234, a = 72.046438, b = 148.816532\n", - "epoch 4: loss = 2464581.753419, a = 89.133153, b = 148.810649\n", - "epoch 5: loss = 2436061.445196, a = 105.881792, b = 148.804882\n", - "epoch 6: loss = 2408649.957111, a = 122.299046, b = 148.799229\n", - "epoch 7: loss = 2382304.015732, a = 138.391470, b = 148.793687\n", - "epoch 8: loss = 2356982.039720, a = 154.165492, b = 148.788256\n", - "epoch 9: loss = 2332644.073594, a = 169.627411, b = 148.782932\n", - "epoch 10: loss = 2309251.724102, a = 184.783402, b = 148.777713\n", - "epoch 11: loss = 2286768.099073, a = 199.639520, b = 148.772598\n", - "epoch 12: loss = 2265157.748666, a = 214.201696, b = 148.767584\n", - "epoch 13: loss = 2244386.608923, a = 228.475748, b = 148.762669\n", - "epoch 14: loss = 2224421.947529, a = 242.467375, b = 148.757851\n", - "epoch 15: loss = 2205232.311697, a = 256.182166, b = 148.753129\n", - "epoch 16: loss = 2186787.478095, a = 269.625597, b = 148.748500\n", - "epoch 17: loss = 2169058.404731, a = 282.803039, b = 148.743962\n", - "epoch 18: loss = 2152017.184726, a = 295.719754, b = 148.739515\n", - "epoch 19: loss = 2135637.001889, a = 308.380901, b = 148.735155\n", - "epoch 20: loss = 2119892.088045, a = 320.791536, b = 148.730882\n", - "epoch 21: loss = 2104757.682020, a = 332.956616, b = 148.726693\n", - "epoch 22: loss = 2090209.990240, a = 344.881000, b = 148.722587\n", - "epoch 23: loss = 2076226.148871, a = 356.569449, b = 148.718562\n", - "epoch 24: loss = 2062784.187440, a = 368.026633, b = 148.714617\n", - "epoch 25: loss = 2049862.993883, a = 379.257126, b = 148.710750\n", - "epoch 26: loss = 2037442.280956, a = 390.265414, b = 148.706960\n", - "epoch 27: loss = 2025502.553972, a = 401.055894, b = 148.703244\n", - "epoch 28: loss = 2014025.079785, a = 411.632875, b = 148.699602\n", - "epoch 29: loss = 2002991.857005, a = 422.000581, b = 148.696032\n", - "epoch 30: loss = 1992385.587369, a = 432.163154, b = 148.692533\n", - "epoch 31: loss = 1982189.648231, a = 442.124651, b = 148.689103\n", - "epoch 32: loss = 1972388.066142, a = 451.889051, b = 148.685741\n", - "epoch 33: loss = 1962965.491447, a = 461.460255, b = 148.682445\n", - "epoch 34: loss = 1953907.173892, a = 470.842084, b = 148.679215\n", - "epoch 35: loss = 1945198.939172, a = 480.038285, b = 148.676048\n", - "epoch 36: loss = 1936827.166411, a = 489.052532, b = 148.672944\n", - "epoch 37: loss = 1928778.766513, a = 497.888424, b = 148.669902\n", - "epoch 38: loss = 1921041.161364, a = 506.549490, b = 148.666919\n", - "epoch 39: loss = 1913602.263848, a = 515.039190, b = 148.663996\n", - "epoch 40: loss = 1906450.458648, a = 523.360914, b = 148.661131\n", - "epoch 41: loss = 1899574.583794, a = 531.517985, b = 148.658322\n", - "epoch 42: loss = 1892963.912935, a = 539.513662, b = 148.655569\n", - "epoch 43: loss = 1886608.138306, a = 547.351138, b = 148.652870\n", - "epoch 44: loss = 1880497.354362, a = 555.033542, b = 148.650225\n", - "epoch 45: loss = 1874622.042047, a = 562.563943, b = 148.647632\n", - "epoch 46: loss = 1868973.053689, a = 569.945349, b = 148.645090\n", - "epoch 47: loss = 1863541.598476, a = 577.180708, b = 148.642599\n", - "epoch 48: loss = 1858319.228507, a = 584.272908, b = 148.640157\n", - "epoch 49: loss = 1853297.825385, a = 591.224784, b = 148.637763\n", - "epoch 50: loss = 1848469.587337, a = 598.039110, b = 148.635417\n", - "epoch 51: loss = 1843827.016840, a = 604.718609, b = 148.633117\n", - "epoch 52: loss = 1839362.908723, a = 611.265949, b = 148.630862\n", - "epoch 53: loss = 1835070.338746, a = 617.683744, b = 148.628653\n", - "epoch 54: loss = 1830942.652617, a = 623.974558, b = 148.626486\n", - "epoch 55: loss = 1826973.455442, a = 630.140902, b = 148.624363\n", - "epoch 56: loss = 1823156.601589, a = 636.185240, b = 148.622282\n", - "epoch 57: loss = 1819486.184948, a = 642.109985, b = 148.620242\n", - "epoch 58: loss = 1815956.529568, a = 647.917504, b = 148.618242\n", - "epoch 59: loss = 1812562.180670, a = 653.610117, b = 148.616282\n", - "epoch 60: loss = 1809297.895998, a = 659.190096, b = 148.614361\n", - "epoch 61: loss = 1806158.637522, a = 664.659671, b = 148.612477\n", - "epoch 62: loss = 1803139.563458, a = 670.021025, b = 148.610631\n", - "epoch 63: loss = 1800236.020598, a = 675.276301, b = 148.608822\n", - "epoch 64: loss = 1797443.536950, a = 680.427596, b = 148.607048\n", - "epoch 65: loss = 1794757.814654, a = 685.476969, b = 148.605309\n", - "epoch 66: loss = 1792174.723185, a = 690.426435, b = 148.603605\n", - "epoch 67: loss = 1789690.292815, a = 695.277972, b = 148.601934\n", - "epoch 68: loss = 1787300.708335, a = 700.033517, b = 148.600297\n", - "epoch 69: loss = 1785002.303019, a = 704.694970, b = 148.598692\n", - "epoch 70: loss = 1782791.552830, a = 709.264191, b = 148.597119\n", - "epoch 71: loss = 1780665.070844, a = 713.743007, b = 148.595576\n", - "epoch 72: loss = 1778619.601901, a = 718.133206, b = 148.594065\n", - "epoch 73: loss = 1776652.017457, a = 722.436540, b = 148.592583\n", - "epoch 74: loss = 1774759.310646, a = 726.654730, b = 148.591130\n", - "epoch 75: loss = 1772938.591527, a = 730.789459, b = 148.589707\n", - "epoch 76: loss = 1771187.082519, a = 734.842379, b = 148.588311\n", - "epoch 77: loss = 1769502.114022, a = 738.815108, b = 148.586943\n", - "epoch 78: loss = 1767881.120197, a = 742.709234, b = 148.585602\n", - "epoch 79: loss = 1766321.634920, a = 746.526311, b = 148.584288\n", - "epoch 80: loss = 1764821.287889, a = 750.267864, b = 148.583000\n", - "epoch 81: loss = 1763377.800890, a = 753.935387, b = 148.581737\n", - "epoch 82: loss = 1761988.984199, a = 757.530345, b = 148.580499\n", - "epoch 83: loss = 1760652.733134, a = 761.054173, b = 148.579286\n", - "epoch 84: loss = 1759367.024737, a = 764.508280, b = 148.578096\n", - "epoch 85: loss = 1758129.914584, a = 767.894044, b = 148.576931\n", - "epoch 86: loss = 1756939.533728, a = 771.212818, b = 148.575788\n", - "epoch 87: loss = 1755794.085750, a = 774.465927, b = 148.574668\n", - "epoch 88: loss = 1754691.843935, a = 777.654671, b = 148.573570\n", - "epoch 89: loss = 1753631.148552, a = 780.780322, b = 148.572493\n", - "epoch 90: loss = 1752610.404243, a = 783.844130, b = 148.571438\n", - "epoch 91: loss = 1751628.077518, a = 786.847318, b = 148.570404\n", - "epoch 92: loss = 1750682.694337, a = 789.791085, b = 148.569391\n", - "epoch 93: loss = 1749772.837797, a = 792.676607, b = 148.568397\n", - "epoch 94: loss = 1748897.145906, a = 795.505037, b = 148.567423\n", - "epoch 95: loss = 1748054.309442, a = 798.277504, b = 148.566469\n", - "epoch 96: loss = 1747243.069899, a = 800.995115, b = 148.565533\n", - "epoch 97: loss = 1746462.217508, a = 803.658956, b = 148.564616\n", - "epoch 98: loss = 1745710.589343, a = 806.270090, b = 148.563716\n", - "epoch 99: loss = 1744987.067493, a = 808.829561, b = 148.562835\n", - "epoch 100: loss = 1744290.577312, a = 811.338391, b = 148.561971\n", - "epoch 101: loss = 1743620.085732, a = 813.797581, b = 148.561125\n", - "epoch 102: loss = 1742974.599648, a = 816.208114, b = 148.560295\n", - "epoch 103: loss = 1742353.164357, a = 818.570953, b = 148.559481\n", - "epoch 104: loss = 1741754.862068, a = 820.887041, b = 148.558683\n", - "epoch 105: loss = 1741178.810465, a = 823.157303, b = 148.557902\n", - "epoch 106: loss = 1740624.161324, a = 825.382646, b = 148.557135\n", - "epoch 107: loss = 1740090.099189, a = 827.563959, b = 148.556384\n", - "epoch 108: loss = 1739575.840097, a = 829.702112, b = 148.555648\n", - "epoch 109: loss = 1739080.630352, a = 831.797961, b = 148.554926\n", - "epoch 110: loss = 1738603.745351, a = 833.852341, b = 148.554219\n", - "epoch 111: loss = 1738144.488447, a = 835.866073, b = 148.553526\n", - "epoch 112: loss = 1737702.189871, a = 837.839962, b = 148.552846\n", - "epoch 113: loss = 1737276.205677, a = 839.774796, b = 148.552180\n", - "epoch 114: loss = 1736865.916748, a = 841.671348, b = 148.551527\n", - "epoch 115: loss = 1736470.727823, a = 843.530375, b = 148.550887\n", - "epoch 116: loss = 1736090.066576, a = 845.352619, b = 148.550259\n", - "epoch 117: loss = 1735723.382723, a = 847.138809, b = 148.549644\n", - "epoch 118: loss = 1735370.147167, a = 848.889657, b = 148.549041\n", - "epoch 119: loss = 1735029.851171, a = 850.605863, b = 148.548450\n", - "epoch 120: loss = 1734702.005574, a = 852.288113, b = 148.547871\n", - "epoch 121: loss = 1734386.140028, a = 853.937078, b = 148.547303\n", - "epoch 122: loss = 1734081.802266, a = 855.553417, b = 148.546747\n", - "epoch 123: loss = 1733788.557403, a = 857.137775, b = 148.546201\n", - "epoch 124: loss = 1733505.987262, a = 858.690785, b = 148.545666\n", - "epoch 125: loss = 1733233.689723, a = 860.213068, b = 148.545142\n", - "epoch 126: loss = 1732971.278103, a = 861.705231, b = 148.544628\n", - "epoch 127: loss = 1732718.380559, a = 863.167870, b = 148.544125\n", - "epoch 128: loss = 1732474.639507, a = 864.601570, b = 148.543631\n", - "epoch 129: loss = 1732239.711074, a = 866.006902, b = 148.543147\n", - "epoch 130: loss = 1732013.264567, a = 867.384429, b = 148.542673\n", - "epoch 131: loss = 1731794.981959, a = 868.734701, b = 148.542208\n", - "epoch 132: loss = 1731584.557401, a = 870.058256, b = 148.541752\n", - "epoch 133: loss = 1731381.696752, a = 871.355623, b = 148.541306\n", - "epoch 134: loss = 1731186.117121, a = 872.627321, b = 148.540868\n", - "epoch 135: loss = 1730997.546436, a = 873.873858, b = 148.540438\n", - "epoch 136: loss = 1730815.723022, a = 875.095730, b = 148.540018\n", - "epoch 137: loss = 1730640.395202, a = 876.293427, b = 148.539605\n", - "epoch 138: loss = 1730471.320908, a = 877.467426, b = 148.539201\n", - "epoch 139: loss = 1730308.267311, a = 878.618197, b = 148.538805\n", - "epoch 140: loss = 1730151.010464, a = 879.746199, b = 148.538416\n", - "epoch 141: loss = 1729999.334955, a = 880.851882, b = 148.538036\n", - "epoch 142: loss = 1729853.033583, a = 881.935688, b = 148.537663\n", - "epoch 143: loss = 1729711.907037, a = 882.998050, b = 148.537297\n", - "epoch 144: loss = 1729575.763593, a = 884.039393, b = 148.536938\n", - "epoch 145: loss = 1729444.418820, a = 885.060132, b = 148.536587\n", - "epoch 146: loss = 1729317.695300, a = 886.060674, b = 148.536242\n", - "epoch 147: loss = 1729195.422355, a = 887.041420, b = 148.535904\n", - "epoch 148: loss = 1729077.435792, a = 888.002761, b = 148.535573\n", - "epoch 149: loss = 1728963.577645, a = 888.945081, b = 148.535249\n", - "epoch 150: loss = 1728853.695944, a = 889.868757, b = 148.534931\n", - "epoch 151: loss = 1728747.644477, a = 890.774156, b = 148.534619\n", - "epoch 152: loss = 1728645.282573, a = 891.661642, b = 148.534314\n", - "epoch 153: loss = 1728546.474885, a = 892.531568, b = 148.534014\n", - "epoch 154: loss = 1728451.091187, a = 893.384282, b = 148.533720\n", - "epoch 155: loss = 1728359.006178, a = 894.220124, b = 148.533433\n", - "epoch 156: loss = 1728270.099288, a = 895.039428, b = 148.533150\n", - "epoch 157: loss = 1728184.254503, a = 895.842521, b = 148.532874\n", - "epoch 158: loss = 1728101.360185, a = 896.629725, b = 148.532603\n", - "epoch 159: loss = 1728021.308903, a = 897.401353, b = 148.532337\n", - "epoch 160: loss = 1727943.997275, a = 898.157714, b = 148.532077\n", - "epoch 161: loss = 1727869.325813, a = 898.899110, b = 148.531821\n", - "epoch 162: loss = 1727797.198769, a = 899.625836, b = 148.531571\n", - "epoch 163: loss = 1727727.523995, a = 900.338184, b = 148.531326\n", - "epoch 164: loss = 1727660.212803, a = 901.036437, b = 148.531086\n", - "epoch 165: loss = 1727595.179837, a = 901.720875, b = 148.530850\n", - "epoch 166: loss = 1727532.342938, a = 902.391770, b = 148.530619\n", - "epoch 167: loss = 1727471.623027, a = 903.049391, b = 148.530392\n", - "epoch 168: loss = 1727412.943986, a = 903.694001, b = 148.530170\n", - "epoch 169: loss = 1727356.232544, a = 904.325856, b = 148.529953\n", - "epoch 170: loss = 1727301.418168, a = 904.945210, b = 148.529740\n", - "epoch 171: loss = 1727248.432959, a = 905.552309, b = 148.529531\n", - "epoch 172: loss = 1727197.211551, a = 906.147396, b = 148.529326\n", - "epoch 173: loss = 1727147.691014, a = 906.730709, b = 148.529125\n", - "epoch 174: loss = 1727099.810763, a = 907.302481, b = 148.528928\n", - "epoch 175: loss = 1727053.512464, a = 907.862939, b = 148.528735\n", - "epoch 176: loss = 1727008.739955, a = 908.412309, b = 148.528546\n", - "epoch 177: loss = 1726965.439156, a = 908.950808, b = 148.528360\n", - "epoch 178: loss = 1726923.557995, a = 909.478653, b = 148.528179\n", - "epoch 179: loss = 1726883.046328, a = 909.996055, b = 148.528000\n", - "epoch 180: loss = 1726843.855869, a = 910.503219, b = 148.527826\n", - "epoch 181: loss = 1726805.940116, a = 911.000348, b = 148.527655\n", - "epoch 182: loss = 1726769.254286, a = 911.487641, b = 148.527487\n", - "epoch 183: loss = 1726733.755249, a = 911.965292, b = 148.527322\n", - "epoch 184: loss = 1726699.401462, a = 912.433493, b = 148.527161\n", - "epoch 185: loss = 1726666.152915, a = 912.892430, b = 148.527003\n", - "epoch 186: loss = 1726633.971067, a = 913.342287, b = 148.526848\n", - "epoch 187: loss = 1726602.818794, a = 913.783243, b = 148.526696\n", - "epoch 188: loss = 1726572.660334, a = 914.215474, b = 148.526548\n", - "epoch 189: loss = 1726543.461235, a = 914.639153, b = 148.526402\n", - "epoch 190: loss = 1726515.188306, a = 915.054449, b = 148.526259\n", - "epoch 191: loss = 1726487.809572, a = 915.461529, b = 148.526119\n", - "epoch 192: loss = 1726461.294221, a = 915.860553, b = 148.525981\n", - "epoch 193: loss = 1726435.612569, a = 916.251683, b = 148.525846\n", - "epoch 194: loss = 1726410.736010, a = 916.635074, b = 148.525714\n", - "epoch 195: loss = 1726386.636980, a = 917.010879, b = 148.525585\n", - "epoch 196: loss = 1726363.288915, a = 917.379249, b = 148.525458\n", - "epoch 197: loss = 1726340.666217, a = 917.740330, b = 148.525334\n", - "epoch 198: loss = 1726318.744212, a = 918.094267, b = 148.525212\n", - "epoch 199: loss = 1726297.499121, a = 918.441201, b = 148.525093\n", - "epoch 200: loss = 1726276.908024, a = 918.781270, b = 148.524975\n", - "epoch 201: loss = 1726256.948827, a = 919.114611, b = 148.524861\n", - "epoch 202: loss = 1726237.600231, a = 919.441356, b = 148.524748\n", - "epoch 203: loss = 1726218.841703, a = 919.761637, b = 148.524638\n", - "epoch 204: loss = 1726200.653451, a = 920.075580, b = 148.524530\n", - "epoch 205: loss = 1726183.016388, a = 920.383312, b = 148.524424\n", - "epoch 206: loss = 1726165.912113, a = 920.684955, b = 148.524320\n", - "epoch 207: loss = 1726149.322881, a = 920.980630, b = 148.524218\n", - "epoch 208: loss = 1726133.231583, a = 921.270455, b = 148.524118\n", - "epoch 209: loss = 1726117.621717, a = 921.554545, b = 148.524021\n", - "epoch 210: loss = 1726102.477370, a = 921.833014, b = 148.523925\n", - "epoch 211: loss = 1726087.783192, a = 922.105974, b = 148.523831\n", - "epoch 212: loss = 1726073.524378, a = 922.373533, b = 148.523739\n", - "epoch 213: loss = 1726059.686650, a = 922.635798, b = 148.523648\n", - "epoch 214: loss = 1726046.256229, a = 922.892873, b = 148.523560\n", - "epoch 215: loss = 1726033.219826, a = 923.144863, b = 148.523473\n", - "epoch 216: loss = 1726020.564620, a = 923.391866, b = 148.523388\n", - "epoch 217: loss = 1726008.278237, a = 923.633982, b = 148.523305\n", - "epoch 218: loss = 1725996.348741, a = 923.871308, b = 148.523223\n", - "epoch 219: loss = 1725984.764612, a = 924.103938, b = 148.523143\n", - "epoch 220: loss = 1725973.514733, a = 924.331966, b = 148.523064\n", - "epoch 221: loss = 1725962.588374, a = 924.555481, b = 148.522987\n", - "epoch 222: loss = 1725951.975181, a = 924.774575, b = 148.522912\n", - "epoch 223: loss = 1725941.665156, a = 924.989333, b = 148.522838\n", - "epoch 224: loss = 1725931.648652, a = 925.199842, b = 148.522765\n", - "epoch 225: loss = 1725921.916352, a = 925.406186, b = 148.522694\n", - "epoch 226: loss = 1725912.459264, a = 925.608447, b = 148.522625\n", - "epoch 227: loss = 1725903.268703, a = 925.806706, b = 148.522556\n", - "epoch 228: loss = 1725894.336285, a = 926.001043, b = 148.522489\n", - "epoch 229: loss = 1725885.653913, a = 926.191534, b = 148.522424\n", - "epoch 230: loss = 1725877.213768, a = 926.378257, b = 148.522360\n", - "epoch 231: loss = 1725869.008296, a = 926.561285, b = 148.522297\n", - "epoch 232: loss = 1725861.030202, a = 926.740692, b = 148.522235\n", - "epoch 233: loss = 1725853.272442, a = 926.916548, b = 148.522174\n", - "epoch 234: loss = 1725845.728205, a = 927.088926, b = 148.522115\n", - "epoch 235: loss = 1725838.390917, a = 927.257893, b = 148.522057\n", - "epoch 236: loss = 1725831.254223, a = 927.423516, b = 148.522000\n", - "epoch 237: loss = 1725824.311982, a = 927.585863, b = 148.521944\n", - "epoch 238: loss = 1725817.558260, a = 927.744997, b = 148.521889\n", - "epoch 239: loss = 1725810.987324, a = 927.900983, b = 148.521835\n", - "epoch 240: loss = 1725804.593630, a = 928.053883, b = 148.521783\n", - "epoch 241: loss = 1725798.371821, a = 928.203757, b = 148.521731\n", - "epoch 242: loss = 1725792.316718, a = 928.350666, b = 148.521680\n", - "epoch 243: loss = 1725786.423315, a = 928.494668, b = 148.521631\n", - "epoch 244: loss = 1725780.686770, a = 928.635821, b = 148.521582\n", - "epoch 245: loss = 1725775.102403, a = 928.774181, b = 148.521535\n", - "epoch 246: loss = 1725769.665688, a = 928.909804, b = 148.521488\n", - "epoch 247: loss = 1725764.372248, a = 929.042743, b = 148.521442\n", - "epoch 248: loss = 1725759.217848, a = 929.173052, b = 148.521397\n", - "epoch 249: loss = 1725754.198393, a = 929.300783, b = 148.521353\n", - "epoch 250: loss = 1725749.309922, a = 929.425986, b = 148.521310\n", - "epoch 251: loss = 1725744.548603, a = 929.548712, b = 148.521268\n", - "epoch 252: loss = 1725739.910728, a = 929.669010, b = 148.521226\n", - "epoch 253: loss = 1725735.392708, a = 929.786928, b = 148.521186\n", - "epoch 254: loss = 1725730.991072, a = 929.902512, b = 148.521146\n", - "epoch 255: loss = 1725726.702459, a = 930.015810, b = 148.521107\n", - "epoch 256: loss = 1725722.523617, a = 930.126866, b = 148.521069\n", - "epoch 257: loss = 1725718.451397, a = 930.235724, b = 148.521031\n", - "epoch 258: loss = 1725714.482753, a = 930.342429, b = 148.520995\n", - "epoch 259: loss = 1725710.614734, a = 930.447022, b = 148.520959\n", - "epoch 260: loss = 1725706.844482, a = 930.549546, b = 148.520923\n", - "epoch 261: loss = 1725703.169232, a = 930.650042, b = 148.520889\n", - "epoch 262: loss = 1725699.586303, a = 930.748549, b = 148.520855\n", - "epoch 263: loss = 1725696.093102, a = 930.845107, b = 148.520822\n", - "epoch 264: loss = 1725692.687115, a = 930.939754, b = 148.520789\n", - "epoch 265: loss = 1725689.365908, a = 931.032529, b = 148.520757\n", - "epoch 266: loss = 1725686.127121, a = 931.123468, b = 148.520726\n", - "epoch 267: loss = 1725682.968469, a = 931.212608, b = 148.520695\n", - "epoch 268: loss = 1725679.887739, a = 931.299985, b = 148.520665\n", - "epoch 269: loss = 1725676.882782, a = 931.385632, b = 148.520635\n", - "epoch 270: loss = 1725673.951521, a = 931.469585, b = 148.520606\n", - "epoch 271: loss = 1725671.091938, a = 931.551877, b = 148.520578\n", - "epoch 272: loss = 1725668.302080, a = 931.632540, b = 148.520550\n", - "epoch 273: loss = 1725665.580052, a = 931.711608, b = 148.520523\n", - "epoch 274: loss = 1725662.924017, a = 931.789111, b = 148.520496\n", - "epoch 275: loss = 1725660.332194, a = 931.865080, b = 148.520470\n", - "epoch 276: loss = 1725657.802855, a = 931.939547, b = 148.520445\n", - "epoch 277: loss = 1725655.334325, a = 932.012540, b = 148.520420\n", - "epoch 278: loss = 1725652.924980, a = 932.084089, b = 148.520395\n", - "epoch 279: loss = 1725650.573243, a = 932.154222, b = 148.520371\n", - "epoch 280: loss = 1725648.277584, a = 932.222968, b = 148.520347\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "epoch 281: loss = 1725646.036521, a = 932.290353, b = 148.520324\n", - "epoch 282: loss = 1725643.848614, a = 932.356405, b = 148.520301\n", - "epoch 283: loss = 1725641.712465, a = 932.421150, b = 148.520279\n", - "epoch 284: loss = 1725639.626719, a = 932.484614, b = 148.520257\n", - "epoch 285: loss = 1725637.590060, a = 932.546823, b = 148.520236\n", - "epoch 286: loss = 1725635.601209, a = 932.607801, b = 148.520215\n", - "epoch 287: loss = 1725633.658927, a = 932.667572, b = 148.520194\n", - "epoch 288: loss = 1725631.762010, a = 932.726160, b = 148.520174\n", - "epoch 289: loss = 1725629.909289, a = 932.783590, b = 148.520154\n", - "epoch 290: loss = 1725628.099627, a = 932.839883, b = 148.520135\n", - "epoch 291: loss = 1725626.331922, a = 932.895062, b = 148.520116\n", - "epoch 292: loss = 1725624.605102, a = 932.949149, b = 148.520097\n", - "epoch 293: loss = 1725622.918128, a = 933.002166, b = 148.520079\n", - "epoch 294: loss = 1725621.269989, a = 933.054135, b = 148.520061\n", - "epoch 295: loss = 1725619.659702, a = 933.105075, b = 148.520043\n", - "epoch 296: loss = 1725618.086312, a = 933.155007, b = 148.520026\n", - "epoch 297: loss = 1725616.548894, a = 933.203951, b = 148.520009\n", - "epoch 298: loss = 1725615.046544, a = 933.251927, b = 148.519993\n", - "epoch 299: loss = 1725613.578388, a = 933.298953, b = 148.519977\n", - "epoch 300: loss = 1725612.143573, a = 933.345050, b = 148.519961\n", - "epoch 301: loss = 1725610.741272, a = 933.390234, b = 148.519945\n", - "epoch 302: loss = 1725609.370679, a = 933.434524, b = 148.519930\n", - "epoch 303: loss = 1725608.031013, a = 933.477937, b = 148.519915\n", - "epoch 304: loss = 1725606.721512, a = 933.520492, b = 148.519900\n", - "epoch 305: loss = 1725605.441435, a = 933.562205, b = 148.519886\n", - "epoch 306: loss = 1725604.190064, a = 933.603092, b = 148.519872\n", - "epoch 307: loss = 1725602.966697, a = 933.643171, b = 148.519858\n", - "epoch 308: loss = 1725601.770653, a = 933.682456, b = 148.519845\n", - "epoch 309: loss = 1725600.601270, a = 933.720964, b = 148.519831\n", - "epoch 310: loss = 1725599.457903, a = 933.758711, b = 148.519818\n", - "epoch 311: loss = 1725598.339923, a = 933.795710, b = 148.519806\n", - "epoch 312: loss = 1725597.246722, a = 933.831977, b = 148.519793\n", - "epoch 313: loss = 1725596.177703, a = 933.867527, b = 148.519781\n", - "epoch 314: loss = 1725595.132289, a = 933.902373, b = 148.519769\n", - "epoch 315: loss = 1725594.109917, a = 933.936530, b = 148.519757\n", - "epoch 316: loss = 1725593.110038, a = 933.970011, b = 148.519746\n", - "epoch 317: loss = 1725592.132118, a = 934.002830, b = 148.519734\n", - "epoch 318: loss = 1725591.175638, a = 934.034999, b = 148.519723\n", - "epoch 319: loss = 1725590.240092, a = 934.066532, b = 148.519712\n", - "epoch 320: loss = 1725589.324986, a = 934.097441, b = 148.519702\n", - "epoch 321: loss = 1725588.429841, a = 934.127738, b = 148.519691\n", - "epoch 322: loss = 1725587.554189, a = 934.157436, b = 148.519681\n", - "epoch 323: loss = 1725586.697574, a = 934.186546, b = 148.519671\n", - "epoch 324: loss = 1725585.859554, a = 934.215081, b = 148.519661\n", - "epoch 325: loss = 1725585.039694, a = 934.243051, b = 148.519651\n", - "epoch 326: loss = 1725584.237575, a = 934.270467, b = 148.519642\n", - "epoch 327: loss = 1725583.452786, a = 934.297341, b = 148.519633\n", - "epoch 328: loss = 1725582.684926, a = 934.323683, b = 148.519624\n", - "epoch 329: loss = 1725581.933606, a = 934.349504, b = 148.519615\n", - "epoch 330: loss = 1725581.198445, a = 934.374814, b = 148.519606\n", - "epoch 331: loss = 1725580.479074, a = 934.399623, b = 148.519598\n", - "epoch 332: loss = 1725579.775131, a = 934.423941, b = 148.519589\n", - "epoch 333: loss = 1725579.086264, a = 934.447779, b = 148.519581\n", - "epoch 334: loss = 1725578.412130, a = 934.471144, b = 148.519573\n", - "epoch 335: loss = 1725577.752394, a = 934.494048, b = 148.519565\n", - "epoch 336: loss = 1725577.106730, a = 934.516498, b = 148.519557\n", - "epoch 337: loss = 1725576.474819, a = 934.538504, b = 148.519550\n", - "epoch 338: loss = 1725575.856351, a = 934.560074, b = 148.519542\n", - "epoch 339: loss = 1725575.251023, a = 934.581218, b = 148.519535\n", - "epoch 340: loss = 1725574.658540, a = 934.601943, b = 148.519528\n", - "epoch 341: loss = 1725574.078613, a = 934.622259, b = 148.519521\n", - "epoch 342: loss = 1725573.510962, a = 934.642172, b = 148.519514\n", - "epoch 343: loss = 1725572.955312, a = 934.661691, b = 148.519507\n", - "epoch 344: loss = 1725572.411396, a = 934.680825, b = 148.519501\n", - "epoch 345: loss = 1725571.878952, a = 934.699579, b = 148.519494\n", - "epoch 346: loss = 1725571.357726, a = 934.717963, b = 148.519488\n", - "epoch 347: loss = 1725570.847468, a = 934.735982, b = 148.519482\n", - "epoch 348: loss = 1725570.347937, a = 934.753646, b = 148.519476\n", - "epoch 349: loss = 1725569.858895, a = 934.770959, b = 148.519470\n", - "epoch 350: loss = 1725569.380112, a = 934.787931, b = 148.519464\n", - "epoch 351: loss = 1725568.911360, a = 934.804566, b = 148.519458\n", - "epoch 352: loss = 1725568.452420, a = 934.820872, b = 148.519453\n", - "epoch 353: loss = 1725568.003077, a = 934.836856, b = 148.519447\n", - "epoch 354: loss = 1725567.563120, a = 934.852523, b = 148.519442\n", - "epoch 355: loss = 1725567.132345, a = 934.867881, b = 148.519436\n", - "epoch 356: loss = 1725566.710551, a = 934.882934, b = 148.519431\n", - "epoch 357: loss = 1725566.297542, a = 934.897690, b = 148.519426\n", - "epoch 358: loss = 1725565.893128, a = 934.912154, b = 148.519421\n", - "epoch 359: loss = 1725565.497121, a = 934.926331, b = 148.519416\n", - "epoch 360: loss = 1725565.109340, a = 934.940228, b = 148.519411\n", - "epoch 361: loss = 1725564.729607, a = 934.953850, b = 148.519407\n", - "epoch 362: loss = 1725564.357747, a = 934.967203, b = 148.519402\n", - "epoch 363: loss = 1725563.993590, a = 934.980291, b = 148.519398\n", - "epoch 364: loss = 1725563.636972, a = 934.993120, b = 148.519393\n", - "epoch 365: loss = 1725563.287729, a = 935.005696, b = 148.519389\n", - "epoch 366: loss = 1725562.945702, a = 935.018023, b = 148.519385\n", - "epoch 367: loss = 1725562.610739, a = 935.030106, b = 148.519380\n", - "epoch 368: loss = 1725562.282686, a = 935.041949, b = 148.519376\n", - "epoch 369: loss = 1725561.961396, a = 935.053559, b = 148.519372\n", - "epoch 370: loss = 1725561.646724, a = 935.064938, b = 148.519368\n", - "epoch 371: loss = 1725561.338531, a = 935.076093, b = 148.519365\n", - "epoch 372: loss = 1725561.036676, a = 935.087027, b = 148.519361\n", - "epoch 373: loss = 1725560.741026, a = 935.097744, b = 148.519357\n", - "epoch 374: loss = 1725560.451449, a = 935.108250, b = 148.519354\n", - "epoch 375: loss = 1725560.167816, a = 935.118547, b = 148.519350\n", - "epoch 376: loss = 1725559.890000, a = 935.128641, b = 148.519347\n", - "epoch 377: loss = 1725559.617879, a = 935.138535, b = 148.519343\n", - "epoch 378: loss = 1725559.351332, a = 935.148234, b = 148.519340\n", - "epoch 379: loss = 1725559.090241, a = 935.157740, b = 148.519337\n", - "epoch 380: loss = 1725558.834492, a = 935.167059, b = 148.519333\n", - "epoch 381: loss = 1725558.583972, a = 935.176193, b = 148.519330\n", - "epoch 382: loss = 1725558.338570, a = 935.185146, b = 148.519327\n", - "epoch 383: loss = 1725558.098179, a = 935.193922, b = 148.519324\n", - "epoch 384: loss = 1725557.862695, a = 935.202525, b = 148.519321\n", - "epoch 385: loss = 1725557.632013, a = 935.210957, b = 148.519318\n", - "epoch 386: loss = 1725557.406033, a = 935.219223, b = 148.519315\n", - "epoch 387: loss = 1725557.184657, a = 935.227324, b = 148.519313\n", - "epoch 388: loss = 1725556.967789, a = 935.235266, b = 148.519310\n", - "epoch 389: loss = 1725556.755334, a = 935.243051, b = 148.519307\n", - "epoch 390: loss = 1725556.547200, a = 935.250681, b = 148.519305\n", - "epoch 391: loss = 1725556.343298, a = 935.258160, b = 148.519302\n", - "epoch 392: loss = 1725556.143538, a = 935.265492, b = 148.519299\n", - "epoch 393: loss = 1725555.947836, a = 935.272678, b = 148.519297\n", - "epoch 394: loss = 1725555.756105, a = 935.279723, b = 148.519295\n", - "epoch 395: loss = 1725555.568265, a = 935.286628, b = 148.519292\n", - "epoch 396: loss = 1725555.384233, a = 935.293396, b = 148.519290\n", - "epoch 397: loss = 1725555.203932, a = 935.300030, b = 148.519288\n", - "epoch 398: loss = 1725555.027283, a = 935.306533, b = 148.519285\n", - "epoch 399: loss = 1725554.854212, a = 935.312908, b = 148.519283\n", - "epoch 400: loss = 1725554.684644, a = 935.319156, b = 148.519281\n", - "epoch 401: loss = 1725554.518507, a = 935.325281, b = 148.519279\n", - "epoch 402: loss = 1725554.355730, a = 935.331284, b = 148.519277\n", - "epoch 403: loss = 1725554.196244, a = 935.337169, b = 148.519275\n", - "epoch 404: loss = 1725554.039980, a = 935.342937, b = 148.519273\n", - "epoch 405: loss = 1725553.886873, a = 935.348591, b = 148.519271\n", - "epoch 406: loss = 1725553.736857, a = 935.354133, b = 148.519269\n", - "epoch 407: loss = 1725553.589869, a = 935.359566, b = 148.519267\n", - "epoch 408: loss = 1725553.445846, a = 935.364891, b = 148.519265\n", - "epoch 409: loss = 1725553.304728, a = 935.370111, b = 148.519263\n", - "epoch 410: loss = 1725553.166456, a = 935.375227, b = 148.519262\n", - "epoch 411: loss = 1725553.030969, a = 935.380242, b = 148.519260\n", - "epoch 412: loss = 1725552.898213, a = 935.385158, b = 148.519258\n", - "epoch 413: loss = 1725552.768130, a = 935.389977, b = 148.519257\n", - "epoch 414: loss = 1725552.640666, a = 935.394701, b = 148.519255\n", - "epoch 415: loss = 1725552.515767, a = 935.399331, b = 148.519253\n", - "epoch 416: loss = 1725552.393381, a = 935.403869, b = 148.519252\n", - "epoch 417: loss = 1725552.273456, a = 935.408317, b = 148.519250\n", - "epoch 418: loss = 1725552.155943, a = 935.412678, b = 148.519249\n", - "epoch 419: loss = 1725552.040792, a = 935.416952, b = 148.519247\n", - "epoch 420: loss = 1725551.927954, a = 935.421142, b = 148.519246\n", - "epoch 421: loss = 1725551.817384, a = 935.425249, b = 148.519244\n", - "epoch 422: loss = 1725551.709033, a = 935.429274, b = 148.519243\n", - "epoch 423: loss = 1725551.602858, a = 935.433220, b = 148.519242\n", - "epoch 424: loss = 1725551.498814, a = 935.437088, b = 148.519240\n", - "epoch 425: loss = 1725551.396858, a = 935.440879, b = 148.519239\n", - "epoch 426: loss = 1725551.296947, a = 935.444595, b = 148.519238\n", - "epoch 427: loss = 1725551.199039, a = 935.448238, b = 148.519237\n", - "epoch 428: loss = 1725551.103094, a = 935.451809, b = 148.519235\n", - "epoch 429: loss = 1725551.009073, a = 935.455309, b = 148.519234\n", - "epoch 430: loss = 1725550.916935, a = 935.458739, b = 148.519233\n", - "epoch 431: loss = 1725550.826644, a = 935.462102, b = 148.519232\n", - "epoch 432: loss = 1725550.738161, a = 935.465399, b = 148.519231\n", - "epoch 433: loss = 1725550.651449, a = 935.468630, b = 148.519229\n", - "epoch 434: loss = 1725550.566474, a = 935.471797, b = 148.519228\n", - "epoch 435: loss = 1725550.483199, a = 935.474901, b = 148.519227\n", - "epoch 436: loss = 1725550.401591, a = 935.477945, b = 148.519226\n", - "epoch 437: loss = 1725550.321615, a = 935.480927, b = 148.519225\n", - "epoch 438: loss = 1725550.243239, a = 935.483851, b = 148.519224\n", - "epoch 439: loss = 1725550.166431, a = 935.486717, b = 148.519223\n", - "epoch 440: loss = 1725550.091158, a = 935.489527, b = 148.519222\n", - "epoch 441: loss = 1725550.017389, a = 935.492280, b = 148.519221\n", - "epoch 442: loss = 1725549.945095, a = 935.494980, b = 148.519220\n", - "epoch 443: loss = 1725549.874246, a = 935.497625, b = 148.519219\n", - "epoch 444: loss = 1725549.804812, a = 935.500219, b = 148.519219\n", - "epoch 445: loss = 1725549.736765, a = 935.502761, b = 148.519218\n", - "epoch 446: loss = 1725549.670077, a = 935.505253, b = 148.519217\n", - "epoch 447: loss = 1725549.604720, a = 935.507696, b = 148.519216\n", - "epoch 448: loss = 1725549.540668, a = 935.510090, b = 148.519215\n", - "epoch 449: loss = 1725549.477894, a = 935.512437, b = 148.519214\n", - "epoch 450: loss = 1725549.416373, a = 935.514737, b = 148.519214\n", - "epoch 451: loss = 1725549.356080, a = 935.516992, b = 148.519213\n", - "epoch 452: loss = 1725549.296990, a = 935.519202, b = 148.519212\n", - "epoch 453: loss = 1725549.239078, a = 935.521369, b = 148.519211\n", - "epoch 454: loss = 1725549.182321, a = 935.523493, b = 148.519211\n", - "epoch 455: loss = 1725549.126696, a = 935.525574, b = 148.519210\n", - "epoch 456: loss = 1725549.072179, a = 935.527615, b = 148.519209\n", - "epoch 457: loss = 1725549.018750, a = 935.529615, b = 148.519208\n", - "epoch 458: loss = 1725548.966385, a = 935.531575, b = 148.519208\n", - "epoch 459: loss = 1725548.915064, a = 935.533497, b = 148.519207\n", - "epoch 460: loss = 1725548.864766, a = 935.535381, b = 148.519206\n", - "epoch 461: loss = 1725548.815470, a = 935.537227, b = 148.519206\n", - "epoch 462: loss = 1725548.767155, a = 935.539037, b = 148.519205\n", - "epoch 463: loss = 1725548.719803, a = 935.540811, b = 148.519205\n", - "epoch 464: loss = 1725548.673394, a = 935.542550, b = 148.519204\n", - "epoch 465: loss = 1725548.627910, a = 935.544255, b = 148.519203\n", - "epoch 466: loss = 1725548.583330, a = 935.545926, b = 148.519203\n", - "epoch 467: loss = 1725548.539638, a = 935.547564, b = 148.519202\n", - "epoch 468: loss = 1725548.496816, a = 935.549169, b = 148.519202\n", - "epoch 469: loss = 1725548.454846, a = 935.550743, b = 148.519201\n", - "epoch 470: loss = 1725548.413712, a = 935.552285, b = 148.519201\n", - "epoch 471: loss = 1725548.373396, a = 935.553797, b = 148.519200\n", - "epoch 472: loss = 1725548.333882, a = 935.555279, b = 148.519200\n", - "epoch 473: loss = 1725548.295154, a = 935.556732, b = 148.519199\n", - "epoch 474: loss = 1725548.257196, a = 935.558156, b = 148.519199\n", - "epoch 475: loss = 1725548.219993, a = 935.559552, b = 148.519198\n", - "epoch 476: loss = 1725548.183531, a = 935.560920, b = 148.519198\n", - "epoch 477: loss = 1725548.147793, a = 935.562261, b = 148.519197\n", - "epoch 478: loss = 1725548.112766, a = 935.563576, b = 148.519197\n", - "epoch 479: loss = 1725548.078435, a = 935.564864, b = 148.519196\n", - "epoch 480: loss = 1725548.044787, a = 935.566128, b = 148.519196\n", - "epoch 481: loss = 1725548.011808, a = 935.567366, b = 148.519195\n", - "epoch 482: loss = 1725547.979484, a = 935.568579, b = 148.519195\n", - "epoch 483: loss = 1725547.947802, a = 935.569769, b = 148.519195\n", - "epoch 484: loss = 1725547.916751, a = 935.570935, b = 148.519194\n", - "epoch 485: loss = 1725547.886316, a = 935.572078, b = 148.519194\n", - "epoch 486: loss = 1725547.856486, a = 935.573198, b = 148.519193\n", - "epoch 487: loss = 1725547.827248, a = 935.574296, b = 148.519193\n", - "epoch 488: loss = 1725547.798592, a = 935.575373, b = 148.519193\n", - "epoch 489: loss = 1725547.770504, a = 935.576428, b = 148.519192\n", - "epoch 490: loss = 1725547.742975, a = 935.577462, b = 148.519192\n", - "epoch 491: loss = 1725547.715992, a = 935.578476, b = 148.519192\n", - "epoch 492: loss = 1725547.689545, a = 935.579470, b = 148.519191\n", - "epoch 493: loss = 1725547.663624, a = 935.580444, b = 148.519191\n", - "epoch 494: loss = 1725547.638217, a = 935.581399, b = 148.519191\n", - "epoch 495: loss = 1725547.613314, a = 935.582335, b = 148.519190\n", - "epoch 496: loss = 1725547.588906, a = 935.583252, b = 148.519190\n", - "epoch 497: loss = 1725547.564983, a = 935.584152, b = 148.519190\n", - "epoch 498: loss = 1725547.541534, a = 935.585033, b = 148.519189\n", - "epoch 499: loss = 1725547.518551, a = 935.585897, b = 148.519189\n" + "epoch 0: loss = 7670.746142, a = 2.354092, b = 3.762462\n", + "epoch 50: loss = 8594.865640, a = 1.749804, b = 6.543725\n", + "epoch 100: loss = 8594.865640, a = 1.749804, b = 6.543725\n", + "epoch 150: loss = 8594.865640, a = 1.749804, b = 6.543725\n", + "epoch 200: loss = 8594.865640, a = 1.749804, b = 6.543725\n", + "epoch 250: loss = 8594.865640, a = 1.749804, b = 6.543725\n", + "epoch 300: loss = 8594.865640, a = 1.749804, b = 6.543725\n", + "epoch 350: loss = 8594.865640, a = 1.749804, b = 6.543725\n", + "epoch 400: loss = 8594.865640, a = 1.749804, b = 6.543725\n", + "epoch 450: loss = 8594.865640, a = 1.749804, b = 6.543725\n" ] }, { "data": { - "image/png": "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hkmx/Dbr1q2jU6dOXHrppRxzzDFs2LAhrsjGXXfdRadOnfjNb37D0KFDue+++wAYPnw406drtcQ7dOjA6NGjOe644+jatSurVq0CYMGCBfz617+moKCAE088kdWrnS2f8vJyLrzwQo466ijOPvtsysv3/5iuvvpqCgsL6dKlC6NHjwbgoYce4vvvv6dv37707dvXdj+FO8pa3U8m5jJX1BPLPRlW1KJFi3jmmWeYP38+Ukp69erFb3/7W5o3b86aNWt47rnnOOGEE+KO+fzzz5kxYwZLly6loqKC4447jh49eliev2XLlnzxxRc88sgj3HfffTz55JN07tyZTz75hEaNGvHee+9x66231mSctOLRRx8lNzeXlStXsmzZMo477ria9+6++25atGhBVVUVp5xyCsuWLeO6667jgQceYM6cObRs2dJ2v27dugW6Zw0JZa3uRyX2ykzqhbgnmnXOik8//ZSzzz6bpk2bAnDOOefwySefMGjQINq3b19L2AHmzp3L4MGDyc7OJjs7m4EDB9qe/5xzzgGgR48eNamBd+zYwbBhw1izZg1CCCoqKhzb+PHHH3PdddcB0K1btzhRnjZtGpMnT6ayspJNmzbx1VdfWYq21/3CJpOjK7y0zc/ioUzta1jtUuGYmUm9EPdUW1G64CeCnjo4EolQWVkJwO23307fvn157bXXWLduHX369Al07m+//Zb77ruPzz//nObNmzN8+HD27NkTeL+wyWR/tde2ebVWM7WvYbcrE8IxFfHUC597Mnx+J510EsXFxZSVlbF7925ee+01TjrpJMdjevfuzeuvv86ePXvYtWsXb7zxhq9r7tixg/x87Qfy7LPPuu5vTCv85Zdf1pT427lzJ02bNqVZs2Zs3ryZt956q+aYAw88kJ9//tl1v2SSyf5qr23zmoY2U/uaqe1yQ0UoeadeWO7J8Pkdd9xxDB8+nOOPPx6AK6+8koKCAtatW2d7TM+ePRk0aBDdunXj0EMPpWvXrjRr1szzNW+++WaGDRvGuHHjOPPMM133v/rqq7nssss46qijOOqoo2r8+8ceeywFBQV07tyZtm3b0rt375pjRowYwRlnnEHr1q2ZM2eO7X7JJJP91X7a5sVazaS+Gt0wdrlgM+EzsCNTR0EJ8e23kJsLhx4a+qnrTcrfTPFr7tq1iwMOOICysjJOPvlkJk+eHDfRWRcJO+VvJqepDbttmdJXq7S7VmTCZ2BHptzLUFi7Fu65B55/Hq69Fh58MNBpGkTK30zx+Y0YMYKvvvqKPXv2MGzYsDov7Mkg1dEVfh78YbdtZP9OjJy+lIqq/UZUNCJSHkli5YYxk+kRLpk0CgrM//4Hd98NU6ZANAp/+hPcfHNSLuUq7kKIbOBjoEls/+lSytFCiI7Ay8DBwCLgEinlPiFEE+B5oAewFRgipVyXlNZnILoPXGFPKqMr/A7lk9I28+A4DYNlJwEUUCciXOpKemNLVq7URP2ll6BJE/jLX2DkSDjssKRd0ovlvhfoJ6XcJYSIAp8KId4CbgQmSilfFkI8BlwBPBr7f7uU8pdCiAuBfwBDgjROSokQIsihipBIltsuVSOtIGGyYbZtwuzVVFTH38OKaplQmG4Q7ISxLrk06mQ8/YoVcNddMG0a5OTATTfBX/8KhxyS9Eu7RstIjV2xP6OxfxLoB0yPbX8OKIq9Hhz7m9j7p4gACp2dnc3WrVuTJi4Kd6SUbN26lezs7LS1IdHoiHQP5dN9fZ36kPe9ThXKXrYMzj8fjjkGZs2CUaNg3Tr45z9TIuzg0ecuhIiguV5+CTwMfA2USikrY7tsBPQ7nA9sAJBSVgohdqC5bn7y07A2bdqwceNGtmzZ4ucwRchkZ2fTpk2btFw7jOgIO4s1Swg6jpqVdHdEprgS6stCo0yZW7Nl8WLNUn/tNTjoILjtNrj+ejj44JQ3xZO4SymrgO5CiDzgNaBzohcWQowARgC0a9eu1vvRaJSOHTsmehlFHSaMlcdWQ3mAqtiIMNnhdGG6EhKNCMt4YazLLFyoifrMmdCsGYwerfnVmzdPW5N8RctIKUuFEHOAXwN5QohGMeu9DaCPl0uAtsBGIUQjoBnaxKr5XJOByaCFQgbvgiLZBBWVRMUoDJeG2WLNEqJG2HUSTVVhh97/8ooqIrHr5ge0mOtljHd9YMECGDsW3nxTE/I774TrrtMEPs24+tyFEK1iFjtCiBzgNGAlMAc4L7bbMOC/sdczY38Te/8DqRzndRZdVEpiC190UXHzfQc9zkhYK4+LCvKZO6of344/k2qbr2LYPnBj/0EbKegWexAxrqsrSustn30GZ5wBvXrB/PlazPq6dXD77Rkh7OAt/cDhwBwhxDLgc+BdKeUbwN+AG4UQa9F86k/F9n8KODi2/UZgVPjNVqSKoKIShhglYxIwVelpwxbjTJmYbfB88gmcdhqceCIsWgT/+Ie2yvSWWzQfewbh6paRUi4DCiy2fwMcb7F9D3B+KK1TpJ2gopIMl0oYk4CpCqcLW4zzcqNsL6udJbROxHjXBz78UHO5zJmjRbvcdx/88Y8QQhLBZFFvVqgqkkPQaI+wokTCngRMVdRImFEyxYtL2LWnstb2dKx0bVBICR98oIn6xx9rC44mToQRI7R8MBlOvcgKqUgeQV0jmRxXbfTBzx3VL2lRMmH132ohFEDTxo3UZGoykBLeeQdOOglOPVXLA/PQQ/DNN1pYYx0QdlCWu8IFL5auU1RMuuKq051ILsz+27lydpQ7F3NR+ERKePttLfpl/nxo0wYefhguvxzSuJAvKErcGzBeBdDJNeIWopdsQbXqA5ARYYNe+h921af6RMoe0FLCG29o7peFC6F9e3j8cRg2TMsDU0dRbpkGShihipDeED27PoyZuSLlbQqSJsHrZ5DJLq5kEdb30xEpobgYevSAQYNg61Z48kktc+OIEXVa2EGJe4MlLFFOZ4ieXR9KbdwVyWpTUCEKu+pTkHZnalWjpBoN1dUwYwYUFMDZZ8PPP8Mzz8Dq1XDFFdC4ceLXyACUW6aBEpYoJ+oysHOreBmOB2lrMgiaJsHrZ5AM90Smr3hNitFQVaWJ+l13wZdfwq9+pRXLGDoUGtU/Kax/PVJ4Iiw/biJx41YCM3L6UpDURIc4iY5dH5rnRtlTUZ2y1LB+hMgo1FapECD+M7AT4YXrtzFr2aaa2Pe8nChjBnXxLMx+HkjpmJwOdZ6hqkpLuXvXXVpe9aOOghdfhAsugEjE/fg6inLLNFDC8uMm4jKwEpiKKlkr7M88HNfdCSWl5ZhzSedEI4we2CWlqWG9rno1u2+shN38GdiJ8Avzvotb1FRaXsHIV5Z6dq14fSDdVrycG6YuSa7v24JQvp+VlfCf/8DRR8Pvfw9ZWTB1Kixfrlnr9VjYQVnuDZYwQ/WCRsX4GWLr+5otWYlWSUhCraRcyRJzsyXbt3MrZiwqsR0p6PtbWaIAESGoltLyM/Bzj/wUAfFiGRcvLmHKvO9qFY5KVqI1Iwl9PysqtDJ2d9+txah36wbTp2v+9ayGY88qcW/ApDsFrJ3A2O0L1pasLux+KwoFcTdYuUlmLCrh3B75zFm1pda5vBSmrpaSb8efafmen3sE3h8GXtxpE2avtq0ImIp5Ad/fz4oKzYd+zz3agqOCAi2v+qBBDUrUdZS4K9KGlcBEIyLO5w77Rad4cYmt0PmdaAs6oWjnJpmzaovlw8VLYepmOVHb96zukT5SscKrT9qLZex0T73MCxivk1T27YNnn9VEff16KCyESZPgrLOgAZfpVOKuSBt2AmO3TRcMK/xOtCU7wsVtu5Hd+yopXlziuWB3386tmPr5Biqq4iU+muUv14ybZWw3ahDgaV4g6XVi9+6Fp56C8eNhwwYt/e6jj2qpeBuwqOsocVekFTuBMW/rPf4DWws4GhH07dyqZpLVS2GMoGLsN4rDi1ulosrZV251jwrbt2Ds6ysCR8t4wW7UcNEJ7TxZ+Elb67BnDzzxhJZut6RES7/75JNaKl4l6jUocVfUCZyEoqpaMnXBhhpXjpcSekFD7fyGftqV+TPjVwjDmC+x85Mbt+flRmnSKIsd5RXpT49QVgaTJ2tFpjdt0hJ7Pfcc9OunRN0CJe6KhElFHLSTBVwtsa2wZOceCBqf7zeKw7w/WPvLnfzuycApft4Y+bO9rIKcaISJQ7rb9jHpOfJ374bHHoMJE2DzZujbV4tT79MnnPPXU0QmVMArLCyUCxcuTHczFAGwigbJiUZCjyv3EnVihwDLaJR0LM4puPMdy6IbzXOjLL7j9KRe28sCqojNdrdopKTcy1274JFHtMIYW7Zo6XfvuEOz2BUACCEWSSkLrd5TlrsiIdwm04oXlzBm5oqafC/Nc6OMHujfN6zvf9O0pZbi44SdeyBR10YQQSu1EHa77WEKpvnhaHcP7ba7uY3s7mWgPuzcqaXavf9+LZlX//6aqJ94YmLnbWAocVf4xvjDcoqDLl5cwshXlsaFNW4vq9BSDOA/TE7f348Fn6y0A0HD/7z6pxMJL7QSPi8hmWBvuQetIOWrDzt2aEUxJk6E7dthwABN1Hv1Suy8DZSGF9mvSAjzEno7Wufl2FYQ0qNDgqCnO4g4TKDp7yUz7UDQrIVel9UHPb9dhkovC6FyohGG9mobagUpT33Yvh3GjNHyqOtul88/h1mzagm7r/M2cJTlrvCFFwtQF4Mbpi6x3SeRMDk7Cz4Zvn47gob/eZ2QDXp+O+Gzs8itUh8Utm+R1ApSNdu3btUWGz30kOaKOftsuP12bWVpIudVAErcQyeZvsBEzh1Wu5x+QALizu2UTyXRMLl0l/FLJPzPi6/f7vxZQtBx1CzfD4UqKcmJRjw9DMNKS2HXh6Oi++DWW+Ff/9ImTc87D267DY49NqHz1vfKVH5xdcsIIdoKIeYIIb4SQqwQQvwltn2MEKJECLEk9m+A4ZhbhBBrhRCrhRD9k9mBTCKZ1WMSOXeY7bL7AeXn5dQqOD2yfyeiWbXdJ9GIv5WUdqSi0LUdya6OZHV+0ETa6TN0+nxSmSkTavfh4N2l3P7xs8y8/2JtVemZZ2oZGl95xbOwW50X6n9lqiC4hkIKIQ4HDpdSfiGEOBBYBBQBFwC7pJT3mfY/GngJOB5oDbwH/EpKaTuWry+hkPoKSTNBklqFee4w2+U39NEuWgbSZ3WHRbIjNryELpo/w1SFpnqleHEJT03/jMHvTuHiJW/RpKoCMXQo/P3vWl71BM5b178/YZBQKKSUchOwKfb6ZyHESsDpLg4GXpZS7gW+FUKsRRP6z3y3vI6RTF9gIucOs11Gd4i+1N84meVliJ9otEOyKhP5PWeys2oaz99x1CzLfcyfYbrdVfGN+56i5yZQ9PjjWnKviy/W3DGdwhm1NUQx94Mvn7sQogNQAMwHegN/EkJcCiwEbpJSbkcT/nmGwzZi8TAQQowARgC0a9cuSNszjmT6AhM5d9jtsprQ9CLQTnnNvSaasnow3DB1CddPXeKYSybV5/RyTT8C7OczTLvwbdyo5X154gmtYMall2qi/stfpq9NDRDPoZBCiAOAGcD1UsqdwKPAL4DuaJb9/X4uLKWcLKUslFIWtmrVys+hGUsyfYGJnDsZ7fIbjmb0+9vhZSRhl88d3OcS7ApCJ3LOIASZA6kTfubvvoOrr4Zf/EJLF3DJJfC//8HTTythTwOeLHchRBRN2KdIKV8FkFJuNrz/BPBG7M8SoK3h8DaxbfWeZA6JEzl3Mtrl19XjJYTSaSThVs1Ix6kOqN1Iw+2hEnb6WrsH403T7Bd3ZYK7xXa0sW6dlkv92We1HS+/HG65RYtbV9iS7HkDV3EXQgjgKWCllPIBw/bDY/54gLOBL2OvZwIvCiEeQJtQPRJYEFqLM5xkDokTOXeoy8Px7+pxE1AnK9RvXhmrazmNNLyk5Q0zhtruWlVSOrq20ulusXo4PvLkbApK3qH9rBlapaOrroJRo6BtW5ezKVKxytaLW6Y3cAnQzxT2+E8hxHIhxDKgL3ADgJRyBTAN+Ap4G7jWKVJGkT4SCZH06yZwssrdwvK8Lp13upbTSMMu7NDtnEFxWl2bqSstjZ9Bh20l3DdrIm8+ehWHzXoNrrlGK2v38MNK2D2SilW2XqJlPoVaReYB3nQ45m7g7gTapUgBiVTQ8esmsEsL6yVEz4/VbPeAcRppmCOAzGXswvZtuyU+y8SVlt+XlvOLrRu49rNpDP7qI/ZFojzbYyCTe53Lggcv8XUuFcaYmlW2aoVqAybRL5gfN0EiPmOncm/S9Pe5PazbZPdw0Ss46W2aNKR74HZ6Jd/FDZRxKy2/+orH336AU5fOYU+0MU/2LOKJ48/mp6bNyffZVpX0SyMVq2yVuDdgUr2M2+1hYK4AJCXsKK+gWU6UaETE1Qy1KhItgTmrttheG2rXIjUWptCF5t5zuia86MwJp+pMGRUBs3w53HUXTJ9Ov+wcnjrxPB7tUcS23GZAsLamrd5qhpH0AicocW/QjOzfqVZKXr9FlsPCbNEZC1qUllcQzRI0z41SWlbhOAFaUlpO7/EfWFrb5oeLVV1WL0KTqFvBaiGYW81XL4Tm7liyRBP1V1+FAw+EW2+l0fXX02rDXnJmr0YkcP5UJ/3KVBdQKqKflLg3dMyzKWkqRek2aVpRLclt3KimWpFdSgXwPtQPIjRhuRXCjnwJpV2LFmmi/t//QrNmWvrdv/wFWrTQztMycddJKkeLme4CSnb0k8rn3oCZMHt1nKsDgudat1sg5Paejt80Cm4RLl4iD+wExUlo3KIcvPQ1GSQUfbFgAQwcCIWF8NFHMHasFrs+dmyNsIdFKhdjNfS878pyb8CENUR2spDAW5oCL7HmRtE1uzaC9COI39PpnqXTUgz0Wc6bpwn4229rIj5uHPz5z3DQQUlqZWoXYzX0vO9K3BswYQ2R3SwkL35tp0lGsBZdfVhr56Jx60cQoXG6Z+mcLPT1Wc6dq4n6u+9Cy5Za+t1rrtH86ykgVYuxGnred+WWacCENUR2spC8Wk96+Tw933jz3Ch5OdG43OOApcvDqR9ubhK/OeGdrpVOS9HTZ/nRR3DKKfCb38DSpTBhAnz7LfztbykT9lRSJ/LxJBFluTdgwhoiu1lIYWQz9OLyMPcD/GeudMPpntm5iFJhKdq2q3tr+OADuPNOTdwPOwweeAD+8AfIzU16u9JJJuTjSSeuxTpSQX0p1tFQcSoQAeHUOg1ScMQpoibsVL7Fi0sY+/qKuBBOSGOhDCnhvfc0Uf/0U2jdWrPQr7oKchqGW6IhkFCxDkX9J4xY4OxoVo2A5+VEGTOoS9w5Eq39GmTS1Ok9Jyve7/2wS2xmdR+CYLwHrjHxUsLs2Zqof/YZtGkD//43XHEFZGcn1A5F3UKJewMnjKpIZmHbW1kdt0/QCTQv2SCdXB5uEThWk51B7oddjH7TJo1CEXZje/S8NLXaJSW8+aYm6gsWQLt28OijcNll0KRJQm1Q1E3UhGoDJ9G4bbvjr5+6JOE4b7eFTW6TY16yPZqt+yCx0WFMpPopJBLXrrdXaYuOCgvhrLPgxx+1Ckhr1sAf/6iEvQGjLPcGTqJx20FdH4m0Dbz5zL3Ewpst/yBCHSTkzpxHZ9eeypo0EF4KiQhZzen/m8df/u8l+PFbrfrR009rdUqjUdvrKhoOynL3QbpWH7qRSLucVml6sWLdIkESWRFod259EtVrFaq5o/oxaUh3T2FxQVat+g25M+fR315WEZffB+ILiRgRspoBqz7lzWeu4/Hiezigah889xysWqW5YJSwK2IocfdIIoUtMrldfTtb16/t27mVJys2iOvDK1bnFuxPDubn3pvj6O0KhASJjfZ6bh2vxUeMhUSyqqsY+NVHzH7qTzzy3/FEqyoZOXgkX7z9f1oB6kZqEK6IR30jPJKpqUoTbZdditw5q7Z4cjcEcX3YYRWlcu85XS2LaARx+XiZ2A0aG+1n0tjrw651Xg5FXQ+lzZuv0vLx++iw5Tv+17I9fxp0M0t7ncpNvzu6wcRsK/yjxN0jmZqnws1n7iZSTsdPHNLdU+4VXdjs4t29rAi08+/rudWtYtYTebg63ZtkL4/3kkfngAg8tG8ZHP1HCtesga5d4ZFX+NU55/DvLDXgVrijxN0jmZCnwkqQ7NrVLCeaUMIuq/JzESHifOhW+dL1/f3GtLuNQMJ8uKY7FaxVHp1oRNC0cSN27yrnsm8/5S/zX6HpxvXQvbuWV33wYK0ItULhEfVt8Ui681TY+db7dm5l2S4h7BN2GXHrV1FBfs0+5hhrK5+331wtOm7iHWSi0450p4K18tHfN/golrRez5rp13PrjPtoemhLLcTxiy/g7LOVsCt8o74xHvE7aRY2doI0Z9UWy3aVmpbB67gl7LLqVyrE0E28w3y4ZoKLreYhOPZU5ub9j8Hn94ERI+CQQ+CNN+Dzz2HQIBBpqp6iqPMot4wPUpWq1AonQbJql58kVm798rr0P5E0Bm651cNIAqW3zy6bUiITv76/F3v2wJNPaul2S0rg17+GyZPh9NOVoCtCwVXchRBtgeeBQ9GCFSZLKR8UQrQApgIdgHXABVLK7UIIATwIDADKgOFSyi+S0/z6gRexsPONZwlB8eISy5A+K7/u7r2VdBw1y7MoFS8usSxGrbfJuJ9XP7ZTf+22JyqobqkMEp34teqnJeXlmoj/4x+waZOWfvfZZ7VUvBkg6plac1ThHy+WeyVwk5TyCyHEgcAiIcS7wHDgfSnleCHEKGAU8Dfgd8CRsX+9gEdj/yss8CoWdsUsqqS03N8slrmNI+zeV0VpeYXjdcw4WbrGGHmvIZlu/bVqSxgToG6x5dlRaw+lWezK9lUGCz0tK4PHHoN//hM2b4bf/hamTIE+fTJC1CH9E82KcHH1uUspN+mWt5TyZ2AlkA8MBp6L7fYcUBR7PRh4XmrMA/KEEIeH3fD6gld/tu4bj1gIgZ3/W/frThzSnbJ9tYXNi9/cyQ/9wrzvahYTORWrNhLEf+90jNfVuW7+9O1lFbUmia0msc0pfV3Pv2uXVhSjY0e46SY45hj48EPtX9++GSPskP6JZkW4+PK5CyE6AAXAfOBQKeWm2Fs/oLltQBP+DYbDNsa2bTJsQwgxAhgB0K5dO7/trjf4mdwrKsjnhqlLfJ0HnK1vN9Fzi8nWrTshtMSEZiIxt5Fu/QZph917+rXtarcaLe683KitMOuYLXCvK0nBwl//88/w8MNw//3w00+aL/2OO6B3b0/nSweZMNGsCA/P0TJCiAOAGcD1UsqdxvekVvHDV9UPKeVkKWWhlLKwVSvrJfANAb8hfkFCAt2SXjkxsn8n3GzL8ooqS2GH/W6jEgdhd2uH3Xt63L25LWNmrqhlce/aU0k04m4lG++VV1GL89fv2AF33w0dOsAtt0DPnlpe9dmzM1rYIdxwU0X68STuQogomrBPkVK+Gtu8WXe3xP7/Mba9BGhrOLxNbJvCAr8hfkFCAu1+nCJ2PieKCvK56IR2rgJvh5UAmwmSutcYd2+mtLyi1jUrqiVNGzeqCfm0cm9B/L3yImo1oaMdm2pFpzt0gNtugxNP5MP/vEHvk/9Kx+KtGZVozo50r+VQhIuruMeiX54CVkopHzC8NRMYFns9DPivYfulQuMEYIfBfaMw4Td+3rx/Xk6U7GgWNzjkT7dLwHXRCe08TZSNK+rKRSe0sxVEYu3wI8A6ESE4t4dz7VTdPaJfX79H+T4tyh3lFTULrO6/4FhXIXNLiiaAuSO6U/Ta49C+PYwZo02QLlpE8Z2PcfXqSMYlmnMi3Ws5FOHixefeG7gEWC6EWBLbdiswHpgmhLgCWA9cEHvvTbQwyLVooZCXhdng+oBVuJldHVAr7HK52EU3JBojXry4hBmLSmyFOicaYcygLpbXcEooBprbZsaiEgrbt7AMmTRXIdIFWN/XKjY+O5pl6V+3S3hmd0/01zdNW1qr783LdnD98lnQYajmXz/3XM1i795dO+/4DzIy0Zwb6VzLoQgXVSA7xTgVk/b7owpSNDoIiRSa9lIqTz+Puc1e+mf1oIRwinJb9aFF2Q6uWvAal37xBrmVexHnn6+Jeteuccd0HDXLco5BAN+OP9N3GxQKK1SB7AzCT4petwUlQYpGB8G2GhDYPkSMbW8Wcx2VllX4ipbxEr3hZGmGtRinqCCfJlu3sP3OeyiaN5Psyn2U9B9E0/vvgaOPtjzGLjonL1crpqEWCymSjRL3FOM13MzN5eJ15WgY+M2IaW57aXkFOdEIE4d095UWIZFMnH7dC7Ziu2kT/POf/O7xx2HvXrjoIrj1Vtp27ux4PrsBsZRqsZAiNajEYUnAaWGN13AztwUldrHrXiJg/GIXRdG3cyvPRZ31tvuprhQ0esNv2UGrxUoTn53D10Mv1xYf/etfMGSIVsru+efBRdhBm7y1264WCylSgbLcQ8bOKlu4fhtzVm2pVVEIrAXLzcK3e18SvvVXVJDPwvXbeGn+BqqkJCIEx7VrxoxFJZbWp1uSM9if2MypulKQieAgVrFRbFvv/JE/zpvBkGWzyZKS1487nfuOO4fKjkcwclduzTJsN5xGHalYLKTcPgol7iFjZ5VNmfddjYhJqBE1uwlJN5eE3ft6eGCYP25ztEyVlMz9elut/YxFnZ3argu3l+pKft0rQcoOfl9aTpsdm7l63iucv+w9AKZ3PZVHfn0+G5vFFl77dJ04Zbn045oKgnL7KECJe+g4WdTmv52iPvp2bsXUzzdQUbX/yGhE1Fj4TuIR9o/bzzJ8P+X5ErVg9XumV4lyiqm3Pec33/DQ+w9zxhfvUC0EU489nUdPOI/vDzqk1q5+QhmdRh0L12+Le9hDuIuFMrXeryK1KHEPGS/1MXV0wbES46kLNtQWK8OfTuLRO+QYaz/uAnN5viBpjL1YsFYx8G7timPtWi1NwH/+w4BII146bgD/7nkuPxzU0vE8fu6F1ahDHwUZWyvAcSGXX1SOGAUocQ8dK4vaLarFytKqqK59REW19OSyCPvH7fWBZZzM9eJOsUtjXLav0jJHvRE/o4k4q3j1ak3Up0yBxo3hz38mMnIkB2yWRGavRhhS+9othCpeXMLY11fUvJ+XE2XMoC6Ba8VKYM6qLZ764oVMqPerSD9K3EPGymrt27lV3OQjxAuOH9F127d4cQlZNi6KoD/ukf07ccPUJa6Z4fxO5ur7jpm5oibPPOxPv2vcR8foinFDwP5RQ/ZONgz4E63fnsm+SJTXep9L89tv4XenFWjXaR1/LbvFZn07t2Lk9KVx7rLS8gpGvrLUsb36dyEVaxPcqlopGgZK3JOAldVa2L6FrZvCjyvHSaB1QbISdq8hhFZttPMTm/Gb6wW0ezVh9uo4cQdvhT6cqJnP+PJLGHcTcto0WjRqwhPHn80TPc9ma9M8cj7ezN6W1iMEO9fShNmr44RdxzyqsmqvVaSUTphWdRglCRV1HyXuAQgSieLkprAsiZclQBAnJG4Cbeeq0JNzTZi9mhumLrFss9sk7LiirjUPKK/hnF7x6kby6orJiUa4q2MVnHcezJhBRW5TnjjhfJ4oHMz23GY1+7nNQ1h9Znb59L221xgpZWxv2Fa1yhGjUOLuk2SEmdlZWlbb7MrQObkq9ORcTm32E2Eh0JbRS6ktyknUMvTqI3ZyXejRMn3KNnLPl6/RetxsOOggVl31F4Yf1JsfGuVaHue3yLfTKMtre/VIKWVVK5KJEnefJCvMzM7ScjunF1eFXVELY5vdyuSZr7O9bH9KgUSFyauP2Cm2f+6pB8Gdd8Lrr0NenpZ+97rruOLxxfzgsViJ2wI0PU9OJEtQZZrwjmYJf+0NMbGbQmGFEnefZFqYmZurIicasX3f2Ga7OHE9h7qXdAhBLVGvPmKrh0CvH9fw4NzX4ZYPoHlzuOsu+POfoVmzWn00Y36AeFmAVlpeQTRLkB0rOA7x0TLmhGnRiPDlWlMowkKJu08yLczMSbzy85xzqjfLida8tosT17cHqWPqV+C9zFuAJsKHffkFNy+YSq81C+Hgg+Gee+Daa+Ggg+KOsfu8IkLUSgHsdQFaRbXkkNzGrLgz3vq2SpgGkCWgWrqnR1YowkQlDvOJWzIrv0mrEsXuoaIP/YsK8hnZv5M2QWtidyyeXN/f7jxO1wFSmgSraNc3zH3vHmZMGUmv0vXwj3/AunVavVKTsIP953X/BcdaLqryitWDwG4UVS33f0eUsCtShRJ3nziVIrPKLpjs0mpW4hWNCHbvrax5wAAckF17kFZRJWtE2OmhVby4hN17K321K1Q3lZQwZw707Qsnn6yFN95/P3z7Ldx8MxxwgO2hfkrH2WWstMLqQeDUZ5X1UZFqlFvGBqeoCTsXQjpyepj91Xm5UXbtqaxxCZjdJmZ0QXKK2PEaW24kFDeVlPD++9pE6SefwOGHw6RJcNVVkGsd/WKF17DAIAvQjLitV1DL/xWpRIm7BUHDHd0iTpKFUbx6j/+g1rJ5vbi0lV9dxo4xLlgyYpWnxo2EJw2lhHfe0UT9//4P8vO1nOpXXgnZ2cHP6wG/C9CM2KVT0FHL/xWpRIm7BUEtcLeIk1TgFOtuFznj9PDya20mNGkoJbz1libq8+dD27bwyCNw+eXQpIn/8yWIefTmFvZpl04BVJSMIvUon7sFTpEhTpOlbhEnyUYvvWeF7mu2mzi18wn7sTb1WG/fwi6lFp9+/PFw5pnwww/w+ONa5sarr06bsAeZPykqyGfJ6NOZNKS7Jz+/QpEslOVugZ3vVC8HB9bWbr5LAY0g+El1YFd6D7RMi3rqATuMKYjdYrVBUl5RHXe8VX4VR6qr4b//1WLTFy9md5v2PHjuX3mm4284ZNuBjFyxJW2CmOj8iVc/v6qYpEgWrpa7EOJpIcSPQogvDdvGCCFKhBBLYv8GGN67RQixVgixWgjRP1kNTyZ2URNm4TRbu0Frftrh13p0cqFsL6uoOYcdeblRuo99h+unLqm5Zml5BUhonhuNs0L3mITdSxtqqK6G6dOhoADOOQd+/plFYydSeNFDTP5lHyoijSgpLWfk9KVJjTRyCltNVSm8VEdXKRoOXtwyzwJnWGyfKKXsHvv3JoAQ4mjgQqBL7JhHhBARi2MzGqvwOTuL2Phj9xN25wW/hZQTnbDbXlZRy1cMmkWe27gR344/syZ23muh7ziqqmDqVOjWDc4/H/buhf/8B1au5EqOppz4r0pFlWTs6ysS6pMdbsIaqH8+UYWyFcnE1S0jpfxYCNHB4/kGAy9LKfcC3woh1gLHA58Fb2J6MA+rrep9Qu0fe5jZ+Nx8/+ahvFu0Rpht8ZUzXBf1ceNg5Uo46ih48UW44AKIaIJuVRjDaXuiuLldRvbvxMhXlsYVTbHKH5MImZbKQlG/SGRC9U9CiGUxt03z2LZ8YINhn42xbbUQQowQQiwUQizcsiW8KjTJImyXixfsrETd92+2OK1GDnmGFANhtsXTKKWyUrPMjz4aLrpIE/Jp07RFSEOH1gh7srFyv3gSVvPsdMhBT6kYHSgaLkJ6iOSIWe5vSCmPif19KPATmhv6LuBwKeXlQoh/A/OklC/E9nsKeEtKOd3p/IWFhXLhwoUJdSQVBJn8SmTCzCrjo12xB7tMg34KXNiRE434cy9VVMALL2jl7L7+Go49Fu64A4qKICvL8p5YhQ/qRIRgaK+2jCvq6rvtdhWVmjTKsryefh/tRmpO9znId8OqbSqyRuEVIcQiKWWh5XtBxN3uPSHELQBSyntj780GxkgpHd0ymSLuYUcuhPHj9VqmTQDfjj/T8RxBFlM1z40yeqC3+qDs28ficQ9yyL8nkr99E6taH0npX0fxw8mnMeHdNXEraI3ujpxohHN75DN1wQbL2rE6udEs7jmnm6/PxE6km+dG2VNRbfvZdBw1y3aexZyLHWqv4tX7pKcKtvs++fnOqcgahZnQxV0IcbiUclPs9Q1ALynlhUKILsCLaH721sD7wJFSSkezMRPEPRlWlF/rL5Fz6ud1+sE7Haujjwx8LUbauxeefZaysePI3bSRpYcdyYO9h/LBL3oSjWTVqijl1Ha3h5Dfz8ROpAUwcUh3W7G0u1dWVZSyo1mWcwNW+wb9PqXKylcPkLqFk7i7TqgKIV4C+gAthRAbgdFAHyFEd7Tv7jrgDwBSyhVCiGnAV0AlcK2bsGcKycgL43XCzM8PymnS1C1NgtNEXVwxaa/93bMHnn4axo+HDRv4tu1RTDhvDB8e0QNiq3KdLHFz2/XJ6A6jZtnuV15RxU3TltqWCzTjlKLZb+lDu3BYO5eXXehskO9TKvIWJaPKmCJ9eImWGWqx+SmH/e8G7k6kUakgFVXpveR+9/uDMia3sjq30w8+tMpA5eXw5JOaqH//PfTuDU89xZnv7a0Rdb8IqJkUtkvjoKO/50V8fEX1GDDfZ7c2eSXo9ykVkTXpSHynSB4NMv2AVYyzn9SuXunbuVWt83qt/pNIrLPdDz7hiJ+yMpg4EY44Aq67Dn75Sy1r4yefwGmnEckK/nWSUNPnob3aej7O7V4lsvZAD4nMiUYchT0vJ+o5VXCznGigfP+piKxRoZn1iwaZfsCuKr2ZRFeXzlhUEndeAZzbI94V4PcH5SX6xe4H77WcXS1274ZHH4UJE+DHH7W86i+/DL/9bU2bJsxenbBlq/dZj4qZMv87vJzSTXwSWXvgpYzhmEFdavZ1ShUczRLs3lc7HbPeRieCjkD8kGlVxhSJ0SDF3UkM8nKi7CivSHgyye4BMmdVfEy/3x+UF7Fx+sF7ETpdrHds3so1q97hinmv0qR0G5x2Gtx+O5x0Uty+bg+b5rlRchs3qhG+3XsrLcMQjX0eV9SVcUVd49xnWTaukWSKj5cyhsY8/0bMqYLL9lVapmO+adpSy+ONBH4w+yAVDxBF6miQ4u7kY2/apBFLRp+e8DW8WuR+f1B+xMYNq4lcgHEvzeOC+TO5asFrNN/zMx//ohA58Rl+O3xQrWPdom9yopFaoZR2D4SyWNk/477Gh5FdxEiyF5IFnacwP0g72kwUV0npyYI3C7zujgpL4FPxAFGkjgbpc3cSg7D8i24+Un3V5A1Tl5AdzSIvJ+rJJ5wdtf7IjDVTvWA173DPi5/x/U238t6/hnPzx8/zRX5nBl9yP5eeN4ZbfzjA8lgnrPqiPxTKK6pq+aW3l1U4Js4qKsjn3B75NfnxI0LUcnOFjV0SOT0FhJ8kX251aN3mWVSiMYUfGqTlXlSQz9jXV1jGJoc1xHeyyM0W6PayCnKiEddiEBc98VmtNLugPaH9Wq9G985Be3Zxxef/5bJFMzlo727e/WUvHuw9lC8P+2XN/saHnptrCKwtW3O/rdzpTm4KfR5Dd81UScmMRSUUtm+RkjKG+sS73m6/oYJuuX/cDItkR7OoUMj6RYO03AFGD+yS1FwxTlEaQSJkiheXMPfrbZbvVaP98P1YcN+XlpNXvpObPv4Pcx+9jL/830vMbX8sZw5/kKvOvT1O2CH+oecmQgItUsiMl4cC7HdTmPuTriyKRQX5zB3VzzI7qJ/r698Ju8pcboZFsqNZVJbK+kWDtNwhNf5Fu8nLID/SMTOdU9/6srK2bOHOeVM4+7Nicvft4c1Ovfn3iUNYdUhHLayvMn5Zvlms3QpBS7C0qP2IkJVFmu5QvTCur/cnyNxBsqNZ0n1/FeHSYMUdwk3P6we/P9LixSW2SbWMuA7RN2+G+++HRx7h4rIy3jzqZCadcAFrWrUH9of1LVy/jSnzvquxUs1i7SW1sFVbmuVEPfVDxywqXu+b3YrfRJfWhyWuQQ2LZEezqFDI+kWDdcukE7+LifwMiy0t6h9+gBtvhI4dNXEvKkJ89RUVL0yh7MjOtdxGc1ZtcXQ/mF1OdhjFuXhxCbv3VdbaJwvIsjmJWVS83Lfbipdzg6GSlD6iua14ecKTkWGmfdZdPcYCKGbMqYqBUIvBmElHWmtF8mjQlnu68Gu5+RkWG5fx8/338I9/wOTJWhreiy+GW2+FX/1KawfWLhwvw3PjqMdLIZMJs1dbJg9rFss66cUidbtvxYtL4kYcOuUVVbw0f0OtGHm/k5GpDBW0m9y895yugZPOuaFCIesXStzThB+XkJuP24gEHnthDlXXTOesz98kIqsoGXg+/7vsT4xZuY/vn15D67yNjj9av8NzL+4CuwdGaVmFo6hYuVLsxM2pQLjd6lm//uRUufLSleclXa5KRfg0WHEPI7VpqtKj2omn+cefv+NHrp73Cucvf5csKXml66k8csL5bD74cJi/syZDo9vkq1/fblFBPgvXb6uxjvX4c6CmHKDb6lIrUfEbmuck1HaJvzLVn6wmNxWJ0iDFPYx43rBjgp0eFHaWrR573ab0B66Z9wrnLX8fgGndTuPRE86npNkh2skt3CFOVqDf4blV/PnUBRuY+vmGGleMlbC6+XP9Wq92Iw6BlozMnOslk/3JanJTkSieinUkm1QX6wijiEaYhTj8FGIwPgS6lG9h2EcvUrT8A6qF4OVj+/NYr/PYdFDtGHMrnKo3+cFLERCdiBBUS+lppOOnGpLuwrHKwX7RCe1q5anJdH+yKsGn8EJCxTrqI2EMecM4h1N+FisLVf/BH7b5O+77bCqDV3xIZaQRr/QcyEM9ioi0bUv53krwGG7YOi8nFMHz0+cqKVnn8kDR22Qn7Pryf7AeMTmNgOqKMKrJTUWiNEhxD2PI67UQh1Nkh1usuFk0p/3nHe6Z/TyDVn7MvkiUZwoHMfn4c2jcJp95sdGC1XmjEQEyviqSADocnBOKa8nPhK95dab5HlmlyjViVw1JfxDWJQEH6/671V1VKLzQIMU9jMUgbudw88l7WYpf86BYsQLGjeOFl6eyJ9qYJ3oW8eTxZ/NT0+YACFOIonlyc0hPrfiFeWGSVTqDIBEZXhY16VRJGTdiMedqsQpl1MlPUsWsdGH1HXlh3nc176vcLopEaJDiHsaQ1+0cbpOBbmKUE41wV8cquOACmD4dmjZlym8vZGK3s9iW2yxuX/NowSq5VnY0y1Y0zQQJD4T998IuMga03O5OycOcXDFzR/XzFFNfV/DygFdl7hRBqfPiHtRnHMbw3ekcbj55J1dGn7IS7vnyNVqPexsOPFBbeHTDDRz43R7KX10ONpkmnfz3Xqzq/efM4he3vFlj+Q/t1bamOpIdxnthl7ccQEp8tUVHF+/6VFDC60O0Lo5KFOmnTqcfyOT81m753K2WenffvJZni8fx7L/+wIGffcIHQ/7IGTf8h46Vv6b3E1oa3HvP6UpeTrTmmOxoFgvXb/OUX90rZRXVcZb/C/O+47bi5Z6Pt+u7XuXKDae6s07ZNpOJORVAGN8xr6ONujgqUaSfOh0K6RSOqMeBm6sMpSr6wEsom25tt/pqCTfOm8rJaxZQmn0ATxUO5rkeA9mZfUDcOXOiEc7tkV9rwtFqktFMXk6UvaZsj36ICMHX9w7wtK9T392qN+l9zKRJxWSFJXqZVFfhjwonnEIhXcVdCPE0cBbwo5TymNi2FsBUoAOwDrhASrldCCGAB4EBQBkwXEr5hVsDg4q7Uxy0eQVnNEuAIC6/SVg/UKeIGMeHyWefwZ13wttvsyPnQB7veTbPH3cWu5rk2l7PbqWlEwKYOKQ7sP/hlpcbZdeeyrgIGjeMIYxufXPKzGgViy7xXyYwVdgZEX5i9u1Q0TKKREhU3E8GdgHPG8T9n8A2KeV4IcQooLmU8m9CiAHAn9HEvRfwoJSyl1sDw7bc/QhgkEVHOoEtuk8/hbFj4b33oGVL+OtfOeaHIxxFPVEmDenuOJJxmgSFeMs9UUu2Li0mAmcjQkdZ2Ip0kJC4x07QAXjDIO6rgT5Syk1CiMOBD6WUnYQQj8dev2Tez+n8QcXdTmT8uB78rNI0Tlo6PUBsHxgffaSJ+pw5cMghfPn7Efyl+Ql8U4aruOpkCbAytp1cM1YuGV2MAFdXCUDvX7Tg/MJ2jvsm8qB0I50PBK8rcJPZf4XCimSsUD3UINg/AIfGXucDGwz7bYxtqyXuQogRwAiAdu3a+W6AsdCyLrRGX7vXyUWvk1XmB4mTEMdFN0ipifnYsfDxx3DYYTBxIq8ffxY3v7WW8jL388UhtUVJRvdSNEvQuFEWu/fVfqjlRCMIUTtCpbyiijEzV3j2w3/2zTbbMn86YU3omkl3bU+vcfxhRLXUtVGNInNJOFpGaqa/71lZKeVkKWWhlLKwVStvuVB0jFEyoAmjHlGhVwoyR6JEs4S2UtOAnxA6r/U/IfbAkBLeeQdOOglOOQXWroWHHoJvvoHrr2f8x985ni8iBFGLT6cabd5AX+mZlxMFQZyw673UI0lKLQqBA5SWV3jukxfXvJ5LPmzSXdvTHKETtAaqG5kc/aWoewQV980xdwyx/3+MbS8B2hr2axPbFipuP3arcLkJ5x/LhPOODRxC59Uqy2mUxYQDSuDEE6F/f1i/Hh5+GL7+Gv78Z8jJ8XS+KimpqHZ+X7fKzUUwzDqcqlA6CVw/dUlooYI6mZD+1lg56f4Ljk2oYpFdWGW6H2KK+kVQt8xMYBgwPvb/fw3b/ySEeBltQnWHm789CG4/di/pc/3imj9FSs7/YSm3LnqF5iuWQrt28NhjMHw4NGni/3wecFucpFt+VuGTySRMt0nx4hLXXPBh4dUlksgKZycXUyY8xBT1B1dxF0K8BPQBWgohNgKj0UR9mhDiCmA9cEFs9zfRImXWooVCXpaENjsm7UqWf9bW7yolp6+dz5/nvkTXzV+z7dB8xp9zI08fcRKtth/EyK9+8lwQIxmUV1QxZf53XNSrnWPelmRcd8zMFaHEgQfJBR/0Wl6/N0FXODtZ5yqHuyJMXN0yUsqhUsrDpZRRKWUbKeVTUsqtUspTpJRHSilPlVJui+0rpZTXSil/IaXsKqVMSpJ2p0K+yRraGl09AI2QnLF6Lm8+ex2TXx3HgXvL+OuA6zn+kod57Mh+7ItEbX2m5slgJ+yKR+vk5URr3QszUsJLCzY4CruTL9mOiEvjSssrEnLP2M1zRIQIPewwVS4RJ+tcFahWhEmdTD/gtATd7sdTUlqesC+4qCCfuTf3Yd1xu1k76xYeK76XJpX7uOHMGznlqseY3vVUKiPxgyGzQNhNBttRLal5oJgRwJhBXTi3R36tJftmqhxmRPPzcvh2/JlU+1gc1Tw3yv3nH2vbNh1z3/0s4bf7LKulDD2CxOl7E+b8gVNainSlVlDUT+ps4jC7YbGTLzshF01VFUybBuPGwVdfsa5VOx4Y+Ffe6HwS1VnOlrP+YLFbLGQM5zSjh3faVRgqKshn7OsrEnK3lO2rpHhxied5gJxohNEDu9R8BsWLS7h+6hLLfY3zIH7dZalwU7gVBgFCDbvs27lVXFpf43b9GkrMFWFQJy13J6yGtkZ8D7UrK+GFF6BLF/j979m5t4obzx5Fv+H/YubRfVyFHfZXDpLYx7NbWfDG8E6zRTdxSPea0nHbbUIdvbK9rIJbXl1O386tXF08AjiuXTPGzFxBh1Gz6DBqFmNfX0GuVdwm+4U4iNsj2W4K8yjKjjDdM3NWbfG1XaEISp213O0wRjIkVNihshKmTIG774Y1a6BbN5g+nQGrm7Fx515fbfJiVdslO3MrEReW6JRXVDFn1RbO7ZFfU+jDCqsiH9vLKohkCaJZIi5XjVGIg0SCJLvUnJ+1C2FFrKiIGEWqqHfiDvuFMFBhh4oKeP55uOcebcFRQQG89hrFbXsw4d01lOy0/xGaUwB4ydYI8Ra6nXDZhel5EYXmuVFP1n1JaXlcoQ8/VFVLDsqNktu4kaUQB3WxJNNN4UdQw3IFeb0PaqWqIlHqnVvGiK9h/b59MHkyuzv8Aq68kqVlEW6+9C6Kn5xJcfuejJzhPHzXXSVm14ndhGNEiLhJM8B2stFp5aKT6Ewa0p11489k8R2nu058ghaZk0hoZmlZRc1Cn7mj+sWJUSZGgtjdO6d88oni5T6olaqKMKjT+dy94GoB7d0LTz8N994LGzawtHUnJp54IR8eUQhCxH6IknKH5aJOGQG9pLgFLBOg6XnNnRJ1jezfiRumLrEcIRgTWbnlDjfnq7HDaTTiljgr06xRu8Rzyc4n73YfnOoUqMRkCiPJSBxWZ7Ad1u/ZA08+CePHQ0kJ/PrX3HDqtbzWqgsY4r3dLFm3HOTmOQBzQehbXl1OdjTLcrLRbdHR96XlFBXku0aq6DRptP86TRtHiEay2FFeQeu8HHbvraTUpkqSMW95386tmLpgQ6088NGIcLVuzT50Y7qIdJBsn77TdZ2uofzyijCo9+Kuo1tLW7eU8sf/vc8f5s0g56fNWmKv556Dfv0ovuVN3+c1WsZuk6FWFplTCgE3O1p3K+S7+HGtLNRqqcXIe6l7ev8Fx8aJUWH7FoyZuaLmYdA8N1oTGulEurM7WpGJoYdqpaoiDBqEuBcvLuHOlz/nnM9f5w8LXqXV7lLmt+9GxT3/4jdXnldjqfvN99I8N1pz/pHTl9a4NUpKyxk5Xat5ahSOMC0vo5/WrWi0XRji9VOXsHD9NsYVdbXte15OtJb4JWPpfSYIbKa4jepTEXBF+qj/4r5rFyW3juWdj6fRsmwHn7Y/lmsHj2JB22PI35rDXIMLxk++l2hEMHpgFwDGvr6ilr+6okpy/dQlTJi9ukYkwkgWBtqzyOjjN7sXmuVEEQJuiF3f6Zr6gho7QRkzqIvndrmJYxjuhmQJcLJGFUHamy53kaJ+UX8nVHfu1FLt3n8/bN3KRx2P46ETL2RRm6NrdrGqwmT8MTrdmUlDutf82Do4uDQgvupRWMnC1tlUj/JSdNmMXkIvEeH0UnrPraKR2/xFsgpVO7UtLWUYFQqPNKwJ1R074F//ggcegO3bYcAARrT/He8c1LHWrlY+TKPLwekHr7/vxerUXQ+6SBgFtGxfZaAVpsWLSywLcYP/yil6XHsi/mcvLhe3kZGbtZxMt04yJjEz3Q2lqN/UH3Hfvl2rdDRpEpSWwsCBcMcdUFjIgMUlfBLAh2nnqujbuZVv61gXCbOAOuVlcUIXQf11IqMBv9kgrfAijnq/b5q21HahlJP4JTOKJBmTmCrqRZFO6v4ipm3b4PbboUMHGDMG+vSBL76AmTOhUButBMm2Z5WWVz9uzqotvsU0SwjLRShFBfk1E7N+0EXQzxJ6O044onlCx4O9CEqIW5RVVJDvmn3STvycMiomSjIWWSWzvQqFG3Xbci8uhksugV274Lzz4Lbb4NhjLXf143KwKoZtTBFwQwBLu0pKbjBEpxgZPbBLIOs7LAtw3VZv59EfeCWl5bWKko/s34mRryytFf8Otd0tbhPLduKXzCiSZExiqqgXRTqp2+LevTucdRb8/e9wzDGhndbOV3rjtCWBXCg6Epgy7zsK27eIEw2zsHj1mesi6BaB0zw3ys7ySltXiJeHhNUDT7/2yOlLGdKzbe11+waM7pYOB9uLu5P4JTuKJOyYdxX1okgn9TdaJgBGy9QvXpOEgXsEhltUCXiPwNH3W7h+m2UecS/t8dKmLKEtjHJCABOHdLdNlxARotaCKYVCYU/DipbxiVHQ/Qi0kfzYsnyvNUrdLGWr4Xw0ImjauFFNugCzBahbh9nRLPZWVlMtNbE8t8d+a9SqfV7SBnhps5uwgzbScCqMkYwKS/WJTFlkpagbNGhxN7saggi7gDir14vAe0lzC/6H8xLYU1Fdc/0qKZmxqITC9i1sRbVp40aeBCLRBVi6u8VpvkJNNNqTiakbFJlNg3bLeHF/uGFMqmVc7v99aTm5jSPs3hfvLglzEcttxcs9PUzy83JsffluC7mM/XKb9DUX6zBnv3TKsa+7bMISqrCs3EyxllWmSIUVTm6ZhMRdCLEO+BmoAiqllIVCiBbAVKADsA64QEq53ek86Ur523HUrIRqj5qxEu5kicNtxcttfehmBM6Wt1F8nVZVAnEJw8zYuY6M9yAvN8quPZW1HgIXndCuVhRRUMJaGZpJK0ztvqtWD2dFwyHZPve+UsqfDH+PAt6XUo4XQoyK/f23EK7jG7ehrBdXgx8/vNUCnGRkHSxeXOJZ2IEaobWzvI2JzpxWVeoFOIoXl1guRKqokjRt0oglo0+Pa6sxRHJ7WQVZQktIZjd/kChhrQzNpBWmKlOkwi/JWMQ0GHgu9vo5oCgJ1/CEW1Fmt2LaYC3sTscEjT0vXlxiW4nJvJ9xdaobVkW2raioktw4bYmnurNOC5HM/R8zc0Wt2PdqCTtsrP8wCGtlaCatMM3ESlaKzCZRcZfAO0KIRUKIEbFth0opN8Ve/wAcmuA1AuP24ywqyOfcHvlO4dm10Fep2olkEEvKT1k1PytSI0LUyh7p5J+tlvah6uZ+eV19aefCkbF/ySghF9bK0ExaYRpklbWiYZOouP9GSnkc8DvgWiHEycY3pebQtzTxhBAjhBALhRALt2zZkmAzrPHy45yzaovv+PSignxG9u9ENCteCqNZ3sIKzbiNMIx4tRpzopFAMeMSbzVE3SxJfSTiBbu+BiUsKzfTrGX94WxVo1ahMJOQz11KWRL7/0chxGvA8cBmIcThUspNQojDgR9tjp0MTAZtQjWRdtjhZfm3nyF2rX3NKmhh9nqZUHUaYZiPz8uN2maRbGqIzimvqOKmaUst0x3k5URtLWrYH+Hi1GancM0gaYfDdHWEtTJUrTBV1GUCR8sIIZoCWVLKn2Ov3wXuBE4BthomVFtIKW92Olc6C2T7CYc0hp15CU3zGm1hd67muVH2VFTHL2bKEiCIKw7itgr1YlMkinmS06kPQQgSYqpC+hQK/yQrWuZQ4DWhZUxsBLwopXxbCPE5ME0IcQWwHrgggWskjFu0ipV1H8kSVJmEz6vFb9w+9vUVnqIt7EYYUtYu0K0LsjlxV1FBPjdNW2rZppfmb4gTd/3aVmGNXt0OTg9NJyu8uUUopJoYVCjCJ7C4Sym/AWqlYJRSbkWz3usEdkNvq21GQXYLTSteXGLrPjGLn10bnFZzmjNV6tvs9rXqtzkG3avbIWiIqW6dZ8rCIIWiPtOg0w/o2Fn3ToJjlUvGXJTaDrcKUDpuSczMowDdmjfjVIwjSBy+W/y321xHMmL/FQpFPHW/WEcaKF5cwoxFJXHCLiAuSZeTa8KrC8JLHL7xOkN7tbXcx257ULyEmKqwPYUivSjLPQBWlqtEC6vUsXNN5OVEPYuc0V1jZ8EbRwG6X/2l+RuokpKIEAzt1Ta0Zf3Ga7qtllTWuUKRXpS4B8DLZKqda2LMoC6+rmX0jXup6jOuqGvoYm7GqupS0Bh/hUKRHJS4B8Cr5QrhxUhnXMy1hxh/hUKRPhp0yt+gZFK2wHSg0s8qFJmBqsQUMhlnRaeYTEqopVAorFHiHpCGOGGox6fbjfVU+lmFInNQ4q7whFu+GLXKVKHILJS4KzzhlGo4v4G5pRSKuoASd4Un7Pzp5gLhCoUiM1ArVBWeyKTCFQqFwh0l7gpPZFrhCoVC4Yxyyyg80dDDPxWKuoYSd4VnGmL4p0JRV1FuGYVCoaiHKHFXKBSKeogSd4VCoaiHKHFXKBSKeogSd4VCoaiHZETKXyHEFmC9YVNL4Kc0NSeVNJR+QsPpq+pn/SOT+9peStnK6o2MEHczQoiFdjmK6xMNpZ/QcPqq+ln/qKt9VW4ZhUKhqIcocVcoFIp6SKaK++R0NyBFNJR+QsPpq+pn/aNO9jUjfe4KhUKhSIxMtdwVCoVCkQBK3BUKhaIekjZxF0K0EEK8K4RYE/u/uc1+bwshSoUQb5i2dxRCzBdCrBVCTBVCNE5Ny/3ho5/DYvusEUIMM2z/UAixWgixJPbvkNS13h0hxBmx9q0VQoyyeL9J7PNZG/u8OhjeuyW2fbUQon9KGx6AoH0VQnQQQpQbPsPHUt54H3jo58lCiC+EEJVCiPNM71l+jzORBPtZZfg8Z6au1T6QUqblH/BPYFTs9SjgHzb7nQIMBN4wbZ8GXBh7/Rhwdbr6kmg/gRbAN7H/m8deN4+99yFQmO5+2PQtAnwNHAE0BpYCR5v2uQZ4LPb6QmBq7PXRsf2bAB1j54mku09J6msH4Mt09yHEfnYAugHPA+cZttt+jzPtXyL9jL23K919cPuXTrfMYOC52OvngCKrnaSU7wM/G7cJIQTQD5judnwG4KWf/YF3pZTbpJTbgXeBM1LTvIQ4HlgrpfxGSrkPeBmtv0aM/Z8OnBL7/AYDL0sp90opvwXWxs6XqSTS17qEaz+llOuklMuAatOxdel7nEg/6wTpFPdDpZSbYq9/AA71cezBQKmUsjL290YgU6tIeOlnPrDB8Le5P8/Ehn+3Z5hYuLU7bp/Y57UD7fPzcmwmkUhfAToKIRYLIT4SQpyU7MYmQCKfS136TBNta7YQYqEQYp4QoijUloVEUisxCSHeAw6zeOvvxj+klFIIUWdjMpPcz4uklCVCiAOBGcAlaMNERd1hE9BOSrlVCNEDKBZCdJFS7kx3wxSBaR/7XR4BfCCEWC6l/DrdjTKSVHGXUp5q954QYrMQ4nAp5SYhxOHAjz5OvRXIE0I0illIbYCSBJsbmBD6WQL0MfzdBs3XjpSyJPb/z0KIF9GGk5ki7iVAW8PfVp+Dvs9GIUQjoBna5+fl2EwicF+l5qTdCyClXCSE+Br4FbAw6a32TyKfi+33OANJ6Ptn+F1+I4T4EChA8+FnDOl0y8wE9Nn0YcB/vR4Y+7HMAfQZbF/Hpxgv/ZwNnC6EaB6LpjkdmC2EaCSEaAkghIgCZwFfpqDNXvkcODIWudQYbRLRHDlg7P95wAexz28mcGEswqQjcCSwIEXtDkLgvgohWgkhIgAxS+9ItMnGTMRLP+2w/B4nqZ2JErifsf41ib1uCfQGvkpaS4OSxtnqg4H3gTXAe0CL2PZC4EnDfp8AW4ByNL9Y/9j2I9DEYC3wCtAk3bPTCfbz8lhf1gKXxbY1BRYBy4AVwINkWEQJMAD4H5rV8vfYtjuBQbHX2bHPZ23s8zrCcOzfY8etBn6X7r4kq6/AubHPbwnwBTAw3X1JsJ89Y7/F3WijsBVO3+NM/Re0n8CJwHK0CJvlwBXp7ovVP5V+QKFQKOohaoWqQqFQ1EOUuCsUCkU9RIm7QqFQ1EOUuCsUCkU9RIm7QqFQ1EOUuCsUCkU9RIm7QqFQ1EP+H3dCV00ywQvdAAAAAElFTkSuQmCC\n", + "image/png": "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\n", "text/plain": [ "
" ] @@ -777,7 +278,9 @@ " L = 0\n", " for j in range(N):\n", " L = L + (Y[j]-a*X[j]-b)**2\n", - " print(\"epoch %4d: loss = %f, a = %f, b = %f\" % (i, L, a, b))\n", + " \n", + " if i % 50 == 0:\n", + " print(\"epoch %4d: loss = %f, a = %f, b = %f\" % (i, L, a, b))\n", " \n", "x_min = np.min(X)\n", "x_max = np.max(X)\n", @@ -1788,7 +1291,7 @@ { "data": { "text/html": [ - "" + "" ], "text/plain": [ "" @@ -1867,12 +1370,12 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 5, "metadata": {}, "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "
" ] @@ -1888,14 +1391,12 @@ "import matplotlib.pyplot as plt\n", "import numpy as np\n", "\n", - "#t = np.array([2, 4, 6, 8])\n", - "t = np.linspace(0, 10) # Add random noise\n", - "\n", "pa = -20\n", "pb = 90\n", "pc = 800\n", "\n", - "y = pa*t**2 + pb*t + pc\n", + "t = np.linspace(0, 10) \n", + "y = pa*t**2 + pb*t + pc + np.random.randn(np.size(t))*5\n", "\n", "\n", "plt.scatter(t, y)\n", @@ -1923,6 +1424,97 @@ "cell_type": "markdown", "metadata": {}, "source": [ + "### 5.2 程序" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "epoch 0: loss = 2.60133e+07, a = -4.09558, b = 7.02074, c = 4.32858\n", + "epoch 100: loss = 2.50396e+06, a = -33.1825, b = 282.352, c = 192.658\n", + "epoch 200: loss = 1.94167e+06, a = -35.4465, b = 297.516, c = 270.663\n", + "epoch 300: loss = 1.58138e+06, a = -34.3201, b = 280.422, c = 328.378\n", + "epoch 400: loss = 1.26769e+06, a = -32.8956, b = 261.08, c = 378.356\n", + "epoch 500: loss = 1.01347e+06, a = -31.5673, b = 243.259, c = 422.8\n", + "epoch 600: loss = 810004, a = -30.3731, b = 227.263, c = 462.482\n", + "epoch 700: loss = 647465, a = -29.3051, b = 212.962, c = 497.935\n", + "epoch 800: loss = 517653, a = -28.3507, b = 200.183, c = 529.611\n", + "epoch 900: loss = 413978, a = -27.4979, b = 188.764, c = 557.914\n", + "epoch 1000: loss = 331175, a = -26.736, b = 178.562, c = 583.202\n", + "epoch 1100: loss = 265038, a = -26.0552, b = 169.446, c = 605.798\n", + "epoch 1200: loss = 212210, a = -25.4469, b = 161.301, c = 625.987\n", + "epoch 1300: loss = 170010, a = -24.9033, b = 154.023, c = 644.025\n", + "epoch 1400: loss = 136297, a = -24.4177, b = 147.521, c = 660.143\n", + "epoch 1500: loss = 109363, a = -23.9838, b = 141.711, c = 674.544\n", + "epoch 1600: loss = 87842.3, a = -23.5961, b = 136.519, c = 687.411\n", + "epoch 1700: loss = 70645.3, a = -23.2497, b = 131.881, c = 698.908\n", + "epoch 1800: loss = 56901.8, a = -22.9402, b = 127.737, c = 709.18\n", + "epoch 1900: loss = 45917, a = -22.6637, b = 124.034, c = 718.359\n", + "epoch 2000: loss = 37135.8, a = -22.4166, b = 120.725, c = 726.56\n", + "epoch 2100: loss = 30115.2, a = -22.1958, b = 117.769, c = 733.887\n", + "epoch 2200: loss = 24501.2, a = -21.9985, b = 115.127, c = 740.434\n", + "epoch 2300: loss = 20011, a = -21.8223, b = 112.767, c = 746.284\n", + "epoch 2400: loss = 16419.1, a = -21.6648, b = 110.659, c = 751.511\n", + "epoch 2500: loss = 13544.9, a = -21.5241, b = 108.774, c = 756.181\n", + "epoch 2600: loss = 11244.5, a = -21.3983, b = 107.091, c = 760.354\n", + "epoch 2700: loss = 9402.78, a = -21.286, b = 105.587, c = 764.082\n", + "epoch 2800: loss = 7927.77, a = -21.1856, b = 104.243, c = 767.414\n", + "epoch 2900: loss = 6746.04, a = -21.0959, b = 103.042, c = 770.39\n" + ] + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "n_epoch = 3000 # epoch size\n", + "a, b, c = 1.0, 1.0, 1.0 # initial parameters\n", + "epsilon = 0.0001 # learning rate\n", + "\n", + "N = np.size(t)\n", + "\n", + "for i in range(n_epoch):\n", + " for j in range(N):\n", + " a = a + epsilon*2*(y[j] - a*t[j]**2 - b*t[j] - c)*t[j]**2\n", + " b = b + epsilon*2*(y[j] - a*t[j]**2 - b*t[j] - c)*t[j]\n", + " c = c + epsilon*2*(y[j] - a*t[j]**2 - b*t[j] - c)\n", + "\n", + " L = 0\n", + " for j in range(N):\n", + " L = L + (y[j] - a*t[j]**2 - b*t[j] - c)**2\n", + " \n", + " if i % 200 == 0:\n", + " print(\"epoch %4d: loss = %10g, a = %10g, b = %10g, c = %10g\" % (i, L, a, b, c))\n", + " \n", + " \n", + "y_est = a*t**2 + b*t + c \n", + "\n", + "\n", + "plt.plot(t, y, 'rx', label='Real data')\n", + "plt.plot(t, y_est, 'go', label='Estimated data')\n", + "plt.legend()\n", + "plt.show()\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ "## 6. 如何使用sklearn求解线性问题?\n" ] }, @@ -1935,14 +1527,14 @@ "name": "stdout", "output_type": "stream", "text": [ - "X: (442, 1)\n", - "Y: (442,)\n", - "a = 949.435260, b = 152.133484\n" + "X: (100, 1)\n", + "Y: (100, 1)\n", + "a = 3.376138, b = 0.051810\n" ] }, { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "
" ] @@ -1954,15 +1546,17 @@ } ], "source": [ + "%matplotlib inline\n", + "\n", "from sklearn import linear_model\n", - "from sklearn import datasets\n", "import numpy as np\n", "\n", "# load data\n", - "d = datasets.load_diabetes()\n", + "# generate data\n", + "data_num = 100\n", + "X = np.random.rand(data_num, 1)*10\n", + "Y = X * 3 + 4 + 8*np.random.randn(data_num,1)\n", "\n", - "X = d.data[:, np.newaxis, 2]\n", - "Y = d.target\n", "print(\"X: \", X.shape)\n", "print(\"Y: \", Y.shape)\n", "\n", @@ -1970,7 +1564,8 @@ "regr = linear_model.LinearRegression()\n", "regr.fit(X, Y)\n", "\n", - "a, b = regr.coef_, regr.intercept_\n", + "a, b = np.squeeze(regr.coef_), np.squeeze(regr.intercept_)\n", + "\n", "print(\"a = %f, b = %f\" % (a, b))\n", "\n", "x_min = np.min(X)\n", diff --git a/5_nn/1-Perceptron.ipynb b/5_nn/1-Perceptron.ipynb index dd06eb4..6be6a71 100644 --- a/5_nn/1-Perceptron.ipynb +++ b/5_nn/1-Perceptron.ipynb @@ -4,33 +4,41 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "## 感知机\n", + "# 感知机\n", "\n", - "感知机(perceptron)是二分类的线性分类模型,输入为实例的特征向量,输出为实例的类别(取+1和-1)。感知机对应于输入空间中将实例划分为两类的分离超平面。感知机旨在求出该超平面,为求得超平面导入了基于误分类的损失函数,利用梯度下降法 对损失函数进行最优化(最优化)。感知机的学习算法具有简单而易于实现的优点,分为原始形式和对偶形式。感知机预测是用学习得到的感知机模型对新的实例进行预测的,因此属于判别模型。感知机由Rosenblatt于1957年提出的,是神经网络和支持向量机的基础。\n", + "感知机(perceptron)是二分类的线性分类模型,输入为实例的特征向量,输出为实例的类别(取+1和-1)。感知机对应于输入空间中将实例划分为两类的分离超平面,感知机旨在求出该超平面。为求得超平面导入了基于误分类的损失函数,利用梯度下降法 对损失函数进行最优化(最优化)。感知机的学习算法具有简单而易于实现的优点,感知机预测是用学习得到的感知机模型对新的实例进行预测的,因此属于判别模型。感知机由Rosenblatt于1957年提出的,是神经网络和支持向量机的基础。\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 1. 生物学解释\n", + "心理学家Rosenblatt构想了感知机,它作为简化的数学模型解释大脑神经元如何工作:它取一组二进制输入值(附近的神经元),将每个输入值乘以一个连续值权重(每个附近神经元的突触强度),并设立一个阈值,如果这些加权输入值的和超过这个阈值,就输出1,否则输出0(同理于神经元是否放电)。对于感知机,绝大多数输入值不是一些数据,就是别的感知机的输出值。\n", "\n", - "模仿的是生物神经系统内的神经元,它能够接受来自多个源的信号输入,然后将信号转化为便于传播的信号在进行输出(在生物体内表现为电信号)。\n", + "唐纳德·赫布提出了一个出人意料并影响深远的想法,称知识和学习发生在大脑主要是通过神经元间突触的形成与变化,简要表述为赫布法则:\n", "\n", - "![neuron](images/neuron.png)\n", + "> 当细胞A的轴突足以接近以激发细胞B,并反复持续地对细胞B放电,一些生长过程或代谢变化将发生在某一个或这两个细胞内,以致A作为对B放电的细胞中的一个,效率增加。\n", "\n", - "* dendrites - 树突\n", - "* nucleus - 细胞核\n", - "* axon - 轴突\n", "\n", - "心理学家Rosenblatt构想了感知机,它作为简化的数学模型解释大脑神经元如何工作:它取一组二进制输入值(附近的神经元),将每个输入值乘以一个连续值权重(每个附近神经元的突触强度),并设立一个阈值,如果这些加权输入值的和超过这个阈值,就输出1,否则输出0(同理于神经元是否放电)。对于感知机,绝大多数输入值不是一些数据,就是别的感知机的输出值。\n", + "感知机并没有完全遵循这个想法,**但通过调输入值的权重,可以有一个非常简单直观的学习方案:给定一个有输入输出实例的训练集,感知机应该「学习」一个函数:对每个例子,若感知机的输出值比实例低太多,则增加它的权重,否则若设比实例高太多,则减少它的权重。**\n", "\n", - "唐纳德·赫布提出了一个出人意料并影响深远的想法,称知识和学习发生在大脑主要是通过神经元间突触的形成与变化,简要表述为赫布法则:\n", "\n", - "> 当细胞A的轴突足以接近以激发细胞B,并反复持续地对细胞B放电,一些生长过程或代谢变化将发生在某一个或这两个细胞内,以致A作为对B放电的细胞中的一个,效率增加。\n", + "模仿的是生物神经系统内的神经元,它能够接受来自多个源的信号输入,然后将信号转化为便于传播的信号在进行输出(在生物体内表现为电信号)。\n", "\n", + "![neuron](images/neuron.png)\n", "\n", - "感知机并没有完全遵循这个想法,**但通过调输入值的权重,可以有一个非常简单直观的学习方案:给定一个有输入输出实例的训练集,感知机应该「学习」一个函数:对每个例子,若感知机的输出值比实例低太多,则增加它的权重,否则若设比实例高太多,则减少它的权重。**\n" + "* dendrites - 树突\n", + "* nucleus - 细胞核\n", + "* axon - 轴突\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "## 1. 感知机模型\n", + "## 2. 感知机模型\n", "\n", "假设输入空间(特征向量)为$X \\subseteq R^n$,输出空间为$Y=\\{-1, +1\\}$。输入$x \\in X$ 表示实例的特征向量,对应于输入空间的点;输出$y \\in Y$表示示例的类别。由输入空间到输出空间的函数为\n", "\n", @@ -41,11 +49,11 @@ "称为感知机。其中,参数$w$叫做权值向量,$b$称为偏置。$w·x$表示$w$和$x$的内积。$sign$为符号函数,即\n", "![sign_function](images/sign.png)\n", "\n", - "### 1.1 几何解释 \n", + "### 2.1 几何解释 \n", "感知机模型是线性分类模型,感知机模型的假设空间是定义在特征空间中的所有线性分类模型,即函数集合{f|f(x)=w·x+b}。线性方程 w·x+b=0对应于特征空间Rn中的一个超平面S,其中w是超平面的法向量,b是超平面的截踞。这个超平面把特征空间划分为两部分。位于两侧的点分别为正负两类。超平面S称为分离超平面,如下图:\n", "![perceptron_geometry_def](images/perceptron_geometry_def.png)\n", "\n", - "### 1.2 生物学类比\n", + "### 2.2 生物学类比\n", "![perceptron_2](images/perceptron_2.PNG)\n", "\n", "\n" @@ -55,7 +63,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "## 2. 感知机学习策略\n", + "## 3. 感知机学习策略\n", "\n", "假设训练数据集是线性可分的,感知机学习的目标是求得一个能够将训练数据的正负实例点完全分开的分离超平面,即最终求得参数w、b。这需要一个学习策略,即定义(经验)损失函数并将损失函数最小化。\n", "\n", @@ -70,37 +78,37 @@ "\n", "这样,假设超平面S的总的误分类点集合为M,那么所有误分类点到S的距离之和为\n", "$$\n", - "-\\frac{1}{||w||} \\sum_{x_i \\in M} |w \\cdot x_i + b|\n", + "-\\frac{1}{||w||} \\sum_{x_i \\in M} y_i (w \\cdot x_i + b)\n", "$$\n", "不考虑1/||w||,就得到了感知机学习的损失函数。\n", "\n", - "### 经验风险函数\n", + "### 3.1 经验风险函数\n", "\n", "给定数据集$T = \\{(x_1,y_1), (x_2, y_2), ... (x_N, y_N)\\}$(其中$x_i \\in R^n$, $y_i \\in \\{-1, +1\\},i=1,2...N$),感知机sign(w·x+b)学习的损失函数定义为\n", "$$\n", "L(w, b) = - \\sum_{x_i \\in M} y_i (w \\cdot x_i + b)\n", "$$\n", - "其中M为误分类点的集合,这个损失函数就是感知机学习的[经验风险函数](https://blog.csdn.net/zhzhx1204/article/details/70163099)。\n", + "其中M为误分类点的集合,这个损失函数就是感知机学习的[《经验风险函数》](https://blog.csdn.net/zhzhx1204/article/details/70163099)。\n", "\n", - "显然,损失函数L(w,b)是非负的。如果没有误分类点,那么L(w,b)为0,误分类点数越少,L(w,b)值越小。一个特定的损失函数:在误分类时是参数w,b的线性函数,在正确分类时,是0.因此,给定训练数据集T,损失函数L(w,b)是w,b的连续可导函数。\n" + "显然,损失函数$L(w,b)$是非负的。如果没有误分类点,那么$L(w,b)$为0,误分类点数越少,$L(w,b)$值越小。一个特定的损失函数:在误分类时是参数$w,b$的线性函数,在正确分类时,是0.因此,给定训练数据集T,损失函数$L(w,b)$是$w,b$的连续可导函数。\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "## 3. 感知机学习算法\n", + "## 4. 感知机学习算法\n", "\n", "\n", - "最优化问题:给定数据集$T = \\{(x_1,y_1), (x_2, y_2), ... (x_N, y_N)\\}$(其中$x_i \\in R^n$, $y_i \\in \\{-1, +1\\},i=1,2...N$),求参数w,b,使其成为损失函数的解(M为误分类的集合):\n", + "最优化问题:给定数据集$T = \\{(x_1,y_1), (x_2, y_2), ... (x_N, y_N)\\}$,其中$x_i \\in R^n$, $y_i \\in \\{-1, +1\\},i=1,2...N$,求参数$w,b$,使其成为损失函数的解($M$为误分类的集合):\n", "\n", "$$\n", "min_{w,b} L(w, b) = - \\sum_{x_i \\in M} y_i (w \\cdot x_i + b)\n", "$$\n", "\n", - "感知机学习是误分类驱动的,具体采用[随机梯度下降法](https://blog.csdn.net/zbc1090549839/article/details/38149561)。首先,任意选定$w_0$、$b_0$,然后用梯度下降法不断极小化目标函数,极小化的过程不是一次性的把M中的所有误分类点梯度下降,而是一次随机选取一个误分类点使其梯度下降。\n", + "感知机学习是误分类驱动的,具体采用随机梯度下降法。首先,任意选定$w_0$、$b_0$,然后用梯度下降法不断极小化目标函数,极小化的过程不是一次性的把$M$中的所有误分类点梯度下降,而是一次随机选取一个误分类点使其梯度下降。\n", "\n", - "假设误分类集合M是固定的,那么损失函数L(w,b)的梯度为\n", + "假设误分类集合$M$是固定的,那么损失函数$L(w,b)$的梯度为\n", "$$\n", "\\triangledown_w L(w, b) = - \\sum_{x_i \\in M} y_i x_i \\\\\n", "\\triangledown_b L(w, b) = - \\sum_{x_i \\in M} y_i \\\\\n", @@ -112,13 +120,13 @@ "b = b + \\eta y_i\n", "$$\n", "\n", - "式中$\\eta$(0 ≤ $ \\eta $ ≤ 1)是步长,在统计学是中成为学习速率。步长越大,梯度下降的速度越快,更能接近极小点。如果步长过大,有可能导致跨过极小点,导致函数发散;如果步长过小,有可能会耗很长时间才能达到极小点。\n", + "式中$\\eta$(0 ≤ $ \\eta $ ≤ 1)是学习速率(步长)。步长越大,梯度下降的速度越快,更能接近极小点。如果步长过大,有可能导致跨过极小点,导致函数发散;如果步长过小,有可能会耗很长时间才能达到极小点。\n", "\n", "直观解释:当一个实例点被误分类时,调整w,b,使分离超平面向该误分类点的一侧移动,以减少该误分类点与超平面的距离,直至超越该点被正确分类。\n", "\n", "\n", "\n", - "算法\n", + "### 4.1 算法\n", "\n", "\n", "输入:T={(x1,y1),(x2,y2)...(xN,yN)}(其中xi∈X=Rn,yi∈Y={-1, +1},i=1,2...N,学习速率为η)\n", @@ -142,12 +150,64 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "## 4. 示例程序\n" + "## 5. 示例程序\n" ] }, { "cell_type": "code", "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "%matplotlib inline\n", + "\n", + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "\n", + "# data generation\n", + "np.random.seed(314)\n", + "\n", + "data_size1 = 20\n", + "x1 = np.random.randn(data_size1, 2) + np.array([2,2])\n", + "y1 = [-1 for _ in range(data_size1)]\n", + "\n", + "data_size2 = 20\n", + "x2 = np.random.randn(data_size2, 2)*2 + np.array([8,8])\n", + "y2 = [1 for _ in range(data_size2)]\n", + "\n", + "# all sample data\n", + "x = np.concatenate((x1, x2), axis=0)\n", + "y = np.concatenate((y1, y2), axis=0)\n", + "\n", + "shuffled_index = np.random.permutation(data_size1 + data_size2)\n", + "x = x[shuffled_index]\n", + "y = y[shuffled_index]\n", + "\n", + "\n", + "train_data = np.concatenate((x, y[:, np.newaxis]), axis=1)\n", + "\n", + "# plot data\n", + "plt.scatter(train_data[:,0], train_data[:,1], c=train_data[:,2], marker='.')\n", + "plt.title(\"Data\")\n", + "plt.show()\n" + ] + }, + { + "cell_type": "code", + "execution_count": 2, "metadata": { "lines_to_end_of_cell_marker": 2 }, @@ -156,13 +216,56 @@ "name": "stdout", "output_type": "stream", "text": [ - "update weight and bias: 0.5 1.5 0.5\n", - "update weight and bias: -3.0 0.0 0.0\n", - "update weight and bias: -2.0 3.0 0.5\n", - "w = [-2.0, 3.0]\n", - "b = 0.5\n", - "ground_truth: [1, 1, 1, 1, -1, -1, -1, -1]\n", - "predicted: [1, 1, 1, 1, -1, -1, -1, -1]\n" + "update weight and bias: 3.7185416425430744 4.415441255489154 0.5\n", + "update weight and bias: 2.63445626503829 3.324758332173668 0.0\n", + "update weight and bias: 2.0207439860270506 1.893264739036497 -0.5\n", + "update weight and bias: 1.2322166573021474 0.22799125733467895 -1.0\n", + "update weight and bias: -0.6006428863030957 -1.6411028433624717 -1.5\n", + "update weight and bias: 5.109204567082854 1.9813789454818795 -1.0\n", + "update weight and bias: 4.489662780423084 -0.3506475821384758 -1.5\n", + "update weight and bias: 3.3939105634317013 -1.0412656669082738 -2.0\n", + "update weight and bias: 2.504805392463895 -2.232127455753232 -2.5\n", + "update weight and bias: 6.223347035006969 2.183313799735922 -2.0\n", + "update weight and bias: 5.140304315636703 0.7923315584800992 -2.5\n", + "update weight and bias: 4.5265920366254635 -0.6391620346570717 -3.0\n", + "update weight and bias: 3.6672220497312384 -1.1731993200750104 -3.5\n", + "update weight and bias: 2.0065425403755413 -2.3921089617658904 -4.0\n", + "update weight and bias: 4.533466246969885 1.4498630856120154 -3.5\n", + "update weight and bias: 3.4493808694651005 0.3591801622965294 -4.0\n", + "update weight and bias: 2.5900108825708754 -0.17485712312140933 -4.5\n", + "update weight and bias: 0.9293313732151782 -1.3937667648122891 -5.0\n", + "update weight and bias: 4.046427755076163 3.0054356400349302 -4.5\n", + "update weight and bias: 3.2956963801872607 1.6232728971525268 -5.0\n", + "update weight and bias: 2.6761545935274915 -0.7087536304678286 -5.5\n", + "update weight and bias: 1.0154750841717943 -1.9276632721587084 -6.0\n", + "update weight and bias: 5.37894106506809 3.555613771026151 -5.5\n", + "update weight and bias: 4.7593992784083206 1.2235872434057957 -6.0\n", + "update weight and bias: 4.139857491748551 -1.1084392842145596 -6.5\n", + "update weight and bias: 2.479177982392854 -2.327348925905439 -7.0\n", + "update weight and bias: 5.809083413002281 0.646001016876383 -6.5\n", + "update weight and bias: 5.195371133991041 -0.7854925762607878 -7.0\n", + "update weight and bias: 4.306265963023234 -1.9763543651057456 -7.5\n", + "update weight and bias: 2.88012341642224 -2.622818885634949 -8.0\n", + "update weight and bias: 6.331829427476793 1.6208587585142347 -7.5\n", + "update weight and bias: 4.905686880875798 0.9743942379850314 -8.0\n", + "update weight and bias: 4.371515476010486 -0.46893620150732485 -8.5\n", + "update weight and bias: 2.7108359666547885 -1.6878458431982046 -9.0\n", + "update weight and bias: 6.254961478724868 2.5307472883846627 -8.5\n", + "update weight and bias: 4.663848346587878 0.9710594278881524 -9.0\n", + "update weight and bias: 4.044306559928109 -1.360967099732203 -9.5\n", + "update weight and bias: 2.6181640133271147 -2.007431620261406 -10.0\n", + "update weight and bias: 5.145087719921459 1.8345404271164996 -9.5\n", + "update weight and bias: 4.061002342416674 0.7438575038010136 -10.0\n", + "w = [4.061002342416674, 0.7438575038010136]\n", + "b = -10.0\n", + "\n", + "\n", + "ground_truth: [ 1. -1. 1. 1. -1. -1. -1. 1. -1. 1. 1. -1. 1. -1. -1. -1. 1. 1.\n", + " -1. -1. -1. -1. -1. -1. 1. 1. 1. 1. 1. -1. -1. 1. 1. -1. 1. -1.\n", + " 1. 1. 1. -1.]\n", + "predicted: [ 1. -1. 1. 1. 1. -1. 1. 1. -1. 1. 1. -1. 1. -1. -1. -1. 1. 1.\n", + " 1. -1. 1. -1. -1. -1. 1. 1. 1. 1. 1. 1. 1. 1. 1. -1. 1. -1.\n", + " 1. 1. 1. -1.]\n" ] } ], @@ -183,21 +286,18 @@ " train_num = n_iter # 迭代次数\n", "\n", " for i in range(train_num):\n", - " # need improve to cover all samples\n", - " train = random.choice(train_data)\n", - " x1, x2, y = train\n", + " # select one data\n", + " ti = np.random.randint(len(train_data))\n", + " (x1, x2, y) = train_data[ti]\n", " \n", - " predict = sign(weight[0] * x1 + weight[1] * x2 + bias) # 输出\n", - " #print(\"train data: x: (%2d, %2d) y: %2d ==> predict: %2d\" % (x1, x2, y, predict))\n", + " y_pred = sign(weight[0] * x1 + weight[1] * x2 + bias) \n", " \n", - " if y * predict <= 0: # 判断误分类点\n", + " if y * y_pred <= 0: # 判断误分类点\n", " weight[0] = weight[0] + learning_rate * y * x1 # 更新权重\n", " weight[1] = weight[1] + learning_rate * y * x2\n", " bias = bias + learning_rate * y # 更新偏置量\n", " print(\"update weight and bias: \", weight[0], weight[1], bias)\n", "\n", - " #print(\"stop training: \", weight[0], weight[1], bias)\n", - "\n", " return weight, bias\n", "\n", "def perceptron_pred(data, w, b):\n", @@ -207,11 +307,8 @@ " yi = sign(w[0]*x1 + w[1]*x2 + b)\n", " y_pred.append(yi)\n", " \n", - " return y_pred\n", + " return np.array(y_pred, dtype=float)\n", "\n", - "# set training data\n", - "train_data = np.array([[1, 3, 1], [2, 5, 1], [3, 8, 1], [2, 6, 1], \n", - " [3, 1, -1], [4, 1, -1], [6, 2, -1], [7, 3, -1]])\n", "\n", "# do training\n", "w, b = perceptron_train(train_data)\n", @@ -221,7 +318,8 @@ "# predict \n", "y_pred = perceptron_pred(train_data, w, b)\n", "\n", - "print(\"ground_truth: \", list(train_data[:, 2]))\n", + "print(\"\\n\")\n", + "print(\"ground_truth: \", train_data[:, 2])\n", "print(\"predicted: \", y_pred)" ] },