<label id="jgr5k"></label>
    <legend id="jgr5k"><track id="jgr5k"></track></legend>

    <sub id="jgr5k"></sub>
  1. <u id="jgr5k"></u>
      久草国产视频,91资源总站,在线免费看AV,丁香婷婷社区,久久精品99久久久久久久久,色天使av,无码探花,香蕉av在线
      您正在使用IE低版瀏覽器,為了您的雷峰網賬號安全和更好的產品體驗,強烈建議使用更快更安全的瀏覽器
      此為臨時鏈接,僅用于文章預覽,將在時失效
      人工智能開發者 正文
      發私信給AI研習社
      發送

      2

      深度學習中的“深度”究竟怎么理解?

      本文作者: AI研習社 2017-08-04 12:02
      導語:介紹為了研究神經網絡,我們必須要對什么網絡是什么有一個更直觀的認識。一、基本變換:層神經網絡是由一層一層構建的,那么每層究竟在做什么?數學式子:,其中是輸入向量

      雷鋒網按:本文原作者 YJango,本文原載于其知乎專欄——超智能體。雷鋒網已獲得原作者授權。

      介紹

      為了研究神經網絡,我們必須要對什么網絡是什么有一個更直觀的認識。

      一、基本變換:層

      神經網絡是由一層一層構建的,那么每層究竟在做什么?

      • 數學式子:深度學習中的“深度”究竟怎么理解?,其中深度學習中的“深度”究竟怎么理解?是輸入向量,深度學習中的“深度”究竟怎么理解?是輸出向量,深度學習中的“深度”究竟怎么理解?是偏移向量,深度學習中的“深度”究竟怎么理解?是權重矩陣,深度學習中的“深度”究竟怎么理解?是激活函數。每一層僅僅是把輸入深度學習中的“深度”究竟怎么理解?經過如此簡單的操作得到深度學習中的“深度”究竟怎么理解?

      • 數學理解:通過如下 5 種對輸入空間(輸入向量的集合)的操作,完成 輸入空間 —> 輸出空間 的變換 (矩陣的行空間到列空間)。 注:用 “空間” 二字的原因是被分類的并不是單個事物,而是一類事物。空間是指這類事物所有個體的集合。

        • 1. 升維 / 降維

        • 2. 放大 / 縮小

        • 3. 旋轉

        • 4. 平移

        • 5. “彎曲” 這 5 種操作中,1,2,3 的操作由深度學習中的“深度”究竟怎么理解?完成,4 的操作是由深度學習中的“深度”究竟怎么理解?完成,5 的操作則是由深度學習中的“深度”究竟怎么理解?來實現。

      深度學習中的“深度”究竟怎么理解?

      每層神經網絡的數學理解:用線性變換跟隨著非線性變化,將輸入空間投向另一個空間。
      • 物理理解:深度學習中的“深度”究竟怎么理解? 的理解就是通過組合形成新物質。深度學習中的“深度”究竟怎么理解?又符合了我們所處的世界都是非線性的特點。

        • 情景:深度學習中的“深度”究竟怎么理解?是二維向量,維度是碳原子和氧原子的數量深度學習中的“深度”究竟怎么理解?,數值且定為深度學習中的“深度”究竟怎么理解?,若確定深度學習中的“深度”究竟怎么理解?是三維向量,就會形成如下網絡的形狀 (神經網絡的每個節點表示一個維度)。通過改變權重的值,可以獲得若干個不同物質。右側的節點數決定了想要獲得多少種不同的新物質。(矩陣的行數)

      深度學習中的“深度”究竟怎么理解?

      • 1. 如果權重 W 的數值如(1),那么網絡的輸出 深度學習中的“深度”究竟怎么理解? 就會是三個新物質,[二氧化碳,臭氧,一氧化碳]。 深度學習中的“深度”究竟怎么理解? (1)

      • 2. 也可以減少右側的一個節點,并改變權重 W 至(2),那么輸出深度學習中的“深度”究竟怎么理解? 就會是兩個新物質,深度學習中的“深度”究竟怎么理解?。  深度學習中的“深度”究竟怎么理解?(2)

      • 3. 如果希望通過層網絡能夠從 [C, O] 空間轉變到深度學習中的“深度”究竟怎么理解?空間的話,那么網絡的學習過程就是將 W 的數值變成盡可能接近 (1) 的過程 。如果再加一層,就是通過組合深度學習中的“深度”究竟怎么理解?這三種基礎物質,形成若干更高層的物質。

      • 4. 重要的是這種組合思想,組合成的東西在神經網絡中并不需要有物理意義。

      每層神經網絡的物理理解:通過現有的不同物質的組合形成新物質。

      二、理解視角:

      現在我們知道了每一層的行為,但這種行為又是如何完成識別任務的呢?

      數學視角:“線性可分”

      • 一維情景:以分類為例,當要分類正數、負數、零,三類的時候,一維空間的直線可以找到兩個超平面(比當前空間低一維的子空間。當前空間是直線的話,超平面就是點)分割這三類。但面對像分類奇數和偶數無法找到可以區分它們的點的時候,我們借助 x % 2(取余)的轉變,把 x 變換到另一個空間下來比較,從而分割。

      深度學習中的“深度”究竟怎么理解?


      • 二維情景:平面的四個象限也是線性可分。但下圖的紅藍兩條線就無法找到一超平面去分割。

      深度學習中的“深度”究竟怎么理解?

      神經網絡的解決方法依舊是轉換到另外一個空間下,用的是所說的 5 種空間變換操作。比如下圖就是經過放大、平移、旋轉、扭曲原二維空間后,在三維空間下就可以成功找到一個超平面分割紅藍兩線 (同 SVM 的思路一樣)。

      深度學習中的“深度”究竟怎么理解?

      上面是一層神經網絡可以做到的,如果把深度學習中的“深度”究竟怎么理解? 當做新的輸入再次用這 5 種操作進行第二遍空間變換的話,網絡也就變為了二層。最終輸出是深度學習中的“深度”究竟怎么理解?。 設想網絡擁有很多層時,對原始輸入空間的 “扭曲力” 會大幅增加,如下圖,最終我們可以輕松找到一個超平面分割空間。

      深度學習中的“深度”究竟怎么理解?


      當然也有如下圖失敗的時候,關鍵在于 “如何扭曲空間”。所謂監督學習就是給予神經網絡網絡大量的訓練例子,讓網絡從訓練例子中學會如何變換空間。每一層的權重 W 就控制著如何變換空間,我們最終需要的也就是訓練好的神經網絡的所有層的權重矩陣。


      深度學習中的“深度”究竟怎么理解?

      這里有非常棒的可視化空間變換 demo,一定要打開嘗試并感受這種扭曲過程。更多內容請看 Neural Networks, Manifolds, and Topology

      線性可分視角:神經網絡的學習就是學習如何利用矩陣的線性變換加激活函數的非線性變換,將原始輸入空間投向線性可分 / 稀疏的空間去分類 / 回歸。
      增加節點數:增加維度,即增加線性轉換能力。
      增加層數:增加激活函數的次數,即增加非線性轉換次數。

      物理視角:“物質組成”

      • 類比:回想上文由碳氧原子通過不同組合形成若干分子的例子。從分子層面繼續迭代這種組合思想,可以形成 DNA,細胞,組織,器官,最終可以形成一個完整的人。繼續迭代還會有家庭,公司,國家等。這種現象在身邊隨處可見。并且原子的內部結構與太陽系又驚人的相似。不同層級之間都是以類似的幾種規則再不斷形成新物質。你也可能聽過分形學這三個字。可通過觀看從 1 米到 150 億光年來感受自然界這種層級現象的普遍性。

      深度學習中的“深度”究竟怎么理解?


      • 人臉識別情景:我們可以模擬這種思想并應用在畫面識別上。由像素組成菱角再組成五官最后到不同的人臉。每一層代表不同的不同的物質層面 (如分子層)。而每層的 W 存儲著如何組合上一層的物質從而形成新物質。 如果我們完全掌握一架飛機是如何從分子開始一層一層形成的,拿到一堆分子后,我們就可以判斷他們是否可以以此形成方式,形成一架飛機。 附:Tensorflow playground展示了數據是如何 “流動” 的。

      深度學習中的“深度”究竟怎么理解?

      物質組成視角:神經網絡的學習過程就是學習物質組成方式的過程。
      增加節點數:增加同一層物質的種類,比如 118 個元素的原子層就有 118 個節點。
      增加層數:增加更多層級,比如分子層,原子層,器官層,并通過判斷更抽象的概念來識別物體。

      三、神經網絡的訓練

      知道了神經網絡的學習過程就是學習控制著空間變換方式(物質組成方式)的權重矩陣后,接下來的問題就是如何學習每一層的權重矩陣 深度學習中的“深度”究竟怎么理解?

      如何訓練:

      既然我們希望網絡的輸出盡可能的接近真正想要預測的值。那么就可以通過比較當前網絡的預測值和我們真正想要的目標值,再根據兩者的差異情況來更新每一層的權重矩陣(比如,如果網絡的預測值高了,就調整權重讓它預測低一些,不斷調整,直到能夠預測出目標值)。因此就需要先定義 “如何比較預測值和目標值的差異”,這便是損失函數目標函數(loss function or objective function),用于衡量預測值和目標值的差異的方程。loss function 的輸出值(loss)越高表示差異性越大。那神經網絡的訓練就變成了盡可能的縮小 loss 的過程。 所用的方法是梯度下降(Gradient descent):通過使 loss 值向當前點對應梯度的反方向不斷移動,來降低 loss。一次移動多少是由學習速率(learning rate)來控制的。

      梯度下降的問題:

      然而使用梯度下降訓練神經網絡擁有兩個主要難題。

      1、局部極小值

      梯度下降尋找的是 loss function 的局部極小值,而我們想要全局最小值。如下圖所示,我們希望 loss 值可以降低到右側深藍色的最低點,但 loss 有可能 “卡” 在左側的局部極小值中。

      深度學習中的“深度”究竟怎么理解?

      試圖解決 “卡在局部極小值” 問題的方法分兩大類:

      • 調節步伐:調節學習速率,使每一次的更新 “步伐” 不同。常用方法有:

      • 隨機梯度下降(Stochastic Gradient Descent (SGD):每次只更新一個樣本所計算的梯度

      • 小批量梯度下降(Mini-batch gradient descent):每次更新若干樣本所計算的梯度的平均值

      • 動量(Momentum):不僅僅考慮當前樣本所計算的梯度;Nesterov 動量(Nesterov Momentum):Momentum 的改進

      • Adagrad、RMSProp、Adadelta、Adam:這些方法都是訓練過程中依照規則降低學習速率,部分也綜合動量

      • 優化起點:合理初始化權重(weights initialization)、預訓練網絡(pre-train),使網絡獲得一個較好的 “起始點”,如最右側的起始點就比最左側的起始點要好。常用方法有:高斯分布初始權重(Gaussian distribution)、均勻分布初始權重(Uniform distribution)、Glorot 初始權重、He 初始權、稀疏矩陣初始權重(sparse matrix)

      2、梯度的計算

      機器學習所處理的數據都是高維數據,該如何快速計算梯度、而不是以年來計算。 其次如何更新隱藏層的權重? 解決方法是:計算圖:反向傳播算法這里的解釋留給非常棒的 Computational Graphs: Backpropagation需要知道的是,反向傳播算法是求梯度的一種方法。如同快速傅里葉變換(FFT)的貢獻。 而計算圖的概念又使梯度的計算更加合理方便。

      基本流程圖:

      下面就結合圖簡單瀏覽一下訓練和識別過程,并描述各個部分的作用。要結合圖解閱讀以下內容。但手機顯示的圖過小,最好用電腦打開。

      深度學習中的“深度”究竟怎么理解?

      • 收集訓練集(train data):也就是同時有 input 以及對應 label 的數據。每個數據叫做訓練樣本(sample)。label 也叫 target,也是機器學習中最貴的部分。上圖表示的是我的數據庫。假設 input 本別是 x 的維度是 39,label 的維度是 48。

      • 設計網絡結構(architecture):確定層數、每一隱藏層的節點數和激活函數,以及輸出層的激活函數和損失函數。上圖用的是兩層隱藏層(最后一層是輸出層)。隱藏層所用激活函數 a() 是 ReLu,輸出層的激活函數是線性 linear(也可看成是沒有激活函數)。隱藏層都是 1000 節點。損失函數 L() 是用于比較距離 MSE:mean((output - target)^2)。MSE 越小表示預測效果越好。訓練過程就是不斷減小 MSE 的過程。到此所有數據的維度都已確定:

        • 訓練數據:深度學習中的“深度”究竟怎么理解?

        • 權重矩陣:深度學習中的“深度”究竟怎么理解?

        • 偏移向量:深度學習中的“深度”究竟怎么理解?

        • 網絡輸出:深度學習中的“深度”究竟怎么理解?

      • 數據預處理(preprocessing):將所有樣本的 input 和 label 處理成能夠使用神經網絡的數據,label 的值域符合激活函數的值域。并簡單優化數據以便讓訓練易于收斂。比如中心化(mean subtraction)、歸一化(normalization)、主成分分析(PCA)、白化(whitening)。假設上圖的 input 和 output 全都經過了中心化和歸一化。

      • 權重初始化(weights initialization):深度學習中的“深度”究竟怎么理解?在訓練前不能為空,要初始化才能夠計算 loss 從而來降低。深度學習中的“深度”究竟怎么理解?初始化決定了 loss 在 loss function 中從哪個點開始作為起點訓練網絡。上圖用均勻分布初始權重(Uniform distribution)。

      • 訓練網絡(training):訓練過程就是用訓練數據的 input 經過網絡計算出 output,再和 label 計算出 loss,再計算出 gradients 來更新 weights 的過程。

        • 正向傳遞:,算當前網絡的預測值深度學習中的“深度”究竟怎么理解?

        • 計算 loss:深度學習中的“深度”究竟怎么理解?

        • 計算梯度:從 loss 開始反向傳播計算每個參數(parameters)對應的梯度(gradients)。這里用 Stochastic Gradient Descent (SGD) 來計算梯度,即每次更新所計算的梯度都是從一個樣本計算出來的。傳統的方法 Gradient Descent 是正向傳遞所有樣本來計算梯度。SGD 的方法來計算梯度的話,loss function 的形狀如下圖所示會有變化,這樣在更新中就有可能 “跳出” 局部最小值。

      深度學習中的“深度”究竟怎么理解?

        • 更新權重:這里用最簡單的方法來更新,即所有參數都 深度學習中的“深度”究竟怎么理解?

        • 預測新值:訓練過所有樣本后,打亂樣本順序再次訓練若干次。訓練完畢后,當再來新的數據 input,就可以利用訓練的網絡來預測了。這時的 output 就是效果很好的預測值了。下圖是一張實際值預測值的三組對比圖。輸出數據是 48 維,這里只取 1 個維度來畫圖。藍色的是實際值,綠色的是實際值。最上方的是訓練數據的對比圖,而下方的兩行是神經網絡模型從未見過的數據預測對比圖。(不過這里用的是 RNN,主要是為了讓大家感受一下效果)

      深度學習中的“深度”究竟怎么理解?

      注:此部分內容不是這篇文章的重點,但為了理解深層神經網絡,需要明白最基本的訓練過程。 若能理解訓練過程是通過梯度下降盡可能縮小 loss 的過程即可。 若有理解障礙,可以用 python 實踐一下從零開始訓練一個神經網絡,體會整個訓練過程。若有時間則可以再體會一下計算圖自動求梯度的方便利用 TensorFlow

      結合 Tensorflow playground理解 5 種空間操作和物質組成視角

      打開網頁后,總體來說,藍色代表正值,黃色代表負值。拿分類任務來分析。

      • 數據:在二維平面內,若干點被標記成了兩種顏色。黃色,藍色,表示想要區分的兩類。你可以把平面內的任意點標記成任意顏色。網頁給你提供了 4 種規律。神經網絡會根據你給的數據訓練,再分類相同規律的點。

      深度學習中的“深度”究竟怎么理解?


      • 輸入:在二維平面內,你想給網絡多少關于 “點” 的信息。從顏色就可以看出來,深度學習中的“深度”究竟怎么理解?左邊是負,右邊是正,深度學習中的“深度”究竟怎么理解?表示此點的橫坐標值。同理,深度學習中的“深度”究竟怎么理解?表示此點的縱坐標值。深度學習中的“深度”究竟怎么理解?是關于橫坐標值的 “拋物線” 信息。你也可以給更多關于這個點的信息。給的越多,越容易被分開。

      深度學習中的“深度”究竟怎么理解?


      • 連接線:表示權重,藍色表示用神經元的原始輸出,黃色表示用負輸出。深淺表示權重的絕對值大小。鼠標放在線上可以看到具體值。也可以更改。在(1)中,當把深度學習中的“深度”究竟怎么理解?輸出的一個權重改為 - 1 時,深度學習中的“深度”究竟怎么理解?的形狀直接倒置了。不過還需要考慮激活函數。(1)中用的是 linear。在(2)中,當換成 sigmoid 時,你會發現沒有黃色區域了。因為 sigmoid 的值域是 (0,1)

      深度學習中的“深度”究竟怎么理解?(1)

      深度學習中的“深度”究竟怎么理解?(2)

      • 輸出:黃色背景顏色都被歸為黃點類,藍色背景顏色都被歸為藍點類。深淺表示可能性的強弱。

      深度學習中的“深度”究竟怎么理解?

      上圖中所有在黃色背景顏色的點都會被分類為 “黃點 “,同理,藍色區域被分成藍點。在上面的分類分布圖中你可以看到每一層通過上一層信息的組合所形成的。權重(那些連接線)控制了 “如何組合”。神經網絡的學習也就是從數據中學習那些權重。Tensorflow playground 所表現出來的現象就是 “在我文章里所寫的 “物質組成思想”,這也是為什么我把 Tensorflow playground放在了那一部分。

      不過你要是把 Tensorflow 的個名字拆開來看的話,是 tensor(張量)的 flow(流動)。Tensorflow playground 的作者想要闡述的側重點是 “張量如何流動” 的。

      5 種空間變換的理解:Tensorflow playground 下沒有體現 5 種空間變換的理解。需要打開這個網站嘗試:ConvNetJS demo: Classify toy 2D data

      深度學習中的“深度”究竟怎么理解?

      左側是原始輸入空間下的分類圖,右側是轉換后的高維空間下的扭曲圖。

      深度學習中的“深度”究竟怎么理解?

      最終的扭曲效果是所有綠點都被扭曲到了一側,而所有紅點都被扭曲到了另一側。這樣就可以線性分割(用超平面(這里是一個平面)在中間分開兩類)

      四、表現原因

      文章的最后稍微提一下深層神經網絡。深層神經網絡就是擁有更多層數的神經網絡。

      按照上文在理解視角中所述的觀點,可以想出下面兩條理由關于為什么更深的網絡會更加容易識別,增加容納變異體(variation)(紅蘋果、綠蘋果)的能力、魯棒性(robust)。

      數學視角:變異體(variation)很多的分類的任務需要高度非線性的分割曲線。不斷的利用那 5 種空間變換操作將原始輸入空間像 “捏橡皮泥一樣” 在高維空間下捏成更為線性可分 / 稀疏的形狀。

      物理視角:通過對 “抽象概念” 的判斷來識別物體,而非細節。比如對 “飛機” 的判斷,即便人類自己也無法用語言或者若干條規則來解釋自己如何判斷一個飛機。因為人腦中真正判斷的不是是否 “有機翼”、“能飛行” 等細節現象,而是一個抽象概念。層數越深,這種概念就越抽象,所能涵蓋的變異體就越多,就可以容納戰斗機,客機等很多種不同種類的飛機。

      雷峰網版權文章,未經授權禁止轉載。詳情見轉載須知

      深度學習中的“深度”究竟怎么理解?

      分享:

      編輯

      聚焦數據科學,連接 AI 開發者。更多精彩內容,請訪問:yanxishe.com
      當月熱門文章
      最新文章
      請填寫申請人資料
      姓名
      電話
      郵箱
      微信號
      作品鏈接
      個人簡介
      為了您的賬戶安全,請驗證郵箱
      您的郵箱還未驗證,完成可獲20積分喲!
      請驗證您的郵箱
      立即驗證
      完善賬號信息
      您的賬號已經綁定,現在您可以設置密碼以方便用郵箱登錄
      立即設置 以后再說
      主站蜘蛛池模板: 国产精品毛片在线完整版| 国产精品无码翘臀在线观看| 嘉义县| 欧美黑人又粗又大久久久| 东京热大乱w姦| 色噜噜人妻丝袜AⅤ资源| 一级做a爰片在线播放| 欧美老熟妇喷水| 国产精品无码天天爽视频| 波多野结衣一区二区三区视频| 国产又爽又大又黄a片| 日韩毛片在线免费观看| 露脸叫床粗话东北少妇 | 激情综合网激情综合| 在线色综合| 人妻体验按摩到忍不住哀求继续 | 国产精品成人国产乱| 无码少妇视频| 天天干夜夜操| 婷婷99视频精品全部在线观看 | 国产愉拍精品手机| 精品xxx| 国产福利萌白酱在线观看视频| 欧美ts人妖xxxxxx| 亚洲成人久久躁狠狠躁| 亚洲AVAV天堂Av在线播放| 日韩色人妻| 婷婷色综合成人成人网小说 | 国产97在线 | 免费| yyyy11111少妇无码影院| 国产午夜片无码区在线播放| 国产日韩欧美在线观看不卡| 天堂国产一区二区三区四区不卡| 岗巴县| 国产偷国产偷亚洲清高网站| 夜夜爽影院| 五月花成人网| 国产乱妇无码毛片A片在线看下载| 日韩亚洲精品一卡二卡| 亚洲综合性| 3751色视频|