【随笔】深度学习之美——杨家有女初长成,养在深闺人未识

在这里插入图片描述

1.从机器学习到深度学习

一般来说,知识在两个维度上可以分为四类,如下图。
在这里插入图片描述
在横向上,对于可推理的,可以用机器学习的方法完成推理,通过人类的先验知识,把原始数据预处理成各种特征,然后对特征进行分类。然而,分类的效果通常取决于特征的好坏,传统的机器学习也可以成为“特征工程”

在纵向上,对于可统计但不可推理的,人们发现可以让神经网络自己学习如何抓取数据的特征,并且效果好像更佳。再后来,网络进一步加深,将特征进一步抽象化,也就是现在说的“深度学习”。

但是,机器自己学出来的特征无法被人类所理解,为了让神经网络的效果更好,只能按照经验去调整网络的超参数,也就是“有多少人工,就有多少智能”。

有人批判深度学习是一个“黑箱”,缺乏解释性。但是这种“端到端”的方法乱,似乎与复杂性科学相吻合。人类世界本身就是一个复杂的系统,各个问题互相影像,阡陌纵横,难以用确定的公式来描述,并且现在对于世界的认知可能具有局限性,难以提取普适的公式定理。

2.神经网络的细胞——M-P模型

在生物神经网络中,如果某些神经元的电位超过一个阈值,就会被激活,接着像与他相连的神经元发送化学物质,改变他们的电位,一层层传播下去。1943年,神经生理学家Warren McCulloch和Walter Pitts,首次实现用一个简单电路模拟大脑神经元的行为(用逻辑值0和1模拟神经细胞的兴奋和抑制状态)。
在这里插入图片描述
神经元的工作模型存在“激活(1)”和“抑制(0)”两种状态的跳变,那么理想的激活函就应该是如图 6-7(a)所示的阶跃函数。

在这里插入图片描述
但事实上,在实际使用中,这类函数具有不光滑、不连续等众多不“友好”的特性,使用得并不广泛。为什么说它“不友好”呢,这是因为在训练网络权重时,通常依赖对某个权重求偏导、寻极值,而不光滑、不连续等通常意味着该函数无法“连续可导”。

因此,我们通常用 sigmoid()函数来代替阶跃函数,如图 6-7(b)所示。无论输入值(x)的范围有多大,这个函数都可以将输出挤压在[0,1]范围之内,故此这个函数又被称为“挤压函数(Squashing Function )”。

3.深度学习的起点——感知机

1958年,也就是在M-P神经元模型发表15年后,Frank Rosenblatt设计了一个实验,输入50组图片,每组两张一张标记向左,一张标记向右。每一次练习都是以左面的输人神经元为开端,先给每个输入神经元都赋上随机的权重,然后计算它们的加权输人之和。如果加权和为负数,则预测结果为 0,否则,预测结果为 1(这里的0或 1,对应于图片的“左”或“右”,在本质上,感知机实现的就是一个二分类)。如果预测是正确的,则无须修正权重;如果预测有误,则用学习率(Learning Rate)乘以差错(期望值与实际值之间的差值),来对应地调整权重,如下图所示。

在这里插入图片描述
学着,学着,这部感知机就能“感知”出最佳的连接权值。然后,对于一个全新的图片,授能何人工干预的情况下,它能“独立”判定出图片标识为左还是为右。

所谓感知机,其实就是一个由两层神经元构成的网络结构,它在输入层接收外界的输人,通过激活函数(含阈值)实施变换,最后把信号传送至输出层,因此它也被称为“阈值逻辑单元”。感知机后来成为许多神经网络的基础,但客观来讲,它的理论基础依然建立于皮茨等人提出的“M-P”神经元模型。

感知机虽然可以自己学习,但是存在两个主要问题:

(1)单层神经网络无法解决不可线性分割的问题,典型的证据就是不能实现“异或门电路”功能。
(2)更为严重的问题是,即使使用当时最先进的计算机,也没有足够的计算能力去完成神经网络模型训练所需的超大的计算量(比如调整网络中的权重参数)

在明斯基(1969年获得图灵奖)提出这一问题后,深度学习沉睡了20年

4.深度学习的复活——多层网络

1975年感知机“异或”问题被理论界彻底解决,也就是增加神经网络的层数。这就好比,人是由细胞构成的,在理论上,我们单纯从细胞这个层面不断扩大需考察细胞的数量、特性等,最终也可以区分不同的人。但实际上,我们并不是这么做的,而是通过不断地抽象,从多个层面来认知不同的人。比如,先从细胞层面构成器官,再从器官层面,构成不同的个人。

在这里插入图片描述
为了优化模型效果,我们定义损失函数 f(x) 来表述预测值和真实值的误差,优化指的是改变 x 以最小化或最大化某个函数 f(x) 的任务。 我们通常以最小化 f(x) 指代大多数最优化问题。最大化可经由最小化算法最小化 -f(x) 来实现。

