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

?

基于TensorFlow的犯罪時間序列預(yù)測

2020-06-11 09:26:16雷陽
電子技術(shù)與軟件工程 2020年1期
關(guān)鍵詞:定義神經(jīng)網(wǎng)絡(luò)深度

文/雷陽

(1.福建警察學(xué)院偵查系 福建省福州市 350003 2.福建警察學(xué)院犯罪學(xué)研究所 福建省福州市 350003)

人工智能(AI)的高速發(fā)展離不開數(shù)據(jù)“質(zhì)”和“量”的提升,也離不開高性能計算平臺的發(fā)展,更離不開算法的不斷進步,深度學(xué)習(xí)則成為了推動算法進步的主力軍之一。Tensorflow 作為谷歌開源的深度學(xué)習(xí)框架,其中包含了谷歌近十年間對人工智能的探索及成功的商業(yè)應(yīng)用。

深度學(xué)習(xí)帶來的技術(shù)革命影響深遠,學(xué)術(shù)界早也從中受益,將深度學(xué)習(xí)廣泛應(yīng)用于各個科學(xué)領(lǐng)域。深度學(xué)習(xí)來源于神經(jīng)網(wǎng)絡(luò)技術(shù),這不僅標(biāo)志著傳統(tǒng)神經(jīng)網(wǎng)絡(luò)的再次發(fā)揚光大,也借助AlphaGo 在圍棋的對戰(zhàn)中戰(zhàn)勝人類,揭開了AI 迅速發(fā)展的幕布。機器學(xué)習(xí)為人工智能指明方向,而深度學(xué)習(xí)則讓機器學(xué)習(xí)穩(wěn)扎穩(wěn)打的進行下去。在近年來國內(nèi)外互聯(lián)網(wǎng)大亨對未來的展望中能看出,伴隨著深度學(xué)習(xí)的人工智能將是下一個時代的頂梁柱。

在對一個未知文件做分析的時候,會使用到邏輯回歸算法。大部分情況下,當(dāng)訓(xùn)練數(shù)據(jù)達到一定數(shù)據(jù)之前,越多的訓(xùn)練數(shù)據(jù)可以讓邏輯回歸算法分析得越準(zhǔn)確。換句話說,邏輯回歸算法可以根據(jù)訓(xùn)練數(shù)據(jù)提高在文件分析問題上的正確率。深度學(xué)習(xí)受神經(jīng)科學(xué)的啟發(fā),使得機器學(xué)習(xí)的研究者們常常會使用不同的算法完成不同的任務(wù)設(shè)計。而深度學(xué)習(xí)的通用性可以使研究者們跨越多個研究方向甚至在所有研究方向都有所進展。如今的深度學(xué)習(xí)已經(jīng)發(fā)展到超越了神經(jīng)科學(xué)的觀點,可以更廣泛地應(yīng)用于各種不是從神經(jīng)系統(tǒng)啟發(fā)而來的機器學(xué)習(xí)框架。深度學(xué)習(xí)領(lǐng)域更注重于搭建智能計算機系統(tǒng),解決人工智能的問題。

在短短的幾年內(nèi),深度學(xué)習(xí)從最開始的圖像識別,推廣到了機器學(xué)習(xí)的各個領(lǐng)域,而且有著特別出色的表現(xiàn),例如語音和圖像識別、音頻和自然語言的處理、化學(xué)和生物信息的處理、機器人、電腦游戲、搜索引擎、醫(yī)學(xué)、金融等各大領(lǐng)域。

Tensorflow 是由Jeff Dean 為主要開發(fā)者的谷歌團隊基于谷歌內(nèi)部第一代深度學(xué)習(xí)系統(tǒng)DistBelief 改進而來的通用計算框架,在2011年開發(fā)的BistBelief 深度學(xué)習(xí)工具已經(jīng)在Google 內(nèi)部獲得巨大成功,但DistBelief 依賴于Google 內(nèi)部系統(tǒng)框架,為了使深度學(xué)習(xí)軟件擁有較強的通用性,增加其計算速度和穩(wěn)定性,也為了使其支持更多的計算平臺和更多的深度學(xué)習(xí)算法,2015年11月Google 發(fā)布了新的深度學(xué)習(xí)計算框架TensorFlow,到目前為止已經(jīng)得到了廣泛的應(yīng)用。

1 TensorFlow開發(fā)平臺

