深度學習數(shù)學基礎(三)之簡單數(shù)學

以下有部分公式,如果無法顯示,請訪問原文鏈接

從本文開始,之后的三四篇我們都將沐浴在數(shù)學的海洋里,拼命地撲騰,這個系列我會盡力以通俗易懂的方式來講述這些數(shù)學知識。

1 函數(shù)

1.1 一次函數(shù)

在數(shù)學函數(shù)中最基本、最重要的就是一次函數(shù)。也就是函數(shù)之基礎、根本。它在神經網絡的世界里也同樣重要。

1.1.1 一元一次函數(shù)

這個函數(shù)可以用下面的式表示。a被稱為斜率(用來控制直線的方向),b被稱為截距(用來控制直線和原點的偏移)
y=ax+b(a、b為常數(shù),a\neq 0)

當x、y兩個變量滿足上述公式時,就稱為變量y和變量x是一次函數(shù)關系。

有兩個變量xy,如果對每個x都有唯一確定的y與它對應,則稱yx的函數(shù),用 y=f(x) 表示。此時,稱x為自變量,y為因變量。

一次函數(shù)的圖像是直線,如下圖的直線所示。


示例:一次函數(shù)y=2x+1的圖像如下圖所示,截距為 1,斜率為 2。

1.1.2 多元一次函數(shù)

上面我們說的y=ax+b中有一個變量x,我們稱為一元,如果有多個變量,我們就稱為是多元的,比如下面的式子。(有幾個變量就是幾元的,也可以理解為維度)
y=ax_1+bx_2+...+c(a、b、c為常數(shù),a\neq 0,b\neq 0)

當多個變量滿足上述公式時,也稱為變量y與變量是一次函數(shù)關系。

就像我們之前說的神經元的加權輸入z就可以表示為一次函數(shù)關系。如果把作為參數(shù)的權重w_1、w_2、...、w_n與偏置b看作常數(shù),那么加權輸入zh和w_1、w_2、...、w_n就是一次函數(shù)關系。
z=w_1x_1+w_2x_2+...+w_nx_n+b

1.2 二次函數(shù)

1.2.1 一元二次函數(shù)

剛剛我們接觸了一次函數(shù),下面說說二次函數(shù)。二次函數(shù)很重要,像我們經常使用的代價函數(shù)平方誤差就是二次函數(shù)。二次函數(shù)由下面的式表示。
y=ax^2+bx+c(a、b、c為常數(shù),a\neq 0)

二次函數(shù)的圖像是拋物線,如下圖所示。我們會發(fā)現(xiàn)拋物線的凹凸(開口朝向)是通過上方式子中a的正負來決定的。

  1. a>0時,拋物線向上開口,向下凸起
  2. a<0時,拋物線向下開口,向上凸起。

所以當a>0時該函數(shù)的y存在最小值。(該性質是后面講的最小二乘法的基礎)

示例:二次函數(shù)y=(x-1)^2+2的圖像如右圖所示。從圖像中可以看到,當x=1時,函數(shù)取得最小值y=2

1.2.2 多元二次函數(shù)

在我們實際的神經網絡中需要處理更多變量的二次函數(shù),這些二次函數(shù)統(tǒng)稱多元二次函數(shù),學會了一元二次函數(shù),那么多元二次函數(shù)就不會太難了,下面我們以一個二元二次函數(shù)進行舉例。

就像我們使用的代價函數(shù)平方誤差c就是多元二次函數(shù):
C=(x_1-t_1)^2

1.3 單位階躍函數(shù)

之前,我們已經接觸過它了,還記得嗎,作為生物界神經元的激活函數(shù)。下面我們再說一遍吧。

單位階躍函數(shù),在原點處不連續(xù),也就是在原點處不可導,由于這兩個性質,所以單位階躍函數(shù)不能成為主要的激活函數(shù)。

u(x)=\left\\{ \begin{matrix} 0\quad (x<0) \\\\ 1\quad (x\ge 0) \end{matrix} \right\\}

單位階躍函數(shù)的圖像如下:

1.4 指數(shù)函數(shù)

