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