尝试理解神经网络中的激活函数

激活函数引用:https://www.cnblogs.com/ms-uap/p/9962978.html

首先,单个神经元是长这样的:

也就是,当A=σ(Z)=Z时,不使用激活函数的话,那么,单个神经网络,输出只能是A = ΣWX + b

1. 从训练数据来理解。(参考:https://blog.csdn.net/weixin_38275649/article/details/80340538

假如我们的神经网络,仅仅是一个单细胞的神经元

联想我们的样本,例如在做图片识别的时候,通常来说,训练数据:

x1,x2,x3,是某动物的概率。(例如:有毛发:1,有獠牙:1,毛色R:255,毛色G:109,毛色B:100,是豹子的概率:0.75)

显然,如果拿A=σ(Z) = sigmoid(Z) = 0.75,看起来就很合适了(当然,强行的Z=0.75好像也没什么问题,且看第2点)

2. 从非线性组合的角度来理解。(参考:https://zhuanlan.zhihu.com/p/27661298

在测绘中,通常我们拟合曲面的时候,有如下样本数据:

x,y,z

目标是,知道范围内的x,y,获得z。

先说一下通常的做法(我认为这是建模与神经网络训练十分重要的区别):



首先,我们假定它有一个模型:Z = w0 +  w1 * x + w2 * y + w3 * x * y + w4 * x2 + w5 * y2 + w6 * x 2* y + w7 * y2 * x +  w8 * x3 + w9* y3 + ……(一般就w0~w9到此为止了)

假定,(w0~w9),其初始值为(w‘0~w‘9),也就是:(0.1,……0.1)

假如我们使用高斯牛顿迭代法来求解,我们不直接解w0~w9,令wi = w‘i +dwi,我们要解的是dwi ,也就是初始值的改正值:

原函数变为:Z = (w‘0 + dw0) +  (w‘1+dw1) * x + (w‘2 + dw2) * y + (w‘3 + dw3 ) * x * y + ……;

也就是:Z = Z ‘  +    dw0 +  dw1 * x + dw2 * y + w3 * x * y  + ……;

也就是:AW = (Z - Z‘)= b

W = [dw0,……dw9]T

而A的每一行,根据各个样本,有An = [1,x,y,xy,x2,y2 ……]

解AW=b

根据最小二乘原理,解AW=b。

ATAW=ATb

W = (ATA)-1ATb,解得W = [dw0,……dw9]T

将解的结果,代回w‘‘i = w‘i +dwi , (w‘‘0~w‘‘9)作为新的初始值,继续迭代解

直到:上次迭代的(Z - Z‘)2 和本次迭代的 (Z - Z‘)2  相差无几。

***如有需要以离区域中心加权,可以引入权矩阵:  W = (ATPA)-1ATPb,P通常是对角阵,意思是Z与Z之间高程是独立观测量,也就是说Zi ≠ f(Zj)。

***P对角上的数值可以为 di / ∑ d,d是离中心的距离 ; 在测绘上,可以表示为 1 / (Z测量误差)2

***权值,代表我们对这个样本的关注程度,样本误差越小,权值越大。

在曲面不太复杂,且有一定的规律的时候,这种方法通常效果很理想。因为其考虑了XY之间的非线性因素。



如果以“单细胞神元” , 且激活函数A=σ(Z)=Z时,我们顶多可以 Z = WX + b ,  W = [w1,w2] , X = [x,y]T

这样完全只是一个空间平面而已。(w1*  x  +  w2* y  - z  + b =  0)

进而,我们考虑:

A=σ(Z) =  sigmoid(Z)  ,参考https://zhuanlan.zhihu.com/p/27661298

sigmoid 泰勒展开部分,可以解决函数仅仅为线性函数的问题。但是:

sigmoid函数的值,只能是0~1之间,显然,我们要的Z值,肯定不是这样的(Z是根据地形,数值可能是2.xxx ,3.xxxx各种)

那么,能解决这个问题,只能是多层神经网络:https://www.cnblogs.com/ms-uap/p/10031484.html



尝试理解神经网络中的激活函数

原文地址:https://www.cnblogs.com/pylblog/p/10364631.html

时间: 2024-11-08 08:30:15

尝试理解神经网络中的激活函数的相关文章

浅谈神经网络中的激活函数

???????激活函数是神经网络中一个重要的环节,本文将介绍为什么神经网络网络要利用激活函数,几种常用的激活函数(逻辑函数Sigmoid.双曲正切函数tanh.线性整流函数(ReLU),神经网络中的梯度消失问题和ReLU如何避免梯度消失. 1 用激活函数的原因 ???????如果神经网络没有进行可以提取非线性特征的卷积操作,而且该神经网络也不用激活函数,那么这个神经网络第i层输出只有Wxi+b.这样此神经网络不论有多少层,第i层的输出都是一个关于第i层输入xi的线性组合,相当于此时多层神经网络退

神经网络中各种激活函数比较

ReLU 激活函数: ReLu使得网络可以自行引入稀疏性,在没做预训练情况下,以ReLu为激活的网络性能优于其它激活函数. 数学表达式: $y = max(0,x)$ Sigmoid 激活函数: sigmoid 激活函数在神经网络学习方面,可以将重点特征推向中央区,将非重点特征推向两侧区. 数学表达式: $y = (1 + exp(-x))^{-1}$ Tanh 激活函数: Tanh 激活函数使得输出与输入的关系能保持非线性单调上升和下降关系,比sigmoid 函数延迟了饱和期,对神经网路的容错

神经网络中的激活函数具体是什么?为什么Relu要好过与tanh和sigmoid function

为什么要引入激活函数? 如果不用激活函数(其实相当于激励函数是f(x)=x),在这种情况下你每一层输出都是上层输入的线性函数,很容易验证,无论你神经网络有多少层,输出都是输入的线性组合,与没有隐藏层效果相当,这种情况就是最原始的感知机了. 正因为上面的原因,我们决定引入非线性函数作为激励函数,这样深层神经网络就有意义了(不再是是输入的线性组合,可以逼近任意函数).最早的想法是sigmoid函数或者tanh函数,输出有界,很容易充当下一层输入.激活函数的作用是为了增加神经网络模型的非线性.否则你想

尝试理解神经网络训练过程

https://www.cnblogs.com/ms-uap/p/9928254.html#4150272 https://www.cnblogs.com/ms-uap/p/9945871.html 原文地址:https://www.cnblogs.com/pylblog/p/10345727.html

干货 | 深入理解深度学习中的激活函数

理解深度学习中的激活函数 在这个文章中,我们将会了解几种不同的激活函数,同时也会了解到哪个激活函数优于其他的激活函数,以及各个激活函数的优缺点. 1. 什么是激活函数? 生物神经网络是人工神经网络的起源.然而,人工神经网络(ANNs)的工作机制与大脑的工作机制并不是十分的相似.不过在我们了解为什么把激活函数应用在人工神经网络中之前,了解一下激活函数与生物神经网络的关联依然是十分有用的. 一个典型神经元的物理结构由细胞体.向其他神经元发送信息的轴突以及从其他神经元接受信号或信息的树突组成. ? 图

理解NLP中的卷积神经网络(CNN)

此篇文章是Denny Britz关于CNN在NLP中应用的理解,他本人也曾在Google Brain项目中参与多项关于NLP的项目. · 翻译不周到的地方请大家见谅. 阅读完本文大概需要7分钟左右的时间,如果您有收获,请点赞关注 :) 一.理解NLP中的卷积神经网络(CNN) 现在当我们听到神经网络(CNN)的时候,一般都会想到它在计算机视觉上的应用,尤其是CNN使图像分类取得了巨大突破,而且从Facebook的图像自动标注到自动驾驶汽车系统,CNN已经成为了核心. 最近,将CNN应用于NLP也

记录神经网络中一些小知识点

记录神经网络中一些小知识点 1 Caffe中的blob维度 Caffe中的blob具有4个维度,分别是num,channel,width和height: 其中我们在定义各个网络层时,常用到的一个参数numout,就是指定的channel: 比如说,维度为1*3*5*5的数据输入网络(即每次输入一张5*5大小的3通道图),经过一个stride为2,pad为1,kernel为2,numout为2的卷积层后,维度就变成了1*2*3*3: 假如输入有n个通道,计算时,caffe就会对应产生n个filte

cs231n 卷积神经网络与计算机视觉 5 神经网络基本结构 激活函数总结

1 引入 神经网络中的神经元的灵感来源于人脑,人体中大约有860亿个神经元,大约有 10^14 - 10^15 突触(synapses). 每个神经元由树突dendrites接收信号 轴突axon发射信号. 轴突又连接到其他神经单元 的树突.突触强度synaptic strengths (权重w) 可以经过学习控制输入信号的输出是抑制还是激活( excitory (positive weight) or inhibitory (negative weight)) . 如果经过细胞体汇合之后的信号

如何选取一个神经网络中的超参数hyper-parameters

1.什么是超参数 所谓超参数,就是机器学习模型里面的框架参数.比如聚类方法里面类的个数,或者话题模型里面话题的个数等等,都称为超参数.它们跟训练过程中学习的参数(权重)是不一样的,通常是手工设定的,经过不断试错来调整,或者对一系列穷举出来的参数组合一通枚举(叫做网格搜索).深度学习和神经网络模型,有很多这样的参数需要学习. 2.一些启发式规则 在实际应用中,当你使用神经网络去解决问题时,很难找到好的超参数.假设我们现在正在处理MINIST数据库的问题,并且对超参数是如何使用的一无所知.假设我们大