神经网络之优化算法

先来回顾一下神经网络的经典结构,如下图所示:
在这里插入图片描述
一般神经网络分为:输入层,隐藏层,输出层。上图中的连线代表的是神经网络中的参数,参考下面的图:
在这里插入图片描述

常用的激活函数有:
在这里插入图片描述

如果对上面的内容有疑惑的话,可以参考笔者的上一篇文章《谈谈对神经网络的理解 “谈谈对神经网络的理解”》,这里不再赘述。

好了,下面进入正题。

损失函数的概念

在讲优化算法之前,我们先要明确损失函数的概念,损失函数有很多种说法,中文也可以叫代价函数或者目标函数,英文中有 loss function, cost function, objective function. 实际上指得是同一个概念。

首先,神经网络是用来解决实际问题的,我们以分类问题来举例。假设我们要做图片的猫狗分类,即输入一张图片,判断是猫还是狗。

在这里插入图片描述

神经网络只能输出数值,没办法输出概念,所以需要对猫狗概念做一个转化,类似于数学建模。我们可以令网络输出为 0 时代表猫,输出为 1 时代表狗。不过就像世界不是非黑即白一样,有时候我们需要的也不是这样一个非 0 即 1 的输出,我们希望知道神经网络认为输入图片是狗的概率值,所以我们设计神经网络的输出为 [0, 1] 之间的浮点数,其数值就代表输入图片是狗的概率。若输入图片是狗,我们希望神经网络的输出越大越好;反之,若输入图片是猫,则我们希望神经网络的输出越小越好。

前面我们是以定性的方式评判神经网络的输出(越大越好或越小越好),但计算机只认数字,所以我们要将定性评判方式改为定量评判方式,即用损失函数来取代前面的越大越好或越小越小这样的定性说法。

最简单的损失函数的均方差损失函数(Mean Squared Error,MSE),如下所示:

在这里插入图片描述

其中,N 是样本是数目,o 是神经网络输出,y 是真实值。那么为什么用平方差来作为误差的衡量,而不是直接用差的绝对值呢?这是因为绝对值在求导数时不方便,而平方计算求导数时简单方便(至于为什么需要求导数,后文会讲)。

使用均方差损失函数可以很容易的衡量神经网络分类效果的好坏,当均方差为 0 时,说明神经网络 100% 分类正确,均方差越大,说明错误越多。

除了均方差损失函数,还有很多其他常用的损失函数,比如交叉熵损失函数(Cross entropy),这里不展开细讲,读者只需要理解损失函数是对神经网络输出结果好坏的定量评判。针对不同的任务,我们会使用不同的损失函数。

损失函数可视化

为了更好的理解损失函数的性质,我们可以对其进行可视化。前面我们知道,损失函数是对神经网络输出的定量评判,所以损失函数实际上是神经网络参数的函数。受限于人类的感官,我们以二维情况举例,假设神经网络只有 w1, w2 两个参数,即

在这里插入图片描述

其中,f 代表的神经网络的运算集合。

分别以 w1, w2 为 x, y 轴,用颜色代表 Loss 大小,可以在二维平面画出损失函数的图像,如下所示:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RWeREJ6f-1572681941001)(http://km.oa.com/files/photos/pictures//20190119//1547885188_94.png)]
中间的黑色代表损失函数最小的位置,也是我们的优化目标。

优化(Optimization)

神经网络优化问

摘要:数据的上界和下界概念在人工智能领域中使用得非常普 遍,在粗糙集理论中尤为明显,随着粗集理论的不断发展, 上下边界的概念得到更大范围内的应用。本文将经典的神经 网络和粗集理论有机地结合,提出了一种基于粗集理论的神 经网络,并应用神经网络的粗糙模式建立预测模型。在粗糙 模式下每个神经网络的输入值不是一个单值而是一对值,即 上下边界数据,经典的神经网络在预测模型中采用的是单值 数据作为输入值,但是在一些应用中会产生问题,如医院要 对病人进行病情的跟踪观察,并希望对其未来的情况进行预 测,这时经典的神经网络就难以适用了,对于一个病人来 说,心跳次数,脉搏次数,血压值,体温等项指标在一天当 中需要进行几次测试,问题在于对于同一项指标每次测量值 也是不同的,因此得到的是一组数据而非单个数据,由于经 典的神经网络对于外界的信息的传导需要的是单值输入,究 竟应该取测量值中的哪个值作为输入就难以确定,通常的方 法是将测量数据进行数学平均,以均值作为网络的输入,但 是这可能导致具有重要性质数据的泛化,而粗糙集理论则可 以很好地解决这个问题,粗糙集数据的上下边界可以将病人 一天的各项指标测量值的上界和下界数据作为粗糙神经元的 输入。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值