在这里插入图片描述
对于函数的某个特定点,它的梯度表示从该点出发,函数值增长最为迅猛的方向,梯度的反方向就是函数值下降最快的方向。如果函数每次都沿着梯度递减的方向走,自然会走到函数值最小值附近。

下面以 f(x)=x^2 为例,f’(x)=2x。以 x=10 作为初始值,学习率 n=0.2。经过第一次迭代后,x=10-0.2×2=6,迭代曲线如下图:

在这里插入图片描述
如果学习率太小,可能迭代很久都不达到最小值点,相反,如果太大,可能产生震荡,如下图:

在这里插入图片描述
f(x)=x^2 的输入只有一个变量,如果神经网络的输入层有多个变量,其构成一组输入向量,此时损失函数如下:
在这里插入图片描述

其中在这里插入图片描述
和上面一样,我们要在多维空间上实现最快递减,如下图:
在这里插入图片描述
我们知道曲面上方向导数的最大值的方向就代表了梯度的方向,因此我们在做梯度下降的时候,应该是沿着梯度的反方向进行权重的更新,可以有效的找到全局的最优解。权重更新过程如下:

在这里插入图片描述
上述即批量梯度下降,其在更新权重时,使用所有的样本,也就是说每个样本都参与调整权重,这样可以达到全局最优,但是时间也会很长,同时容易陷入局部最优解。更新公式如下:

在这里插入图片描述
随机梯度下降:在每次更新时用1个样本,随机也就是用样本中的一个例子近似所有的样本,以此调整权重。相比于批量梯度,这样的方法更快收敛,虽然不是全局最优,但是大的整体的方向是向全局最优解的,而且有助于逃逸出局部最小值点。更新公式如下:

在这里插入图片描述
小批量随机梯度下降:在每次更新时用b个样本来近似全部的,在深度学习中,这种方法用的是最多的。因为小批量不仅可以反映样本的一个分布情况,而且收敛也不会很慢,中庸之道。

在这里插入图片描述

5.深度学习的突破——BP算法

在19世纪70年代,人工神经网络面临一个重大的挑战性问题:增加神经网络的层数虽然可为其提供更大的灵活性,让网络具有更强的表征能力,也就是说,能解决的问题更多,但随之而来的数量庞大的网络参数的训练,一直是制约多层神经网络发展的一个重要瓶颈。

1986年由杰弗里·辛顿(Geoffirey Hinton)和大卫·鲁姆哈特(David Rumelhart)等人提出BP算法,其论文“借助反向传播算法的学习表征(Leaming Representations by Back-propagating errors)发表在著名学术期刊Nature(自然)上。

该论文首次系统而简洁地阐述了反向传播算法在神经网络模型上的应用。BP算法把网络权值纠错的运算量,从原来的与神经元数目的平方成正比,下降到只和神经元数目本身成正比。

在这里插入图片描述

6.深度学习的崛起——卷积神经网络

BP神经网络的应用对象是全连接神经网络,随着梯度的逐层减小,导致它对网线权值的调整作用越来越小,故此,BP算法多用于浅层网络结构(通常小7层),这就限制了BP 算法的数据表征能力,从而也就限制了BP的性能限。

1968 年,神经生物学家大卫·休伯尔(David Hunter Hubel)与托斯坦·威泽尔(Torsten N. Wiesel)在研究动物视觉信息处理时,有两个重要而有趣的发现:

(1)对于视觉的编码,动物大脑皮层的神经元实际上是存在局部感受域的,具体来说,它们是局部敏感的且具有方向选择性。

(2)动物大脑皮层是分级、分层处理信息的。在大脑的初级视觉皮层中存在几种细胞:简单细胞、复杂细胞和超复杂细胞,这些不同类型的细胞承担着不同抽象层次的视觉感知功能。

神而洞察的专注可能要胜过广而肤浅的观察。

受该理念的启发,1980年日本学者福岛邦彦( Fukushima )提出了神经认知机( Neocognitron,亦译为“新识别机”)模型,这是一个使用无监督学习训练的神经网络模型,其实也就是卷积神经网络的雏形。

自此之后,很多计算机科学家先后对神经认知机做了深人研究和改进,但效果却不尽如人意。直到 1990 年,在 AT&T贝尔实验室工作的 Yamn LeCun等人,把有监督的反向传播(BP)算法应用于福岛邦彦等人提出的架构,从而奠定了现代CNN的结构。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
参考文献:
[1]《深度学习之美:AI时代的数据处理与最佳实践》
[2]《动手学深度学习》
[3]《tensorflow实战google深度框架》
[4] 如何理解随机梯度下降(stochastic gradient descent,SGD)? - Evan的回答 - 知乎
https://www.zhihu.com/question/264189719/answer/291167114

猜你喜欢:👇🏻
【随笔】卷积神经网络中的卷积怎么卷?
【随笔】激活函数是怎样一种存在?
【随笔】通用近似定理

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值