日本ソフトウェア科学会第 34 回大会 (2017 年度) 講演論文集

データセット多様性のソフトウェア・テスティング
中島 震

統計的な機械学習には通常のソフトウェア・テスティングが前提とする確定的なオラクルが存在しない．相対的な正解値に基づく疑似オラクルの方法であるメタモルフィック・テスティングを適用する．機械学習プログラムへの入力となるデータセットは多数のデータの集まりである．データ分布の違いが入力の多様性を表すといってよい．本稿では，入力データセットを系統的に生成する新しいメタモルフィック・テスティングの方法を提案する．具体例として，サポートベクタマシンならびにニューラルネットへの適用事例を報告する．

Deterministic oracle, used in standard software testing, is not available for statistical machine learning computer programs. Alternatively, metamorphic testing, pseudo oracle in view of data diversity, is adopted.
Statistical machine learning, however, works on a dataset consisting of many data. Their distributions in
the dataset show the diversity in testing. This paper proposes a new metamorphic testing method to take
into account the dataset diversity. The method was applied to two well-known machine learning of support
vector machines and neural networks.

る．実際，メタモルフック・テスティングは分類学習

1 はじめにプログラムの検査に適用された（たとえば [8]）．とこ

ビッグデータ分析や機械学習は，多数のデータからろが，機械学習プログラムへの入力は単独のデータでなるデータセットを対象とし，統計的な方法を用いてはなく，データセットである．データ分布の違いが入データ間に内在する関係を推定する．自明でない有用力の多様性を表すといってよい．異なるデータ分布をな関係を見出すこと，新たなデータに対する結果を予系統的に生成することで，さまざまな入力データセッ測することが目的．得たい結果（正解値）が未知なこトを得ることができる [6]．つまり，データセット多とから，テスト不可能プログラム [7] といえる．

様性に着目すべきである．

正解値が既知でないプログラムを検査する方法と本稿では，文献 [6] の方法を一般化し，データセッして，他プログラムの結果を正解値の代わりに用いる

ト多様性を考慮したフォローアップ入力生成の新し疑似オラクルが知られている．このような疑似オラクい方法を提案する．サポートベクタマシンならびにルへのアプローチとして，デザイン多様性とデータ多ニューラル・ネットという統計的な機械学習の代表的様性の 2 つがある．データ多様性 [1] は系統的な入力な方法への適用事例を報告する．

データ生成に着目する考え方で，メタモルフィック・テスティング [5] などの方法がある．
データ多様性は，数値計算プログラムを検査する入2 ソフトウェア・テスティング
2. 1 確定的なオラクル力生成の方法として考案された．統計的な機械学習もソフトウェア・テスティングの関心事は，検査対象数値計算を中心とする最適化問題として定式化されプログラム中の欠陥を如何にして効率よく発見するか∗ Software Testing under Dataset Diversity.

Shin Nakajima, 国立情報学研究所, National Instituteof Informatics.

である．今，検査対象を関数 f (x) と表す．入力データ

X に対する既知の正解値 C X を用いて，f (X) = C Xが成り立つかを調べる．正解値は設計仕様や理論値から決まる．検査対象プログラムからみると，絶対的なムを複数開発するもので，N バージョン・プログラミ正しさを与える．

ングがある．独立した開発チームが異なるプログラミ

計算結果 f (X) が C X に一致しない時，プログラムに不具合がある．欠陥箇所を実行しない可能性が残ング言語を用いる等の工夫によって，疑似オラクルの信用レベルを向上させる．

るので，一致する場合でも不具合がないとはいえな

データ多様性 [1] は，数値計算など多様なデータにい．入力を工夫することで，不具合の存在がわかるとよる検査が必要なプログラムで有用な考え方で，メ期待する．ソフトウェア・テスティングの主要な課題タモルフィック・テスティング [5] がある．これは，検は，プログラムの可能な実行経路をできるだけカバー査対象プログラム f (X) だけを用いる疑似オラクルすること（カバレッジ），未知の欠陥がありそうな経といえる．入力 X (m) に対する計算結果を f (X (m) )路を実行する入力を得ること（コーナーケース検査）とする．X (m) に変換 T を施してフォローアップ入力の 2 つになる．

