1.1 二分分类(Binary Classification)
案例:Cat vs Non-Cat
训练一个分类器,该分类器的输入是由特征向量表示的图像,预测相应结果。假设图像为64x64的三通道(RGB)图片,需要通过训练得到的分类器判断图片中是否有猫,有则用1表示,没有则用0表示。
要创建特征向量x,每种颜色的像素强度值需要“展开(unroll)”或“重塑(reshape)”。例如上图展开后输入特征向量的维数表达为nx=64x64x3=12288
展开结果
1.2 逻辑回归(Logistic Regression)
已知一个二元分类问题中,输入特征向量为x,假设x是一张猫或其他动物图片,我们希望通过一个函数输出一个预测值y_hat,来判断其是否为一张猫图。其中预测值y_hat可以看成该图是否为猫的图片的概率值,概率值可以为0~1之间的任何数。
为了得到这个函数,假设函数的输入为x(x∈Rnx,x为nx维向量),函数的参数为w(w∈Rnx)和b(b∈R),函数的输出为y_hat=wTx+b。显然该线性函数的输出并不能满足函数值在0~1之间的条件,所以我们需要用一个Sigmoid function(函数图像如下),将y_hat的值代替Z,从而得到函数输出为:y_hat = σ(wTx+b)。
Sigmoid function函数图像如下:
从该函数图像可以看出:
- 当Z趋于无穷大时,函数值σ(Z)趋于1
- 当Z趋于无穷小时,函数值σ(Z)趋于0
- 当Z=0时,函数值σ(Z)=0.5
1.3、成本函数(Cost Function)
为了训练参数w和b,使函数的预测结果更加准确,就需要引入损失函数(Loss(Error) Function)的概念:
损失函数的目的是表示预测值与真实值之间的差距,即计算单个训练样本的误差。
已知:
- y_hat(i)=σ(wTx(i)+b) where σ(Z(i))=1/1+e-Z(i)
- Give {(x(1),y(1))......(x(i),y(i))} want y_hat(i)≈y(i)
则损失函数L(y_hat(i),y(i))可以写成:
- L(y_hat(i),y(i))=1/2(y_hat(i)-y(i))2
- L(y_hat(i),y(i))= - (y(i)log(y_hat(i))) + ((1-y(i))log(1-y_hat(i)))
其中y_hat为预测值,y为真实值,上标 i 表示第 i 个训练样本
由此可得:
- 当y(i)=1时:L(y_hat(i),y(i))= - log(y_hat(i)) 其中log(y_hat(i))和y_hat(i)应该趋近于1
- 当y(i)=0时:L(y_hat(i),y(i))= - log(1-y_hat(i)) 其中log(1-y_hat(i))和y_hat(i)应该趋近于0
学习资料
网易云课堂:《深度学习工程师》吴恩达(Andrew Ng)
https://mooc.study.163.com/smartSpec/detail/1001319001.htm
网友评论