从极大似然估计的角度理解深度学习中loss函数

为了理解这一概念,首先回顾下最大似然估计的概念:
最大似然估计常用于利用已知的样本结果,反推最有可能导致这一结果产生的参数值,往往模型结果已经确定,用于反推模型中的参数.即在参数空间中选择最有可能导致样本结果发生的参数.因为结果已知,则某一参数使得结果产生的概率最大,则该参数为最优参数.
似然函数:\[ l(\theta) = p(x_1,x_2,...,x_N|\theta) = \prod_{i=1}^{N}{p(x_i|\theta)}\]
为了便于分析和计算,常使用对数似然函数:\[ H(\theta) = ln[l(\theta)]\]

1. logistics regression中常用的loss function:

在logistic regression中常定义的loss function为:\[ l(w) = -(ylog\hat y+(1-y)log(1-\hat y))\]
为什么选择这个函数作为loss function? 一个原因是相比于误差平方和函数的非凸性,交叉熵函数是凸的,因此可以通过梯度下降法求得全局最优点,详细原理请参考凸优化相关理论.
此处重点介绍另一个原因,即从最大似然估计得的角度来理解loss function的选择,Andrew Ng 也是从这个角度进行解释的.对于logsitic regression问题,我们实际上做出了如下假设,即训练样本(x,y)服从以下分布:
\[ P(x,y|\theta) = \begin{cases}\sigma(z),&y=1 \\ 1-\sigma(z),&y=0\end{cases}\]
其中,\(z = w^Tx+b\),意思是,在参数\(\theta\)下,训练样本(x,y)出现的概率为\(P(x,y|\theta)\).

上面的概率分布函数也可以写为整体的形式:
\[p(x,y|\theta) = \sigma(z)^y(1-\sigma(z))^{1-y}\]

对于极大似然估计而言,我们的目的就是在参数空间中,寻找使得\(p(x,y|\theta)\)取得最大的w和b,因为因为训练样本(x,y)已经经过采样得到了,所以使得他们出现概率最大(越接近1)的参数就是最优的参数.

  • 对于单个样本\((x_i,y_i)\),其对应的对数似然函数为\(ln[p(x_i,y_i|\theta)]= y_iln(\sigma(z_i))+(1-y_i)ln(1-\sigma(z_i))\)(即在参数\(\theta(w,b)\)下,\((x_i,y_i)\)出现的概率),其中,\(\sigma(z_i)=w^Tx_i+b\).
    因为cost function 一般向小的方向优化,所以在似然函数前加上负号,就变为loss function
  • 对于整个样本集来说,对应的似然函数为\[ln(\prod_{i=1}^{N} p(x_i,y_i|\theta)) = \sum_{i=1}^N{y_iln(\sigma(z_i))+(1-y_i)ln(1-\sigma(z_i))}\]

2. softmax regression中常用的loss function:

softmax regression中常使用如下loss函数:
\[ l(w) = -\sum_{i=1}^{C}y_ilog\hat y_i\]
此处,C指的是样本y的维度(分类的数目),\(y_i\)指的是样本标签第i个分量,\(\hat y_i\)同义.
接下来,同样从最大似然估计的角度进行理解.对于softmax regression,我们实际上也做出了假设,即训练样本(x,y)服从以下分布:\[P(x,y|\theta) = \hat y_l = \sum_{i=1}^{C}y_i\hat y_i\],其中l是样本标签y中唯一为1的序号

  • 对于单个训练样本,其对数似然函数为\(ln[p(x_i,y_i|\theta)] = ln(\sum_{i=1}^{C}y_i\hat y_i)\),可以进一步写为\(ln[p(x_i,y_i|\theta)] = \sum_{i=1}^{C}y_iln(\hat y_i)\),因为y中只有唯一的一个维度等于1,其余全为0,通过简单的推理就可以得到化简后的结果.取负号后,得到单样本的loss函数.
  • 对于整个训练样本集而言,其对数似然函数为\[ln(\prod_{i=1}^{N} p(x_i,y_i|\theta)) =\sum_{j=1}^{m}\sum_{i=1}^{C}y_i^{(j)}ln(\hat y_i^{(j)})\]
    其中,\(y_i^{(j)}\)指的是训练样本集中第j个训练样本标签的第i个维度的值,\(\hat y_i^{(j)}\)同理.取负号求平均后,得到整个训练样本集的coss函数.

