【复旦邱锡鹏教授《神经网络与深度学习公开课》笔记】神经元和人工神经网络

神经元

生物神经元:
在这里插入图片描述

平时处于抑制状态,当接受信息量达到一定程度后进入兴奋状态。

人工神经元:
在这里插入图片描述

一个人工神经元大致有两个步骤:
一是收集信息,如上图中 x 1 , ⋯   , x d x_1,\cdots,x_d x1,,xd表示神经元可以接受的外界信号,对这些信号进行加权汇总(不同外界信号对神经元作用的权重不同,即 w 1 , ⋯   , w d w_1,\cdots,w_d w1,,wd),最后加上用来调节阈值的偏置 b b b,得到上图中的汇总信息 z z z
二是将加权汇总的信息 z z z经过一个激活函数最后得到神经元的活性值 a a a
实质上人工神经元就是一个简单的线性模型。

激活函数

对不同类型的人工神经元,其一般只在激活函数的设计上有所不同,但是要将汇总信息映射到对应的区间内,必须要求激活函数具有以下性质:

  • 激活函数必须是连续可导(允许少数点上不可导)的非线性函数:可导的激活函数可以直接利用数值优化的方法(例如梯度下降)来学习网络参数。
  • 激活函数及其导函数要尽可能的简单:这样有利于提高网络计算效率。
  • 激活函数导数的值域要在一个合适的区间内:值域区间不能太大也不能太小,否则会影响训练的效率和稳定性。
  • 激活函数应该能够反应汇总信息的大小:也就是说如果z越小,激活函数应该尽可能更加地反映出z小所对应的状态。
  • 大多数的激活函数都是单调递增的。

常用的激活函数有以下三类:
在这里插入图片描述

S型函数

较为典型的就是之前说过的Logistic函数
σ ( x ) = 1 1 + exp ⁡ ( − x ) \sigma(x)=\frac{1}{1+\exp(-x)} σ(x)=1+exp(x)1
此外还有tanh函数,他的值域在 ( − 1 , 1 ) (-1,1) (1,1)之间
tanh ⁡ ( x ) = exp ⁡ ( x ) − exp ⁡ ( − x ) exp ⁡ ( x ) + exp ⁡ ( − x ) \tanh(x)=\frac{\exp(x)-\exp(-x)}{\exp(x)+\exp(-x)} tanh(x)=exp(x)+exp(x)exp(x)exp(x)
在这里插入图片描述

上述两个激活函数存在以下关系:
tanh ⁡ ( x ) = 2 σ ( 2 x ) − 1 \tanh(x)=2\sigma(2x)-1 tanh(x)=2σ(2x)1
通常情况下,只要不是要求神经元输出结果一定要是正的,最好选择tanh函数来代替Logistic函数,因为tanh函数在优化上更好。

S型函数的性质:

  • 是饱和函数:意思是说S型函数两端(横坐标趋向于正无穷和负无穷的两端)的梯度都是接近于0的
  • tanh函数是零中心化的,而logistic函数输出恒大于0 :非零中心化的输出会使得其后一层的神经元输入发生偏置偏移(bias shift),并进一步使得梯度下降收敛速度变慢(没搞明白)
斜坡函数

典型的斜坡函数是ReLU函数(修正的线性单元)
R e L U ( x ) = max ⁡ ( 0 , x ) \mathrm{ReLU}(x)=\max(0,x) ReLU(x)=max(0,x)
在这里插入图片描述

ReLU函数是一般神经网络的首选函数

ReLU函数的性质:

  • 计算上更加高效
  • 生物学合理性:单侧抑制(当神经元处于抑制状态时不区分抑制程度)、款兴奋边界(当神经元处于兴奋状态时区分兴奋的程度,即有多兴奋)
  • 在一定程度上缓解梯度消失问题

