Day 14: 人工神经网路初探 激活函数(中)

激活函数 Activation Function

接下上篇,我们继续介绍较为常见的激活函数。

TanH/Hyperbolic Tangent 双曲正切

TanH activation function 使用下列函数计算neuron的输出:

https://ithelp.ithome.com.tw/upload/images/20210920/20141566EHY6kWp4Q4.png

TanH与Sigmoid activation function 相当相似,除了TanH是以零值居中。图中可明显看出S型曲线有通过原点。
因为TanH函数是零值中心,它的模型输入会有小,中与中间数值。

https://ithelp.ithome.com.tw/upload/images/20210920/20141566Xwqqu5hmaT.png

Rectified Linear Unit 线性整流函数

Rectified Linear Unit(ReLU) 根据z值来确定neuron的输出。假设z值为正值,ReLU使用此数值当作neuron的输出,反之输出则为零。ReLU的输出范围位於0至+∞ 之间。
ReLU函数如下列所显示:

https://ithelp.ithome.com.tw/upload/images/20210920/20141566wBGC6qvVHt.png

ReLu activation function的好处在於能够有效计算及允许网路快速收敛。ReLu也是非线性且有导函数能够套用於backpropagation,使得输入权重能够被修正。

ReLu activation function最大的缺点在於对於零或负值输入,函数的梯度将会变成零值,这使得此方法不适合在输入有负值的情况下使用。(无法套用backpropagation)
Z(X) = Relu(sum(Wi * Xi)),由此可知输入(Xi)并和输出(Z(X))并非线性关系,因此Relu并没有限定输入值域的问题。 (感谢Greysuki的指正~)

ReLU被广泛使用於几乎所有电脑视觉模组训练上,像是图片像素便不包含负值。

Leaky ReLU

Leaky ReLU提供ReLY的些微变化,取代了将z的负值变成零的方式,它将z的负值乘上极小数如0.01。
Leaky ReLU在负值区域有一段小斜坡且允许使用backpropagation。
但是缺点在於Leaky ReLU的负值结果并不保有一致性。

下篇接续!


<<:  Day 20 利用transformer自己实作一个翻译程序(二) 建立环境和下载资料集

>>:  Computed vs Methods

Day05:工程师必学的 Markdown 笔记语法

一、前言   大家一定都知道并且常使用 Markdown 吧?那你们常使用的工具有哪些呢?以下我就简...

Day 01 Flask 是什麽

根据 程序语言社群 TIOBE 2021年8月发表的热门程序语言排行榜中,Python 在众多程序语...

方法论(Know how):隐藏在程序书背後的系统逻辑与资讯汇整方法

把一件事情从现象上升到逻辑,再上升到方法,再到一整套方法体系,这个过程,就叫「方法论」。 不是每一个...

[Day30] 第三十课 Azure学习建议与深入浅出Azure常用服务小结

终於来到第30天了,每天写下来不知不觉就一个月了,记得第一课还在自我介绍, 转眼间已经要第三十课。这...

[重构倒数第25天] - Vuex + Composition API 组合技

前言 该系列是为了让看过Vue官方文件或学过Vue但是却不知道怎麽下手去重构现在有的网站而去规画的系...