機械学習コードのテストの話.通常のソフトウェアのテストとどのように違うのか,なぜモデルのパフォーマンスを評価するだけでは十分ではないのかを解説した記事.

テストはデータを処理する関数やクラスのメソッドを簡単に確認する程度しか書いたことはあるが,モデルのテストはないので,知見を得るためにもOSSのテストツールであるDeepchecksの記事を読んで勉強する.

Problems With Testing Machine Learning Models

通常のソフトウェアでは,テストを書くことで,品質保証と不具合やバグの特定を行うことができるが,機械学習モデルのテストの課題として,ここでは5つ挙げている.

Difference Between Machine Learning Model Evaluation and Testing

機械学習モデルの性能評価だけに頼っていて,テストができていないと指摘.性能評価ではモデルの具体的な動作についてはわからない状態にある.

これらの問題を避けるためにも,モデルをテストする必要があったり,特定のモードに対してモデル劣化をトラッキングできるようにする.

サブセットテストはなかなか手が回ってないなーと感じる.データセット全体もしくは,CVでホールド切った部分だけしか精度測れていないので,特定のカテゴリーorグループに対してのテスト結果を測れていない.開発スピードとかの判断もあるけど,もう少し丁寧にモデルの精度を検証するのがベターかなと思う.

Principles and Best Practices in Machine Learning Model Testing

ここでは,ソフトウェアテストにおいて確立されたベストプラクティスに従うことが重要であると述べられている.