diff --git a/Archis Applications/Exercices/.ipynb_checkpoints/Exercice 1-checkpoint.ipynb b/Archis Applications/Exercices/.ipynb_checkpoints/Exercice 1-checkpoint.ipynb index b3f5d67..832538b 100644 --- a/Archis Applications/Exercices/.ipynb_checkpoints/Exercice 1-checkpoint.ipynb +++ b/Archis Applications/Exercices/.ipynb_checkpoints/Exercice 1-checkpoint.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "code", - "execution_count": 114, + "execution_count": 8, "metadata": {}, "outputs": [], "source": [ @@ -20,7 +20,7 @@ }, { "cell_type": "code", - "execution_count": 115, + "execution_count": 9, "metadata": {}, "outputs": [ { @@ -29,7 +29,7 @@ "25" ] }, - "execution_count": 115, + "execution_count": 9, "metadata": {}, "output_type": "execute_result" } @@ -50,7 +50,7 @@ }, { "cell_type": "code", - "execution_count": 116, + "execution_count": 10, "metadata": {}, "outputs": [], "source": [ @@ -68,55 +68,12 @@ }, { "cell_type": "code", - "execution_count": 117, + "execution_count": 11, "metadata": {}, "outputs": [ { "data": { - "text/plain": [ - "[]" - ] - }, - "execution_count": 117, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "# Plot de theta\n", - "plt.plot(theta,theta)" - ] - }, - { - "cell_type": "code", - "execution_count": 120, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "[]" - ] - }, - "execution_count": 120, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "
" ] @@ -129,12 +86,15 @@ ], "source": [ "# plot de J(theta)\n", - "plt.plot(theta,J(theta))" + "plt.plot(theta,J(theta), label='Fitted line - closed form')\n", + "plt.xlabel('x')\n", + "plt.ylabel('J(x)')\n", + "plt.show()" ] }, { "cell_type": "code", - "execution_count": 121, + "execution_count": 12, "metadata": {}, "outputs": [ { @@ -143,7 +103,7 @@ "-1.0" ] }, - "execution_count": 121, + "execution_count": 12, "metadata": {}, "output_type": "execute_result" } @@ -165,7 +125,7 @@ }, { "cell_type": "code", - "execution_count": 122, + "execution_count": 13, "metadata": {}, "outputs": [ { @@ -174,7 +134,7 @@ "0" ] }, - "execution_count": 122, + "execution_count": 13, "metadata": {}, "output_type": "execute_result" } @@ -189,7 +149,7 @@ }, { "cell_type": "code", - "execution_count": 123, + "execution_count": 14, "metadata": { "scrolled": true }, @@ -197,10 +157,10 @@ { "data": { "text/plain": [ - "[]" + "[]" ] }, - "execution_count": 123, + "execution_count": 14, "metadata": {}, "output_type": "execute_result" }, @@ -241,7 +201,7 @@ }, { "cell_type": "code", - "execution_count": 147, + "execution_count": 15, "metadata": {}, "outputs": [], "source": [ @@ -259,7 +219,7 @@ }, { "cell_type": "code", - "execution_count": 148, + "execution_count": 16, "metadata": {}, "outputs": [ { @@ -268,7 +228,7 @@ "-1.0000000100978041" ] }, - "execution_count": 148, + "execution_count": 16, "metadata": {}, "output_type": "execute_result" } @@ -289,24 +249,21 @@ }, { "cell_type": "code", - "execution_count": 192, + "execution_count": 24, "metadata": { "scrolled": true }, "outputs": [ { - "data": { - "text/plain": [ - "-1.0000000100978041" - ] - }, - "execution_count": 192, - "metadata": {}, - "output_type": "execute_result" + "name": "stdout", + "output_type": "stream", + "text": [ + "Minimum = {min:2f}\n" + ] }, { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "
" ] diff --git a/Archis Applications/Exercices/.ipynb_checkpoints/Exercice 2-checkpoint.ipynb b/Archis Applications/Exercices/.ipynb_checkpoints/Exercice 2-checkpoint.ipynb index 86b82e3..4344cce 100644 --- a/Archis Applications/Exercices/.ipynb_checkpoints/Exercice 2-checkpoint.ipynb +++ b/Archis Applications/Exercices/.ipynb_checkpoints/Exercice 2-checkpoint.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "code", - "execution_count": 56, + "execution_count": 1, "metadata": {}, "outputs": [], "source": [ @@ -37,12 +37,12 @@ }, { "cell_type": "code", - "execution_count": 57, + "execution_count": 20, "metadata": {}, "outputs": [], "source": [ "# On génère les x\n", - "list_x = np.random.uniform(20, 40, 100)\n", + "list_x = np.random.uniform(20, 40, 100).tolist()\n", "\n", "# Pis les y\n", "\n", @@ -64,22 +64,22 @@ }, { "cell_type": "code", - "execution_count": 58, + "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "" + "" ] }, - "execution_count": 58, + "execution_count": 3, "metadata": {}, "output_type": "execute_result" }, { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "
" ] @@ -105,7 +105,7 @@ }, { "cell_type": "code", - "execution_count": 100, + "execution_count": 8, "metadata": {}, "outputs": [], "source": [ @@ -128,7 +128,7 @@ " return np.dot(inv, np.dot(X_T,y))\n", "\n", "Y = np.asarray(list_y)\n", - "beta = B(Y)" + "b_cf, w_cf = B(Y)" ] }, { @@ -142,7 +142,7 @@ }, { "cell_type": "code", - "execution_count": 101, + "execution_count": 9, "metadata": {}, "outputs": [ { @@ -151,7 +151,7 @@ "0" ] }, - "execution_count": 101, + "execution_count": 9, "metadata": {}, "output_type": "execute_result" } @@ -167,7 +167,7 @@ }, { "cell_type": "code", - "execution_count": 102, + "execution_count": 10, "metadata": {}, "outputs": [ { @@ -176,7 +176,7 @@ "8" ] }, - "execution_count": 102, + "execution_count": 10, "metadata": {}, "output_type": "execute_result" } @@ -190,7 +190,7 @@ }, { "cell_type": "code", - "execution_count": 103, + "execution_count": 11, "metadata": {}, "outputs": [ { @@ -199,7 +199,7 @@ "2" ] }, - "execution_count": 103, + "execution_count": 11, "metadata": {}, "output_type": "execute_result" } @@ -221,7 +221,7 @@ }, { "cell_type": "code", - "execution_count": 109, + "execution_count": 12, "metadata": {}, "outputs": [ { @@ -230,7 +230,7 @@ "(5.0, 3.0)" ] }, - "execution_count": 109, + "execution_count": 12, "metadata": {}, "output_type": "execute_result" } @@ -266,33 +266,140 @@ }, { "cell_type": "code", - "execution_count": 106, + "execution_count": 50, + "metadata": {}, + "outputs": [], + "source": [ + "w_gd, b_gd = 2., 4.\n", + "\n", + "for i in range(5000):\n", + " # update w and b\n", + " w_gd, b_gd = update_w_and_b(list_x, list_y, w_gd, b_gd, 0.001)\n", + " " + ] + }, + { + "cell_type": "code", + "execution_count": 61, "metadata": {}, "outputs": [ { "data": { + "image/png": "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QaG3ouWe09LS6NWrF+3bt6dNmzasWrWqYL033niDFi1acPfdd3Pw4MGC15944omCekbbt2+nW7dudOjQgb59+3L27FkAunfvzoQJE+jUqRPNmzdn48aNZGVl8corr7B06VJiY2NZunRpid8lNjaWV155hQ8++ACA5ORkHnzwQTp27EjHjh0LSl9/9913xMbGEhsbS7t27UhNTQXg7bffpk2bNrRt25aJEycCcOTIEfr160eHDh3o0qULBw4cKPhO48eP54477qBJkyYF32/ixIls3LiR2NhY3n///Qr+VIRwHe500xrTWgRKqRZA4SNQE+AV4N/W18OB48BDWuvLldrY9hfhsp3rUNeIhQ7FV7Pbu3dvqeUeCpd7zsnJYcWKFYSGhnLhwgU6d+7MwIED2bFjB0uWLOGnn34iJyeH9u3b31TeOjs7m+eff55Vq1ZRp04dli5dyssvv8zcuXMBo8WxdetWVq9ezd/+9jfWrl3LpEmTSExMLDi4l6Z9+/a88847ALzwwgv8/ve/56677uLkyZP07duX/fv3M3nyZOLj47nzzjtJS0sjMDCQr776ipUrV7JlyxaqVKnCpUuXABg9ejTTp08nMjKSLVu2MHbsWL799lsAzp49y6ZNmzhw4AADBw5kyJAhvPnmm0yePNnpXVRCFJaelcuR5DSa1gku99m8O920xrREoLU+CMQCKKUswGlgBTARWKe1flMpNdH6fIJZcTjKuHHj2LRpE/7+/mzbtg24sdyz1pq//OUvfP/99/j4+HD69GnOnz/Pxo0beeCBB6hSpQpgVBIt6uDBg+zZs4fevXsDRuXR/LLRAIMHDwagQ4cOHD9+vELxFy41snbtWvbt21fw/OrVq6SmpnLnnXfyhz/8gUceeYTBgwfToEED1q5dy8iRIwvir1mzJmlpafz4448MHTq04DMyMzMLHt9///34+PjQunVrp97RTYiSVLZrJ/+mNRVNJI7kqDGCXsARrfUJpdQgoLv19QXABiqbCEo4czdLVFQUn3zyScHz+Ph4Lly4QFzc9bIehcs9L1q0iOTkZLZv346fnx/h4eFkZGQA2CwzXZjWmqioKDZv3mzz/fxichaLpcJlo3/66aeCWj55eXls3ryZoKCgG5aZOHEiAwYMYPXq1XTu3Jm1a9eitb4p/ry8PKpXr87OYu4WVLj4nTvUuhLeyVbX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\n", "text/plain": [ - "[array([ 8.46732643, -634.60911809]), array([ 8.46732643, -20.74489117])]" + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + }, + { + "data": { + "text/plain": [ + "
" ] }, - "execution_count": 106, "metadata": {}, - "output_type": "execute_result" + "output_type": "display_data" } ], - "source": [] + "source": [ + "# Affichage des résultats des deux techniques\n", + "\n", + "min_x, max_x = 20, 40\n", + "list_x = np.random.uniform(min_x, max_x, 100).tolist()\n", + "list_x.sort()\n", + "f = lambda x_i: 1.5 * x_i + 5\n", + "SCALE = 5\n", + "list_y = [f(x) + np.random.normal(0, SCALE, 1)[0] for x in list_x]\n", + "\n", + "plt.scatter(list_x, list_y, s=6, label='original data')\n", + "plt.plot([min_x, max_x], [b_cf + w_cf * min_x, b_cf + w_cf * max_x],\n", + " '-', markersize=3, color='blue', label='Closed-form')\n", + "plt.plot([min_x, max_x], [b_gd + w_gd * min_x, b_gd + w_gd * max_x],\n", + "'-', markersize=3, color='orange', label='Gradient Descent')\n", + "plt.xlabel('x')\n", + "plt.ylabel('y')\n", + "plt.legend(loc=0)\n", + "plt.show()\n", + "plt.clf()\n" + ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 62, "metadata": {}, "outputs": [], "source": [ "# Maintenant on voit comment régler ça en 3 lignes\n", "\n", "from sklearn.linear_model import LinearRegression\n", - "...\n" + "\n", + "\n", + "model = LinearRegression().fit(np.asarray(list_x).reshape(-1, 1), list_y)\n", + "w_sklearn, b_sklearn = model.coef_[0], model.intercept_\n", + "\n" ] + }, + { + "cell_type": "code", + "execution_count": 63, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + }, + { + "data": { + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Affichage des résultats des trois techniques\n", + "\n", + "min_x, max_x = 20, 40\n", + "list_x = np.random.uniform(min_x, max_x, 100).tolist()\n", + "list_x.sort()\n", + "f = lambda x_i: 1.5 * x_i + 5\n", + "SCALE = 5\n", + "list_y = [f(x) + np.random.normal(0, SCALE, 1)[0] for x in list_x]\n", + "\n", + "plt.scatter(list_x, list_y, s=6, label='original data')\n", + "plt.plot([min_x, max_x], [b_cf + w_cf * min_x, b_cf + w_cf * max_x],\n", + " '-', markersize=3, color='blue', label='Closed-form')\n", + "plt.plot([min_x, max_x], [b_gd + w_gd * min_x, b_gd + w_gd * max_x],\n", + "'-', markersize=3, color='orange', label='Gradient Descent')\n", + "plt.plot([min_x, max_x], [b_sklearn + w_sklearn * min_x, b_sklearn + w_sklearn * max_x],\n", + "'-', markersize=3, color='yellow', label='Sklearn')\n", + "plt.xlabel('x')\n", + "plt.ylabel('y')\n", + "plt.legend(loc=0)\n", + "plt.show()\n", + "plt.clf()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] } ], "metadata": { diff --git a/Archis Applications/Exercices/Exercice 1.ipynb b/Archis Applications/Exercices/Exercice 1.ipynb index 9d0a4e4..2b98d49 100644 --- a/Archis Applications/Exercices/Exercice 1.ipynb +++ b/Archis Applications/Exercices/Exercice 1.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "code", - "execution_count": 114, + "execution_count": 8, "metadata": {}, "outputs": [], "source": [ @@ -20,7 +20,7 @@ }, { "cell_type": "code", - "execution_count": 115, + "execution_count": 9, "metadata": {}, "outputs": [ { @@ -29,7 +29,7 @@ "25" ] }, - "execution_count": 115, + "execution_count": 9, "metadata": {}, "output_type": "execute_result" } @@ -50,7 +50,7 @@ }, { "cell_type": "code", - "execution_count": 116, + "execution_count": 10, "metadata": {}, "outputs": [], "source": [ @@ -68,22 +68,12 @@ }, { "cell_type": "code", - "execution_count": 120, + "execution_count": 11, "metadata": {}, "outputs": [ { "data": { - "text/plain": [ - "[]" - ] - }, - "execution_count": 120, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "
" ] @@ -96,12 +86,15 @@ ], "source": [ "# plot de J(theta)\n", - "plt.plot(theta,J(theta))" + "plt.plot(theta,J(theta), label='Fitted line - closed form')\n", + "plt.xlabel('x')\n", + "plt.ylabel('J(x)')\n", + "plt.show()" ] }, { "cell_type": "code", - "execution_count": 121, + "execution_count": 12, "metadata": {}, "outputs": [ { @@ -110,7 +103,7 @@ "-1.0" ] }, - "execution_count": 121, + "execution_count": 12, "metadata": {}, "output_type": "execute_result" } @@ -132,7 +125,7 @@ }, { "cell_type": "code", - "execution_count": 122, + "execution_count": 13, "metadata": {}, "outputs": [ { @@ -141,7 +134,7 @@ "0" ] }, - "execution_count": 122, + "execution_count": 13, "metadata": {}, "output_type": "execute_result" } @@ -156,7 +149,7 @@ }, { "cell_type": "code", - "execution_count": 123, + "execution_count": 14, "metadata": { "scrolled": true }, @@ -164,10 +157,10 @@ { "data": { "text/plain": [ - "[]" + "[]" ] }, - "execution_count": 123, + "execution_count": 14, "metadata": {}, "output_type": "execute_result" }, @@ -208,7 +201,7 @@ }, { "cell_type": "code", - "execution_count": 147, + "execution_count": 15, "metadata": {}, "outputs": [], "source": [ @@ -226,7 +219,7 @@ }, { "cell_type": "code", - "execution_count": 148, + "execution_count": 16, "metadata": {}, "outputs": [ { @@ -235,7 +228,7 @@ "-1.0000000100978041" ] }, - "execution_count": 148, + "execution_count": 16, "metadata": {}, "output_type": "execute_result" } @@ -256,7 +249,7 @@ }, { "cell_type": "code", - "execution_count": 192, + "execution_count": 25, "metadata": { "scrolled": true }, @@ -267,7 +260,7 @@ "-1.0000000100978041" ] }, - "execution_count": 192, + "execution_count": 25, "metadata": {}, "output_type": "execute_result" }, diff --git a/Archis Applications/Exercices/Exercice 2.ipynb b/Archis Applications/Exercices/Exercice 2.ipynb index 86b82e3..4344cce 100644 --- a/Archis Applications/Exercices/Exercice 2.ipynb +++ b/Archis Applications/Exercices/Exercice 2.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "code", - "execution_count": 56, + "execution_count": 1, "metadata": {}, "outputs": [], "source": [ @@ -37,12 +37,12 @@ }, { "cell_type": "code", - "execution_count": 57, + "execution_count": 20, "metadata": {}, "outputs": [], "source": [ "# On génère les x\n", - "list_x = np.random.uniform(20, 40, 100)\n", + "list_x = np.random.uniform(20, 40, 100).tolist()\n", "\n", "# Pis les y\n", "\n", @@ -64,22 +64,22 @@ }, { "cell_type": "code", - "execution_count": 58, + "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "" + "" ] }, - "execution_count": 58, + "execution_count": 3, "metadata": {}, "output_type": "execute_result" }, { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "
" ] @@ -105,7 +105,7 @@ }, { "cell_type": "code", - "execution_count": 100, + "execution_count": 8, "metadata": {}, "outputs": [], "source": [ @@ -128,7 +128,7 @@ " return np.dot(inv, np.dot(X_T,y))\n", "\n", "Y = np.asarray(list_y)\n", - "beta = B(Y)" + "b_cf, w_cf = B(Y)" ] }, { @@ -142,7 +142,7 @@ }, { "cell_type": "code", - "execution_count": 101, + "execution_count": 9, "metadata": {}, "outputs": [ { @@ -151,7 +151,7 @@ "0" ] }, - "execution_count": 101, + "execution_count": 9, "metadata": {}, "output_type": "execute_result" } @@ -167,7 +167,7 @@ }, { "cell_type": "code", - "execution_count": 102, + "execution_count": 10, "metadata": {}, "outputs": [ { @@ -176,7 +176,7 @@ "8" ] }, - "execution_count": 102, + "execution_count": 10, "metadata": {}, "output_type": "execute_result" } @@ -190,7 +190,7 @@ }, { "cell_type": "code", - "execution_count": 103, + "execution_count": 11, "metadata": {}, "outputs": [ { @@ -199,7 +199,7 @@ "2" ] }, - "execution_count": 103, + "execution_count": 11, "metadata": {}, "output_type": "execute_result" } @@ -221,7 +221,7 @@ }, { "cell_type": "code", - "execution_count": 109, + "execution_count": 12, "metadata": {}, "outputs": [ { @@ -230,7 +230,7 @@ "(5.0, 3.0)" ] }, - "execution_count": 109, + "execution_count": 12, "metadata": {}, "output_type": "execute_result" } @@ -266,33 +266,140 @@ }, { "cell_type": "code", - "execution_count": 106, + "execution_count": 50, + "metadata": {}, + "outputs": [], + "source": [ + "w_gd, b_gd = 2., 4.\n", + "\n", + "for i in range(5000):\n", + " # update w and b\n", + " w_gd, b_gd = update_w_and_b(list_x, list_y, w_gd, b_gd, 0.001)\n", + " " + ] + }, + { + "cell_type": "code", + "execution_count": 61, "metadata": {}, "outputs": [ { "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYIAAAEKCAYAAAAfGVI8AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4zLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvIxREBQAAIABJREFUeJzt3Xd8FWXWwPHfk5sKSehoqAkQWkIIEBALXYqgoAjC2hBRFFB0990Vdn1XXVx3LagsryH0sgKCoIAFXQFBQVkgICAd6aEZWkgkPc/7x9yEEG76nVvP9/Phwy0zd86dJHPmKXNGaa0RQgjhvXycHYAQQgjnkkQghBBeThKBEEJ4OUkEQgjh5SQRCCGEl5NEIIQQXk4SgRBCeDlJBEII4eUkEQghhJfzdXYAZVG7dm0dHh7u7DCEEMKtbN++/YLWuk5py7lFIggPDycxMdHZYQghhFtRSp0oy3LSNSSEEF5OEoEQQng5SQRCCOHl3GKMwJbs7GySkpLIyMhwdijCZIGBgTRo0AA/Pz9nhyKER3LbRJCUlERISAjh4eEopZwdjjCJ1pqLFy+SlJRERESEs8MRwiO5bddQRkYGtWrVkiTg4ZRS1KpVS1p+QpjIbRMBIEnAS8jPWbiy9Kxc9pxOIT0r19mhVJjbdg0JIYSzpWfl0mfKd1xIzaJ2iD/fvNiNIH+Ls8MqN7duETjbuXPnGD58OE2bNqV169b079+fQ4cOER0dbdo258+fz3PPPWfzvWXLltGqVSt69Ohh2vaFENcdSU7jQmoW6dm5XEjN4khymrNDqhBpEVSQ1poHHniAESNGsGTJEgB27tzJ+fPnnRbTnDlzmDZtWpkTQU5ODr6+8isgREU1rRNM7RD/ghZB0zrBzg6pQqRFUEHr16/Hz8+PZ599tuC12NhYGjZsWPA8IyODkSNH0qZNG9q1a8f69esB2Lt3L506dSI2NpaYmBgOHz4MwMKFCwtef+aZZ8jNNfoc582bR/PmzenWrRs//PCDzXgmTZrEpk2bePbZZ/nTn/5U7Lbnz5/P0KFDue++++jTpw8bNmygW7duPPTQQzRv3pyJEyeyaNEiOnXqRJs2bThy5Igp+08ITxDkb+GbF7ux7Nnb3bZbCDykRfDii7Bzp30/MzYWpkwp/v09e/bQoUOHEj8jPj4egJ9//pkDBw7Qp08fDh06xPTp03nhhRd45JFHyMrKIjc3l/3797N06VJ++OEH/Pz8GDt2LIsWLaJ37968+uqrbN++nWrVqtGjRw/atWt307ZeeeUVvv32WyZPnkxcXBzvvvuuzW0DbN68md27d1OzZk02bNjArl272L9/PzVr1qRJkyY89dRTbN26lX/961/83//9H1NK2hFCeLkgfwvR9as5O4xK8YhE4Ko2bdrE888/D0DLli1p3Lgxhw4d4vbbb+eNN94gKSmJwYMHExkZybp169i+fTsdO3YEID09nbp167Jlyxa6d+9OnTpGAcFhw4YVHNArsm2A3r17U7NmzYJlO3bsSFhYGABNmzalT58+ALRp06agJSGE8FwekQicccIaFRXF8uXLS1xGa23z9YcffpjbbruNL7/8kr59+zJ79my01owYMYJ//vOfNyy7cuVKm9Mnc3NzC1okAwcOZNKkSWXaNkDVqlVveB4QEFDw2MfHp+C5j48POTk5JXxDIYQnkDGCCurZsyeZmZnMmjWr4LVt27Zx4sT1qq9du3Zl0aJFABw6dIiTJ0/SokULjh49SpMmTRg/fjwDBw5k9+7d9OrVi+XLl/Prr78CcOnSJU6cOMFtt93Ghg0buHjxItnZ2SxbtgwAi8XCzp072blz501JoKRtCyFEUZIIKkgpxYoVK1izZg1NmzYlKiqK1157jXr16hUsM3bsWHJzc2nTpg3Dhg1j/vz5BAQEsHTpUqKjo4mNjeXAgQM8/vjjtG7dmr///e/06dOHmJgYevfuzdmzZwkLC+O1117j9ttv5+6776Z9+/Zliq+4bQshRFGqpC4EVxEXF6eL3phm//79tGrVykkRCUeTn7cQ5aeU2q61jittOWkRCCGEl5NEIIQQXk4SgRBCeDlJBEII4eUkEQghhJeTRCCEEF5OEkElnD9/nocffpgmTZrQoUMHbr/9dlasWFGpz3zttdeYPHkyYNQPWrt2bYU+Z+fOnaxevdrmexs2bKBatWq0a9eOFi1a0LVrV7744osKx2wPx48fZ/HixU6NQQh7c5eb1nhEiQln0Fpz//33M2LEiIID2IkTJ/jss89uWrai5Z5tXTFcVjt37iQxMZH+/fvbfL9Lly4FB/+dO3dy//33ExQURK9evSq8zcrITwQPP/ywU7YvhL25001rpEVQQd9++y3+/v43lKFu3LhxQaG3ouWe09LS6NWrF+3bt6dNmzasWrWqYL033niDFi1acPfdd3Pw4MGC15944omCekbbt2+nW7dudOjQgb59+3L27FkAunfvzoQJE+jUqRPNmzdn48aNZGVl8corr7B06VJiY2NZunRpid8lNjaWV155hQ8++ACA5ORkHnzwQTp27EjHjh0LSl9/9913xMbGEhsbS7t27UhNTQXg7bffpk2bNrRt25aJEycCcOTIEfr160eHDh3o0qULBw4cKPhO48eP54477qBJkyYF32/ixIls3LiR2NhY3n///Qr+VIRwHe500xrTWgRKqRZA4SNQE+AV4N/W18OB48BDWuvLldrY9hfhsp3rUNeIhQ7FV7Pbu3dvqeUeCpd7zsnJYcWKFYSGhnLhwgU6d+7MwIED2bFjB0uWLOGnn34iJyeH9u3b31TeOjs7m+eff55Vq1ZRp04dli5dyssvv8zcuXMBo8WxdetWVq9ezd/+9jfWrl3LpEmTSExMLDi4l6Z9+/a88847ALzwwgv8/ve/56677uLkyZP07duX/fv3M3nyZOLj47nzzjtJS0sjMDCQr776ipUrV7JlyxaqVKnCpUuXABg9ejTTp08nMjKSLVu2MHbsWL799lsAzp49y6ZNmzhw4AADBw5kyJAhvPnmm0yePNnpXVRCFJaelcuR5DSa1gku99m8O920xrREoLU+CMQCKKUswGlgBTARWKe1flMpNdH6fIJZcTjKuHHj2LRpE/7+/mzbtg24sdyz1pq//OUvfP/99/j4+HD69GnOnz/Pxo0beeCBB6hSpQpgVBIt6uDBg+zZs4fevXsDRuXR/LLRAIMHDwagQ4cOHD9+vELxFy41snbtWvbt21fw/OrVq6SmpnLnnXfyhz/8gUceeYTBgwfToEED1q5dy8iRIwvir1mzJmlpafz4448MHTq04DMyMzMLHt9///34+PjQunVrp97RTYiSVLZrJ/+mNRVNJI7kqDGCXsARrfUJpdQgoLv19QXABiqbCEo4czdLVFQUn3zyScHz+Ph4Lly4QFzc9bIehcs9L1q0iOTkZLZv346fnx/h4eFkZGQA2CwzXZjWmqioKDZv3mzz/fxichaLpcJlo3/66aeCWj55eXls3ryZoKCgG5aZOHEiAwYMYPXq1XTu3Jm1a9eitb4p/ry8PKpXr87OYu4WVLj4nTvUuhLeyVbX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\n", "text/plain": [ - "[array([ 8.46732643, -634.60911809]), array([ 8.46732643, -20.74489117])]" + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + }, + { + "data": { + "text/plain": [ + "
" ] }, - "execution_count": 106, "metadata": {}, - "output_type": "execute_result" + "output_type": "display_data" } ], - "source": [] + "source": [ + "# Affichage des résultats des deux techniques\n", + "\n", + "min_x, max_x = 20, 40\n", + "list_x = np.random.uniform(min_x, max_x, 100).tolist()\n", + "list_x.sort()\n", + "f = lambda x_i: 1.5 * x_i + 5\n", + "SCALE = 5\n", + "list_y = [f(x) + np.random.normal(0, SCALE, 1)[0] for x in list_x]\n", + "\n", + "plt.scatter(list_x, list_y, s=6, label='original data')\n", + "plt.plot([min_x, max_x], [b_cf + w_cf * min_x, b_cf + w_cf * max_x],\n", + " '-', markersize=3, color='blue', label='Closed-form')\n", + "plt.plot([min_x, max_x], [b_gd + w_gd * min_x, b_gd + w_gd * max_x],\n", + "'-', markersize=3, color='orange', label='Gradient Descent')\n", + "plt.xlabel('x')\n", + "plt.ylabel('y')\n", + "plt.legend(loc=0)\n", + "plt.show()\n", + "plt.clf()\n" + ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 62, "metadata": {}, "outputs": [], "source": [ "# Maintenant on voit comment régler ça en 3 lignes\n", "\n", "from sklearn.linear_model import LinearRegression\n", - "...\n" + "\n", + "\n", + "model = LinearRegression().fit(np.asarray(list_x).reshape(-1, 1), list_y)\n", + "w_sklearn, b_sklearn = model.coef_[0], model.intercept_\n", + "\n" ] + }, + { + "cell_type": "code", + "execution_count": 63, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + }, + { + "data": { + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Affichage des résultats des trois techniques\n", + "\n", + "min_x, max_x = 20, 40\n", + "list_x = np.random.uniform(min_x, max_x, 100).tolist()\n", + "list_x.sort()\n", + "f = lambda x_i: 1.5 * x_i + 5\n", + "SCALE = 5\n", + "list_y = [f(x) + np.random.normal(0, SCALE, 1)[0] for x in list_x]\n", + "\n", + "plt.scatter(list_x, list_y, s=6, label='original data')\n", + "plt.plot([min_x, max_x], [b_cf + w_cf * min_x, b_cf + w_cf * max_x],\n", + " '-', markersize=3, color='blue', label='Closed-form')\n", + "plt.plot([min_x, max_x], [b_gd + w_gd * min_x, b_gd + w_gd * max_x],\n", + "'-', markersize=3, color='orange', label='Gradient Descent')\n", + "plt.plot([min_x, max_x], [b_sklearn + w_sklearn * min_x, b_sklearn + w_sklearn * max_x],\n", + "'-', markersize=3, color='yellow', label='Sklearn')\n", + "plt.xlabel('x')\n", + "plt.ylabel('y')\n", + "plt.legend(loc=0)\n", + "plt.show()\n", + "plt.clf()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] } ], "metadata": { diff --git a/Archis Applications/Introduction au Machine Learning.md b/Archis Applications/Introduction au Machine Learning.md index f665236..3a039cd 100644 --- a/Archis Applications/Introduction au Machine Learning.md +++ b/Archis Applications/Introduction au Machine Learning.md @@ -86,61 +86,78 @@ On aura pas de gros GPU, c'est un peu le nerf de la guerre : elle peuvent faire ## Régression linéaire (simple) -À partir de données fournies (x1, y1), on va les voir comme des caractéristiques t des targets : on veut prédire y en fonction de x. Exemple de la slide : on veut prédire une droite. +On part de données fournies qui se placent sur deux axes, chaque donnée ayant donc des coordonnées (xi, yi). Ces données sont vues comme des caractéristiques t des targets : on veut prédire y en fonction de x. Exemple de la slide : on veut prédire une droite. qui donnera la tendance à partir de toutes ces données. -Là c'est un simple produit scalaire. +Là c'est un simple produit scalaire. Notre droite $y = ax +b$. En l'occurence ici on va parler de $w$ et non de $a$ -À patir de cet exemple simple qui vient des maths, on part ne informatique. En IT, l'objectif d'optimisation sera tjrs présent. On a un b et un w détemriné à partir de la droite. +À patir de cet exemple simple qui vient des maths, on part en informatique. En informatique, l'objectif d'optimisation est toujours présent. Pour optimiser, on va avoir besoin de déterminer une fonction de coût : elle représente l'écart de la valeur prédite par rapport à la vraie valeur. Le but final est de définir une droite qui s'approche le plus possible des valeurs réelles à partir de la moyenne des fonctions de coût. +On représente une prévision avec un chapeau : $\hat y$. On note $l$ le coût (loss) pour un point, et $L$ le coût total : +$$ +l(\hat y_i, y_i) = ((wx_i + b) - y_i)² \\ -$Droite = wx +b$ +L(_{w, b, x_i, y_i}) = min\frac{1}{N}\sum_{i=1...N} (w * x_i+b) - y_i)² +$$ -On détermine une fonction de coût : écart de la valeur prédite par rapport à la vraie valeur. L but st de matcher le plus possible les valeurs réelles. -Coût pour un point : $l(\hat y_1, y_1)$ -Coût total : $L(_{w, b, x_i, y_i}) = (w * x_i+b) - y_i)​$ +En gros on attribue des valeurs w et b complètement aléatoires et on voit la valeur du coût. Ensuit la machine tâche de minimiser le plus possible ce coût avec des valeurs différentes de w et b. -En gros on attribue des valeurs w et b complètement aléatoires et on voit la valeur du coût. Ensuit la machine tâche de minimiser au max ce coût avec des valeurs différentes de w et b. +### Solution closed-form -#### Solution closed-form +Pour appliquer cette solution on fait des matrices pour chaque point de 1 à N, puis des opérations sur ces matrices. On pose : +$$ +beta = \begin{bmatrix}w & b\end{bmatrix} \\ +\\ +X = \begin{bmatrix} + 1 & w_1 \\ + \cdots & \cdots \\ + 1 & x_i + \end{bmatrix} \\ +\\ +Y = \begin{bmatrix}y_1 \\ y_i\end{bmatrix} +$$ +Avec ça, on peut réécrire notre fonction de coût en quelque chose de matriciel, et obtenir la solution optimale à partir d'opérations de transformation, d'inverse et de multiplication de matrices. Et on trouve les meilleurs cas grâce à ce calcul. Mais ça ne marche que dans des cas précis, car le calcul de la matrice inverse est parfois trop chiadé pour être réalisable. -On fait des fucking matrices pour chaque point de 1 à n +Solution optimale : $\beta * = \hat \beta = (X^T. X)^{-1}.X^T.Y$ -Avec ça, on peut réécrire notre fonction de coût en quelque chose de matriciel. (calcul dans optimization). Et on trouve les meilleurs cas grâce à ce calcul. Mais ça ne marche que dans ce cas précis, car le calcul de la matrice inverse est parfois trop chiadé pour être réalisable. +À cause de cette complexité on cherche parfois des solutions qui vont être "à peu près similaire" à ce résultat pour quand on a des matrice énormes. -Des fois du coup on cherche des solutions qui vont être "à peu près similaire" à ce résultat pour quand on a des matrice énorme. - -#### Régression linéaire avec descente de gradient +### Régression linéaire avec descente de gradient La descente de gradient donne une courbe montrant la valeur du coût en fonction de la valeur du $\theta$ . La solution optimale est au creux de la courbe, quand on a une valeur minimale et qu'on peut pas aller plus bas. -On va voir ça aujourd'hui et prendre l’algorithme exact. - Voici les étapes : -1. on sait pas où est le minimum. on choisit un $\theta_0$ aléatoire +1. On sait pas où est le minimum. On choisit un $\theta_0$ aléatoire 2. On détermine un "learning rate", on reviendra dessus 3. On choisit ensuite le nombre d'itérations (genre 1000), et pour chaque on met à jour les paramètres en cherchant à aller dans le sens de la pente. -C'est là qu'intervient la dérivée, qui est le gradient, qui indique l'inverse de la pente. On va donc prendre le sens contraire : on soustraire la dérivée à la valeur actuelle de $\theta$ +C'est là qu'intervient la dérivée, qui est le gradient, qui indique l'inverse de la pente. On va donc prendre le sens contraire : on soustrait la dérivée à la valeur actuelle de $\theta$ -Il y a la problématique de l'initialisation, si on tombe direct sur le le mini ou bien sur les courbe problématiques qui ont des parties horizontales. Une solution est de prendre plusieurs points d'initialisation. +Il y a la problématique de l'initialisation, si on tombe direct sur le le mini ou bien sur les courbes problématiques qui ont des parties horizontales. Une solution est de prendre plusieurs points d'initialisation. Comment trouver w et b à partir de cet algo d'optimisation ? Et bien on dit que $J(\theta) = J(w,b)$. On initialise donc w et b et on calcule les gradients pour w et pour b. -en gros, c'est le calcul de la dérivée qui permet de savoir le sens de la pente. REVOIR LES DÉRIVÉES. La dérivée est une limite de tangente quand un point de la fonction tend vers 0. +En gros, c'est le calcul de la dérivée qui permet de savoir le sens de la pente : puisqu'en fonction de son signe, la dérivée de $f(x)$ indique si $f$ est croissante ou décroissante, connaitre cette dérivéepermet de connaitre le sens de la pente pour $x_i$ +### Descente de Gradient stochastique +Comme dans la réalité on a beaucoup trop de données pour s'appuyer sur toutes, on fait une descente de gradient stochastique : on estime les gradients d'un échantillon des données seulement. -Pour reprendre exemple classe, on se pose la question : quand température est x, combien je vais vendre de glacE. On veut rsourdre le problèm en paratn fu principe qu'on va vendre +### Exemple + +Nous sommes de charmants vendeurs de gales ambulants. On se pose la question : "Quand température est de $x$, combien je vais vendre de glace ?". On s'appuie sur plusieurs expériences de cas réels où on a vendu $y$ glaces alors que la température était de $x$. + +On va résoudre le problème en partant du principe qu'on va vendre $wx + b$ glaces, où x est la température. Si $x = 0$ on va vendre $b$ glaces. $b$ est appelé l'intercepte, et $w$ la pente. + +### Notes en vrac -wx + b glace où x est la température. Si x = 0 on va vendre b glace. b est appelé l'intercepte. $$ -\hat o = argmin\ J(\theta) +\hat \theta = argmin\ J(\theta) $$ -Se comprend comme "le parmaètre $\theta$ qui minimise $J(\theta)$" +Se comprend comme "le paramètre $\theta$ qui minimise $J(\theta)$" -le chapeau indique la prédiction. Pour trouver le coût, donc l'écart entre prédiction et réalité, moyen (de tous les points), on va chercher à déterminer $\hat w$ et $\hat b$ +Le chapeau indique la prédiction. Pour trouver le coût moyen (de tous les points), donc l'écart entre prédiction et réalité, on va chercher à déterminer $\hat w$ et $\hat b$. -On mate un graph avec trois méthodes : closed-form, gradient descend et stochastic gradient descent. On remarque que les 3 sont très proches. +À la fin des exercies on mate un graph avec trois méthodes : closed-form, gradient descend et stochastic gradient descent. On remarque que les 3 sont très proches. -On voit esuite coment régler ça en 3 lignes \ No newline at end of file +On voit ensuite comment faire une descente de gradient en 3 lignes de code : scikit-learn \ No newline at end of file