十一、神经网络的成本函数和误差反向传播算法

简介: 十一、神经网络的成本函数和误差反向传播算法

1、Cost Function


对于逻辑回归来说,归一化之后的成本函数形式如下所示:

13dd3c1dfc1747438b178367f910717c.png

神经网络的成本函数是上述逻辑回归成本函数的一般泛化,其形式如下所示:

378019412d9b4307ae34ffb7bd6cab5f.png


其中 L L L表示神经网络的层数, s l s_l sl表示第 l l l层中的神经元的个数, K K K表示输出层神经元的个数,即分类的数量。注意归一化项中不包含偏置项的归一化处理。



2、反向传播算法-Backward Algorithm



目标是寻找成本函数的最小值,反向传播算法的目的是通过误差反向传播的方式来求解需要成本函数 J ( θ ) J(\theta) J(θ)关于预测参数 θ \theta θ的导数。误差反向传播的步骤如下所示:

61d3d81ca2e4419b85d4945c09704655.png


δ(L)的计算方式如下所示:

8bba38cd897a4dcc9740b1b9485579ca.png


最终近似求解偏导数的方式如下所示:

c405921387a74b108e0fde32f7eca5ae.png



其中, D D D即为成本函数 J Θ的近似偏导数:4a9bc1cfa4554341ae012bdd5e4d37d5.png


3、反向传播在实践中的应用


在进行正向传播求激活值或者反向传播求误差值时,权重矩阵一般采用矩阵的形式;但是在进行参数优化时,一般采用长向量的形式,所以在计算时需要灵活转换。反向传播机制下参数学习算法的流程如下所示:b723388d73c449b5a9ebb099815a7485.png



3.1 梯度检验-Gradient Checking


为了保证梯度计算的正确性,通常使用梯度检验来测试算法。使用割线的斜率代替导数的值时近似计算导数的常规思路:

ef178974527544778b5d3c683ccd8054.png


使用割线斜率检测误差反向传播计算的梯度的准确性:

8ef0b4acfd4d4e929f8036d193b012f1.png


当检验完反向传播计算的梯度没有问题之后,在训练模型参数时,需要将检验梯度正确性与否的代码屏蔽掉,否则训练的过程将非常缓慢,因为误差反向传播的计算速度远高于通过割线计算梯度的速度。



3.2 随机初始化-Random Initialization


若将参数 Θ \Theta Θ开始全部设置为0,则在每一次迭代之后,由同一个神经元连接的不同子神经元的输入结果 z z z全部相同,则使得神经网络探索的特征数量下降,会降低神经网络的性能。


为了使神经网络更加有效,通常采用随机初始化参数 Θ 的方式,将 Θ取值为 [ − ϵ , ϵ ] 中的任意值。随机初始化也叫作打破对称性-Symmetry Breaking。




4、神经网络算法整体流程


1、选择一个神经网络结构-神经元之间的连接方式

90417b8d0e8a41f9824459ded8599232.png


输入单元的数量即为:特征数量 x ( i ) x^{(i)} x(i),输出单元的数量即为:分类的个数;隐藏层若多于一层,则每一层应该含有相同数量的神经元,同时通常来说,层数越多,模型效果越好,但是相对的计算时间会加长。对于每一个隐藏层的神经元个数,其通常为输入特征数量的2-3倍。


2、训练一个神经网络,包含以下六步:


2.1 随机初始化权重,通常初始化为接近0的数;


2.2 执行前向传播,对于每一个输入 x ( i ) x(i) x(i)获得其输出结果 hΘ(x(i))


2.3 求解成本 J(Θ)


2.4 执行误差反向传播来计算偏导数∂Θ(jk)(l)∂J(Θ)

image.png


2.5 使用梯度检验来检查通过误差反向传播计算的梯度和通过数值估计计算的梯度是否近似相同,若相同,则将这部分代码注释掉,在训练模型参数时不进行使用


2.6 使用梯度下降或者高级优化方法来由于以 Θ 为参数的成本函数 J(Θ)












