TensorFlow學(xué)習(xí)(二)

前言

卷積神經(jīng)網(wǎng)絡(luò)(CNN)漓踢,也稱為卷積網(wǎng)絡(luò),是一種專門(mén)用來(lái)處理具有類似網(wǎng)格結(jié)構(gòu)的數(shù)據(jù)的神經(jīng)網(wǎng)絡(luò),如時(shí)間序列數(shù)據(jù)(一維網(wǎng)格)和圖像數(shù)據(jù)(二維像素網(wǎng)格)午乓,主要應(yīng)用于圖像識(shí)別領(lǐng)域。它也是一種前饋神經(jīng)網(wǎng)絡(luò)闸准,是指在該網(wǎng)絡(luò)中益愈,各神經(jīng)元從輸入層開(kāi)始,接收前一級(jí)輸入,并輸出到下一級(jí)蒸其,直至輸出層敏释,整個(gè)網(wǎng)絡(luò)中無(wú)反饋,如下所示:

前饋神經(jīng)網(wǎng)絡(luò)

卷積神經(jīng)網(wǎng)絡(luò)一般含有多個(gè)卷積層摸袁,池化層钥顽,以及激活層全鏈接層

卷積層的一些小事

在卷積神經(jīng)網(wǎng)絡(luò)中靠汁,將一個(gè)卷積過(guò)程定義為y = x * w耳鸯,其中x是輸入(input),w是卷積核(kernel)函數(shù)膀曾,y作為輸出也稱作特征映射(feature map)县爬。圍繞這個(gè)等式,探討下卷積神經(jīng)網(wǎng)絡(luò)相較傳統(tǒng)神經(jīng)網(wǎng)絡(luò)的三個(gè)改進(jìn)點(diǎn):稀疏交互添谊、參數(shù)共享以及等變表示财喳。

一個(gè)卷積過(guò)程,4*4藍(lán)色平面上的3*3陰影為卷積核斩狱,2*2為輸出結(jié)果y

1.稀疏交互
也稱作稀疏(sparse)連接或稀疏權(quán)重耳高。

先舉個(gè)栗子:

當(dāng)處理一張圖片時(shí),輸入的圖像可能包含成千上萬(wàn)個(gè)像素點(diǎn)所踊,但是通過(guò)與等式中的w核卷積后泌枪,就可以得到這張圖中有意義的特征(例如圖像的邊緣信息),相比輸入圖秕岛,提取出特征圖的像素點(diǎn)大大減少碌燕,并且該kernel只占有幾十到上百個(gè)像素,這個(gè)過(guò)程就可以理解為稀疏交互继薛。

再舉個(gè)栗子:

如果有m個(gè)輸入和n個(gè)輸出修壕,那么使用傳統(tǒng)神經(jīng)網(wǎng)絡(luò)(矩陣乘法)需要mn個(gè)參數(shù),從而學(xué)習(xí)一次的時(shí)間復(fù)雜度為O(m*n)遏考。而如果限制*每一個(gè)輸出擁有的連接數(shù)為k慈鸠,則該方法學(xué)習(xí)一次的時(shí)間復(fù)雜度為O(k*n),k只需比m小幾個(gè)數(shù)量級(jí)即可灌具。

稀疏連接青团,每幅圖從下往上看

應(yīng)用于圖像,就是經(jīng)過(guò)卷積操作的網(wǎng)絡(luò)咖楣,不再是對(duì)每個(gè)像素的輸入信息做處理了督笆,而是對(duì)圖片上每一小塊像素區(qū)域進(jìn)行處理

總結(jié)下就是截歉,卷積網(wǎng)絡(luò)的稀疏交互特性胖腾,使得模型存儲(chǔ)的參數(shù)更少烟零,不僅節(jié)省了內(nèi)存瘪松,也提高了統(tǒng)計(jì)效率咸作。更進(jìn)一步,該特性使得宵睦,得到輸出結(jié)果所需要的計(jì)算量更少了记罚,以及提高了模型的泛化能力

