1.邏輯回歸的限制
邏輯回歸分類的時候,是把線性的函數(shù)輸入進sigmoid函數(shù)進行轉(zhuǎn)換,后進行分類,會在圖上畫出一條分類的直線,但像下圖這種情況,無論怎么畫,一條直線都不可能將其完全分開。
但假如我們可以對輸入的特征進行一個轉(zhuǎn)換,便有可能完美分類。比如:
創(chuàng)造一個新的特征x1:到(0,0)的距離,另一個x2:到(1,1)的距離。這樣可以計算出四個點所對應的新特征,畫到坐標系上如以下右圖所示。這樣轉(zhuǎn)換之后,就可以將轉(zhuǎn)換后的數(shù)據(jù),輸入給一個邏輯回歸,將其完全分開。
雖然我們不容易直接找到這樣的一個轉(zhuǎn)換標準,但我們可以通過邏輯回歸去尋找標準,使用第一個邏輯回歸,尋找第一個轉(zhuǎn)換后的參數(shù)x1, 再使用第二個邏輯回歸,尋找第二個轉(zhuǎn)換后的參數(shù)x2,將這兩個作為新的輸入,給到第三個邏輯回歸,即可完成分類。
因此,我們可以通過參數(shù)的調(diào)整,使得輸入的x1,x2歸屬于兩類的概率(其實就是一個0-1中間的數(shù)字,我們暫且稱為概率)如下圖所示。那么左上角的點屬于兩類的概率就是(0.73,0.05),同理,其他的點也有屬于兩類的概率,將其放到坐標軸上,就完成了對特征的轉(zhuǎn)換。將轉(zhuǎn)換之后的結(jié)果作為輸入,給到一個新的邏輯回歸,就可以完成分類。
2.深度學習的引入
可以看出來,每一個邏輯回歸單元,既可以作為接受者,接收輸入數(shù)據(jù),也可以作為發(fā)送者,將自己的輸出結(jié)果作為其他的邏輯回歸單元的輸入數(shù)據(jù)。
多個邏輯回歸單元交織在一起,就稱為神經(jīng)網(wǎng)絡(luò),每一個邏輯回歸單元,就是一個神經(jīng)元。這種學習方式,就叫做深度學習。
以下是一個例子:
假設(shè)初始輸入數(shù)據(jù)是1和-1,并且所有的權(quán)重我們都知道,比如兩個數(shù)據(jù)到第一層兩個神經(jīng)元的權(quán)重分別是1,-1,-2, 1,然后通過sigmoid函數(shù)轉(zhuǎn)換后,那么我們就可以計算出結(jié)果分別是0.98,0.12,同樣的,假如我們知道后面所有的權(quán)重(參數(shù)),我們最終可以得到兩個輸出,0.62,0.83
當最開頭的數(shù)據(jù)輸入是0和0,通過同樣的轉(zhuǎn)換,可以得到輸出0.51,0.85。可以看出,無論輸入是什么樣的,我們總能夠通過一系列參數(shù),進行一系列轉(zhuǎn)換,將其輸出成特征完全不一樣的數(shù)據(jù)。
因此,整個網(wǎng)絡(luò)可以看作是一個函數(shù)。更一般地,如下圖所示,每一個圓圈都是一個神經(jīng)元,最前面的輸入叫做輸入層,最后面沒有接任何神經(jīng)元的,叫做輸出層,中間所有的叫做隱藏層。像下圖這樣每一個神經(jīng)元都連接到下一層所有的神經(jīng)元,叫做全連接神經(jīng)網(wǎng)絡(luò)。
3.深度學習的計算方式
對于深度學習,通常使用矩陣運算的方式進行計算。
更一般地:
即上一層的參數(shù)*上一層給的輸入值 + 偏置項,再對整體進行一個sigmoid函數(shù)轉(zhuǎn)化,就可以輸出一個本層的數(shù)據(jù),供下層使用。對于所有的神經(jīng)元均是一樣的操作,一直到輸出層。
4.神經(jīng)網(wǎng)絡(luò)的損失函數(shù)
對于一個樣本來說,損失函數(shù)如下圖所示:
比如輸入的是樣本“1”,有256個像素點,也就是256個特征,將其輸入神經(jīng)網(wǎng)絡(luò),最終得到的輸出是一個10維向量,每一個維度,都會有一個概率值,比如是“1”的概率為0.8, “2”的概率為0.1等等,而實際的標簽是“1”,也就是只有y1hat是1,其他是0。將這兩個向量求出交叉熵并求和,如上圖的式子,得出的C就是這個樣本的損失。
對于整體而言,把所有的樣本損失算出來并求和即可。
以上就是python人工智能深度學習入門邏輯回歸限制的詳細內(nèi)容,更多關(guān)于python人工智能邏輯回歸限制的資料請關(guān)注服務器之家其它相關(guān)文章!
原文鏈接:https://blog.csdn.net/Swayzzu/article/details/121007234?spm=1001.2014.3001.5501