TensorFlow是近年來影響較大的神經網絡和深度學習平臺,《零起點TensorFlow快速入門》以生動活潑的語言,從入門者的角度,對TensorFlow進行介紹,書中包含大量簡單風趣的實際案例,如孤獨的神經元、梵高畫風等,讓廣大初學者快速掌握神經網絡的基本編程,為進一步學習人工智能奠定扎實的基礎。
推 薦 序
近日AlphaGo和柯潔的黑白大戰,因為對陣的一方是中國頂級圍棋高手柯潔,所以引起國人的高度關注。如果利用百度搜索引擎,輸入AlphaGo,可以得出7000多萬條搜索結果,遠遠高于其他熱門詞條。
事實上,AlphaGo只是Google擁有的兩套人工智能系統中的一套,是Google 2014年收購DeepMind的人工智能系統,專注于棋賽開發。Google另外一套人工智能系統就是本書介紹的TensorFlow系統。
在TensorFlow等人工智能系統出現之前,計算機所做的事情最多就是按照人類編好的既定程序,簡單重復地、按部就班地運行,沒有超越人類事先為計算機設定的思維邊界。
計算機與人類大腦相比,根本的區別在于不具備學習和創新能力。
計算機最多是記憶的信息多,重復計算的速度快,不受情緒的影響等。但是,在TensorFlow等人工智能系統出現之后,計算機所做的事情除了簡單重復運行之外,更重要的是其具備了一定的自我學習和創新能力。
TensorFlow等人工智能系統使得計算機在一定程度上能夠自主學習,自我提高,總結過去的經驗,汲取以往的教訓,具備一定的創新性。這一點從AlphaGo與柯潔對壘的3場棋局的結果中不難看出。
這正是以AlphaGo和TensorFlow為代表的人工智能系統區別于以往任何計算機技術的關鍵所在,也是為什么TensorFlow被稱為互聯網以來唯一的“黑科技”項目的原因。
具備了一定的自我學習和創造能力的人工智能系統的出現,將對經濟系統的各個領域產生重大影響。筆者有著超過20年境內外金融行業從業經歷,將從一個側面分享人工智能對金融領域的影響。
從整個金融業的歷史沿革來看,大致經歷了四個階段:純人工階段、單機電腦階段、互聯網(含移動互聯網)階段和人工智能階段。
隨著每個階段的漸次演進,提供金融服務一方的人力成本投入在逐漸減少,提供金融服務的效率在提高;對于接受金融服務的一方來說,金融服務的可獲得性以及便捷程度在逐漸增加,金融服務越來越圍繞著人進行,以人為中心的全方位的社會經濟服務體系正在形成。
金融服務體系中銀行服務、證券服務、保險服務等的內部界限開始變得模糊,金融服務與其他非金融的社會經濟服務之間的界限開始變得不清。
特別是金融業進入人工智能階段之后,人工智能系統將接受金融服務一方的身份特征數據、交易數據和行為數據等大數據,進行實時分析和動態跟蹤,以遠低于人工成本的成本,為每個人建立一個基于生命周期的綜合金融模型,對每個人未來的金融行為進行預測,自動為他們提供賬戶資金管理、貨幣兌換、證券買賣、保險購買、購房購車計劃、旅行休閑、子女教育、養老規劃等方面的金融建議和授權代理操作,并根據模型預測結果與實際情況相比對,自主學習和修正模型,以便更加貼合接受金融服務一方的真實金融意圖,使得人工智能模型的預測建議和人的實際金融行為無限接近。
由此人類將從日常繁雜的各種金融交易中解放出來,投身到更需要自己或自己更感興趣的方面去。
展望未來,人工智能的應用前景無限美好。探尋當下,人工智能在世界各地的各行各業方興未艾。
千里之行,始于足下,何海群先生的《零起點TensorFlow快速入門》是有志于人工智能領域的IT人士的一塊敲門磚和鋪路石。
祝愿人工智能在華夏大地生根發芽,開花結果。
——梁忠
何海群,網名:字王,CHRD前海智庫CTO,《中華大字庫》發明人,出版書籍20余部,在人工智能、數據分析等方面具有20年一線專業經驗;zwPython開發平臺、zwQuant量化軟件設計師,中國“Python創客”項目和“Python產業聯盟”發起人,國內**Python量化課程:《Python量化實盤·魔鬼訓練營》創始人,極寬量化開源團隊的創始人。1990年,發明國內**個VR數據手套并獲得專利授權,被業界稱為“中國VR之父”;1992年,論文《人工智能與中文字型設計》入選《廣東青年科學家文集》,現已成為中文字庫行業三大基礎建模理論之一;1997年,出版國內首部網絡經濟專著《網絡商戰》;2008年,在北京聯合創辦國內**4A級網絡公關公司,服務過200余家國際五百強企業,被公關協會譽為:中國網絡公關事業的開創者與啟蒙者;2012年,發布國內**自主研發的智能中文字庫設計軟件《x2ttf涂鴉造字》,全功能全免費公益軟件;2016年,推出國內首套純python開源量化軟件:zwQuant,以及國內**Tick級別開源金融大數據項目:zwDat金融數據包。研究成果有:“小數據”理論,快數據模型,黑天鵝算法,GPU超算工作站、MTRD多節點超算集群算法、“1+N”網絡傳播模型、人工智能“足彩圖靈法則”等。
第1章 不朽的梵高 1
1.1 星夜傳奇 1
1.2 TensorFlow簡介 3
案例1-1:星夜傳奇實戰編程 5
案例1-2:星夜傳奇批量編程 11
1.3 十萬次迭代 14
1.4 黑箱大法 16
1.5 超級KISS法則與大智若愚 17
第2章 TensorFlow安裝 22
2.1 目錄結構 22
2.2 化繁為簡 23
2.3 CPU版本安裝 25
2.4 GPU版本安裝 25
案例2-1:GPU開發環境測試 28
第3章 可視化AI圖表 33
3.1 TensorBoard可視化工具 33
案例3-1:hello,愛麗絲 34
3.1.1 TensorBoard主界面 36
3.1.2 快速啟動腳本 38
3.2 加法器 41
案例3-2:加法器的算法結構圖 41
案例3-3:加法器的變化版本 43
案例3-4:乘法器的算法結構圖 44
第4章 快速入門 47
4.1 你好,神經網絡 47
案例4-1:字符串表達式 47
案例4-2:hello,TensorFlow 48
4.2 圖運算與Session 49
案例4-3:缺省圖運算 49
案例4-4:可視化Session 52
4.3 常量、變量與占位符 56
案例4-5:常量加法 57
案例4-6:加法與占位符 58
案例4-7:加法與變量 59
4.4 TensorFlow常用數值運算 62
第5章 TensorFlow總覽 63
5.1 TensorFlow產業鏈關系圖 65
5.2 TensorFlow模塊列表 66
5.2.1 源碼目錄結構 66
案例5-1:內置模塊列表 68
5.2.2 模塊結構圖 70
5.2.3 API抽象接口示意圖 71
5.2.4 神經網絡三大模塊 71
5.3 數據類型 72
5.4 TensorFlow常用術語 73
5.5 TensorFlow簡化接口 77
第6章 基礎知識 79
6.1 數據流圖 79
6.2 設備切換Device 81
6.3 三大數據類型 82
案例6-1:變量操作 86
6.4 Feed數據提交 89
案例6-2:Feed提交數據 90
案例6-3:批量Feed提交數據 92
案例6-4:批量Feed提交多維數據 92
6.5 Fetch獲取數據 93
案例6-5:Fetch獲取數據 93
案例6-6:Fetch獲取多維數組 95
案例6-7:會話Session 97
6.6 批尺寸Batch_Size 99
第7章 孤獨的神經元 101
7.1 神經元模型 101
案例7-1:單細胞算法 102
7.2 可視化分析 107
案例7-2:單細胞算法優化版 108
第8章 歸來吧,數據 112
8.1 分類——機器學習的核心 112
8.2 萬物皆回歸 112
案例8-1:傳統機器學習 114
案例8-2:TensorFlow線性回歸模型 117
8.3 模型管理 124
案例8-3:TensorFlow模型保存 125
案例8-4:TensorFlow模型讀取 126
第9章 Pkmital入門案例套餐(上) 128
9.1 Halcon簡介 128
9.2 帕拉格?庫馬爾案例合集簡介 129
9.3 Pkmital案例集合詳解 131
9.4 TensorFlow基礎 132
案例9-1:TensorFlow基礎權重設置和圖形計算 132
案例9-2:圖像的卷積計算 140
9.5 回歸算法 145
案例9-3:線性回歸 145
案例9-4:線性回歸修正版 150
9.6 多項式回歸 151
案例9-5:多項式回歸 151
案例9-6:多項式回歸修正版 153
9.7 邏輯回歸模型 154
案例9-7:邏輯回歸模型 154
9.8 CNN卷積神經網絡算法 159
案例9-8:CNN卷積神經網絡 159
第10章 Pkmital入門案例套餐(下) 165
10.1 自編碼算法 165
案例10-1:自編碼算法 165
10.2 dAE降噪自編碼算法 170
案例10-2:dAE降噪自編碼算法 170
10.3 CAE卷積編碼算法 177
案例10-3:CAE卷積編碼算法 177
10.4 DRN深度殘差網絡 183
案例10-4:DRN深度殘差網絡 183
10.5 VAE變分自編碼算法 189
案例10-5:VAE變分自編碼算法 189
10.6 TDV聯合矩陣模型 199
第11章 TensorFlow內置案例分析 201
11.1 預備知識 202
11.2 Mnist手寫數字識別 211
案例11-1:Mnist初級案例 211
案例11-2:Mnist專業版本 215
11.3 FFNNs前饋神經網絡模型 224
案例11-3:FFNNs前饋神經網絡模型 224
第12章 TensorLayer案例分析 234
12.1 手寫識別算法 234
案例12-1:Mnist手寫識別 234
12.2 Mnist神經網絡模型合集 242
案例12-2:Dropout網絡模型 243
案例12-3:DropConnect網絡模型 253
案例12-4:dAE降噪自編碼算法1 257
案例12-5:dAE降噪自編碼算法2 260
案例12-6:CNN卷積神經網絡算法 263
第13章 TFLearn案例分析 267
13.1 生存游戲 268
13.1.1 泰坦尼克數據集 268
13.1.2 Kaggle機器學習公開賽 269
案例13-1:泰坦尼克號生存與死亡 270
13.2 線性回歸 274
案例13-2:線性回歸模型 275
13.3 模型管理 278
案例13-3:保存讀取模型數據 278
13.4 超智能體 283
案例13-4:超智能體:NOT取反運算 284
案例13-5:超智能體:OR或運算 286
案例13-6:超智能體:AND(與)運算 288
案例13-7:超智能體:XOR(異或)運算 289
13.5 CNN卷積神經網絡算法 292
案例13-8:CNN卷積神經網絡算法 292
第14章 Keras案例分析 297
14.1 Keras模型 298
14.2 Keras使用流程 299
14.3 Keras常用模塊 300
14.4 Keras模型可視化 301
案例14-1:MLP多層神經網絡 303
案例14-2:CNN卷積神經網絡 309
案例14-3:IRNN修正循環神經網絡 316
案例14-4:HRNN分層循環神經網絡 322
第15章 TensorFlow常用運行模式 327
15.1 深度學習三大要素 327
15.2 神經網絡基本結構 328
15.3 基本神經元層 329
15.4 神經網絡通用流程 335
15.5 Loss損失函數 338
15.6 TensorFlow常用優化算法 340