卷积神经网络告诉你:什么才是最好的自拍
卷积神经网络非常出色,可以分析照片中的物品、它们的位置和人物身份;能够协助自动驾驶车辆发现行人、道路标志和照明设施;可以解读卫星图像中的农田、林地和交通状况;还能识别医疗照片里的异常情况,并具备许多其他实际用途。但是这些强大的视觉识别模型时不时也可以作为娱乐的手段。
这个颇具意思的尝试,我们借助一个极其庞大、包含一亿四千万个连接的卷积神经网络模型,对从互联网上搜集到的二百万张个人肖像进行辨认,接着培养它分辨优秀的个人肖像与普通的个人肖像。这个尝试的缘由十分直白,由于卷积神经网络能够轻易胜任这类工作,同时我们也能通过这个过程掌握怎样拍出更出色的个人肖像。
卷积神经网络
在探讨该议题之前,需要先阐释清楚卷积神经网络究竟是什么,以便读者不会因此望而却步。通俗来讲,卷积神经网络就是专门用于解决图像识别这类问题的工具。若今年遇到任何关于计算机分析图片或视频内容的报道,几乎都离不开卷积神经网络这一技术。
聊聊历史吧。卷积神经网络的来龙去脉颇为引人入胜。Yann LeCun等学者在上世纪八十年代,依托Fukushima识别机的初步研究,着手构建了卷积神经网络。到了1993年,LeNet1(当时卷积神经网络ConvNet的称谓)已能用于辨认数字。但是这些成就并未受到计算机视觉领域的关注,因为人们普遍觉得LeNet在处理实际场景拍摄的图像时效果不佳。直到2012年,这种看法才被颠覆,这得益于计算能力的增强(特别是GPU的快速进步,由NVIDIA推动)以及图像数据集的急剧扩充(归功于ImageNet的出现),所以我们终于积累了充足的资料来优化神经网络。2012年ImageNet竞赛中,这场计算机视觉界的顶级赛事,Kirzhevsky、Sutskever和Hinton带领卷积神经网络首次亮相,他们以16.4%的失误率,显著领先于第二名的26.2%失误率,最终赢得了冠军。
我恰好在第一时间目睹了这一重要时刻,因为ImageNet项目在近些年里是由李飞飞团队也就是我所在的团队负责构建的。许多细节清晰可见,我还清楚记得我的同事兴奋地表示她几乎无法相信卷积神经网络被列入了比赛项目,我也清楚记得我们在室内不停地走动试图弄明白刚才到底发生了什么。往后数月间,卷积神经网络摆脱了备受质疑的状况,转而成为计算机视觉领域的宠儿,几乎所有关于计算机视觉的文献都在探讨它,ImageNet挑战赛的局势也印证了这一现象——2012年参赛队伍中仅有一组采用了卷积神经网络,但到了2013年和2014年,几乎所有参赛队伍都开始运用卷积神经网络。另有值得注意的情况,每逢取得胜利的队伍,都会即刻转变为一家公司。
往后数年,我们改进、精简并优化了2012年「AlexNet」的初始构造(没错,我们还为它们冠名)。2013年出现了「ZFNet」,2014年则诞生了「GoogLeNet」(瞧啊?既融合了LeNet的元素,又彰显了这是谷歌的作品,好笑吧),还有「VGG Net」。总而言之我们现在知道卷积神经网络是:
藏在这之下的
那么卷积神经网络运作方式是怎样的呢?深入其内部构造,可以观察到一种极为基础的计算过程在反复循环。接下来这个动画展示了小型卷积神经网络的操作过程:
在最左侧导入原始图像的像素数据,将其展现为立体数字结构。比如一张256乘以256的图像,可以构成256乘以256乘以3的矩阵,其中最后的数字3代表红色、绿色和蓝色三种颜色。接着我们着手进行计算,这种方法显得颇为繁复,我们借助微型的滤波装置在图像上反复移动,各式各样的滤波装置会捕捉到各自对应的特征:部分装置在探测到横向轮廓时会表现出高度敏感开yun体育app入口登录,另一些装置则对红色调的像素区域产生显著感应等等。若有十组筛选装置,借由此法,可将原本的(256,256,3)图像转为(256,256,10)的「图像」,舍弃原有图像的细节,仅存十个筛选装置对图像各处产生的感应数据。这好比图像中的红绿蓝三色通道,被改换成由十个感应通道构成的新体系。
根据右侧图片最左边的序列,我已经说明经过改造的初始行之后,随着时间的推移,其他各行会呈现出怎样的发展态势呢?它们持续实施了一遍又一遍全然一致的步骤,每一次都会生成一个新的行列。这一列相当于先前一列反馈结果的另一种滤波器,并逐步揭示出更加复杂的视觉模式,最终,末尾一组滤波器能够计算出图像里完整视觉种类的可能性,比如图中显示的狗或蟾蜍。我确实省略了某些环节,但大体上:这就是卷积神经网络始终运作的机制。
我们清楚卷积神经网络本质上是由众多层层相扣的过滤器构成的,这些过滤器彼此间产生联动。然而,关键问题在于,我们该如何确定需要寻找哪种类型的过滤器呢?我们并非采用这种方式——即全部采用随机方法对它们进行初始化,再通过长时间的训练过程加以优化。比如说,当我们向一个配置了随机过滤器的卷积神经网络输入一张图像时,它可能会给出这样的判断:有54%的置信度认为这是一只狗。接下来我们向它说明,这实际上是一只青蛙,那么就会进行一次数学运算,对所有卷积神经网络中的过滤器进行一次彻底的参数调整,以便下次对同一张图片进行识别时更可能判定为青蛙。然后我们针对成千上万张图像,反复执行这一步骤。很顺理成章地,卷积神经网络里,那些用来追踪运算过程的不同滤波器会持续地自我修正,以便对图像里关键的细节进行响应,比如先识别出眼睛,进而定位头部,甚至还能捕捉到整个身体等要素。
整体而言,整个训练过程好比向一个孩子展示大量物品的图画,接着他或她必须逐步明白在图画里要寻找哪些特征才能区分这些物品。假如需要了解某个技术层面的说明,那么卷积神经网络会以滤波器作为设置,针对图像像素和类别可能性建立一种映射关系,随后我们借助随机梯度下降来改善一个分类误差指标。或者,要是从人工智能/大脑/奇点的角度审视,这个功能实际上是一种「深度神经网络」,其中的滤波器对应神经元,而整个卷积神经网络则是一个模仿视觉皮层构造的自适应装置。
训练卷积神经网络
卷积神经网络的优势在于能够接收任何你挑选的图片,并且附带相应的分类信息,它会据此掌握识别这些分类的方法。针对本次内容,我们将向卷积神经网络输入一些优质的和欠佳的自拍照片,接着它会自行探索区分这两类照片的最有效方法。现在我们开始搜集一些自拍照。
用这批百万优质自拍和百万劣质自拍构成一个基准数据组,然后借助这个数据组来培养一个卷积式神经网络模型。
你或许会质疑我评判一张自拍优劣的依据——举例来说:倘若某人上传了一幅极好的自拍,只是发布于夜深时分开yun体育官网入口登录app,因而观看人数有限,随之而来的点赞数量也相对较低,又该如何处理?你提得有道理——这种方法几乎完全无效,然而这却是它唯一能够成立的合理途径,也是卷积神经网络能够应对的境况。它不会出现错误或失去信心,只会竭尽全力去执行被指派的工作。要了解在咱们收集的资料里区分两种物品有多么不易,可以参考以下几幅用于学习图像。倘若我拿出这些图像中的任何一张,你能准确判断它属于哪个分组吗?
训练过程颇具讲究,目的是凸显技术层面的精妙之处,我借助Caffe这一深度学习框架来实施卷积神经网络的训练开yunapp体育官网入口下载手机版,起初借助VGGNet网络在ImageNet上实施初步训练,紧接着在自拍图像集合里进行参数修正。我的模型在NVIDIA K40的显卡上运行了整个夜晚,还去掉了dropout功能,因为去掉这个功能后实验效果更佳。我也尝试用人脸数据集对VGGNet进行预训练,但最终结果并未超越ImageNet上的表现。最终模型在验证数据子集上的准确率为六成,这一数值仅略高于五十中取一的概率。
如何成就一张好的自拍照?
我们搜集了大约二百万张个人照片,依据照片获得的点赞数量来分辨哪些属于优质照片,哪些属于普通照片,而点赞数量又受到关注者数量的影响,我们将所有这些照片数据输入到Caffe软件中进行处理,并以此为基础训练卷积神经网络模型。ConvNet反复审视这两百万张自拍照,每张至少看几十遍,并且逐步修正它自身的构造,目的是让优质的自拍作品和普通的自拍作品能够被清晰地区分开来,我们很难明白它究竟是如何做到的,大概是因为有大约一亿四千万个参数在共同决定着滤波器的调整方式。不过我们能够让它放过那些从未出现过的个人照片,借助分辨哪些影像受欢迎,哪些影像不受欢迎,来探索其运作方式。
我从测试样本里选了五万张个人照片(注:我们的卷积神经网络事先没接触过这些图像)。作为初次可视化,接下来呈现一系列图片,其中效果最好的自拍排在最上面一行,效果最差的自拍位于最下面一行,而每相邻两行之间都包含一个连续的形态结构:
这一情况颇为奇妙。我从五万幅图像里挑选出最出色的百幅作品,经由卷积神经网络的评估:
如果你想知道更多内容,这个链接提供了相关信息_top 1000 selfies (3.5MB)。浏览完这个链接,你是否留意到卷积神经网络或许会学习通过识别某些特征来评估照片优劣的模式了呢?我注意到了某些特定现象,倘若在以下我列出的现象之外,你还能发现其他内容,请于评论区告知,若能知晓更多现象的存在,我会感到十分高兴。
为了得到一张好的自拍,大致模式有:
女性喜欢拍摄自己的照片,统计数据显示,女性上传的照片在排行榜上的位置普遍优于男性,这一点十分明显,在排名前百的照片中,完全没有发现任何男性单独拍摄的照片。
照片中人的脸宽约占画面的三分之一,头部摆放的位置和面部朝向在评分较高的照片里都较为固定。面部始终占据整个画面的三分之一上下,头部略微歪斜,位置通常在画面的中上部。这些情况让我领悟到:
令人感到奇妙的是,并非每条准则都对男性有效,我亲自检视过两千名内排名靠前的自拍影像,并且从中选出了男性角度下的最佳作品,这就是我得出的结论:
这一组合影中,每个人的额头都完整呈现,没有出现被裁剪的情况。多数照片的拍摄范围明显更宽,不仅包含了整个头部,连肩膀部分也清晰可见。另外,不少男性在自拍时都保持着一种精心打理的发型,具体表现为将略长的前发向上梳理。即便如此,我们依然能够明白,脸部轮廓在自拍时被过度饱和后,画面中的形象会变得模糊不清,这种现象非常普遍。
让我们也瞧瞧那些在卷积神经网络看来几乎不会被点赞的最糟糕自拍照吧。我的目的在于让大家领悟到提升自拍水准的通用法则,并非要使那些无意中拍出拙劣照片的人曝光,因此这些照片将以更小、更难辨识的样式呈现出来。看下图。
哪怕像素高度不足,部分特征依然轮廓分明。务必注意:
著名人物们。最近完成的一项有趣尝试,我是在卷积神经网络上处理了若干位知名人士的个人照片,同时借助连续的视觉化手段对这些结果进行了归类。其中评分最高的自拍被放置在最上方,卷积网络的评价从右向左逐渐降低直至最底部,
我们发现一个有意思的现象,先前总结的所谓「点赞规律」(禁止集体合影)被艾伦·德詹尼斯和几位奥斯卡红毯嘉宾的知名合影给颠覆了。尽管如此,卷积网络依然判定这是一张出色的自拍,并将其置于第二行!太厉害了!:)
我们的另一个「点赞规则」(排除了男性)遭遇克里斯·帕拉特的完美身材(同样位于第二排)的冲击。此外,荣誉也归于贾斯汀·比伯的挑眉照片、史蒂芬·扣扣熊和吉米·肥伦的合影(在第三排)。詹姆斯·弗兰科的自拍比克里斯更为大胆,但卷积网络并未因此青睐他(仅位列第四排)。对此观点,我深表认同。
最终,风格的价值再次凸显出来。部分毋庸置疑的颜值出众艺人,却因画面安排欠妥、照明条件不足等缘由,依然停留在榜单末尾,例如詹妮弗·洛佩兹或许就因为肖像过于宽阔。
探索#自拍#空间
另一种值得探索的视觉呈现方式是借助t-SNE算法来整理这些自拍照。t-SNE是一种极富巧思的计算方法,我甚至打算将其应用于所有适合的场合。它的独到之处在于既广泛适用又高效便捷——它能够从众多事物(以本次实验中的照片为例)中提取关键特征,并将它们排序,确保邻近的物品具备高度相似性。实际上,t-SNE能够对多种对象进行排序,比如Netflix上的影片、词汇、Twitter里的文档、ImageNet中的图像,或者任何你需要判断相似程度的资料。本次实验中,我们将依据卷积神经网络感知到的相似性,对这些自拍进行排列。从技术角度讲,我们的操作遵循的是终极全连接层级里fc7的L2范数标准,具体呈现如图所示
这些自拍以某种特别的方式聚集在一起:集体合影集中在左上部分,戴眼镜或墨镜的照片在中左位置排列,单人特写分布在下方左侧,全身照则堆叠在右上区域等等。确实,这种现象颇为奇妙。
寻找自拍的最佳剪裁