深度學習-數學基礎
前言
目前主要有兩種<b>度量模型深度</b>的方式。第一種方式是基於評估架構所需執行的順序指令的數目。假設我們將模型表示為給定輸入後,計算對應輸出的流程圖,則可以將這張流程圖中的最長路徑視為模型的深度。另一種是在深度概率模型中使用的方法,它不是將計算圖的深度視為模型深度,而是將描述概念彼此如何關聯的圖的深度視為模型深度。在這種情況下,計算每個概念表示的計算流程圖的深度可能比概念本身的圖更深。這是因為系統對較簡單概念的理解在給出更復雜概念的資訊後可以進一步精細化
目前大多數神經網路是基於一個稱為<b>整流線性單元(rectified linear unit)</b>的神經單元模型。在 20 世紀 80 年代,神經網路研究的第二次浪潮在很大程度上是伴隨一個被稱為<b>聯結主義(connectionism)</b>或<b>並行分佈處理 ( parallel distributed processing)</b> 潮流而出現的。聯結主義的中心思想是,當網路將大量簡單的計算單元連線在一起時可以實現智慧行為
聯結主義中的幾個關鍵概念在今天的深度學習中仍然是非常重要的
其中一個概念是<b>分散式表示</b>(distributed representation)。其思想是:系統的每一個輸入都應該由多個特徵表示,並且每一個特徵都應該參與到多個可能輸入的表示。即:可以將某一個具體的輸入物件的各個組成元素抽象為多個特徵,然後這多個特徵就能夠很好的描述該物體的特點或性質
聯結主義潮流的另一個重要成就是<b>反向傳播</b>在訓練具有內部表示的深度神經網路中的成功使用以及反向傳播演算法的普及
線性代數基礎
<b>轉置</b>
<b>乘積</b>
矩陣乘積擁有的<b>性質</b>
<b>分配律</b>
<b>結合律</b>
<font color=red>矩陣乘積不滿足交換律</font>
兩個相同維數的向量 x 和 y 的 <b>點積</b>(dot product)可看作是矩陣乘積
兩個向量的點積滿足交換律
矩陣乘積的轉置
由兩個向量點積的結果是標量,標量轉置是自身,可以得到
<b>單位矩陣</b>(identity matrix): 任意向量和單位矩陣相乘,都不會改變。將保持 n 維向量不變的單位矩陣記作 。形式上,
單位矩陣的結構很簡單:所有沿主對角線的元素都是 1,而所有其他位置的元素都是0
,定義為
等式 ,求解可得
如果
存在,那麼該方程對於每一個向量
恰好存在一個解。但是,對於方程組而言,對於向量
的某些值,有可能不存在解,或者存在無限多個解。存在多於一個解但是少於無限多個解的情況是不可能發生的。因為如果
都是解,那麼
也是一個解
一組向量的 <b>生成子空間</b>(span)是原始向量線性組合後所能抵達的點的集合。確定 是否有解相當於確定向量
是否在
列向量的生成子空間中。這個特殊的生成子空間被稱為
的 <b>列空間</b>(column space)或者
的 <b>值域</b>(range)
為
列空間維度,
為
的維度,使方程對每一點都有解的必要條件是
。這不是一個充分條件,因為有些列向量可能是冗餘的。這種冗餘被稱為 <b>線性相關</b>(linear dependence)。如果一組向量中的任意一個向量都不能表示成其他向量的線性組合,那麼這組向量稱為 <b>線性無關</b>(linearly independent)。所以,如果一個矩陣的列空間涵蓋整個
,那麼該矩陣必須包含至少一組
個線性無關的向量,其中
。這是對於任意
的取值都有解的充分必要條件
不存在一個 維向量的集合具有多於
個彼此線性不相關的列向量,但是一個有多於
個列向量的矩陣有可能擁有不止一個大小為
的線性無關向量集
要想使矩陣可逆,需要保證式子 對於每一個
值至多由一個解。為此,需要確保該矩陣至多有 m 個列向量。否則,該方程會有不止一個解
要想使用 求得
,必須保證一個
是一個<b>方陣</b>(square),即 m = n,並且所有列向量都是線性無關的。一個列向量線性相關的方陣被稱為 <b>奇異的</b>(singular)。如果矩陣
不是一個方陣或者是一個奇異的方陣,該方程仍然可能有解。但是不能使用矩陣逆去求解
對於方陣而言,它的左逆和右逆是相等的
範數定義如下
範數是將向量對映到非負值的函式。直觀上來說,向量 的範數衡量從原點到點
的距離。範數是滿足下列性質的任意函式
範數被稱為 <b>歐幾里得範數</b>(Euclidean norm)。它表示從原點出發到向量
確定的點的歐幾里得距離。平方
範數也經常用來衡量向量的大小,可以簡單地通過點積
計算
平方 範數在數學和計算上都比
範數本身更方便。但是在很多情況下,平方
範數也可能不受歡迎,因為它在原點附近增長得十分緩慢。在某些機器學習應用中,區分恰好是零的元素和非零但值很小的元素是很重要的。在這些情況下,我們轉而使用在各個位置斜率相同,同時保持簡單的數學形式的函式:
範數
當機器學習問題中零和非零元素之間的差異非常重要時,通常會使用 範數。每當
中某個元素從 0 增加
,對應的
範數也會增加
範數,也被稱為 <b>最大範數</b>(max norm)。這個範數表示向量中具有最大幅值的元素的絕對值
有時候我們可能也希望衡量矩陣的大小。在深度學習中,最常見的做法是使用 <b>Frobenius 範數</b>(Frobenius norm)
兩個向量的 <b>點積</b>(dot product)可以用範數來表示,如
其中, 為向量
之間的夾角
<b>對角矩陣</b>(diagonal matrix)只在主對角線上含有非零元素,其他位置都是零。用 表示一個對角元素由向量
中元素給定的對角方陣。對角方陣的逆矩陣存在,當且僅當對角元素都是非零值,在這種情況下,
不是所有的對角矩陣都是方陣。長方形的矩陣也有可能是對角矩陣。非方陣的對角矩陣沒有逆矩陣,但我們仍然可以高效地計算它們的乘法。對於一個長方形對角矩陣 而言,乘法
會涉及到
中每個元素的縮放,如果
是瘦長型矩陣,那麼在縮放後的末尾新增一些零;如果
是胖寬型矩陣,那麼在縮放後去掉最後一些元素
<b>對稱</b>(symmetric)矩陣是轉置和自己相等的矩陣,即
<b>單位向量</b>(unit vector)是具有 <b>單位範數</b>(unit norm)的向量,如
如果 ,那麼向量
和向量
互相 <b>正交</b>(orthogonal)。如果兩個向量都有非零範數,那麼這兩個向量之間的夾角是 90 度。在
中,至多有
個範數非零向量互相正交。如果這些向量不僅互相正交,並且範數都為 1,那麼我們稱它們是 <b>標準正交</b>(orthonormal)
<b>正交矩陣</b>(orthogonal matrix)是指行向量和列向量是分別標準正交的方陣: ,這意味著
<b>特徵分解</b>(eigendecomposition)是使用最廣的矩陣分解之一,即將矩陣分解成一組特徵向量和特徵值。方陣 的 <b>特徵向量</b>(eigenvector)是指與
相乘後相當於對該向量進行縮放(
)的非零向量
。標量
被稱為這個特徵向量對應的 <b>特徵值</b>(eigenvalue)
如果 是
的特徵向量,那麼任何縮放後的向量
也是 A 的特徵向量。此外,
和
有相同的特徵值
的 <b>特徵分解</b>(eigendecomposition)可以記作
每個實對稱矩陣都可以分解成實特徵向量和實特徵值
因為 是正交矩陣,我們可以將
看作沿方向
延展
倍的空間
任意一個實對稱矩陣 A 都有特徵分解,但是特徵分解可能並不唯一。如果兩個或多個特徵向量擁有相同的特徵值,那麼在由這些特徵向量產生的生成子空間中,任意一組正交向量都是該特徵值對應的特徵向量
矩陣是奇異的當且僅當含有零特徵值
所有特徵值都是正數的矩陣被稱為 <b>正定(positive definite)</b>;所有特徵值都是非負數的矩陣被稱為 <b>半正定(positive semidefinite)</b>。同樣地,所有特徵值都是負數的矩陣被稱為 <b>負定(negative definite)</b>;所有特徵值都是非正數的矩陣被稱為 <b>半負定(negative semidefinite)</b>
另一種分解矩陣的方法,被稱為 <b>奇異值分解(singular value decomposition, SVD)</b>,將矩陣分解為 <b>奇異向量(singular vector)</b> 和 <b>奇異值(singular value)</b>。每個實數矩陣都有一個奇異值分解,但不一定都有特徵分解
分解成三個矩陣的乘積
定義為對角矩陣,但不一定是方陣
對角矩陣 對角線上的元素被稱為矩陣
的 <b>奇異值(singular value)</b>。矩陣
的列向量被稱為 <b>左奇異向量(left singular vector)</b>,矩陣
的列向量被稱 <b>右奇異向量(right singular vector)</b>
的 <b>左奇異向量(left singular vector)</b>是
的特徵向量。
的 <b>右奇異向量(right singular vector)</b>是
的特徵向量。
的非零奇異值是
特徵值的平方根,同時也是
特徵值的平方根
<b>跡運算</b>返回的是矩陣對角元素的和
跡運算提供了另一種描述矩陣Frobenius範數的方式
跡運算在轉置運算下是不變的
多個矩陣相乘得到的方陣的跡,和將這些矩陣中的最後一個挪到最前面之後相乘的跡是相同的
標量在跡運算後仍然是它自己:
<b>行列式</b>,記作 <b>det(A)</b>,是一個將方陣 A 對映到實數的函式。行列式等於矩陣特徵值的乘積。行列式的絕對值可以用來衡量矩陣參與矩陣乘法後空間擴大或者縮小了多少。如果行列式是 0,那麼空間至少沿著某一維完全收縮了,使其失去了所有的體積。如果行列式是 1,那麼這個轉換保持空間體積不變
<b>主成分分析(principal components analysis, PCA)</b>是一個簡單的機器學習演算法,可以通過基礎的線性代數知識推導
在人工智慧領域,<b>概率論</b>主要有兩種用途。首先,概率法則告訴我們 AI 系統如何推理,據此我們設計一些演算法來計算或者估算由概率論匯出的表示式。其次,我們可以用概率和統計從理論上分析我們提出的 AI 系統的行為
幾乎所有的活動都需要一些在不確定性存在的情況下進行推理的能力。不確定性有三種可能的來源
- 被建模系統內在的隨機性
- 不完全觀測。即使是確定的系統,當我們不能觀測到所有驅動系統行為的變數時,該系統也會呈現隨機性
- 不完全建模。當我們使用一些必須捨棄某些觀測資訊的模型時,捨棄的資訊會導致模型的預測出現不確定性
直接與事件發生的頻率相聯絡,被稱為 <b>頻率派概率(frequentist probability)</b>;涉及到確定性水平,被稱為 <b>貝葉斯概率(Bayesian probability)</b>,如:在醫生診斷病人的例子中,我們用概率來表示一種 <b>信任度(degree of belief)</b>,其中 1 表示非常肯定病人患有流感,而 0 表示非常肯定病人沒有流感
<b>概率分佈(probability distribution)</b>用來描述隨機變數或一簇隨機變數在每一個可能取到的狀態的可能性大小。描述概率分佈的方式取決於隨機變數是離散的還是連續的
離散型變數的概率分佈可以用 <b>概率質量函式(probability mass function, PMF)</b>來描述。概率質量函式將隨機變數能夠取得的每個狀態對映到隨機變數取得該狀態的概率
概率質量函式可以同時作用於多個隨機變數。這種多個變數的概率分佈被稱為 <b>聯合概率分佈(joint probability distribution)</b>。P(x = , y =
) 表示 x =
和 y =
同時發生的概率。我們也可以簡寫為 P(
,
)
當研究的物件是連續型隨機變數時,用 <b>概率密度函式(probability density function, PDF)</b>而不是概率質量函式來描述它的概率分佈
概率密度函式 p(x) 並沒有直接對特定的狀態給出概率,相對的,它給出了落在面積為 δx 的無限小的區域內的概率為 p(x)δx
有時候,我們知道了一組變數的聯合概率分佈,但想要了解其中一個子集的概率分佈。這種定義在子集上的概率分佈被稱為 <b>邊緣概率分佈(marginal probability distribution)</b>,如:已知P(x, y),求P(x)
某個事件在給定其他事件發生時出現的概率叫做<b>條件概率</b>,將給定 x = ,y =
發生的條件概率記為 P(y =
| x =
)
任何多維隨機變數的聯合概率分佈,都可以分解成只有一個變數的條件概率相乘的形式
這個規則被稱為概率的 <b>鏈式法則(chain rule)</b>或者 <b>乘法法則(product rule)</b>。舉例
兩個隨機變數 x 和 y,如果它們的概率分佈可以表示成兩個因子的乘積形式,並且一個因子只包含 x 另一個因子只包含 y,我們就稱這兩個隨機變數是 <b>相互獨立的(independent)</b>
如果關於 x 和 y 的條件概率分佈對於 z 的每一個值都可以寫成乘積的形式,那麼這兩個隨機變數 x 和 y 在給定隨機變數 z 時是 條件獨立的(conditionally independent)
函式 f(x) 關於某分佈 P(x) 的 <b>期望(expectation)</b>或者 <b>期望值(expectedvalue)</b>是指,當 x 由 P 產生,f 作用於 x 時,f(x) 的平均值
<b>方差(variance)</b>衡量的是當我們對 x 依據它的概率分佈進行取樣時,隨機變數 x 的函式值會呈現多大的差異
當方差很小時,f(x) 的值形成的簇比較接近它們的期望值。方差的平方根被稱為 <b>標準差(standard deviation)</b>
<b>協方差(covariance)</b>在某種意義上給出了兩個變數線性相關性的強度以及這些變數的尺度
協方差的絕對值如果很大則意味著變數值變化很大並且它們同時距離各自的均值很遠。如果協方差是正的,那麼兩個變數都傾向於同時取得相對較大的值。如果協方差是負的,那麼其中一個變數傾向於取得相對較大的值的同時,另一個變數傾向於取得相對較小的值,反之亦然。其他的衡量指標如 <b>相關係數(correlation)</b>將每個變數的貢獻歸一化,為了只衡量變數的相關性而不受各個變數尺度大小的影響
兩個變數如果相互獨立那麼它們的協方差為零,如果兩個變數的協方差不為零那麼它們一定是相關的。兩個變數如果協方差為零,它們之間一定沒有線性關係。獨立性比零協方差的要求更強,因為獨立性還排除了非線性的關係。兩個變數相互依賴但具有零協方差是可能的
的 <b>協方差矩陣(covariance matrix)</b>是一個 n × n 的矩陣,並且滿足
協方差矩陣的對角元是方差
最常用的分佈就是 <b>正態分佈(normal distribution)</b>,也稱為 <b>高斯分佈(Gaussian distribution)</b>

