diff --git a/optimization_algorithms/Optimization methods.ipynb b/optimization_algorithms/Optimization methods.ipynb new file mode 100644 index 0000000..1c5f096 --- /dev/null +++ b/optimization_algorithms/Optimization methods.ipynb @@ -0,0 +1,1645 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Optimization Methods\n", + "\n", + "Until now, you've always used Gradient Descent to update the parameters and minimize the cost. In this notebook, you will learn more advanced optimization methods that can speed up learning and perhaps even get you to a better final value for the cost function. Having a good optimization algorithm can be the difference between waiting days vs. just a few hours to get a good result. \n", + "\n", + "Gradient descent goes \"downhill\" on a cost function $J$. Think of it as trying to do this: \n", + "\n", + "
**Figure 1** : **Minimizing the cost is like finding the lowest point in a hilly landscape**
At each step of the training, you update your parameters following a certain direction to try to get to the lowest possible point.
\n", + "\n", + "**Notations**: As usual, $\\frac{\\partial J}{\\partial a } = $ `da` for any variable `a`.\n", + "\n", + "To get started, run the following code to import the libraries you will need." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "import scipy.io\n", + "import math\n", + "import sklearn\n", + "import sklearn.datasets\n", + "\n", + "from opt_utils import load_params_and_grads, initialize_parameters, forward_propagation, backward_propagation\n", + "from opt_utils import compute_cost, predict, predict_dec, plot_decision_boundary, load_dataset\n", + "from testCases import *\n", + "\n", + "%matplotlib inline\n", + "plt.rcParams['figure.figsize'] = (7.0, 4.0) # set default size of plots\n", + "plt.rcParams['image.interpolation'] = 'nearest'\n", + "plt.rcParams['image.cmap'] = 'gray'" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 1 - Gradient Descent\n", + "\n", + "A simple optimization method in machine learning is gradient descent (GD). When you take gradient steps with respect to all $m$ examples on each step, it is also called Batch Gradient Descent. \n", + "\n", + "**Warm-up exercise**: Implement the gradient descent update rule. The gradient descent rule is, for $l = 1, ..., L$: \n", + "$$ W^{[l]} = W^{[l]} - \\alpha \\text{ } dW^{[l]} \\tag{1}$$\n", + "$$ b^{[l]} = b^{[l]} - \\alpha \\text{ } db^{[l]} \\tag{2}$$\n", + "\n", + "where L is the number of layers and $\\alpha$ is the learning rate. All parameters should be stored in the `parameters` dictionary. Note that the iterator `l` starts at 0 in the `for` loop while the first parameters are $W^{[1]}$ and $b^{[1]}$. You need to shift `l` to `l+1` when coding." + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "# GRADED FUNCTION: update_parameters_with_gd\n", + "\n", + "def update_parameters_with_gd(parameters, grads, learning_rate):\n", + " \"\"\"\n", + " Update parameters using one step of gradient descent\n", + " \n", + " Arguments:\n", + " parameters -- python dictionary containing your parameters to be updated:\n", + " parameters['W' + str(l)] = Wl\n", + " parameters['b' + str(l)] = bl\n", + " grads -- python dictionary containing your gradients to update each parameters:\n", + " grads['dW' + str(l)] = dWl\n", + " grads['db' + str(l)] = dbl\n", + " learning_rate -- the learning rate, scalar.\n", + " \n", + " Returns:\n", + " parameters -- python dictionary containing your updated parameters \n", + " \"\"\"\n", + "\n", + " L = len(parameters) // 2 # number of layers in the neural networks\n", + "\n", + " # Update rule for each parameter\n", + " for l in range(L):\n", + " ### START CODE HERE ### (approx. 2 lines)\n", + " parameters[\"W\" + str(l+1)] = parameters[\"W\" + str(l+1)] - learning_rate * grads['dW' + str(l+1)]\n", + " parameters[\"b\" + str(l+1)] = parameters['b' + str(l+1)] - learning_rate * grads['db' + str(l+1)]\n", + " ### END CODE HERE ###\n", + " \n", + " return parameters" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "W1 = [[ 1.63535156 -0.62320365 -0.53718766]\n", + " [-1.07799357 0.85639907 -2.29470142]]\n", + "b1 = [[ 1.74604067]\n", + " [-0.75184921]]\n", + "W2 = [[ 0.32171798 -0.25467393 1.46902454]\n", + " [-2.05617317 -0.31554548 -0.3756023 ]\n", + " [ 1.1404819 -1.09976462 -0.1612551 ]]\n", + "b2 = [[-0.88020257]\n", + " [ 0.02561572]\n", + " [ 0.57539477]]\n" + ] + } + ], + "source": [ + "parameters, grads, learning_rate = update_parameters_with_gd_test_case()\n", + "\n", + "parameters = update_parameters_with_gd(parameters, grads, learning_rate)\n", + "print(\"W1 = \" + str(parameters[\"W1\"]))\n", + "print(\"b1 = \" + str(parameters[\"b1\"]))\n", + "print(\"W2 = \" + str(parameters[\"W2\"]))\n", + "print(\"b2 = \" + str(parameters[\"b2\"]))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Expected Output**:\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
**W1** [[ 1.63535156 -0.62320365 -0.53718766]\n", + " [-1.07799357 0.85639907 -2.29470142]]
**b1** [[ 1.74604067]\n", + " [-0.75184921]]
**W2** [[ 0.32171798 -0.25467393 1.46902454]\n", + " [-2.05617317 -0.31554548 -0.3756023 ]\n", + " [ 1.1404819 -1.09976462 -0.1612551 ]]
**b2** [[-0.88020257]\n", + " [ 0.02561572]\n", + " [ 0.57539477]]
\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "A variant of this is Stochastic Gradient Descent (SGD), which is equivalent to mini-batch gradient descent where each mini-batch has just 1 example. The update rule that you have just implemented does not change. What changes is that you would be computing gradients on just one training example at a time, rather than on the whole training set. The code examples below illustrate the difference between stochastic gradient descent and (batch) gradient descent. \n", + "\n", + "- **(Batch) Gradient Descent**:\n", + "\n", + "``` python\n", + "X = data_input\n", + "Y = labels\n", + "parameters = initialize_parameters(layers_dims)\n", + "for i in range(0, num_iterations):\n", + " # Forward propagation\n", + " a, caches = forward_propagation(X, parameters)\n", + " # Compute cost.\n", + " cost = compute_cost(a, Y)\n", + " # Backward propagation.\n", + " grads = backward_propagation(a, caches, parameters)\n", + " # Update parameters.\n", + " parameters = update_parameters(parameters, grads)\n", + " \n", + "```\n", + "\n", + "- **Stochastic Gradient Descent**:\n", + "\n", + "```python\n", + "X = data_input\n", + "Y = labels\n", + "parameters = initialize_parameters(layers_dims)\n", + "for i in range(0, num_iterations):\n", + " for j in range(0, m):\n", + " # Forward propagation\n", + " a, caches = forward_propagation(X[:,j], parameters)\n", + " # Compute cost\n", + " cost = compute_cost(a, Y[:,j])\n", + " # Backward propagation\n", + " grads = backward_propagation(a, caches, parameters)\n", + " # Update parameters.\n", + " parameters = update_parameters(parameters, grads)\n", + "```\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In Stochastic Gradient Descent, you use only 1 training example before updating the gradients. When the training set is large, SGD can be faster. But the parameters will \"oscillate\" toward the minimum rather than converge smoothly. Here is an illustration of this: \n", + "\n", + "\n", + "
**Figure 1** : **SGD vs GD**
\"+\" denotes a minimum of the cost. SGD leads to many oscillations to reach convergence. But each step is a lot faster to compute for SGD than for GD, as it uses only one training example (vs. the whole batch for GD).
\n", + "\n", + "**Note** also that implementing SGD requires 3 for-loops in total:\n", + "1. Over the number of iterations\n", + "2. Over the $m$ training examples\n", + "3. Over the layers (to update all parameters, from $(W^{[1]},b^{[1]})$ to $(W^{[L]},b^{[L]})$)\n", + "\n", + "In practice, you'll often get faster results if you do not use neither the whole training set, nor only one training example, to perform each update. Mini-batch gradient descent uses an intermediate number of examples for each step. With mini-batch gradient descent, you loop over the mini-batches instead of looping over individual training examples.\n", + "\n", + "\n", + "
**Figure 2** : **SGD vs Mini-Batch GD**
\"+\" denotes a minimum of the cost. Using mini-batches in your optimization algorithm often leads to faster optimization.
\n", + "\n", + "\n", + "**What you should remember**:\n", + "- The difference between gradient descent, mini-batch gradient descent and stochastic gradient descent is the number of examples you use to perform one update step.\n", + "- You have to tune a learning rate hyperparameter $\\alpha$.\n", + "- With a well-turned mini-batch size, usually it outperforms either gradient descent or stochastic gradient descent (particularly when the training set is large)." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 2 - Mini-Batch Gradient descent\n", + "\n", + "Let's learn how to build mini-batches from the training set (X, Y).\n", + "\n", + "There are two steps:\n", + "- **Shuffle**: Create a shuffled version of the training set (X, Y) as shown below. Each column of X and Y represents a training example. Note that the random shuffling is done synchronously between X and Y. Such that after the shuffling the $i^{th}$ column of X is the example corresponding to the $i^{th}$ label in Y. The shuffling step ensures that examples will be split randomly into different mini-batches. \n", + "\n", + "\n", + "\n", + "- **Partition**: Partition the shuffled (X, Y) into mini-batches of size `mini_batch_size` (here 64). Note that the number of training examples is not always divisible by `mini_batch_size`. The last mini batch might be smaller, but you don't need to worry about this. When the final mini-batch is smaller than the full `mini_batch_size`, it will look like this: \n", + "\n", + "\n", + "\n", + "**Exercise**: Implement `random_mini_batches`. We coded the shuffling part for you. To help you with the partitioning step, we give you the following code that selects the indexes for the $1^{st}$ and $2^{nd}$ mini-batches:\n", + "```python\n", + "first_mini_batch_X = shuffled_X[:, 0 : mini_batch_size]\n", + "second_mini_batch_X = shuffled_X[:, mini_batch_size : 2 * mini_batch_size]\n", + "...\n", + "```\n", + "\n", + "Note that the last mini-batch might end up smaller than `mini_batch_size=64`. Let $\\lfloor s \\rfloor$ represents $s$ rounded down to the nearest integer (this is `math.floor(s)` in Python). If the total number of examples is not a multiple of `mini_batch_size=64` then there will be $\\lfloor \\frac{m}{mini\\_batch\\_size}\\rfloor$ mini-batches with a full 64 examples, and the number of examples in the final mini-batch will be ($m-mini_\\_batch_\\_size \\times \\lfloor \\frac{m}{mini\\_batch\\_size}\\rfloor$). " + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [], + "source": [ + "# GRADED FUNCTION: random_mini_batches\n", + "\n", + "def random_mini_batches(X, Y, mini_batch_size = 64, seed = 0):\n", + " \"\"\"\n", + " Creates a list of random minibatches from (X, Y)\n", + " \n", + " Arguments:\n", + " X -- input data, of shape (input size, number of examples)\n", + " Y -- true \"label\" vector (1 for blue dot / 0 for red dot), of shape (1, number of examples)\n", + " mini_batch_size -- size of the mini-batches, integer\n", + " \n", + " Returns:\n", + " mini_batches -- list of synchronous (mini_batch_X, mini_batch_Y)\n", + " \"\"\"\n", + " \n", + " np.random.seed(seed) # To make your \"random\" minibatches the same as ours\n", + " m = X.shape[1] # number of training examples\n", + " mini_batches = []\n", + " \n", + " # Step 1: Shuffle (X, Y)\n", + " permutation = list(np.random.permutation(m))\n", + " shuffled_X = X[:, permutation]\n", + " shuffled_Y = Y[:, permutation].reshape((1,m))\n", + "\n", + " # Step 2: Partition (shuffled_X, shuffled_Y). Minus the end case.\n", + " num_complete_minibatches = math.floor(m/mini_batch_size) # number of mini batches of size mini_batch_size in your partitionning\n", + " for k in range(0, num_complete_minibatches):\n", + " ### START CODE HERE ### (approx. 2 lines)\n", + " mini_batch_X = shuffled_X[:, 0: mini_batch_size]\n", + " mini_batch_Y = shuffled_Y[:, 0: mini_batch_size] \n", + " ### END CODE HERE ###\n", + " mini_batch = (mini_batch_X, mini_batch_Y)\n", + " mini_batches.append(mini_batch)\n", + " # Handling the end case (last mini-batch < mini_batch_size)\n", + " if m % mini_batch_size != 0:\n", + " ### START CODE HERE ### (approx. 2 lines)\n", + " mini_batch_X = shuffled_X[:, num_complete_minibatches*mini_batch_size:]\n", + " mini_batch_Y = shuffled_Y[:, num_complete_minibatches*mini_batch_size:]\n", + " ### END CODE HERE ###\n", + " mini_batch = (mini_batch_X, mini_batch_Y)\n", + " mini_batches.append(mini_batch)\n", + " \n", + " return mini_batches" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "shape of the 1st mini_batch_X: (12288, 64)\n", + "shape of the 2nd mini_batch_X: (12288, 64)\n", + "shape of the 3rd mini_batch_X: (12288, 20)\n", + "shape of the 1st mini_batch_Y: (1, 64)\n", + "shape of the 2nd mini_batch_Y: (1, 64)\n", + "shape of the 3rd mini_batch_Y: (1, 20)\n", + "mini batch sanity check: [ 0.90085595 -0.7612069 0.2344157 ]\n" + ] + } + ], + "source": [ + "X_assess, Y_assess, mini_batch_size = random_mini_batches_test_case()\n", + "mini_batches = random_mini_batches(X_assess, Y_assess, mini_batch_size)\n", + "\n", + "print (\"shape of the 1st mini_batch_X: \" + str(mini_batches[0][0].shape))\n", + "print (\"shape of the 2nd mini_batch_X: \" + str(mini_batches[1][0].shape))\n", + "print (\"shape of the 3rd mini_batch_X: \" + str(mini_batches[2][0].shape))\n", + "print (\"shape of the 1st mini_batch_Y: \" + str(mini_batches[0][1].shape))\n", + "print (\"shape of the 2nd mini_batch_Y: \" + str(mini_batches[1][1].shape)) \n", + "print (\"shape of the 3rd mini_batch_Y: \" + str(mini_batches[2][1].shape))\n", + "print (\"mini batch sanity check: \" + str(mini_batches[0][0][0][0:3]))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Expected Output**:\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
**shape of the 1st mini_batch_X** (12288, 64)
**shape of the 2nd mini_batch_X** (12288, 64)
**shape of the 3rd mini_batch_X** (12288, 20)
**shape of the 1st mini_batch_Y** (1, 64)
**shape of the 2nd mini_batch_Y** (1, 64)
**shape of the 3rd mini_batch_Y** (1, 20)
**mini batch sanity check** [ 0.90085595 -0.7612069 0.2344157 ]
" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "**What you should remember**:\n", + "- Shuffling and Partitioning are the two steps required to build mini-batches\n", + "- Powers of two are often chosen to be the mini-batch size, e.g., 16, 32, 64, 128." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 3 - Momentum\n", + "\n", + "Because mini-batch gradient descent makes a parameter update after seeing just a subset of examples, the direction of the update has some variance, and so the path taken by mini-batch gradient descent will \"oscillate\" toward convergence. Using momentum can reduce these oscillations. \n", + "\n", + "Momentum takes into account the past gradients to smooth out the update. We will store the 'direction' of the previous gradients in the variable $v$. Formally, this will be the exponentially weighted average of the gradient on previous steps. You can also think of $v$ as the \"velocity\" of a ball rolling downhill, building up speed (and momentum) according to the direction of the gradient/slope of the hill. \n", + "\n", + "\n", + "
**Figure 3**: The red arrows shows the direction taken by one step of mini-batch gradient descent with momentum. The blue points show the direction of the gradient (with respect to the current mini-batch) on each step. Rather than just following the gradient, we let the gradient influence $v$ and then take a step in the direction of $v$.
\n", + "\n", + "\n", + "**Exercise**: Initialize the velocity. The velocity, $v$, is a python dictionary that needs to be initialized with arrays of zeros. Its keys are the same as those in the `grads` dictionary, that is:\n", + "for $l =1,...,L$:\n", + "```python\n", + "v[\"dW\" + str(l+1)] = ... #(numpy array of zeros with the same shape as parameters[\"W\" + str(l+1)])\n", + "v[\"db\" + str(l+1)] = ... #(numpy array of zeros with the same shape as parameters[\"b\" + str(l+1)])\n", + "```\n", + "**Note** that the iterator l starts at 0 in the for loop while the first parameters are v[\"dW1\"] and v[\"db1\"] (that's a \"one\" on the superscript). This is why we are shifting l to l+1 in the `for` loop." + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [], + "source": [ + "# GRADED FUNCTION: initialize_velocity\n", + "\n", + "def initialize_velocity(parameters):\n", + " \"\"\"\n", + " Initializes the velocity as a python dictionary with:\n", + " - keys: \"dW1\", \"db1\", ..., \"dWL\", \"dbL\" \n", + " - values: numpy arrays of zeros of the same shape as the corresponding gradients/parameters.\n", + " Arguments:\n", + " parameters -- python dictionary containing your parameters.\n", + " parameters['W' + str(l)] = Wl\n", + " parameters['b' + str(l)] = bl\n", + " \n", + " Returns:\n", + " v -- python dictionary containing the current velocity.\n", + " v['dW' + str(l)] = velocity of dWl\n", + " v['db' + str(l)] = velocity of dbl\n", + " \"\"\"\n", + " \n", + " L = len(parameters) // 2 # number of layers in the neural networks\n", + " v = {}\n", + " \n", + " # Initialize velocity\n", + " for l in range(L):\n", + " ### START CODE HERE ### (approx. 2 lines)\n", + " v[\"dW\" + str(l+1)] = np.zeros((parameters[\"W\" + str(l+1)]).shape)\n", + " v[\"db\" + str(l+1)] = np.zeros((parameters[\"b\" + str(l+1)]).shape)\n", + " ### END CODE HERE ###\n", + " \n", + " return v" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "v[\"dW1\"] = [[0. 0. 0.]\n", + " [0. 0. 0.]]\n", + "v[\"db1\"] = [[0.]\n", + " [0.]]\n", + "v[\"dW2\"] = [[0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]]\n", + "v[\"db2\"] = [[0.]\n", + " [0.]\n", + " [0.]]\n" + ] + } + ], + "source": [ + "parameters = initialize_velocity_test_case()\n", + "\n", + "v = initialize_velocity(parameters)\n", + "print(\"v[\\\"dW1\\\"] = \" + str(v[\"dW1\"]))\n", + "print(\"v[\\\"db1\\\"] = \" + str(v[\"db1\"]))\n", + "print(\"v[\\\"dW2\\\"] = \" + str(v[\"dW2\"]))\n", + "print(\"v[\\\"db2\\\"] = \" + str(v[\"db2\"]))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Expected Output**:\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
**v[\"dW1\"]** [[ 0. 0. 0.]\n", + " [ 0. 0. 0.]]
**v[\"db1\"]** [[ 0.]\n", + " [ 0.]]
**v[\"dW2\"]** [[ 0. 0. 0.]\n", + " [ 0. 0. 0.]\n", + " [ 0. 0. 0.]]
**v[\"db2\"]** [[ 0.]\n", + " [ 0.]\n", + " [ 0.]]
\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Exercise**: Now, implement the parameters update with momentum. The momentum update rule is, for $l = 1, ..., L$: \n", + "\n", + "$$ \\begin{cases}\n", + "v_{dW^{[l]}} = \\beta v_{dW^{[l]}} + (1 - \\beta) dW^{[l]} \\\\\n", + "W^{[l]} = W^{[l]} - \\alpha v_{dW^{[l]}}\n", + "\\end{cases}\\tag{3}$$\n", + "\n", + "$$\\begin{cases}\n", + "v_{db^{[l]}} = \\beta v_{db^{[l]}} + (1 - \\beta) db^{[l]} \\\\\n", + "b^{[l]} = b^{[l]} - \\alpha v_{db^{[l]}} \n", + "\\end{cases}\\tag{4}$$\n", + "\n", + "where L is the number of layers, $\\beta$ is the momentum and $\\alpha$ is the learning rate. All parameters should be stored in the `parameters` dictionary. Note that the iterator `l` starts at 0 in the `for` loop while the first parameters are $W^{[1]}$ and $b^{[1]}$ (that's a \"one\" on the superscript). So you will need to shift `l` to `l+1` when coding." + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [], + "source": [ + "# GRADED FUNCTION: update_parameters_with_momentum\n", + "\n", + "def update_parameters_with_momentum(parameters, grads, v, beta, learning_rate):\n", + " \"\"\"\n", + " Update parameters using Momentum\n", + " \n", + " Arguments:\n", + " parameters -- python dictionary containing your parameters:\n", + " parameters['W' + str(l)] = Wl\n", + " parameters['b' + str(l)] = bl\n", + " grads -- python dictionary containing your gradients for each parameters:\n", + " grads['dW' + str(l)] = dWl\n", + " grads['db' + str(l)] = dbl\n", + " v -- python dictionary containing the current velocity:\n", + " v['dW' + str(l)] = ...\n", + " v['db' + str(l)] = ...\n", + " beta -- the momentum hyperparameter, scalar\n", + " learning_rate -- the learning rate, scalar\n", + " \n", + " Returns:\n", + " parameters -- python dictionary containing your updated parameters \n", + " v -- python dictionary containing your updated velocities\n", + " \"\"\"\n", + "\n", + " L = len(parameters) // 2 # number of layers in the neural networks\n", + " \n", + " # Momentum update for each parameter\n", + " for l in range(L):\n", + " \n", + " ### START CODE HERE ### (approx. 4 lines)\n", + " # compute velocities\n", + " v[\"dW\" + str(l+1)] = beta*v[\"dW\" + str(l+1)] +(1-beta)*grads['dW' + str(l+1)]\n", + " v[\"db\" + str(l+1)] = beta*v[\"db\" + str(l+1)] +(1-beta)*grads['db' + str(l+1)]\n", + " # update parameters\n", + " parameters[\"W\" + str(l+1)] = parameters[\"W\" + str(l+1)] - learning_rate*v[\"dW\" + str(l+1)]\n", + " parameters[\"b\" + str(l+1)] = parameters[\"b\" + str(l+1)] - learning_rate*v[\"db\" + str(l+1)]\n", + " ### END CODE HERE ###\n", + " \n", + " return parameters, v" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "W1 = [[ 1.62544598 -0.61290114 -0.52907334]\n", + " [-1.07347112 0.86450677 -2.30085497]]\n", + "b1 = [[ 1.74493465]\n", + " [-0.76027113]]\n", + "W2 = [[ 0.31930698 -0.24990073 1.4627996 ]\n", + " [-2.05974396 -0.32173003 -0.38320915]\n", + " [ 1.13444069 -1.0998786 -0.1713109 ]]\n", + "b2 = [[-0.87809283]\n", + " [ 0.04055394]\n", + " [ 0.58207317]]\n", + "v[\"dW1\"] = [[-0.11006192 0.11447237 0.09015907]\n", + " [ 0.05024943 0.09008559 -0.06837279]]\n", + "v[\"db1\"] = [[-0.01228902]\n", + " [-0.09357694]]\n", + "v[\"dW2\"] = [[-0.02678881 0.05303555 -0.06916608]\n", + " [-0.03967535 -0.06871727 -0.08452056]\n", + " [-0.06712461 -0.00126646 -0.11173103]]\n", + "v[\"db2\"] = [[0.02344157]\n", + " [0.16598022]\n", + " [0.07420442]]\n" + ] + } + ], + "source": [ + "parameters, grads, v = update_parameters_with_momentum_test_case()\n", + "\n", + "parameters, v = update_parameters_with_momentum(parameters, grads, v, beta = 0.9, learning_rate = 0.01)\n", + "print(\"W1 = \" + str(parameters[\"W1\"]))\n", + "print(\"b1 = \" + str(parameters[\"b1\"]))\n", + "print(\"W2 = \" + str(parameters[\"W2\"]))\n", + "print(\"b2 = \" + str(parameters[\"b2\"]))\n", + "print(\"v[\\\"dW1\\\"] = \" + str(v[\"dW1\"]))\n", + "print(\"v[\\\"db1\\\"] = \" + str(v[\"db1\"]))\n", + "print(\"v[\\\"dW2\\\"] = \" + str(v[\"dW2\"]))\n", + "print(\"v[\\\"db2\\\"] = \" + str(v[\"db2\"]))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Expected Output**:\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
**W1** [[ 1.62544598 -0.61290114 -0.52907334]\n", + " [-1.07347112 0.86450677 -2.30085497]]
**b1** [[ 1.74493465]\n", + " [-0.76027113]]
**W2** [[ 0.31930698 -0.24990073 1.4627996 ]\n", + " [-2.05974396 -0.32173003 -0.38320915]\n", + " [ 1.13444069 -1.0998786 -0.1713109 ]]
**b2** [[-0.87809283]\n", + " [ 0.04055394]\n", + " [ 0.58207317]]
**v[\"dW1\"]** [[-0.11006192 0.11447237 0.09015907]\n", + " [ 0.05024943 0.09008559 -0.06837279]]
**v[\"db1\"]** [[-0.01228902]\n", + " [-0.09357694]]
**v[\"dW2\"]** [[-0.02678881 0.05303555 -0.06916608]\n", + " [-0.03967535 -0.06871727 -0.08452056]\n", + " [-0.06712461 -0.00126646 -0.11173103]]
**v[\"db2\"]** [[ 0.02344157]\n", + " [ 0.16598022]\n", + " [ 0.07420442]]
\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "collapsed": true + }, + "source": [ + "**Note** that:\n", + "- The velocity is initialized with zeros. So the algorithm will take a few iterations to \"build up\" velocity and start to take bigger steps.\n", + "- If $\\beta = 0$, then this just becomes standard gradient descent without momentum. \n", + "\n", + "**How do you choose $\\beta$?**\n", + "\n", + "- The larger the momentum $\\beta$ is, the smoother the update because the more we take the past gradients into account. But if $\\beta$ is too big, it could also smooth out the updates too much. \n", + "- Common values for $\\beta$ range from 0.8 to 0.999. If you don't feel inclined to tune this, $\\beta = 0.9$ is often a reasonable default. \n", + "- Tuning the optimal $\\beta$ for your model might need trying several values to see what works best in term of reducing the value of the cost function $J$. " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "**What you should remember**:\n", + "- Momentum takes past gradients into account to smooth out the steps of gradient descent. It can be applied with batch gradient descent, mini-batch gradient descent or stochastic gradient descent.\n", + "- You have to tune a momentum hyperparameter $\\beta$ and a learning rate $\\alpha$." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 4 - Adam\n", + "\n", + "Adam is one of the most effective optimization algorithms for training neural networks. It combines ideas from RMSProp (described in lecture) and Momentum. \n", + "\n", + "**How does Adam work?**\n", + "1. It calculates an exponentially weighted average of past gradients, and stores it in variables $v$ (before bias correction) and $v^{corrected}$ (with bias correction). \n", + "2. It calculates an exponentially weighted average of the squares of the past gradients, and stores it in variables $s$ (before bias correction) and $s^{corrected}$ (with bias correction). \n", + "3. It updates parameters in a direction based on combining information from \"1\" and \"2\".\n", + "\n", + "The update rule is, for $l = 1, ..., L$: \n", + "\n", + "$$\\begin{cases}\n", + "v_{dW^{[l]}} = \\beta_1 v_{dW^{[l]}} + (1 - \\beta_1) \\frac{\\partial \\mathcal{J} }{ \\partial W^{[l]} } \\\\\n", + "v^{corrected}_{dW^{[l]}} = \\frac{v_{dW^{[l]}}}{1 - (\\beta_1)^t} \\\\\n", + "s_{dW^{[l]}} = \\beta_2 s_{dW^{[l]}} + (1 - \\beta_2) (\\frac{\\partial \\mathcal{J} }{\\partial W^{[l]} })^2 \\\\\n", + "s^{corrected}_{dW^{[l]}} = \\frac{s_{dW^{[l]}}}{1 - (\\beta_1)^t} \\\\\n", + "W^{[l]} = W^{[l]} - \\alpha \\frac{v^{corrected}_{dW^{[l]}}}{\\sqrt{s^{corrected}_{dW^{[l]}}} + \\varepsilon}\n", + "\\end{cases}$$\n", + "where:\n", + "- t counts the number of steps taken of Adam \n", + "- L is the number of layers\n", + "- $\\beta_1$ and $\\beta_2$ are hyperparameters that control the two exponentially weighted averages. \n", + "- $\\alpha$ is the learning rate\n", + "- $\\varepsilon$ is a very small number to avoid dividing by zero\n", + "\n", + "As usual, we will store all parameters in the `parameters` dictionary " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Exercise**: Initialize the Adam variables $v, s$ which keep track of the past information.\n", + "\n", + "**Instruction**: The variables $v, s$ are python dictionaries that need to be initialized with arrays of zeros. Their keys are the same as for `grads`, that is:\n", + "for $l = 1, ..., L$:\n", + "```python\n", + "v[\"dW\" + str(l+1)] = ... #(numpy array of zeros with the same shape as parameters[\"W\" + str(l+1)])\n", + "v[\"db\" + str(l+1)] = ... #(numpy array of zeros with the same shape as parameters[\"b\" + str(l+1)])\n", + "s[\"dW\" + str(l+1)] = ... #(numpy array of zeros with the same shape as parameters[\"W\" + str(l+1)])\n", + "s[\"db\" + str(l+1)] = ... #(numpy array of zeros with the same shape as parameters[\"b\" + str(l+1)])\n", + "\n", + "```" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [], + "source": [ + "# GRADED FUNCTION: initialize_adam\n", + "\n", + "def initialize_adam(parameters) :\n", + " \"\"\"\n", + " Initializes v and s as two python dictionaries with:\n", + " - keys: \"dW1\", \"db1\", ..., \"dWL\", \"dbL\" \n", + " - values: numpy arrays of zeros of the same shape as the corresponding gradients/parameters.\n", + " \n", + " Arguments:\n", + " parameters -- python dictionary containing your parameters.\n", + " parameters[\"W\" + str(l)] = Wl\n", + " parameters[\"b\" + str(l)] = bl\n", + " \n", + " Returns: \n", + " v -- python dictionary that will contain the exponentially weighted average of the gradient.\n", + " v[\"dW\" + str(l)] = ...\n", + " v[\"db\" + str(l)] = ...\n", + " s -- python dictionary that will contain the exponentially weighted average of the squared gradient.\n", + " s[\"dW\" + str(l)] = ...\n", + " s[\"db\" + str(l)] = ...\n", + "\n", + " \"\"\"\n", + " \n", + " L = len(parameters) // 2 # number of layers in the neural networks\n", + " v = {}\n", + " s = {}\n", + " \n", + " # Initialize v, s. Input: \"parameters\". Outputs: \"v, s\".\n", + " for l in range(L):\n", + " ### START CODE HERE ### (approx. 4 lines)\n", + " v[\"dW\" + str(l+1)] = np.zeros((parameters[\"W\" + str(l+1)]).shape)\n", + " v[\"db\" + str(l+1)] = np.zeros((parameters[\"b\" + str(l+1)]).shape)\n", + " s[\"dW\" + str(l+1)] = np.zeros((parameters[\"W\" + str(l+1)]).shape)\n", + " s[\"db\" + str(l+1)] = np.zeros((parameters[\"b\" + str(l+1)]).shape)\n", + " ### END CODE HERE ###\n", + " \n", + " return v, s" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "v[\"dW1\"] = [[0. 0. 0.]\n", + " [0. 0. 0.]]\n", + "v[\"db1\"] = [[0.]\n", + " [0.]]\n", + "v[\"dW2\"] = [[0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]]\n", + "v[\"db2\"] = [[0.]\n", + " [0.]\n", + " [0.]]\n", + "s[\"dW1\"] = [[0. 0. 0.]\n", + " [0. 0. 0.]]\n", + "s[\"db1\"] = [[0.]\n", + " [0.]]\n", + "s[\"dW2\"] = [[0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]]\n", + "s[\"db2\"] = [[0.]\n", + " [0.]\n", + " [0.]]\n" + ] + } + ], + "source": [ + "parameters = initialize_adam_test_case()\n", + "\n", + "v, s = initialize_adam(parameters)\n", + "print(\"v[\\\"dW1\\\"] = \" + str(v[\"dW1\"]))\n", + "print(\"v[\\\"db1\\\"] = \" + str(v[\"db1\"]))\n", + "print(\"v[\\\"dW2\\\"] = \" + str(v[\"dW2\"]))\n", + "print(\"v[\\\"db2\\\"] = \" + str(v[\"db2\"]))\n", + "print(\"s[\\\"dW1\\\"] = \" + str(s[\"dW1\"]))\n", + "print(\"s[\\\"db1\\\"] = \" + str(s[\"db1\"]))\n", + "print(\"s[\\\"dW2\\\"] = \" + str(s[\"dW2\"]))\n", + "print(\"s[\\\"db2\\\"] = \" + str(s[\"db2\"]))\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Expected Output**:\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "\n", + "
**v[\"dW1\"]** [[ 0. 0. 0.]\n", + " [ 0. 0. 0.]]
**v[\"db1\"]** [[ 0.]\n", + " [ 0.]]
**v[\"dW2\"]** [[ 0. 0. 0.]\n", + " [ 0. 0. 0.]\n", + " [ 0. 0. 0.]]
**v[\"db2\"]** [[ 0.]\n", + " [ 0.]\n", + " [ 0.]]
**s[\"dW1\"]** [[ 0. 0. 0.]\n", + " [ 0. 0. 0.]]
**s[\"db1\"]** [[ 0.]\n", + " [ 0.]]
**s[\"dW2\"]** [[ 0. 0. 0.]\n", + " [ 0. 0. 0.]\n", + " [ 0. 0. 0.]]
**s[\"db2\"]** [[ 0.]\n", + " [ 0.]\n", + " [ 0.]]
\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Exercise**: Now, implement the parameters update with Adam. Recall the general update rule is, for $l = 1, ..., L$: \n", + "\n", + "$$\\begin{cases}\n", + "v_{W^{[l]}} = \\beta_1 v_{W^{[l]}} + (1 - \\beta_1) \\frac{\\partial J }{ \\partial W^{[l]} } \\\\\n", + "v^{corrected}_{W^{[l]}} = \\frac{v_{W^{[l]}}}{1 - (\\beta_1)^t} \\\\\n", + "s_{W^{[l]}} = \\beta_2 s_{W^{[l]}} + (1 - \\beta_2) (\\frac{\\partial J }{\\partial W^{[l]} })^2 \\\\\n", + "s^{corrected}_{W^{[l]}} = \\frac{s_{W^{[l]}}}{1 - (\\beta_2)^t} \\\\\n", + "W^{[l]} = W^{[l]} - \\alpha \\frac{v^{corrected}_{W^{[l]}}}{\\sqrt{s^{corrected}_{W^{[l]}}}+\\varepsilon}\n", + "\\end{cases}$$\n", + "\n", + "\n", + "**Note** that the iterator `l` starts at 0 in the `for` loop while the first parameters are $W^{[1]}$ and $b^{[1]}$. You need to shift `l` to `l+1` when coding." + ] + }, + { + "cell_type": "code", + "execution_count": 41, + "metadata": {}, + "outputs": [], + "source": [ + "# GRADED FUNCTION: update_parameters_with_adam\n", + "\n", + "def update_parameters_with_adam(parameters, grads, v, s, t, learning_rate = 0.01,\n", + " beta1 = 0.9, beta2 = 0.999, epsilon = 1e-8):\n", + " \"\"\"\n", + " Update parameters using Adam\n", + " \n", + " Arguments:\n", + " parameters -- python dictionary containing your parameters:\n", + " parameters['W' + str(l)] = Wl\n", + " parameters['b' + str(l)] = bl\n", + " grads -- python dictionary containing your gradients for each parameters:\n", + " grads['dW' + str(l)] = dWl\n", + " grads['db' + str(l)] = dbl\n", + " v -- Adam variable, moving average of the first gradient, python dictionary\n", + " s -- Adam variable, moving average of the squared gradient, python dictionary\n", + " learning_rate -- the learning rate, scalar.\n", + " beta1 -- Exponential decay hyperparameter for the first moment estimates \n", + " beta2 -- Exponential decay hyperparameter for the second moment estimates \n", + " epsilon -- hyperparameter preventing division by zero in Adam updates\n", + "\n", + " Returns:\n", + " parameters -- python dictionary containing your updated parameters \n", + " v -- Adam variable, moving average of the first gradient, python dictionary\n", + " s -- Adam variable, moving average of the squared gradient, python dictionary\n", + " \"\"\"\n", + " \n", + " L = len(parameters) // 2 # number of layers in the neural networks\n", + " v_corrected = {} # Initializing first moment estimate, python dictionary\n", + " s_corrected = {} # Initializing second moment estimate, python dictionary\n", + " \n", + " # Perform Adam update on all parameters\n", + " for l in range(L):\n", + " # Moving average of the gradients. Inputs: \"v, grads, beta1\". Output: \"v\".\n", + " ### START CODE HERE ### (approx. 2 lines)\n", + " v[\"dW\" + str(l+1)] = beta1 * v['dW' + str(l+1)] + (1 - beta1) * (grads[\"dW\" + str(l+1)])\n", + " v[\"db\" + str(l+1)] = beta1 * v['db' + str(l+1)] + (1 - beta1) * (grads[\"db\" + str(l+1)])\n", + " ### END CODE HERE ###\n", + "\n", + " # Compute bias-corrected first moment estimate. Inputs: \"v, beta1, t\". Output: \"v_corrected\".\n", + " ### START CODE HERE ### (approx. 2 lines)\n", + " v_corrected[\"dW\" + str(l+1)] = v[\"dW\" + str(l+1)] / (1 - beta1**t)\n", + " v_corrected[\"db\" + str(l+1)] = v[\"db\" + str(l+1)] / (1 - beta1**t)\n", + " ### END CODE HERE ###\n", + "\n", + " # Moving average of the squared gradients. Inputs: \"s, grads, beta2\". Output: \"s\".\n", + " ### START CODE HERE ### (approx. 2 lines)\n", + " s[\"dW\" + str(l+1)] = beta2 * s['dW' + str(l+1)] + (1 - beta2) * (grads[\"dW\" + str(l+1)])**2\n", + " s[\"db\" + str(l+1)] = beta2 * s['db' + str(l+1)] + (1 - beta2) * (grads[\"db\" + str(l+1)])**2\n", + " ### END CODE HERE ###\n", + "\n", + " # Compute bias-corrected second raw moment estimate. Inputs: \"s, beta2, t\". Output: \"s_corrected\".\n", + " ### START CODE HERE ### (approx. 2 lines)\n", + " s_corrected[\"dW\" + str(l+1)] = s[\"dW\" + str(l+1)] / (1 - beta2**t)\n", + " s_corrected[\"db\" + str(l+1)] = s[\"db\" + str(l+1)] / (1 - beta2**t)\n", + " ### END CODE HERE ###\n", + "\n", + " # Update parameters. Inputs: \"parameters, learning_rate, v_corrected, s_corrected, epsilon\". Output: \"parameters\".\n", + " ### START CODE HERE ### (approx. 2 lines)\n", + " parameters[\"W\" + str(l+1)] -= learning_rate * ( v_corrected[\"dW\" + str(l+1)] / (np.sqrt(s_corrected[\"dW\" + str(l+1)]) + epsilon))\n", + " parameters[\"b\" + str(l+1)] -= learning_rate * ( v_corrected[\"db\" + str(l+1)] / (np.sqrt(s_corrected[\"db\" + str(l+1)]) + epsilon))\n", + " ### END CODE HERE ###\n", + "\n", + " return parameters, v, s" + ] + }, + { + "cell_type": "code", + "execution_count": 42, + "metadata": { + "scrolled": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "W1 = [[ 1.63178673 -0.61919778 -0.53561312]\n", + " [-1.08040999 0.85796626 -2.29409733]]\n", + "b1 = [[ 1.75225313]\n", + " [-0.75376553]]\n", + "W2 = [[ 0.32648046 -0.25681174 1.46954931]\n", + " [-2.05269934 -0.31497584 -0.37661299]\n", + " [ 1.14121081 -1.09244991 -0.16498684]]\n", + "b2 = [[-0.88529979]\n", + " [ 0.03477238]\n", + " [ 0.57537385]]\n", + "v[\"dW1\"] = [[-0.11006192 0.11447237 0.09015907]\n", + " [ 0.05024943 0.09008559 -0.06837279]]\n", + "v[\"db1\"] = [[-0.01228902]\n", + " [-0.09357694]]\n", + "v[\"dW2\"] = [[-0.02678881 0.05303555 -0.06916608]\n", + " [-0.03967535 -0.06871727 -0.08452056]\n", + " [-0.06712461 -0.00126646 -0.11173103]]\n", + "v[\"db2\"] = [[0.02344157]\n", + " [0.16598022]\n", + " [0.07420442]]\n", + "s[\"dW1\"] = [[0.00121136 0.00131039 0.00081287]\n", + " [0.0002525 0.00081154 0.00046748]]\n", + "s[\"db1\"] = [[1.51020075e-05]\n", + " [8.75664434e-04]]\n", + "s[\"dW2\"] = [[7.17640232e-05 2.81276921e-04 4.78394595e-04]\n", + " [1.57413361e-04 4.72206320e-04 7.14372576e-04]\n", + " [4.50571368e-04 1.60392066e-07 1.24838242e-03]]\n", + "s[\"db2\"] = [[5.49507194e-05]\n", + " [2.75494327e-03]\n", + " [5.50629536e-04]]\n" + ] + } + ], + "source": [ + "parameters, grads, v, s = update_parameters_with_adam_test_case()\n", + "parameters, v, s = update_parameters_with_adam(parameters, grads, v, s, t = 2)\n", + "\n", + "print(\"W1 = \" + str(parameters[\"W1\"]))\n", + "print(\"b1 = \" + str(parameters[\"b1\"]))\n", + "print(\"W2 = \" + str(parameters[\"W2\"]))\n", + "print(\"b2 = \" + str(parameters[\"b2\"]))\n", + "print(\"v[\\\"dW1\\\"] = \" + str(v[\"dW1\"]))\n", + "print(\"v[\\\"db1\\\"] = \" + str(v[\"db1\"]))\n", + "print(\"v[\\\"dW2\\\"] = \" + str(v[\"dW2\"]))\n", + "print(\"v[\\\"db2\\\"] = \" + str(v[\"db2\"]))\n", + "print(\"s[\\\"dW1\\\"] = \" + str(s[\"dW1\"]))\n", + "print(\"s[\\\"db1\\\"] = \" + str(s[\"db1\"]))\n", + "print(\"s[\\\"dW2\\\"] = \" + str(s[\"dW2\"]))\n", + "print(\"s[\\\"db2\\\"] = \" + str(s[\"db2\"]))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Expected Output**:\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
**W1** [[ 1.63178673 -0.61919778 -0.53561312]\n", + " [-1.08040999 0.85796626 -2.29409733]]
**b1** [[ 1.75225313]\n", + " [-0.75376553]]
**W2** [[ 0.32648046 -0.25681174 1.46954931]\n", + " [-2.05269934 -0.31497584 -0.37661299]\n", + " [ 1.14121081 -1.09245036 -0.16498684]]
**b2** [[-0.88529978]\n", + " [ 0.03477238]\n", + " [ 0.57537385]]
**v[\"dW1\"]** [[-0.11006192 0.11447237 0.09015907]\n", + " [ 0.05024943 0.09008559 -0.06837279]]
**v[\"db1\"]** [[-0.01228902]\n", + " [-0.09357694]]
**v[\"dW2\"]** [[-0.02678881 0.05303555 -0.06916608]\n", + " [-0.03967535 -0.06871727 -0.08452056]\n", + " [-0.06712461 -0.00126646 -0.11173103]]
**v[\"db2\"]** [[ 0.02344157]\n", + " [ 0.16598022]\n", + " [ 0.07420442]]
**s[\"dW1\"]** [[ 0.00121136 0.00131039 0.00081287]\n", + " [ 0.0002525 0.00081154 0.00046748]]
**s[\"db1\"]** [[ 1.51020075e-05]\n", + " [ 8.75664434e-04]]
**s[\"dW2\"]** [[ 7.17640232e-05 2.81276921e-04 4.78394595e-04]\n", + " [ 1.57413361e-04 4.72206320e-04 7.14372576e-04]\n", + " [ 4.50571368e-04 1.60392066e-07 1.24838242e-03]]
**s[\"db2\"]** [[ 5.49507194e-05]\n", + " [ 2.75494327e-03]\n", + " [ 5.50629536e-04]]
\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "You now have three working optimization algorithms (mini-batch gradient descent, Momentum, Adam). Let's implement a model with each of these optimizers and observe the difference." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 5 - Model with different optimization algorithms\n", + "\n", + "Lets use the following \"moons\" dataset to test the different optimization methods. (The dataset is named \"moons\" because the data from each of the two classes looks a bit like a crescent-shaped moon.) " + ] + }, + { + "cell_type": "code", + "execution_count": 43, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "train_X, train_Y = load_dataset()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We have already implemented a 3-layer neural network. You will train it with: \n", + "- Mini-batch **Gradient Descent**: it will call your function:\n", + " - `update_parameters_with_gd()`\n", + "- Mini-batch **Momentum**: it will call your functions:\n", + " - `initialize_velocity()` and `update_parameters_with_momentum()`\n", + "- Mini-batch **Adam**: it will call your functions:\n", + " - `initialize_adam()` and `update_parameters_with_adam()`" + ] + }, + { + "cell_type": "code", + "execution_count": 44, + "metadata": {}, + "outputs": [], + "source": [ + "def model(X, Y, layers_dims, optimizer, learning_rate = 0.0007, mini_batch_size = 64, beta = 0.9,\n", + " beta1 = 0.9, beta2 = 0.999, epsilon = 1e-8, num_epochs = 10000, print_cost = True):\n", + " \"\"\"\n", + " 3-layer neural network model which can be run in different optimizer modes.\n", + " \n", + " Arguments:\n", + " X -- input data, of shape (2, number of examples)\n", + " Y -- true \"label\" vector (1 for blue dot / 0 for red dot), of shape (1, number of examples)\n", + " layers_dims -- python list, containing the size of each layer\n", + " learning_rate -- the learning rate, scalar.\n", + " mini_batch_size -- the size of a mini batch\n", + " beta -- Momentum hyperparameter\n", + " beta1 -- Exponential decay hyperparameter for the past gradients estimates \n", + " beta2 -- Exponential decay hyperparameter for the past squared gradients estimates \n", + " epsilon -- hyperparameter preventing division by zero in Adam updates\n", + " num_epochs -- number of epochs\n", + " print_cost -- True to print the cost every 1000 epochs\n", + "\n", + " Returns:\n", + " parameters -- python dictionary containing your updated parameters \n", + " \"\"\"\n", + "\n", + " L = len(layers_dims) # number of layers in the neural networks\n", + " costs = [] # to keep track of the cost\n", + " t = 0 # initializing the counter required for Adam update\n", + " seed = 10 # For grading purposes, so that your \"random\" minibatches are the same as ours\n", + " \n", + " # Initialize parameters\n", + " parameters = initialize_parameters(layers_dims)\n", + "\n", + " # Initialize the optimizer\n", + " if optimizer == \"gd\":\n", + " pass # no initialization required for gradient descent\n", + " elif optimizer == \"momentum\":\n", + " v = initialize_velocity(parameters)\n", + " elif optimizer == \"adam\":\n", + " v, s = initialize_adam(parameters)\n", + " \n", + " # Optimization loop\n", + " for i in range(num_epochs):\n", + " \n", + " # Define the random minibatches. We increment the seed to reshuffle differently the dataset after each epoch\n", + " seed = seed + 1\n", + " minibatches = random_mini_batches(X, Y, mini_batch_size, seed)\n", + "\n", + " for minibatch in minibatches:\n", + "\n", + " # Select a minibatch\n", + " (minibatch_X, minibatch_Y) = minibatch\n", + "\n", + " # Forward propagation\n", + " a3, caches = forward_propagation(minibatch_X, parameters)\n", + "\n", + " # Compute cost\n", + " cost = compute_cost(a3, minibatch_Y)\n", + "\n", + " # Backward propagation\n", + " grads = backward_propagation(minibatch_X, minibatch_Y, caches)\n", + "\n", + " # Update parameters\n", + " if optimizer == \"gd\":\n", + " parameters = update_parameters_with_gd(parameters, grads, learning_rate)\n", + " elif optimizer == \"momentum\":\n", + " parameters, v = update_parameters_with_momentum(parameters, grads, v, beta, learning_rate)\n", + " elif optimizer == \"adam\":\n", + " t = t + 1 # Adam counter\n", + " parameters, v, s = update_parameters_with_adam(parameters, grads, v, s,\n", + " t, learning_rate, beta1, beta2, epsilon)\n", + " \n", + " # Print the cost every 1000 epoch\n", + " if print_cost and i % 1000 == 0:\n", + " print (\"Cost after epoch %i: %f\" %(i, cost))\n", + " if print_cost and i % 100 == 0:\n", + " costs.append(cost)\n", + " \n", + " # plot the cost\n", + " plt.plot(costs)\n", + " plt.ylabel('cost')\n", + " plt.xlabel('epochs (per 100)')\n", + " plt.title(\"Learning rate = \" + str(learning_rate))\n", + " plt.show()\n", + "\n", + " return parameters" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "You will now run this 3 layer neural network with each of the 3 optimization methods.\n", + "\n", + "### 5.1 - Mini-batch Gradient descent\n", + "\n", + "Run the following code to see how the model does with mini-batch gradient descent." + ] + }, + { + "cell_type": "code", + "execution_count": 45, + "metadata": { + "scrolled": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Cost after epoch 0: 0.690737\n", + "Cost after epoch 1000: 0.685189\n", + "Cost after epoch 2000: 0.646842\n", + "Cost after epoch 3000: 0.619282\n", + "Cost after epoch 4000: 0.576070\n", + "Cost after epoch 5000: 0.606678\n", + "Cost after epoch 6000: 0.529791\n", + "Cost after epoch 7000: 0.460468\n", + "Cost after epoch 8000: 0.465387\n", + "Cost after epoch 9000: 0.463716\n" + ] + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Accuracy: 0.7966666666666666\n" + ] + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "# train 3-layer model\n", + "layers_dims = [train_X.shape[0], 5, 2, 1]\n", + "parameters = model(train_X, train_Y, layers_dims, optimizer = \"gd\")\n", + "\n", + "# Predict\n", + "predictions = predict(train_X, train_Y, parameters)\n", + "\n", + "# Plot decision boundary\n", + "plt.title(\"Model with Gradient Descent optimization\")\n", + "axes = plt.gca()\n", + "axes.set_xlim([-1.5,2.5])\n", + "axes.set_ylim([-1,1.5])\n", + "plot_decision_boundary(lambda x: predict_dec(parameters, x.T), train_X, np.ravel(train_Y))" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "collapsed": true + }, + "source": [ + "### 5.2 - Mini-batch gradient descent with momentum\n", + "\n", + "Run the following code to see how the model does with momentum. Because this example is relatively simple, the gains from using momemtum are small; but for more complex problems you might see bigger gains." + ] + }, + { + "cell_type": "code", + "execution_count": 46, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Cost after epoch 0: 0.690741\n", + "Cost after epoch 1000: 0.685258\n", + "Cost after epoch 2000: 0.646918\n", + "Cost after epoch 3000: 0.619355\n", + "Cost after epoch 4000: 0.576235\n", + "Cost after epoch 5000: 0.606752\n", + "Cost after epoch 6000: 0.529872\n", + "Cost after epoch 7000: 0.460649\n", + "Cost after epoch 8000: 0.465622\n", + "Cost after epoch 9000: 0.463913\n" + ] + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Accuracy: 0.7966666666666666\n" + ] + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "# train 3-layer model\n", + "layers_dims = [train_X.shape[0], 5, 2, 1]\n", + "parameters = model(train_X, train_Y, layers_dims, beta = 0.9, optimizer = \"momentum\")\n", + "\n", + "# Predict\n", + "predictions = predict(train_X, train_Y, parameters)\n", + "\n", + "# Plot decision boundary\n", + "plt.title(\"Model with Momentum optimization\")\n", + "axes = plt.gca()\n", + "axes.set_xlim([-1.5,2.5])\n", + "axes.set_ylim([-1,1.5])\n", + "plot_decision_boundary(lambda x: predict_dec(parameters, x.T), train_X, np.ravel(train_Y))" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "collapsed": true + }, + "source": [ + "### 5.3 - Mini-batch with Adam mode\n", + "\n", + "Run the following code to see how the model does with Adam." + ] + }, + { + "cell_type": "code", + "execution_count": 47, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Cost after epoch 0: 0.690593\n", + "Cost after epoch 1000: 0.188118\n", + "Cost after epoch 2000: 0.148098\n", + "Cost after epoch 3000: 0.072415\n", + "Cost after epoch 4000: 0.128164\n", + "Cost after epoch 5000: 0.105826\n", + "Cost after epoch 6000: 0.096210\n", + "Cost after epoch 7000: 0.032360\n", + "Cost after epoch 8000: 0.099380\n", + "Cost after epoch 9000: 0.181483\n" + ] + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Accuracy: 0.9366666666666666\n" + ] + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "# train 3-layer model\n", + "layers_dims = [train_X.shape[0], 5, 2, 1]\n", + "parameters = model(train_X, train_Y, layers_dims, optimizer = \"adam\")\n", + "\n", + "# Predict\n", + "predictions = predict(train_X, train_Y, parameters)\n", + "\n", + "# Plot decision boundary\n", + "plt.title(\"Model with Adam optimization\")\n", + "axes = plt.gca()\n", + "axes.set_xlim([-1.5,2.5])\n", + "axes.set_ylim([-1,1.5])\n", + "plot_decision_boundary(lambda x: predict_dec(parameters, x.T), train_X, np.ravel(train_Y))" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "collapsed": true + }, + "source": [ + "### 5.4 - Summary\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
\n", + " **optimization method**\n", + " \n", + " **accuracy**\n", + " \n", + " **cost shape**\n", + "
\n", + " Gradient descent\n", + " \n", + " 79.7%\n", + " \n", + " oscillations\n", + "
\n", + " Momentum\n", + " \n", + " 79.7%\n", + " \n", + " oscillations\n", + "
\n", + " Adam\n", + " \n", + " 94%\n", + " \n", + " smoother\n", + "
\n", + "\n", + "Momentum usually helps, but given the small learning rate and the simplistic dataset, its impact is almost negligeable. Also, the huge oscillations you see in the cost come from the fact that some minibatches are more difficult thans others for the optimization algorithm.\n", + "\n", + "Adam on the other hand, clearly outperforms mini-batch gradient descent and Momentum. If you run the model for more epochs on this simple dataset, all three methods will lead to very good results. However, you've seen that Adam converges a lot faster.\n", + "\n", + "Some advantages of Adam include:\n", + "- Relatively low memory requirements (though higher than gradient descent and gradient descent with momentum) \n", + "- Usually works well even with little tuning of hyperparameters (except $\\alpha$)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "collapsed": true + }, + "source": [ + "**References**:\n", + "\n", + "- Adam paper: https://arxiv.org/pdf/1412.6980.pdf" + ] + } + ], + "metadata": { + "coursera": { + "course_slug": "deep-neural-network", + "graded_item_id": "Ckiv2", + "launcher_item_id": "eNLYh" + }, + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.7.1" + } + }, + "nbformat": 4, + "nbformat_minor": 1 +} diff --git a/optimization_algorithms/__pycache__/opt_utils.cpython-37.pyc b/optimization_algorithms/__pycache__/opt_utils.cpython-37.pyc new file mode 100644 index 0000000..a6636dd Binary files /dev/null and b/optimization_algorithms/__pycache__/opt_utils.cpython-37.pyc differ diff --git a/optimization_algorithms/__pycache__/testCases.cpython-37.pyc b/optimization_algorithms/__pycache__/testCases.cpython-37.pyc new file mode 100644 index 0000000..74c609c Binary files /dev/null and b/optimization_algorithms/__pycache__/testCases.cpython-37.pyc differ diff --git a/optimization_algorithms/datasets/data.mat b/optimization_algorithms/datasets/data.mat new file mode 100644 index 0000000..a0441ac Binary files /dev/null and b/optimization_algorithms/datasets/data.mat differ diff --git a/optimization_algorithms/images/Momentum.png b/optimization_algorithms/images/Momentum.png new file mode 100644 index 0000000..1052fb5 Binary files /dev/null and b/optimization_algorithms/images/Momentum.png differ diff --git a/optimization_algorithms/images/cost.jpg b/optimization_algorithms/images/cost.jpg new file mode 100644 index 0000000..91adc20 Binary files /dev/null and b/optimization_algorithms/images/cost.jpg differ diff --git a/optimization_algorithms/images/kiank_minibatch.png b/optimization_algorithms/images/kiank_minibatch.png new file mode 100644 index 0000000..382964b Binary files /dev/null and b/optimization_algorithms/images/kiank_minibatch.png differ diff --git a/optimization_algorithms/images/kiank_partition.png b/optimization_algorithms/images/kiank_partition.png new file mode 100644 index 0000000..792089f Binary files /dev/null and b/optimization_algorithms/images/kiank_partition.png differ diff --git a/optimization_algorithms/images/kiank_sgd.png b/optimization_algorithms/images/kiank_sgd.png new file mode 100644 index 0000000..99ab39e Binary files /dev/null and b/optimization_algorithms/images/kiank_sgd.png differ diff --git a/optimization_algorithms/images/kiank_shuffle.png b/optimization_algorithms/images/kiank_shuffle.png new file mode 100644 index 0000000..f01d117 Binary files /dev/null and b/optimization_algorithms/images/kiank_shuffle.png differ diff --git a/optimization_algorithms/images/opt1.gif b/optimization_algorithms/images/opt1.gif new file mode 100644 index 0000000..61db246 Binary files /dev/null and b/optimization_algorithms/images/opt1.gif differ diff --git a/optimization_algorithms/images/opt2.gif b/optimization_algorithms/images/opt2.gif new file mode 100644 index 0000000..e9d54d0 Binary files /dev/null and b/optimization_algorithms/images/opt2.gif differ diff --git a/optimization_algorithms/images/opt_momentum.png b/optimization_algorithms/images/opt_momentum.png new file mode 100644 index 0000000..dae5c87 Binary files /dev/null and b/optimization_algorithms/images/opt_momentum.png differ diff --git a/optimization_algorithms/opt_utils.py b/optimization_algorithms/opt_utils.py new file mode 100644 index 0000000..8440066 --- /dev/null +++ b/optimization_algorithms/opt_utils.py @@ -0,0 +1,260 @@ +import numpy as np +import matplotlib.pyplot as plt +import h5py +import scipy.io +import sklearn +import sklearn.datasets + +def sigmoid(x): + """ + Compute the sigmoid of x + + Arguments: + x -- A scalar or numpy array of any size. + + Return: + s -- sigmoid(x) + """ + s = 1/(1+np.exp(-x)) + return s + +def relu(x): + """ + Compute the relu of x + + Arguments: + x -- A scalar or numpy array of any size. + + Return: + s -- relu(x) + """ + s = np.maximum(0,x) + + return s + +def load_params_and_grads(seed=1): + np.random.seed(seed) + W1 = np.random.randn(2,3) + b1 = np.random.randn(2,1) + W2 = np.random.randn(3,3) + b2 = np.random.randn(3,1) + + dW1 = np.random.randn(2,3) + db1 = np.random.randn(2,1) + dW2 = np.random.randn(3,3) + db2 = np.random.randn(3,1) + + return W1, b1, W2, b2, dW1, db1, dW2, db2 + + +def initialize_parameters(layer_dims): + """ + Arguments: + layer_dims -- python array (list) containing the dimensions of each layer in our network + + Returns: + parameters -- python dictionary containing your parameters "W1", "b1", ..., "WL", "bL": + W1 -- weight matrix of shape (layer_dims[l], layer_dims[l-1]) + b1 -- bias vector of shape (layer_dims[l], 1) + Wl -- weight matrix of shape (layer_dims[l-1], layer_dims[l]) + bl -- bias vector of shape (1, layer_dims[l]) + + Tips: + - For example: the layer_dims for the "Planar Data classification model" would have been [2,2,1]. + This means W1's shape was (2,2), b1 was (1,2), W2 was (2,1) and b2 was (1,1). Now you have to generalize it! + - In the for loop, use parameters['W' + str(l)] to access Wl, where l is the iterative integer. + """ + + np.random.seed(3) + parameters = {} + L = len(layer_dims) # number of layers in the network + + for l in range(1, L): + parameters['W' + str(l)] = np.random.randn(layer_dims[l], layer_dims[l-1])* np.sqrt(2 / layer_dims[l-1]) + parameters['b' + str(l)] = np.zeros((layer_dims[l], 1)) + + assert(parameters['W' + str(l)].shape == layer_dims[l], layer_dims[l-1]) + assert(parameters['W' + str(l)].shape == layer_dims[l], 1) + + return parameters + + +def compute_cost(a3, Y): + + """ + Implement the cost function + + Arguments: + a3 -- post-activation, output of forward propagation + Y -- "true" labels vector, same shape as a3 + + Returns: + cost - value of the cost function + """ + m = Y.shape[1] + + logprobs = np.multiply(-np.log(a3),Y) + np.multiply(-np.log(1 - a3), 1 - Y) + cost = 1./m * np.sum(logprobs) + + return cost + +def forward_propagation(X, parameters): + """ + Implements the forward propagation (and computes the loss) presented in Figure 2. + + Arguments: + X -- input dataset, of shape (input size, number of examples) + parameters -- python dictionary containing your parameters "W1", "b1", "W2", "b2", "W3", "b3": + W1 -- weight matrix of shape () + b1 -- bias vector of shape () + W2 -- weight matrix of shape () + b2 -- bias vector of shape () + W3 -- weight matrix of shape () + b3 -- bias vector of shape () + + Returns: + loss -- the loss function (vanilla logistic loss) + """ + + # retrieve parameters + W1 = parameters["W1"] + b1 = parameters["b1"] + W2 = parameters["W2"] + b2 = parameters["b2"] + W3 = parameters["W3"] + b3 = parameters["b3"] + + # LINEAR -> RELU -> LINEAR -> RELU -> LINEAR -> SIGMOID + z1 = np.dot(W1, X) + b1 + a1 = relu(z1) + z2 = np.dot(W2, a1) + b2 + a2 = relu(z2) + z3 = np.dot(W3, a2) + b3 + a3 = sigmoid(z3) + + cache = (z1, a1, W1, b1, z2, a2, W2, b2, z3, a3, W3, b3) + + return a3, cache + +def backward_propagation(X, Y, cache): + """ + Implement the backward propagation presented in figure 2. + + Arguments: + X -- input dataset, of shape (input size, number of examples) + Y -- true "label" vector (containing 0 if cat, 1 if non-cat) + cache -- cache output from forward_propagation() + + Returns: + gradients -- A dictionary with the gradients with respect to each parameter, activation and pre-activation variables + """ + m = X.shape[1] + (z1, a1, W1, b1, z2, a2, W2, b2, z3, a3, W3, b3) = cache + + dz3 = 1./m * (a3 - Y) + dW3 = np.dot(dz3, a2.T) + db3 = np.sum(dz3, axis=1, keepdims = True) + + da2 = np.dot(W3.T, dz3) + dz2 = np.multiply(da2, np.int64(a2 > 0)) + dW2 = np.dot(dz2, a1.T) + db2 = np.sum(dz2, axis=1, keepdims = True) + + da1 = np.dot(W2.T, dz2) + dz1 = np.multiply(da1, np.int64(a1 > 0)) + dW1 = np.dot(dz1, X.T) + db1 = np.sum(dz1, axis=1, keepdims = True) + + gradients = {"dz3": dz3, "dW3": dW3, "db3": db3, + "da2": da2, "dz2": dz2, "dW2": dW2, "db2": db2, + "da1": da1, "dz1": dz1, "dW1": dW1, "db1": db1} + + return gradients + +def predict(X, y, parameters): + """ + This function is used to predict the results of a n-layer neural network. + + Arguments: + X -- data set of examples you would like to label + parameters -- parameters of the trained model + + Returns: + p -- predictions for the given dataset X + """ + + m = X.shape[1] + p = np.zeros((1,m), dtype = np.int) + + # Forward propagation + a3, caches = forward_propagation(X, parameters) + + # convert probas to 0/1 predictions + for i in range(0, a3.shape[1]): + if a3[0,i] > 0.5: + p[0,i] = 1 + else: + p[0,i] = 0 + + # print results + + #print ("predictions: " + str(p[0,:])) + #print ("true labels: " + str(y[0,:])) + print("Accuracy: " + str(np.mean((p[0,:] == y[0,:])))) + + return p + +def load_2D_dataset(): + data = scipy.io.loadmat('datasets/data.mat') + train_X = data['X'].T + train_Y = data['y'].T + test_X = data['Xval'].T + test_Y = data['yval'].T + + plt.scatter(train_X[0, :], train_X[1, :], c=train_Y, s=40, cmap=plt.cm.Spectral); + + return train_X, train_Y, test_X, test_Y + +def plot_decision_boundary(model, X, y): + # Set min and max values and give it some padding + x_min, x_max = X[0, :].min() - 1, X[0, :].max() + 1 + y_min, y_max = X[1, :].min() - 1, X[1, :].max() + 1 + h = 0.01 + # Generate a grid of points with distance h between them + xx, yy = np.meshgrid(np.arange(x_min, x_max, h), np.arange(y_min, y_max, h)) + # Predict the function value for the whole grid + Z = model(np.c_[xx.ravel(), yy.ravel()]) + Z = Z.reshape(xx.shape) + # Plot the contour and training examples + plt.contourf(xx, yy, Z, cmap=plt.cm.Spectral) + plt.ylabel('x2') + plt.xlabel('x1') + plt.scatter(X[0, :], X[1, :], c=y, cmap=plt.cm.Spectral) + plt.show() + +def predict_dec(parameters, X): + """ + Used for plotting decision boundary. + + Arguments: + parameters -- python dictionary containing your parameters + X -- input data of size (m, K) + + Returns + predictions -- vector of predictions of our model (red: 0 / blue: 1) + """ + + # Predict using forward propagation and a classification threshold of 0.5 + a3, cache = forward_propagation(X, parameters) + predictions = (a3 > 0.5) + return predictions + +def load_dataset(): + np.random.seed(3) + train_X, train_Y = sklearn.datasets.make_moons(n_samples=300, noise=.2) #300 #0.2 + # Visualize the data + plt.scatter(train_X[:, 0], train_X[:, 1], c=train_Y, s=40, cmap=plt.cm.Spectral); + train_X = train_X.T + train_Y = train_Y.reshape((1, train_Y.shape[0])) + + return train_X, train_Y \ No newline at end of file diff --git a/optimization_algorithms/testCases.py b/optimization_algorithms/testCases.py new file mode 100644 index 0000000..46feea8 --- /dev/null +++ b/optimization_algorithms/testCases.py @@ -0,0 +1,105 @@ +import numpy as np + +def update_parameters_with_gd_test_case(): + np.random.seed(1) + learning_rate = 0.01 + W1 = np.random.randn(2,3) + b1 = np.random.randn(2,1) + W2 = np.random.randn(3,3) + b2 = np.random.randn(3,1) + + dW1 = np.random.randn(2,3) + db1 = np.random.randn(2,1) + dW2 = np.random.randn(3,3) + db2 = np.random.randn(3,1) + + parameters = {"W1": W1, "b1": b1, "W2": W2, "b2": b2} + grads = {"dW1": dW1, "db1": db1, "dW2": dW2, "db2": db2} + + return parameters, grads, learning_rate + +""" +def update_parameters_with_sgd_checker(function, inputs, outputs): + if function(inputs) == outputs: + print("Correct") + else: + print("Incorrect") +""" + +def random_mini_batches_test_case(): + np.random.seed(1) + mini_batch_size = 64 + X = np.random.randn(12288, 148) + Y = np.random.randn(1, 148) < 0.5 + return X, Y, mini_batch_size + +def initialize_velocity_test_case(): + np.random.seed(1) + W1 = np.random.randn(2,3) + b1 = np.random.randn(2,1) + W2 = np.random.randn(3,3) + b2 = np.random.randn(3,1) + parameters = {"W1": W1, "b1": b1, "W2": W2, "b2": b2} + return parameters + +def update_parameters_with_momentum_test_case(): + np.random.seed(1) + W1 = np.random.randn(2,3) + b1 = np.random.randn(2,1) + W2 = np.random.randn(3,3) + b2 = np.random.randn(3,1) + + dW1 = np.random.randn(2,3) + db1 = np.random.randn(2,1) + dW2 = np.random.randn(3,3) + db2 = np.random.randn(3,1) + parameters = {"W1": W1, "b1": b1, "W2": W2, "b2": b2} + grads = {"dW1": dW1, "db1": db1, "dW2": dW2, "db2": db2} + v = {'dW1': np.array([[ 0., 0., 0.], + [ 0., 0., 0.]]), 'dW2': np.array([[ 0., 0., 0.], + [ 0., 0., 0.], + [ 0., 0., 0.]]), 'db1': np.array([[ 0.], + [ 0.]]), 'db2': np.array([[ 0.], + [ 0.], + [ 0.]])} + return parameters, grads, v + +def initialize_adam_test_case(): + np.random.seed(1) + W1 = np.random.randn(2,3) + b1 = np.random.randn(2,1) + W2 = np.random.randn(3,3) + b2 = np.random.randn(3,1) + parameters = {"W1": W1, "b1": b1, "W2": W2, "b2": b2} + return parameters + +def update_parameters_with_adam_test_case(): + np.random.seed(1) + v, s = ({'dW1': np.array([[ 0., 0., 0.], + [ 0., 0., 0.]]), 'dW2': np.array([[ 0., 0., 0.], + [ 0., 0., 0.], + [ 0., 0., 0.]]), 'db1': np.array([[ 0.], + [ 0.]]), 'db2': np.array([[ 0.], + [ 0.], + [ 0.]])}, {'dW1': np.array([[ 0., 0., 0.], + [ 0., 0., 0.]]), 'dW2': np.array([[ 0., 0., 0.], + [ 0., 0., 0.], + [ 0., 0., 0.]]), 'db1': np.array([[ 0.], + [ 0.]]), 'db2': np.array([[ 0.], + [ 0.], + [ 0.]])}) + W1 = np.random.randn(2,3) + b1 = np.random.randn(2,1) + W2 = np.random.randn(3,3) + b2 = np.random.randn(3,1) + + dW1 = np.random.randn(2,3) + db1 = np.random.randn(2,1) + dW2 = np.random.randn(3,3) + db2 = np.random.randn(3,1) + + parameters = {"W1": W1, "b1": b1, "W2": W2, "b2": b2} + grads = {"dW1": dW1, "db1": db1, "dW2": dW2, "db2": db2} + + return parameters, grads, v, s + \ No newline at end of file