Created
September 26, 2020 07:12
-
-
Save shravankumar147/472e5bc002896e24f47960d5b13580d4 to your computer and use it in GitHub Desktop.
Gradient Descent Intutive understanding
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| { | |
| "nbformat": 4, | |
| "nbformat_minor": 0, | |
| "metadata": { | |
| "colab": { | |
| "name": "Gradient Descent Intutive understanding", | |
| "provenance": [], | |
| "collapsed_sections": [], | |
| "include_colab_link": true | |
| }, | |
| "kernelspec": { | |
| "name": "python3", | |
| "display_name": "Python 3" | |
| } | |
| }, | |
| "cells": [ | |
| { | |
| "cell_type": "markdown", | |
| "metadata": { | |
| "id": "view-in-github", | |
| "colab_type": "text" | |
| }, | |
| "source": [ | |
| "<a href=\"https://colab.research.google.com/gist/shravankumar147/472e5bc002896e24f47960d5b13580d4/gradient-descent-intutive-understanding.ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": { | |
| "id": "eJbVEriNZqr2" | |
| }, | |
| "source": [ | |
| "**Gradien Descent - Mathematical understanding**" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": { | |
| "id": "-Z8SQ3aOYz9o" | |
| }, | |
| "source": [ | |
| "$f(x) = 2x^2 cos(x)$\n", | |
| "\n", | |
| "\n", | |
| "$f^{'}(x) = 4xcos(x) - 2x^{2}sin(x) $\n", | |
| "\n", | |
| "Parameter update rule: \n", | |
| "\n", | |
| "$x(t+1) = x(t) - \\alpha\\times f^{'}(x(t))$" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": { | |
| "id": "Q60spymnnYDF" | |
| }, | |
| "source": [ | |
| "\n", | |
| "\n", | |
| "\n" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "metadata": { | |
| "id": "aR_BA4UDZ51V" | |
| }, | |
| "source": [ | |
| "# import required packages\n", | |
| "import numpy as np\n", | |
| "\n", | |
| "import matplotlib.pyplot as plt\n", | |
| "%matplotlib inline" | |
| ], | |
| "execution_count": null, | |
| "outputs": [] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": { | |
| "id": "Nkd_lyHjKH5K" | |
| }, | |
| "source": [ | |
| "$f(x) = 2x^2 cos(x)$\n", | |
| "\n", | |
| "\n", | |
| "\n" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "metadata": { | |
| "id": "zrw7zHiAZmta" | |
| }, | |
| "source": [ | |
| "# define helper functions\n", | |
| "\n", | |
| "# Objective/ Cost function\n", | |
| "def f(x):\n", | |
| " return 2 * x * x * np.cos(x)" | |
| ], | |
| "execution_count": null, | |
| "outputs": [] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": { | |
| "id": "xILmpSfRKiut" | |
| }, | |
| "source": [ | |
| "\n", | |
| "$f^{'}(x) = 4xcos(x) - 2x^{2}sin(x) $\n" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "metadata": { | |
| "id": "PRV0KhbiaOLI" | |
| }, | |
| "source": [ | |
| "# Derivative function for the Cost \n", | |
| "def df(x):\n", | |
| " return 4 * x * np.cos(x) - 2 * x * x * np.sin(x)" | |
| ], | |
| "execution_count": null, | |
| "outputs": [] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "metadata": { | |
| "id": "aFi7_pc6dlcE" | |
| }, | |
| "source": [ | |
| "# Helper function to visualization\n", | |
| "def draw_update(ax, t, x_new):\n", | |
| " ax.plot(x_new,f(x_new), 'ro')" | |
| ], | |
| "execution_count": null, | |
| "outputs": [] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": { | |
| "id": "5gu9CDj5MmyZ" | |
| }, | |
| "source": [ | |
| "\n", | |
| "Parameter update rule: \n", | |
| "\n", | |
| "$x(t+1) = x(t) - \\alpha\\times \\frac{df(x)}{dx}$\n", | |
| "\n", | |
| "(or)\n", | |
| "\n", | |
| "$x(t+1) = x(t) - \\alpha\\times f^{'}(x(t))$" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "metadata": { | |
| "id": "YJrEcujCd61f" | |
| }, | |
| "source": [ | |
| "# parameter update function\n", | |
| "def param_update(x_t, alpha, slope):\n", | |
| " \"\"\" \n", | |
| " slope = f'(x)\n", | |
| " \"\"\"\n", | |
| " return x_t - alpha*slope" | |
| ], | |
| "execution_count": null, | |
| "outputs": [] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": { | |
| "id": "n2gmwxrxFfNC" | |
| }, | |
| "source": [ | |
| "\n", | |
| "\n", | |
| "> \n", | |
| "\n", | |
| "\n", | |
| "\n" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "metadata": { | |
| "id": "Q8hIPeesFOTL" | |
| }, | |
| "source": [ | |
| "" | |
| ], | |
| "execution_count": null, | |
| "outputs": [] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "metadata": { | |
| "id": "fZ_l6eZsaA_L" | |
| }, | |
| "source": [ | |
| "# let's visualize the cost function in given window [-5, 5]\n", | |
| "t = np.linspace(-5, 5)" | |
| ], | |
| "execution_count": null, | |
| "outputs": [] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "metadata": { | |
| "id": "tdORPf3baJjw", | |
| "outputId": "9c4ec52c-9f01-4385-9662-20b45d019c82", | |
| "colab": { | |
| "base_uri": "https://localhost:8080/", | |
| "height": 265 | |
| } | |
| }, | |
| "source": [ | |
| "plt.plot(t, f(t))\n", | |
| "plt.grid(True)" | |
| ], | |
| "execution_count": null, | |
| "outputs": [ | |
| { | |
| "output_type": "display_data", | |
| "data": { | |
| "image/png": "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\n", | |
| "text/plain": [ | |
| "<Figure size 432x288 with 1 Axes>" | |
| ] | |
| }, | |
| "metadata": { | |
| "tags": [], | |
| "needs_background": "light" | |
| } | |
| } | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": { | |
| "id": "uq3oSArhmVGv" | |
| }, | |
| "source": [ | |
| "**Local Minima 1**" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "metadata": { | |
| "id": "PoromW_tcIEv", | |
| "outputId": "3b4ed971-9a29-4c03-8b8c-e3902c81c5e7", | |
| "colab": { | |
| "base_uri": "https://localhost:8080/", | |
| "height": 1000 | |
| } | |
| }, | |
| "source": [ | |
| "x = -5.\n", | |
| "alpha = 0.05\n", | |
| "x_cache, dfx_cache = [],[]\n", | |
| "ax = plt.axes()\n", | |
| "t = np.linspace(-5, 5)\n", | |
| "ax.plot(t, f(t))\n", | |
| "ax.grid(True)\n", | |
| "for i in range(50):\n", | |
| " slope = df(x)\n", | |
| " x = param_update(x , alpha, slope)\n", | |
| " x_cache.append(x)\n", | |
| " dfx_cache.append(slope)\n", | |
| " # print(x, slope)\n", | |
| " if slope<0:\n", | |
| " print('Go to Right|| -->> || ')\n", | |
| " else:\n", | |
| " print('Go to Left || <<-- ||')\n", | |
| " draw_update(ax, t, x)\n", | |
| "print(f'Best Value: x={x}')\n", | |
| "print(f'Best Funtion Value: f(x)={f(x)}')" | |
| ], | |
| "execution_count": null, | |
| "outputs": [ | |
| { | |
| "output_type": "stream", | |
| "text": [ | |
| "Go to Right|| -->> || \n", | |
| "Go to Left || <<-- ||\n", | |
| "Go to Left || <<-- ||\n", | |
| "Go to Right|| -->> || \n", | |
| "Go to Left || <<-- ||\n", | |
| "Go to Right|| -->> || \n", | |
| "Go to Left || <<-- ||\n", | |
| "Go to Right|| -->> || \n", | |
| "Go to Left || <<-- ||\n", | |
| "Go to Right|| -->> || \n", | |
| "Go to Left || <<-- ||\n", | |
| "Go to Right|| -->> || \n", | |
| "Go to Left || <<-- ||\n", | |
| "Go to Right|| -->> || \n", | |
| "Go to Left || <<-- ||\n", | |
| "Go to Right|| -->> || \n", | |
| "Go to Left || <<-- ||\n", | |
| "Go to Right|| -->> || \n", | |
| "Go to Left || <<-- ||\n", | |
| "Go to Right|| -->> || \n", | |
| "Go to Left || <<-- ||\n", | |
| "Go to Right|| -->> || \n", | |
| "Go to Left || <<-- ||\n", | |
| "Go to Right|| -->> || \n", | |
| "Go to Left || <<-- ||\n", | |
| "Go to Right|| -->> || \n", | |
| "Go to Left || <<-- ||\n", | |
| "Go to Right|| -->> || \n", | |
| "Go to Left || <<-- ||\n", | |
| "Go to Right|| -->> || \n", | |
| "Go to Left || <<-- ||\n", | |
| "Go to Right|| -->> || \n", | |
| "Go to Left || <<-- ||\n", | |
| "Go to Right|| -->> || \n", | |
| "Go to Left || <<-- ||\n", | |
| "Go to Right|| -->> || \n", | |
| "Go to Left || <<-- ||\n", | |
| "Go to Right|| -->> || \n", | |
| "Go to Left || <<-- ||\n", | |
| "Go to Right|| -->> || \n", | |
| "Go to Left || <<-- ||\n", | |
| "Go to Right|| -->> || \n", | |
| "Go to Left || <<-- ||\n", | |
| "Go to Right|| -->> || \n", | |
| "Go to Left || <<-- ||\n", | |
| "Go to Right|| -->> || \n", | |
| "Go to Left || <<-- ||\n", | |
| "Go to Right|| -->> || \n", | |
| "Go to Left || <<-- ||\n", | |
| "Go to Right|| -->> || \n", | |
| "Best Value: x=-3.643597164971067\n", | |
| "Best Funtion Value: f(x)=-23.27565842351116\n" | |
| ], | |
| "name": "stdout" | |
| }, | |
| { | |
| "output_type": "display_data", | |
| "data": { | |
| "image/png": "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\n", | |
| "text/plain": [ | |
| "<Figure size 432x288 with 1 Axes>" | |
| ] | |
| }, | |
| "metadata": { | |
| "tags": [], | |
| "needs_background": "light" | |
| } | |
| } | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": { | |
| "id": "qf8PFmlhPFIa" | |
| }, | |
| "source": [ | |
| "" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "metadata": { | |
| "id": "08omIOLdPEaM" | |
| }, | |
| "source": [ | |
| "" | |
| ], | |
| "execution_count": null, | |
| "outputs": [] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "metadata": { | |
| "id": "OOnxtRIdPEXq" | |
| }, | |
| "source": [ | |
| "" | |
| ], | |
| "execution_count": null, | |
| "outputs": [] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": { | |
| "id": "6SJd_c9rmQvK" | |
| }, | |
| "source": [ | |
| "Local Minima 2" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "metadata": { | |
| "id": "kAFKFw_viwIb", | |
| "outputId": "3aa92db5-0b55-4747-bce5-84a6a8bdb7e5", | |
| "colab": { | |
| "base_uri": "https://localhost:8080/", | |
| "height": 1000 | |
| } | |
| }, | |
| "source": [ | |
| "\n", | |
| "x = -1.\n", | |
| "alpha = 0.05\n", | |
| "x_cache, dfx_cache = [],[]\n", | |
| "ax = plt.axes()\n", | |
| "t = np.linspace(-5, 5)\n", | |
| "ax.plot(t, f(t))\n", | |
| "ax.grid(True)\n", | |
| "for i in range(50):\n", | |
| " slope = df(x)\n", | |
| " x = param_update(x , alpha, slope)\n", | |
| " x_cache.append(x)\n", | |
| " dfx_cache.append(slope)\n", | |
| " # print(x, slope)\n", | |
| " if slope<0:\n", | |
| " print('Go to Right|| -->> || ')\n", | |
| " else:\n", | |
| " print('Go to Left || <<-- ||')\n", | |
| " draw_update(ax, t, x)\n", | |
| "print(f'Best Value: x={x}')\n", | |
| "print(f'Best Funtion Value: f(x)={f(x)}')" | |
| ], | |
| "execution_count": null, | |
| "outputs": [ | |
| { | |
| "output_type": "stream", | |
| "text": [ | |
| "Go to Right|| -->> || \n", | |
| "Go to Right|| -->> || \n", | |
| "Go to Right|| -->> || \n", | |
| "Go to Right|| -->> || \n", | |
| "Go to Right|| -->> || \n", | |
| "Go to Right|| -->> || \n", | |
| "Go to Right|| -->> || \n", | |
| "Go to Right|| -->> || \n", | |
| "Go to Right|| -->> || \n", | |
| "Go to Right|| -->> || \n", | |
| "Go to Right|| -->> || \n", | |
| "Go to Right|| -->> || \n", | |
| "Go to Right|| -->> || \n", | |
| "Go to Right|| -->> || \n", | |
| "Go to Right|| -->> || \n", | |
| "Go to Right|| -->> || \n", | |
| "Go to Right|| -->> || \n", | |
| "Go to Right|| -->> || \n", | |
| "Go to Right|| -->> || \n", | |
| "Go to Right|| -->> || \n", | |
| "Go to Right|| -->> || \n", | |
| "Go to Right|| -->> || \n", | |
| "Go to Right|| -->> || \n", | |
| "Go to Right|| -->> || \n", | |
| "Go to Right|| -->> || \n", | |
| "Go to Right|| -->> || \n", | |
| "Go to Right|| -->> || \n", | |
| "Go to Right|| -->> || \n", | |
| "Go to Right|| -->> || \n", | |
| "Go to Right|| -->> || \n", | |
| "Go to Right|| -->> || \n", | |
| "Go to Right|| -->> || \n", | |
| "Go to Right|| -->> || \n", | |
| "Go to Right|| -->> || \n", | |
| "Go to Right|| -->> || \n", | |
| "Go to Right|| -->> || \n", | |
| "Go to Right|| -->> || \n", | |
| "Go to Right|| -->> || \n", | |
| "Go to Right|| -->> || \n", | |
| "Go to Right|| -->> || \n", | |
| "Go to Right|| -->> || \n", | |
| "Go to Right|| -->> || \n", | |
| "Go to Right|| -->> || \n", | |
| "Go to Right|| -->> || \n", | |
| "Go to Right|| -->> || \n", | |
| "Go to Right|| -->> || \n", | |
| "Go to Right|| -->> || \n", | |
| "Go to Right|| -->> || \n", | |
| "Go to Right|| -->> || \n", | |
| "Go to Right|| -->> || \n", | |
| "Best Value: x=-6.66338443154018e-05\n", | |
| "Best Funtion Value: f(x)=8.880138396784195e-09\n" | |
| ], | |
| "name": "stdout" | |
| }, | |
| { | |
| "output_type": "display_data", | |
| "data": { | |
| "image/png": "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\n", | |
| "text/plain": [ | |
| "<Figure size 432x288 with 1 Axes>" | |
| ] | |
| }, | |
| "metadata": { | |
| "tags": [], | |
| "needs_background": "light" | |
| } | |
| } | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": { | |
| "id": "AnQ8mzMOnDRv" | |
| }, | |
| "source": [ | |
| "Local Minima 3" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "metadata": { | |
| "id": "9mXsahtOmG3N", | |
| "outputId": "62a471ee-6f48-489b-966d-cd99d3ee8296", | |
| "colab": { | |
| "base_uri": "https://localhost:8080/", | |
| "height": 1000 | |
| } | |
| }, | |
| "source": [ | |
| "\n", | |
| "x = 2.\n", | |
| "alpha = 0.05\n", | |
| "x_cache, dfx_cache = [],[]\n", | |
| "ax = plt.axes()\n", | |
| "t = np.linspace(-5, 5)\n", | |
| "ax.plot(t, f(t))\n", | |
| "ax.grid(True)\n", | |
| "for i in range(50):\n", | |
| " slope = df(x)\n", | |
| " x = param_update(x , alpha, slope)\n", | |
| " x_cache.append(x)\n", | |
| " dfx_cache.append(slope)\n", | |
| " # print(x, slope)\n", | |
| " if slope<0:\n", | |
| " print('Go to Right|| -->> || ')\n", | |
| " else:\n", | |
| " print('Go to Left || <<-- ||')\n", | |
| " draw_update(ax, t, x)\n", | |
| "print(f'Best Value: x={x}')\n", | |
| "print(f'Best Funtion Value: f(x)={f(x)}')" | |
| ], | |
| "execution_count": null, | |
| "outputs": [ | |
| { | |
| "output_type": "stream", | |
| "text": [ | |
| "Go to Right|| -->> || \n", | |
| "Go to Right|| -->> || \n", | |
| "Go to Right|| -->> || \n", | |
| "Go to Left || <<-- ||\n", | |
| "Go to Right|| -->> || \n", | |
| "Go to Left || <<-- ||\n", | |
| "Go to Right|| -->> || \n", | |
| "Go to Left || <<-- ||\n", | |
| "Go to Right|| -->> || \n", | |
| "Go to Left || <<-- ||\n", | |
| "Go to Right|| -->> || \n", | |
| "Go to Left || <<-- ||\n", | |
| "Go to Right|| -->> || \n", | |
| "Go to Left || <<-- ||\n", | |
| "Go to Right|| -->> || \n", | |
| "Go to Left || <<-- ||\n", | |
| "Go to Right|| -->> || \n", | |
| "Go to Left || <<-- ||\n", | |
| "Go to Right|| -->> || \n", | |
| "Go to Left || <<-- ||\n", | |
| "Go to Right|| -->> || \n", | |
| "Go to Left || <<-- ||\n", | |
| "Go to Right|| -->> || \n", | |
| "Go to Left || <<-- ||\n", | |
| "Go to Right|| -->> || \n", | |
| "Go to Left || <<-- ||\n", | |
| "Go to Right|| -->> || \n", | |
| "Go to Left || <<-- ||\n", | |
| "Go to Right|| -->> || \n", | |
| "Go to Left || <<-- ||\n", | |
| "Go to Right|| -->> || \n", | |
| "Go to Left || <<-- ||\n", | |
| "Go to Right|| -->> || \n", | |
| "Go to Left || <<-- ||\n", | |
| "Go to Right|| -->> || \n", | |
| "Go to Left || <<-- ||\n", | |
| "Go to Right|| -->> || \n", | |
| "Go to Left || <<-- ||\n", | |
| "Go to Right|| -->> || \n", | |
| "Go to Left || <<-- ||\n", | |
| "Go to Right|| -->> || \n", | |
| "Go to Left || <<-- ||\n", | |
| "Go to Right|| -->> || \n", | |
| "Go to Left || <<-- ||\n", | |
| "Go to Right|| -->> || \n", | |
| "Go to Left || <<-- ||\n", | |
| "Go to Right|| -->> || \n", | |
| "Go to Left || <<-- ||\n", | |
| "Go to Right|| -->> || \n", | |
| "Go to Left || <<-- ||\n", | |
| "Best Value: x=3.6435971637604454\n", | |
| "Best Funtion Value: f(x)=-23.275658423511157\n" | |
| ], | |
| "name": "stdout" | |
| }, | |
| { | |
| "output_type": "display_data", | |
| "data": { | |
| "image/png": "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\n", | |
| "text/plain": [ | |
| "<Figure size 432x288 with 1 Axes>" | |
| ] | |
| }, | |
| "metadata": { | |
| "tags": [], | |
| "needs_background": "light" | |
| } | |
| } | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": { | |
| "id": "zMPLt0tGquMo" | |
| }, | |
| "source": [ | |
| "**Final Observations:** \n", | |
| "\n", | |
| "1. Local Minima is not always global minima\n", | |
| "\n", | |
| "2. It depends on the initial startinig poing of the parameter\n", | |
| "\n", | |
| "3. Gradient descent will help you to navigate in the right direction to find the optimal value for the cost function\n", | |
| "\n", | |
| "**Exercises:** \n", | |
| "\n", | |
| "1. Try Changing the learning rate (alpha), such as 0.001 and 1. Observe the behaviour of your gradient descent funtion.\n", | |
| "\n", | |
| "2. Use random to generate initial x value. \n", | |
| "\n", | |
| "3. Try to solve a two dimentional optimization f(x1, x2)" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "metadata": { | |
| "id": "jDZMSqhEN-lT" | |
| }, | |
| "source": [ | |
| "" | |
| ], | |
| "execution_count": null, | |
| "outputs": [] | |
| } | |
| ] | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment