
拓海先生、最近部下から「ワンクラスの能動学習」って話が出てきたんですが、そもそもワンクラス分類って何ですか。うちみたいに不具合の事例が少ない場合に関係するんですか。

素晴らしい着眼点ですね!ワンクラス分類(one-class classification)とは、通常の分類で複数のクラスがある代わりに、正常やターゲットだけを学習して「それ以外」を検出する手法ですよ。製造現場の不良検知にぴったり使えるんです。

それは理解できそうです。能動学習(active learning)は人にラベル付けを頼む量を減らす仕組みだと聞きましたが、ワンクラスだと何が難しいんでしょうか。

よく聞いてください。通常の能動学習は正反対の例、つまり複数クラスがある前提で「どのサンプルを聞けば学習が進むか」を選ぶんです。しかしワンクラスは負例がほとんどないため、どれを問い合せると効率よく学べるかが見えにくいんです。身近な例で言えば、正常品だけ大量にある倉庫で“珍しいもの”を効率良く見つける方法を探すようなものですよ。

その論文では二つのワンクラス分類器を組み合わせると言っていますが、これって要するに片方が正常を、もう片方が異常を学ぶようにして互いに補うということですか。

その理解はほぼ正しいですよ。ポイントは三つあります。第一に、一方はターゲット(正常)を増やしながら学び、もう一方は認識できた異常候補を使って別のワンクラスを学ぶ点。第二に、それぞれの判断値を合算して「最も情報量が高いサンプル」を選ぶ点。第三に、この方式は特定の仮定に依らず比較的汎用的に使える点です。要点は短く言うと「二つの視点で疑わしいものを探す」戦略ですよ。

実務的にはラベルを付ける人間(オラクル)のコストが問題です。我が社で導入した場合、工数はどのように減るのでしょうか。

懸念はもっともです。実際の効果はデータ構成次第ですが、この方法は「ラベル付けする価値が高いサンプル」を優先的に選ぶため、同じラベル件数でも学習効率は上がります。端的に言えば、無駄に多数のサンプルに確認を求めるよりも、重要なものを少数選んでラベル化するのでコスト効率が良くなるんです。

技術的な導入面での障害はありますか。OCSVM(one-class support vector machine)など既存の手法がベースと聞きますが、我々の現場に無理なく入りますか。

大丈夫、一緒にやれば必ずできますよ。OCSVM(one-class support vector machine、ワンクラス支持ベクトルマシン)のような既存モデルを使うため、最初から大量の新開発は不要です。要点は三つ。導入は段階的にできる、ラベル付けは最小化できる、モデル再学習はラベル追加ごとに行うだけでプロセスは単純です。まずはパイロットで効果を確認しましょう。

なるほど。これで社内会議で説明できそうです。要点を自分の言葉で確認すると、「二つの視点で疑わしいデータを選んで、少ないラベルで性能を上げる方法」という理解で合っていますか。

完璧です。大丈夫、先生ではなくても説明できるようになりますよ。最初は小さく試して評価し、結果をもとに拡張するという流れで行きましょう。


