《深度學(xué)習(xí)入門》 3章

1 激活函數(shù):

a.階躍函數(shù) 當(dāng)輸入超過 0 時(shí),輸出 1, 否則輸出 0

b.sigmoid 函數(shù)


sigmoid .png

這個(gè)函數(shù)在后面的代碼中使用很頻繁,用代碼輸出圖形:


sigmoid .png

c.ReLU(Rectified Linear Unit)函數(shù) max(0,input)

這些函數(shù)的實(shí)現(xiàn)都非常簡(jiǎn)單悟泵,直接ruturn公式;

2 多維數(shù)組的運(yùn)算

矩陣乘法:.dot(a,b) 對(duì)應(yīng)維度的元素個(gè)數(shù)要保持一致,同數(shù)學(xué)里矩陣乘法
神經(jīng)網(wǎng)絡(luò)內(nèi)積:Y=WX+B

3 3層神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)

三層神經(jīng)網(wǎng)絡(luò)手算

輸出層函數(shù):

恒等函數(shù):將輸入按原樣輸出报破,對(duì)于輸入的信息悠就,不加以任何改動(dòng)地直接輸出,加是為了和前面保持結(jié)構(gòu)一致性充易;
softmax 函數(shù):分子是輸入信號(hào)的指數(shù)函數(shù)梗脾,分母為所有輸入信號(hào)的指數(shù)函數(shù)的和;

softmax函數(shù)

softmax 函數(shù)的輸出是 0.0 到 1.0 之間的實(shí)數(shù)盹靴。并且炸茧,softmax 函數(shù)的輸出值的總和是 1。輸出總和為 1 是 softmax 函數(shù)的一個(gè)重要性質(zhì)稿静。正因?yàn)橛辛诉@個(gè)性質(zhì)梭冠,我們才可以把 softmax 函數(shù)的輸出解釋為“概率”。即該函數(shù)具有概率的性質(zhì)改备,可以表示概率控漠,一般而言,神經(jīng)網(wǎng)絡(luò)只把輸出值最大的神經(jīng)元所對(duì)應(yīng)的類別作為識(shí)別結(jié)果悬钳。

代碼實(shí)現(xiàn)

import numpy as np

def sigmoid(x):#激活函數(shù)
    return 1/(1+np.exp(-x))

def identity_function(x):#輸出函數(shù)
    return x

def init_network():
    network = {}
    network['W1'] = np.array([[0.1,0.3,0.5],[0.2,0.4,0.6]])#0-1層權(quán)重
    network['b1'] = np.array([0.1,0.2,0.3])#偏置
    network['W2'] = np.array([[0.1,0.4],[0.2,0.5],[0.3,0.6]])#1-2層權(quán)重
    network['b2'] = np.array([0.1,0.2])
    network['W3'] = np.array([[0.1,0.3], [0.2,0.4]])#2-3層權(quán)重
    network['b3'] = np.array([0.1,0.2])

    return network

def forward(network,x):
    W1,W2,W3 = network['W1'],network['W2'],network['W3']
    b1,b2,b3 = network['b1'],network['b2'],network['b3']

    #a=wx+b 矩陣乘法
    a1 = np.dot(x,W1) + b1
    z1 = sigmoid(a1)
    a2 = np.dot(z1,W2) + b2
    z2 = sigmoid(a2)
    a3 = np.dot(z2,W3) + b3
    y = identity_function(a3)
    return y

network = init_network()
x=np.array([1.0,0.5])
y=forward(network,x)
print(y)
D:\software\Anaconda\python.exe D:\workspace_p\study\ch03\test.py 
[0.31682708 0.69627909]

Process finished with exit code 0

遇到了幾個(gè)問題:1.conda裝過Numpy后pycharm一直顯示無法導(dǎo)入盐捷,搜索了一下突然想到或許是每次新建工程時(shí)pycharm都需要重新配置解釋器導(dǎo)致的,果然如此默勾,配置方法:file-settings-project:network-python interpreter -修改為conda內(nèi)置的python 就可以了碉渡,idea也是這樣,每次都需要重新配置母剥;

2.報(bào)錯(cuò):Field elements must be 2- or 3-tuples, got '0.2' 是因?yàn)槎嗑S數(shù)組的寫法不正確滞诺,需要在外層在加一個(gè)中括號(hào):network['W2'] = np.array([[0.1,0.4],[0.2,0.5],[0.3,0.6]])

手寫數(shù)字識(shí)別

從書籍官網(wǎng)下載的代碼在run的時(shí)候,發(fā)現(xiàn)導(dǎo)入dataset不成功环疼,解決方法見ModuleNotFoundError: No module named ‘dataset‘--《深度學(xué)習(xí)入門》3.6.1節(jié)錯(cuò)誤的解決方案_modulenotfounderror: no module named 'datasets_alltimehigh的博客-CSDN博客
運(yùn)行截圖:

