[AI小學堂(二)]神經網路是什麼? 淺談深度學習的神經網路Neural Network的架構

更新於 發佈於 閱讀時間約 6 分鐘
Artificial Neural Network?
在我的上一篇文章中,我們提到了人工智慧 & 機器學習 & 深度學習跟神經網路的關係,我們也了解到了所謂的深度學習是一種基於神經網路上的機器學習方法。那麼神經網路到底是什麼呢? 我們上一篇文章裡面提到的神經網路的層Layer究竟是什麼呢? 到底為什麼神經網路需要這麼多的神經元(Neurons)跟層數呢? 到底又怎麼利用這些神經元跟多層的架構來達到邏輯推理的能力呢? 我們這篇文章會盡量用最簡單的方式來解釋給各位聽。
我們主要是參考了這篇國外的影片,本篇的內容是從這篇影片簡化而來的,也要感謝這位Youtuber無私地分享這些知識。要了解神經網路,首先我們要知道的就是神經網路就是從我們人類的大腦的設計得到靈感的,大腦真的是無比強大的一個器官,舉例一個辨識數字的例子來說,底下這些圖案,大家應該都可以很輕鬆地知道都是數字"3"對吧?
Number 3
正因為辨識數字這件事情對我們大腦來說太簡單了,以致於大家很難理解這對人腦這麼簡單的事情,對於電腦來說可是非常挑戰的。對電腦來說,數字"3"就是一個圖案,而圖案就是由一個一個像素點像樂高一樣推積而成的。如果拆解成一個點一個點來看,那麼這幾個"3"各自佔據的像素點根本完全不同,如果要寫一個判斷式讓電腦判斷那些像素點(格子)依照那些規則被占滿,就是"3"的話,一定超級複雜對吧?
Different 3, Different pixels
那麼神經網路究竟是怎麼做到,讓電腦可以判別這些"3"雖然長相還有像素都不同,但是都是"3"呢? 我們先來看看神經網路的長相,在我的上一篇文章中也有提到,所謂的Input layer就是把資料輸入的層,而output layer就會是要輸出我們需要知道的資訊。至於中間的hidden layer很神秘,我們暫且把他理解為,幫助我們從輸入的資料變成我們得到結果的過程所需要的程序,而這些程序可以看做是把輸入的資料的特徵拆解出來 (舉例來說,把輸入的3這個圖片的特徵拆解出來,然後判別有哪些特徵屬於哪個數字,把資料往下傳遞處理直到得到正確解答) 這樣子講還是不容易理解,我們先往下看。
Basic structure of neural network
那麼以今天我們要辨識數字這樣的需求來說好了,我們來假設這個神經網路可以達成我們的目的 "把輸入的數字辨識出到底是0~9之間哪一個數字"。
那麼第一步我們要怎麼樣把數字變成一個input layer輸入這個網路呢? 最簡單的方法就是要把數字變成圖片,然後圖片拆成一個一個小像素(點)囉。為了簡化問題,假設我們把每個數字拆解成28x28 pixel的像素來看,然後依據顏色的深淺,給予這些數字0~1之間的數值,假設全黑就是0, 全白就是1的話,我們得到以下的圖片
Number 9 being turned into vectors
可以看到數字"9"先被變成圖片,然後又被拆解成了28x28=784個小點,而這每一個小點依據亮暗程度高低,被賦予了一個數字,做到這邊,我們終於可以把這個數字的圖片變成輸入層input layer了,也就是784個介於0~1之間的數值。
而我們的輸出層呢,很簡單因為我們的目標是要判斷是哪一個數字,所以輸出一定就是0~9這10個數字的其中之一,所以我們的神經網路應該要長這樣子。
Neural Network for distinguish numbers
輸出層只有10個神經元Neurons,神經元(圖上的小圓點)也就是拿來乘載一個0~1 間的數字的單元,這個神經網路目的就是希望當你輸入一個9個數字的(圖案)時,最後得到輸出層那10個神經元中的數字,屬於"9"這個神經元裡面的數字最大,那麼這個神經網路就會輸出9這樣的答案,這樣這個神經網路就算是設計成功了。看到這邊,我們知道了輸入,也明白了輸出,可是神經網路這一層又一層到底相互的關係是什麼呢? 中間的隱藏層Hidden Layer究竟是做什麼的呢?
要理解神經網路真的不容易,最容易的方法就是從解答倒著推理回去,假設最後一層輸出層能夠判別出是哪一個數字,那麼往回推一層也就是倒數第二層應該要判別那些東西呢? 我們可以理解為,每個數字的形狀,都可以拆解成一些特徵,那麼舉例來說"9"這個數字好像就可以拆解為一個圓圈形狀+一個長條形狀,而"8"這個數字好像就可以拆解為兩個圓圈的形狀,而4的話就好像是由一個長線條跟兩個短線條組合而成的。 如下圖
我們推理的倒數第2層
如果我們的倒數第二層能夠幫我們分辨出圖片有哪些這些特徵的話,舉例來說,如果這倒數第二層的資訊告訴我們,有很高的機會這個圖案裡面有兩個圓圈圈連在一起的話,那麼應該我們就有很高的機率可以再輸出層判定,這是一個數字"8"。
好的問題來了,那麼假設倒數第二層可以幫我們分辨出這些特徵的話,那麼倒數第三層怎麼告訴我們圖片裡有這些特徵呢? 其實就是我們把這些特徵繼續往下拆分,舉例來說一個圓圈圈就是可以拆分為好幾個轉角,然後一個長條形就可以拆分為好幾個短的線條,以此類推...如下圖
我們推理的倒數第3層
那麼倒數第三層就是拆解成有這些小小的特徵,並且幫我們判斷圖片裡面是否有這樣的特徵。那麼總結前面幾個段落的結論,我們就得到了以下這樣的神經網路各層的用處還有示意圖:
Neural network for number recognition
假設把整個網路簡化到只有4層好了,那麼輸入層幫忙把資料輸入,第二層幫忙判別是否有這些小小的直線/轉折在整張圖之內,第三層幫忙判別是否有較大的較為複雜的特徵如圓圈,長直線短直線等,最後的輸出層就能夠分析出來最高的機率是哪個數字了。
看到這邊可能大家已經基礎的知道神經網路的結構了,可是還是謎團滿滿,那麼究竟神經元之間的連結線是什麼? 然後一層跟一層之間的關係是什麼? 為什麼可以從輸入之中判斷出是否有這些特徵呢? 的確,這是必須要說明的,但是這部分也跟數學有比較大的關係,如果不想深究的朋友可以先理解到這邊,知道神經網路是一個從輸入資料中拆解出特徵來判斷的過程,下一篇我們會繼續說明,更重要的是我們後面必須要理解神經網路究竟是怎麼學習? 畢竟這才是神經網路神奇之處。 我們下次見囉
為什麼會看到廣告
技術PM的AI實驗室,是以輕鬆的角度深入簡出的探討各種生成式AI工具的使用。無論你是想理解AI到底是怎麼運作的? 想知道有那些好用的生成式AI工具? 或者是對AI繪圖有興趣的,都歡迎加入我們的AI實驗室一起輕鬆地玩耍,我們邊玩邊學,學習跟AI一起共創新的可能。
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
我們這個系列就是希望以非常科普的角度來解釋人工智慧。本篇要釐清人工智慧(AI: Artificial Intelligence),機器學習 Machine Learning, 深度學習Deep Learning,另外還有類神經網路,到底互相是什麼關係呢?
在這篇示範裡面,我將教你如何利用AI繪圖工具Stable Diffusion產生出自己的一整套塔羅牌排組,而且這整套牌組還是套用上自己Training的LORA的,也就是塔羅牌的主角都可以是你或是你身邊的人(或是你的偶像明星),一旦掌握訣竅,用這篇的方法一天以內就可以完成這個工作。
我們要來實測的就是Microsoft Designer 這套工具,利用生成式AI來協助你產生各種設計類作品,是針對著Canva 這類現有設計類網站而來的,到底Microsoft Designer 好用嗎? 是否可以幫上你的忙呢? 我們今天就用辦公室應用的場景來發想,實際上操作看看,看MS Desig
今天我這邊提供大家一個方法,讓大家可以自己成為這些AI繪圖的主角,也就是在AI裡面建立屬於你自己個人的模型。Stable Diffusion比較少這部分的教學,是因為這部分的訓練的確比較有一些技術的門檻,我這邊會嘗試用比較簡單的方式讓大家可以一個步驟一個步驟照著做,就能夠達到我們想要達到的結果。
我們介紹過很多AI繪圖工具,但是究竟哪一個AI繪圖工具最能理解你的描述呢? 我們決定直接拿一模一樣的輸入(Prompt)餵給各種工具,讓我們來看看會得到怎樣的結果,就知道哪個AI工具最能聽懂人話,請看這篇的分析與實測。
上次我們在這篇裡面提到了如何讓ChatGPT產出更為精確的答案,實際上就是透過三大原則加上一個小提示,本偏要補充一些很實用的方式,可以讓各位即使是比較複雜的任務,也可以讓ChatGPT替你完成。
我們這個系列就是希望以非常科普的角度來解釋人工智慧。本篇要釐清人工智慧(AI: Artificial Intelligence),機器學習 Machine Learning, 深度學習Deep Learning,另外還有類神經網路,到底互相是什麼關係呢?
在這篇示範裡面,我將教你如何利用AI繪圖工具Stable Diffusion產生出自己的一整套塔羅牌排組,而且這整套牌組還是套用上自己Training的LORA的,也就是塔羅牌的主角都可以是你或是你身邊的人(或是你的偶像明星),一旦掌握訣竅,用這篇的方法一天以內就可以完成這個工作。
我們要來實測的就是Microsoft Designer 這套工具,利用生成式AI來協助你產生各種設計類作品,是針對著Canva 這類現有設計類網站而來的,到底Microsoft Designer 好用嗎? 是否可以幫上你的忙呢? 我們今天就用辦公室應用的場景來發想,實際上操作看看,看MS Desig
今天我這邊提供大家一個方法,讓大家可以自己成為這些AI繪圖的主角,也就是在AI裡面建立屬於你自己個人的模型。Stable Diffusion比較少這部分的教學,是因為這部分的訓練的確比較有一些技術的門檻,我這邊會嘗試用比較簡單的方式讓大家可以一個步驟一個步驟照著做,就能夠達到我們想要達到的結果。
我們介紹過很多AI繪圖工具,但是究竟哪一個AI繪圖工具最能理解你的描述呢? 我們決定直接拿一模一樣的輸入(Prompt)餵給各種工具,讓我們來看看會得到怎樣的結果,就知道哪個AI工具最能聽懂人話,請看這篇的分析與實測。
上次我們在這篇裡面提到了如何讓ChatGPT產出更為精確的答案,實際上就是透過三大原則加上一個小提示,本偏要補充一些很實用的方式,可以讓各位即使是比較複雜的任務,也可以讓ChatGPT替你完成。
你可能也想看
Google News 追蹤
Thumbnail
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
Thumbnail
深度學習是什麼? 簡單來說,深度學習是大型且多層的人工神經網路。我們可以想像神經網路("Neural Nnetwork, NN")是一種有向無環圖,此圖可拆分成三個部分來看: 1. 輸入層接收信號向量;2. 一個或多個隱藏層處理前一層的輸出; 3. 輸出層統合之前所有隱藏層的處理結果。神經網路的初
Thumbnail
輸入層:接收數據,對應特徵值,是網絡的入口。 隱藏層:學習數據的抽象特徵,引入非線性,處理複雜模式。 輸出層:產生結果,將特徵轉換為預測值(regression)或分類(classification)結果。 陳縕儂老師說過 中間的隱藏層通常不會是線性的 如果全部都是線性 那任意交換隱藏層
Thumbnail
本篇文章專注於消息傳遞(message passing)在圖神經網絡(GNN)中的應用,並以簡單的例子解釋了消息傳遞的過程和機制。
Thumbnail
本文主要筆記使用pytorch建立graph的幾個概念與實作。在傳統的神經網路模型中,數據點之間往往是互相連接和影響的,使用GNN,我們不僅處理單獨的數據點或Xb,而是處理一個包含多個數據點和它們之間連結的特徵。GNN的優勢在於其能夠將這些連結關係納入模型中,將關係本身作為特徵進行學習。
Thumbnail
GNN發展背景 傳統的深度學習模型如在計算機視覺(CV)和自然語言處理(NLP)領域中極為成功,主要是處理結構化數據如影像和文本。這些數據類型通常具有固定且規律的結構,例如影像是由有序的像素點組成。然而,在真實世界中,許多數據是非結構化的,如化合物結構(原子和分子)。這些數據雖然具有一定的規則性,
Thumbnail
神經處理單元(NPU)主要用於加速人工智慧(AI)和機器學習(ML)任務。 以下是一些主要的應用領域和使用者: AI和機器學習:NPU是人工智慧和機器學習領域的直接受益者。這些技術依賴數據而蓬勃發展,NPU擅長消化和解釋大量資料集,使機器能夠以前所未有的速度學習。 智慧型設備和物聯網:在智慧型
Thumbnail
本文主要介紹神經網路訓練辨識的過程,利用fashion_mnist及簡單的神經網路來進行分類。 使用只有兩層的神經網路來訓練辨識fashion_mnist資料。
Thumbnail
感知器是一種基本的神經網路模型,用於二分類問題。它模擬了人腦神經元的工作原理,通過調整權重和偏差值來達到預測和分類的目的。 感知器流程 輸入 資料的輸入: 輸入層接受資料的輸入,每個輸入對應一個特徵,還有一個固定的偏差神經元。 資料經過每個神經元時,會乘上相應的
Thumbnail
卷積神經網路(CNN)是一種專門用於影像相關應用的神經網路。本文介紹了CNN在影像辨識中的應用,包括圖片的組成、Receptive Field、Parameter Sharing、以及Pooling等技術。通過本文,讀者將瞭解CNN在影像辨識領域的優勢和運作原理。
大語言模型是一種特殊的神經網路,設計來理解,生成與回應人類的文本。 大語言模型是使用大量文本數據訓練的深度神經網路,其訓練使用的文本數據甚至包括了整個網路公開的文本。 大語言模型的「大」,體現於模型的參數個數以及其使用的訓練數據集。如此大的模型可以有百億甚至千億的參數。這些參數都是神經網
Thumbnail
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
Thumbnail
深度學習是什麼? 簡單來說,深度學習是大型且多層的人工神經網路。我們可以想像神經網路("Neural Nnetwork, NN")是一種有向無環圖,此圖可拆分成三個部分來看: 1. 輸入層接收信號向量;2. 一個或多個隱藏層處理前一層的輸出; 3. 輸出層統合之前所有隱藏層的處理結果。神經網路的初
Thumbnail
輸入層:接收數據,對應特徵值,是網絡的入口。 隱藏層:學習數據的抽象特徵,引入非線性,處理複雜模式。 輸出層:產生結果,將特徵轉換為預測值(regression)或分類(classification)結果。 陳縕儂老師說過 中間的隱藏層通常不會是線性的 如果全部都是線性 那任意交換隱藏層
Thumbnail
本篇文章專注於消息傳遞(message passing)在圖神經網絡(GNN)中的應用,並以簡單的例子解釋了消息傳遞的過程和機制。
Thumbnail
本文主要筆記使用pytorch建立graph的幾個概念與實作。在傳統的神經網路模型中,數據點之間往往是互相連接和影響的,使用GNN,我們不僅處理單獨的數據點或Xb,而是處理一個包含多個數據點和它們之間連結的特徵。GNN的優勢在於其能夠將這些連結關係納入模型中,將關係本身作為特徵進行學習。
Thumbnail
GNN發展背景 傳統的深度學習模型如在計算機視覺(CV)和自然語言處理(NLP)領域中極為成功,主要是處理結構化數據如影像和文本。這些數據類型通常具有固定且規律的結構,例如影像是由有序的像素點組成。然而,在真實世界中,許多數據是非結構化的,如化合物結構(原子和分子)。這些數據雖然具有一定的規則性,
Thumbnail
神經處理單元(NPU)主要用於加速人工智慧(AI)和機器學習(ML)任務。 以下是一些主要的應用領域和使用者: AI和機器學習:NPU是人工智慧和機器學習領域的直接受益者。這些技術依賴數據而蓬勃發展,NPU擅長消化和解釋大量資料集,使機器能夠以前所未有的速度學習。 智慧型設備和物聯網:在智慧型
Thumbnail
本文主要介紹神經網路訓練辨識的過程,利用fashion_mnist及簡單的神經網路來進行分類。 使用只有兩層的神經網路來訓練辨識fashion_mnist資料。
Thumbnail
感知器是一種基本的神經網路模型,用於二分類問題。它模擬了人腦神經元的工作原理,通過調整權重和偏差值來達到預測和分類的目的。 感知器流程 輸入 資料的輸入: 輸入層接受資料的輸入,每個輸入對應一個特徵,還有一個固定的偏差神經元。 資料經過每個神經元時,會乘上相應的
Thumbnail
卷積神經網路(CNN)是一種專門用於影像相關應用的神經網路。本文介紹了CNN在影像辨識中的應用,包括圖片的組成、Receptive Field、Parameter Sharing、以及Pooling等技術。通過本文,讀者將瞭解CNN在影像辨識領域的優勢和運作原理。
大語言模型是一種特殊的神經網路,設計來理解,生成與回應人類的文本。 大語言模型是使用大量文本數據訓練的深度神經網路,其訓練使用的文本數據甚至包括了整個網路公開的文本。 大語言模型的「大」,體現於模型的參數個數以及其使用的訓練數據集。如此大的模型可以有百億甚至千億的參數。這些參數都是神經網