X (m+1) = T (X (m) ) を得る．ここで，変換 T は 2 つの一般に，テスト・オラクルは，計算結果と比較可能計算結果の間に適切なメタモルフィック関係 RelT が成な正解値の求め方ならびに正解値と検査する方法を指り立つように，検査対象プログラムの機能仕様から見す．検査対象を決めた時，テスト・オラクルは入力に出す．2 つの計算結果が，RelT (f (X (m) ), f (X (m+1) ))対して受理あるいは棄却を判断する．確定的なオラク
ルは，同一入力に対して常に同じ判断結果を返す†1 ．

を満たさない時，f に不具合があると結論する．

本稿で考察する統計的な機械学習ソフトウェアには確

3 機械学習ソフトウェアのテスティング

定的なオラクルが存在しない．このようなソフトウェ

3. 1 教師あり機械学習

アに対する検査の信用レベルを如何にして高めるか

教師あり機械学習の基本的な考え方を，最適化の問が課題である．

題として説明する．今，データセット D をデータ点⟨⃗xn , y n ⟩ の集まりとする．ここで，⃗xn は多次元ベク
2. 2 疑似オラクル

タ，y n は教師ラベルを表す．

入力 X に対する正解値 C X が事前に知られていな

統計的な機械学習は，パラメータ θ で特徴つけられたい場合を考える．一般に，欲しい値が未知のプログラ

関数 F C (θ; ⃗x) の集まり {F C (θ; ⃗x)} から，与えられムは正解値がわからない．知っていればプログラムを作る必要がない．このようなプログラムの検査では，たデータセット D に対する目的関数 E(θ; {⟨⃗xn , y n ⟩})を最小にするパラメータ θ∗ を求めること†2 ．つま

相対的な正解値を C X の代わりに使う疑似オラクルり，θ∗ = arg min E(θ; {⟨⃗xn , y n ⟩}) である．関数を用いる [7]．

F C (θ∗ ; ⃗x) を決めるには，ハイパーパラメータ C の相対的な正解値は，検査対象以外の他プログラムがθ値を決めておく必要があり，θ∗ は C に依存する．

計算した値（黄金出力）である．プログラムは正しさパラメータ推定に用いるデータセットを訓練デーが保証されていないので，その計算値は絶対的に正しタセット DR ，得られた関数 F C (θ∗ ; ⃗x) の評価に用いとはいえない．プログラムを改版した際に実施するいるものを試験データセット DT ，最適なハイパーパ回帰テストで，改版前プログラムと同じ結果が得られラメータの推定に用いるものを検証データセット DV

れば，改版後プログラムに新たな欠陥が混入していなと呼ぶ．何らかの方法で決めたハイパーパラメータ値

い，と考えることに似ている．

を Co とする時，推定したパラメータ θ∗ (Co ) の良し相対的な正解値を得る方法として，デザイン多様性とデータ多様性の 2 つの考え方がある．デザイン多悪しは，検証データセット DV に関数 F を適用した結果として得られる正解率で評価する．

様性に基づく方法は，同じ機能仕様を満たすプログラ†1 本稿では検査対象が停止しない場合は考えない．

†2 制約条件 C(θ; {⟨⃗xn , y n ⟩}) を伴うこともある．

3. 2 メタモルフィック・テスティングの適用

表1

機械学習のソフトウェア・テスティング対象は，θ∗

一般的なメタモルフィック性

Additive
Multiplicative
Permutative
Invertive
Inclusive
Exclusive

を求める最適化問題の解法プログラム f である．ハ
イパーパラメータ C は定数であり，検査対象プログ
ラム f は訓練データセット DR を入力として，パラメータ θ∗ を計算する．θ∗ は未知なので，メタモルデータ点の属性に加算
データ点の属性に乗算
データ点の入れ替え
正解ラベルの反転
新しいデータ点の追加
既存データ点の削除

フィック・テスティングを用いる．
機械学習タスクを定式化した最適化問題は目的関数

