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

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

期貨量化交易軟件:運(yùn)用 Kohonen 映射在市場中尋找出路

2023-09-05 16:31 作者:bili_45793681098  | 我要投稿

概述

Kohonen 映射、或自組織映射(SOM)、或自組織特征映射(SOFM)。 是一種無監(jiān)督機(jī)器學(xué)習(xí)技術(shù),用于生成高維數(shù)據(jù)集的低維(通常是二維)表示,同時(shí)保留數(shù)據(jù)的拓?fù)浣Y(jié)構(gòu)。 例如,具有 n 個(gè)觀測值中測量的 p 個(gè)變量的數(shù)據(jù)集,可以表示為具有相似變量值的觀測值聚類。 然后,可以將這些聚類可視化為“二維映射”,如此令近端聚類中的觀測值比遠(yuǎn)端聚類中的觀測值具有更相似的值,這可令高維數(shù)據(jù)更容易可視化和分析。






Kohonen 映射是由芬蘭數(shù)學(xué)家 Teuvo Kohonen 于 1980 年代開發(fā)的。

概覽

Kohonen 映射由連接到其相鄰神經(jīng)元的神經(jīng)元網(wǎng)格組成,在訓(xùn)練期間,輸入數(shù)據(jù)被呈現(xiàn)給網(wǎng)絡(luò),且每個(gè)神經(jīng)元都要計(jì)算其與輸入數(shù)據(jù)的相似度。 具有最高相度的神經(jīng)元稱為獲勝者,其權(quán)重被調(diào)整,以便更好地匹配輸入數(shù)據(jù)。



隨著時(shí)間的推移,相鄰的神經(jīng)元也會調(diào)整它們的權(quán)重,令其與獲勝神經(jīng)元相似度更高,從而產(chǎn)生圖中神經(jīng)元的拓?fù)漤樞颉?這種自組織過程允許 Kohonen 映射表示低維空間中輸入數(shù)據(jù)之間的復(fù)雜關(guān)系。 令其可用于數(shù)據(jù)可視化和聚類分析。


學(xué)習(xí)算法

該算法在自組織映射中的目標(biāo)是令網(wǎng)絡(luò)的不同部分對某些輸入形態(tài)做出類似的響應(yīng)。 這部分的激發(fā)模擬人腦的某些部分如何處理視覺,聽覺和其它信息。

赫茲量化看看這個(gè)算法在數(shù)學(xué)術(shù)語和 赫茲量化代碼方面是如何工作的。


算法中涉及的步驟

嘗試對此算法進(jìn)行編碼時(shí),需要考慮四個(gè)主要步驟:

步驟 01: 初始化權(quán)重

。 可以假設(shè)隨機(jī)值。 其它參數(shù)(如學(xué)習(xí)率和聚類數(shù)量)也在此階段初始化。

CKohonenMaps::CKohonenMaps(matrix &matrix_, bool save_clusters=true, uint clusters=2, double alpha=0.01, uint epochs=100) { ? Matrix = matrix_; ? ? n = (uint)matrix_.Cols(); ? rows = matrix_.Rows(); ? m = clusters; ? ? cluster_tensor = new CTensors(m); ? ? w_matrix =matrix_utils.Random(0.0, 1.0, n, m, RANDOM_STATE); }

如往常一樣,參數(shù)在 Kohonen 映射的類構(gòu)造函數(shù)中初始化。

Kohonen 映射是一種數(shù)據(jù)挖掘技術(shù)。 在完成全部所言之后,赫茲量化需要獲得挖掘的數(shù)據(jù),這就是為什么您看到布爾參數(shù) save_clusters=true,這將令我們獲得 Kohonen 映射為我們獲得的聚集。

步驟 02: 計(jì)算每個(gè)輸入與其各自權(quán)重之間的歐幾里得距離

其中: ?

= 輸入向量

= 權(quán)重向量

