人工神经网络中损失函数的研究
损失函数在神经网络中的作用

损失函数在神经网络中的作用
损失函数是神经网络学习中无可替代的一环。
它可以帮助神经网络模型自动调整权重,从而学习更好的决策规则,因此,在训练神经网络时,设计合适的损失函数至关重要。
损失函数在神经网络中的主要作用就是监督神经网络的学习进程,通过对比神经网络的预测结果与标签的区别,计算出模型的损失,使得模型能够更好地拟合数据。
这样,损失函数就可以衡量模型学习的成果,并反馈给模型,以便调整预测参数,调整超参数,以最小化损失函数的值,使预测结果更准确。
损失函数还可以用于正则化,即使用某些策略减少模型复杂度,防止过拟合。
这一策略通常通过将损失函数中添加惩罚项来实现,如L1/L2正则项,Dropout等,以减少模型参数过大而导致模型复杂度过大的风险。
总之,损失函数在神经网络中是不可或缺的一部分,它可以借助标签数据帮助神经网络模型学习,可以衡量模型学习的成果,并可以通过正则化的方法减少模型的复杂度,从而有效地解决复杂问题。
sigmoid激活函数和损失函数

sigmoid激活函数和损失函数sigmoid激活函数和损失函数是神经网络中非常重要的部分,它们直接关系到神经网络的性能和训练效果。
本文旨在通过分步骤阐述sigmoid激活函数和损失函数的概念及使用方法,让读者了解它们在神经网络中的作用和意义。
一、sigmoid激活函数1.1 概念sigmoid激活函数也称为Logistic函数,是一种常用的非线性函数,其形式为:$$f(x)=\frac{1}{1+e^{-x}}$$sigmoid激活函数主要用于神经网络中的隐藏层和二分类问题中的输出层,它的输出值在0~1之间,可以理解为概率值。
当输入到sigmoid函数中的值为正数时,输出结果趋向于1;当输入值为负数时,输出结果趋向于0;当输入值为0时,其输出结果为0.5。
1.2 特点sigmoid激活函数具有以下特点:(1)输出结果在0~1之间,可以理解为概率值;(2)输出结果可以表示输入量的线性组合;(3)在实际使用中,sigmoid函数的梯度会出现“梯度消失”的问题,使得网络的训练速度变慢。
1.3 使用方法sigmoid激活函数可以使用numpy库中的exp函数和divide函数实现,代码如下:``` python#导入numpy库import numpy as np#定义sigmoid激活函数def sigmoid(x):#使用numpy库中的exp函数和divide函数实现return 1/(1+np.exp(-x))```二、损失函数2.1 概念损失函数是衡量神经网络训练效果的指标,用于评估神经网络的输出值和实际值之间的差距。
常用的损失函数有均方误差、交叉熵等。
其中,均方误差的定义为:$$MSE=\frac{1}{n}\sum_{i=1}^{n}(y_i-\hat{y_i})^2$$其中,$y_i$表示第i个样本的实际值,$\hat{y_i}$表示第i个样本的神经网络预测值。
2.2 特点均方误差损失函数具有以下特点:(1)计算简单,容易理解;(2)在训练过程中可以快速收敛;(3)当数据集中存在离群点时,均方误差损失函数容易受到干扰。
前馈神经网络中的损失函数选择方法(Ⅰ)

