1. 简介
人识别物体是根据物体的特征来进行识别、分类的。所以,计算机要识别所看到的物体,必须事先学习物体的特征。
特征学习:是计算机视觉的核心。
人工设计的特征有:LBP、HAAR、HOG、SIFT等。
深度学习:可从给予的样本中自动学习特征。
1.1 为什么要自动学习特征?
1)机器学习中,获得好的特征是识别成功的关键;
2)目前存在大量人工设计的特征,不同研究对象特征不同,特征具有多样性,如:SIFT, HOG, LBP等;
3)手工选取特征费时费力,需要启发式专业知识,很大程度上靠经验和运气。
1.2 为什么采用层次网络结构?
1.2.1 人脑视觉原理
1)1981年的诺贝尔医学奖获得者 David Hubel和TorstenWiesel发现了视觉系统的信息处理机制发现了一种被称为“方向选择性细胞的神经元细胞,当瞳孔发现了眼前的物体的边缘,而且这个边缘指向某个方向时,这种神经元细胞就会活跃
2)人的视觉系统的信息处理是分级的
3)高层的特征是低层特征的组合,从低层到高层的特征表示越来越抽象,越来越能表现语义或者意图4)抽象层面越高,存在的可能猜测就越少,就越利于分类
1.2.2 浅层学习的局限
1)人工神经网络(BP算法)虽被称作多层感知机,但实际是种只含有一层隐层节点的浅层模型
2)SVM、Boosting、最大熵方法(如LR,Logistic Regression)
带有一层隐层节点(如SVM、Boosting),或没有隐层节点(如LR)的浅层模型
3)局限性:有限样本和计算单元情况下对复杂函数的表示能力有限,针对复杂分类问题其泛化能力受限。
1.2.3 深度学习
1)多隐层的人工神经网络具有优异的特征学习能力,学习得到的特征对数据有更本质的刻画,从而有利于可视化或分类;2)深度神经网络在训练上的难度,可以通过“逐层初始化”(layer-wise pre-training)来有效克服,逐层初始化可通过无监督学习实现的。
3)本质:通过构建多隐层的模型和海量训练数据(可为无标签数据),来学习更有用的特征,从而最终提升分类或预测的准确性。“深度模型”是手段,“特征学习”是目的。
4)与浅层学习区别:
(1)强调了模型结构的深度,通常有5-10多层的隐层节点;
(2)明确突出了特征学习的重要性,通过逐层特征变换,将样本在原空间的特征表示变换到一个新特征空间,从而使分类或预测更加容易。与人工规则构造特征的方法相比,利用大数据来学习特征,更能够刻画数据的丰富内在信息。
2. 计算机视觉挑战
由于以下原因,计算机视觉有很强的挑战性:
1)视点变化
2)照明变化
3)对像变形(如猫的各种姿势)
4)部分被遮挡
5) 背景复杂
6) 对象的多种类(如有多类猫)
对于以上复杂的情况,无法硬编码一个算法来识别图片中的对象,如cat,dog。
3. 数据驱动方法
数据驱动方法的流程如下:
1)收集图像和标签的数据集
2)使用机器学习训练一个图像分类器
def train(train_images, train_labels)
// build a model for images -> labels ...
return model
3)使用一组预留的测试图像评估此分类器
def predict(model, test_images)
// predict test_labels using the model ...
return labels