深度学习与神经网络学习笔记(二)

深度学习与神经网络学习笔记(二)

三、logistic 回归

1、二分分类

  首先如果给你一张图片,你来判断它是否是猫:

这里写图片描述

  对于我们来说这看一眼就会说这是猫,而对于机器来说它会做的判断就会是:是猫(1)和不是猫(0)而这个就是我们要输出的y值,其实大部分时候一直输出的都是一个概率值,而我们只是通常把概率最大的值作为1输出。
  其实机器识别一个图片和我们肉眼识别是不一样的,比如说上面这样的一张图片,对于机器来说,它将会被看成三个不同的颜色矩阵(见下图),分别是红色、绿色和蓝色,每一个矩阵中的一个数字对应的就是图片在这个像素点(64*64,为了在图片中能够表示清楚,三基色的图片中用4*5的矩阵表示,其实是一样的意思)上的对应颜色的强度值,比如红色第一个像素点的255就表示图片在该像素点的红色强度值为255(强度值在0-255的范围内,255表示最大,0表示没有此颜色)

这里写图片描述

  然后,我们可以把矩阵表示成一个 xy 输入给机器x为:
x=255231...255134...25513493...xRNX
  y的取值为:
y(0,1)
  这样我们所采用的样本集m可以表示为:
m={(x(1),y(1)),(x(2),y(2)),,(x(m),y(m))}
如果我们对应的每一个输入值 x n个(表示我们所构建的影响因子有 n 个)那x可以表示为一个 mn 的矩阵:

这里写图片描述

而y可以直接表示为一个 1n
y={y(1),y(2),,y(m)}

2、logistic 回归

  输入:

这里写图片描述

  参数:
(ω,b)
  输出:
y^
  映射(函数):
y^=σ(ωTx+b)
  其中
σ(z)=1/1+ez
  这里的 σ(z) 函数就是一个激励函数,其图像为:

这里写图片描述

  这就保证了当 ωTx+b 值越大(趋近无穷)最后计算出来的 y^ 就会越接近于1,而 ωTx+b 值越小(负无穷)最后计算出来的 y^ 就会越接近于0,最后达到一个输出 (01) 结果的目的。
  所以现在我们机器学习所要做的就是去学习这个函数中的参数: ω,b

3、logistic 回归损失函数

  机器学习将会一次又一次地训练我们所给出的样本,最后产生 ω,b ,但是我们用训练过程出来的 ω,b 却也计算不出完全正确每个样本的 y 值,因此我们需要通过对ω,b所计算出来的 y^ 与实际的 y 值做比较,而给他们做比较的这个函数就叫做损失函数:
L(y^,y)=(ylogy^+(1y)log(1y^))
y=1L(y^,y)=logy^,y^0y1
y=0L(y^,y)=log(1y^),y^0y1
  损失函数反应的是其学习后得出的 ω,b 所计算出来的预测值: y^ 相对于实际值 y 所损失的一个度量。

  这样对每个样本进行计算,最后计算出所有样本的损失函数的均值就是我们所说的成本函数:

J(ω,b)=1mi=1nL(y^(i),y(i))

  即为:

J(ω,b)=1mi=1n{y(i)logy^(i)+(1y(i))log(1y^(i))}

4、梯度下降法

这里写图片描述

  我们首先还是上图,这里是成本函数、 ωb 所模拟的一个三维图像,我们就是通过图像中每个小红点一步一步去找到使 J(ω,b) 最小的那个解的。而我们所要用的就是通过斜率(通过导数求得)来进行判断

这里写图片描述

  我们先通过二维函数来理解梯度下降,如图可知,当导数 dJ(ω)dω<0 时我们将会向右边方向进行 ω 值的变化,如果大于0就向左边进行变化,最终找到值为0的点就是我们所要找到的最优解,而每次变换的=αdJ(ω)dω,这里的α为学习率,也就是梯度下降的变化率。
  同样我们可以直接投影到三维图像上去解决这个问题。这时候就应该是:

ω:=ωJ(ω,b)ωb:=bJ(ω,b)b

  其中 J(ω,b)b 为成本函数对参数 b <script type="math/tex" id="MathJax-Element-44">b</script>的偏导数
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值