日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

基于Python fminunc 的替代方法

瀏覽:25日期:2022-08-05 09:35:08

最近閑著沒事,想把coursera上斯坦福ML課程里面的練習,用Python來實現一下,一是加深ML的基礎,二是熟悉一下numpy,matplotlib,scipy這些庫。

在EX2中,優化theta使用了matlab里面的fminunc函數,不知道Python里面如何實現。搜索之后,發現stackflow上有人提到用scipy庫里面的minimize函數來替代。我嘗試直接調用我的costfunction和grad,程序報錯,提示(3,)和(100,1)dim維度不等,gradient vector不對之類的,試了N多次后,終于發現問題何在。。

首先來看看使用np.info(minimize)查看函數的介紹,傳入的參數有:

fun : callable The objective function to be minimized. ``fun(x, *args) -> float`` where x is an 1-D array with shape (n,) and `args` is a tuple of the fixed parameters needed to completely specify the function.x0 : ndarray, shape (n,) Initial guess. Array of real elements of size (n,), where ’n’ is the number of independent variables.args : tuple, optional Extra arguments passed to the objective function and its derivatives (`fun`, `jac` and `hess` functions).method : str or callable, optional Type of solver. Should be one of - ’Nelder-Mead’ :ref:`(see here) <optimize.minimize-neldermead>` - ’Powell’ :ref:`(see here) <optimize.minimize-powell>` - ’CG’ :ref:`(see here) <optimize.minimize-cg>` - ’BFGS’ :ref:`(see here) <optimize.minimize-bfgs>` - ’Newton-CG’ :ref:`(see here) <optimize.minimize-newtoncg>` - ’L-BFGS-B’ :ref:`(see here) <optimize.minimize-lbfgsb>` - ’TNC’ :ref:`(see here) <optimize.minimize-tnc>` - ’COBYLA’ :ref:`(see here) <optimize.minimize-cobyla>` - ’SLSQP’ :ref:`(see here) <optimize.minimize-slsqp>` - ’trust-constr’:ref:`(see here) <optimize.minimize-trustconstr>` - ’dogleg’ :ref:`(see here) <optimize.minimize-dogleg>` - ’trust-ncg’ :ref:`(see here) <optimize.minimize-trustncg>` - ’trust-exact’ :ref:`(see here) <optimize.minimize-trustexact>` - ’trust-krylov’ :ref:`(see here) <optimize.minimize-trustkrylov>` - custom - a callable object (added in version 0.14.0), see below for description. If not given, chosen to be one of ``BFGS``, ``L-BFGS-B``, ``SLSQP``, depending if the problem has constraints or bounds.jac : {callable, ’2-point’, ’3-point’, ’cs’, bool}, optional Method for computing the gradient vector. Only for CG, BFGS, Newton-CG, L-BFGS-B, TNC, SLSQP, dogleg, trust-ncg, trust-krylov, trust-exact and trust-constr. If it is a callable, it should be a function that returns the gradient vector: ``jac(x, *args) -> array_like, shape (n,)`` where x is an array with shape (n,) and `args` is a tuple with the fixed parameters. Alternatively, the keywords {’2-point’, ’3-point’, ’cs’} select a finite difference scheme for numerical estimation of the gradient. Options ’3-point’ and ’cs’ are available only to ’trust-constr’. If `jac` is a Boolean and is True, `fun` is assumed to return the gradient along with the objective function. If False, the gradient will be estimated using ’2-point’ finite difference estimation.

需要注意的是fun關鍵詞參數里面的函數,需要把優化的theta放在第一個位置,X,y,放到后面。并且,theta在傳入的時候一定要是一個一維shape(n,)的數組,不然會出錯。

然后jac是梯度,這里的有兩個地方要注意,第一個是傳入的theta依然要是一個一維shape(n,),第二個是返回的梯度也要是一個一維shape(n,)的數組。

總之,關鍵在于傳入的theta一定要是一個1D shape(n,)的,不然就不行。我之前為了方便已經把theta塑造成了一個(n,1)的列向量,導致使用minimize時會報錯。所以,學會用help看說明可謂是相當重要啊~