double CKohonenMaps:: Euclidean_distance(const vector &v1, const vector &v2) ?{ ? double dist = 0; ? if(v1.Size() != v2.Size()) ? ? ?Print(__FUNCTION__, " v1 and v2 not matching in size"); ? else ? ? { ? ? ?double c = 0; ? ? ?for(ulong i=0; i<v1.Size(); i++) ? ? ? ? c += MathPow(v1[i] - v2[i], 2); ? ? ?dist = MathSqrt(c); ? ? } ? return(dist); ?}

為了應(yīng)用這個(gè)公式,并澄清一切,赫茲量化需要一個(gè)簡單的數(shù)據(jù)集來幫助我們編碼和測試。

? matrix Matrix = { ? ? ? ? ? ? ? ? ? ? {1.2, 2.3}, ? ? ? ? ? ? ? ? ? ? {0.7, 1.8}, ? ? ? ? ? ? ? ? ? ? {3.6, 4.8}, ? ? ? ? ? ? ? ? ? ? {2.8, 3.9}, ? ? ? ? ? ? ? ? ? ? {5.2, 6.7}, ? ? ? ? ? ? ? ? ? ? {4.8, 5.6} ? ? ? ? ? ? ? ? ? }; ? ? maps = new CKohonenMaps(Matrix); //Giving our kohonen maps class data

當(dāng)調(diào)用構(gòu)造函數(shù),并生成權(quán)重時(shí),下面是輸出。

CS ? ? ?0 ? ? ? 15:52:27.572 ? ?Self Organizing map (EURUSD,H1) w Matrix CS ? ? ?0 ? ? ? 15:52:27.572 ? ?Self Organizing map (EURUSD,H1) [[0.005340739158299509,0.01220740379039888] CS ? ? ?0 ? ? ? 15:52:27.572 ? ?Self Organizing map (EURUSD,H1) ?[0.5453352458265939,0.9172643208105716]] CS ? ? ?0 ? ? ? 15:52:27.572 ? ?Self Organizing map (EURUSD,H1) Matrix CS ? ? ?0 ? ? ? 15:52:27.572 ? ?Self Organizing map (EURUSD,H1) [[1.2,2.3] CS ? ? ?0 ? ? ? 15:52:27.572 ? ?Self Organizing map (EURUSD,H1) ?[0.7,1.8] CS ? ? ?0 ? ? ? 15:52:27.572 ? ?Self Organizing map (EURUSD,H1) ?[3.6,4.8] CS ? ? ?0 ? ? ? 15:52:27.572 ? ?Self Organizing map (EURUSD,H1) ?[2.8,3.9] CS ? ? ?0 ? ? ? 15:52:27.572 ? ?Self Organizing map (EURUSD,H1) ?[5.2,6.7] CS ? ? ?0 ? ? ? 15:52:27.572 ? ?Self Organizing map (EURUSD,H1) ?[4.8,5.6]]


您也許已經(jīng)注意到,赫茲量化的神經(jīng)網(wǎng)絡(luò)架構(gòu)是一個(gè) [2 輸入和 2 輸出],這就是為什么我們有一個(gè) 2x2 的權(quán)重矩陣。 該矩陣是在考慮 [2 個(gè)標(biāo)記為 n 的輸入矩陣列,和 2 個(gè)選擇標(biāo)記為 m 的聚集]的情況下生成的。 從下面的代碼行中,我們在第一部分就看到了。

? w_matrix =matrix_utils.Random(0.0, 1.0, n, m, RANDOM_STATE);

恰好澄清一下,以下是我們的 Kohonen 映射神經(jīng)網(wǎng)絡(luò)架構(gòu)的樣子;



步驟 03: 找到獲勝單位索引 i,如此 D(j) 最小。 簡言之,找到單元聚集,這會把我?guī)У搅薻ohonen 映射競爭學(xué)習(xí)的一個(gè)重要主題。


競爭性學(xué)習(xí)。

自組織映射是一種人工神經(jīng)網(wǎng)絡(luò),與其它類型的人工神經(jīng)網(wǎng)絡(luò)不同,它用糾錯(cuò)學(xué)習(xí)(例如梯度下降的反向傳播)進(jìn)行訓(xùn)練,Kohonen 映射采用競爭性學(xué)習(xí)進(jìn)行訓(xùn)練。

