1. 程式人生 > >logistic迴歸詳解(二):損失函式(cost function)詳解

logistic迴歸詳解(二):損失函式(cost function)詳解

有監督學習

機器學習分為有監督學習,無監督學習,半監督學習,強化學習。對於邏輯迴歸來說,就是一種典型的有監督學習。
既然是有監督學習,訓練集自然可以用如下方式表述:

{(x1,y1),(x2,y2),,(xm,ym)}

對於這m個訓練樣本,每個樣本本身有n維特徵。再加上一個偏置項x0, 則每個樣本包含n+1維特徵:

x=[x0,x1,x2,,xn]T
其中 xRn+1, x0=1, y{0,1}

李航博士在統計學習方法一書中給分類問題做了如下定義:
分類是監督學習的一個核心問題,在監督學習中,當輸出變數Y取有限個離散值時,預測問題便成為分類問題。這時,輸入變數X可以是離散的,也可以是連續的。監督學習從資料中學習一個分類模型或分類決策函式,稱為分類器(classifier)。分類器對新的輸入進行輸出的預測(prediction),稱為分類(classification).

hθ(x)=g(θTx)=11+eθTx
其中一個重要的原因,就是要將Hypothesis(NG課程裡的說法)的輸出對映到0與1之間,既:
0hθ(x)1

同樣是李航博士統計學習方法一書中,有以下描述:
統計學習方法都是由模型,策略,和演算法構成的,即統計學習方法由三要素構成,可以簡單表示為:

=++

對於logistic迴歸來說,模型自然就是logistic迴歸,策略最常用的方法是用一個損失函式(loss function)或代價函式(cost function)來度量預測錯誤程度,演算法則是求解過程,後期會詳細描述相關的優化演算法。

logistic函式求導

g(z)=ddz11+ez=1(1+ez)2(ez)=1(1+ez)(11(1+ez))=g(z)(1g(z))

此求導公式在後續推導中會使用到

常見的損失函式

機器學習或者統計機器學習常見的損失函式如下:

1.0-1損失函式 (0-1 loss function)

