1. 程式人生 > >[6]深度學習和Keras---- 深度學習中的一些難理解的基礎概念:softmax, batch,min-batch,iterations,epoch,SGD

[6]深度學習和Keras---- 深度學習中的一些難理解的基礎概念:softmax, batch,min-batch,iterations,epoch,SGD

在進行深度學習的過程中,我們經常會遇到一些自己不懂的概念和術語,比如,softmax, batch,min-batch,iterations,epoch,那麼如何快速和容易的理解這些術語呢? 因為筆者也是深度學習的初學者,所以筆者在學習和瀏覽文章的過程中,把一些自己不太容易和理解的一些概率記錄了下來。希望對其他初學者也有所幫助。

@softmax 函式

softmax是一個函式,其主要用於輸出節點的分類,它有一個特點,所以的值相加會等於1. 從李巨集毅老師的PPT裡面找到了一張圖,感覺解釋的非常形象。先借花獻福分享給大家。


具體例子,可以舉影象識別,比如影象識別數字,0~9, 線設定影象識別的輸出數字為10個輸出節點,然後通過softmax演算法,算出對於一張影象的輸入,其經過神經網路的計算,會輸出10個值,那當前輸出的值就是0~9的可能性,但是總和是1.那個數字的輸出的概率最大,則這次手寫數字的識別結果就是那個數字。

@ batch VS min_batch VS Iteration

在學習深度學習或者使用Keras框架的時候,我們經常會遇到比如,設定batch和min-batch的值,讓其來訓練輸入樣本。 為了更好的理解這個概念,我們可以舉一個例子,

比如,我們有1050個樣本,如果我們設定 batch_size等於100(這個時候100就是min_batch),演算法則會首先從訓練集取前100(1~100)個輸入資料去訓練網路;下一次取(101~200),我們一直這樣迴圈,

知道我們把所有的訓練樣本都取到了。但是問題經常會發生在最後一個訓練樣本。比如1050不能被100整除,這個時候,我們對於後面的50個樣本可以單獨拿出來訓練;所以總共是11次訓練其網路引數的Iteration(迭代)。如果設定我們設定了batch等於1050,也就是全集(這個時候1050就是全集),同時也訓練11次(Iteration)。

  • min_batch的優點:

             只需要更少的記憶體

              訓練速度快

  • min_batch的缺點:

              精度低

具體請見下面一張圖。


@ Epoch

Epoch就是把訓練陣列全部訓練完成的一個正向和反向計算的過程。比如,我們有1000個樣本,batch size是500,其將會有2個Iterations。這兩個Iteration完成一個

Epoch。太拗口了。。。。。。。。。。

後面遇到,將會繼續待續。。。。。。。

@ SGD

SGD就是Stochastic gradient descent的縮寫,翻譯成中文就是隨機梯度下降。在Keras中,可以作為一種優化器使用,通過SGD演算法可以讓我們快速找到神經網路模型引數的最優化的值。

參考文獻:

https://stats.stackexchange.com/questions/153531/what-is-batch-size-in-neural-network

http://sebastianruder.com/optimizing-gradient-descent/

相關推薦

[6]深度學習Keras---- 深度學習一些理解基礎概念softmax batchmin-batchiterationsepochSGD

在進行深度學習的過程中,我們經常會遇到一些自己不懂的概念和術語,比如,softmax, batch,min-batch,iterations,epoch,那麼如何快速和容易的理解這些術語呢? 因為筆者也是深度學習的初學者,所以筆者在學習和瀏覽文章的過程中,把一些自己不太容易和

[4]深度學習Keras----斯坦福的一個可線上執行的卷積神經網路的Demo

學習深度學習,肯定要接觸CNN(卷積神經網路)和RNN(迴圈神經網路),剛好斯坦福大學給出了一個線上的卷積神經網路的例子,方便大家學習和了解深度學習。這個Demo從MNIST資料庫中取出了60000張28X28畫素的圖片作為訓練的樣本;那麼什麼是MNIST資料庫呢》MNIST

深度學習自然語言處理的attentionmemory機制

Attention機制是最近深度學習的一個趨勢。在一次採訪中,OpenAI的研究總監Ilya Sutskever說attention機制是最令人興奮的進步之一,而且已經廣為使用。聽起來激動人心吧。但attention機制究竟是什麼呢?神經網路裡的attentio

[3]深度學習Keras----Keras深度學習框架入門例子

只要是程式設計師都知道,學習一門新的語言或者框架的時候,第一個自己敲入且執行的程式,都一個HelloWorld的程式、筆者也不例外,當筆者把Keras在Unbuntu系統安裝好之後,早已掩蓋不住激動的心,然後想在Keras上面執行一個HelloWorld的例子。後面筆者參考了

[7]深度學習Keras---- 快速入門心得

上個禮拜終於給公司技術達人們分享完了深度學習和Keras,這其中也走過了不少的彎路。比如筆者一上來就開始看Keras,看TenseFlow,看Theano,一下子買了4五本類似的書,結果看了半天,感覺索

深度學習框架---keras的層次示意圖---方便直觀理解---適用sklearn模型的展示

