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

 

◎非線性函數

◎ReLU函數

◎多維陣列運算

◎矩陣的乘積

 

非線性函數

上一篇有講到'階梯函數'和'sigmoid函數',都是屬於非線性函數,線性函數的輸出必須是輸入的'倍數'才有可能達成線性(直線)。

神經網路必須使用非線性的函數,第2篇我有畫張圖,就可以很清楚了,用線性函數會讓這個神經網路變得沒有意義。因為不管再多層,在圖形中分布的位置只能'是'和'否'。

 

ReLU函數

雖然sigmoid很早之前就在使用,但是現在'ReLU(Rectified Linear Unit)'的使用率提高了,特點是輸入超過'0'就輸出,'0'以下就輸出0。

image

公式:

image

image

 

多維陣列運算

只要會了'numpy'的多維陣列運算,就可以更有效的去使用神經網路。

image

前面我們都是使用一維的陣列,可以用'np.ndim()'查看陣列維度,'a.shape'就是查看陣列中有多少維度&元素。

image

這個是個二維的陣列,由3個2維陣列所組成,行跟列最好使用英文的因為別的國家'行->列','列->行',所以用英文比較不會有這個問題。

image

矩陣的乘機

兩個二維陣列相乘,使用np.dot()。

image

就是row去乘與column。

image

不同矩陣也是可以相乘的,我們來看底下的例子,a是(3,2),b是(2,3),

只要 a的第二個數字等於b的第一個數字就可以相乘。

image

下面這個例子,dot(a,b)是可以的,因為a的第2個數字等於b第1個數字,但是交換之後就會出現錯誤,因為b的第2個數字是'3'並不等於a的第1個數字'2'。 

image

不管是幾維陣列只要符合我上面講的,都是可以相乘的。

image

image

image

image

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

    書籍分享天地

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