赞
踩
对于一元函数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
我们知道,逻辑回归模型本质上就是用 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的目的。
就是将输入到输出进行一个非线性变换,至于为什么要进行非线性变换,那是因为如果是线性变换的话,不管神经网络有多少层,输出都是输入的线性组合,这样就把神经网络层数的作用削弱了。所以神经网络中一般使用非线性函数。
常见的非线性函数:
(1) sigmod函数 (在sigmod函数中我们可以看到,其输出是在(0,1)这个开区间内)
(2)tanh函数
tanh函数公式和曲线如下(tanh的输出区间是在(-1,1)之间,而且整个函数是以0为中心的)
(3)ReLU函数
ReLU函数公式和曲线如下
(4.)ELU函数
ELU函数公式和曲线如下图
5.PReLU函数
PReLU函数公式和曲线如下图(里面的参数α一般是取0~1之间的数,而且一般还是比较小的,如零点零几。当α=0.01时,我们叫PReLU为Leaky ReLU,算是PReLU的一种特殊情况)
损失函数(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
https://www.cnblogs.com/charlotte77/p/5629865.html#undefined
在反向传播中,利用梯度下降法对参数进行调优的过程中,学习率的设定会对结果产生较大的影响。学习率决定了参数每次更新的幅度,幅度过大,则可能导致参数在极优值两侧来回移动。学习率过小,则收敛太慢。可以尝试指数衰减法。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。