python人工智能深度學習入門邏輯回歸限制

1.邏輯回歸的限制

邏輯回歸分類的時候,是把線性的函數輸入進sigmoid函數進行轉換,後進行分類,會在圖上畫出一條分類的直線,但像下圖這種情況,無論怎麼畫,一條直線都不可能將其完全分開。

但假如我們可以對輸入的特征進行一個轉換,便有可能完美分類。比如:

創造一個新的特征x1:到(0,0)的距離,另一個x2:到(1,1)的距離。這樣可以計算出四個點所對應的新特征,畫到坐標系上如以下右圖所示。這樣轉換之後,就可以將轉換後的數據,輸入給一個邏輯回歸,將其完全分開。

雖然我們不容易直接找到這樣的一個轉換標準,但我們可以通過邏輯回歸去尋找標準,使用第一個邏輯回歸,尋找第一個轉換後的參數x1, 再使用第二個邏輯回歸,尋找第二個轉換後的參數x2,將這兩個作為新的輸入,給到第三個邏輯回歸,即可完成分類。

因此,我們可以通過參數的調整,使得輸入的x1,x2歸屬於兩類的概率(其實就是一個0-1中間的數字,我們暫且稱為概率)如下圖所示。那麼左上角的點屬於兩類的概率就是(0.73,0.05),同理,其他的點也有屬於兩類的概率,將其放到坐標軸上,就完成瞭對特征的轉換。將轉換之後的結果作為輸入,給到一個新的邏輯回歸,就可以完成分類。

2.深度學習的引入

可以看出來,每一個邏輯回歸單元,既可以作為接受者,接收輸入數據,也可以作為發送者,將自己的輸出結果作為其他的邏輯回歸單元的輸入數據。

多個邏輯回歸單元交織在一起,就稱為神經網絡,每一個邏輯回歸單元,就是一個神經元。這種學習方式,就叫做深度學習。

以下是一個例子:

假設初始輸入數據是1和-1,並且所有的權重我們都知道,比如兩個數據到第一層兩個神經元的權重分別是1,-1,-2, 1,然後通過sigmoid函數轉換後,那麼我們就可以計算出結果分別是0.98,0.12,同樣的,假如我們知道後面所有的權重(參數),我們最終可以得到兩個輸出,0.62,0.83

當最開頭的數據輸入是0和0,通過同樣的轉換,可以得到輸出0.51,0.85。可以看出,無論輸入是什麼樣的,我們總能夠通過一系列參數,進行一系列轉換,將其輸出成特征完全不一樣的數據。

因此,整個網絡可以看作是一個函數。更一般地,如下圖所示,每一個圓圈都是一個神經元,最前面的輸入叫做輸入層,最後面沒有接任何神經元的,叫做輸出層,中間所有的叫做隱藏層。像下圖這樣每一個神經元都連接到下一層所有的神經元,叫做全連接神經網絡。

3.深度學習的計算方式

對於深度學習,通常使用矩陣運算的方式進行計算。

更一般地:

即上一層的參數*上一層給的輸入值 + 偏置項,再對整體進行一個sigmoid函數轉化,就可以輸出一個本層的數據,供下層使用。對於所有的神經元均是一樣的操作,一直到輸出層。

4.神經網絡的損失函數

對於一個樣本來說,損失函數如下圖所示:

比如輸入的是樣本“1”,有256個像素點,也就是256個特征,將其輸入神經網絡,最終得到的輸出是一個10維向量,每一個維度,都會有一個概率值,比如是“1”的概率為0.8, “2”的概率為0.1等等,而實際的標簽是“1”,也就是隻有y1hat是1,其他是0。將這兩個向量求出交叉熵並求和,如上圖的式子,得出的C就是這個樣本的損失。

對於整體而言,把所有的樣本損失算出來並求和即可。

以上就是python人工智能深度學習入門邏輯回歸限制的詳細內容,更多關於python人工智能邏輯回歸限制的資料請關註WalkonNet其它相關文章!

推薦閱讀: