神經網路的隱藏層

2021-10-12 18:17:00 字數 2564 閱讀 6189

通常,卷積神經網路除了輸入和輸出層之外還有四個基本的神經元層,在三層神經網路中,這基層被稱為隱藏層

卷積層(convolution)

啟用層(activation)

池化層(pooling)

完全連線層(fully connected)

卷積層在最初的卷積層中,成千上萬的神經元充當第一組過濾器,搜尋影象中的每個部分和畫素,找出模式(pattern)。隨著越來越多的影象被處理,每個神經元逐漸學習過濾特定的特徵,這提高了準確性。

比如影象是蘋果,乙個過濾器可能專注於發現「紅色」這一顏色,而另乙個過濾器可能會尋找圓形邊緣,另乙個過濾器則會識別細細的莖。如果你要清理混亂的地下室,準備在車庫搞個大銷售,你就能理解把一切按不同的主題分類是什麼意思了(玩具、電子產品、藝術品、衣服等等)。 卷積層就是通過將影象分解成不同的特徵來做這件事的。

特別強大的是,神經網路賴以成名的絕招與早期的 ai 方法(比如 deep blue 中用到的)不同,這些過濾器不是人工設計的。他們純粹是通過檢視資料來學習和自我完善。

卷積層建立了不同的、細分的影象版本,每個專用於不同的過濾特徵——顯示其神經元在**看到了紅色、莖、曲線和各種其他元素的例項(但都是部分的) 。但因為卷積層在識別特徵方面相當自由,所以需要額外的一雙眼睛,以確保當資訊在網路中傳遞時,沒有任何有價值的部分被遺漏。

神經網路的乙個優點是它們能夠以非線性的方式學習。如果不用數學術語解釋,它們的意思是能夠發現不太明顯的影象中的特徵——樹上的蘋果,陽光下的,陰影下的,或廚房櫃檯的碗裡的。這一切都要歸功於於啟用層,它或多或少地突出了有價值的東西——一些既明了又難以發現的屬性。

在我們的車庫大甩賣中,想像一下,從每一類東西裡我們都挑選了幾件珍貴的寶物:書籍,大學時代的經典 t 恤。要命的是,我們可能還不想扔它們。我們把這些「可能」會留下的物品放在它們各自的類別之上,以備再考慮。

池化層整個影象中的這種「卷積」會產生大量的資訊,這可能會很快成為乙個計算噩夢。進入池化層,可將其全部縮小成更通用和可消化的形式。有很多方法可以解決這個問題,但最受歡迎的是「最大池」(max pooling),它將每個特徵圖編輯成自己的「讀者文摘」版本,因此只有紅色、莖或曲線的最好樣本被表徵出來。

在車庫春季清理的例子中,如果我們使用著名的日本清理大師 marie kondo 的原則,將不得不從每個類別堆中較小的收藏夾裡選擇「激發喜悅」的東西,然後賣掉或處理掉其他東西。 所以現在我們仍然按照物品型別來分類,但只包括實際想要保留的物品。其他一切都賣了。

這時,神經網路的設計師可以堆疊這一分類的後續分層配置——卷積、啟用、池化——並且繼續過濾影象以獲得更高階別的資訊。在識別中的蘋果時,影象被一遍又一遍地過濾,初始層僅顯示邊緣的幾乎不可辨別的部分,比如紅色的一部分或僅僅是莖的尖端,而隨後的更多的過濾層將顯示整個蘋果。無論哪種方式,當開始獲取結果時,完全連線層就會起作用。

完全連線層

現在是時候得出結果了。在完全連線層中,每個削減的或「池化的」特徵圖「完全連線」到表徵了神經網路正在學習識別的事物的輸出節點(神經元)上。 如果網路的任務是學習如何發現貓、狗、豚鼠和沙鼠,那麼它將有四個輸出節點。 在我們描述的神經網路中,它將只有兩個輸出節點:乙個用於「蘋果」,乙個用於「橘子」。

如果通過網路饋送的影象是蘋果,並且網路已經進行了一些訓練,且隨著其**而變得越來越好,那麼很可能乙個很好的特徵圖塊就是包含了蘋果特徵的高質量例項。 這是最終輸出節點實現使命的地方,反之亦然。

「蘋果」和「橘子」節點的工作(他們在工作中學到的)基本上是為包含其各自水果的特徵圖「投票」。因此,「蘋果」節點認為某圖包含「蘋果」特徵越多,它給該特徵圖的投票就越多。兩個節點都必須對每個特徵圖進行投票,無論它包含什麼。所以在這種情況下,「橘子」節點不會向任何特徵圖投很多票,因為它們並不真正包含任何「橘子」的特徵。最後,投出最多票數的節點(在本例中為「蘋果」節點)可以被認為是網路的「答案」,儘管事實上可能不那麼簡單。

因為同乙個網路正在尋找兩個不同的東西——蘋果和橘子——網路的最終輸出以百分比表示。在這種情況下,我們假設網路在訓練中表現已經有所下降了,所以這裡的**可能就是75%的「蘋果」,25%的「橘子」。或者如果是在訓練早期,可能會更加不正確,它可能是20%的「蘋果」和80%的「橘子」。這可不妙。

如果一開始沒成功,再試,再試…

所以,在早期階段,神經網路可能會以百分比的形式給出一堆錯誤的答案。 20%的「蘋果」和80%的「橘子」,**顯然是錯誤的,但由於這是使用標記的訓練資料進行監督學習,所以網路能夠通過稱為「反向傳播」的過程來進行系統調整。

避免用數學術語來說,反向傳播將反饋傳送到上一層的節點,告訴它答案差了多少。然後,該層再將反饋傳送到上一層,再傳到上一層,直到它回到卷積層,來進行調整,以幫助每個神經元在隨後的影象在網路中傳遞時更好地識別資料。

這個過程一直反覆進行,直到神經網路以更準確的方式識別影象中的蘋果和橘子,最終以100%的正確率**結果——儘管許多任務程師認為85%是可以接受的。這時,神經網路已經準備好了,可以開始真正識別中的蘋果了。

卷積神經網路 卷積神經網路啟用層

在生物意義上的神經元中,只有前面的樹突傳遞的訊號的加權和值大於某乙個特定的閾值的時候,後面的神經元才會被啟用。簡單的說啟用函式的意義在於判定每個神經元的輸出 放在人臉識別卷積神經網路中來思考,卷積層的啟用函式的意義在於這一塊區域的特徵強度如果沒有達到一定的標準,就輸出0,表明這種特徵提取方式 卷積核...

單隱藏層神經網路(mnist手寫數字識別

1 載入資料 import numpy as np import tensorflow as tf import tensorflow.examples.tutorials.mnist.input data as input data 讀取mnist資料 mnist input data.read ...

前饋神經網路如何選擇隱藏層的數量

一般是一層,因為大部分情況下都夠用了。理論上說,乙個有兩個隱藏層的前饋神經網路可以表示任意的非線性決策邊界。所以,可以說1到2個隱藏層。1.輸入層節點數 輸入向量維數 2.輸出層節點數 測試分類個數,或者 的節點數 3隱含層節點數計算 1 假設輸入層的節點數是nx,輸出層的節點數ny,那麼每個隱藏層...