2.參數(shù)共享
在傳統(tǒng)的神經(jīng)網(wǎng)絡(luò)中壳嚎,權(quán)重矩陣的每個(gè)元素對(duì)對(duì)應(yīng)的輸入元素只使用一次桐智,而在卷積網(wǎng)絡(luò)中,的每個(gè)元素都作用在輸入的每個(gè)位置上烟馅。參數(shù)共享特性保證了網(wǎng)絡(luò)只需要學(xué)習(xí)一個(gè)參數(shù)的集合说庭,而不是對(duì)每個(gè)位置都學(xué)習(xí)一個(gè)單獨(dú)的參數(shù)集合。同樣郑趁,參數(shù)共享特性也降低了模型的存儲(chǔ)大小刊驴,畢竟不是每個(gè)元素都學(xué)習(xí)一個(gè)參數(shù)。

3.等變表示
參數(shù)共享使得神經(jīng)網(wǎng)絡(luò)具有對(duì)平移等變的性質(zhì)(如果一個(gè)函數(shù)滿足輸入改變寡润,輸出也以同樣方式改變捆憎,則該函數(shù)是等變的)。對(duì)于卷積函數(shù)梭纹,先進(jìn)行平移變換再進(jìn)行卷積所得到的結(jié)果和先做卷積再做平移變換得到的結(jié)果是一樣躲惰。

簡(jiǎn)單地說(shuō),如果移動(dòng)輸入中的對(duì)象变抽。那它卷積后的特征表示也會(huì)移動(dòng)同樣的量础拨。例如,輸入圖像的左上角有一個(gè)人臉绍载,那經(jīng)過(guò)卷積太伊,人臉的特征(眼睛,鼻子)也位于特征圖的左上角逛钻。對(duì)應(yīng)的如果人臉特征在圖像的左下角僚焦,那么卷積后對(duì)應(yīng)的特征也在特征圖的左下角。等變性意味著即使目標(biāo)的外觀發(fā)生了某種變化曙痘,但是網(wǎng)絡(luò)依然可以把它識(shí)別出來(lái)芳悲,這也是卷積網(wǎng)絡(luò)學(xué)習(xí)能力的體現(xiàn)。

4.TensorFlow中的卷積函數(shù)
一個(gè)卷積核只能提取某一個(gè)特征边坤,多個(gè)卷積核就能提取多個(gè)豐富的特征(至于為什么卷積操作可以提取特征名扛,會(huì)在池化層中介紹),所以經(jīng)常見(jiàn)到一個(gè)卷積網(wǎng)絡(luò)中有許多的卷積操作茧痒。

TensorFlow中對(duì)卷積等一些列操作進(jìn)行了很多封裝(tf.nn肮韧、tf.layers、tf.contrib,它們的封裝程度依次遞增)弄企,但大體的用法是差不多的超燃。一般一個(gè)卷積函數(shù)的基本參數(shù)包括以下幾個(gè)(其他參數(shù)可以訪問(wèn)tensorflow官方文檔查看):

  • 輸入:一個(gè)4維tensor,第一維表示batch-size(訓(xùn)練一次輸入的樣本量)拘领,后面幾維表示圖像樣本的長(zhǎng)意乓、寬以及通道數(shù)(深度)。
  • 卷積核(過(guò)濾器):描述卷積核的size约素,深度(卷積核的個(gè)數(shù))届良。
  • 步長(zhǎng):卷積核每次移動(dòng)的距離
  • 填充:是否對(duì)邊緣進(jìn)行填充(填充的目的可以保證卷積后,輸入輸出的大小不變)

舉個(gè)栗子:

import tensorflow as tf
import numpy as np

#初始化一個(gè)形狀為3*3的矩陣圣猎,并調(diào)整輸入的格式為(1, 3, 3, 1)
matrix = np.array([[[2],[1],[2]],
                   [[1],[4],[2]],
                   [[1],[1],[0]]],
                  dtype="float32").reshape(1, 3, 3, 1)

#創(chuàng)建一個(gè)2*2的卷積核士葫,并為其賦上基礎(chǔ)權(quán)重
#第三個(gè)維度的1表示當(dāng)前層的深度,第四個(gè)維度的1表示卷積核的數(shù)量
kernel = tf.get_variable("weights", [2, 2, 1, 1], 
                         initializer = tf.constant_initializer([[1, 2],[2, 1]]))

