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

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

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(Θ)












相关文章
|
15天前
|
机器学习/深度学习 算法 TensorFlow
动物识别系统Python+卷积神经网络算法+TensorFlow+人工智能+图像识别+计算机毕业设计项目
动物识别系统。本项目以Python作为主要编程语言,并基于TensorFlow搭建ResNet50卷积神经网络算法模型,通过收集4种常见的动物图像数据集(猫、狗、鸡、马)然后进行模型训练,得到一个识别精度较高的模型文件,然后保存为本地格式的H5格式文件。再基于Django开发Web网页端操作界面,实现用户上传一张动物图片,识别其名称。
46 1
动物识别系统Python+卷积神经网络算法+TensorFlow+人工智能+图像识别+计算机毕业设计项目
|
13天前
|
机器学习/深度学习 人工智能 算法
深度学习入门:理解神经网络与反向传播算法
【9月更文挑战第20天】本文将深入浅出地介绍深度学习中的基石—神经网络,以及背后的魔法—反向传播算法。我们将通过直观的例子和简单的数学公式,带你领略这一技术的魅力。无论你是编程新手,还是有一定基础的开发者,这篇文章都将为你打开深度学习的大门,让你对神经网络的工作原理有一个清晰的认识。
|
14天前
|
机器学习/深度学习 人工智能 算法
植物病害识别系统Python+卷积神经网络算法+图像识别+人工智能项目+深度学习项目+计算机课设项目+Django网页界面
植物病害识别系统。本系统使用Python作为主要编程语言,通过收集水稻常见的四种叶片病害图片('细菌性叶枯病', '稻瘟病', '褐斑病', '稻瘟条纹病毒病')作为后面模型训练用到的数据集。然后使用TensorFlow搭建卷积神经网络算法模型,并进行多轮迭代训练,最后得到一个识别精度较高的算法模型,然后将其保存为h5格式的本地模型文件。再使用Django搭建Web网页平台操作界面,实现用户上传一张测试图片识别其名称。
65 21
植物病害识别系统Python+卷积神经网络算法+图像识别+人工智能项目+深度学习项目+计算机课设项目+Django网页界面
|
14天前
|
机器学习/深度学习 人工智能 算法
鸟类识别系统Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+ResNet50算法模型+图像识别
鸟类识别系统。本系统采用Python作为主要开发语言,通过使用加利福利亚大学开源的200种鸟类图像作为数据集。使用TensorFlow搭建ResNet50卷积神经网络算法模型,然后进行模型的迭代训练,得到一个识别精度较高的模型,然后在保存为本地的H5格式文件。在使用Django开发Web网页端操作界面,实现用户上传一张鸟类图像,识别其名称。
60 12
鸟类识别系统Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+ResNet50算法模型+图像识别
|
14天前
|
机器学习/深度学习 算法 TensorFlow
交通标志识别系统Python+卷积神经网络算法+深度学习人工智能+TensorFlow模型训练+计算机课设项目+Django网页界面
交通标志识别系统。本系统使用Python作为主要编程语言,在交通标志图像识别功能实现中,基于TensorFlow搭建卷积神经网络算法模型,通过对收集到的58种常见的交通标志图像作为数据集,进行迭代训练最后得到一个识别精度较高的模型文件,然后保存为本地的h5格式文件。再使用Django开发Web网页端操作界面,实现用户上传一张交通标志图片,识别其名称。
43 6
交通标志识别系统Python+卷积神经网络算法+深度学习人工智能+TensorFlow模型训练+计算机课设项目+Django网页界面
|
10天前
|
机器学习/深度学习 人工智能 算法
【新闻文本分类识别系统】Python+卷积神经网络算法+人工智能+深度学习+计算机毕设项目+Django网页界面平台
文本分类识别系统。本系统使用Python作为主要开发语言,首先收集了10种中文文本数据集("体育类", "财经类", "房产类", "家居类", "教育类", "科技类", "时尚类", "时政类", "游戏类", "娱乐类"),然后基于TensorFlow搭建CNN卷积神经网络算法模型。通过对数据集进行多轮迭代训练,最后得到一个识别精度较高的模型,并保存为本地的h5格式。然后使用Django开发Web网页端操作界面,实现用户上传一段文本识别其所属的类别。
22 1
【新闻文本分类识别系统】Python+卷积神经网络算法+人工智能+深度学习+计算机毕设项目+Django网页界面平台
|
9天前
|
XML JavaScript 前端开发
学习react基础(1)_虚拟dom、diff算法、函数和class创建组件
本文介绍了React的核心概念,包括虚拟DOM、Diff算法以及如何通过函数和类创建React组件。
15 2
|
10天前
|
机器学习/深度学习 人工智能 自然语言处理
深度学习还不如浅层网络?RL教父Sutton持续反向传播算法登Nature
【9月更文挑战第24天】近年来,深度学习在人工智能领域取得巨大成功,但在连续学习任务中面临“损失可塑性”问题,尤其在深度强化学习中更为突出。加拿大阿尔伯塔大学的研究人员提出了一种名为“持续反向传播”的算法,通过选择性地重新初始化网络中的低效用单元,保持模型的可塑性。该算法通过评估每个连接和权重的贡献效用来决定是否重新初始化隐藏单元,并引入成熟度阈值保护新单元。实验表明,该算法能显著提升连续学习任务的表现,尤其在深度强化学习领域效果明显。然而,算法也存在计算复杂性和成熟度阈值设置等问题。
24 2
|
10天前
|
机器学习/深度学习 人工智能 算法
【果蔬识别系统】Python+卷积神经网络算法+人工智能+深度学习+计算机毕设项目+Django网页界面平台
【果蔬识别系统】Python+卷积神经网络算法+人工智能+深度学习+计算机毕设项目+Django网页界面平台。果蔬识别系统,本系统使用Python作为主要开发语言,通过收集了12种常见的水果和蔬菜('土豆', '圣女果', '大白菜', '大葱', '梨', '胡萝卜', '芒果', '苹果', '西红柿', '韭菜', '香蕉', '黄瓜'),然后基于TensorFlow库搭建CNN卷积神经网络算法模型,然后对数据集进行训练,最后得到一个识别精度较高的算法模型,然后将其保存为h5格式的本地文件方便后期调用。再使用Django框架搭建Web网页平台操作界面,实现用户上传一张果蔬图片识别其名称。
29 0
【果蔬识别系统】Python+卷积神经网络算法+人工智能+深度学习+计算机毕设项目+Django网页界面平台
WK
|
20天前
|
机器学习/深度学习 监控 算法
反向传播算法是如何工作的
反向传播算法通过最小化损失函数优化神经网络。首先,输入数据经由前向传播得到预测结果,并计算损失;接着,反向传播计算各参数的梯度,并利用梯度下降法更新权重和偏置。这一过程反复进行,直至满足停止条件。算法具备高效性、灵活性及可扩展性,能处理复杂模式识别与预测任务,适用于不同类型与规模的神经网络,显著提升了模型的预测准确性和泛化能力。
WK
16 3
下一篇
无影云桌面