機器學習的簡單邏輯回歸的Advanced Optimization

Learning Course: One variable logistic regression optimization

單變量(只有一個特征)的用于分類的邏輯回歸的cost function的最小值求解, here:

x=[x1;x2]; y={0,1};

theta=[theta(1);theta(2)]

由于分類中的y值需為0-1之間的數值,因此這里的cost function不同于線性回歸的cost function。

hθ(x)=g(θTx), where g(x)= 1/(1-exp(-x)); thus hθ(x) = 1/(1-exp(-θTX));

Thus Cost(hθ(x),y)=?ylog(hθ(x))?(1?y)log(1?hθ(x)),?

因為當實際y =1時,上述方程 cost =??ylog(hθ(x)), 因此在預測y值接近1時,方程值趨近于0,即使cost value趨近于零,反之,預測值接近于0時,cost value趨近于無窮大;對于y=0的推理也是同理。

然后 repeat θj :=θj - alpha*?(J(θ))/?(θj);

因此此處的優化即使找到一個theta使得cost function,即我們的目標方程的最小值。

?

以下用一個簡化的例子來計算目標方程的最小值

例如 cost function 為 J(theta) = (theta(1)-5)^2+(theta(2)-5)^2

先構建出我們的目標函數

function [jVal,gradiant] = costfunction(theta)
jVal = (theta(1)-5)^2+(theta(2))-5)^2;
gradiant = zeros(2,1);
gradiant(1) = 2*(theta(1)-5);
gradiant(2) = 2*(theta(2)-5);
end

 然后我們使用optimization的函數

options = optimset('GradObj','on','MaxIter',100);
initialTheta = zeros(2,1);
% MaxIter定義最大迭代步數,100即定義為100步
% GradObj指定義的梯度 [optTheta,fval,exitFlag] = fminunc(@costfunction,initialTheta,options); % optTheta export our optimal Theta value % fval export our final objective function value % exitFlag 返回算法的終止標志;
% 大于零時為計算收斂,等于零時表示超過最大迭代次數(所以該增加maxiters),小于零時代表不收斂
% options是一個結構,里面有控制優化過程的各種參數

  這里對 'on'的理解我不是特別明白,根據解釋

Hessian

If 'on', function uses user-defined Hessian, or Hessian information (when using HessMult), for the objective function. If 'off', function approximates the Hessian using finite differences.

L

fmincon, fminunc

?

?

這里的fminunc函數是matlab或者octave里已定義的函數,其功能是無約束(x的值域無約束)最優化問題求解,fminisearch和fminuc都可用于最小值求解,以下為簡單總結:

1.以上兩個函數都用于非線性多元函數最小值求解(因此注意求解的x的維度)

2. fminisearch適合階次低,但是斷點多的函數

3. fminunc適合高階連續函數,因此當階數大于等于2時,使用fminunc效果更好,但注意函數需連續。

以下為fminunc函數的一般調用格式:

x = fminunc(fun,x0);

x為返回的使函數值最小的x值,x0為優化的初始值,fun為我們定義的目標函數,也可以用@fun來調用定義函數,如下

x = fminunc(@fun,x0);

本篇博客的目的是為了總結吳恩達老師的機器學習課程,以便幫助自己更好的學習,如有錯誤之處,還請指出討論以便改正。

?

轉載于:https://www.cnblogs.com/chantervin/p/6061723.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/270494.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/270494.shtml
英文地址,請注明出處:http://en.pswp.cn/news/270494.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

java float f1=0.5_Java Math類靜態float copySign(float f1,float f2)與示例

數學類float copySign(float f1,float f2)此方法在java.lang包中可用。此方法用于返回第一個浮點參數以及第二個浮點參數的符號。這是一個靜態方法,因此也可以使用類名進行訪問。在此方法中,我們傳遞了兩個參數作為參數:第一個參數…

Sentinel介紹與使用

一、Sentinel簡介 Sentinel是阿里開源的項目,提供了流量控制、熔斷降級、系統負載保護等多個維度來保障服務之間的穩定性。 二:Sentinel 功能和設計理念 流量控制 流量控制在網絡傳輸中是一個常用的概念,它用于調整網絡包的發送數據。然而…

電腦知識:BIOS和UEFI的對比介紹

??作者主頁:IT技術分享社區 ??作者簡介:大家好,我是IT技術分享社區的博主,從事C#、Java開發九年,對數據庫、C#、Java、前端、運維、電腦技巧等經驗豐富。 ??個人榮譽: 數據庫領域優質創作者🏆&#x…

緩存更新的套路

看到好些人在寫更新緩存數據代碼時,先刪除緩存,然后再更新數據庫,而后續的操作會把數據再裝載的緩存中。然而,這個是邏輯是錯誤的。試想,兩個并發操作,一個是更新操作,另一個是查詢操作&#xf…

怎樣獲取當前頁面值php,想要得到當前頁面的所有url參數信息怎么用PHP來實現?...

本篇文章主要給大家介紹怎么使用php獲取完整url。首先給新手小白們簡單介紹下什么是url。百度百科上是這么解說的,統一資源定位符是對可以從互聯網上得到的資源的位置和訪問方法的一種簡潔的表示,是互聯網上標準資源的地址。互聯網上的每個文件都有一個唯…