前馈神经网络中的损失函数选择方法神经网络是一种模拟大脑神经元相互连接的计算模型,它通过学习样本的特征和标签,不断优化网络参数,以实现对未知数据的预测和分类。
前馈神经网络是其中最为经典的一种结构,它由输入层、隐藏层和输出层组成,每个神经元都与下一层的所有神经元相连。
在训练神经网络时,选择合适的损失函数是非常重要的,因为它直接影响到网络的收敛速度和最终的效果。
本文将从损失函数的定义、常见的损失函数及其特点、损失函数的选择方法等几个方面来探讨前馈神经网络中的损失函数选择方法。
一、损失函数的定义损失函数是用来衡量模型预测值与实际值之间的差异的函数。
在神经网络中,损失函数通常用来衡量模型输出与真实标签之间的误差。
通过最小化损失函数,可以使模型不断地优化参数,从而提高模型的预测准确度。
不同的损失函数适用于不同的问题,比如回归问题通常使用均方误差损失函数,而分类问题通常使用交叉熵损失函数。
二、常见的损失函数及其特点1. 均方误差损失函数均方误差损失函数是回归问题中最常见的损失函数之一,它衡量了模型预测值与真实值之间的平方差。
均方误差损失函数对异常值比较敏感,因此在数据集中包含有较多异常值的情况下,可能导致模型训练不稳定。
2. 交叉熵损失函数交叉熵损失函数是分类问题中常用的损失函数,它衡量了两个概率分布之间的相似度。
相比于均方误差损失函数,交叉熵损失函数在优化过程中更加稳定,且对异常值不敏感。
因此在分类问题中,通常优先选择交叉熵损失函数。
3. 感知损失函数感知损失函数是一种针对二分类问题设计的损失函数,它能够将模型输出的连续值转化为离散的{0,1}值。
感知损失函数在优化过程中对异常值不敏感,并且能够快速收敛,是一种比较有效的损失函数。
三、损失函数的选择方法在实际应用中,选择合适的损失函数是非常重要的。
下面将介绍一些损失函数选择的方法。
1. 根据问题类型选择损失函数首先需要根据问题的类型来选择损失函数。
如果是回归问题,通常选择均方误差损失函数;如果是分类问题,通常选择交叉熵损失函数。
神经网络中的损失函数优化算法研究

神经网络中的损失函数优化算法研究神经网络作为一种强大的机器学习模型,在许多领域中取得了巨大的成功。
为了使神经网络能够更好地发挥其性能,需要设计合适的损失函数和优化算法。
本文将讨论神经网络中的损失函数和相应的优化算法,并研究它们的重要性和应用。
接下来,我们将研究神经网络中的优化算法。
在训练神经网络时,优化算法的作用是通过调整模型参数来最小化损失函数。
常见的优化算法包括梯度下降、随机梯度下降、动量法、自适应学习率算法等。
梯度下降是最基本的优化算法之一、它通过计算损失函数对参数的偏导数来确定下一步的参数更新方向。
具体来说,梯度下降算法沿着参数梯度的反方向调整参数,以降低损失函数的值。
随机梯度下降是梯度下降的一种变体,它在每次更新中使用一个样本来计算梯度,从而提高计算效率。
动量法是一种常用的优化算法,它模拟物体在移动过程中的惯性。
动量法通过引入一个动量项来加速优化过程,从而更快地收敛到最优解。
动量项的引入可以帮助克服局部最优值,并使过程更加稳定。
自适应学习率算法是一类根据梯度信息自适应地调整学习率的优化算法。
这些算法通过根据梯度的统计信息来调整学习率的大小,从而更好地适应模型在不同参数空间中的变化。
常用的自适应学习率算法包括Adagrad、RMSProp、Adam等。
以上提到的优化算法只是神经网络中的一部分。
实际应用中,不同的优化算法可以根据问题的特点和需求进行选择。
例如,在处理大规模数据集时,可以使用随机梯度下降算法,以提高计算效率。
而在处理高维复杂数据时,可以选择自适应学习率算法,以更好地适应参数空间的变化。
总之,神经网络中损失函数和优化算法的选择对模型的性能有重要影响。
选择合适的损失函数和优化算法可以加速训练过程、提高模型性能,并在各种应用中取得更好的结果。
因此,研究和应用损失函数和优化算法在神经网络中是非常重要的。
神经网络中的损失函数选择指南

