神经网络告诉我,谁是世界上最「美」的人?

「魔镜魔镜告诉我,谁是世界上最美的女人?」这句伴随童年的话也有现实版哦~神经网络可以预测人脸颜值,这方面也出现了不少研究。今年年初华南理工大学的研究者发布论文,并公开了数据集 SCUT-FBP5500。本文作者 Dima Shulga「复现」了该论文,并用自己的照片做了试验。

数月前,华南理工大学发布了关于「颜值预测」的论文和数据集,数据集包括 5500 人,每人按颜值魅力打分,分值在 1 到 5 分之间。

  • 论文地址:https://arxiv.org/abs/1801.06345
  • 数据集地址:https://github.com/HCIILAB/SCUT-FBP5500-Database-Release

数据集中还有很多名人。Julia Robert 的这张照片得到了 3.78 的平均分:

以色列名模 Bar Refaeli 这张照片得分 3.7:

似乎分也不高嘛,但是 3.7 的得分意味着比数据集中大约 80% 的人要好看。

数据集作者利用该数据集训练多个模型,尝试根据人脸照片预测这个人的魅力。

本文我将复现他们的结果,还要看一下我的吸引力怎么样~

原始论文实现了很多不同模型,包括具备人工制作特征的经典 ML 模型和 3 个深度学习模型:AlexNet、ResNet18、ResNext50。

我想尽可能简单地呈现(不想从头实现和训练整个 resnet 网络),于是打算通过精调现有模型来执行该工作。keras 中有一个模块叫做 applications,包含不同预训练模型。其中一个是 resnet50。不幸的是,keras.applications 中没有 ResNet18、ResNext50,因此我无法完全复现该研究,不过使用 resnet50 复现程度应该很接近。

from keras.applications import ResNet50

ResNet 是微软开发的深度卷积神经网络,曾赢得 2015 ImageNet 竞赛冠军。

我们在 keras 中初始化 resnet50 模型时,使用 ResNet50 架构创建了一个模型,同时下载了在 ImageNet 数据集上训练好的权重。

论文作者没有提到他们训练模型的具体细节,因此我尽力去做。我想移除最后一层(softmax 层),添加一个没有激活函数的 Dense 层,来执行回归。

resnet = ResNet50(include_top=False, pooling=’avg’)
model = Sequential()
model.add(resnet)
model.add(Dense(1))
model.layers[0].trainable = False
print model.summary()
# Output:
  Layer (type)                 Output Shape              Param #    ================================================================= resnet50 (Model)             (None, 2048)              23587712   _________________________________________________________________ dense_1 (Dense)              (None, 1)                 2049       ================================================================= Total params: 23,589,761 
Trainable params: 23,536,641 
Non-trainable params: 53,120

你可以看到,我先使第一层(resnet 模型)不可训练,这样我只需要训练 2049 个参数,而不是 23,589,761 个。

我计划训练最后的 Dense 层,然后使用较小的学习率训练整个网络。

model.compile(loss='mean_squared_error', optimizer=Adam())
model.fit(batch_size=32, x=train_X, y=train_Y, epochs=30)

之后,我改变第一层的状态使之可训练,编译并拟合模型,来进行另外 30 个 epoch。

这里,train_X 是照片,即 numpy 形态数组 (350, 350, 3),train_Y 是标注图像的得分。

结果

该论文使用 2 种技术训练模型:5-fold 交叉验证、60%-40% 的训练集-测试集分割。论文作者使用皮尔逊相关系数(PC)、平均绝对误差(MAE)和均方根差(RMSE)对结果进行衡量。5-fold 交叉验证的结果如下:

60%-40% 的训练集-测试集分割结果如下:

我将使用 80%-20% 的训练集-测试集分割,类似执行他们的交叉验证的 1-fold。结果如下:

RMSE: 0.301799791952313 
MAE: 0.2333630505619627 
PC: 0.9012570266136678

相当不错。此外,查看分数散点图和直方图很方便:

原始分数分布(正态):

预测分数分布(正态):

结果看起来不错。现在我们来看下这个深度神经网络给我打几分吧。我一开始用了这张照片:

得分 2.85,我只比该数据集中 52% 的人好看……不得不说有点失望,我原本以为结果比这好,于是我决定再试试。

我拍了很多照片,最终有一张得了 3.15 分,这意味着我比该数据集中 64% 的人更好看~