TensorFlow 借助數(shù)學(xué)運算和節(jié)點之間傳遞的多維數(shù)組(張量)的結(jié)構(gòu),通過API 將計算工作部署到桌面設(shè)備、服務(wù)器或者移動設(shè)備中的一個或者多個CPU 或GPU。Time Series 分析是統(tǒng)計學(xué)中動態(tài)數(shù)據(jù)處理的方法之一。通過使用Python 語言編程,將觀測到的Time Series 數(shù)據(jù)用圖線擬合的方式客觀地描述系統(tǒng)。在發(fā)布的TensorFlow 新版本中,引入了Time Series 模塊,現(xiàn)在可以用自回歸模型、Anomaly Mixture AR、LSTM三種模型對時間序列進行預(yù)測。對于時間序列可簡單的看成由觀測時間點和觀測值所組成。先通過NumPy 或者CSV 讀取數(shù)據(jù),再通過已經(jīng)建立的模型進行訓(xùn)練、驗證和對時間序列的預(yù)測。

圖1:程序編寫步驟

圖2:LSTM 單元結(jié)構(gòu)示意圖

通過Anaconda 安裝Python 語言與Jupyter 編譯器的交互環(huán)境,再安裝好TensorFlow,打開Jupyter 編譯器進行編程,步驟如圖1所示。

如圖1 中,編程要先通過import 導(dǎo)入各種程序包。例如一般會用“import tensorflow as tf”的形式載入TensorFlow,這樣在程序中就可以使用“tf”來代替“tensorflow”來作為模塊名稱,使得程序更簡潔。導(dǎo)入TensorFlow 是賦予Python 訪問TensorFlow 類、方法、符號的權(quán)限,導(dǎo)入NumPy 主要用于提取處理數(shù)據(jù)和進行計算,matplotlib 主要用于繪制結(jié)果圖。同樣也會使用“import numpy as np”和“import matplotlib.pyplot as plt”來簡化程序。

在設(shè)置參數(shù)時,通常會設(shè)置一些運算函數(shù)時需要使用的循環(huán)次數(shù)等的參數(shù),還可能會定義一個或多個placeholder。Placeholder(占位符)是作為一個計算圖可以參數(shù)化的接受外部的輸入,它是允許程序后面再提供一個數(shù)值。

在定義函數(shù)、創(chuàng)建訓(xùn)練集和神經(jīng)網(wǎng)絡(luò)的時候需要根據(jù)不同情況進行編寫程序。例如比較常見的,在創(chuàng)建完一個模型之后需要對其進行訓(xùn)練評估,這時候就會需要定義一個比較常用的函數(shù)——損失函數(shù)loss,這個函數(shù)度量當(dāng)前模型和提供數(shù)據(jù)的距離,之后可以用梯度下降法等方法來減小損失函數(shù),從而使得建立出來的模型與真實模型越來越接近。

最后的創(chuàng)建會話Session,循環(huán)迭代完成目標(biāo)要求,用matplotlib 對結(jié)果進行畫圖。

圖3:LSTM 模型對sin 函數(shù)的擬合和預(yù)測結(jié)果

2 時間序列預(yù)測的LSTM模型

假設(shè)需要預(yù)測一個句子,這個句子的模型的所有信息都需要被考慮進去才能得出最后的結(jié)論,不能僅僅靠著最后的一個詞或幾個詞來完成這個預(yù)測。這也是對于循環(huán)神經(jīng)網(wǎng)絡(luò)的一個很大的技術(shù)挑戰(zhàn)——長期依賴問題。LSTM 的誕生就是為了解決這個問題。這使得LSTM 在這些問題上比普通的循環(huán)神經(jīng)網(wǎng)絡(luò)更加有優(yōu)勢,也表現(xiàn)得更好。LSTM 還有一個重要的特點就是對序列的處理方式,LSTM 可以收集更多的信息和語境從而完成遠距離的信息處理問題和在復(fù)雜語言場景里循環(huán)神經(jīng)網(wǎng)絡(luò)性能受到限制的問題。

與單一的tanh 循環(huán)體結(jié)構(gòu)不同的,LSTM 擁有著三個“門”結(jié)構(gòu),如圖2 所示。

