神经网络学习基础知识(激活函数,损失函数,前向传播,反向传播等)

1凸函数

对于一元函数f(xf(x),如果对于任意tϵ[0,1]tϵ[0,1]均满足:f(tx1+(1−t)x2)≤tf(x1)+(1−t)f(x2)f(tx1+(1−t)x2)≤tf(x1)+(1−t)f(x2),则称f(x)f(x)为凸函数(convex function)。

 如果对于任意tϵ(0,1)tϵ(0,1)均满足:f(tx1+(1−t)x2)<tf(x1)+(1−t)f(x2)f(tx1+(1−t)x2)<tf(x1)+(1−t)f(x2),则称f(x)f(x)为严格凸函数(convex function)

 判断一个函数是否为凸函数可以看其二阶导数:如果函数的二阶导数总是非负,即f′′(x)≥0f″(x)≥0 ,则f(x)f(x)是凸函数

 我们可以从几何上直观地理解凸函数的特点,凸函数的割线在函数曲线的上方,如图所示:

   原文地址:http://www.cnblogs.com/always-fight/p/9377554.html

2偏置项

我们知道,逻辑回归模型本质上就是用 y=WX+b 这个函数画决策面,其中W就是模型参数,也就是函数的斜率(回顾一下初中数学的 y=ax+b ),而b,就是函数的截距(初高中数学截距的概念,理解为x=0时,y的值)。

一维情况下,令W=[1], b=2。则y=WX+b如下(一条截距为2,斜率为1的直线):

二维情况下,令W=[1  1],b=2,则y=WX+b如下(一个截距为2,斜率为[1 1]的平面),即不过远点的平面。

在神经网络中将其理解为偏置项,如果没有该项,则神经网络很有可能变得很差,收敛很慢而且精度差,甚至可能陷入“僵死”状态无法收敛。

神经网络中,在输入X的前面加个1,作为偏置项的基底,(此时X就从n维向量变成了n+1维向量,即变成 [1, x1,x2…] ),然后,让每个分类器去训练自己的偏置项权重,所以每个分类器的权重就也变成了n+1维,即[w0,w1,…],其中,w0就是偏置项的权重,所以1*w0就是本分类器的偏置/截距啦。这样,就让截距b这个看似与斜率W不同的参数,都统一到了一个框架下,使得模型在训练的过程中不断调整参数w0,从而达到调整b的目的。

3激活函数

就是将输入到输出进行一个非线性变换,至于为什么要进行非线性变换,那是因为如果是线性变换的话,不管神经网络有多少层,输出都是输入的线性组合,这样就把神经网络层数的作用削弱了。所以神经网络中一般使用非线性函数。

常见的非线性函数:

(1) sigmod函数  (在sigmod函数中我们可以看到,其输出是在(0,1)这个开区间内

                                                                        sigmod函数公式

                                                             

 

 

(2)tanh函数

tanh函数公式和曲线如下(tanh的输出区间是在(-1,1)之间,而且整个函数是以0为中心的)

                                                   tanh函数公式

                                                        

(3)ReLU函数

ReLU函数公式和曲线如下

                                                                    relu函数公式      

                                                       

(4.)ELU函数

    ELU函数公式和曲线如下图

                                                   elu函数公式

                                                            

                   

5.PReLU函数

PReLU函数公式和曲线如下图(里面的参数α一般是取0~1之间的数,而且一般还是比较小的,如零点零几。当α=0.01时,我们叫PReLU为Leaky ReLU,算是PReLU的一种特殊情况)

                                                                  prelu公式

                                                      

4损失函数

损失函数(loss function)是用来估量你模型的预测值f(x)与真实值Y的不一致程度,在分类和回归问题中经常用到。在神经网络模型中,可以反向传播算法可以根据定义好的损失函数优化神经网络中参数的取值,从而使神经网络模型在训练数据集上的损失函数达到一个较小值。

(1)均方误差损失函数(MSE)(目标输出与实际输出的差值)


(2)交叉熵损失函数

(3)Softmax函数

假设有K个类别,Softmax计算过程为:(https://blog.csdn.net/wmsbeijing/article/details/78765977

 

其中,j=0,1,2,3,4,5,...,K-1

5正向传播和反向传播

https://www.cnblogs.com/charlotte77/p/5629865.html#undefined

6学习率(结合损失函数使用)

在反向传播中,利用梯度下降法对参数进行调优的过程中,学习率的设定会对结果产生较大的影响。学习率决定了参数每次更新的幅度,幅度过大,则可能导致参数在极优值两侧来回移动。学习率过小,则收敛太慢。可以尝试指数衰减法。

7防止过拟合

 

  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值