[翻譯5.3] Common Layers (上)





2017年8月19日星期六整理第五章部分

此處給出本節(jié)的代碼:https://github.com/Leechen2014/TensorFlow-for-Machine-Intelligence

相關(guān)的文件描述在github中給出洒忧。

PS:翻譯來源:

http://shop.oreilly.com/product/9781939902351.do




PS: 我發(fā)現(xiàn):? 最近發(fā)現(xiàn)蝴韭,短文比較好一些。 如果按照章節(jié)來上傳文章熙侍,會導致文章太長榄鉴。 我也沒有寫摘要履磨。而且在翻譯的時候我會有一些自己的想發(fā)。

于是決定:從5.3 以后的每個章節(jié)會給出自己的寫的摘要庆尘,同時會以PS的方式給出自己對作者這句話的理解蹬耘。文中有翻譯不恰當?shù)牡胤剑埓蠹叶喽嗯u指教减余。另外給出我的郵箱综苔。如果有想要一起翻譯并研讀機器學習的同學請發(fā)郵件給我: zhen_2016@qq.com;?? 多謝了


摘要:

5.3Common Layers 會 以上下兩部分發(fā)布。

上部分主要涉及? tf的卷積以及 激活函數(shù) 的操作與實現(xiàn)

下部分 主要涉及 池化層的實現(xiàn)以及 Normalization 和High Level Layers



對于要被認為是CNN的神經(jīng)網(wǎng)絡(luò)架構(gòu)而言位岔,它需要至少一個卷積層(tf.nn.conv2d)如筛。才能稱為CNN。單層的CNN有著實際應(yīng)用(邊緣檢測)抒抬,而對于圖像的識別和分類杨刨,通常使用的是不同類型的layer來支持卷積層的。這些layers會有助于減少過擬合擦剑、加速訓練妖胀、降低對內(nèi)存使用。

本章中涵蓋的層次集中在CNN架構(gòu)中常用的layer上惠勒。這些layer不限于僅應(yīng)用于CNN赚抡,他們還可以為其他的網(wǎng)絡(luò)架構(gòu)設(shè)計的層混合使用。

Convolution Layers(tf.nn.conv2d)

tf.nn.conv2d是卷積層的一種類型纠屋,它在前面的章節(jié)中已被詳細描述涂臣。但是對于高水平的用戶還是有一些有用的notes。Tensorflow中的卷積層并不會做完全的卷積售担,詳細的內(nèi)容可以到Tensorflow

API 說明文檔中找到赁遗。在實踐中,性能是tensorflow的操作和卷積的差異族铆。TensorFlow使用一種技術(shù)來加速所有不同類型的卷積層的卷積運算岩四。

每種類型的卷積層都有用例,但是tf.nn.conv2d是一個很好的起點哥攘。其他類型的卷積在構(gòu)建能夠進行對象識別和分類的網(wǎng)絡(luò)中是有用的但不是必需的剖煌。包括每個的簡要摘要。


tf.nn.depthwise_conv2d

當需要一個卷積的輸出作為另一個卷積的輸入的時候献丑,可以使用這種卷積末捣。這里有一個使用該卷積按照inception 結(jié)構(gòu)來創(chuàng)建網(wǎng)絡(luò)結(jié)構(gòu)的高級用例。


tf.nn.separable_conv2d

這個卷積類的作用和tf.nn.conv2d相似创橄,但是并不可以替代tf.nn.conv2d。對于較大的模型莽红,我們可以用它來替代tf.nn.conv2d卻不犧牲精度妥畏。對于小型模型邦邦,它將會以差的精度快速收斂。


tf.nn.conv2d_transpose

這將內(nèi)核應(yīng)用于新功能圖(特征圖醉蚁,feature map)燃辖,其中每個部分都填充與內(nèi)核相同的值。隨著內(nèi)核跨越新的圖像网棍,任何重疊的部分都被合并在一起黔龟。Stanford’s

