批量,即batch,是深度學習中的乙個重要概念。批量通常指兩個不同的概念——如果對應的是模型訓練方法,那麼批量指的是將所有資料處理完以後一次性更新權重或者引數的估計;如果對應的是模型訓練中的資料,那麼批量通常指的是一次輸入供模型計算用的資料量。
基於批量概念的模型訓練通常按照如下步驟進行:
(1)初始化引數。
(2)重複以下步驟。
a.處理所有資料b.更新引數
和批量演算法相對應的是遞增演算法,其步驟如下:
(1)初始化引數。
(2)重複以下步驟
a.處理乙個或者一組資料點。b.更新引數。
這裡的主要區別是批量演算法一次處理所有的資料;而在遞增演算法中,每處理乙個或者數個觀測值就要更新一次引數。在後向傳播演算法中,「處理」對應的具體操作就是計算損失函式的梯度變化曲線。如果是批量演算法,則計算平均或者總的損失函式的梯度變化曲線;而如果是遞增演算法,則計算損失函式僅在對應於該觀測值或者數個觀測值時的梯度變化曲線。「更新」則是從已有的引數值中減去梯度變化率和學習速率的乘積。
離線學習有如下幾個優點。
1.對於任何固定個數的引數,目標函式都可以直接被計算出來,因此很容易驗證模型訓練是否在朝著所需要的方向發展。
2.計算精度可以達到任意合理的程度。
3.可以使用各種不同的演算法來避免出現區域性最優的情況
4.可以採用訓練、驗證、測試三分法對模型的普適性進行驗證
5.可以計算**值及其置信區間
偏移/閾值
在深度學習中,採用sigmoid啟用函式的隱藏層或者輸出層的神經元通常在計算網路輸入時加入乙個偏移值,稱為bias。對於線性輸出神經元,偏移項就是回歸中的截距項。
跟截距項的作用類似,偏移項可以被視為乙個由特殊神經元引起的鏈結權重,這是因為偏移項通常鏈結到乙個取固定單位值的偏移神經元。比如在乙個多層感知器神經網路中,某乙個神經元的輸入變數為n維,那麼這個神經元在這個高維空間中根據引數畫乙個超平面,一邊是正值,一邊為負值。所使用的引數決定了這個超平面在輸入空間的相對位置。如果沒有偏移項,這個超平面的位置就被限制住了,必須通過原點;如果多個神經元都需要各自的超平面,那麼就嚴重限制住了模型的靈活性。這就好比乙個沒有截距項的回歸模型,其斜率的估計值在大多數情況下會大大偏移最優估計值,因為生成的擬合曲線必須通過原點。因此,如果缺少偏移項,多層感知器的普適擬合能力就不存在了。
通常來說,每個隱藏層和輸出層的神經元都有自己的偏移項。但是如果輸入神經已經被等比例轉換到乙個有限值域中,比如[0,1]區間,那麼等第乙個隱藏層的神經元已經設定過偏移項以後,後面任何層跟這些具備偏移項的神經元有鏈結的其他神經元就不需要再額外設定偏移項了。
標準化資料
在機器學習和深度學習中,常常會出現對資料標準化這個動作。那麼什麼是標準化資料呢?其實這裡是用「標準化」這個詞代替了幾個類似的但又不同的動作。下面詳細講解三個常見的「標準化」資料處理動作。
(1)重放縮:通常指將乙個向量加上或減去乙個向量,再乘以或者除以乙個常亮。比如將華氏溫度轉換成攝氏溫度就是乙個重放縮的過程。
(2)規範化:通常指將乙個向量除以其範數,比如採用歐式空間距離,即用向量的方差作為範數來規範化向量。在深度學習中,規範化通常採用極差為範數,即將向量減去最小值,並除以其極差,從而使數值範圍在0和1之間。
(3)標準化:通常指將乙個向量移除其位置和規模的度量。比如乙個服從正態分佈的向量,可以減去其均值,並除以其方差來標準化資料,從而獲得乙個服從標準正態分佈的向量。
深度學習(一)深度學習的概念
深度學習是機器學習與神經網路 人工智慧 圖形化建模 優化 模式識別和訊號處理等技術融合後產生的乙個領域。深度學習網路是神經網路革命性的發展,人們甚至認為可以用它來建立更加強大的 模型。深度學習使用多層機器學習模型對資料進行有監督學習或無監督學習。模型中的不同層由非線性資料變換的多個階段組成,資料的特...
深度學習的概念
在人工智慧的早期,那些對人類智力來說非常困難 但對計算機來說相對簡單 的問題得到迅速解決,比如,那些可以通過一系列形式化的數學規則來描述的問題。人工智慧的真正挑戰在於解決那些對人來說很容易執行 但很難形式化描述的任務,如識別人們所說的話或影象中的臉。對於這些問題,我們人類往往可以憑藉直覺輕 易地解決...
深度學習概念
深度學習是基於機器學習延伸出來的乙個新的領域,由以人大腦結構為啟發的神經網路演算法為起源加之模型結構深度的增加發展,並伴隨大資料和計算能力的提高而產生的一系列新的演算法。深度學習什麼時間段發展起來的?其概念由著名科學家geoffrey hinton等人在2006年和2007年在 sciences 等...