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

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

▶ 株式会社日立製作所の特許一覧

特開2022-185186ソフトウェアテスト装置及びソフトウェアテスト方法
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022185186
(43)【公開日】2022-12-14
(54)【発明の名称】ソフトウェアテスト装置及びソフトウェアテスト方法
(51)【国際特許分類】
   G06Q 50/10 20120101AFI20221207BHJP
【FI】
G06Q50/10
【審査請求】未請求
【請求項の数】14
【出願形態】OL
(21)【出願番号】P 2021092693
(22)【出願日】2021-06-02
(71)【出願人】
【識別番号】000005108
【氏名又は名称】株式会社日立製作所
(74)【代理人】
【識別番号】110000176
【氏名又は名称】一色国際特許業務法人
(72)【発明者】
【氏名】來間 啓伸
(72)【発明者】
【氏名】佐藤 直人
(72)【発明者】
【氏名】明神 智之
(72)【発明者】
【氏名】小川 秀人
(72)【発明者】
【氏名】石川 誠
【テーマコード(参考)】
5L049
【Fターム(参考)】
5L049CC12
(57)【要約】
【課題】機械学習により作成された予測モデルの妥当性について、適宜な精度および効率で検証可能とする。
【解決手段】ソフトウェアテスト装置100において、予測モデルを保持する記憶装置201と、前提条件、制約条件、及び近似閾値の入力を受け付け、予測モデルを論理式に変換し、この論理式に対して近似閾値に基づき近似範囲を解析して論理式を簡略化し、簡略化した論理式を前提条件及び制約条件の否定と結合して検査式を生成し、検査式を充足する値を反例として探索し、反例が存在する場合に予測モデルに入力して検査精度を評価し、その結果を出力する演算装置202を含む構成とする。
【選択図】図2
【特許請求の範囲】
【請求項1】
テスト対象とする、機械学習により生成された予測モデルを保持する記憶装置と、
テスト入力値の範囲を定める前提条件の入力を受け付ける処理、入力値に対する予測モデルの推論出力値の制約条件の入力を受け付ける処理、近似閾値の入力を受け付ける処理、前記予測モデルを前記記憶装置より取得して論理式に変換する処理、前記論理式に対して前記近似閾値に基づき近似範囲を解析して論理式を簡略化する処理、前記簡略化した前記論理式を、前記前提条件及び前記制約条件の否定と結合して検査式を生成する処理、前記検査式を充足する値を反例として探索する処理、前記反例が存在する場合に前記予測モデルに入力して検査精度を評価する処理、及び前記評価の結果を出力する処理、を実行する演算装置と、
を備えることを特徴とするソフトウェアテスト装置。
【請求項2】
前記演算装置は、
前記予測モデルに関する前記検査精度が不十分な場合、前記近似閾値を調整する処理をさらに実行するものである、
ことを特徴とする請求項1に記載のソフトウェアテスト装置。
【請求項3】
前記演算装置は、
前記検査精度の評価に際し、前記反例が存在する場合、当該反例を確定する処理をさらに実行し、前記結果の出力に際し、前記反例を出力するものである、
ことを特徴とする請求項1に記載のソフトウェアテスト装置。
【請求項4】
前記演算装置は、
前記検査精度の評価に際し、前記反例が存在する場合、前記論理式において当該反例によって充足される部分式を特定する処理をさらに実行し、前記結果の出力に際し、前記特定した部分式を出力するものである、
ことを特徴とする請求項1に記載のソフトウェアテスト装置。
【請求項5】
前記演算装置は、
前記検査精度の評価に際し、前記反例が存在する場合、当該反例に基づき前記制約条件を緩和する処理をさらに実行し、前記結果の出力に際し、前記緩和された制約条件を出力するものである、
ことを特徴とする請求項1に記載のソフトウェアテスト装置。
【請求項6】
前記記憶装置は、
前記予測モデルとして決定木集合モデルを保持し、
前記演算装置は、
前記論理式の変換に際し、前記決定木集合モデルの決定木を葉ノードへのパスに分解し論理式に変換するものである、
ことを特徴とする請求項1に記載のソフトウェアテスト装置。
【請求項7】
前記演算装置は、
前記論理式の変換に際し、前記葉ノードへのパスから変換された論理式のうち、前記前提条件を満たさないものを削除するものである、
ことを特徴とする請求項6に記載のソフトウェアテスト装置。
【請求項8】
前記演算装置は、
前記近似範囲の解析に際し、前記決定木の葉ノードに付与された重みの最大値と最小値との差が前記近似閾値以下の決定木から変換した論理式を定数で置換するものである、
ことを特徴とする請求項6に記載のソフトウェアテスト装置。
【請求項9】
前記演算装置は、
前記近似範囲の解析に際し、前記葉ノードに付与された重みの最大値が他の決定木より大きい、ないし最小値が他の決定木より小さい決定木を、所与の割合で近似対象から除外するものである、
ことを特徴とする請求項8に記載のソフトウェアテスト装置。
【請求項10】
前記演算装置は、
前記検査式の生成に際し、前記葉ノードへのパスから変換された論理式を葉ノードに付与された重みの順に整列する処理をさらに行うものである、
ことを特徴とする請求項6に記載のソフトウェアテスト装置。
【請求項11】
前記記憶装置は、
前記予測モデルとして深層ニューラルネットワークを含む階層型ニューラルネットワークモデルを保持し、
前記演算装置は、
前記論理式の変換に際し、前記階層型ニューラルネットワークモデルのノード間の結合関係を論理式に変換するものである、
ことを特徴とする請求項1に記載のソフトウェアテスト装置。
【請求項12】
前記演算装置は、
前記近似範囲の解析に際し、結合重みが近似閾値以下のノード間結合を削除するものである、
ことを特徴とする請求項11に記載のソフトウェアテスト装置。
【請求項13】
情報処理装置が、
テスト対象とする、機械学習により生成された予測モデルを記憶装置で保持して、
テスト入力値の範囲を定める前提条件の入力を受け付ける処理、入力値に対する予測モデルの推論出力値の制約条件の入力を受け付ける処理、近似閾値の入力を受け付ける処理、前記予測モデルを前記記憶装置より取得して論理式に変換する処理、前記論理式に対して前記近似閾値に基づき近似範囲を解析して論理式を簡略化する処理、前記簡略化した前記論理式を、前記前提条件及び前記制約条件の否定と結合して検査式を生成する処理、前記検査式を充足する値を反例として探索する処理、前記反例が存在する場合に前記予測モデルに入力して検査精度を評価する処理、及び前記評価の結果を出力する処理、
を実行することを特徴とするソフトウェアテスト方法。
【請求項14】
前記情報処理装置が、
前記予測モデルに関する前記検査精度が不十分な場合、前記近似閾値を調整する処理をさらに実行する、
ことを特徴とする請求項13に記載のソフトウェアテスト方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ソフトウェアテスト装置及びソフトウェアテスト方法に関するものである。
【背景技術】
【0002】
学習済みモデルを組み込んだ人工知能ソフトウェアが存在する。この人工知能ソフトウェアは、学習データから機械的に作成された学習済みモデルを用いるため、人間には作成できない高度な機能を実現できる。その半面、人間にとって予期しない処理が行われている可能性がある。
そこで例えば、そうした学習済みモデルを検証する従来技術として、予測モデルの妥当性を網羅的に評価可能とする機械学習プログラム検証装置(特許文献1参照)などが提案されている。
【0003】
この装置は、複数の決定木から構成されるアンサンブルツリーによる予測アルゴリズムに従い、説明変数の値を入力として目的変数の値を出力する、機械学習によって作成されたプログラムを保持する記憶装置と、前記プログラムに関して、前記決定木における決定木パスを示すパス論理式を、論理積結合することで決定木論理式を作成する処理と、前記決定木論理式に対し、前記プログラムに関して検証対象とする検証性質を示す検証性質論理式と、前記決定木ごとの決定木出力値と前記目的変数の値との関係を定義する目的変数計算論理式とを論理積結合して、結合論理式を作成する処理と、前記結合論理式を、所定の充足可能性判定器に入力することで、前記結合論理式の充足可能性判定結果を取得し、当該充足可能性判定結果に基づいて、前記プログラムが前記検証性質を充足するか判定する処理と、前記判定の結果が充足性を示す場合、前記充足可能性判定器が示す充足解から、前記検証性質に違反する説明変数の値である違反入力値と、当該違反入力値の場合の目的変数の値である違反出力値を取得する処理と、を実行する演算装置と、を備えるものである。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2020-135171号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
従来技術によれば、予測モデル(学習済みモデル。以後、予測モデル)の妥当性検証は可能となる。一方、変換後の論理式の長さは、予測モデルの決定木数に対して指数関数的に増大する。そのため、予測モデルによっては、充足可能性判定に要する計算量が爆発的に増加してしまい、適宜な精度での検証を行うことは、現実的に困難となる可能性も大きい。
そこで本発明の目的は、機械学習により作成された予測モデルの妥当性について、適宜な精度および効率で検証可能とする技術を提供することにある。
【課題を解決するための手段】
【0006】
上記課題を解決する本発明のソフトウェアテスト装置は、テスト対象とする、機械学習により生成された予測モデルを保持する記憶装置と、テスト入力値の範囲を定める前提条件の入力を受け付ける処理、入力値に対する予測モデルの推論出力値の制約条件の入力を受け付ける処理、近似閾値の入力を受け付ける処理、前記予測モデルを前記記憶装置より取得して論理式に変換する処理、前記論理式に対して前記近似閾値に基づき近似範囲を解析して論理式を簡略化する処理、前記簡略化した前記論理式を、前記前提条件及び前記制
約条件の否定と結合して検査式を生成する処理、前記検査式を充足する値を反例として探索する処理、前記反例が存在する場合に前記予測モデルに入力して検査精度を評価する処理、及び前記評価の結果を出力する処理、を実行する演算装置と、を備えることを特徴とする。
また、本発明のソフトウェアテスト方法は、情報処理装置が、テスト対象とする、機械学習により生成された予測モデルを記憶装置で保持して、テスト入力値の範囲を定める前提条件の入力を受け付ける処理、入力値に対する予測モデルの推論出力値の制約条件の入力を受け付ける処理、近似閾値の入力を受け付ける処理、前記予測モデルを前記記憶装置より取得して論理式に変換する処理、前記論理式に対して前記近似閾値に基づき近似範囲を解析して論理式を簡略化する処理、前記簡略化した前記論理式を、前記前提条件及び前記制約条件の否定と結合して検査式を生成する処理、前記検査式を充足する値を反例として探索する処理、前記反例が存在する場合に前記予測モデルに入力して検査精度を評価する処理、及び前記評価の結果を出力する処理、を実行することを特徴とする。
【発明の効果】
【0007】
本発明によれば、機械学習により作成された予測モデルの妥当性について、適宜な精度および効率で検証可能となる。
【図面の簡単な説明】
【0008】
図1】本実施形態のソフトウェアテスト装置の機能構成例を示す図である。
図2】本実施形態のソフトウェアテスト装置のハードウェア構成例を示す図である。
図3】本実施形態のソフトウェアテスト方法のメインフロー例を示す図である。
図4】実施例1における決定木集合モデルの例を示す図である。
図5】実施例1における、前提条件、制約条件、及び近似閾値の例を示す図である。
図6】本実施形態における論理式生成処理のフロー例を示す図である。
図7A】実施例1における論理式の生成過程例を示す図である。
図7B】実施例1における論理式の生成過程例を示す図である。
図7C】実施例1における論理式の生成過程例を示す図である。
図8】本実施形態における論理式近似処理のフロー例を示す図である。
図9】実施例1における近似範囲の解析過程例を示す図である。
図10】本実施形態における充足性検査式生成処理のフロー例を示す図である。
図11】実施例1における充足性検査式の例を示す図である。
図12】本実施形態における充足性判定処理のフロー例を示す図である。
図13】実施例1における反例データの例を示す図である。
図14】本実施形態における反例データ作成処理のフロー例を示す図である。
図15A】実施例1における反例の真偽判定例を示す図である。
図15B】実施例1における反例の真偽判定例を示す図である。
図16A】実施例1におけるテスト結果の出力例を示す図である。
図16B】実施例1におけるテスト結果の出力例を示す図である。
図16C】実施例1におけるテスト結果の出力例を示す図である。
図17】本実施形態におけるソフトウェアテスト装置の機能構成例を示す図である。
図18】本実施形態におけるソフトウェアテスト方法のフロー例を示す図である。
図19】実施例1におけるパスを削除した論理式例を示す図である。
図20】実施例1におけるパスを削除した決定木例を示す図である。
図21】実施例1における予測モデルの論理式例を示す図である。
図22】実施例1におけるパスの論理式を整列した充足性検査式の例を示す図である。
図23A】実施例1における各テスト入力値範囲について異なる近似閾値を与えてテストを行う際の前提条件例を示す図である。
図23B】実施例1における各々のテスト入力値範囲について異なる近似閾値を与えてテストを行う際の制約条件例を示す図である。
図23C】実施例1における各々のテスト入力値範囲について異なる近似閾値を与えてテストを行う例を示す図である。
図23D】実施例1における各々のテスト入力値範囲について異なる近似閾値を与えてテストを行う例を示す図である。
図24】実施例2におけるK階層のニューラルネットワークの例を示す図である。
図25】本実施形態における論理式生成処理のフロー例を示す図である。
図26】実施例2におけるニューラルネットワーク、結合重み、バイアス、入力変数、出力変数、活性化関数、前提条件、制約条件、及び近似閾値の例を示す図である。
図27】実施例2における論理式の生成過程例を示す図である。
図28】本実施形態における論理式近似処理のフロー例を示す図である。
図29】実施例2における近似範囲の解析過程例を示す図である。
図30】実施例2における充足性検査式の例を示す図である。
図31】実施例2における反例データの例を示す図である。
図32】実施例2における反例の真偽判定の例を示す図である。
【発明を実施するための形態】
【0009】
<機能構成>
以下に本発明の実施形態について図面を用いて詳細に説明する。図1は、本実施形態のソフトウェアテスト装置100の機能構成例を示す図である。図1に示すソフトウェアテスト装置100は、機械学習により作成された予測モデルの妥当性について、適宜な精度および効率で検証可能とするコンピュータである。このソフトウェアテスト装置100の具体的な適用対象としては、例えば、工場での生産性向上や配車の最適化などに使われる予測モデルの検証が想定できる。
【0010】
本実施形態のソフトウェアテスト装置100は、図1で示すように、予測モデル保持部101、論理式生成部102、近似範囲解析部103、検査式生成部104、充足性判定部105、検査精度評価部106、テスト結果出力部107、近似閾値入力部108、前提条件入力部109、及び制約条件入力部110を有している。
【0011】
このうち、予測モデル保持部101は、テスト対象とする学習済み予測モデルを格納するものとなる。この予測モデル保持部101は、後述する記憶装置にて実装される。
【0012】
また、論理式生成部102は、予測モデルの機能を表現する論理式を生成するものとなる。この論理式生成部102は、後述する演算装置がプログラムを実行することで実装される。
【0013】
また、近似範囲解析部103は、予測モデルをテストする際の近似閾値を入力するものである。この近似範囲解析部103は、上述の演算装置がプログラムを実行することで実装される。
【0014】
また、検査式生成部104は、近似対象の部分式を近似値で置き換えた論理式を、前提条件と制約条件の否定と結合した、検査式を生成するものとなる。この検査式生成部104は、上述の演算装置がプログラムを実行することで実装される。
【0015】
また、充足性判定部105は、検査式を充足する入出力データの存否を判定するものとなる。この充足性判定部105は、上述の演算装置がプログラムを実行することで実装さ
れる。
【0016】
また、検査精度評価部106は、検査式を充足する入出力データが存在しない場合、予測モデルは制約条件に違反しない、あるいは検査精度不足と判定する。検証式を充足する入出力データが存在する場合、入力データを予測モデルに与えて出力データを取得し、制約条件に違反する場合には反例と判定、違反しない場合には偽反例と判定するものとなる。この検査精度評価部106は、上述の演算装置がプログラムを実行することで実装される。
【0017】
また、テスト結果出力部107は、上述の検査精度評価部106による評価結果を適宜な出力装置に出力するものとなる。このテスト結果出力部107は、上述の演算装置がプログラムを実行することで実装される。
【0018】
また、近似閾値入力部108は、予測モデルをテストする際の近似閾値の入力を受け付けるものとなる。この近似閾値入力部108は、上述の演算装置がプログラムを実行することで実装される。
【0019】
また、前提条件入力部109は、予測モデルについてテストする入力データの範囲を指定した前提条件の入力を受け付けるものとなる。この前提条件入力部109は、上述の演算装置がプログラムを実行することで実装される。
【0020】
また、制約条件入力部110は、予測モデルの推論出力データが満たすべき条件を指定した制約条件の入力を受け付けるものとなる。この制約条件入力部110は、上述の演算装置がプログラムを実行することで実装される。
<ハードウェア構成>
また、本実施形態のソフトウェアテスト装置100のハードウェア構成は、図2に以下の如くとなる。
【0021】
すなわちソフトウェアテスト装置100は、記憶装置201、演算装置202、メモリ203、入力装置204、出力装置205、及び通信装置206、を備える。
【0022】
このうち記憶装置201は、SSD(Solid State Drive)やハードディスクドライブなど適宜な不揮発性記憶素子で構成される。
【0023】
また、演算装置202は、記憶装置201に保持されるプログラム2012をメモリ203に読み出すなどして実行し装置自体の統括制御を行なうとともに各種判定、演算及び制御処理を行なうCPUである。
【0024】
また、メモリ203は、RAM(Random Access Memory)など揮発性記憶素子で構成される。
【0025】
また、入力装置204は、ユーザからのキー入力や音声入力を受け付けるキーボードやマウス、マイクなどといった装置を想定する。
【0026】
また、出力装置205は、演算装置202での処理データの表示を行うディスプレイ等の装置を想定する。
【0027】
また、通信装置206は、適宜なネットワークと接続して他装置(例:予測モデルを配信してくるユーザ端末や適宜なサーバ装置など)との通信処理を担うネットワークインターフェイスカード等を想定する。
【0028】
なお、 装置100がスタンドアロンマシンである場合、ユーザからのキー入力や音声入力を受け付ける入力装置、処理データの表示を行うディスプレイ等の出力装置、を更に備えるとすれば好適である。
【0029】
また、記憶部101内には、本実施形態のソフトウェアテスト装置100として必要な機能を実装する為のプログラム2012に加えて、既に挙げた予測モデル保持部101やSMTソルバプログラム2013が少なくとも記憶されている。なお、SMTソルバプログラム2013は、充足性判定部105において、検査式を充足する変数値(反例)を探索する際に使用するものである。
<フロー例:メインフロー>
以下、本実施形態におけるソフトウェアテスト方法の実際手順について図に基づき説明する。以下で説明するソフトウェアテスト方法に対応する各種動作は、ソフトウェアテスト装置100がメモリ等に読み出して実行するプログラムによって実現される。そして、このプログラムは、以下に説明される各種の動作を行うためのコードから構成されている。
【0030】
図3は、本実施形態におけるソフトウェアテスト方法のメインフロー例を示す図である。この場合、ソフトウェアテスト装置100は、テスト対象となる予測モデルを、例えば入力装置204または通信装置206を介して外部装置から取得し、これを予測モデル保持部101に格納する(S301)。
【0031】
ここで、予測モデルの例として、図4に決定木集合モデルを示す。決定木集合モデルは、図4で示すように、始点となるルートノード(図中の最上段の○ノード)から、エッジ(図中の矢印線分)を介して各ノード(図中の○ノード)で分岐し、終点端の葉ノード(リーフノード。図中の△のノード)までパスが形成された構造を有する。葉ノードにはそれぞれ重みが対応付けられており、各決定木において選択されたリーフノードの重みの値を、例えば合算するなどして出力変数(最終的な決定値)が決定される。
【0032】
また、ソフトウェアテスト装置100は、前提条件入力部109、制約条件入力部110、及び近似閾値入力部108を介し、前提条件、制約条件、及び近似閾値の各情報を取得し(S302)、メモリ203など適宜な記憶手段で保持する。
【0033】
なお、前提条件の例としては入力変数を含む論理式、制約条件の例としては、出力変数を含む論理式、近似閾値の例としては、近似対象とする決定木の重みの最大値と最小値の差を想定する。
【0034】
図5にて、これら前提条件、制約条件、及び近似閾値の各情報の入力インターフェイス1301~1303を含む画面例を示す。前提条件入力部109は、出力装置205に当該画面を出力し、当該画面の前提条件欄1301、制約条件欄1302、及び近似閾値欄1303の各欄にて、入力装置204の操作によって入力された各値を取得することになる。
【0035】
続いて、ソフトウェアテスト装置100の論理式生成部102は、予測モデル保持部101から予測モデルを取り出し、これを論理式に変換する(S303)。この論理式への変換に関する処理フローの詳細は図6、7に基づき後述する。
【0036】
また、ソフトウェアテスト装置100の近似範囲解析部103は、上述のS302で得ている近似閾値に基づき、S303で得ている論理式中の近似対象を決定し、定数(例:決定した近似対象を含む論理式中における、重みの最大値と最小値)で近似する(S30
4)。この近似処理に関する処理フローの詳細は図8、9に基づき後述する。
【0037】
続いて、ソフトウェアテスト装置100の検査式生成部104は、S304で近似した論理式と、上述の前提条件と、上述の制約条件の否定とから充足性検査式を作成する(S305)。この充足性検査式の作成に関する処理フローの詳細は図10、11に基づき後述する。
【0038】
また、ソフトウェアテスト装置100の充足性判定部105は、充足性検査式の充足性を判定する(S306)。この充足性判定に関する処理フローの詳細は図12、13に基づき後述する。
【0039】
上述の判定の結果、充足しないことが判明した場合(S307:NO)、ソフトウェアテスト装置100のテスト結果出力部107は、上述の制約条件が満たされることを出力装置205または通信装置206から出力し(S310)、処理を終了する。
【0040】
一方、上述の判定の結果、充足することが判明した場合(S307:YES)、ソフトウェアテスト装置100の充足性判定部105は、反例データを作成する(S308)。
【0041】
続いて、ソフトウェアテスト装置100の検査精度評価部106は、S308で作成した反例データを予測モデルに入力する(S309)。この検査精度評価部106における処理フローの詳細は図14に基づき後述する。
【0042】
上述の入力の結果、予測モデルの出力結果が制約条件を満たすものである、すなわち入力した反例は偽反例である場合(S310:YES)、ソフトウェアテスト装置100のテスト結果出力部107は、検査精度が不十分であることを出力装置205から出力(図15Bの出力1802)し(S311)、処理を終了する。
【0043】
一方、上述の入力の結果、予測モデルの出力結果が制約条件を満たさないものである、すなわち入力した反例は真の反例である場合(S310:NO)、ソフトウェアテスト装置100のテスト結果出力部107は、反例データを出力装置205から出力(図15Aの出力1801)S312)、処理を終了する。
<フロー例:論理式作成>
続いて、論理式生成部102での処理(S303)の詳細について、図6のフローに基づき説明する。この場合、論理式生成部102は、予測モデルの論理式の初期値を空とする(S801)。
【0044】
続いて、論理式生成部102は、決定木の論理式の初期値を空とする(S802)。
【0045】
また、論理式生成部102は、処理対象の決定木をルートノードからリーフへのパスに分解する(S803)。この分解の処理は、既存技術を適宜に採用するものとする。
【0046】
続いて、論理式生成部102は、パスの論理式の初期値を空とする(S804)。
【0047】
また、論理式生成部102は、経路に含まれる決定条件を論理積で結合してパスの論理式を作成する(S805)。
【0048】
続いて、論理式生成部102は、決定木の出力変数名=重みをパスの論理式に論理積で結合する(S806)。なお、上述のS805、S806で得られる論理式の例を図7Aに示す。
【0049】
また、論理式生成部102は、決定木の論理式に、パスの論理式を論理和で結合する(S807)。なお、このS807で得られる論理式の例を図7Bに示す。
【0050】
続いて、論理式生成部102は、S803で分解したパスのうち、未処理のパスを1つ取得し(S808)、当該決定木における最後の未処理パスか判定する(S809)。
【0051】
上述の判定の結果、まだ未処理のパスが残っている、すなわち最後のパスではなかった場合(S809:No)、論理式生成部102は、処理をS804に戻す。
【0052】
一方、上述の判定の結果、未処理のパスが残っていない、すなわち最後のパスであった場合(S809:Yes)、論理式生成部102は、予測モデルの論理式に決定木の論理式を論理積で結合する(S810)。
【0053】
また、論理式生成部102は、決定木集合モデルのうち未処理の決定木を次の処理対象の決定木として取得し(S811)、決定木集合モデルにおける最後の未処理決定木か判定する(S812)。
【0054】
上述の判定の結果、まだ未処理の決定木が残っている、すなわち最後の決定木ではなかった場合(S812:No)、論理式生成部102は、処理をS802に戻す。
【0055】
一方、上述の判定の結果、未処理の決定木が残っていない、すなわち最後の決定木であった場合(S812:Yes)、論理式生成部102は、決定木の出力変数名を「+」で結合して、決定木の出力変数の和の式を生成する(S813)。
【0056】
続いて、論理式生成部102は、予測モデルの論理式に「予測モデルの出力変数名=決定木の出力変数の和の式」を論理積で結合し、予測モデルの論理式を生成する(S814)。なお、上述のS810、S813、S814を経て生成した論理式の例を図7Cに示す。
【0057】
また、論理式生成部102は、S814で得た論理式を、近似範囲解析部103に出力し(S815)、処理を終了する。
<フロー例:論理式近似処理>
続いて、近似範囲解析部103での処理(S304)の詳細処理について説明する。図8は本実施形態における論理式近似処理のフロー例を示す図である。
【0058】
この場合、近似範囲解析部103は、予測モデルの論理式を決定木の論理式に分解する(S901)。
【0059】
続いて、近似範囲解析部103は、決定木の論理式中の重みの最大値と最小値を得る(S902。図9の最大値、最小値1502)。
【0060】
また、近似範囲解析部103は、重みの最大値と最小値の差を近似の閾値と比較する(S903)。つまり、重みの最大値と最小値の差が近似閾値以下の決定木の論理式(図9の論理式1501)を抽出することになる。
【0061】
上述の比較の結果、閾値以下であることが判明した場合(S904:Yes)、近似範囲解析部103は、決定木の論理式を「出力変数≧最小値 ∧ 出力変数≦最大値」で置き換える(S905)。この置き換えで得られる論理式1503を図9に例示した。
【0062】
一方、上述の比較の結果、閾値以下でないことが判明した場合(S904:No)、近
似範囲解析部103は、次の決定木の論理式を得て(S906)、他に未処理の決定木が存在するか判定する(S907)。
【0063】
上述の判定の結果、未処理の決定木が存在することが判明した場合(S907:Yes)、近似範囲解析部103は、処理をS902に戻す。
【0064】
一方、上述の判定の結果、未処理の決定木が存在しないことが判明した場合(S907:No)、近似範囲解析部103は、ここまでの処理で近似処理を終えた、予測モデルの論理式を検査式生成部104に出力し(S908)、処理を終了する。
<フロー例:充足性検査式生成>
続いて、検査式生成部104での検査式生成(S305)の詳細フローについて説明する。図10は本実施形態における充足性検査式の生成フロー例を示す図である。
【0065】
この場合、検査式生成部104は、予測モデルの論理式と前提条件を論理積で結合して検査式を作成する(S401)。
【0066】
また、検査式生成部104は、充足性検査式に制約条件の否定を論理積で結合する(S402)。この結合で得られる論理式1601を図11に例示する。
【0067】
続いて、検査式生成部104は、S402で得た充足性検査式を充足性判定部105に出力し(S403)、処理を終了する。
<フロー例:充足性判定>
続いて、充足性判定部105での充足性判定処理(S306)の詳細フローについて説明する。図12は本実施形態における充足性判定処理のフロー例を示す図である。
【0068】
この場合、充足性判定部105は、充足性検査式をSMTソルバプログラム2013に入力して起動し(S501)、充足性検査式が真になる変数値を探索する(S502)。この変数値は反例(図13の反例1701、1702)となる。
【0069】
また、充足性判定部105は、充足性判定結果を検査精度評価部106に出力し(S503)、処理を終了する。
<フロー例:検査精度評価>
続いて、検査精度評価部106での検査精度評価部処理(S308、S309)の詳細フローについて説明する。図14は本実施形態における検査精度評価処理のフロー例を示す図であり、具体的には、反例が存在する時、予測モデルに反例を入力して真の反例であることを確認するフローとなる。
【0070】
充足性判定結果が充足である場合(S307:Yes)、検査精度評価部106は、充足性判定部105により、充足性検査式をSMTソルバプログラム2013に入力して起動し(S601)、充足性検査式が真になる変数値を探索する(S602)。充足性検査式を真にする変数値を反例データとして予測モデルに出力し(S603)、反例データを入力データとする予測モデルの出力データを得て(S309)、出力データが制約条件を満足することを検査する(S310)。もし出力データが制約条件を満足する(S310:Yes)ならば、反例データは偽反例であると判定する。一方、出力データが制約条件を満足しない(S310:No)、すなわち、反例データが真の反例である時、予測モデルは制約条件に違反すると判定する。
【0071】
例えば、図4の予測モデル(1201、1202)に対して図5の前提条件(1301)、制約条件(1302)、近似閾値(1303)のもとで得られる反例1は、もとの予測モデルでは、w1=1.2、w2=1.4であり、y=2.6となって制約条件に違反
するため、真の反例である(図15A)。
【0072】
一方、反例2は、もとの予測モデルでは、w1=0.7、w2=1.4であり、y=2.1となって制約条件に違反しないため反例とはならず、偽反例である(図15B)。このように偽反例である場合、近似のため必要な検証精度に達していないと判定することとなる。
【0073】
検査精度評価部106は、上述の探索で得た変数値を反例1901(図16A)として出力装置205に出力し(S312)、処理を終了する。
【0074】
なお、検査精度評価部106は、反例によって充足される部分式を特定しテスト結果出力部107を介して出力装置205に出力するとしてもよい。その場合の出力例1902を、図16Bに示す。こうした処理を行えば、予測モデルにおいて制約条件に違反する推論出力値を導出する過程を出力することで、予測モデルの修正に寄与可能となる。
【0075】
また、検査精度評価部106は、反例をもとに制約条件を緩和し、テスト結果出力部107を介して出力装置205で出力するとしてもよい。その場合の出力例1903を図16Cに示す。こうした処理を行えば、予測モデルに適合する制約条件を出力し、予測モデルの特性の把握に寄与することが期待できる。
【0076】
なお、ソフトウェアテスト装置100は、上述のように検査精度評価部106が反例を偽反例と判定した場合、近似閾値を調整する近似閾値調整部3111(図17)を備えるとしてもよい。
【0077】
その場合のメインフロー(図18)では、ステップS710の判定の結果、反例データが制約条件を満足することが判明した場合(S710:Yes)、近似閾値調整部3111は、例えば、上述で検出された反例が反例1ではなく反例2であるとき、近似閾値を0にして近似範囲解析部の処理(S704)に処理を戻す。こうした運用を行うことで、偽反例が検出された際に近似閾値を調整して検査精度を上げ、粗い近似からはじめても必ず正しいテスト結果を得ることが可能となる。ひいては、テスト効率の向上が期待できる。
【0078】
また、ソフトウェアテスト装置100は、前提条件を満たさないパスを論理式から削除し、以後の処理を効率化するとしてもよい。例えば、前提条件が、f0<15 ∧ f1>0.5の場合、当該前提条件を満たさない、not(f0<30)を含むパスを削除した論理式2001を図19に示す。こうした運用を行うことで、前提条件を満たさない論理式を近似範囲解析と充足性判定の前に削除し(例:図20の決定木2参照)、予測モデルの推論出力値が制約条件に違反するケースを摘出するための計算量を削減できる。
【0079】
また、ソフトウェアテスト装置100は、例えば、「決定木2」の葉ノードに付与された重みの最大値が、「決定木1」の葉ノードの重みより大きいことを受け、「決定木2」を近似対象から除外して、予測モデルの論理2101式の近似(図21)を行うとしてもよい。
【0080】
また、ソフトウェアテスト装置100は、予測モデルの論理式を、葉ノードに付与された重みの降順に整列して充足性検査式2201(図22)を構成するとしてもよい。こうした運用を行うことで、推論出力値の大きなものから充足性判定を行うことになり、反例検出効率を向上できる。
【0081】
また、ソフトウェアテスト装置100は、入力値範囲によって近似閾値を変える制御を行うとしてもよい。この場合の前提条件2301(図23A)、及び制約条件2302(
図23B)を図のように仮定した場合、ソフトウェアテスト装置100は、前提条件を次の2つ(前提条件:f0<15 ∧ f0>12 ∧ f1>0.5、f0≦12 ∧ f1
>0.5)に分割し各々に近似閾値(近似閾値:0、近似閾値:0.5)を設定するものとする(図23C図23D)。
【0082】
こうした運用を行うことで、反例が存在する可能性が高い入力値範囲の検査精度を上げる、テスト効率を向上させることが可能である。
<予測モデルがニューラルネットワークの場合>
予測モデルの形態として、決定木集合モデルではなく、図24に例示するように、ニューラルネットワークを想定することもできる。ニューラルネットワーク2401は、第1層~第K層からなる複数の層に分かれたノードによって構成されるものである。
【0083】
また、このニューラルネットワーク2401における各ノードは、前の層のノードの出力値×ウェイトを入力として計算した値を次の層のノードに出力するものとなる。この場合のニューラルネットワーク2401は、論理式2402で表すことができる。
【0084】
ここで、予測モデルがニューラルネットワークである場合の、論理式生成部102の処理について図26に基づき説明する。この場合の論理式生成部102は、ニューラルネットワークをノードに分解し、入出力の関係を論理積で結合する処理を行うこととなる。ニューラルネットワーク2401に関して得られる論理式2402は、図24で示す構成となる。
【0085】
なお、より簡略化したニューラルネットワーク201を図26に示す。この場合、ノード間の結合重み2502の例や、バイアス2503の例、入力変数2504の例、出力変数2505の例、及び活性化関数2506の例も図26で例示する。さらには、前提条件2507、制約条件2508、及び近似閾値2509の例も示している。
【0086】
この場合、論理式生成部102は、予測モデルの論理式の初期値を空とする(S1001)。
【0087】
また、論理式生成部102は、層の論理式の初期値を空とする(S1002)。
【0088】
続いて、論理式生成部102は、層内のノードの集まりを得る(S1003)。
【0089】
また、論理式生成部102は、ノードの論理式の初期値を空とする(S1004)。
【0090】
続いて、論理式生成部102は、ノードに対応する変数名を生成し(S1005)、当該ノードが入力層か判定する(S1006)。
【0091】
上述の判定の結果、ノードが入力層である場合(S1006:YES)、論理式生成部102は、「ノードの変数名=入力変数名」をノードの論理式とする(S1008)。
【0092】
一方、上述の判定の結果、ノードが入力層でない場合(S1006:NO)、論理式生成部102は、「ノードの変数名=活性化関数((前層のノード×重み)の和+バイアス)」を当該ノードの論理式2601(図27)とする(S1007)。
【0093】
続いて、論理式生成部102は、層の論理式2602(図27)にノードの論理式2601(図27)を論理積で結合する(S1009)。
【0094】
また、論理式生成部102は、当該層が出力層か判定する(S1010)。この判定の
結果、当該層が出力層である場合(S1010:YES)、論理式生成部102は、層の論理式に「ノードの変数名=出力変数名」を論理積で結合する(S1011)。
【0095】
一方、上述の判定の結果、当該層が出力層ではない場合(S1010:NO)、論理式生成部102は、当該層の各ノードのうち未処理のもののうちから1つを次の処理対象のノードとして取得する(S1012)。
【0096】
また、論理式生成部102は、ここで得たノードが、当該層のノードのうち未処理のもの最後であるか判定する(S1013)。
【0097】
上述の判定の結果、最後のノードではない場合(S1013:NO)、論理式生成部102は、処理をS1004に戻す。
【0098】
他方、上述の判定の結果、最後のノードであった場合(S1013:YES)、論理式生成部102は、予測モデルの論理式2603(図27)に層の論理式を論理積で結合する(S1014)。
【0099】
続いて、論理式生成部102は、未処理の層のうち1つの層を次の処理対象とし得る(S1015)。
【0100】
また、論理式生成部102は、S1015で得た層が、ニューラルネットワークにおける未処理の層のうち最後のものであるか判定する(S1016)。
【0101】
上述の判定の結果、最後の層ではない場合(S1016:NO)、論理式生成部102は、処理をS1002に戻す。
【0102】
一方、上述の判定の結果、最後の層であった場合(S1016:YES)、論理式生成部102は、ここまでで得た、予測モデルの論理式を近似範囲解析部103に出力し(S1017)、処理を終了する。
【0103】
次に、予測モデルがニューラルネットワークである場合の論理式近似処理について、図28に基づき説明する。この場合、近似範囲解析部103は、予測モデルの論理式を層の論理式に分解する(S1101)。
【0104】
続いて、近似範囲解析部103は、層の論理式をノードの論理式に分解する(S1102)。
【0105】
また、近似範囲解析部103は、重みの絶対値を近似の閾値と比較する(S1103)。すなわち、結合重みの絶対値が近似閾値以下のノードの論理式(図29の論理式2701)を抽出する。
【0106】
上述の比較の結果、閾値以下であることが判明した場合(S1104:Yes)、近似範囲解析部103は、当該ノードの論理式の重みを0で置き換える(S1105)。この置き換えで得られる論理式2702を図29に例示した。
【0107】
一方、上述の比較の結果、閾値以下でないことが判明した場合(S1104:No)、近似範囲解析部103は、層の論理式にノードの論理式を論理積で結合する(S1106)。
【0108】
また、近似範囲解析部103は、次のノードの論理式を得て(S1107)、他に未処
理のノードが存在するか判定する(S1108)。
【0109】
上述の判定の結果、未処理のノードが存在することが判明した場合(S1108:Yes)、近似範囲解析部103は、処理をS1102に戻す。
【0110】
一方、上述の判定の結果、未処理のノードが存在しないことが判明した場合(S1108:No)、近似範囲解析部103は、予測モデルの論理式に層の論理式を論理積で結合する(S1109)。ここで得られる論理式2703を図29に例示した。
【0111】
続いて、近似範囲解析部103は、ニューラルネットワークにおいて未処理の層のうち1つの層の論理式を次の処理対象として取得し(S1110)、他に未処理の層が存在するか判定する(S1111)。
【0112】
この判定の結果、未処理の層が存在する場合(S1111:Yes)、近似範囲解析部103は、処理をS1102に戻す。一方、上述の判定の結果、未処理の層が存在しない場合(S1111:No)、近似範囲解析部103は、ここまでの処理で近似処理を終えた、予測モデルの論理式を検査式生成部104に出力し(S1112)、処理を終了する。
【0113】
なお、検査式生成部104においては、ネットワークの論理式、前提条件、制約条件の否定を論理積で結合した論理式2801(図30)を作成する。
【0114】
また、充足性判定部105においては、図12に関して既に説明したように、検査式を充足する変数値(反例)を探索するものとする。図31に、こうした探索で得た反例2901、2902を例示する。
【0115】
また、検証制度評価部106においては、反例が存在しない時,近似のため必要な検証精度に達していないと判定し、一方、反例が存在する時、図13図14に関して既に説明したように、予測モデルに反例を入力して真の反例であることを確認する。
【0116】
真の反例である時,予測モデルは制約条件に違反すると判定する。図30に示す例において、反例1のもとのモデルの出力値はy=3.2であり,真の反例と判定3001する。また、偽反例である時,近似のため必要な検証精度に達していないと判定する。図30に示す例において、反例2のもとのモデルの出力値は y=1.95であり,偽反例と判
定3002する。
【0117】
以上、本発明を実施するための最良の形態などについて具体的に説明したが、本発明はこれに限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能である。
【0118】
こうした本実施形態によれば、近似範囲解析部の機能により論理式を簡略化することで、予測モデルの推論出力値が制約条件に違反するケースを摘出するための計算量を削減し、また、検査精度評価部により、近似にともなう検出誤りを除去することができる。
【0119】
すなわち、機械学習により作成された予測モデルの妥当性について、適宜な精度および効率で検証可能となる。
【0120】
本明細書の記載により、少なくとも次のことが明らかにされる。すなわち、本実施形態のソフトウェアテスト装置において、前記演算装置は、前記予測モデルに関する前記検査精度が不十分な場合、前記近似閾値を調整する処理をさらに実行するものである、としてもよい。
【0121】
これによれば、違反ケースの誤摘出が検出された際に近似閾値を調整して検査精度を上げることで荒い近似からはじめても必ず正しいテスト結果を得ることができ、テスト効率が向上する。
【0122】
また、本実施形態のソフトウェアテスト装置において、前記演算装置は、前記検査精度の評価に際し、前記反例が存在する場合、当該反例を確定する処理をさらに実行し、前記結果の出力に際し、前記反例を出力するものである、としてもよい。
【0123】
これによれば、推論出力値が制約条件に違反する入力値を反例として出力することで、予測モデルの修正に寄与することができる。
【0124】
また、本実施形態のソフトウェアテスト装置において、前記演算装置は、前記検査精度の評価に際し、前記反例が存在する場合、前記論理式において当該反例によって充足される部分式を特定する処理をさらに実行し、前記結果の出力に際し、前記特定した部分式を出力するものである、としてもよい。
【0125】
これによれば、予測モデルにおいて制約条件に違反する推論出力値を導出する過程を出力することで、予測モデルの修正に寄与可能となる。
【0126】
また、本実施形態のソフトウェアテスト装置において、前記演算装置は、前記検査精度の評価に際し、前記反例が存在する場合、当該反例に基づき前記制約条件を緩和する処理をさらに実行し、前記結果の出力に際し、前記緩和された制約条件を出力するものである、としてもよい。
【0127】
これによれば、予測モデルに適合する制約条件を出力することで、予測モデルの特性の把握に寄与可能となる。
【0128】
また、本実施形態のソフトウェアテスト装置において、前記記憶装置は、前記予測モデルとして決定木集合モデルを保持し、前記演算装置は、前記論理式の変換に際し、前記決定木集合モデルの決定木を葉ノードへのパスに分解し論理式に変換するものである、としてもよい。
【0129】
これによれば、決定木集合モデルについて、推論出力値が制約条件に違反するケースを摘出するための計算量を削減するとともに、検査精度評価部により近似にともなう検出誤りを除去可能となる。
【0130】
また、本実施形態のソフトウェアテスト装置において、前記演算装置は、前記論理式の変換に際し、前記葉ノードへのパスから変換された論理式のうち、前記前提条件を満たさないものを削除するものである、としてもよい。
【0131】
これによれば、前提条件を満たさない論理式を近似範囲解析と充足性判定の前に削除することで、予測モデルの推論出力値が制約条件に違反するケースを摘出するための計算量を、削減可能となる。
【0132】
また、本実施形態のソフトウェアテスト装置において、前記演算装置は、前記近似範囲の解析に際し、前記決定木の葉ノードに付与された重みの最大値と最小値との差が前記近似閾値以下の決定木から変換した論理式を定数で置換するものである、としてもよい。
【0133】
これによれば、論理式上で反例が存在しないときには予測モデルでも制約条件に違反す
るケースがないことが保証できるとともに、真の反例が一つでもあれば予測モデルが制約条件に違反することが保証できる近似方法を提供可能となる。
【0134】
また、本実施形態のソフトウェアテスト装置において、前記演算装置は、前記近似範囲の解析に際し、前記葉ノードに付与された重みの最大値が他の決定木より大きい、ないし最小値が他の決定木より小さい決定木を、所与の割合で近似対象から除外するものである、としてもよい。
【0135】
これによれば、推論出力値への影響が大きい決定木を近似対象から除外可能となる。
【0136】
また、本実施形態のソフトウェアテスト装置において、前記演算装置は、前記検査式の生成に際し、前記葉ノードへのパスから変換された論理式を葉ノードに付与された重みの順に整列する処理をさらに行うものである、としてもよい。
【0137】
これによれば、推論出力値の昇順ないし降順に充足性判定を行うことで、反例検出効率を向上可能となる。
【0138】
また、本実施形態のソフトウェアテスト装置において、前記記憶装置は、前記予測モデルとして深層ニューラルネットワークを含む階層型ニューラルネットワークモデルを保持し、前記演算装置は、前記論理式の変換に際し、前記階層型ニューラルネットワークモデルのノード間の結合関係を論理式に変換するものである、としてもよい。
【0139】
これによれば、ニューラルネットワークモデルについて、推論出力値が制約条件に違反するケースを摘出するための計算量を削減するとともに、検査精度評価部により近似にともなう検出誤りを除去可能となる。
【0140】
また、本実施形態のソフトウェアテスト装置において、前記演算装置は、前記近似範囲の解析に際し、結合重みが近似閾値以下のノード間結合を削除するものである、としてもよい。
【0141】
これによれば、真の反例が一つでもあれば予測モデルが制約条件に違反することが保証できる近似方法を提供可能となる。
【0142】
また、本実施形態のソフトウェアテスト方法において、前記情報処理装置が、前記予測モデルに関する前記検査精度が不十分な場合、前記近似閾値を調整する処理をさらに実行する、としてもよい。
【符号の説明】
【0143】
100 ソフトウェアテスト装置
101 予測モデル保持部
102 論理式生成部
103 近似範囲解析部
104 検査式生成部
105 充足性判定部
106 検査精度評価部
107 テスト結果出力部
108 近似閾値入力部
109 前提条件入力部
110 制約条件入力部
201 記憶装置
2012 プログラム
2013 SMTソルバプログラム
202 演算装置
203 メモリ
204 入力装置
205 出力装置
206 通信装置
図1
図2
図3
図4
図5
図6
図7A
図7B
図7C
図8
図9
図10
図11
図12
図13
図14
図15A
図15B
図16A
図16B
図16C
図17
図18
図19
図20
図21
図22
図23A
図23B
図23C
図23D
図24
図25
図26
図27
図28
図29
図30
図31
図32