感覺keras確實比其他框架舒服一點,但是前期理解keras層的時候可能有點小問題,keras的層使用了原始神經網路層的概念,即先有上層的輸出聚合,聚合後在進入啟用函式。我的環境是python3.5+tensorflow+keras+graphviz+pydot_ng+pydotplus 其中

深度學習傳統機器學習的差別

特徵構造 是否需要人工構造特徵,這應該是深度學習和傳統機器學習的最明顯的差異。feature engining是傳統機器學習中的一個重要組成部分,sift,hog,wavelet等都是解決如何描述資料的問題。深度學習興起後,feature engining的研究幾乎停滯,而end-t

深度學習系列Part2遷移學習微調深度卷積神經網路

http://www.jiqizhixin.com/article/1465 本文是微軟資料科學家 Anusua Trivedi 所寫的《Deep Learning》系列文章的第二部分,是對遷移學習和微調深度卷積神經網路的介紹。機器之心此前也已經編譯了該系列的第一部分

作業系統(6)--IO管理磁碟排程學習筆記

IO緩衝:在輸入請求發出之前就開始執行輸入傳送,並且在輸出請求發出一段時間之後才開始執行輸出傳送,這項技術成為緩衝; 執行IO的裝置物件是: 1、塊裝置,可以隨機訪問,例如硬碟、快閃記憶體等; 2、流裝置,必須順序訪問,例如串列埠和鍵盤; 塊裝置中最小的可定址單位是扇區,一

Deep learning發展歷程的監督學習非監督學習

1. 前言 在學習深度學習的過程中,主要參考了四份資料: 對比過這幾份資料,突然間產生一個困惑:臺大和Andrew的教程中用了很大的篇幅介紹了無監督的自編碼神經網路,但在Li feifei的教程和caffe的實現中幾乎沒有涉及。當時一直搞不清這種現象的原因,直到翻閱了深度學習的發展史之後,才稍微有了些眉目。

機器學習神經網路學習一些體會

隨著AI的快速崛起,學習AI的人越來越多,但發現好多人貌似學習了好久,但還是不太明白自己在學習什麼,感覺AI很厲害但不知道究竟是在幹些什麼? 我們總結AI的本質,其實主要就是兩大方面:一:我們首先要有一個目標函式,如:以均方差定義的目標函式(所謂的目標函式雖然衡量的標準表示

ml入門系列三監督學習無監督學習

tex tin swa core logging eba webapi handle 5% %E6%9C%89%E5%85%B3handler%E7%94%A8%E6%B3%95%E6%B1%82%E5%8A%A9%E5%95%8A aspnetcoremvc?????÷

監督學習無監督學習半監督學習

思想 learn 尋找 很多 ear 目標 dsm 工作 變量 概念:監督學習、無監督學習與半監督學習 監督學習 : supervised learning 無監督學習 : unsupervised learning 半監督學習 : semi-supervised le

有監督學習無監督學習

得到 機器學習 事先 分辨 是什麽 輸入數據 評價 一個 style 機器學習的常用方法,主要分為有監督學習(supervised learning)和無監督學習(unsupervised learning)。   監督學習,就是人們常說的分類,通過已有的訓練樣本(即已

【IM】關於稀疏學習魯棒學習理解

主要是理解L1和L2正則化,魯棒學習中也是圍繞L1殘差和L2方差損失來提出模型。關於魯棒學習,對於異常值的魯棒性有兩方面:一是對現有樣本中異常點的魯棒性;二是對新增異常點的魯棒性。 關於L1和L2正則化,參考如下博文理解: https://blog.csdn.net/fjssharpsw

有監督學習無監督學習的簡單理解

文章轉載自:http://blog.sina.com.cn/s/blog_4d7c97a00102w958.html 有監督學習和無監督學習的區別是什麼?        這個問題可以回答得很簡單:是否有監督(supe

有監督學習無監督學習的區別

機器學習的常用方法,主要分為有監督學習(supervised learning)和無監督學習(unsupervised learning)。監督學習,就是人們常說的分類,通過已有的訓練樣本(即已知資料以及其對應的輸出)去訓練得到一個最優模型(這個模型屬於某個函式的集合,最優則

監督學習無監督學習區別

前言 機器學習分為:監督學習,無監督學習,半監督學習(也可以用hinton所說的強化學習)等。 在這裡,主要理解一下監督學習和無監督學習。 監督學習(supervised learning) 從給定的訓練資料集中學習出一個函式(模型引數),當新的資料到來時,可以根據這個函式預測結果。監督學習的訓練集要求包

大資料12_SparkMLlib監督學習無監督學習區別

         那麼,什麼時候應該採用監督學習,什麼時候應該採用非監督學習呢?我也是從一次面試的過程中被問到這個問題以後才開始認真地考慮答案。一種非常簡單的回答就是從定義入手,如果我們在分類的過程中有訓練樣本(training data),則可以考慮用監督學習的方法;如果沒有訓練樣本,則不可能用監督學習的方

監督學習無監督學習

        機器學習的常用方法,主要分為有監督學習(supervised learning)和無監督學習(unsupervised learning)。監督學習,就是人們常說的分類,通過已有的訓練樣本(即已知資料以及其對應的輸出)去訓練得到一個最優模型(這個模型屬於某個