吴恩达深度学习-3.1目标定位
序
我上次看这个系列视频要从一年半之前参加互联网公司的实习开始说起了,这两天本来想就一个游戏自动化做一点什么东西,后来发现这个图像自动分割要用到的算法已经一个都不熟了,又不知道写点什么,所以就重新继续把吴恩达的这个系列给看完吧。
课程地址
https://mooc.study.163.com/smartSpec/detail/1001319001.htm
笔记
1.图像分类的三种类别
![](https://img.haomeiwen.com/i7450342/0c522900c8187cf7.png)
对图像当中的物体进行类别的分类,比如说我们现在看到的这个是辆车。
![](https://img.haomeiwen.com/i7450342/f38c0b46ebbb00c2.png)
在图像中找到某个类别的东西,把它用一个方框标起来,然后知晓它的位置。
![](https://img.haomeiwen.com/i7450342/1b5707373514d552.png)
在一个图像当中,有属于一个类别,或者多个类别的多个目标,把他们都分别画出来。
2.对label中的参数进行讲解
![](https://img.haomeiwen.com/i7450342/98db2bfe09093c85.png)
首先我们把一张图片通过卷积神经网络之后得到一个softmax分类器的数值,比如说我们将这个网络用来监测自动驾驶当中的情景,那么就会出现以下几种物体类别:
1.行人
2.车
3.摩托车
4.背景(以上三种都没有)
我们一个简单的图片就会属于以上4个类别中的一个。
但是如果我们想要知道车辆在图中的位置,那么我们就需要画一张图把这个车辆的位置标注出来,这里我使用bx,by,bw,bh四个参数,将这四个参数加在训练集label的后面,让图片知道这个物体在图片的什么位置。
bx,by就是这个方框中心点位于图片当中的位置,我们假设图片左上角是(0,0),右下角是(1,1),这里的bx,by就大概是(0.5,0.7),然后bw就是图片的宽度,bh就是图片的高度,大概是(0.4,0.3)。
3.对训练集label的构造进行讲解
![](https://img.haomeiwen.com/i7450342/abd27e246dacec9a.png)
首先假设我们有4个分类的数据集,而且我们每个图片当中只有一个物体,那么我们可以使用下面这种标注方式。
Pc代表图片当中是否有我们需要标注的三个物品之一的东西,比如说是否有车或者是是否有人,如果有的话,Pc则为1。bxbybwbh就是我们之前讲到的定位物体方框的四个函数,c1\c2\c3则是代表这个图像所被分的类别,比如说这里第一张图,是车,那么c2=1,c1\c3=0。
那么当图片里没有数据集所需要的三类物体的时候,Pc就被标注成0,当它变成0的时候,其他下面的7个参数是什么就不重要了,因为这个时候我们关心的就只是Pc这个参数。
损失函数
损失函数是指在训练的时候衡量这张图片训练效果的一个值,一般来说,损失函数得到的值越小则是训练的效果和标注的越匹配。
在这里简单地介绍了一个平方误差策略,
当Pc=1的时候,用每一个标注值减去它训练值的平方和。
当Pc=0的时候,只计算Pc差的平方。
那么其实在实际应用的时候,我们往往会使用更加适合不同标记的损失函数策略,比如说平方误差策略往往应用在对标记位置bxbybwbh的修正上,对于C1、C2、C3而言往往只需要使用softmax分类器得到分类就可以了,最后对于Pc既可以使用平方误差函数,也可以使用逻辑回归。