最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

股票量化軟件:數(shù)據(jù)科學(xué)與機(jī)器學(xué)習(xí)6--梯度下降

2023-07-17 16:20 作者:大牛啊呢  | 我要投稿

成本函數(shù)

有些人稱之為虧損函數(shù),它衡量赫茲股票量化軟件的模型預(yù)測 x 和 y 值之間關(guān)系的計算好壞與否。

有很多衡量標(biāo)準(zhǔn)可判定模型的預(yù)如何測,但與所有那些不同的是,成本函數(shù)查找整個數(shù)據(jù)集的平均虧損,成本函數(shù)越大,赫茲股票量化軟件的模型在數(shù)據(jù)集中查找關(guān)系就越差。

梯度下降旨在令成本函數(shù)最小化,因?yàn)榫哂凶畹统杀竞瘮?shù)的模型才是最佳模型。 為了您能理解我剛剛解釋的內(nèi)容,赫茲股票量化軟件看看下面的例子。赫茲股票量化軟件

假設(shè)赫茲股票量化軟件的成本函數(shù)是方程式


編輯


如果赫茲股票量化軟件用 python 繪制這個函數(shù)的圖形,它將是這樣的:


編輯


赫茲股票量化軟件需要針對成本函數(shù)執(zhí)行的第一步是用鏈?zhǔn)椒▌t來區(qū)分成本函數(shù):

方程式 y= (x+5)^2 是一個復(fù)合函數(shù)(一個函數(shù)含于另一個函數(shù)內(nèi)部)。 外部函數(shù)是 (x+5)^2 內(nèi)部函數(shù)是 (x+5)。 為了區(qū)分這一點(diǎn),赫茲股票量化軟件應(yīng)用鏈?zhǔn)椒▌t,請參見下圖:



編輯



如果你覺得這很難理解,在文末有一個我手工進(jìn)行數(shù)學(xué)演算的視頻鏈接。 是的,現(xiàn)在赫茲股票量化軟件剛剛得到的這個函數(shù)是梯度。 找到方程梯度的過程是最重要的一步,我希望我的數(shù)學(xué)老師某天告訴我,微分函數(shù)的目的是為了得到函數(shù)的梯度。

這是第一步也是最重要的一步,下面是第二步。

步驟 02:

赫茲股票量化軟件朝著梯度的負(fù)方向移動,在此提出了一個問題,我們應(yīng)該移動多少? 這就是學(xué)習(xí)曲率發(fā)揮作用的地方。


學(xué)習(xí)曲率

根據(jù)定義,這是向最小損失函數(shù)移動時,每次迭代的步長,以一個人下山坡為例,他們的步數(shù)是學(xué)習(xí)曲率,步數(shù)越小,到達(dá)山腳所需的時間就越長,反之亦然。

算法應(yīng)將學(xué)習(xí)曲率保持在較小值,但也不要像 0.0001 那樣太小了,這樣做會增加程序執(zhí)行時間,因?yàn)樗惴赡苄枰L的時間才能達(dá)到最小值。 與其對比,取較大數(shù)字作為學(xué)習(xí)曲率將導(dǎo)致算法跳過最小值,最終也許會導(dǎo)致您錯過最小值目標(biāo)。

默認(rèn)學(xué)習(xí)曲率為 0.01。

赫茲股票量化軟件來執(zhí)行迭代,以便查看算法的工作原理。

第一次迭代:赫茲股票量化軟件選擇任何隨機(jī)點(diǎn)作為我們算法的起點(diǎn),我現(xiàn)在選擇 0 作為 x 的第一個值,這是更新 x 值的公式


編輯

經(jīng)歷每次迭代,赫茲股票量化軟件將朝下降低到函數(shù)的最小值,故此名曰梯度下降。 現(xiàn)在有意義嗎?


編輯


赫茲股票量化軟件詳細(xì)查看它是如何工作的。 6現(xiàn)在,我們在 2 次迭代中手動計算值,從而令您對正在發(fā)生的事情有一個堅(jiān)實(shí)的理解:

第一次迭代:公式: x1 = x0 - 學(xué)習(xí)曲率 * ( 2*(x+5) ) x1 = 0 - 0.01 * 0.01 * 2*(0+5) x1 = -0.01 * 10 x1 = -0.1 (最終)

現(xiàn)在,最終赫茲股票量化軟件通過將新值賦予舊值來更新該數(shù)值,并重復(fù)該過程,執(zhí)行盡可能多的迭代,直至函數(shù)的最小值:

x0 = x1第二次迭代:x1 = -0.1 - 0.01 * 2*(-0.1+5) x1 = -0.198 然后: x0 = ?x1

如果赫茲股票量化軟件重復(fù)若干次此過程,則做開始的 10 次迭代的輸出將是:

