正则不能全为某个值_TensorFlow学习Program1——补充附录(7)线性回归、逻辑回归与正则化...
本文整理總結(jié)自<機器學(xué)習(xí) - 線性回歸、邏輯回歸與正則化><邏輯回歸與正則化><邏輯回歸及正則化>
注:正則化作為一種數(shù)據(jù)預(yù)處理方法,即可用于線性回歸,也可用于邏輯回歸。于兩種回歸應(yīng)用場景下,正則化的本質(zhì)原則和實現(xiàn)過程都是一樣的,沒有區(qū)別。本文的第三小節(jié),主要是講邏輯回歸場景下正則化的應(yīng)用,<補充附錄(7.1)數(shù)據(jù)預(yù)處理:正則化之直觀理解、代碼>則更多地是關(guān)于線性回歸場景下的正則化。但會發(fā)現(xiàn),沒有太多不同。在此說明,避免誤以為,正則化只能用于某種回歸。
1. 線性回歸/邏輯回歸/正則化 數(shù)學(xué)推導(dǎo)匯總
線性回歸(Linear Regression)
邏輯回歸(Logistic Regression)
補充:邏輯回歸用于分類問題。如果輸出類別變量具有兩個或更多個層級,則可以使用多項式邏輯回歸。另一種用于兩個或更多輸出變量的常見技術(shù)是 OneVsAll(這里所述兩種技術(shù)不太理解)。對于多類型邏輯回歸,交叉熵?fù)p失函數(shù)被修改為:
其中,K 是類別總數(shù)。更多邏輯回歸的相關(guān)內(nèi)容,可參考https://en.wikipedia.org/wiki/Logistic_regression。
正則化(Regularization)
2. 邏輯回歸詳細(xì)解釋
Logistic Regression(邏輯回歸)是一個受到廣泛傳播與應(yīng)用的分類算法。這個算法的表達式是這樣子的:
這個函數(shù)表達式被稱為logistic function,也經(jīng)常被稱為sigmoid function。當(dāng)
, 則 ,那么 ;當(dāng) , 則 ,那么 b ;當(dāng) , ;當(dāng) , 。嗯,這個函數(shù)長這個樣子的, 長得很像累計分布函數(shù)啊發(fā)現(xiàn)了不,這個函數(shù)的值域為(0,1),而且分布很均勻,任何一個數(shù)據(jù)值投入到函數(shù)中的x中,都可以映射到(0,1),那么,我們可以將他們的值分為兩類,當(dāng)y>0.5時(即x>0),就屬于“1”,當(dāng)y<0.5時(即x<0),就屬于“0”。
所以啊,結(jié)合之前我們學(xué)過的知識,對于二分類問題,我們可否利用邏輯回歸對他們進行分類呢?
我們需要對原有的邏輯回歸函數(shù)稍稍改造一下,如下哦:
此時,我們再令
。在這里,就要提出一個新的概念了,Decision Boundary(決策邊界),什么是決策邊界呢?還記得前文腦洞大開的時候,想象有這么一條線可以將兩類數(shù)據(jù)集分割開來嗎?一端是屬于“1”,一端是屬于“0”。結(jié)合這個邏輯回歸函數(shù),我們是不是發(fā)現(xiàn)了什么呢?
嘿嘿,沒錯,這個
中的 其實就是這么一條線啦,所以,知道我們?yōu)槭裁匆獙λM行改造了吧,因為很多時候,這么一條線不可能是一條直線的, 能夠適應(yīng)更多的可能。嗯,這么說你可能難以理解的話,請看下面這幾個圖:嗯,我們需要找到一條分割開圓和叉的線,什么線比較好呢?接著看哦:
嗯,完美,在這個圓圈之外屬于叉,圓圈之內(nèi)屬于圓。那么這個邊界呢?我們該怎么去定義呢?假設(shè)
,當(dāng) (省略號全是0),此時 。 這個式子 讓你想到了什么呢?或者說是 ,這是一個半徑為1,圓心在原點的圓。沒錯,就是上圖中那個分開兩類圖形的分界線。所以,我們簡單分析下,當(dāng) ,即 ,當(dāng) ,即 。回顧我們前文的假設(shè):當(dāng)y>0.5時(即x>0),就屬于“1”,當(dāng)y<0.5時(即x<0),就屬于“0”。所以,結(jié)合上圖,我們相當(dāng)于將圓圈外的叉標(biāo)記為“1”,將圓圈內(nèi)的圓標(biāo)記為“0”。而通過邏輯回歸得到的值,我們可以將它看成是分類為“1”的概率,通過邏輯回歸,則我們很輕易地將兩類數(shù)據(jù)分類了(即我們可以把h(x)=0.5,也就是θX=0的時候,稱為決策邊界。假設(shè)y為結(jié)果,y的值是1或者0)。當(dāng)然,關(guān)鍵是我們得找到他們之間的決策邊界,上面這個例子的決策邊界就是那個圓啊。以上的例子是個比較簡單的例子,對于更多更加復(fù)雜的分類,本質(zhì)上我們都能找到一個不錯的決策邊界,不知道大家是否了解泰勒多項式,理論上,任何函數(shù)都可以用泰勒多項式進行擬合,而泰勒多項式也可以由
表示,所以,簡單如上圖中的決策邊界,復(fù)雜如五角星或者我們一時看不出來的決策邊界,都可以擬合出一個多項式函數(shù)。當(dāng)我們找到了這個決策邊界后,再利用logistic對之進行分類,就可以對兩類數(shù)據(jù)集進行比較好的分類了。所以,你有沒有這么一個疑惑呢?生活中并非所有的問題都是非此即彼的問題啊,二分類畢竟是少數(shù),大多時候,我們面臨的是one-vs-all(一對多)的問題,那么,我們要分類的不僅僅是兩種,而是多種。可是邏輯回歸只能分出兩類,如果我有三類,四類,十類甚至更多需要分類,那該怎么辦呢?
別著急,接著看,咱們也可以靜下來好好思考下。先別考慮10類甚至更多的,考慮最簡單的多類——3類,如圖:
對于這么三類(三角形,矩形,叉),該怎么分類呢?兩兩比較嘛?那另外一個咋辦呢?嗯,別掉入牛角尖哦,看全局試試。我干嘛不這樣比較呢?選中其中一類,其他的無論多少類,我都當(dāng)作另一類,多簡單哈。同理,對于每一類都這么想,就如下圖:
那么,我們標(biāo)記三角形,矩形,叉分別0,1,2。則,此時,y = {0,1,2},那么,對于以上的三個分類,我們可以對它進行分類概率的計算:
所以,我們可以比較這三個值,哪個值最大,就意味這它屬于當(dāng)前那一類的概率最大。那么,三類也可以推而廣之,如果有n類,那么就是在這基礎(chǔ)上。
這樣,多類分類的情況也就解決了。
接著又回到了在前幾篇文章中需要解決的問題了,
該怎么獲得呢?還是利用梯度下降法,我們要獲得其代價函數(shù)J,在前面的線性回歸中,我們的代價函數(shù)是這樣子的:具體到本問題,因為y只有0和1兩個取值,這里就可以分兩種情況討論,讓y從函數(shù)中去掉:
y=0:
y=1:
然而我們發(fā)現(xiàn),這樣拿出來的函數(shù),因為y一會兒是1,一會兒是0,得到的圖像如下(左邊的)然而左邊的凹凸不平(非凸),不方便梯度下降。最好別這樣,如果對于邏輯回歸依然使用線性回歸的代價函數(shù),會導(dǎo)致梯度下降很難到達全局最優(yōu)點,可能會得到局部優(yōu)點,我們想要的是右邊那種滑溜溜(凸)的圖像:
反正我們要的是代價函數(shù)
符合決策邊界的條件就可以了,反正都把結(jié)果四舍五入成1或者0了,也沒必要非得是某個函數(shù)對吧?所以它是什么函數(shù)無所謂。只要(它的函數(shù)處理了x以后,得到的y)符合決策邊界的條件即可。而現(xiàn)在我們希望得到一個滑溜溜的凸函數(shù)。那么我們就假設(shè)(注意,這是假設(shè)出來的,符合條件的函數(shù)之一,沒說非得這樣。然而這是已有的函數(shù)中最好的):假設(shè)的代價函數(shù)之圖像由于y只有1和0兩個值,所以我們就直接把兩種情況的cost函數(shù)相加,然后分別乘以y和y-1變?yōu)橐粋€式子,因其形式,此損失函數(shù)又稱為交叉熵項:
找到了代價函數(shù)J,其余的過程就和之前是一樣的。
不斷的repeat以下過程:
當(dāng)然,此時的
。3. 邏輯回歸場景下,正則化的應(yīng)用
嗯,以上的問題清晰后,接下來我們要學(xué)習(xí)一個很重要的概念,regularization(正則化),這是什么呢?別急,慢慢來說明。
前文我們說了分類中,找到了決策邊界,就可以利用邏輯回歸進行分類了,那么,自然的,我們該選擇什么決策邊界好呢?由前文我們也可以看出,決策邊界取決于
。我們看看以下三種決策邊界(g是logistic function):它的決策邊界是:
。它的決策邊界是:
。它的決策邊界是:
這里面哪個擬合得最好呢?當(dāng)然是第三個了,幾乎把所有的都完美區(qū)分開了,我們看看它的函數(shù)十分復(fù)雜,特征比另外兩個都多。但是,第三個真的是最佳的嗎?不是的。
這里再引入一個新概念:Overfitting(過擬合)。什么是過擬合呢?一個高階多項式可能很好地擬合訓(xùn)練集,能夠幾乎擬合所有的訓(xùn)練數(shù)據(jù),但這函數(shù)太過龐大,變量太多,如果沒有足夠多的數(shù)據(jù)去約束這個變量過多的模型,就是過擬合。通俗地講,過擬合就是在訓(xùn)練集(已知數(shù)據(jù))上表現(xiàn)非常好,但是對于未知的數(shù)據(jù)表現(xiàn)得非常糟糕。嗯,再通俗地講,比如在圖片識別中,識別大熊貓,正常特征是黑眼圈等,結(jié)果,對于已有數(shù)據(jù),它把一些大熊貓的特征也算進去了,譬如耳朵上要有什么圖案啊才是大熊貓,結(jié)果這么一來,對于訓(xùn)練的大熊貓圖片當(dāng)然可以非常好地表現(xiàn),給一張新的大熊貓圖片,它耳朵上沒有那個圖案,結(jié)果就被錯誤分類了。所以過擬合就是,訓(xùn)練集好,預(yù)測集糟糕。
所以啊,我們就得防止過擬合,如圖二那樣的,就表現(xiàn)得不錯,圖一擬合的不好,那叫欠擬合,解釋啥的自己查哦,這兒不詳細(xì)解釋。
所以,如何防止過擬合呢?
因為有的時候我們不知道減少什么特征比較好,以及我們也不希望減特征,特征越多,越能使得訓(xùn)練表現(xiàn)好嘛。正則化可以在不減少特征的情況上,保持一個好的表現(xiàn)。
怎么做到的呢?
簡單地說,就是在代價函數(shù)后面加一個小尾巴懲罰項,比如在線性回歸函數(shù)中:
,其中 稱為懲罰項系數(shù)。小尾巴前面那項是我們原本的代價函數(shù),現(xiàn)在加上了懲罰項后,我們要使得代價函數(shù)最小,則后面的小尾巴也必須要小,小尾巴小的話,那么 就不能太大,如果 很小的話,那么那個 所在的項就接近于0了,也就可以近似地看成沒有了那個特征。接下來進行梯度下降,不斷地迭代以下過程
。至于邏輯回歸的懲罰項,這兒就不再詳細(xì)展開了,可以思考下哦~當(dāng)然了,正則化還不僅僅只有這么一個作用呢。還記得前面學(xué)過的正規(guī)方程法嗎?它有一個很大的缺陷,就是如果矩陣是奇異矩陣的話,那么就不能使用了。
而加上個正則項后,那就是非奇藝的了,正規(guī)方程法就可以很好地使用了。
4. 邏輯回歸分類用于實踐的一些點子
如何根據(jù)已有的郵件數(shù)據(jù)(貼上了垃圾郵件與非垃圾郵件的標(biāo)記),來判斷未來的一封郵件是否是垃圾郵件呢?
以上的問題本質(zhì)上是一個分類問題,而且是一個二元分類,通俗講就是非此即彼。假設(shè)我們標(biāo)記垃圾郵件為0,標(biāo)記非垃圾郵件為1,郵件的一些特征我們也進行數(shù)值化,利用我們之前了解的特征縮放等將數(shù)據(jù)整理。那么,我們需要的是一個適合的算法,對原始數(shù)據(jù)訓(xùn)練出一個模型。這樣,新的郵件數(shù)據(jù),我們帶入這個模型,根據(jù)返回的值,比如1,我們就可以判斷其為非垃圾郵件了
總結(jié)
以上是生活随笔為你收集整理的正则不能全为某个值_TensorFlow学习Program1——补充附录(7)线性回归、逻辑回归与正则化...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 批量生成6位数字_分享一款可做各种流水号
- 下一篇: 正弦定理和余弦定理_苏州市高一数学(正弦