欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種基于并行自動(dòng)編碼機(jī)的特征學(xué)習(xí)方法及系統(tǒng)的制作方法

文檔序號(hào):10471555閱讀:191來(lái)源:國(guó)知局
一種基于并行自動(dòng)編碼機(jī)的特征學(xué)習(xí)方法及系統(tǒng)的制作方法
【專(zhuān)利摘要】本發(fā)明提供一種基于并行自動(dòng)編碼機(jī)的特征學(xué)習(xí)方法,包括:1)管理機(jī)執(zhí)行Map操作,為各個(gè)工作機(jī)規(guī)劃任務(wù)并將任務(wù)分發(fā)給每個(gè)工作機(jī);其中,各個(gè)工作機(jī)的任務(wù)一致,均是基于所輸入的數(shù)據(jù)對(duì)自動(dòng)編碼機(jī)的權(quán)值矩陣進(jìn)行訓(xùn)練;所述權(quán)值矩陣包含了所述自動(dòng)編碼機(jī)的所有權(quán)值;2)每個(gè)工作機(jī)分別讀取該工作機(jī)對(duì)應(yīng)的部分?jǐn)?shù)據(jù)集;3)各個(gè)工作機(jī)并行地執(zhí)行管理機(jī)所分發(fā)的任務(wù),對(duì)自動(dòng)編碼機(jī)的權(quán)值矩陣進(jìn)行訓(xùn)練,然后每個(gè)工作機(jī)將它所訓(xùn)練的權(quán)值矩陣反饋給管理機(jī);4)管理機(jī)執(zhí)行Reduce操作,對(duì)各個(gè)工作機(jī)反饋的權(quán)值矩陣進(jìn)行算數(shù)平均。本發(fā)明能夠更加高效地實(shí)現(xiàn)特征學(xué)習(xí);能夠?qū)⒉⑿凶詣?dòng)編碼機(jī)的數(shù)據(jù)處理的時(shí)間復(fù)雜度由二次復(fù)雜度降為線(xiàn)性復(fù)雜度。
【專(zhuān)利說(shuō)明】
-種基于并行自動(dòng)編碼機(jī)的特征學(xué)習(xí)方法及系統(tǒng)
技術(shù)領(lǐng)域
[0001] 本發(fā)明設(shè)及數(shù)據(jù)挖掘技術(shù)領(lǐng)域,具體地說(shuō),本發(fā)明設(shè)及一種基于并行自動(dòng)編碼機(jī) 的特征學(xué)習(xí)方法及系統(tǒng),它可W應(yīng)用于金融、通信、圖像處理、Web數(shù)據(jù)分析、大數(shù)據(jù)分析等 多個(gè)行業(yè)。
【背景技術(shù)】
[0002] 隨著社會(huì)發(fā)展的信息化和網(wǎng)絡(luò)化,信息技術(shù)已經(jīng)越來(lái)越深的影響到社會(huì)生活的各 個(gè)方面,計(jì)算機(jī)的發(fā)展極大地提高了社會(huì)生產(chǎn)效率。人們?cè)絹?lái)越多的依靠計(jì)算機(jī)和互聯(lián)網(wǎng) 來(lái)提高生活水平、工作效率,不斷的改造社會(huì)、改進(jìn)生活質(zhì)量。然而隨著計(jì)算機(jī)逐漸應(yīng)用于 各個(gè)方面,不可避免的產(chǎn)生了大量的信息和數(shù)據(jù)。并且運(yùn)些信息和數(shù)據(jù)并不僅僅是數(shù)據(jù),它 其中隱藏的信息越來(lái)越被人們所重視。
[0003] 人們?cè)谌粘I詈凸ぷ髦袩o(wú)時(shí)無(wú)刻不在獲取信息,分析信息,并W此作為決策的 依據(jù)。然而隨著互聯(lián)網(wǎng)的不斷發(fā)展,信息量不斷增大,信息的復(fù)雜度也不斷提升。研究如何 使計(jì)算機(jī)能夠理解并自主處理獲得的數(shù)據(jù)和信息,進(jìn)而幫助甚至代替人們做出決策,成為 人們急切需求。數(shù)據(jù)挖掘是從大量的數(shù)據(jù)中提取隱含的潛在有用信息的技術(shù)。而機(jī)器學(xué)習(xí) 是從大量有用信息中進(jìn)行學(xué)習(xí)并做出決策的技術(shù)。
[0004] 特征學(xué)習(xí)(fea化re learning)是機(jī)器學(xué)習(xí)領(lǐng)域中的一個(gè)重要研究問(wèn)題。特征學(xué)習(xí) 又稱(chēng)作表示學(xué)習(xí) (learning r邱resentation),它的目標(biāo)是自動(dòng)學(xué)習(xí)一個(gè)從原始輸入數(shù)據(jù) 到新的特征表示的變換,使得新的特征表示可W有效應(yīng)用在各種機(jī)器學(xué)習(xí)任務(wù)中,從而把 人從繁瑣的特征工程中解放出來(lái)。特征學(xué)習(xí)通常能夠提升機(jī)器學(xué)習(xí)算法的性能。和機(jī)器學(xué) 習(xí)中的分類(lèi)方式類(lèi)似,根據(jù)訓(xùn)練數(shù)據(jù)的區(qū)別,可W把特征學(xué)習(xí)算法分為兩類(lèi):監(jiān)督特征學(xué)習(xí) 和無(wú)監(jiān)督特征學(xué)習(xí)。在監(jiān)督特征學(xué)習(xí)中,通常需要利用有標(biāo)簽的數(shù)據(jù)。監(jiān)督特征學(xué)習(xí)包括: 神經(jīng)網(wǎng)絡(luò),多層感知機(jī)和有監(jiān)督字典學(xué)習(xí)等。無(wú)監(jiān)督特征學(xué)習(xí) (unsupervised feature learning):是指從未標(biāo)注數(shù)據(jù)中學(xué)習(xí)數(shù)據(jù)的新的特征表示。無(wú)監(jiān)督表示學(xué)習(xí)算法通常也是 降維算法,用來(lái)從高維輸入數(shù)據(jù)中發(fā)現(xiàn)有意義的低維特征表示。目前,無(wú)監(jiān)督特征學(xué)習(xí)算法 包括字典學(xué)習(xí)算法、主成分分析算法、獨(dú)立成分分析算法、自動(dòng)編碼機(jī)算法、矩陣分解算法 W及眾多形式的聚類(lèi)問(wèn)題算法等。
[0005] 其中,自動(dòng)編碼機(jī)(Autoencoder)算法是一種已經(jīng)得到廣泛應(yīng)用的無(wú)監(jiān)督表示學(xué) 習(xí)方案。它包含了編碼部分和解碼部分,是深度學(xué)習(xí)結(jié)構(gòu)的一個(gè)典型例子。Hinton和 Salahutdinov提出的編碼機(jī)使用原始數(shù)據(jù)作為輸入,產(chǎn)生的特征作為輸出;而解碼機(jī)則用 編碼機(jī)產(chǎn)生的特征作為輸入,重構(gòu)出原始數(shù)據(jù)作為輸出。編碼機(jī)和解碼機(jī)均由堆疊的受限 玻爾茲曼機(jī)(RBM)構(gòu)成。RBM常被用來(lái)作為構(gòu)建深度結(jié)構(gòu)的基礎(chǔ)部分,一個(gè)RBM可W被表示成 一個(gè)無(wú)向二分圖,包括了一組二值化的隱含變量,一組變量和變量間聯(lián)系的邊。RBM的每一 條邊對(duì)應(yīng)著一個(gè)權(quán)值。運(yùn)些權(quán)值共同定義了能夠表示可視結(jié)點(diǎn)和隱含結(jié)點(diǎn)聯(lián)合分布的能量 函數(shù)?;赗BM技術(shù),層與層之間的變量變得相對(duì)獨(dú)立,運(yùn)樣極大的方便了相關(guān)計(jì)算。一個(gè) RBM可W被視為一個(gè)獨(dú)立的網(wǎng)絡(luò)層,具體來(lái)說(shuō),可視層變量對(duì)應(yīng)著當(dāng)前層的輸入數(shù)據(jù),而隱 含層變量則對(duì)應(yīng)著特征輸出。RBM的權(quán)值能夠通過(guò)使用對(duì)比散度來(lái)最大化可見(jiàn)變量的概率 來(lái)優(yōu)化。
[0006] 為了便于理解,下面介紹一種典型的基于并行自動(dòng)編碼機(jī)的特征學(xué)習(xí)方案。圖1示 出了一種典型的自動(dòng)編碼機(jī)的邏輯結(jié)構(gòu)示意圖。如圖1所示,該典型的自動(dòng)編碼機(jī)包括編碼 機(jī)和解碼機(jī),編碼機(jī)可W由多個(gè)堆疊的(級(jí)聯(lián)的)RBM模型組成,編碼機(jī)的輸入通常是一個(gè)輸 入向量,記為X,編碼機(jī)的輸出為隱藏層(圖中Wcode表示)數(shù)據(jù),隱藏層數(shù)據(jù)通常為一個(gè)向 量。解碼機(jī)也可W由多個(gè)堆疊的(級(jí)聯(lián)的)RBM模型組成。隱藏層輸出的向量作為該解碼機(jī)的 輸入,解碼機(jī)輸出一個(gè)輸出向量,記為交。圖1中,整個(gè)神經(jīng)網(wǎng)絡(luò)由一個(gè)輸入層、一個(gè)輸出層和 Ξ個(gè)隱藏層W及各層之間的神經(jīng)構(gòu)成。但需要說(shuō)明的是,本發(fā)明所用到的神經(jīng)網(wǎng)絡(luò)并不限 于此,基本神經(jīng)網(wǎng)絡(luò)只需要一個(gè)輸入層、一個(gè)輸出層和一個(gè)隱藏層即可,該基本神經(jīng)網(wǎng)絡(luò)由 兩個(gè)單層神經(jīng)網(wǎng)絡(luò)構(gòu)成,輸入層、隱藏層W及它們之間的神經(jīng)構(gòu)成第一個(gè)單層神經(jīng)網(wǎng)絡(luò),隱 藏層、輸出層W及它們之間的神經(jīng)構(gòu)成第二個(gè)單層神經(jīng)網(wǎng)絡(luò)。
[0007] 并行自動(dòng)編碼機(jī)需要基于大量的已知數(shù)據(jù)對(duì)模型進(jìn)行訓(xùn)練,W得到優(yōu)化的權(quán)值向 量,進(jìn)而獲得更加準(zhǔn)確的特征學(xué)習(xí)模型。目前,并行自動(dòng)編碼機(jī)通常基于A(yíng)pache化doop平 臺(tái)及其獨(dú)特的MapReduce思想實(shí)現(xiàn)。MapReduce操作包括Map (映射)操作和Reduce (化簡(jiǎn))操 作兩個(gè)部分,對(duì)應(yīng)地,用于實(shí)現(xiàn)并行自動(dòng)編碼機(jī)的Apache化doop平臺(tái)包括管理機(jī)(主機(jī))和 多個(gè)可并行工作的工作機(jī)。管理機(jī)主要用于收集數(shù)據(jù)并為工作機(jī)分發(fā)和調(diào)度任務(wù)。在 MapReduce機(jī)制中,管理機(jī)首先進(jìn)行Map操作,為各個(gè)工作機(jī)規(guī)劃任務(wù),然后將任務(wù)分發(fā)到各 個(gè)工作機(jī)。然后,各個(gè)工作機(jī)則各自執(zhí)行管理機(jī)所分配的任務(wù)。在典型的方案中,整個(gè)自動(dòng) 編碼機(jī)的模型參數(shù)被分解為多個(gè)權(quán)值組合,每個(gè)工作機(jī)分別負(fù)責(zé)計(jì)算和更新自動(dòng)編碼機(jī)的 一部分權(quán)值(即一個(gè)權(quán)值組合)。多個(gè)工作機(jī)并行地執(zhí)行迭代操作。在單次迭代操作中,每個(gè) 工作機(jī)首先讀取一條輸入數(shù)據(jù)(通常是輸入向量X),然后執(zhí)行正向傳播,經(jīng)過(guò)編碼和解碼得 到輸出數(shù)據(jù)(通常是輸出向量愛(ài))。然后執(zhí)行反向傳播,根據(jù)輸入向量X和輸出向量免計(jì)算出 誤差并基于該誤差對(duì)該工作機(jī)所對(duì)應(yīng)的權(quán)值組合進(jìn)行更新,最后將誤差和更新后的權(quán)值組 合反饋至管理機(jī)。管理機(jī)收到各個(gè)工作機(jī)所反饋的信息后,執(zhí)行Reduce操作,匯總各個(gè)工作 機(jī)的誤差和權(quán)值更新,再將上一次迭代運(yùn)算所得的完整誤差信息和權(quán)值更新信息(指所有 工作機(jī)所反饋的信息)傳遞給各個(gè)工作機(jī),W便進(jìn)行下一次的迭代。運(yùn)樣不斷迭代,直至滿(mǎn) 足預(yù)設(shè)的停止條件。經(jīng)過(guò)上述訓(xùn)練過(guò)程后,各個(gè)工作機(jī)對(duì)應(yīng)權(quán)值組成的權(quán)值向量即可視為 特征學(xué)習(xí)模型的模型參數(shù)向量,從而獲得基于自動(dòng)編碼機(jī)的特征學(xué)習(xí)模型。
[000引上述基于A(yíng)pache化doop平臺(tái)的并行自動(dòng)編碼機(jī)方案具有良好的可擴(kuò)展性、容錯(cuò) 性和兼容性。然而,當(dāng)數(shù)據(jù)規(guī)模增大時(shí),運(yùn)種并行自動(dòng)編碼機(jī)方案所需的計(jì)算能力將非線(xiàn)性 地增長(zhǎng),因此,運(yùn)種方案面臨海量數(shù)據(jù)計(jì)算任務(wù)時(shí),在數(shù)據(jù)處理效率和時(shí)間上往往難W滿(mǎn)足 要求。當(dāng)前迫切需要一種更加高效的基于并行自動(dòng)編碼機(jī)的特征學(xué)習(xí)解決方案。

【發(fā)明內(nèi)容】

[0009] 本發(fā)明的任務(wù)是克服現(xiàn)有技術(shù)的不足,提供更加高效的基于并行自動(dòng)編碼機(jī)的特 征學(xué)習(xí)解決方案。
[0010] 根據(jù)本發(fā)明的一個(gè)方面,提供了一種基于并行自動(dòng)編碼機(jī)的特征學(xué)習(xí)方法,該特 征學(xué)習(xí)方法設(shè)及管理機(jī)、多個(gè)工作機(jī)W及訓(xùn)練數(shù)據(jù)集,所述訓(xùn)練數(shù)據(jù)集被劃分為多個(gè)部分 數(shù)據(jù)集,每個(gè)工作機(jī)均與一個(gè)或多個(gè)所述部分?jǐn)?shù)據(jù)集對(duì)應(yīng);所述特征學(xué)習(xí)方法包括下列步 驟:
[0011] 1)管理機(jī)執(zhí)行Map操作,為各個(gè)工作機(jī)規(guī)劃任務(wù)并將任務(wù)分發(fā)給每個(gè)工作機(jī);其 中,各個(gè)工作機(jī)的任務(wù)一致,均是基于所輸入的數(shù)據(jù)對(duì)自動(dòng)編碼機(jī)的權(quán)值矩陣進(jìn)行訓(xùn)練;所 述權(quán)值矩陣包含了所述自動(dòng)編碼機(jī)的所有權(quán)值;
[0012] 2)每個(gè)工作機(jī)分別讀取該工作機(jī)對(duì)應(yīng)的部分?jǐn)?shù)據(jù)集;
[0013] 3)各個(gè)工作機(jī)并行地執(zhí)行管理機(jī)所分發(fā)的任務(wù),對(duì)自動(dòng)編碼機(jī)的權(quán)值矩陣進(jìn)行訓(xùn) 練,然后每個(gè)工作機(jī)將它所訓(xùn)練的權(quán)值矩陣反饋給管理機(jī);
[0014] 4)管理機(jī)執(zhí)行Reduce操作,對(duì)各個(gè)工作機(jī)反饋的權(quán)值矩陣進(jìn)行算數(shù)平均。
[0015] 其中,所述訓(xùn)練數(shù)據(jù)集被劃分為多個(gè)子訓(xùn)練數(shù)據(jù)集,每個(gè)子訓(xùn)練數(shù)據(jù)集被劃分為 多個(gè)部分?jǐn)?shù)據(jù)集,每個(gè)工作機(jī)均與一個(gè)子訓(xùn)練數(shù)據(jù)集的一個(gè)所述部分?jǐn)?shù)據(jù)集對(duì)應(yīng);
[0016] 所述步驟2)中,每個(gè)工作機(jī)所讀取的是當(dāng)前子訓(xùn)練數(shù)據(jù)集中它所對(duì)應(yīng)的部分?jǐn)?shù)據(jù) 集;
[0017] 所述步驟4)還包括:所述管理機(jī)執(zhí)行Reduce操作對(duì)各個(gè)工作機(jī)反饋的權(quán)值矩陣進(jìn) 行算數(shù)平均后,得到基于當(dāng)前子訓(xùn)練數(shù)據(jù)集進(jìn)行更新后的權(quán)值矩陣,所述管理機(jī)將更新后 的權(quán)值矩陣分配給各個(gè)工作機(jī)作為下一輪訓(xùn)練的初值權(quán)值矩陣,然后重新執(zhí)行步驟1)~ 4),直至所有子訓(xùn)練數(shù)據(jù)集均處理完畢。
[0018] 其中,所述步驟1)還包括:管理機(jī)將相關(guān)初始化參數(shù)發(fā)至各工作機(jī)節(jié)點(diǎn),所述相關(guān) 初始化參數(shù)包括:數(shù)據(jù)規(guī)模、隱藏層配置、輸入數(shù)據(jù)路徑、正則化參數(shù)和隨機(jī)數(shù)種子中的一 項(xiàng)或多項(xiàng)。
[0019] 其中,所述步驟3)中,每個(gè)工作機(jī)執(zhí)行管理機(jī)所分發(fā)的任務(wù)的過(guò)程如下:讀取當(dāng)前 部分?jǐn)?shù)據(jù)集中的一條數(shù)據(jù)作為輸入數(shù)據(jù),計(jì)算出隱藏層和輸出層的值,然后利用得到的輸 出層的值與原輸入數(shù)據(jù)之間的誤差更新所述權(quán)值矩陣,工作機(jī)讀取當(dāng)前部分?jǐn)?shù)據(jù)集中的下 一條數(shù)據(jù),然后重復(fù)上述過(guò)程,直至當(dāng)前部分?jǐn)?shù)據(jù)集中的每一條數(shù)據(jù)均至少輸入過(guò)一遍。
[0020] 其中,所述步驟3)中,基于隨機(jī)梯度下降算法,根據(jù)所述的輸出層的值與原輸入數(shù) 據(jù)之間的誤差更新所述權(quán)值矩陣。
[0021] 其中,所述自動(dòng)編碼機(jī)由第一單層神經(jīng)網(wǎng)絡(luò)和第二單層神經(jīng)網(wǎng)絡(luò)組成,所述權(quán)值 矩陣包括對(duì)應(yīng)于第一單層神經(jīng)網(wǎng)絡(luò)的第一權(quán)值矩陣和對(duì)應(yīng)于第二單層神經(jīng)網(wǎng)絡(luò)的第二權(quán) 值矩陣;
[0022] 所述步驟3)中,每個(gè)工作機(jī)執(zhí)行管理機(jī)所分發(fā)的任務(wù)的過(guò)程如下:
[0023] 31)計(jì)算隱藏層向量h = sigmoid(Wix+Bi);
[0024] 其中,sigmoid為激活函數(shù),Wi為第一權(quán)值矩陣,Bi為第一偏置向量,Μ為輸入向量的 維度,Κ為隱藏層節(jié)點(diǎn)數(shù)目;
[0025] 3別計(jì)算解碼后的輸出向量《=別巧moWO'Fs/i +巧2).*
[0026] 其中,W2為第二權(quán)值矩陣,B勸第二偏置向量,表示點(diǎn)乘,I為指示函數(shù)向量,向 量I中的任意一個(gè)元素^滿(mǎn)足:
[0027]

