跳至主要内容

Neural Networks and Deep Learning

在《Neural Networks and Deep Learning》中,我們將學習深度學習的基礎:瞭解深度學習的主流技術、能夠構建、訓練和應用 fully-connected 的深度神經網路 (DNN)、瞭解如何實現向量化神經網路以及了解神經網路架構的關鍵參數,這也是深度學習必修的第一堂課!

Overview

📄️ 1 - Introduction

這個章節會介紹 Neural Network 的概念,並且深入探討為什麼 Deep Learning 正在如此火熱,以及他可以應用在那些資料上。Deep Learning 的應用不只是限於 Structured Data,也可以應用在 Audio、Image 以及 Raw Text 這些 Unstructured Data 上。因此,Deep Learning 可以更有效的分析資料,並得到更加准確的結果。另外, Deep Learning 還受益於三個方面:資料、運算以及演算法。由於資料的數量不斷增加,傳統的學習演算法已經無法能夠滿足應用的需求,而 Deep Learning 則可以透過不斷的擴大網路架構及資料來提升效能。同時,硬體的發展也讓 Deep Learning 的應用可以更加廣泛。

📄️ 2 - Logistic Regression as a NN

這篇文章將介紹如何將 Logistic Regression 抽象化為一個 Neural Network 。我們將以一個 Binary Classification 的問題來說明,藉由 Neural Network 來辨別一張 64x64 的圖片是否是貓。我們會定義一個 Loss Function 來作為 training set 的誤差,並且將所有的 training sets 集合形成 Cost Function,再利用 Gradient Descent 來優化參數,以達到最小化 Cost Function。最後我們會介紹如何利用 Computation Graph 來加速參數的更新,以及 Backpropogation 的運算細節。

📄️ 4 - Shallow Neural Network

Shallow Neural Network 指的是只有幾層 (2 層或以下) 的神經網路 (Neural Network)。它們只有輸入層 (input layer) 和輸出層 (output layer),通常在中間有一層隱藏層 (hidden layer)。它們常用於一些簡單的機器學習任務,例如垃圾郵件分類,激活函數 (activation function) 通常會用 Sigmoid、Tanh 或 ReLU 來替代線性激活函數。激活函數是一種用於增強神經網路計算能力的函數,為了能夠計算 gradient descent (backpropogation),需要知道每個 activation function 的導數為何,比如 Sigmoid、Tanh、ReLU 和 Leaky ReLU,其導數可以用微分技巧來計算。此外,為了避免所有 weight 初始化全部為 0 的問題,我們會使用隨機取值來初始化 weights。