zoukankan      html  css  js  c++  java
  • 从极大似然估计的角度理解深度学习中loss函数

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

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

    1. logistics regression中常用的loss function:

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

    [P(x,y| heta) = egin{cases}sigma(z),&y=1 \ 1-sigma(z),&y=0end{cases} ]

    其中,(z = w^Tx+b),意思是,在参数( heta)下,训练样本(x,y)出现的概率为(P(x,y| heta)).

    上面的概率分布函数也可以写为整体的形式:

    [p(x,y| heta) = sigma(z)^y(1-sigma(z))^{1-y} ]

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

    • 对于单个样本((x_i,y_i)),其对应的对数似然函数为(ln[p(x_i,y_i| heta)]= y_iln(sigma(z_i))+(1-y_i)ln(1-sigma(z_i)))(即在参数( heta(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| heta)) = 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_iloghat y_i ]

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

    • 对于单个训练样本,其对数似然函数为(ln[p(x_i,y_i| heta)] = ln(sum_{i=1}^{C}y_ihat y_i)),可以进一步写为(ln[p(x_i,y_i| heta)] = sum_{i=1}^{C}y_iln(hat y_i)),因为y中只有唯一的一个维度等于1,其余全为0,通过简单的推理就可以得到化简后的结果.取负号后,得到单样本的loss函数.
    • 对于整个训练样本集而言,其对数似然函数为$$ln(prod_{i=1}^{N} p(x_i,y_i| heta)) =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函数.
  • 相关阅读:
    测试
    【八十一题题目合集 微软面试100题 第八十一题】
    排队问题 【微软面试100题 第八十题】
    fiddler 正则 重定向IP
    浮动div 内部元素 垂直居中
    css 诡异的多出来的几像素
    前端开发 注意问题(1)input type=“number”
    实时监听input输入
    sudo执行命令时环境变量被重置的解决方法
    laravel4 中 Redirect::intended和Redirect::guest的关系及用法
  • 原文地址:https://www.cnblogs.com/hello-ai/p/11000899.html
Copyright © 2011-2022 走看看