類神經網路(Neural Network, NN)秒懂
本文不是什麼專業的理論
只是要讓你快速了解
先了解什麼是神經網路
由上圖可知,人類訊號傳遞靠的是多個神經元彼此連接
每個神經元都會產個一個訊號,並傳至下一個神經元
如此複雜的運算,造就生物複雜的學習系統
實例說明
我們以銀行是否核准申請信用卡為例
想要核准信用卡,會有以下評估項目
「薪資」、「過去信用」、「負債」,分別用[x1, x2, x3]代表
這些項目可能會有權重,分別用[w1, w2, w3]代表
利用以下公式算出得分(grade)
grade = w1*x1 + w2*x2 + w3*x3
如果grade大於某個值(v),則可以發卡。即:
grade > v ==> 核准發卡, 以y0表示
grade < v ==> 拒絕發卡, 以y1表示
為了數學好看,我們定義v = w0*x0
,所以
grade > v
=> grade - v > 0
=> grade - w0*x0 > 0
=> w1*x1 + w2*x2 + w3*x3 + (-w0)*x0 > 0
寫成通式
y = w0*x0 + w1*x1 + w2*x2 + w3*x3
其中 y = [y0, y1],代核准或拒絕
那上式在圖上就可以表示成一條線
我們的目的就是找出線的兩邊,分別代表「核准發卡」與「拒絕發卡」
類神經學習
剛剛已說明y是如何產生,即
y = w0*x0 + w1*x1 + w2*x2 + w3*x3
在機器學習的領域剛好相反
會變成我們已經知道input/output,希望訓練一個模型出來,將來自動化評估
即:
銀行知道每個人的基本資料[x1,x2,...],與是否發卡[y0,y1]
希望訓練出這個發卡系統的模型,即[w1,w2,...]
考慮神經的傳遞是很多層的
所以用以下圖片代表多層的神經
先定義一下名詞
輸入訊號 X = [x1, x2, ..., xn]
中間會經過很複雜的神經系統 H = [h1, h1, ..., hk]
最後產生的結果稱為 Y = [y1, y2, ..., ym]
因已知X與Y,找出W及H只是排列組合的問題
可想而知,H的神經元個數與層數量愈多,W的運算量也隨之愈多
Tensorflow就是這個框架,讓大家只需定義一些抽像的參數就可以使用。