AIA (AI Adventures)系列現(xiàn)在已經(jīng)進(jìn)入第六期了。前幾期分享當(dāng)中,Yufeng 介紹了機(jī)器學(xué)習(xí)的核心概念、基本邏輯,也介紹了要進(jìn)行機(jī)器學(xué)習(xí)需要經(jīng)過哪些步驟,并根據(jù)這些基本知識(shí)嘗試使用線性評(píng)估器 API 打造了鳶尾花分類模型,還介紹了如何用 TensorBoard 將模型可視化分析。今天的分享中,他會(huì)帶領(lǐng)我們一起把線性鳶尾花分類模型轉(zhuǎn)換為深度神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)。
在這一期的Cloud AI Adventures里,我們將會(huì)學(xué)習(xí)怎樣用深度神經(jīng)網(wǎng)絡(luò)替換線性模型,從而適應(yīng)日益復(fù)雜的數(shù)據(jù)集訓(xùn)練任務(wù)。
隨著線性模型中特征列數(shù)量的增加,進(jìn)而特征列之間的關(guān)系變得越來越復(fù)雜,在訓(xùn)練中提高精確度也越來越困難。這是一個(gè)眾人皆知的問題,而數(shù)據(jù)科學(xué)家們解決它的一個(gè)有效辦法就是轉(zhuǎn)為使用深度神經(jīng)網(wǎng)絡(luò)。
為什么叫深度?
深度神經(jīng)網(wǎng)絡(luò)可以應(yīng)對(duì)更復(fù)雜的數(shù)據(jù)集,并充分利用其多層結(jié)構(gòu)來更好地概括出未知的數(shù)據(jù),故而稱其為「深度」。多層次的結(jié)構(gòu)使其相比線性模型能夠容納更多的數(shù)據(jù)。不過代價(jià)就是要花費(fèi)更長(zhǎng)的訓(xùn)練時(shí)間,并且模型體積也更龐大,可解釋性也更差。那么人們?yōu)槭裁催€這么中意它呢?因?yàn)樗軌蛱嵘礁叩木取?/p>
深度學(xué)習(xí),有如山林漫步,難尋蹊徑
關(guān)于深度學(xué)習(xí),有那么一件頗具技巧的事,那就是把所有參數(shù)都調(diào)校得「恰到好處」。超大的數(shù)據(jù)集規(guī)模決定了調(diào)優(yōu)過程差不多是無窮無盡的。不過,TensorFlow 內(nèi)置的 DeepClassifier 和 Regresser 類提供了一些你能隨時(shí)使用的默認(rèn)值,他們能讓你的訓(xùn)練準(zhǔn)備工作又快又輕松。
從線性訓(xùn)練到深度學(xué)習(xí)
下面舉個(gè)例子來展示如何將早前我們的線性鳶尾花辨識(shí)模型轉(zhuǎn)為深度神經(jīng)網(wǎng)絡(luò)(也就是人們常說的 DNN)。
當(dāng)然, 我們不是要展示 DNN 能處理的 2000 列特征值模型,而是僅僅使用本系列貫穿始終的 4 列特征值。(要么火力全開,要么幾乎用不到,哈哈哈)其實(shí)它們背后的原理都是一樣的。
最主要的變化就是把 LinearClassifier 類換成 DNNClassifier 類。 這一更改會(huì)為我們創(chuàng)建一個(gè)深度神經(jīng)網(wǎng)絡(luò)。
用 DNNClassifier 類替換 LinearClassifier 類
其他變化
其實(shí)其他部分幾乎沒有變動(dòng)!只是 DNN 多了個(gè)之前我們沒有用到的參數(shù)。由于 DNN 的多層結(jié)構(gòu),而每一層可能有各不相同的結(jié)點(diǎn)數(shù)目,所以還需要在實(shí)例化時(shí)加上 hidden_units 參數(shù)。
加上 hidden_units 參數(shù)把所有東西都整合起來
這個(gè) hidden_units 參數(shù)讓你為模型的每一層指定具體的結(jié)點(diǎn)數(shù)目。也就是讓你決定模型的大小和形狀,而不需要從頭開始手動(dòng)把所有東西都連接起來。
改變模型的參數(shù)配置也就是一行變更的事兒
更多選項(xiàng)
對(duì)于任何預(yù)知的體系,自定義性和便利性往往不可兼得, DNNClassifier 嘗試給開發(fā)者提供額外的參數(shù)以繞過這個(gè)局限。如果留空了,就會(huì)由一些合理的默認(rèn)值來填補(bǔ)空缺。比如優(yōu)化器、激活函數(shù)、淘汰率等等都是可以自定義的。
沒錯(cuò),有這么個(gè)激活函數(shù)就叫「ELU」
再?zèng)]有什么其他變化了
還有其他要改變的嗎?沒了!這就是使用Estimators 框架的優(yōu)勢(shì):用通用的方法來組織數(shù)據(jù)、訓(xùn)練、評(píng)價(jià)、導(dǎo)出模型,同時(shí)還能讓你用不同的模型和參數(shù)來訓(xùn)練。
了解 Estimators 框架:
https://tensorflow.google.cn/api_docs/python/tf/estimator
輕松切入深度學(xué)習(xí)
又是,深度神經(jīng)網(wǎng)絡(luò)比線性模型要更加高效。在這些情況下,TensorFlow 用「只替換一處函數(shù)調(diào)用」這種少量編碼即可切換模型種類的方式,讓一切更加簡(jiǎn)單。此后,你會(huì)有更多的時(shí)間精力來處理數(shù)據(jù)、模型和參數(shù),而不是費(fèi)時(shí)管理訓(xùn)練的循環(huán)迭代。用TensorFlow Estimators來獲得更輕松的 DNN 訓(xùn)練體驗(yàn)吧!
-
神經(jīng)網(wǎng)絡(luò)
+關(guān)注
關(guān)注
42文章
4776瀏覽量
100938 -
線性
+關(guān)注
關(guān)注
0文章
199瀏覽量
25175 -
深度學(xué)習(xí)
+關(guān)注
關(guān)注
73文章
5510瀏覽量
121329
原文標(biāo)題:AIA 第六期 | 通過深度神經(jīng)網(wǎng)絡(luò)再識(shí) Estimator
文章出處:【微信號(hào):tensorflowers,微信公眾號(hào):Tensorflowers】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論