2016年6月25日下午,由清华经管创业者加速器发起的人工智能线下沙龙的第二期交流活动正式开始,文因互联网创始人兼CEO、前三星研究员鲍捷博士,来自阿里云的高性能计算高级技术专家游亮,机器视觉创业者、深度学**方向的专家孙林,他们分别针对自身研究方向的具体应用技术,从知识图谱、高性能计算和机器学**的角度进行了经验分享,并就近年来人工智能的发展态势进行交流和分析,针对与会者提出的相关问题给出自己的想法,沙龙现场,大家时而就专业问题热情讨论,整个交流会俨然成为了一个互为人师的大课堂。
清华经管创业者加速器是一个体现清华精神,为全球优秀的创业者和团队成长服务的创业加速平台,人工智能领域的创业项目是加速器重点关注的细分领域 之一。通过资源的整合,清华经管创业者加速器将为该领域的优秀创业者和项目加速成长提供包括创业辅导、金融资源、网络资源等多方面的支持。目前,加速器 X+空间正在吸纳人工智能领域的创业团队。入驻请扫描文章底部二维码。
分享人:孙林《深度学** 从图像识别到机器视觉》
孙林将深度学**比喻成一个状态转换的过程,对机器视觉进行了分类、分类加定位、目标点测和标识像素的四点归纳。针对训练学**优化过程中应该注意的问题也给出了建议,如权重正则化、转移学**、任意区域的焦点关注以及对抗网络等。
以下内容根据孙林现场分享实录及相关资料编辑整理,内容有节删。
什么是深度学**?
对于所有的机器学**,统计学**或者深度学**来说,学**的本质是把输入状态集合映射到输出状态集合。例如把输入的图片通过某种决策器(分类器等)映射为文字集合,就完成了从输入的图片状态集合到输出的文字状态集合的一个转化过程。
如上图的精简版的学**模型。假设输入状态集合中的一个状态X进入决策器后,会产生一个Y输出。对于有监督的算法,会计算这个输出的Y和标注数据的误差,再把这个误差反向传播给决策器,帮助决策器优化决策器的参数,以产生更好的输出结果。对于K-means这种无监督的学**,不需要反向传播误差给决策器,因而像图中虚线所示,不需要有一个反向误差传递的过程。
其实任何机器学**、统计学**抑或是深度学**背后都有一个理论——学**理论(Learning Theory)。这个理论是支撑这些学科的根基,学**理论本质上是说,在低维不线性可分的问题,通过非线性的映射到高维空间后,这个问题在高维空间变得线性可分。
如上图所示,在x-y所构成的坐标体系下,圆形内核圆形外的两种状态集合是没有办法通过一个线性的函数把两种状态集合分开。但是如果把x-y所构成的坐标映射到X-Y所构成的坐标体系下,原来在x-y坐标体系下线性不可分的问题变为线性可分。
本质上来讲不管是逻辑回归,带核的SVM还是深度学**都是把低维空间内的线性不可分问题,映射到高维空间内,在高维空间内让问题变得线性可分。
分类、分类加定位、目标点测、标识像素
计算机视觉的问题基本上可以归结为四点,一个是分类,给你一张图片,让你判断它是猫,是狗,还是其他东西。
分类加定位,比如说给你一张图片,它是一只猫,哪边什么象素代表了是一只猫。
前边这两个主要面向的问题是单个物体,后面就是多个物体,如果是有多个物体在一张图片上,需要对每个物体都要辨别出来,这就是目标点测。
还有如果你需要对这个物体的每个象素点进行标识出来,这个标识象素,可以做出非常有意思的东西。比如说在一个视频中,你想让某个人消失,每个象素都可以标注出来,你可以把它过滤掉,这个过程非常有意思。
随着深度学**在图像识别上获得突破性的进展,深度学**(卷积神经网络)在生活中应用的场景越来越常见。例如星系类别识别,交通标志识别,人脸识别,人的姿势判别,汉字生成,医学辅助诊断,甚至AlphaGo的棋局规划等场景中。
计算机视觉的常见问题:摄像机的角度和光照。比如说白天跟黑夜,突然在黑暗情况下,视觉灯光打开一下子光照变化非常的剧烈。还有遮挡、背景噪声、同类变化,给你一只猫,这是什么猫?是波斯猫,还是普通的家猫。
机器处理的时候一般会对数据进行预处理。有的数据需要进行清洗,清洗完之后,还要剔除一些数据。最好的方式是这些数据在原点这块进行对齐,使这些数据有一个相同区间的标准差,这样可以防止部分参数在比较大的空间里进行跳动,如果大的区间里进行跳动,就会非常不稳定。因为他某一个维度变化太大了,而会被淹没掉。为了让它变的更稳定,需要把这个数据进行规律化。
这是一张猫的图片,人眼看到是这样的,但是计算机看到的是这样的。
对于刚才这张图片可以进行一个简单的分析,画一条线,这个线上面的代表一类,线下面的代表一类。比较简单的,用简单的线性图可以分开。但是图片代表的内容过于复杂,用这些简单的方式是不能分开的。你需要从一个低维度空间,通过数据变化之后,变化到一个高维度空间。这是用线性图分开的,它的误差是非常大的。
回到深入学**。上图这个是1957年在康奈尔大学,传统的机器学**的方法,就是用手工特征提取的方法。你比如说你要判断一个人他是什么样的,你首先需要构造这样一个特征,通过这个特征检测模板判断这个**体是什么样子。特征模板所构造的形状,基本和人体的形状类似,这是靠传统的方法来构建的。
上述方法当数据量比较小或者问题比较简单的时候是可行的,通过人工可以做出来一些结果。但是当数据变的非常大,靠物理方法是不可能实现的,需要投入大量的人力和物力来做。所以说我们需要一种比较智能的方法,让他自动的帮你来计算这样一个问题。例如通过计算,一个损失函数沿着某一方面进行下降时,可以有一个比较快的损失计算迭代的过程,通过这样的过程,可以拿到比较小的损失函数,最近让这个模型可以很好的被应用到其他物品中,通过这样的方法,可以让模型更加通用,精度更高。
神经网络训练后的特征示意图,前面是对于一些比较低层次的,每一个层次的代表的一些形状,大体就是这样的。深度学**可以帮你深入的学**和构造一些特征,通过这些特征检测物体。传统的方法需要自己来构建,但如果让机器来操作,机器可以根据你的问题,自动提取一些特征,通过这种方式实现比较好的特征学**,可以起到一个非常好的优化的效果,能够大体的还原出原始图片的一些轮廓的特征。
后面有一些有趣的例子。通过T-SNE数据可视化,比如说给你一堆图片,相似的图片重新映射到一个低维度空间,让相似的图片聚集在一个区域之内,就会产生这样的效果。当一部分的颜色比较相似,聚集在一个相似的区域,另一部分颜色也比较相似,聚集在另一个相似的区域,差异比较明显的时候,它们会产生一个这样的区域。
把检测的物体转化为回归问题,比如这一只狗,狗在这个图像里面究竟属于什么位置。我们可以考虑一下,你在上面找四个点,通过这四个点框住,然后就可以把这个物体表述出来,生成一个坐标,通过这些坐标来找到这样一只狗。
这个是比较有意思的,这个是语义的分割。比如说给你一张图片,这张图片那些代表的是牛,那些代表的是草。
还有这个是实体分割,刚才只是给你一张图片,你知道了哪些是牛,哪些是草。但是如果是三个人,你需要把每个人都分析出来,或者每一头牛都分析出来。
对于语义分割,一种方法是把图片变成一个一个小的片断,把这些片断录到一个声音里面,可以预测一下这个小片段是不是代表这个牛的图像。刚才那种方法如果要做成,必须对图片分割非常非常多,这样就会非常慢。
后来人们想到一种方法,把整个图片都录进去,它代表哪个物体。
还有一种方法,如果你在训练的时候,在一个可视区域,越往后,可视区域越大。当图片被重新划定大小,机器就可以看到一些非常宏观的问题,再把这些网络重新的整合起来,在此情境下,分类标签预测的准确性会**的提升。
这个是对抗网络。前面是真实的输入数据,后面是生成的数据,后面的数据跟前面的数据哪个是真的?哪个是假的?对于人来说很难判断。
这组图片是一群人,他的一些表情,这边是生成了一群会笑的人。计算机所生成的这些图片,也是人的一些图像。
这个图片是一个戴眼镜的男人,减掉一个不戴眼镜的男人,加上一个不戴眼镜的女人,最后生成的是戴眼镜的男人。
还有更让人惊奇的是,机器不仅可以生成图片,还可以像人一样预测下一个场景的变化。如上面视频截图中所对应的视频所示,机器可以根据视频中的前两帧内容,预测接下来连续的两帧内容。
当人工的智能发展到一定程度时,它有可能会产生接近于人类自身的智慧或思考能力,例如上面所讲到的对抗网络、基于图片的视频序列预测等,这是我们可以期待的未来人工智能的曙光。以上就是我所要分享的内容,谢谢大家。