好多了~老实讲我还是想得更高分~ :)

最后说明一下,我使用 Google Colaboratory 构建和调整模型,它提供 Python notebook,可以免费使用 GPU!

论文:SCUT-FBP5500: A Diverse Benchmark Dataset for Multi-Paradigm Facial Beauty Prediction

论文链接:https://arxiv.org/abs/1801.06345

摘要:颜值预测(facial beauty prediction,FBP)是使人脸魅力评估达到人类感知程度的重要视觉识别问题。为了解决该问题,不同的数据驱动模型,尤其是当前最优的深度学习技术被引入,基准数据集成为实现 FBP 的必要因素。之前的研究将颜值识别作为一个特定的分类、回归或排序的监督学习问题,表明 FBP 本质上是一个具备多个范式的计算问题。但是,大部分 FBP 基准数据集是在特定的计算约束下构建的,这限制了在该数据集上训练的模型的性能和灵活性。本论文中,我们认为 FBP 是一个多范式的计算问题,并提出一种新的多元化基准数据集 SCUT-FBP5500,来实现多范式颜值预测。该数据集共有 5500 个人脸正面照片,这些照片具备不同属性(男性/女性,年龄等)和不同标签(面部地标、颜值得分(1~5)、颜值得分分布),允许具备不同 FBP 范式的不同计算模型,如基于外表/身材的亚洲人/高加索人的男性/女性的颜值的分类/回归模型。我们使用不同的特征和预测器组合、不同的深度学习方法评估 SCUT-FBP5500 数据集,结果表明在该数据集上 FBP 有所改进,且具备潜在应用。

原文链接:https://towardsdatascience.com/how-attractive-are-you-in-the-eyes-of-deep-neural-network-3d71c0755ccc

原文发布于微信公众号 - IT派(transfer_3255716726)

原文发表时间:2018-04-18

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏大数据挖掘DT机器学习

搜狐图文匹配算法大赛_方案分享

参加这次比赛的初衷是作为机器学习课程的大作业,这两天写了课程报告,所以将报告内容修改了一下进行分享。 我所在的团队(“中国国家跳水队”,排名如队名,一度严重跳水...

68413
来自专栏磐创AI技术团队的专栏

目标检测算法上手实战

从广义上说,计算机视觉就是“赋予机器自然视觉能力”的学科。计算机视觉与人工智能有密切联系,但也有本质的不同。人工智能更强调推理和决策,但至少计算机视觉目前还主要...

5576
来自专栏人工智能LeadAI

Active Learning: 一个降低深度学习时间,空间,经济成本的解决方案

? 下面要介绍的工作发表于CVPR2017(http://cvpr2017.thecvf.com/),题为“Fine-tuning Convolution...

4814
来自专栏人工智能头条

机器学习实践中应避免的七种常见错误

1634
来自专栏CVer

[计算机视觉论文速递] 2018-03-20

通知:这篇推文有13篇论文速递信息,涉及图像分割、SLAM、显著性、深度估计、车辆计数等方向 往期回顾 [计算机视觉] 入门学习资料 [计算机视觉论文速递] ...

5608
来自专栏数说工作室

【分类战车SVM】第二话:线性分类

分类战车SVM (第二话:线性分类) 回复“SVM”查看本《分类战车SVM》系列的内容: 第一话:开题话 第二话:线性分类 第三话:最大间隔分类器 第四话:拉格...

44211
来自专栏大数据文摘

学界 | Ian Goodfellow最新论文:是猫还是狗?不光神经网络识别不了,你也能被忽悠

2544
来自专栏AI研习社

不均衡数据怎么破?对付它的七种武器!

先问大家一个问题: 银行欺诈识别、市场实时交易、网络入侵检测等领域的数据集,有哪些共通点? 答案是:“关键”事件在数据中的占比经常少于1%(例如:信用卡行骗者、...

3697
来自专栏磐创AI技术团队的专栏

谱聚类概述

1593
来自专栏AI科技评论

语义分割领域开山之作:Google提出用神经网络搜索实现语义分割

AI 科技评论按:本文作者陈泰红,邮箱 ahong007@yeah.net,他为 AI 科技评论撰写了 Google 利用神经网络搜索实现语义分割的独家解读。

1031

扫码关注云+社区

领取腾讯云代金券