學(xué)習(xí)筆記TF026:多層感知機(jī)

隱含層振诬,指除輸入蹭睡、輸出層外,的中間層赶么。輸入肩豁、輸出層對(duì)外可見(jiàn)。隱含層對(duì)外不可見(jiàn)辫呻。理論上清钥,只要隱含層節(jié)點(diǎn)足夠多,只有一個(gè)隱含層放闺,神經(jīng)網(wǎng)絡(luò)可以擬合任意函數(shù)祟昭。隱含層越多,越容易擬合復(fù)雜函數(shù)怖侦。擬合復(fù)雜函數(shù)篡悟,所需隱含節(jié)點(diǎn)數(shù),隨隱含層數(shù)量增多指數(shù)下降匾寝。

過(guò)擬合搬葬,模型預(yù)測(cè)準(zhǔn)確率在訓(xùn)練集上升,在測(cè)試集下降旗吁。泛化性不好踩萎,模型記憶當(dāng)前數(shù)據(jù)特征停局,不具備推廣能力很钓。參數(shù)太多。Hinton教授團(tuán)隊(duì)董栽,Dropout码倦。隨便丟棄部分輸出數(shù)據(jù)節(jié)點(diǎn)。創(chuàng)造新隨機(jī)樣本锭碳,增大樣本量袁稽,減少特征數(shù)量,防止過(guò)擬合擒抛。bagging方法推汽,對(duì)特征新種采樣补疑。

SGD參數(shù)難調(diào)試,SGD設(shè)置不同學(xué)習(xí)速率歹撒,結(jié)果可能差異巨大莲组。神經(jīng)網(wǎng)絡(luò)很多局部最優(yōu)解可以達(dá)到比較好分類效果,全局最優(yōu)反而容易過(guò)擬合暖夭。Adagrad锹杈、Adam、Adadelta自適應(yīng)方法迈着,減輕調(diào)試參數(shù)負(fù)擔(dān)竭望。SGD需要調(diào)試學(xué)習(xí)速率、Momentum裕菠、Nesterov參數(shù)咬清。

梯度彌散(Gradient Vanishment)。Sigmoid函數(shù)具有限制性奴潘,輸出數(shù)值在0?1,最符合概率輸出定義枫振。非線性Sigmoid函數(shù),信號(hào)特征空間映射萤彩,中央?yún)^(qū)信號(hào)增益大粪滤,兩側(cè)區(qū)信息增益小。中央?yún)^(qū)像神經(jīng)元興奮態(tài)雀扶,兩側(cè)區(qū)像神經(jīng)元抑制態(tài)杖小。訓(xùn)練時(shí),重要特征放中央?yún)^(qū)愚墓,非重要特征放兩側(cè)區(qū)予权。Sigmoid比最初期線性激活函數(shù)y=x,階梯激活函數(shù)y=-1(x<0)|y=1(x>=0)浪册、y=0(x<0)|y=1(x>=0)好扫腺。Sigmoid函數(shù)反向傳播梯度值在多層傳遞指級(jí)急劇減小,根據(jù)訓(xùn)練數(shù)據(jù)反饋更新神經(jīng)網(wǎng)絡(luò)參數(shù)非常緩慢村象,不起訓(xùn)練作用笆环。

ReLU,非線性函數(shù)y=max(0,x)厚者,坐標(biāo)軸上折線躁劣,當(dāng)x<=0,y=0,x>0,y=x。人腦閾值響應(yīng)機(jī)制库菲,信號(hào)超過(guò)某個(gè)閾值账忘,神經(jīng)元興奮激活狀態(tài),平時(shí)抑制狀態(tài)。ReLU很好傳遞梯度鳖擒,多層反向傳播溉浙,梯度不會(huì)大幅縮小,適合很深神經(jīng)網(wǎng)絡(luò)蒋荚,不需要無(wú)監(jiān)督逐層初始化權(quán)重放航。ReLU變化,單側(cè)抑制圆裕,相對(duì)寬閣興奮邊界广鳍,稀疏激活性。神經(jīng)元同時(shí)激活1~4%吓妆,選擇性響應(yīng)很少部分輸入信號(hào)赊时,屏蔽大量不相關(guān)信號(hào),更高效提取重要特征行拢。傳統(tǒng)Sigmoid函數(shù)接近一半神經(jīng)元被激活祖秒。Softplus,單側(cè)抑制舟奠,沒(méi)有稀疏激活性竭缝。ReLU及變種(EIU,PReLU,RReLU)為最注流激活函數(shù)。輸出層一般用Sigmoid函數(shù)沼瘫,最接近概率輸出分布抬纸。

隱含層可以解決XOR問(wèn)題,用曲線劃分兩類樣本耿戚。隱含層越多湿故,原有特征越抽象變換。是多層神經(jīng)網(wǎng)絡(luò)(多層感知機(jī) MLP)功能膜蛔。

網(wǎng)絡(luò)神經(jīng)加上隱含層坛猪,使用Dropout、自適應(yīng)學(xué)習(xí)速率Adagrad,解決梯度彌散激活函數(shù)ReLU皂股。

