深度学习与神经网络学习笔记(二)
三、logistic 回归
1、二分分类
首先如果给你一张图片,你来判断它是否是猫:
对于我们来说这看一眼就会说这是猫,而对于机器来说它会做的判断就会是:是猫(1)和不是猫(0)而这个就是我们要输出的y值,其实大部分时候一直输出的都是一个概率值,而我们只是通常把概率最大的值作为1输出。
其实机器识别一个图片和我们肉眼识别是不一样的,比如说上面这样的一张图片,对于机器来说,它将会被看成三个不同的颜色矩阵(见下图),分别是红色、绿色和蓝色,每一个矩阵中的一个数字对应的就是图片在这个像素点(64*64,为了在图片中能够表示清楚,三基色的图片中用4*5的矩阵表示,其实是一样的意思)上的对应颜色的强度值,比如红色第一个像素点的255就表示图片在该像素点的红色强度值为255(强度值在0-255的范围内,255表示最大,0表示没有此颜色)
然后,我们可以把矩阵表示成一个(x,y)输入给机器x为:
x=⎧⎩⎨⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪255231...255134...25513493...⎫⎭⎬⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪x∈RNX
y的取值为:y∈(0,1)
这样我们所采用的样本集m可以表示为:
m={(x(1),y(1)),(x(2),y(2)),⋅⋅⋅,(x(m),y(m))}
如果我们对应的每一个输入值x有n 个(表示我们所构建的影响因子有n个)那x 可以表示为一个m∗n的矩阵:
而y可以直接表示为一个1∗n:
y={y(1),y(2),⋅⋅⋅,y(m)}
2、logistic 回归
输入:
参数:(ω,b)
输出:y^
映射(函数):y^=σ(ωTx+b)
其中:σ(z)=1/1+e−z
这里的σ(z)函数就是一个激励函数,其图像为:
这就保证了当ωTx+b值越大(趋近无穷)最后计算出来的y^就会越接近于1,而ωTx+b值越小(负无穷)最后计算出来的y^就会越接近于0,最后达到一个输出(0,1)结果的目的。
所以现在我们机器学习所要做的就是去学习这个函数中的参数:(ω,b)
3、logistic 回归损失函数
机器学习将会一次又一次地训练我们所给出的样本,最后产生(ω,b),但是我们用训练过程出来的(ω,b)却也计算不出完全正确每个样本的y值,因此我们需要通过对(ω,b) 所计算出来的y^与实际的y值做比较,而给他们做比较的这个函数就叫做损失函数:L(y^,y)=−(ylogy^+(1−y)log(1−y^))
当y=1时,L(y^,y)=−logy^,y^越接近0损失函数越大y越接近1损失函数越小
当y=0时,L(y^,y)=log(1−y^),y^越接近0损失函数越小y越接近1损失函数越大
损失函数反应的是其学习后得出的(ω,b)所计算出来的预测值:y^相对于实际值y所损失的一个度量。
这样对每个样本进行计算,最后计算出所有样本的损失函数的均值就是我们所说的成本函数:
即为:
J(ω,b)=−1m∑i=1n{y(i)logy^(i)+(1−y(i))log(1−y^(i))}
4、梯度下降法
我们首先还是上图,这里是成本函数、ω和b所模拟的一个三维图像,我们就是通过图像中每个小红点一步一步去找到使J(ω,b)最小的那个解的。而我们所要用的就是通过斜率(通过导数求得)来进行判断
我们先通过二维函数来理解梯度下降,如图可知,当导数dJ(ω)dω<0时我们将会向右边方向进行ω值的变化,如果大于0就向左边进行变化,最终找到值为0的点就是我们所要找到的最优解,而每次变换的△=αdJ(ω)dω ,这里的α为学习率,也就是梯度下降的变化率。
同样我们可以直接投影到三维图像上去解决这个问题。这时候就应该是:
⎧⎩⎨⎪⎪⎪⎪⎪⎪ω:=ω−∂J(ω,b)∂ωb:=b−∂J(ω,b)∂b⎫⎭⎬⎪⎪⎪⎪⎪⎪
本文深入解析Logistic回归原理,从二分类问题出发,介绍如何使用Logistic回归进行预测,并详细阐述损失函数及其优化方法——梯度下降法。
1428

被折叠的 条评论
为什么被折叠?



