WEBVTT 00:00:00.000 --> 00:00:04.904 機械学習とは何か? このビデオではこの定義を行い、さらに 00:00:04.904 --> 00:00:09.520 どのような場合に機械学習を使えるかの概要をお話します。機械学習の 00:00:09.520 --> 00:00:14.252 実践者の間でも、何が機械学習で何がそうでないかの定義は 00:00:14.252 --> 00:00:18.926 よく定まっていません。しかし、いくつかこの定義を 00:00:18.926 --> 00:00:23.600 試みた例を見てみましょう。これは機械学習とは何かという定義として 00:00:23.600 --> 00:00:28.520 アーサー・サミュエルが提唱したものです。彼は、機械学習を 00:00:31.037 --> 00:00:33.554 コンピュータに明示的にプログラムすることなく学習する能力を与える研究分野だと定義しました。サミュエルが有名な 00:00:33.554 --> 00:00:38.452 理由は、1950 年代に、チェッカーゲームのプログラムを書いたことです。そして 00:00:38.452 --> 00:00:43.603 このチェッカーゲームのプログラムの驚くべき点は、アーサー・サミュエル自身は 00:00:43.603 --> 00:00:48.268 あまり上手なチェッカープレーヤーではなかったことです。しかし、彼は、プログラムが自身を相手に 00:00:48.268 --> 00:00:52.245 数万回ものゲームを行わせたのです。そしてどのような 00:00:52.245 --> 00:00:56.698 ボードの配置が勝つ傾向があって、どのようなボードの配置が負ける傾向にあるかを 00:00:56.698 --> 00:01:00.725 見ることにより、チェッカープログラムは、やがて、どれが良いボードの 00:01:00.725 --> 00:01:04.713 配置でどれが悪いボードの配置かを学びます。そして、ついには 00:01:04.713 --> 00:01:09.514 アーサー・サミュエル自身よりもチェッカーをうまくプレイするように学びました。これは、注目すべき結果でした。 00:01:09.514 --> 00:01:14.535 サミュエル自身はさほど上手なチェッカープレーヤーではありませんでしたが、コンピュータには 00:01:14.535 --> 00:01:19.254 自分で数万回ゲームを行う根気があります。 00:01:19.254 --> 00:01:24.275 それほど多くのゲームをプレイする根気のある人間はいません。これを行うことにより、コンピュータは 00:01:24.275 --> 00:01:29.235 チェッカーのプレイ体験を極めきり、最終的に 00:01:29.235 --> 00:01:33.817 アーサー・サミュエル自身より上手なチェッカープレーヤーになりました。これは多少、非形式的な 00:01:33.817 --> 00:01:38.547 定義ですし、やや古くもあります。ここに、ややより最近の定義で、 トム・ 00:01:38.547 --> 00:01:43.607 ミッチェルが提唱したものがあります。彼はカーネギー・メロン大からの友人です。トムは、次のように機械学習を定義します。 00:01:43.607 --> 00:01:48.819 適切に提起された学習問題は以下のように定義される。 00:01:48.819 --> 00:01:53.843 コンピュータ・プログラムは、ある課題 T について、 00:01:53.843 --> 00:01:58.678 ある性能基準 P に基づき、もし T についての性能が基準 P で測定して、経験 E と共に改善している場合に、 00:01:58.678 --> 00:02:03.764 経験 E から学習したと言うことが出来る。実は私は彼がこの定義を考えたのは、単に韻を踏むためではないかと 00:02:03.764 --> 00:02:08.346 疑っています。チェッカーゲームの例でいきますと、経験 E は 00:02:08.346 --> 00:02:13.253 数万回もプログラムにゲームを自己を相手にプレイさせた経験となります。 00:02:13.253 --> 00:02:17.735 課題 T は、チェッカーのプレイです。そして性能基準 P は、 00:02:17.735 --> 00:02:22.399 新たな対戦者に対して次のチェッカーのゲームで 00:02:22.399 --> 00:02:27.157 勝つ確率でしょう。こうしたビデオを通して、私が講義するだけでなく 00:02:27.157 --> 00:02:32.291 私から皆さんに質問を出して皆さんが内容を理解しているか 00:02:32.291 --> 00:02:36.891 確認します。これがその一つです。一番上に、トム・ミッチェルによる 00:02:36.891 --> 00:02:42.292 機械学習の定義があります。例えば、電子メールプログラムが、どの電子メールをユーザーがスパムとしてフラグを立てるかどうか 00:02:42.292 --> 00:02:47.826 を見ているとします。このような電子メールクライアントでは、スパムボタンをクリックして 00:02:47.826 --> 00:02:53.263 特定の電子メールをスパムとして報告しそれ以外は報告しません。そして、どの電子メールをスパムとして報告するかにより、 00:02:53.263 --> 00:02:59.046 電子メールプログラムがスパム電子メールをより正確にフィルターするように学習します。この場合の 00:02:59.046 --> 00:03:04.290 課題 T は何でしょうか? 数秒後に、ビデオが停止します。その時に、 00:03:04.290 --> 00:03:09.598 マウスを使って 4 つのラジオボタンから一つを選び、 00:03:09.598 --> 00:03:40.190 この質問に対してどれが正しい答えか私に知らせることが出来ます。 00:03:40.190 --> 00:03:45.747 これが正しい答えとして選んで頂けたかと思います。「電子メールをスパムと非スパムに仕分ける」が課題 T です。事実、この定義では、課題は性能基準 P と 経験 E と合わせて定義されます。よって、「ユーザーがスパムと非スパムにラベル分けするのを見る」は経験 E 、そして「正しく分類された電子メールの比率」は 性能基準 P となります。そして、 00:03:45.747 --> 00:03:50.529 課題 T に対するシステムの性能は、性能基準 P に照らして、 00:03:50.529 --> 00:03:55.957 経験 E の後で改善されることになります。このクラスでは様々な種類の 00:03:55.957 --> 00:04:00.933 学習アルゴリズムについて講義していきたいと思います。学習アルゴリズムにはいくつかの種類があります。 00:04:00.933 --> 00:04:05.650 主な二つの種別は、いわゆる教師あり学習と教師なし 00:04:05.650 --> 00:04:10.690 学習です。これらの用語の意味については、次回以降のビデオで定義していきます。しかし 00:04:10.690 --> 00:04:16.028 教師あり学習の発想は、コンピュータに 00:04:16.028 --> 00:04:20.513 何かするやり方を教える、ということです。一方、教師なし学習では、コンピュータが 00:04:20.513 --> 00:04:25.016 自分で学ぶのに任せるということです。この二つの用語の意味が分からなくても心配しないでください。 00:04:25.016 --> 00:04:29.739 二回目以降のビデオでこの二種類の学習が何かについて詳しく説明します。 00:04:29.739 --> 00:04:34.070 また他の流行語、例えば強化学習やレコメンダー 00:04:34.070 --> 00:04:38.621 システムなどについても触れます。これらは他の種類の機械学習アルゴリズムで、後の講義で触れることになりますが、 00:04:38.621 --> 00:04:42.460 しかし、最もよく使われる学習アルゴリズムのうちの二つは、おそらく 00:04:42.460 --> 00:04:46.791 教師あり学習と教師なし学習で、これらについては次回以降の 00:04:46.791 --> 00:04:51.123 ビデオで定義していきます。また、このクラスの大部分は、この二種類の学習アルゴリズムについて 00:04:51.123 --> 00:04:55.720 費やすことになります。それ以外にこのクラスで時間を費やす 00:04:55.720 --> 00:05:00.054 ことになるのは、学習アルゴリズムの適用に関する実践的なノウハウです。これは 00:05:00.054 --> 00:05:04.444 私が特に重要だと考えることで、また、他の大学では 00:05:04.444 --> 00:05:08.167 必ずしも教えていないのではないかと考えることです。学習 00:05:08.167 --> 00:05:12.509 アルゴリズムについて教えるのは、道具を与えるようなものですが、それと同等か、それ以上に 00:05:12.509 --> 00:05:17.616 重要なのは、道具を与えるだけでなく、それをどのように使うかを教えることです。私が好きな 00:05:17.616 --> 00:05:22.413 学習の類例は、大工になることです。誰かから 00:05:22.413 --> 00:05:26.959 大工になるために教えてもらっていると想像してください。これが金槌で、これがネジ回しで、 00:05:26.959 --> 00:05:31.077 これがノコギリで、後は頑張ってね、と言われたとします。これは良くないですよね? 00:05:31.077 --> 00:05:34.799 こうした道具はあっても、もっと大事なことは、 00:05:34.799 --> 00:05:38.927 こうした道具を正しく使う方法を学ぶことです。ここには大きな違いがあります。 00:05:38.927 --> 00:05:43.456 機械学習アルゴリズムの使い方を知っている人と 00:05:43.456 --> 00:05:47.626 こうした道具の使いかたを知らない人とでは。私が住むシリコンバレーでは、 00:05:47.626 --> 00:05:52.328 様々な企業を訪問すると、たとえシリコンバレーの大手企業であっても、私がよく見かけるのは、 00:05:52.328 --> 00:05:56.428 人々がある問題に機械学習を適用しようとしていて、 00:05:56.428 --> 00:06:00.857 時にはそれに 6 ヶ月も費やしているケースです。しかし、 00:06:00.857 --> 00:06:05.121 私が彼らのやっていることを見ると、時には、あれまあ、 00:06:05.121 --> 00:06:09.714 6 ヶ月前の時点で、選択した学習アルゴリズムを 00:06:09.714 --> 00:06:14.470 適用するのに、少しだけやり方を変えていれば、成功率が 00:06:14.470 --> 00:06:19.648 格段に良くなると言えたのに、と思うことがよくあります。ですから、このクラスでは、実際にかなり時間を割いて 00:06:19.648 --> 00:06:23.523 お話しするのは、いかに、機械学習システムを実際に開発しようとする場合に、 00:06:23.523 --> 00:06:27.596 いかにベストプラクティス的な決断を 00:06:27.596 --> 00:06:31.321 システムを構築する際に行い、学習アルゴリズムを適用する際に、 00:06:31.321 --> 00:06:35.394 6 ヶ月もあるやり方を追求したあげく、誰か別の人に 00:06:35.394 --> 00:06:39.373 そのやり方は最初から全く実現の可能性がなく、 00:06:39.373 --> 00:06:43.515 6 ヶ月は時間の無駄だったと見破られてしまうことのないようにするためです。ですから、実際にかなりの時間を 00:06:43.515 --> 00:06:47.707 かけてこうした種類の機械学習と AI のベストプラクティスについてと 00:06:47.707 --> 00:06:52.052 いかにこうしたものを実際に稼動させるか、どうやるか、 00:06:52.052 --> 00:06:56.143 シリコンバレーや世界中ののトップレベルの人たちがどうやるか、について教えていきます。皆さんにぜひこうしたトップレベルの人達に加わって、 00:06:56.143 --> 00:06:59.905 本格的な機械学習および AI システムを設計し構築してもらいたいと思います。ということで、 00:06:59.905 --> 00:07:04.698 これが機械学習で、これが私が教えていきたい主要なテーマです。次の 00:07:04.698 --> 00:07:09.023 ビデオでは、教師あり学習とは何かを定義し、そしてその後で、 00:07:09.023 --> 00:07:13.757 教師なし学習とは何かを定義します。また、どのような場合にどれを使うかについてもお話していきます。