diff --git a/doc/src/week41/exercisesweek41.ipynb b/doc/src/week41/exercisesweek41.ipynb index 7211fc4ef..fb52a5a71 100644 --- a/doc/src/week41/exercisesweek41.ipynb +++ b/doc/src/week41/exercisesweek41.ipynb @@ -326,10 +326,34 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 1, "id": "e08215a6", "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Own inversion\n", + "[[4.01498551]\n", + " [3.02821089]]\n", + "Eigenvalues of Hessian Matrix:[0.29611739 4.55853898]\n", + "theta from own gd\n", + "[[4.01498551]\n", + " [3.02821089]]\n" + ] + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAkMAAAHFCAYAAADxOP3DAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAA9hAAAPYQGoP6dpAABXX0lEQVR4nO3deXgT1foH8G/a0pa10ALdoWURaMu+CEKBqoAIuWAvoqAIuFwVEAp6r3C9KqjIlZ+yKG5cveIVi6gUJKggQgvIoqyyrxYoSylrCoVuyfn9EROaNmn2ZCbz/TxPn5KZyeRMZoZ5e857zlEJIQSIiIiIFCrA1wUgIiIi8iUGQ0RERKRoDIaIiIhI0RgMERERkaIxGCIiIiJFYzBEREREisZgiIiIiBSNwRAREREpGoMhIiIiUjQGQ0QStGjRIqhUKtNPUFAQoqOj8fDDD+PYsWM+K9f06dOhUql89vlycPLkSahUKrz99tu+LgoR2SnI1wUgIus+++wztG7dGsXFxdi8eTNmzpyJ7OxsHD58GA0aNPB18YiI/AKDISIJS0lJQZcuXQAAffv2hU6nw6uvvooVK1Zg7NixPi4d+VJZWZmp1pCIXMNmMiIZMQZGFy5cMC0rLi7G888/jw4dOiAsLAzh4eHo0aMHvvvuuyrvV6lUmDBhAr744gu0adMGtWrVQvv27bFq1aoq237//ffo0KEDQkJCkJiYaLXZp7i4GNOmTUNiYiKCg4MRGxuL8ePH49q1a2bbJSQkYPDgwVi1ahU6duyImjVrok2bNqbPXrRoEdq0aYPatWujW7du2LFjh83vw9icmJ2djWeffRYNGzZEREQE0tPTce7cuSrHPn369Cr7SEhIwJgxY6rsc/369XjqqacQERGBevXq4bHHHkNRURHy8/MxfPhw1K9fH9HR0XjhhRdQVlZWZb96vR4zZ85EkyZNEBoaii5dumDdunVVtjt27BhGjhyJxo0bIyQkBG3atMH7779vtk1OTg5UKhW++OILPP/884iNjUVISAiOHz+Omzdv4oUXXkBiYiJCQ0MRHh6OLl26YMmSJTa/PyIy4J8URDKSm5sLALjjjjtMy0pKSnDlyhW88MILiI2NRWlpKX7++Wekp6fjs88+w2OPPWa2j++//x7bt2/Ha6+9hjp16mD27Nl44IEHcOTIETRr1gwAsG7dOgwZMgQ9evTAV199BZ1Oh9mzZ5sFYQAghMDQoUOxbt06TJs2Dampqdi7dy9effVVbN26FVu3bkVISIhp+99//x3Tpk3DSy+9hLCwMMyYMQPp6emYNm0a1q1bhzfffBMqlQovvvgiBg8ejNzcXNSsWdPm9/Lkk09i0KBByMzMRF5eHv7+97/j0Ucfxfr1653+rp988kmkp6fjq6++wu7du/HPf/4T5eXlOHLkCNLT0/G3v/0NP//8M9566y3ExMRgypQpZu9fsGABmjZtinnz5kGv12P27NkYOHAgNmzYgB49egAADh48iLvuugtNmjTBO++8g6ioKKxZswYTJ07EpUuX8Oqrr5rtc9q0aejRowc++ugjBAQEoHHjxpgyZQq++OILvPHGG+jYsSOKioqwf/9+XL582eljJ1IcQUSS89lnnwkAYtu2baKsrExcv35drF69WkRFRYnevXuLsrIyq+8tLy8XZWVl4oknnhAdO3Y0WwdAREZGisLCQtOy/Px8ERAQIGbNmmVaduedd4qYmBhx69Yt07LCwkIRHh4uKv63sXr1agFAzJ492+xzli5dKgCIhQsXmpY1bdpU1KxZU5w5c8a0bM+ePQKAiI6OFkVFRablK1asEADEypUr7fqexo0bZ7Z89uzZAoA4f/682bG/+uqrVfbRtGlTMXr06Cr7fO6558y2Gzp0qAAg5syZY7a8Q4cOolOnTqbXubm5AoDV7+/ee+81LRswYICIi4sTWq3WbJ8TJkwQoaGh4sqVK0IIIbKzswUA0bt37yrlT0lJEUOHDq2ynIjsx2YyIgnr3r07atSogbp16+K+++5DgwYN8N1331XJE/nmm2/Qs2dP1KlTB0FBQahRowY+/fRTHDp0qMo+09LSULduXdPryMhING7cGKdOnQIAFBUVYfv27UhPT0doaKhpu7p160KtVpvty1jzUrGZCQAefPBB1K5du0qzUIcOHRAbG2t63aZNGwCGfKhatWpVWW4sky1/+ctfzF63a9fOofdbMnjwYLPXxjINGjSoynJLn2Pt+9u4cSN0Oh2Ki4uxbt06PPDAA6hVqxbKy8tNP/fffz+Ki4uxbds2s33+9a9/rfI53bp1w48//oipU6ciJycHt27dcvqYiZSKwRCRhP3vf//D9u3bsX79ejz99NM4dOgQRowYYbZNVlYWhg8fjtjYWCxevBhbt27F9u3b8fjjj6O4uLjKPiMiIqosCwkJMT1Er169Cr1ej6ioqCrbVV52+fJlBAUFoVGjRmbLVSoVoqKiqjTVhIeHm70ODg6udrml8ltS+ZiMTXOuBAaOlNVSOa19f6Wlpbhx4wYuX76M8vJyvPfee6hRo4bZz/333w8AuHTpktn7o6Ojq+zz3XffxYsvvogVK1YgLS0N4eHhGDp0qE+HYCCSG+YMEUlYmzZtTEnTaWlp0Ol0+OSTT/Dtt99i2LBhAIDFixcjMTERS5cuNRsDqKSkxKnPbNCgAVQqFfLz86usq7wsIiIC5eXluHjxollAJIRAfn4+unbt6lQZPCEkJMTid+Kp3Bpr319wcDDq1KmDGjVqIDAwEKNGjcL48eMt7iMxMdHstaUxnmrXro0ZM2ZgxowZuHDhgqmWSK1W4/Dhw+45GCI/x5ohIhmZPXs2GjRogFdeeQV6vR6A4QEZHBxs9qDMz8+32JvMHsbeXFlZWWY1HtevX4dGozHb9p577gFgCMgqWrZsGYqKikzrpSAhIQF79+41W7Z+/XrcuHHDI59n7ftLTU1FYGAgatWqhbS0NOzevRvt2rVDly5dqvxYqsWrTmRkJMaMGYMRI0bgyJEjuHnzprsPi8gvsWaISEYaNGiAadOm4R//+AcyMzPx6KOPYvDgwcjKysK4ceMwbNgw5OXl4fXXX0d0dLTTTSWvv/467rvvPvTr1w/PP/88dDod3nrrLdSuXRtXrlwxbdevXz8MGDAAL774IgoLC9GzZ09Tb7KOHTti1KhR7jp0l40aNQovv/wyXnnlFfTp0wcHDx7EggULEBYW5pHPCwwMRL9+/TBlyhTo9Xq89dZbKCwsxIwZM0zbzJ8/H7169UJqaiqeffZZJCQk4Pr16zh+/Dg0Go1dveHuvPNODB48GO3atUODBg1w6NAhfPHFF+jRo4dZHhYRWcdgiEhmnnvuOSxYsACvvfYaRowYgbFjx6KgoAAfffQR/vvf/6JZs2aYOnUqzpw5Y/bgdUS/fv2wYsUK/Otf/8JDDz2EqKgojBs3Drdu3TLbp0qlwooVKzB9+nR89tlnmDlzJho2bIhRo0bhzTffNOtW72t///vfUVhYiEWLFuHtt99Gt27d8PXXX2PIkCEe+bwJEyaguLgYEydOREFBAZKTk/H999+jZ8+epm2SkpKwa9cuvP766/jXv/6FgoIC1K9fHy1btjTlDdly9913Y+XKlZg7dy5u3ryJ2NhYPPbYY3jppZc8clxE/kglhBC+LgQRERGRrzBniIiIiBSNwRAREREpGoMhIiIiUjQGQ0RERKRoDIaIiIhI0RgMERERkaIpYpwhvV6Pc+fOoW7duhaHsyciIiLpEULg+vXriImJQUCA5+pvFBEMnTt3DvHx8b4uBhERETkhLy8PcXFxHtu/IoKhunXrAjB8mfXq1fNxaYiIiMgehYWFiI+PNz3HPUURwZCxaaxevXoMhoiIiGTG0ykuTKAmIiIiRWMwRERERIrGYIiIiIgUjcEQERERKRqDISIiIlI0BkNERESkaAyGiIiISNEYDBEREZGiMRgiIiIiRWMwRERERIrGYIiIiIgUjcEQERERKRqDISIiIlI0BkNERESkaAyGiIiISNEYDBEREZGiMRgiIiIiRfN5MLRx40ao1WrExMRApVJhxYoVVrd9+umnoVKpMG/ePK+Vj4iIiPybz4OhoqIitG/fHgsWLKh2uxUrVuDXX39FTEyMl0pGREREShDk6wIMHDgQAwcOrHabs2fPYsKECVizZg0GDRrkpZIRERGREvi8ZsgWvV6PUaNG4e9//zuSk5N9XRwiIiLyMz6vGbLlrbfeQlBQECZOnGj3e0pKSlBSUmJ6XVhY6ImiERERkR+QdM3Qzp07MX/+fCxatAgqlcru982aNQthYWGmn/j4eA+WkoiIiORM0sHQpk2bUFBQgCZNmiAoKAhBQUE4deoUnn/+eSQkJFh937Rp06DVak0/eXl53is0ERERyYqkm8lGjRqFe++912zZgAEDMGrUKIwdO9bq+0JCQhASEuLp4hEREZEf8HkwdOPGDRw/ftz0Ojc3F3v27EF4eDiaNGmCiIgIs+1r1KiBqKgotGrVyttFJSIiIj/k82Box44dSEtLM72eMmUKAGD06NFYtGiRj0pFRERESuHzYKhv374QQti9/cmTJz1XGCIiIlIcSSdQExEREXkagyEiIiJSNAZDREREpGgMhoiIiEjRGAwRERGRojEYIiIiIkVjMERERESKxmCIiIiIFI3BEBERESkagyEiIiJSNAZDREREpGgMhoiIiEjRGAwRERGRojEYIiIiIkVjMERERESKxmCIiIiIFI3BEBERESkagyEiIiJSNAZDREREpGgMhoiIiEjRGAwRERGRojEY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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "# Using Autograd to calculate gradients for OLS\n", "from random import random, seed\n", @@ -1060,7 +1084,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 2, "id": "f1090d5e", "metadata": {}, "outputs": [], @@ -1083,7 +1107,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 3, "id": "ed55121d", "metadata": {}, "outputs": [ @@ -1098,10 +1122,10 @@ { "data": { "text/plain": [ - "[]" + "[]" ] }, - "execution_count": 6, + "execution_count": 3, "metadata": {}, "output_type": "execute_result" }, @@ -1163,7 +1187,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 4, "id": "863db98d", "metadata": {}, "outputs": [ @@ -1178,10 +1202,10 @@ { "data": { "text/plain": [ - "" + "" ] }, - "execution_count": 7, + "execution_count": 4, "metadata": {}, "output_type": "execute_result" },