RS ? ? ?0 ? ? ? 17:15:16.793 ? ?gradient-descent test (EURUSD,M1) ? ? ? Gradient Descent CostFunction CUSTOM QQ ? ? ?0 ? ? ? 17:15:16.793 ? ?gradient-descent test (EURUSD,M1) ? ? ? 1 x0 = 0.0000000000 x1 = -0.1000000000 CostFunction = 10.0000000000 ES ? ? ?0 ? ? ? 17:15:16.793 ? ?gradient-descent test (EURUSD,M1) ? ? ? 2 x0 = -0.1000000000 x1 = -0.1980000000 CostFunction = 9.8000000000 PR ? ? ?0 ? ? ? 17:15:16.793 ? ?gradient-descent test (EURUSD,M1) ? ? ? 3 x0 = -0.1980000000 x1 = -0.2940400000 CostFunction = 9.6040000000 LE ? ? ?0 ? ? ? 17:15:16.793 ? ?gradient-descent test (EURUSD,M1) ? ? ? 4 x0 = -0.2940400000 x1 = -0.3881592000 CostFunction = 9.4119200000 JD ? ? ?0 ? ? ? 17:15:16.793 ? ?gradient-descent test (EURUSD,M1) ? ? ? 5 x0 = -0.3881592000 x1 = -0.4803960160 CostFunction = 9.2236816000 IG ? ? ?0 ? ? ? 17:15:16.793 ? ?gradient-descent test (EURUSD,M1) ? ? ? 6 x0 = -0.4803960160 x1 = -0.5707880957 CostFunction = 9.0392079680 IG ? ? ?0 ? ? ? 17:15:16.793 ? ?gradient-descent test (EURUSD,M1) ? ? ? 7 x0 = -0.5707880957 x1 = -0.6593723338 CostFunction = 8.8584238086 JF ? ? ?0 ? ? ? 17:15:16.793 ? ?gradient-descent test (EURUSD,M1) ? ? ? 8 x0 = -0.6593723338 x1 = -0.7461848871 CostFunction = 8.6812553325 NI ? ? ?0 ? ? ? 17:15:16.793 ? ?gradient-descent test (EURUSD,M1) ? ? ? 9 x0 = -0.7461848871 x1 = -0.8312611893 CostFunction = 8.5076302258 CK ? ? ?0 ? ? ? 17:15:16.793 ? ?gradient-descent test (EURUSD,M1) ? ? ? 10 x0 = -0.8312611893 x1 = -0.9146359656 CostFunction = 8.3374776213

我們也看看算法非常接近函數(shù)最小值時的其它十個數(shù)值:

GK ? ? ?0 ? ? ? 17:15:16.800 ? ?gradient-descent test (EURUSD,M1) ? ? ? 1052 x0 = -4.9999999970 x1 = -4.9999999971 CostFunction = 0.0000000060 IH ? ? ?0 ? ? ? 17:15:16.800 ? ?gradient-descent test (EURUSD,M1) ? ? ? 1053 x0 = -4.9999999971 x1 = -4.9999999971 CostFunction = 0.0000000059 NH ? ? ?0 ? ? ? 17:15:16.800 ? ?gradient-descent test (EURUSD,M1) ? ? ? 1054 x0 = -4.9999999971 x1 = -4.9999999972 CostFunction = 0.0000000058 QI ? ? ?0 ? ? ? 17:15:16.800 ? ?gradient-descent test (EURUSD,M1) ? ? ? 1055 x0 = -4.9999999972 x1 = -4.9999999972 CostFunction = 0.0000000057 II ? ? ?0 ? ? ? 17:15:16.800 ? ?gradient-descent test (EURUSD,M1) ? ? ? 1056 x0 = -4.9999999972 x1 = -4.9999999973 CostFunction = 0.0000000055 RN ? ? ?0 ? ? ? 17:15:16.800 ? ?gradient-descent test (EURUSD,M1) ? ? ? 1057 x0 = -4.9999999973 x1 = -4.9999999973 CostFunction = 0.0000000054 KN ? ? ?0 ? ? ? 17:15:16.800 ? ?gradient-descent test (EURUSD,M1) ? ? ? 1058 x0 = -4.9999999973 x1 = -4.9999999974 CostFunction = 0.0000000053 JO ? ? ?0 ? ? ? 17:15:16.800 ? ?gradient-descent test (EURUSD,M1) ? ? ? 1059 x0 = -4.9999999974 x1 = -4.9999999974 CostFunction = 0.0000000052 JO ? ? ?0 ? ? ? 17:15:16.800 ? ?gradient-descent test (EURUSD,M1) ? ? ? 1060 x0 = -4.9999999974 x1 = -4.9999999975 CostFunction = 0.0000000051 QL ? ? ?0 ? ? ? 17:15:16.800 ? ?gradient-descent test (EURUSD,M1) ? ? ? 1061 x0 = -4.9999999975 x1 = -4.9999999975 CostFunction = 0.0000000050 QL ? ? ?0 ? ? ? 17:15:16.800 ? ?gradient-descent test (EURUSD,M1) ? ? ? 1062 x0 = -4.9999999975 x1 = -4.9999999976 CostFunction = 0.0000000049 HP ? ? ?0 ? ? ? 17:15:16.800 ? ?gradient-descent test (EURUSD,M1) ? ? ? Local miminum found =-4.999999997546217

