国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于神經(jīng)網(wǎng)絡(luò)的正弦波函數(shù)擬合實(shí)現(xiàn)研究

2019-10-21 06:51陳豪吳健
現(xiàn)代信息科技 2019年21期
關(guān)鍵詞:神經(jīng)網(wǎng)絡(luò)

陳豪 吳健

摘? 要:針對(duì)在人工智能教學(xué)當(dāng)中,學(xué)生掌握線性回歸之后對(duì)其他的初等函數(shù)的擬合實(shí)現(xiàn)產(chǎn)生的疑問(wèn),進(jìn)行簡(jiǎn)單的教學(xué)研究。主要采用TensorFlow開(kāi)源軟件庫(kù),利用Python語(yǔ)言來(lái)編寫神經(jīng)網(wǎng)絡(luò)程序。對(duì)于已有的呈現(xiàn)正弦波樣態(tài)分布的點(diǎn)的集合進(jìn)行訓(xùn)練,并通過(guò)調(diào)整訓(xùn)練參數(shù)最終得到擬合成功的正弦波模型,可以為其他的初等函數(shù)的擬合及以后基于訓(xùn)練模型的預(yù)測(cè)研究提供一些見(jiàn)解。

關(guān)鍵詞:TensorFlow;Python;神經(jīng)網(wǎng)絡(luò);正弦波;擬合

中圖分類號(hào):TP183;O174? ? ? 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):2096-4706(2019)21-0004-03

Abstract:We mainly focus on the questions of the fitting of other primary functions after students master linear regression in AI teaching,and then carries out some simple teaching research. It mainly uses TensorFlow open source software library and uses Python language to write neural network program. By training the existing set of points which present the distribution of sinusoidal wave patterns and adjusting the training parameters,the sinusoidal wave model can be successfully fitted,which can provide some insights for the fitting of other elementary functions and the prediction research based on the training model in the future.

Keywords:TensorFlow;Python;neural network;sine wave;fitting

0? 引? 言

在人工智能基礎(chǔ)課程的教學(xué)中,對(duì)于線性回歸的理解是掌握其他各種復(fù)雜的算法規(guī)律的第一步,緊接之后要學(xué)習(xí)的就是根據(jù)線性方程進(jìn)行數(shù)據(jù)歸類的預(yù)測(cè)。在各類基礎(chǔ)的人工智能教學(xué)材料中,都將線性回歸放在最前面予以講授。在實(shí)際的教學(xué)過(guò)程中,因?yàn)閷W(xué)生對(duì)于線性方程在中學(xué)階段已有掌握,對(duì)于線性回歸的知識(shí)理解起來(lái)也并無(wú)大的障礙。但是掌握了線性回歸之后,會(huì)自然而然地引向非線性的情況,應(yīng)該如何進(jìn)行回歸計(jì)算并得出判斷結(jié)論。提煉后,得到學(xué)生提出的具體問(wèn)題是:在已知的初等函數(shù)中,除了線性方程外,是否其他的函數(shù),如冪函數(shù)、對(duì)數(shù)函數(shù)、三角函數(shù)等的方程式皆可以成為回歸的判斷結(jié)論?本文就這個(gè)疑問(wèn),從初等函數(shù)中選取正弦波函數(shù)進(jìn)行針對(duì)性的初步研究。

1? 搭建環(huán)境與建立數(shù)據(jù)集

在人工智能的教學(xué)中主要采用主流的TensorFlow開(kāi)源軟件庫(kù),Google作為其開(kāi)發(fā)者已經(jīng)推廣多年,各種開(kāi)發(fā)環(huán)境與插件較為完善。如果采用國(guó)內(nèi)百度的飛槳(PaddlePaddle)開(kāi)源庫(kù)同樣可以完成此項(xiàng)任務(wù),但主流教學(xué)中已經(jīng)采用了TensorFlow,它的高使用率與高市占率可以讓學(xué)生在對(duì)口企業(yè)中快速上手,有利就業(yè),故采用TensorFlow開(kāi)發(fā)。利用PyCharm IDE,配合安裝Python 3.6版本,并導(dǎo)入TensorFlow的官方包,進(jìn)行環(huán)境運(yùn)行測(cè)試,成功后,指導(dǎo)學(xué)生開(kāi)始開(kāi)始建立訓(xùn)練所需的點(diǎn)數(shù)據(jù)集。這里還需要在PyCharm中安裝pandas和NumPy工具插件,利用它們建立訓(xùn)練用數(shù)據(jù)集。

建立數(shù)據(jù)集分為三步,首先在[-π,π]之間生成400個(gè)平均分布的等距離點(diǎn)。關(guān)鍵語(yǔ)句為:

