機械学習とは何か? このビデオではこの定義を行い、さらに どのような場合に機械学習を使えるかの概要をお話します。機械学習の 実践者の間でも、何が機械学習で何がそうでないかの定義は よく定まっていません。しかし、いくつかこの定義を 試みた例を見てみましょう。これは機械学習とは何かという定義として アーサー・サミュエルが提唱したものです。彼は、機械学習を コンピュータに明示的にプログラムすることなく学習する能力を与える研究分野だと定義しました。サミュエルが有名な 理由は、1950 年代に、チェッカーゲームのプログラムを書いたことです。そして このチェッカーゲームのプログラムの驚くべき点は、アーサー・サミュエル自身は あまり上手なチェッカープレーヤーではなかったことです。しかし、彼は、プログラムが自身を相手に 数万回ものゲームを行わせたのです。そしてどのような ボードの配置が勝つ傾向があって、どのようなボードの配置が負ける傾向にあるかを 見ることにより、チェッカープログラムは、やがて、どれが良いボードの 配置でどれが悪いボードの配置かを学びます。そして、ついには アーサー・サミュエル自身よりもチェッカーをうまくプレイするように学びました。これは、注目すべき結果でした。 サミュエル自身はさほど上手なチェッカープレーヤーではありませんでしたが、コンピュータには 自分で数万回ゲームを行う根気があります。 それほど多くのゲームをプレイする根気のある人間はいません。これを行うことにより、コンピュータは チェッカーのプレイ体験を極めきり、最終的に アーサー・サミュエル自身より上手なチェッカープレーヤーになりました。これは多少、非形式的な 定義ですし、やや古くもあります。ここに、ややより最近の定義で、 トム・ ミッチェルが提唱したものがあります。彼はカーネギー・メロン大からの友人です。トムは、次のように機械学習を定義します。 適切に提起された学習問題は以下のように定義される。 コンピュータ・プログラムは、ある課題 T について、 ある性能基準 P に基づき、もし T についての性能が基準 P で測定して、経験 E と共に改善している場合に、 経験 E から学習したと言うことが出来る。実は私は彼がこの定義を考えたのは、単に韻を踏むためではないかと 疑っています。チェッカーゲームの例でいきますと、経験 E は 数万回もプログラムにゲームを自己を相手にプレイさせた経験となります。 課題 T は、チェッカーのプレイです。そして性能基準 P は、 新たな対戦者に対して次のチェッカーのゲームで 勝つ確率でしょう。こうしたビデオを通して、私が講義するだけでなく 私から皆さんに質問を出して皆さんが内容を理解しているか 確認します。これがその一つです。一番上に、トム・ミッチェルによる 機械学習の定義があります。例えば、電子メールプログラムが、どの電子メールをユーザーがスパムとしてフラグを立てるかどうか を見ているとします。このような電子メールクライアントでは、スパムボタンをクリックして 特定の電子メールをスパムとして報告しそれ以外は報告しません。そして、どの電子メールをスパムとして報告するかにより、 電子メールプログラムがスパム電子メールをより正確にフィルターするように学習します。この場合の 課題 T は何でしょうか? 数秒後に、ビデオが停止します。その時に、 マウスを使って 4 つのラジオボタンから一つを選び、 この質問に対してどれが正しい答えか私に知らせることが出来ます。 これが正しい答えとして選んで頂けたかと思います。「電子メールをスパムと非スパムに仕分ける」が課題 T です。事実、この定義では、課題は性能基準 P と 経験 E と合わせて定義されます。よって、「ユーザーがスパムと非スパムにラベル分けするのを見る」は経験 E 、そして「正しく分類された電子メールの比率」は 性能基準 P となります。そして、 課題 T に対するシステムの性能は、性能基準 P に照らして、 経験 E の後で改善されることになります。このクラスでは様々な種類の 学習アルゴリズムについて講義していきたいと思います。学習アルゴリズムにはいくつかの種類があります。 主な二つの種別は、いわゆる教師あり学習と教師なし 学習です。これらの用語の意味については、次回以降のビデオで定義していきます。しかし 教師あり学習の発想は、コンピュータに 何かするやり方を教える、ということです。一方、教師なし学習では、コンピュータが 自分で学ぶのに任せるということです。この二つの用語の意味が分からなくても心配しないでください。 二回目以降のビデオでこの二種類の学習が何かについて詳しく説明します。 また他の流行語、例えば強化学習やレコメンダー システムなどについても触れます。これらは他の種類の機械学習アルゴリズムで、後の講義で触れることになりますが、 しかし、最もよく使われる学習アルゴリズムのうちの二つは、おそらく 教師あり学習と教師なし学習で、これらについては次回以降の ビデオで定義していきます。また、このクラスの大部分は、この二種類の学習アルゴリズムについて 費やすことになります。それ以外にこのクラスで時間を費やす ことになるのは、学習アルゴリズムの適用に関する実践的なノウハウです。これは 私が特に重要だと考えることで、また、他の大学では 必ずしも教えていないのではないかと考えることです。学習 アルゴリズムについて教えるのは、道具を与えるようなものですが、それと同等か、それ以上に 重要なのは、道具を与えるだけでなく、それをどのように使うかを教えることです。私が好きな 学習の類例は、大工になることです。誰かから 大工になるために教えてもらっていると想像してください。これが金槌で、これがネジ回しで、 これがノコギリで、後は頑張ってね、と言われたとします。これは良くないですよね? こうした道具はあっても、もっと大事なことは、 こうした道具を正しく使う方法を学ぶことです。ここには大きな違いがあります。 機械学習アルゴリズムの使い方を知っている人と こうした道具の使いかたを知らない人とでは。私が住むシリコンバレーでは、 様々な企業を訪問すると、たとえシリコンバレーの大手企業であっても、私がよく見かけるのは、 人々がある問題に機械学習を適用しようとしていて、 時にはそれに 6 ヶ月も費やしているケースです。しかし、 私が彼らのやっていることを見ると、時には、あれまあ、 6 ヶ月前の時点で、選択した学習アルゴリズムを 適用するのに、少しだけやり方を変えていれば、成功率が 格段に良くなると言えたのに、と思うことがよくあります。ですから、このクラスでは、実際にかなり時間を割いて お話しするのは、いかに、機械学習システムを実際に開発しようとする場合に、 いかにベストプラクティス的な決断を システムを構築する際に行い、学習アルゴリズムを適用する際に、 6 ヶ月もあるやり方を追求したあげく、誰か別の人に そのやり方は最初から全く実現の可能性がなく、 6 ヶ月は時間の無駄だったと見破られてしまうことのないようにするためです。ですから、実際にかなりの時間を かけてこうした種類の機械学習と AI のベストプラクティスについてと いかにこうしたものを実際に稼動させるか、どうやるか、 シリコンバレーや世界中ののトップレベルの人たちがどうやるか、について教えていきます。皆さんにぜひこうしたトップレベルの人達に加わって、 本格的な機械学習および AI システムを設計し構築してもらいたいと思います。ということで、 これが機械学習で、これが私が教えていきたい主要なテーマです。次の ビデオでは、教師あり学習とは何かを定義し、そしてその後で、 教師なし学習とは何かを定義します。また、どのような場合にどれを使うかについてもお話していきます。