神经网络学习之代价函数详解
来源:互联网 发布:telnet 的端口号是什么 编辑:程序博客网 时间:2024/06/05 18:49
神经网络是机器学习必学内容之一,本文和大家分享的就是神经网络中的代价函数相关内容,一起来看看吧,希望对大家有所帮助。
之前我们使用神经网络算法进行图像识别,所使用的参数都是已知的。
那么这些参数是如何得来的呢?
这其实和之前线性回归以及逻辑回归的是类似的,我们要知道它的代价函数。
在此之前,先了解一下各个标记。例如对于下面这样一个神经网络:
我们用 L 来标记神经网络的层数,例如这里就是 4 。
我们用 s l 来标记第l层的单元数量,例如这里就是: s 1 = 3、s 2 = s 3 = 5 、s 4 = 4 ,注意这里是不包含偏差单元的,也就是 a 0 = 1 的单元。
每一层特征的计算,使用的公式依然是逻辑函数:
对于逻辑回归,它的代价函数是这样的:
那么以逻辑回归计算为基础,神经网络的代价函数是这样的:
第一次看到这个公式的时候,我也有点蒙,且让我逐步分解。
首先我们看看公式加号的左边部分:
相比原来的公式,增加了一个关于K的累加。这里的 K 代表着分类的数量,对应着的前面图片层次4输出结果的数量4。
这里的下标 k ,就是计算第 k 个分类的意思。
也就是说,我们需要求得的参数, 应该对每一个分类计算代价函数,并使得加总之后的结果最小。
再来看看公式加号的右边部分:
右边部分是正则化项,是对每一个 θ 的平方进行累计。我们看看三个累加的含义。
对某一层的每一行进行加总:
对某一层的每一列进行加总:
对每一层进行加总:
如果你看过之前的文章,应该知道 θ 是从 l 层次计算得到 l + 1 层中间所需的参数,对于上面的图片,你可以这样来理解:
所以这里有 L - 1 组 θ 需要计算,也就是 4 - 1 = 3。
那么对于每一组,如果第 l 层有 s l 个单元,第 l + 1 层有 s l+1 个单元,那么 θ (l) 就是一个 s l+1 × ( s l + 1 ) 的矩阵。
θ (1) 是一个 4 × 5 的矩阵,θ (2) 是一个 5 × 6 的矩阵,θ (3) 是一个 4 × 6 的矩阵。
这里的 θ (l) 是包括了偏差节点 a 0 对应的参数,而这些参数是不应该纳入计算的。
所以我们会看到计算列 i 对应的上标是 s l ,下标是 i = 1,也就是只计算各个单元对应的参数。
所以对于每一层的 θ ,扣除了第一列偏差参数,需要计算的参数数量就是 sl+1 × sl。
来源:简书
- 神经网络学习之代价函数详解
- 机器学习笔记之代价函数
- 机器学习之建模与代价函数
- 神经网络与深度学习 笔记4 交叉熵代价函数 softmax函数
- 机器学习-代价函数
- 机器学习-代价函数
- 【机器学习】代价函数
- 神经网络中交叉熵代价函数 求导
- 神经网络与深度学习读书笔记第五天----交叉熵代价函数入门
- Machine Learning第五讲[神经网络: 学习] --(一)代价函数和BP算法
- 神经网络与深度学习笔记(四)为什么用交叉熵代替二次代价函数
- 课程笔记之六:神经网络的代价函数和误差反向传播算法
- 神经网络三:浅析神经网络backpropagation算法中的代价函数
- 机器学习笔记之代价函数(二)
- 机器学习笔记之代价函数(三)
- 机器学习中的代价函数
- 机器学习中的代价函数
- 机器学习-代价函数 I
- 22. Generate Parentheses
- 关于DOS的一些小知识
- 原码、补码、反码
- Java后台框架篇--EL表达式为什么可以取到struts值栈中的值
- 堆、栈在内存中的存储以及程序调用
- 神经网络学习之代价函数详解
- Continuous Integration in DevOps
- 将java源码打成jar包
- 在 Python 中使用 Neo4j
- JZOJ 5266. number
- 使用IntelliJ IDEA 14和Maven创建java web项目
- 谈一谈,做一个杀毒软件,必备的Windows驱动程序
- java简单操作mongodb
- Tyvj4879(dp+倍增+NTT)