天天看點

《面向機器智能的TensorFlow實踐》一1.2 深度學習

本節書摘來自華章出版社《面向機器智能的tensorflow實踐》一書中的第1章,第1.2節,作者 山姆·亞伯拉罕(sam abrahams)丹尼亞爾·哈夫納(danijar hafner)[美] 埃裡克·厄威特(erik erwitt)阿裡爾·斯卡爾皮内裡(ariel scarpinelli),更多章節内容可以通路雲栖社群“華章計算機”公衆号檢視。

1.2 深度學習

“深度學習”已成為用于描述使用多層神經網絡的過程的标準術語,多層神經網絡是一類極為靈活的可利用種類繁多的數學方法以及不同數學方法組合的模型。這類模型極為強大,但直到最近幾年,人們才有能力卓有成效地利用神經網絡,其背後原因主要有兩點,一是擷取足夠數量的資料成為現實;二是得益于通用gpu的快速發展,多層神經網絡擁有了超越其他機器學習方法所必需的計算能力。

深度學習的強大之處在于當決定如何最有效地利用資料時,它能夠賦予模型更大的靈活性。人們無需盲目猜測應當選擇何種輸入。一個調校好的深度學習模型可以接收所有的參數,并自動确定輸入值的有用高階組合。這種能力使得更為複雜的決策過程成為可能,并使計算機比以往任何時候都更加智能。借助深度學習,我們可以制造出具有自動駕駛能力的汽車和能夠了解人類語音的電話。由于深度學習的出現,機器翻譯、人臉識别、預測分析、機器作曲以及無數的人工智能任務都成為可能,或相比以往有了顯著改進。

雖然深度學習背後的數學概念幾十年前便提出,但緻力于建立和訓練這些深度模型的程式設計庫是近年來才出現的。遺憾的是,這些庫中的大多數都會在靈活性和生産價值之間進行取舍。靈活的庫對于研究新的模型架構極有價值,但常常或者運作效率太低,或者無法運用于産品中。另一方面,雖然出現了可托管在分布式硬體上的快速、高效的庫,但它們往往專注于特定類型的神經網絡,并不适宜研究新的和更好的模型。這就使決策制定者陷于兩難境地:是應當用缺乏靈活性的庫來從事研究,以避免重新實作代碼,還是應當在研究階段和産品開發階段分别使用兩個完全不同的庫?如果選擇前一種方案,可能便無法測試不同類型的神經網絡模型;如果選擇後一種方案,則需要維護可能調用了完全不同的兩套api的代碼。由此甚至會引發另一個問題—我們是否擁有這樣的資源?

解決這個兩難問題正是tensorflow的設計初衷。

繼續閱讀