理論 神經網路引入

2021-10-09 10:21:46 字數 2437 閱讀 5330

以下內容筆記出自『跟著迪哥學python資料分析與機器學習實戰』,外加個人整理新增,僅供個人複習使用。

我們要進行乙個分類任務,如何**乙個輸入(樣本)的所屬類別呢?

在神經網路進行分類任務時,最終輸出乙個結果(如乙個分值),以評估它屬於各個類別的可能性。例如:

以上面例子為例,如果是進行識別,需要將轉換為影象資料,影象是由多個畫素點組成,可以將畫素點當做資料特徵 x,配合特徵的權重引數 w以及偏置引數 b,如何得到?需要通過迭代計算逐步更新,與梯度下降中的引數更新類似,首先隨機初始化乙個值,然後進行不斷修正。

**結果難免與實際情況有誤差,如何衡量模型效果的好壞,並且用乙個具體數值去分辨好壞程度,需要損失函式

有監督學習中,可用損失函式度來評估**結果的好壞,評估**值 f( x, w )與真實值 y 之間不一致的程度。損失值越小,結果越準確。在訓練資料(x ,y)一定的情況下,可以通過調整模型引數 w 和b 來改進。

簡單的損失函式定義:

其中, li是當前輸入資料屬於正確類別的得分值與其他所有錯誤類別得分值的差異總和。

那麼如何得到 w2?這裡可以在損失函式中新增正則化懲罰項

li+λ*r(wi)(單個wi)

以上方的例子為例,如果我們新增l2正則化懲罰項(權重引數所有元素平方和),計算 w 的平方,w1的平方=1,w2的平方=0.25,即對 w1 的懲罰是1,對 w2 的懲罰是0.25,此時,w1 的損失函式會偏高,表示 w1 這組引數擬合的模型效果較差!

因此,可以在最終的損失函式公式後加上正則化懲罰項:

其中,λ 為懲罰力度,表示希望對權重引數懲罰的大小。當懲罰力度小時,模型能把所有資料點完全分開,此時過擬合風險最大。當懲罰力度較大時,模型邊界會比較平穩,雖然有些資料點沒有劃分正確,但模型泛化能力強!

但在上面的例子中,**結果是分值,損失函式也是**具體分數時的損失函式,而對於分類任務來說,更希望得到乙個概率值,那麼可以借用softmax方法來完成分類任務。

首先,如何將**的分值轉化為概率值?在邏輯回歸中是利用了sigmoid函式。

在這裡,看上面的例子,小貓影象屬於3個類別的得分值分別為(3.2,5.1,-1.7),只看得分值,差異並不大,為了使結果差異更明顯,進行對映,對映函式選擇指數函式:

對映後,數值差異明顯,且得分為負值時,基本是不可能的類別,對映值接近0。如何轉化為概率值?可以進行歸一化操作:

可以看到,輸入為小貓影象時,概率值是13%,模型**效果較差。如何衡量?依然是計算損失值,這裡借助對數函式計算損失

需要注意的是:對數函式的輸入是當前輸入樣本屬於正確類別的概率值,表示只關心在正確類別上的分類效果,理想情況是100%。

另外,選擇對數函式的原因也在於

當概率結果越接近1,函式值越接近0,也即損失值越接近0,表示模型的**正確(100%屬於正確類別),不會產生損失。概率接近0,對應的損失值(絕對值)越大。

經過以上步驟,我們將損失函式重新定義為:

步驟:

如何計算w 和b,前面已經討論到,是利用迭代計算。如何迭代,利用反向傳播的思想。

前面從輸入資料到計算損失,是前向傳播過程,最終模型由權重 w 和偏置引數 b 決定。

前向傳播過程:

這裡的迭代計算同樣採用梯度下降方法,但神經網路是層次結構,需要逐層完成引數更新工作。

計算梯度時,遵循鏈式法則(求導的鏈式法則),逐層計算,梯度可以傳遞。

如果乙個引數使得模型損失增大,就要削減,反之增大其作用。

神經網路加速理論

1 gpu計算神經網路加速原理 2 脈動陣列計算神經網路原理 3 谷歌tpu架構 4 脈動陣列 參考文獻 gpu實現神經網路加速優化的關鍵方式是並行化與向量化,一種最常見的gpu加速神經網路的模式為通用矩陣相乘 general matrix multiply 即將各類神經網路核心計算展開為矩陣計算的...

神經網路學習引入 反向傳播

反向傳播技術是神經網路的核心技術之一。如果乙個運算我們能夠使用計算圖表式出來,那麼我們就能夠利用反向傳播的方法,即從後往前遞迴地呼叫鏈式法則來計算梯度。乙個簡單的函式f x y,z x y zf x,y,z x y z f x,y,z x y z的計算圖如下所示。假設輸入為 x 2,y 5,z 4,...

BP神經網路之理論推導

在19世紀,人們發現了人腦神經細胞傳導興奮的規律,計算機科學家們由此受到啟發,提出來人工神經網路,希望用這個模型來模擬人腦。神經元細胞有幾個重要組成 軸突,樹突,細胞體。軸突能將神經元的興奮傳遞給其連線的神經元,而樹突能夠接收其他神經元傳遞過來的興奮。神經元細胞根據接收到的興奮決定是否將興奮傳遞給下...