經(jīng)過 1062(一千零六十二)次迭代,算法就能夠達(dá)到此函數(shù)的局部最小值。

針對該算法需要注意的事情

查看成本函數(shù)的數(shù)值,您會注意到開始時數(shù)值的巨大變化,但到了成本函數(shù)的最后一個數(shù)值則變化難以察覺。當(dāng)梯度下降遠(yuǎn)未接近函數(shù)的最小值時,它會取較大的步長,但是,當(dāng)接近函數(shù)的最小值時,它會取嬰幼兒般的步長;這與您接近山腳時采取的行動相仿,所以現(xiàn)在您知道梯度下降非常聰明!

結(jié)束時本地最小值是

HP ? ? ?0 ? ? ? 17:15:16.800 ? ?gradient-descent test (EURUSD,M1) ? ? ? Local miminum found =-4.999999997546217

這是準(zhǔn)確的值,因?yàn)榇撕瘮?shù)的最小值為 -5.0!

真實(shí)的問題

梯度如何知道何時停止? 看看若赫茲股票量化軟件讓算法保持迭代,直到無窮大,或者至少是計算機(jī)計算能力的盡頭。

當(dāng)成本函數(shù)為零,此刻我們知道梯度下降已經(jīng)完成了它的工作。

現(xiàn)在赫茲股票量化軟件用 MQL5 編寫整個操作代碼:

? ? ? while (true) ? ? ? ?{ ? ? ? ? ? iterations++; ? ? ? ? ? ? ? ? ? ? x1 = x0 - m_learning_rate * CustomCostFunction(x0); ? ? ? ? ? ? ? ? ? ? printf("%d x0 = %.10f x1 = %.10f CostFunction = %.10f",iterations,x0,x1,CustomCostFunction(x0)); ? ? ? ? ? ? ? ? ? ? if (NormalizeDouble(CustomCostFunction(x0),8) == 0) { Print("Local minimum found =",x0); ?break; ?} ? ? ? ? ? ? ? ? ? ? ? ? x0 = x1; ? ? ? ?} ?

以上的代碼模塊能夠?yàn)槲覀儙砦覀兿胍慕Y(jié)果,但它在 CGradientDescent 類中并不孤單。 函數(shù) CustomCostFunction 是保持和計算我們的微分方程的地方,它是

double CGradientDescent::CustomCostFunction(double x) { ? return(2 * ( x + 5 )); }


目的是什么?

有人也許會自問,當(dāng)您本可利用赫茲股票量化軟件之前在本系列文章中討論的以函數(shù)庫,來創(chuàng)建默認(rèn)線性模型時,所有這些計算的目的是什么。 采用默認(rèn)值創(chuàng)建的模型不一定是最佳模型,因此您需要讓計算機(jī)學(xué)習(xí)誤差最少模型的最佳參數(shù)。

赫茲股票量化軟件這數(shù)篇文章距離構(gòu)建人工神經(jīng)網(wǎng)絡(luò)更近了,為了讓每個人都能夠理解神經(jīng)網(wǎng)絡(luò)如何在反向傳播和其它技術(shù)過程中學(xué)習(xí)(自學(xué)形態(tài)),而梯度下降是最流行的算法,能讓這一切成為可能。 如果對它沒有堅(jiān)實(shí)的理解,您可能永遠(yuǎn)無法理解這個過程,因?yàn)槭虑榧磳⒆兊脴O其復(fù)雜。


回歸模型的梯度下降

使用工資數(shù)據(jù)集,我們來構(gòu)建利用梯度下降得到的最佳模型。


股票量化軟件:數(shù)據(jù)科學(xué)與機(jī)器學(xué)習(xí)6--梯度下降的評論 (共 條)

分享到微博請遵守國家法律
龙口市| 阿拉尔市| 河曲县| 定兴县| 松溪县| 遵义市| 贺州市| 武威市| 宕昌县| 洛南县| 泾川县| 昌平区| 奇台县| 白朗县| 石阡县| 上思县| 泸溪县| 尉氏县| 沭阳县| 梨树县| 高碑店市| 乌苏市| 乐平市| 阿拉善左旗| 扶绥县| 鱼台县| 茶陵县| 建阳市| 巴中市| 砀山县| 大埔区| 松原市| 和硕县| 资兴市| 柳林县| 盐山县| 静安区| 美姑县| 孝义市| 永年县| 桓台县|