train_X = numpy.linspace(-math.pi, -math.pi, 400)

train_X = train_X.reshape(-1, 1)

train_X = train_X.astype('float32')

然后,為了讓數(shù)據(jù)集看起來(lái)較為真實(shí),需要添加微小擾動(dòng)的干擾值,生成干擾值的關(guān)鍵語(yǔ)句為:

train_noise = numpy.random.normal(0, 0.03, train_X.shape)

train_noise = train_noise.astype('float32')

最后,完成訓(xùn)練點(diǎn)數(shù)據(jù)集的生成,關(guān)鍵語(yǔ)句為:

train_y = numpy.sin(train_X) + train_noise

這里使用利用Matplotlib庫(kù)的pyplot對(duì)象顯示訓(xùn)練集數(shù)據(jù)的分布狀況,如圖1所示。

2? 建立神經(jīng)網(wǎng)絡(luò)與參數(shù)初始化

模擬正弦曲線涉及到非線性,這里利用神經(jīng)網(wǎng)絡(luò)來(lái)完成。TensorFlow中提供了方便地建立神經(jīng)網(wǎng)絡(luò)的搭建工具。對(duì)于正弦波擬合,搭建2層的神經(jīng)網(wǎng)絡(luò)就可以了。這里定義1個(gè)前置輸入層、2個(gè)連接層、1個(gè)輸出層的簡(jiǎn)單神經(jīng)網(wǎng)絡(luò)。2個(gè)連接層之間的連接的輸出結(jié)果需要通過(guò)ReLU函數(shù)進(jìn)行激活,然后數(shù)據(jù)進(jìn)入第2個(gè)連接層,再次使用適當(dāng)?shù)臋?quán)重與偏移,直接輸出到輸出層。整體神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)如圖2所示。

3? 模型訓(xùn)練

3.1? 訓(xùn)練過(guò)程

模型的生成需要經(jīng)過(guò)多次重復(fù)訓(xùn)練,最初設(shè)置循環(huán)2000次,但循環(huán)開(kāi)始后,訓(xùn)練次數(shù)超過(guò)1000后圖形基本無(wú)變化。經(jīng)過(guò)反復(fù)測(cè)試得出,設(shè)置訓(xùn)練次數(shù)為800次既不耗費(fèi)過(guò)多時(shí)間,也可以獲得較好的訓(xùn)練效果。程序設(shè)置每經(jīng)過(guò)40次訓(xùn)練循環(huán),渲染當(dāng)前圖形并報(bào)告當(dāng)前的損失函數(shù)。渲染當(dāng)前圖像采用plt的散點(diǎn)圖,y值的顯示范圍設(shè)定-1.3到1.3,確保能夠顯示圖形的全部部分,在進(jìn)入到下一次40倍數(shù)的循環(huán)次數(shù)后,清空當(dāng)前畫面中已有的渲染點(diǎn),將新的訓(xùn)練計(jì)算結(jié)果與x結(jié)對(duì)的點(diǎn)實(shí)時(shí)顯示出來(lái)。

for step in range(800):

session.run(optimizer.minimize(loss))

if step % 40 == 0:

predict = session.run(predict_y)

if step:

ax.lines.remove(lines[0])

lines = ax.plot(X, predict, 'b-', lw=5)

plt.title('step: %d loss: %.4f' %(step, session.run(loss)))

3.2? 結(jié)果擬合

經(jīng)過(guò)多次循環(huán)運(yùn)算之后形成了擬合樣態(tài)效果。整體圖形的變化趨勢(shì)是,開(kāi)始圖形變換比較快,每經(jīng)過(guò)40次循環(huán)后擬合彎曲形態(tài)和角度會(huì)有很大變化,但到了100次之后,變化幅度變小,圖形只在細(xì)微的部分發(fā)生變化。觀察損失函數(shù)的變化也具有這樣的趨勢(shì)。所以不進(jìn)行平均取樣展示,而是先前的取樣間隔為40次,后期雙倍次數(shù)取樣。這里具體取樣的是第0次、第40次、第80次、第120次以及第200次、第280次、第360次、第440次的擬合結(jié)果。損失函數(shù)也從最初的23.3060急速下降到了后期在0.0100以下,并緩慢變化到0.0040。抽取各次的圖形后漸進(jìn)的效果如圖3所示。

完成800次循環(huán)之后,最終擬合的圖像如圖4所示。損失函數(shù)降到0.0029。如果繼續(xù)增加訓(xùn)練次數(shù),損失函數(shù)無(wú)法繼續(xù)下降,甚至?xí)匦禄氐?.0030以上,所以本次訓(xùn)練的能夠達(dá)到的損失函數(shù)最低為0.0029。