CS231n Winter 2016: Lecture 13中有關(guān)于如何tf.nn.conv2d_transpose對可學習的上采樣(upsampling)有何作用的例子。




Activation Functions


這些函數(shù)(function)與其他層的輸出結(jié)合使用可以生成特征圖(feature map)滥玷。它們可用于平滑或可微(smooth or differentiate:PS這里涉及一點點高數(shù)的知識:函數(shù)如果可導的充要條件是函數(shù)的圖像是光滑的)某些操作的結(jié)果氏身。其目的是為了將非線性引入神經(jīng)網(wǎng)絡(luò)中。非線性意味著輸入的是曲線而不再是直線惑畴。(PS:如果是直線的話蛋欣,我們可以近似的看做離散值或者直接映射成輸入即可)。曲線能夠表示更復雜的輸入變化如贷。例如陷虎,非線性輸入能夠描述在大多數(shù)時間內(nèi)保持較小的輸入,但是周期性地具有極端的單個點杠袱。在神經(jīng)網(wǎng)絡(luò)中引用非線性可以使得網(wǎng)絡(luò)通過訓練在數(shù)據(jù)中發(fā)現(xiàn)復雜的模式(patterns)尚猿。

TensorFlow具有多種激活函數(shù)(TensorFlowhasmultiple activation functionsavailable)。在CNN中主要使用的是tf.nn.relu楣富,這是因為它可以通過丟失必要的信息來提升性能谊路。當開始學的時候(When starting out),建議使用tf.nn.relu菩彬,但高級用戶可能會創(chuàng)建自己的激活函數(shù)缠劝。這個時候需要考慮激活功能是否可用(),有幾個主要的考慮因素骗灶。


這些函數(shù)(function)與其他層的輸出結(jié)合使用可以生成特征圖(feature map)惨恭。它們可用于平滑或可微(smooth or differentiate:PS這里涉及一點點高數(shù)的知識:函數(shù)如果可導的充要條件是函數(shù)的圖像是光滑的)某些操作的結(jié)果。其目的是為了將非線性引入神經(jīng)網(wǎng)絡(luò)中耙旦。非線性意味著輸入的是曲線而不再是直線脱羡。(PS:如果是直線的話,我們可以近似的看做離散值或者直接映射成輸入即可)免都。曲線能夠表示更復雜的輸入變化锉罐。例如,非線性輸入能夠描述在大多數(shù)時間內(nèi)保持較小的輸入绕娘,但是周期性地具有極端的單個點脓规。在神經(jīng)網(wǎng)絡(luò)中引用非線性可以使得網(wǎng)絡(luò)通過訓練在數(shù)據(jù)中發(fā)現(xiàn)復雜的模式(patterns)。

TensorFlow具有多種激活函數(shù)(TensorFlowhasmultiple activation functionsavailable)险领。在CNN中主要使用的是tf.nn.relu侨舆,這是因為它可以通過丟失必要的信息來提升性能秒紧。當開始學的時候(When starting out),建議使用tf.nn.relu挨下,但高級用戶可能會創(chuàng)建自己的激活函數(shù)熔恢。這個時候需要考慮激活功能是否可用(),有幾個主要的考慮因素臭笆。

1.該函數(shù)應(yīng)該是單調(diào)(monotonic)的叙淌,因此其輸出應(yīng)隨著輸入的增加而逐漸增加。這個性質(zhì)可以使得梯度下降優(yōu)化來搜索局部最小值愁铺。

2.該函數(shù)應(yīng)該是可導(differentiable)的鹰霍,所以在函數(shù)域中的任何一點必須有一個導數(shù)。這使得梯度下降優(yōu)化使用此類型的激活函數(shù)的時候可以正常輸出帜讲。

能滿足以上條件的函數(shù)都可以考慮成為激活函數(shù)衅谷。在TensorFlow中不值得一提,畢竟是CNN架構(gòu)中常見的內(nèi)容似将。每個的簡要摘要都包含在一個小示例代碼中获黔,說明其用法。