相关文章
|
2月前
|
机器学习/深度学习 人工智能 算法
基于Python深度学习的眼疾识别系统实现~人工智能+卷积网络算法
眼疾识别系统,本系统使用Python作为主要开发语言,基于TensorFlow搭建卷积神经网络算法,并收集了4种常见的眼疾图像数据集(白内障、糖尿病性视网膜病变、青光眼和正常眼睛) 再使用通过搭建的算法模型对数据集进行训练得到一个识别精度较高的模型,然后保存为为本地h5格式文件。最后使用Django框架搭建了一个Web网页平台可视化操作界面,实现用户上传一张眼疾图片识别其名称。
173 5
基于Python深度学习的眼疾识别系统实现~人工智能+卷积网络算法
|
7天前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于GRU网络的MQAM调制信号检测算法matlab仿真,对比LSTM
本研究基于MATLAB 2022a,使用GRU网络对QAM调制信号进行检测。QAM是一种高效调制技术,广泛应用于现代通信系统。传统方法在复杂环境下性能下降,而GRU通过门控机制有效提取时间序列特征,实现16QAM、32QAM、64QAM、128QAM的准确检测。仿真结果显示,GRU在低SNR下表现优异,且训练速度快,参数少。核心程序包括模型预测、误检率和漏检率计算,并绘制准确率图。
80 65
基于GRU网络的MQAM调制信号检测算法matlab仿真,对比LSTM
|
12天前
|
机器学习/深度学习 数据采集 算法
基于WOA鲸鱼优化的CNN-GRU-SAM网络时间序列回归预测算法matlab仿真
本项目基于MATLAB 2022a实现时间序列预测,采用CNN-GRU-SAM网络结构,结合鲸鱼优化算法(WOA)优化网络参数。核心代码含操作视频,运行效果无水印。算法通过卷积层提取局部特征,GRU层处理长期依赖,自注意力机制捕捉全局特征,全连接层整合输出。数据预处理后,使用WOA迭代优化,最终输出最优预测结果。
|
6天前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于机器学习的人脸识别算法matlab仿真,对比GRNN,PNN,DNN以及BP四种网络
本项目展示了人脸识别算法的运行效果(无水印),基于MATLAB2022A开发。核心程序包含详细中文注释及操作视频。理论部分介绍了广义回归神经网络(GRNN)、概率神经网络(PNN)、深度神经网络(DNN)和反向传播(BP)神经网络在人脸识别中的应用,涵盖各算法的结构特点与性能比较。
|
26天前
|
算法 安全 大数据
【算法合规新时代】企业如何把握“清朗·网络平台算法典型问题治理”专项行动?
在数字化时代,算法推动社会发展,但也带来了信息茧房、大数据杀熟等问题。中央网信办发布《关于开展“清朗·网络平台算法典型问题治理”专项行动的通知》,针对六大算法问题进行整治,明确企业需落实算法安全主体责任,建立健全审核与管理制度,并对算法进行全面审查和备案。企业应积极自查自纠,确保算法合规透明,防范风险,迎接新机遇。
|
4天前
|
机器学习/深度学习 数据采集 算法
基于GA遗传优化的CNN-LSTM-SAM网络时间序列回归预测算法matlab仿真
本项目使用MATLAB 2022a实现时间序列预测算法,完整程序无水印。核心代码包含详细中文注释和操作视频。算法基于CNN-LSTM-SAM网络,融合卷积层、LSTM层与自注意力机制,适用于金融市场、气象预报等领域。通过数据归一化、种群初始化、适应度计算及参数优化等步骤,有效处理非线性时间序列,输出精准预测结果。
|
17天前
|
传感器 算法 物联网
基于粒子群算法的网络最优节点部署优化matlab仿真
本项目基于粒子群优化(PSO)算法,实现WSN网络节点的最优部署,以最大化节点覆盖范围。使用MATLAB2022A进行开发与测试,展示了优化后的节点分布及其覆盖范围。核心代码通过定义目标函数和约束条件,利用PSO算法迭代搜索最佳节点位置,并绘制优化结果图。PSO算法灵感源于鸟群觅食行为,适用于连续和离散空间的优化问题,在通信网络、物联网等领域有广泛应用。该算法通过模拟粒子群体智慧,高效逼近最优解,提升网络性能。
|
17天前
|
机器学习/深度学习 数据采集 算法
基于GWO灰狼优化的CNN-GRU-SAM网络时间序列回归预测算法matlab仿真
本项目基于MATLAB2022a,展示了时间序列预测算法的运行效果(无水印)。核心程序包含详细中文注释和操作视频。算法采用CNN-GRU-SAM网络,结合灰狼优化(GWO),通过卷积层提取局部特征、GRU处理长期依赖、自注意力机制捕捉全局特征,最终实现复杂非线性时间序列的高效预测。
|
12天前
|
算法
基于遗传优化算法的风力机位置布局matlab仿真
本项目基于遗传优化算法(GA)进行风力机位置布局的MATLAB仿真,旨在最大化风场发电效率。使用MATLAB2022A版本运行,核心代码通过迭代选择、交叉、变异等操作优化风力机布局。输出包括优化收敛曲线和最佳布局图。遗传算法模拟生物进化机制,通过初始化、选择、交叉、变异和精英保留等步骤,在复杂约束条件下找到最优布局方案,提升风场整体能源产出效率。
|
12天前
|
算法 安全 机器人
基于包围盒的机械臂防碰撞算法matlab仿真
基于包围盒的机械臂防碰撞算法通过构建包围盒来近似表示机械臂及其环境中各实体的空间占用,检测包围盒是否相交以预判并规避潜在碰撞风险。该算法适用于复杂结构对象,通过细分目标对象并逐级检测,确保操作安全。系统采用MATLAB2022a开发,仿真结果显示其有效性。此技术广泛应用于机器人运动规划与控制领域,确保机器人在复杂环境中的安全作业。

热门文章

最新文章