由于ReLU函数单侧抑制的性质,假如输入数据信息全部处于小于0一侧,那么ReLU函数的输出将变成0,对应的导数(梯度)也是0,从而无法更新参数,导致该神经元一直处于非激活状态,一直输出0,这就是所谓的死亡ReLU问题(Dying ReLU Problem)
为了解决这个问题,提出了Leaky ReLU函数:
L e a k y R e L U ( x ) = { x i f    x > 0 γ x i f    x ≤ 0 = max ⁡ ( 0 , x ) + γ min ⁡ ( 0 , x ) \mathrm{LeakyReLU}(x)=\left\{\begin{aligned} &x &if\ \ x>0\\ &\gamma x &if\ \ x\leq0 \end{aligned}\right.=\max(0,x)+\gamma\min(0,x) LeakyReLU(x)={xγxif  x>0if  x0=max(0,x)+γmin(0,x)
在这里插入图片描述

同样ReLU函数也是非零中心化的函数,基于此又提出了近似的零中心化的非线性函数
E L U ( x ) = { x i f    x > 0 γ ( exp ⁡ ( x ) − 1 ) i f    x ≤ 0 = max ⁡ ( 0 , x ) + min ⁡ ( 0 , γ ( exp ⁡ ( x ) − 1 ) ) \mathrm{ELU}(x)=\left\{\begin{aligned} &x&if\ \ x>0\\ &\gamma(\exp(x)-1)&if\ \ x\leq0 \end{aligned}\right.=\max(0,x)+\min(0,\gamma(\exp(x)-1)) ELU(x)={xγ(exp(x)1)if  x>0if  x0=max(0,x)+min(0,γ(exp(x)1))
在这里插入图片描述

除了这些之外,还有一个对ELU函数进行处理,使其尽可能接近ReLU函数的版本,也可以说是ReLU函数的平滑版本,叫做Softplus函数
S o f t p l u s ( x ) = log ⁡ ( 1 + exp ⁡ ( x ) ) \mathrm{Softplus}(x)=\log(1+\exp(x)) Softplus(x)=log(1+exp(x))
在这里插入图片描述

复合函数

复合激活函数都比较复杂,下面介绍几种

Swish函数

一种自门控(Self-Gated) 激活函数
s w i s h ( x ) = x σ ( β x ) \mathrm{swish}(x)=x\sigma(\beta x) swish(x)=xσ(βx)
在这里插入图片描述

其中 σ \sigma σ函数就是上面提到的Logistic函数,由于 σ \sigma σ函数取值在 ( 0 , 1 ) (0,1) (0,1)之间,近似门控(gate,有0或1两种状态),而 σ \sigma σ函数的取值不只有这两种状态,而是在区间中取值,假如说对于式子 x σ ( x ) , σ ( x ) = 0.5 x\sigma(x),\sigma(x)=0.5 xσ(x),σ(x)=0.5,代表的意思就是只允许一半的信息通过,这种就是所谓的软门控(soft-gate),而所谓自门控(self-gate),只是为了强调信息是由传入的信息 x x x本身来控制的。
对于上式中的 β \beta β用来控制门控允许通过信息的多少,可以参照上图进行理解,在 β \beta β的不同取值下,图像在上图红色实线( β = 100 \beta=100 β=100)到黄绿色点线( β = 0 \beta=0 β=0)之间变换。

高斯误差线性单元(Gaussian Error Linear Unit,GELU)

G E L U ( x ) = x P ( X ≤ x ) \mathrm{GELU}(x)=xP(X\leq x) GELU(x)=xP(Xx)
其中 P ( X ≤ x ) P(X\leq x) P(Xx)是高斯分布 N ( μ , σ 2 ) N(\mu,\sigma^2) N(μ,σ2)的累积分布函数,也是一个S型函数。 μ , σ \mu,\sigma μ,σ为超参数,一般令 μ = 0 , σ = 1 \mu=0,\sigma=1 μ=0,σ=1
由于高斯分布的累积分布函数为S型函数,因此GELU可以通过下面的公式用Tanh函数或者Logistic函数来近似替代:
G E L U ( x ) ≈ 0.5 x ( 1 + t a n h ( 2 N ( x + 0.044715 x 3 ) ) ) G E L U ( x ) ≈ x σ ( 1.702 x ) \begin{aligned} &\mathrm{GELU}(x)\approx0.5x(1+\mathrm{tanh}(\sqrt{\frac{2}{N}}(x+0.044715x^3)))\\ &\mathrm{GELU}(x)\approx x\sigma(1.702x) \end{aligned} GELU(x)0.5x(1+tanh(N2 (x+0.044715x3)))GELU(x)xσ(1.702x)

人工神经网络

人工神经网络由大量神经元和人工神经网络以及它们之间的有向连接构成。构建人工神经网络需要考虑三个方面:

  • 神经元的激活规则:神经元输入到输出间的映射关系,一般为非线性函数(激活函数)
  • 网络的拓扑结构:不同神经元直接的连接关系
  • 学习算法:通过训练数据来学习网络的参数。这里特别注意,不是所有神经网络都是通过梯度下降方法来学习的。

网络拓扑结构主要有三种:

  • 前馈网络:下图a,信息由前向后单向传递
  • 记忆网络:下图b,内部存在循环边,需要记录神经元在某个时刻的状态(记忆)
  • 图网络:下图c,把神经元分为多个组,每组神经元之间的连接关系是由图定义的。
    在这里插入图片描述

通常情况下大多数神经网络都是三种结构的复合体。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/706900.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Android AOSP定制去掉Google搜索栏

Android AOSP定制去掉Google搜索栏 1.前言: ​ 最近接触了Android系统定制的需求,感觉非常有意思,之前做过Launcher和串口,也自己安装过虚拟机,不过几年没用Linux系统了有点不习惯,Linux命令也不熟悉&…

Flink Sql:四种Join方式详解(基于flink1.15官方文档)

JOINs flink sql主要有四种连接方式,分别是Regular Joins、Interval Joins、Temporal Joins、lookup join 1、Regular Joins(常规连接 ) 这种连接方式和hive sql中的join是一样的,包括inner join,left join&#xff…

【论文阅读】-- 时态合并树状图:时态标量数据的基于拓扑的静态可视化

时态合并树状图:时态标量数据的基于拓扑的静态可视化 摘要1 引言2 相关工作及背景介绍2.1 增广合并树2.2 (增强)合并树的可视化与跟踪2.3 特征跟踪2.4 数据线性化 3 时间合并树状图3.1 映射单个时间步长: R d → R R^d \rightarrow R Rd→R3.2 映射所有时…

Unity 设置窗口置顶超级详解版

目录 前言 一、user32.dll 1.什么是user32.dll 2.如何使用user32.dll 二、句柄Handle 1.句柄 2.句柄的功能 3.拿句柄的方法 三、窗口置顶 1.窗口置顶的方法 2.参数说明 3.使用方法 四、作者的碎碎念 前言 up依旧挑战全网讲解最详细版本~~ 本篇文章讲解的是unity…

基于Springboot的小型超市商品展销系统-计算机毕业设计源码01635

摘 要 科技进步的飞速发展引起人们日常生活的巨大变化,电子信息技术的飞速发展使得电子信息技术的各个领域的应用水平得到普及和应用。信息时代的到来已成为不可阻挡的时尚潮流,人类发展的历史正进入一个新时代。在现实运用中,应用软件的工作…

anaconda安装pytorch-快速上手99%可以(可以虚拟环境OR不进行虚拟环境)

一、预备工作 先检查自己是否有anaconda 在cmd里面输入conda --version查看 二、在anaconda中创建虚拟环境 1.1 打开Anaconda Prompt 1.2 进行自定义安装python 将其中的自定义地址和版本换成自己想安装的地址和版本 我这里安装的地址是E:\Anaconda\DL,python版本是3.8.3…

循环 -控制语句

循环 循环是什么 重复执行一段代码的结构。只要满足循环的条件,会一直执行这个代码。 循环条件:在一定范围之内,按照指定的次数来执行循环。 循环体:在指定的次数内执行的命令序列。只要条件满足循环体会被一直执行。 循环和…

Windows搭建nacos集群

Nacos是阿里巴巴的产品,现在是SpringCloud中的一个组件。相比Eureka功能更加丰富,在国内受欢迎程度较高。 下载地址:Tags alibaba/nacos GitHub 链接:百度网盘 请输入提取码 提取码:8888 解压文件夹 目录说明&am…

FPGA - 滤波器 - FIR滤波器设计

一,数字滤波器 滤波器是一种用来减少或消除干扰的器件,其功能是对输入信号进行过滤处理得到所需的信号。滤波器最常见的用法是对特定频率的频点或该频点以外的频率信号进行有效滤除,从而实现消除干扰、获取某特定频率信号的功能。一种更广泛的…

MyBatis 高级映射与延迟加载(分步查询)的详细内容

1. MyBatis 高级映射与延迟加载(分步查询)的详细内容 文章目录 1. MyBatis 高级映射与延迟加载(分步查询)的详细内容2. 准备工作3. 多对一 高级映射3.1 第一种方式:级联属性映射3.2 第二种方式:association…

英格索兰IngsollRang控制器过热维修讲解

【英格索兰IngsollRang控制器维修请关注】 【英格索兰IngsollRang控制器维修】 【英格索兰控制器维修】 一、IngsollRang扭矩枪控制器故障诊断 1. 检查环境温度:首先,确认工作场所的温度是否过高。如果环境温度超过设备规定的工作温度,可能…

刷代码随想录有感(102):动态规划——整数拆分

题干&#xff1a; 代码&#xff1a; class Solution { public:int integerBreak(int n) {vector<int>dp(n 1);dp[0] 0;dp[1] 0;dp[2] 1;for(int i 3; i < n; i){for(int j 1; j < i / 2; j){dp[i] max(dp[i], max((j) * (i - j), j * dp[i - j]));}}return…

JavaScript的数组(一维数组、二维数组、数组常用的方法调用)

天行健&#xff0c;君子以自强不息&#xff1b;地势坤&#xff0c;君子以厚德载物。 每个人都有惰性&#xff0c;但不断学习是好好生活的根本&#xff0c;共勉&#xff01; 文章均为学习整理笔记&#xff0c;分享记录为主&#xff0c;如有错误请指正&#xff0c;共同学习进步。…

eclipse 老的s2sh(Struts2+Spring+Hibernate) 项目 用import导入直接导致死机(CPU100%)的解决

1、下载Apache Tomcat - Apache Tomcat 8 Software Downloads 图中是8.5.100的版本&#xff0c;下面的设置用的是另一个版本的&#xff0c;其实是一样。 2、先将Server配好&#xff0c;然后再进行导入操作。 2、选择jdk 当然&#xff0c;这里也可以直接“Download and instal…

无公网IP与服务器完成企业微信网页应用开发远程调试详细流程

文章目录 前言1. Windows安装Cpolar2. 创建Cpolar域名3. 创建企业微信应用4. 定义回调本地接口5. 回调和可信域名接口校验6. 设置固定Cpolar域名7. 使用固定域名校验 前言 本文主要介绍如何在企业微信开发者中心通过使用内网穿透工具提供的公网域名成功验证回调本地接口服务! …

Solr7.4.0报错org.apache.solr.common.SolrException

文章目录 org.apache.solr.common.SolrException: Exception writing document id MATERIAL-99598435990497269125316 to the index; possible analysis error: cannot change DocValues type from NUMERIC to SORTED_NUMERIC for field "opt_time"Exception writing…

为什么说掌握心理学知识成为产品经理一门必修课?

大家好&#xff0c;我是herosunly。985院校硕士毕业&#xff0c;现担任算法研究员一职&#xff0c;热衷于机器学习算法研究与应用。曾获得阿里云天池比赛第一名&#xff0c;CCF比赛第二名&#xff0c;科大讯飞比赛第三名。拥有多项发明专利。对机器学习和深度学习拥有自己独到的…

uniapp地图导航

我们只需要给图标加一个点击事件 我这里的数据都是动态的&#xff0c;想测试的朋友可以写固定值 然后跳转之后首先会调到选择软件导航 点击导航之后会显示使用哪个app 最后我们选择之后将会直接跳转到app进行导航

【启明智显彩屏应用】Model3A 7寸触摸彩屏的充电桩应用方案

一、充电桩概述 &#xff08;一&#xff09;充电桩诞生背景 随着社会的进步和人们生活质量的提升&#xff0c;汽车已逐渐融入每个家庭的日常生活中。然而&#xff0c;汽车数量的激增也带来了严重的环境污染问题&#xff0c;特别是尾气排放。为了应对这一挑战&#xff0c;新能源…

Modbus协议转Profinet协议网关与气体监测系统配置案例

一、背景&#xff1b;Modbus协议和Profinet协议作为工业领域常见的两种通讯协议&#xff0c;各自具有一定的特点和应用范围。Modbus转Profinet网关&#xff08;XD-MDPN100/300&#xff09;在工业自动化控制系统中&#xff0c;可以将Modbus协议转换为Profinet协议&#xff0c;以…