tf.nn.relu

rectifier (rectified linear unit ),在一些文檔中被叫做斜坡函數(shù)(a ramp

function)在验,當繪制時看起來像一個滑板坡道玷氏。ReLu保持輸入的任何正數(shù)都是有線性的輸出而設(shè)置的所有負面的數(shù)字是0。他的優(yōu)點不會受到梯度消失(gradientvanishing)腋舌,并且就有[ 0盏触,正無窮]的輸出范圍。ReLu的缺點是當使用較大的學習率時块饺,它可能遭受神經(jīng)元飽和赞辩。


在這個示例中,代碼執(zhí)行的輸出結(jié)果是:


在這個例子中授艰,輸入中的整數(shù)值[-2,3]之間的一個張量(向量)辨嗽。tf.nn.relu函數(shù)運行的時候,輸出高亮顯示任何小于0的值被設(shè)置為0的值淮腾。其他輸入值保持不變糟需。


tf.sigmoid

sigmoid函數(shù)的返回值的范圍在[0.0, 1.0]。傳遞給sigmoid函數(shù)的值越大谷朝,輸出的值越靠近1.0洲押;當輸入的值越小,輸出的值越靠近0.0圆凰。sigmoid可以把任何值保持在[0.0, 1.0]范圍內(nèi)杈帐。這種能力對于訓練在[0,1]范圍內(nèi)的概率的網(wǎng)絡(luò)中是有用的。然而送朱,輸出值的減小范圍可能會導致輸入飽和和輸入變化過大的麻煩娘荡。



執(zhí)行以上程序后的輸出結(jié)果是:



在這個例子中干旁,整數(shù)的范圍被轉(zhuǎn)換為浮點值(1變?yōu)?.0)驶沼,Sigmoid函數(shù)在輸入要素上運行炮沐。結(jié)果表明,當0.0的值通過S形回怜,結(jié)果為0.5大年,這是類似物的域的中點。需要注意的是玉雾,0.5是S形的中點翔试,負值可以用作S形的輸入。


tf.tanh


雙曲正切函數(shù)(tanh)與tf.sigmoid是比較接近复旬,具有一些相同的優(yōu)點和缺點垦缅。tf.sigmoid和tf.tanh之間的主要區(qū)別在于:tf.tanh的范圍是[-1.0, 1.0]。在某些網(wǎng)絡(luò)架構(gòu)中輸出負值的能力可能是有用的驹碍。




以上程序的輸出結(jié)果是:



在本示例中壁涎,所有設(shè)置參數(shù)與tf.sigmoid示例相同,但輸出顯示了重要的區(qū)別志秃。在tf.tanh的輸出中怔球,中點為0.0,為負值浮还。如果網(wǎng)絡(luò)中的下一層沒有對負數(shù)或者是0.0的輸入做出異常判斷竟坛,則會導致程序出現(xiàn)故障。


tf.nn.dropout

基于可配置的概率將輸出設(shè)置為0.0钧舌。這個層在有些隨機性有助于訓練的情況下表現(xiàn)良好担汤。下面會給出一個示例性的情況:當被學習的模式與其相鄰功能太緊時。這個層會對正在學習的輸出增加一點噪音洼冻。

注意:該層只能在訓練中使用崭歧,因為它添加的隨機噪聲在測試時會產(chǎn)生誤導性的結(jié)果。



以上示例的輸出結(jié)果是:



在這個例子中碘赖,輸出的概率保持50%驾荣。這個層的每個執(zhí)行將具有不同的輸出(很有可能,它有點隨機)普泡。當輸出丟棄時播掷,其值設(shè)置為0.0。

PS:這個在實際情況中會常常用到撼班。你還記得dropOut是什么嘛歧匈。不知道的話看看知乎:

