機器學習:通過深度神經網路再識評估器
在這一期的 Cloud AI Adventures 里,我們將會學習怎樣用深度神經網路替換線性模型,從而適應日益複雜的數據集訓練任務。
這是一個系列視頻/文章 「AI Adventures」中的第六篇,由 Google 的開發技術推廣工程師 Yufeng Guo 主講,用通俗易懂的語言幫助你了解人工智慧和機器學習。在這一系列視頻/文章中,我們將一起探秘人工智慧的世界,共同品味藝術、探索科學以及掌握機器學習的工具。
第一篇:機器學習是什麼?第二篇:機器學習「七步走」
第三篇:用評估器給花卉分類第四篇:彈性伸縮的雲端託管服務第五篇:通過 TensorBoard 將模型可視化所有的內容和視頻都會首發在「機智如你」專欄,目標是發布最新與谷歌相關的機器學習、TensorFlow 相關內容,如果你有任何問題,也歡迎在留言區向我們提出反饋
https://www.zhihu.com/video/921808067354578944
隨著線性模型中特徵列數量的增加,由於特徵列之間的關係變得越來越複雜,在訓練中提高精確度也越來越困難。這是一個眾人皆知的問題,而數據科學家們解決它的一個有效辦法就是使用深度神經網路。
為什麼叫深度?
深度神經網路可以應對更複雜的數據集並利用其多層次結構來更好的概括出先前從未見過的數據,所以說它「深度」。多層次的結構使其相比線性模型能夠容納更多的數據。不過代價就是要花費更長的訓練時間,並且模型體積哥呢個龐大,可解釋性也更差。那麼人們為什麼還這麼中意它呢?因為它總是能夠提高更高的精度。
關於深度學習,有那麼一件頗具技巧的事,那就是吧所有參數都調校得「恰到好處」。數據集的規模決定了調優過程中差不多是無窮無盡的。不過,TensorFlow 內置的 DeepClassifier 和 Regresser 類提供了一些你能隨時使用的默認值,他們能讓你的訓練準備工作又快又輕鬆。
從線性訓練到深度學習
下面舉個例子來說明如何將早前我們的鳶尾花辨識模型從線性轉為深度神經網路(也就是人們常說的 DNN)。
當然, 我們不是要展示 DNN 能處理的 2000 列特徵值模型,而是僅僅使用本系列貫穿始終的 4 列特徵值。(要麼火力全開,要麼幾乎用不到,哈哈哈)其實它們背後的原理都是一樣的。
最主要的變化就是把 LinearClassifier 類換成 DNNClassifier 類。 這一更改會為我們創建一個深度神經網路。
▍其他變化
其實其他部分幾乎沒有變動!只是 DNN 多了個之前我們沒有用到的參數。由於 DNN 的多層結構,而每一層可能有各不相同的結點數目,所以還需要在實例化時加上 hidden_units
參數。
這個 hidden_units
參數讓你為模型的每一層指定具體的結點數目。也就是讓你決定模型的大小和形狀,而不需要從頭開始手動把所有東西都連接起來。
▍更多選項
對於任何預知的體系,自定義性和便利性往往不可兼得, DNNClassifier 嘗試給開發者提供額外的參數以繞過這個局限。如果留空了,就會由一些合理的默認值來填補空缺。比如優化器、激活函數、淘汰率等等都是可以自定義的。
▍再沒有什麼其他變化了
還有其他要改變的嗎?沒了!這就是使用評估器框架 Estimators framework 的好處:用通用的方法來組織數據、訓練、評價、導出模型,同時還能讓你用不同的模型和參數來訓練。
輕鬆切入深度學習
又是,深度神經網路比線性模型要更加高效。在這些情況下,TensorFlow 用「只替換一處函數調用」這種少量編碼即可切換模型種類的方式,讓一切更加簡單。此後,你會有更多的時間精力來處理數據、模型和參數,而不是費時管理訓練的循環迭代。用 TensorFlow Estimators 來獲得更輕鬆的 DNN 訓練體驗吧!
感謝閱讀本期有關深度模型的內容!關注我們,不要錯過更多精彩!
▏原文出處:Estimators revisited: Deep Neural Networks
▏封面來源:YouTube 視頻縮略圖
▏視頻出處:YouTube - Estimators Revisited: Deep Neural Networks
▏字幕翻譯:谷創字幕組
▏文章編輯: @楊棟
推薦閱讀:
※IOS平台TensorFlow實踐
※TensorFlow會話的配置項
※Github|如何用TensorFlow實現DenseNet和DenseNet-BC(附源代碼)
※TF Boys (TensorFlow Boys ) 養成記(五):CIFAR10 Model 和 TensorFlow 的四種交叉熵介紹
TAG:神经网络 | 机器学习 | TensorFlow |