載入TensorFlow墅茉,加載MNIST數(shù)據(jù)集,創(chuàng)建Interactive Session呜呐。

隱含層參數(shù)設(shè)置Variable初始化就斤。in_units輸入節(jié)點(diǎn)數(shù),h1_units隱含層輸出節(jié)點(diǎn)數(shù)設(shè)300(200?1000區(qū)別不大)卵史。W1隱含層權(quán)重初始化截?cái)嗾龖B(tài)分布標(biāo)準(zhǔn)差0.1战转,b1偏置設(shè)0搜立。模型激活函數(shù)ReLU以躯,正態(tài)分布給參數(shù)加噪聲,打破完全對(duì)稱避免0梯度。偏置賦小非零值避免dead neuron(死亡神經(jīng)元)忧设。最后輸出層Softmax刁标,權(quán)重W2偏置b2初始化0。Sigmoid址晕,0附近最敏感膀懈,梯度最大。

訓(xùn)練和預(yù)測(cè)谨垃,Dropout比率keep_prob(保留節(jié)點(diǎn)概率)不同启搂。訓(xùn)練小于1。預(yù)測(cè)等于1刘陶。Dropout比率為計(jì)算圖輸入胳赌,定義placeholder。

定義模型結(jié)構(gòu)匙隔。tf.nn.relu(tf.matmul(x,W1+b1))疑苫,實(shí)現(xiàn)激活函數(shù)為ReLU的hidden1隱含層,y=relu(W1x+b1)纷责。tf.nn.dropout實(shí)現(xiàn)Dropout捍掺,隨機(jī)置0分部節(jié)點(diǎn)。keep_prob參數(shù)再膳,保留數(shù)據(jù)不置為0比例挺勿,訓(xùn)練應(yīng)小于1,制造隨機(jī)性,防止過(guò)擬合喂柒,預(yù)測(cè)等于1,用全部特征預(yù)測(cè)樣本類別满钟。輸出層Softmax。

定義算法公式胳喷,神經(jīng)網(wǎng)絡(luò)forward計(jì)算湃番。定義損失函數(shù)(交叉信息熵)和選擇優(yōu)化器(自適應(yīng)優(yōu)化器Adagrad),優(yōu)化loss吭露,學(xué)習(xí)速率0.3,使用tf.train.AdagradOptimizer 吠撮。Adadelta、Adam優(yōu)化器讲竿。

訓(xùn)練泥兰,keep_prob計(jì)算圖輸入,訓(xùn)練時(shí)設(shè)0.75,保留75%節(jié)點(diǎn)题禀,其余25%置0鞋诗。越復(fù)雜越大規(guī)模神經(jīng)網(wǎng)絡(luò),Dropout效果越顯著迈嘹。隱含層削彬,需要更多訓(xùn)練迭代優(yōu)化模型參數(shù)全庸。3000個(gè)bacth,每個(gè)bacth100條樣本融痛,30萬(wàn)樣本壶笼。相當(dāng)全數(shù)據(jù)集5輪epoch迭代。增大循環(huán)次數(shù)雁刷,準(zhǔn)確率略有提高覆劈。

準(zhǔn)確率評(píng)測(cè),加入keep_prob輸入沛励,等于1责语。

沒(méi)有隱含層Softmax Regression,直接從圖像像素推斷是哪個(gè)數(shù)字目派,沒(méi)有特征抽象過(guò)程鹦筹。多層神經(jīng)網(wǎng)絡(luò)隱含層,組合高階特征或組件址貌,再組合成數(shù)字铐拐,實(shí)現(xiàn)精準(zhǔn)匹配分類。隱含層輸出高階特征組件可以復(fù)用练对,每一類判別遍蟋、概率輸出共享。

全連接神經(jīng)網(wǎng)絡(luò)(Fully Connected Network,FCN,MLP的另一種說(shuō)法)局限螟凭,很深網(wǎng)絡(luò)虚青,很多隱藏節(jié)點(diǎn),很大迭代輪數(shù)螺男,也難達(dá)到99%以上準(zhǔn)確率棒厘。

# Create the model
from tensorflow.examples.tutorials.mnist import input_data
import tensorflow as tf
mnist = input_data.read_data_sets("MNIST_data/", one_hot=True)
sess = tf.InteractiveSession()
in_units = 784
h1_units = 300
W1 = tf.Variable(tf.truncated_normal([in_units, h1_units], stddev=0.1))
b1 = tf.Variable(tf.zeros([h1_units]))
W2 = tf.Variable(tf.zeros([h1_units, 10]))
b2 = tf.Variable(tf.zeros([10]))
x = tf.placeholder(tf.float32, [None, in_units])
keep_prob = tf.placeholder(tf.float32)
hidden1 = tf.nn.relu(tf.matmul(x, W1) + b1)
hidden1_drop = tf.nn.dropout(hidden1, keep_prob)
y = tf.nn.softmax(tf.matmul(hidden1_drop, W2) + b2)
# Define loss and optimizer
y_ = tf.placeholder(tf.float32, [None, 10])
cross_entropy = tf.reduce_mean(-tf.reduce_sum(y_ * tf.log(y), reduction_indices=[1]))
train_step = tf.train.AdagradOptimizer(0.3).minimize(cross_entropy)
# Train
tf.global_variables_initializer().run()
for i in range(3000):
  batch_xs, batch_ys = mnist.train.next_batch(100)
  train_step.run({x: batch_xs, y_: batch_ys, keep_prob: 0.75})
