以下有部分公式,如果無法顯示,請訪問原文鏈接
從本文開始,之后的三四篇我們都將沐浴在數學的海洋里,拼命地撲騰,這個系列我會盡力以通俗易懂的方式來講述這些數學知識。
1 函數
1.1 一次函數
在數學函數中最基本、最重要的就是一次函數
。也就是函數之基礎、根本。它在神經網絡的世界里也同樣重要。
1.1.1 一元一次函數
這個函數可以用下面的式表示。$a$被稱為斜率
(用來控制直線的方向),$b$被稱為截距
(用來控制直線和原點的偏移)
$$y=ax+b(a、b為常數,a/neq 0)$$
當x、y兩個變量滿足上述公式時,就稱為變量y和變量x是一次函數關系
。
有兩個變量$x$和$y$,如果對每個$x$都有唯一確定的$y$與它對應,則稱$y$是$x$的函數,用 $y=f(x)$ 表示。此時,稱$x$為自變量,$y$為因變量。
一次函數的圖像是直線,如下圖的直線所示。
示例:一次函數$y=2x+1$的圖像如下圖所示,截距為 1,斜率為 2。
1.1.2 多元一次函數
上面我們說的$y=ax+b$中有一個變量x,我們稱為一元,如果有多個變量,我們就稱為是多元的,比如下面的式子。(有幾個變量就是幾元的,也可以理解為維度)
$$y=ax_1+bx_2+...+c(a、b、c為常數,a/neq 0,b/neq 0)$$
當多個變量滿足上述公式時,也稱為變量y與變量是一次函數關系
。
就像我們之前說的神經元的加權輸入
$z$就可以表示為一次函數關系。如果把作為參數的權重$w_1、w_2、...、w_n$與偏置$b$看作常數,那么加權輸入$z$h和$w_1、w_2、...、w_n$就是一次函數關系。
$$z=w_1x_1+w_2x_2+...+w_nx_n+b$$
1.2 二次函數
1.2.1 一元二次函數
剛剛我們接觸了一次函數,下面說說二次函數。二次函數很重要,像我們經常使用的代價函數
平方誤差就是二次函數。二次函數由下面的式表示。
$$y=ax^2+bx+c(a、b、c為常數,a/neq 0)$$
二次函數的圖像是拋物線,如下圖所示。我們會發現拋物線的凹凸(開口朝向)是通過上方式子中$a$的正負來決定的。
- 當$a>0$時,拋物線向上開口,向下凸起
- 當$a<0$時,拋物線向下開口,向上凸起。
所以當$a>0$時該函數的$y$存在最小值。(該性質是后面講的最小二乘法的
基礎)
示例:二次函數$y=(x-1)^2+2$的圖像如右圖所示。從圖像中可以看到,當$x=1$時,函數取得最小值$y=2$。
1.2.2 多元二次函數
在我們實際的神經網絡中需要處理更多變量的二次函數,這些二次函數統稱多元二次函數
,學會了一元二次函數,那么多元二次函數就不會太難了,下面我們以一個二元二次函數進行舉例。
就像我們使用的代價函數平方誤差c就是多元二次函數:
$$C=(x_1-t_1)^2$$
1.3 單位階躍函數
之前,我們已經接觸過它了,還記得嗎,作為生物界神經元的激活函數。下面我們再說一遍吧。
單位階躍函數,在原點處不連續
,也就是在原點處不可導
,由于這兩個性質,所以單位階躍函數不能成為主要的激活函數。
$$u(x)=/left//{ /begin{matrix} 0/quad (x<0) //// 1/quad (x/ge 0) /end{matrix} /right//} $$
單位階躍函數的圖像如下:
1.4 指數函數
什么是指數函數呢?我們之前講了一次函數和二次函數,其實只要把變量放到冪的位置,其實就是指數函數了,具有以下形狀的函數稱為指數函數
,常數$a$被稱為函數的底數
。
$$y=a^x(a為正的常數,a/neq 1)$$
指數函數的圖像是類似于撇的一種樣式,如下所示
上面說到底數,就不得不說自然常數
$e$,又叫納皮爾數或歐拉數,它和派$/pi$類似,是一個無限不循環小數,它的值如下
$$e/approx 2.71828...$$
1.4.1 sigmoid函數
上面說到自然常數e,那么就不得不提到大名鼎鼎的自然指數函數$e^x$,它在數學界有自己的標識exp
或exp(x)
而我們這里所要講的是包含自然指數函數的復合函數sigmoid
函數,它是神經網絡中很具有代表性的激活函數。它的公式如下
$$/sigma (x)=/frac { 1 }{ 1+{ e }^{ -x } } =/frac { 1 }{ 1+exp(-x) } $$
通過下方的圖像,我們可以看到,這個函數是光滑的
,這就代表著這個函數處處可導
,函數的取值在(0,1)區間內,那么這個函數值就可以用概率來解釋
1.5 正態分布的概率密度函數
在計算機實際確定神經網絡時,我們需要首先給權重和偏置設定初始值,這樣神經網絡才能進行計算。而這個初始值怎么取呢,這個時候我們就會用到一個非常有用的工具,叫做正態分布
,這里就不長篇大論的解釋啥是正態分布了,它也沒什么高大上的地方,就是概率分布中的一種分布方式,但是這個分布方式是及其復合人類和自然界的,有興趣的朋友可以去深入了解下。在這里只說一下,我們在給神經網絡分配權重和偏置時分配一個服從正態分布的隨機數,會比較容易取得好的結果。
正態分布是服從下面的概率密度函數的概率分布。公式如下
$$f/left( x /right) =/frac { 1 }{ /sqrt { 2/pi /sigma } } { e }^{ -/frac { { (x-/mu ) }^{ 2 } }{ 2{ /sigma }^{ 2 } } }$$
- 常數$/mu$:期望值(平均值)
- $/sigma$:標注差
它的圖像如下,由于形狀像教堂的鐘,所以被稱為叫鐘形曲線
示例:試作出期望值$/mu$為0、標準差$/sigma$為1 的正態分布的概率密度函數的圖像。
$$f/left( x /right)=/frac { 1 }{ /sqrt { 2/pi } } e^{ -/frac { x^{ 2 } }{ 2 } }$$
2 數列
2.1 數列的含義
數列
就是數的序列,比如下面就是偶數列的數列
$$2,4,6,8,...$$
數列中的每一個數都被稱為項
,排在第一位的項叫做首項
,排在第二位的項叫做第2項
,以此類推,排在第n位的項叫做第n項
(是不是有點廢話),神經網絡中出現的數列都是有限的數列,這種數列叫做有窮數列
,在有窮數列中最后一項稱為末項
,數列中的數量稱為項數
,而像上面的偶數列是無窮數列
示例:考察下面的有窮數列的首項,末項以及項數
$$1,3,5,7,9$$
這個數列的首項是1,末項是9,項數是5
2.2 數列的通項公式
數列中排在第$n$項的數通常用$a_n$表示,這里$a$是數列的名字,可隨意取。當想要表達整個數列時,使用集合的符號來表示,如$/left//{a_n/right//}$
將數列的第$n$項用一個關于$n$的式子標書出來,那么這個式子被稱為通項公式
,比如偶數列的通項公式就是下方的式子
$$a_n=2n$$
示例:求以下數列$/left//{b_n/right//}$的通項公式
$$1,3,5,7,9$$
通項公式為$b_n=2n-1$
在神經網絡中,神經元的加權輸入和輸出可以看成數列,比如使用下方的展示方式:
- 加權輸入:第$l$層的第$j$個神經元的加權輸入用$z_j^l$
- 輸出:第$l$層的第$j$個神經元的輸出用$a_j^l$
2.3 數列與遞推關系式
除了通項公式外,數列還有另外一種表示方式,就是用相鄰的關系式來表示,這種表示法被稱為數列的遞歸定義
一般,如果已知首項$a_n$以及相鄰的兩項$a/_n、a/_{n+1}$的關系式,那么就可以確定這個序列,這個關系式叫遞推關系式
示例:已知首項$a_1=1$以及關系式$a/_{n+1}=a/_n+2$,可以確定以下數列,這個關系式就是數列的遞推關系式。
$$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 聯立遞推關系式
下面我們演示一個問題,這個算法就是神經網絡中的誤差反向傳播
中所用到的數列的解題算法聯立遞推算法
。
示例:求以下兩個地推關系是定義的數列前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}$$
像這樣,將多個數列的遞推關系式聯合起來組成一組,稱為聯立遞推關系式
。在神經網絡的世界中,所有神經元的輸入和輸出在數學上都可以認為是用聯立遞推式聯系起來的。例如,我們來看看之前文章中看過的一個神經元的圖片
在箭頭前端標記的是權重,神經元的圓圈中標記的是神經單元的輸出變量。于是,如果以$a(z)$為激活函數,$b_1^3$、$b_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^3$和$a_2^3$由第2層的輸出$a_1^2$、$a_2^2$、$a_3^2$決定。也就是說,第2層的輸出與第3層的輸出由聯立遞推關系式聯系起來。我們之后學的誤差反向傳播
就是將這種觀點應用在神經網絡中。
為什么要將聯立遞推應用在神經網絡中呢?
其實是因為對比計算冗長的偏導關系式,計算機更加擅長計算遞推關系。
評論請轉至原文鏈接
本文來自納蘭小筑,本文不予回復,評論請追溯原文
審核編輯:符乾江
-
人工智能
+關注
關注
1796文章
47674瀏覽量
240293 -
深度學習
+關注
關注
73文章
5515瀏覽量
121551
發布評論請先 登錄
相關推薦
評論