LSTM 靠著這些“門”結(jié)構(gòu)讓信息有選擇性地影響循環(huán)神經(jīng)網(wǎng)絡(luò)中每個時刻的狀態(tài)。將使用sigmoid 神經(jīng)網(wǎng)絡(luò)作為激活函數(shù)的會輸出一個0 或1 的數(shù)值的全連接神經(jīng)網(wǎng)絡(luò)層和按位乘法組合起來形成一個門結(jié)構(gòu)。門打開時(sigmoid 神經(jīng)網(wǎng)絡(luò)層輸出位1 時)所有信息都可以正常通過,反之,門關(guān)閉時(sigmoid 神經(jīng)網(wǎng)絡(luò)層輸出位0 時)所有信息都無法通過。

LSTM 結(jié)構(gòu)兩種門作為核心的存在,那就是“遺忘門”和“輸入門”。

遺忘門的公式定義為:

遺忘門的作用就是讓循環(huán)神經(jīng)網(wǎng)絡(luò)忘記之前沒有用的信息。它根據(jù)當(dāng)前的輸入值xt和上一個時刻的輸入值ht-1決定哪些信息需要被遺忘。

輸出門的公式定義為:

在遺忘門工作之后,循環(huán)神經(jīng)網(wǎng)絡(luò)需要從當(dāng)前的輸入中補充新的信息進入系統(tǒng)中。同理,它根據(jù)當(dāng)前的輸入值xt和上一個時刻的輸入值ht-1決定哪些信息需要被補充進入循環(huán)神經(jīng)網(wǎng)絡(luò)中。

3 基于TensorFlow的犯罪時間序列預(yù)測

首先,對sin 函數(shù)進行時間序列建模和測試:

定義的LSTM 模型為:

圖4:LSTM 模型對犯罪走勢的預(yù)測結(jié)果

每個時間點的觀測值都是一個單獨的數(shù)值,建立隱藏層大小為128 的LSTM。對前500 個觀測值進行輸入,向后預(yù)測200 個長度后,可以得到最后的預(yù)測如圖3。

對某地區(qū)犯罪時間序列進行預(yù)測。在預(yù)測前需要使用CSV 文件來讀取數(shù)據(jù),使用“f=open(‘crime_dataset.csv’)”語句讀入犯罪數(shù)據(jù),將數(shù)據(jù)按照日期先后排序后展示數(shù)據(jù),如圖4 中藍線所示。先創(chuàng)建訓(xùn)練集,設(shè)置步長為20,每次訓(xùn)練60 個數(shù)據(jù),輸入層及輸出層的維度取1。其次定義神經(jīng)網(wǎng)絡(luò)變量weights 和biases 作為輸入層、輸出層的權(quán)重和偏置。定義LSTM 網(wǎng)絡(luò),將二維張量運算結(jié)果作為隱藏層的輸入。最后再定義訓(xùn)練模型和損失函數(shù),設(shè)置訓(xùn)練次數(shù)為10000,預(yù)測結(jié)果如圖4 紅線所示,獲得了較好的預(yù)測效果。

猜你喜歡
定義神經(jīng)網(wǎng)絡(luò)深度
深度理解一元一次方程
神經(jīng)網(wǎng)絡(luò)抑制無線通信干擾探究
電子制作(2019年19期)2019-11-23 08:42:00
深度觀察
深度觀察
深度觀察
基于神經(jīng)網(wǎng)絡(luò)的拉矯機控制模型建立
重型機械(2016年1期)2016-03-01 03:42:04
成功的定義
山東青年(2016年1期)2016-02-28 14:25:25
復(fù)數(shù)神經(jīng)網(wǎng)絡(luò)在基于WiFi的室內(nèi)LBS應(yīng)用
基于支持向量機回歸和RBF神經(jīng)網(wǎng)絡(luò)的PID整定
修辭學(xué)的重大定義
当涂县| 福泉市| 青神县| 新乐市| 安阳县| 太保市| 若尔盖县| 耒阳市| 安义县| 普兰店市| 秦安县| 龙海市| 类乌齐县| 新蔡县| 黄龙县| 固阳县| 建德市| 图们市| 诸城市| 洮南市| 车险| 吉木萨尔县| 城步| 沙湾县| 通海县| 格尔木市| 定安县| 荆门市| 定南县| 盐源县| 武汉市| 凉山| 五原县| 进贤县| 泽普县| 岳阳市| 永和县| 舞钢市| 鄢陵县| 安义县| 虹口区|