吳恩達深度學習課程一:神經網絡和深度學習 第二周:神經網絡基礎(二)分類與邏輯回歸
此分類用于記錄吳恩達深度學習課程的學習筆記。
課程相關信息鏈接如下:
- 原課程視頻鏈接:[雙語字幕]吳恩達深度學習deeplearning.ai
- github課程資料,含課件與筆記:吳恩達深度學習教學資料
- 課程配套練習(中英)與答案:吳恩達深度學習課后習題與答案
本周的課程以邏輯回歸為例詳細介紹了神經網絡的運行,傳播等過程,其中涉及大量機器學習的基礎知識和部分數學原理,如沒有一定的相關基礎,理解會較為困難。
因為,筆記并不直接復述視頻原理,而是從基礎開始,盡可能地創造一個較為絲滑的理解過程。
首先,經過之前的基礎補充,我們了解了關于回歸的一些概念,本篇我們便跟隨課程的順序進行學習,同樣,會補充相當一部分的相關基礎知識幫助理解。
我們以一個問題來引入,現在我們知道了回歸是什么,課程中又是用邏輯回歸為例講解,但實際上,邏輯回歸是一個分類算法。
那么問題來了,為什么一個名字叫回歸的算法實際上是用來分類的?這里的回歸算法和分類算法又到底差在哪呢?
我們以此開始本篇筆記的內容。
1.分類
1.1 什么是分類?
還是先上概念:
分類(Classification)是機器學習中的一種監督學習方法,其主要任務是將輸入的數據樣本分配到預定的類別標簽中。分類的目標是通過訓練模型,使其能夠根據輸入的特征預測一個或多個類別標簽。
結合之前我們了解的回歸的概念,不難發現,二者的差別實際上在目標輸出上:
通過數據預測房價,身高,體重等,輸出連續型數值即為回歸問題。
而通過輸入數據研判其屬于某種標簽,如輸入一張貓的圖片,輸出這張圖“是貓”或“不是貓”。
又比如輸入一段新聞文字,輸出其屬于“軍事新聞”或“娛樂新聞”等,輸出離散型結果即為分類問題。
1.2 分類是怎么實現的?
還是先回想之前提到的線性回歸,假設存在\(n\)個輸入特征的情況下,線性回歸的擬合通式如下:
再專業一些,用求和符號來表示:
不管哪種形式,又或者其他回歸算法,讓我們很輕松地理解到所謂“回歸”的都是一點:把輸入代入公式得到的 \(y\) 即為最終輸出。
不提前后的一些處理和特殊算法,把特征代入已經擬合好的函數,得到 \(y\) ,這就是預測結果,回歸核心已經結束。
那分類的離散型輸出又是如何實現的?
其中答案之前就已經出現過了,我們再回憶第一周的房價預測案例:
我們在隱藏層添加ReLU激活函數后,即可處理房屋面積和房屋價格都不可能為負數的情況。

如圖所示,我們的隱藏層計算結果經過ReLU激活函數,把所有小于等于0的結果,這些所有連續型的數值映射成離散值0,來解決實際輸出不可能小于0的問題。
再回顧一下之前對激活函數的總結:激活函數就是對輸出引入非線性的變換,提供了處理復雜能力的關系。
而現在,我們希望輸出結果可用于分類,是不是也能找到相應的激活函數呢?
答案是當然的。
我們把分類問題分為最基礎的二分類和在此之上的多分類問題,而這兩類分類問題又有其各自適用的激活函數:
- 二分類:Sigmoid 激活函數
- 多分類:Softmax 激活函數
我們先行介紹馬上就會用到的Sigmoid 激活函數,Softmax再之后遇到時再展開。
1.3 Sigmoid 激活函數怎么幫助實現二分類?
我們先來看看Sigmoid 激活函數的公式:
其圖像如下:

