學(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á)到比較好分類(lèi)效果,全局最優(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)題,用曲線劃分兩類(lèi)樣本。隱含層越多,原有特征越抽象變換。是多層神經(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ì)稱(chēng)避免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è)樣本類(lèi)別。輸出層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)匹配分類(lèi)。隱含層輸出高階特征組件可以復(fù)用,每一類(lèi)判別、概率輸出共享。

全連接神經(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)咨詢(xún)(150元每小時(shí)),我的微信:qingxingfengzi

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 229,908評(píng)論 6 541
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 99,324評(píng)論 3 429
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人,你說(shuō)我怎么就攤上這事。” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 178,018評(píng)論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我,道長(zhǎng),這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 63,675評(píng)論 1 317
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 72,417評(píng)論 6 412
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 55,783評(píng)論 1 329
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼。 笑死,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,779評(píng)論 3 446
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 42,960評(píng)論 0 290
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 49,522評(píng)論 1 335
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 41,267評(píng)論 3 358
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 43,471評(píng)論 1 374
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,009評(píng)論 5 363
  • 正文 年R本政府宣布,位于F島的核電站,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 44,698評(píng)論 3 348
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 35,099評(píng)論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 36,386評(píng)論 1 294
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 52,204評(píng)論 3 398
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 48,436評(píng)論 2 378

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

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