[AI小學堂(四)]神經網路是什麼? 神經網路怎麼學習? 超簡化講解反向傳播演算法Back Propagation

更新 發佈閱讀 5 分鐘
raw-image

在我們的上一篇文章,我們把神經網路的架構用簡化再簡化的方式來說明(其實聽不懂得觀眾也不用洩氣,我認為神經網路確實是沒有辦法很直觀的理解,至少對理科以外的人來說....),我們至少知道了,以我們每次都拿來舉例的把圖片辨識成數字0~9的這個簡單神經網路來說,他的架構大概是長這樣有輸入層/輸出層/隱藏層,每一層都有很多的神經元,而相鄰的兩個層的神經元是fully-connected,也就是說每個神經元都有跟另外一層的每個神經元都有連接。我們舉第二層的某一個特定的神經元來說,他的數值是怎麼來的呢?就是由第一層每個神經元的數值乘上了權重(Weight),全部第一層神經元的數值x權重加起來以後呢,在加上誤差(Bias),在放入一個用來normalize的sigmoid function或Relu function之後了,就得到了這個第二層神經元的數值。

都看不懂沒關係,重點就是,這個神經網路中,我們的目的是要得到一個最接近完美的權重(Weight)跟誤差值(Bias)讓這個神經網路輸入的圖片可以得到正確的輸出,也就是完美的判斷到底是哪一個數字。

raw-image

可是到底要怎麼得到這樣完美的權重跟偏差值呢? 這就要提到神經網路中利用Back Propagation來學習了。我們會設法用最簡單忽略大部分計算細節的方式來說明。以下圖來說,我們的輸入是這個手寫的3,那麼我們最希望的輸出應該就是如圖最右邊的,在代表3的這個神經元數值是1,其他的神經元數字是0,但是事實上沒有受過訓練的神經網路出來的結果是這樣呢? 可能就是如圖上所看到的一團糟,除了代表3的神經元以外,其他神經元也有非常多的數值。

raw-image

在仔細看一另一個訓練輸入手寫數字2的例子,一樣是沒有受過訓練的網路,我們假設輸出層的結果是這樣,那麼你應該會希望代表2的神經元的數值要上升,然後代表其他數字的神經元的數值要下降,如下圖。

raw-image

但是這個神經元的數值是怎麼來的呢? 如我們開頭所說的,當然就是從上一層的神經元經過權重跟偏差值的計算得來的,如下圖。舉例來說我們希望代表2的這個神經元(我們叫他A2好了)數值越高越好,那麼在前一層的神經元裡面,數值是正的神經元,你會希望它連結到A2這個神經元的權重越高越好,或者是你也會希望這個誤差值能夠越高越好,這樣得到的A2的數值當然就會比較高囉。最後一點就是你會希望權重高的神經元數值越高越好,等等但是要怎麼影響神經元的數值呢? 我們不是只能調整權重跟誤差值嗎? 所以要影響神經元的數值,就要再回到上一層。

raw-image

要影響倒數第一層的數值,我們就得回到倒數第二層,繼續類推,要影響倒數第二層的數值,我們就必須再回到倒數第三層。這也就是為什麼這個方法叫做反向傳播演算法Back Propagation

raw-image

經過這樣一層又一層的推回去,我們就知道了,該針對每一層的權重(Weight)跟誤差值(Bias)該做怎樣調整(是要調低還是調高呢?該調整多少?)。但是別忘了這樣只是針對一個手寫的"2"做調整而已,我們還有千千萬萬個訓練數字跟其他的手寫數字要做訓練,所以我們應該把這些都列出來如下圖,就會發現針對每個手寫數字,每一層的權重跟每一層的誤差值我們都有希望他調整的方向,光以這個簡單的網路來看,就有13002個權重跟誤差值是我們需要去調整的。

raw-image

最後我們把這些所有訓練的結果加總起來,我們就得到了針對每個權重還有偏差值,我們希望調整的方向。

raw-image

