写点什么

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

  • 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:001301

评论

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

又一家!天数智芯天垓100 产品卡与龙蜥操作系统完成产品兼容互认证

OpenAnolis小助手

开源 适配 龙蜥操作系统 天数智芯 兼容

数据质量监控,你一直都做错了

雨果

数据质量

Spring Boot「04」Annotations 01

Samson

Java spring 学习笔记 spring-boot 10月月更

微服务与 API有什么区别?

雨果

微服务 数据api

干货|什么是特性团队/功能团队(FeatureTeam)

laofo

Scrum 研发效能 PMO 敏捷精益 敏捷研发

Java Lambda 表达式

Yeats_Liao

后端 Java core 10月月更

io的实质

wzh

Linux 面试 后端 io java 编程

记录第三天-Vue组件

默默的成长

Vue 前端 10月月更

Vue组件入门(三)插槽和动态组件

Augus

Vue 3 10月月更

贤鱼的刷题日常--P2671 [NOIP2015 普及组] 求和

贤鱼很忙

c++ 10月月更 题解

支撑阿里“双十一”的消息中间件,带你云淡风轻面对高并发

图灵教育

RocketMQ 中间件 架构师 消息中间件

一颗石榴给QA带来的启示

BY林子

软件测试 敏捷测试 测试工程师 敏捷QA

2022 Java零基础必备 简单易学 Eclipse免费下载安装+JDK环境搭建一站式捆绑服务到底的教程 足够全、足够详细、足够劲爆 最关键可以一直让你免费使用!

Geek_yx5md7

eclipse 工具 开发工具 环境搭建 Java 开发

我决定以后一直使用Eclipse了 因为它也可以安装集成PyDec插件来实现Python开发了 哇哈哈哈

Geek_yx5md7

Python 开发环境搭建 eclipse+pyhton Python编译器 新手学编程

MySQL高级--性能优化查询截取分析

Java学术趴

10月月更

Java 序列化与反序列化

Yeats_Liao

后端 Java core 10月月更

2022-10-12:以下go语言代码输出什么?A:1;B:2;C:panic;D:不能编译。 package main import “fmt“ func main() { m := m

福大大架构师每日一题

golang 福大大 选择题

支撑阿里“双十一”的消息中间件,带你云淡风轻面对高并发

图灵社区

RocketMQ 中间件 架构师 消息中间件

read、select、poll、epoll区别

wzh

网络 Linux Kenel epoll IO多路复用 poll

Vue-监听使用方法和过滤器

默默的成长

Vue 前端 10月月更

VUE 组件的计算属性

默默的成长

Vue 前端 10月月更

设备端零改动迁移实战——实践类

阿里云AIoT

安全 物联网 开发工具 迁移 企业实例

贤鱼的刷题日常--P1548 [NOIP1997 普及组] 棋盘问题

贤鱼很忙

c++ CSP 10月月更

【愚公系列】2022年10月 Go教学课程 026-结构体

愚公搬代码

10月月更

内网渗透-IPC$横向控制OA系统【网络安全】

网络安全学海

网络安全 信息安全 渗透测试 内网渗透 漏洞挖掘

cstdio的源码学习分析10-格式化输入输出函数fprintf整体分析

桑榆

源码刨析 10月月更 C++

企业级低代码中“自动化工作流”的5大优势!

优秀

自动化 工作流 企业级低代码

数字经济时代,企业应该如何搭建数字体验平台(DXP)?

Baklib

客户体验管理

同行四载,法大大携手SAP共筑数智未来

ToB行业头条

DevOps 与 DataOps 相关吗?

雨果

DataOps

Go 语言泛型编程之切片

宇宙之一粟

Go 泛型 泛型编程 10月月更

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