C6a7cc4d64f8a74e85a4e9294a56c34c
深度学习与“选美”

【引子】

美这事好像真没个普世的标准,
不说不同的地域,不同的文化归属,都有一套专属的审美体系,如西方人,东方人。
甚至到每个个体,审美差异都会很大,所谓萝卜青菜各有所爱。

不过剔除各种奇思异想的非主流,有机构曾研究过,对人五官认同有一套殊途同归的标准,那么是不是可以让机器来客观的评价一个人的颜值到底有多逆天吗?

【正题】

今天我们就来聊聊机器如何来个一张脸打分,这是某个真实项目的一部分功能,个人感觉蛮有意思就拿来和大家分享,需要一定深度学习的知识。

 项目主要用的是深度学习里的卷积神经网络,用的是tensorflow开源框架,网络结构主要基于alexnet,大家都是代码爱好者,所以代码也很简单,主要类结构如下:

build_model():网络结构构建函数,会调用下面conv2d()、pool2d()、fully_connected()函数,另外该函数加入了计算top-1,top-3准确度的op
build_train_op():模型训练优化函数,学习率、步长以及优化器的设置

后面基本都是辅助函数,包括卷积函数、池化函数、全连接函数、辅助生成随机W和Bias的函数以及用于tensorboard可视化的summary函数

 不像图像分类识别猫就是猫,狗就是狗,标签答案唯一、公正,颜值分数上个人癖好确实有差异,有认为凤姐是女神的,也有认为高圆圆的才是女神的,所以在构建网络结构时候,输入层就加入了dropout,最后全连接层只有一层。
一、网络结构

二、模型结果

三、卷积层
 卷积网络最核心的就在卷积层,通过叠加卷积层数和加深滤波器个数,每层卷积会提取图像不同特征,从低阶到高阶特征,所以一般滤波器数量从小到大,低阶特征个数就那么几个,如色彩、点、线,以及线不同的旋转角度,随着阶数增加,特征越具象,如这个项目,图1是第一层卷积,只提取到色彩信息,随着卷积层加深,提取的信息越来越具象,后面基本就可以识别出具体的人脸,项目里每层卷积滤波器的个数设置conv_units=[96,256,384,384,256]

下面是各层卷积提取到的特征信息

<center>图a:conv1</center>



【结束语】

 总体来说,alexnet结构比较简单,涉及的东西也不多,这个之后又推出了很多基于alexnet的变种,入vgg16,inception,resnet等,颜值评分只是项目其中一个功能,考虑图像数量、人脸基本特征,用了简单5层结构,但总体效果不错,测试训练top-3在80轮左右都达到了80%以上准确的,后续可能会增加一些网络组件,进一步提升准确度。
 颜值评分最难的环节是在美丑标准上萝卜青菜各有所爱,尽管我们通过互联网匿名采集了5000张左右女性照片,开发了在线打分功能,推广到集团内部员工进行评分,基本每张照片会有6-10人评分,在后续评分上也做了很多处理,但还是很难有个统一的标准或者说给出很客观准确的分数。
本文主要的目的是为介绍卷积神经网络结构的一个概貌,原理要讲很清楚估计一篇文章是讲不完的,和之前在线授信项目一样都未详细介绍原理,后续马上会写一些原理性的文章,详细介绍,希望大家关注,欢迎一起交流。

© 著作权归作者所有
这个作品真棒,我要支持一下!
机器学习、深度学习、大数据、数据科学爱好者集结地,分享 在各自领域里的工程实践经验和应用 让我们每天进步一点点...
0条评论
top Created with Sketch.