这是一个督促自己学习的笔记
1. 神经网络基础----二分分类
把一张含有猫的图片作为输入,要求输出1 or 0
首先,猫的图片可以分为三个图层,红,绿,蓝,三个图层分别从上往下,从左往右读取灰度值,构成一个列向量Xi(Mx1),假设训练集有N张照片,则这N张照片可以合成一个矩阵(MxN),可以通过python的x.shape得到矩阵的大小。
2. logistic回归
从上文得知x为为一列向量,代表着一张图片,通过线性回归函数
y
^
=
w
T
x
+
b
\hat{y}= w^{T}x+b
y^=wTx+b可以预测出y的值,可是这种方式预测出的y的范围非常广,而我们想要的是y处于0-1之间,表示x这张图片是猫的概率,因此引入sigmoid函数通过
y
^
=
σ
(
w
T
x
+
b
)
\hat{y}= \sigma(w^{T}x+b)
y^=σ(wTx+b)使得y分布再0-1之间,如下图所示。
3. logistic回归损失函数
好了,我们现在有一组猫的图片,即一个MxN的矩阵,这作为训练集,通过线性回归函数和sigmoid函数,我们可以输入一张图片然后通过函数的作用映射为图片是猫图的概率y了,那么,我们该如何训练出参数w和b呢?
我们应该定义一个loss函数,描述预测值
y
^
\hat{y}
y^和y之间的差值了。
我们可以定义loss函数为
L
(
y
^
,
y
)
=
1
2
(
y
^
−
y
)
2
L(\hat{y},y)=\frac{1}{2}(\hat{y}-y)^{2}
L(y^,y)=21(y^−y)2
但是这样可能会产生多个凹凸区间,无法得到最优解。
于是我们打算使用
L
(
y
^
,
y
)
=
−
(
y
l
o
g
(
y
^
)
+
(
1
−
y
)
l
o
g
(
1
−
y
^
)
)
L(\hat{y},y)=-(ylog(\hat{y})+(1-y)log(1-\hat{y}))
L(y^,y)=−(ylog(y^)+(1−y)log(1−y^))
这个函数是有全局最优解的
当 y=0时
L
(
y
^
,
y
)
=
−
l
o
g
(
1
−
y
^
)
L(\hat{y},y)=-log(1-\hat{y})
L(y^,y)=−log(1−y^)
因为我们希望loss函数尽可能小
则我们希望
y
^
\hat{y}
y^尽可能小。
反之,当y=1时
L
(
y
^
,
y
)
=
−
l
o
g
(
y
^
)
L(\hat{y},y)=-log(\hat{y})
L(y^,y)=−log(y^)因为我们希望loss函数尽可能的小,所以我们希望
y
^
\hat{y}
y^尽可能大
于是当我们的预测值越接近实际值时,loss函数就越小,这就是loss函数的目的。
最后的全局平均花费函数
J
(
w
,
b
)
=
1
m
∑
i
=
1
m
L
(
y
^
(
i
)
,
y
(
i
)
)
J(w,b)=\frac{1}{m}\sum_{i=1}^{m}L(\hat{y}^{(i)},y^{(i)})
J(w,b)=m1i=1∑mL(y^(i),y(i))
4. 梯度下降法
未完待续