深度学习入门教程 第二讲

1.2 S 型神经元

学习算法听上去非常棒。但是我们怎样给一个神经网络设计这样的算法呢?假设我们有一 个感知机网络,想要用它来解决一些问题。例如,网络的输入可以是一幅手写数字的扫描图像。 我们想要网络能学习权重和偏置,这样网络的输出能正确分类这些数字。为了看清学习是怎样 工作的,假设我们把网络中的权重(或者偏置)做些微小的改动。就像我们⻢上会看到的,这一 属性会让学习变得可能。这里简要示意我们想要的(很明显这个网络对于手写识别还是太简单了!):

如果对权重(或者偏置)的微小的改动真的能够仅仅引起输出的微小变化,那我们可以利用 这一事实来修改权重和偏置,让我们的网络能够表现得像我们想要的那样。例如,假设网络错 误地把一个“9”的图像分类为“8”。我们能够计算出怎么对权重和偏置做些小的改动,这样网 络能够接近于把图像分类为“9”。然后我们要重复这个工作,反复改动权重和偏置来产生更好 的输出。这时网络就在学习。

问题是当我们给实际网络加上感知机时,结果并不像我们想象的那样。实际上,网络中单 个感知机上一个权重或偏置的微小改动有时候会引起那个感知机的输出完全翻转,如 0 变到 1。 那样的翻转可能接下来引起其余网络的行为以极其复杂的方式完全改变。因此,虽然你的“9” 可能被正确分类,网络在其它图像上的行为很可能以一些很难控制的方式被完全改变。这使得 逐步修改权重和偏置来让网络接近期望行为变得困难。也许有其它聪明的方式来解决这个问题。 但是目前为止,我们还没发现有什么办法能让感知机网络进行学习。

我们可以引入一种称为 S 型神经元的新的人工神经元来克服这个问题。S 型神经元和感知机 类似,但是经过修改后,权重和偏置的微小改动只引起输出的微小变化。这对于让神经元网络 学习起来是很关键的。

好了, 让我来描述下 S 型神经元。我们用描绘感知机的相同方式来描绘 S 型神经元:

正如一个感知机,S 型神经元有多个输入,x1,x2,...。但是这些输入可以取 0 和 1 中的任 意值,而不仅仅是 0 或 1。例如,0.638 . . . 是一个 S 型神经元的有效输入。同样,S 型神经元 对每个输入有权重,w1,w2,...,和一个总的偏置,b。但是输出不是 0 或 1。相反,它现在是σ(w · x + b),这里 σ 被称为 S 型函数,定义为:

把它们放在一起来更清楚地说明,一个具有输入 x1, x2, . . .,权重 w1, w2, . . .,和偏置 b 的 S型神经元的输出是:

初看上去,S 型神经元和感知机有很大的差别。如果你不熟悉 S 型函数的代数形式,它看上 去晦涩难懂又令人生畏。实际上,感知机和 S 型神经元之间有很多相似的地方,跨过理解上的 障碍,S 型函数的代数形式具有很多技术细节。

为了理解和感知机模型的相似性,假设 z ≡ w · x + b 是一个很大的正数。那么 e−z ≈ 0 而σ(z) ≈ 1。即,当 z = w · x + b 很大并且为正,S 型神经元的输出近似为 1,正好和感知机一样。 相反地,假设 z = w·x+b 是一个很大的负数。那么 e−z → ∞,σ(z) ≈ 0。所以当 z = w·x+b是一个很大的负数,S 型神经元的行为也非常近似一个感知机。只有在 w · x + b 取中间值时, 和感知机模型有比较大的偏离。

顺便提一下,σ 有时被称为逻辑函数,而这种新的神经元类型被称为逻辑神经元。既然这些术语被很多从事于神 经元网络的人使用,记住它是有用的。然而,我们将继续使用 S 型这个术语。

σ 的代数形式又是什么?我们怎样去理解它呢?实际上,σ 的精确形式不重要 —— 重要的是这个函数绘制的形状是这样:

这个形状是阶跃函数平滑后的版本:

如果 σ 实际是个阶跃函数,既然输出会依赖于 w · x + b 是正数还是负数2,那么 S 型神经元 会成为一个感知机。利用实际的 σ 函数,我们得到一个,就像上面说明的,平滑的感知机。确 实,σ 函数的平滑特性,正是关键因素,而不是其细部形式。σ 的平滑意味着权重和偏置的微小 变化,即 ∆wj 和 ∆b,会从神经元产生一个微小的输出变化 ∆output。实际上,微积分告诉我 们 ∆output 可以很好地近似表示为:

其中求和是在所有权重 wj 上进行的,而 ∂ output/∂wj 和 ∂ output/∂b 符号表示 output 分 别对于 wj 和 b 的偏导数。如果偏导数这个概念让你不安,不必惊慌。上面全部用偏导数的表达 式看上去很复杂,实际上它的意思非常简单(这可是个好消息):∆output 是一个反映权重和偏 置变化 —— 即 ∆wj 和 ∆b —— 的线性函数。利用这个线性特性,我们比较容易细微地修改权重 和偏置的值,从而获得我们需要的细微的输出变化。所以,因为S 型神经元具有与感知机类似的 本质行为,它们可以帮助我们了解权重和偏置的变化如何影响输出值。

