## 前言一
由于計算,海量數據存儲和互聯網技術等關鍵領域的共同發展,機器學習領域呈現了巨大的發展。許多人的日常生活中的許多技術和事件,直接或間接地受到自動學習的影響。語音識別,手機上的圖像分類或垃圾郵件檢測等技術的例子,使得一些應用成為可能,它們只出現在十年前科幻小說中。股票市場模型或醫療模型中的學習的使用,對我們的社會產生了巨大的影響。此外,具有巡航控制,無人機和各種機器人的汽車將在不久的將來影響社會。
深度學習是機器學習的一個子類型,自 2006 年重新發現以來,無疑是爆發性擴張的領域之一。事實上,硅谷的許多創業公司都專注于此,而谷歌,Facebook,微軟或 IBM 等大型科技公司都有開發和研究團隊。深度學習甚至引起了大學之外和研究領域的興趣:許多專業雜志(如 Wired)甚至是通用雜志(如紐約時報,Bloomberg 或 BBC)為這個主題撰寫了很多文章。
這種興趣促使許多學生,企業家和投資者加入深度學習。由于產生的所有興趣,幾個軟件包已被制作成“開源”的。作為庫的主要推動者之一,我們在 2012 年作為博士生在伯克利(Caffe)開發了它。我可以說,TensorFlow 將成為研究人員和中小企業公司用于實現他們的深度學習和機器學習的想法的主要工具之一,它出現在本書中并由 Google(加州)設計,我自 2013 年以來一直在那里研究它。對此的保證是參與該項目的工程師和頂尖研究人員的數量,它最終得到了開源。
我希望這本入門書能夠幫助有興趣在這個非常有趣的領域開始冒險的讀者。我要感謝作者,我很高興了解到它傳播這項技術的努力。在開源項目發布兩個月后,他在創紀錄的時間內寫了這本書(首先是西班牙語版本)。這是巴塞羅那活力的另一個例子,它有興趣成為這一技術場景中的參與者之一,無疑將影響我們的未來。
Oriol Vinyals,Google Brain 的研究科學家
## 前言二
> 教育是你用來改變世界的最有力的武器。
>
> Nelson Mandela
本書的目的是有助于將這些知識轉播給工程師,它們希望在激動人心的機器學習世界中擴展智慧。我相信任何具有工程背景的人都可能會發現,深度學習和機器學習的應用對他們的工作很有價值。
鑒于我的背景,讀者可能會想知道為什么我提出了編寫這種新的深度學習技術的挑戰。我的研究重點是逐步從超級計算架構和運行時轉向大數據工作負載的執行中間件,最近轉向大規模數據的機器學習平臺。
正是作為一名工程師,而不是數據科學家,我認為我可以為這一主題貢獻這種介紹性的方法,并且它對早期階段的許多工程師都有幫助;然后他們會選擇深入了解他們的需求。
我希望這本書能為這個我非常喜愛的教育世界增添一些價值。我認為知識就是解放,應該讓所有人都能獲得。因此,本書的內容將在網站 [www.JordiTorres.eu/TensorFlow](http://www.jorditorres.eu/TensorFlow) 上完全免費提供。如果讀者發現內容有用并認為適當補償作者的寫作,網站上有一個標簽可以用于捐贈。另一方面,如果讀者更喜歡選擇紙質副本,你可以通過 Amazon.com 購買該書。
本書還提供西班牙語版本。事實上,這本書是西班牙語的翻譯,該書于去年 1 月完成,并在 GEMLeB Meetup(Grup d'Estudi de Machine Learning de Barcelona)中展示,我是其中一個共同組織者。
感謝你閱讀本書!它使我感到安慰,并證明了我寫作的努力。那些了解我的人,知道技術傳播是我的激情之一。它激勵我繼續學習。
Jordi Torres,2016 年 2 月
## 一種實用的方法
> 告訴我,我會忘記。教我,我會記得。讓我參與,我會學習。
>
> 本杰明·富蘭克林
深度學習的一個常見應用包括模式識別。因此,當你開始編程時,有個傳統是打印“Hello World”,與它相同,在深度學習中,通常構造用于識別手寫數字的模型 [1]。我將提供的第一個神經網絡示例,也將允許我介紹這種名為 TensorFlow 的新技術。
但是,我不打算寫一本關于機器學習或深度學習的研究書籍,我只想盡快為每個人提供這個新的機器學習軟件包 TensorFlow。因此,我向我的數據科學家們道歉,為了與普通讀者分享這些知識,我允許自己進行某些簡化。
讀者會在這里找到我在課堂上使用的常規結構;這會邀請你在學習的同時使用計算機的鍵盤。我們稱之為“從實踐中學習”,而我作為 UPC 教授的經歷告訴我,這種方法對于嘗試開始新主題的工程師來說非常有效。
出于這個原因,這本書具有實用性,因此我盡可能地減少了理論部分。然而,當學習過程需要時,文本中已包含某些數學細節。
我假設讀者對機器學習有一些基本的理解,所以我將使用一些流行的算法逐步組織讀者在 TensorFlow 中的訓練。
在第一章中,除了介紹TensorFlow將扮演重要角色的場景之外,我還借此機會解釋TensorFlow程序的基本結構,并簡要解釋它在內部維護的數據。
在第二章中,通過線性回歸的一個例子,我將介紹一些代碼基礎知識,同時,如何調用學習過程中的各種重要組件,如損失函數或梯度下降優化算法。
在第三章中,我展示了一個聚類算法,我將詳細介紹 TensorFlow 的基本數據結構,稱為`tensor`(張量),以及 TensorFlow 包提供的用于創建和管理張量的不同類和函數。
第四章詳細介紹了如何構建識別手寫數字的單層神經網絡。這將允許我們歸納上面提出的所有概念,以及查看創建和測試模型的整個過程。
下一章首先介紹基于前一章中所見的神經網絡概念,并介紹如何構建多層神經網絡來獲得更好的手寫數字識別結果。它將更詳細地介紹所謂的卷積神經網絡。
在第六章中,我們將討論一個更具體的問題,利用 GPU 提供的計算能力,可能不是所有讀者都感興趣。如第 1 章所述,GPU 在神經網絡的訓練過程中發揮著重要作用。
本書以后記結束,其中我強調了一些結論。我想強調的是,本書中的代碼示例可以從本書 [2] 的 github 倉庫下載。
- TensorFlow 1.x 深度學習秘籍
- 零、前言
- 一、TensorFlow 簡介
- 二、回歸
- 三、神經網絡:感知器
- 四、卷積神經網絡
- 五、高級卷積神經網絡
- 六、循環神經網絡
- 七、無監督學習
- 八、自編碼器
- 九、強化學習
- 十、移動計算
- 十一、生成模型和 CapsNet
- 十二、分布式 TensorFlow 和云深度學習
- 十三、AutoML 和學習如何學習(元學習)
- 十四、TensorFlow 處理單元
- 使用 TensorFlow 構建機器學習項目中文版
- 一、探索和轉換數據
- 二、聚類
- 三、線性回歸
- 四、邏輯回歸
- 五、簡單的前饋神經網絡
- 六、卷積神經網絡
- 七、循環神經網絡和 LSTM
- 八、深度神經網絡
- 九、大規模運行模型 -- GPU 和服務
- 十、庫安裝和其他提示
- TensorFlow 深度學習中文第二版
- 一、人工神經網絡
- 二、TensorFlow v1.6 的新功能是什么?
- 三、實現前饋神經網絡
- 四、CNN 實戰
- 五、使用 TensorFlow 實現自編碼器
- 六、RNN 和梯度消失或爆炸問題
- 七、TensorFlow GPU 配置
- 八、TFLearn
- 九、使用協同過濾的電影推薦
- 十、OpenAI Gym
- TensorFlow 深度學習實戰指南中文版
- 一、入門
- 二、深度神經網絡
- 三、卷積神經網絡
- 四、循環神經網絡介紹
- 五、總結
- 精通 TensorFlow 1.x
- 一、TensorFlow 101
- 二、TensorFlow 的高級庫
- 三、Keras 101
- 四、TensorFlow 中的經典機器學習
- 五、TensorFlow 和 Keras 中的神經網絡和 MLP
- 六、TensorFlow 和 Keras 中的 RNN
- 七、TensorFlow 和 Keras 中的用于時間序列數據的 RNN
- 八、TensorFlow 和 Keras 中的用于文本數據的 RNN
- 九、TensorFlow 和 Keras 中的 CNN
- 十、TensorFlow 和 Keras 中的自編碼器
- 十一、TF 服務:生產中的 TensorFlow 模型
- 十二、遷移學習和預訓練模型
- 十三、深度強化學習
- 十四、生成對抗網絡
- 十五、TensorFlow 集群的分布式模型
- 十六、移動和嵌入式平臺上的 TensorFlow 模型
- 十七、R 中的 TensorFlow 和 Keras
- 十八、調試 TensorFlow 模型
- 十九、張量處理單元
- TensorFlow 機器學習秘籍中文第二版
- 一、TensorFlow 入門
- 二、TensorFlow 的方式
- 三、線性回歸
- 四、支持向量機
- 五、最近鄰方法
- 六、神經網絡
- 七、自然語言處理
- 八、卷積神經網絡
- 九、循環神經網絡
- 十、將 TensorFlow 投入生產
- 十一、更多 TensorFlow
- 與 TensorFlow 的初次接觸
- 前言
- 1.?TensorFlow 基礎知識
- 2. TensorFlow 中的線性回歸
- 3. TensorFlow 中的聚類
- 4. TensorFlow 中的單層神經網絡
- 5. TensorFlow 中的多層神經網絡
- 6. 并行
- 后記
- TensorFlow 學習指南
- 一、基礎
- 二、線性模型
- 三、學習
- 四、分布式
- TensorFlow Rager 教程
- 一、如何使用 TensorFlow Eager 構建簡單的神經網絡
- 二、在 Eager 模式中使用指標
- 三、如何保存和恢復訓練模型
- 四、文本序列到 TFRecords
- 五、如何將原始圖片數據轉換為 TFRecords
- 六、如何使用 TensorFlow Eager 從 TFRecords 批量讀取數據
- 七、使用 TensorFlow Eager 構建用于情感識別的卷積神經網絡(CNN)
- 八、用于 TensorFlow Eager 序列分類的動態循壞神經網絡
- 九、用于 TensorFlow Eager 時間序列回歸的遞歸神經網絡
- TensorFlow 高效編程
- 圖嵌入綜述:問題,技術與應用
- 一、引言
- 三、圖嵌入的問題設定
- 四、圖嵌入技術
- 基于邊重構的優化問題
- 應用
- 基于深度學習的推薦系統:綜述和新視角
- 引言
- 基于深度學習的推薦:最先進的技術
- 基于卷積神經網絡的推薦
- 關于卷積神經網絡我們理解了什么
- 第1章概論
- 第2章多層網絡
- 2.1.4生成對抗網絡
- 2.2.1最近ConvNets演變中的關鍵架構
- 2.2.2走向ConvNet不變性
- 2.3時空卷積網絡
- 第3章了解ConvNets構建塊
- 3.2整改
- 3.3規范化
- 3.4匯集
- 第四章現狀
- 4.2打開問題
- 參考
- 機器學習超級復習筆記
- Python 遷移學習實用指南
- 零、前言
- 一、機器學習基礎
- 二、深度學習基礎
- 三、了解深度學習架構
- 四、遷移學習基礎
- 五、釋放遷移學習的力量
- 六、圖像識別與分類
- 七、文本文件分類
- 八、音頻事件識別與分類
- 九、DeepDream
- 十、自動圖像字幕生成器
- 十一、圖像著色
- 面向計算機視覺的深度學習
- 零、前言
- 一、入門
- 二、圖像分類
- 三、圖像檢索
- 四、對象檢測
- 五、語義分割
- 六、相似性學習
- 七、圖像字幕
- 八、生成模型
- 九、視頻分類
- 十、部署
- 深度學習快速參考
- 零、前言
- 一、深度學習的基礎
- 二、使用深度學習解決回歸問題
- 三、使用 TensorBoard 監控網絡訓練
- 四、使用深度學習解決二分類問題
- 五、使用 Keras 解決多分類問題
- 六、超參數優化
- 七、從頭開始訓練 CNN
- 八、將預訓練的 CNN 用于遷移學習
- 九、從頭開始訓練 RNN
- 十、使用詞嵌入從頭開始訓練 LSTM
- 十一、訓練 Seq2Seq 模型
- 十二、深度強化學習
- 十三、生成對抗網絡
- TensorFlow 2.0 快速入門指南
- 零、前言
- 第 1 部分:TensorFlow 2.00 Alpha 簡介
- 一、TensorFlow 2 簡介
- 二、Keras:TensorFlow 2 的高級 API
- 三、TensorFlow 2 和 ANN 技術
- 第 2 部分:TensorFlow 2.00 Alpha 中的監督和無監督學習
- 四、TensorFlow 2 和監督機器學習
- 五、TensorFlow 2 和無監督學習
- 第 3 部分:TensorFlow 2.00 Alpha 的神經網絡應用
- 六、使用 TensorFlow 2 識別圖像
- 七、TensorFlow 2 和神經風格遷移
- 八、TensorFlow 2 和循環神經網絡
- 九、TensorFlow 估計器和 TensorFlow HUB
- 十、從 tf1.12 轉換為 tf2
- TensorFlow 入門
- 零、前言
- 一、TensorFlow 基本概念
- 二、TensorFlow 數學運算
- 三、機器學習入門
- 四、神經網絡簡介
- 五、深度學習
- 六、TensorFlow GPU 編程和服務
- TensorFlow 卷積神經網絡實用指南
- 零、前言
- 一、TensorFlow 的設置和介紹
- 二、深度學習和卷積神經網絡
- 三、TensorFlow 中的圖像分類
- 四、目標檢測與分割
- 五、VGG,Inception,ResNet 和 MobileNets
- 六、自編碼器,變分自編碼器和生成對抗網絡
- 七、遷移學習
- 八、機器學習最佳實踐和故障排除
- 九、大規模訓練
- 十、參考文獻