書-Deep Learning 用Python 進行深度學習的基礎理論實作
■神經網路
□活化函數
■sigmoid函數
□階梯函數-實作
■階梯函數-圖表
□sigmoid-圖表
■step vs. sigmoid-圖表
神經網路
前面我們用邏輯閘去試作感知器,應該對感知器有初步的印象了吧,多個邏輯閘理論上可以組成1台電腦,多個感知器可以有更多的選項,但是我們前面都是用手動的方式去調整權重,所以我們要用'神經網路'來讓他自己調整。
這是三層的神經網路,但是要調整權重的只有兩層,所以又稱'雙層網路',所以要記得層數-1,來表示神經網路的名稱。
活化函數
活化函數(activation function),又稱階梯函數(step function),用h(x)表示,就是將多個輸入轉換成單個輸出,就是以臨界值來決定是否要輸出(發火)的函數,當然這種函數不可能只有一個,下面來介紹其他的'活化函數'。
把上次的文章的公式再拿出來做變化。
a=b+w1*x1+w2*x2
y=h(a)
在○中的都是'神經元'。
sigmoid函數
常用的函數之一,e是納皮爾常數2.7182....,例如輸入1.0或2.0會轉出h(1.0)=0.731..,h(2.0)=0.880...。
階梯函數-實作
這個是最基本的階梯函數,但是如果要輸入陣列的話就不行了,所以要改一下程式。
這是改良過後的,可以看到第16行,輸出為bool型態,先把bool型態轉乘int輸出。
輸出:
我們來看一下'y=x>0'會輸出什麼
大於0的會輸出'True',小於0的會輸出'False',轉換成int就是1跟0。
階梯函數-圖表
記得要載入函式庫
結果:
我們來看第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-圖表
先把這個公式變成程式。
然後再把上面的y=sigmoid(x),就完成了。
結果:
step vs. sigmoid-圖表
--b為虛線(b=blue),可以變換b前面的符號,google'python matplotlib 線的格式'
輸出:
我們來看看這兩個函數的差別
1.平滑度 //就是數位信號跟類比訊號
3.輸出 //回傳0跟1跟連續回傳值
共通點
1.只輸出0~1之間的數值
所以差別在於輸出的數值,只能輸出兩個數字跟可以輸出小數點,輸出小數點的能夠更靈活地去運用。
https://kknews.cc/code/ap5p2yg.html //如果你想要畫出更複雜的圖,但是不知道那個東西的名稱叫什麼,可以去這個網址看看。
留言列表