在Machine Learning的Regression Problem中,常用Quadratic Function来做Cost Function,用以表征Hypothesis与Y之间的差距。而通过Gradient Descent来不断调整参数,从而缩小这个Gap从而训练我们的算法。

而在Neural Network的Classification Problem中,如果依然使用Quadratic Function,则会出现学习速率过慢的问题,这时我们就需要选用Cross-entropy来做Cost Function。首先,在NN的Backpropagation过程中,我们可以知道Cost对于最后一层的weight矩阵的梯度为:

其中C对激励输入zL的梯度记为:

而在使用Quadratic作为Cost的情况下:

可以看出,该梯度是由Hypothesis与Y的差值以及σ'(z)决定。此时存在一个问题:在训练的最初阶段,我们的参数的随机的,这意味着初期Z值有可能很大,也有可能很小,假如y=0,但由于z值很大导致最终的输出aL=1,此时预测结果与期望值正好相反,但此时σ的梯度却近似于0,导致学习速率很慢。我们对照下面的两张图即可有所体会:

如果初始值选择的不好,就会是这个情况。在最初训练时,cost下降很慢,当过了某个临界点,学习加快:

然而,我们的期望是,结果差的越多,理应学习速率越快。就像开车出门,如果走了目的地相反的方向,那就要调头呀!而σ'(z)作为斜率,在z很大或很小的地方斜率几乎为零,导致学习速率很慢。所以我们引入一个新的Cost Function:Cross-entropy,其形式如下:

首先,如果我们计算输出cost对第L层第j结点权重ω的偏导(梯度):

在运算过程中g'(z)被消掉了,也就是说,无论g'(z)是什么情况,不影响我们的梯度,而决定性因素,仅仅是真实输出值与期望值的差。此外,Cost Function变更了,那么在最后一层的δ变更为:

但在Deep Learning中,其实仅仅一个Cross-entropy是无法解决全部的梯度问题的,在另一篇文章中,我也介绍到了Gradient Vanishing的问题。

Cross-entropy Cost Function for Classification Problem的更多相关文章

  1. 关于交叉熵损失函数Cross Entropy Loss

    1.说在前面 最近在学习object detection的论文,又遇到交叉熵.高斯混合模型等之类的知识,发现自己没有搞明白这些概念,也从来没有认真总结归纳过,所以觉得自己应该沉下心,对以前的知识做一个 ...

  2. 一篇博客:分类模型的 Loss 为什么使用 cross entropy 而不是 classification error 或 squared error

    https://zhuanlan.zhihu.com/p/26268559 分类问题的目标变量是离散的,而回归是连续的数值. 分类问题,都用 onehot + cross entropy traini ...

  3. machine learning(11) -- classification: advanced optimization 去求cost function最小值的方法

    其它的比gradient descent快, 在某些场合得到广泛应用的求cost function的最小值的方法 when have a large machine learning problem, ...

  4. machine learning(10) -- classification:logistic regression cost function 和 使用 gradient descent to minimize cost function

    logistic regression cost function(single example) 图像分布 logistic regression cost function(m examples) ...

  5. 【机器学习】代价函数(cost function)

    注:代价函数(有的地方也叫损失函数,Loss Function)在机器学习中的每一种算法中都很重要,因为训练模型的过程就是优化代价函数的过程,代价函数对每个参数的偏导数就是梯度下降中提到的梯度,防止过 ...

  6. Model Representation and Cost Function

    Model Representation To establish notation for future use, we’ll use x(i) to denote the “input” vari ...

  7. 【机器学习基础】交叉熵(cross entropy)损失函数是凸函数吗?

    之所以会有这个问题,是因为在学习 logistic regression 时,<统计机器学习>一书说它的负对数似然函数是凸函数,而 logistic regression 的负对数似然函数 ...

  8. [Machine Learning] 浅谈LR算法的Cost Function

    了解LR的同学们都知道,LR采用了最小化交叉熵或者最大化似然估计函数来作为Cost Function,那有个很有意思的问题来了,为什么我们不用更加简单熟悉的最小化平方误差函数(MSE)呢? 我个人理解 ...

  9. logistic回归具体解释(二):损失函数(cost function)具体解释

    有监督学习 机器学习分为有监督学习,无监督学习,半监督学习.强化学习.对于逻辑回归来说,就是一种典型的有监督学习. 既然是有监督学习,训练集自然能够用例如以下方式表述: {(x1,y1),(x2,y2 ...

随机推荐

  1. python 搜索路径顺序查找

    但我们通过 import 或者frome .. import...查找模块的时候,当你导入一个模块,Python 解析器对模块位置的搜索顺序是 1.当前目录 2, 如果不在当前目录,Python 则搜 ...

  2. Winfrom中数据的双向绑定(使用INotifyPropertyChanged)

    在WPF中新建项目是自动实现了INotifyPropertyChanged接口,用于数据绑定时非常的方便在winfrom中也可以实现INotifyPropertyChanged接口 将需要绑定的字段写 ...

  3. JSP学习(5)

    JSP学习(5) 保存用户状态的两大机制 session对象 Cookie Cookie简介 是Web服务器保存在客户端的一系列文本信息 典型应用 判断注册用户是否已经登录 购物车处理 作用 对特定对 ...

  4. Linux--shell grep与正则表达式--04

    一.grep程序 Linux下有文本处理三剑客:grep.sed.awk grep:文本 行过滤工具 sed:文本 行编辑器(流编辑器) awk:报告生成器(做文本输出格式化) 1.grep grep ...

  5. LNMP集群架构篇

    一.LNMP介绍 1.使前端web服务和后端存储服务进行串联 2.主要实现处理php动态请求 工作原理: L:linux  N:nginx  M:mysql   P:php 二.lnmp部署 我的环境 ...

  6. python-使用list和tuple

    list Python内置的一种数据类型是列表:list.list是一种有序的集合,可以随时添加和删除其中的元素. 比如,列出班里所有同学的名字,就可以用一个list表示: >>> ...

  7. css:鼠标点击出现有颜色的边框?如何解决

    今天遇到上图这样出现有颜色的边框 解决办法: css设置属性 outline:none;

  8. IDEA中项目引入独立包打包失败问题解决(找不到包)

    在terminal中执行以下命令:mvn install:install-file -DgroupId=ocx.GetRandom -DartifactId=GetRandom -Dversion=1 ...

  9. 黑客教父郭盛华:提升家庭WiFi的10个方法

    中国黑客教父,知名网络安全专家郭盛华曾发博文表示:“WiFi是互联网发展过程中最重要的发展之一,虚拟世界没有百分百的安全,所以杀毒软件并不可以抵抗全部的黑客攻击.“ 用户WiFi密码尽量不要使用简单单 ...

  10. mysql order by 自定义

    TIMESTAMPDIFF 语法: TIMESTAMPDIFF(interval,datetime_expr1,datetime_expr2). 说明: 返回日期或日期时间表达式datetime_ex ...