从极大似然估计的角度理解深度学习中loss函数的更多相关文章

  1. 【论文笔记】如何理解深度学习中的End to End

    End to end:指的是输入原始数据,输出的是最后结果,应用在特征学习融入算法,无需单独处理. end-to-end(端对端)的方法,一端输入我的原始数据,一端输出我想得到的结果.只关心输入和输出 ...

  2. 如何理解深度学习中的Transposed Convolution?

    知乎上的讨论:https://www.zhihu.com/question/43609045?sort=created 不过看的云里雾里,越看越糊涂. 直到看到了这个:http://deeplearn ...

  3. 从两个角度理解为什么 JS 中没有函数重载

    函数重载是指在同一作用域内,可以有一组具有相同函数名,不同参数列表(参数个数.类型.顺序)的函数,这组函数被称为重载函数.重载函数通常用来声明一组功能相似的函数,这样做减少了函数名的数量,避免了名字空 ...

  4. 深度学习中loss总结

    一.分类损失 1.交叉熵损失函数 公式: 交叉熵的原理 交叉熵刻画的是实际输出(概率)与期望输出(概率)的距离,也就是交叉熵的值越小,两个概率分布就越接近.假设概率分布p为期望输出,概率分布q为实际输 ...

  5. 【转载】深度学习中softmax交叉熵损失函数的理解

    深度学习中softmax交叉熵损失函数的理解 2018-08-11 23:49:43 lilong117194 阅读数 5198更多 分类专栏: Deep learning   版权声明:本文为博主原 ...

  6. 如何正确理解深度学习(Deep Learning)的概念

    现在深度学习在机器学习领域是一个很热的概念,不过经过各种媒体的转载播报,这个概念也逐渐变得有些神话的感觉:例如,人们可能认为,深度学习是一种能够模拟出人脑的神经结构的机器学习方式,从而能够让计算机具有 ...

  7. 深度学习中交叉熵和KL散度和最大似然估计之间的关系

    机器学习的面试题中经常会被问到交叉熵(cross entropy)和最大似然估计(MLE)或者KL散度有什么关系,查了一些资料发现优化这3个东西其实是等价的. 熵和交叉熵 提到交叉熵就需要了解下信息论 ...

  8. 深度学习中的batch_size,iterations,epochs等概念的理解

    在自己完成的几个有关深度学习的Demo中,几乎都出现了batch_size,iterations,epochs这些字眼,刚开始我也没在意,觉得Demo能运行就OK了,但随着学习的深入,我就觉得不弄懂这 ...

  9. 利用Theano理解深度学习——Multilayer Perceptron

    一.多层感知机MLP 1.MLP概述 对于含有单个隐含层的多层感知机(single-hidden-layer Multi-Layer Perceptron, MLP),可以将其看成是一个特殊的Logi ...

随机推荐

  1. js手机网络检测

    <!DOCTYPE HTML> <html lang="en"> <head> <meta charset=UTF-8"> ...

  2. Nginx下修改php.ini后重新加载配置文件命令

    修改php.ini后 如,我的 php.ini 文件是放在 /etc/php.ini php 所在目录是 /www/Linux/php-5.2.17 修改 php.ini 后要用 php-fpm 来进 ...

  3. SVD分解.潜语义分析.PythonCode

    原文链接:http://www.cnblogs.com/appler/archive/2012/02/02/2335886.html 原始英文链接:http://www.puffinwarellc.c ...

  4. [Intermediate Algorithm] - Sum All Odd Fibonacci Numbers

    题目 给一个正整数num,返回小于或等于num的斐波纳契奇数之和. 斐波纳契数列中的前几个数字是 1.1.2.3.5 和 8,随后的每一个数字都是前两个数字之和. 例如,sumFibs(4)应该返回 ...

  5. CSV文件模块的使用

    ---恢复内容开始--- 1.CSV模块使用流程 1.导入模块 impport CSV 2.打开文件(xxx.csv) with open('xxx.csv','a',encoding='utf-8' ...

  6. charles抓https设置

    1下载charles和破解包 2安装证书 打开charles的help->SSL Proxying->install charles root certificate 选择你要安装的列表里 ...

  7. 05 Django与Ajax

      一.Ajax简介 AJAX(Asynchronous Javascript And XML)翻译成中文就是“异步Javascript和XML”.即使用Javascript语言与服务器进行异步交互, ...

  8. day06-08面向对象进阶

    isinstance和issubclass 反射 setattr delattr getattr hasattr __str__和__repr__ __del__ item系列 __getitem__ ...

  9. NGUI报错处理

     Unity5.4.1与NGUI出现的问题Ignoring menu item NGUI because it is in no submenu!   Ignoring menu item NGUI ...

  10. Django之瀑布流

    一. 小功能瀑布流的实现 1.完成效果图 2.代码部分 <1>models.py from django.db import models # Create your models her ...