前言
隨著雲計算、大數據、人工智能技術的深度發展,大數據帶來了海量多源異構數據的積累,雲計算帶來了超強計算能力,在這樣呼喚創新的新時代背景下,深度學習起起伏伏幾十載,今天終於走上了人工智能的“”。可以說,經過“數據、算力(計算能力)、算法”的深度融合和推動,深度學習已經成長為目前主流並且有應用前景的機器學習技術。本書盡量避免過多繁雜的理論推導,力圖用深入淺出的語言表達,讓更多讀者輕松邁入深度學習的大門。同時,希望通過大量的案例和實戰應用,幫助讀者快速上手、入門“深度學習”,了解“深度學習”可以應用於哪些領域,擅長解決哪些經典難題,以便在後續的學習研究過程中,從本書講解的“方法論解析”中獲得啟迪,找到真正屬於自己的解決“人工智能”領域問題的“金鑰匙”。
讀者對像
本書適合以下讀者群體閱讀:
(1)對人工智能、大數據、雲計算等新興技術感興趣的愛好者
“人工智能”無疑是站在巨人肩膀——“大數據”和“雲計算”上的產物,可以說,數據和計算能力的支撐,是人工智能發展的基石,而深度學習就是這個領域頂層的技術,因此,本書可以幫助讀者在入門深度學習的同時,對“大數據”和“雲計算”技術有整體把握,理解深度學習在雲計算、大數據時代的重要性。
(2)開源項目的愛好者
深度學習技術已經創造了大量的開源項目,擁有大量的開源項目維護團隊和貢獻者。例如,Google開源的TensorFlow框架、賈揚清博士(現就職於Facebook)開源的Caffe框架、亞馬遜主推的MXNet框架等等。本書在實戰案例部分的講解涉及了不同開源框架的源代碼,以期在“眾口難調”的深度學習領域,實現“調眾口”的作用,幫助讀者了解和掌握主流深度學習框架源代碼的設計思想和核心技術。
(3)深度學習、機器學習、人工智能技術的開發者
不論是在市場還是技術層面,人工智能領域的關注度持續火熱。很多未入門深度學習的讀者都想近距離感受深度學習的魅力,而很多深度學習的初級開發者也苦於該領域的技術飛速更新迭代,很難梳理出適合自己領域的知識圖譜。因此,本書在講解中兼顧了對入門級讀者關於基本概念、基本知識點的介紹,並加強了在實戰部分對領域知識的總結,使得不同層次的開發者都可以從本書中得到急需的方法與技巧指導。
(4)高等院校計算機相關專業的大四和一年級碩士研究生
從學科分類的本質屬性上講,深度學習與“計算機科學與技術”學科有很深的淵源,而高等院校計算機相關專業的學生,不論是在未來就業還是在求學期間的科學研究,都是“深度學習”領域研究的新生力量和重要創新、推廣、優化、提升的動力儲備。本書在講解相對“專業”的理論知識點時,會穿插分析其中蘊含的方法論思想,希望可以為正在“書海作舟”的讀者們提供一些啟迪,增強對深度學習所涉及方法論知識的理解,為今後的工作、學習、生活提供一定的指導和幫助。
本書願景
對於大多數理工科出身的程序員來說,人文社科類的思想、理論、見解,就像是“海市蜃樓”,願景是如此美好,但是現實的“骨感”、抽像讓其望而卻步。因此本書可以作為以深度學習基礎理論為根基,以其蘊含的“方法論思想”為導向,幫助“理工男(女)”掌握深度學習核心技術,並懷著“智者”情懷,去“懸壺濟世”,融入新時代的人工智能大潮,去踐行“長風破浪會有時,直掛雲帆濟滄海”的宏圖大志。
作為技術類的科技書籍,本書希望幫助讀者解析深度學習蘊含的方法論思維模式,同時培養其掌握深度學習實戰應用的技能,進而完成在深度學習領域“入門——精通——實戰”的不斷提升,完成從新手“小白”到領域“行家”的轉變,從“技能”和“方法論”兩個層面上,全面“武裝”讀者,完成“深度學習:從入門到實戰”。
“深度學習”的意義
掌握深度學習的好處如下:
(1)從個人發展的角度講,作為一名新時代的程序員或者IT技術相關領域工作者,人工智能領域人纔的極度短缺,這是一個全球性的行業現狀,因此,以深度學習為代表的核心技術也就是該領域從業者的核心競爭力。也就是說,掌握了深度學習技術,也就具備了進軍人工智能的“通關令牌”,這對接下來的技術提升、就業等方面都具有很大的推動作用。
(2)從知識學習的角度講,深度學習是一個交叉學科的產物,是橫跨現代生物學中的腦科學、心理學以及計算機科學中的數據工程、軟件工程、程序設計、並行計算等“軟硬兼顧”的技術。掌握了深度學習,讀者將會對計算機領域的相關技術構建起一個更加清晰的知識圖譜,即便在計算機科學領域知識不斷拓展,新概念、新知識層出不窮的今天,掌握深度學習的核心思想與技術,對優化個人知識結構的合理性,提高綜合能力的全面性,都是大有裨益的。
(3)從思維模式的角度講,深度學習不僅是抽像的理論技術,更是一種鮮活“有溫度”的思維模式,熟練掌握深度學習的核心思維模式,構建優化的體繫全局觀,運用局部微調、逐層優化的“處事策略”,在各個領域都會產生普遍的適用價值。因此,也希望本書在“思維模式”上對讀者有所啟迪。
成為專業“深度學習”程序員的臺階
我們都知道,從“小白”到“專業”的程序員,是有幾個臺階需要逐一跨越的,下面梳理一下“深度學習”程序員的成長過程:
個臺階,操作繫統入門。操作繫統是連接用戶與機器之間的橋梁,掌握Linux操作繫統的基礎知識、基本操作是邁進深度學習大門的步。雖然,目前也有基於Windows繫列操作繫統的深度學習開發組件,但從開發者成長的長遠角度講,不建議長期依賴Windows繫統,對於一個開發者來講,自由、可控、高效永遠是追求。
第二個臺階,掌握編程語言。目前深度學習友好的編程語言是Python。因此,在掌握一定面向對像編程技巧的基礎上,不斷加深對Python編程模式、豐富的庫函數的理解與運用,是學習深度學習的重要階段。如果對Java和C(或C )有一定編程學習基礎,這會對深度學習的進階有很大幫助。
第三個臺階,初步理解深度學習的基本原理。即使對機器學習、神經網絡等基礎理論及算法無法全面喫透,但是從宏觀上了解其核心思想,也是對下一階段的實際運用大有好處。畢竟,理論可以指導實踐,同時實踐可以反哺理論的完善與理解。
第四個臺階,初步掌握深度學習的框架。有了對深度學習基本原理的理解,結合目前主流的深度學習框架,對其進行深入剖析,從實戰的角度促進對原理的理解。至於深度學習框架,Keras和Caffe目前比較適合初學者入門。
第五個臺階,在實戰中增強對基本原理和框架的駕馭能力。理論和實踐是相輔相成的,將二者相互促進、相互融合是一個成功的“深度學習”程序員的境界。
在跨越了這五個臺階之後,隻需要再經歷一些大型實戰項目的深度歷練,即可成為一個優秀的“深度學習”程序員。
“深度學習”的進階地圖
結合多年的人工智能領域學習和成長經驗,我們勾勒出一個“深度學習”的進階地圖(roadmap)。
學習
階段
學習內容和目標 上機
實踐
入門
操作繫統基礎知識,尤其強化對Linux操作繫統的運用技能訓練;編程語言的熟練掌握,尤其加強的Python的基本語法規則、函數庫的掌握與運用 18小時
精通
理解深度學習的基本原理,掌模型、BP神經網絡、卷積神經網絡、循環神經網絡、生成式對抗網絡的核心技術。 24小時
掌握深度學習的主流開發框架,至少精通一種成熟的框架。以Caffe為例,可以實現對深度學習的基本原理的實現,包括、單層網絡、多層網絡、BP算法、卷積神經網絡、循環神經網絡、生成式對抗網絡的實現及參數調優,並且可以對模型結構進行適度優化調整。 24小時
實戰
結合深度學習基本理論及開發框架,對語音、視頻、自然語言理解、計算機視覺等方面進行實戰化項目開發和驗證,並構建不同領域解決問題方案的架構體繫,針對效率、效果、性能等方面的問題,可以創造性地提出優化的高性能深度學習模型,並在實戰中取得良好效果。 36小時
根據“深度學習”的進階地圖和學習經驗,我們設計了本書的內容。全書共12章,分為3篇,下面分別介紹這三篇的內容安排。
第1篇深度學習入門篇
第1篇可被視作是深度學習相關基礎知識的濃縮,幫助讀者回顧並初步了解深度學習核心的內容。深度學習的入門篇包括第0~2章,其中第0章旨在幫助讀者理清深度學習、機器學習、人工智能之間的關繫,從宏觀上把握整個深度學習領域的“生態繫統”,了解深度學習的發展方向及前沿趨勢。第1章提綱挈領地講解矩陣理論、概率理論、機器學習方法、神經網絡以及部分化原理,旨在幫助讀者夯實深度學習的理論基礎,為進一步探索深度學習的核心技術充實知識儲備。第2章旨在幫助讀者揭開“神經網絡”的神秘面紗,從單個M-到感知機模型,再到多層前饋神經網絡,逐步進入深度神經網絡的核心世界,讓讀者按照神經網絡不斷完善優化的成長軌跡,感受一段“深度學習”的成長歷程。
總的來說,第1篇是“拋磚引玉”,畢竟深度學習是一個多學科交叉融合的技術,與其面面俱到不如突出重點,希望讀者從本篇開始夯實深度學習的理論基礎。
第2篇深度學習方法論解析篇
方法論是技術的靈魂;反之,技術是方法論的客觀體現。第2篇是深度學習的方法論解析篇,包括第3~5章,通篇貫穿著方法論的辯證思想,從圖像、視頻、語音等領域的關鍵技術出發,分別講解卷積神經網絡(CNN)、生成式對抗網絡(GAN)、循環神經網絡(RNN)的核心技術及其方法論思想。其中第3章以卷積神經網絡中逐層抽像、平移不變、局部連接(稀疏)、權值共享等為核心,全方位詮釋人生“智慧”中升華、適應、舍得、合作的精髓。第4章解讀了生成式對抗網絡中蘊含的博弈、學習、平衡的方法論思想。第5章通過案例剖析,講解循環神經網絡中涉及的“記憶”與“遺忘”,“借鋻”與“提升”等思想。
本書的一大亮點就是在講解深度學習核心技術的同時,用大量的知識擴容和認知提升模塊剖析其中蘊含的方法論思想,以期對“深度學習”進行“內外兼修”講解和重塑。
第3篇深度學習實戰篇
“戰場是檢驗戰鬥力的試金石”。結合第1篇、第2篇的知識儲備,第3篇從實戰應用的角度展示深度學習在多個維度的應用場景,包括第6~11章。“工欲善其事必先利其器”,第6章介紹主流的深度學習工具及框架,對Python、MATLAB、TensorFlow、Caffe等工具進行了講解。第7章從圖像分類、特征提取、遷移學習、特征可視化角度全面解析首個深度卷積神經網絡模型——AlexNet的原理與實戰應用。第8章從“Hello Word”級別的手寫數字開始,依次對手寫漢字識別、手寫數字角度矯正進行實戰,將手寫體識別進行到底。第9章以視頻監控中人臉檢測和物體檢測為例,闡釋深度學習在安防領域的研究意義和研究現狀,剖析了深度學習在視頻監控檢測中的實戰應用。第10章介紹了信息安全領域的信息隱藏技術,並結合團隊研究成果,以生成式對抗網絡為核心技術提出無載體的信息隱藏方案。第11章以軟件設計大賽題目為背景,利用深度學習技術為服裝檢測問題提出可行的解決方案,是深度學習技術在服裝識別技術的有益探索。
本篇是對全書講解知識點的總結與提升,隻有對知識點的“融彙”纔能實現能力上的“貫通”,通過對所學知識的實戰應用,相信讀者可以真正的“融彙貫通”。
本書學習建議
本書共分為3篇,第1篇為深度學習的入門篇,第2篇為深度學習的方法論解析篇,第3篇為深度學習的實戰篇。如果你是一名具有一定機器學習、人工智能基礎和實際操作經驗的讀者,那麼可以直接閱讀後兩篇。方法論解析篇側重於對經典深度學習模型的原理講解及其蘊含的方法論解析,實戰篇側重於多領域的案例實戰和解決方案分析,讀者可以按實際情況自行安排學習計劃。但是,如果你是一名初學者,建議你從第1篇開始仔細研讀所有的知識點,這對後續的學習是至關重要的。
後續學習與提高
有了本書的學習基礎,讀者可以從以下兩個方向進行後續學習和提高。
(1)繼續對深度學習的基礎理論進行深入學習,尤其對化技術、矩陣論、並行計算等核心知識進行深入剖析,探索深度學習在理論上的突破。
(2)繼續將所學的深度學習理論和模型應用到更廣闊的領域,包括語音、圖像、視頻、自然語言理解、計算機視覺;其實,對其中任意一個領域的不斷探索都可以讓你成為該領域的“專家”。
當然,希望你不斷保持對人工智能領域技術的探索熱情,繼續閱讀更多的深度學習著作,不斷提升自己的核心技術能力,真正成為“深度學習”的行家裡手。
輔助學習材料
•Caffe官方教程中譯本
•人工智能會議論文
•本書源代碼
•本書參考文獻和全書參考資源
以上內容,我們整體打包放在了封底二維碼中,讀者可掃碼下載學習。
致謝
深度學習的原理與人的一生極為相似,都是在以不斷追求目標利益化的前提下,反復的磨練、妥協、修正、適應、取舍、優化,不斷地權衡“利弊”,不斷地折中“妥協”,不斷地在舍得中博弈決策,終實現目標效益的化。筆者希望在講解理論技術的同時,將這些人生感悟與讀者分享,給還在不斷探索與追逐夢想的讀者一些啟迪,找到屬於自己的“螺旋式上升,波浪式前進”的人生之路。
在本書的撰寫過程中,崔翛龍教授、張之明教授提出了大量寶貴建議,同時感謝碩士研究生曾子賢、彭圳生、段妍羽、王赟、張俊等做了資料整理以及文字校正工作,在此表示由衷的感謝。
感謝“武信”和“位智”團隊的小伙伴們,從你們那裡,我看到了一個充滿活力、充滿創造力,“能打仗、打勝仗”的鐵一般的隊伍。
感謝本書的所有編輯,感謝大家的辛勤勞動,是你們的支持與鼓勵纔有這本書的順利出版。
後感謝我的家人以及未來的妻子——文文,你們是我不懈奮鬥的動力。
編者
2018年4月