手寫數(shù)字識(shí)別

keywords:
load_mnist函數(shù)return的是"(訓(xùn)練圖像铭段,訓(xùn)練標(biāo)簽),(測(cè)試圖像,測(cè)試標(biāo)簽)"
有三個(gè)參數(shù)(均為布爾型):
normalize:是否正規(guī)化秦爆,即是否輸出為0-1(浮點(diǎn)型)的值序愚;False 不正規(guī);
flatten:是否展開為一維數(shù)組等限;False 不做改變爸吮;
one_hot_label:是否將標(biāo)簽表示成正確解為1 芬膝,其余為0 的形式; False不改變形娇;
reshape() 可以改變圖像形狀(以像素的形式)

3.6.2 神經(jīng)網(wǎng)絡(luò)的推理處理

run示例代碼neuraint_mnist的時(shí)候from common.functions import sigmoid, softmax報(bào)錯(cuò):解決方法同上锰霜,因?yàn)槲业沫h(huán)境其實(shí)是用的conda的,所以需要把依賴的數(shù)據(jù)和function都放入conda包下桐早;

代碼及結(jié)果:


神經(jīng)網(wǎng)絡(luò)的推理處理

感覺for循環(huán)里的代碼有點(diǎn)難以理解癣缅,逐一輸出就比較清晰了:


for

預(yù)處理:方法有正規(guī)化,使用均值或者方差再處理數(shù)據(jù)哄酝,和將數(shù)據(jù)整體分布均勻化的白化方法友存;

3.6.3 批處理
通過range()的第三個(gè)參數(shù)實(shí)現(xiàn),會(huì)自動(dòng)實(shí)現(xiàn)分批處理陶衅,sql中這種通常要自己實(shí)現(xiàn)屡立;
書中解釋說批處理可以減輕數(shù)據(jù)總線的負(fù)荷,或許是因?yàn)橐淮巫x入減少了IO次數(shù)搀军?
從結(jié)果可以看出膨俐,這是多個(gè)一維數(shù)組:


批處理

python語法:使用print()的時(shí)候發(fā)現(xiàn)只能打印同一類型的數(shù)據(jù),所以輸出拼接類型的時(shí)候罩句,要把數(shù)字強(qiáng)制轉(zhuǎn)換成字符串類型:str(2)

第三章 end

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末焚刺,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子门烂,更是在濱河造成了極大的恐慌檩坚,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,402評(píng)論 6 499
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件诅福,死亡現(xiàn)場(chǎng)離奇詭異匾委,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)氓润,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,377評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門赂乐,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人咖气,你說我怎么就攤上這事挨措。” “怎么了崩溪?”我有些...
    開封第一講書人閱讀 162,483評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵浅役,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我伶唯,道長(zhǎng)觉既,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,165評(píng)論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮瞪讼,結(jié)果婚禮上钧椰,老公的妹妹穿的比我還像新娘。我一直安慰自己符欠,他們只是感情好嫡霞,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,176評(píng)論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著希柿,像睡著了一般诊沪。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上曾撤,一...
    開封第一講書人閱讀 51,146評(píng)論 1 297
  • 那天端姚,我揣著相機(jī)與錄音,去河邊找鬼盾戴。 笑死,一個(gè)胖子當(dāng)著我的面吹牛兵多,可吹牛的內(nèi)容都是我干的尖啡。 我是一名探鬼主播,決...
    沈念sama閱讀 40,032評(píng)論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼剩膘,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼衅斩!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起怠褐,我...
    開封第一講書人閱讀 38,896評(píng)論 0 274
  • 序言:老撾萬榮一對(duì)情侶失蹤畏梆,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后奈懒,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體奠涌,經(jīng)...
    沈念sama閱讀 45,311評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,536評(píng)論 2 332
  • 正文 我和宋清朗相戀三年磷杏,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了溜畅。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,696評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡极祸,死狀恐怖慈格,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情遥金,我是刑警寧澤浴捆,帶...
    沈念sama閱讀 35,413評(píng)論 5 343
  • 正文 年R本政府宣布,位于F島的核電站稿械,受9級(jí)特大地震影響选泻,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,008評(píng)論 3 325
  • 文/蒙蒙 一滔金、第九天 我趴在偏房一處隱蔽的房頂上張望色解。 院中可真熱鬧,春花似錦餐茵、人聲如沸科阎。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽锣笨。三九已至,卻和暖如春道批,著一層夾襖步出監(jiān)牢的瞬間错英,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,815評(píng)論 1 269
  • 我被黑心中介騙來泰國(guó)打工隆豹, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留椭岩,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,698評(píng)論 2 368
  • 正文 我出身青樓璃赡,卻偏偏與公主長(zhǎng)得像判哥,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子碉考,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,592評(píng)論 2 353

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