写点什么

深度学习的数学(三):神经元工作的数学表示

  • 2020-04-03
  • 本文字数:2643 字

    阅读完需:约 9 分钟

深度学习的数学(三):神经元工作的数学表示

编者按:本文节选自图灵程序设计丛书 《深度学习的数学》一书中的部分章节。


前文中用数学式表示了神经元的工作。本节我们试着将其在数学上一般化。

简化神经元的图形

为了更接近神经元的形象,1 - 2 节中将神经元表示为了下图的样子。



然而,为了画出网络,需要画很多的神经元,在这种情况下上面那样的图就不合适了。因此,我们使用如下所示的简化图,这样很容易就能画出大量的神经元。



为了与生物学的神经元区分开来,我们把经过这样简化、抽象化的神经元称为 神经单元(unit)。


注:很多文献直接称为“神经元”。本书为了与生物学术语“神经元”区分,使用“神经单元”这个称呼。另外,也有文献将“神经单元”称为“人工神经元”,但是由于现在也存在生物上的人工神经元,所以本书中也不使用“人工神经元”这个称呼。

激活函数

将神经元的示意图抽象化之后,对于输出信号,我们也对其生物上的限制进行一般化。


根据点火与否,生物学上的神经元的输出 分别取值 1 和 0(下图)。



然而,如果除去“生物”这个条件,这个“0 和 1 的限制”也应该是可以解除的。这时表示点火与否的下式(1 - 2 节式 (3))就需要修正。


点火的式子:


这里, 是单位阶跃函数。我们将该式一般化,如下所示。




这里的函数 是建模者定义的函数,称为 激活函数(activation function)。 是模型允许的任意数值, 是函数 能取到的任意数值。这个式 (2) 就是今后所讲的神经网络的出发点。


注:虽然式 (2) 只考虑了 3 个输入,但这是很容易推广的。另外,式 (1) 使用的单位阶跃函数 在数学上也是激活函数的一种。


请注意,式 (2) 的输出 的取值并不限于 0 和 1,对此并没有简单的解释。一定要用生物学来比喻的话,可以考虑神经单元的“兴奋度”“反应度”“活性度”。


我们来总结一下神经元和神经单元的不同点,如下表所示。


神经元神经单元
输出值 $y$0或1模型允许的任意数值
激活函数单位阶跃函数由分析者给出,其中著名的是 Sigmoid 函数(后述)
输出的解释点火与否神经单元的兴奋度、反应度、活性度



将神经元点火的式 (1) 一般化为神经单元的激活函数式 (2),要确认这样做是否有效,就要看实际做出的模型能否很好地解释现实的数据。实际上,式 (2) 表示的模型在很多模式识别问题中取得了很好的效果。

Sigmoid 函数

激活函数的代表性例子是 Sigmoid 函数 ,其定义如下所示。


关于这个函数,我们会在后面详细讨论(2-1 节)。这里先来看看它的图形,Sigmoid 函数 的输出值是大于 0 小于 1 的任意值。此外,该函数连续、光滑,也就是说可导。这两种性质使得 Sigmoid 函数很容易处理。



单位阶跃函数的输出值为 1 或 0,表示点火与否。然而,Sigmoid 函数的输出值大于 0 小于 1,这就有点难以解释了。如果用生物学术语来解释的话,如上文中的表格所示,可以认为输出值表示神经单元的兴奋度等。输出值接近 1 表示兴奋度高,接近 0 则表示兴奋度低。



本书中将 Sigmoid 函数作为标准激活函数使用,因为它具有容易计算的漂亮性质。如果用数学上单调递增的可导函数来代替,其原理也是一样的。

偏置

再来看一下激活函数的式 (2)。


这里的 称为阈值,在生物学上是表现神经元特性的值。从直观上讲, 表示神经元的感受能力,如果 值较大,则神经元不容易兴奋(感觉迟钝),而如果值较小,则神经元容易兴奋(敏感)。


然而,式 (2) 中只有 带有负号,这看起来不漂亮。数学不喜欢不漂亮的东西。另外,负号具有容易导致计算错误的缺点,因此,我们将 替换为


经过这样处理,式子变漂亮了,也不容易发生计算错误。这个 称为 偏置(bias)。



本书将式 (4) 作为标准使用。另外,此时的加权输入 (1-2 节)如下所示。


式 (4) 和式 (5) 是今后所讲的神经网络的出发点,非常重要。


