亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

蟲蟲首頁| 資源下載| 資源專輯| 精品軟件
登錄| 注冊

您現在的位置是:首頁 > 技術閱讀 >  神經網絡告訴我,誰是世界上最「美」的人?

神經網絡告訴我,誰是世界上最「美」的人?

時間:2024-01-24

魔鏡魔鏡告訴我,誰是世界上最美的女人?這句伴隨童年的話也有現實版哦~神經網絡可以預測人臉顏值,這方面也出現了不少研究。今年年初華南理工大學的研究者發布論文,并公開了數據集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復現程度應該很接近。

fromkeras.applicationsimportResNet50ResNet是微軟開發的深度卷積神經網絡,曾贏得 2015ImageNet競賽冠軍。

我們在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%的人更好看。

好多了~老實講我還是想得更高分~ :)

最后說明一下,我使用Google1Colaboratory構建和調整模型,它提供Python notebook,可以免費使用GPU!

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

論文鏈接:https://arxiv.org/abs/1801.06345

文章來源:數據與算法之美


IEEE Spectrum

《科技縱覽》

官方微信公眾平臺



往期推薦

反思 | 神經網絡的心靈

深度學習玩轉模仿游戲:通過模仿人類,

循環神經網絡獲得了若干驚人的能力

重大突破!清華研發出可支持神經網絡的芯片

主站蜘蛛池模板: 鄂温| 宝兴县| 徐州市| 克拉玛依市| 西平县| 沙田区| 奎屯市| 金华市| 廊坊市| 应用必备| 梅州市| 呼伦贝尔市| 石屏县| 辰溪县| 贵定县| 信丰县| 镇沅| 南靖县| 乌兰浩特市| 承德县| 泾川县| 石柱| 牙克石市| 独山县| 翁源县| 甘孜| 泾源县| 九龙县| 台东县| 大理市| 德兴市| 邻水| 徐州市| 葫芦岛市| 海淀区| 什邡市| 全椒县| 惠州市| 龙门县| 合江县| 都兰县|