亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于TensorFlow.js前端機(jī)器學(xué)習(xí)進(jìn)行線性回歸擬合及油井壓力預(yù)測研究

        2020-04-08 16:15:44王鵬徐小輝肖萍李淑郭怡曉
        中國管理信息化 2020年24期
        關(guān)鍵詞:線性回歸

        王鵬 徐小輝 肖萍 李淑 郭怡曉

        [摘 要]近年來,隨著人工智能技術(shù)的發(fā)展應(yīng)用,機(jī)器學(xué)習(xí)的框架及研究工具逐漸成熟。其中,TensorFlow.js是由Google的AI團(tuán)隊發(fā)布的一款基于硬件加速的JavaScript庫,用于訓(xùn)練和部署機(jī)器學(xué)習(xí),用戶在瀏覽器端就可以利用應(yīng)用程序編程接口(Application Programming Interface,API)完成機(jī)器學(xué)習(xí)的基本任務(wù)。在油氣田開發(fā)領(lǐng)域中,產(chǎn)生的生產(chǎn)及分析數(shù)據(jù)具有數(shù)據(jù)量小、相關(guān)性強(qiáng)的特點(diǎn),在機(jī)器學(xué)習(xí)過程中,大部分業(yè)務(wù)通過瀏覽器就能進(jìn)行簡單的數(shù)據(jù)線性回歸、分類、目標(biāo)識別、可視化等處理操作,具有簡單、快速、易學(xué)等特點(diǎn)。文章以線性回歸模型為例,對探井試油過程中的油管壓力數(shù)據(jù)采用前端機(jī)器學(xué)習(xí)方法進(jìn)行線性回歸擬合,并實(shí)現(xiàn)壓力預(yù)測。

        [關(guān)鍵詞]TensorFlow.js;前端機(jī)器學(xué)習(xí);線性回歸;壓力預(yù)測

        doi:10.3969/j.issn.1673 - 0194.2020.24.047

        [中圖分類號]F270.7;TM715[文獻(xiàn)標(biāo)識碼]A[文章編號]1673-0194(2020)24-0-02

        0? ? ?引 言

        油氣田開發(fā)領(lǐng)域建立了很多關(guān)系型數(shù)據(jù)庫,在進(jìn)行探井或區(qū)塊業(yè)務(wù)分析過程中,實(shí)際使用的數(shù)據(jù)量并不大,不需要采用圖形處理器(Graphics Processing Unit,GPU)進(jìn)行加速學(xué)習(xí)運(yùn)算,在瀏覽器端就能營造一個回歸、神經(jīng)網(wǎng)絡(luò)、長短期記憶網(wǎng)絡(luò)(Long Short-Term Memory,LSTM)等模型的訓(xùn)練環(huán)境,讓用戶通過便捷的瀏覽器操作就能實(shí)現(xiàn)機(jī)器學(xué)習(xí)的整個過程,從而達(dá)到數(shù)據(jù)預(yù)測、分類、圖像識別等目的。

        1? ? ?淺神經(jīng)網(wǎng)絡(luò)和直線線性回歸擬合

        神經(jīng)網(wǎng)絡(luò)是機(jī)器學(xué)習(xí)中的一種模型,是一種模仿動物神經(jīng)網(wǎng)絡(luò)行為特征,進(jìn)行分布式并行信息處理的算法數(shù)學(xué)模型。這種網(wǎng)絡(luò)依靠系統(tǒng)的復(fù)雜程度,通過調(diào)整內(nèi)部大量節(jié)點(diǎn)之間相互連接的關(guān)系,達(dá)到處理信息的目的。

        淺神經(jīng)網(wǎng)絡(luò)只包含一到兩層隱藏層,如圖1所示,包括輸入層、隱藏層和輸出層。神經(jīng)元是神經(jīng)網(wǎng)絡(luò)中的原子單元,給定神經(jīng)元一個輸入x,它將得到對應(yīng)的輸出a,并將其作為下一層的輸入。一個神經(jīng)元可以認(rèn)為是以下兩部分的結(jié)合:第一部分根據(jù)輸入和權(quán)重計算得到Z;第二部分在Z上施加激活函數(shù)得到神經(jīng)元的最終輸出a。

        直線線性回歸擬合是多項式曲線擬合的一個特例,即:一元一次多項式,由給定的一組數(shù)據(jù)點(diǎn)(xi,yi)去描繪直線y=w×x+b的近似圖像。直線擬合方法就是從給出的一大堆看上去雜亂無章的數(shù)據(jù)中找出規(guī)律,設(shè)法構(gòu)造一條直線,反映所給數(shù)據(jù)點(diǎn)的趨勢,以消除所給數(shù)據(jù)的局部波動。TensorFlow.js就是通過訓(xùn)練數(shù)據(jù),實(shí)現(xiàn)一元線性回歸模型訓(xùn)練,推測出線性回歸函數(shù)y=w×x+b中w和b的值,并通過驗證數(shù)據(jù),驗證得到的函數(shù)是否符合預(yù)期。

        2? ? ?TensorFlow.js前端機(jī)器學(xué)習(xí)的過程及方法

        2.1? ?構(gòu)建學(xué)習(xí)環(huán)境

        在JavaScript項目中,TensorFlow.js的安裝方法有兩種:一種是通過script標(biāo)簽引入;另外一種是通過npm安裝。

        方法1:只需將以下腳本包含在html文件的header中即可自動加載最新版本的TensorFlow.js。其中,使用Script Tag如下。

        方法2:使用yarn或npm將TensorFlow.js添加到您的項目中。注意:因為使用ES2017語法(如import),所以此工作流程假定您使用打包程序/轉(zhuǎn)換程序?qū)⒋a轉(zhuǎn)換為瀏覽器可以理解的內(nèi)容。

        yarn add @tensorflow/tfjs或npm install @tensorflow/tfjs

        在js文件中輸入以下代碼:

        import * as tf from '@tensorflow/tfjs';

        2.2? ?準(zhǔn)備訓(xùn)練數(shù)據(jù)

        訓(xùn)練數(shù)據(jù)的初始化如下,這里tx是所有點(diǎn)數(shù)據(jù)的x坐標(biāo),ty是所有點(diǎn)數(shù)據(jù)的y坐標(biāo)。

        const train_x = tf.tensor1d(tx);

        const train_y = tf.tensor1d(ty);

        2.3? ?構(gòu)建一個模型

        TensorFlow.js有兩種創(chuàng)建機(jī)器學(xué)習(xí)的方法。

        2.3.1? ?用Layers API創(chuàng)建模型

        通過tf.model()創(chuàng)建LayersModel,這個方式適用于單獨(dú)測試每一層并檢查它們的輸出。

        可以通過model.layers使用模型中的每一層,用model.inputLayers和model.outputLayers調(diào)用輸入層和輸出層。使用LayersModels讓驗證更方便:要求您定義輸入形狀,并用您定義的形狀驗證您對模型的輸入。LayersModel會自動計算模型中所有張量的形狀。知道張量的形狀后,模型可以自動創(chuàng)建需要的參數(shù)。

        const input = tf.input({shape: [784]});

        const dense1 = tf.layers.dense({units: 32, activation: 'relu'}).apply(input);

        const dense2 = tf.layers.dense({units: 10, activation: 'softmax'}).apply(dense1);

        const model = tf.model({inputs: input, outputs: dense2});

        2.3.2? ?用Core API創(chuàng)建模型

        用Core API創(chuàng)建的模型包含一系列函數(shù)。這些函數(shù)以一個或多個張量作為輸入,并輸出另一個張量。可以利用Core API定義的模型,創(chuàng)造自己的序列化方法。

        const w = tf.variable(tf.scalar(Math.random()));

        const b = tf.variable(tf.scalar(Math.random()));

        function model(x) {return x.mul(w) .add(b);};

        在Core API中,需要自己創(chuàng)建和初始化權(quán)重。每個權(quán)重都是一個Variable,TensorFlow.js會把Variable權(quán)重設(shè)為可訓(xùn)練張量。可以用tf.variable()創(chuàng)建Variable或把一個已存在的張量放到Variable中。

        2.4? ?訓(xùn)練模型

        一個訓(xùn)練好的模型將提供從輸入數(shù)據(jù)到所需輸出數(shù)據(jù)的準(zhǔn)確映射。訓(xùn)練包含以下4個步驟:獲取一批數(shù)據(jù)到模型、根據(jù)模型得出預(yù)測值、對比預(yù)測值與真實(shí)值、確定每個參數(shù)的變更值,以便后期模型將來可以更好地預(yù)測該批次。

        用Layers API創(chuàng)建的模型在訓(xùn)練前必須先進(jìn)行編譯,編譯LayersModel通過調(diào)用model.compile()與提供的優(yōu)化器、損失函數(shù)、指標(biāo)等選項,在編譯過程中,模型將進(jìn)行一些驗證,以確保您選擇的選項彼此兼容,如下所示。

        model.compile({optimizer:'sgd',loss: 'categoricalCrossentropy',metrics: ['accuracy']});

        模型訓(xùn)練則通過調(diào)用model.fit()方法實(shí)現(xiàn),在后臺能自動對大的數(shù)據(jù)張量進(jìn)行拆分調(diào)用,并將數(shù)據(jù)集分為訓(xùn)練集和驗證集,且使用驗證集衡量訓(xùn)練期間的進(jìn)度,在計算有關(guān)數(shù)據(jù)批次的模型損失時調(diào)用optimizer.minimize()等各項操作,用法如下所示。

        model.fit(xData,yData,{batchSize:20,epochs:5,});

        用Core API創(chuàng)建的模型則需要用戶自行遍歷所有的批處理數(shù),在每個批處理內(nèi),循環(huán)遍歷所有批次數(shù)據(jù),在每個批次中,都會調(diào)用optimizer.minimize(),通過計算先前定義的變量梯度,實(shí)現(xiàn)最小化輸出,并通過模型定義的損失函數(shù)計算預(yù)測值和真實(shí)值的損失。

        3? ? ?油井壓力實(shí)例預(yù)測

        在準(zhǔn)噶爾盆地南緣勘探井試油生產(chǎn)過程中,受到結(jié)蠟、含水、地層、產(chǎn)液量等因素影響,某勘探井的油管壓力在相同生產(chǎn)制度下隨著時間不斷變化,每天的數(shù)據(jù)有一定的波動性,需要采取線性回歸的方式進(jìn)行后期穩(wěn)定生產(chǎn)的壓力遞減預(yù)測。收集某一制度下油井的上千條壓力和時間數(shù)據(jù),并將日期時間通過JavaScript內(nèi)置函數(shù)Date()將日期處理轉(zhuǎn)換為時長作為xData進(jìn)行訓(xùn)練,該油井油壓數(shù)據(jù)小于100 MPa,因此可將油壓數(shù)據(jù)均除以100后進(jìn)行歸一化處理,并作為yData進(jìn)行訓(xùn)練,以便在訓(xùn)練過程中數(shù)據(jù)具有更好的收斂性。

        4? ? 結(jié) 語

        本文提出了一種基于TensorFlow.js前端機(jī)器學(xué)習(xí)進(jìn)行油壓壓力預(yù)測的方法,該方法通過建立淺神經(jīng)網(wǎng)絡(luò)模型,對歷史數(shù)據(jù)進(jìn)行直線線性回歸擬合,對未來的壓力變化進(jìn)行可靠預(yù)測。利用TensorFlow.js建立多層神經(jīng)網(wǎng)絡(luò)模型,如Layers模型進(jìn)行數(shù)據(jù)回歸分類,油氣井壓裂后實(shí)現(xiàn)產(chǎn)能預(yù)測;卷積神經(jīng)網(wǎng)絡(luò)模型訓(xùn)練圖像進(jìn)行抽油機(jī)示功圖的智能識別等,在油氣田開發(fā)領(lǐng)域具有巨大的應(yīng)用空間。

        主要參考文獻(xiàn)

        [1]J Schmidhuber.Deep Learning in Neural Networks:An Overview

        [J].Neural Networks,2015,61:85-117.

        [2]王全,梁敬文.基于TensorFlow的交通標(biāo)志識別方法研究[J].價值工程,2019(27):204-206.

        [3]劉巍,劉威,谷建偉.基于機(jī)器學(xué)習(xí)方法的油井日產(chǎn)油量預(yù)測[J].石油鉆采工藝,2020(1):70-75.

        [4]彭巖,王萬森,王旭仁,等.基于機(jī)器學(xué)習(xí)的風(fēng)險預(yù)測方法研究[J].計算機(jī)科學(xué),2009(4):205-207.

        [5]段澤英,肖春林,游莉,等.基于油田生產(chǎn)數(shù)據(jù)的油井生產(chǎn)趨勢預(yù)測方法研究[C]//2013數(shù)字與智能油氣田(國際)會議暨展會論文集,2013.

        [6]游莉,肖春林,段澤英,等.基于油田生產(chǎn)數(shù)據(jù)的油井產(chǎn)量趨勢預(yù)測方法研究[J].中國管理信息化,2014(4):58-62.

        猜你喜歡
        線性回歸
        國道公路養(yǎng)護(hù)管理與規(guī)劃研究
        供給側(cè)改革視角下的商業(yè)銀行財務(wù)壞賬研究
        會計之友(2016年22期)2016-12-17 15:39:26
        我國客運(yùn)與城鎮(zhèn)化關(guān)系研究
        投資者情緒與股票市場收益的相互影響分析
        中國市場(2016年18期)2016-06-07 05:12:49
        基于差分隱私的線性回歸分析
        影響上市公司股票價格的微觀因素分析
        商(2016年13期)2016-05-20 09:12:44
        企業(yè)退休金收支平衡的研究
        科技視界(2016年9期)2016-04-26 12:16:25
        基于線性回歸法的車牌傾斜矯正算法
        基于回歸分析的馬鈴薯產(chǎn)值總量實(shí)證研究
        企業(yè)退休金收支平衡的模型分析
        科技視界(2016年1期)2016-03-30 09:21:51
        亚洲欧美日韩国产综合一区二区| 国产在线视频91九色| 国产精品久久精品第一页| 亚洲中文字幕无码爆乳| 无码人妻av一二区二区三区| 亚洲国产精品尤物yw在线观看| 国产亚洲美女精品久久久2020| 久久综合五月天啪网亚洲精品 | 初高中生精品福利视频| 国产免费视频一区二区| 在线观看亚洲av每日更新影片| 18禁在线永久免费观看| 国产精品久久久久久久| 欧美性猛交xxxx乱大交丰满| 国产一区二区三区免费在线视频| 国产成人久久综合第一区| 国产av剧情刺激对白| 久久久久成人精品无码| 国产大学生粉嫩无套流白浆| 97性视频| 国产一级一片内射在线| 中文字幕乱码熟女人妻在线| 久久不见久久见中文字幕免费 | а√资源新版在线天堂| 手机在线精品视频| 少妇高潮无码自拍| 国产二区中文字幕在线观看| 国产一区二区精品久久岳| 中出人妻中文字幕无码| 手机看片1024精品国产| 在线观看人成网站深夜免费| 一本色道久久婷婷日韩| 亚洲国产精品一区二区www| 久久免费网国产AⅤ| 成年人男女啪啪网站视频| 久久精品熟女亚洲av麻豆永永| 亚洲国产果冻传媒av在线观看| 午夜男女爽爽爽在线视频| 色婷婷狠狠97成为人免费| 中文字幕人妻久久久中出| 国产亚洲精品美女久久久m|