針對我們得到的結果,去調整這個神經網路裡面的權重跟還誤差值,我們就完成了....一次的訓練! 是的,因為這是一個平均值,所以對每一個數值來說都不夠完美,實際上為了讓權重還有誤差值能夠趨近完美,還需要經過非常多次的iteration (反覆訓練) 才能讓整個網路更正確的判斷數字。 我們今天舉的例子是簡化又簡化過,想要讓大家稍微理解一下到底神經網路的訓練是怎麼做的。實際上為了能夠讓神經網路的訓練更加地有效率,有非常多神經網路訓練的優化方法,這些當然就留給對深度學習有興趣的人可以去看原本的影片囉。

今天我們這篇就介紹到這篇,如果有說錯的或是者是希望替我補充的,都歡迎留言給我,我們下次見囉。









留言
avatar-img
技術PM路易斯的沙龍
51會員
35內容數
技術PM的AI實驗室,是以輕鬆的角度深入簡出的探討各種生成式AI工具的使用。無論你是想理解AI到底是怎麼運作的? 想知道有那些好用的生成式AI工具? 或者是對AI繪圖有興趣的,都歡迎加入我們的AI實驗室一起輕鬆地玩耍,我們邊玩邊學,學習跟AI一起共創新的可能。
2023/12/23
SDXL Turbo主打可以1 step就產生一定品質的圖片 (圖片品質比SDXL甚至SD 1.5還要低),完全是以速度取勝,那麼SDXL Turbo這個技術代表的是怎樣的突破呢? 究竟秒出圖的技術能夠有什麼實際的應用呢? 這就是我們這篇想要探討的。
Thumbnail
2023/12/23
SDXL Turbo主打可以1 step就產生一定品質的圖片 (圖片品質比SDXL甚至SD 1.5還要低),完全是以速度取勝,那麼SDXL Turbo這個技術代表的是怎樣的突破呢? 究竟秒出圖的技術能夠有什麼實際的應用呢? 這就是我們這篇想要探討的。
Thumbnail
2023/11/18
這篇文章會跟大家介紹,為什麼我覺得ChatGPT的多模態輸入輸出其實是最重要的一個功能之一,讓AI往成為真正人工智慧代理人的路上前進了一大步,我們也會稍微探討(想像)一下,所謂的理想的AI載具到底應該是怎樣的?
Thumbnail
2023/11/18
這篇文章會跟大家介紹,為什麼我覺得ChatGPT的多模態輸入輸出其實是最重要的一個功能之一,讓AI往成為真正人工智慧代理人的路上前進了一大步,我們也會稍微探討(想像)一下,所謂的理想的AI載具到底應該是怎樣的?
Thumbnail
2023/11/01
本篇文章是 以ChatGPT翻譯華頓商學院教授Ethan Mollick的文章,並且稍微加上修飾而來的,是一篇相當好的該如何使用AI的引言,分享給各位。 我們學到的就是,只要使用AI,你就會學會如何使用AI。你只需大量使用AI,直到你弄清楚它的優點和缺點,就可以成為你領域的AI應用專家。
Thumbnail
2023/11/01
本篇文章是 以ChatGPT翻譯華頓商學院教授Ethan Mollick的文章,並且稍微加上修飾而來的,是一篇相當好的該如何使用AI的引言,分享給各位。 我們學到的就是,只要使用AI,你就會學會如何使用AI。你只需大量使用AI,直到你弄清楚它的優點和缺點,就可以成為你領域的AI應用專家。
Thumbnail
看更多
你可能也想看
Thumbnail
在 vocus 與你一起探索內容、發掘靈感的路上,我們又將啟動新的冒險——vocus App 正式推出! 現在起,你可以在 iOS App Store 下載全新上架的 vocus App。 無論是在通勤路上、日常空檔,或一天結束後的放鬆時刻,都能自在沈浸在內容宇宙中。
Thumbnail
在 vocus 與你一起探索內容、發掘靈感的路上,我們又將啟動新的冒險——vocus App 正式推出! 現在起,你可以在 iOS App Store 下載全新上架的 vocus App。 無論是在通勤路上、日常空檔,或一天結束後的放鬆時刻,都能自在沈浸在內容宇宙中。
Thumbnail
vocus 慶祝推出 App,舉辦 2026 全站慶。推出精選內容與數位商品折扣,訂單免費與紅包抽獎、新註冊會員專屬活動、Boba Boost 贊助抽紅包,以及全站徵文,並邀請你一起來回顧過去的一年, vocus 與創作者共同留下了哪些精彩創作。
Thumbnail
vocus 慶祝推出 App,舉辦 2026 全站慶。推出精選內容與數位商品折扣,訂單免費與紅包抽獎、新註冊會員專屬活動、Boba Boost 贊助抽紅包,以及全站徵文,並邀請你一起來回顧過去的一年, vocus 與創作者共同留下了哪些精彩創作。
Thumbnail
[機器學習][監督式][資料分群] 支持向量機 (Support Vector Machine, SVM)
Thumbnail
[機器學習][監督式][資料分群] 支持向量機 (Support Vector Machine, SVM)
Thumbnail
在前面的文章裡, 我們談了很多機率的概念, 今天我們來聊聊統計學裡最基礎的研究方法: 迴歸分析。
Thumbnail
在前面的文章裡, 我們談了很多機率的概念, 今天我們來聊聊統計學裡最基礎的研究方法: 迴歸分析。
Thumbnail
在我們的上一篇文章,我們把神經網路的架構用簡化再簡化的方式來說明,本篇文章我們會說明神經網路怎麼透過很多輸入資料來調整神經網路裡面的權重跟誤差值,藉由得到接近完美個權重跟誤差值,來做到學習的效果
Thumbnail
在我們的上一篇文章,我們把神經網路的架構用簡化再簡化的方式來說明,本篇文章我們會說明神經網路怎麼透過很多輸入資料來調整神經網路裡面的權重跟誤差值,藉由得到接近完美個權重跟誤差值,來做到學習的效果
Thumbnail
上篇文章我們解說到了神經網路的基本架構包含了輸入層,輸出層,還有中間的隱藏層,也說明了這是一個把輸入資料拆解出特徵然後依照特徵做判斷的過程。究竟每一層的神經網路,如何影響下一層的神經網路可以辨識出特徵呢? 這些中間的線條(連結)到底是什麼意義呢? 這就是這一篇要告訴你的。
Thumbnail
上篇文章我們解說到了神經網路的基本架構包含了輸入層,輸出層,還有中間的隱藏層,也說明了這是一個把輸入資料拆解出特徵然後依照特徵做判斷的過程。究竟每一層的神經網路,如何影響下一層的神經網路可以辨識出特徵呢? 這些中間的線條(連結)到底是什麼意義呢? 這就是這一篇要告訴你的。
Thumbnail
Google JAX是一種用於轉換數值函數的機器學習框架。 它被描述為匯集了autograd(通過函數微分自動獲得梯度函數)和TensorFlow的XLA(加速線性代數)的修改版本。 它旨在盡可能地遵循NumPy的結構和工作流程,並與各種現有框架(如TensorFlow和PyTorch)一起工作。
Thumbnail
Google JAX是一種用於轉換數值函數的機器學習框架。 它被描述為匯集了autograd(通過函數微分自動獲得梯度函數)和TensorFlow的XLA(加速線性代數)的修改版本。 它旨在盡可能地遵循NumPy的結構和工作流程,並與各種現有框架(如TensorFlow和PyTorch)一起工作。
Thumbnail
連同上兩篇文章,我們介紹了機械學習裡的基石,並踩著這些基石了解了改變資料餵送方式,以及動態改變學習率或在更新項中加入動量的方法。我們可以看到這些梯度下降的變化,主要是解決兩個問題:梯度震盪和非最佳的局部最小值造成學習停滯不前的問題。在這篇文章中,我們著重動量和 Adam 的方法來達成克服以上的問題。
Thumbnail
連同上兩篇文章,我們介紹了機械學習裡的基石,並踩著這些基石了解了改變資料餵送方式,以及動態改變學習率或在更新項中加入動量的方法。我們可以看到這些梯度下降的變化,主要是解決兩個問題:梯度震盪和非最佳的局部最小值造成學習停滯不前的問題。在這篇文章中,我們著重動量和 Adam 的方法來達成克服以上的問題。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News