深入浅出神经网络与深度学习-算法函数(二)

1.1   常用传递函数

函数名称

映射关系

缩写

说明

阶梯函数

n<=0; a=0

n>0; a=1

step

大于0,输出1

符号函数

n<0; a=-1

n>=0; a=1

sgn

大于等于0,输出1

线性函数

a=n

linear

n本身就是神经元输出

饱和线性函数

n<0; a=0

0<=n<=1; a=n

n>1; a=1

ramp

n小于0,输出0

n在0-1闭区间,输出n

n大于1,输出1

对数S形函数

a = 1/(1+exp(-n))

sigmoid

有界函数,无论n如何,输出永远在(0,1)开区间

双曲正切S形函数

a =

(exp(n)–exp(-n))

/(exp(n)+exp(-n))

tanh

有界函数,无论n如何变化,输出永远在(-1,1)开区间

 

注:自然常数-是数学科的一种法则。约为2.71828,就是公式为lim(1+1/x)^x,x→∞或lim(1+z)^(1/z),z→0 ,是一个无限不循环小数,是为超越数

同时,它也等于

注意,

换底公式




1.1.1 输入函数

可能会有n个信号进入人工神经元,网络需要将这些信号转化为单个可估算值;即输入函数需要完成的工作:将输入信号转化为单个可估算值(估算值在-1到1之间)

最常见的一类输入函数是加权和。假设神经元N连接到网络上一层的n个神经元。神经元N输入的加权和A使用如下公式计算:将全部n个输入中每个连接的输入值a与连接权重w的乘积相加。

列如:神经元N与上一层3个神经元连接,那么n=3,a={ 0.3, 0.5, 0.6 },w= { 0.4, -0.2, 0.9 },那么神经元N的加权和AN = (0.3*0.4)+0.5*(-0.2)+0.6*0.9


1.1.1 输出(激活)函数

输出函数决定某个神经元是否激发,即是否将输出信号传送到网络下一层的所有神经元。

MLP网络中最常用的一类激活函数是sigmoid(对数S型函数)函数,由于它是非线性的,比较适用于神经网络。它是有界函数,无论n如何,输出永远在(0,1)开区间

A 趋近于负无穷大时,分母相应变得无穷大,该函数值趋近于零。由此类推,A 趋近于正无穷大时,指数项消失,该函数值趋近于 1

1.1.1 归一化

我们介绍一下特征缩放的归一化方法。


1.1.1 网络误差函数

监督式学习主要是对神经网络输出进行缓慢的系统化误差校正,因此,训练程序首先需要一种方法来计算误差。

MLP 网络中最常用的误差函数是均方误差函数。从本质上讲,该函数的作用是计算训练程序算出的实际值与训练数据中的期望值之间的平均“差异”。

数学公式如下:

假设有 n 个输出神经元,每个输出神经元的加权和为 A,期望值与训练程序计算训练数据给出的值的差,求出其平方值,将n个平方值相加,然后除以输出神经元数 n,从而求出总输出误差 E。

简单来说:假设您的目标是投掷一个飞镖,让其击中标靶中心(靶心)。每次投掷飞镖时,其在标靶上的落镖位置与靶心的距离为 d(正中靶心则表示 d = 0)。

要算出您的命中情况怎么样,可计算您偏离的平均距离,以便了解后面的投掷必须校正到什么程度才能使投掷得更准确。


线性可分及不可分问题说简单也简单,但对于AI来说,还是比较麻烦的,在后续章节我们来一起说明分析一下


猜你喜欢

转载自blog.csdn.net/wudaoshihun/article/details/80528621