1. 程式人生 > >【機器學習trick】Batch-Normalization的理解和研究

【機器學習trick】Batch-Normalization的理解和研究

Batch-Normalization概述

15年穀歌發表了一篇文章,名字是《Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift》,文章介紹了一種新的深度學習演算法,可以有效的提高模型的效率和精度。
在介紹原理之前,首先要提一下關於資料分佈的問題。我們在使用機器學習訓練資料的時候,一般都會對資料進行歸一化(?)白化(?)或者減去均值等操作,這是因為
將資料分佈中心移到原點附近,能使函式更快的擬合,加快訓練速度。
資料分佈
(關於歸一化的問題將另寫一篇文章討論),那麼我們就會發現一個問題,經過神經網路一層的計算後,得到的輸出的分佈又發生了變化,文中稱這種情況為Internal Covariate Shift,所以這會對後面的處理產生效率和精度方面的影響,BN的作用其實就是在網路內部對資料再次進行標準化,物件是已經提取出來的特徵。
總之BN的優點非常多,包括收斂速度快,泛化能力強等,給使用者帶來的優勢就是更節省時間,而且可以一定程度上擺脫dropout和L2 正則化等糾正過擬合的trick,當然具體的效果還是要根據自己實驗的資料來判定。

BN基本原理

首先考慮的問題是我們如何處理神經網路內部的資料,理論上來說直接做一次標準化就可以,但是文章中提出這麼做的話會影響模型的表達能力,如圖中表示。假設是模型使用的啟用函式是sigmoid函式,標準化以後就相當於把資料限定在了函式的線性部分,其他部分都被忽略掉了。
表達能力
所以作者重構了一下原來的公式,使其可以表達提取的特徵,
這裡寫圖片描述
BN層的前向傳導過程
BNFF
具體的細節以後補充

相關推薦

機器學習trickBatch-Normalization理解研究

Batch-Normalization概述 15年穀歌發表了一篇文章,名字是《Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shif

機器學習筆記:一文讓你徹底理解準確率,精準率,召回率,真正率,假正率,ROC/AUC

作者:xiaoyu 微信公眾號:Python資料科學 非經作者允許,禁止任何商業轉載。 ROC/AUC作為機器學習的評估指標非常重要,也是面試中經常出現的問題(80%都會問到)。其實,理解它並不是非常難,但是好多朋友都遇到了一個相同的問題,那就是:每次看書的時候

機器學習基礎理解為什麼機器可以學習1——PAC學習模型

引言 自從下定決心認真學習機器學習理論開始,接觸到很多基本問題,但其實都不是很理解,比如損失函式、風險函式、經驗結構最小化、結構風險最小化、學習方法的泛化能力、VC維等,這些概念在學習中都純屬空泛的概念存在,我都不理解這些概念存在的意義。 為什麼會存在這樣的問題呢?我自

機器學習基礎理解為什麼機器可以學習——Hoeffding不等式

引入 在上一小節“理解為什麼機器可以學習——PAC學習模型”中,我們主要討論了假設的錯誤率問題和如何說一個學習器是可學習的,並給出了PAC學習理論。這一小節,我們將沿著這個方向,討論一下,有限假設空間的樣本複雜度,並用Hoeffding不等式來界定概率邊界。 假設空間的樣本

機器學習筆記第二章:模型評估與選擇

機器學習 ini ppi 第二章 err cap ner rate rac 2.1 經驗誤差與過擬合 1. error rate/accuracy 2. error: training error/empirical error, generalization error

機器學習實戰第13章 利用 PCA 來簡化數據

light nan 文本 com axis 均值 ... cati 二維空間 第13章 利用 PCA 來簡化數據 降維技術 場景 我們正通過電視觀看體育比賽,在電視的顯示器上有一個球。 顯示器大概包含了100萬像素點,而球則可能是由較少的像素點組成,例如說一千個像素

機器學習筆記自組織映射網絡(SOM)

非線性 每一個 可能 合作 空間 找到 節點 視覺 網格 什麽是自組織映射? 一個特別有趣的無監督系統是基於競爭性學習,其中輸出神經元之間競爭激活,結果是在任意時間只有一個神經元被激活。這個激活的神經元被稱為勝者神經元(winner-takes-all neuron)。這種

機器學習實戰樸素貝葉斯

