ベイジアンネットワークの機械学習を利用したリグレッション検証の効率改善
6
0
0
全文
(2) DAシンポジウム Design Automation Symposium. DAS2016 2016/9/14. ントがカバーされた (すべての信号線で反転が起こった) と. は抽象化を利用して入力パタンの生成を行っている.しか. き 100%となる.. し,文献 [7] は実験の対象が組合せ回路に限定されており,. カバレッジ駆動型検証に関しては,機械学習を利用して ランダムパタン生成のパラメータを制御する手法があり,. 文献 [8] は少数のカバーポイントのみをターゲットにして おり,対象がマイクロプロセッサに限られている.. 自動化という点で有効である.ランダムにシミュレーショ. 文献 [1], [2] でも SAT ソルバーを用いており,これらの. ンパタンを生成する場合には,各入力信号線がとる値につ. 研究では複数のシナリオ (入力に対する論理制約) につい. いて,確率分布を定めるパラメータを設定する必要がある.. て,満足する解の個数がシナリオ間で不均等にならないよ. 機械学習を用いてこれらのパラメータを決定する手法は,. う入力生成を行うことにより,カバレッジの改善をはかっ. リグレション検証 (誤り修正後再び行う検証) での利用が考. ている.しかし,ターゲットなるカバーポイントに対する. えられる.まず,誤り修正前に行ったランダムテストの結. カバレッジ解析に基づいて,入力パタン生成を行っている. 果から,パラメータの値と各カバレッジポイントがカバー. わけではない.. される割合を学習しておく.次に,リグレション検証では. 機械学習を用いる方式もいくつか提案されてい. 各カバレッジポイントがカバーされやすいパラメータの最. る [3], [4], [5], [6].機械学習によって入力パタンの持つ. 適値を機械学習の結果から推定し,次々適用することによ. 性質とカバレッジポイントとの関係を学んでおき,これを. り,カバレッジを増加させる.. 利用してカバレッジを改善する.機械学習の枠組みとして. 機械学習の利用については,ベイジアンネットワークを. は,文献 [5], [6] ではベイジアンネットワークが [4] では帰. 用いた手法や帰納的プログラミングを用いた手法が提案さ. 納的論理プログラミングがそれぞれ用いられている.あら. れている.最も成功しているのは Intel 社の A. Ziv らによ. かじめ入力パタンの持つ性質と個別のカバレッジポイント. るベイジアンネットワークの機械学習によるアプローチで. との性質を学んでおき,これを使ってクロスカバレッジ (複. ある [5], [6].ベイジアンネットワークは,複数の確率変数. 数のカバレッジポイントを組み合わせて評価するカバレッ. 間の依存関係を有向グラフで表現したものであり,各ノー. ジ) の改善を行う.文献 [3] では回路のアクティビティを観. ドが確率変数1つに対応する.ランダムパタンからの学習. 測することによりマルコフモデルの学習を行い,入力パタ. では,各ノードにパラメータおよびカバレッジポイントが. ンの生成方法を動的に調節してカバレッジを改善する.こ. 対応づけられる.しかし,既存手法は,マイクロプロセッ. れらはいずれもカバレッジ駆動型検証であるが,対象がマ. サなど限られた設計への適用例しかなく,また,機械学習. イクロプロセッサまたはマイクロアーキテクチャに限られ. のアルゴリズムをそのまま転用しており,設計やカバレッ. ており,さらに,学習の際に注目する入力の性質 (命令の. ジの特性を利用していないため,十分な性能を引き出し切. 種類や出現確率など) の抽出はマイクロプロセッサに特化. れていると言えない.. した形で人手で行われている.. 本報告では,これまで報告のないトグルカバレッジを ターゲットとしたカバレッジ駆動検証について,ベイジア ンネットワークの機械学習を用いた方法を適用する.適用. 2. 準備 2.1 カバレッジとカバレッジ駆動検証. 場面としては,設計を変更後に誤りが発生していないかを. カバレッジ (coverage) には種々の評価指標がある.例え. 確かめるための,リグレッション検証を想定している.本. ば,ステートメントカバレッジ (statement coverage) は,. 報告では,特定の設計に限らず,複数のベンチマーク回路. シミュレーション時に設計記述中のステートメントの集合. に適用した場合の効果について実験を通じて調べる.特に. あるいは部分集合の内,実行されたことがあるステートメ. ターゲットがトグルカバレッジであることから,2クロッ. ントの割合として評価される.本報告では,カバーポイン. クサイクルにわたる信号値の変化に着目して機械学習を行. ト (cover point) は注目している設計記述中または設計の. うことにより,カバレッジ駆動検証におけるカバレッジの. 構成要素 (文や信号線など) と,カバーの条件の対とする.. 改善をより高速に達成できることを示す.. 以下,本報告ではカバレッジとして,トグルカバレッジ. (toggle coverage) に注目する.トグルカバレッジのカバー 1.2 関連研究. ポイントは,設計内の信号線 (あるいは変数),および,2. カバレッジ駆動検証システムの自動化に関しては,SAT. クロックサイクルの間に信号線の値が 0 から 1 へ変化する. ソルバを用いるアプローチと機械学習を用いるアプローチ. という論理条件,または 1 から 0 へ変化するという論理条. が提案されている.. 件の対となる.0 から 1 または 1 から 0 への値の変化をト. SAT ソルバを用いてカバレッジを改善する方式 [7], [8] として,文献 [7] では,ターゲットとなるカバレッジポイ. グルと呼ぶ.ここでは 0 から 1 への変化と 1 から 0 への変 化は異なるものとみなす.. ントのカバー条件について,その解空間を分割することに. 設計が活性化されたかの目安としてトグルカバレッジは. より,効率的な解の生成を行っている.また,文献 [8] で. 用いられる.100% になった場合でも設計の正しさが保証. ⓒ 2016 Information Processing Society of Japan. 15.
(3) DAシンポジウム Design Automation Symposium. DAS2016 2016/9/14. されるわけではないが,0 から 1 または 1 から 0 への変化 が全くない信号線あるいは回路の一部分は,十分テストさ れていない可能性が大きく,さらにシミュレーションパタ ンを増やすか,あるいは値が変化しない理由を調べる必要 があることを示す.. 3. ベイジアンネットワークを用いたカバレッ ジ駆動検証 以下では,リグレッション検証を前提として,トグルカ バレッジに着目したカバレッジ駆動型検証を考える.. カバーポイントの集合 C と (複数サイクルに渡る) 入力 パタン P に対して,トグルカバレッジは,シミュレーショ. 3.1 機械学習を用いたカバレッジ駆動型検証. ンを行った際に 1 度以上カバーされたカバーポイントの集. 機械学習を用いたカバレッジ駆動型検証では,まず,シ. 合 C ′ に対して,|C ′ |/|C| と定義する.入力パタンが複数. ミュレーションパラメータの値の種々の組み合わせについ. ある場合も同様に定義される.. て,シミュレーションを行う.その結果についてカバレッ. 図 1 にカバレッジ駆動検証のフローを示す.. ジ解析を行って,シミュレーションパラメータとカバレッ ジとの関係を機械学習で学習する.次に学習結果から,カ バーポイントをカバーしやすいシミュレーションパラメー タを推定して,これを用いてシミュレーションを行う.こ. 9:%. -./(0 -12%. !"#$%. &'()*! +,%. &'()*! 3456%. の手順を示したものが図 3 である.. 78%. 図 1. カバレッジ駆動検証のフロー. また,本報告で想定する適用場面では,例えば検証対象 となる設計 (design under verification, 以下 DUV) には, 入力に対して正しい出力を与える参照モデル (reference #. model) があり (図 2).同じ入力に対する比較によって検 証を行う.この枠組みでは DUV に対するカバレッジはで. 図 3. 機械学習を用いたカバレッジ駆動型検証. きるかぎり大きい方がよい. 以下,本報告では,カバレッジに言及する際は,DUV の みについて考え,テストベンチや参照モデルに対するカバ. 3.2 ベイジアンネットワーク ベイジアンネットワーク [9], [10] は複数の確率変数間の. レッジは考えないこととする.. 関係をグラフ構造で表し,因果関係を条件付き確率によっ て記述するグラフィカルモデルのひとつである.複数の変 数間の関係は非巡回有向グラフで表される.例を図 4 に示. !"#! , -!. '($ )*+!. す.グラフの構造に応じて,確率変数間に条件付き確率分 布が設定される.. "#$%&!. ./01+2!. 図 2. テストベンチの構成. リグレッション検証 (regression verification) は,設計に 対して誤り修正や性能向上のため,なんらかの変更を行っ た後,ふたたび行う設計検証のことをいう.いったんは検 証が終了している機能について,設計を変更することに !. よって,新たに誤りが導入されて後戻り (リグレッション) が生じていないかどうかを調べることが目的である.リグ. 図 4. ベイジアンネットワークの例. レッション検証では,変更部分がシミュレーションにおよ ぼす影響はあまり大きくないことが多く,最初に用いられ. 非 巡 回 有 向 グ ラ フ の 各 節 点 に は 確 率 変 数 Xi (i =. たシミュレーションパタンのセットを用いる場合もある.. 1, 2, . . . , n) が対応付けられている.Xi に対応する節点. ⓒ 2016 Information Processing Society of Japan. 16.
(4) DAシンポジウム Design Automation Symposium. DAS2016 2016/9/14. の親の集合を Pa(Xi ) と書くことにすると,ベイジアン ネットワークは同時確率分布 P (X) =. ∏n. i=1. Algorithm 1: ランダムシミュレーション. P (Xi |Pa(Xi )). を表現している.ここで,X = {X1 , X2 , . . . , Xn } とする.. P (Xi |Pa(Xi )) は Pa(Xi ) に対する Xi の条件付き確率で あり,Pa(Xi ) が空集合の場合は,P (Xi ) に等しいとする. ベイジアンネットワークの学習では,各確率変数に対応. 1. Data: T D:テストベンチおよび DUV,N :データセットの大き さ (シミュレーション回数),Cc:ランダムシミュレー ションのサイクル数,I: 入力信号線の集合,P : 信号線 に対する確率分布の集合 Result: D: データセット begin. する観測値データ di (i = 1, 2, . . . , m) を集めたデータセッ. 2. D = ∅;. ト D を与えて,このデータセットに対する学習スコアを. 3. for N times do. 最適にするようなベイジアンネットワークの構造と条件付. 4. IP = ∅;. き確率分布を求めることになる.学習スコアとしては,ベ. 5. for i ∈ I do. イジアンスコアや尤度などが用いられる.本報告の実験で は,特定の構造と条件付き確率の組み合わせ S の下で D. 6. p ∈ P をランダムに選択;. 7. IP = IP ∪ {(i, p)}; // 選択した確率分布によるシミュレーション. が生成される確率 (の対数) log P (D|S),すなわち尤度を用 いている.. 8. d = RandSim(T D, IP, Cc);. 9. D = D ∪ {d};. 一部の確率変数が特定の値をとったとき,その他の確率 変数の確率分布を求めることを確率推論という.ここで は,周辺分布の計算をもって確率推論とする.e は確率変. どうかを観測する.図 5 では,カバーポイント c1, c2, c3. 数の集合 E ⊆ X に対する値の割当て (インスタンス化) を. のうち,c1 がカバーされている.このとき,データとして. 表すものとする.e はエビデンスとも呼ばれる.また,Pe. 図 6 を得ることになる.. は e のもとでの確率分布を表すとする.確率変数の集合. 以上のシミュレーションを複数回繰り返して,機械学習. Y ⊆ X に対する e のもとでの周辺分布 Pe (Y) は次のよう. のためのデータセットを得る.このデータセットに対し. に定義される.. て,ベイジアンネットワークの学習を行う.. Pe (Y) =. ∑ X/Y Pe (X). データセット生成の概要をアルゴリズム 1 に示す.この アルゴリズム中 RandSim は,テストベンチおよび DUV T. 3.3 カバレッジ駆動検証への適用 ベイジアンネットワークによる機械学習をカバレッジ駆 動検証におけるシミュレーションパラメータの調整に利用. に対して,Cc サイクル分のシミュレーションを,IP の確 率分布のもとで行って,図 6 の形式のデータを出力する. !"#$%&'(. する手順を説明する.. 3.3.1 ベイジアンネットワークの学習 まず,確率分布を数種類準備して,信号線ごとに確率分. A. P(A). A. P(A). 0. 0.65. 0. 0.35. 1. 0.35. 1. 0.65. 布を選択し,それに基づいてシミュレーションを行う.そ. i1=0. )))A. i1=1. の際カバーされたカバーポイントを調べて,データセット を作成する.図 5 のシミュレーションフローの例を示して いる.この例では,3つの信号線 A, B, C に対して,それ. *+,- X B. P(B). B. P(B). 0. 0.40. 0. 0.60. 1. 0.60. 1. 0.40. ぞれ2つの確率分布を用意している.例えば A について. c1=0.1. )))B. c2=0.0 c3=0.0. i2=1. i2=0. は,i1 = 0 の場合は A が 0 (1) になる確率が 0.65 (0.35) であり,i1 = 1 の場合は,0 (1) になる確率が 0.35 (0.65) である. ランダムシミュレーションでは,各信号線について用. C. P(C). C. P(C). 0. 0.10. 0. 0.90. 1. 0.90. 1. 0.10. i3=0. )))C. i3=1. 意した確率分布の中からランダムに一つの確率分布を選 ぶ.この例では A,B,C に対してそれぞれ,i1 = 1,i2 = 0,. i3 = 1 の確率分布を選んでいる.次に選んだ確率分布にし. 図 5 シミュレーションフロー. たがって,与えられたクロックサイクル数だけ,値を生成 してシミュレーションパタンとする.以下の実験では,1 回のシミュレーションはすべて,リセット直後の状態から. !. のシミュレーションを意味している. シミュレーションでは,カバーポイントの集合を与えて,. 図 6 データセット (1行分). それぞれのカバーポイントについて,カバーされているか. ⓒ 2016 Information Processing Society of Japan. 17.
(5) DAシンポジウム Design Automation Symposium. DAS2016 2016/9/14. 3.3.2 確率推論による入力パラメータの調整. Algorithm 2: 確率推論を利用したシミュレーション. 次に得られたベイジアンネットワークに対して確率推論 を適用しながら,シミュレーションを繰り返す.まず,カ バーすべきカバーポイントの集合を定める.このカバーポ イントは,データセット生成時の複数回のシミュレーショ ンにおいて,ある回数以上 (たとえば全回数の 10%以上) か. 1. Data: T D:テストベンチおよび DUV,Cc:ランダムシミュレー ションのサイクル数,Cov:ターゲットとなるカバーポイ ントの集合,BN :学習後のベイジアンネットワーク,I: 入力信号線の集合,P : 信号線に対する確率分布の集合 Result: N : シミュレーションの回数 begin. つある回数以下 (たとえば全回数の 80%以下) カバーされて. 2. N = 0;. いるポイントとする.このように設定している理由は,ほ. 3. while Cov ̸= ∅ do. とんどカバーされていないカバーポイントは,偶然カバー. 4. cp ∈ Cov をランダムに選ぶ.;. されただけであり,確率分布の選択によってはカバーを再. 5. IP = ∅;. 現できない可能性が高いこと,およびカバー回数が多いカ. 6. for i ∈ I do. バーポイントは,どのような確率分布でもカバーできると 考えられるためである. シミュレーションを複数回繰り返すため,カバーすべき. // cp の下での入力 i に対する周辺確率 cd を計算 7. cd = MargDist(BN, cp, i);. 8. p ∈ P を cd に従って選択;. 9. IP = IP ∪ {(i, p)};. ポイントの数は一般に減少していく.カバーすべきカバー ポイントの中から,ランダムに1つカバーポイントを選択. // 選択した確率分布によるシミュレーション 10. d = RandSim(T D, IP, Cc);. する.対応する確率変数の値を 1 として,各信号線に対す. 11. N = N + 1;. る周辺確率をそれぞれ求める.図 7 に例を示す.A に対. 12. Cov = Cov\{cp | d でカバーされる };. する確率分布の選択が,確率変数 i1 に対する周辺分布に よって決定される様子を示している. 確率推論を利用したシミュレーションの手順をアルゴリ ズム 2 に示す.このアルゴリズムの関数 MargDist は,指 定されたカバーポイント cp に対する確率変数の値を 1 と した上で,指定された入力信号線 i に対して,周辺確率分 布を計算する.. P(A). A. P(A). 0. 0.65. 0. 0.35. 1. 0.35. 1. 0.65. i1. P(i1). 0. 0.35. 1. 0.65. &'()*+, !"#$ X. B. &'-. i1 /01*234. 表 1 設計記述 #FF #Logic. #CovPnt. fifo. 283. 1463. uart. 28. 181. 56. 132. 895. 264. simple spi usb phy. A. A. DUV. 566. 98. 503. 196. tv80 core. 347. 9278. 694. s5378.v. 163. 1832. 326. 論については,サンプリング法により計算している.. 4.1 実験対象と諸パラメータ. c1=0%1. IWLS2005 のベンチマークから表 1 に示す DUV に対し. c2=0%0. て実験を行った.全て Verilog で記述されている.フリッ. c3=0%0. プフロップ数 (#FF) と論理素子数 (#Logic) は,Yosys[11]. C. によって得られたゲートレベル記述における値である.そ 図 7 確率推論によるパラメータの設定. れぞれリセット系列を与えるテストベンチを作成して,リ セット後の状態を初期状態として,1回のシミュレーショ. 以上がベイジアンネットワークを用いたカバレッジ駆動. ンを行っている.. 型検証の流れとなる.. 4. 評価実験. 4.2 結果 トグルカバレッジが対象であることから,1 サイクルに. 実験は Intel Core-i5 2.7GHz, 1GB のマシンを Linux. 対する確率分布の他に,2 サイクルに対する確率分布を導. Ubuntu 15.04 のもとで利用した.ベイジアンネットワーク. 入して比較実験を行った.図 8 と図 9 に使用した 1 サイク. の学習と確率推論には R のパッケージである bnlearn[13]. ル系列と 2 サイクル系列に対する確率分布をそれぞれ示す.. を,シミュレータは Icarus Verilog[12] を使用した.. P 0,P 1,P 2,P 3 がそれぞれ異なる確率分布となっている.. bnlearn の学習アルゴリズムとしては,単純なヒルクラ. 1 回のシミュレーションは 250 サイクルとし,データセッ. イム法 (グリーディヒューリスティック) による構造探索. トを 100 個生成し,学習を行った.カバーポイントとして. を採用し,スコアは対数尤度によっている.また,確率推. は,まず,Yosys によりゲートレベル記述の生成を行った. ⓒ 2016 Information Processing Society of Japan. 18.
(6) DAシンポジウム Design Automation Symposium. 図 8. DAS2016 2016/9/14. 1 サイクル系列に対する確率分布. 用いたが,いずれも最も単純な手法である.回路記述から の構造情報の反映,異なるアルゴリズムの適用,複数の信 号線に対する周辺分布の利用などが検討課題となっている. また,ランダムシミュレーションではカバーすることが 難しいカバーポイントは学習に反映させることが難しいあ. !. るいは不可能であるため,本報告の手法ではカバーするこ とが難しい.SAT ベースの手法を組み合わせるなどのアプ. 図 9. 2 サイクル系列に対する確率分布. ローチを検討する必要がある. 参考文献. 1!. [1]. 0! 0! 1!. 0! 1! [2]. 1! 0!. 後,残った状態変数 (フリップフロップの出力) すべてを. [3]. 考え,さらにランダムシミュレーションによるカバー率が. 10%から 80% のカバーポイントをターゲットとしている. 選択したカバーポイント全てについて 1 回以上カバーする. [4]. までのシミュレーションの回数 (1 回のシミュレーション は 250 サイクル) を比較した.結果を表 2 にまとめる.5 回繰り返して得られた回数の平均を示している. 表 2. カバーポイントをカバーするまでのシミュレーション回数 !"#. $%&'#. ()*+,-.#. [5]. [6]. /)*+,-.#. fifo#. 85#. 2#. 2#. uart#. 100#. 1#. 2#. simple-spi-top#. 8#. 8.3#. 12.4#. usb_phy#. 4#. 3#. 14#. tv80_core#. 20#. 18.9#. 34.1#. s5378#. 8#. 6#. 57.6#. [7]. [8]. [9]. この実験結果は,トグルカバレッジに関する限り,2 サ イクル系列を用いた場合がシミュレーション回数の点で有 利であることを示唆している.. 5. おわりに. [10] [11] [12] [13]. S. Yang, R. Wille, and R. Drechsler, “Determining cases of scenarios to improve coverage in simulation-based verification,” Symp. on Integrated Circuits and System Design, 2014. S. Yang, R. Wille, D. Große, and R. Drechsler,“Coverage-driven stimuli generation,” EUROMICRO Symp. on Digital System Design, pp. 525-528, 2012. I. Wagner, V. Bertacco, T. Austin, “Microprocessor Verification via Feedback-Adjusted Markov Models”, IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems, vol.26, no.6, pp.1126-1138, 2007. C. Ioannides, K. Eder, “Coverage directed test generation automated by machine learning - a review,”, ACM Trans. on Design Automation of Electronic Systems, vol. 17, no. 1, pp. 7:1-7:21, 2012. S. Fine and A. Ziv, “Coverage directed test generation for functional verification using bayesian networks,” Design Automation Conference, pp. 286-291, 2003. Y. Katz, M. Rimon, A. Ziv, and G. Shaked, “Learning microarchitectural behavious to improve stimuli generation quality,” Design Automation Conference, pp. 848853, 2011. S. M. Plaza, I. L. Markov, and V. Bertacco, “Toggle: A coverage-guided random stimulus generator,” Int’l Workshop on Logic Synthesis, pp. 35-1357, 2007. S. Shyam, V Bertacco, “Distance-Guided Hybrid Verification with GUIDO”, Proceedings of the conference on Design, automation and test in Europe, p. 1211-1216, 2006. T. Koski and J. M. Noble, ”Bayesian Networks An Introduction”, John Wiley & Sons, 2009. M. Scutari and J-B. Denis, ”Bayesian Networks with Examples in R”, CRC Press, 2015. Yosys, http://www.clifford.at/yosys/about.html. Icarus Verilog, http://iverilog.icarus.com/. bnlearn, https://cran.r-project.org/web/packages/ bnlearn/index.html. 本報告では,ベイジアンネットワークの機械学習をカバ レッジ駆動検証に利用する手法について検討した.設計対 象をマイクロプロセッサなどに限定せず,トグルカバレッ ジを対象として,リグレッション検証での利用を想定して 実験を行った.特に,入力信号線に確率分布を設定する際, 2サイクルにわたる信号値の変化に着目して,機械学習を 適用した.この結果,トグルカバレッジに関しては一般的 に効果があるという示唆が得られた. 本報告では機械学習のアルゴリズムにはヒルクライム法 を用い,確率分布の (周辺分布) 算出にはサンプリング法を. ⓒ 2016 Information Processing Society of Japan. 19.
(7)
図
関連したドキュメント
機械物理研究室では,光などの自然現象を 活用した高速・知的情報処理の創成を目指 した研究に取り組んでいます。応用物理学 会の「光
「特定温室効果ガス年度排出量等(特定ガス・基準量)」 省エネ診断、ISO14001 審査、CDM CDM有効化審査などの業務を 有効化審査などの業務を
・患者毎のリネン交換の検討 検討済み(基準を設けて、リネンを交換している) 改善 [微生物検査]. 未実施
建設機械器具等を保持するための費用その他の工事
の改善に加え,歩行効率にも大きな改善が見られた。脳
高効率熱源機器の導入(1.1) 高効率照明器具の導入(3.1) 高効率冷却塔の導入(1.2) 高輝度型誘導灯の導入(3.2)
• 熱負荷密度の高い地域において、 開発の早い段階 から、再エネや未利用エネルギーの利活用、高効率設 備の導入を促す。.
具体的な取組の 状況とその効果 に対する評価.