IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 新東工業株式会社の特許一覧

特許7521336ネットワーク置換装置、ネットワーク置換方法、学習済モデル、推定装置、及び推定方法
<>
  • 特許-ネットワーク置換装置、ネットワーク置換方法、学習済モデル、推定装置、及び推定方法 図1
  • 特許-ネットワーク置換装置、ネットワーク置換方法、学習済モデル、推定装置、及び推定方法 図2
  • 特許-ネットワーク置換装置、ネットワーク置換方法、学習済モデル、推定装置、及び推定方法 図3
  • 特許-ネットワーク置換装置、ネットワーク置換方法、学習済モデル、推定装置、及び推定方法 図4
  • 特許-ネットワーク置換装置、ネットワーク置換方法、学習済モデル、推定装置、及び推定方法 図5
  • 特許-ネットワーク置換装置、ネットワーク置換方法、学習済モデル、推定装置、及び推定方法 図6
  • 特許-ネットワーク置換装置、ネットワーク置換方法、学習済モデル、推定装置、及び推定方法 図7
  • 特許-ネットワーク置換装置、ネットワーク置換方法、学習済モデル、推定装置、及び推定方法 図8
  • 特許-ネットワーク置換装置、ネットワーク置換方法、学習済モデル、推定装置、及び推定方法 図9
  • 特許-ネットワーク置換装置、ネットワーク置換方法、学習済モデル、推定装置、及び推定方法 図10
  • 特許-ネットワーク置換装置、ネットワーク置換方法、学習済モデル、推定装置、及び推定方法 図11
  • 特許-ネットワーク置換装置、ネットワーク置換方法、学習済モデル、推定装置、及び推定方法 図12
  • 特許-ネットワーク置換装置、ネットワーク置換方法、学習済モデル、推定装置、及び推定方法 図13
  • 特許-ネットワーク置換装置、ネットワーク置換方法、学習済モデル、推定装置、及び推定方法 図14
  • 特許-ネットワーク置換装置、ネットワーク置換方法、学習済モデル、推定装置、及び推定方法 図15
  • 特許-ネットワーク置換装置、ネットワーク置換方法、学習済モデル、推定装置、及び推定方法 図16
  • 特許-ネットワーク置換装置、ネットワーク置換方法、学習済モデル、推定装置、及び推定方法 図17
  • 特許-ネットワーク置換装置、ネットワーク置換方法、学習済モデル、推定装置、及び推定方法 図18
  • 特許-ネットワーク置換装置、ネットワーク置換方法、学習済モデル、推定装置、及び推定方法 図19
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-07-16
(45)【発行日】2024-07-24
(54)【発明の名称】ネットワーク置換装置、ネットワーク置換方法、学習済モデル、推定装置、及び推定方法
(51)【国際特許分類】
   G06N 3/04 20230101AFI20240717BHJP
   G06N 3/12 20230101ALI20240717BHJP
