# 介紹
神經網絡目前在諸如圖像和語音識別,閱讀手寫,理解文本,圖像分割,對話系統,自動駕駛汽車等任務中打破記錄。雖然這些上述任務中的一些將在后面的章節中介紹,但重要的是將神經網絡作為一種易于實現的機器學習算法引入,以便我們以后可以對其進行擴展。
神經網絡的概念已經存在了幾十年。然而,它最近才獲得牽引力,因為我們現在具有訓練大型網絡的計算能力,因為處理能力,算法效率和數據大小的進步。
神經網絡基本上是應用于輸入數據矩陣的一系列操作。這些操作通常是加法和乘法的集合,然后是非線性函數的應用。我們已經看到的一個例子是邏輯回歸,我們在[第 3 章](../Text/20.html),線性回歸中看到了這一點。邏輯回歸是部分斜率 - 特征乘積的總和,其后是應用 S 形函數,這是非線性的。神經網絡通過允許操作和非線性函數的任意組合(包括絕對值,最大值,最小值等的應用)來進一步概括這一點。
神經網絡的重要技巧稱為反向傳播。反向傳播是一種允許我們根據學習率和損失函數輸出更新模型變量的過程。我們使用反向傳播來更新[第 3 章](../Text/20.html),線性回歸和[第 4 章](../Text/30.html),支持向量機中的模型變量。
關于神經網絡的另一個重要特征是非線性激活函數。由于大多數神經網絡只是加法和乘法運算的組合,因此它們無法對非線性數據集進行建模。為了解決這個問題,我們在神經網絡中使用了非線性激活函數。這將允許神經網絡適應大多數非線性情況。
重要的是要記住,正如我們在許多算法中所看到的,神經網絡對我們選擇的超參數敏感。在本章中,我們將探討不同學習率,損失函數和優化程序的影響。
> 學習神經網絡的資源更多,更深入,更詳細地涵蓋了該主題。這些資源如下:
* 描述反向傳播的開創性論文是 Yann LeCun 等人的 Efficient Back Prop。人。 PDF 位于: [http://yann.lecun.com/exdb/publis/pdf/lecun-98b.pdf](http://yann.lecun.com/exdb/publis/pdf/lecun-98b.pdf) 。
* CS231,用于視覺識別的卷積神經網絡,由斯坦福大學提供。這里有類資源: [http://cs231n.stanford.edu/](http://cs231n.stanford.edu/) 。
* CS224d,斯坦福大學自然語言處理的深度學習。這里有類資源: [http://cs224d.stanford.edu/](http://cs224d.stanford.edu/) 。
* 深度學習,麻省理工學院出版社出版的一本書。 Goodfellow 等。人。 2016.這本書位于: [http://www.deeplearningbook.org](http://www.deeplearningbook.org) 。
* 邁克爾·尼爾森(Michael Nielsen)有一本名為“神經網絡與深度學習”的在線書籍,該書位于: [http://neuralnetworksanddeeplearning.com/](http://neuralnetworksanddeeplearning.com/) 。
* 對于一個更實用的方法和神經網絡的介紹,Andrej Karpathy 用 JavaScript 實例寫了一個很棒的總結,稱為 A Hacker 的神經網絡指南。該文件位于: [http://karpathy.github.io/neuralnets/](http://karpathy.github.io/neuralnets/) 。
* 另一個總結深度學習的網站被 Ian Goodfellow,Yoshua Bengio 和 Aaron Courville 稱為初學者深度學習。網頁可以在這里找到: [http://randomekek.github.io/deep/deeplearning.html](http://randomekek.github.io/deep/deeplearning.html) 。
- TensorFlow 入門
- 介紹
- TensorFlow 如何工作
- 聲明變量和張量
- 使用占位符和變量
- 使用矩陣
- 聲明操作符
- 實現激活函數
- 使用數據源
- 其他資源
- TensorFlow 的方式
- 介紹
- 計算圖中的操作
- 對嵌套操作分層
- 使用多個層
- 實現損失函數
- 實現反向傳播
- 使用批量和隨機訓練
- 把所有東西結合在一起
- 評估模型
- 線性回歸
- 介紹
- 使用矩陣逆方法
- 實現分解方法
- 學習 TensorFlow 線性回歸方法
- 理解線性回歸中的損失函數
- 實現 deming 回歸
- 實現套索和嶺回歸
- 實現彈性網絡回歸
- 實現邏輯回歸
- 支持向量機
- 介紹
- 使用線性 SVM
- 簡化為線性回歸
- 在 TensorFlow 中使用內核
- 實現非線性 SVM
- 實現多類 SVM
- 最近鄰方法
- 介紹
- 使用最近鄰
- 使用基于文本的距離
- 使用混合距離函數的計算
- 使用地址匹配的示例
- 使用最近鄰進行圖像識別
- 神經網絡
- 介紹
- 實現操作門
- 使用門和激活函數
- 實現單層神經網絡
- 實現不同的層
- 使用多層神經網絡
- 改進線性模型的預測
- 學習玩井字棋
- 自然語言處理
- 介紹
- 使用詞袋嵌入
- 實現 TF-IDF
- 使用 Skip-Gram 嵌入
- 使用 CBOW 嵌入
- 使用 word2vec 進行預測
- 使用 doc2vec 進行情緒分析
- 卷積神經網絡
- 介紹
- 實現簡單的 CNN
- 實現先進的 CNN
- 重新訓練現有的 CNN 模型
- 應用 StyleNet 和 NeuralStyle 項目
- 實現 DeepDream
- 循環神經網絡
- 介紹
- 為垃圾郵件預測實現 RNN
- 實現 LSTM 模型
- 堆疊多個 LSTM 層
- 創建序列到序列模型
- 訓練 Siamese RNN 相似性度量
- 將 TensorFlow 投入生產
- 介紹
- 實現單元測試
- 使用多個執行程序
- 并行化 TensorFlow
- 將 TensorFlow 投入生產
- 生產環境 TensorFlow 的一個例子
- 使用 TensorFlow 服務
- 更多 TensorFlow
- 介紹
- 可視化 TensorBoard 中的圖
- 使用遺傳算法
- 使用 k 均值聚類
- 求解常微分方程組
- 使用隨機森林
- 使用 TensorFlow 和 Keras