gaussianDistribution.png
正態分佈的中心峰的 x 座標由 給出,峰的寬度受
控制
在具有相同方差的所有可能的概率分佈中,正態分佈在實數上具有最大的不確定性。可以認為正態分佈是對模型加入的先驗知識量最少的分佈
給出了分佈的協方差矩陣
當對很多不同引數下的概率密度函式多次求值時,協方差矩陣並不是一個很高效的引數化分佈的方式,因為對概率密度函式求值時需要對進行替代
</b> 定義概率密度函式來將望概率分佈中的所有質量都集中在一個點上
處具有無限窄也無限高的峰值的概率質量
Dirac 分佈經常作為 <b>經驗分佈(empirical distribution)</b>的一個組成部分出現
中的每一個,這些點是給定的資料集或者取樣的集合。只有在定義連續型隨機變數的經驗分佈時,Dirac delta 函式才是必要的
一些等式
<b>貝葉斯規則(Bayes' rule)</b>
,我們可以使用 <b>KL 散度(Kullback-Leibler (KL) divergence)</b>來衡量這兩個分佈的差異
產生的符號的訊息時,所需要的額外資訊量
KL 散度有很多有用的性質,最重要的是它是非負的。KL 散度為 0 當且僅當 和
在離散型變數的情況下是相同的分佈,或者在連續型變數的情況下是 ‘‘幾乎處處’’ 相同的。因為 KL 散度是非負的並且衡量的是兩個分佈之間的差異,它經常被用作分佈之間的某種距離。然而,它並不是真的距離因為它不是對稱的:對於某些
和
,
。這種非對稱性意味著選擇
還是
影響很大
<b>交叉熵(cross-entropy)</b>
交叉熵和 KL 散度很像但是缺少左邊一項。針對 Q 最小化交叉熵等價於最小化 KL 散度,因為 Q 並不參與被省略的那一項
時發生上溢。進一步的運算通常會導致這些無限值變為非數字。必須對上溢和下溢進行數值穩定的一個例子是 <b>softmax 函式(softmax function)</b>。softmax 函式經常用於預測與 Multinoulli 分佈相關聯的概率,定義為
導致 exp 的最大引數為 0,這排除了上溢的可能性。同樣地,分母中至少有一個值為 1 的項,這就排除了因分母下溢而導致被零除的可能性
<b>條件數</b>表徵函式相對於輸入的微小變化而變化的快慢程度。輸入被輕微擾動而迅速改變的函式對於科學計算來說可能是有問題的,因為輸入中的舍入誤差可能導致輸出的巨大變化
具有特徵值分解時,其條件數為
這是最大和最小特徵值的模之比1。當該數很大時,矩陣求逆對輸入的誤差特別敏感
我們把要最小化或最大化的函式稱為 <b>目標函式(objective function)</b>或 <b>準則(criterion)</b>。當我們對其進行最小化時,我們也把它稱為 <b>代價函式(cost function)</b>、<b>損失函式(loss function)</b>或 <b>誤差函式(error function)</b>
對於 ,導數告訴我們如何更改
來略微地改善
。例如,我們知道對於足夠小的
來說,
是比
小的。因此我們可以將
往導數的反方向移動一小步來減小
。這種技術被稱為 <b>梯度下降(gradient descent)</b>
當 ,導數無法提供往哪個方向移動的資訊。
的點稱為 <b>臨界點(critical point)</b>或 <b>駐點(stationary point)</b>。一個 <b>區域性極小點(local minimum)</b>意味著這個點的 <b>f(x)</b> 小於所有鄰近點,因此不可能通過移動無窮小的步長來減小
。一個 <b>區域性極大點(local maximum)</b>意味著這個點的
大於所有鄰近點,因此不可能通過移動無窮小的步長來增大
。有些臨界點既不是最小點也不是最大點。這些點被稱為 <b>鞍點(saddle point)</b>。使 f(x) 取得絕對的最小值(相對所有其他值)的點是 <b>全域性最小點(global minimum)</b>。函式可能只有一個全域性最小點或存在多個全域性最小點,還可能存在不是全域性最優的區域性極小點
有時候,在 x 的所有可能值下最大化或最小化一個函式 f(x) 不是我們所希望的。相反,我們可能希望在 x 的某些集合 S 中找 f(x) 的最大值或最小值。這被稱為 <b>約束優化(constrained optimization)</b>。在約束優化術語中,集合 S 內的點 x 被稱為 <b>可行(feasible)點</b>