E ならびに制約条件 C の形で数式で表される．ソフト

y=0(m)(m)(m+1) y ( xN+1 ) = 0

ウェア工学の観点では，最適化問題が宣言的な要求仕xN+1様に対応するとしてよい．今，目的関数 E を不変にするようなフォローアップ変換 T を選べば，メタモルフィック関係が自明になる．あるいは，見通しの良

y=+1

い RelT が成り立つように T を選ぶ．メタモルフィッ(a) m-th hyperplane

ク・テスティングを分類学習に応用した事例研究 [8]図1は，表 1 に示す一般的なメタモルフィック性を整理した．直感的に明らかであるが，変換関数の具体的な導y=-1(b) inclusive

Support Vector Machine法を示した．

出方法は示されていない．文献 [6] は，サポートベク

本稿では，文献 [6] の方法を一般化して，データターマシンについて，最適化問題の形式からフォローセット内のデータ分布に注目する見方をデータセットアップ変換を導出する系統的な方法を論じた．

多様性と呼び，データセット多様性を考慮したメタモルフィック・テスティングの一般的な枠組みを提案

3. 3 データセット多様性する．

検査対象 f は非線形の目的関数 E を解く数値計算

テスト入力として用いる訓練データセットを D(m)プログラムで，与えられた入力データセット DR のと表記する．D(0) を何らかの方法で得た最初の訓練要素全体に対する処理として実現される．単純な制御データセットとする．従来の方法では，フォローアッ構造を持つ繰り返し処理であることから，制御フロー

プ入力は D(m+1) = T (D(m) ) で求めた．一方，本稿

グラフを対象とする通常のテスト・カバレッジは自ず

では，フォローアップ入力を得る変換関数 T を拡張から満たされ，良い基準にならない [6]．

し，T (D(m) , f (D(m) )) とする．フォローアップ入力

一方，f の検査結果は入力データセット DR に依存D(m+1) を得るのに，計算結果 f (D(m) ) を用いる．

する．より詳しくは，学習タスク毎に，DR 中のデー

検査は，関係 RelT (f (D(m) ), f (D(m+1) )) を調べタ点分布が計算結果に大きな影響を与える．一般に，る．一般に，パラメータ数は膨大であり，全ての値をデータセットは無限にあるので，ランダム生成した分対象とする検査は容易でない．関数 g を f (D) の計

布のデータセットを用いても検査効率が悪い．対象学

算結果 θ∗ から検査に必要な値を抽出する処理とし，習タスクの性質に依存して適切な偏りを持つ分布をRelT (f ◦g(D(m) ), f ◦g(D(m+1) )) とする．

用いたい．
文献 [6] では，教師あり分類学習タスクを対象とす

4 適用事例

るデータセット・カバレッジを導入した．関数 f を検

4. 1 サポートベクターマシン査するという観点から，入力とする訓練データセット

4. 1. 1 ラグランジュ形式

DR 内のデータ分布を工夫するということ．分類を困サポートベクタマシン（SVM）は教師あり分類学難にするような限界データ点を系統的に導入する方習の方法．データ点は多次元ベクタとスカラ値をとる

ラベルの組で，分類問題は N 個のデータ点からなる

1

データセットが与えられた時，ラベル値の異なるデータ点を分離するような境界を求めること．SVM は，求める分離境界の最も近くにあるデータ点（サポートベクタ）を発見し，サポートベクタとの距離（マーx1x1x2.
.
.

x2

w1w2
wd

y = sigmoid(h)
h=x3

wixi

x4xdx5ジン）が最大となるように分離境界を決定する．図 1
ではラベルを図形で区別し，実線で分離境界線を，破線でサポートベクタ上の線を表した †3 ．

1(a) Perceptron
図2(b) Two Layered Network
Neural NetworkSVM は制約条件あり最適化問題として定式化されている．⟨⃗
xn , ℓn ⟩ をデータ点，⃗xn を K 次元ベク

ローアップ入力を D(m+1) = D(m) ∪{X N +1 , X N +2 }タ，ℓn を −1 か +1 の値をとるラベルとする. 今，とする．ただし，2 つのデータ点は分離超平面上に

