神经网络的学习 机器学习基础(4)
来源:互联网 发布:php gtk 还有人维护吗 编辑:程序博客网 时间:2024/05/24 04:30
神经网络包含前向传播与反向传播。
1 代价函数与反向传播
1.1 代价函数
二类别分类:0 或 1,记
多类别分类:
神经网络的代价函数,与逻辑回归的代价函数类似,记做
注意点:
神经网络中的
1.2 反向传播算法(BP)
求解神经网络代价函数的梯度可采用梯度算法或反向传播算法。
计算神经网络代价函数的最小值,即
要求计算代价函数的值及其梯度值,即
其中,定义梯度值
1.3 反向传播直观的表达
2 反向传递实践
2.1 实现:参数展开
参数展开便于变量的存储与运算,实质是使“矩阵与向量”转换方便。
2.1.1 高级优化算法
代价函数与优化方法的形式:
Function [jval, gradient] = costFunction(theta)…optTheta = fminunc(@costFunction, initialThetam options)
其中
神经网络模型(L=4),
2.1.2 例子
2.2 梯度检验
神经网络BP的梯度计算相对复杂,可通过梯度检查的方法来避免梯度计算上出现的小错误,用于确认反向梯度计算是否正确。该方法仅用于测试,系统正式使用时应关闭。
2.2.1 梯度的数值计算
2.2.2 向量 θ
当
这种数值偏微分的近似计算方法,计算量很大,不适用于神经网络中的梯度计算。它的代码表达方式为
thetaPlus(i) = theta(i) + EPSILON;thetaPlus(i) = theta(i) - EPSILON;gradApprox(i) = (J(thetaPlus) – J(thetaPlus)) / (2*EPSILON);
检查
该方法可以作梯度验证(Gradient checking)。
2.3 随机初始化
随机初始化是破坏对称性的一种方法,即初始化
Theta1 = rand(10,11) * (2*INIT_EPSILON) – INIT_EPSILON;Theta2 = rand(1,11) * (2*INIT_EPSILON) – INIT_EPSILON;
2.4 总体回顾
2.4.1 训练一个神经网络
- 输入单元:
x(i) ,特征向量 - 隐藏单元:层数与单元个数
- 输出单元:
y ,类别
例如
算法的训练步骤:
- 随机初始化
θ - 前向传播求解
hθ(x(i)) - 计算代价函数
J(θ) - 反向传播计算梯度
∂∂θ(l)jkJ(θ) - 梯度检查
∂∂θ(l)jkJ(θ) ,采用数值计算的方法来检验(检验后,舍弃该步骤); - 采用梯度下降法或高级的优化算法(基于反向神经网络求解梯度)
计算minθJ(θ)
备注:J(θ) 会是一个非凸函数,但局部极小值对训练结果的影响并不是很大。
3 神经网络的应用
应用:基于图像处理的自动驾驶车辆。
- 神经网络的学习 机器学习基础(4)
- 神经网络的表达式 机器学习基础(3)
- 基于神经网络的机器学习基础
- 神经网络的基础学习
- 神经网络和机器学习基础入门分享
- 机器学习之神经网络基础概念
- 机器学习基础——神经网络
- 神经网络和机器学习基础入门分享
- 神经网络和机器学习基础入门分享
- 人工智能,机器学习,神经网络,深度学习之基础概念
- 神经网络 专家系统 机器学习
- 神经网络 专家系统 机器学习
- 神经网络 专家系统 机器学习
- 神经网络 专家系统 机器学习
- 神经网络 专家系统 机器学习
- 神经网络 专家系统 机器学习
- 神经网络 专家系统 机器学习
- 神经网络 专家系统 机器学习
- SQLHelper.cs
- Service服务(非绑定与绑定)
- leetcode笔记--Add Digits
- listView或者scrollView中包含gridView或listView的解决方法
- LevelDB简介及入门手册
- 神经网络的学习 机器学习基础(4)
- Java中print、printf、println的区别
- 深入浅出理解Paxos算法
- poj 3126 Prime Path
- 有100个人围成一个圈,从1开始报数,报到14的这个人就要退出, 然后其他人重新开始,从1报数,到14退出。问:最后剩下的是100人中的第几个人?
- markdown学习2:Markdown编辑器之比较
- leetcode笔记--Add Binary
- python 编码问题
- 金额转换,阿拉伯数字转换成中国传统形式。例如:101000001010 转换为 壹仟零壹拾亿零壹仟零壹拾圆整