什么是指數(shù)函數(shù)呢?我們之前講了一次函數(shù)和二次函數(shù),其實只要把變量放到冪的位置,其實就是指數(shù)函數(shù)了,具有以下形狀的函數(shù)稱為指數(shù)函數(shù),常數(shù)a被稱為函數(shù)的底數(shù)。
y=a^x(a為正的常數(shù),a\neq 1)

指數(shù)函數(shù)的圖像是類似于撇的一種樣式,如下所示


上面說到底數(shù),就不得不說自然常數(shù)e,又叫納皮爾數(shù)或歐拉數(shù),它和派\pi類似,是一個無限不循環(huán)小數(shù),它的值如下
e\approx 2.71828...

1.4.1 sigmoid函數(shù)

上面說到自然常數(shù)e,那么就不得不提到大名鼎鼎的自然指數(shù)函數(shù)e^x,它在數(shù)學界有自己的標識expexp(x)

而我們這里所要講的是包含自然指數(shù)函數(shù)的復合函數(shù)sigmoid函數(shù),它是神經網絡中很具有代表性的激活函數(shù)。它的公式如下
\sigma (x)=\frac { 1 }{ 1+{ e }^{ -x } } =\frac { 1 }{ 1+exp(-x) }

通過下方的圖像,我們可以看到,這個函數(shù)是光滑的,這就代表著這個函數(shù)處處可導,函數(shù)的取值在(0,1)區(qū)間內,那么這個函數(shù)值就可以用概率來解釋

1.5 正態(tài)分布的概率密度函數(shù)

在計算機實際確定神經網絡時,我們需要首先給權重和偏置設定初始值,這樣神經網絡才能進行計算。而這個初始值怎么取呢,這個時候我們就會用到一個非常有用的工具,叫做正態(tài)分布,這里就不長篇大論的解釋啥是正態(tài)分布了,它也沒什么高大上的地方,就是概率分布中的一種分布方式,但是這個分布方式是及其復合人類和自然界的,有興趣的朋友可以去深入了解下。在這里只說一下,我們在給神經網絡分配權重和偏置時分配一個服從正態(tài)分布的隨機數(shù),會比較容易取得好的結果。

正態(tài)分布是服從下面的概率密度函數(shù)的概率分布。公式如下
f\left( x \right) =\frac { 1 }{ \sqrt { 2\pi \sigma } } { e }^{ -\frac { { (x-\mu ) }^{ 2 } }{ 2{ \sigma }^{ 2 } } }

  1. 常數(shù)\mu:期望值(平均值)
  2. \sigma:標注差

它的圖像如下,由于形狀像教堂的鐘,所以被稱為叫鐘形曲線

示例:試作出期望值\mu為0、標準差\sigma為1 的正態(tài)分布的概率密度函數(shù)的圖像。
f\left( x \right)=\frac { 1 }{ \sqrt { 2\pi } } e^{ -\frac { x^{ 2 } }{ 2 } }

2 數(shù)列

2.1 數(shù)列的含義

數(shù)列就是數(shù)的序列,比如下面就是偶數(shù)列的數(shù)列
2,4,6,8,...

數(shù)列中的每一個數(shù)都被稱為,排在第一位的項叫做首項,排在第二位的項叫做第2項,以此類推,排在第n位的項叫做第n項(是不是有點廢話),神經網絡中出現(xiàn)的數(shù)列都是有限的數(shù)列,這種數(shù)列叫做有窮數(shù)列,在有窮數(shù)列中最后一項稱為末項,數(shù)列中的數(shù)量稱為項數(shù),而像上面的偶數(shù)列是無窮數(shù)列

示例:考察下面的有窮數(shù)列的首項,末項以及項數(shù)
1,3,5,7,9

這個數(shù)列的首項是1,末項是9,項數(shù)是5

2.2 數(shù)列的通項公式

數(shù)列中排在第n項的數(shù)通常用a_n表示,這里a是數(shù)列的名字,可隨意取。當想要表達整個數(shù)列時,使用集合的符號來表示,如\left\\{a_n\right\\}

將數(shù)列的第n項用一個關于n的式子標書出來,那么這個式子被稱為通項公式,比如偶數(shù)列的通項公式就是下方的式子
a_n=2n

示例:求以下數(shù)列\left\\{b_n\right\\}的通項公式
1,3,5,7,9
通項公式為b_n=2n-1