神经网络中的损失函数选择指南在神经网络的训练过程中,选择合适的损失函数是至关重要的。
损失函数的选择会直接影响模型的性能和训练结果。
本文将为大家介绍一些常见的损失函数,并提供一些选择指南,帮助读者在实际应用中做出正确的决策。
1. 均方误差(Mean Squared Error)均方误差是最常见的损失函数之一。
它计算预测值与实际值之间的平方差,并取平均值作为损失。
均方误差对异常值比较敏感,因为平方项会放大异常值的影响。
这使得均方误差在回归问题中非常有用,但在分类问题中可能不太适合。
2. 交叉熵损失(Cross Entropy Loss)交叉熵损失是用于分类问题的一种常见选择。
它通过计算预测类别与真实类别之间的交叉熵来度量模型的性能。
交叉熵损失对于错误分类的惩罚较大,因此在分类问题中往往能够取得较好的效果。
3. KL散度(Kullback-Leibler Divergence)KL散度是一种用于度量两个概率分布之间差异的指标。
在神经网络中,KL散度可以用作损失函数来衡量模型输出与真实分布之间的差异。
KL散度在生成模型中经常被使用,例如变分自编码器(Variational Autoencoder)。
4. Hinge损失Hinge损失主要用于支持向量机(Support Vector Machine)中,但在神经网络中也有一定的应用。
它在分类问题中对错误分类的惩罚较大,并且能够产生稀疏的解,即只有少数样本被用于训练。
5. Huber损失Huber损失是一种鲁棒性较强的损失函数,对于异常值的影响较小。
它在回归问题中常被使用,能够平衡均方误差和绝对误差之间的权衡。
当数据中存在较多的异常值时,Huber损失能够更好地适应。
在选择损失函数时,需要根据具体的问题和数据特点进行合理的权衡。
以下是一些选择指南:1. 根据问题类型选择:对于回归问题,均方误差和Huber损失是常见的选择;对于分类问题,交叉熵损失和Hinge损失是常用的选项。
对于分类问题的神经网络最后一层的函数:sigmoid、softmax与损失函数

