董如意,杜俊杰
(吉林化工學(xué)院,吉林 吉林 13022)
人工智能已經(jīng)成為支撐國(guó)民經(jīng)濟(jì)和工業(yè)發(fā)展的重要技術(shù),并且正在深刻改變著人類的生產(chǎn)生活方式。國(guó)務(wù)院高度重視人工智能的發(fā)展,2017年制定的《新一代人工智能發(fā)展規(guī)劃》明確指出:“人工智能是引領(lǐng)未來的戰(zhàn)略性技術(shù)”[1]。機(jī)器學(xué)習(xí)已經(jīng)成為當(dāng)前技術(shù)發(fā)展熱點(diǎn),機(jī)器學(xué)習(xí)是通過計(jì)算機(jī)模擬或?qū)崿F(xiàn)人類的學(xué)習(xí)行為,以獲取新的知識(shí)或技能,并不斷改善自身的性能,它是計(jì)算機(jī)具有智能的根本途徑。機(jī)器學(xué)習(xí)技術(shù)發(fā)展迅速,已日漸滲透到生產(chǎn)和生活服務(wù)的各個(gè)方面。高校需要與時(shí)俱進(jìn)、順應(yīng)時(shí)代,加強(qiáng)培養(yǎng)更多具有機(jī)器學(xué)習(xí)理論與應(yīng)用實(shí)踐能力的人才。而機(jī)器學(xué)習(xí)具有高度實(shí)踐性且涉及的算法眾多,如何在教學(xué)過程中結(jié)合項(xiàng)目實(shí)踐,培養(yǎng)應(yīng)用型人才,已成為各高校人才培養(yǎng)過程中關(guān)注的一個(gè)難題。百度的PaddlePaddle是一個(gè)易用、高效、靈活和可擴(kuò)展的深度學(xué)習(xí)平臺(tái),它使得研究人員更容易、更快捷地構(gòu)建深度學(xué)習(xí)模型,以及輕松地上傳訓(xùn)練數(shù)據(jù),訓(xùn)練深度學(xué)習(xí)模型,執(zhí)行準(zhǔn)確、直觀的預(yù)測(cè)分析,極大提高速度和生產(chǎn)率[2]。
機(jī)器學(xué)習(xí)課程是人工智能專業(yè)的核心專業(yè)課程,但機(jī)器學(xué)習(xí)課程建設(shè)過程中面臨著實(shí)訓(xùn)室建設(shè)成本較高,機(jī)器學(xué)習(xí)理論艱澀枯燥等問題。因此課題組通過校企合作,引入線上Paddle云平臺(tái)來解決實(shí)訓(xùn)室建設(shè)成本問題,并通過項(xiàng)目化的教學(xué)模式來貼近企業(yè)實(shí)際中的應(yīng)用場(chǎng)景,提高學(xué)生的學(xué)習(xí)興趣和學(xué)習(xí)效果。由此,探索形成一套機(jī)器學(xué)習(xí)課程的實(shí)驗(yàn)案例方案。
通過案例實(shí)踐,進(jìn)一步掌握并驗(yàn)證相關(guān)算法的性能及用法,著實(shí)提升學(xué)生對(duì)機(jī)器學(xué)習(xí)算法的解決問題能力及編程應(yīng)用能力;通過詳細(xì)查閱相關(guān)參考文獻(xiàn),將課程理論知識(shí)與未來企業(yè)實(shí)際需求相結(jié)合,以提升學(xué)生的技術(shù)競(jìng)爭(zhēng)力。為了實(shí)現(xiàn)這些目標(biāo),在充分參考現(xiàn)有經(jīng)典機(jī)器學(xué)習(xí)實(shí)驗(yàn)案例的基礎(chǔ)上,課題組將實(shí)驗(yàn)內(nèi)容、學(xué)科發(fā)展及實(shí)際需要聯(lián)系起來,加強(qiáng)實(shí)驗(yàn)內(nèi)容的綜合性、系統(tǒng)性、專題性和模塊化建設(shè)。
本實(shí)驗(yàn)案例借助PaddlePaddle深度學(xué)習(xí)框架,使用Python語(yǔ)言構(gòu)建基于LSTM神經(jīng)網(wǎng)絡(luò)模型,實(shí)現(xiàn)股票的預(yù)測(cè)模型。研究該案例的具體實(shí)現(xiàn)及其結(jié)合云平臺(tái)操作的可行性。
長(zhǎng)短期記憶神經(jīng)網(wǎng)絡(luò)(Long Short-termmemory, LSTM)是一種特殊的RNN,是為了解決長(zhǎng)序列訓(xùn)練過程中的梯度消失和梯度爆炸問題而設(shè)計(jì)的,相比普通的RNN,LSTM能夠在更長(zhǎng)的序列中有更好的表現(xiàn)[3]。圖1為L(zhǎng)STM網(wǎng)絡(luò)結(jié)構(gòu)。
圖1 LSTM網(wǎng)絡(luò)結(jié)構(gòu)
本次試驗(yàn)采用1990—2015年上證指數(shù)的開源股票數(shù)據(jù)集,共6 109條數(shù)據(jù),利用歷史數(shù)據(jù)中的開盤價(jià)、收盤價(jià)、最低價(jià)、最高價(jià)、交易量、交易額、跌漲幅來對(duì)下一日的最高價(jià)進(jìn)行預(yù)測(cè)?;赑addlePaddle庫(kù)構(gòu)建股票預(yù)測(cè)的神經(jīng)網(wǎng)絡(luò)模型,具體實(shí)驗(yàn)流程有以下幾方面。
2.2.1 導(dǎo)入庫(kù)
導(dǎo)入一些關(guān)鍵的庫(kù),分別是:(1)paddle.fluid。PaddlePaddle深度學(xué)習(xí)框架。(2)numpy。用于科學(xué)計(jì)算,支持大量的維度數(shù)組與矩陣運(yùn)算。(3)matplotlib.pyplot:類似MATLAB的繪圖框架,支持?jǐn)?shù)據(jù)的可視化。
2.2.2 數(shù)據(jù)預(yù)處理
對(duì)股票數(shù)據(jù)集進(jìn)行預(yù)處理,使得滿足模型訓(xùn)練需要。本次實(shí)驗(yàn)將數(shù)據(jù)集中的60%作為訓(xùn)練集,40%作為驗(yàn)證集,劃分?jǐn)?shù)據(jù)集時(shí)進(jìn)行數(shù)據(jù)歸一化處理,這樣可以提高模型的精度以及加快模型的收斂速度。LSTM算法在訓(xùn)練集上進(jìn)行模型訓(xùn)練,再使用該模型對(duì)測(cè)試集進(jìn)行預(yù)測(cè),將預(yù)測(cè)結(jié)果與測(cè)試集的真實(shí)值進(jìn)行對(duì)比,以評(píng)估該模型的性能。
2.2.3 搭建模型與訓(xùn)練模型
搭建LSTM模型的關(guān)鍵代碼如下所示:
x = fluid.layers.data(name=’x’, shape=[1], dtype=’float32’, lod_level=1)
label = fluid.layers.data(name=’y’, shape=[1], dtype=’float32’)
fc0 = fluid.layers.fc(input=x, size= 4)
lstm_h, c = fluid.layers.dynamic_lstm(input=fc0, size=4, is_reverse=False)
模型搭建完成后開始訓(xùn)練,通過設(shè)置訓(xùn)練的回合數(shù)、批數(shù)據(jù)大小等參數(shù),來觀察其對(duì)訓(xùn)練結(jié)果的影響。由此得到較好的預(yù)測(cè)效果。
2.2.4 訓(xùn)練結(jié)果
使用訓(xùn)練后的模型對(duì)測(cè)試集數(shù)據(jù)進(jìn)行股票預(yù)測(cè)并觀察預(yù)測(cè)效果。將預(yù)測(cè)值Predicted Value和真實(shí)值True Value的折線圖繪制在一起進(jìn)行對(duì)比。LSTM神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)結(jié)果如圖2所示。
圖2 LSTM神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)結(jié)果
通過圖2可以看出,使用PaddlePaddle構(gòu)建的股票預(yù)測(cè)深度學(xué)習(xí)模型展示了預(yù)測(cè)值Predicted Value和真實(shí)值True Value有較好的擬合程度。
本文結(jié)合實(shí)際應(yīng)用問題,緊跟最新技術(shù)的步伐,重點(diǎn)強(qiáng)調(diào)教學(xué)過程的易懂性和實(shí)用性及系統(tǒng)性。通過基于PaddlePaddle平臺(tái)的機(jī)器學(xué)習(xí)課程實(shí)驗(yàn)案例的研究,提高了學(xué)生利用機(jī)器學(xué)習(xí)方法解決復(fù)雜工程問題的能力,結(jié)合交叉學(xué)科的現(xiàn)實(shí)案例,既讓學(xué)生能掌握基礎(chǔ)的機(jī)器學(xué)習(xí)相關(guān)知識(shí),又讓學(xué)生充分了解機(jī)器學(xué)習(xí)技術(shù)的發(fā)展前沿。在此基礎(chǔ)上學(xué)會(huì)利用PaddlePaddle進(jìn)行算法實(shí)現(xiàn)和開發(fā),進(jìn)一步加深對(duì)理論知識(shí)的理解、概念的建立。除此以外,該課程實(shí)驗(yàn)案例研究能讓學(xué)生在發(fā)現(xiàn)問題解決問題的過程中,掌握學(xué)科知識(shí)的具體應(yīng)用與實(shí)現(xiàn),極大地調(diào)動(dòng)了學(xué)生學(xué)習(xí)的積極性,可以借此課程實(shí)驗(yàn)案例研究引導(dǎo)學(xué)生自發(fā)學(xué)習(xí)相關(guān)的知識(shí)。