我是靠谱客的博主 知性烧鹅,最近开发中收集的这篇文章主要介绍深度神经网络中损失函数的选择,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

损失函数是设计神经网络中很重要的一个关键因素,面对特定的问题,我们要设计不同的损失函数,比如我们参数kaggle比赛时,一般赛事举办者都会给出来一个损失函数。

损失函数是模型对数据拟合程度的反映,拟合的越差,损失函数的值就应该越大,同时我们还期望,损失函数在比较大时,它对应的梯度也要比较大,这样的话更新变量就可以更新的更快一点。事实上,我们对损失函数的也就两个方面的要求,首先要能反映出你求解问题的真实标签,第二就是损失函数要有合理的梯度,有利于求解梯度,进而对权重和参数进行更新。

损失函数本身的种类还是挺多的,最常见的就是MSE(最小平均方误差准则)


当然如果我们使用框架,可以看到keras里面提供了很多loss函数,这里不一一解释,可以去看一下keras文档,预测值和真实标签的之间的差距被计算出来之后,会对损失函数求导,进而反向传播去更新权重。这里有一个迭代计算的过程,直到模型发现最小的损失函数值为止,在通常的训练过程中就表现为loss不再变化或者loss变化及其缓慢,就认为模型已经收敛。这个过程中我们会设计优化器的问题,使用良好的适合问题的优化器,可以帮助我们更好的找到梯度下降的方向,从而加快模型的收敛速度。

损失函数的选择往往也是结合激活函数来的,因为反向传播算法进行链式求导的过程中,不可避免要遇到激活函数,激活函数是正向传播中最重要的设计之一,它增加了模型的复杂性,提供了个更多的非线性操作。

下面提供几种思路:

sigmoid系之外的激活函数 + MSE

sigmoid + Cross Entropy

Softmax + Cross Entopy


最后

以上就是知性烧鹅为你收集整理的深度神经网络中损失函数的选择的全部内容,希望文章能够帮你解决深度神经网络中损失函数的选择所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(37)

评论列表共有 0 条评论

立即
投稿
返回
顶部