日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人工智能 > ChatGpt >内容正文

ChatGpt

DeepLearning.AI第一部分第四周:深层神经网络

發(fā)布時間:2024/9/15 ChatGpt 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 DeepLearning.AI第一部分第四周:深层神经网络 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

文章目錄

  • 4.1深層神經(jīng)網(wǎng)絡(luò)(Deep L-layer neural network)
  • 4.2前向傳播和反向傳播(Forward and backward propagation)
  • 4.3舉例說明前向傳播
  • 4.4核對矩陣的維數(shù)(Getting your matrix dimensions right)
  • 4.5(未檢查)為什么一般深層網(wǎng)絡(luò)比淺層網(wǎng)絡(luò)好![在這里插入圖片描述](https://img-blog.csdnimg.cn/20190226170411288.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2FubnkwMDAx,size_16,color_FFFFFF,t_70)
  • 4.6 搭建神經(jīng)網(wǎng)絡(luò)(看作業(yè))
  • 4.7 (未檢查)參數(shù) VS 超參數(shù)(Parameters vs Hyperparameters)
  • 4.8 深度學習和大腦的關(guān)聯(lián)性(What does this have to do with the brain?)

4.1深層神經(jīng)網(wǎng)絡(luò)(Deep L-layer neural network)

接"DeepLearning.AI第一部分第三周"
上圖左邊是邏輯回歸,右邊是一個隱層的神經(jīng)網(wǎng)絡(luò)。
上圖左邊是兩個隱藏層的神經(jīng)網(wǎng)絡(luò),右邊是五個隱藏層的神經(jīng)網(wǎng)絡(luò)。嚴格上來說邏輯回歸也是一個一層的神經(jīng)網(wǎng)絡(luò),而上邊右圖一個深得多的模型,淺與深僅僅是指一種程度。記住以下要點:有一個隱藏層的神經(jīng)網(wǎng)絡(luò),就是一個兩層神經(jīng)網(wǎng)絡(luò)。記住當我們算神經(jīng)網(wǎng)絡(luò)的層數(shù)時,我們不算輸入層,我們只算隱藏層和輸出層。但是在過去的幾年中,DLI (深度學習學院 deep learning institute)已經(jīng)意識到有一些函數(shù),只有非常深的神經(jīng)網(wǎng)絡(luò)能學會,而更淺的模型則辦不到。盡管對于任何給定的問題很難去提前預測到底需要多深的神經(jīng)網(wǎng)絡(luò),所以先去嘗試邏輯回歸,嘗試一層然后兩層隱含層,然后把隱含層的數(shù)量看做是另一個可以自由選擇大小的超參數(shù),然后再保留交叉驗證數(shù)據(jù)上評估,或者用你的開發(fā)集來評估。
- 對于上圖的一些,符號定義:上圖是一個四層的神經(jīng)網(wǎng)絡(luò),有三個隱藏層。我們可以看到,第一層(即左邊數(shù)過去第二層,因為輸入層是第 0 層)有 5 個神經(jīng)元數(shù)目,第二層 5 個,第三層 3 個。我們用 LLL 表示層數(shù),上圖:L=4L = 4L=4,輸入層的索引為“0”,第一個隱藏層n[1]=5n^{[1]}=5n[1]=5,表示有 5個隱藏神經(jīng)元,同理n[2]=5,n[3]=3,n[4]=n[L]=1n^{[2]} = 5,n^{[3]} = 3,n^{[4]} =n^{[L]} = 1n[2]=5,n[3]=3,n[4]=n[L]=1(輸出單元為 1)。而輸入層,n[0]=nx=3n^{[0]}=n_x = 3n[0]=nx?=3。在不同層所擁有的神經(jīng)元的數(shù)目,對于每層 lll 都用a[l]a^{ [l]}a[l]來記作 lll 層激活后結(jié)果,我們會在后面看到在正向傳播時,最終會計算出a[l]a^{ [l]}a[l]。通過用激活函數(shù) ggg 計算z[l]z^{[l]}z[l] ,激活函數(shù)也被索引為層數(shù)lll,然后我們用w[l]w^{[l]}w[l] 來記作在 lll 層計算z[l]z^{ [l]}z[l] 值的權(quán)重。類似的,計算z[l]z^{[l]}z[l] 的方程中的b[l]b^{[l]}b[l] 也一樣。最后總結(jié)下符號約定:輸入的特征記作xxx,但是xxx同樣也是 0 層的激活函數(shù),所以x=a[0]x = a^{ [0]}x=a[0] 。最后一層的激活函數(shù),所以a[L]a^{[L]}a[L] 是等于這個神經(jīng)網(wǎng)絡(luò)所預測的輸出結(jié)果。

4.2前向傳播和反向傳播(Forward and backward propagation)

之前我們學習了構(gòu)成深度神經(jīng)網(wǎng)絡(luò)的基本模塊,比如每一層都有前向傳播步驟以及一個相反的反向傳播步驟,現(xiàn)在我們來談?wù)勅绾螌崿F(xiàn)這些步驟。先講前向傳播,輸入a[l?1]a^{[l?1]}a[l?1],輸出是a[l]a^{[l]}a[l],緩存為z[l]z^{[l]}z[l];從實現(xiàn)的角度來說我們可以緩存下w[l]w^{[l]}w[l]b[l]b^{ [l] }b[l],這樣更容易在不同的環(huán)節(jié)中調(diào)用函數(shù)。
所以前向傳播的步驟可寫成:
z[l]=W[l]a[l?1]+b[l]z^{[l]} = W^{[l]}a^{[l-1]}+b^{[l]}z[l]=W[l]a[l?1]+b[l]a[l]=g[l](z[l])a^{[l]}=g^{[l]}(z^{[l]})a[l]=g[l](z[l])
向量化實現(xiàn)過程可以寫成:
z[l]=W[l]?A[l?1]+b[l]z^{[l]} = W^{[l]} ? A^{ [l?1]} + b^{ [l]}z[l]=W[l]?A[l?1]+b[l]
A[l]=g[l](Z[l])A^{ [l]} = g^{ [l]}( Z^{ [l]} )A[l]=g[l](Z[l])
前向傳播需要喂入A[0]A^{ [0]}A[0] 也就是輸入XXX,來初始化第一層的輸入值。a[0]a^{ [0]}a[0] 對應于一個訓練樣本的輸入特征,而A[0]A^{ [0]}A[0] 對應于一整個訓練樣本的輸入特征,所以這就是這條鏈的第一個前向函數(shù)的輸入,重復這個步驟就可以從左到右計算前向傳播。
反向傳播的步驟:輸入為da[l]da^{ [l]}da[l],輸出為da[l?1]da^{ [l?1]}da[l?1]dw[l]dw^{ [l]}dw[l]db[l]db^{ [l]}db[l]
所以反向傳播的步驟可以寫成:
(1) dz[l]=da[l]?g[l]′(z[l])dz^{[l]} = da^{[l]} * g^{[l]}{'}(z^{[l]})dz[l]=da[l]?g[l](z[l])
(2) dw[l]=dz[l]?a[l?1]dw^{[l]} = dz^{[l]} \cdot a^{[l-1]}dw[l]=dz[l]?a[l?1]
(3) db[l]=dz[l]db^{[l]} = dz^{[l]}db[l]=dz[l]
(4) da[l?1]=(w[l])T?z[l]da^{[l-1]}={(w^{[l]})}^T \cdot z^{[l]}da[l?1]=(w[l])T?z[l]
(5) dz[l]=(w[l+1])T?dz[l+1]?(g[l])′(z[l])dz^{[l]} = (w^{[l+1]})^{T} \cdot dz^{[l+1]} \cdot (g^{[l]})^{'}(z^{[l]})dz[l]=(w[l+1])T?dz[l+1]?(g[l])(z[l])
式子(5)由式子(4)帶入式子(1)得到,前四個式子就可以實現(xiàn)反響函數(shù)。其向量化實現(xiàn)過程可以寫成:
(6) dZ[l]=dA[l]?g[l]′(Z[l])dZ^{[l]} = dA^{[l]}*{g^{[l]}}{'}(Z^{[l]})dZ[l]=dA[l]?g[l](Z[l])
(7) dW[l]=1mdZ[l]?(A[l?1])TdW^{[l]} = \frac{1}{m}dZ^{[l]}\cdot (A^{[l-1]})^TdW[l]=m1?dZ[l]?(A[l?1])T
(8) db[l]=1mnp.sum(dz[l],axis=1,keepdims=True)db^{[l]} = \frac{1}{m}np.sum(dz^{[l]},axis=1,keepdims=True)db[l]=m1?np.sum(dz[l],axis=1,keepdims=True)
(9) dA[l?1]=(W[l])T?dZ[l]dA{[l-1]} = (W^{[l]})^{T} \cdot dZ^{[l]}dA[l?1]=(W[l])T?dZ[l]
第一層你可能有一個 ReLU 激活函數(shù),第二層為另一個 ReLU 激活函數(shù),第三層可能是sigmoid 函數(shù)(如果你做二分類的話),輸出值為,用來計算損失;這樣你就可以向后迭代進行反向傳播求導來求dw[3],db[3],dw[2],db[2],dw[1],db[1]dw^{ [3]},db^{[3]} ,dw^{ [2]} ,db^{ [2]} ,dw^{ [1]} ,db^{ [1]}dw[3],db[3],dw[2],db[2],dw[1],db[1] 。在計算的時候,緩存會把z[1]z[2]z[3]z^{ [1]} z^{ [2]} z^{ [3]}z[1]z[2]z[3] 傳遞過來,然后回傳da[2],da[1]da^{ [2]} , da^{ [1]}da[2],da[1] ,即一個三層網(wǎng)絡(luò)的前向和反向傳播。{還有一個細節(jié)沒講就是前向遞歸——用輸入數(shù)據(jù)來初始化,那么反向遞歸(使用 Logistic 回歸做二分類)——對A [l] 求導。}

4.3舉例說明前向傳播

4.4核對矩陣的維數(shù)(Getting your matrix dimensions right)

當實現(xiàn)深度神經(jīng)網(wǎng)絡(luò)的時候,其中一個我常用的檢查代碼是否有錯的方法就是拿出一張紙過一遍算法中矩陣的維數(shù)。
www的維度是(下一層的維數(shù),前一層的維數(shù)),即w[l]:(n[l],n[l?1])w^{[l]} : (n^{ [l]} ,n^{ [l?1]} )w[l]:(n[l],n[l?1])
bbb的維度是(下一層的維數(shù),1),即:b[l]:(n[l],1)b^{[l]} : (n^{ [l]} , 1)b[l]:(n[l],1);
z[l],a[l]:(n[l],1)z^{ [l]} ,a^{ [l]} : (n^{ [l]} , 1)z[l],a[l]:(n[l],1);
dw[l]dw^{ [l]}dw[l]w[l]w^{ [l]}w[l] 維度相同,db[l]db^{ [l]}db[l]b[l]b^{ [l]}b[l] 維度相同,且wwwbbb向量化維度不變,但z,az,az,a以及xxx的維度會在向量化后發(fā)生變化。
向量化后:Z[l]Z^{[l]}Z[l] 可以看成由每一個單獨的Z[l]Z^{ [l]}Z[l] 疊加而得到, Z[l]=(z[l](1),z[l](2),z[l](3),...,z[l](m))Z^{ [l]} = (z^{[l](1)} , z^{[l](2)} , z^{ [l](3)} , ... , z^{ [l](m)} )Z[l]=(z[l](1),z[l](2),z[l](3),...,z[l](m))mmm為訓練集大小,所以Z[l]Z^{ [l]}Z[l] 的維度不再是(n[l],1)(n^{ [l]} , 1)(n[l],1),而是(n[l],m)(n^{ [l]} , m)(n[l],m)A[l]:(n[l],m),A[0]=X=(n[l],m)A^{[l]} :(n^{ [l]} , m),A^{ [0]} = X = (n^{ [l]} , m)A[l]:(n[l],m),A[0]=X=(n[l],m)

在做深度神經(jīng)網(wǎng)絡(luò)的反向傳播時,一定要確認所有的矩陣維數(shù)是前后一致的,可以大大提高代碼通過率。下一節(jié)我們講為什么深層的網(wǎng)絡(luò)在很多問題上比淺層的好。

4.5(未檢查)為什么一般深層網(wǎng)絡(luò)比淺層網(wǎng)絡(luò)好

首先,深度網(wǎng)絡(luò)究竟在計算什么?如果你在建一個人臉識別或是人臉檢測系統(tǒng),深度神經(jīng)網(wǎng)絡(luò)所做的事就是,當你輸入一張臉部的照片,然后你可以把深度神經(jīng)網(wǎng)絡(luò)的第一層,當成一個特征探測器或者邊緣探測器。在這個例子里,我會建一個大概有 20 個隱藏單元的深度神經(jīng)網(wǎng)絡(luò),是怎么針對這張圖計算的。隱藏單元就是這些圖里這些小方塊(第一張大圖),舉個例子,這個小方塊(第一行第一列)就是一個隱藏單元,它會去找這張照片里“|”邊緣的方向。那么這個隱藏單元(第四行第四列),可能是在找(“—”)水平向的邊緣在哪里。之后的課程里,我們會講專門做這種識別的卷積神經(jīng)網(wǎng)絡(luò),到時候會細講,為什么小單元是這么表示的。你可以先把神經(jīng)網(wǎng)絡(luò)的第一層當作看圖,然后去找這張照片的各個邊緣。我們可以把照片里組成邊緣的像素們放在一起看,然后它可以把被探測到的邊緣組合成面部的不同部分(第二張大圖)。比如說,可能有一個神經(jīng)元會去找眼睛的部分,另外還有別的在找鼻子的部分,然后把這許多的邊緣結(jié)合在一起,就可以開始檢測人臉的不同部分。最后再把這些部分放在一起,比如鼻子眼睛下巴,就可以識別或是探測不同的人臉(第三張大圖)。
你可以直覺上把這種神經(jīng)網(wǎng)絡(luò)的前幾層當作探測簡單的函數(shù),比如邊緣,之后把它們跟后幾層結(jié)合在一起,那么總體上就能學習更多復雜的函數(shù)。這些圖的意義,我們在學習卷積神經(jīng)網(wǎng)絡(luò)的時候再深入了解。還有一個技術(shù)性的細節(jié)需要理解的是,邊緣探測器其實相對來說都是針對照片中非常小塊的面積。就像這塊(第一行第一列),都是很小的區(qū)域。面部探測器就會針對于大一些的區(qū)域,但是主要的概念是,一般你會從比較小的細節(jié)入手,比如邊緣,然后再一步步到更大更復雜的區(qū)域,比如一只眼睛或是一個鼻子,再把眼睛鼻子裝一塊組成更復雜的部分。

這種從簡單到復雜的金字塔狀表示方法或者組成方法,也可以應用在圖像或者人臉識別以外的其他數(shù)據(jù)上。比如當你想要建一個語音識別系統(tǒng)的時候,需要解決的就是如何可視化語音,比如你輸入一個音頻片段,那么神經(jīng)網(wǎng)絡(luò)的第一層可能就會去先開始試著探測比較低層次的音頻波形的一些特征,比如音調(diào)是變高了還是低了,分辨白噪音,咝咝咝的聲音,或者音調(diào),可以選擇這些相對程度比較低的波形特征,然后把這些波形組合在一起就能去探測聲音的基本單元。在語言學中有個概念叫做音位,比如說單詞 ca,c 的發(fā)音,“嗑”就是一個音位,a 的發(fā)音“啊”是個音位,t 的發(fā)音“特”也是個音位,有了基本的聲音單元以后,組合起來,你就能識別音頻當中的單詞,單詞再組合起來就能識別詞組,再到完整的句子。

所以深度神經(jīng)網(wǎng)絡(luò)的這許多隱藏層中,較早的前幾層能學習一些低層次的簡單特征,等到后幾層,就能把簡單的特征結(jié)合起來,去探測更加復雜的東西。比如你錄在音頻里的單詞、詞組或是句子,然后就能運行語音識別了。同時我們所計算的之前的幾層,也就是相對簡單的輸入函數(shù),比如圖像單元的邊緣什么的。到網(wǎng)絡(luò)中的深層時,你實際上就能做很多復雜的事,比如探測面部或是探測單詞、短語或是句子。

  • Small:隱藏單元的數(shù)量相對較少
  • Deep:隱藏層數(shù)目比較多
    深層的網(wǎng)絡(luò)隱藏單元數(shù)量相對較少,隱藏層數(shù)目較多,如果淺層的網(wǎng)絡(luò)想要達到同樣的計算結(jié)果則需要指數(shù)級增長的單元數(shù)量才能達到。

另外一個,關(guān)于神經(jīng)網(wǎng)絡(luò)為何有效的理論,來源于電路理論,它和你能夠用電路元件計算哪些函數(shù)有著分不開的聯(lián)系。根據(jù)不同的基本邏輯門,譬如與門、或門、非門。在非正式的情況下,這些函數(shù)都可以用相對較小,但很深的神經(jīng)網(wǎng)絡(luò)來計算,小在這里的意思是隱藏單元的數(shù)量相對比較小,但是如果你用淺一些的神經(jīng)網(wǎng)絡(luò)計算同樣的函數(shù),也就是說在我們不能用很多隱藏層時,你會需要成指數(shù)增長的單元數(shù)量才能達到同樣的計算結(jié)果。
再來舉個例子,用沒那么正式的語言介紹這個概念。假設(shè)你想要對輸入特征計算異或或是奇偶性,你可以算x 1 XORx 2 XORx 3 XOR … … x n ,假設(shè)你有n或者n x 個特征,如果你畫一個異或的樹圖,先要計算x 1 ,x 2 的異或,然后是x 3 和x 4 。技術(shù)上來說如果你只用或門,還有非門的話,你可能會需要幾層才能計算異或函數(shù),但是用相對小的電路,你應該就可以計算異或了。然后你可以繼續(xù)建這樣的一個異或樹圖(上圖左),那么你最后會得到這樣的電路^ = y,也就是輸入特征的異或,或是奇偶性,要計算異或關(guān)系。這種樹圖對來輸出結(jié)果y,y應網(wǎng)絡(luò)的深度應該是O(log(n)),那么節(jié)點的數(shù)量和電路部件,或是門的數(shù)量并不會很大,你也不需要太多門去計算異或。
但是如果你不能使用多隱層的神經(jīng)網(wǎng)絡(luò)的話,在這個例子中隱層數(shù)為O(log(n)),比如你被迫只能用單隱藏層來計算的話,這里全部都指向從這些隱藏單元到后面這里,再輸出y,那么要計算奇偶性,或者異或關(guān)系函數(shù)就需要這一隱層(上圖右方框部分)的單元數(shù)呈指數(shù)增長才行,因為本質(zhì)上來說你需要列舉耗盡2 n 種可能的配置,或是2 n 種輸入比特的配置。異或運算的最終結(jié)果是 1 或 0,那么你最終就會需要一個隱藏層,其中單元數(shù)目隨輸入比特指數(shù)上升。精確的說應該是2 n?1 個隱藏單元數(shù),也就是O(2 n )。
我希望這能讓你有點概念,意識到有很多數(shù)學函數(shù)用深度網(wǎng)絡(luò)計算比淺網(wǎng)絡(luò)要容易得多,我個人倒是認為這種電路理論,對訓練直覺思維沒那么有用,但這個結(jié)果人們還是經(jīng)常提到的,用來解釋為什么需要更深層的網(wǎng)絡(luò)。除了這些原因,說實話,我認為“深度學習”這個名字挺唬人的,這些概念以前都統(tǒng)稱為有很多隱藏層的神經(jīng)網(wǎng)絡(luò),但是深度學習聽起來多高大上,太深奧了,對么?這個詞流傳出去以后,這是神經(jīng)網(wǎng)絡(luò)的重新包裝或是多隱藏層神經(jīng)網(wǎng)絡(luò)的重新包裝,激發(fā)了大眾的想象力。拋開這些公關(guān)概念重新包裝不談,深度網(wǎng)絡(luò)確實效果不錯,有時候人們還是會按照字面意思鉆牛角尖,非要用很多隱層。但是當我開始解決一個新問題時,我通常會從 logistic 回歸開始,再試試一到兩個隱層,把隱藏層數(shù)量當作參數(shù)、超參數(shù)一樣去調(diào)試,這樣去找比較合適的深度。但是近幾年以來,有一些人會趨向于使用非常非常深邃的神經(jīng)網(wǎng)絡(luò),比如好幾打的層數(shù),某些問題中只有這種網(wǎng)絡(luò)才是最佳模型。

4.6 搭建神經(jīng)網(wǎng)絡(luò)(看作業(yè))

4.7 (未檢查)參數(shù) VS 超參數(shù)(Parameters vs Hyperparameters)

想要你的深度神經(jīng)網(wǎng)絡(luò)起很好的效果,你還需要規(guī)劃好你的參數(shù)以及超參數(shù)。
什么是超參數(shù)?
比如算法中的 learning rate α\alphaα(學習率)、iterations(梯度下降法循環(huán)的數(shù)量)、L(隱藏層數(shù)目)、n[l]n^{ [l]}n[l] (隱藏層單元數(shù)目)、choice of activation function(激活函數(shù)的選擇)都需要
你來設(shè)置,這些數(shù)字實際上控制了最后的參數(shù)W和b的值,所以它們被稱作超參數(shù)。
實際上深度學習有很多不同的超參數(shù),之后我們也會介紹一些其他的超參數(shù),如momentum、mini batch size、regularization parameters 等等。
今天的深度學習應用領(lǐng)域,還是很經(jīng)驗性的過程,通常你有個想法,比如你可能大致知道一個最好的學習率值,可能說a = 0.01最好,我會想先試試看,然后你可以實際試一下,訓練一下看看效果如何。然后基于嘗試的結(jié)果你會發(fā)現(xiàn),你覺得學習率設(shè)定再提高到 0.05 會
比較好。如果你不確定什么值是最好的,你大可以先試試一個學習率a,再看看損失函數(shù) J
的值有沒有下降。然后你可以試一試大一些的值,然后發(fā)現(xiàn)損失函數(shù)的值增加并發(fā)散了。然
后可能試試其他數(shù),看結(jié)果是否下降的很快或者收斂到在更高的位置。你可能嘗試不同的a
并觀察損失函數(shù)J這么變了,試試一組值,然后可能損失函數(shù)變成這樣,這個a值會加快學習
過程,并且收斂在更低的損失函數(shù)值上(箭頭標識),我就用這個a值了。

在前面幾頁中,還有很多不同的超參數(shù)。然而,當你開始開發(fā)新應用時,預先很難確切
知道,究竟超參數(shù)的最優(yōu)值應該是什么。所以通常,你必須嘗試很多不同的值,并走這個循
環(huán),試試各種參數(shù)。試試看 5 個隱藏層,這個數(shù)目的隱藏單元,實現(xiàn)模型并觀察是否成功,
然后再迭代。這頁的標題是,應用深度學習領(lǐng)域,一個很大程度基于經(jīng)驗的過程,憑經(jīng)驗的
過程通俗來說,就是試直到你找到合適的數(shù)值。

另一個近來深度學習的影響是它用于解決很多問題,從計算機視覺到語音識別,到自然
語言處理,到很多結(jié)構(gòu)化的數(shù)據(jù)應用,比如網(wǎng)絡(luò)廣告或是網(wǎng)頁搜索或產(chǎn)品推薦等等。我所看
到過的就有很多其中一個領(lǐng)域的研究員,這些領(lǐng)域中的一個,嘗試了不同的設(shè)置,有時候這
種設(shè)置超參數(shù)的直覺可以推廣,但有時又不會。所以我經(jīng)常建議人們,特別是剛開始應用于
新問題的人們,去試一定范圍的值看看結(jié)果如何。然后下一門課程,我們會用更系統(tǒng)的方法,
用系統(tǒng)性的嘗試各種超參數(shù)取值。然后其次,甚至是你已經(jīng)用了很久的模型,可能你在做網(wǎng)
絡(luò)廣告應用,在你開發(fā)途中,很有可能學習率的最優(yōu)數(shù)值或是其他超參數(shù)的最優(yōu)值是會變的,
所以即使你每天都在用當前最優(yōu)的參數(shù)調(diào)試你的系統(tǒng),你還是會發(fā)現(xiàn),最優(yōu)值過一年就會變
化,因為電腦的基礎(chǔ)設(shè)施,CPU 或是 GPU 可能會變化很大。所以有一條經(jīng)驗規(guī)律可能每幾
個月就會變。如果你所解決的問題需要很多年時間,只要經(jīng)常試試不同的超參數(shù),勤于檢驗
結(jié)果,看看有沒有更好的超參數(shù)數(shù)值,相信你慢慢會得到設(shè)定超參數(shù)的直覺,知道你的問題
最好用什么數(shù)值。

這可能的確是深度學習比較讓人不滿的一部分,也就是你必須嘗試很多次不同可能性。
但參數(shù)設(shè)定這個領(lǐng)域,深度學習研究還在進步中,所以可能過段時間就會有更好的方法決定
超參數(shù)的值,也很有可能由于 CPU、GPU、網(wǎng)絡(luò)和數(shù)據(jù)都在變化,這樣的指南可能只會在一
段時間內(nèi)起作用,只要你不斷嘗試,并且嘗試保留交叉檢驗或類似的檢驗方法,然后挑一個
對你的問題效果比較好的數(shù)值。

近來受深度學習影響,很多領(lǐng)域發(fā)生了變化,從計算機視覺到語音識別到自然語言處理到很多結(jié)構(gòu)化的數(shù)據(jù)應用,比如網(wǎng)絡(luò)廣告、網(wǎng)頁搜索、產(chǎn)品推薦等等;有些同一領(lǐng)域設(shè)置超
參數(shù)的直覺可以推廣,但有時又不可以,特別是那些剛開始研究新問題的人們應該去嘗試一
定范圍內(nèi)的結(jié)果如何,甚至那些用了很久的模型得學習率或是其他超參數(shù)的最優(yōu)值也有可能
會改變。

在下個課程我們會用系統(tǒng)性的方法去嘗試各種超參數(shù)的取值。有一條經(jīng)驗規(guī)律:經(jīng)常試
試不同的超參數(shù),勤于檢查結(jié)果,看看有沒有更好的超參數(shù)取值,你將會得到設(shè)定超參數(shù)的
直覺。

4.8 深度學習和大腦的關(guān)聯(lián)性(What does this have to do with the brain?)

深度學習和大腦有什么關(guān)聯(lián)性嗎?
關(guān)聯(lián)不大。
那么人們?yōu)槭裁磿f深度學習和大腦相關(guān)呢?
當你在實現(xiàn)一個神經(jīng)網(wǎng)絡(luò)的時候,那些公式是你在做的東西,你會做前向傳播、反向傳
播、梯度下降法,其實很難表述這些公式具體做了什么,深度學習像大腦這樣的類比其實是
過度簡化了我們的大腦具體在做什么,但因為這種形式很簡潔,也能讓普通人更愿意公開討
論,也方便新聞報道并且吸引大眾眼球,但這個類比是非常不準確的。
一個神經(jīng)網(wǎng)絡(luò)的邏輯單元可以看成是對一個生物神經(jīng)元的過度簡化,但迄今為止連神經(jīng)
科學家都很難解釋究竟一個神經(jīng)元能做什么,它可能是極其復雜的;它的一些功能可能真的
類似 logistic 回歸的運算,但單個神經(jīng)元到底在做什么目前還沒有人能夠真正可以解釋。
深度學習的確是個很好的工具來學習各種很靈活很復雜的函數(shù),學習到從x到y(tǒng)的映射,
在監(jiān)督學習中學到輸入到輸出的映射。
但這個類比還是很粗略的,這是一個 logistic 回歸單元的 sigmoid 激活函數(shù),這里是一
個大腦中的神經(jīng)元,圖中這個生物神經(jīng)元,也是你大腦中的一個細胞,它能接受來自其他神
經(jīng)元的電信號,比如x 1 , x 2 , x 3 ,或可能來自于其他神經(jīng)元a 1 , a 2 , a 3 。其中有一個簡單的臨界
計算值,如果這個神經(jīng)元突然激發(fā)了,它會讓電脈沖沿著這條長長的軸突,或者說一條導線傳到另一個神經(jīng)元。

所以這是一個過度簡化的對比,把一個神經(jīng)網(wǎng)絡(luò)的邏輯單元和右邊的生物神經(jīng)元對比。
至今為止其實連神經(jīng)科學家們都很難解釋,究竟一個神經(jīng)元能做什么。一個小小的神經(jīng)元其
實卻是極其復雜的,以至于我們無法在神經(jīng)科學的角度描述清楚,它的一些功能,可能真的
是類似 logistic 回歸的運算,但單個神經(jīng)元到底在做什么,目前還沒有人能夠真正解釋,大
腦中的神經(jīng)元是怎么學習的,至今這仍是一個謎之過程。到底大腦是用類似于后向傳播或是
梯度下降的算法,或者人類大腦的學習過程用的是完全不同的原理。

所以雖然深度學習的確是個很好的工具,能學習到各種很靈活很復雜的函數(shù)來學到從 x
到 y 的映射。在監(jiān)督學習中,學到輸入到輸出的映射,但這種和人類大腦的類比,在這個領(lǐng)
域的早期也許值得一提。但現(xiàn)在這種類比已經(jīng)逐漸過時了,我自己也在盡量少用這樣的說法。
這就是神經(jīng)網(wǎng)絡(luò)和大腦的關(guān)系,我相信在計算機視覺,或其他的學科都曾受人類大腦啟
發(fā),還有其他深度學習的領(lǐng)域也曾受人類大腦啟發(fā)。但是個人來講我用這個人類大腦類比的
次數(shù)逐漸減少了。

總結(jié)

以上是生活随笔為你收集整理的DeepLearning.AI第一部分第四周:深层神经网络的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。