深度神经网络基础

以下文章摘录自:《机器学习观止——核心原理与实践》京东:https://item.jd.com/13166960.html当当:http://product.dangdang.com/29218274.html(由于博客系统问题,部分公式、图片和格式有可能存在显示问题,请参阅原书了解详情)第1章深度神经网络基础本章内容我们将重点讲解深度神经网络的部分核心组成元素,它们的演进历程、背后原理,以及其它一些基础知识,为后续章节的学习扫清障碍。1....
摘要由CSDN通过智能技术生成

以下文章摘录自:

《机器学习观止——核心原理与实践》

京东: https://item.jd.com/13166960.html

当当:http://product.dangdang.com/29218274.html

(由于博客系统问题,部分公式、图片和格式有可能存在显示问题,请参阅原书了解详情)

 

 

 

第1章          深度神经网络基础

本章内容我们将重点讲解深度神经网络的部分核心组成元素,它们的演进历程、背后原理,以及其它一些基础知识,为后续章节的学习扫清障碍。

1.1    神经元

我们知道,人类社会很多划时代的科技创新,都是从面向大自然的学习和观察中提炼出来的,比如飞机、潜艇等等。因而人们在研究AI时,自然不会放过“智能”的天然来源——也就是人类自身的大脑和神经系统了。在人工智能学科创立的前几年,神经病理学有了一个重大的发现,即人类大脑是由神经元组成的。结合图灵的计算理论,人们逐渐对如何“仿造”人类大脑有了一些模糊的认知。

图 ‑ 神经元经典结构(参考wikipedia)

 

生物的神经元是神经系统中最基本的组成单元,它有两种工作状态,即兴奋或者抑制。一般情况下,神经元会处于抑制状态;而当接收到外界的刺激信息,并达到一个阈值时,神经元会被激活。此时神经元会转向兴奋状态,并向与它连接的其它神经元传播物质——激活函数就是受此启发而提出来的。

人工神经元和上述的神经元工作机制非常类似,典型的实现如下所示:

图 ‑ 人工神经元结构

 

上图中的神经元包括了3个部分,即输入、输出和激活函数。输入部分来源于其它神经元,并且带有权重;这些输入信息经过加权和等处理后,再结合激活函数得到最终的结果,这就是输出了。激活函数根据不同场景有多种表现形式,我们放在下一小节进行专门的讲解。

接下来,我们来看一下人工神经元与生物神经元的对比分析。

图 ‑ 每个神经元的连接数呈现快速增长趋势

1. 自适应线性单元 (Widrow and Hoff, 1960)

2. 神经认知机 (Fukushima, 1980)

3. GPU-加速 卷积网络 (Chellapilla et al., 2006)

4. 深度玻尔兹曼机 (Salakhutdinov and Hinton, 2009a)

5. 无监督卷积网络 (Jarrett et al., 2009b)

6. GPU-加速 多层感知机 (Ciresan et al., 2010)

7. 分布式自编码器 (Le et al., 2012)

8. Multi-GPU 卷积网络 (Krizhevsky et al., 2012a)

9. COTS HPC 无监督卷积网络 (Coates et al., 2013)

10. GoogLeNet (Szegedy et al., 2014a)

 

通过上图不难发现,人工神经元的连接数随着时间的推移,呈现出快速增长的趋势:上世纪50年代,人工神经元的连接数还低于fruit fly等低级动物,若干年后这一数量已经达到了较小哺乳动物(如小鼠)的水平。而进入2000年后,部分人工神经网络的神经元连接数量则可以与猫持平或者接近了。

与连接数量相对应的是神经网络规模,后者也同样呈现快速增长态势。不过就目前神经网络的神经元数量而言,它和人类的差距还非常之大(这一点显然和前面的神经元连接数量的情况不同)。参考下图的统计信息:

图 ‑ 人工神经网络与大自然生物的规模对比,差距明显

注:数字代表各种不同的人工神经网络模型,具体对应的是:

1. 感知机 (Rosenblatt, 1958, 1962)

2. 自适应线性单元 (Widrow and Hoff, 1960)

3. 神经认知机 (Fukushima, 1980)

4. 早期后向传播网络 (Rumelhart et al., 1986b)

5. 用于语音识别的循环神经网络 (Robinson and Fallside, 1991)

6. 用于语音识别的多层感知机 (Bengio et al., 1991)

7. 均匀场sigmoid信念网络 (Saul et al., 1996)

8. LeNet-5 (LeCun et al., 1998c)

9. 回声状态网络 (Jaeger and Haas, 2004)

10. 深度信念网络 (Hinton et al., 2006a)

 

人类大脑是一个非常复杂的系统,它通常可以在极低的功耗下快速给出响应,这是目前神经网络所“无法企及”的。

1.2    激活函数

随着深度神经网络的高速发展,激活函数也迎来了一轮又一轮的“革新换代”。因而我们有必要花一小节的篇幅,来总结一下神经网络发展历程中被广泛使用过的一些激活函数,为后续的学习打下一定基础。

1.2.1  Sigmoid

激活函数之所以重要,在于它可以为神经网络模型带来“非线性”物质,从而极大增强深度网络的表示能力——因此它也被人们称为“非线性映射函数”。据悉,激活函数的灵感来源于生物的神经元,后者是神经系统中最基本的组成单元。它有两种工作状态,即兴奋或者抑制。一般情况下,神经元会处于抑制状态;而当接收到外界的刺激信息,并达到一个阈值时,神经元会被激活。此时神经元会转向兴奋状态,并向与它连接的其它神经元传播物质。

图 ‑ 生物神经元结构

 

人工神经元和上述的神经元工作机制非常类似。如我们在前一小节学习到的,它的实现如下所示:

图 ‑ 人工神经元结构

 

上图中的activation function就是我们本小节的主角了。

在众多激活函数中,Sigmoid可以说是深度神经网络前期使用得最为广泛的一种激活函数了。它对应的公式也并不复杂,如下所示:

f(x) = 

其函数图形相对平滑,参见下图的描述:

图 ‑ sigmoid函数

 

可见sigmoid将输入值映射到了一个0到1之间的区间。

不难理解,sigmoid函数在其定义域内是处处可导的,其导数为:

 

 

那么Sigmoid有什么缺陷,为什么现在深度神经网络中已经比较少出现它的身影了呢?

经过不少学者的持续研究,他们针对sigmoid提出了如下几个观点:

l  过饱和,梯度丢失问题

图 ‑ sigmoid函数梯度

 

从上图不难看出,当x大于5,或者小于-5时,梯度值已经趋向于0了——这样导致的结果就是误差在反向传播的过程中很难传递到前面,换句话说就是网络很可能无法完成正常的训练过程

l  收敛缓慢,有可能会震荡

l  值域的均值非零

我们知道sigmoid的输出都是大于0的,这会导致什么问题呢?

神经元的处理过程如下图所示:

它接收前面一层的输出xi,然后乘以权重wi,最后和bias一起输入到激活函数f中产生结果。用公式表示就是:

或者:

其中w是一个向量࿰

  • 6
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值