[0030] 其中,downstream表示任一單層神經(jīng)網(wǎng)絡(luò)的輸出;
[0031] 34)基于輸出層誤差向量Eout和隱藏層誤差向量Eh對(duì)第一權(quán)值矩陣Wi和第二權(quán)值矩 陣W2進(jìn)行更新。
[0032] 根據(jù)本發(fā)明的另一方面,提供了一種基于并行自動(dòng)編碼機(jī)的特征學(xué)習(xí)系統(tǒng),該系 統(tǒng)設(shè)及訓(xùn)練數(shù)據(jù)集,所述訓(xùn)練數(shù)據(jù)集被劃分為多個(gè)部分?jǐn)?shù)據(jù)集,每個(gè)工作機(jī)均與一個(gè)或多 個(gè)所述部分?jǐn)?shù)據(jù)集對(duì)應(yīng);所述特征學(xué)習(xí)系統(tǒng)包括互聯(lián)的基于Spark平臺(tái)的管理機(jī)和基于 Spark平臺(tái)的多個(gè)工作機(jī);
[0033] 其中,所述管理機(jī)用于執(zhí)行Map操作,為各個(gè)工作機(jī)規(guī)劃任務(wù)并將任務(wù)分發(fā)給每個(gè) 工作機(jī);W及執(zhí)行Reduce操作,對(duì)各個(gè)工作機(jī)反饋的權(quán)值矩陣進(jìn)行算數(shù)平均;其中,各個(gè)工 作機(jī)的任務(wù)一致,均是基于所輸入的數(shù)據(jù)對(duì)自動(dòng)編碼機(jī)的權(quán)值矩陣進(jìn)行訓(xùn)練;所述權(quán)值矩 陣包含了所述自動(dòng)編碼機(jī)的所有權(quán)值;
[0034] 所述多個(gè)工作機(jī)用于分別讀取該工作機(jī)對(duì)應(yīng)的部分?jǐn)?shù)據(jù)集;W及并行地執(zhí)行管理 機(jī)所分發(fā)的任務(wù),對(duì)自動(dòng)編碼機(jī)的權(quán)值矩陣進(jìn)行訓(xùn)練,然后每個(gè)工作機(jī)將它所訓(xùn)練的權(quán)值 矩陣反饋給管理機(jī)。
[0035] 其中,所述訓(xùn)練數(shù)據(jù)集被劃分為多個(gè)子訓(xùn)練數(shù)據(jù)集,每個(gè)子訓(xùn)練數(shù)據(jù)集被劃分為 多個(gè)部分?jǐn)?shù)據(jù)集,每個(gè)工作機(jī)均與一個(gè)子訓(xùn)練數(shù)據(jù)集的一個(gè)所述部分?jǐn)?shù)據(jù)集對(duì)應(yīng);
[0036] 所述工作機(jī)還用于在基于一個(gè)子訓(xùn)練數(shù)據(jù)集進(jìn)行訓(xùn)練時(shí),讀取該子訓(xùn)練數(shù)據(jù)集中 該工作機(jī)所對(duì)應(yīng)的部分?jǐn)?shù)據(jù)集;
[0037] 所述管理機(jī)還用于執(zhí)行Reduce操作對(duì)各個(gè)工作機(jī)反饋的權(quán)值矩陣進(jìn)行算數(shù)平均 后,得到基于當(dāng)前子訓(xùn)練數(shù)據(jù)集進(jìn)行更新后的權(quán)值矩陣,將更新后的權(quán)值矩陣分配給各個(gè) 工作機(jī)作為下一輪訓(xùn)練的初值權(quán)值矩陣。
[0038] 其中,所述管理機(jī)還用于將相關(guān)初始化參數(shù)發(fā)至各工作機(jī)節(jié)點(diǎn),所述相關(guān)初始化 參數(shù)包括:數(shù)據(jù)規(guī)模、隱藏層配置、輸入數(shù)據(jù)路徑、正則化參數(shù)和隨機(jī)數(shù)種子中的一項(xiàng)或多 項(xiàng)。
[0039] 其中,所述工作機(jī)還用于按照下述過(guò)程執(zhí)行管理機(jī)所分發(fā)的任務(wù):讀取當(dāng)前部分 數(shù)據(jù)集中的一條數(shù)據(jù)作為輸入數(shù)據(jù),計(jì)算出隱藏層和輸出層的值,然后利用得到的輸出層 的值與原輸入數(shù)據(jù)之間的誤差更新所述權(quán)值矩陣,工作機(jī)讀取當(dāng)前部分?jǐn)?shù)據(jù)集中的下一條 數(shù)據(jù),然后重復(fù)上述過(guò)程,直至當(dāng)前部分?jǐn)?shù)據(jù)集中的每一條數(shù)據(jù)均至少輸入過(guò)一遍。
[0040] 與現(xiàn)有技術(shù)相比,本發(fā)明具有下列技術(shù)效果:
[0041 ] 1、本發(fā)明能夠充分發(fā)揮分布式集群系統(tǒng)的計(jì)算潛力,更加高效地實(shí)現(xiàn)特征學(xué)習(xí)。
[0042] 2、本發(fā)明能夠?qū)⒉⑿凶詣?dòng)編碼機(jī)的數(shù)據(jù)處理的時(shí)間復(fù)雜度由二次復(fù)雜度降為線(xiàn) 性復(fù)雜度。
[0043] 3、在對(duì)稀疏數(shù)據(jù)進(jìn)行處理時(shí),本發(fā)明能夠通過(guò)屏蔽計(jì)算過(guò)程中的無(wú)效計(jì)算和無(wú)效 存儲(chǔ)開(kāi)銷(xiāo),進(jìn)一步減少時(shí)間和空間的浪費(fèi),從而在保證計(jì)算正確性的情況下,大幅度提高模 型訓(xùn)練速度。
[0044] 4、本發(fā)明的基于并行自動(dòng)編碼機(jī)的特征學(xué)習(xí)模型訓(xùn)練結(jié)果準(zhǔn)確度高。
[0045] 5、本發(fā)明特別適合完成海量數(shù)據(jù)計(jì)算任務(wù)。
【附圖說(shuō)明】
[0046] W下,結(jié)合附圖來(lái)詳細(xì)說(shuō)明本發(fā)明的實(shí)施例,其中:
[0047] 圖1示出了現(xiàn)有技術(shù)中一種典型的自動(dòng)編碼機(jī)的邏輯結(jié)構(gòu)示意圖;
[0048] 圖2示出了圖2示出了本發(fā)明一個(gè)實(shí)施例的用于實(shí)現(xiàn)并行自動(dòng)編碼機(jī)的系統(tǒng)平臺(tái);
[0049] 圖3示出了本發(fā)明一個(gè)實(shí)施例的并行自動(dòng)編碼機(jī)的訓(xùn)練方法的流程圖;
[0050] 圖4示出了本發(fā)明中具有不同數(shù)目工作機(jī)的平臺(tái)上,自動(dòng)編碼機(jī)的模型參數(shù)訓(xùn)練 時(shí)間隨數(shù)據(jù)規(guī)模變化的曲線(xiàn);
[0051 ]圖5示出了現(xiàn)有技術(shù)中一種自動(dòng)編碼機(jī)運(yùn)行時(shí)間隨數(shù)據(jù)規(guī)模變化的曲線(xiàn)。
【具體實(shí)施方式】
[0052] 圖2示出了本發(fā)明一個(gè)實(shí)施例的用于實(shí)現(xiàn)并行自動(dòng)編碼機(jī)的系統(tǒng)平臺(tái),該系統(tǒng)平 臺(tái)包括管理機(jī)(Manager)、多個(gè)工作機(jī)(Worker) W及多個(gè)數(shù)據(jù)分片存儲(chǔ)裝置。其中管理機(jī)可 部署在云端,它與每個(gè)工作機(jī)分別互聯(lián)。每個(gè)工作機(jī)分別與一個(gè)數(shù)據(jù)分片存儲(chǔ)裝置互聯(lián)。其 中,管理機(jī)主要用于收集數(shù)據(jù)并為工作機(jī)分發(fā)和調(diào)度任務(wù)。工作機(jī)負(fù)責(zé)完成具體計(jì)算。多個(gè) 工作機(jī)可W并行地工作。需要說(shuō)明,運(yùn)種系統(tǒng)結(jié)構(gòu)僅是示例性的,在本發(fā)明的其它實(shí)施例 中,也可W采用其它類(lèi)型的系統(tǒng)平臺(tái)構(gòu)架,只要該系統(tǒng)平臺(tái)構(gòu)架包括管理機(jī)和與之互聯(lián)的 多個(gè)工作機(jī)W及相應(yīng)的數(shù)據(jù)存儲(chǔ)系統(tǒng)即可。
[0053] 圖2的實(shí)施例中,所采用的系統(tǒng)平臺(tái)是一種Spark平臺(tái)。Spark是針對(duì)MapReduce在 迭代式機(jī)器學(xué)習(xí)算法和交互式數(shù)據(jù)挖掘等應(yīng)用方面的低效率而提出的新的內(nèi)存計(jì)算框架, Spark平臺(tái)可W部署在化doop集群環(huán)境下,擁有直接訪(fǎng)問(wèn)皿FS文件系統(tǒng)的能力。傳統(tǒng)的 MapReduce技術(shù)(例如Apache Hadoop平臺(tái))中,MapReduce中間過(guò)程和計(jì)算結(jié)果需要讀寫(xiě) HDFS。而Spark技術(shù)不同于此,在執(zhí)行MapReduce操作的過(guò)程中,Spark平臺(tái)將計(jì)算結(jié)果保存 在內(nèi)存中,從而不必頻繁讀寫(xiě)HDFS,大幅減少了 10操作。采用Spark平臺(tái),能夠更好地適應(yīng)本 實(shí)施例的并行自動(dòng)編碼機(jī)的訓(xùn)練方法,進(jìn)而提升算法運(yùn)行效率,使算法運(yùn)算時(shí)間極大地縮 短。
[0054] 下面,進(jìn)一步介紹基于上述系統(tǒng)平臺(tái)的并行自動(dòng)編碼機(jī)的訓(xùn)練方法。圖3示出了本 實(shí)施例的并行自動(dòng)編碼機(jī)的訓(xùn)練方法的流程圖,包括下列步驟:
[0055] 步驟101:管理機(jī)執(zhí)行Map操作,即將相關(guān)初始化參數(shù)發(fā)至各工作機(jī)節(jié)點(diǎn),例如數(shù)據(jù) 規(guī)模,隱藏層配置,輸入數(shù)據(jù)路徑,正則化參數(shù),隨機(jī)數(shù)種子等。
[0056] 步驟102:每個(gè)工作機(jī)讀取其對(duì)應(yīng)的輸入數(shù)據(jù)。不同于現(xiàn)有技術(shù)中將所有輸入數(shù)據(jù) 分別輸入每個(gè)工作機(jī)的做法,本實(shí)施例中,通過(guò)將不同部分的數(shù)據(jù)被劃分至不同的工作機(jī), 分別對(duì)自動(dòng)編碼機(jī)的權(quán)值進(jìn)行訓(xùn)練。另一方面,本實(shí)施例中,每個(gè)工作機(jī)均負(fù)責(zé)訓(xùn)練自動(dòng)編 碼機(jī)的所有權(quán)值,也就是說(shuō),每個(gè)工作機(jī)均可W獨(dú)立地訓(xùn)練完整的自動(dòng)編碼機(jī)模型,只是用 于訓(xùn)練的數(shù)據(jù)不是完整的。由于每個(gè)工作機(jī)的輸入數(shù)據(jù)的數(shù)據(jù)量大大減小,因此本實(shí)施例 中系統(tǒng)能夠通過(guò)多個(gè)工作機(jī)的并行處理來(lái)加速自動(dòng)編碼機(jī)的訓(xùn)練。為便于說(shuō)明,下文中將 每個(gè)工作機(jī)負(fù)責(zé)處理的數(shù)據(jù)的集合稱(chēng)為部分?jǐn)?shù)據(jù)集。
[0057] 盡管每個(gè)工作機(jī)負(fù)責(zé)處理的僅是它所對(duì)應(yīng)的部分?jǐn)?shù)據(jù)集,但其數(shù)據(jù)量仍然十分龐 大。本實(shí)施例中,輸入數(shù)據(jù)w樣本為單位參與工作機(jī)的迭代計(jì)算,即輸入工作機(jī)的每條數(shù)據(jù) 代表一個(gè)樣本。W文本數(shù)據(jù)為例:數(shù)據(jù)格式為"文本編號(hào):?jiǎn)卧~號(hào)出現(xiàn)次數(shù),單詞號(hào)出現(xiàn)次 數(shù),…,單詞號(hào)出現(xiàn)次數(shù)\n",例如"1:1 2,4 1,5 2\n",其中"\n"為換行符。如果把很多文本 放在一起,也可W采用每一行代表一個(gè)點(diǎn)的數(shù)據(jù)格式,其基本數(shù)據(jù)格式為:"文本編號(hào)單詞 號(hào)出現(xiàn)的次數(shù)\n"。按照運(yùn)種基本數(shù)據(jù)格式,前文中的文本數(shù)據(jù)例子"1:1 2,4 1,5 2\n"將 改寫(xiě)為:。1 1 2\n 1 4 l\n 1 5 2\護(hù)。
[0058] 本實(shí)施例中,系統(tǒng)激活函數(shù)采用sigmoid函數(shù),輸入數(shù)據(jù)中的單詞在某文本中出現(xiàn) 次數(shù)將被歸一化到(〇,1)范圍內(nèi)。在文本數(shù)據(jù)中,最常用的對(duì)某個(gè)單詞出現(xiàn)次數(shù)的歸一化做 法是:該單詞出現(xiàn)次數(shù)/部分?jǐn)?shù)據(jù)集中的最大出現(xiàn)次數(shù)。在計(jì)算機(jī)的處理過(guò)程中,每條數(shù)據(jù) 通常W-個(gè)輸入向量來(lái)表示。
[0059] 本實(shí)施例中,利用隨機(jī)數(shù)種子各自初始化自編碼機(jī)權(quán)值,由相同的種子保證了每 個(gè)工作機(jī)上的神經(jīng)網(wǎng)絡(luò)初始狀態(tài)相同。
[0060] 步驟103:各個(gè)工作機(jī)并行地執(zhí)行管理機(jī)所分發(fā)的任務(wù),對(duì)自動(dòng)編碼機(jī)的權(quán)值矩陣 進(jìn)行訓(xùn)練,然后每個(gè)工作機(jī)將它所訓(xùn)練的權(quán)值矩陣反饋給管理機(jī)。本實(shí)施例中,工作機(jī)采用 迭代的方式對(duì)自動(dòng)編碼機(jī)的權(quán)值矩陣進(jìn)行訓(xùn)練,每次迭代處理一條輸入數(shù)據(jù)。假設(shè)部分?jǐn)?shù) 據(jù)集是一段文本數(shù)據(jù)或多段文本數(shù)據(jù)的集合,那么一條輸入數(shù)據(jù)就是上述文本數(shù)據(jù)的一 行。本步驟中,工作在讀取一條輸入數(shù)據(jù)后,執(zhí)行正向傳播,即利用輸入數(shù)據(jù)計(jì)算出隱藏層 和輸出層(指正向傳播的輸出層)的值。計(jì)算完畢后再執(zhí)行反向傳播,即利用得到的輸出數(shù) 據(jù)誤差計(jì)算出神經(jīng)網(wǎng)絡(luò)的參數(shù),完成參數(shù)更新。此時(shí)就完成了自動(dòng)編碼機(jī)的一次迭代,之 后,工作機(jī)讀取下一條輸入數(shù)據(jù),進(jìn)行下一次的迭代,運(yùn)樣不斷重復(fù),直至將輸入數(shù)據(jù)中的 每條數(shù)據(jù)至少計(jì)算一遍。
[0061] 本實(shí)施例中,在每次迭代時(shí),采用隨機(jī)梯度下降算法對(duì)神經(jīng)網(wǎng)絡(luò)的參數(shù)(主要是指 自動(dòng)編碼機(jī)的權(quán)值)進(jìn)行更新。相比于諸如kBFGS等有二次收斂能力的算法,計(jì)算量和空間 消耗都有了明顯的降低,特別適合于自動(dòng)編碼機(jī)。另外本實(shí)施例還具有壓縮特征得到數(shù)據(jù) 高效表示的能力,同時(shí)能夠自動(dòng)剔除不符合模型的特例并補(bǔ)全不完整數(shù)據(jù)。
[0062] 進(jìn)一步地,W兩個(gè)單層神經(jīng)網(wǎng)絡(luò)組成的自動(dòng)編碼機(jī)為例,介紹一個(gè)優(yōu)選實(shí)施例中 完成一次迭代的算法,該算法如下:
[0063] 步驟1031:根據(jù)公式(1)計(jì)算隱藏層向量h。本實(shí)施例中,h為K*1列向量,它是正向 傳播過(guò)程的輸出。
[0064] h = si 卵 oid(Wix + Bi) (1)
[0065] 其中,sigmoid為激活函數(shù),sigmoid(a) = 1/(1+ e-a)。胖功K*M矩陣,它是第一權(quán)值 矩陣。Bi為K*1列向量,它是第一偏置向量。Μ為輸入向量的維度,特別地,文本數(shù)據(jù)中Μ指字 典長(zhǎng)度。Κ為隱藏層節(jié)點(diǎn)數(shù)目。X為輸入向量。
[0066] 步驟1032:根據(jù)公式(2)計(jì)算解碼后的輸出向量克。
[0067] 免二 S7;巧7'打+ £?2).* / ( 2 )
[006引 W2為Μ體矩陣,它是第二權(quán)值矩陣。B2為M* 1列向量,它是第二偏置向量表示點(diǎn) 乘,I為指示函數(shù)向量,它是M*1的列向量,向量I中的任意一個(gè)元素1/滿(mǎn)足:
[0069]
[0070] 步驟1033:根據(jù)公式(3)、(4)計(jì)算誤差向量Eout和EhsEou康示輸出層誤差向量瓜表 示隱藏層誤差向量。
[0073] downstream表示任一單層神經(jīng)網(wǎng)絡(luò)的輸出。
[0074] 步驟1034:根據(jù)公式(5)、(6)計(jì)算權(quán)值矩陣的更新矩陣。其中AWi為
[0075] 第一權(quán)值矩陣Wi的更新矩陣。AW2為第二權(quán)值矩陣W2的更新矩陣。
[0078] 步驟1035:基于步驟1034得出的更新矩陣,根據(jù)公式(7)對(duì)第一權(quán)值矩陣Wi和第二 權(quán)值矩陣W2進(jìn)行更新。
[0079] W=W+〇(xinAW-aW) (7)
[0080] 其中,Φ為預(yù)設(shè)的步長(zhǎng),通常為常數(shù),α為預(yù)設(shè)的正則化參數(shù)。W泛指第一權(quán)值矩陣 Wi或者第二權(quán)值矩陣化,AW泛指第一權(quán)值矩陣的更新矩陣AWi或者第二權(quán)值矩陣的更新矩 陣Δ化。Xin泛指單層神經(jīng)網(wǎng)絡(luò)的輸入數(shù)據(jù),在計(jì)算Wl的更新時(shí),Xin代表輸入向量,在計(jì)算化 的更新時(shí),Xin代表隱臧層向重。
[0081] 步驟1035執(zhí)行完畢后就完成了一次迭代,下一次的迭代將基于更新后的權(quán)值矩陣 執(zhí)行。需說(shuō)明的是,在上述公式(2)中,增加了點(diǎn)乘指示函數(shù)向量I的運(yùn)一部分,其目的是在 反向傳播時(shí)屏蔽無(wú)效計(jì)算和操作。本實(shí)施例中,針對(duì)自動(dòng)編碼機(jī)低效處理稀疏數(shù)據(jù)的缺陷, 創(chuàng)造性的提出屏蔽計(jì)算過(guò)程中的無(wú)效計(jì)算和無(wú)效存儲(chǔ)開(kāi)銷(xiāo)的思路?,F(xiàn)有自動(dòng)編碼機(jī)在處理 稀疏數(shù)據(jù)時(shí),一般將稀疏數(shù)據(jù)轉(zhuǎn)換為非稀疏數(shù)據(jù)進(jìn)行處理,不僅導(dǎo)致時(shí)間和空間的巨大浪 費(fèi),而且由于大量無(wú)效數(shù)據(jù)的填充也極大地影響了系統(tǒng)計(jì)算結(jié)果的正確性。故而,本發(fā)明針 對(duì)此問(wèn)題,從根本實(shí)現(xiàn)上對(duì)算法進(jìn)行改進(jìn),在計(jì)算過(guò)程中,只著眼于有效值W及其對(duì)應(yīng)神經(jīng) 元,反向傳播時(shí)屏蔽無(wú)效計(jì)算和操作。成功地將時(shí)間復(fù)雜度由二次復(fù)雜度降為線(xiàn)性復(fù)雜度, 保證計(jì)算正確性的情況下,大幅度提高了模型訓(xùn)練速度。
[0082] 在完成所對(duì)應(yīng)的部分?jǐn)?shù)據(jù)集的處理后,各個(gè)工作機(jī)分別將自己訓(xùn)練得到的權(quán)值上 傳至管理機(jī)。
[0083] 步驟104:管理機(jī)接收各個(gè)工作機(jī)訓(xùn)練得到的權(quán)值,然后進(jìn)行Reduce操作,即對(duì)所 有工作機(jī)得到的權(quán)值矩陣計(jì)算平均,得到最終的權(quán)值矩陣,從而完成對(duì)并行自動(dòng)編碼機(jī)的 訓(xùn)練。
[0084] 上述實(shí)施例僅包含一次MapReduce操作。需要說(shuō)明的是,在另一個(gè)實(shí)施例中,可將 輸入數(shù)據(jù)劃分成更多數(shù)目的部分?jǐn)?shù)據(jù)集,并將一次MapReduce操作拆分成多次MapReduce進(jìn) 行處理。該實(shí)施例中,每完成一次MapReduce操作,管理機(jī)就將當(dāng)前計(jì)算的權(quán)值發(fā)送至各個(gè) 工作機(jī),各個(gè)工作機(jī)將所接收的權(quán)值作為下一次MapReduce操作時(shí)的初始權(quán)值。該實(shí)施例特 別適合于輸入數(shù)據(jù)數(shù)據(jù)量過(guò)大,或者能夠明顯觀(guān)察到平臺(tái)的性能開(kāi)始下降的應(yīng)用場(chǎng)景。基 于神經(jīng)網(wǎng)絡(luò)初始值與正確性理論(即同樣的神經(jīng)網(wǎng)絡(luò)初始值,對(duì)不同數(shù)據(jù)樣本進(jìn)行擬合,最 終結(jié)果所代表的數(shù)據(jù)分布相同),該實(shí)施例對(duì)分布式系統(tǒng)的每一個(gè)節(jié)點(diǎn)上初始化同樣的神 經(jīng)網(wǎng)絡(luò)。每計(jì)算一定規(guī)模的數(shù)據(jù),對(duì)模型的參數(shù)進(jìn)行收集歸并更新模型參數(shù),不斷迭代得到 最終權(quán)值。運(yùn)種方案能夠在保證模型的并發(fā)性W及計(jì)算結(jié)果正確性的前提下,實(shí)現(xiàn)自動(dòng)編 碼機(jī)的并行計(jì)算,大幅提高自動(dòng)編碼機(jī)的工作效率。
[0085] 為了驗(yàn)證本發(fā)明的實(shí)際技術(shù)效果,發(fā)明人W基于用戶(hù)對(duì)電影打分的數(shù)據(jù)集的推薦 系統(tǒng)為例進(jìn)行了測(cè)試。其中,用戶(hù)對(duì)電影打分的數(shù)據(jù)集的一部分作為訓(xùn)練數(shù)據(jù)交給自動(dòng)編 碼機(jī)執(zhí)行訓(xùn)練過(guò)程,獲得訓(xùn)練后的自動(dòng)編碼機(jī),然后將輸入數(shù)據(jù)代入到自動(dòng)編碼機(jī)里,得出 未知部分的用戶(hù)對(duì)電影的打分,進(jìn)而將用戶(hù)感興趣的電影推薦給用戶(hù)。將訓(xùn)練后的自動(dòng)編 碼機(jī)輸出的結(jié)果和真實(shí)結(jié)果進(jìn)行對(duì)比,就可W得到MAE(mean absolute error),RMSE(;root mean square error)等測(cè)試指標(biāo)。測(cè)試表明,本發(fā)明的MAE,RMSE等測(cè)試指標(biāo)與現(xiàn)有技術(shù)中 其它訓(xùn)練方法得到的自動(dòng)編碼機(jī)基本一致,證明按照本發(fā)明方法的訓(xùn)練自動(dòng)編碼機(jī)具有良 好的準(zhǔn)確度。
[0086] 進(jìn)一步地,圖4示出了本發(fā)明中具有不同數(shù)目工作機(jī)的平臺(tái)上,自動(dòng)編碼機(jī)的模型 參數(shù)訓(xùn)練時(shí)間隨數(shù)據(jù)規(guī)模變化的曲線(xiàn)。其中,工作機(jī)配置為RAM: 8GB、CPU: 4G監(jiān);橫坐標(biāo)為輸 入數(shù)據(jù)條數(shù)(單位:千),縱坐標(biāo)為運(yùn)行時(shí)間(單位:S)。從圖4中可W看出,本發(fā)明的自動(dòng)編碼 機(jī)的運(yùn)行速度快,同時(shí)訓(xùn)練時(shí)間隨樣本數(shù)的增長(zhǎng)僅呈線(xiàn)性增長(zhǎng),相比現(xiàn)有技術(shù)中的非線(xiàn)性 增長(zhǎng),可W顯著減少訓(xùn)練時(shí)間。另一方面,圖4中Ξ條表示不同工作機(jī)數(shù)量下運(yùn)行結(jié)果的曲 線(xiàn),還顯示本發(fā)明的算法具有優(yōu)秀的并行效率。圖5示出了現(xiàn)有技術(shù)中一種基于MTLAB實(shí)現(xiàn) 的DeepLearningTool中SAE在配置為RAM 8GB,CPU 4G監(jiān)的計(jì)算機(jī)上的運(yùn)行時(shí)間隨數(shù)據(jù)規(guī)模 變化的曲線(xiàn)。其中,DeepLearningTool 可參考Rasmus Berg Palm( 2012) . http : // www.mathworks com/matlabcentral/f ileexchange/3831〇-deep-learning-toolbox。其中 SAE是Deeplearningtool中的一個(gè)實(shí)現(xiàn)代碼的名字??蒞看出,該算法的時(shí)間復(fù)雜度為二次 復(fù)雜度,它是非線(xiàn)性的。運(yùn)種非線(xiàn)性現(xiàn)有并行自編碼機(jī)每次迭代都需要大量的數(shù)據(jù)傳輸,進(jìn) 而消耗大量的時(shí)間。當(dāng)?shù)螖?shù)達(dá)到一定級(jí)別時(shí),運(yùn)行時(shí)間將高到不可忍受。
[0087] 最后應(yīng)說(shuō)明的是,W上實(shí)施例僅用W描述本發(fā)明的技術(shù)方案而不是對(duì)本技術(shù)方法 進(jìn)行限制,本發(fā)明在應(yīng)用上可W延伸為其它的修改、變化、應(yīng)用和實(shí)施例,并且因此認(rèn)為所 有運(yùn)樣的修改、變化、應(yīng)用、實(shí)施例都在本發(fā)明的精神和教導(dǎo)范圍內(nèi)。
【主權(quán)項(xiàng)】
1. 一種基于并行自動(dòng)編碼機(jī)的特征學(xué)習(xí)方法,涉及管理機(jī)、多個(gè)工作機(jī)以及訓(xùn)練數(shù)據(jù) 集,所述訓(xùn)練數(shù)據(jù)集被劃分為多個(gè)部分?jǐn)?shù)據(jù)集,每個(gè)工作機(jī)均與一個(gè)或多個(gè)所述部分?jǐn)?shù)據(jù) 集對(duì)應(yīng);所述特征學(xué)習(xí)方法包括下列步驟: 1) 管理機(jī)執(zhí)行Map操作,為各個(gè)工作機(jī)規(guī)劃任務(wù)并將任務(wù)分發(fā)給每個(gè)工作機(jī);其中,各 個(gè)工作機(jī)的任務(wù)一致,均是基于所輸入的數(shù)據(jù)對(duì)自動(dòng)編碼機(jī)的權(quán)值矩陣進(jìn)行訓(xùn)練;所述權(quán) 值矩陣包含了所述自動(dòng)編碼機(jī)的所有權(quán)值; 2) 每個(gè)工作機(jī)分別讀取該工作機(jī)對(duì)應(yīng)的部分?jǐn)?shù)據(jù)集; 3) 各個(gè)工作機(jī)并行地執(zhí)行管理機(jī)所分發(fā)的任務(wù),對(duì)自動(dòng)編碼機(jī)的權(quán)值矩陣進(jìn)行訓(xùn)練, 然后每個(gè)工作機(jī)將它所訓(xùn)練的權(quán)值矩陣反饋給管理機(jī); 4) 管理機(jī)執(zhí)行Reduce操作,對(duì)各個(gè)工作機(jī)反饋的權(quán)值矩陣進(jìn)行算數(shù)平均。2. 根據(jù)權(quán)利要求1所述的基于并行自動(dòng)編碼機(jī)的特征學(xué)習(xí)方法,其特征在于,所述訓(xùn)練 數(shù)據(jù)集被劃分為多個(gè)子訓(xùn)練數(shù)據(jù)集,每個(gè)子訓(xùn)練數(shù)據(jù)集被劃分為多個(gè)部分?jǐn)?shù)據(jù)集,每個(gè)工 作機(jī)均與一個(gè)子訓(xùn)練數(shù)據(jù)集的一個(gè)所述部分?jǐn)?shù)據(jù)集對(duì)應(yīng); 所述步驟2)中,每個(gè)工作機(jī)所讀取的是當(dāng)前子訓(xùn)練數(shù)據(jù)集中它所對(duì)應(yīng)的部分?jǐn)?shù)據(jù)集; 所述步驟4)還包括:所述管理機(jī)執(zhí)行Reduce操作對(duì)各個(gè)工作機(jī)反饋的權(quán)值矩陣進(jìn)行算 數(shù)平均后,得到基于當(dāng)前子訓(xùn)練數(shù)據(jù)集進(jìn)行更新后的權(quán)值矩陣,所述管理機(jī)將更新后的權(quán) 值矩陣分配給各個(gè)工作機(jī)作為下一輪訓(xùn)練的初值權(quán)值矩陣,然后重新執(zhí)行步驟1)~4),直 至所有子訓(xùn)練數(shù)據(jù)集均處理完畢。3. 根據(jù)權(quán)利要求1或2所述的基于并行自動(dòng)編碼機(jī)的特征學(xué)習(xí)方法,其特征在于,所述 步驟1)還包括:管理機(jī)將相關(guān)初始化參數(shù)發(fā)至各工作機(jī)節(jié)點(diǎn),所述相關(guān)初始化參數(shù)包括:數(shù) 據(jù)規(guī)模、隱藏層配置、輸入數(shù)據(jù)路徑、正則化參數(shù)和隨機(jī)數(shù)種子中的一項(xiàng)或多項(xiàng)。4. 根據(jù)權(quán)利要求1或2所述的基于并行自動(dòng)編碼機(jī)的特征學(xué)習(xí)方法,其特征在于,所述 步驟3)中,每個(gè)工作機(jī)執(zhí)行管理機(jī)所分發(fā)的任務(wù)的過(guò)程如下:讀取當(dāng)前部分?jǐn)?shù)據(jù)集中的一 條數(shù)據(jù)作為輸入數(shù)據(jù),計(jì)算出隱藏層和輸出層的值,然后利用得到的輸出層的值與原輸入 數(shù)據(jù)之間的誤差更新所述權(quán)值矩陣,工作機(jī)讀取當(dāng)前部分?jǐn)?shù)據(jù)集中的下一條數(shù)據(jù),然后重 復(fù)上述過(guò)程,直至當(dāng)前部分?jǐn)?shù)據(jù)集中的每一條數(shù)據(jù)均至少輸入過(guò)一遍。5. 根據(jù)權(quán)利要求4所述的基于并行自動(dòng)編碼機(jī)的特征學(xué)習(xí)方法,其特征在于,所述步驟 3)中,基于隨機(jī)梯度下降算法,根據(jù)所述的輸出層的值與原輸入數(shù)據(jù)之間的誤差更新所述 權(quán)值矩陣。6. 根據(jù)權(quán)利要求5所述的基于并行自動(dòng)編碼機(jī)的特征學(xué)習(xí)方法,其特征在于,所述自動(dòng) 編碼機(jī)由第一單層神經(jīng)網(wǎng)絡(luò)和第二單層神經(jīng)網(wǎng)絡(luò)組成,所述權(quán)值矩陣包括對(duì)應(yīng)于第一單層 神經(jīng)網(wǎng)絡(luò)的第一權(quán)值矩陣和對(duì)應(yīng)于第二單層神經(jīng)網(wǎng)絡(luò)的第二權(quán)值矩陣; 所述步驟3)中,每個(gè)工作機(jī)執(zhí)行管理機(jī)所分發(fā)的任務(wù)的過(guò)程如下: 31) 計(jì)算隱藏層向量h = sigmoid(Wix+Bi); 其中,sigmoid為激活函數(shù),Wi為第一權(quán)值矩陣,Βι為第一偏置向量,Μ為輸入向量的維 度,Κ為隱藏層節(jié)點(diǎn)數(shù)目; 32) 計(jì)算解碼后的輸出向量f二+ β2).* /; 其中,w2為第二權(quán)值矩陣,β2為第二偏置向量,表示點(diǎn)乘,I為指示函數(shù)向量,向量I 中的任意一個(gè)元素1/滿(mǎn)足:其中,downstream表示任一單層神經(jīng)網(wǎng)絡(luò)的輸出; 34)基于輸出層誤差向量Ecmt和隱藏層誤差向量Eh對(duì)第一權(quán)值矩陣1和第二權(quán)值矩陣% 進(jìn)行更新。7. -種基于并行自動(dòng)編碼機(jī)的特征學(xué)習(xí)系統(tǒng),涉及訓(xùn)練數(shù)據(jù)集,所述訓(xùn)練數(shù)據(jù)集被劃 分為多個(gè)部分?jǐn)?shù)據(jù)集,每個(gè)工作機(jī)均與一個(gè)或多個(gè)所述部分?jǐn)?shù)據(jù)集對(duì)應(yīng);所述特征學(xué)習(xí)系 統(tǒng)包括互聯(lián)的基于Spark平臺(tái)的管理機(jī)和基于Spark平臺(tái)的多個(gè)工作機(jī); 其中,所述管理機(jī)用于執(zhí)行Map操作,為各個(gè)工作機(jī)規(guī)劃任務(wù)并將任務(wù)分發(fā)給每個(gè)工作 機(jī);以及執(zhí)行Reduce操作,對(duì)各個(gè)工作機(jī)反饋的權(quán)值矩陣進(jìn)行算數(shù)平均;其中,各個(gè)工作機(jī) 的任務(wù)一致,均是基于所輸入的數(shù)據(jù)對(duì)自動(dòng)編碼機(jī)的權(quán)值矩陣進(jìn)行訓(xùn)練;所述權(quán)值矩陣包 含了所述自動(dòng)編碼機(jī)的所有權(quán)值; 所述多個(gè)工作機(jī)用于分別讀取該工作機(jī)對(duì)應(yīng)的部分?jǐn)?shù)據(jù)集;以及并行地執(zhí)行管理機(jī)所 分發(fā)的任務(wù),對(duì)自動(dòng)編碼機(jī)的權(quán)值矩陣進(jìn)行訓(xùn)練,然后每個(gè)工作機(jī)將它所訓(xùn)練的權(quán)值矩陣 反饋給管理機(jī)。8. 根據(jù)權(quán)利要求7所述的基于并行自動(dòng)編碼機(jī)的特征學(xué)習(xí)系統(tǒng),其特征在于,所述訓(xùn)練 數(shù)據(jù)集被劃分為多個(gè)子訓(xùn)練數(shù)據(jù)集,每個(gè)子訓(xùn)練數(shù)據(jù)集被劃分為多個(gè)部分?jǐn)?shù)據(jù)集,每個(gè)工 作機(jī)均與一個(gè)子訓(xùn)練數(shù)據(jù)集的一個(gè)所述部分?jǐn)?shù)據(jù)集對(duì)應(yīng); 所述工作機(jī)還用于在基于一個(gè)子訓(xùn)練數(shù)據(jù)集進(jìn)行訓(xùn)練時(shí),讀取該子訓(xùn)練數(shù)據(jù)集中該工 作機(jī)所對(duì)應(yīng)的部分?jǐn)?shù)據(jù)集; 所述管理機(jī)還用于執(zhí)行Reduce操作對(duì)各個(gè)工作機(jī)反饋的權(quán)值矩陣進(jìn)行算數(shù)平均后,得 到基于當(dāng)前子訓(xùn)練數(shù)據(jù)集進(jìn)行更新后的權(quán)值矩陣,將更新后的權(quán)值矩陣分配給各個(gè)工作機(jī) 作為下一輪訓(xùn)練的初值權(quán)值矩陣。9. 根據(jù)權(quán)利要求7或8所述的基于并行自動(dòng)編碼機(jī)的特征學(xué)習(xí)系統(tǒng),其特征在于,所述 管理機(jī)還用于將相關(guān)初始化參數(shù)發(fā)至各工作機(jī)節(jié)點(diǎn),所述相關(guān)初始化參數(shù)包括:數(shù)據(jù)規(guī)模、 隱藏層配置、輸入數(shù)據(jù)路徑、正則化參數(shù)和隨機(jī)數(shù)種子中的一項(xiàng)或多項(xiàng)。10. 根據(jù)權(quán)利要求7或8所述的基于并行自動(dòng)編碼機(jī)的特征學(xué)習(xí)系統(tǒng),其特征在于,所述 工作機(jī)用于按照下述過(guò)程執(zhí)行管理機(jī)所分發(fā)的任務(wù):讀取當(dāng)前部分?jǐn)?shù)據(jù)集中的一條數(shù)據(jù)作 為輸入數(shù)據(jù),計(jì)算出隱藏層和輸出層的值,然后利用得到的輸出層的值與原輸入數(shù)據(jù)之間 的誤差更新所述權(quán)值矩陣,工作機(jī)讀取當(dāng)前部分?jǐn)?shù)據(jù)集中的下一條數(shù)據(jù),然后重復(fù)上述過(guò) 程,直至當(dāng)前部分?jǐn)?shù)據(jù)集中的每一條數(shù)據(jù)均至少輸入過(guò)一遍。
【文檔編號(hào)】G06F17/30GK105825269SQ201610147007
【公開(kāi)日】2016年8月3日
【申請(qǐng)日】2016年3月15日
【發(fā)明人】莊福振, 錢(qián)明達(dá), 申恩兆, 敖翔, 羅平, 何清
【申請(qǐng)人】中國(guó)科學(xué)院計(jì)算技術(shù)研究所
網(wǎng)友詢(xún)問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
五常市| 潮州市| 富平县| 四会市| 闽侯县| 桓仁| 竹山县| 伽师县| 吴江市| 滨州市| 高要市| 花垣县| 镶黄旗| 乌拉特后旗| 宜都市| 青田县| 通化市| 屯门区| 蒲江县| 和龙市| 辽阳县| 石林| 大丰市| 沙湾县| 武汉市| 栖霞市| 景谷| 兰西县| 永川市| 科技| 高密市| 禹城市| 德昌县| 客服| 乌苏市| 肃北| 郯城县| 碌曲县| 宜昌市| 丹凤县| 三明市|