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

激活函数 Activation Function

数学方法去决定neuron输出叫做激活函数(activation function)
但neuron的输出并不是此方程序的结果,这是activation function对z值进行运算,并确定neuron的输出。
Activation function会依据neuron的输入是否与预测模组有关系,再来确定是否应执行activation function (打开或关闭)他所连接的neuron。实际上,activation function将每个neuron的输出表准化为0到1或-1到1的范围。

Linear Activation Function

线性激活函数根据函数将输入乘以权重来计算neuron输出。
线性激活函数的输出由-∞ 到 +∞之间改变,这代表线性激活函数最好不要被启动。

https://ithelp.ithome.com.tw/upload/images/20210919/20141566XMz7dc2po1.png

线性激活函数有以下两种主要问题并且不在深度学习中使用:
深度学习使用一种叫做反向传播(backpropagation)的方法,它使用了一种技术叫做梯度下降(gradient descent)的技术。梯度下降要求计算一阶导数的输入,在线性激活中是个常数(constant)。常数的一阶导数为零,这代表它和输入没有任何关系。因此代表不可能回去更新输入的权重。
假如使用线性激活方方法,无论神经网路层数是多少,最後一层将会成为第一层的线性函数。换句话说,线性激活函数将网路转换成只有一层。这代表网路只能学习输入到输出的线性相依性,这并不适合解决电脑复杂的问题。

Sigmoid / Logistic Activation Function

Sigmoid activation function 使用S型函数计算neuron输出。

https://ithelp.ithome.com.tw/upload/images/20210919/20141566bPYkBNXrOj.png

其中z使用的是之前方程序所得的值。
S型函数产生的值将会落於0到1之间,当输入值大小有所差异时,将使得输出平滑化,而不会出现数值差异过大的状况。另一点优点是这是一格非线性函数且一阶导数後不会产生常数值。这使得Sigmoid activation function相当适合使用於需要使用backpropagation的深度学习。

而sigmoid activation function最大的缺点就是输出在大输入值与小输入值之间均不会有所改变。这使得sigmoid activation function不适合用於特徵向量包含大值或小值。一个克服这个缺点的解决方法是将特徵向量正规化,使得数值落於-1到1或者0到1之间。
另一个点是可以发现S型曲线并未居中於0。

https://ithelp.ithome.com.tw/upload/images/20210919/2014156624tLljzQsk.png

我们下篇接续~


<<:  #4 Python进阶教学1

>>:  @Day19 | C# WixToolset + WPF 帅到不行的安装包 [Bootstrapper-基础介绍]

[Day 26] 永和美食纪录-呈信传统鹅肉店 文化店

前言 转眼间,国庆连假已经要结束了,不晓得大家有没有好好的放松自己的身心,有些店家也因为连假的缘故而...

it行业做的工作有哪些?

(1)UI设计:UI的发展前景是很赞的,在两到三年前,甚至都有人推动让UI来代替産品经理来驱动。某种...

自己来一场30天不间断的文章之旅吧

五年前,我从资管系毕业。当时的我告诉自己,未来不会踏上跟写程序相关的工作。往餐饮业、服务业发展什麽...

[Day1] Jetpack Compose: 初始化的Project有什麽东西?

环境设定: 先去 https://developer.android.com/studio 下载An...

Day21 - ArgoCD 介绍及安装

ArgoCD 介绍 在学习 ArgoCD 前,先来想想之前我们是如何部属服务到 Kubernetes...