y(⃗x) = w
⃗ ·⃗x + b とおくと，分離超平面は y(⃗x) = 0位置する（y (m) (⃗xj ) = 0）．この D(m+1) に対してを満たす．2 つのパラメータ w⃗ と b を求める．

SVM を計算すると，y (m) = 0 を満たすデータ点を

T

1|| w
⃗ ||22arg minw,b⃗s.t. ℓ (w⃗ ·⃗x + b) ≥ 1nTn

サポートベクタとする新たな分離超平面 y (m+1) がこの制約条件あり最適化問題を，双形式ラグランジア求まる．関数 y はラグランジュ乗数に依存するので，ン L(α1 , . . ., αN ) で表す．ここで，αn は N 個のラグD(m+1) = T (D(m) , g({αn )}) の形になっていること

ランジュ乗数．ノイズを許容するハイパーパラメータがわかる．なお，限界データ点は多次元であり，方C を持つソフトマージン SVM は次の通り．

程式 w⃗ (m) ·⃗xj + b(m) = 0 の解として得られる．条件

αn αm ℓ ℓ (⃗x ·⃗x )が不足しているので唯一に定まらない．文献 [6] では，

L=∑

αn − 12∑∑n mnmとして，その時点におけるサポートベクタの近傍に配置する

arg max L(α1 , . . ., αN )αns.t. 0 ≤ αn ≤ C,

∑Nn=1というヒューリスティックスを用いた．

αn ℓ n = 0

初期データセット D(0) が与えられた時，上記の変分離超平面を特徴つけるパラメータは，ラグランジュ

換 T を繰り返し適用すると，分離超平面 y (0) = 0乗数から求めることができる．ただし，S はサポート

近傍にデータ点が集中する偏ったデータ分布のデーベクタの集まり（図 1(a)）.

タセットを順次得ることができる．今，y (0) = 0 にw
⃗ =b =

∑∑n∈S

1|S|

αn ℓn ⃗xn ,m∈S(ℓm −∑n∈S

関わるマージンを d0 とする時，D(m) に対しては，αn ℓn (⃗xn ·⃗xm ))|d0 /2m | となる．この過程を続けると，マージンがさ得られた関数 y(⃗x) = w⃗ T ·⃗x + b を用いて，試験デーらに小さくなり，ある時点で，微少量 ϵd に対して，タセット DT の正解率を調べれば良い．

|d0 /2m |≤ϵd を満たす．この時，分離超平面の両側に4. 1. 2 分離超平面の近傍位置する 2 つのサポートベクタは，数値計算誤差のサポートベクタマシンは図 1 からわかるように，分範囲で同一視される．これら 2 つは異なるラベルを離超平面の近傍に位置するデータ点が計算結果に大持つので，これは不整合な状況に対応する．つまり，きく影響する．フォローアップ入力として，このようコーナーケース検査の入力となる．

な限界データ点を追加する系統的な方法を考えれば良い．表 1 の Inclusive に相当する．
今，N 個のデータ点からなる訓練データセット

4. 2 ニューラル・ネット
4. 2. 1 損失関数の最小化

D(m) に対して関数 y (m) が得られたとする．データ点ニューラル・ネットは，回帰や分類（識別）などのを X j = ⟨⃗xj , +1⟩（j = N + 1, N + 2）として，フォ学習タスクに利用可能な一般的な枠組みである（たとえば， [3] の第５章).

†3 線形分離可能な問題設定．

図 2 (a) はニューラル・ネットの基本構成になるパセプロトンの模式図．一連の入力信号 xi を受け取り，∑dy = σ(i=1wi xi ) の計算結果を出力する．ここで，σ を活性化関数と呼ぶ．
本稿で考察する古典的なニューラル・ネットは図 2(b) のように，パセプトロンを 2 層に重ねた構造を持
つ．D 個の入力信号は M 個の中間層（隠れ層）に伝播され，その後，R 個の出力層につながる．今，h と図3

Multiplicativer を活性化関数とする時，k 番目の出力信号 yk は次のように表せる．