整合其特點如下:
- 輸出范圍:Sigmoid 的輸出范圍是 (0,1),因此可以將其結果視為概率值。
- 平滑性:Sigmoid 函數是一個平滑的 S 型曲線,隨著輸入值的增加,輸出會逐漸趨近于 1,而輸入值減小時,輸出會趨近于 0。
- 單調性:Sigmoid 函數是單調遞增的,意味著輸入越大,輸出越接近 1。
總結其作用:Sigmoid會把輸入根據大小映射到0到1之間,隨著越接近兩端,梯度也逐漸減小。
當然,也不難發現問題,我們不是要做分類嗎?為什么經過Sigmoid最后得到的還是一個數?
這便涉及到分類問題的另一概念:決策閾值,這個概念實現了從概率到分類的轉換。
1.4 決策閾值:從概率到二分類
先回看剛剛的總結的sigmoid的一條特點:
輸出范圍:Sigmoid 的輸出范圍是 (0,1),因此可以將其結果視為概率值。
在概率論中,概率值通常是一個在0到1之間的數字,用來描述某個事件發生的可能性。例如,對于一個二分類問題,我們關心的是樣本屬于某個類的概率。Sigmoid的輸出恰好滿足這個需求:
- 值接近1:輸入很大,表示事件(例如樣本屬于正類)的發生概率非常高。
- 值接近0:輸入很小,表示事件的發生概率非常低。
在二分類問題中,通常我們使用0.5作為閾值來決定類別。
即如果Sigmoid函數的輸出大于0.5,我們就預測為正類(類別1);如果小于0.5,則預測為負類(類別0)。這個0.5閾值本質上表示模型認為正負類的概率相等,我們也可以根據任務情境手動設置閾值。
由此,我們便用sigmoid幫助實現了二分類,理解了這個過程之后,我們終于可以開始提及已久的邏輯回歸了。
2. 二分類實例:是不是貓
這一部分實際上是對2.1內容的系統闡述,記錄一些常見的參數表示,便于之后使用和理解。
在了解二分類的一些原理后,我們看這樣一個問題,輸入一幅圖像,我們要判斷圖像中是不是貓。

如上圖所示,首先,我們要知道圖像在計算機中的模樣。
一幅彩色圖像在計算機中被理解為紅,綠,藍三個通道,即用三個相同大小的矩陣表示一幅圖像,其中,每個元素在0~255之間,表示該像素在該通道上的亮度。
這里,我們設定每幅圖像大小為:64*64
為此,如果我們要用特征向量表示一幅圖像,這個特征向量的維度大小就應該為:64*64*3=12288
我們用 \(n_{x}\) 或者直接用 \(n\) 來表示特征向量的維度大小。
現在,一個數據集(數據的集合,比如這里是貓的圖像和相應的標簽)中用于訓練的樣本有\(m\)
個,有時候為了強調,會用\(m_{train}\)表示訓練集數量,用\(m_{test}\)表示測試集數量作區分。
而對于一個包含數據和標簽的樣本,我們寫作\((x,y)\)
其中:
\(x \in \mathbb{R}^n\),\(\mathbb{R}^n\) 表示 n維實數空間。它是一個包含所有 n維實數向量 的空間,用來表示具有 n個實數特征 的數據點。
在 \(\mathbb{R}^n\) 中,向量 \(\mathbf{x}\) 是一個 \(n\) 維的列向量,表示為:
同時,\(y \in \{0, 1\}\) ,代表是貓或者不是貓。
而對于某個具體的樣本則這樣表示:第一個樣本 \((x^{(1)},y^{(1)})\) 第二個 \((x^{(2)},y^{(2)})\) 依此類推。
最后,我們定義一個矩陣 \(X\) 來表示訓練集數據,其內容為
根據之前的符號表示,可知,這個矩陣有 \(m\) 列, \(n\) 行。
同理,用 \(Y\) 表示訓練集標簽,這個矩陣有 \(m\) 列, \(1\) 行。
3.邏輯回歸
經過較長的理解過程,邏輯回歸算法其實已經呼之欲出了,我們先擺兩個之前出現的公式。
現在我們看下面的邏輯回歸公式:
沒錯,邏輯回歸就是將線性回歸的結果輸入sigmoid激活函數得到最終輸出后通過決策閾值確定分類。
簡潔一些: 邏輯回歸=線性回歸+sigmoid激活函數
現在來解釋一下公式里的一些參數:
- \(\hat y\) 代表 \(y\) 的預測值。
- \(P(y = 1 \mid \mathbf{x})\)是條件概率的表示,意思是給定特征向量 \(x\) 的情況下,目標變量 \(y\) 等于 1 的概率。
- \((\mathbf{w}^T \mathbf{x} + b)=w_1 x_1 + w_2 x_2 + \dots + w_n x_n + b\) ,這里的 \(w\) 是權重向量, 上標 \(T\) 代表轉置,\(\mathbf{w}^T \mathbf{x}\) 即為權重向量和特征向量的點積,是將所有特征加權求和。\(b\) 為偏置。
這樣,我們便了解了邏輯回歸本身。而擬合,實際上便是不斷調整 \(w\) 和 \(b\) 的過程。
至于如何調整,這便涉及到了神經網絡的一個傳播過程,這便是下面的篇章內容了。
最后,既然是分類算法,為什么邏輯回歸不叫邏輯分類呢,根據本篇內容答案也有了大致方向:
邏輯回歸本質上是一個 分類模型,而它名字中的“回歸”源于其與線性回歸的相似性,尤其是它依賴于線性加權和的框架。它通過將線性回歸的輸出經過 sigmoid 函數的變換,來輸出一個介于0和1之間的概率值,用于判斷樣本屬于某一類的概率。因此,盡管邏輯回歸最終用于分類,但它保留了“回歸”的名稱。

浙公網安備 33010602011771號