tech

正解データが準備できないとき、どう機械学習させるか

こんにちは。管理人です。
訳あって、昨年は記事更新ができませんでしたが、今年は書いていこうと思います。

ここ数年で、生成AIは格段に進歩し文字ベースの自動応対をはじめとして静止画や動画等も専門知識なく一定のクオリティの作品を取得できるようになりました。
そのため、いよいよ機械が人間の代行もできるかと思いきやまだまだそこには至れてないのが現状です。
今回は、管理人が昨年から挑んで持ち越している正解がないデータと関連タスクをいかにして機械に任せるかについて、どのような課題があるかに書いてみようと思います。
あらかじめお断りとなりますが、思索ベースの内容となりますので、生成AIを用いた新たな知見などではないことをご了承ください。

機械学習の種類

機械学習の分野では実行させたいタスクに関する正解が必要となることが大半です。
機械学習のパターンは大きく分けて、教師あり学習、教師なし学習、強化学習があります。
教師あり学習の代表的なパターンでは、MNISTなどの数値画像の識別となります。これは数値の画像データの正解となるラベルを振っておいて、そのデータを学習させます。
実際に解かせたいタスクは、正解を振っていない画像ファイルを、学習済みのモデルに入力し、それが何の数値かを当てさせます。
教師なし学習は、正解となるデータによる学習は行わず、入力したデータをいくつかの分類に振り分けることなどに用います。
正解がないため、制度評価などはできませんが入力したデータがどのような構造や特徴を持つのかを読み解くために使います。
強化学習は、正解こそ与えられませんが試行錯誤ごとにその行動に対して報酬が与えられ、報酬を高く得る行動を学習します。
たとえば迷路が与えられた時、ゴールにたどり着くよう試行すれば報酬を得ますが、たどり着けない場合は負の報酬を与えます。

学ぶために必要な正解がない

管理人が悩んでいる課題について、もう少しお話しします。
今回、正解がないデータと関連するタスクについて機械に任せたいと思っています。
具体的には、普段人間の手で仕分けている数百万の大量のログを自動で分類したいと思っています。
これらはあまりに大量のため、正解をつけることが困難です。
よってとりうる手段としては、教師なし学習が第一候補となりますが、分類した結果が正しいかは前述のとおりわかりません。
次の選択肢となるのは強化学習ですが、報酬を与える方向がわからないので、学習ができません。
ここで躓きました。
本来なら教師あり学習が最も実現したいタスクを精度よく達成できるはずです。
しかしのそのための正解を得るコストが大きすぎます。
既存技術などはどうしているかというと、技術というよりお金をかけて人海戦術しているようです。
例えば、画像を人間が見てそれが何を表しているか正解をラベル付けする仕事があるようです。
残念ながら、管理人にはそのお金がありません。また上記のログの仕分けには専門的な知識も必要であり、仮にお金があったとしても一般の方に依頼ができません。

解決に向けて試したこと

前提の確認

ここで課題を再度振り返ります。課題は「正解ラベルがない状況で未知の大量のデータを分類する」ことです。
管理人が重きを置いているのはどちらかというと後段の分類です。
分類さえ正しくできれば、正解ラベルは不要です。
そこで正解ラベルなしで何とか分類する方法がないかを検討しました。

教師なし学習の適用

現状はこれらの大量のデータを手動で分類している以上、データ中には何らかの分類のための基準や構造が存在しています(そうでないと人間が分類できない)
そのため、この基準や構造をまず何らかの形で明らかにできれば、それをモデル化できるのではないかと考えました。
これは教師なし学習に近いアプローチだと考えています。
実際に試したところ、これらの大量のデータの間には、時間的な差分やメッセージの類似性で分類の基準があるように見えました。
ただし、抽出した基準は単体で期待した分類ができるものはなく、組み合わせが必須となりました。
また、一部データを予備実験として無理を言って専門家にラベル付けしてもらった結果と比較すると、抽出した基準の組み合わせはケースによって組み合わせの条件を買えざるを得ないように見えました。
まとめると、基準のようなものはあるが組み合わせが必要で、しかも場合によってその組み合わせが異なる、ととても自動で発見するのは困難な状態です。
加えて、ラベル付けしてもらったデータは全体のごく一部で、まだまだパターンも多いとのこと。条件の解明にはまったくもって足りません。

今後のアプローチ

精度の評価

教師なし学習には、管理人が挑んでいるデータでは分類が困難なことがわかりました。
やはり正解ラベルが必要なのでしょうか。少なくとも正解ラベルがないと、分類の精度は評価できません。
しかし、ラベル付けはコストがひどい。数百万のデータを一つ一つラベル付けするのは正直厳しい。
ではどうするか。
人間の稼働には限界があるので、現状ラベル付けは困難です。
なので、ラベルなしで当面は挑む予定です。前提として分類の正確な精度評価はあきらめる必要があります。
ただ、分類のざっくりとした評価ならば人間に頼めないか、とおもっています。
つまり、すべての結果の正確な目視確認はかなりのコストになるが、ざっくりとした確認ならいったん人間でも耐えられるのではないかと。
現状これが落としどころだと思っています。

分類の方法

精度の評価の話を先にしてしまいましたが、まずはある程度の妥協をすることにします。
精度評価において、機械任せにせず人間の協力を取り入れる。
そして、評価するための分類結果を出力する方法ですが、こちらも同じように妥協することにします。
教師なし学習で試す限り、対象とする大量のデータには何らかの分類の基準があることは確かです。
現在は人間の頭の中にその基準の組み合わせ条件が入っているため、これらを自動的に吐き出させられればベストですが、困難です。
そのため、妥協案はこの人間の頭のロジックに近い基準の組み合わせをシンプルに一つ実装することだと思っています。
当然すべてをカバーできないため、誤った分類も出てきますが、ゼロではありません。
いったん出力できれば、評価もできるようになるので、そこからたすべき基準の組わせを追加していくようなアプローチを考えています。

おわりに

正解ラベルがないデータの分類について、考えてみました。
もう少し問題の整理は必要かと思いますが、必ずしも正解が必要ないのではないか、というところを考えました。
欠点として、人間の稼働が必要であることと、正確な精度評価ができないことが残っていますが、まずはゼロではなくなったことが重要だと思ってます。
引き続き試していきたいと思います。

-tech
-,