在競爭性學(xué)習(xí)中,Kohonen 映射中的神經(jīng)元相互競爭,成為與輸入數(shù)據(jù)最相似的神經(jīng)元,從而成為“贏家”。

在訓(xùn)練階段,每個(gè)輸入數(shù)據(jù)點(diǎn)都呈現(xiàn)給 Kohonen 映射,并計(jì)算輸入數(shù)據(jù)和每個(gè)神經(jīng)元的權(quán)重向量之間的相似度。 權(quán)重向量與輸入數(shù)據(jù)最相似的神經(jīng)元稱為贏家或“最佳匹配單元”(BMU)。

BMU 是根據(jù)輸入數(shù)據(jù)和神經(jīng)元權(quán)重矢量之間的最小歐幾里得距離進(jìn)行選擇的。 然后,獲勝的神經(jīng)元更新其權(quán)重向量,令其與輸入數(shù)據(jù)相似度更高。 用于更新權(quán)重的公式稱為 Kohonen 學(xué)習(xí)規(guī)則,它移動獲勝神經(jīng)元的權(quán)重向量,及與輸入數(shù)據(jù)相鄰的神經(jīng)元。

為了編寫步驟 03 的代碼。 需要這幾行代碼。

? vector D(m); //Euclidean distance btn clusters ?| Remember m is the number of clusters selected ? for (ulong i=0; i<rows; i++) ? ? ? { ? ? ? ? for (ulong j=0; j<m; j++) ? ? ? ? ? { ? ? ? ? ? ? D[j] = Euclidean_distance(Matrix.Row(i),w_matrix.Col(j)); ? ? ? ? ? } ? ? ? ? ? ? ? ? #ifdef DEBUG_MODE ? ? ? ? ? ? ?Print("Euc distance ",D," Winning cluster ",D.ArgMin()); ? ? ? ? #endif

永遠(yuǎn)記住,所有產(chǎn)生歐幾里得距離較小的神經(jīng)元的類是為獲勝的聚集。

通過競爭性學(xué)習(xí),Kohonen 映射學(xué)習(xí)在低維空間中創(chuàng)建輸入數(shù)據(jù)的拓?fù)浔硎?,同時(shí)保留輸入數(shù)據(jù)之間的關(guān)系。

步驟 04: 更新權(quán)重。

可以使用以下公式更新權(quán)重。


添加圖片注釋,不超過 140 字(可選)

其中:

添加圖片注釋,不超過 140 字(可選)

= 新權(quán)重向量

添加圖片注釋,不超過 140 字(可選)

= 舊權(quán)重向量

添加圖片注釋,不超過 140 字(可選)

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

添加圖片注釋,不超過 140 字(可選)

= 輸入向量

下面是此公式的代碼:

//--- weights update ? ? ulong min = D.ArgMin(); //winning cluster ? ? ? vector w_new = ?w_matrix.Col(min) + (alpha * (Matrix.Row(i) - w_matrix.Col(min))); ? ? w_matrix.Col(w_new, min);


不同于其它類型的人工神經(jīng)網(wǎng)絡(luò),其中特定層的所有權(quán)重都參與其中,Kohonen 映射會注意特定聚集的權(quán)重,并僅用它們來參與查找該聚集。


期貨量化交易軟件:運(yùn)用 Kohonen 映射在市場中尋找出路的評論 (共 條)

分享到微博請遵守國家法律
南汇区| 勃利县| 南丰县| 易门县| 宁武县| 益阳市| 轮台县| 洪湖市| 上饶县| 鄂温| 眉山市| 榆社县| 精河县| 木兰县| 北宁市| 略阳县| 拉孜县| 定远县| 新乐市| 织金县| 塘沽区| 阜平县| 景德镇市| 双峰县| 正镶白旗| 大足县| 大连市| 凉城县| 来安县| 丁青县| 桓台县| 义马市| 嘉黎县| 龙陵县| 巴彦淖尔市| 汾西县| 台安县| 宕昌县| 革吉县| 张家川| 四子王旗|