实际上,当 w · x + b = 0 ,感知机输出 0,而同时阶跃函数输出 1。所以严格地说,我们需要修改阶跃函数来符合这点。但是你知道怎么做。

如果对 σ 来说重要的是形状而不是精确的形式,那为什么要在公式 (3) 中给 σ 使用特定的 形式呢?事实上,在下文我们还将不时地考虑一些神经元,它们给其它激活函数 f(·) 输出是f (w · x + b)。当我们使用一个不同的激活函数,最大的变化是公式 (5) 中用于偏导数的特定值 的改变。事实证明当我们后面计算这些偏导数,用 σ 会简化数学计算,这是因为指数在求导时 有些可爱的属性。无论如何,σ 在神经网络的工作中被普遍使用,并且是这本书中我们最常使用 的激活函数。

我们应该如何解释一个 S 型神经元的输出呢?很明显,感知机和 S 型神经元之间一个很大的 不同是 S 型神经元不仅仅输出 0 或 1。它可以输出 0 到 1 之间的任何实数,所以诸如 0.173 . . .和 0.689 . . . 的值是合理的输出。这是非常有用的,例如,当我们想要输出来表示一个神经网络 的图像像素输入的平均强度。但有时候这会是个麻烦。假设我们希望网络的输出表示“输入图 像是一个 9”或“输入图像不是一个 9”。很明显,如果输出是 0 或 1 是最简单的,就像用感知 机。但是在实践中,我们可以设定一个约定来解决这个问题,例如,约定任何至少为 0.5 的输出 为表示“这是一个 9”,而其它小于 0.5 的输出为表示“不是一个 9”。当我们正在使用这样的约 定时,我总会清楚地提出来,这样就不会引起混淆。

练习

• S 型神经元模拟感知机,第一部分

假设我们把一个感知机网络中的所有权重和偏置乘以一个正的常数,c > 0。证明网络的行 为并没有改变。

• S 型神经元模拟感知机,第二部分 假设我们有上题中相同的设置 —— 一个感知机网络。同样假设所有输入被选中。我们不需 要实际的输入值,仅仅需要固定这些输入。假设对于网络中任何特定感知机的输入 x,权 重和偏置遵循 w · x + b ̸= 0。现在用 S 型神经元替换所有网络中的感知机,并且把权重 和偏置乘以一个正的常量 c > 0。证明在 c → ∞ 的极限情况下,S 型神经元网络的行为 和感知机网络的完全一致。当一个感知机的 w · x + b = 0 时又为什么会不同?

原文发布于微信公众号 - UAI人工智能(UniversityAI)

原文发表时间:2017-10-27

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏人工智能LeadAI

GoogLeNet的心路历程(二)

本文介绍关于GoogLeNet的续作,习惯称为inception v2,如下: [v2] Batch Normalization: Accelerating D...

3546
来自专栏机器之心

教程 | 一个基于TensorFlow的简单故事生成案例:带你了解LSTM

选自Medium 机器之心编译 参与:Ellan Han、吴攀 在深度学习中,循环神经网络(RNN)是一系列善于从序列数据中学习的神经网络。由于对长期依赖问题...

4239
来自专栏Coding迪斯尼

用深度学习实现自然语言处理:word embedding,单词向量化

前几年,腾讯新闻曾发出一片具有爆炸性的文章。并不是文章的内容有什么新奇之处,而是文章的作者与众不同,写文章的不是人,而是网络机器人,或者说是人工智能,是算法通过...

901
来自专栏SeanCheney的专栏

《Scikit-Learn与TensorFlow机器学习实用指南》 第14章 循环神经网络

击球手击出垒球,你会开始预测球的轨迹并立即开始奔跑。你追踪着它,不断调整你的移动步伐,最终在观众的掌声中抓到它。无论是在听完朋友的话语还是早餐时预测咖啡的味道,...

1002
来自专栏机器之心

入门 | 无需双语语料库的无监督式机器翻译

3517
来自专栏AILearning

【Scikit-Learn 中文文档】聚类 - 无监督学习 - 用户指南 | ApacheCN

2.3. 聚类 未标记的数据的 Clustering(聚类) 可以使用模块 sklearn.cluster 来实现。 每个 clustering algo...

1.7K10
来自专栏ATYUN订阅号

使用Python计算非参数的秩相关

当两个变量都有良好理解的高斯分布时,很容易计算和解释。而当我们不知道变量的分布时,我们必须使用非参数的秩相关(Rank Correlation,或称为等级相关)...

1103
来自专栏AI研习社

无监督聚类问题中,如何决定簇的最优数量?

编者按:聚类问题有一大经典难题:没有数据集的真实分类情况,我们怎么才能知道数据簇的最优数目? 本文会谈谈解决该问题的两种流行方法:elbow method(肘子...

3528
来自专栏PaddlePaddle

【序列到序列学习】无注意力机制的神经机器翻译

生成古诗词 序列到序列学习实现两个甚至是多个不定长模型之间的映射,有着广泛的应用,包括:机器翻译、智能对话与问答、广告创意语料生成、自动编码(如金融画像编码)...

3619
来自专栏深度学习自然语言处理

【干货】GRU神经网络

前用的最多的三种神经网络是CNN,LSTM,GRU。其中,后两者都是RNN的变种,去年又给RNN发明了个SRU(优点是train RNN as fast as ...

44511

扫码关注云+社区