一.概述 二.理論基礎 三.文件分類 四.垃圾郵件過濾 五.從個人廣告中獲取區域傾向 六.程式碼問題總結 七.總結   一、概述 貝葉斯分類是一類分類演算法的總稱,這類演算法均以貝葉斯定理為基礎,故統稱為貝葉斯分類。本章首先介紹貝葉斯分類演算法的基礎——

機器學習模型整合學習總結

整合學習 一. 同質整合 1. Boosting 2. Bagging 3. Stacking 二. 異質整合 1. 平均法 2. 投票法 3. 學習法(Stacking)

機器學習決策數

剪枝是決策樹學習演算法對付“過擬合”的主要手段。過擬合的原因可能是:為了儘可能的正確分類訓練樣本,結點劃分過程不斷重複,有時會造成決策樹分支過多,這是可能因訓練樣本學的討“太好”了,以至於出現過擬合的情況,因此可以主動的去掉一些分支降低過擬合的風險。 通常會採取預剪枝和後剪枝的方法

機器學習利用K-means壓縮圖片

在學習機器的過程中,發現了K-means的一種應用,遂那這個例子,練練手,增加對K-means的理解。  # -- encoding:utf-8 -- """ Create by yexm on 2018/11/24 """ # coding:utf-8 import matplot

機器學習貝葉斯NB

程式碼先貼上,後續總結 from numpy import * # 過濾網站的惡意留言 侮辱性:1 非侮辱性:0 # 建立一個實驗樣本 def loadDataSet(): postingList = [['my','dog','has','flea','problems','h

機器學習KNN

程式碼如下,其中資料集trainingDigits可以從我的 網盤.上下載,提取碼:cbun 永久有效 #手寫識別 32x32 from numpy import * import operator import time from os import listdir def cla

機器學習SVM

機器學習中一般用的比較多的是整合學習演算法如bagging和boosting,以及SVM。這2個演算法的效果好。且對資料的分佈沒有啥要求。今天要講的是SVM即支援向量機。 SVM的定義 支援向量機(Support Vecor Machine, SVM)本身是一個二元分類演算法,是 對感知器演

機器學習梯度下降法K-means優化演算法

K-means演算法延伸 對於之前的一篇文章中說過K-means雖然效果可以,但是對給定的K值敏感,簇中心位置敏感以及計算量大。所以針對以上兩點有了一些優化的方法。 對於給定的K值偏大或者偏小都將影響聚類效果。而由於對於需要聚類的資料本身沒有一個y值即分類值,這正是需要演算法最後得出的。所以

機器學習梯度下降法KMeans

KMeans聚類的思想: 給定一個有M個物件的資料集,構建一個具有k個簇的模型,其中k<=M。滿 足以下條件: • 每個簇至少包含一個物件 • 每個物件屬於且僅屬於一個簇 • 將滿足上述條件的k個簇成為一個合理的聚類劃分 • 基本思想:對於給定的類別數目k,首先給定初始劃分,通過迭代改

機器學習實戰FP-growth演算法詳解

Here is code 背景 apriori演算法 需要多次掃描資料,I/O 大大降低了時間效率 1. fp-tree資料結構 1> 項頭表 記錄所有的1項頻繁集出現的次數,並降序排列 2> fp tree 根據項頭表,構建fp樹 3>

機器學習123緒論

under ont 任務 做出 開始 tex 訓練 預測 筆記 買了周誌華老師的機器學習實體書,集合牛網友的網絡筆記開始一個月的ML學習 https://blog.csdn.net/u011826404/article/details/75577216 雖然研究生也選修過,

機器學習123模型評估與選擇 (上)

  第2章 模型評估與選擇 2.1 經驗誤差與過擬合 先引出幾個基本概念: 誤差(error):學習器的實際預測輸出與樣本的真實輸出之間的差異。 訓練誤差(training error):學習器在訓練集上的誤差,也稱“經驗誤差”。 測試誤差(testing error):學習器在測試集上的

機器學習筆記線性迴歸之最小二乘法

線性迴歸    線性迴歸(Linear Regreesion)就是對一些點組成的樣本進行線性擬合,得到一個最佳的擬合直線。 最小二乘法    線性迴歸的一種常用方法是最小二乘法,它通過最小化誤差的平方和尋找資料的最佳函式匹配。 代數推導    假設擬合函式為 y