另外,生物上的权重 和阈值 )都不是负数,因为负数在自然现象中实际上是不会出现的。然而,在将神经元一般化的神经单元中,是允许出现负数的。


问题 右图是一个神经单元。如图所示,输入 的对应权重是 2,输入 的对应权重是 3,偏置是 -1。根据下表给出的输入,求出加权输入 和输出 。注意这里的激活函数是 Sigmoid 函数。

输入 \boldsymbol{x_1}输入 \boldsymbol{x_2}加权输入 \boldsymbol{z}输出 \boldsymbol{y}
0.20.1
0.60.5

结果如下表所示(式 (3) 中的 e 取 e = 2.7 进行计算)

输入 \boldsymbol{x_1}输入 \boldsymbol{x_2}加权输入 \boldsymbol{z}输出 \boldsymbol{y}
0.20.12×0.2 + 3×0.1 - 1 = -0.30.43
0.60.52×0.6 + 3×0.5 - 1 = 1.70.84


备注 改写式 (5)

我们将式 (5) 像下面这样整理一下。


这里增加了一个虚拟的输入,可以理解为以常数 1 作为输入值(右图)。

于是,加权输入 可以看作下面两个向量的内积。


计算机擅长内积的计算,因此按照这种解释,计算就变容易了。


图书简介http://www.ituring.com.cn/book/2593



相关阅读


深度学习的数学(一):神经网络和深度学习


深度学习的数学(二):神经元工作的数学表示


2020-04-03 10:001513

评论

发布
暂无评论
发现更多内容

2023-04-21:用go语言重写ffmpeg的metadata.c示例。

福大大架构师每日一题

Go ffmpeg

ORACLE EBS:多组织结构 理解与配置

back_wang

oracle oracle ebs oracle apex

C头文件是什么,使用mmap

linux大本营

C语言 Mmap

创建型模式之单例模式和工厂模式

共饮一杯无

设计模式 创建型模型 三周年连更

MySQL WHERE 子句

仅需三步,快速打造指标数据应用

Kyligence

数据分析 指标平台

linux环境下用c语言实现reactor网络模型的代码案例

linux大本营

Linux reactor 高并发 epoll

lindex命令在shell脚本里的应用

linux大本营

Shell linux命令 脚本 shell脚本

一键搭建web版chatGPT,无需魔法,国内可用

石云升

AI AIGC ChatGPT 三周年连更

IPv6过渡技术概述

穿过生命散发芬芳

ipv6 三周年连更

报名开启,明天直播!龙蜥社区多位专家在线报告 | 2023 大学生操作系统大赛培训会

OpenAnolis小助手

活动 操作系统 计算机 大学生 龙蜥社区

网络视频监控如何入门?如何安装和配置、设备选择和实时监控?

wljslmz

三周年连更

组播ip地址,广播ip地址,特殊ip地址

linux大本营

TCP IP地址

QUIC技术分享

linux大本营

网络协议 udp QUIC

运行脚本报错lindex:未找到命令

linux大本营

bash Linux 脚本

怎么查看自己的mac地址和ip

linux大本营

Mac 网络 Windows Server IP地址

Node 版本控制

程序员海军

Node 三周年连更

解析mmap系统调用的所有的标志位

linux大本营

Linux 内存管理 Mmap 系统调用 内存映射

一文初探 Goroutine 与 channel

陈明勇

Go golang channel goroutine 三周年连更

大模型带来的Web复兴,会是昙花一现吗?

脑极体

AI 云厂商

C语言检测输入的ip地址中含有几个.

linux大本营

C语言 字符串

怎么看电脑上是否有lindex命令可运行

linux大本营

bash Linux linux命令

重塑元宇宙体验!3DCAT元宇宙实时云渲染解决方案来了

3DCAT实时渲染

元宇宙 元宇宙解决方案

kafka常用命令

烟波

kafka MQ 中间件

挑战 30 天学完 Python:Day11 函数

MegaQi

Python 挑战30天学完Python 三周年连更

MySQL 序列使用

C语言检测输入的ip地址是否合法

linux大本营

C语言 IP地址

Android XML数据解析

芯动大师

android XML配置 三周年连更

TCP正常关闭连接

阿泽🧸

TCP 三周年连更

MySQL 教程

如何快速在手机中查看UDID,无需itunes、itools

深度学习的数学(三):神经元工作的数学表示_AI&大模型_涌井良幸,涌井贞美_InfoQ精选文章