- 05/03
- 2018
-
QQ扫一扫
-
Vision小助手
(CMVU)
深度学习
对于所有的机器学习,统计学习或者深度学习来说,学习的本质是把输入状态集合映射到输出状态集合。例如把输入的图片通过某种决策器(分类器等)映射为文字集合,就完成了从输入的图片状态集合到输出的文字状态集合的一个转化过程。
其实任何机器学习、统计学习抑或是深度学习背后都有一个理论——学习理论(Learning Theory)。这个理论是支撑这些学科的根基,学习理论本质上是说,在低维不线性可分的问题,通过非线性的映射到高维空间后,这个问题在高维空间变得线性可分。
如上图所示,在x-y所构成的坐标体系下,圆形内核圆形外的两种状态集合是没有办法通过一个线性的函数把两种状态集合分开。但是如果把x-y所构成的坐标映射到X-Y所构成的坐标体系下,原来在x-y坐标体系下线性不可分的问题变为线性可分。
本质上来讲不管是逻辑回归,带核的SVM还是深度学习都是把低维空间内的线性不可分问题,映射到高维空间内,在高维空间内让问题变得线性可分。
机器视觉的基本问题
分类、分类加定位、目标点测、标识像素。
计算机视觉的问题基本上可以归结为四点,一个是分类,给你一张图片,让你判断它是猫,是狗,还是其他东西。
分类加定位,比如说给你一张图片,它是一只猫,哪边什么像素代表了是一只猫。
前边这两个主要面向的问题是单个物体,后面就是多个物体,如果是有多个物体在一张图片上,需要对每个物体都要辨别出来,这就是目标点测。
还有如果你需要对这个物体的每个象素点进行标识出来,这个标识象素,可以做出非常有意思的东西。比如说在一个视频中,你想让某个人消失,每个象素都可以标注出来,你可以把它过滤掉,这个过程非常有意思。
深度学习的应用场景
随着深度学习在图像识别上获得突破性的进展,深度学习(卷积神经网络)在生活中应用的场景越来越常见。例如星系类别识别,交通标志识别,人脸识别,人的姿势判别,汉字生成,医学辅助诊断,甚至AlphaGo的棋局规划等场景中。
计算机视觉的常见问题:摄像机的角度和光照。比如说白天跟黑夜,突然在黑暗情况下,视觉灯光打开一下子光照变化非常的剧烈。还有遮挡、背景噪声、同类变化,给你一只猫,这是什么猫?是波斯猫,还是普通的家猫。
机器处理的时候一般会对数据进行预处理。有的数据需要进行清洗,清洗完之后,还要剔除一些数据。最好的方式是这些数据在原点这块进行对齐,使这些数据有一个相同区间的标准差,这样可以防止部分参数在比较大的空间里进行跳动,如果大的区间里进行跳动,就会非常不稳定。因为某一个维度变化太大了,而会被淹没掉。为了让它变的更稳定,需要把这个数据进行规律化。
对于上面这张图片可以进行一个简单的分析,画一条线,这个线上面的代表一类,线下面的代表一类。比较简单的,用简单的线性图可以分开。但是图片代表的内容过于复杂,用这些简单的方式是不能分开的。你需要从一个低维度空间,通过数据变化之后,变化到一个高维度空间。这是用线性图分开的,它的误差是非常大的。
回到深入学习。传统的机器学习的方法,就是用手工特征提取的方法。你比如说你要判断一个人他是什么样的,你首先需要构造这样一个特征,通过这个特征检测模板判断这个人大体是什么样子。特征模板所构造的形状,基本和人体的形状类似,这是靠传统的方法来构建的。
上述方法当数据量比较小或者问题比较简单的时候是可行的,通过人工可以做出来一些结果。但是当数据变的非常大,靠物理方法是不可能实现的,需要投入大量的人力和物力来做。所以说我们需要一种比较智能的方法,让他自动的帮你来计算这样一个问题。例如通过计算,一个损失函数沿着某一方面进行下降时,可以有一个比较快的损失计算迭代的过程,通过这样的过程,可以拿到比较小的损失函数,最近让这个模型可以很好的被应用到其他物品中,通过这样的方法,可以让模型更加通用,精度更高。
神经网络训练后的特征示意图,前面是对于一些比较低层次的,每一个层次的代表的一些形状,大体就是这样的。深度学习可以帮你深入的学习和构造一些特征,通过这些特征检测物体。传统的方法需要自己来构建,但如果让机器来操作,机器可以根据你的问题,自动提取一些特征,通过这种方式实现比较好的特征学习,可以起到一个非常好的优化的效果,能够大体的还原出原始图片的一些轮廓的特征。
后面有一些有趣的例子。通过T-SNE数据可视化,比如说给你一堆图片,相似的图片重新映射到一个低维度空间,让相似的图片聚集在一个区域之内,就会产生这样的效果。当一部分的颜色比较相似,聚集在一个相似的区域,另一部分颜色也比较相似,聚集在另一个相似的区域,差异比较明显的时候,它们会产生一个这样的区域。
把检测的物体转化为回归问题,比如这一只狗,狗在这个图像里面究竟属于什么位置。我们可以考虑一下,你在上面找四个点,通过这四个点框住,然后就可以把这个物体表述出来,生成一个坐标,通过这些坐标来找到这样一只狗。
对于语义分割,一种方法是把图片变成一个一个小的片断,把这些片断录到一个声音里面,可以预测一下这个小片段是不是代表这个牛的图像。刚才那种方法如果要做成,必须对图片分割非常非常多,这样就会非常慢。
后来人们想到一种方法,把整个图片都录进去,它代表哪个物体。
还有一种方法,如果你在训练的时候,在一个可视区域,越往后,可视区域越大。当图片被重新划定大小,机器就可以看到一些非常宏观的问题,再把这些网络重新的整合起来,在此情境下,分类标签预测的准确性会大大的提升。
通用人工智能的曙光
这个是对抗网络。前面是真实的输入数据,后面是生成的数据,后面的数据跟前面的数据哪个是真的?哪个是假的?对于人来说很难判断。
这组图片是一群人,他的一些表情,这边是生成了一群会笑的人。计算机所生成的这些图片,也是人的一些图像。
这个图片是一个戴眼镜的男人,减掉一个不戴眼镜的男人,加上一个不戴眼镜的女人,最后生成的是戴眼镜的男人。
还有更让人惊奇的是,机器不仅可以生成图片,还可以像人一样预测下一个场景的变化。
当人工的智能发展到一定程度时,它有可能会产生接近于人类自身的智慧或思考能力,这是我们可以期待的未来人工智能的曙光。
- 上一条:机器视觉进军时尚圈
- 下一条:基于视觉的定位贴合系统