可以看到,其實(shí)在400次循環(huán)后,擬合效果已經(jīng)較好。到800次結(jié)束時(shí),紅色擬合線已經(jīng)基本與正弦曲線重疊,正弦函數(shù)模擬模型訓(xùn)練成功,可用于之后的預(yù)測(cè)。

4? 結(jié)? 論

通過(guò)以上的操作,利用神經(jīng)網(wǎng)絡(luò),通過(guò)已有的訓(xùn)練數(shù)據(jù)集,實(shí)現(xiàn)了正弦波曲線的擬合。解答了學(xué)生的提出的疑問(wèn)。還可以通過(guò)修改程序?qū)崿F(xiàn)其他三角函數(shù)的擬態(tài),以及其他初等函數(shù),例如指數(shù)函數(shù)、對(duì)數(shù)函數(shù),包括混合初等函數(shù)的擬合,學(xué)生可以利用之前學(xué)習(xí)到的高等數(shù)學(xué)知識(shí)進(jìn)行舉一反三的訓(xùn)練,增強(qiáng)對(duì)高等數(shù)學(xué)在人工智能中應(yīng)用的理解。接下來(lái),可以利用TensorFlow的模型保存與重載機(jī)制,進(jìn)行新進(jìn)數(shù)據(jù)的狀態(tài)預(yù)測(cè)??傊?,利用好TensorFlow或者PaddlePaddle開(kāi)源工具,配合Python語(yǔ)言,將其融入到人工智能的教學(xué)中,以直觀可視的方式讓學(xué)生了解艱深的人工智能的知識(shí)。

參考文獻(xiàn):

[1] 劉帥奇,趙杰,劉明,等.新工科背景下基于教師科研成果轉(zhuǎn)化的實(shí)踐教學(xué)研究 [J].課程教育研究,2019(14):39-40.

[2] 楊沛,譚琦,丁月華.一種面向非線性回歸的遷移學(xué)習(xí)模型 [J].計(jì)算機(jī)科學(xué),2009,36(8):212-214+242.

[3] 周飛燕,金林鵬,董軍.卷積神經(jīng)網(wǎng)絡(luò)研究綜述 [J].計(jì)算機(jī)學(xué)報(bào),2017,40(6):1229-1251.

[4] 徐曉.計(jì)算機(jī)視覺(jué)中物體識(shí)別綜述 [J].電腦與信息技術(shù),2013,21(5):4-6+41.

[5] 盧宏濤,張秦川.深度卷積神經(jīng)網(wǎng)絡(luò)在計(jì)算機(jī)視覺(jué)中的應(yīng)用研究綜述 [J].數(shù)據(jù)采集與處理,2016,31(1):1-17.

作者簡(jiǎn)介:陳豪(1982-),男,漢族,江蘇鹽城人,講師,碩士,主要研究方向:人工智能、大數(shù)據(jù)技術(shù);吳?。?985-),男,漢族,江蘇蘇州人,實(shí)驗(yàn)師,碩士,主要研究方向:軟件技術(shù)。

猜你喜歡
神經(jīng)網(wǎng)絡(luò)
基于人工智能LSTM循環(huán)神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)成績(jī)預(yù)測(cè)
基于圖像處理與卷積神經(jīng)網(wǎng)絡(luò)的零件識(shí)別
基于改進(jìn)VGG-16神經(jīng)網(wǎng)絡(luò)的圖像分類方法
基于自適應(yīng)神經(jīng)網(wǎng)絡(luò)的電網(wǎng)穩(wěn)定性預(yù)測(cè)
三次樣條和二次刪除相輔助的WASD神經(jīng)網(wǎng)絡(luò)與日本人口預(yù)測(cè)
基于BP神經(jīng)網(wǎng)絡(luò)PID控制的無(wú)刷直流電動(dòng)機(jī)調(diào)速系統(tǒng)設(shè)計(jì)
都昌县| 林西县| 逊克县| 澜沧| 封丘县| 花莲县| 锡林郭勒盟| 塔城市| 辽阳市| 漳浦县| 什邡市| 卓尼县| 三都| 疏附县| 耿马| 青铜峡市| 辛集市| 治多县| 保靖县| 林西县| 九龙县| 和龙市| 秦安县| 江陵县| 交口县| 祁阳县| 阿合奇县| 湄潭县| 明水县| 什邡市| 吴桥县| 旌德县| 永州市| 达日县| 方正县| 桓台县| 湛江市| 德安县| 鱼台县| 岱山县| 丰台区|