#開(kāi)始卷積
#先創(chuàng)建一個(gè)占位輸入
x = tf.placeholder('float32', [1, None, None, 1])
#卷積送悔,選擇的是不填充-VALID为障,填充為SAME,步長(zhǎng)每個(gè)通道為1
conv = tf.nn.conv2d(x, kernel, strides=[1, 1, 1, 1], padding="VALID")

init = tf.global_variables_initializer()
with tf.Session() as sess:
    sess.run(init)
    conv = sess.run(conv, feed_dict={x: matrix})
    #(1放祟,2鳍怨,2,1)
    print("The shape of matrix after conv:", conv.shape) 
    #10, 15
    #12, 10
    print("Matrix after conv: \n", conv) 

卷積輸出尺寸可由公式out = (i + 2p - k)/s + 1計(jì)算跪妥,其中鞋喇,i為輸入圖像的尺寸,p為填充的寬度眉撵,k為卷積核的size侦香,s為步長(zhǎng)的長(zhǎng)度。

總結(jié)

卷積網(wǎng)絡(luò)中的卷積過(guò)程可以理解為:

有一個(gè)卷積核(過(guò)濾器), 持續(xù)不斷的在輸入圖片上移動(dòng)纽疟,如圖二所示罐韩,每次移動(dòng)都會(huì)收集一小塊像素區(qū)域的信息(特征值),當(dāng)遍歷完整張圖污朽,就提取出了這張圖片的低層次特征散吵。

然后再以同樣的步驟,用類似的卷積核再去卷積上一次提取到的低層次特征蟆肆,CNN就可以從這些低層次特征中總結(jié)出更高層的特征信息矾睦。當(dāng)然中間少不了池化層激活層的幫助。

【關(guān)注公眾號(hào)DoCode炎功,每日一道LeetCode枚冗,更有其他學(xué)習(xí)內(nèi)容,將零碎時(shí)間利用起來(lái)】

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末蛇损,一起剝皮案震驚了整個(gè)濱河市赁温,隨后出現(xiàn)的幾起案子坛怪,更是在濱河造成了極大的恐慌,老刑警劉巖股囊,帶你破解...
    沈念sama閱讀 216,324評(píng)論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件袜匿,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡毁涉,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,356評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門(mén)锈死,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)贫堰,“玉大人,你說(shuō)我怎么就攤上這事待牵∑淦粒” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 162,328評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵缨该,是天一觀的道長(zhǎng)偎行。 經(jīng)常有香客問(wèn)我,道長(zhǎng)贰拿,這世上最難降的妖魔是什么蛤袒? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,147評(píng)論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮膨更,結(jié)果婚禮上妙真,老公的妹妹穿的比我還像新娘。我一直安慰自己荚守,他們只是感情好珍德,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,160評(píng)論 6 388
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著矗漾,像睡著了一般锈候。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上敞贡,一...
    開(kāi)封第一講書(shū)人閱讀 51,115評(píng)論 1 296
  • 那天泵琳,我揣著相機(jī)與錄音,去河邊找鬼誊役。 笑死虑稼,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的势木。 我是一名探鬼主播蛛倦,決...
    沈念sama閱讀 40,025評(píng)論 3 417
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼啦桌!你這毒婦竟也來(lái)了溯壶?” 一聲冷哼從身側(cè)響起及皂,我...
    開(kāi)封第一講書(shū)人閱讀 38,867評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎且改,沒(méi)想到半個(gè)月后验烧,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,307評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡又跛,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,528評(píng)論 2 332
  • 正文 我和宋清朗相戀三年碍拆,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片慨蓝。...
    茶點(diǎn)故事閱讀 39,688評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡感混,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出礼烈,到底是詐尸還是另有隱情弧满,我是刑警寧澤,帶...
    沈念sama閱讀 35,409評(píng)論 5 343
  • 正文 年R本政府宣布此熬,位于F島的核電站庭呜,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏犀忱。R本人自食惡果不足惜募谎,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,001評(píng)論 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望阴汇。 院中可真熱鬧近哟,春花似錦、人聲如沸鲫寄。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,657評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)地来。三九已至戳玫,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間未斑,已是汗流浹背咕宿。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,811評(píng)論 1 268
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留蜡秽,地道東北人府阀。 一個(gè)月前我還...
    沈念sama閱讀 47,685評(píng)論 2 368
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像芽突,于是被迫代替她去往敵國(guó)和親试浙。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,573評(píng)論 2 353

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