yk (V , W ; ⃗x) = r(∑M
j=0vkj h(∑Di=0は 28×28 の大きさを持つので，入力データは 784 次wji xi ) )元となる．中間層は 50 次元とした．出力層は 10 次ここで，⃗x は D 次元ベクタ（D×1 行列）である．W元である．各ピクセルはグレー画像で 0 から 255 まは隠れ層への入力リンクの重み wji を要素とするでの値をとる．

M ×D 行列，V は出力層への入力リンクの重み vkj

まず，MNIST データセットの限界データ点を何にを要素とする R×M 行列，とする．行列の乗算を · ですれば良いかを考察する．手書き数字認識は，入力明示すると，⃗
y を R 次元の出力信号として，データのピクセル値（⃗
xn の属性値）パターンから特⃗y (V , W ; ⃗x) = r(V ·h(W ⃗x))

定の数字と結論すること，パターンの分離ができなと書ける．今，正解ラベルを ⃗tn として，N 個の入力いと他の数と誤る．ピクセルをうまく選んで，その値データ点 ⟨⃗xn , ⃗tn ⟩ (n = 1, . . ., N ), からなるデータを変更すれば，パターンに影響がでる．そこで，表 1セットが与えられたとする．誤差二乗和で定義する損の Additive や Multiplicative が良いメタモルフィッ

失関数

ク性になると期待できる．

E(V , W ; {⟨⃗x ,tn ⃗n⟩}) = 12∑2||⃗tn − ⃗y (V , W ; ⃗xn )||を使って，最適化問題として定式化できる．

arg min E(V , W ; {⟨⃗xn , ⃗tn ⟩})V ,W

これは，目的関数が非線形の非凸最適値探索問題で

