基于粒子群優(yōu)化算法的神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)優(yōu)化方法
【專(zhuān)利摘要】本發(fā)明公開(kāi)了一種基于粒子群優(yōu)化算法的神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)優(yōu)化方法,包括以下步驟:選擇粒子群優(yōu)化算法的宏觀方向參數(shù),表示粒子構(gòu)造及種群規(guī)模;設(shè)置粒子群優(yōu)化算法的微觀方向參數(shù),根據(jù)社會(huì)搜索和認(rèn)知搜索更新粒子自身運(yùn)動(dòng);結(jié)合當(dāng)前參數(shù),使用粒子群優(yōu)化算法進(jìn)行訓(xùn)練學(xué)習(xí),以使粒子群中的粒子不斷靠攏最優(yōu)粒子;通過(guò)訓(xùn)練完成的神經(jīng)網(wǎng)絡(luò)模型對(duì)渲染數(shù)據(jù)進(jìn)行時(shí)間預(yù)估,制定集群作業(yè)調(diào)度策略,以達(dá)到減少真實(shí)感渲染時(shí)間的目的。本發(fā)明計(jì)算方便,求解速度快,適合求解實(shí)數(shù)問(wèn)題,同時(shí)避免了BP神經(jīng)網(wǎng)絡(luò)自身易收斂于局部最優(yōu)解的缺點(diǎn)。
【專(zhuān)利說(shuō)明】基于粒子群優(yōu)化算法的神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)優(yōu)化方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及圖形學(xué)真實(shí)感渲染領(lǐng)域,尤其涉及一種基于粒子群優(yōu)化算法的神經(jīng)網(wǎng) 絡(luò)學(xué)習(xí)優(yōu)化方法。
【背景技術(shù)】
[0002] 真實(shí)感渲染是數(shù)字影視制作中非常重要的一部分,也是最耗時(shí)的部分。由于渲染 一部高質(zhì)量的作品需要非常長(zhǎng)的時(shí)間,所以將任務(wù)提交到集群內(nèi)進(jìn)行并行渲染非常重要, 為了能夠提高集群的利用效率,需要制定合理的集群作業(yè)調(diào)度策略,而調(diào)度的策略與渲染 時(shí)間緊密相關(guān),如果能夠預(yù)測(cè)圖像渲染的時(shí)間對(duì)于調(diào)度策略的制定幫助很大。
[0003] 現(xiàn)階段資源預(yù)估的方式主要分為兩種:基于硬編碼方式的資源預(yù)估以及基于歷史 數(shù)據(jù)的資源預(yù)估。根據(jù)資源預(yù)估制定合理的調(diào)度策略,根據(jù)調(diào)度策略將任務(wù)分派給不同的 渲染計(jì)算節(jié)點(diǎn)來(lái)渲染,以此在一定程度上保證集群的負(fù)載均衡。
[0004] 基于硬編碼方式的資源預(yù)估,首先必須要對(duì)整個(gè)項(xiàng)目工程有比較深刻的了解,熟 知項(xiàng)目的各種處理流程;另外還需要深入研究整個(gè)項(xiàng)目的代碼編寫(xiě)。通過(guò)這些分析后綜合 分析程序運(yùn)行過(guò)程中可能遇到的所有情況并分析這些情況與時(shí)間運(yùn)行的線(xiàn)性或非線(xiàn)性關(guān) 系,制定一定的準(zhǔn)則進(jìn)行預(yù)估。這種預(yù)估方式主要依靠軟件代碼的編寫(xiě),在開(kāi)發(fā)過(guò)程中就已 經(jīng)設(shè)計(jì)了專(zhuān)門(mén)的模塊,但是這種方式靈活性差,很難升級(jí)而且不同的環(huán)境也不容易操作;結(jié) 合Renderwing渲染器這種有些特殊的渲染引擎,場(chǎng)景任務(wù)的每一小部分都涉及到許多其 他部分而且情況繁多,如果單純以這種方式預(yù)估,會(huì)非常困難而且準(zhǔn)確性也無(wú)法保障;而且 開(kāi)發(fā)中的系統(tǒng)肯定會(huì)不斷更新,這種情況也無(wú)法更新。所以綜合多種情況分析這種預(yù)估方 式比較適合底層類(lèi)的開(kāi)發(fā)不適用應(yīng)用到綜合型大工程的資源預(yù)估。
[0005] 基于歷史數(shù)據(jù)的資源預(yù)估相對(duì)于基于硬編碼方式的資源預(yù)估,基于歷史數(shù)據(jù)源預(yù) 估模型考慮如何跳過(guò)工程代碼比較詳細(xì)的理解,通過(guò)簡(jiǎn)單分析任務(wù)的執(zhí)行流程以及在大量 歷史數(shù)據(jù)的基礎(chǔ)上制定一個(gè)預(yù)估方案,這種方式不需要太多了解軟件的編寫(xiě)規(guī)則,通過(guò)分 析學(xué)習(xí)曾經(jīng)的歷史數(shù)據(jù)來(lái)預(yù)估未來(lái)需要的資源,達(dá)到渲染時(shí)間預(yù)估的目的。
[0006] 這染時(shí)間模型這方面的工作較少,2002年Nikolaos Doulamis在文章 [Workload Prediction of Rendering Algorithms in GRID Computing]中提出了使用神經(jīng)網(wǎng)絡(luò)模 型進(jìn)行這染負(fù)載預(yù)估,2004 年在文章 [A combined fuzzy-neural network model for non-linear prediction of 3D rendering workload in Grid computing]中提出基于 神經(jīng)網(wǎng)絡(luò)和模糊分類(lèi)器的基礎(chǔ)上進(jìn)行渲染資源預(yù)估;其后AntoniosLitke [Computational workload prediction for Grid oriented industrial applications:The case of 3D-image rendering]使用人工神經(jīng)網(wǎng)絡(luò)算法建立網(wǎng)格基礎(chǔ)設(shè)施上任務(wù)的負(fù)載預(yù)估模型, 并使用3D渲染應(yīng)用作為實(shí)驗(yàn)對(duì)象。分析其他工業(yè)方向關(guān)于時(shí)間預(yù)估方面的研究大體是基 于歷史渲染數(shù)據(jù),通過(guò)數(shù)據(jù)挖掘技術(shù)、統(tǒng)計(jì)分析、機(jī)器學(xué)習(xí)和人工智能等方法利用人工神經(jīng) 網(wǎng)絡(luò)建立時(shí)間預(yù)估模型。渲染時(shí)間預(yù)估模型以BP神經(jīng)網(wǎng)絡(luò)模型為模板。
[0007] 神經(jīng)網(wǎng)絡(luò)模型是以神經(jīng)元的數(shù)學(xué)模型為基礎(chǔ)來(lái)描述的。神經(jīng)網(wǎng)絡(luò)模型由網(wǎng)絡(luò)拓 撲、節(jié)點(diǎn)特點(diǎn)和學(xué)習(xí)規(guī)則來(lái)表示。神經(jīng)網(wǎng)絡(luò)的主要特點(diǎn)為:并行分布處理、高度魯棒性和容 錯(cuò)能力、分布存儲(chǔ)及學(xué)習(xí)能力和能充分逼近復(fù)雜的非線(xiàn)性關(guān)系。
[0008] BP神經(jīng)網(wǎng)絡(luò)模型是一種按誤差逆?zhèn)鞑ニ惴ㄓ?xùn)練的多層前饋網(wǎng)絡(luò),能學(xué)習(xí)和存貯大 量的輸入-輸出模式映射關(guān)系,而無(wú)需事前揭示描述這種映射關(guān)系的數(shù)學(xué)方程。它的學(xué)習(xí) 規(guī)則是使用最速下降法,通過(guò)反向傳播來(lái)不斷調(diào)整網(wǎng)絡(luò)的權(quán)值和閾值,使網(wǎng)絡(luò)的誤差平方 和最小。BP神經(jīng)網(wǎng)絡(luò)模型拓?fù)浣Y(jié)構(gòu)包括輸入層、隱層和輸出層。
[0009] 以BP神經(jīng)網(wǎng)絡(luò)為目標(biāo)進(jìn)行預(yù)估模型的預(yù)測(cè),但是經(jīng)過(guò)測(cè)試訓(xùn)練以及參考一些技 術(shù)文獻(xiàn)發(fā)現(xiàn)BP神經(jīng)網(wǎng)絡(luò)的一些缺點(diǎn):
[0010] ①局部極小化問(wèn)題:從數(shù)學(xué)的角度看,傳統(tǒng)的BP神經(jīng)網(wǎng)絡(luò)是一種局部搜索優(yōu)化方 法,解決的是一個(gè)復(fù)雜的非線(xiàn)性問(wèn)題,網(wǎng)絡(luò)的權(quán)重是通過(guò)在局部方向逐步改善調(diào)整,這將會(huì) 造成局部最優(yōu)權(quán)值收斂到局部最小值點(diǎn),導(dǎo)致網(wǎng)絡(luò)訓(xùn)練失敗。BP神經(jīng)網(wǎng)絡(luò)初始值一般不同, 不同的初始值同時(shí)也會(huì)導(dǎo)致網(wǎng)絡(luò)收斂于不同的極小點(diǎn),這樣會(huì)使每次神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)完成后 的結(jié)果也不同。
[0011] ②網(wǎng)絡(luò)收斂速度過(guò)慢:由于BP神經(jīng)網(wǎng)絡(luò)采取梯度下降算法訓(xùn)練網(wǎng)絡(luò),它優(yōu)化的函 數(shù)又是比較復(fù)雜的,因此,不可避免地"之字形"現(xiàn)象,即如果最小值附近比較平坦,算法會(huì) 在最小值附近停留很久,收斂緩慢,造成了 BP算法低效;同時(shí),由于優(yōu)化的函數(shù)是非常復(fù)雜 的,它會(huì)在神經(jīng)元的輸出接近結(jié)果時(shí)出現(xiàn)一片平坦區(qū),在這塊區(qū)域輸出變化非常小所以誤 差變化也非常小,但是訓(xùn)練仍在繼續(xù),但是過(guò)程看起來(lái)是停止的;BP神經(jīng)網(wǎng)絡(luò)模型中,權(quán)值 的更新規(guī)則是提前賦給神經(jīng)網(wǎng)絡(luò)的,不能每次求迭代的更新值,這樣的效率也比較低。
【發(fā)明內(nèi)容】
[0012] 本發(fā)明為了解決上述問(wèn)題,提出了一種基于粒子群優(yōu)化算法的神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)優(yōu)化 方法,本方法在基于RenderMan規(guī)范的Renderwing渲染系統(tǒng)提供的歷史渲染數(shù)據(jù)的基礎(chǔ) 上,首先使用主成分分析法規(guī)范化輸入歷史數(shù)據(jù)獲取樣本,然后通過(guò)分析使用BP神經(jīng)網(wǎng)絡(luò) 構(gòu)建的渲染時(shí)間預(yù)估模型不足的情況下給出了使用粒子群優(yōu)化算法作為神經(jīng)網(wǎng)絡(luò)訓(xùn)練算 法的方案,通過(guò)后續(xù)的時(shí)間預(yù)估與實(shí)際渲染時(shí)間對(duì)比得到了較好的預(yù)估效果。
[0013] 為了實(shí)現(xiàn)上述目的,本發(fā)明采用如下技術(shù)方案:
[0014] 一種基于粒子群優(yōu)化算法的神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)優(yōu)化方法,包括以下步驟:
[0015] (1)選擇粒子群優(yōu)化(PSO)算法的宏觀方向參數(shù),表示粒子構(gòu)造及種群規(guī)模;
[0016] (2)設(shè)置粒子群優(yōu)化算法的微觀方向參數(shù),根據(jù)社會(huì)搜索和認(rèn)知搜索更新粒子自 身運(yùn)動(dòng);
[0017] (3)結(jié)合當(dāng)前參數(shù),使用粒子群優(yōu)化算法進(jìn)行訓(xùn)練學(xué)習(xí),以使粒子群中的粒子不斷 靠攏最優(yōu)粒子;
[0018] (4)通過(guò)訓(xùn)練完成的神經(jīng)網(wǎng)絡(luò)模型對(duì)渲染數(shù)據(jù)進(jìn)行時(shí)間預(yù)估,制定集群作業(yè)調(diào)度 策略,以達(dá)到減少真實(shí)感渲染時(shí)間的目的。
[0019] 所述步驟(1)中,具體方法為:根據(jù)具體神經(jīng)網(wǎng)絡(luò)模型的輸入層、隱層和輸出層的 神經(jīng)元個(gè)數(shù),得到單個(gè)粒子的維度,也為需要訓(xùn)練的數(shù)據(jù)個(gè)數(shù);選擇粒子個(gè)數(shù),使用集合方 式表達(dá)粒子。
[0020] 所述步驟(1)中,單個(gè)粒子的維度等于輸入層和隱層的神經(jīng)元個(gè)數(shù)的乘積與隱層 和輸出層神經(jīng)元個(gè)數(shù)的乘積之和。
[0021] 所述步驟(1)中,粒子群中的粒子數(shù)目取值范圍為[10, 200]。
[0022] 所述步驟(2)中,其方法為:每個(gè)粒子根據(jù)當(dāng)前粒子本身搜索到的最佳方案和當(dāng) 前情況下所有粒子中搜索到的最佳方案對(duì)自身運(yùn)動(dòng)進(jìn)行更新。
[0023] 所述步驟(2)中,具體方法為:
[0024] 設(shè)Ppbest表示當(dāng)前粒子本身搜索到的最佳方案,Ppbest = (Ppbesti,Ppbest2, ...,PpbestN),其中,Ppbestm表示當(dāng)前粒子本身在第m維搜索到的最佳方案,m G [1,N],N為單個(gè)粒子的維度;
[0025] Pgbest表示是當(dāng)前情況下所有粒子中搜索到的最佳方案,Pgbejst = (Pgbesti,Pgbest2, --?,PgbestN),其中,Pgbestn表示當(dāng)前情況下第n個(gè)訓(xùn)練數(shù)據(jù)在所有粒子中搜 索到的最佳方案,n e [1,N],N為需要訓(xùn)練的數(shù)據(jù)個(gè)數(shù);
[0026] 粒子自身運(yùn)動(dòng)更新為:
[0027] vi;t+1 = WXvi^c1Xr1X (ppbest,t-Xi,t)+c2Xr 2X (pgbest,t-Xi,t)公式(1)
[0028] xi; t = Xi^vi, t+1 公式(2)
[0029] 學(xué)習(xí)因子即C1X2表示的是每個(gè)粒子向Ppbest和P gbest移動(dòng)的隨機(jī)加速項(xiàng)的權(quán)重:Ci 是粒子追蹤Ppbest的權(quán)重系數(shù),是對(duì)自身的認(rèn)知,稱(chēng)之為認(rèn)知;C2是粒子追蹤Pgbest的權(quán)重系 數(shù),是對(duì)種群的認(rèn)知,稱(chēng)之為社會(huì);ri、r2是[0, 1]區(qū)間內(nèi)均勻分布的隨機(jī)數(shù),動(dòng)態(tài)的優(yōu)化學(xué) 習(xí)因子,慣性權(quán)重w是認(rèn)知和社會(huì)化搜索的平衡能力;Xi,t為第i個(gè)粒子在第t次變化時(shí)的 位置,vi;t為第t次變化時(shí)的速度,
[0030] 所述步驟(2)中,為了是社會(huì)搜索和認(rèn)知搜索有相同的比重,將它們?cè)O(shè)置為相同 的值;使它們能夠搜索到Ppbest和Pgbest為中心的區(qū)域,設(shè)置Cl = C2 = 2。
[0031] 所述步驟⑵中,慣性權(quán)重的取值方法為
【權(quán)利要求】
1. 一種基于粒子群優(yōu)化算法的神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)優(yōu)化方法,其特征是:包括以下步驟: (1) 選擇粒子群優(yōu)化算法的宏觀方向參數(shù),表示粒子構(gòu)造及種群規(guī)模; (2) 設(shè)置粒子群優(yōu)化算法的微觀方向參數(shù),根據(jù)社會(huì)搜索和認(rèn)知搜索更新粒子自身運(yùn) 動(dòng); (3) 結(jié)合當(dāng)前參數(shù),使用粒子群優(yōu)化算法進(jìn)行訓(xùn)練學(xué)習(xí),以使粒子群中的粒子不斷靠攏 最優(yōu)粒子; (4) 通過(guò)訓(xùn)練完成的神經(jīng)網(wǎng)絡(luò)模型對(duì)渲染數(shù)據(jù)進(jìn)行時(shí)間預(yù)估,制定集群作業(yè)調(diào)度策略, 以達(dá)到減少真實(shí)感渲染時(shí)間的目的。
2. 如權(quán)利要求1所述的一種基于粒子群優(yōu)化算法的神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)優(yōu)化方法,其特征 是:所述步驟(1)中,具體方法為:根據(jù)具體神經(jīng)網(wǎng)絡(luò)模型的輸入層、隱層和輸出層的神經(jīng) 元個(gè)數(shù),得到單個(gè)粒子的維度,也為需要訓(xùn)練的數(shù)據(jù)個(gè)數(shù);選擇粒子個(gè)數(shù),使用集合方式表 達(dá)粒子。
3. 如權(quán)利要求2所述的一種基于粒子群優(yōu)化算法的神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)優(yōu)化方法,其特征 是:所述步驟(1)中,單個(gè)粒子的維度等于輸入層和隱層的神經(jīng)元個(gè)數(shù)的乘積與隱層和輸 出層神經(jīng)元個(gè)數(shù)的乘積之和。
4. 如權(quán)利要求2所述的一種基于粒子群優(yōu)化算法的神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)優(yōu)化方法,其特征 是:所述步驟(1)中,粒子群中的粒子個(gè)數(shù)取值范圍為[10, 200]。
5. 如權(quán)利要求1所述的一種基于粒子群優(yōu)化算法的神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)優(yōu)化方法,其特征 是:所述步驟(2)中,其方法為:每個(gè)粒子根據(jù)當(dāng)前粒子本身搜索到的最佳方案和當(dāng)前情況 下所有粒子中搜索到的最佳方案對(duì)自身運(yùn)動(dòng)進(jìn)行更新。
6. 如權(quán)利要求5所述的一種基于粒子群優(yōu)化算法的神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)優(yōu)化方法,其特征 是:所述步驟(2)中,具體方法為: 設(shè)Ppbest表示當(dāng)前粒子本身搜索到的最佳方案,ppbe;st = (ppb estl,Ppbest2,? ? ?,PpbestN) ' 中,Ppbestm表示當(dāng)前粒子本身在第m維搜索到的最佳方案,mG[1,N],N為單個(gè)粒子的維 度; Pgbest表示是當(dāng)前情況下所有粒子中搜索到的最佳方案,pgbe;st =(Pgbestl,Pgbest2, ? ? ?,PgbestN),其中,Pgbestn表示當(dāng)前情況下第n個(gè)訓(xùn)練數(shù)據(jù)在所有粒子中搜 索到的最佳方案,ne[1,N],N為需要訓(xùn)練的數(shù)據(jù)個(gè)數(shù); 粒子自身運(yùn)動(dòng)更新為: Vi,t+1=wXVi.t+CjXriX(ppbest;t-xi;t)+c2Xr2X(pgbest;t-xi;t)公式(1) xi;t=xi;t+vi;t+1 公式(2) 學(xué)習(xí)因子即Ci、C2表示的是每個(gè)粒子向Ppbest和Pgbest移動(dòng)的隨機(jī)加速項(xiàng)的權(quán)重:Ci是 粒子追蹤Ppbest的權(quán)重系數(shù),是對(duì)自身的認(rèn)知,稱(chēng)之為認(rèn)知;c2是粒子追蹤Pgtest的權(quán)重系數(shù), 是對(duì)種群的認(rèn)知,稱(chēng)之為社會(huì);ri、r2是[0, 1]區(qū)間內(nèi)均勻分布的隨機(jī)數(shù),動(dòng)態(tài)的優(yōu)化學(xué)習(xí)因 子,慣性權(quán)重W是認(rèn)知和社會(huì)化搜索的平衡能力;Xi,t為第i個(gè)粒子在第t次變化時(shí)的位置, vi;t為第t次變化時(shí)的速度。
7. 如權(quán)利要求6所述的一種基于粒子群優(yōu)化算法的神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)優(yōu)化方法,其特征 是:所述步驟(2)中,為了是社會(huì)搜索和認(rèn)知搜索有相同的比重,將它們?cè)O(shè)置為相同的值; 使它們能夠搜索到Ppbest和Pgbest為中心的區(qū)域,設(shè)置Q=C2 = 2。
8. 如權(quán)利要求6所述的一種基于粒子群優(yōu)化算法的神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)優(yōu)化方法,其特征 是:所述步驟(2)中,慣性權(quán)重的取值方法為:
分別表示w的 初始值、結(jié)束值和最大變化次數(shù),c為用來(lái)平衡社會(huì)和認(rèn)知搜索時(shí)間。
9. 如權(quán)利要求1所述的一種基于粒子群優(yōu)化算法的神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)優(yōu)化方法,其特征 是:所述步驟(3)的具體方法,包括以下步驟: (3-1)初始化粒子的速度和位置; (3-2)計(jì)算當(dāng)前粒子本身搜索到的最佳方案和當(dāng)前情況下所有粒子中搜索到的最佳方 案; (3-3)更新粒子速度與位置; (3-4)對(duì)比當(dāng)前粒子的適應(yīng)值與當(dāng)前粒子本身搜索到的最佳方案和當(dāng)前情況下所有粒 子中搜索到的最佳方案; (3-5)檢測(cè)當(dāng)前情況下所有粒子中搜索到的最佳方案,是否達(dá)到條件或迭代次數(shù)已達(dá) 到最大,如果是則輸出最優(yōu)解,完成訓(xùn)練,如果否則返回步驟(3-2)。
【文檔編號(hào)】G06N3/02GK104408518SQ201410634572
【公開(kāi)日】2015年3月11日 申請(qǐng)日期:2014年11月12日 優(yōu)先權(quán)日:2014年11月12日
【發(fā)明者】陸巧, 王璐, 徐延寧 申請(qǐng)人:山東地緯數(shù)碼科技有限公司