何謂 Artificial Neural Network?

許恆修 | Heng-Shiou Sheu
6 min readJun 14, 2019
圖源自: towardsdatascience.com

概要

Artificial Neural Network(ANN) 是類神經網路當中的基礎元素,裡面有幾個名詞是你會一直聽到而且需要寄起來的,activation function(激勵函數)/ cost function(損失函數)/ gradient descent(梯度下降)/ back propagation(逆推)/ overfitting(過度擬合),這些名詞會在稍後的文中慢慢補齊與介紹,學會 ANN 這個基本元素之後,就可以去了解更多層次的內容,也就是現在大家常提及的 Convolutional Network(CNN)/ RNN/ LSTM/ GAN 等。

應用說明

Convolutional Neural Network(CNN): 目前最常被應用在圖像辨識上的架構,可以讓電腦學會如何分辨動物,當我給電腦照片時,他可以回答我這是狗還是貓,而且正確率還可以高達 97%

圖源來自: Dzone

Recurrent Neural Network(RNN): 為一種用在處理 Series data 的神經網路。例如說文字是一種序列數據,我們可以藉由 RNN 的架構,來幫助我們預測下一段文字,這個功能已經在 email 上可以看到了,而且還有推薦功能。

圖源自: Orielly media

LSTM: LSTM — Long term short term Memory, 具有長短記憶的神經網路, 是一種為了解決長序列不容易遺忘過去的一種架構,這可以適用於股票,藉由過去這家公司一年來的表現,來推測出他下一期是上漲是下跌。

圖源來自: datacamp

GAN: 生成對抗網路,超級炫砲的東西,主要是由兩個 CNN 所組成,可以讓電腦自己產生畢卡索的畫像,運作機制是這樣,一個 CNN 負責製造資料,另一個 CNN 負責檢驗資料是否合理。例如說:讓這個 CNN 學習怎麼畫一匹馬,接著另一個 CNN 負責跟他說:「誒,你這匹馬有太多眼睛了喔」,像這樣。

圖源來自: CycleGANBlog

ANN 介紹

假設我們想要看明天台中會不會下雨好了,這時候我們最常做的事情就是打開手機去看天氣app,這時上面寫說高達 61% 的下雨機率,但你明天其實有規劃出門,所以你會想要看到下雨機率比較低的數字,於是乎,你又打開了 google 在關鍵字打上「台中 天氣預報」,這時上面的數字為 47%,不死心的你接著打開氣象局預報,最後你找到了 83% 的數字,你心裡想一想,就先相信氣象局的吧,於是打電話跟朋友取消了明日的行程。結果天氣大好,這時候你就不怎麼相信氣象局的資料了,反而覺得原先的兩個還比較可信,這個就是 ANN 的精神了。

圖源來自: good audiance

見上圖,左邊的線條就是代表著各種氣象資訊來源,你也可以想像成氣象站,接著對於哪幾個的相信程度到哪邊,上面就給了幾%的信心程度,也就是權重值,然後加上雜訊,也就是 bias,最後經過一個 activation function ,這就是結果了。

Activation function(激勵函數)介紹

什麼是 activation function 呢?激勵函數是一個連接現實世界跟數位世界中間的橋樑,就拿剛剛的氣象資訊來說好了,[w1, w2, w3] = [0.3, 0.7, 0.1],[x1, x2, x3] = [4, 1, 3] ,如果這個值,y = w1*x1 + w2*x2 + w3 * x3 + b 沒有 > 1 的話,我們就說明天不下雨,反之,就認為明天會下雨。這裡會有個 threshold

圖源來自: intmath

我的結果需要 > 1 ,也就是落在點上,才會下雨。好,那如果我們將結果改成機率來看待的話呢?例如說: 0.65 或是 0.32 或是 0.45 等,才說是不是會下雨

圖源來自: good audience

這個 function 就叫做 sigmoid ,你可以得到一個比較 gentle 的結果

圖源來自: good audience

那這個就是常聽到的 activation function,Relu,就是大家近期發現效果很好的激勵函數。

Cost function(損失函數)介紹

Cost function 是機器學習當中很重要的一項技藝,他量化了 Neural Network 應該出來的值與 Neural Network 現有的值。例如說:我這張照片上面是一隻狗,我出來的判斷結果就應該是狗,結果回傳結果是貓,這樣就不對了。這就代表我們的模型訓練的判斷程度還不夠,例如說這次出來我模型只有 79% 的正確率,我使用 MSE(Mini square error) 作為我描述預測的模型,下一次 Neural Network 學習到的新結果會反映在這上面,另外一個常用的 cost function 為 cross-netropy

Gradient descent(梯度下降)介紹

那我們要怎麼從錯誤中學習比較好的結果呢?這時候就必須派 gradient descent 上場了,他的用一是在尋找最低的 cost function

圖源來自: Oriely med

backpropagation介紹

我們在 Gradient descent 已經有修正出來的結果了,現在我們要把欲修正的資訊推送回到 Neural Network ,這時候就是使用 backpropagation,他會一層一層地把值慢慢修正回去,就像是波一樣。

截至目前為止,將會是你在學習 Artificial Neural Network 時會接觸到的必備知識與常見名詞,之後我們會接著繼續談更多狀況。

--

--

許恆修 | Heng-Shiou Sheu

AI研究員 @喬泰科技,軟體工程師@微光國際,業界講師 @FCU 創能學院,Co-Founder @圖靈文本。專注將科技應用於改善生活中,持續性分享軟體架構設計、前沿人工智慧研究、公司治理等觀念。整合科技、人文思維於一體。聯絡 📪 hengshiousheu@gmail.com