在神經網絡中,神經元的加權輸入和輸出可以看成數(shù)列,比如使用下方的展示方式:

  1. 加權輸入:第l層的第j個神經元的加權輸入用z_j^l
  2. 輸出:第l層的第j個神經元的輸出用a_j^l

2.3 數(shù)列與遞推關系式

除了通項公式外,數(shù)列還有另外一種表示方式,就是用相鄰的關系式來表示,這種表示法被稱為數(shù)列的遞歸定義

一般,如果已知首項a_n以及相鄰的兩項a\_n、a\_{n+1}的關系式,那么就可以確定這個序列,這個關系式叫遞推關系式

示例:已知首項a_1=1以及關系式a\_{n+1}=a\_n+2,可以確定以下數(shù)列,這個關系式就是數(shù)列的遞推關系式。
a\_{1}=1\\\\a\_{2}=a\_{1+1}=a\_{1}+2=1+2=3\\\\a\_{3}=a\_{2+1}=a\_{2}+2=3+2=5\\\\a\_{4}=a\_{3+1}=a\_{3}+2=5+2=7\\\\...\\\\a\_{1}=1,a\_{n+1}=a\_{n}+2

2.4 聯(lián)立遞推關系式

下面我們演示一個問題,這個算法就是神經網絡中的誤差反向傳播中所用到的數(shù)列的解題算法聯(lián)立遞推算法。

示例:求以下兩個地推關系是定義的數(shù)列前3項,其中a_1=b_1=1
\begin{cases} a\_{ n+1 }=a\_{ n }+2b\_{ n }+2 \\\\ b\_{n+1}=2a\_{n}+3b\_{n}+1 \end{cases}

解題:
\begin{cases} a\_{ 2 }=a\_{ 1 }+2b\_{ 1 }+2=1+2\times 1=5 \\\\ b\_2=2a\_1+3b\_1+1=2\times 1+3\times 1+1=6 \end{cases}
\begin{cases} a\_{ 3 }=a\_{ 2 }+2b\_{ 2 }+2=5+2\times 6+2=19 \\\\ b\_{ 3 }=2a\_{ 2 }+3b\_{ 2 }+1=2\times 5+3\times 6+1=39 \end{cases}

像這樣,將多個數(shù)列的遞推關系式聯(lián)合起來組成一組,稱為聯(lián)立遞推關系式。在神經網絡的世界中,所有神經元的輸入和輸出在數(shù)學上都可以認為是用聯(lián)立遞推式聯(lián)系起來的。例如,我們來看看之前文章中看過的一個神經元的圖片

在箭頭前端標記的是權重,神經元的圓圈中標記的是神經單元的輸出變量。于是,如果以a(z)為激活函數(shù),b_1^3b_2^3為第3層各個神經元的偏置,那么以下關系式成立:
{ a }\_{ 1 }^{ 3 }=a({ w }\_{ 11 }^{ 3 }{ a }\_{ 1 }^{ 2 }+{ w }\_{ 12 }^{ 3 }{ a }\_{ 2 }^{ 2 }+{ w }\_{ 13 }^{ 3 }{ a }\_{ 3 }^{ 2 }+{ b }\_{ 1 }^{ 3 })
{ a }\_{ 2 }^{ 3 }=a({ w }\_{ 21 }^{ 3 }{ a }\_{ 1 }^{ 2 }+{ w }\_{ 22 }^{ 3 }{ a }\_{ 2 }^{ 2 }+{ w }\_{ 23 }^{ 3 }{ a }\_{ 3 }^{ 2 }+{ b }\_{ 2 }^{ 3 })

根據這些關系式,第3層的輸出a_1^3a_2^3由第2層的輸出a_1^2a_2^2、a_3^2決定。也就是說,第2層的輸出與第3層的輸出由聯(lián)立遞推關系式聯(lián)系起來。我們之后學的誤差反向傳播就是將這種觀點應用在神經網絡中。

為什么要將聯(lián)立遞推應用在神經網絡中呢?

其實是因為對比計算冗長的偏導關系式,計算機更加擅長計算遞推關系。

評論請轉至原文鏈接
本文來自納蘭小筑,本文不予回復,評論請追溯原文

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容