计算机视觉中的深度学习2: 图片分类
日期: 2020-08-14 分类: 个人收藏 465次阅读
计算机视觉中的深度学习2: 图片分类
Slides:百度云 提取码: gs3n
计算机与人眼的区别
对于一张灰度图片,计算机能看到的是像素大小的0~255的灰度值;对于RGB图片,则是一张像素大小的3通道矩阵,即800x600x3。
计算机视觉的挑战
- 视角变化的挑战 
  
- 视角的变化带来的像素的变化是非常巨大的。
 - 在不同的角度拍摄一只猫,人类很容易分辨这是同一种猫,而像素的变化却非常巨大,只有设计出了更加完备的算法才能让计算机程序更稳定地运行。
 
 - 图片交叉的挑战 
  
- 多只猫会重叠在一起。
 
 - 粒度更细的分类 
  
- 我们不仅仅需要分辨这是猫,我们还要分辨这是哪一个品种的猫。
 
 - 杂乱的背景的影响
 - 光线的变化
 - 形状的变化
 
图片分类的作用
- 用在别的计算机视觉应用中 
  
- Object detection
 - Image captioning
 
 
图片分类的算法
- 传统计算机视觉算法 
  
- 检测边缘,检测夹角等等
 - 缺点:不够通用,当我们输入了一个非常复杂的算法能够识别猫了,同样的算法没法解决一个识别狗的问题。
 
 - 机器学习方法 
  
- 依赖数据源和分类器来进行识别
 - 几个著名的数据集: 
    
- MNIST:手写数字识别,10类
 - CIFAR10:更大的RGB数据集,10类
 - CIFAR100:同上,但有100类
 - ImageNet:1000类,更大的数据集;广泛用于论文中
 - MIT Places: 365类
 
 - 训练集中用于训练的像素个数

 
 
Nearest Neighbor
- 计算L1距离

 - 选出距离需要预测的图片最近的那个图片的类型
 

训练时间O(1),预测时间O(N)。
缺点:
- 预测的速度太慢了。我们希望能够花更多时间在训练上,而不是预测上。
 - 选出的类是总体来看长得非常相似的图片,而不是相似的图片上的物体。
 
K Nearest Neighbor
第一种算法是k=1的情况,在outlier上有着更糟糕的表现,因为一旦训练集有一些outlier,将会极大地影响边缘处的表现

当我们使用k=3时,我们有了更加平滑的分界线,也有了更加健壮的处理outlier的情况。

使用不同的距离计算方式
- L1距离
 - L2距离(欧拉距离)
 - 对于特殊的数据集,采用特殊的距离计算方式,可能会比传统距离计算方式有更优秀的结果。 
  
- 例如,用tf-idf similarity来比较研究论文使用
 
 
超参数
不能通过训练来学习的得到的参数,需要借用人类的知识去设置。(但是不排除通过别的神经网络来训练获得另一个神经网络的超参数。)
网络上所谓的调参工程师,其实也就是通过不断地训练,验证来获得最好的超参数,最终在测试集上面进行测试。

另类的Nearest Neighbor
- 结合ConvNet 
  
- 通过ConvNet提取出图片的特征,比如,一个数组表示不同的特征值
 - 再对这个特征值数组采用Nearest Neighbor算法,效果非常好
 
 
总结
- 在图像分类中,我们从图像和标签的训练集开始,并且必须在测试集上预测标签。
 - 由于人类视觉和计算机视觉上的差距,图像分类具有挑战性:我们需要对遮挡,变形,光照,类内变异等保持不变。
 - 图像分类是其他视觉任务的基础。
 - K最近邻居分类器基于最近的训练示例预测标签距离度量和K是超参数。使用验证集选择超参数;最后只在测试集上运行一次!
 
 除特别声明,本站所有文章均为原创,如需转载请以超级链接形式注明出处:SmartCat's Blog
标签:机器学习与数学模型
上一篇: 计算机视觉中的深度学习3: 线性分类
精华推荐