@PostConstruct注解學習,最詳細的分享教程

該注解可以實現在運行工程時,自動運行該注解下的方法; PostConstruct是java自帶的注解,指的是在項目啟動的時候執行這個方法,也可以理解為在spring容器啟動的時候執行,可作為一些數據的常規化加載,比如數據…

電腦知識:分享實用的電腦維護小常識

目錄 常識1:杜絕直接拔電腦電源強行關機 常識2:不要用電池玩游戲 常識3:開不了機可以嘗試插拔內存條 常識4:電腦散熱的處理方法 常識5:避免在電腦工作時拔插頭 今天小編就為大家帶來一些電腦日常實用中的維護小知識&am…

Sentinel實現黑白名單控制詳細教程來了

一:新建一個IpRequestOriginParser類,實現RequestOriginParser接口,配置如下 public class IpRequestOriginParser implements RequestOriginParser {/*** Parse the origin from given HTTP request.** param request HTTP request* return …

php獲取服務器名稱,PHP 獲取服務器詳細信息

獲取系統類型及版本號: php_uname() (例:Windows NT COMPUTER 5.1 build 2600)只獲取系統類型: php_uname(s) (或:PHP_OS,例:Windows NT)只獲取系統版本號: php_u…

D. Anton and Chess 模擬題 + 讀題

http://codeforces.com/contest/734/problem/D 一開始的時候看不懂題目,以為象是中國象棋那樣走,然后看不懂樣例。 原來是走對角線的,長知識了。 所以我們就知道,王有八個方向,所以每個方向選一個來做代表就行了。 那么…

電腦知識:常見電腦藍屏代碼識別與處理方法

電腦藍屏怎么辦? 相信大家都遇到過藍屏的問題, 有時候電腦用著用著就突然藍屏了, 或者某天開機突然藍屏了…… 電腦藍屏的原因非常的多, 到底是什么引起的呢? 收集了一些最常見的幾種藍屏代碼, 大家只需要如…

sentinel的@SentinelResource注解使用

客戶自定義限流處理邏輯 創建ExceptionUtil類用于自定義限流處理邏輯 自定義限流處理類: ExceptionUtil 二:新增 SentinelResource注解 配置 SentinelResource(value “hello2”, blockHandler “exHandler”, blockHandlerClass {ExceptionUtil.class}) 通過…

PHP寫猜數字,PHP算法之猜數字

小A 和 小B 在玩猜數字。小B 每次從 1, 2, 3 中隨機選擇一個,小A 每次也從 1, 2, 3 中選擇一個猜。他們一共進行三次這個游戲,請返回 小A 猜對了幾次?輸入的guess數組為 小A 每次的猜測,answer數組為 小B 每次的選擇。guess和answ…

總結一年來的前端學習心得

到今天,前端學習剛好滿一年。我也順利從非計算機專業轉到前端。對于前端學習,自己也是摸著石頭過河,中間也有過困惑和迷茫。本文主要講述自己一年來對于前端學習的心得體會,希望能對學習前端的人提供一些幫助。 前端主要分為三部分…

辦公技巧:10個WORD神操作,值得收藏

目錄 1、F4鍵 2、Ctrl字母快捷鍵 3、巧用“文檔比較” 4、巧用替換功能 5、特殊字體保存 6、Word表格隨心粘 7、去除超鏈接 8、Word圖片輕松移 9、截圖 10、格式刷不停 在日常辦公當中, Word文檔就是我們最常用的軟件之一。用它我們寫論文、寫方案、寫小說等等。 但…

MYSQL學習:GROUP BY分組取最新的一條記錄

日常開發當中,經常會遇到查詢分組數據中最新的一條記錄,比如統計當前系統每個人的最新登錄記錄、外賣系統統計所有買家最新的一次訂單記錄、圖書管理系統借閱者最新借閱書籍的記錄等等。今天給大家介紹一下如何實現以上場景的SQL寫法,希望對大…

@SentinelResource注解實現熱點限流

下圖中請求url中param參數為axb,如果QPS超過5,就會限流 一:如下代碼 RestController public class ParamController {GetMapping("/param")SentinelResource(value "param", blockHandler "exHandler")p…

[LeetCode] 4Sum II 四數之和之二

Given four lists A, B, C, D of integer values, compute how many tuples (i, j, k, l) there are such that A[i] B[j] C[k] D[l] is zero. To make problem a bit easier, all A, B, C, D have same length of N where 0 ≤ N ≤ 500. All integers are in the range of…

php的正則表達式函數,php中常用的正則表達式函數

php中常用的正則表達式函數* preg_match()* preg_match_all()* preg_replace()* preg_filter()* preg_grep()* preg_split()* preg_quote()接下來對比講解:講解中 $pattern 通常表示正則表達式$subject 通常表示目標處理數據定義一個方法 方便查看數據類型&#xff…

硬件知識:固態硬盤4K對齊知識介紹

目錄 1、什么是4K對齊呢? 2、怎么查看硬盤是否4K對齊呢? 3、怎么4K對齊呢? 現在大家基本都有一個固態硬盤,而在固態硬盤分區中4K對齊是非常重要的。 1、什么是4K對齊呢? “4K對齊”就是符合“4K扇區”定義格式化過的硬…