(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2025-01-08
(45)【発行日】2025-01-17
(54)【発明の名称】数式特定装置、数式特定方法、推定装置及び推定方法
(51)【国際特許分類】
G06N 3/086 20230101AFI20250109BHJP
G06N 5/045 20230101ALI20250109BHJP
G06N 20/00 20190101ALI20250109BHJP
【FI】
G06N3/086
G06N5/045
G06N20/00
(21)【出願番号】P 2021050824
(22)【出願日】2021-03-24
【審査請求日】2023-11-22
(31)【優先権主張番号】P 2020146914
(32)【優先日】2020-09-01
(33)【優先権主張国・地域又は機関】JP
(73)【特許権者】
【識別番号】000191009
【氏名又は名称】新東工業株式会社
(74)【代理人】
【識別番号】110000338
【氏名又は名称】弁理士法人 HARAKENZO WORLD PATENT & TRADEMARK
(72)【発明者】
【氏名】野口 陽平
【審査官】新井 則和
(56)【参考文献】
【文献】特開2001-236338(JP,A)
【文献】特開平09-044466(JP,A)
【文献】関岡 哲也 外,遺伝的プログラミングを用いた関数合成アルゴリズムの改良法の提案,電子情報通信学会論文誌 第J83-D-I巻 第4号,2000年04月25日,第J83-D-I巻,pp. 407-417
【文献】Riccardo Guidotti et al.,A Survey Of Methods For Explaining Black Box Models,arxiv.org, [online],2018年02月06日,[検索日 2024.08.26], Retrieved from the Internet : <url: https://arxiv.org/pdf/1802.01933v1>
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/086
G06N 5/045
G06N 20/00
(57)【特許請求の範囲】
【請求項1】
機械学習により構築された学習済モデルを用いて入力データから出力データを推定する推定ステップと、
前記学習済モデルの前記入力データを表す数値と前記学習済モデルの前記出力データを表す数値との関係を表す非線形の数式を特定する特定ステップと、
を実行する一又は複数のプロセッサを備え、
前記学習済モデルは、複数の層により構成されるディープニューラルネットワークであり、
前記プロセッサは、前記特定ステップにおいて、入力層に入力される前記入力データを表す数値と出力層から出力される前記出力データを表す数値との関係を表す非線形の数式を解の候補とする遺伝的アルゴリズムを用いた非線形回帰により、当該数式を特定する、
ことを特徴とする数式特定装置。
【請求項2】
機械学習により構築された学習済モデルを用いて入力データから出力データを推定する推定ステップと、
前記学習済モデルの前記入力データを表す数値と前記学習済モデルの前記出力データを表す数値との関係を表す非線形の数式を特定する特定ステップと、
を実行する一又は複数のプロセッサを備え、
前記学習済モデルは、複数の層により構成されるディープニューラルネットワークであり、
前記プロセッサは、前記特定ステップにおいて、前記入力データを表す数値と隠れ層に属する一部又は全部のノードの各々の出力値との関係を表す非線形の第1の数式、及び、当該ノードの各々の出力値と前記出力データを表す数値との関係を表す非線形の第2の数式を解の候補とする遺伝的アルゴリズムを用いた非線形回帰により、当該第1の数式及び当該第2の数式を特定し、特定した第1の数式及び第2の数式を用いて、前記入力データを表す数値と前記出力データを表す数値との関係を表す非線形の数式を特定する、
ことを特徴とする数式特定装置。
【請求項3】
前記学習済モデルは、複数の隠れ層を含み、
前記プロセッサは、前記特定ステップにおいて、前記入力データを表す数値と一の隠れ層に属する各ノードの出力値との関係を表す非線形の第1の数式、及び、当該各ノードのデータと前記出力データを表す数値との関係を表す非線形の第2の数式を、前記遺伝的アルゴリズムを用いた非線形回帰により特定する、
ことを特徴とする請求項2に記載の数式特定装置。
【請求項4】
前記学習済モデルは、複数の隠れ層を含み、
前記プロセッサは、前記特定ステップにおいて、前記入力データを表す数値と、出力層の前段の隠れ層に属する各ノードの出力値との関係を表す非線形の第1の数式、及び、当該各ノードのデータと前記出力データを表す数値との関係を表す非線形の第2の数式を前記遺伝的アルゴリズムを用いた非線形回帰により特定する、
ことを特徴とする請求項2に記載の数式特定装置。
【請求項5】
一又は複数のプロセッサが、
機械学習により構築された学習済モデルを用いて入力データから出力データを推定する推定ステップと、
前記学習済モデルの前記入力データを表す数値と前記学習済モデルの前記出力データを表す数値との関係を表す非線形の数式を特定する特定ステップと、
を含み、
前記学習済モデルは、複数の層により構成されるディープニューラルネットワークであり、
前記プロセッサは、前記特定ステップにおいて、入力層に入力される前記入力データを表す数値と出力層から出力される前記出力データを表す数値との関係を表す非線形の数式を解の候補とする遺伝的アルゴリズムを用いた非線形回帰により、当該数式を特定する、
ことを特徴とする数式特定方法。
【請求項6】
一又は複数のプロセッサが、
機械学習により構築された学習済モデルを用いて入力データから出力データを推定する推定ステップと、
前記学習済モデルの前記入力データを表す数値と前記学習済モデルの前記出力データを表す数値との関係を表す非線形の数式を特定する特定ステップと、
を含み、
前記学習済モデルは、複数の層により構成されるディープニューラルネットワークであり、
前記プロセッサは、前記特定ステップにおいて、前記入力データを表す数値と隠れ層に属する一部又は全部のノードの各々の出力値との関係を表す非線形の第1の数式、及び、当該ノードの各々の出力値と前記出力データを表す数値との関係を表す非線形の第2の数式を解の候補とする遺伝的アルゴリズムを用いた非線形回帰により、当該第1の数式及び当該第2の数式を特定し、特定した第1の数式及び第2の数式を用いて、前記入力データを表す数値と前記出力データを表す数値との関係を表す非線形の数式を特定する、
ことを特徴とする数式特定方法。
【請求項7】
請求項1~4の何れか一項に記載の数式特定装置が特定した前記非線形の数式に、前記入力データを表す数値を代入して演算することにより、前記出力データを表す数値を推定する第2推定ステップ、
を実行する一又は複数のプロセッサを備える、
ことを特徴とする推定装置。
【請求項8】
一又は複数のプロセッサが、請求項5又は6に記載の数式特定方法で特定された前記非線形の数式に、前記入力データを表す数値を代入して演算することにより、前記出力データを表す数値を推定する第2推定ステップ、
を含むことを特徴とする推定方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、学習済モデルの演算過程を数式化する装置及び方法に関する。また、そのような数式を用いて学習済モデルの出力を推定する装置及び方法に関する。
【背景技術】
【0002】
ディープニューラルネットワーク(以下、「DNN」)を利用した第三世代AIの利用が社会で促進されている。DNNは、例えば静止画や動画の画像認識、音声認識、機械翻訳等の自然言語処理、産業機器に取り付けられたセンサの時系列データから異常の兆候を検知する異常検知処理に利用されている。
【0003】
DNNは、ニューラルネットワークをディープラーニングに対応させてネットワークの階層を深くしたものである。DNNは、入力層、複数の隠れ層、出力層を含む複数の層を含み、各層は複数のノードがエッジで結ばれる構造となっている。各層は、活性化関数と呼ばれる関数を持ち、エッジは重みを持つことができる。各ノードの出力値は、そのノードと接続する前の層のノードの出力値から計算される。すなわち、前の層のノードの出力値、接続エッジの重みの値、そして層が持つ活性化関数から各ノードの出力値が計算される。
【0004】
ところで、DNNはパーセプトロン層の学習工程が多層になっているため、入力値から出力値を得たとき、なぜその出力値になったのかが人間にはわからないことがある。DNNにおける演算方法には様々な種類があり、かつその内容は複雑であるため、演算工程をユーザが把握可能な態様で可視化することは困難である。
【0005】
これを解消するために、例えば特許文献1には、DNNの演算工程の可視化をはかる技術として、出力値群に対して主成分分析アルゴリズム、最小二乗法等の次元削減アルゴリズムを用いて線形式を得ることが記載されている。特許文献1に記載の技術によれば、DNNの内部でどのような演算が行われているのかを人間が明示的に理解できるので、次に利用するときにどのパラメータや重み付けを調節すればよいかをユーザが把握できる。
【先行技術文献】
【特許文献】
【0006】
【文献】特開2019-46453号公報(2019年3月22日公開)
【発明の概要】
【発明が解決しようとする課題】
【0007】
しかしながら、特許文献1に記載の方法は、線形アルゴリズムである次元削減アルゴリズムを用いるものであり、演算表現、数式化、可視化の幅が狭く、DNNの内部の演算過程を数式化、可視化するのは難しい場合がある。
【0008】
本発明の一態様は、上記の問題に鑑みてなされたものであり、学習済モデルの演算過程を数式化する技術を実現することを目的とする。
【課題を解決するための手段】
【0009】
上記の課題を解決するために、本発明の一態様に係る数式特定装置は、特定ステップを実行する一又は複数のプロセッサを備えている。また、本発明の一態様に係る数式特定方法は、特定ステップを含んでいる。特定ステップは、学習済モデルの入力データを表す数値と前記学習済モデルの出力データを表す数値との関係を表す非線形の数式を特定するステップである。
【0010】
また、本発明の一態様に係る推定装置は、第2推定ステップを実行する一又は複数のプロセッサを備えている。また、本発明の一態様に係る推定方法は、第2推定ステップを含んでいる。第2推定ステップは、上述の数式特定方法で特定された前記非線形の数式に、前記入力データを表す数値を代入して演算することにより、前記出力データを表す数値を推定するステップである。
【発明の効果】
【0011】
本発明の一態様に係る数式特定装置及び数式特定方法によれば、学習済モデルの演算過程を数式化することができる。また、本発明の一態様に係る推定装置及び推定方法によれば、そのような数式特定装置及び数式特定方法により特定された数式を用いて学習済モデルの出力を推定することができる。
【図面の簡単な説明】
【0012】
【
図1】本発明の一実施形態に係る演算数式化システムの構成を示す図である。
【
図2】
図1の演算数式化システムに含まれる数式特定装置の構成を示すブロック図である。
【
図3】
図2の数式特定装置が実施する数式特定方法の流れを示すフローチャートである。
【
図4】学習済モデルと遺伝的アルゴリズムとを例示する図である。
【
図5】
図3の特定ステップの流れを示すフローチャートである。
【
図6】数式特定装置が実施する処理の流れを示すフローチャートである。
【
図8】サブツリー突然変異の内容を例示する図である。
【
図9】ホイスト突然変異の内容を例示する図である。
【
図11】学習済モデルと遺伝的アルゴリズムとを例示する図である。
【
図12】
図3の特定ステップの流れを示すフローチャートである。
【
図13】
図1の演算数式化システムに含まれる推定装置の構成を示すブロック図である。
【
図14】
図13の推定装置が実施する推定方法の流れを示すフローチャートである。
【
図15】
図1の演算数式化システムに含まれる機械学習装置の構成を示すブロック図である。
【
図16】
図15の機械学習装置が実施する機械学習方法の流れを示すフローチャートである。
【
図18】学習済モデルと遺伝的アルゴリズムとを例示する図である。
【
図19】学習済モデルと遺伝的アルゴリズムとを例示する図である。
【
図20】学習済モデルと遺伝的アルゴリズムとを例示する図である。
【
図21】学習済モデルと遺伝的アルゴリズムとを例示する図である。
【発明を実施するための形態】
【0013】
〔実施形態1〕
〔演算数式化システム〕
本発明の一実施形態に係る演算数式化システムSについて、
図1を参照して説明する。
図1は、演算数式化システムSの構成を表す図である。
【0014】
演算数式化システムSは、学習済モデルLM1の入力と出力の関係を表す非線形の数式を特定するシステムである。演算数式化システムSは、
図1に示すように、数式特定装置1と、機械学習装置2と、推定装置3と、を備えている。
【0015】
数式特定装置1は、数式特定方法M1を実施する装置である。数式特定方法M1は、数式特定装置1が、機械学習により構築された学習済モデルLM1を用いて入力データから出力データを推定する推定ステップM11と、遺伝的アルゴリズムGAを用いた非線形回帰によって、入力データを表す数値と出力データを表す数値との関係を表す非線形の数式fを特定する特定ステップM12と、を含む。学習済モデルLM1としては、例えば、畳み込みニューラルネットワークや再帰型ニューラルネットワークなどのニューラルネットワークモデル、線形回帰などの回帰モデル、又は、回帰木などの木モデルなどのアルゴリズムを用いることができる。数式特定装置1の構成及び数式特定方法M1の流れの詳細については、参照する図面を代えて後述する。
【0016】
学習済モデルLM1の入力としては、種々のデータが採用され得る。学習済モデルLM1の入力は例えば、静止画または動画を表す画像データ、音声を表す音声データ、文書を表す文書データ、産業機器に取り付けられたセンサの時系列データである。また、学習済モデルLM1の入力は例えば、鋳造ラインにおいて収集される各種のパラメータである。
【0017】
学習済モデルLM1の出力としては、種々のデータが採用され得る。学習済モデルLM1の出力は例えば、画像認識結果、音声認識結果、機械翻訳結果、異常の有無である。また、学習済モデルLM1の出力は例えば、鋳造ラインにおける鋳物砂のCB値(コンパクタビリティ)の目標値である。
【0018】
数式特定装置1は、データ収集装置111を備える。データ収集装置111は、学習済モデルLM1への入力データと学習済モデルLM1からの出力データとを一時的に保持し、保持した入力データと出力データとを次段の遺伝的アルゴリズムGAに入力する。データ収集装置111は例えば、半導体メモリ、ハードディスク等の情報記憶手段と入出力手段を備えたバッファである。なお、
図1の例では、データ収集装置111が数式特定装置1に含まれる構成を例示しているが、データ収集装置111が数式特定装置1と別体の装置として構成されていてもよい。また、データ収集装置111は、ハードウェア単体で構成されてもよく、また、ハードウェアとソフトウェアとにより構成されてもよい。
【0019】
機械学習装置2は、機械学習方法M2を実施するための装置である。機械学習方法M2は、入力データを用いて学習用データセットDSを構築すると共に、学習用データセットDSを用いた機械学習(教師あり学習)によって学習済モデルLM1を構築するための方法である。機械学習装置2の構成及び機械学習方法M2の流れの詳細については、参照する図面を代えて後述する。
【0020】
推定装置3は、推定方法M3を実施するための装置である。推定方法M3は、推定装置3が、数式特定方法M1で特定された非線形の数式fに、入力データを表す数値を代入して演算することにより、出力データを表す数値を推定する第2推定ステップ、を含む。推定装置3の構成及び推定方法M3の流れの詳細については、参照する図面を代えて後述する。
【0021】
演算数式化システムSは、学習フェーズ、数式特定フェーズ、推定フェーズ、を実行する。学習フェーズ、数式特定フェーズ、推定フェーズについて、その内容を簡単に説明すれば、以下のとおりである。
【0022】
(1)学習フェーズ
学習フェーズにおいては、学習済モデルLM1が構築される。機械学習装置2は、入力データ及び出力データから教師データを作成し、作成した教師データを学習用データセットDSに追加する。また、機械学習装置2は、学習用データDSを用いた機械学習によって学習済モデルLM1を構築する。構築された学習済モデルLM1は、機械学習装置2から数式特定装置1に転送される。
【0023】
(2)数式特定フェーズ
数式特定フェーズにおいては、数式特定装置1は、入力データに基づき、学習済モデルLM1を用いて出力データを推定する。また、数式特定装置1は、遺伝的アルゴリズムを用いた非線形回帰によって、学習済モデルLM1の入力データを表す数値と出力データの表す数値との関係を表す非線形の数式を特定する。
【0024】
(3)推定フェーズ
推定フェーズにおいては、推定装置3は、数式特定装置1が特定した数式に、入力データを表す数値を代入して演算を行うことにより、出力データを表す数値を推定する。すなわち、推定装置3は、学習済モデルLM1を用いることなく、入力データから出力データを推定する。
【0025】
〔数式特定装置の構成〕
数式特定装置1の構成について、
図2を参照して説明する。
図2は、数式特定装置1の構成を示すブロック図である。
【0026】
数式特定装置1は、汎用コンピュータを用いて実現されており、プロセッサ11と、一次メモリ12と、二次メモリ13と、入出力インタフェース14と、通信インタフェース15と、バス16とを備えている。プロセッサ11、一次メモリ12、二次メモリ13、入出力インタフェース14、及び通信インタフェース15は、バス16を介して相互に接続されている。
【0027】
二次メモリ13には、数式特定プログラムP1及び学習済モデルLM1が格納されている。プロセッサ11は、二次メモリ13に格納されている数式特定プログラムP1及び学習済モデルLM1を一次メモリ12上に展開する。そして、プロセッサ11は、一次メモリ12上に展開された数式特定プログラムP1に含まれる命令に従って、数式特定方法M1に含まれる各ステップを実行する。一次メモリ12上に展開された学習済モデルLM1は、数式特定方法M1の推定ステップM11(後述)をプロセッサ11が実行する際に利用される。なお、数式特定プログラムP1が二次メモリ13に格納されているとは、ソースコード、又は、ソースコードをコンパイルすることにより得られた実行形式ファイルが二次メモリ13に記憶されていることを指す。また、学習済モデルLM1が二次メモリ13に格納されているとは、学習済モデルLM1を規定するパラメータが二次メモリ13に格納されていることを指す。
【0028】
プロセッサ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は、「演算装置」と呼ばれることもある。
【0029】
また、一次メモリ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として利用すればよい。
【0030】
入出力インタフェース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は、タブレット型コンピュータのように、入力デバイス及び出力デバイスの両方として機能するタッチパネルを内蔵していてもよい。
【0031】
通信インタフェース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が他のコンピュータに提供するデータは、これらのネットワークを介して送受信される。
【0032】
なお、本実施形態においては、単一のプロセッサ(プロセッサ11)を用いて数式特定方法M1を実行する構成を採用しているが、本発明は、これに限定されない。すなわち、複数のプロセッサを用いて数式特定方法M1を実行する構成を採用してもよい。この場合、連携して数式特定方法M1を実行する複数のプロセッサは、単一のコンピュータに設けられ、バスを介して相互に通信可能に構成されていてもよいし、複数のコンピュータに分散して設けられ、ネットワークを介して相互に通信可能に構成されていてもよい。一例として、クラウドサーバを構成するコンピュータに内蔵されたプロセッサと、そのクラウドサーバの利用者が所有するコンピュータに内蔵されたプロセッサとが、連携して数式特定方法M1を実行する態様などが考えられる。
【0033】
また、本実施形態においては、数式特定方法M1を実行するプロセッサ(プロセッサ11)と同じコンピュータに内蔵されたメモリ(二次メモリ13)に学習済モデルLM1を格納する構成を採用しているが、本発明は、これに限定されない。すなわち、数式特定方法M1を実行するプロセッサと異なるコンピュータに内蔵されたメモリに学習済モデルLM1を格納する構成を採用してもよい。この場合、学習済モデルLM1を格納するメモリが内蔵されたコンピュータは、数式特定方法M1を実行するプロセッサが内蔵されたコンピュータとネットワークを介して相互に通信可能に構成される。一例として、クラウドサーバを構成するコンピュータに内蔵されたメモリに学習済モデルLM1を格納し、そのクラウドサーバの利用者が所有するコンピュータに内蔵されたプロセッサが数式特定方法M1を実行する態様などが考えられる。
【0034】
また、本実施形態においては、単一のメモリ(二次メモリ13)に学習済モデルLM1を格納する構成を採用しているが、本発明は、これに限定されない。すなわち、複数のメモリに学習済モデルLM1を分散して格納する構成を採用してもよい。この場合、学習済モデルLM1を格納する複数のメモリは、単一のコンピュータ(数式特定方法M1を実行するプロセッサが内蔵されたコンピュータであってもよいし、そうでなくてもよい)に設けられていてもよいし、複数のコンピュータ(数式特定方法M1を実行するプロセッサが内蔵されたコンピュータを含んでいてもよいし、そうでなくてもよい)に分散して設けられていてもよい。一例として、クラウドサーバを構成する複数のコンピュータの各々に内蔵されたメモリに学習済モデルLM1を分散して格納する構成などが考えられる。
【0035】
データ収集装置111が数式特定装置1と別体の装置として構成される場合、データ収集装置111は、例えばメモリ(図示略)とプロセッサ(図示略)とを含む。
【0036】
〔数式特定方法の流れ〕
数式特定方法M1の流れについて、
図3を参照して説明する。
図3は、数式特定方法M1の流れを示すフローチャートである。数式特定方法M1は、推定ステップM11と、特定ステップM12と、を含んでいる。
【0037】
推定ステップM11は、プロセッサ11が、学習済モデルLM1を用いて入力データから出力データを推定するステップである。推定ステップM11において、プロセッサ11は、入力データを学習済モデルLM1に入力することにより、出力データを取得する。学習済モデルLM1に入力された入力データと、学習済モデルLM1から出力された出力データとは、データ収集装置111に一時的に保持される。データ収集装置111が保持するデータは、後段の特定ステップM12で用いられる。
【0038】
図3の特定ステップM12は、プロセッサ11が、遺伝的アルゴリズムGAを用いた非線形回帰によって、入力データを表す数値と出力データを表す数値との関係を表す非線形の数式を特定するステップである。データ収集装置111は、一時的に保持していた学習済モデルLM1の入力データと出力データとを、遺伝的アルゴリズムGAに時間的同期をつけて入力する。このように、データ収集装置111は、学習済モデルLM1のデータを纏めて(ある程度の情報単位にして)次段の遺伝的アルゴリズムGAに入力する、一種のバッファとして動作する。
【0039】
遺伝的アルゴリズムGAは、解の候補を遺伝子で表現した個体iを複数用意し、適応度Diの高い個体iを優先的に選択して交叉、突然変異などの操作を繰り返しながら解を探索するアルゴリズムである。本実施形態において、個体iは、非線形の数式(関係式)をツリー構造で表したものであり、数式に含まれる演算子及び引数がツリーのノードで表される。適応度Diは適応度関数によって与えられる。
【0040】
〔学習済モデルと遺伝的アルゴリズムの具体例1〕
図4は、学習済モデルLM1と遺伝的アルゴリズムGAとを例示する図である。学習済モデルLM1は、複数の層により構成されるディープニューラルネットワークである。学習済モデルLM1は、入力データが入力される入力層LX、隠れ層LY、出力データを出力する出力層LZを含む複数の層を含む。各層は複数のノードがエッジで結ばれる構造となっている。
【0041】
各層は、活性化関数と呼ばれる関数を持ち、エッジは重みを持つことができる。各ノードの出力値は、そのノードと接続する前の層のノードの出力値から計算される。すなわち、前の層のノードの出力値、接続エッジの重みの値、そして層が持つ活性化関数から各ノードの出力値が計算される。
【0042】
図4の例において、入力層LXは、ノードX1、X2、X3、X4を含む。すなわち、この例で、学習済モデルLM1に入力される入力データは、ノードX1、X2、X3、X4の出力値x1、x2、x3、x4を含む。
【0043】
隠れ層LYは、ノードY1、Y2、Y3を含む。ノードY1、Y2、Y3の出力値y1、y2、y3は、隠れ層LYの前の層である入力層LXのノードの出力値x1、x2、x3、x4から計算される。
【0044】
出力層LZは、ノードZ1を含む。ノードZ1の出力値z1は、出力層LZの前の層である隠れ層LYのノードの出力値y1、y2、y3から計算される。すなわち、この例で、学習済モデルLM1の出力データは、ノードZ1の出力値z1である。
【0045】
データ収集装置111は、学習済モデルLM1への入力データと学習済モデルLM1の出力データを一時的に保持し、入力データと出力データとを次段の遺伝的アルゴリズムGAに順次入力する。
【0046】
遺伝的アルゴリズムGAは、第一世代G1~第四世代G4を含む。
図4の例では、個体iである非線形の数式は、例えば以下の(1)式で表される。
z1=f
0(x1,x2,x3,x4) …(1)
【0047】
(1)式において、z1は学習済モデルLM1のノードZ1の出力値、すなわち出力データを表す数値である。x1、x2、x3、x4は入力層LXの各ノードの出力値、すなわち入力データを表す数値である。すなわち、(1)式は、入力層LXの各ノードの出力値x1、x2、x3、x4と、出力層LZのノードZ1の出力値z1との関係を表す式である。(1)式に示されるように、プロセッサ11は、入力データと出力データとの関係を表す非線形の数式(関係式)を解の候補とする遺伝的アルゴリズムを用いた非線形回帰により、非線形の数式を特定する。
【0048】
図5は、プロセッサ11が実行する特定ステップM12の流れを例示するフローチャートである。プロセッサ11は、所定のモジュール(以下、「Aモジュール」という)を用いて特定ステップM12を実行する。Aモジュールは、遺伝的アルゴリズムを実行するモジュールである。Aモジュールでは、プロセッサ11は、まず、新しいデータを予測するために、既知の独立変数とそれらの従属変数ターゲットの間の関係を表す単純なランダム式の母集団を作成することから始める。次に、プロセッサ11は、遺伝子操作を受ける集団から最も適した個体を選択することにより、集団を進化させて次の世代の集団を生成する。上記の操作により、上記関係を最もよく示す数式が特定される。
【0049】
本具体例では、Aモジュールとして、遺伝的プログラミングを実行するモジュールが用いられる。遺伝的プログラミングとは、遺伝的アルゴリズムを拡張したものであり、遺伝子型の表現としてツリー構造を用いるものである。なお、
図5に示す特定ステップM12の流れは例示であり、遺伝的アルゴリズムGAを用いた数式の特定方法は
図5に示した方法に限定されるものではない。遺伝的アルゴリズムGAを用いた数式の特定方法として、他の種々の手法が採用され得る。
【0050】
ステップM121において、プロセッサ11は、学習済モデルLM1の入力データと出力データとをデータ収集装置111から取得する。入力データは、学習済モデルLM1の入力層LXの各ノードの出力値x1、x2、x3、x4を含む。出力データは、出力層LZのノードZ1の値z1を含む。
【0051】
ステップM122において、プロセッサ11は、遺伝的アルゴリズムGAで用いるパラメータを取得する。パラメータは例えば、生成個体数N、トーナメントサイズNt、交叉確率Pc、突然変異確率Pms、進化世代数Ng、構文木に用いる演算子Oj、構文木の最大の深さd、事象発生確率Pk1~Pk5を含む。各パラメータの値は例えば、ユーザが数式特定装置1に入力する。
【0052】
生成個体数Nは、集合に含める個体iの数を表す。トーナメントサイズNtは、現世代の集合からランダムに選択する個体iの数である。突然変異確率Pmsは、遺伝子が突然変異をする確率である。構文木に用いる演算子Oiは、例えば、Max、Min、sqrt(ルート)、log(自然対数)、+、-、×、÷、sin(ラジアン)、cos(ラジアン)、tan(ラジアン)、abs、neg、invである。Maxは、最大値を選択する演算子である。Minは、最小値を選択する演算子である。negは符号をマイナスにする演算子である。invはゼロに近い引数を0にする演算子である。
【0053】
事象発生確率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については参照する図面を代えて後述する。
【0054】
ステップM123において、プロセッサ11は、指定されたパラメータ(構文木に用いる演算子Oi、構文木の最大の深さd、等)に基づいて、N個の個体iをランダムに生成し、最初の現世代となるN個の個体iの集合を生成する。
【0055】
ステップM124において、プロセッサ11は、現世代の集合に含まれる個体iのそれぞれの適応度Diを算出する。適応度Diは、適応度関数によって与えられる。
【0056】
ステップM125において、プロセッサ11は、現世代の集合からトーナメントサイズNtの数の個体iをランダムに取り出し、その中で最も適応度Diの高い個体iを選択し、次世代の集合に追加する。ステップM125において選択された個体i、すなわち、次世代の集合に追加された個体iを「勝者ツリー」ともいう。
【0057】
プロセッサ11は、次世代の個体数が現世代と同じN個になるまで、すなわち次世代の個体数がNに達していない間は(ステップM126;NO)、ステップM125の処理を繰り返す。プロセッサ21は、次世代の個体数がNに達すると(ステップM126;YES)ステップM127の処理を実行する。
【0058】
ステップM127において、プロセッサ11は、次世代の集合を進化させる処理を実行する。なお、ステップM127の詳細については、参照する図面を代えて後述する。
【0059】
ステップM130において、プロセッサ11は、次世代の集合を現世代の集合に上書きする。ステップM131において、プロセッサ11は、進化世代数Ngに達したかを判定する。進化世代数Ngに達していない場合(ステップM131;NO)、プロセッサ11はステップM124の処理に戻る。一方、進化世代数Ngに達している場合(ステップM131;YES)、プロセッサ11は、ステップM132の処理に進む。
【0060】
ステップM132において、プロセッサ11は、現世代の集合に含まれる個体iの中から適応度Diが最も高い個体iを特定する。ステップM133において、プロセッサ11は、特定した個体iを最適解として出力する。例えば、プロセッサ11は、選択した個体iである数式、又はその数式の表す図形(グラフ等)をディスプレイに表示する。
【0061】
図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は、処理を終了する。
【0062】
操作m1は、クロスオーバーである。クロスオーバーとは、個体間で遺伝物質を混合する方法である。クロスオーバーの場合、ステップM202において、プロセッサ11は、次世代の集合に含まれる勝者ツリーについて、各勝者ツリーに含まれるサブツリーをランダムに選択する。
【0063】
ステップM203において、プロセッサ11は、ドナー用の次世代の集合を生成する。ステップM203の処理の内容は、
図6のステップM123~M125の内容と同様である。すなわち、プロセッサ11は、まず、ユーザにより指定された個体パラメータに基づいて、N個の個体iをランダムに生成し、N個の個体iの集合(以下「ドナー集合」という)を生成する。次いで、プロセッサ11は、ドナー集合に含まれる個体iのそれぞれの適応度Diを算出する。次いで、プロセッサ11は、ドナー集合からトーナメントサイズNtの数の個体iをランダムに取り出し、その中で最も適応度Diの高い個体iを選択し、次世代のドナー集合に追加する。この処理により選択される個体iを「ドナーツリー」ともいう。プロセッサ11は、次世代のドナーツリーの数がNになるまで、ドナーツリーの選択処理を繰り返す。
【0064】
ステップM204において、プロセッサ11は、ドナーツリーに含まれるサブツリー(以下「ドナーサブツリー」という)をランダムに選択する。
【0065】
ステップM205において、プロセッサ11は、勝者ツリーにおいてサブツリーの入れ替えを行う。本実施形態では、プロセッサ11は、勝者ツリーからステップM202で選択したサブツリー取り除き、そのサブツリーがあった箇所にステップM203で選択したドナーサブツリーを移植する。すなわち、プロセッサ11は、勝者ツリーに含まれるサブツリーをドナーサブツリーで置換する。このサブツリーが置換された勝者ツリーが、次世代の子孫(個体)となる。
【0066】
操作m2は、サブツリーを突然変異させる操作である。サブツリーを突然変異させることにより、絶滅した機能とオペレーターを集団に再導入し、多様性を維持することができる。この場合、ステップM211において、プロセッサ11は、勝者ツリーに含まれるサブツリーをランダムに選択する。
【0067】
ステップM212において、プロセッサ11は、サブツリーをランダムに生成する。ステップM213において、プロセッサ11は、勝者ツリーにおいてサブツリーの入れ替えを行う。本実施形態では、プロセッサ11は、勝者ツリーからステップM202で選択したサブツリーを取り除き、取り除いたサブツリーがあった箇所に、ステップM212で生成したサブツリーを移植する。すなわち、プロセッサ11は、勝者ツリーに含まれるサブツリーをステップM212で生成したサブツリーで置換する。このサブツリーが置換された勝者ツリーが、次世代の子孫(個体)となる。
【0068】
操作m3は、ホイスト突然変異である。ホイスト突然変異は、ツリーの膨らみと戦う突然変異操作である。ステップM221において、プロセッサは、勝者ツリーに含まれるサブツリーをランダムに選択する。ステップM222において、プロセッサ11は、ステップM221で選択したサブツリーに含まれるサブツリーをランダムに選択する。
【0069】
ステップM223において、プロセッサ11は、ステップM222で選択したサブツリーを、元のサブツリー(ステップM221で選択したサブツリー)の位置まで巻き上げる。このサブツリーが巻き上げられた勝者ツリーが、次世代の子孫(個体)となる。
【0070】
操作m4は、点突然変異である。点突然変異は、多様性を維持するために、絶滅した数式と演算子を集団に再導入する操作である。ステップM231において、プロセッサ11は、勝者ツリーのノードをランダムに選択する。ステップM232において、プロセッサ11は、ステップM231で選択したノードを、他のノードに置換する。これにより、勝者ツリーの表す数式は、元のノードと同じ数の引数を必要とする他の数式に置き換えられる。置き換えにより得られる勝者ツリーが、次世代の子孫(個体)となる。
【0071】
操作m5は、再生である。この場合、勝者ツリーは複製され、変更されることなく次の世代に含められる。
【0072】
図7~
図10は、勝者ツリーに対して行われる操作の内容を例示する図である。
図7は、操作m1(クロスオーバー)の内容を例示する図である。
図7の例では、勝者ツリーtr11のサブツリーtr111が、ドナーツリーtr12のサブツリーtr121で置換され、勝者ツリーtr13となる。勝者ツリーtr13が、次世代の子孫(個体)となる。
【0073】
図8は、操作m2(サブツリー突然変異)の内容を例示する図である。
図8の例では、勝者ツリーtr11のサブツリーtr111が、サブツリーtr22で置換され、勝者ツリーtr23となる。勝者ツリーtr23が、次世代の子孫(個体)となる。
【0074】
図9は、操作m3(ホイスト突然変異)の内容を例示する図である。
図9の例では、勝者ツリーtr11のサブツリーtr1121が、サブツリーtr112の位置まで巻き上げられ、勝者ツリーtr31となる。勝者ツリーtr31が、次世代の子孫(個体)となる。
【0075】
図10は、操作m4(点突然変異)の内容を例示する図である。
図10の例では、勝者ツリーtr11に含まれるノードn21及びノードn34が、ノードn421及びノードn434に置換され、勝者ツリーtr41となる。勝者ツリーtr41が、次世代の子孫(個体)となる。
【0076】
〔学習済モデルと遺伝的アルゴリズムの具体例2〕
図11は、学習済モデルLM1と遺伝的アルゴリズムGAとの他の例を示す図である。
図11の例では、遺伝的アルゴリズムGAの個体iは、例えば以下の(2)~(5)式の4つの式を含む。
z1=f
1(y1,y2,y3) …(2)
y1=f
2(x1,x2,x3,x4) …(3)
y2=f
3(x1,x2,x3,x4) …(4)
y3=f
4(x1,x2,x3,x4) …(5)
【0077】
(3)~(5)式は、入力層LXの各ノードの出力値x1、x2、x3、x4と、隠れ層LYの各ノードの出力値y1、y2、y3との関係を表す非線形の数式(第1の数式)である。(2)式は、出力層LZのノードZ1の値z1と、隠れ層LYの各ノードの出力値y1、y2、y3との関係を表す非線形の数式(第2の数式)である。
【0078】
すなわち、この例では、プロセッサ11は、入力データを表す数値と隠れ層LY1に属する全部のノードの各々の出力値との関係を表す非線形の第1の数式、及び、隠れ層LY1の各ノードの各々の出力値と出力データを表す数値との関係を表す非線形の第2の数式を解の候補とする遺伝的アルゴリズムを用いた非線形回帰により、第1の数式及び第2の数式を特定する。
【0079】
図12は、
図11の例においてプロセッサ11が実行する特定ステップM12の流れを例示するフローチャートである。
図12のフローチャートは、
図5のフローチャートのステップM121、M123、及びステップM132に代えて、ステップM151、M152、及びステップM153を実行する。
【0080】
ステップM151において、プロセッサ11は、学習済モデルLM1の入力データと出力データとを取得する。取得される入力データは、入力層LXの各ノートの出力値x1、x2、x3を含む。出力データは、出力層LZのノードZ1の出力値z1に加えて、隠れ層LYの各ノードの出力値y1、y2、y3を含む。
【0081】
ステップM152において、プロセッサ11は、指定されたパラメータ(構文木に用いる演算子Oi、構文木の最大の深さd、等)に基づいて、N個の個体iをランダムに生成し、最初の現世代となるN個の個体iの集合を生成する。個体iは、上述の(2)~(5)の4つの数式を含む。ステップM152の処理を終えると、プロセッサ11は、ステップM124の処理に進む。
【0082】
プロセッサ11は、ステップM124~M131の処理を実行する。これにより、遺伝的アルゴリズムによる最適解((2)~(5)式)が得られる。ステップM131の処理を終えると、プロセッサ11は、ステップM153の処理に進む。
【0083】
ステップM153において、プロセッサ11は、遺伝的アルゴリズムにより特定した第1の数式((3)~(5)式)及び第2の数式((2)式)を用いて、入力データと出力データとの関係を表す非線形の数式を特定する。この例で、プロセッサ11は、最適解として選択した個体iに含まれる(2)式~(5)式の連立方程式を解くことにより、学習済モデルLM1の入力データと出力データとの関係を表す数式を特定する。入力データと出力データの関係を表す数式は、例えば、上述の(1)式で表される。ステップS133において、プロセッサ11は、特定した数式を、例えばディスプレイに表示する等して出力する。
【0084】
以上説明したように本実施形態によれば、数式特定装置1が、学習済モデルLM1に入力したデータを表す数値と、学習済モデルLM1から出力された出力データを表す数値との関係を表す非線形の数式を、遺伝的アルゴリズムGAを用いた非線形回帰により特定する。ユーザは、非線形の数式又はこの数式により表されるグラフ等の図形により、その学習済モデルの演算過程を把握し易い。
【0085】
〔推定装置の構成〕
推定装置3の構成について、
図13を参照しつつ説明する。
図13は、推定装置3の構成を示すブロック図である。
【0086】
推定装置3は、汎用コンピュータを用いて実現されており、プロセッサ31と、一次メモリ32と、二次メモリ33と、入出力インタフェース34と、通信インタフェース35と、バス36とを備えている。プロセッサ31、一次メモリ32、二次メモリ33、入出力インタフェース34、及び通信インタフェース35は、バス36を介して相互に接続されている。
【0087】
二次メモリ33には、推定プログラムP3が格納されている。プロセッサ21は、二次メモリ23に格納されている推定プログラムP3を一次メモリ32上に展開する。そして、プロセッサ31は、一次メモリ32上に展開された推定プログラムP3に含まれる命令に従って、推定方法M3(第2推定ステップの一例)に含まれる各ステップを実行する。二次メモリ33に格納された数式fは、推定方法M3の第2推定ステップM31(後述)において利用される。なお、推定プログラムP3が二次メモリ33に格納されているとは、ソースコード、又は、ソースコードをコンパイルすることにより得られた実行形式ファイルが二次メモリ33に記憶されていることを指す。
【0088】
プロセッサ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は、「演算装置」と呼ばれることもある。
【0089】
また、一次メモリ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として利用すればよい。
【0090】
入出力インタフェース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は、タブレット型コンピュータのように、入力デバイス及び出力デバイスの両方として機能するタッチパネルを内蔵していてもよい。
【0091】
通信インタフェース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)から提供されるデータ(例えば、数式f)は、これらのネットワークを介して送受信される。
【0092】
なお、本実施形態においては、単一のプロセッサ(プロセッサ31)を用いて推定方法M3を実行する構成を採用しているが、本発明は、これに限定されない。すなわち、複数のプロセッサを用いて推定方法M3を実行する構成を採用してもよい。この場合、連携して推定方法M3を実行する複数のプロセッサは、単一のコンピュータに設けられ、バスを介して相互に通信可能に構成されていてもよいし、複数のコンピュータに分散して設けられ、ネットワークを介して相互に通信可能に構成されていてもよい。一例として、クラウドサーバを構成するコンピュータに内蔵されたプロセッサと、そのクラウドサーバの利用者が所有するコンピュータに内蔵されたプロセッサとが、連携して推定方法M3を実行する態様などが考えられる。
【0093】
また、本実施形態においては、推定方法M3を実行するプロセッサ(プロセッサ31)と同じコンピュータに内蔵されたメモリ(二次メモリ33)に数式fを格納する構成を採用しているが、本発明は、これに限定されない。すなわち、推定方法M3を実行するプロセッサと異なるコンピュータに内蔵されたメモリに数式fを格納する構成を採用してもよい。この場合、数式fを格納するメモリが内蔵されたコンピュータは、推定方法M3を実行するプロセッサが内蔵されたコンピュータとネットワークを介して相互に通信可能に構成される。一例として、クラウドサーバを構成するコンピュータに内蔵されたメモリに数式fを格納し、そのクラウドサーバの利用者が所有するコンピュータに内蔵されたプロセッサが推定方法M3を実行する態様などが考えられる。
【0094】
また、本実施形態においては、単一のメモリ(二次メモリ33)に数式fを格納する構成を採用しているが、本発明は、これに限定されない。すなわち、複数のメモリに数式fを分散して格納する構成を採用してもよい。この場合、数式fを格納する複数のメモリは、単一のコンピュータ(推定方法M3を実行するプロセッサが内蔵されたコンピュータであってもよいし、そうでなくてもよい)に設けられていてもよいし、複数のコンピュータ(推定方法M3を実行するプロセッサが内蔵されたコンピュータを含んでいてもよいし、そうでなくてもよい)に分散して設けられていてもよい。一例として、クラウドサーバを構成する複数のコンピュータの各々に内蔵されたメモリに数式fを分散して格納する構成などが考えられる。
【0095】
〔推定方法の流れ〕
推定方法M3の流れについて、
図14を参照して説明する。
図14は、推定方法M3の流れを示すフローチャートである。推定方法M3は、第2推定ステップM31と、出力ステップM32と、を含んでいる。
【0096】
第2推定ステップM31は、プロセッサ11が、推定装置3が特定した非線形の数式に、入力データを表す数値を代入して演算することにより、出力データを表す数値を推定するステップである。第2推定ステップM31において推定される出力データは、学習済モデルLM1に入力データを入力した場合に出力されると推定されるデータである。
【0097】
出力ステップM32は、プロセッサ11が、推定した出力データを出力するステップである。プロセッサ11は例えば、出力データの表す画像をディスプレイに表示する等して出力データを出力する。
【0098】
本実施形態によれば、推定装置3が、遺伝的アルゴリズムGAを用いた非線形回帰により特定された非線形の数式を用いて、学習済モデルLM1の出力を推定する。すなわち、推定装置3は、学習済モデルLM1を用いることなく、入力データから学習済モデルLM1の出力を推定することができる。そのため、例えば、推定装置3の演算装置が高度な演算処理に対応していない場合であっても、推定装置3が学習済モデルLM1の出力結果を推定することができる。
【0099】
また、本実施形態では、データ収集装置111が学習済モデルLM1の入力データと出力データとをバッファリングし、遺伝的アルゴリズムGAに時間的同期をつけて入力する。学習済モデルLM1からの出力と遺伝的アルゴリズムGAへの入力の時間的同期を図ることができるため、次段の遺伝的アルゴリズムGAが最終解を出力するまでの時間を先読みすることができる。
【0100】
また、本実施形態では、データ収集装置111が、学習済モデルLM1のデータを纏めて(ある程度の情報単位にして)次段の遺伝的アルゴリズムGAに入力する一種のバッファとして働く。これにより、次段の遺伝的アルゴリズムGAの世代演算処理において無駄なメモリ空間及び無駄な演算処理を削減でき、遺伝的アルゴリズムの世代演算処理を効率化できる。
【0101】
〔機械学習装置の構成〕
機械学習装置2の構成について、
図15を参照して説明する。
図15は、機械学習装置2の構成を示すブロック図である。
【0102】
機械学習装置2は、汎用コンピュータを用いて実現されており、プロセッサ21と、一次メモリ22と、二次メモリ23と、入出力インタフェース24と、通信インタフェース25と、バス26とを備えている。プロセッサ21、一次メモリ22、二次メモリ23、入出力インタフェース24、及び通信インタフェース25は、バス26を介して相互に接続されている。
【0103】
二次メモリ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に格納されていることを指す。
【0104】
プロセッサ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は、「演算装置」と呼ばれることもある。
【0105】
また、一次メモリ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として利用すればよい。
【0106】
入出力インタフェース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は、タブレット型コンピュータのように、入力デバイス及び出力デバイスの両方として機能するタッチパネルを内蔵していてもよい。
【0107】
通信インタフェース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)は、これらのネットワークを介して送受信される。
【0108】
なお、本実施形態においては、単一のプロセッサ(プロセッサ21)を用いて機械学習方法M2を実行する構成を採用しているが、本発明は、これに限定されない。すなわち、複数のプロセッサを用いて機械学習方法M2を実行する構成を採用してもよい。この場合、連携して機械学習方法M2を実行する複数のプロセッサは、単一のコンピュータに設けられ、バスを介して相互に通信可能に構成されていてもよいし、複数のコンピュータに分散して設けられ、ネットワークを介して相互に通信可能に構成されていてもよい。一例として、クラウドサーバを構成するコンピュータに内蔵されたプロセッサと、そのクラウドサーバの利用者が所有するコンピュータに内蔵されたプロセッサとが、連携して機械学習方法M2を実行する態様などが考えられる。
【0109】
また、本実施形態においては、機械学習方法M2を実行するプロセッサ(プロセッサ21)と同じコンピュータに内蔵されたメモリ(二次メモリ23)に学習用データセットDSを格納する構成を採用しているが、本発明は、これに限定されない。すなわち、機械学習方法M2を実行するプロセッサと異なるコンピュータに内蔵されたメモリに学習用データセットDSを格納する構成を採用してもよい。この場合、学習用データセットDSを格納するメモリが内蔵されたコンピュータは、機械学習方法M2を実行するプロセッサが内蔵されたコンピュータとネットワークを介して相互に通信可能に構成される。一例として、クラウドサーバを構成するコンピュータに内蔵されたメモリに学習用データセットDSを格納し、そのクラウドサーバの利用者が所有するコンピュータに内蔵されたプロセッサが機械学習方法M2を実行する態様などが考えられる。
【0110】
また、本実施形態においては、単一のメモリ(二次メモリ23)に学習用データセットDSを格納する構成を採用しているが、本発明は、これに限定されない。すなわち、複数のメモリに学習用データセットDSを分散して格納する構成を採用してもよい。この場合、学習用データセットDSを格納する複数のメモリは、単一のコンピュータ(機械学習方法M2を実行するプロセッサが内蔵されたコンピュータであってもよいし、そうでなくてもよい)に設けられていてもよいし、複数のコンピュータ(機械学習方法M2を実行するプロセッサが内蔵されたコンピュータを含んでいてもよいし、そうでなくてもよい)に分散して設けられていてもよい。一例として、クラウドサーバを構成する複数のコンピュータの各々に内蔵されたメモリに学習用データセットDSを分散して格納する構成などが考えられる。
【0111】
また、本実施形態においては、数式特定方法M1、機械学習方法M2及び推定方法M3を異なるプロセッサ(プロセッサ11、プロセッサ21及びプロセッサ31)を用いて実行する構成を採用しているが、本発明は、これに限定されない。すなわち、数式特定方法M1、機械学習方法M2及び推定方法M3を同一のプロセッサを用いて実行してもよい。この場合、機械学習方法M2を実行することによって、このプロセッサと同じコンピュータに内蔵されたメモリに学習済モデルLM1が格納さる。そして、このプロセッサは、数式特定方法M1を実行する際に、このメモリに格納された学習済モデルLM1を利用し、数式を特定することになる。また、このプロセッサは、推定方法M3を実行する際に、特定した数式を用いて出力データを推定する。
【0112】
〔機械学習方法の流れ〕
機械学習方法M2の流れについて、
図16を参照して説明する。
図16は、機械学習方法M2の流れを示すフローチャートである。
【0113】
機械学習方法M2は、学習用データセット構築ステップM21と、学習済モデル構築ステップM22と、を含んでいる。
【0114】
学習用データセット構築ステップM21は、プロセッサ21が、教師データDS1,DS2,…の集合である学習用データセットDSを構築するステップである。
【0115】
各教師データDSi(i=1,2,…)には、第1データ、及び第2データが含まれている。教師データDSiに含まれる第1データは、学習済モデルLM1に入力する入力データと同様のデータである。学習用データセット構築ステップM21において、プロセッサ21は、数式特定装置1と同様の方法でこのデータを取得する。また、教師データDSiには、第2データがラベルとして含まれる。学習用データセット構築ステップM21において、プロセッサ21は、第1データと、第2データとを関連付けて二次メモリ23に格納する。以上のプロセスをプロセッサ21が繰り返すことによって、学習用データセットDSが構築される。
【0116】
学習済モデル構築ステップM22は、プロセッサ21が、学習済モデルLM1を構築するステップである。学習済モデル構築ステップM22において、プロセッサ21は、学習用データセットDSを用いた教師あり学習によって、学習済モデルLM1を構築する。そして、プロセッサ21は、構築した学習済モデルLM1を二次メモリ23に格納する。
【0117】
〔実施例1〕
本実施形態に係る演算数式化システムSは、例えば鋳造システムに適用される。鋳造フェーズC1について、
図17を参照して説明する。
図17は、鋳造システムにおける鋳造フェーズC1の構成を示す図である。
【0118】
鋳造フェーズC1は、鋳物砂を用いて鋳造を行うフェーズである。鋳造フェーズC1は、例えば
図17に示すように、混練工程C11と、造型工程C12と、抜型工程C13と、塗型工程C14と、枠合せ工程C15と、注湯工程C16と、冷却工程C17と、解枠工程C18と、により構成することができる。
【0119】
混練工程C11は、鋳物砂に樹脂及び硬化剤を含む添加物を加えて混練する工程である。造型工程C12は、混練工程C11にて混練された鋳物砂を鋳枠に充填することによって、鋳型を造型する工程である。ここでは、鋳型の上部に相当する上型と鋳型の下部に相当する下型とが、それぞれ造型されるものとする。抜型工程C13は、造型工程C12にて造型された上型及び下型を鋳枠から分離する工程である。塗型工程C14は、抜型工程C13にて取り出した上型及び下型の製品面に塗型剤を塗布する工程である。枠合せ工程C15は、塗型工程C14にて塗型剤が塗布された上型と下型とを合体させることによって、鋳型を得る工程である。注湯工程C16は、枠合せ工程C15にて得られた鋳型に溶湯を流し込む工程である。冷却工程C17は、注湯工程C16にて鋳型に注入された溶湯を冷却する工程である。冷却された溶湯は、鋳型の内部で凝固して鋳物となる。解枠工程C18は、鋳型に振動を与えることによって、鋳型を解体して砂塊にすると共に、冷却工程C17にて得られた鋳物を取り出す工程である。
【0120】
鋳造フェーズC1にて得られた砂塊は、例えば、解砕工程、分離工程、再生前冷却工程、砂再生工程等を経て鋳物砂に再生される。
【0121】
本実施例に係る鋳造システムにおいて、遺伝的アルゴリズムを用いて特定される数式における入力データは例えば、鋳造ラインに設置された各種のセンサが検知するセンサ出力値を含む。出力データは例えば、CB値、鋳型強度、鋳型の欠けの有無ラベル、製品の良品、不良品ラベルを含む。
【0122】
本実施例によれば、例えば、数式特定装置1が、学習済モデルLM1に入力したセンサ出力値と、学習済モデルLM1から出力されたCB値との関係を表す非線形の数式を、遺伝的アルゴリズムGAを用いて非線形回帰により特定する。ユーザは、この非線形の数式又はこの数式により表されるグラフ等の図形により、センサ出力値とCB値との関係を把握し易い。
【0123】
〔実施例2〕
本実施形態に係る演算数式化システムSは、例えば売上予測システムに適用される。売上予測システムにおいて、遺伝的アルゴリズムを用いて特定される数式における入力データは例えば、気温、曜日、通行量、人口、世帯数、店舗面積、単価、品ぞろえ数、駅からの距離、広告費、SNSハッシュタグ統計、キーワード検索統計、感染症の感染者数、来日外国人数、為替レート、株価、金利、物価、雇用統計、日銀短観、家計調査を示す条件データを含む。出力データは例えば、売上金額を示すデータを含む。
【0124】
本実施例によれば、例えば、数式特定装置1が、学習済モデルLM1に入力した条件データと、学習済モデルLM1から出力された売上金額との関係を表す非線形の数式を、遺伝的アルゴリズムGAを用いて非線形回帰により特定する。ユーザは、この非線形の数式又はこの数式により表されるグラフ等の図形により、売上予測システムにおける条件と売上との関係を把握し易い。
【0125】
〔実施例3〕
また、本実施形態に係る演算数式化システムSは、例えば創薬システムに適用される。創薬システムにおいて、遺伝的アルゴリズムを用いて特定される数式における入力データは例えば、分子モデルパラメータ、各成分の結合親和性を示すデータを含む。出力データは例えば、薬剤を示すデータを含む。
【0126】
本実施例によれば、例えば、数式特定装置1が、学習済モデルLM1に入力した入力データと、学習済モデルLM1から出力された薬剤を示すデータとの関係を表す非線形の数式を、遺伝的アルゴリズムGAを用いて非線形回帰により特定する。ユーザは、この非線形の数式又はこの数式により表されるグラフ等の図形により、入力データと薬剤との関係を把握し易い。
【0127】
〔実施例4〕
また、本実施形態に係る演算数式化システムSは、例えば材料開発システムに適用される。材料開発システムにおいて、遺伝的アルゴリズムを用いて特定される数式における入力データは例えば、合金の成分の配合率、物性値を含む。出力データは例えば、生成される材料の特性(強度、等)を表す特性データを含む。
【0128】
本実施例によれば、例えば、数式特定装置1が、学習済モデルLM1に入力した配合率及び物性値と、学習済モデルLM1から出力された特性データとの関係を表す非線形の数式を、遺伝的アルゴリズムGAを用いて非線形回帰により特定する。ユーザは、この非線形の数式又はこの数式により表されるグラフ等の図形により、配合率及び物性値と特性データとの関係を把握し易い。
【0129】
〔実施例5〕
また、本実施形態に係る演算数式化システムSは、例えば画像認識システムに適用される。画像認識システムにおいて、遺伝的アルゴリズムを用いて特定される数式における入力データは例えば、画像の特徴量を示すデータを含む。出力データは例えば、画像認識結果を示すデータを含む。
【0130】
本実施例によれば、例えば、数式特定装置1が、学習済モデルLM1に入力した特徴量と、学習済モデルLM1から出力された画像認識結果との関係を表す非線形の数式を、遺伝的アルゴリズムGAを用いて非線形回帰により特定する。ユーザは、この非線形の数式又はこの数式により表されるグラフ等の図形により、画像の特徴量と画像認識結果との関係を把握し易い。
【0131】
〔実施例6〕
また、本実施形態に係る演算数式化システムSは、例えば設備不具合予知システムに適用される。設備不具体予知システムにおいて、遺伝的アルゴリズムを用いて特定される数式における入力データは例えば、設備に設けられた各センサにより検出された検出値を含む。出力データは例えば、設備の不具合の発生の有無の推定結果を示すデータを含む。
【0132】
本実施例によれば、例えば、数式特定装置1が、学習済モデルLM1に入力した検出値と、学習済モデルLM1から出力された不具合の発生の有無の推定結果との関係を表す非線形の数式を、遺伝的アルゴリズムGAを用いて非線形回帰により特定する。ユーザは、この非線形の数式又はこの数式により表されるグラフ等の図形により、センサの検出値と設備の不具合の発生の有無との関係を把握し易い。
【0133】
〔実施形態2〕
本発明の他の実施形態について、以下に説明する。なお、説明の便宜上、上記実施形態にて説明した部材と同じ機能を有する部材については、同じ符号を付記し、その説明を繰り返さない。
【0134】
本実施形態に係る演算数式化システムは、上述の実施形態1に係る演算数式化システムSに対し、学習済モデルの構造が異なっている。本実施形態に係る数式特定装置1、機械学習装置2、推定装置3の装置構成は、上述の実施形態1に係る数式特定装置1、機械学習装置2、推定装置3の装置構成と同様である。
【0135】
上述の実施形態1に係る学習済モデルLM1が1つの隠れ層LYを含むのに対し、本実施形態に係る学習済モデルLM2は、複数の隠れ層LY1、LY2を含む。
【0136】
〔学習済モデルと遺伝的アルゴリズムの具体例3〕
図18は、実施形態2に係る学習済モデルLM2と遺伝的アルゴリズムGAとを例示する図である。図において、学習済モデルLM2は、入力層LX、隠れ層LY1、LY2、出力層LZを含む。各層は複数のノードがエッジで結ばれる構造となっている。学習済モデルLM2は2つの隠れ層LY1、LY2を含んでいる。
【0137】
入力層LXは、ノードX1、X2、X3、X4を含む。すなわち、入力層LXには、ノードX1、X2、X3、X4のそれぞれの値x1、x2、x3、x4を含む入力データが入力される。
【0138】
隠れ層LY1は、ノードY1、Y2、Y3を含み、隠れ層LY2は、ノードY11、Y12、Y13を含む。ノードY1、Y2、Y3のそれぞれの値y1、y2、y3は、隠れ層LY1の前の層である入力層LXのノードの出力値x1、x2、x3、x4から算出される。ノードY11、Y12、Y13のそれぞれの値y11、y12、y13は、隠れ層LY2の前の層である隠れ層LY1のノードの出力値y1、y2、y3から算出される。
【0139】
出力層LZは、ノードZ1を含む。ノードZ1の値z1は、出力層LZの前の層である隠れ層LY2のノードの出力値y11、y12、y13、y14から計算される。出力層LZは、ノードZ1の値z1を、出力データとして出力する。
【0140】
図18の例において、遺伝的アルゴリズムの個体iである非線形の数式は、例えば上述の(1)式で表される。
【0141】
この例で、プロセッサ11が実行する特定ステップM12は、上述の実施形態1で示した
図5の処理と同様である。すなわち、プロセッサ11は、
図5のステップM121~M132の処理を実行することにより、入力データと出力データとの関係を表す非線形の数式を特定し、出力する。
【0142】
〔学習済モデルと遺伝的アルゴリズムの具体例4〕
図19は、本実施形態に係る学習済モデルLM2と遺伝的アルゴリズムGAとを例示する図である。
【0143】
図19の例では、遺伝的アルゴリズムGAの個体iは、例えば以下の(6)~(12)式の7つの式を含む。
z1=f
5(y1,y2,y3,y11,y12,y13) …(6)
y1=f
2(x1,x2,x3,x4) …(7)
y2=f
3(x1,x2,x3,x4) …(8)
y3=f
4(x1,x2,x3,x4) …(9)
y11=f
6(x1,x2,x3,x4) …(10)
y12=f
7(x1,x2,x3,x4) …(11)
y13=f
8(x1,x2,x3,x4) …(12)
【0144】
この例で、プロセッサ11が実行する特定ステップM12は、上述の実施形態1で示した
図12の処理と同様である。すなわち、プロセッサ11は、ステップM151において、関係を数式化する入力データと出力データとを取得する。
【0145】
入力データは、入力層LXの各ノートの値x1、x2、x3を含む。また、出力データは、出力層LZのノードZ1の値z1に加えて、隠れ層LY1、LY2の各ノードの出力値y1、y2、y3、y11、y12、y13を含む。
【0146】
プロセッサ11は、
図12のステップM152~131の処理を実行し、最適解である個体iを選択する。ステップM153において、プロセッサ11は、選択した個体iに含まれる(6)~(12)式の連立方程式を解くことにより、学習済モデルLM2の入力データと出力データとの関係を表す数式を特定する。入力データと出力データの関係を表す数式は、例えば、上述の(1)式で表される。プロセッサ11は、特定した数式を、例えばディスプレイに表示する等して出力する。
【0147】
〔実施例〕
上述の実施形態1で説明した実施例1~6は、本実施形態の実施例としても適応され得る。すなわち、本実施形態に係る演算数式化システムは、例えば、鋳造システム、売上予測システム、創薬システム、材料開発システム、画像認識システムに適用される。なお、上述の実施例1~6のうち、実施例3~5は実施形態2により適した実施例であり、一方、実施例1、2、6は実施形態1により適した実施例である。
【0148】
〔変形例〕
〔変形例1〕
図20は、変形例1に係る学習済モデルLM3と、遺伝的アルゴリズムGAとを例示する図である。図において、学習済モデルLM3は、入力層LX、複数の隠れ層LY11、LY12、出力層LZを含む。各層は複数のノードがエッジで結ばれる構造となっている。
【0149】
入力層LXは、ノードX1、X2、X3、X4を含む。すなわち、入力層LXには、ノードX1、X2、X3、X4のそれぞれの値x1、x2、x3、x4を含む入力データが入力される。
【0150】
隠れ層LY11は、ノードY1、Y2、Y3を含み、隠れ層LY12は、ノードY11、Y12を含む。ノードY1、Y2、Y3のそれぞれの値y1、y2、y3は、隠れ層LY11の前の層である入力層LXのノードの出力値x1、x2、x3、x4から算出される。ノードY11、Y12のそれぞれの値y11、y12は、隠れ層LY12の前の層である隠れ層LY11のノードの出力値y1、y2、y3から算出される。
【0151】
出力層LZは、ノードZ1を含む。ノードZ1の値z1は、出力層LZの前の層である隠れ層LY12のノードの出力値y11、y12から計算される。出力層LZは、ノードZ1の値z1を、出力データとして出力する。
【0152】
図20において、遺伝的アルゴリズムGAの個体iは、例えば上述の(2)~(5)式の4つの非線形の数式を含む。すなわち、プロセッサ11は、入力データと一部の隠れ層(一の隠れ層(隠れ層LY11))に属する各ノードの出力値との関係を表す非線形の第1の数式((3)~(5)式)、及び、当該各ノードのデータと出力データとの関係を表す非線形の第2の数式((2)式)を、前記遺伝的アルゴリズムを用いた非線形回帰により特定する。
【0153】
プロセッサ11が実行する特定ステップM12は、上述の実施形態1で示した
図12の処理と同様である。すなわち、プロセッサ11は、ステップM151において、関係を数式化する入力データと出力データとを取得する。入力データは、入力層LXの各ノートの値x1、x2、x3を含む。また、出力データは、出力層LZのノードZ1の値z1に加えて、隠れ層LY11の各ノードの出力値y1、y2、y3を含む。
【0154】
プロセッサ11は、
図12のステップM152~131の処理を実行し、最適解である個体iを選択する。ステップM153において、プロセッサ11は、選択した個体iに含まれる(2)~(5)式の連立方程式を解くことにより、学習済モデルLM2の入力データと出力データとの関係を表す数式を特定する。入力データと出力データの関係を表す数式は、例えば、上述の(1)式で表される。プロセッサ11は、特定した数式を、例えばディスプレイに表示する等して出力する。
【0155】
学習済モデルLM3の隠れ層には、学習の進みにくい層と学習の進みやすい層とが含まれる場合がある。学習の進みにくい層とは、パーセプトロンが多数あったり、重み付けが複数あったりする層である。学習が進みやすい層とは、パーセプトロンが少なかったり、重み付けがなかったり又は1つだったりする層である。本変形例において、プロセッサ11は、隠れ層のうち、学習の進みにくい層(例えば、隠れ層LY11)については、その層の各ノードの値を変数として数式に含める。一方、プロセッサ11は、学習の進みやすい層(例えば、隠れ層LY12)については、その層の各ノードの値を数式に含めない。
【0156】
学習の進みにくい層の各ノードの値を変数として数式に含めることにより、例えば画像認識等の複雑な事象において、特徴量をつかむことができる。また、各ノードがどのように働いているのかを把握し易い。また、学習が進みやすい層の各ノードの値を数式に含めないことにより、計算コストを節約することができ、また、数式をシンプルにすることができる。
【0157】
〔変形例2〕
図21は、変形例1に係る学習済モデルLM3と、遺伝的アルゴリズムGAとを例示する図である。図において、学習済モデルLM3は、上述の変形例1の
図20に示した学習済モデルLM3と同様である。
【0158】
図21において、遺伝的アルゴリズムGAの個体iは、例えば以下の(13)~(15)式の3つの非線形の数式を含む。
z1=f
8(y11,y12) …(13)
y11=f
6(x1,x2,x3,x4) …(14)
y12=f
7(x1,x2,x3,x4) …(15)
【0159】
プロセッサ11は、入力データと、出力層LZの前段の隠れ層LY12に属する各ノードの出力値との関係を表す非線形の第1の数式((14)~(15)式)、及び、当該各ノードの出力値と前記出力データとの関係を表す非線形の第2の数式((13)式)を、前記遺伝的アルゴリズムを用いた非線形回帰により特定する。
【0160】
この例で、プロセッサ11が実行する特定ステップM12は、上述の実施形態1で示した
図12の処理と同様である。すなわち、プロセッサ11は、ステップM151において、関係を数式化する入力データと出力データとを取得する。
【0161】
入力データは、入力層LXの各ノートの値x1、x2、x3を含む。また、出力データは、出力層LZのノードZ1の値z1に加えて、隠れ層LY12の各ノードの出力値y11、y12を含む。
【0162】
プロセッサ11は、
図12のステップM152~131の処理を実行し、最適解である個体iを選択する。ステップM153において、プロセッサ11は、選択した個体iに含まれる(13)~(15)式の連立方程式を解くことにより、学習済モデルLM2の入力データと出力データとの関係を表す数式を特定する。入力データと出力データの関係を表す数式は、例えば、上述の(1)式で表される。プロセッサ11は、特定した数式を、例えばディスプレイに表示する等して出力する。
【0163】
上述の実施形態2では、2つの隠れ層LY1、LY2を含む学習済モデルLM2を用いたが、学習済モデルに含まれる隠れ層の数は、2以上であってもよい。
【0164】
〔まとめ〕
態様1に係る数式特定装置は、学習済モデルの入力データを表す数値と前記学習済モデルの出力データを表す数値との関係を表す非線形の数式を特定する特定ステップを実行する一又は複数のプロセッサを備えている。
【0165】
上記の構成によれば、数式特定装置は、学習済モデルの演算過程を数式化することができる。
【0166】
態様2に係る数式特定装置は、態様1に係る数式特定装置の特徴に加えて、以下の特徴を有している。すなわち、態様2に係る数式特定装置において、前記プロセッサは、機械学習により構築された前記学習済モデルを用いて前記入力データから前記出力データを推定する推定ステップ、を更に実行し、前記特定ステップにおいて、遺伝的アルゴリズムを用いた非線形回帰によって前記非線形の数式を特定する。
【0167】
上記の構成によれば、数式特定装置は、学習済モデルの演算過程を数式化することができる。
【0168】
態様3に係る数式特定装置は、態様2に係る数式特定装置の特徴に加えて、以下の特徴を有している。すなわち、態様3に係る数式特定装置において、前記学習済モデルは、複数の層により構成されるディープニューラルネットワークであり、前記プロセッサは、前記特定ステップにおいて、入力層に入力される前記入力データを表す数値と出力層から出力される前記出力データを表す数値との関係を表す非線形の数式を解の候補とする前記遺伝的アルゴリズムを用いた非線形回帰により、当該数式を特定する。
【0169】
上記の構成によれば、数式特定装置は、学習済モデルの入力データを表す数値と出力データを表す数値との関係を表す非線形の数式を解の候補とする遺伝的アルゴリズムを用いた非線形回帰により特定する。これにより、学習済モデルの演算過程を数式化することができる。
【0170】
態様4に係る数式特定装置は、態様2に係る数式特定装置の特徴に加えて、以下の特徴を有している。すなわち、態様4に係る数式特定装置において、前記学習済モデルは、複数の層により構成されるディープニューラルネットワークであり、前記プロセッサは、前記特定ステップにおいて、前記入力データを表す数値と隠れ層に属する一部又は全部のノードの各々の出力値との関係を表す非線形の第1の数式、及び、当該ノードの各々の出力値と前記出力データを表す数値との関係を表す非線形の第2の数式を解の候補とする前記遺伝的アルゴリズムを用いた非線形回帰により、当該第1の数式及び当該第2の数式を特定し、特定した第1の数式及び第2の数式を用いて、前記入力データを表す数値と前記出力データを表す数値との関係を表す非線形の数式を特定する。
【0171】
上記の構成によれば、数式特定装置は、複数の層を含む学習済モデルの入力層のノードの出力値と隠れ層の一部又は全部のノードの出力値との関係を表す数式と、隠れ層のノードの出力値を出力層のノードの出力値との関係を表す数式とを、遺伝的アルゴリズムを用いた非線形回帰によって特定する。これにより、学習済モデルの演算過程を数式化することができる。
【0172】
態様5に係る数式特定装置は、態様4に係る数式特定装置の特徴に加えて、以下の特徴を有している。すなわち、態様5に係る数式特定装置において、前記学習済モデルは、複数の隠れ層を含み、前記プロセッサは、前記特定ステップにおいて、前記入力データを表す数値と一の隠れ層に属する各ノードの出力値との関係を表す非線形の第1の数式、及び、当該各ノードの出力値と前記出力データを表す数値との関係を表す非線形の第2の数式を、前記遺伝的アルゴリズムを用いた非線形回帰により特定する。
【0173】
上記の構成によれば、数式特定装置は、複数の層を含む学習済モデルの入力層のノードの出力値と一の隠れ層のノードの出力値との関係を表す数式と、上記一の隠れ層のノードの出力値を出力層のノードの出力値との関係を表す数式とを、遺伝的アルゴリズムを用いた非線形回帰によって特定する。これにより、学習済モデルの演算過程を数式化することができる。
【0174】
態様6に係る数式特定装置は、態様4に係る数式特定装置の特徴に加えて、以下の特徴を有している。すなわち、態様6に係る数式特定装置において、前記学習済モデルは、複数の隠れ層を含み、前記プロセッサは、前記特定ステップにおいて、前記入力データを表す数値と、出力層の前段の隠れ層に属する各ノードの出力値との関係を表す非線形の第1の数式、及び、当該各ノードのデータと前記出力データを表す数値との関係を表す非線形の第2の数式を、前記遺伝的アルゴリズムを用いた非線形回帰により特定する。
【0175】
上記の構成によれば、数式特定装置は、複数の層を含む学習済モデルの入力層のノードの出力値と出力層の前段の隠れ層のノードの出力値との関係を表す数式と、上記隠れ層のノードの出力値を出力層のノードの出力値との関係を表す数式とを、遺伝的アルゴリズムを用いた非線形回帰によって特定する。これにより、学習済モデルの演算過程を数式化することができる。
【0176】
態様7に係る数式特定方法は、一又は複数のプロセッサが、学習済モデルの入力データを表す数値と前記学習済モデルの出力データを表す数値との関係を表す非線形の数式を特定する特定ステップ、を含んでいる。
【0177】
態様8に係る推定装置は、態様1~6の何れかに記載の数式特定装置が特定した前記非線形の数式に、前記入力データを表す数値を代入して演算することにより、前記出力データを表す数値を推定する第2推定ステップ、を実行する一又は複数のプロセッサを備えている。
【0178】
上記の構成によれば、学習済モデルの演算過程を数式化した非線形の数式を用いて、学習済モデルの出力を推定することができる。
【0179】
態様9に係る数式特定方法は、一又は複数のプロセッサが、態様7に記載の数式特定方法で特定された前記非線形の数式に、前記入力データを表す数値を代入して演算することにより、前記出力データを表す数値を推定する第2推定ステップ、を含んでいる。
【0180】
上記の構成によれば、学習済モデルの演算過程を数式化した非線形の数式を用いて、学習済モデルの出力を推定することができる。
【0181】
〔付記事項1〕
上述の各実施形態及び各変形例では、学習済モデルLM1、LM2、LM3として、教師あり学習により機械学習された学習済モデルを用いたが、教師なし学習により機械学習された学習済モデルが用いられてもよい。教師なし学習により機械学習された学習済モデルについても、上述の各実施形態及び各変形例と同様、プロセッサ11が、学習済モデルの入力と出力との関係を表す非線形の数式を、遺伝的アルゴリズムにより回帰して特定する。
【0182】
〔付記事項2〕
上述の各実施形態及び変形例では、機械学習装置2が、学習済モデルLM1、LM2、LM3を構築したが、学習済モデルLM1、LM2、LM3は、機械学習装置2以外の他の装置により予め構築されていてもよい。この場合、数式特定装置1は、他の装置により予め構築された学習済モデルを用いて上述の数式特定方法M1を実施する。
【0183】
〔付記事項3〕
上述の各実施形態及び変形例では、プロセッサ11は、入力データと出力データとの関係を表す非線形の数式を、遺伝的アルゴリズムを用いた非線形回帰によって特定した。入力データと出力データとの関係を表す非線形の数式を特定するためのアルゴリズムは、遺伝的アルゴリズムに限られず、他の非線形アルゴリズムであってもよい。
【0184】
一例として、プロセッサ11は、入力データと出力データとの関係を表す非線形の数式を、モンテカルロ法を用いて特定してもよい。この場合、一例として、プロセッサ11は、数式の長さ、および、数式の要素(変数や演算子など)をランダムに選択することによって複数の数式を作成し、作成した複数の数式のなかから、最も誤差の小さい数式を選択することによって、入力データから出力データを導出する関係式を構築する。
【0185】
また、一例として、プロセッサ11は、データセットから非線形の数式を導出する学習済モデル(以下、「数式導出モデル」という)を用いて、非線形の数式を特定してもよい。この場合、数式導出モデルは、データセットを入力とし、非線形の数式に対応するラベルを出力とする学習済モデルである。入力であるデータセットは、上述の学習済モデルLM1、LM2、LM3の入力データと出力データとのセットである。出力であるラベルは、非線形の数式に対応するラベルである。
【0186】
数式導出モデルの学習フェーズにおいては、機械学習装置2等の情報処理装置が、データセットとラベルとを結びつけた学習用データを用いた機械学習により、数式導出モデルを構築する。
【0187】
〔付記事項4〕
本発明は上述した実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能であり、上述した実施形態にそれぞれ開示された技術的手段を適宜組み合わせて得られる他の実施形態についても本発明の技術的範囲に含まれる。
【符号の説明】
【0188】
1 数式特定装置
2 機械学習装置
3 推定装置
11、21 プロセッサ
12、22 一次メモリ
13、23 二次メモリ
14、24 入出力インタフェース
15、25 通信インタフェース
16、26 バス
LM1、LM2 学習済モデル
M1 数式特定方法
M11 推定ステップ
M12 特定ステップ
M2 機械学習方法
M21 学習用データセット構築ステップ
M22 学習済モデル構築ステップ
S 演算数式化システム