# Test trained model
correct_prediction = tf.equal(tf.argmax(y, 1), tf.argmax(y_, 1))
accuracy = tf.reduce_mean(tf.cast(correct_prediction, tf.float32))
print(accuracy.eval({x: mnist.test.images, y_: mnist.test.labels, keep_prob: 1.0}))

參考資料:
《TensorFlow實(shí)戰(zhàn)》

歡迎付費(fèi)咨詢(150元每小時(shí)),我的微信:qingxingfengzi

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末下隧,一起剝皮案震驚了整個(gè)濱河市奢人,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌淆院,老刑警劉巖何乎,帶你破解...
    沈念sama閱讀 222,590評(píng)論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異土辩,居然都是意外死亡支救,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,157評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門拷淘,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)各墨,“玉大人,你說(shuō)我怎么就攤上這事启涯”岫拢” “怎么了恃轩?”我有些...
    開(kāi)封第一講書人閱讀 169,301評(píng)論 0 362
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)扁瓢。 經(jīng)常有香客問(wèn)我详恼,道長(zhǎng)补君,這世上最難降的妖魔是什么引几? 我笑而不...
    開(kāi)封第一講書人閱讀 60,078評(píng)論 1 300
  • 正文 為了忘掉前任,我火速辦了婚禮挽铁,結(jié)果婚禮上伟桅,老公的妹妹穿的比我還像新娘。我一直安慰自己叽掘,他們只是感情好楣铁,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,082評(píng)論 6 398
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著更扁,像睡著了一般盖腕。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上浓镜,一...
    開(kāi)封第一講書人閱讀 52,682評(píng)論 1 312
  • 那天溃列,我揣著相機(jī)與錄音,去河邊找鬼膛薛。 笑死听隐,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的哄啄。 我是一名探鬼主播雅任,決...
    沈念sama閱讀 41,155評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼咨跌!你這毒婦竟也來(lái)了沪么?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書人閱讀 40,098評(píng)論 0 277
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤锌半,失蹤者是張志新(化名)和其女友劉穎成玫,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體拳喻,經(jīng)...
    沈念sama閱讀 46,638評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡哭当,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,701評(píng)論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了冗澈。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片钦勘。...
    茶點(diǎn)故事閱讀 40,852評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖亚亲,靈堂內(nèi)的尸體忽然破棺而出彻采,到底是詐尸還是另有隱情腐缤,我是刑警寧澤,帶...
    沈念sama閱讀 36,520評(píng)論 5 351
  • 正文 年R本政府宣布肛响,位于F島的核電站岭粤,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏特笋。R本人自食惡果不足惜剃浇,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,181評(píng)論 3 335
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望猎物。 院中可真熱鬧虎囚,春花似錦、人聲如沸蔫磨。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 32,674評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)堤如。三九已至蒲列,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間搀罢,已是汗流浹背蝗岖。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 33,788評(píng)論 1 274
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留魄揉,地道東北人剪侮。 一個(gè)月前我還...
    沈念sama閱讀 49,279評(píng)論 3 379
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像洛退,于是被迫代替她去往敵國(guó)和親瓣俯。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,851評(píng)論 2 361

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

  • 第二個(gè)Topic講深度學(xué)習(xí)兵怯,承接前面的《淺談機(jī)器學(xué)習(xí)基礎(chǔ)》彩匕。 深度學(xué)習(xí)簡(jiǎn)介 前面也提到過(guò),機(jī)器學(xué)習(xí)的本質(zhì)就是尋找最...
    我偏笑_NSNirvana閱讀 15,632評(píng)論 7 49
  • author:min lin,qiang chen 個(gè)人的學(xué)習(xí)筆記媒区,文中引用其它人的公開(kāi)資料驼仪,如有冒犯請(qǐng)聯(lián)系偶。 ...
    鳴祥閱讀 15,469評(píng)論 5 19
  • 說(shuō)明: 本系列文章翻譯斯坦福大學(xué)的課程:Convolutional Neural Networks for Vis...
    Warren_Liu閱讀 1,322評(píng)論 0 2
  • 我好像輸給了自己 捫心自問(wèn) 到底要什么 或許真的唯有暴富 才已解憂 那也只是想當(dāng)然 人無(wú)法滿足 我卻想知足 今天有...
    林小膽閱讀 394評(píng)論 0 0
  • 下午在家門口的車站等車袜漩,車站旁的臺(tái)階上有一個(gè)賣各種書法書籍绪爸,墨汁毛筆的小攤。我要等的車一直不來(lái)宙攻,就在旁邊一邊打字一...
    尷尬的松果閱讀 87評(píng)論 0 0