Krizhevsky等人是怎么想到在CNN里用Dropout和ReLu的?

DropOut解決過擬合問題

PS:為了更加直觀的對比這幾個激活函數(shù),我在知乎上找到了這個圖片砰嘁,詳情請見:

請問人工神經(jīng)網(wǎng)絡(luò)中的activation

function的作用具體是什么件炉?為什么ReLu要好過于tanh和sigmoid function?

以及http://www.cnblogs.com/neopenx/p/4453161.html




PS: 給出以上涉及的函數(shù) 曲線? :)


PS: 稍后會給以下話題:

Imagesand TensorFlow

CNNImplementation

Conclusion

有點累了勘究, 上傳太費時間了。 為什么jianshu 只有android ios 的客戶端呢斟冕?? 我要去打球 :)

by 2017年 8月19日 晚上8點2o......

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末口糕,一起剝皮案震驚了整個濱河市昌跌,隨后出現(xiàn)的幾起案子宝剖,更是在濱河造成了極大的恐慌握联,老刑警劉巖篡悟,帶你破解...
    沈念sama閱讀 212,816評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件包竹,死亡現(xiàn)場離奇詭異斟赚,居然都是意外死亡镐侯,警方通過查閱死者的電腦和手機搀继,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,729評論 3 385
  • 文/潘曉璐 我一進店門呵燕,熙熙樓的掌柜王于貴愁眉苦臉地迎上來棠绘,“玉大人,你說我怎么就攤上這事再扭⊙醪裕” “怎么了?”我有些...
    開封第一講書人閱讀 158,300評論 0 348
  • 文/不壞的土叔 我叫張陵霍衫,是天一觀的道長候引。 經(jīng)常有香客問我,道長敦跌,這世上最難降的妖魔是什么澄干? 我笑而不...
    開封第一講書人閱讀 56,780評論 1 285
  • 正文 為了忘掉前任,我火速辦了婚禮柠傍,結(jié)果婚禮上麸俘,老公的妹妹穿的比我還像新娘。我一直安慰自己惧笛,他們只是感情好从媚,可當我...
    茶點故事閱讀 65,890評論 6 385
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著患整,像睡著了一般拜效。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上各谚,一...
    開封第一講書人閱讀 50,084評論 1 291
  • 那天紧憾,我揣著相機與錄音,去河邊找鬼昌渤。 笑死赴穗,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播般眉,決...
    沈念sama閱讀 39,151評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼了赵,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了甸赃?” 一聲冷哼從身側(cè)響起柿汛,我...
    開封第一講書人閱讀 37,912評論 0 268
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎辑奈,沒想到半個月后苛茂,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體已烤,經(jīng)...
    沈念sama閱讀 44,355評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡鸠窗,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,666評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了胯究。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片稍计。...
    茶點故事閱讀 38,809評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖裕循,靈堂內(nèi)的尸體忽然破棺而出臣嚣,到底是詐尸還是另有隱情,我是刑警寧澤剥哑,帶...
    沈念sama閱讀 34,504評論 4 334
  • 正文 年R本政府宣布硅则,位于F島的核電站,受9級特大地震影響株婴,放射性物質(zhì)發(fā)生泄漏怎虫。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 40,150評論 3 317
  • 文/蒙蒙 一困介、第九天 我趴在偏房一處隱蔽的房頂上張望大审。 院中可真熱鬧,春花似錦座哩、人聲如沸徒扶。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,882評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽姜骡。三九已至,卻和暖如春屿良,著一層夾襖步出監(jiān)牢的瞬間圈澈,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,121評論 1 267
  • 我被黑心中介騙來泰國打工管引, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留士败,地道東北人。 一個月前我還...
    沈念sama閱讀 46,628評論 2 362
  • 正文 我出身青樓,卻偏偏與公主長得像谅将,于是被迫代替她去往敵國和親漾狼。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,724評論 2 351

推薦閱讀更多精彩內(nèi)容