深度學習基礎 線性回歸與神經網路中的後向傳播計算

2021-10-07 10:01:17 字數 2720 閱讀 3181

神經網路中的後向傳播計算

本文主要參考花書, 中文翻譯deeplearningbook-chinese

線性回歸是將向量 x∈r

nx \in \bbb^n

x∈rn

作為輸入,**標量 y∈r

y \in \bbb

y∈r 作為輸出的線性函式,表示為:

y ^=

w⊤

x\hat=w^x

y^​=w⊤xy^

=∑i=

1nwi

xi

\hat=\sum_^nw_ix_i

y^​=i=

1∑n​

wi​x

i​其中y

^\hat

y^​為模型**的y

yy,w∈r

w \in \bbb

w∈r是引數向量,可以把w

ww理解為x

xx中各元素對y

^\hat

y^​影響的佔比,也稱權重。

大多數深度學習演算法都涉及某種形式的優化。優化指的是改變 x

xx 以最小化或最

大化某個函式 f(x

)f(x)

f(x)

的任務。我們通常以最小化 f(x

)f(x)

f(x)

指代大多數最優化問題。最大

化可經由最小化演算法最小化 −f(

x)

−f(x)

−f(x

) 來實現。

我們把要最小化或最大化的函式稱為 目標函式(objective function)或 準則

(criterion)。當我們對其進行最小化時,我們也把它稱為 代價函式(cost function)、

損失函式(loss function)或 誤差函式(error function)。

假設我們有乙個函式 y=f

(x

)y = f(x)

y=f(x)

,其中 x

xx 和 y

yy 是實數。這個函式的 導數(derivative)記為 f′(

x)

f'(x)

f′(x

) 或 dyd

x\frac

dxdy

​。導數 f′(

x)

f'(x)

f′(x

) 代表 f(x

)f(x)

f(x)

在點 x

xx 處的斜率。換句話說,它表明如何縮放輸入的小變化才能在輸出獲得相應的變化:f(x

+ϵ)≈

f(x)

+ϵf′

(x)f(

x+ϵ)

≈f(x

)+ϵf

′(x)

。因此導數對於最小化乙個函式很有用,因為它告訴我們如何更改 x

xx 來略微地改善 y

yy。例如,我們知道對於足夠小的 ϵ

\epsilon

ϵ 來說,f(x

−ϵsi

gn(f

′(x)

))

f(x − \epsilon sign(f'(x)))

f(x−ϵs

ign(

f′(x

))) 是比 f(x

)f(x)

f(x)

小的。因此我們可以將 x

xx 往導數的反方向移動一小步來減小 f(x

)f(x)

f(x)

。這種技術被稱為 梯度下降(gradient descent)(cauchy, 1847)。

需要注意的是,在這裡的 f(x

)f(x)

f(x)

和 xx

x 分別是指的損失函式和損失函式的輸入項 y

^\hat

y^​ ,而使用鏈式求導求解線性回歸時,最終要得到的是損失函式對權重 w

ww 的偏導。

有了梯度下降法後線性回歸的優化就變的簡單了,只需要求解目標函式 f(x

)f(x)

f(x)

對 xx

x 的偏導 ∇xf

(x

)\nabla xf(x)

∇xf(x)

並使 x

xx 減去 ϵ∇x

f(x)

\epsilon \nabla xf(x)

ϵ∇xf(x

) 即可,以常見的損失函式mse為例:

f (x

)=(a

x−b)

2f(x)=(ax-b)^2

f(x)=(

ax−b

)2∇ xf

(x)=

a⊤(a

x−b)

=a⊤a

x−a⊤

b\nabla xf(x) = a^\top (ax − b) = a^\top ax − a^\top b

∇xf(x)

=a⊤(

ax−b

)=a⊤

ax−a

⊤bx ←x

−ϵ∇x

f(x)

x\leftarrow x - \epsilon \nabla xf(x)

x←x−ϵ∇

xf(x

)鏈式法則是用於求乙個復合函式的導數, 對於乙個普通函式y=f

(x)=

wy=f(x)=w

y=f(x)

=w, 求導過程

todo

(深度學習)神經網路基礎

一 神經網路定義 playground 通過這個位址了解神經網路 1.人工神經網路 artificial neural network,簡寫為ann 也簡稱為神經網路 nn 分別輸入層,輸出層以及隱藏層 2.特點 每個連線都有個權值,同一層神經元之間沒有連線,最後的輸出結果對應的層也稱之為全連線層 ...

神經網路多元線性回歸

jupyter notebook import pandas as pd import numpy as np import tensorflow as tf import matplotlib.pyplot as plt matplotlib inline 資料 讀取資料 data pd.read...

機器學習,深度學習,神經網路,深度神經網路

先來說一下這幾者之間的關係 人工智慧包含機器學習,機器學習包含深度學習 是其中比較重要的分支 深度學習源自於人工神經網路的研究,但是並不完全等於傳統神經網路。所以深度學習可以說是在傳統神經網路基礎上的公升級。神經網路一般有輸入層 隱藏層 輸出層,一般來說隱藏層大於2的神經網路就叫做深度神經網路,深度...