import numpy as npimport pandas as pdimport scipy.optimize as op def LoadData(filename): data=pd.read_csv(filename,header=None) data=np.array(data) return data def ReshapeData(data): m=np.size(data,0) X=data[:,0:2] Y=data[:,2] Y=Y.reshape((m,1)) return X,Y def InitData(X): m,n=X.shape initial_theta = np.zeros(n + 1) VecOnes = np.ones((m, 1)) X = np.column_stack((VecOnes, X)) return X,initial_theta def sigmoid(x): z=1/(1+np.exp(-x)) return z def costFunction(theta,X,Y): m=X.shape[0] J = (-np.dot(Y.T, np.log(sigmoid(X.dot(theta)))) - np.dot((1 - Y).T, np.log(1 - sigmoid(X.dot(theta))))) / m return J def gradient(theta,X,Y): m,n=X.shape theta=theta.reshape((n,1)) grad=np.dot(X.T,sigmoid(X.dot(theta))-Y)/m return grad.flatten() if __name__==’__main__’: data = LoadData(’ex2data1csv.csv’) X, Y = ReshapeData(data) X, initial_theta = InitData(X) result = op.minimize(fun=costFunction, x0=initial_theta, args=(X, Y), method=’TNC’, jac=gradient) print(result)

最后結果如下,符合MATLAB里面用fminunc優化的結果(fminunc:cost:0.203,theta:-25.161,0.206,0.201)

fun: array([0.2034977]) jac: array([8.95038682e-09, 8.16149951e-08, 4.74505693e-07]) message: ’Local minimum reached (|pg| ~= 0)’ nfev: 36 nit: 17 status: 0 success: True x: array([-25.16131858, 0.20623159, 0.20147149])

此外,由于知道cost在0.203左右,所以我用最笨的梯度下降試了一下,由于后面實在是太慢了,所以設置while J>0.21,循環了大概13W次。。可見,使用集成好的優化算法是多么重要。。。還有,在以前的理解中,如果一個學習速率不合適,J會一直發散,但是昨天的實驗發現,有的速率開始會發散,后面還是會收斂。

以上這篇基于Python fminunc 的替代方法就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持好吧啦網。

