あらすじ
5分間だけYouTubeを観るつもりだったのに3時間も見続けてしまったことはありませんか?
この15日間、欲しいと思っていたものの広告がWebページに現れてついに買ってしまったことは?
人が欲しているものをコンピュータが知る方法があるなんて素晴らしいと思いませんか?
これはボット(アルゴリズム・ボット)があなたをいつも見ているからです。
今、この瞬間もです!
どのようにこれらのボットは作られているのでしょうか。
本物のAIの様にふるまうアルゴリズムを用いたブログが出来たのはそう遠い昔の事ではありません。
これがこうならこうしなさい、ああならああしなさい、というシンプルで長いコードはしばらくの間は完璧に機能していました。
今でも日々の活動の中で機能しています。
しかしインターネットでより多くの人がより多くのデータセットを作るようになり、このアプローチはいつでも機能するわけではなくなりました。
なぜなら、いくつかの課題の量は人から教わるには大きすぎるからです。
例をあげて説明しましょう。ここに2枚の絵があります。
1つには犬が、もう片方には数字の5が書かれています。
これは何ですか?と聞かれたら、人間のあなたには犬と5だとすぐに分かります。
しかし機械やボットはどうやって認識するのでしょう?
それには画像をピクセル毎にクロールして、犬の画像の中で通常見られるピクセルのパターンと一致するパターンを見つけ予測する複雑なアルゴリズムを作ることが必要です。
人間の脳では複雑に繋がったニューロン同士が配線され、刻々と学習しています。
同じように私たちは、学習しながら時間と共に進化するパターン認識知能をもった高性能なボットを開発しなければなりません。
どの様に学習するのか?
人間のプログラマーがシンプルな脳を持つ教師ボットとビルダーボットを作ります。
ビルダーボットは学習ボットを組み立て彼らをテストし、その成績により取捨選択します。
教師ボット自身は犬と5を見分けることができませんが、学生ボットがそれを正確に認識するかをテストすることができます。
テストの自動化がなぜ大切なのかお分かりいただけたかと思います。
まず教師ボットに犬と5が描かれた多数の画像、そして何がどちらかの解答を与えておきます。
これを基に教師ボットは学生ボットをテストし成績を付けます。
このテスト結果のデータに基づきビルダーボットはアルゴリズムの順番と組み合わせを調整し、違う学生ボットを作ります。
時には手当たり次第に何が効果的か探っていきます。
そして教師ボットは学生をテストし採点し続け、このサイクルを繰り返していきます。
教師ボットはテストを続け、その成績によりビルダーボットは最も優秀な学生ボットのみを残し他は容赦なく捨ててしまいます。
テスト、組み立て、テストのサイクルを繰り返し、成績がつけられます。
約99.9%の正解率(または成績)を出したボットが作られると、このサイクルは終了します。
このテスト、組み立て、テストの自動サイクルはいったい何回繰り返されるのでしょう?
最高点を出すボットが出来るまで何回でも繰り返されます。
最も優秀なボットは犬と5を判別できる最も優秀なアルゴリズムです。
問題点は?
さて私達は犬と5を判別できる最高のアルゴリズムを手に入れました。
何か問題があるでしょうか?
もしボットに犬の動画や、上下逆さまの5や、5の代わりにSの文字を見せたらボットはそれらを識別できるでしょうか?
答えはNOです。
解決策は?
これを解決するために、より多数の質問がある長い自動化テストケースを用意し、それに学生ボットを合格させる必要があります。
不正解と正解のシナリオも含めれば最悪のケースにも備えることができます。
より長いテストをすれば、より良いボットを作ることができます。
1つのボットに10や20の質問をするのではありません。
何百万という莫大な数の質問をするのです。
どのようにテスト、組み立て、テストの周期は繰り返されるのでしょう?
それにはプロセスを自動化し同じ事をテストし続けなければなりません。
最終的なボットが組み立てられて作動すると、それはアルゴリズムが0.01%他より優れていたために生き残った、たった一つのボットです。
学生ボットのアルゴリズムは教師ボットや、人間の監督、学生ボット自身にも分かりません。ただ機能したのです。
どのようにボットが考えたり機能したりするかは、よく分かっていません。
先ほどのYouTubeの例に戻りましょう。
今はもっとよく理解できるでしょう。
ここで学生ボットに与えられた課題はユーザーの視聴時間を記録することで、最も長時間ユーザーを滞在させた学生ボットに最高点が与えられます。
教師ボットは全ての学生ボットを評価し、学生ボットはユーザーが視聴を続けるためにレコメンデーションを表示し続けます。
最適なレコメンデーションを提案しユーザーの滞在時間を延ばしたものが最も優れたアルゴリズムを持ったボットです。
教師ボットは学生ボットをテストするだけで、学生ボットはテストから学習します。
よってマシンラーニングはテストができるなら、教えることもできると言えるのです。
原文
https://chatbotslife.com/machine-learning-if-its-testable-it-s-teachable-48cb47ff16e0
チャットボットライフとの提携により、翻訳し掲載しています。
チャットボットライフとは、最新のボット、AI、NLP、ツール等を扱うメディアです。