L(Y,f(X))={1,0, f(X)Y = f(X)

2.平方損失函式(quadratic loss function)

L(Y,f(X))=(Yf(x))2

3.絕對值損失函式(absolute loss function)

L(Y,f(x))=|Yf(X)|

4.對數損失函式(logarithmic loss function) 或對數似然損失函式(log-likehood loss function)

L(Y,P(Y|X))=logP(Y|X)

邏輯迴歸中,採用的則是對數損失函式。如果損失函式越小,表示模型越好。

說說對數損失函式與平方損失函式

在邏輯迴歸的推導中國,我們假設樣本是服從伯努利分佈(0-1分佈)的,然後求得滿足該分佈的似然函式,最終求該似然函式的極大值。整體的思想就是求極大似然函式的思想。而取對數,只是為了方便我們的在求MLE(Maximum Likelihood Estimation)過程中採取的一種數學手段而已。

損失函式詳解

根據上面的內容,我們可以得到邏輯迴歸的對數似然損失函式cost function:

cost(hθ(x),y)={log(hθ(x))log(1hθ(x))if y=1if y=0

稍微解釋下這個損失函式,或者說解釋下對數似然損失函式:
當y=1時,假定這個樣本為正類。如果此時hθ(x)=1,則單對這個樣本而言的cost=0,表示這個樣本的預測完全準確。那如果所有樣本都預測準確,總的cost=0
但是如果此時預測的概率hθ(x)=0,那麼cost。直觀解釋的話,由於此時樣本為一個正樣本,但是預測的結果P

相關推薦

logistic迴歸(損失函式cost function

有監督學習 機器學習分為有監督學習,無監督學習,半監督學習,強化學習。對於邏輯迴歸來說,就是一種典型的有監督學習。 既然是有監督學習,訓練集自然可以用如下方式表述: {(x1,y1),(x2,y2),⋯,(xm,ym)} 對於這m個訓練樣本,每個樣本本身

機器學習啟用函式Activation Function

0. 啟用函式 上圖為wiki上的定義:啟用函式定義了每個節點(神經元)的輸出和輸入關係的函式。 下表:常用啟用函式 編號 函數 公式 1) sigmoid(

吳恩達深度學習筆記7--邏輯迴歸的代價函式Cost Function

邏輯迴歸的代價函式(Logistic Regression Cost Function) 在上一篇文章中,我們講了邏輯迴歸模型,這裡,我們講邏輯迴歸的代價函式(也翻譯作成本函式)。 吳恩達讓我轉達大家:這一篇有很多公式,做好準備,睜大眼睛!代價函式很重要! 為什麼需要代價函式: 為

統計學習方法函式Kernel function

作者:桂。 時間:2017-04-26  12:17:42 前言 之前分析的感知機、主成分分析(Principle component analysis, PCA)包括後面看的支撐向量機(Support vector machines, SVM),都有用到核函式。核函式是將訊號對映到高維

常用損失函式Loss Function

【深度學習】一文讀懂機器學習常用損失函式(Loss Function) 最近太忙已經好久沒有寫部落格了,今天整理分享一篇關於損失函式的文章吧,以前對損失函式的理解不夠深入,沒有真正理解每個損失函式的特點以及應用範圍,如果文中有任何錯誤,請各位朋友指教,謝謝~   損失函式(lo

TensorFlow損失函式loss function

神經網路模型的效果及優化的目標是通過損失函式來定義的。 1、經典損失函式 分類問題和迴歸問題是監督學習的兩大種類。 分類問題 常用方法:交叉熵(cross_entropy),它描述了兩個概率分佈之間的距離,當交叉熵越小說明二者之間越接近。它是分類

損失函式loss function

通常而言,損失函式由損失項(loss term)和正則項(regularization term)組成。發現一份不錯的介紹資料: 一、損失項 對迴歸問題,常用的有:平方損失(for linear regression),絕對值損失;對分類問題,常用的有:hinge l

資料結構實現陣列棧C++版

資料結構實現(二):陣列棧(C++版) 1. 概念及基本框架 2. 基本操作程式實現 2.1 入棧操作 2.2 出棧操作 2.3 查詢操作 2.4 其他操作 3. 演算法複雜度分析 3.1 入棧

【AI實戰】快速掌握TensorFlow損失函式

在前面的文章中,我們已經學習了TensorFlow激勵函式的操作使用方法(見文章:快速掌握TensorFlow(三)),今天我們將繼續學習TensorFlow。 本文主要是學習掌握TensorFlow的損失函式。 一、什麼是損失函式 損失函式(loss function)是機器學習

tensorflow學習4損失函式+優化方法

一、損失函式 提起損失函式,大概最常用的就是交叉熵和均方誤差了。 1.交叉熵損失函式:針對分類問題 假設某個樣例的正確答案是(1,0,0),預測值是[0.5,0.4,0.1] 那麼其交叉熵為H((1,0,0),(0.5,0.4,0.1))=-(1log0.5+0log0.4+0*log

tensorflow+faster rcnn程式碼理解損失函式構建

前面兩篇部落格已經敘述了基於vgg模型構建faster rcnn的過程: tensorflow+faster rcnn程式碼理解(一):構建vgg前端和RPN網路 tensorflow+faster rcnn程式碼解析(二):anchor_target_layer、proposal_targ

設計模式( Adapter模式介面卡模式

Adapter模式(介面卡模式) 介面卡模式 1.類介面卡模式(繼承) 委託介面卡模式(物件) 記錄 介面卡模式 1.類介面卡模式(繼承) 基礎類,提供printWithParen()方法來列印帶()的內

設計模式代理模式委託模式

代理模式 組成: 抽象角色:通過介面或者抽象類宣告真實角色實現的業務方法 代理角色:實現抽象角色,是真實角色的代理,通過真實角色的業務邏輯方法來實現抽象方法,並可以附加自己的操作。 真實角色:實現抽象角色,定義真實角色所需要實現的業務邏輯,供代理角色呼叫 代理的基本作用

tensorflow學習筆記損失函式

tf.python.ops.nn_ops.sparse_softmax_cross_entropy_with_logits(logits, labels, name=None) def sparse_softmax_cross_entropy_with_l

Spring Boot快速入門使用MyBatis註解形式進行數據庫操作

訪問 ins name ont clas assert xxx main apach 原文地址:https://lierabbit.cn/articles/7 添加依賴 新建項目選擇web,MyBatis,MySQL三個依賴 對於已存在的項目可以在bulid.gradle

Java併發程式設計9死鎖含程式碼

JAVA大資料中高階架構 2018-11-10 14:04:32當執行緒需要同時持有多個鎖時,有可能產生死鎖。考慮如下情形: 執行緒A當前持有互斥所鎖lock1,執行緒B當前持有互斥鎖lock2。接下來,當執行緒A仍然持有lock1時,它試圖獲取lock2,因為執行緒B正持有lock2,因此執行緒A會阻塞等

資料結構實現連結串列C++版

資料結構實現(五):連結串列(C++版) 1. 概念及基本框架 2. 基本操作程式實現 2.1 增加操作 2.2 刪除操作 2.3 修改操作 2.4 查詢操作 2.5 其他操作 3. 演算法複雜度分析

資料結構實現迴圈佇列C++版

資料結構實現(四):迴圈佇列(C++版) 1. 概念及基本框架 2. 基本操作程式實現 2.1 入隊操作 2.2 出隊操作 2.3 查詢操作 2.4 其他操作 3. 演算法複雜度分析 3.1 入

資料結構實現陣列佇列C++版

資料結構實現(三):陣列佇列(C++版) 1. 概念及基本框架 2. 基本操作程式實現 2.1 入隊操作 2.2 出隊操作 2.3 查詢操作 2.4 其他操作 3. 演算法複雜度分析 3.1 入

資料結構實現動態陣列C++版

資料結構實現(一):動態陣列(C++版) 1. 概念及基本框架 2. 基本操作程式實現 2.1 增加操作 2.2 刪除操作 2.3 修改操作 2.4 查詢操作 2.5 其他操作 3. 演算法複雜度分析