書-Deep Learning 用Python 進行深度學習的基礎理論實作

■神經網路

□活化函數

■sigmoid函數

□階梯函數-實作

■階梯函數-圖表

□sigmoid-圖表

■step vs. sigmoid-圖表

 

神經網路

前面我們用邏輯閘去試作感知器,應該對感知器有初步的印象了吧,多個邏輯閘理論上可以組成1台電腦,多個感知器可以有更多的選項,但是我們前面都是用手動的方式去調整權重,所以我們要用'神經網路'來讓他自己調整。

image

 

這是三層的神經網路,但是要調整權重的只有兩層,所以又稱'雙層網路',所以要記得層數-1,來表示神經網路的名稱。

活化函數

活化函數(activation function),又稱階梯函數(step function),用h(x)表示,就是將多個輸入轉換成單個輸出,就是以臨界值來決定是否要輸出(發火)的函數,當然這種函數不可能只有一個,下面來介紹其他的'活化函數'。

把上次的文章的公式再拿出來做變化。

a=b+w1*x1+w2*x2

y=h(a)

image

在○中的都是'神經元'。

sigmoid函數

常用的函數之一,e是納皮爾常數2.7182....,例如輸入1.0或2.0會轉出h(1.0)=0.731..,h(2.0)=0.880...。

image

image

階梯函數-實作

image

這個是最基本的階梯函數,但是如果要輸入陣列的話就不行了,所以要改一下程式。

image

這是改良過後的,可以看到第16行,輸出為bool型態,先把bool型態轉乘int輸出。

輸出:

image

 

我們來看一下'y=x>0'會輸出什麼

image

大於0的會輸出'True',小於0的會輸出'False',轉換成int就是1跟0。

階梯函數-圖表

記得要載入函式庫

image

image

結果:

image

我們來看第12行,首先你會得到兩個陣列x跟y,所對應的就是輸出的線,

x=[-5,-4.9,-4.8,-4.7,........,0,0.1,0.2,0.3]

y=[0,0,0,0,.......,0,1,1,1]

sigmoid-圖表

先把這個公式變成程式。

image

image

然後再把上面的y=sigmoid(x),就完成了。

image

結果:

image

step vs. sigmoid-圖表

image

--b為虛線(b=blue),可以變換b前面的符號,google'python matplotlib 線的格式'

輸出:

image

我們來看看這兩個函數的差別

1.平滑度 //就是數位信號跟類比訊號

3.輸出  //回傳0跟1跟連續回傳值

共通點

1.只輸出0~1之間的數值

所以差別在於輸出的數值,只能輸出兩個數字跟可以輸出小數點,輸出小數點的能夠更靈活地去運用。

 

image

https://kknews.cc/code/ap5p2yg.html //如果你想要畫出更複雜的圖,但是不知道那個東西的名稱叫什麼,可以去這個網址看看。

 

 

 

 

  

 

arrow
arrow
    創作者介紹
    創作者 讀書小天地 的頭像
    讀書小天地

    書籍分享天地

    讀書小天地 發表在 痞客邦 留言(0) 人氣()