对于分类问题的神经⽹络最后⼀层的函数:sigmoid、softmax
与损失函数
对于分类问题的神经⽹络最后⼀层的函数做如下知识点总结:
1. sigmoid和softmax⼀般⽤作神经⽹络的最后⼀层做分类函数(备注:sigmoid也⽤作中间层做激活函数);
2. 对于类别数量⼤于2的分类问题,如果每个类别之间互斥,则选⽤softmax函数(例如:类别为牡丹花、玫瑰花、菊花),如果每个类
别之间有交叉则选⽤与类别数量相等的sigmoid函数(例如:类别为⼩孩、⼤⼈、男⼈、⼥⼈,此处应该选⽤4个sigmoid函数);
3. 神经⽹络最后⼀层的分类函数直接⾯临作损失函数的选择;
4. softmax函数的分类标签都为one-hot编码,⽬标为类别数量=softmax这层的节点数量。
(备注:对于⼆分类问题,如果采⽤sigmoid函
数,最后⼀层就放⼀个节点;如果采⽤softmax函数,最后⼀层放两个节点)
sigmoid函数的定义:令p(y=1)=x,p(y=0)=1-x,f =ln( x/(1-x)),推导出x=e f/(1-e f),即输出的是y=1的概率,这⼀点与softmax函数不同.
常⽤损失函数介绍:
MSE:均⽅误差⼀遍⽤于回归问题的损失函数,当然它也是回归问题的⼀个度量函数,回归问题最后⼀层神经元⼀般采⽤线性激活函数;交叉熵:。
神经网络中的损失函数
神经⽹络中的损失函数tf.keras 有很多内置的损失函数,具体可见,这⾥介绍⼀部分。
MSE、MAE、BinaryCrossentropy、CategoricalCrossentropy...1 回归问题1.1 均⽅误差 (MeanSquaredError,MSE) 这是最简单也是最常⽤的损失函数,在线性回归中,可以通过极⼤似然估计 (MLE) 推导。
1.2 绝对值误差 (MeanAbsoluteError,MAE)1.3 绝对值百分⽐误差 (MeanAbsolutePercentageError,MAPE)1.4 平⽅对数误差 (MeanSquaredLogarithmicError,MSLE)1.5 Hinge1.6 SquaredHinge1.7 Huber 当预测偏差⼩于δ时,它采⽤平⽅误差;当预测偏差⼤于δ时,采⽤的线性误差。
增强了 MSE 对离群点的鲁棒性。
2 分类问题2.1 BinaryCrossentropy ⼀般⽤于⼆分类,这是针对概率之间的损失函数,只有 y i和 ˆy i相等时,loss才为0,否则 loss 是⼀个正数,且概率相差越⼤,loss就越⼤,这种度量概率距离的⽅式称为交叉熵。
⼀般最后⼀层使⽤ sigmoid 激活函数。
2.2 CategoricalCrossentropy m 是样本数,n 是分类数。
这是⼀个多输出的 loss 函数。
⼀般最后⼀层使⽤ softmax 激活函数。
2.3 SparseCategoricalCrossentropy SparseCategoricalCrossentropy 损失函数同 CategoricalCrossentropy 类似,唯⼀的区别在于输⼊的 y_true 是 one-hot 编码还是数字编码。
如果是 one-hot 编码,例如 [0, 0, 1], [1, 0, 0], [0, 1, 0],⽤ CategoricalCrossentropy; 如果是数字编码,例如 2, 0, 1,⽤ SparseCategoricalCrossentropy 。
前馈神经网络中的损失函数选择方法(四)
前馈神经网络是一种常见的人工神经网络模型,用于解决各种机器学习问题,如分类、回归、聚类等。
在训练前馈神经网络时,选择合适的损失函数对于网络的性能和训练效果至关重要。
本文将讨论在前馈神经网络中选择损失函数的方法。
1. 损失函数的作用损失函数是神经网络训练过程中的关键组成部分,用于衡量模型的预测值与真实值之间的差异。
通过最小化损失函数,可以使神经网络模型不断优化,提高预测的准确性。
因此,选择合适的损失函数对于神经网络的训练和性能至关重要。
2. 常见的损失函数在前馈神经网络中,常见的损失函数包括均方误差(Mean Squared Error,MSE)、交叉熵损失函数(Cross Entropy Loss)、Huber损失函数等。
这些损失函数各有其适用的场景和特点。
MSE是用于回归问题的损失函数,通过计算预测值与真实值之间的均方差来衡量模型的性能。
MSE对异常值敏感,容易受到离群点的影响,因此在数据噪声较大或存在异常值的情况下不太适用。
交叉熵损失函数常用于分类问题,尤其是多分类问题。
它将预测值和真实值之间的差异转化为相对熵,更适合用于衡量分类模型的性能。
与MSE相比,交叉熵损失函数对异常值的影响较小,更适合处理分类问题。
Huber损失函数是一种针对回归问题的鲁棒损失函数,相比于MSE更加鲁棒,对异常值的敏感性较低。
它在一定程度上克服了MSE的缺点,适用于存在噪声和异常值的数据集。
3. 根据问题选择损失函数在选择损失函数时,需要根据具体的问题情况来进行选择。
对于回归问题,若数据集中存在较多的异常值或噪声,则可以考虑使用Huber损失函数来提高模型的鲁棒性;若数据集较为干净,可以选择MSE来衡量模型的性能。
对于分类问题,若是二分类问题,可以使用二分类交叉熵损失函数;若是多分类问题,则可以选择多分类交叉熵损失函数。
在处理不平衡数据集时,可以考虑使用加权交叉熵损失函数,通过为不同类别赋予不同的权重来缓解数据不平衡问题。
激活函数和损失函数的作用
激活函数和损失函数的作用激活函数和损失函数在机器学习和深度学习中起着至关重要的作用。
它们是神经网络模型中的两个关键组成部分,对于模型的性能和准确性具有决定性影响。
本文将从理论和应用的角度探讨激活函数和损失函数的作用,并分析它们在不同场景下的选择。
我们来了解一下激活函数的作用。
在神经网络中,激活函数用于对神经元的输出进行非线性变换。
它的作用是引入非线性特性,使神经网络具备拟合非线性函数的能力。
如果没有激活函数,多层神经网络将退化为线性模型,无法处理复杂的非线性关系。
常见的激活函数包括sigmoid函数、ReLU函数、tanh函数等。
sigmoid函数将输入值映射到0和1之间,常用于二分类问题的输出层。
ReLU函数在输入大于0时直接输出,小于0时输出0,能够使神经网络更加稀疏和高效。
tanh函数将输入值映射到-1和1之间,可以用于将输入归一化到一定范围内。
不同的激活函数适用于不同的场景,选择适合的激活函数可以提高神经网络的性能和泛化能力。
接下来,我们讨论一下损失函数的作用。
损失函数用于衡量模型在训练过程中的预测值与真实值之间的差异。
它的作用是定义模型的优化目标,通过最小化损失函数来优化模型的参数。
不同的任务和模型需要选择不同的损失函数,以使模型能够更好地拟合训练数据并具有良好的泛化能力。
常见的损失函数包括均方误差(MSE)、交叉熵损失函数等。
均方误差常用于回归问题,通过计算预测值与真实值之间的平方差来衡量模型的误差。
交叉熵损失函数常用于分类问题,通过计算预测值和真实值之间的交叉熵来衡量模型的误差。
不同的损失函数对于不同的问题有不同的敏感性和鲁棒性,选择适合的损失函数可以提高模型的训练效果和性能。
在实际应用中,激活函数和损失函数的选择需要根据具体的任务和数据特点来进行。
例如,在图像识别任务中,常用的激活函数是ReLU函数,常用的损失函数是交叉熵损失函数。
在语音识别任务中,常用的激活函数是tanh函数,常用的损失函数是均方误差。
002-神经网络基础-得分函数,SVM损失函数,正则化惩罚项,softmax函数,交叉熵损失函数
002-神经⽹络基础-得分函数,SVM损失函数,正则化惩罚项,softmax函数,交叉熵损失函数得分函数:将图⽚拉伸成⼀个⼀维矩阵x,也就是3072×1,最后要得出10个分类的得分值也就是10×1,那w就得是10×3072的矩阵,也就是10组3072个特征的权重值,乘以x,加上b,得到的⼀个10×1的矩阵,这个矩阵就是最终的每个分类的得分值。
假设将图像分为2×2个像素点,最后⼜3中类型,那么图像可以被拉伸为4×1的矩阵,最后的结果是3×1的矩阵,那么权重W只能是4×3的矩阵了也就是说有3组权重参数,每组参数中有4个特征的权重,这⾥的3组权重参数对应于最后要分类的3个类别,4个特征的权重代表每个特征所占的该类别的重要性(其中负值表⽰起到了反作⽤)。
这个例⼦中,最后得到狗的得分值最⾼。
当然这只是个例⼦,不代表普遍性。
--------------------------2018年10⽉14⽇02:52:49--睡觉--------------------------------------- --------------------------2018年10⽉14⽇16:41:09--继续---------------------------------------相当于做了这么⼀件事:利⽤⼀个直线作为决策边界,将样本进⾏分类b表⽰与Y轴的焦点。
损失函数:输⼊猫的图像,输出类别得分,猫:3.2,车5.1,青蛙:-1.75.1-3.2表⽰输⼊猫判断为车与输⼊猫判断为猫的得分差异,再加上1,表⽰对损失函数的容忍程度,这⾥的1可以换成任何实数,可以⽤△表⽰。
意义在于看看判断错误的情况下,得分与判断正确的情况下的最⼤差异通过损失函数可以衡量当前的模型到底是怎么样的。
绿⾊表⽰错误的得分值,蓝⾊表⽰正确的得分值。
delta表⽰容忍程度。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第23卷第2期(2018)Vol.23No.2(2018)收稿日期:2017-12-09基金项目:甘肃中医药大学定西校区校级项目“多类别分类算法研究及其在医学图像分类中的应用”(2017XJYB08).作者简介:任进军(1985—),男,甘肃定西人,讲师.研究方向:数据挖掘.人工神经网络中损失函数的研究任进军1,王宁2(1.西北师范大学计算机科学与工程学院,甘肃兰州730070;2.甘肃中医药大学理科教学部,甘肃定西743000)摘要:分析了平方差损失函数(Quadratic Cost Function )和交叉熵损失函数(Cross EntropyCost Function )对人工神经网络收敛性的影响,解释了使用平方差损失函数造成网络训练时间较慢的主要原因,并通过仿真实验验证了交叉熵损失函数可提升网络收敛速度.关键词:人工神经网络;平方差损失函数;交叉熵损失函数;网络收敛速度中图分类号:TP183文献标志码:A文章编号:1008-9020(2018)02-061-03人工神经网络因性能卓越而被广泛研究和应用.一般而言,利用该技术解决问题的关键在于网络规模和相关参数的设定.网络规模越大所能描述的特征将越丰富,性能越好.但随着网络规模的增大,参数个数也随之剧增,从而导致网络无法快速收敛,训练时间较长.因此,怎样加速网络收敛速度是人工神经网络技术推广的关键.尽管使用基于GPU 的并行计算技术能够加速网络训练、减小耗时,但是该技术的引入不但增加了问题解决难度,而且也提高了解决问题的硬件成本,因此,并不能从根本上解决训练耗时的问题.通过研究发现,损失函数不同,人工神经网络的训练时间不同.特别是,当网络性能无较大差异时,平方差损失函数和交叉熵损失函数对网络收敛速度带来的差异更大.因此通过数理推导,解释两种损失函数的差异,并通过实验验证二者对网络收敛性的影响.1人工神经网络中损失函数的对比为了便于描述和推导,将以单个sigmoid 神经元(简称神经元)为例进行解释,并约定:输入样本为x ,期望输出为y ,神经元的实际输出为α.图1是单个神经元的结构图形,其中W 表示权重,b 表示偏置.sigmoid 神经元是指学习函数为sig ⁃moid 函数的神经元,该函数的表达式如(1)式所示,(2)式是(1)式的导函数.σ(Z )=11+e-Z ,(1)σ′(Z )=e -Z(1+e -Z )2=σ(Z )(1-σ(Z ))(2)(2)式中Z 越Wx+b ,图2描绘了sigmoid 函数的曲线图形,观察图形可知:当Z →-∞时,函数无限趋近于0;当Z →+∞时,函数无限趋近于 1.weight w bias b图1单连接神经元图2sigmoid 函数61第23卷第2期(2018)Vol.23No.2(2018)对于单个sigmoid神经元的网络,平方差损失函数可表示为:C(w,b)=(y-a)22,(3) (3)式中a=σ(Z),表示神经元的实际输出.根据链式求导法则,分别计算参数w和b相对于损失函数C的偏导,见(4)式和(5)式.∂C∂w=(a-y)σ′(Z)x=aσ′(Z),(4)∂C∂b=(a-y)σ′(Z)=aσ′(Z),(5)人工神经网络的学习过程,是通过不断迭代更新参数w和b,直到网络收敛.(6)式和(7)式为利用梯度下降算法更新参数的表示式.w(t+1)←w(t)-η∂C∂w(t),(6)b(t+1)←b(t)-η∂C∂b(t),(7)式中t、t+1表示迭代次数,η表示学习速率.通过观察图1并结合上述推导可知,当神经元的实际输出σ(Z)→1时,sigmoid函数的曲线将会更加扁平,此时该函数的导数值σ′(Z)将会非常小,由(4)式和(5)式可知参数w和b的偏导值也将很小.极小的偏导值将导致每次迭代中参数几乎不发生改变,从而网络训练速度变慢,无法快速收敛.因此,平方损失函数的使用,可能引起网络收敛速度变慢的现象.相对于平方损失函数,交叉熵损失函数能够避免上述现象发生.对于单个sigmoid神经元的网络,该函数可用(8)式表示:C(w,b)=-[y ln a+(1-y)ln(1-a)].(8) (8)式可为损失函数的原因是满足以下两个条件: (1)因为α∈[0,1],所以lnα<0,ln(1-α)<0,故C>0;(2)满足当α≈0∧y=0或α≈1∧y=1时(即所有训练数据的实际输出接近于期望输出时),C=0.为了便于解释交叉熵损失函数的收敛性,首先计算参数w的偏导∂C∂w=-[yσ(Z)-(1-y)1-σ(Z)]∂σ∂w=-[yσ(Z)-(1-y)1-σ(Z)]σ′(Z)x=σ′(Z)xσ(Z)(1-σ(Z))(σ(Z)-y),其次将(2)式代入上式,化简后得(9)式∂C∂w=(σ(Z)-y)x,(9)同理可得参数b的偏导∂C∂b=σ(Z)-y.(10)由(9)式和(10)式可知,参数w、b的偏导数与期望输出和实际输出的差成正比关系,即差值越小偏导数越小,差值越大偏导数越大.结合(6)式和(7)式可得出网络预判能力越差,参数将变化较大,网络收敛速度将会加快;预判能力越好,收敛速度将会变缓.因此,使用交叉熵损失函数的人工神经网络起初应随期望输出和实际输出差别大而收敛较快,后期随差别的减小而放缓学习速度,表现出前快后慢的收敛现象.与平方差损失函数相比不受学习函数导数的影响.2实验对比通过实验进一步对比两种损失函数在实际问题中的表现.实验选用MINST数据集,该数据集是一个基准数据集,被广泛使用于分类算法的测试和对比.它有60000个训练样本和10000个测试样本,每个样本是由28x28个像素点构成的手写数字图片,如图3所示.实验中使用的人工神经网络是一个三层前馈式网络,其中输入层784个节点、隐藏层30个节点、输出层10个节点.由于输出层使用10个节点,因此每个样本的实际标识需要进行编码,即每个标识使用10位二进制数表示,如数字5编码之后为(0,0,0,0,1,0,0,0,0)T.实验中,学习算法采用随机梯度下降法(Stochastic Gradient Descent,SGD),其中批尺寸batchsize为10,epoch为400.图4显示了使用两种损失函数的上述网络,在每个训练周期内损失(Cost)值的变化情况.首先,观图3MINST数据集示例任进军,王宁:人工神经网络中损失函数的研究62第23卷第2期(2018)Vol.23No.2(2018)Research on Cost Function in Artificial Neural NetworkREN Jin-jun 1,WANG Ning 2(1.College of Computer Science and Engineering,Northwest Normal University,Lanzhou Gansu 730070;2.Department of Science Teaching ,Gansu University of Chinese Medicine,Dingxi Gansu743000)Abstract :The paper artifical neural network mainly analyses the impact of Quadratic Cost Function and Cross Entropy Cost Functionon the astringency of artificial neural network,and explains the main reason of decreasing the rate of training network caused by Quadratic Cost Function.Finally,the experiment proved that Cross Entropy Cost Function can improve the convergence rate of net -work.Key words:artificial neural network;quadratic cost function;cross entropy cost function;convergence rate of network责任编辑:杨齐察变化曲线可知,使用交叉熵损失函数的网络其损失减小速度快于采用平方差损失函数的网络,并且当epoch 大于10时,二者出现明显差别.因此,实验结果符合上节的分析结论,即使用交叉熵损失函数能有效加快网络收敛速率;其次,交叉熵损失函数前陡后缓变化趋势,也证明了使用该损失函数的网络前快后慢的收敛现象.3结论研究结果表明,交叉熵损失函数不但可以简化网络计算量(与平方差损失函数相比不再计算Sig -moid 函数的导数),而且能够有效克服Sigmoid 函数因饱和而导入网络收敛慢的问题.同时发现,虽然交叉熵损失函数对网络收敛性提升较大,但网络中参数初始化等因素对该函数的性能存在一定影响,是下一步重点研究内容.参考文献院[1]Michael Nielsen.Neural Networks and DeepLearning [EB/OL ].http://neuralnetworksanddeeplearn ⁃/index.html,2017-08/2017-10.[2]徐学良.人工神经网络的发展及现状[J].微电子学,2017,47(2):239-242.[3]Simon Haykin.神经网络原理[M].北京:机械工业出版社,2004:178-190.50100150200250300350400Epochs图4交叉熵损失与平方差损失的对比63。