【文献】
坪井 祐太,自然言語処理におけるディープラーニングの発展,オペレーションズ・リサーチ,公益社団法人日本オペレーションズ・リサーチ学会,2015年 4月 1日,第60巻 第4号,p.205-211
【文献】
渡辺 太郎,ニューラルネットワークによる機械学習の発展,人工知能,日本,一般社団法人 人工知能学会,2016年 3月 1日,第31巻,p.202-209
(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0010】
以下、添付図面を参照して本発明の実施形態を説明する。本実施形態は本発明を実現するための一例に過ぎず、本発明の技術的範囲を限定するものではないことに注意すべきである。各図において共通の構成については同一の参照符号が付されている。
【0011】
図1は、本実施形態の文章作成装置100の構成例を示す。文章作成装置100は、プロセッサ110、メモリ120、補助記憶装置130、入出力インタフェース140を含む。上記構成要素は、バスによって互いに接続されている。メモリ120、補助記憶装置130又はこれらの組み合わせは記憶装置の例である。
【0012】
メモリ120は、例えば半導体メモリから構成され、主にプログラムやデータを一時的に保持するために利用される。メモリ120は、訓練データ生成プログラム121、文章作成モデルプログラム122、学習プログラム123、及び運用プログラム124を格納する。
【0013】
プロセッサ110は、メモリ120に格納されているプログラムに従って、様々な処理を実行する。プロセッサ110がプログラムに従って動作することで、様々な機能部が実現される。例えば、プロセッサ110は、上記プログラムそれぞれに従って、訓練データ生成部、文章作成モデル部、学習部、及び運用部として動作する。
【0014】
補助記憶装置130は、例えばハードディスクドライブやソリッドステートドライブなどの大容量の記憶装置から構成され、プログラムやデータを長期間保持するために利用される。補助記憶装置130に格納されたプログラムが起動時又は必要時にメモリ120にロードされ、このプログラムをプロセッサ110が実行することにより、文章作成装置100の各種処理が実行される。したがって、以下においてプログラムにより実行される処理は、プロセッサ110又は文章作成装置100により処理である。
【0015】
補助記憶装置130は、地質レポートデータベース132、油井ログデータベース134、訓練データデータベース136、岩石属性−測定量関係テーブル547、及び語句−パターン関係テーブル548を格納している。
【0016】
入出力インタフェース140は、周辺機器との接続のためのインタフェースであり、例えば、入力装置142及び表示装置144とが接続される。入力装置142は、ユーザが文章作成装置100に指示や情報などを入力するためのハードウェアデバイスであり、表示装置144は、入出力用の各種画像を表示するハードウェアデバイスである。
【0017】
文章作成装置100は、文章作成モデルプログラム122のための、学習モードと運用モード(処理フェーズ)を有する。文章作成モデルプログラム122は、深層学習モデルのプログラムである。運用モードにおいて、運用プログラム124は、文章作成モデルプログラム122に複数タイプの測定量の測定データを入力する。測定データは系列データであり、例えば、入力装置142を介して補助記憶装置130に格納される。
【0018】
文章作成モデルプログラム122は、入力測定データから、対応する文章を推測し、作成する。運用プログラム124は、例えば、作成された文章を、表示装置144において表示する。作成された文章は、補助記憶装置130に格納されてもよい。
【0019】
以下に説明する例においては、測定データは、油井掘削における1又は複数タイプのセンサによる測定データ(センサデータ)であり、文章は地質レポートである。一つのタイプのセンサにより単一又は複数タイプの測定量が測定される。本実施形態に係る深層学習の概念は、油井掘削と異なる分野に適用することができる。
【0020】
訓練データ生成プログラム121は、学習モードにおいて使用される訓練データを、地質レポートデータベース132及び油井ログデータベース134から生成する。訓練データは、それぞれが複数タイプの測定量の測定データ(センサデータ)と文章とからなる複数のペアからなる。
【0021】
学習プログラム123は、訓練データにおける測定データを文章作成モデルプログラム122に入力し、その出力と訓練データにおける文章との誤差に基づき、文章作成モデルプログラム122のパラメータを更新する。後述するように、文章作成モデルプログラム122は複数のニューラルネットワーク及びテキストデータをベクトル化するユニットを含む。
【0022】
図2は、シェールオイル・ガス掘削の概要を示す。シェールオイル・ガス掘削は、油井201を下方向に掘り進め、シェール層に達したら、掘削方向を横に変える。油井201掘削経路203を有する。シェールオイル・ガス掘削は、シェール層では、水圧破砕により岩盤に裂け目
205を形成し、形成した裂け目
205からオイル・ガスを抽出する。
【0023】
シェールオイル・ガスの掘削中、ドリルに配設された複数タイプのセンサにより測定された数値データが収集され、油井掘削のログデータとして、油井ログデータベース134に格納される。さらに、シェールオイル・ガスの掘削において、サンプリングされた岩石の特徴を記述した地質レポート(テキストデータ)が、分析者によって作成され、地質レポートデータベース132に格納される。オペレータは、測定データと地質レポートの情報から、水平掘りに変える位置、水圧破砕を行う位置を決定する。
【0024】
文章作成装置100は、運用モードにおいて、測定データから地質レポートを自動生成する。油井ログデータベース134及び地質レポートデータベース132は、同じ油井群のデータを格納している。油井ログデータベース134及び地質レポートデータベース132のデータは、学習モードにおける訓練データとして使用される。
【0025】
図3は、油井ログデータベース134の構成例を示す。油井ログデータベース134は、複数の油井の測定データを格納する。本例において、共通の入口を有する異なる経路は異なる油井とする。測定データは、油井掘削において1又は複数タイプのセンサによって測定されたデータである。各測定タイプの測定データは、深さにおける測定値の変化を示す。各センサは、所定の間隔で測定を行う。測定値の取得間隔は、例えば、0.5mから1.0mのいずれかの値である。
【0026】
図3は、いくつかの測定量タイプの測定データの例を示す。具体的には、
図3は、ガンマ線(GR)、掘進率(ROP)、メタン(C1)、エタン(C2)の測定データを示す。測定される測定量タイプは、これらに限定されない。異なる油井の測定量タイプは、異なっていても同一であってもよい。
【0027】
図4は、地質レポートデータベース132の構成例を示す。各地質レポート321は、油井掘削においてサンプリングされた岩石の、色、硬さ、油染みの有無などの情報を、所定フォーマットで記述する。地質レポート(テキストデータ)321は、岩石を採取(サンプリング)した深さの範囲を表す部分と、深さ範囲内の地層においてサンプリングされた岩石の詳細説明の部分と、から構成される。「深さ」は、油井の入り口からの掘削経路長を意味する。一つの地質レポート321は、深さ範囲ごとの岩石の特徴を記述する系列データである。
【0028】
各深さ範囲の詳細説明は、対応する深さ範囲でサンプリングされた岩石の物理的及び化学的特徴(属性)を、所定ルールの下で記述する。地質レポートデータベース132の全ての地質レポートは、このルールに従う。ルールは、岩石属性タイプの記述順序を定義する。岩石属性タイプは、語句タイプの例である。
図4の例において、ルールは、「色」、「硬さ」、「油染みの有無」、「孔隙率」……の順序で記述することを規定する。一つの地質レポートにおいて、1又は複数の岩石属性の記載が省略されていてもよい。
【0029】
図5は、地質レポートにおいて記述される岩石属性タイプ及び岩石属性タイプにおいて使用される語句の例を示す。ここで、語句は、1又は複数の単語で構成される。上述のように、地質レポートにおいて記述される岩石属性タイプ及びそれらの記述順序は、規定されている。一つの岩石属性タイプは、1又は複数の語句で記述される。
【0030】
文章作成装置100は、地質レポートデータベース132の数値データ(測定データ)と油井ログデータベース134のテキストデータとの間の関係を学習する。さらに、文章作成装置100は、学習した関係に基づき、新たな測定データから、規定ルールに基づき、地質レポートを自動的に作成する。例えば、文章作成装置100は、予め定義されている順序にしたがって岩石属性タイプを順次選択し、各岩石属性タイプを記述する1又は複数の単語を辞書(word embeddingマトリックス)から選択する。
【0031】
学習モードにおける訓練データの生成を説明する。訓練データ生成プログラム121は、地質レポートデータベース132及び油井ログデータベース134からデータを取得して訓練データを生成し、生成した訓練データを訓練データデータベース136に格納する。
【0032】
図6は、一つの油井の地質レポートとログ(測定データ)とから訓練データを生成する処理のフローチャートを示す。訓練データ生成プログラム121は、地質レポートデータベース132に格納されている複数のレポート、例えば、油井ログデータベース134に対応する測定データ(数値データ)が格納されている全ての地質レポートに対して、
図6のフローチャートの処理を繰り返す。
【0033】
図6を参照して、訓練データ生成プログラム121は、一つの地質レポートを、地質レポートデータベース132から取得する(S101)。訓練データ生成プログラム121は、選択した地質レポートと同油井のログ(複数測定量タイプの測定データ)を、油井ログデータベース134から取得する(S103)。
【0034】
訓練データ生成プログラム121は、地質レポートにおける深さ範囲それぞれの、詳細説明と複数測定量タイプの測定データとのペアを生成し、訓練データデータベース136に格納する(S105)。上述のように、各センサ(測定量タイプ)の測定間隔は、地質レポートが作成される間隔よりも小さい。一つのペアは、特定深さ範囲の岩石属性の詳細説明と、当該深さ範囲における複数測定量タイプの測定データと、で構成される。詳細説明はテキストデータである。測定データは数値データであって、複数測定量タイプの測定値の深さに対する変化を示す。
【0035】
図7は、訓練データを使用した文章作成モデルの学習のフローチャートを示す。学習プログラム123は、訓練データを使用した深層学習により、文章作成モデルプログラム122の適切なパラメータを改善する。
【0036】
まず、学習プログラム123は、訓練データデータベース136から訓練データを取得する(S151)。取得する訓練データは、岩石属性の詳細説明のテキストデータと複数測定量タイプの測定データである数値データとの、複数のペアである。
【0037】
学習プログラム123は、取得した訓練データから、それぞれが複数ペアの訓練データからなる複数のバッチを生成し、順次文章作成モデルプログラム122に入力する(S153)。学習プログラム123は、バッチバックプロパゲーションにより、文章作成モデルプログラム122のパラメータを更新する(S155)。
【0038】
学習プログラム123は、教師データである訓練データにおける詳細説明と、文章作成モデルプログラム122が生成するテキストと、の間の誤差、及び、損失関数を使用して、文章作成モデルプログラム122のパラメータを修正する。バッチバックプロパゲーションは公知の技術であり、詳細説明を省略する。
【0039】
バッチバックプロパゲーションの回数が、予め設定されているepoch数に達している場合(S157:YES)、学習プログラム123は、学習処理を終了する。バッチバックプロパゲーションの回数が、予め設定されているepoch数に達していない場合(S157:NO)、学習プログラム123は、ステップS153に戻る。バッチバックプロパゲーションによる損失の減少が閾値未満である場合に、学習プログラム123は、S153に戻ることなく、学習処理を終了してもよい。
【0040】
図8は、文章作成モデルプログラム122の構成及び処理の概要を模式的に示す。文章作成モデルプログラム122は、エンコーダ及びデコーダ構造を有するニューラルネットワークを利用して、測定データから地質レポートを作成する。
【0041】
文章作成モデルプログラム122は、エンコード処理を実行するエンコーダ400及びデコード処理を実行するデコーダ500を含む。外部からの入力データは、エンコーダ400に入力される。1回の入力は、一つのベクトル401である。本例において、文章作成モデルプログラム122の不図示のベクトル生成部は、入力ベクトル401を、一つの測定量タイプの一つの深さ範囲での測定データから生成する。
【0042】
一つの文章(地質レポート)に対して、複数のベクトル401が順次入力される。複数の入力ベクトル401は、それぞれ、当該地質レポートの深さ範囲での複数測定量タイプの測定データから生成される。エンコーダ400は、複数の入力ベクトル401から、一つのエンコーダ出力ベクトル402を生成する。エンコーダ出力ベクトル402は、入力データ全体から抽出された特徴を示す特徴ベクトルであり、固定の次元数(ベクトルサイズ)を有する。
【0043】
エンコーダ400の出力は、デコーダ500の入力である。デコーダ500の出力は、文章作成モデルプログラム122の出力である。本例において、デコーダ500は、エンコーダ400が生成した特徴ベクトル402から、岩石属性の詳細説明を示すベクトル(ここでは文章ベクトルと呼ぶ)501を生成する。後述するように、デコーダ500は、階層構造を有し、さらに、Attention機構により岩石属性と個々の測定量タイプとの間の関係を学習する。
【0044】
エンコーダ400は、CNN(Convolutional Neural Network)部410、LSTM(Long short−term memory)部420、及び融合部430を含む。LSTMは、RNN(Recurrent Neural Network)の一例である。
【0045】
CNN部410は、入力データの局所的領域それぞれの特徴を抽出し、入力データのノイズを低減する。CNN部410は、一次元のCNNであり、入力は一つの測定量タイプの特定深さ範囲における測定データである。測定データは、深さにおける測定値の変化を示し、系列データである。一つの測定量タイプの測定データは、入力ベクトル401で表わされる。一つの文章に対して、複数測定量タイプの測定データを、それぞれ独立にCNN部410に入力することで、各測定量タイプが独自に示す特徴的なパターンを抽出可能とする。
【0046】
CNN部410は、複数の固定サイズのベクトル(ベクトル群403)を出力する。後述するように、ベクトル群403のベクトルは、畳み込み層におけるフィルタ群による特徴マップに対応する。なお、CNNにより適切な特徴ベクトルを測定データから効率的に取得することができるが、CNNと異なるアルゴリズム、例えば、FFT(Fast Fourier Transform)を使用して測定データの特徴ベクトルを生成してもよい。エンコーダ400は、FFTを使用して、各測定タイプの測定データのスペクトログラム(二次元イメージ)を生成し、スペクトログラムに対してCNNを適用してもよい。
【0047】
CNN出力ベクトル群403は、LSTM部420に入力される。LSTM部420は、入力されたベクトル群403と同数のベクトルからなるベクトル群404を出力する。LSTM部420は、さらに、最終出力状態ベクトル405を出力する。LSTM部420は、CNNでは十分に示すことが困難な、測定データの系列データとしての特徴を、より適切に抽出する。なお、LSTM部420は省略してもよい。
【0048】
複数の測定量タイプの測定データから生成されたベクトル401が順次入力され、LSTM部420は、ベクトル401の入力数と同数の、最終出力状態ベクトル405及び出力ベクトル群404を、それぞれ生成する。
【0049】
融合部430は、複数の最終出力状態ベクトル405を融合して、一つの固定サイズのベクトル402を生成する。融合部430は、例えば、全結合層により固定サイズのベクトルを生成する。ベクトル402は、エンコーダ400の出力ベクトルであり、デコーダ500の入力ベクトルである。複数のLSTM出力ベクトル群404は、デコーダ500におけるAttention機構のために参照(入力)される。
【0050】
デコーダ500は、エンコーダ出力ベクトル402と、複数のLSTM出力ベクトル群404とから、文章ベクトル501を生成する。文章ベクトル501は、入力された測定データに対する地質レポートを表す。上述のように、地質レポートにおける岩石属性の記述順序は予め定義されている。文章ベクトル501は、岩石属性タイプそれぞれに対して選択された1又は複数の単語を示す。
【0051】
文章ベクトル501は、運用モードにおいて生成される。学習モードにおいて、デコーダ500は、各岩石属性における、単語それぞれの確率を出力する。学習プログラム123は、出力された確率、教師データ及び損失関数に基づき、文章作成モデルプログラム122のパラメータを更新する。
【0052】
デコーダ500は階層構造を有し、岩石属性LSTM510及び単語LSTM530を含む。後述するように、岩石属性LSTM510と単語LSTM530との間において、データが入出力される。上述のように、地質レポートは、所定の岩石属性タイプそれぞれについて記述する。階層的LSTM及び階層的Attention機構により、各岩石属性タイプのより適切な記述を可能とする。なお、デコーダ500は階層構造を有していない、つまり、単一LSTMで文章ベクトル501を生成してもよい。CNN部410による処理をCNN処理(畳み込みニューラルネットワーク処理)と呼ぶ。LSTM部420、510、530それぞれによる処理を、LSTM処理と呼ぶ。LSTM処理は再帰ニューラルネットワーク処理の例である。
【0053】
以下において、文章作成モデルプログラム122の構成要素の詳細を説明する。
図9はCNN部410による処理を模式的に示す。上述のように、CNN部410に対して、一つの地質レポートの一つの深さ範囲における、複数測定量タイプの測定データが、順次入力される。
図9は、入力される一つの測定量タイプの測定データ411を例として示す。入力される測定データは、ベクトルで表わされる。
【0054】
CNN部410は、積み重ねられた畳み込み層とプーリング層とを含み、畳み込み及びプーリングを繰り返し実行する。畳み込みは、入力データに対して、複数の小領域フィルタによるフィルタリングを実行し、複数の特徴マップ(特徴マップ群)412を生成する。一つのフィルタは、入力データにおいてシフトしつつフィルタ内の値の積和を計算し、一つの特徴マップを生成する。
【0055】
畳み込みは、測定データの局所的な特徴を抽出する。プーリングは、局所的な特徴を集約するように、各特徴マップを縮小する。CNN部410は、複数の特徴マップそれぞれをベクトル化して、複数の固定長のベクトルからなるCNN出力ベクトル群403を生成する。CNN出力ベクトル群403の各ベクトルは、測定データにおける部分的な特徴を示す特徴ベクトルである。なお、畳み込み層とプーリング層それぞれの数は設計に依存し、プーリング層は省略されてもよい。
【0056】
図10は、LSTM部420による処理を模式的に示す。LSTMはRNNであり、隠れ層の値を再び隠れ層に入力するネットワーク構造を有する。RNNは、以前に計算された情報を覚える記憶力を持つ。RNNは、その時点までのデータの情報を使用することで、入力データの系列情報を取り込む。LSTMは、より長期の情報を利用することができる。
【0057】
LSTM部420の出力データは、測定データの系列データとしての特徴を表すことができる。LSTM部(LSTMユニット)420は、通常のデータ入力421及びデータ出力422に加え、状態入力423及び状態出力424を有する。
【0058】
LSTM部420は、CNN出力ベクトル群403の複数ベクトルを、順次取得し、LSTM出力ベクトル群404のベクトルを順次出力する。CNN出力ベクトル群403から選択された一つのベクトルは、データ入力421に入力される。LSTM出力ベクトル群404における対応する一つのベクトルが、データ出力422から出力される。LSTM出力ベクトル群404のベクトルは、それぞれ、CNN出力ベクトル群403のベクトルに対応する。従って、LSTM出力ベクトル群404の各ベクトルは、測定データにおける部分的な特徴を示す特徴ベクトルである。
【0059】
状態入力423に対しては、状態出力424からのベクトルが入力される。状態入力423への最初の入力は、規定の初期ベクトルである。LSTM部420は、CNN出力ベクトル群403の最後のベクトルの入力に対する状態出力424のベクトルを、最終出力状態ベクトル405として出力する。
【0060】
図11は、デコーダ500の処理を模式的に示す。
図11の例において、二つの測定量タイプの測定データが、エンコーダ400に入力されている。エンコーダ400は、測定量タイプAのLSTM出力ベクトル群404Aと、測定量タイプBのLSTM出力ベクトル群404Bと、を生成する。エンコーダ出力ベクトル402は、測定量タイプAの測定データによるLSTM部420の最終
出力状態ベクトルと、測定量タイプBの測定データによるLSTM部420の最終
出力状態ベクトルとから生成されている。
【0061】
岩石属性LSTM部510は、繰り返し処理により隠れ状態ベクトルを順次生成する。
図11は、三つの状態ベクトル511〜513を、例として示す。1ステップにおいて生成された状態ベクトルは、次のステップに入力される。岩石属性LSTM510の各ステップは、三つの入力を有する。一つは前ステップの出力状態ベクトル、一つはAttention機構540からの出力ベクトル、一つは単語LSTM530からの出力である。
【0062】
単語LSTM部530は、岩石属性LSTM510のステップそれぞれからの入力を受けて、繰り返し処理(ループ)を繰り返す。単語LSTM部530は、一回の繰り返し処理において、岩石属性LSTM510のステップからベクトルを受け、岩石属性LSTM510の次のステップにベクトルを出力する。
【0063】
単語LSTM部530は、一回の繰り返し処理において、隠れ状態ベクトル532と、データ出力ベクトルとを順次生成する。隠れ状態ベクトル532は、次のステップで入力される。一回の繰り返し処理における最終ステップの状態ベクトル532は、岩石属性LSTM510の次のステップに入力される。
【0064】
単語LSTM部530のデータ出力ベクトルは、使用する単語を決定するためのベクトルである。単語LSTM部530は、繰り返し処理により、現在の岩石属性タイプに対する記述単語を順次出力する。データ出力ベクトルは、例えば不図示のsoftmax関数に、入力される。softmax関数は、単語それぞれの確率を示す。運用モードにおいて、デコーダ500は最も確率が高い単語を選択する。学習モードにおいて、学習プログラム123は、訓練データの単語の確率が最も高くなるようにデコーダ500のパラメータを更新する。
【0065】
単語LSTM530の各ステップにおいて、word embeddingマトリクス531により生成される直前の単語のベクトルが入力される。word embeddingマトリクス531は、単語のインデックスから当該単語のベクトルを生成する。運用モードにおいて、デコーダ500は、直前ステップで選択された単語(最高確率の単語)のインデックスをword embeddingマトリクス531に入力し、現在ステップに入力する単語のベクトルを生成する。
【0066】
学習モードにおいて、学習プログラム123は、訓練データにおける直前の単語のインデックスをword embeddingマトリクス531において検索し、現在ステップに入力する単語のベクトルを決定する。word embeddingマトリクス531は、CNN部410、LSTM部420、岩石属性LSTM部510、単語LSTM部530と共に、学習対象である。
【0067】
各岩石属性タイプの文章は、開始記号で始まり、終了記号で終了する。双方のモードにおいて、単語LSTM部530の最初のステップへの入力単語ベクトルは、開始記号のベクトルである。単語LSTM部530のステップ数は固定である。文章の単語数よりも単語LSTM530部のステップ数が多い場合、終了記号の後に所定の記号が追加される。
【0068】
一回の繰り返し処理における、単語LSTM部530の最初のステップへの入力は、岩石属性LSTM部510の状態ベクトル及びword embeddingマトリクス531により生成される開始記号のベクトルである。二番目以降のステップにおける入力は、直前ステップの出力状態ベクトルと、直前ステップでの単語のベクトルである。最終ステップの状態ベクトル(最終出力状態ベクトル)は、岩石属性LSTM部510の次のステップに入力される。
【0069】
デコーダ500は、二段階のAttention機構540を有する。Attention機構540により生成されたベクトルは、岩石属性LSTM510に入力される。Attention機構540は、第1層541及び第2層542を有する。
【0070】
図11は、状態ベクトル512の生成において、Attention機構540により生成されたベクトル543が入力される例を示す。Attention機構540により生成されたベクトルは、岩石属性LSTM510の各ステップ(各状態ベクトルの生成)において入力さされる。Attention機構540は、岩石属性LSTM部510の現在ステップへ入力するベクトルを、岩石属性LSTM部510における直前ステップの状態ベクトル及びLSTM出力ベクトル群404A、40
4Bから、生成する。
【0071】
エンコーダ出力ベクトル402は、岩石属性LSTM部510の最初のステップに入力される。エンコーダ出力ベクトル402と共に、Attention機構540からのベクトルが岩石属性LSTM510に入力される。Attention機構540は、エンコーダ出力ベクトル402、LSTM出力ベクトル群404A、404Bから、岩石属性LSTM510に入力されるベクトルを生成する。単語LSTM部530からの出力に対応する初期値が、さらに、岩石属性LSTM部510の最初のステップに入力される。
【0072】
岩石属性LSTM部510の最初のステップの出力ベクトルは、単語LSTM部530の最初のステップに入力される。単語LSTM部530は、岩石属性LSTM部510からの出力ベクトルと、word embeddingマトリクス531からの開始記号の単語ベクトルとから、状態ベクトルと選択単語を示すためのデータベクトルを出力する。softmax関数は、データベクトルから単語それぞれの確率を示し、運用モードにおいて最高確率の単語が選択される。
【0073】
単語LSTM部530は、直前のステップからの状態ベクトルとword embeddingマトリクス531からの直前の単語の単語ベクトルとを入力として、ステップを繰り返す。最後のステップからの状態ベクトルは、岩石属性LSTM部510に入力される。
【0074】
岩石属性LSTM部510は、二番目以降のステップにおいて、直前ステップの状態ベクトル、Attention機構540からのベクトル、及び単語LSTM部530からの最終状態ベクトルを入力として受け取る。Attention機構540は、岩石属性LSTM部510における直前ステップの状態ベクトル及びLSTM出力ベクトル群404A、40
4Bから、岩石属性LSTM部510の現在ステップへ入力するベクトルを生成する。
【0075】
図12は、学習モードにおける単語LSTM部530の処理を模式的に示す。単語LSTM部530は、データ入力535、データ出力536、状態入力537、状態出力538を有する。word embeddingマトリクス531により生成された訓練データの単語の単語ベクトルが、繰り返されるステップにおいて、順次データ入力535に入力される。
【0076】
訓練データの最初単語は開始記号であり、最後の単語は終了記号である。訓練データの単語数が、単語LSTM部530のステップ数を超える場合、終了記号の後に所定記号が追加される。
【0077】
データ出力536からのベクトルが、softmax関数により、単語の確率を示すベクトルに変換される。単語の確率を示すベクトルは、学習における損失を計算するために使用される。
【0078】
状態出力538からのベクトルは、状態入力537に入力される。状態入力537への初期ベクトルは、岩石属性LSTM部510から出力された状態ベクトルである。状態出力538からの最終状態ベクトルは、次の属性LSTM部510のステップに入力される。
【0079】
図13は、運用モードにおける単語LSTM部530の処理を模式的に示す。学習モードとの違いは、データ入力535へ入力される単語ベクトルである。運用モードにおいて、デコーダ500は、データ出力536からのベクトルをsoftmax関数により変換し、最高確率の単語を地質レポートに含める単語として選択する。
【0080】
デコーダ500は、word embeddingマトリクス531から選択した単語の単語ベクトルを、次のステップのデータ入力535へ入力する。データ入力535へのデータ入力535への初期ベクトルは、開始記号の単語ベクトルである。以降、デコーダ500は、データ出力536における最高確率の単語のベクトルをword embeddingマトリクス531から選択して、次のステップのデータ入力535へ入力する。
【0081】
運用モードにおける状態入力537への入力ベクトル及び状態出力538からの出力ベクトルは、学習モードにおけるベクトルと同様である。
【0082】
図14は、岩石属性LSTM部510の処理を模式的に示す。岩石属性LSTM部510は、二つのデータ入力515、518、状態入力516、及び状態出力517を有する。状態出力517からのベクトルが、状態入力516に入力される。状態入力516への初期ベクトルは、エンコーダ400からのエンコーダ出力ベクトル402である。
【0083】
直前の岩石属性のための単語LSTM部530の繰り返し処理における、ベクトル状態出力538からの、最終出力状態ベクトルが、データ入力(以下単語入力と呼ぶ)515に入力される。単語入力515への初期ベクトルは、予め定められているベクトルである。Attention機構540からのベクトル543が、データ入力(以下Attention入力と呼ぶ)518に入力される。
【0084】
Attention機構540は、岩石属性LSTM部510の現在ステップへ入力するベクトルを、岩石属性LSTM部510における直前ステップの状態ベクトル及びLSTM出力ベクトル群404A、404Bから、生成する。最初ステップへのベクトルは、エンコーダ出力ベクトル402及びLSTM出力ベクトル群404A、404Bから、生成される。
【0085】
図11に示すように、Attention機構540は、第1層541及び第2層542の二層構造を有する。エンコーダ出力ベクトル402は、固定長ベクトルであり、測定データの一部の情報が欠落し得る。二階層のAttention機構540により、岩石属性LSTM510の状態の観点から、より多くの情報を測定データから取得することができる。
【0086】
第1層541は、岩石属性LSTM510の出力状態ベクトルと測定量タイプそれぞれのLSTM出力ベクトル群とを比較して、複数ベクトルを生成する。
図11の例において、第1層541は、岩石属性LSTM510の出力状態ベクトル511と、LSTM出力ベクトル群404A、404Bそれぞれとを比較して、ベクトル544、545を生成する。
【0087】
第1層541は、各測定量タイプのベクトルを、例えば、下記式(1)の重み付き和により、ベクトルを生成する。
【0089】
ここで、aiは、LSTM出力ベクトル群の各ベクトルであり、qは岩石属性LSTM510の出力状態ベクトルである。sim(ai,q)は、ベクトル間の類似度を示し、下記式(2)又は式(3)により与えられる。M1は学習の変数である。sim(ai,q)は、他の式で計算されてもよい。
【0092】
数式(1)は、LSTM出力ベクトルそれぞれに重みを掛け、それらの総和を計算する。LSTM出力ベクトルの重みは、そのLSTM出力ベクトルと岩石属性LSTM510の状態ベクトルとの類似度を示す。重みは、岩石属性LSTM510の状態と類似度が高い程大きい。数式(1)により、一つの測定量タイプの測定データにおいて、一つ前のステップの岩石属性LSTM510の状態と類似度がより高い深さ範囲のデータが、より高い影響を次のステップに与える。
【0093】
第2層542は、例えば、下記式(4)の重み付き和により、Attention機構540の出力ベクトルを生成する。
【0095】
ここで、tiは、第1層541において生成される各ベクトルであり、qは岩石属性LSTM510の出力状態ベクトルである。sim(ti,q)は、ベクトル間の類似度を示し、下記式(5)又は式(6)により与えられる。M2は学習の変数である。sim(ti,q)は、他の式で計算されてもよい。
【0098】
数式(4)は、第1層541の出力ベクトルそれぞれに重みを掛け、それらの総和を計算する。
第1層541の出力ベクトルの重みは、その
第1層541の出力ベクトルと岩石属性LSTM510の状態ベクトルとの類似度を示す。重みは、岩石属性LSTM510の状態と類似度が高い程大きい。数式(4)により、複数の測定量タイプにおいて、一つ前のステップの岩石属性LSTM510の状態と類似度がより高い測定量タイプのデータが、より高い影響を次のステップに与える。
【0099】
上述のように、文章作成装置100は、油井掘削における測定データと地質レポートの訓練データを使用した深層学習により、油井掘削における測定データから対応する地質レポートを推定し、作成することができる。文章作成装置100は、訓練データを変更することで、油井掘削と異なる分野に適用することができる。文章作成装置100は、対象の測定データと当該対象についての文章とからなるペアの訓練データを使用して深層学習によりパラメータを改善する。文章作成装置100は、訓練データと同一タイプの特定対象の測定データ受信し、当該特定対象のついての文章を推定、作成する。
【0100】
図15は、岩石属性タイプと測定量タイプとの間の関係を示す、岩石属性−測定量関係テーブル547の例を示す。学習プログラム123は、入力装置142からユーザ入力に応じて、岩石属性−測定量関係テーブル547の情報を表示装置144において表示する。ユーザは、岩石属性−測定量関係テーブル547の情報を参照することによって、岩石属性タイプと測定量タイプとの間の関係の学習結果を知ることができる。
【0101】
例えば、学習プログラム123は、入力装置142から岩石属性タイプ又は測定量タイプの指定を受けると、最も関係性が高い測定量タイプ又は岩石属性タイプを表示装置144において表示する。学習プログラム123は、指定された岩石属性タイプと全ての測定量タイプとの関係性又は指定された測定量タイプと全ての岩石属性タイプとの関係性を示してもよい。
【0102】
図15は、
6の岩石属性タイプと6の
測定量タイプの例を示す。岩石属性−測定量関係テーブル547の各セルの値は、岩石属性タイプに対する測定量タイプの重み(関係性)を表す。例えば、岩石属性「Rock Type」について、複数の測定量タイプの内、C1測定量タイプが最も影響を受けやすい(関係性が強い)測定量タイプである。
【0103】
岩石属性−測定量関係テーブル547は、学習モードにおける、Attention機構540における第2層542において計算される類似度から得られる値を格納する。学習プログラム123は、以下のステップにより岩石属性−測定量関係テーブル547を生成する。
【0104】
学習プログラム123は、地質レポートと複数測定量タイプの測定データとの各ペア(訓練データの各ペア)に対して、岩石属性−測定量関係テーブル547と同様構成の中間テーブルを生成し、それら岩石属性−測定量関係テーブルの値の統計値を、岩石属性−測定量関係テーブル547に格納する。
【0105】
訓練データにおける一つのペアのデータから、岩石属性−測定量関係テーブル547と同様構成の中間テーブルを生成する方法を説明する。学習プログラム123は、岩石属性LSTM510の各ステップにおいて、全測定量タイプのsim(ti,q)を取得する。
図15の例において、sim(ti,q)の数は6である。
【0106】
学習プログラム123は、岩石属性LSTM510の各ステップにおいて、取得したsim(ti,q)から、ベクトルS(s_1、・・・s_M)を生成する。ここで、s_i=sim(ti,q)である。Mはセンタタイプの数であり、
図15の例において6である。岩石属性LSTM510の一つのステップにおけるベクトルSが、当該ステップの岩石属性タイプのレコードである。岩石属性LSTM510の全てのステップにおけるベクトルSからなるマトリックスが、当該訓練データペアの中間テーブルのデータである。
【0107】
学習プログラム123は、全ての訓練データペアについて、中間テーブルを生成する。学習プログラム123は、中間テーブルの各セルの統計値を計算して、最終的な岩石属性−測定量関係テーブル547の値を決定する。例えば、各セルの平均値が、岩石属性−測定量関係テーブル547における値である。
【0108】
図16は、地質レポートの語句と測定データから抽出されるパターンとの関係を示す、語句−パターン関係テーブル548の例を示す。学習プログラム123は、ユーザ入力に応じて、語句−パターン関係テーブル548の情報を表示装置144において表示する。ユーザは、語句−パターン関係テーブル548を参照することによって、地質レポートの語句と測定データから抽出されるパターンとの間の関係の学習結果を知ることができる。
【0109】
例えば、学習プログラム123は、入力装置142から語句の指定を受けると、最も関係性が高い測定量タイプ及びパターンを表示装置144において表示する。学習プログラム123は、入力装置142から測定量タイプの指定受けて、最も関係性が高い語句及び関係するパターンを、表示装置144において表示してもよい。
【0110】
語句−パターン関係テーブル548は、語句カラム910、測定量タイプカラム920、及びパターンカラム930を有する。測定量タイプカラム920は、語句カラム910の語句に最も関係性が高い測定量タイプを示す。パターンカラム930は、関連する1又は複数のパターンを示す。一つの語句が複数の測定量タイプと関連する場合、一つの語句に対して複数のレコードが含まれる。
【0111】
一つの訓練データペアにおいて、語句に対する最も関係性が高い測定量タイプと関連するパターンを決定する方法を説明する。学習プログラム123は、語句が属する岩石属性タイプに最も関係性が高い測定量タイプを、当該語句に最も関係性が高い測定量タイプと決定する。岩石属性タイプと測定量タイプとの関係性は、
図15を参照して説明した方法により、決定できる。
【0112】
学習プログラム123は、Attenstion機構540における第1層541において計算されるsim(ai,q)に基づいて、パターンを決定する。学習プログラム123は、一つの岩石属性タイプの語句に最も関係性が高い測定量タイプのsim(ai,q)において最も大きい値のベクトルaiを特定する。
図8に示すように、ベクトルaiは、LSTM420の出力であり、対応する単一のCNN出力ベクトルが存在する。
【0113】
CNN出力ベクトルは、それぞれ、入力測定データの部分対応領域(セグメント)の要約を示し、CNN出力ベクトルの対応領域は、CNN部410の構造に基づき決まっている。つまり、LSTM出力ベクトルaiのシーケンスにおける位置により、入力測定データの対応領域が決定される。学習プログラム123は、当該測定量タイプの測定データにおいて、sim(ai,q)が最も高いaiに対応する領域のパターンを、当該訓練データペアにおける当該語句に関連するパターンと決定する。
【0114】
学習プログラム123は、複数の訓練データペアにおいて同一語句についてのパターンが得られる場合、全てのパターンを語句−パターン関係テーブル548に含める。学習プログラム123は、複数パターンから典型的なパターンを形成してもよい。例えば、学習プログラム123は、パターン間に類似度に基づいてパターンを複数グループに分割し、各グループにおける平均パターンを計算する。学習プログラム123は、グループそれぞれの平均パターンを語句−パターン関係テーブル548に含める。
【0115】
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明したすべての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
【0116】
また、上記の各構成・機能・処理部等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、SSD(Solid State Drive)等の記録装置、または、ICカード、SDカード等の記録媒体に置くことができる。
【0117】
また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしもすべての制御線や情報線を示しているとは限らない。実際には殆どすべての構成が相互に接続されていると考えてもよい。