本 稿 で 提 案 す る デ ー タ セット 多 様 性 に 関
わ る 変 換 関 数 は ，次 の よ う な 形 式 を と る ．
(m)
D(m+1) = T (D(m) , GN, W (m) ))．次に示す関o (V数 top(N, o, V ) を用いる．

あり，数値的に解く勾配法が基本的な方法になる．学

今，V を 10×50 行列とする時，関数 top(N, o, V )習率と呼ぶハイパーパラメータ η (> 0) を与えて，は，指定ラベル o（o = 0, . . ., 9）を出力信号とする∇E(Voldold) から更新値を求める繰り返しアル

50 個の行列要素 voj （j = 1, . . ., 50）の中から，そゴリズムである．実際は，処理性能向上の工夫としの重み値がトップ N の要素の添字 j からなる集合て，逆伝播法や確率勾配法などを用いる．さらに，解H を返す．次に，H の要素をラベルとして W に同への収束性等の向上を目的とする学習トリックを採様の処理を施す．ここで，h∈H をひとつ選ぶとする,Wn用する．特に，入力正規化では，⃗
x のすべての属性と，行列要素 whi （i = 1, . . ., 784）の中から，そのxni を属性 i ごとに正規分布 N orm(0, 1) に変換する

値がトップ N の要素の添字 i からなる集合を返す．

方法を用いる．

4. 2. 2 手書き数字認識∪h∈Htop(N, h, W ) は指定ラベル o を持つ出力信号に影響を与えやすい入力信号の添字集まり U を表す．

データセット多様性の問題を考察する際には学習タ関数 T は，上記の処理で得た添字の集まり U の要スクを決める必要がある．ここでは，手書き数字認識素について，データセット D(m) が含む ⃗xn の u 属性

学習に対する方法を，1 桁の手書き数字 1 文字と正解値 xnu （u∈U ）を更新する．例えば Multiplicative とラベルからなる MNIST データセットを対象としてし，xnxn を D(m+1) の要素とする．
u ×F からなる ⃗具体的に説明する．MNIST では，1 枚の手書き数字

図 3 は，指定ラベルを 4 で選択する重みの数を 5（つまり G54 ）で，乗算係数を 4 とした場合を示す．手力によって欠陥検出が必ず可能なわけではない．多様書き数字 4 の正解値に影響を与えると思われる入力な入力の検査を行うことで，検査結果に対する信用レ属性の値を強めたもの．数字上に黒ドットとして見えベルを高める．

る．これを新たな D(m+1)

として検査する．

本稿ではメタモルフィック・テスティングの拡張と実験によると，乗数係数を大きくすると黒ドットして，データセット多様性を考慮したフォローアップと他ピクセスの差が相対的に大きくなり，入力正規化入力生成の新しい方法を提案した．メタモルフィックによって全体的に不鮮明な画像になる．繰り返し行っ関係の検査については紙面の都合で触れることがでを得る場合を考える．繰り返しと共に，きなかった．サポートベクターマシンについては文献

黒ドット数が増加・拡散し認識特徴が曖昧になり，そ[6] に詳細記述がある．ニューラルネットの場合につの結果，解への収束性が悪くなる．

いて，時系列分析を応用した振舞いオラクルと呼ぶて，D(m+k)

なお，上記では，ひとつのラベルを指定し，これをGNo と表したが，複数のラベルを指定してもよい．2
1N2つを選ぶ（GNo1 ∪Go2 ）等に拡張できる．

方法の有用性を実験で確認している．別稿で報告したい．
謝辞 実験に協力して下さった今井克則氏（(株) グラッツ）に感謝する．

5 考察
統計的な機械学習では，学習性能・品質は与えたデータセットに大きく依存する．このことに着目した研究テーマがある．
能動学習 [4] は，学習パラメータ推定が効率よく進むようにデータ点を獲得する方法．学習モデルを獲得する訓練データセットは標本であって，想定する母分布に対して統計的な変動を示す．能動学習は，ユーザに問い合わせることで，想定通りの標本データ分布にしたがうデータ点を生成する．毒化攻撃 [2] は，訓練データセットに意図的に不正なデータ点を挿入し，適正な学習パラメータ推定を阻害しようとするもの．想定するデータ分布から逸脱したデータ点を生成する．
学習タスク依存である．機械教師 [9] は，期待する学習パラメータ値を与えた時，この値への収束効率が最適となるような訓練データセットを生成する．訓練負荷を目的関数とする最小化問題として定式化される．
本稿では好ましい偏りのある多様なデータセットを系統的に生成する方法を論じた．データセット多様性は，上記の機械学習分野の問題とソフトウェア・テスティングに共通する見方といえる．

6 おわりに一般に，ソフトウェア・テスティングでは，検査入力を系統的に生成する方法が不可欠である．求めた入参 考 文 献[ 1 ] P. Ammann and J.C. Knight : Data Diversity:
An Approach to Software Fault Tolerance, IEEETC, vol.37, no.4, pp.418-425, 1988.
[ 2 ] B. Biggio, B. Nelson, and P. Laskov : Poisoning
Attacks against Support Vector Machines, In Proc.
29th ICML, 2012.
[ 3 ] C.M. Bishop : Pattern Recognition and MachineLearning, Springer-Verlag 2006.
[ 4 ] K. Brinker : Incorporating Diversity in Active
Learning with Support Vector Machines, In Proc.
20th ICML, 2003.
[ 5 ] T.Y. Chen, S.C. Chung, and S.M. Yiu : Metamorphic Testing - A New Approach for Generating
Next Test Cases, HKUST-CS98-01, The Hong Kong
University of Science and Technology, 1998.
[ 6 ] S. Nakajima and H.N. Bui : Dataset Coverage
for Testing Machine Learning Computer Programs,
In Proc. 23rd APSEC, pp.297-304, 2016.
[ 7 ] E.J. Weyuker : On Testing Non-testable Programs, Computer Journal, 25 (4), pp.465-470, 1982.
[ 8 ] X. Xie, J.W.K. Ho, C. Murphy, G. Kaiser, B.
Xu, and T.Y. Chen : Testing and Validating Machine Learning Classifiers by Metamorphic Testing,
J. Syst. Softw., 84(4), pp.544-558, 2011.
[ 9 ] X. Zhu : Machine Teaching: An Inverse Problem to Machine Learning and an Approach Toward
Optimal Education, In Proc. 29th AAAI, pp.40834087, 2015.