【FI】
G06N3/04
G06N3/12
【請求項の数】 6
(21)【出願番号】P 2020146918
(22)【出願日】2020-09-01
(65)【公開番号】P2022041607
(43)【公開日】2022-03-11
【審査請求日】2022-10-21
(73)【特許権者】
【識別番号】000191009
【氏名又は名称】新東工業株式会社
(74)【代理人】
【識別番号】110000338
【氏名又は名称】弁理士法人 HARAKENZO WORLD PATENT & TRADEMARK
(72)【発明者】
【氏名】野口 陽平
【審査官】山本 俊介
(56)【参考文献】
【文献】特開2018-097612(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/00-99/00
(57)【特許請求の範囲】
【請求項1】
複数の層により構成されるディープニューラルネットワークの第1の層に含まれるノードの出力値と、第2の層に含まれるノードの出力値との関係を表す非線形の関係式であって前記第2の層に含まれる各ノードと1対1で対応する関係式を、遺伝的アルゴリズムを用いて特定する特定ステップと、
前記ディープニューラルネットワークにおける前記第1の層と前記第2の層との間の演算を、前記関係式を用いた演算に置換する置換ステップと、
を実行する一又は複数のプロセッサを備える、
ことを特徴とするネットワーク置換装置。
【請求項2】
前記プロセッサは、前記特定ステップにおいて、前記第1の層に含まれるノードの出力値と、当該第1の層と前記第2の層との間にある第3の層に含まれるノードの出力値との関係を表す非線形の第1の関係式を、遺伝的アルゴリズムを用いて特定し、
前記第3の層に含まれるノードの出力値と前記第2の層に含まれるノードの出力値との関係を表す非線形の第2の関係式を、遺伝的アルゴリズムを用いて特定し、
前記第1の関係式と前記第2の関係式とを用いて、前記第1の層に含まれるノードの出力値と、第2の層に含まれるノードの出力値との関係を表す非線形の関係式を特定する、ことを特徴とする請求項1に記載のネットワーク置換装置。
【請求項3】
一又は複数のプロセッサが、複数の層により構成されるディープニューラルネットワークの第1の層に含まれるノードの出力値と、第2の層に含まれるノードの出力値との関係を表す非線形の関係式であって前記第2の層に含まれる各ノードと1対1で対応する関係式を、遺伝的アルゴリズムを用いて特定する特定ステップと、
前記ディープニューラルネットワークにおける前記第1の層と前記第2の層との間の演算を、前記関係式を用いた演算に置換する置換ステップと、
を含むことを特徴とするネットワーク置換方法。
【請求項4】
複数の層により構成されるディープニューラルネットワークから得られた、入力データに基づいて出力データを出力するよう、コンピュータを機能させるための学習済モデルであって、
前記ディープニューラルネットワークの前記複数の層に含まれる第1の層から第2の層への演算が、前記第1の層に含まれるノードの出力値と、前記第2の層に含まれるノードの出力値との関係を表す、遺伝的アルゴリズムにより特定された非線形の関係式であって前記第2の層に含まれる各ノードと1対1で対応する関係式を用いた演算により置換され、前記第2の層に含まれるノードの出力値が、前記第1の層に含まれる各ノードの出力値と前記関係式とを用いた演算により算出されるよう、コンピュータを機能させるための学習済モデル。
【請求項5】
請求項4に記載の学習済モデルを用いて、入力データから出力データを推定する推定ステップを実行する一又は複数のプロセッサを備える、
ことを特徴とする推定装置。
【請求項6】
一又は複数のプロセッサが、請求項4に記載の学習済モデルを用いて入力データから出力データを推定する推定ステップ、
を含むことを特徴とする推定方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、学習済モデルの演算過程を関係式化する装置及び方法に関する。また、そのような関係式を用いて学習済モデルの出力を推定する装置及び方法に関する。
【背景技術】
【0002】
ディープニューラルネットワーク(以下、「DNN」)を利用した第三世代AIの利用が社会で促進されている。DNNは、例えば静止画や動画の画像認識、音声認識、機械翻訳等の自然言語処理、産業機器に取り付けられたセンサの時系列データから異常の兆候を検知する異常検知処理に利用されている。
【0003】
DNNは、ニューラルネットワークをディープラーニングに対応させてネットワークの階層を深くしたものである。DNNは、入力層、複数の隠れ層、出力層を含む複数の層を含み、各層は複数のノードがエッジで結ばれる構造となっている。各層は、活性化関数と呼ばれる関数を持ち、エッジは重みを持つことができる。各ノードの出力値は、そのノードと接続する前の層のノードの出力値から計算される。すなわち、前の層のノードの出力値、接続エッジの重みの値、そして層が持つ活性化関数から各ノードの出力値が計算される。
【0004】
特許文献1には、ニューラルネットワークのネットワーク係数(重み係数など)の高圧縮率を実現するための装置が記載されている。特許文献1に記載の装置は、学習されたニューラルネットワークの入力層に入力された入力データ、ニューラルネットワークの隠れ層または出力層の出力値の組を教師データとして、学習済ネットワーク係数の圧縮を学習しながら行う。
【0005】
特許文献2には、遺伝的アルゴリズムを用いた演算の処理時間を短縮するための装置が記載されている。特許文献2に記載の装置は、解候補集団の各解候補に対する適応度関数を、ニューラルネットワークを用いて求める。
【先行技術文献】
【特許文献】
【0006】
【文献】特開2019-28746号公報(2017年7月31日公開)
【文献】特開平6-161984号公報(1994年6月10日公開)
【発明の概要】
【発明が解決しようとする課題】
【0007】
ところで、DNNの演算処理を更に高速化できれば好適である。特許文献1及び2に記載の技術では、ニューラルネットワークの演算処理を高速化できない場合があった。
【0008】
本発明の一態様は、上記の問題に鑑みてなされたものであり、ディープニューラルネットワークの演算を高速化する技術を実現することを目的とする。
【課題を解決するための手段】
【0009】
上記の課題を解決するために、本発明の一態様に係るネットワーク置換装置は、特定ステップと、置換ステップとを実行する一又は複数のプロセッサを備えている。また、本発明の一態様に係るネットワーク置換方法は、特定ステップと、置換ステップと、を含んでいる。
【0010】
特定ステップは、複数の層により構成されるディープニューラルネットワークの第1の層に含まれるノードの出力値と、第2の層に含まれるノードの出力値との関係を表す非線形の関係式を、遺伝的アルゴリズムを用いて特定するステップである。置換ステップは、前記ディープニューラルネットワークにおける前記第1の層と前記第2の層との間の演算を、前記関係式を用いた演算に置換するステップである。
【0011】
また、本発明の一態様に係る学習済モデルは、複数の層により構成されるディープニューラルネットワークから得られた学習済モデルであって、前記ディープニューラルネットワークの前記複数の層に含まれる第1の層から第2の層への演算が、前記第1の層に含まれるノードの出力値と、前記第2の層に含まれるノードの出力値との関係を表す、遺伝的アルゴリズムにより特定された非線形の関係式を用いた演算により置換された学習済モデルである。
【0012】
また、本発明の一態様に係る推定装置は、推定ステップを実行する一又は複数のプロセッサを備えている。また、本発明の一態様に係る推定方法は、推定ステップを含んでいる。推定ステップは、上述の学習済モデルを用いて、入力データから出力データを推定するステップである。
【発明の効果】
【0013】
本発明の一態様に係るネットワーク置換装置、ネットワーク置換方法及びディープニューラルネットワークによれば、ディープニューラルネットワークの演算を高速化することができる。また、本発明の一態様に係る推定装置及び推定方法によれば、そのようなネットワーク置換装置及びネットワーク置換方法により置換されたディープニューラルネットワークを用いて推定処理を行うことができる。
【図面の簡単な説明】
【0014】
図1】本発明の一実施形態に係るネットワーク置換システムの構成を示す図である。
図2図1のネットワーク置換システムに含まれるネットワーク置換装置の構成を示すブロック図である。
図3図2のネットワーク置換装置が実施するネットワーク置換方法の流れを示すフローチャートである。
図4】学習済モデルと遺伝的アルゴリズムとを例示する図である。
図5図3の特定ステップの流れを示すフローチャートである。
図6】ネットワーク置換装置が実施する処理の流れを示すフローチャートである。
図7】クロスオーバーの内容を例示する図である。
図8】サブツリー突然変異の内容を例示する図である。
図9】ホイスト突然変異の内容を例示する図である。
図10】点突然変異の内容を例示する図である。
図11図3の置換ステップにより得られる学習済モデルの具体例を説明するための図である。
図12図3の置換ステップにより得られる学習済モデルの具体例を説明するための図である。
図13図3の置換ステップにより得られる学習済モデルの具体例を説明するための図である。
図14図3の置換ステップにより得られる学習済モデルの具体例を説明するための図である。
図15図1のネットワーク置換システムに含まれる推定装置の構成を示すブロック図である。
図16図13の推定装置が実施する推定方法の流れを示すフローチャートである。
図17図1のネットワーク置換システムに含まれる機械学習装置の構成を示すブロック図である。
図18図15の機械学習装置が実施する機械学習方法の流れを示すフローチャートである。
図19】鋳造フェーズの構成を示す図である。
【発明を実施するための形態】
【0015】
〔実施形態1〕
〔ネットワーク置換システム〕
本発明の一実施形態に係るネットワーク置換システムSについて、図1を参照して説明する。図1は、ネットワーク置換システムSの構成を表す図である。
【0016】
ネットワーク置換システムSは、DNNのノード間の関係を関係式化し、DNNの一部を集約するためのシステムである。ネットワーク置換システムSは、図1に示すように、ネットワーク置換装置1と、機械学習装置2と、推定装置3と、を備えている。
【0017】
ネットワーク置換装置1は、ネットワーク置換方法M1を実施する装置である。ネットワーク置換方法M1は、ネットワーク置換装置1が、複数の層により構成されるディープニューラルネットワークの第1の層に含まれるノードの出力値と、第2の層に含まれるノードの出力値との関係を表す非線形の関係式を、遺伝的アルゴリズムを用いて特定する特定ステップ(M12)と、ディープニューラルネットワークにおける第1の層と第2の層との間の演算を、関係式を用いた演算に置換する置換ステップ(M13)と、を含む。学習済モデルLM1としては、例えば、畳み込みニューラルネットワークや再帰型ニューラルネットワークなどのニューラルネットワークモデル、線形回帰などの回帰モデル、又は、回帰木などの木モデルなどのアルゴリズムを用いることができる。ネットワーク置換装置1の構成及びネットワーク置換方法M1の流れの詳細については、参照する図面を代えて後述する。
【0018】
学習済モデルLM1の入力としては、種々のデータが採用され得る。学習済モデルLM1の入力は例えば、静止画または動画を表す画像データ、音声を表す音声データ、文書を表す文書データ、産業機器に取り付けられたセンサの時系列データである。また、学習済モデルLM1の入力は例えば、鋳造ラインにおいて収集される各種のパラメータである。
【0019】
学習済モデルLM1の出力としては、種々のデータが採用され得る。学習済モデルLM1の出力は例えば、画像認識結果、音声認識結果、機械翻訳結果、異常の有無である。また、学習済モデルLM1の出力は例えば、鋳造ラインにおける鋳物砂のCB値(コンパクタビリティ)の目標値である。
【0020】
ネットワーク置換装置1は、データ収集装置111を備える。データ収集装置111は、学習済モデルLM1への入力データと学習済モデルLM1からの出力データとを一時的に保持し、保持したデータを次段の遺伝的アルゴリズムGAに入力する。データ収集装置111は例えば、半導体メモリ、ハードディスク等の情報記憶手段と入出力手段を備えたバッファである。なお、図1の例では、データ収集装置111がネットワーク置換装置1に含まれる構成を例示しているが、データ収集装置111が数式特定装置1と別体の装置として構成されていてもよい。また、データ収集装置111は、ハードウェア単体で構成されてもよく、また、ハードウェアとソフトウェアとにより構成されてもよい。
【0021】
ネットワーク置換装置1がネットワーク置換方法M1を実施することにより、学習済モデルLM2が生成される。学習済モデルLM2は、入力データに基づいて出力データを出力するよう、コンピュータを機能させるための学習済モデルであり、第2の層に含まれるノードの出力値が、第1の層に含まれる各ノードの出力値と関係式とを用いた演算により算出されるよう、コンピュータを機能させるための学習済モデルである。すなわち、学習済モデルLM2は、複数の層により構成されるディープニューラルネットワークから得られた学習済モデルであって、学習済モデルLM1の複数の層に含まれる第1の層から第2の層への演算が、第1の層に含まれるノードの出力値と、第2の層に含まれるノードの出力値との関係を表す、遺伝的アルゴリズムにより特定された非線形の関係式を用いた演算により置換された学習済モデルである。
【0022】
機械学習装置2は、機械学習方法M2を実施するための装置である。機械学習方法M2は、入力データを用いて学習用データセットDSを構築すると共に、学習用データセットDSを用いた機械学習(教師あり学習)によって学習済モデルLM1を構築するための方法である。機械学習装置2の構成及び機械学習方法M2の流れの詳細については、参照する図面を代えて後述する。
【0023】
推定装置3は、推定方法M3を実施するための装置である。推定方法M3は、推定装置3が、ネットワーク置換方法M1により生成された学習済モデルLM2を用いて、入力データから出力データを推定する第2推定ステップM31、を含む。推定装置3の構成及び推定方法M3の流れの詳細については、参照する図面を代えて後述する。
【0024】
ネットワーク置換システムSは、学習フェーズ、ネットワーク置換フェーズ、推定フェーズ、を実行する。学習フェーズ、ネットワーク置換フェーズ、推定フェーズについて、その内容を簡単に説明すれば、以下のとおりである。
【0025】
(1)学習フェーズ
学習フェーズにおいては、学習済モデルLM1が構築される。機械学習装置2は、入力データ及び出力データから教師データを作成し、作成した教師データを学習用データセットDSに追加する。また、機械学習装置2は、学習用データDSを用いた機械学習によって学習済モデルLM1を構築する。構築された学習済モデルLM1は、機械学習装置2からネットワーク置換装置1に転送される。
【0026】
(2)ネットワーク置換フェーズ
ネットワーク置換フェーズにおいては、ネットワーク置換装置1は、入力データに基づき、学習済モデルLM1を用いて出力データを推定する。また、ネットワーク置換装置1は、遺伝的アルゴリズムを用いた非線形回帰によって、学習済モデルLM1の第1の層に含まれるノードの出力値と、第2の層に含まれるノードの出力値との関係を表す非線形の関係式を特定する。また、ネットワーク置換装置1は、学習済モデルLM1における第1の層と第2の層との間の演算を、特定した関係式を用いた演算に置換する。
【0027】
(3)推定フェーズ
推定フェーズにおいては、推定装置3は、ネットワーク置換装置1が生成した学習済モデルLM2を用いて、入力データから出力データを推定する。
【0028】
〔ネットワーク置換装置の構成〕
ネットワーク置換装置1の構成について、図2を参照して説明する。図2は、ネットワーク置換装置1の構成を示すブロック図である。
【0029】
ネットワーク置換装置1は、汎用コンピュータを用いて実現されており、プロセッサ11と、一次メモリ12と、二次メモリ13と、入出力インタフェース14と、通信インタフェース15と、バス16とを備えている。プロセッサ11、一次メモリ12、二次メモリ13、入出力インタフェース14、及び通信インタフェース15は、バス16を介して相互に接続されている。
【0030】
二次メモリ13には、ネットワーク置換プログラムP1及び学習済モデルLM1が格納されている。プロセッサ11は、二次メモリ13に格納されているネットワーク置換プログラムP1及び学習済モデルLM1を一次メモリ12上に展開する。そして、プロセッサ11は、一次メモリ12上に展開されたネットワーク置換プログラムP1に含まれる命令に従って、ネットワーク置換方法M1に含まれる各ステップを実行する。一次メモリ12上に展開された学習済モデルLM1は、ネットワーク置換方法M1の推定ステップM11(後述)をプロセッサ11が実行する際に利用される。なお、ネットワーク置換プログラムP1が二次メモリ13に格納されているとは、ソースコード、又は、ソースコードをコンパイルすることにより得られた実行形式ファイルが二次メモリ13に記憶されていることを指す。また、学習済モデルLM1が二次メモリ13に格納されているとは、学習済モデルLM1を規定するパラメータが二次メモリ13に格納されていることを指す。
【0031】
プロセッサ11として利用可能なデバイスとしては、例えば、CPU(Central Processing Unit)、GPU(Graphic Processing Unit)、DSP(Digital Signal Processor)、MPU(Micro Processing Unit)、FPU(Floating point number Processing Unit)、PPU(Physics Processing Unit)、マイクロコントローラ、又は、これらの組み合わせを挙げることができる。プロセッサ11は、「演算装置」と呼ばれることもある。
【0032】
また、一次メモリ12として利用可能なデバイスとしては、例えば、半導体RAM(Random Access Memory)を挙げることができる。一次メモリ12は、「主記憶装置」と呼ばれることもある。また、二次メモリ13として利用可能なデバイスとしては、例えば、フラッシュメモリ、HDD(Hard Disk Drive)、SSD(Solid State Drive)、ODD(Optical Disk Drive)、FDD(Floppy(登録商標) Disk Drive)、又は、これらの組み合わせを挙げることができる。二次メモリ13は、「補助記憶装置」と呼ばれることもある。なお、二次メモリ13は、ネットワーク置換装置1に内蔵されていてもよいし、入出力インタフェース14又は通信インタフェース15を介してネットワーク置換装置1と接続された他のコンピュータ(例えば、クラウドサーバを構成するコンピュータ)に内蔵されていてもよい。なお、本実施形態においては、ネットワーク置換装置1における記憶を2つのメモリ(一次メモリ12及び二次メモリ13)により実現しているが、これに限定されない。すなわち、ネットワーク置換装置1における記憶を1つのメモリにより実現してもよい。この場合、例えば、そのメモリの或る記憶領域を一次メモリ12として利用し、そのメモリの他の記憶領域を二次メモリ13として利用すればよい。
【0033】
入出力インタフェース14には、入力デバイス及び/又は出力デバイスが接続される。入出力インタフェース14としては、例えば、USB(Universal Serial Bus)、ATA(Advanced Technology Attachment)、SCSI(Small Computer System Interface)、PCI(Peripheral Component Interconnect)などのインタフェースが挙げられる。入出力インタフェース14に接続される入力デバイスとしては例えば、鋳造ラインに設けられたセンサ群が挙げられる。ネットワーク置換方法M1においてセンサ群から取得するデータはネットワーク置換装置1に入力され、一次メモリ12に記憶される。また、入出力インタフェース14に接続される入力デバイスとしては、キーボード、マウス、タッチパッド、マイク、又は、これらの組み合わせが挙げられる。ネットワーク置換方法M1においてユーザから取得するデータは、これらの入力デバイスを介してネットワーク置換装置1に入力され、一次メモリ12に記憶される。また、入出力インタフェース14に接続される出力デバイスとしては、ディスプレイ、プロジェクタ、プリンタ、スピーカ、ヘッドホン、又は、これらの組み合わせが挙げられる。ネットワーク置換方法M1においてユーザに提供する情報は、これらの出力デバイスを介してネットワーク置換装置1から出力される。なお、ネットワーク置換装置1は、ラップトップ型コンピュータのように、入力デバイスとして機能するキーボードと、出力デバイスとして機能するディスプレイとを、それぞれ内蔵してもよい。或いは、ネットワーク置換装置1は、タブレット型コンピュータのように、入力デバイス及び出力デバイスの両方として機能するタッチパネルを内蔵していてもよい。
【0034】
通信インタフェース15には、ネットワークを介して他のコンピュータが有線接続又は無線接続される。通信インタフェース15としては、例えば、イーサネット(登録商標)、Wi-Fi(登録商標)などのインタフェースが挙げられる。利用可能なネットワークとしては、PAN(Personal Area Network)、LAN(Local Area Network)、CAN(Campus Area Network)、MAN(Metropolitan Area Network)、WAN(Wide Area Network)、GAN(Global Area Network)、又は、これらのネットワークを含むインターネットワークが挙げられる。インターネットワークは、イントラネットであってもよいし、エクストラネットであってもよいし、インターネットであってもよい。ネットワーク置換方法M1においてネットワーク置換装置1が他のコンピュータ(例えば、機械学習装置2)から取得するデータ(例えば、学習済モデルLM1)、及び、ネットワーク置換方法M1においてネットワーク置換装置1が他のコンピュータに提供するデータは、これらのネットワークを介して送受信される。
【0035】
なお、本実施形態においては、単一のプロセッサ(プロセッサ11)を用いてネットワーク置換方法M1を実行する構成を採用しているが、本発明は、これに限定されない。すなわち、複数のプロセッサを用いてネットワーク置換方法M1を実行する構成を採用してもよい。この場合、連携してネットワーク置換方法M1を実行する複数のプロセッサは、単一のコンピュータに設けられ、バスを介して相互に通信可能に構成されていてもよいし、複数のコンピュータに分散して設けられ、ネットワークを介して相互に通信可能に構成されていてもよい。一例として、クラウドサーバを構成するコンピュータに内蔵されたプロセッサと、そのクラウドサーバの利用者が所有するコンピュータに内蔵されたプロセッサとが、連携してネットワーク置換方法M1を実行する態様などが考えられる。
【0036】
また、本実施形態においては、ネットワーク置換方法M1を実行するプロセッサ(プロセッサ11)と同じコンピュータに内蔵されたメモリ(二次メモリ13)に学習済モデルLM1を格納する構成を採用しているが、本発明は、これに限定されない。すなわち、ネットワーク置換方法M1を実行するプロセッサと異なるコンピュータに内蔵されたメモリに学習済モデルLM1を格納する構成を採用してもよい。この場合、学習済モデルLM1を格納するメモリが内蔵されたコンピュータは、ネットワーク置換方法M1を実行するプロセッサが内蔵されたコンピュータとネットワークを介して相互に通信可能に構成される。一例として、クラウドサーバを構成するコンピュータに内蔵されたメモリに学習済モデルLM1を格納し、そのクラウドサーバの利用者が所有するコンピュータに内蔵されたプロセッサがネットワーク置換方法M1を実行する態様などが考えられる。
【0037】
また、本実施形態においては、単一のメモリ(二次メモリ13)に学習済モデルLM1を格納する構成を採用しているが、本発明は、これに限定されない。すなわち、複数のメモリに学習済モデルLM1を分散して格納する構成を採用してもよい。この場合、学習済モデルLM1を格納する複数のメモリは、単一のコンピュータ(ネットワーク置換方法M1を実行するプロセッサが内蔵されたコンピュータであってもよいし、そうでなくてもよい)に設けられていてもよいし、複数のコンピュータ(ネットワーク置換方法M1を実行するプロセッサが内蔵されたコンピュータを含んでいてもよいし、そうでなくてもよい)に分散して設けられていてもよい。一例として、クラウドサーバを構成する複数のコンピュータの各々に内蔵されたメモリに学習済モデルLM1を分散して格納する構成などが考えられる。
【0038】
データ収集装置111がネットワーク置換装置1と別体の装置として構成される場合、データ収集装置111は、例えばメモリ(図示略)とプロセッサ(図示略)とを含む。
【0039】
〔ネットワーク置換方法の流れ〕
ネットワーク置換方法M1の流れについて、図3を参照して説明する。図3は、ネットワーク置換方法M1の流れを示すフローチャートである。ネットワーク置換方法M1は、推定ステップM11と、特定ステップM12と、置換ステップM13とを含んでいる。
【0040】
推定ステップM11は、プロセッサ11が、学習済モデルLM1を用いて入力データから出力データを推定するステップである。推定ステップM11において、プロセッサ11は、入力データを学習済モデルLM1に入力することにより、出力データを取得する。
【0041】
学習済モデルLM1による推定処理において、学習済モデルLM1の第1の層に含まれるノードの出力値(以下「第1データ」という)と、第2の層に含まれるノードの出力値(以下「第2データ」という)とが、データ収集装置111に一時的に保持される。第1の層及び第2の層は、入力層、出力層、又は隠れ層である。データ収集装置111が保持するデータは、後段の特定ステップM12で用いられる。
【0042】
特定ステップM12は、プロセッサ11が、学習済モデルLM1の第1の層に含まれるノードの出力値と、第2の層に含まれるノードの出力値との関係を表す非線形の関係式を、遺伝的アルゴリズムGAを用いて特定するステップである。プロセッサ11が特定ステップM12で特定する関係式は、ニューラルネットワークで用いられる活性化関数とは異なる関数である。なお、特定ステップM12の具体例については、参照する図面を代えて後述する。
【0043】
置換ステップM13は、プロセッサ11が、学習済モデルLM1における第1の層と第2の層との間の演算を、ステップM12で特定した関係式を用いた演算に置換するステップである。なお、置換ステップM13により得られる学習済モデルLM2の具体例については、参照する図面を代えて後述する。
【0044】
(特定ステップの具体例)
ネットワーク置換方法M1に含まれる特定ステップM12の具体例について、図4及び図5を参照して説明する。図4は、学習済モデルLM11及び遺伝的アルゴリズムGAを例示する図である。図5は、プロセッサ11が実行する特定ステップM12の流れを示すフローチャートである。
【0045】
学習済モデルLM11は、複数の層により構成されるディープニューラルネットワークである。学習済モデルLM11は、本実施形態に係る学習済モデルLM1の一例である。学習済モデルLM11は、入力データが入力される入力層LX、隠れ層LY1、隠れ層LY2、出力データを出力する出力層LZ、を含む複数の層を含む。各層は複数のノードがエッジで結ばれる構造となっている。
【0046】
各層は、活性化関数と呼ばれる関数を持ち、エッジは重みを持つことができる。各ノードの出力値は、そのノードと接続する前の層のノードの出力値から計算される。すなわち、前の層のノードの出力値、接続エッジの重みの値、そして層が持つ活性化関数から各ノードの出力値が計算される。
【0047】
図4の例において、入力層LXは、ノードX1、X2、X3、X4を含む。すなわち、この例で、学習済モデルLM11に入力される入力データは、ノードX1、X2、X3、X4の出力値x1、x2、x3、x4を含む。
【0048】
隠れ層LY1は、ノードY11、Y12、Y13を含む。ノードY11、Y12、Y13の出力値y11、y12、y13は、隠れ層LY1の前の層である入力層LXのノードの出力値x1、x2、x3、x4を用いて計算される。
【0049】
隠れ層LY2は、ノードY21、Y22、Y23を含む。ノードY21、Y22、Y23の出力値y21、y22、y23は、隠れ層LY2の前の層である隠れ層LY1のノードの出力値y11、y12、y13を用いて計算される。
【0050】
出力層LZは、ノードZ1を含む。ノードZ1の出力値z1は、出力層LZの前の層である隠れ層LY2のノードの出力値y21、y22、y23を用いて計算される。すなわち、この例で、学習済モデルLM11の出力データは、ノードZ1の出力値z1である。
【0051】
データ収集装置111は、学習済モデルLM1への入力データと学習済モデルLM1の出力データを一時的に保持し、入力データと出力データとを次段の遺伝的アルゴリズムGAに時間的同期をつけて入力する。すなわち、データ収集装置111は、学習済モデルLM1のデータを纏めて(ある程度の情報単位にして)次段の遺伝的アルゴリズムGAに入力する一種のバッファとして動作する。
遺伝的アルゴリズムGAは、第一世代G1~第四世代G4を含む。本具体例に係る特定ステップM12においては、遺伝的アルゴリズムを用いて、第1データと第2データとの関係を表す関係式を特定する。遺伝的アルゴリズムGAは、解の候補を遺伝子で表現した個体iを複数用意し、適応度Diの高い個体iを優先的に選択して交叉、突然変異などの操作を繰り返しながら解を探索するアルゴリズムである。本実施形態において、個体iは、非線形の関係式をツリー構造で表したものであり、関係式に含まれる演算子及び引数がツリーのノードで表される。適応度Diは適応度関数によって与えられる。
【0052】
本具体例では、個体iである非線形の関係式は、例えば以下の(1)~(3)式の3つの式を含む。
y11=f(x1,x2,x3,x4) …(1)
y12=f(x1,x2,x3,x4) …(2)
y13=f(x1,x2,x3,x4) …(3
【0053】
(1)~(3)式において、x1~x4は入力層LX(第1の層の一例)の各ノードの出力値である。y11~y13は隠れ層LY2(第2の層の一例)のノードY21~Y23の出力値である。すなわち、(1)~(3)式は、学習済モデルLM11の入力層LX(第1の層)に含まれるノードの出力値と、隠れ層LY2(第2の層)に含まれるノードの出力値との関係を表す非線形の関係式である。
【0054】
本具体例では、プロセッサ31は、遺伝的プログラミングにより関係式を特定する。遺伝的プログラミングとは、遺伝的アルゴリズムを拡張したものであり、遺伝子型の表現としてツリー構造を用いる。なお、図5に示す特定ステップM12の流れは例示であり、遺伝的アルゴリズムGAを用いた関係式の特定方法は図5に示した方法に限定されるものではない。遺伝的アルゴリズムGAを用いた関係式の特定方法として、他の種々の手法が採用され得る。
【0055】
図5は、プロセッサ11が実行する特定ステップM12の流れを例示するフローチャートである。プロセッサ11は所定のモジュール(以下、「Aモジュール」という)を用いて、特定ステップM12を実行する。Aモジュールは、遺伝的アルゴリズムを実行するモジュールである。Aモジュールでは、プロセッサ11は、まず、新しいデータを予測するために、既知の独立変数とそれらの従属変数ターゲットの間の関係を表す単純なランダム式の母集団を作成することから始める。次に、プロセッサ11は、遺伝子操作を受ける集団から最も適した個体を選択することにより、集団を進化させて次の世代の集団を生成する。上記の操作により、上記関係を最もよく示す関係式が特定される。
【0056】
本具体例では、Aモジュールとして、遺伝的プログラミングを実行するモジュールが用いられる。遺伝的プログラミングとは、遺伝的アルゴリズムを拡張したものであり、遺伝子型の表現としてツリー構造を用いる。なお、図5に示す特定ステップM12の流れは例示であり、遺伝的アルゴリズムGAを用いた関係式の特定方法は図5に示した方法に限定されるものではない。遺伝的アルゴリズムGAを用いた関係式の特定方法として、他の種々の手法が採用され得る。
【0057】
ステップM121において、プロセッサ11は、学習済モデルLM1の第1データと第2データとをデータ収集装置111から取得する。
【0058】
ステップM122において、プロセッサ11は、遺伝的アルゴリズムGAで用いるパラメータを取得する。パラメータは例えば、生成個体数N、トーナメントサイズNt、交叉確率Pc、突然変異確率Pms、進化世代数Ng、構文木に用いる演算子Oj、構文木の最大の深さd、事象発生確率Pk1~Pk5を含む。各パラメータの値は例えば、ユーザがネットワーク置換装置1に入力する。
【0059】
生成個体数Nは、集合に含める個体iの数を表す。トーナメントサイズNtは、現世代の集合からランダムに選択する個体iの数である。突然変異確率Pmsは、遺伝子が突然変異をする確率である。構文木に用いる演算子Oiは、例えば、Max、Min、sqrt(ルート)、log(自然対数)、+、-、×、÷、sin(ラジアン)、cos(ラジアン)、tan(ラジアン)、abs、neg、invである。Maxは、最大値を選択する演算子である。Minは、最小値を選択する演算子である。negは符号をマイナスにする演算子である。invはゼロに近い引数を0にする演算子である。
【0060】
事象発生確率Pk1~Pk5は、次世代の集合を進化させる操作として操作m1~m5がそれぞれ選択される確率である。プロセッサ11は、操作m1~m5のいずれかの方法で次世代の集合を進化させる。事象発生確率Pk1~Pk5の総和は1とする。一例として、事象発生確率Pk1、Pk2、Pk3、Pk4、Pk5の値は、それぞれ、「0.1」、「0.2」、「0.3」、「0.4」、「0.1」である。操作m1~m5については参照する図面を代えて後述する。
【0061】
ステップM123において、プロセッサ11は、指定されたパラメータ(構文木に用いる演算子Oi、構文木の最大の深さd、等)に基づいて、N個の個体iをランダムに生成し、最初の現世代となるN個の個体iの集合を生成する。
【0062】
ステップM124において、プロセッサ11は、現世代の集合に含まれる個体iのそれぞれの適応度Diを算出する。適応度Diは、適応度関数によって与えられる。
【0063】
ステップM125において、プロセッサ11は、現世代の集合からトーナメントサイズNtの数の個体iをランダムに取り出し、その中で最も適応度Diの高い個体iを選択し、次世代の集合に追加する。ステップM125において選択された個体i、すなわち、次世代の集合に追加された個体iを「勝者ツリー」ともいう。
【0064】
プロセッサ11は、次世代の個体数が現世代と同じN個になるまで、すなわち次世代の個体数がNに達していない間は(ステップM126;NO)、ステップM125の処理を繰り返す。プロセッサ21は、次世代の個体数がNに達すると(ステップM126;YES)ステップM127の処理を実行する。
【0065】
ステップM127において、プロセッサ11は、次世代の集合を進化させる処理を実行する。なお、ステップM127の詳細については、参照する図面を代えて後述する。
【0066】
ステップM130において、プロセッサ11は、次世代の集合を現世代の集合に上書きする。ステップM131において、プロセッサ11は、進化世代数Ngに達したかを判定する。進化世代数Ngに達していない場合(ステップM131;NO)、プロセッサ11はステップM124の処理に戻る。一方、進化世代数Ngに達している場合(ステップM131;YES)、プロセッサ11は、ステップM132の処理に進む。
【0067】
ステップM132において、プロセッサ11は、現世代の集合に含まれる個体iの中から適応度Diが最も高い個体iを特定する。ステップM133において、プロセッサ11は、特定した個体iを最適解として出力する。例えば、プロセッサ11は、選択した個体iである関係式、又はその関係式の表す図形(グラフ等)をディスプレイに表示する。
【0068】
図6は、プロセッサ11が実行するステップM127の流れを例示するフローチャートである。ステップM201において、プロセッサ11は、ユーザにより設定された事象発生確率Pk1~Pk5に基づき、操作m1~m5のいずれかを選択する。操作m1を選択した場合(ステップM201;「操作m1」)、プロセッサ11は、ステップM202の処理に進む。操作m2を選択した場合(ステップM201;「操作m2」)、プロセッサ11は、ステップM211の処理に進む。操作m3を選択した場合(ステップM201;「操作m3」)、プロセッサ11は、ステップM221の処理に進む。操作m4を選択した場合(ステップM201;「操作m4」)、プロセッサ11は、ステップM231の処理に進む。操作m5を選択した場合(ステップM201;「操作m5」)、プロセッサ11は、処理を終了する。
【0069】
操作m1は、クロスオーバーである。クロスオーバーとは、個体間で遺伝物質を混合する方法である。クロスオーバーの場合、ステップM202において、プロセッサ11は、次世代の集合に含まれる勝者ツリーについて、各勝者ツリーに含まれるサブツリーをランダムに選択する。
【0070】
ステップM203において、プロセッサ11は、ドナー用の次世代の集合を生成する。ステップM203の処理の内容は、図6のステップM123~M125の内容と同様である。すなわち、プロセッサ11は、まず、ユーザにより指定された個体パラメータに基づいて、N個の個体iをランダムに生成し、N個の個体iの集合(以下「ドナー集合」という)を生成する。次いで、プロセッサ11は、ドナー集合に含まれる個体iのそれぞれの適応度Diを算出する。次いで、プロセッサ11は、ドナー集合からトーナメントサイズNtの数の個体iをランダムに取り出し、その中で最も適応度Diの高い個体iを選択し、次世代のドナー集合に追加する。この処理により選択される個体iを「ドナーツリー」ともいう。プロセッサ11は、次世代のドナーツリーの数がNになるまで、ドナーツリーの選択処理を繰り返す。
【0071】
ステップM204において、プロセッサ11は、ドナーツリーに含まれるサブツリー(以下「ドナーサブツリー」という)をランダムに選択する。
【0072】
ステップM205において、プロセッサ11は、勝者ツリーにおいてサブツリーの入れ替えを行う。本実施形態では、プロセッサ11は、勝者ツリーからステップM202で選択したサブツリー取り除き、そのサブツリーがあった箇所にステップM203で選択したドナーサブツリーを移植する。すなわち、プロセッサ11は、勝者ツリーに含まれるサブツリーをドナーサブツリーで置換する。このサブツリーが置換された勝者ツリーが、次世代の子孫(個体)となる。
【0073】
操作m2は、サブツリーを突然変異させる操作である。サブツリーを突然変異させることにより、絶滅した機能とオペレーターを集団に再導入し、多様性を維持することができる。この場合、ステップM211において、プロセッサ11は、勝者ツリーに含まれるサブツリーをランダムに選択する。
【0074】
ステップM212において、プロセッサ11は、サブツリーをランダムに生成する。ステップM213において、プロセッサ11は、勝者ツリーにおいてサブツリーの入れ替えを行う。本実施形態では、プロセッサ11は、勝者ツリーからステップM202で選択したサブツリーを取り除き、取り除いたサブツリーがあった箇所に、ステップM212で生成したサブツリーを移植する。すなわち、プロセッサ11は、勝者ツリーに含まれるサブツリーをステップM212で生成したサブツリーで置換する。このサブツリーが置換された勝者ツリーが、次世代の子孫(個体)となる。
【0075】
操作m3は、ホイスト突然変異である。ホイスト突然変異は、ツリーの膨らみと戦う突然変異操作である。ステップM221において、プロセッサは、勝者ツリーに含まれるサブツリーをランダムに選択する。ステップM222において、プロセッサ11は、ステップM221で選択したサブツリーに含まれるサブツリーをランダムに選択する。
【0076】
ステップM223において、プロセッサ11は、ステップM222で選択したサブツリーを、元のサブツリー(ステップM221で選択したサブツリー)の位置まで巻き上げる。このサブツリーが巻き上げられた勝者ツリーが、次世代の子孫(個体)となる。
【0077】
操作m4は、点突然変異である。点突然変異は、多様性を維持するために、絶滅した関係式と演算子を集団に再導入する操作である。ステップM231において、プロセッサ11は、勝者ツリーのノードをランダムに選択する。ステップM232において、プロセッサ11は、ステップM231で選択したノードを、他のノードに置換する。これにより、勝者ツリーの表す関係式は、元のノードと同じ数の引数を必要とする他の関係式に置き換えられる。置き換えにより得られる勝者ツリーが、次世代の子孫(個体)となる。
【0078】
操作m5は、再生である。この場合、勝者ツリーは複製され、変更されることなく次の世代に含められる。
【0079】
図7図10は、勝者ツリーに対して行われる操作の内容を例示する図である。図7は、操作m1(クロスオーバー)の内容を例示する図である。図7の例では、勝者ツリーtr11のサブツリーtr111が、ドナーツリーtr12のサブツリーtr121で置換され、勝者ツリーtr13となる。勝者ツリーtr13が、次世代の子孫(個体)となる。
【0080】
図8は、操作m2(サブツリー突然変異)の内容を例示する図である。図8の例では、勝者ツリーtr11のサブツリーtr111が、サブツリーtr22で置換され、勝者ツリーtr23となる。勝者ツリーtr23が、次世代の子孫(個体)となる。
【0081】
図9は、操作m3(ホイスト突然変異)の内容を例示する図である。図9の例では、勝者ツリーtr11のサブツリーtr1121が、サブツリーtr112の位置まで巻き上げられ、勝者ツリーtr31となる。勝者ツリーtr31が、次世代の子孫(個体)となる。
【0082】
図10は、操作m4(点突然変異)の内容を例示する図である。図10の例では、勝者ツリーtr11に含まれるノードn21及びノードn34が、ノードn421及びノードn434に置換され、勝者ツリーtr41となる。勝者ツリーtr41が、次世代の子孫(個体)となる。
【0083】
(置換ステップにより得られる学習済モデルの具体例1)
図11は、置換ステップM13により得られる学習済モデルLM21、LM22の具体例を説明するための図である。図において、学習済モデルLM12は、本実施形態に係る学習済モデルLM1の一例である。学習済モデルLM12は、入力層LX、出力層LY、隠れ層LA~LDを含む。入力層LXは、ノードX1~X12を含む。出力層LYは、ノードY1~Y12を含む。隠れ層LAは、ノードA1~A6を含む。隠れ層LBは、ノードB1~B6を含む。隠れ層LCは、ノードC1~C6を含む。隠れ層LDは、ノードD1~D6を含む。学習済モデルLM21、LM22は、置換ステップM13により得られる学習済モデルLM2の具体例である。
【0084】
本具体例では、プロセッサ11は、特定ステップM12において、入力層LX(第1の層)に含まれる各ノードの出力値(第1データ)と、隠れ層LB(第2の層)に含まれる各ノードの出力値(第2データ)との関係を表す非線形の関係式fxbを、遺伝的アルゴリズムを用いて特定する。関係式xbは、例えば以下の(4)式である。ただし、(4)式において、iは、1≦i≦6を満たす自然数であり、bは、隠れ層LBに含まれるノードBiの出力値である。x1~x12は、入力層LXに含まれるノードX1~X12の出力値である。
=fxb(x1,x2,x3,…,x12) …(4)
【0085】
また、プロセッサ11は、上述の特定ステップM12において、隠れ層LB(第1の層)に含まれるノードの出力値(第1データ)と、隠れ層LD(第2の層)に含まれるノードの出力値(第2データ)との関係を表す非線形の関係式fbdを、遺伝的アルゴリズムを用いて特定する。この場合、プロセッサ11が特定する関係式は、例えば以下の(5)式である。ただし、(5)式において、kは、1≦k≦6を満たす自然数であり、dは、隠れ層LDに含まれるノードDiの出力値である。b1~b6は、隠れ層LBに含まれるノードB1~B6の出力値である。
=fbd(b1,b2,b3,…,b6) …(5)
【0086】
プロセッサ11は、置換ステップM13において、学習済モデルLM12における第1の層と第2の層との間の演算を、関係式fxb及び関係式fbdを用いた演算に置換し、学習済モデルLM21、LM22を生成する。
【0087】
学習済モデルLM21は、学習済モデルLM12において、入力層LX(第1の層)と隠れ層LB(第2の層)との間の演算が、関係式fbdを用いる演算に置換された、学習済モデルである。学習済モデルLM21は、入力層LX、隠れ層LB´、LC、LD、出力層LYを含む。学習済モデルLM21の隠れ層LBは、ノードB1´~B6´を含む。
【0088】
学習済モデルLM12では、隠れ層LBに含まれる各ノードの出力値は、前の層である隠れ層LAに含まれる各ノードの出力値、接続エッジの重み値、隠れ層LBが持つ活性化関数から計算される。それに対し、学習済モデルLM21では、隠れ層LB´(第2の層)に含まれる各ノードの出力値は、特定ステップM12でプロセッサ11が特定した(4)式に、入力層LX(第1の層)に含まれる各ノードの出力値を代入することにより計算される。
【0089】
また、学習済モデルLM22は、学習済モデルLM21の第1の層(隠れ層LB)と第2の層(隠れ層LD)との間の演算が、特定ステップM12で特定した関係式を用いた演算に置換された、学習済モデルである。学習済モデルLM22は、入力層LX、隠れ層LB´、LD´、出力層LYを含む。隠れ層LB´は、ノードB1´~B6´を含む。隠れ層LD´は、ノードD1´~D6´を含む。
【0090】
学習済モデルLM12及び学習済モデルL21では、隠れ層LDに含まれる各ノードの出力値は、前の層である隠れ層LCに含まれる各ノードの出力値、接続エッジの重み値、隠れ層LDが持つ活性化関数から計算される。それに対し、学習済モデルLM22では、隠れ層LD´(第2の層)に含まれる各ノードの出力値は、特定ステップM12でプロセッサ11が特定した(5)式に、隠れ層LB´(第1の層)に含まれる各ノードの出力値を代入することにより計算される。
【0091】
(置換ステップにより得られる学習済モデルの具体例2)
図12は、置換ステップM13により得られる学習済モデルの他の具体例を説明するための図である。図において、学習済モデルLM23、LM24は、置換ステップM13により得られる学習済モデルLM2の具体例である。本具体例では、プロセッサ11は、特定ステップM12において、第1の層に含まれる各ノードの出力値と、第2の層に含まれる各ノードの出力値との関係を表す非線形の関係式として、関係式fxa、関係式fac、関係式fcyの3種類の関係式を特定する。
【0092】
関係式fxaは、入力層LX(第1の層)に含まれる各ノードの出力値(第1データ)と、隠れ層LA(第2の層)に含まれる各ノードの出力値(第2データ)との関係を表す関係式である。関係式fxaは、例えば以下の(6)式である。(6)式において、iは、1≦i≦6を満たす自然数であり、aは、隠れ層LAに含まれるノードAiの出力値である。x1~x12は、入力層LXに含まれるノードX1~X12の出力値である。
=fxa(x1,x2,x3,…,x12) …(6)
【0093】
関係式facは、隠れ層LA(第1の層)に含まれる各ノードの出力値(第1データ)と、隠れ層LD(第2の層)に含まれる各ノードの出力値(第2データ)との関係を表す関係式である。関係式facは、例えば以下の(7)式である。(7)式において、iは、1≦i≦6を満たす自然数であり、cは、隠れ層LDに含まれるノードCiの出力値である。a1~a6は、隠れ層LAに含まれるノードA1~A6の出力値である。
=fac(a1,a2,a3,…,a6) …(7)
【0094】
関係式fcyは、出力層LY(第1の層)に含まれる各ノードの出力値(第1データ)と、隠れ層LC(第2の層)に含まれる各ノードの出力値(第2データ)との関係を表す関係式である。関係式fcyは、例えば以下の(8)式である。(8)式において、iは、1≦i≦6を満たす自然数であり、yは、出力層LYに含まれるノードYiの出力値である。c1~c6は、隠れ層LCに含まれるノードC1~C6の出力値である。
=fcy(c1,c2,c3,…,c6) …(8)
【0095】
プロセッサ11は、上述の置換ステップM13において、学習済モデルLM12における第1の層と第2の層との間の演算を、特定ステップM12で特定した関係式を用いた演算に置換し、学習済モデルLM23を生成する。
【0096】
学習済モデルLM23は、入力層LX、隠れ層LA´、LC´、出力層LY´を含む。隠れ層LA´は、ノードA1´~A6´を含む。隠れ層LC´は、ノードC1´~C6´を含む。出力層LY´は、ノードY1´~Y12´を含む。学習済モデルLM23では、入力層LX(第1の層)と隠れ層LA´(第2の層)との間の演算が、関係式fxaを用いた演算に置換されている。また、学習済モデルLM23では、隠れ層LA´(第1の層)と隠れ層LC´(第2の層)との間の演算が、関係式facを用いた演算に置換されている。また、学習済モデルLM23では、隠れ層LC´(第1の層)と出力層LY´(第2の層)との間の演算が、関係式fcyを用いた演算に置換されている。
【0097】
学習済モデルLM12では、隠れ層LAに含まれる各ノードの出力値は、前の層である入力層LXに含まれる各ノードの出力値、接続エッジの重み値、隠れ層LAが持つ活性化関数から計算される。それに対し、学習済モデルLM23では、隠れ層LA´(第2の層)に含まれる各ノードの出力値は、関係式fxaに、入力層LX(第1の層)に含まれる各ノードの出力値を代入することにより計算される。
【0098】
また、学習済モデルLM12では、隠れ層LCに含まれる各ノードの出力値は、前の層である隠れ層LBに含まれる各ノードの出力値、接続エッジの重み値、隠れ層LCが持つ活性化関数から計算される。それに対し、学習済モデルLM23では、隠れ層LC´(第2の層)に含まれる各ノードの出力値は、関係式facに、隠れ層LA´(第1の層)に含まれる各ノードの出力値を代入することにより計算される。
【0099】
また、学習済モデルLM12では、出力層LYに含まれる各ノードの出力値は、前の層である隠れ層LDに含まれる各ノードの出力値、接続エッジの重み値、出力層LYが持つ活性化関数から計算される。それに対し、学習済モデルLM23では、出力層LY´(第2の層)に含まれる各ノードの出力値は、関係式fcyに、隠れ層LC´(第1の層)に含まれる各ノードの出力値を代入することにより計算される。
【0100】
また、本具体例では、プロセッサ11は更に、関係式fxa(第1の関係式の一例)、関係式fac(第2の関係式の一例)、及び関係式fcyを用いて、入力層LX(第1の層の一例)に含まれるノードの出力値と、出力層LY(第2の層の一例)に含まれるノードの出力値との関係を表す非線形の関係式を特定する。本具体例において、中間層LA、LCは本実施形態に係る第3の層の一例である。プロセッサ11は、関係式fxa、fac、fcyの連立方程式を解くことにより、x1~x12と、y1~y12との関係を表す関係式fxyを特定する。関係式fxyは、例えば以下の(9)式で表される。(9)式において、iは、1≦i≦12を満たす自然数であり、yは、出力層LYに含まれるノードYiの出力値である。x1~x12は、入力層LXに含まれるノードX1~X12の出力値である。
=fxy(x1,x2,x3,…,x12) …(9)
【0101】
プロセッサ11は、学習済モデルLM23における入力層LXと出力層LYとの間の演算を、関係式fxyを用いた演算に置換し、学習済モデルLM24を生成する。学習済モデルLM24は、入力層LX、出力層LYを含む。出力層LYは、ノードY1´´~Y12´´を含む。
【0102】
学習済モデルLM24では、学習済モデルLM23における、入力層LXと出力層LY´との間の演算が、関係式fxyを用いた演算に置換されている。すなわち、学習済モデルLM24では、出力層LY´´に含まれる各ノードの出力値は、関係式fxyに、入力層LXに含まれる各ノードの出力値を代入することにより計算される。
【0103】
(置換ステップにより得られる学習済モデルの具体例3)
図13は、置換ステップM13により得られる学習済モデルの他の具体例を説明するための図である。図において、学習済モデルLM26、LM27は、置換ステップM13により得られる学習済モデルLM2の具体例である。本具体例では、プロセッサ11は、特定ステップM12において、第1の層に含まれる各ノードの出力値と、第2の層に含まれる各ノードの出力値との関係を表す非線形の関係式として、関係式fxa、関係式fab、関係式fbc、関係式fcd、関係式fdyの5種類の関係式を特定する。
【0104】
関係式fxaは、入力層LXに含まれる各ノードの出力値と、隠れ層LAに含まれる各ノードの出力値との関係を表す関係式である。
【0105】
関係式fabは、隠れ層LAに含まれる各ノードの出力値と、隠れ層LBに含まれる各ノードの出力値との関係を表す関係式である。関係式fbcは、隠れ層LBに含まれる各ノードの出力値と、隠れ層LCに含まれる各ノードの出力値との関係を表す関係式である。関係式fcdは、隠れ層LCに含まれる各ノードの出力値と、隠れ層LDに含まれる各ノードの出力値との関係を表す関係式である。関係式fdyは、隠れ層LDに含まれる各ノードの出力値と、隠れ層LYに含まれる各ノードの出力値との関係を表す関係式である。
【0106】
プロセッサ11は、上述の置換ステップM13において、学習済モデルLM12における第1の層と第2の層との間の演算を、特定ステップM12で特定した関係式を用いた演算に置換し、学習済モデルLM26を生成する。学習済モデルLM26は、入力層LX、隠れ層LA´~LD´、出力層LY´を含む。隠れ層LA´は、ノードA1´~A6´を含む。隠れ層LB´は、ノードB1´~B6´を含む。隠れ層LC´は、ノードC1´~C6´を含む。隠れ層LD´は、ノードD1´~D6´を含む。出力層LY´は、ノードY1´~Y12´を含む。
【0107】
学習済モデルLM26では、各層の間の演算が、関係式を用いた演算に置換されている。例えば、学習済モデルLM26では、入力層LXと隠れ層LA´との間の演算が、関係式fxaを用いた演算に置換されている。同様に、学習済モデルLM26では、隠れ層LA´と隠れ層LB´との間の演算が、関係式fabを用いた演算に置換されている。
【0108】
学習済モデルLM26では、各層に含まれるノードの出力値は、遺伝的アルゴリズムにより特定された関係式fxa~fdyに、前の層に含まれる各ノードの出力値を代入することにより算出される。
【0109】
また、本具体例では、プロセッサ11は更に、関係式fxa~fdyの連立方程式を解くことにより、x1~x12と、y1~y12との関係を表す関係式fxyを特定する。関係式fxyは、例えば上述の(9)式で表される。
【0110】
プロセッサ11は、学習済モデルLM26における入力層LXと出力層LY´との間の演算を、関係式fxyを用いた演算に置換し、学習済モデルLM27を生成する。学習済モデルLM27は、入力層LX、出力層LY´´を含む。出力層LY´´は、ノードY1´´~Y12´´を含む。
【0111】
学習済モデルLM27では、学習済モデルLM26における、入力層LXと出力層LY´´との間の演算が、関係式fxyを用いた演算に置換されている。すなわち、学習済モデルLM27では、出力層LY´´に含まれる各ノードの出力値は、関係式fxyに、入力層LXに含まれる各ノードの出力値を代入することにより計算される。
【0112】
(置換ステップにより得られる学習済モデルの具体例4)
図14は、置換ステップM13により得られる学習済モデルLM2の他の具体例を説明するための図である。図において、学習済モデルLM25は、置換ステップM13により得られる学習済モデルLM2の例である。本具体例では、プロセッサ11は、特定ステップM12において、入力層LX(第1の層)に含まれる各ノードの出力値(第1データ)と、出力層LY(第2の層)に含まれる各ノードの出力値との関係を表す非線形の関係式fxyを、遺伝的アルゴリズムを用いて特定する。
【0113】
プロセッサ11は、置換ステップM13において、学習済モデルLM12における入力層LXと出力層LYとの間の演算を、関係式fxyを用いた演算に置換し、学習済モデルL25を生成する。学習済モデルLM25は、入力層LX、出力層LYを含む。学習済モデルLM25の出力層LYは、ノードY1´~Y12´を含む。
【0114】
学習済モデルLM25は、学習済モデルLM12において、入力層LXと出力層LYとの間の演算が、関係式fxyを用いる演算に置換された、学習済モデルである。学習済モデルLM25では、出力層LY´(第2の層)に含まれる各ノードの出力値は、特定ステップM12でプロセッサ11が特定した(4)式に、入力層LX(第1の層)に含まれる各ノードの出力値を代入することにより計算される。
【0115】
〔推定装置の構成〕
推定装置3の構成について、図15を参照しつつ説明する。図15は、推定装置3の構成を示すブロック図である。
【0116】
推定装置3は、汎用コンピュータを用いて実現されており、プロセッサ31と、一次メモリ32と、二次メモリ33と、入出力インタフェース34と、通信インタフェース35と、バス36とを備えている。プロセッサ31、一次メモリ32、二次メモリ33、入出力インタフェース34、及び通信インタフェース35は、バス36を介して相互に接続されている。
【0117】
二次メモリ33には、推定プログラムP3が格納されている。プロセッサ21は、二次メモリ23に格納されている推定プログラムP3を一次メモリ32上に展開する。そして、プロセッサ31は、一次メモリ32上に展開された推定プログラムP3に含まれる命令に従って、推定方法M3(推定ステップの一例)に含まれる各ステップを実行する。二次メモリ33に格納された学習済モデルLM2は、推定方法M3の第2推定ステップM31(後述)において利用される。なお、推定プログラムP3が二次メモリ33に格納されているとは、ソースコード、又は、ソースコードをコンパイルすることにより得られた実行形式ファイルが二次メモリ33に記憶されていることを指す。
【0118】
プロセッサ31として利用可能なデバイスとしては、例えば、CPU(Central Processing Unit)、GPU(Graphic Processing Unit)、DSP(Digital Signal Processor)、MPU(Micro Processing Unit)、FPU(Floating point number Processing Unit)、PPU(Physics Processing Unit)、マイクロコントローラ、又は、これらの組み合わせを挙げることができる。プロセッサ31は、「演算装置」と呼ばれることもある。
【0119】
また、一次メモリ32として利用可能なデバイスとしては、例えば、半導体RAM(Random Access Memory)を挙げることができる。一次メモリ32は、「主記憶装置」と呼ばれることもある。また、二次メモリ33として利用可能なデバイスとしては、例えば、フラッシュメモリ、HDD(Hard Disk Drive)、SSD(Solid State Drive)、ODD(Optical Disk Drive)、FDD(Floppy Disk Drive)、又は、これらの組み合わせを挙げることができる。二次メモリ33は、「補助記憶装置」と呼ばれることもある。なお、二次メモリ33は、推定装置3に内蔵されていてもよいし、入出力インタフェース34又は通信インタフェース35を介して推定装置3と接続された他のコンピュータ(例えば、クラウドサーバを構成するコンピュータ)に内蔵されていてもよい。なお、本実施形態においては、推定装置3における記憶を2つのメモリ(一次メモリ32及び二次メモリ33)により実現しているが、これに限定されない。すなわち、推定装置3における記憶を1つのメモリにより実現してもよい。この場合、例えば、そのメモリの或る記憶領域を一次メモリ32として利用し、そのメモリの他の記憶領域を二次メモリ33として利用すればよい。
【0120】
入出力インタフェース34には、入力デバイス及び/又は出力デバイスが接続される。入出力インタフェース34としては、例えば、USB(Universal Serial Bus)、ATA(Advanced Technology Attachment)、SCSI(Small Computer System Interface)、PCI(Peripheral Component Interconnect)などのインタフェースが挙げられる。入出力インタフェース34に接続される入力デバイスとしては例えば、鋳造ラインに設けられたセンサ群が挙げられる。推定方法M3においてセンサ群から取得するデータは推定装置3に入力され、一次メモリ32に記憶される。また、入出力インタフェース34に接続される入力デバイスとしては、キーボード、マウス、タッチパッド、マイク、又は、これらの組み合わせが挙げられる。推定方法M3においてユーザから取得するデータは、これらの入力デバイスを介して推定方法M3に入力され、一次メモリ32に記憶される。また、入出力インタフェース34に接続される出力デバイスとしては、ディスプレイ、プロジェクタ、プリンタ、スピーカ、ヘッドホン、又は、これらの組み合わせが挙げられる。推定方法M3においてユーザに提供する情報は、これらの出力デバイスを介して推定装置3から出力される。なお、推定装置3は、ラップトップ型コンピュータのように、入力デバイスとして機能するキーボードと、出力デバイスとして機能するディスプレイとを、それぞれ内蔵してもよい。或いは、推定装置3は、タブレット型コンピュータのように、入力デバイス及び出力デバイスの両方として機能するタッチパネルを内蔵していてもよい。
【0121】
通信インタフェース35には、ネットワークを介して他のコンピュータが有線接続又は無線接続される。通信インタフェース35としては、例えば、イーサネット(登録商標)、Wi-Fi(登録商標)などのインタフェースが挙げられる。利用可能なネットワークとしては、PAN(Personal Area Network)、LAN(Local Area Network)、CAN(Campus Area Network)、MAN(Metropolitan Area Network)、WAN(Wide Area Network)、GAN(Global Area Network)、又は、これらのネットワークを含むインターネットワークが挙げられる。インターネットワークは、イントラネットであってもよいし、エクストラネットであってもよいし、インターネットであってもよい。推定装置3が他のコンピュータ(例えば、ネットワーク置換装置1)から提供されるデータ(例えば、学習済モデルLM2)は、これらのネットワークを介して送受信される。
【0122】
なお、本実施形態においては、単一のプロセッサ(プロセッサ31)を用いて推定方法M3を実行する構成を採用しているが、本発明は、これに限定されない。すなわち、複数のプロセッサを用いて推定方法M3を実行する構成を採用してもよい。この場合、連携して推定方法M3を実行する複数のプロセッサは、単一のコンピュータに設けられ、バスを介して相互に通信可能に構成されていてもよいし、複数のコンピュータに分散して設けられ、ネットワークを介して相互に通信可能に構成されていてもよい。一例として、クラウドサーバを構成するコンピュータに内蔵されたプロセッサと、そのクラウドサーバの利用者が所有するコンピュータに内蔵されたプロセッサとが、連携して推定方法M3を実行する態様などが考えられる。
【0123】
また、本実施形態においては、推定方法M3を実行するプロセッサ(プロセッサ31)と同じコンピュータに内蔵されたメモリ(二次メモリ33)に学習済モデルLM2を格納する構成を採用しているが、本発明は、これに限定されない。すなわち、推定方法M3を実行するプロセッサと異なるコンピュータに内蔵されたメモリに学習済モデルLM2を格納する構成を採用してもよい。この場合、学習済モデルLM2を格納するメモリが内蔵されたコンピュータは、推定方法M3を実行するプロセッサが内蔵されたコンピュータとネットワークを介して相互に通信可能に構成される。一例として、クラウドサーバを構成するコンピュータに内蔵されたメモリに学習済モデルLM2を格納し、そのクラウドサーバの利用者が所有するコンピュータに内蔵されたプロセッサが推定方法M3を実行する態様などが考えられる。
【0124】
また、本実施形態においては、単一のメモリ(二次メモリ33)に学習済モデルLM2を格納する構成を採用しているが、本発明は、これに限定されない。すなわち、複数のメモリに学習済モデルLM2を分散して格納する構成を採用してもよい。この場合、学習済モデルLM2を格納する複数のメモリは、単一のコンピュータ(推定方法M3を実行するプロセッサが内蔵されたコンピュータであってもよいし、そうでなくてもよい)に設けられていてもよいし、複数のコンピュータ(推定方法M3を実行するプロセッサが内蔵されたコンピュータを含んでいてもよいし、そうでなくてもよい)に分散して設けられていてもよい。一例として、クラウドサーバを構成する複数のコンピュータの各々に内蔵されたメモリに学習済モデルLM2を分散して格納する構成などが考えられる。
【0125】
〔推定方法の流れ〕
推定方法M3の流れについて、図16を参照して説明する。図16は、推定方法M3の流れを示すフローチャートである。推定方法M3は、第2推定ステップM31と、出力ステップM32と、を含んでいる。
【0126】
第2推定ステップM31は、プロセッサ11が、学習済モデルLM2を用いて、入力データから出力データを推定するステップである。第2推定ステップM31において推定される出力データは、学習済モデルLM1に入力データを入力した場合に出力されると推定されるデータである。
【0127】
出力ステップM32は、プロセッサ11が、推定した出力データを出力するステップである。プロセッサ11は例えば、出力データの表す画像をディスプレイに表示する等して出力データを出力する。
【0128】
本実施形態によれば、ディープニューラルネットワークのノードの数を減らしてその構造を集約することができ、ディープニューラルネットワークの演算を高速化することができる。また、各ノードに係る演算を関係式化することにより、各ノードの特徴を把握し易い。
【0129】
また、本実施形態によれば、推定装置3は、学習済モデルLM2を用いて、学習済モデルLM1の出力を推定する。すなわち、推定装置3は、学習済モデルLM1を用いることなく、学習済モデルLM1よりも簡易な演算により、入力データから学習済モデルLM1の出力を推定することができる。
【0130】
また、本実施形態によれば、学習済モデルを非線形の関係式に圧縮することにより、中間層(隠れ層)の処理を数式で可視化することができる。
【0131】
また、例えば、DNNのノードの数、層の数、活性化関数がノウハウである場合、それらは秘匿されることが好ましい。本実施形態によれば、中間層を関係式化することで、例えば、ノードの数、層の数、活性化関数に何を用いているか、といったDNNの具体的構成を秘匿化することができる。すなわち、DNNの構成を暗号化、解析困難化することができる。
【0132】
また、本実施形態では、データ収集装置111が学習済モデルLM1の入力データと出力データとをバッファリングし、遺伝的アルゴリズムGAに時間的同期をつけて入力する。学習済モデルLM1からの出力と遺伝的アルゴリズムGAへの入力の時間的同期を図ることができるため、次段の遺伝的アルゴリズムGAが最終解を出力するまでの時間を先読みすることができる。
【0133】
また、本実施形態では、データ収集装置111が、学習済モデルLM1のデータを纏めて(ある程度の情報単位にして)次段の遺伝的アルゴリズムGAに入力する一種のバッファとして働く。これにより、次段の遺伝的アルゴリズムGAの世代演算処理において無駄なメモリ空間及び無駄な演算処理を削減でき、遺伝的アルゴリズムの世代演算処理を効率化できる。
【0134】
〔機械学習装置の構成〕
機械学習装置2の構成について、図17を参照して説明する。図17は、機械学習装置2の構成を示すブロック図である。
【0135】
機械学習装置2は、汎用コンピュータを用いて実現されており、プロセッサ21と、一次メモリ22と、二次メモリ23と、入出力インタフェース24と、通信インタフェース25と、バス26とを備えている。プロセッサ21、一次メモリ22、二次メモリ23、入出力インタフェース24、及び通信インタフェース25は、バス26を介して相互に接続されている。
【0136】
二次メモリ23には、機械学習プログラムP2及び学習用データセットDSが格納されている。学習用データセットDSは、教師データDS1,DS2…の集合である。プロセッサ21は、二次メモリ23に格納されている機械学習プログラムP2を一次メモリ22上に展開する。そして、プロセッサ21は、一次メモリ22上に展開された機械学習プログラムP2に含まれる命令に従って、機械学習方法M2に含まれる各ステップを実行する。二次メモリ23に格納された学習用データセットDSは、機械学習方法M2の学習用データセット構築ステップM21(後述)にて構築され、機械学習方法M2の学習済モデル構築ステップM22(後述)において利用される。また、機械学習方法M2の学習済モデル構築ステップM22にて構築された学習済モデルLM1も、二次メモリ23に格納される。なお、機械学習プログラムP2が二次メモリ23に格納されているとは、ソースコード、又は、ソースコードをコンパイルすることにより得られた実行形式ファイルが二次メモリ23に記憶されていることを指す。また、学習済モデルLM1が二次メモリ23に格納されているとは、学習済モデルLM1を規定するパラメータが二次メモリ23に格納されていることを指す。
【0137】
プロセッサ21として利用可能なデバイスとしては、例えば、CPU(Central Processing Unit)、GPU(Graphic Processing Unit)、DSP(Digital Signal Processor)、MPU(Micro Processing Unit)、FPU(Floating point number Processing Unit)、PPU(Physics Processing Unit)、マイクロコントローラ、又は、これらの組み合わせを挙げることができる。プロセッサ21は、「演算装置」と呼ばれることもある。
【0138】
また、一次メモリ22として利用可能なデバイスとしては、例えば、半導体RAM(Random Access Memory)を挙げることができる。一次メモリ22は、「主記憶装置」と呼ばれることもある。また、二次メモリ23として利用可能なデバイスとしては、例えば、フラッシュメモリ、HDD(Hard Disk Drive)、SSD(Solid State Drive)、ODD(Optical Disk Drive)、FDD(Floppy Disk Drive)、又は、これらの組み合わせを挙げることができる。二次メモリ23は、「補助記憶装置」と呼ばれることもある。なお、二次メモリ23は、機械学習装置2に内蔵されていてもよいし、入出力インタフェース24又は通信インタフェース25を介して機械学習装置2と接続された他のコンピュータ(例えば、クラウドサーバを構成するコンピュータ)に内蔵されていてもよい。なお、本実施形態においては、機械学習装置2における記憶を2つのメモリ(一次メモリ22及び二次メモリ23)により実現しているが、これに限定されない。すなわち、機械学習装置2における記憶を1つのメモリにより実現してもよい。この場合、例えば、そのメモリの或る記憶領域を一次メモリ22として利用し、そのメモリの他の記憶領域を二次メモリ23として利用すればよい。
【0139】
入出力インタフェース24には、入力デバイス及び/又は出力デバイスが接続される。入出力インタフェース24としては、例えば、USB(Universal Serial Bus)、ATA(Advanced Technology Attachment)、SCSI(Small Computer System Interface)、PCI(Peripheral Component Interconnect)などのインタフェースが挙げられる。入出力インタフェース24に接続される入力デバイスとしては、鋳造ラインに設けられたセンサ群が挙げられる。機械学習方法M2においてセンサ群から取得するデータは機械学習装置2に入力され、一次メモリ22に記憶される。また、入出力インタフェース24に接続される入力デバイスとしては、キーボード、マウス、タッチパッド、マイク、又は、これらの組み合わせが挙げられる。機械学習方法M2においてユーザから取得するデータは、これらの入力デバイスを介して機械学習装置2に入力され、一次メモリ22に記憶される。また、入出力インタフェース24に接続される出力デバイスとしては、ディスプレイ、プロジェクタ、プリンタ、スピーカ、ヘッドホン、又は、これらの組み合わせが挙げられる。機械学習方法M2においてユーザに提供する情報は、これらの出力デバイスを介して機械学習装置2から出力される。なお、機械学習装置2は、ラップトップ型コンピュータのように、入力デバイスとして機能するキーボードと、出力デバイスとして機能するディスプレイとを、それぞれ内蔵してもよい。或いは、機械学習装置2は、タブレット型コンピュータのように、入力デバイス及び出力デバイスの両方として機能するタッチパネルを内蔵していてもよい。
【0140】
通信インタフェース25には、ネットワークを介して他のコンピュータが有線接続又は無線接続される。通信インタフェース25としては、例えば、イーサネット(登録商標)、Wi-Fi(登録商標)などのインタフェースが挙げられる。利用可能なネットワークとしては、PAN(Personal Area Network)、LAN(Local Area Network)、CAN(Campus Area Network)、MAN(Metropolitan Area Network)、WAN(Wide Area Network)、GAN(Global Area Network)、又は、これらのネットワークを含むインターネットワークが挙げられる。インターネットワークは、イントラネットであってもよいし、エクストラネットであってもよいし、インターネットであってもよい。機械学習装置2が他のコンピュータ(例えば、ネットワーク置換装置1)に提供するデータ(例えば、学習済モデルLM1)は、これらのネットワークを介して送受信される。
【0141】
なお、本実施形態においては、単一のプロセッサ(プロセッサ21)を用いて機械学習方法M2を実行する構成を採用しているが、本発明は、これに限定されない。すなわち、複数のプロセッサを用いて機械学習方法M2を実行する構成を採用してもよい。この場合、連携して機械学習方法M2を実行する複数のプロセッサは、単一のコンピュータに設けられ、バスを介して相互に通信可能に構成されていてもよいし、複数のコンピュータに分散して設けられ、ネットワークを介して相互に通信可能に構成されていてもよい。一例として、クラウドサーバを構成するコンピュータに内蔵されたプロセッサと、そのクラウドサーバの利用者が所有するコンピュータに内蔵されたプロセッサとが、連携して機械学習方法M2を実行する態様などが考えられる。
【0142】
また、本実施形態においては、機械学習方法M2を実行するプロセッサ(プロセッサ21)と同じコンピュータに内蔵されたメモリ(二次メモリ23)に学習用データセットDSを格納する構成を採用しているが、本発明は、これに限定されない。すなわち、機械学習方法M2を実行するプロセッサと異なるコンピュータに内蔵されたメモリに学習用データセットDSを格納する構成を採用してもよい。この場合、学習用データセットDSを格納するメモリが内蔵されたコンピュータは、機械学習方法M2を実行するプロセッサが内蔵されたコンピュータとネットワークを介して相互に通信可能に構成される。一例として、クラウドサーバを構成するコンピュータに内蔵されたメモリに学習用データセットDSを格納し、そのクラウドサーバの利用者が所有するコンピュータに内蔵されたプロセッサが機械学習方法M2を実行する態様などが考えられる。
【0143】
また、本実施形態においては、単一のメモリ(二次メモリ23)に学習用データセットDSを格納する構成を採用しているが、本発明は、これに限定されない。すなわち、複数のメモリに学習用データセットDSを分散して格納する構成を採用してもよい。この場合、学習用データセットDSを格納する複数のメモリは、単一のコンピュータ(機械学習方法M2を実行するプロセッサが内蔵されたコンピュータであってもよいし、そうでなくてもよい)に設けられていてもよいし、複数のコンピュータ(機械学習方法M2を実行するプロセッサが内蔵されたコンピュータを含んでいてもよいし、そうでなくてもよい)に分散して設けられていてもよい。一例として、クラウドサーバを構成する複数のコンピュータの各々に内蔵されたメモリに学習用データセットDSを分散して格納する構成などが考えられる。
【0144】
また、本実施形態においては、ネットワーク置換方法M1、機械学習方法M2及び推定方法M3を異なるプロセッサ(プロセッサ11、プロセッサ21及びプロセッサ31)を用いて実行する構成を採用しているが、本発明は、これに限定されない。すなわち、ネットワーク置換方法M1、機械学習方法M2及び推定方法M3を同一のプロセッサを用いて実行してもよい。この場合、機械学習方法M2を実行することによって、このプロセッサと同じコンピュータに内蔵されたメモリに学習済モデルLM1が格納さる。そして、このプロセッサは、ネットワーク置換方法M1を実行する際に、このメモリに格納された学習済モデルLM1を利用し、学習済モデルLM2を生成することになる。また、このプロセッサは、推定方法M3を実行する際に、生成した学習済モデルLM2を用いて出力データを推定する。
【0145】
〔機械学習方法の流れ〕
機械学習方法M2の流れについて、図18を参照して説明する。図18は、機械学習方法M2の流れを示すフローチャートである。
【0146】
機械学習方法M2は、学習用データセット構築ステップM21と、学習済モデル構築ステップM22と、を含んでいる。
【0147】
学習用データセット構築ステップM21は、プロセッサ21が、教師データDS1,DS2,…の集合である学習用データセットDSを構築するステップである。
【0148】
各教師データDSi(i=1,2,…)には、入力用データ、及び出力用データが含まれている。教師データDSiに含まれる入力用データは、学習済モデルLM1に入力する入力データと同様のデータである。学習用データセット構築ステップM21において、プロセッサ21は、ネットワーク置換装置1と同様の方法でこのデータを取得する。また、教師データDSiには、出力用データがラベルとして含まれる。学習用データセット構築ステップM21において、プロセッサ21は、入力用データと、出力用データとを関連付けて二次メモリ23に格納する。以上のプロセスをプロセッサ21が繰り返すことによって、学習用データセットDSが構築される。
【0149】
学習済モデル構築ステップM22は、プロセッサ21が、学習済モデルLM1を構築するステップである。学習済モデル構築ステップM22において、プロセッサ21は、学習用データセットDSを用いた教師あり学習によって、学習済モデルLM1を構築する。そして、プロセッサ21は、構築した学習済モデルLM1を二次メモリ23に格納する。
【0150】
〔実施例1〕
本実施形態に係るネットワーク置換システムSは、例えば鋳造システムに適用される。鋳造システムが実施する鋳造フェーズC10について、図19を参照して説明する。図19は、鋳造システムにおける鋳造フェーズC10の構成を示す図である。
【0151】
鋳造フェーズC10は、鋳物砂を用いて鋳造を行うフェーズである。鋳造フェーズC10は、例えば図18に示すように、混練工程C11と、造型工程C12と、抜型工程C13と、塗型工程C14と、枠合せ工程C15と、注湯工程C16と、冷却工程C17と、解枠工程C18と、により構成することができる。
【0152】
混練工程C11は、鋳物砂に樹脂及び硬化剤を含む添加物を加えて混練する工程である。造型工程C12は、混練工程C11にて混練された鋳物砂を鋳枠に充填することによって、鋳型を造型する工程である。ここでは、鋳型の上部に相当する上型と鋳型の下部に相当する下型とが、それぞれ造型されるものとする。抜型工程C13は、造型工程C12にて造型された上型及び下型を鋳枠から分離する工程である。塗型工程C14は、抜型工程C13にて取り出した上型及び下型の製品面に塗型剤を塗布する工程である。枠合せ工程C15は、塗型工程C14にて塗型剤が塗布された上型と下型とを合体させることによって、鋳型を得る工程である。注湯工程C16は、枠合せ工程C15にて得られた鋳型に溶湯を流し込む工程である。冷却工程C17は、注湯工程C16にて鋳型に注入された溶湯を冷却する工程である。冷却された溶湯は、鋳型の内部で凝固して鋳物となる。解枠工程C18は、鋳型に振動を与えることによって、鋳型を解体して砂塊にすると共に、冷却工程C17にて得られた鋳物を取り出す工程である。
【0153】
鋳造フェーズC10にて得られた砂塊は、例えば、解砕工程、分離工程、再生前冷却工程、砂再生工程等を経て鋳物砂に再生される。
【0154】
本実施例に係る鋳造システムにおいて、遺伝的アルゴリズムを用いて生成される学習済モデルLM2における入力データは例えば、鋳造ラインに設置された各種のセンサが検知するセンサ出力値を含む。出力データは例えば、CB値、鋳型強度、鋳型の欠けの有無ラベル、製品の良品、不良品ラベルを含む。
【0155】
〔実施例2〕
本実施形態に係るネットワーク置換システムSは、例えば売上予測システムに適用される。売上予測システムにおいて、遺伝的アルゴリズムを用いて生成される学習済モデルLM2における入力データは例えば、気温、曜日、通行量、人口、世帯数、店舗面積、単価、品ぞろえ数、駅からの距離、広告費、SNSハッシュタグ統計、キーワード検索統計、感染症の感染者数、来日外国人数、為替レート、株価、金利、物価、雇用統計、日銀短観、家計調査を示す条件データを含む。出力データは例えば、売上金額を示すデータを含む。
【0156】
〔実施例3〕
また、本実施形態に係るネットワーク置換システムSは、例えば創薬システムに適用される。創薬システムにおいて、遺伝的アルゴリズムを用いて生成される学習済モデルLM2における入力データは例えば、分子モデルパラメータ、各成分の結合親和性を示すデータを含む。出力データは例えば、薬剤を示すデータを含む。
【0157】
〔実施例4〕
また、本実施形態に係るネットワーク置換システムSは、例えば材料開発システムに適用される。材料開発システムにおいて、遺伝的アルゴリズムを用いて生成される学習済モデルLM2における入力データは例えば、合金の成分の配合率、物性値を含む。出力データは例えば、生成される材料の特性(強度、等)を表す特性データを含む。
【0158】
〔実施例5〕
また、本実施形態に係るネットワーク置換システムSは、例えば画像認識システムに適用される。画像認識システムにおいて、遺伝的アルゴリズムを用いて生成される学習済モデルLM2における入力データは例えば、画像の特徴量を示すデータを含む。出力データは例えば、画像認識結果を示すデータを含む。
【0159】
〔実施例6〕
また、本実施形態に係るネットワーク置換システムSは、例えば設備不具合予知システムに適用される。設備不具体予知システムにおいて、遺伝的アルゴリズムを用いて生成される学習済モデルLM2における入力データは例えば、設備に設けられた各センサにより検出された検出値を含む。出力データは例えば、設備の不具合の発生の有無の推定結果を示すデータを含む。
【0160】
〔変形例〕
上述の実施形態において、プロセッサ11が、学習済モデルLM1に含まれる層のうち、学習の進みにくい層の演算を、遺伝的アルゴリズムを用いて特定される関係式を用いた演算に置換してもよい。学習済モデルLM1の隠れ層には、学習の進みにくい層と学習の進みやすい層とが含まれる場合がある。学習の進みにくい層とは、パーセプトロンが多数あったり、重み付けが複数あったりする層である。一方、学習が進みやすい層とは、パーセプトロンが少なかったり、重み付けがなかったり又は1つだったりする層である。プロセッサ11は、学習の進みにくい層を、パーセプトロンの数及び重み付けの数等の学習済モデルLM1を規定するパラメータに基づいて特定し、特定した層の演算を、遺伝的アルゴリズムを用いて特定される関係式を用いた演算に置換してもよい。
【0161】
〔まとめ〕
態様1に係るネットワーク置換装置は、複数の層により構成されるディープニューラルネットワークの第1の層に含まれるノードの出力値と、第2の層に含まれるノードの出力値との関係を表す非線形の関係式を、遺伝的アルゴリズムを用いて特定する特定ステップと、前記ディープニューラルネットワークにおける前記第1の層と前記第2の層との間の演算を、前記関係式を用いた演算に置換する置換ステップと、を実行する一又は複数のプロセッサを備えている。
【0162】
上記の構成によれば、ネットワーク置換装置は、ディープニューラルネットワークの第1の層と第2の層との間の演算を高速化することができる。これにより、ディープニューラルネットワークの演算を高速化することができる。
【0163】
態様2に係るネットワーク置換装置は、態様1に係るネットワーク置換装置の特徴に加えて、以下の特徴を有している。すなわち、態様2に係るネットワーク置換装置において、前記プロセッサは、前記特定ステップにおいて、前記第1の層に含まれるノードの出力値と、当該第1の層と前記第2の層との間にある第3の層に含まれるノードの出力値との関係を表す非線形の第1の関係式を、遺伝的アルゴリズムを用いて特定し、前記第3の層に含まれるノードの出力値と前記第2の層に含まれるノードの出力値との関係を表す非線形の第2の関係式を、遺伝的アルゴリズムを用いて特定し、前記第1の関係式と前記第2の関係式とを用いて、前記第1の層に含まれるノードの出力値と、第2の層に含まれるノードの出力値との関係を表す非線形の関係式を特定する。
【0164】
上記の構成によれば、ネットワーク置換装置は、ディープニューラルネットワークの第1の層と第2の層との間の演算を高速化することができる。これにより、ディープニューラルネットワークの演算を高速化することができる。
【0165】
態様3に係るネットワーク置換方法は、一又は複数のプロセッサが、複数の層により構成されるディープニューラルネットワークの第1の層に含まれるノードの出力値と、第2の層に含まれるノードの出力値との関係を表す非線形の関係式を、遺伝的アルゴリズムを用いて特定する特定ステップと、前記ディープニューラルネットワークにおける前記第1の層と前記第2の層との間の演算を、前記関係式を用いた演算に置換する置換ステップと、を含んでいる。
【0166】
態様4に係る学習済モデルは、複数の層により構成されるディープニューラルネットワークから得られた、入力データに基づいて出力データを出力するよう、コンピュータを機能させるための学習済モデルであって、前記ディープニューラルネットワークの前記複数の層に含まれる第1の層から第2の層への演算が、前記第1の層に含まれるノードの出力値と、前記第2の層に含まれるノードの出力値との関係を表す、遺伝的アルゴリズムにより特定された非線形の関係式を用いた演算により置換され、第2の層に含まれるノードの出力値が、前記第1の層に含まれる各ノードの出力値と前記関係式とを用いた演算により算出されるよう、コンピュータを機能させるための学習済モデルである。
【0167】
態様5に係る推定装置は、態様4に記載の学習済モデルを用いて、入力データから出力データを推定する推定ステップを実行する一又は複数のプロセッサを備えている。
【0168】
上記の構成によれば、ディープニューラルネットワークの第1の層と第2の層との間の演算を高速化することができる。これにより、ディープニューラルネットワークの演算を高速化することができる。
【0169】
態様6に係るネットワーク置換方法は、一又は複数のプロセッサが、態様4に記載の学習済モデルを用いて入力データから出力データを推定する推定ステップ、を含んでいる。
【0170】
上記の構成によれば、ディープニューラルネットワークの第1の層と第2の層との間の演算を高速化することができる。これにより、ディープニューラルネットワークの演算を高速化することができる。
【0171】
〔付記事項1〕
上述の各実施形態及び変形例では、機械学習装置2が、学習済モデルLM1を構築したが、学習済モデルLM1は、機械学習装置2以外の他の装置により予め構築されていてもよい。この場合、ネットワーク置換装置1は、他の装置により予め構築された学習済モデルを用いて上述のネットワーク置換方法M1を実施する。
【0172】
〔付記事項2〕
上述の各実施形態及び変形例では、プロセッサ11は、第1データと第2データとの関係を表す非線形の関係式を、遺伝的アルゴリズムを用いた非線形回帰によって特定した。第1データと第2データとの関係を表す非線形の関係式を特定するためのアルゴリズムは、遺伝的アルゴリズムに限られず、例えばロジスティック回帰等の他の非線形アルゴリズムであってもよい。
【0173】
〔付記事項3〕
本発明は上述した実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能であり、上述した実施形態にそれぞれ開示された技術的手段を適宜組み合わせて得られる他の実施形態についても本発明の技術的範囲に含まれる。
【符号の説明】
【0174】
1 ネットワーク置換装置
2 機械学習装置
3 推定装置
11、21、31 プロセッサ
12、22、32 一次メモリ
13、23、33 二次メモリ
14、24、34 入出力インタフェース
15、25、35 通信インタフェース
16、26、36 バス
LM1、LM2 学習済モデル
M1 ネットワーク置換方法
M11 推定ステップ
M12 特定ステップ
M2 機械学習方法
M21 学習用データセット構築ステップ
M22 学習済モデル構築ステップ
M3 推定方法
M31 第2推定ステップ
M32 出力ステップ
S ネットワーク置換システム
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19