CS231N 5 神經網路靜態部分 資料預處理等

2022-03-09 06:27:55 字數 2048 閱讀 3944

1. 白化

​ 白化操作的輸入是特徵基準上的資料,然後對每個維度除以其特徵值來對數值範圍進行歸一化。該變換的幾何解釋是:如果資料服從多變數的高斯分布,那麼經過白化後,資料的分布將會是乙個均值為零,且協方差相等的矩陣。該操作的**如下:

# 對資料進行白化操作:

# 除以特徵值

xwhite = xrot / np.sqrt(s + 1e-5)

​ 警告:誇大的雜訊。注意分母中新增了1e-5(或乙個更小的常量)來防止分母為0。該變換的乙個缺陷是在變換的過程中可能會誇大資料中的雜訊,這是因為它將所有維度都拉伸到相同的數值範圍,這些維度中也包含了那些只有極少差異性(方差小)而大多是雜訊的維度。在實際操作中,這個問題可以用更強的平滑來解決(例如:採用比1e-5更大的值)。

2. 預處理注意

​ 任何預處理策略(比如資料均值)都只能在訓練集資料上進行計算,演算法訓練完畢後再應用到驗證集或者測試集上。(避免過擬合等)

3.權重初始化

4. 正則化

""" 普通版隨機失活: 不推薦實現 (看下面筆記) """

p = 0.5 # 啟用神經元的概率. p值更高 = 隨機失活更弱

def train_step(x):

""" x中是輸入資料 """

# 3層neural network的前向傳播

h1 = np.maximum(0, np.dot(w1, x) + b1)

u1 = np.random.rand(*h1.shape) < p # 第乙個隨機失活遮罩

h1 *= u1 # drop!

h2 = np.maximum(0, np.dot(w2, h1) + b2)

u2 = np.random.rand(*h2.shape) < p # 第二個隨機失活遮罩

h2 *= u2 # drop!

out = np.dot(w3, h2) + b3

# 反向傳播:計算梯度... (略)

# 進行引數更新... (略)

def predict(x):

# 前向傳播時模型整合

h1 = np.maximum(0, np.dot(w1, x) + b1) * p # 注意:啟用資料要乘以p

h2 = np.maximum(0, np.dot(w2, h1) + b2) * p # 注意:啟用資料要乘以p

out = np.dot(w3, h2) + b3

""" 

反向隨機失活: 推薦實現方式.

在訓練的時候drop和調整數值範圍,測試時不做任何事.

"""p = 0.5 # 啟用神經元的概率. p值更高 = 隨機失活更弱

def train_step(x):

# 3層neural network的前向傳播

h1 = np.maximum(0, np.dot(w1, x) + b1)

u1 = (np.random.rand(*h1.shape) < p) / p # 第乙個隨機失活遮罩. 注意/p!

h1 *= u1 # drop!

h2 = np.maximum(0, np.dot(w2, h1) + b2)

u2 = (np.random.rand(*h2.shape) < p) / p # 第二個隨機失活遮罩. 注意/p!

h2 *= u2 # drop!

out = np.dot(w3, h2) + b3

# 反向傳播:計算梯度... (略)

# 進行引數更新... (略)

def predict(x):

# 前向傳播時模型整合

h1 = np.maximum(0, np.dot(w1, x) + b1) # 不用數值範圍調整了

h2 = np.maximum(0, np.dot(w2, h1) + b2)

out = np.dot(w3, h2) + b3

5. 分類問題
當面對乙個回歸任務,首先考慮是不是必須使用回歸模型。一般而言,盡量把你的輸出變成二分類,然後對它們進行分類,從而變成乙個分類問題。

CS231N 4 神經網路

1.sigmoid sigmoid將輸入實數值 擠壓 到0到1範圍內。更具體地說,很大的負數變成0,很大的正數變成1。它對於神經元的啟用頻率有良好的解釋 從完全不啟用到在求和後的最大頻率處的完全飽和 saturated 的啟用。然而現在sigmoid函式實際很少使用了,這是因為它有兩個主要缺點 2....

cs231n 神經網路筆記 部分總結工作1

cs231n神經網路nn 或稱為人工神經網路ann或稱為多層感知器mlp 基礎知識部分集中在ppt的lecture05 lecture07,且有整理的筆記 搜尋關鍵字都能搜到 已經算是非常棒了,此處僅針對個人再做下簡化 整理。神經網路個人理解可以看作是線性函式和非線性函式的組合,所以只要組合得夠好在...

cs231n筆記04 神經網路訓練(上)

主要有三種預處理形式。均值減法,每個特徵減去平均值,使每個維度中心移到原點。歸一化,使資料在各個維度規模差不多。如果是0中心的,可以用資料除它的標準差,另一種形式是最大最小歸一化,使資料在 1,1 pca和白化。首先,將資料中心化,再計算資料協方差矩陣。協方差矩陣svd分解,u的列是特徵向量,將已經...