多層感知機(MLP)是深度學習的基礎,而深度學習中的大語言模型是現(xiàn)在ChatGPT等產(chǎn)品的核心技術单雾。多層感知機是最簡單的神經(jīng)網(wǎng)絡赚哗,包含輸入、隱層硅堆、輸出屿储,以及本文沒有涉及的反向傳播、代價函數(shù)等基礎卻核心的概念渐逃。所以了解多層感知機可以建立起對AI技術的基本認知够掠。
本文目的是從公式和矩陣操作角度來直觀理解多層感知機的前向傳播過程,對于初學者有助于建立起基本認知茄菊,對于有基本認知的讀者可以進一步理解其內(nèi)在過程疯潭。
首先大的層面看赊堪,多層感知機包含一個輸入矩陣, 一個輸出矩陣
竖哩,以及中間若干個隱層
哭廉。
一個輸入層
輸入是一個形狀為
的矩陣,每一個行向量代表一個樣本(數(shù)據(jù))相叁,
代表樣本的維度遵绰。
輸入層的目的是為多層感知機提供數(shù)據(jù),數(shù)據(jù)可以是各種形式的數(shù)據(jù)例如圖片增淹、文字椿访,但是這些數(shù)據(jù)都需要轉(zhuǎn)換為以數(shù)字的形式。
舉例來幫助理解虑润,如果對像素的灰度圖片進行分類成玫,其中共有十類。每張圖片有784個像素端辱,如果每個像素的值用一個數(shù)字來表示梁剔,那么一張圖片可以用一個維度為784的行向量來表示。
以張圖片堆疊起來舞蔽,就形成了上述的輸入矩陣
荣病。一張圖片可能是十個類別中的一個,所以輸出矩陣
的一個行向量維度為10渗柿,代表一張圖片的分類結(jié)果个盆。行向量的元素代表圖片屬于某一類的概率。
使用矩陣表示為:
多個隱層
隱層可以理解為將數(shù)據(jù)根據(jù)參數(shù)矩陣進行了線性變換和非線性變換朵栖。公式如下:
其中的代表參數(shù)矩陣,由矩陣的乘法可知其有
行陨溅,列的數(shù)量在數(shù)學上沒有限制终惑。在聯(lián)系圖和公式的時候,隱層中的一個神經(jīng)元中的參數(shù)對應著
的一列门扇,有多少個神經(jīng)元就有多少列雹有。
第一個隱層的參數(shù)矩陣表示如下,形狀為臼寄。
在執(zhí)行運算時會有廣播的操作霸奕,簡單來講就是將自己作為行向量堆疊n次。
運算過程用矩陣可以表達為:
公式中代表激活函數(shù),通常選用ReLU,其公式為:
ReLU的操作對象是的每個行向量的元素煤惩,元素由一個樣本進行線性變換后得到嫉嘀。ReLU對結(jié)果進行激活操作是非線性的。由于需要對每個行向量進行同樣的操作盟庞,所以換句花話說吃沪,是對矩陣每個元素應用ReLU汤善。
隱層的結(jié)果可以作為下一個隱層的輸入:
一個輸出層
輸出是一個形狀為
的矩陣,每一個行向量代表一個樣本最終的變換結(jié)果红淡,
代表數(shù)據(jù)最終被變換成的維度不狮。
輸出層是對隱層結(jié)果的變換,分類任務會有非線性變換在旱,回歸任務只有線性變換摇零。例如對于多分類問題,有如下公式:
相比于隱層的變換驻仅,結(jié)果的非線性部分使用了Softmax函數(shù)。其應用的對象是矩陣的行向量登渣,得到每一行中各元素在這一行的權重噪服,可以理解為屬于某一類的概率。以下為公式表達:
-
是輸入向量胜茧,包含
個元素粘优。
-
是輸入向量
的第
個元素。
-
是輸入向量
的第
個元素經(jīng)過 Softmax 函數(shù)轉(zhuǎn)換后的值呻顽。
-
是輸入向量
的所有元素的指數(shù)和
輸出層行向量的維度通常由問題決定雹顺,例如在大語言模型中解碼器輸出部分就是一個對所有單詞(準確說是token)的概率的行向量,數(shù)值代表每個單詞出現(xiàn)的概率廊遍,所以維度等于所有單詞的總數(shù)嬉愧。
總結(jié)
將公式與實際的矩陣操作聯(lián)系在一起能真正理解多層感知機的行為,將感性的認知具體的為實際的行為喉前,進而加深理解没酣。作為學習高階知識的一個基礎。
歡迎關注被饿,共同理解更多AI知識四康。