diff --git a/serie2/MNIST_binary_classifier_stud.ipynb b/serie2/MNIST_binary_classifier_stud.ipynb index afc5755961f666461e6dae9859739cbf73bb197f..380c62dc69b28653897d752d7e93ebd07c53d005 100644 --- a/serie2/MNIST_binary_classifier_stud.ipynb +++ b/serie2/MNIST_binary_classifier_stud.ipynb @@ -453,7 +453,7 @@ }, { "cell_type": "code", - "execution_count": 40, + "execution_count": 62, "id": "colored-facility", "metadata": {}, "outputs": [ @@ -461,7 +461,15 @@ "name": "stdout", "output_type": "stream", "text": [ - "result after 10 epochs, train: cost 0.01283, error 0.02620 ; test: cost 0.01404, error 0.02900\n" + "result after 10 epochs, train: cost 0.01564, error 0.03131 ; test: cost 0.01565, error 0.03131\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/tmp/ipykernel_12186/4269509613.py:150: RuntimeWarning: overflow encountered in exp\n", + " return 1 / (1 + np.exp(-z))\n" ] } ], @@ -469,7 +477,7 @@ "#data is arranged as dictionary with quick access through respective keys\n", "data = {'x_train' : x_train, 'y_train' : y_train, 'x_test' : x_test, 'y_test' : y_test}\n", "\n", - "gradD = GradientDescent(data, 0.5, 0, 0.)\n", + "gradD = GradientDescent(data, 10, 0, 0.)\n", "\n", "gradD.optimise(10, False)" ] @@ -486,7 +494,7 @@ }, { "cell_type": "code", - "execution_count": 41, + "execution_count": 63, "id": "lonely-quantity", "metadata": {}, "outputs": [ @@ -495,15 +503,15 @@ "output_type": "stream", "text": [ "[0. 1. 2. 3. 4. 5. 6. 7. 8. 9.]\n", - "[0.125 0.01536504 0.014986 0.01457691 0.01413949 0.01378105\n", - " 0.01344739 0.01318818 0.01299845 0.01282704]\n", - "[0.125 0.01556244 0.01537012 0.01520221 0.01504856 0.01491241\n", - " 0.01473657 0.01452109 0.01429011 0.01403994]\n" + "[0.125 0.01580711 0.01578208 0.01575926 0.0157372 0.01571619\n", + " 0.01569154 0.01566771 0.01565214 0.01563725]\n", + "[0.125 0.01580335 0.01578762 0.0157682 0.01574174 0.01570748\n", + " 0.01567523 0.01565887 0.0156537 0.01565004]\n" ] }, { "data": { - "image/png": "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unXq6enRHXfcof/8z//Uz3/+8/j7/fa3v531n4ubriaB/vxFUt+fpKY9pqMAAEywbSnYO/vf1+2XLGtCu953333au3evVqxYobvuuiv65W633v3ud+vv//7v9c1vflN9fX3653/+Z33kIx/Rc889p+PHj+vqq6/WV7/6VV155ZXq6urS7373O9m2rRtvvFG7d+9WZ2envve970mSioqKZuxHHQ9FKAk4ys6STkj+Tu45BgAZKdgr3VM1+9/388ckT/aEds3Pz5fH45Hf71dFRYUk6Utf+pLe9a536Z577onv993vflfV1dXau3evuru7FQqF9Dd/8zeaP3++JGnlypXxfX0+nwYGBuLvZwKHxpJA3rzo5Fj5wCHDSQAAmLgdO3bof//3f5WTkxN/nHXWWZKkffv2adWqVbr44ou1cuVKffjDH9a3v/1ttbW1GU49EitCSaBq4SpJUona1NPeouyCEsOJAACzyu2Prs6Y+L7T0N3drcsvv1xf+cpXRn2usrJSTqdTTz/9tP7whz/oN7/5je6//37dcssteumll1RbWzut750oFKEkUFBYpBMqUYVadHzfdi06b53pSACA2WRZEz5EZZLH41E4HI6/Pvfcc/XTn/5UNTU1crnGrhSWZWnt2rVau3atbrvtNs2fP1+PP/64tmzZMur9TODQWJI44Y0eO+08zOQYACA51dTU6KWXXtLBgwfV0tKi+vp6tba26uqrr9a2bdu0b98+/frXv9Y111yjcDisl156Sffcc4/+/Oc/6/Dhw3rsscfU3NysZcuWxd/vtdde05tvvqmWlhYFg8FZ/5koQkmiJy96z7FwI5NjAIDkdOONN8rpdKqurk6lpaUKBAJ68cUXFQ6Hdckll2jlypW64YYbVFBQIIfDoby8PL3wwgu67LLLtGTJEn3hC1/QN77xDa1fv16SdO2112rp0qVavXq1SktL9eKLL876z5QRh8auvPJK/fa3v9XFF1+sRx991HScMVmlS6VmydfBPccAAMlpyZIl+uMf/zhq+2OPPTbm/suWLdNTTz017vuVlpbqN7/5TcLyTUVGrAhdf/31+sEPfmA6xmnlzF0uSSrpP2g2CAAAGSQjitBFF12k3Nxc0zFOqzI2OVZhN2ugp91sGAAAMoTxIvTCCy/o8ssvV1VVlSzL0s9+9rNR+zQ0NKimpkZZWVk6//zz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", + "image/png": "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/8lLL73ENddcw65du1i+fDmpqan6e/SDipYfiY+Px+l0UlVV1WV5VVUVycnJhlLJvffeyx/+8AfeeecdRo0aZTpOwNqxYwfV1dVMnTq1c5nL5eKdd95h9erVtLa24nQ6DSYMPCkpKWRlZXVZNnHiRH7/+98bShTY/vf//t+sXLmSf/7nfwZg8uTJHD16lMcff1xFqx90jZYfCQkJYdq0aZSWlnYuc7vdlJaWMmvWLIPJApNt29x7772sX7+et99+m8zMTNORAtrcuXPZvXs3u3bt6vzJzc1l8eLF7Nq1SyXLgNmzZ3cb8uTAgQOMHj3aUKLA1tLSgsPRtRY4nU7cbrehRP5BZ7T8TGFhIfn5+eTm5jJjxgyKiopobm7mrrvuMh0t4BQUFPDSSy/xyiuvEBUVRWVlJQAxMTGEh4cbThd4oqKiul0fFxkZyYgRI3TdnCH3338/1113HatWreKrX/0qW7du5bnnnuO5554zHS0gLVy4kMcee4z09HSuueYaPvjgA55++mm+/vWvm442pGl4Bz+0evVqnnrqKSorK8nJyeHnP/85M2fONB0r4FiW1ePyX//61yxdunRww0iPbrzxRg3vYNgf/vAHHnzwQf7+97+TmZlJYWEhd999t+lYAamxsZHvf//7rF+/nurqalJTU/na177GQw89REhIiOl4Q5aKloiIiIiX6BotERERES9R0RIRERHxEhUtERERES9R0RIRERHxEhUtERERES9R0RIRERHxEhUtERERES9R0RIRERHxEhUtERHDLMtiw4YNpmOIiBeoaIlIQFu6dCmWZXX7+dznPmc6moj4AU0qLSIB73Of+xy//vWvuywLDQ01lEZE/InOaIlIwAsNDSU5ObnLT2xsLOD5WG/NmjUsWLCA8PBwxowZw+9+97su2+/evZu8vDzCw8MZMWIE99xzD01NTV3W+dWvfsU111xDaGgoKSkp3HvvvV0er62t5bbbbiMiIoLx48fz6quvdj528uRJFi9eTEJCAuHh4YwfP75bMRQR36SiJSJyGd///vf50pe+xIcffsjixYv553/+Z/bu3QtAc3Mz8+fPJzY2lm3btrFu3To2bdrUpUitWbOGgoIC7rnnHnbv3s2rr77KuHHjuhzjkUce4atf/Sp/+9vfuPXWW1m8eDF1dXWdxy8rK+P1119n7969rFmzhvj4+MH7BYhI39kiIgEsPz/fdjqddmRkZJefxx57zLZt2wbsb37zm122mTlzpv2tb33Ltm3bfu655+zY2Fi7qamp8/E//vGPtsPhsCsrK23btu3U1FT7u9/97kUzAPb3vve9zvtNTU02YL/++uu2bdv2woUL7bvuumtgnrCIDCpdoyUiAe+mm25izZo1XZbFxcV13p41a1aXx2bNmsWuXbsA2Lt3L9nZ2URGRnY+Pnv2bNxuN/v378eyLI4fP87cuXMvmWHKlCmdtyMjI4mOjqa6uhqAb33rW3zpS19i586d3HLLLSxatIjrrruuT89VRAaXipaIBLzIyMhuH+UNlPDw8F6tFxwc3OW+ZVm43W4AFixYwNGjR3nttdfYuHEjc+fOpaCggJ/85CcDnldEBpau0RIRuYy//vWv3e5PnDgRgIkTJ/Lhhx/S3Nzc+fiWLVtwOBxMmDCBqKgoMjIyKC0t7VeGhIQE8vPz+Y//+A+Kiop47rnn+rU/ERkcOqMlIgGvtbWVysrKLsuCgoI6Lzhft24dubm5XH/99fznf/4nW7du5fnnnwdg8eLFPPzww+Tn5/ODH/yAmpoali1bxp133klSUhIAP/jBD/jmN79JYmIiCxYsoLGxkS1btrBs2bJe5XvooYeYNm0a11xzDa2trfzhD3/oLHoi4ttUtEQk4L3xxhukpKR0WTZhwgT27dsHeL4RuHbtWv7t3/6NlJQU/uu//ousrCwAIiIiePPNN7nvvvuYPn06ERERfOlLX+Lpp5/u3Fd+fj5nzpzhZz/7GStWrCA+Pp4vf/nLvc4XEhLCgw8+yJEjRwgPD+eGG25g7dq1A/DMRcTbLNu2bdMhRER8lWVZrF+/nkWLFpmOIiJDkK7REhEREfESFS0RERERL9E1WiIil6CrK0SkP3RGS0RERMRLVLREREREvERFS0RERMRLVLREREREvERFS0RERMRLVLREREREvERFS0RERMRLVLREREREvOT/A47bDui3sSPPAAAAAElFTkSuQmCC", "text/plain": [ "<Figure size 640x480 with 1 Axes>" ] diff --git a/serie2/histo.png b/serie2/histo.png new file mode 100644 index 0000000000000000000000000000000000000000..32750465359fd181425c7f7daece0be3d6ad5559 Binary files /dev/null and b/serie2/histo.png differ diff --git a/serie2/output001.png b/serie2/output001.png new file mode 100644 index 0000000000000000000000000000000000000000..cf1c9d057702135fd2803c9af74fcb236f61db30 Binary files /dev/null and b/serie2/output001.png differ diff --git a/serie2/output005.png b/serie2/output005.png new file mode 100644 index 0000000000000000000000000000000000000000..bfdb3d651dd7f905b6de2e925d68b730e5562d0c Binary files /dev/null and b/serie2/output005.png differ diff --git a/serie2/output01.png b/serie2/output01.png new file mode 100644 index 0000000000000000000000000000000000000000..01c24623cd5579bc756ba06f52a0072b1da9eaa4 Binary files /dev/null and b/serie2/output01.png differ diff --git a/serie2/output10.png b/serie2/output10.png new file mode 100644 index 0000000000000000000000000000000000000000..bc678b687d444b7fc6b3491707c5e272df78cb4e Binary files /dev/null and b/serie2/output10.png differ diff --git a/serie2/output5.png b/serie2/output5.png new file mode 100644 index 0000000000000000000000000000000000000000..4174ccbc724a95066744554e0fe588d19671ae47 Binary files /dev/null and b/serie2/output5.png differ diff --git a/serie2/rapport.md b/serie2/rapport.md index 5f498f48c7f0367ea1754f994160fa7498c7751a..d2075daada3932f0a1e113147950cf7c8685cd28 100644 --- a/serie2/rapport.md +++ b/serie2/rapport.md @@ -101,12 +101,13 @@ We have tested our code with the unit test but we have some few failures. The pr [ 0.08888889]] -0.1 ``` -But we see that the gradient descent with precedent graphs is working well. We have a good convergence and the cost is decreasing with 10 epochs. - - +We see the error is slowly decreasing :  -With value for the cost decreasing : + + +### Analyse the dependency on the learning rate +#### Learning rate = 0.5 ```python # train cost [0.125 0.01536504 0.014986 0.01457691 0.01413949 0.01378105 @@ -115,6 +116,63 @@ With value for the cost decreasing : [0.125 0.01556244 0.01537012 0.01520221 0.01504856 0.01491241 0.01473657 0.01452109 0.01429011 0.01403994] ``` + +#### Learning rate = 0.01 +```python +# train cost +[0.125 0.10246172 0.08545479 0.07284244 0.06341362 0.05622866 + 0.05063015 0.04617138 0.04254854 0.03955205] +# test cost +[0.125 0.1027335 0.0859324 0.07347156 0.06415158 0.05704332 + 0.05149794 0.04707527 0.04347625 0.04049475] + ``` +  +#### Learning rate = 0.05 +```python +# train cost +[0.125 0.01241361 0.01054175 0.00924545 0.00834697 0.00769963 + 0.00721371 0.00683615 0.00653386 0.00628502] + # test cost +[0.125 0.01287107 0.01101644 0.00979839 0.0089649 0.00835911 + 0.00789375 0.00751864 0.00720543 0.00693776] +``` + -### Analyse the dependency on the learning rate +#### Learning rate = 0.1 +```python +[0.125 0.01374854 0.01248129 0.01146193 0.01065814 0.00999054 + 0.00942033 0.00892796 0.00850293 0.00813431] +[0.125 0.01417265 0.01304014 0.01208604 0.01133821 0.01073285 + 0.01021371 0.00976315 0.00938548 0.00907634] +``` + + +#### Learning rate = 5 +```python +[0.125 0.01580711 0.01578208 0.01575926 0.0157372 0.01571619 + 0.01569154 0.01566771 0.01565214 0.01563725] +[0.125 0.01580335 0.01578762 0.0157682 0.01574174 0.01570748 + 0.01567523 0.01565887 0.0156537 0.01565004] +``` + + +#### Learning rate = 10 +```python +[0.125 0.01582558 0.01581444 0.01580841 0.01579636 0.01577758 + 0.01577106 0.01576299 0.01575024 0.01574215] +[0.125 0.01581955 0.01581834 0.01581776 0.01581751 0.01581771 + 0.01581701 0.01581501 0.01581027 0.01580263] +``` + +### Summarize best learning rate +We see that the learning rate of 0.05 is the best because it is the one that converges the fastest. Indeed, the error is decreasing the fastest and the cost is the lowest. + + +### Analyse the dependency of the final error rate on the number of epochs + + +### Plot a histogram of the weights finally obtained from learing. A strong peak at zero remains. Why ? +We see that if we plot an histogramm of the weights finally obtained we have : + +There is a strong peak at 0 because \ No newline at end of file