日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

机器学习的简单逻辑回归的Advanced Optimization

發布時間:2023/12/10 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 机器学习的简单逻辑回归的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

總結

以上是生活随笔為你收集整理的机器学习的简单逻辑回归的Advanced Optimization的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。