標簽: Python 編程
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
国产99精品| 国产亚洲精品美女久久| 欧美aa在线视频| 国产精品一区二区三区www| 日韩中文字幕一区二区高清99| 亚洲男女自偷自拍| 国产午夜精品一区二区三区欧美| 激情欧美亚洲| 99国产精品| 男人操女人的视频在线观看欧美| 在线精品国产亚洲| 无码日韩精品一区二区免费| 日韩精品一级二级| 亚洲精品激情| 欧美片第1页综合| 国产精品欧美在线观看| 久久亚洲精精品中文字幕| av中文资源在线资源免费观看| 成人在线丰满少妇av| 91看片一区| 午夜国产欧美理论在线播放| 亚洲欧美日韩一区在线观看| 五月国产精品| 免费视频一区二区三区在线观看| 国产一区二区色噜噜| 国产亚洲一区二区手机在线观看 | 蘑菇福利视频一区播放| 蜜臀va亚洲va欧美va天堂| 日韩精品免费观看视频| 欧美国产先锋| 久久精品青草| 人人精品人人爱| 久久99精品久久久野外观看| 欧美成a人国产精品高清乱码在线观看片在线观看久 | 国产一区视频在线观看免费| 亚洲一区二区三区高清| 日韩激情一区二区| 精品国产乱码久久久| 国产一区亚洲| 日韩和欧美一区二区| 成人在线黄色| 欧美一区=区| 国产精品久久久亚洲一区| 国产伦久视频在线观看| 国产视频一区在线观看一区免费| 日本a级不卡| 成人福利av| 亚洲欧洲美洲国产香蕉| 久久精品国产网站| 欧美a级一区| 日韩av中文字幕一区二区| 国产91欧美| 香蕉久久国产| 成人污污视频| 噜噜噜久久亚洲精品国产品小说| 国产精品久久久久久久免费软件| 日本精品不卡| 国产亚洲观看| 亚洲高清影视| 国产精品v日韩精品v欧美精品网站 | 青青草国产精品亚洲专区无| 欧美黄色网页| 国产视频一区二| 91九色精品| 久久久精品国产**网站| 蜜桃av一区| 日韩国产激情| 国产探花在线精品一区二区| 日韩视频一区| 国产精品二区不卡| 日韩精品欧美精品| 日韩精品看片| 久久国产三级| 夜夜嗨一区二区三区| 久久精品国产在热久久| 伊人久久亚洲| 91精品久久久久久久久久不卡| 日本伊人久久| 亚洲a一区二区三区| 麻豆极品一区二区三区| 日韩影院精彩在线| 久久亚洲成人| 日韩成人免费| 欧美日韩1区| 久久国产精品99国产| 天堂中文av在线资源库| 国产亚洲久久| 在线精品福利| 在线国产一区二区| 日韩黄色大片| 麻豆成人在线观看| 日韩高清在线不卡| 国产精品呻吟| 久久久水蜜桃av免费网站| 欧美激情福利| 午夜亚洲福利| 91精品二区| 亚洲成av在线| 激情不卡一区二区三区视频在线| 91精品国产经典在线观看| 久久亚洲欧美| 激情久久中文字幕| 亚洲精品在线影院| 中文字幕人成乱码在线观看| 国产福利一区二区三区在线播放| 亚洲一区二区小说| 妖精视频成人观看www| 国产精品99一区二区| 色在线中文字幕| 成人国产精品一区二区免费麻豆| 国产亚洲欧美日韩精品一区二区三区 | 亚洲无线观看| 中文精品在线| 午夜影院欧美| 狠狠爱成人网| 伊人成人在线视频| 欧美精品一线| 亚洲免费播放| 午夜久久一区| 亚洲激情久久| 激情综合在线| 不卡一区2区| 欧美日韩国产传媒| 亚洲精品国产偷自在线观看| 在线观看免费一区二区| 亚洲成人三区| 美女91精品| 在线观看亚洲精品福利片| 蜜臀久久99精品久久久久久9| 国产精品日韩| 综合五月婷婷| 欧美一级全黄| 欧美激情麻豆| 美女福利一区二区三区| 欧美日韩一二| 在线日韩电影| 亚洲永久字幕| 综合国产精品| 日韩和欧美一区二区| 国产欧美日韩影院| 美女精品一区二区| 欧美男人天堂| 日韩一级欧洲| 日本在线不卡视频| 久久久精品国产**网站| 日韩亚洲一区在线| 精品91久久久久| 亚洲精品无播放器在线播放| 国产精品天堂蜜av在线播放| 国产精品久久久久久久久久10秀| 日韩大片在线观看| 日韩视频一区| 欧美在线看片| 国产成人精品一区二区三区免费| sm捆绑调教国产免费网站在线观看 | 国产成人精品一区二区免费看京| 成人精品国产亚洲| 亚洲午夜精品久久久久久app| 亚洲欧美成人综合| 欧美在线不卡| 美女视频黄免费的久久| 亚洲欧洲高清| 久久高清免费观看| 国产精品极品| 亚洲天堂黄色| 日韩1区2区日韩1区2区| 成人在线免费观看网站| 国产亚洲综合精品| 国产精品亚洲综合色区韩国| 欧洲精品一区二区三区| 亚洲人成网站在线在线观看| 久久99久久人婷婷精品综合| 久久影视一区| 欧美在线日韩| 欧美亚洲国产精品久久| 深夜日韩欧美| 成人在线视频中文字幕| 麻豆亚洲精品| 国产精品成人a在线观看| 日韩午夜精品| 麻豆精品在线观看| jiujiure精品视频播放| 久久精品97| 久久免费高清| 国产亚洲精品美女久久| 亚洲v在线看| 国产香蕉精品| 五月天久久久| 麻豆国产精品视频| 水野朝阳av一区二区三区| 精品在线网站观看| 欧美日韩国产在线一区| 麻豆视频久久| 三级欧美在线一区| 中文一区一区三区高中清不卡免费| 一区二区三区午夜视频| 亚洲成人av观看| 国产精品激情电影| 中国女人久久久| 不卡一二三区|