官术网_书友最值得收藏!

前言

能夠透過現象看本質,通過結果分析原因,這是人類擁有智能的主要表現。現象和結果就展現在我們面前,是顯式(Explicit)的,很容易獲取;本質和原因藏在它們身后,是隱式(Implicit)的,不容易被發現。深度學習就是一門這樣的科學,它試圖以人工神經網絡(Artificial Neural Network,ANN)為工具,揭示網絡參數與樣本之間的本質關系。但在這樣做之前,我們有必要理解什么是梯度下降法(GD)和反向傳播算法(BP)。它們是揭示上述關系的關鍵,是本書從第2章開始所有內容的核心。梯度概念來源于微分和偏導,所以讀者需要擁有一定的微積分的知識。最起碼,需要知道什么是切線和切線的斜率,以及如何計算偏導。

也許這并不是一個很高的要求,但作為計算機專業的科研和教育工作者,我們深感很多大學生并不是沒有學習理論,而是不會在實踐中使用理論。例如,學了微積分,卻不知道能派什么用場;學了編譯原理,以為只有在開發編譯系統中才有用。可是,你知道嗎?這些理論在深度學習中卻很重要。

所以,學以致用是本書的宗旨。本書不僅要講理論和理論的實質,還要講如何用代碼實現這些理論。讀者需要一邊看書,一邊在計算機上動手編程,同時提高自己的理論水平和動手能力。

提到計算機理論和數學原理,可能有些讀者心里會打退堂鼓。其實,計算機理論和數學原理是用來指導我們工作的,能夠幫助我們更輕松地完成深度學習編程任務。它們都是為“懶人”服務的,也是像我一樣的“懶人”發明的。因為懶得應付程序設計或者軟件開發過程中千變萬化的復雜情況,我們就從其中提煉、抽象出了一些固定不變的東西,這些就是計算機理論和數學原理。所以,如果你想有技巧地偷懶,就學習計算機理論和數學原理吧,它會給你打開一個新天地,讓你從一個更高的角度看深度學習、人工智能和程序設計。

所以,盡管本書的確會用到Python編程和人工智能框架Tensorflow(TF),也會講解部分具體的語法和約定,但是都不是重點。重點是問題分解方法、遞歸的實質、梯度下降法、反向傳播原理、三層神經網絡、模型的結構和訓練方法以及梯度分析。Python和TF不過是實現它們的工具。如果愿意,你也可以使用其他語言或者其他框架。

本書的目的是提高讀者對深度學習基礎理論的深刻理解。對很多基礎性理論、數學、方法和算法的理解,例如面向對象、梯度、遞歸程序設計方法、數的進制等,都是編者30年來從事計算機科學理論研究和教學工作經驗的總結。對讀者來說,學習這些經驗的價值可能超過了學習深度學習本身。

本書用到的Python版本為3.5以上,Tensorflow版本為1.9.0~1.14.0。由于TF框架還在飛速更新中,所以不要奇怪可能有些代碼不能在你的機器上運行。我們建議把TF的版本設置在上述版本范圍之內,或者上網搜索一下怎么做。

雖然本書已經提供了所有的代碼,但建議讀者一開始不要看代碼,而是跟隨本書一行一行地手寫代碼,這對學習深度學習是有很大好處的。如果程序總是出錯,卻又找不到原因,這時才有必要下載代碼,然后運行看看結果如何。

請讀者先安裝好PyCharm社區版或以上版本,這是我們的集成開發環境。最好準備一個GPU,否則單GPU和多GPU訓練就無法學習。書中用到的包主要是numpy和GPU版的Tensorflow,這些包可以通過pip安裝。

本書寫作過程中得到了李珂、趙昕、雷璐丹、潘志銳、權甲和吳鵬輝等人的大力協助,謝謝你們!

讓我們從五猴分桃問題開始,一步一步地開啟奇妙的深度學習之旅吧。

編者

關注本微信公眾號

回復“深度學習”下載配套資源

主站蜘蛛池模板: 增城市| 固原市| 平果县| 乐昌市| 郓城县| 措美县| 长沙县| 新密市| 广平县| 平泉县| 襄樊市| 镶黄旗| 常熟市| 宜春市| 衡山县| 璧山县| 岳普湖县| 安康市| 永川市| 元谋县| 凤庆县| 怀宁县| 临洮县| 高淳县| 资兴市| 临海市| 玉环县| 鹤庆县| 洛扎县| 互助| 扎鲁特旗| 芦溪县| 余干县| 阿勒泰市| 资中县| 巨鹿县| 湘乡市| 吐鲁番市| 黄山市| 昆山市| 永修县|