BP Neural Networks初步理解
来源:互联网 发布:免费顶级域名注册 编辑:程序博客网 时间:2024/05/26 05:53
bp神经网络,bp的全称是Back Propagation,中文译为反向传播。首先来一张该神经网络的图:
这是一张只有一层hidden layer的神经网络,它的大致做法可以用这样的式子表示:
其实X是输入层,Y是输出层,Z是隐藏层,alpha和beta都是待估计的参数,第一行那个字母函数一般选择sigmoid函数,而gk(T)这个函数一般是sotfmax函数如下:
需要注意的一点是,每一层到下一层的计算,除了该层的所有点,还会加一个点,那么假如l层到l+1层,那么参数矩阵的维数为( (l+1)层结点个数*l层节点个数+1 ),这个加的节点可以类似理解为线性回归的常数项1。
下面说下神经网络是如何进行拟合参数的,一般来讲,对于回归,有误差函数:
而对于分类,有误差函数:
注意这里的y不是一列向量,而是一个矩阵,如果第i个样本是第k类,那么yik为,否则为0。fk(xi)表示第i个样本是第j类的概率,这个概率用softmax函数可以快速得到。
对于分类的问题,之前做过coursera上面机器机器学习公开课的实验,Andrew Ng采用的最后一层依然是sigmoid函数法,每一层的一个点都是前一层所有点的线性组合然后利用sigmoid函数映射到[0,1]之前的数,最后的结果则是一列向量,每个维度都取(0,1)直接的一个值。可以发现,softmax函数和它的区别只是把最后一层归一化了,其实在分类上,他们的结果应该一致的,因为都是取值最大的那个类作为结果。
其中N为样本个数,以回归为例,每一个Ri对alpha和beta分别求导,得到:
我们的目标是找到最适合的alpha和beta,使得误差最小,那么自然而然想到了梯度下降法,从而有参数的迭代方程:
这个方程组出现了一个学习速率,来代表每次参数改变的多少。
在具体实现过程中,先随机取参数,然后正向计算出各个隐藏层的值,最后算得最后的估计值,而这个估计值存在误差,需要修改各层之间的参数,每一次参数的变化都是按照使得误差变小的方向前进一段距离,这个参数修改的过程是逆着的,就是离输出层最近的参数先被修改,这也就是所谓的反向传播,每次修改好参数,再通过修改后的参数计算输出层,在计算误差,误差过大再修改参数,一直到误差小到一定程度为止。
神经网络参数的初始值一般取接近0的随机数,另外对于每层节点的个数,the elements大概也有说明,每层点的个数大概是5到100个,最后对于过拟合问题,对于上面只有一个hidden层的情况,可以在误差函数中加入
来作为新的代价函数,使得新的误差函数为R(theta)+lambda*J(theta)来解决。
- BP Neural Networks初步理解
- 理解文章《Notes on Convolutinal Neural Networks》
- Neural networks
- Neural Networks
- neural networks
- Neural Networks
- Neural Networks
- Neural Networks
- Neural Networks
- Neural Networks
- Neural Networks
- 对bp神经网络的初步理解
- Hinton Neural Networks课程笔记3d:反向传播算法(BP)
- BP,RNN 和 LSTM暨《Supervised Sequence Labelling with Recurrent Neural Networks-2012》阅读笔记
- 利用Theano理解深度学习——Convolutional Neural Networks
- 二值网络(Binarized Neural Networks)学习与理解
- 《Deep Forest: Towards an Alternative to Deep Neural Networks》理解
- BP neural network note
- POJ 1840 Eqs (hash)
- 非常强大的射击动作游戏源码完整版
- .NET用NCO连接SAP 从RFC查询数据 代码配置连接SAP的信息
- gdb 使用笔记
- Stl各容器对比
- BP Neural Networks初步理解
- spring+springMVC,声明式事务失效,原因以及解决办法
- Ioc-Unity整理
- [LeetCode OJ]ZigZag Conversion && Valid Sudoku && String to Integer (atoi)
- [BZOJ 1043][HAOI 2008]下落的圆盘(计算几何)
- ubuntu下ftp常识用法
- 示例解读Java的跨平台原理
- Apache_Maven基本配置和使用
- Swift语法基础:9 - Swift的字面量, 类型转换, 类型别名