ニューラルネットのホワイトボックステスト

こちらを読んでいて、理解したことを書いておきます。

この論文は、車や航空機の世界で有名なMC-DCカバレッジからインスパイアされて書かれたもののようです。

Sign change

特定のニューロンの値がPositiveからNegativeまたはその逆になるようなテストデータの組合せのこと


Value change

特定のニューロンの値が一定の幅を超えて変化するようなテストデータの組合せのこと


Sign-Sign coverage(SS coverage)

一つ前の層の特定のフィーチャの変化が次の層のフィーチャの変化に「独立して」影響を与えている、ということをテストしているようです。この「独立して」というのが大事みたいで、MC-DCと関連しているポイントだということです。

具体的には、特定のニューロンに対してSign changeとなる、かつ、他のニューロンに対してSign changeとならないテストデータであって、次の層のニューロンにSign changeが起こすテストデータ、だということです。一つだけSign changeを起こす、というのが「独立」を意味していると思われます。


Sign-Value coverage(SV coverage)

ここら辺からは応用編で、SS coverageと同じように独立したSign changeを与えた場合に次の層にValue changeが起きるようなカバレッジです。Value changeの方は少し条件が厳しく、non-sign changeである必要があるようです。


Value-Sign coverage(VS coverage)

SV coverageの逆ですね。Value changeかつnon-signである変化で、次の層にSign changeが起きる、というものです。


Value-Value coverage(VV coverage)

もうわかりますね。Value changeかつnon-signである変化で、次の層にValue changeかつnon-signが起きるものです。


考え方自体は面白いな、と思います。でもこれがニューラルネットワークが実現するシステムの良しあしを決定づけるものではないんだろうな、と思います。ただ、コードのホワイトボックステストも同じことが言えるので、あとはこれをやることでどれぐらい品質に寄与するのか、で実施するかどうかを判断すべきでしょう。


この記事が気に入ったらサポートをしてみませんか?