{ "cells": [ { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "%matplotlib inline" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "import warnings\n", "warnings.filterwarnings(\"ignore\")" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "import pandas as pd\n", "import numpy as np\n", "import matplotlib.pyplot as plt" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Regression loss \n", "* MSE\n", "* MAE\n", "* Huber loss\n", "* Los cosh loss\n", "* Quantile loss" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Mean Square Error (MSE/ L2 Loss)\n", "$ MSE = \\sum\\limits_{i=1}^n {(y_i - y_i^p)}^2 $ " ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "def mse(true, pred):\n", " \"\"\"\n", " true: array of true values \n", " pred: array of predicted values\n", " \n", " returns: mean square error loss\n", " \"\"\"\n", " \n", " return np.sum((true - pred)**2)" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "fig, ax1 = plt.subplots(1,1, figsize = (7,5))\n", "\n", "# array of same target value 10000 times\n", "target = np.repeat(100, 10000) \n", "pred = np.arange(-10000,10000, 2)\n", "\n", "loss_mse = [mse(target[i], pred[i]) for i in range(len(pred))]\n", "\n", "# plot \n", "ax1.plot(pred, loss_mse)\n", "ax1.set_xlabel('Predictions')\n", "ax1.set_ylabel('Loss')\n", "ax1.set_title(\"MSE Loss vs. Predictions\")\n", "\n", "fig.tight_layout()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Mean Absolute Error (MAE/ L1 loss)\n", "$ MAE = \\sum\\limits_{i=1}^n {|y_i - y_i^p|} $ " ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [], "source": [ "def mae(true, pred):\n", " \"\"\"\n", " true: array of true values \n", " pred: array of predicted values\n", " \n", " returns: mean absolute error loss\n", " \"\"\"\n", " \n", " return np.sum(np.abs(true - pred))" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "fig, ax1 = plt.subplots(1,1, figsize = (7,5))\n", "\n", "# array of same target value 10000 times\n", "target = np.repeat(100, 10000) \n", "pred = np.arange(-10000,10000, 2)\n", "\n", "loss_mae = [mae(target[i], pred[i]) for i in range(len(pred))]\n", "\n", "# plot \n", "ax1.plot(pred, loss_mae)\n", "ax1.set_xlabel('Predictions')\n", "ax1.set_ylabel('Loss')\n", "ax1.set_title(\"MAE Loss vs. Predictions\")\n", "\n", "fig.tight_layout()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Smooth Mean Absolute Error/ Huber Loss " ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [], "source": [ "def sm_mae(true, pred, delta):\n", " \"\"\"\n", " true: array of true values \n", " pred: array of predicted values\n", " \n", " returns: smoothed mean absolute error loss\n", " \"\"\"\n", " loss = np.where(np.abs(true-pred) < delta , 0.5*((true-pred)**2), delta*np.abs(true - pred) - 0.5*(delta**2))\n", " return np.sum(loss)" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "fig, ax1 = plt.subplots(1,1, figsize = (7,5))\n", "\n", "target = np.repeat(0, 1000) \n", "pred = np.arange(-10,10, 0.02)\n", "\n", "delta = [0.1, 1, 10]\n", "\n", "losses_huber = [[sm_mae(target[i], pred[i], q) for i in range(len(pred))] for q in delta]\n", "\n", "# plot \n", "for i in range(len(delta)):\n", " ax1.plot(pred, losses_huber[i], label = delta[i])\n", "ax1.set_xlabel('Predictions')\n", "ax1.set_ylabel('Loss')\n", "ax1.set_title(\"Huber Loss/ Smooth MAE Loss vs. Predicted values (Color: Deltas)\")\n", "ax1.legend()\n", "ax1.set_ylim(bottom=-1, top = 15)\n", "\n", "fig.tight_layout()\n", "\n", "# fig.savefig('/Users/princegrover/Documents/msan/Machine-Learning/images/huber.png' )" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Log cosh loss\n", "$ L(y, y^p) = \\sum\\limits_{i=1}^n {\\log(\\cosh(y_i^p-y_i))} $ " ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [], "source": [ "def logcosh(true, pred):\n", " loss = np.log(np.cosh(pred - true))\n", " return np.sum(loss)" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "fig, ax1 = plt.subplots(1,1, figsize = (7,5))\n", "\n", "target = np.repeat(0, 1000) \n", "pred = np.arange(-10,10, 0.02)\n", "\n", "loss_logcosh = [logcosh(target[i], pred[i]) for i in range(len(pred))]\n", "\n", "# plot \n", "ax1.plot(pred, loss_logcosh)\n", "ax1.set_xlabel('Predictions')\n", "ax1.set_ylabel('Loss')\n", "ax1.set_title(\"Log-Cosh Loss vs. Predictions\")\n", "\n", "fig.tight_layout()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Quantile loss\n", "\n", " $ L_\\gamma(y, y^p) = \\sum\\limits_{i=y_i= pred, theta*(np.abs(true-pred)), (1-theta)*(np.abs(true-pred)))\n", " return np.sum(loss)" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "fig, ax1 = plt.subplots(1,1, figsize = (7,5))\n", "\n", "target = np.repeat(0, 1000) \n", "pred = np.arange(-10,10, 0.02)\n", "\n", "quantiles = [0.25, 0.5, 0.75]\n", "\n", "losses_quan = [[quan(target[i], pred[i], q) for i in range(len(pred))] for q in quantiles]\n", "\n", "# plot \n", "for i in range(len(quantiles)):\n", " ax1.plot(pred, losses_quan[i], label = quantiles[i])\n", "ax1.set_xlabel('Predictions')\n", "ax1.set_ylabel('Quantile Loss')\n", "ax1.set_title(\"Loss with Predicted values (Color: Quantiles)\")\n", "ax1.legend()\n", "\n", "fig.tight_layout()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### **All regression losses in single plot**" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(0.0, 40.0)" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "fig, ax1 = plt.subplots(1,1, figsize = (10,6.5))\n", "\n", "target = np.repeat(0, 1000) \n", "pred = np.arange(-10,10, 0.02)\n", "\n", "# calculating loss function for all predictions. \n", "loss_mse = [mse(target[i], pred[i]) for i in range(len(pred))]\n", "loss_mae = [mae(target[i], pred[i]) for i in range(len(pred))]\n", "loss_sm_mae1 = [sm_mae(target[i], pred[i], 5) for i in range(len(pred))]\n", "loss_sm_mae2 = [sm_mae(target[i], pred[i], 10) for i in range(len(pred))]\n", "loss_logcosh = [logcosh(target[i], pred[i]) for i in range(len(pred))]\n", "loss_quan1 = [quan(target[i], pred[i], 0.25) for i in range(len(pred))]\n", "\n", "\n", "losses = [loss_mse, loss_mae, loss_sm_mae1, loss_sm_mae2, loss_logcosh, loss_quan1]\n", "names = ['MSE', 'MAE','Huber (5)', 'Huber (10)', 'Log-cosh', 'Quantile (0.25)']\n", "cmap = ['#d53e4f',\n", "'#fc8d59',\n", "'#fee08b',\n", "'#e6f598',\n", "'#99d594',\n", "'#3288bd']\n", "\n", "for lo in range(len(losses)):\n", " ax1.plot(pred, losses[lo], label = names[lo], color= cmap[lo])\n", "ax1.set_xlabel('Predictions')\n", "ax1.set_ylabel('Loss')\n", "ax1.set_title(\"Loss with Predicted values\")\n", "ax1.legend()\n", "ax1.set_ylim(bottom=0, top=40)\n", "\n", "# fig.savefig('/Users/princegrover/Documents/msan/Machine-Learning/images/all_regression.png' )" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Classifications loss\n", "\n", "* Binary cross entropy \n", "* Negative log likelihood\n", "* Cross entropy\n", "* Kullback–Leibler divergence\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Binary cross entropy or negative log likelihood" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [], "source": [ "def bin_ce(true, pred):\n", " \"\"\"\n", " true: array of true values \n", " pred: array of predicted values\n", " \n", " returns: binary cross entropy loss\n", " \"\"\"\n", " loss = np.where(true==1, np.log(pred), np.log(1-pred))\n", " return -np.sum(loss)" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "fig, ax1 = plt.subplots(1,1)\n", "\n", "# array of same target value 10000 times\n", "target = np.repeat(1, 10000) # considering prediction to be 1\n", "pred = np.arange(0,1, 0.0001) # all predictions b/w 0 and 1 for 10k values\n", "\n", "# calculating loss function for all predictions. \n", "loss_bin_ce = [bin_ce(target[i], pred[i]) for i in range(len(pred))]\n", "\n", "# plot for binary cross entropy\n", "ax1.plot(pred, loss_bin_ce)\n", "ax1.set_xlabel('Predictions')\n", "ax1.set_ylabel('Binary Cross Entropy Loss/ Log Loss')\n", "ax1.set_title(\"Loss with Predicted values\")\n", "\n", "fig.tight_layout()\n", "# fig.savefig()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Focal loss" ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [], "source": [ "def focal(true, pred, gamma):\n", " \"\"\"\n", " true: array of true values \n", " pred: array of predicted values\n", " \n", " returns: binary cross entropy loss\n", " \"\"\"\n", " loss = np.where(true==1, (1-pred)**gamma*(np.log(pred)), pred**gamma*(np.log(1-pred)))\n", " return -np.sum(loss)" ] }, { "cell_type": "code", "execution_count": 19, "metadata": { "scrolled": true }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "fig, ax1 = plt.subplots(1,1)\n", "\n", "# array of same target value 10000 times\n", "target = np.repeat(1, 10000) # considering prediction to be 1\n", "pred = np.arange(0,1, 0.0001) # all predictions b/w 0 and 1 for 10k values\n", "\n", "# calculating loss function for all predictions. \n", "gammas = [0, 0.5, 1, 2, 5]\n", "losses_focal = [[focal(target[i], pred[i], gamma) for i in range(len(pred))] for gamma in gammas]\n", "\n", "# plot for binary cross entropy\n", "for i in range(len(gammas)):\n", " ax1.plot(pred, losses_focal[i], label = gammas[i])\n", "ax1.set_xlabel('Predictions')\n", "ax1.set_ylabel('Focal Loss')\n", "ax1.set_title(\"Loss with Predicted values (Color: Gammas)\")\n", "ax1.legend()\n", "\n", "# make right and top lines invisible\n", "ax1.spines['top'].set_visible(False) # Make the top axis line for a plot invisible\n", "ax1.spines['right'].set_visible(False) # Make the right axis line for a plot invisible\n", "\n", "fig.tight_layout()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Hinge loss" ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [], "source": [ "def hinge(true, pred):\n", " \"\"\"\n", " true: array of true values \n", " pred: array of predicted values\n", " \n", " returns: negative log likelihood loss\n", " \"\"\"\n", " loss = np.max((0, (1 - pred*true)))\n", " return np.sum(loss)" ] }, { "cell_type": "code", "execution_count": 21, "metadata": { "scrolled": false }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "fig, ax1 = plt.subplots(1,1)\n", "\n", "# array of same target value 10000 times\n", "target = np.repeat(1, 10000) # considering prediction to be 1\n", "pred = np.arange(0,1, 0.0001) # all predictions b/w 0 and 1 for 10k values\n", "\n", "# calculating loss function for all predictions. \n", "loss_hinge = [hinge(target[i], pred[i]) for i in range(len(pred))]\n", "\n", "# plot for hinge\n", "ax1.plot(pred, loss_hinge)\n", "ax1.set_xlabel('Predictions')\n", "ax1.set_ylabel('Hinge Loss')\n", "ax1.set_title(\"Loss with Predicted values\")\n", "\n", "fig.tight_layout()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Square loss" ] }, { "cell_type": "code", "execution_count": 22, "metadata": {}, "outputs": [], "source": [ "def sq_loss(true, pred):\n", " \"\"\"\n", " true: array of true values \n", " pred: array of predicted values\n", " \n", " returns: negative log likelihood loss\n", " \"\"\"\n", " loss = (1 - pred*true)**2\n", " return np.sum(loss)" ] }, { "cell_type": "code", "execution_count": 23, "metadata": { "scrolled": false }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "fig, ax1 = plt.subplots(1,1)\n", "\n", "# array of same target value 10000 times\n", "target = np.repeat(1, 10000) # considering prediction to be 1\n", "pred = np.arange(0,1, 0.0001) # all predictions b/w 0 and 1 for 10k values\n", "\n", "# calculating loss function for all predictions. \n", "loss_sq = [sq_loss(target[i], pred[i]) for i in range(len(pred))]\n", "\n", "# plot for hinge\n", "ax1.plot(pred, loss_sq)\n", "ax1.set_xlabel('Predictions')\n", "ax1.set_ylabel('Square Loss')\n", "ax1.set_title(\"Loss with Predicted values\")\n", "\n", "fig.tight_layout()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Logistic loss" ] }, { "cell_type": "code", "execution_count": 24, "metadata": {}, "outputs": [], "source": [ "def log_loss(true, pred):\n", " \"\"\"\n", " true: array of true values \n", " pred: array of predicted values\n", " \n", " returns: negative log likelihood loss\n", " \"\"\"\n", " loss = np.log(1 + np.exp(-(pred*true)))/np.log(2)\n", " return np.sum(loss)" ] }, { "cell_type": "code", "execution_count": 25, "metadata": { "scrolled": false }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "fig, ax1 = plt.subplots(1,1)\n", "\n", "# array of same target value 10000 times\n", "target = np.repeat(1, 10000) # considering prediction to be 1\n", "pred = np.arange(0,1, 0.0001) # all predictions b/w 0 and 1 for 10k values\n", "\n", "# calculating loss function for all predictions. \n", "loss_log_loss = [log_loss(target[i], pred[i]) for i in range(len(pred))]\n", "\n", "# plot for hinge\n", "ax1.plot(pred, loss_log_loss)\n", "ax1.set_xlabel('Predictions')\n", "ax1.set_ylabel('Logistic Loss')\n", "ax1.set_title(\"Loss with Predicted values\")\n", "\n", "fig.tight_layout()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Exponential loss" ] }, { "cell_type": "code", "execution_count": 30, "metadata": {}, "outputs": [], "source": [ "def expo(true, pred):\n", " \"\"\"\n", " true: array of true values \n", " pred: array of predicted values\n", " \n", " returns: exponential loss\n", " \"\"\"\n", " loss = np.exp(-(pred*true))\n", " return np.sum(loss)" ] }, { "cell_type": "code", "execution_count": 32, "metadata": { "scrolled": true }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "fig, ax1 = plt.subplots()\n", "\n", "# array of same target value 10000 times\n", "target = np.repeat(1, 10000) # considering prediction to be 1\n", "pred = np.arange(0,1, 0.0001) # all predictions b/w 0 and 1 for 10k values\n", "\n", "# calculating loss function for all predictions. \n", "loss_exp = [expo(target[i], pred[i]) for i in range(len(pred))]\n", "\n", "# plot for exponential loss\n", "ax1.plot(pred, loss_exp)\n", "ax1.set_xlabel('Predictions')\n", "ax1.set_ylabel('Exponential Loss')\n", "ax1.set_title(\"Loss with Predicted values\")\n", "fig.tight_layout()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Kullback–Leibler divergence" ] }, { "cell_type": "code", "execution_count": 33, "metadata": {}, "outputs": [], "source": [ "def kld(true, pred):\n", " \"\"\"\n", " true: array of true values \n", " pred: array of predicted values\n", " \n", " returns: KL divergence loss\n", " \"\"\"\n", " loss = pred*(np.log(pred) - true)\n", " return np.sum(loss)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Embedding loss (have 2 inputs and compare them)\n", "\n", "* Hinge embedding criteria\n", "* L1 Hinge embedding\n", "* Cosine distance" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Miscelaneus losses\n", "\n", "* Haversine distance\n", "* Weighted average of muliple losses" ] } ], "metadata": { "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.6.5" }, "toc": { "nav_menu": {}, "number_sections": true, "sideBar": true, "skip_h1_title": false, "title_cell": "Table of Contents", "title_sidebar": "Contents", "toc_cell": false, "toc_position": {}, "toc_section_display": true, "toc_window_display": false } }, "nbformat": 4, "nbformat_minor": 2 }