2015年6月17日水曜日

数式を使わずに「機械学習とは何か」を説明する

今回は数式を書かないので安心してください

最近流行している「機械学習」は人工知能の研究が源流の一つとなっています。他の分野、例えば統計学とも関わりがありますが、今回は人工知能 (AI)との関連から、機械学習とは何なのかということを説明したいと思います。機械学習のことを全く知らない、統計学など関連する分野の知識もないと言う人に説明することを想定しているので、数式は使いません
唐突に「人工知能」という言葉が出てきましたが、ここでの人工知能とは「ターミネーター」とか「2001年宇宙の旅」といったSF映画に出てくるような、完全に人間の人格を再現したもの、人類に反旗を翻すような恐ろしいもののことではありません。「知能」とは大きく2つに分類できます。1つは「論理的な思考能力」で、もう1つは「感情」です。現在はまだ後者を持った人工知能は作成されていません。将棋やチェスの対戦プログラムなど、限定的な場面でのみ論理的思考力としての「知能」を発揮できるものしか存在しません (不幸か幸いか、チャペックの戯曲にでてくるような、人間の労働を完全に肩代わりしてくれる「万能ロボット」はまだ存在しません)。今回は、単に「人工知能」と言ったら前者の人間の論理的な思考能力の部分だけを再現した人工知能 (いわゆる、「弱い人工知能」) のこととして説明します[1]

機械学習とは

学習と予測

まず、論理的な思考の例を挙げます。目の前にこんな果物があるとします。これがリンゴかどうかを判断してください。
(c) Abhijit Tembhekar, CC BY 2.0.
これは赤いのでリンゴです。
では次はどうでしょう。
Apfelfamilie, (c) Reinhard Kirchner, CC BY-SA 3.0.
これらは赤くありませんが、リンゴです。リンゴは個体ごとに色も大きさも異なりますが、共通する点があります。丸くて、頭と尻がくぼんでいます。というわけで、リンゴかどうかは色ではなく形で判断するようにしましょう。
ではこれはどうでしょう。
新高 (c) 氷鷺, GFDL 1.2.
ナシとリンゴを見た目だけで判断するのは難しいです。生物学的にはいろいろ異なる点があるようですが、食べてみればリンゴとナシは食感が違うので「頭と尻にくぼみがあり、シャリシャリした食感の果物」という条件でナシかリンゴか判断できるでしょう。
ここまでの話をわかりやすくするため、ここまで4種類の果物の情報と、そこから判断される答えを表にしましょう
頭と尻にくぼみがある 食感 リンゴか?
O 固い O
O 固い O
O 固い O
O シャリシャリする X (ナシ)
ではここで、もしあなたが果樹園に連れて行かれて、倉庫一杯のナシかリンゴか分からない大量の果物を全て分類してくれ、と言われたらどうすればいいでしょう。食感で判断すればいいのでしょうか。そんな大量のナシとリンゴだと、一口かじるだけでも大変です。そもそも商品を勝手に食べたら怒られます。では生物学を勉強して、遺伝子の違いなどを検査すればいいのでしょうか? それも非常に手間がかかりそうです。
この例では、まず4種類のリンゴやナシのリンゴかどうかを判断できる共通点がないか思考しています。これが「学習」です。その後、果樹園でリンゴかナシかを判断する必要に迫られました。これが「予測」です。「予測」パートでは「学習」パートで発見したルールに基づいて判断をすればできますが、あまりにも作業が膨大なので大変です。そこで疲れを知らない機械にこの判断を任せよう、というのが機械学習です。
機械に判断させるには、先ほどの判断ルール (機械学習の文脈では、このルールを「モデル」といいます) を機械に教える必要があります。ここで、「なんとなくリンゴっぽい」「常識で考えてリンゴ」のような曖昧な判断ルールだと機械は判断できません。「丸くて、頭と尻がくぼんでいる果実がリンゴである」ならリンゴかどうかを判断できます。つまり、我々がふだん日常的に、そして無意識に行っている経験に基づいた判断を、あらためてロジックとして明文化することが機械学習だと言えます。
しかし、一点注意が必要です。ウィキペディアの「機械学習」の項目によると、人工知能の研究者アーサー・サミュエルは機械学習を「明示的にプログラムしなくても学習する能力をコンピュータに与える研究分野である」と規定しています。つまり、人間がこのルールを考えて機械に教えるだけでは「学習」になっていません。「学習」パートも機械 (コンピュータ) がやってくれなければ機械学習とは言えません
学習パートも機械がすることになれば、大量のリンゴとナシで学習ができます。よって、もっと多くの珍しい種類のリンゴやナシについても学習することで、より精緻な判断ルールを見つけ出せるかもしれません。さらに言うなら、判断に必要な情報が膨大になる場合、つまり、先の表の列が、さらに横に数十列とある場合、人間の手作業で分類するのは大変です。よって、機械学習には、人の手を使わず大量に予測 (判断) するだけでなく、新しい法則を発見をする、という副作用があることが分かります。つまり、インサイト (洞察) を機械に補助してもらうということで あり、これもビジネスに機械学習を持ち込む際の大きな利点です。もっとわかりやすくするため、ビジネスでの具体例をもう少し紹介しましょう。
  1. 解約するユーザーの傾向に共通点がないか見つけ出すことで、ユーザーの解約減少につながる施策を導く (KDDI株式会社様の取り組みです。詳しくは SAS Institute Japan 社の事例紹介をご覧ください)。
    具体的にどういう手法を利用したかは書かれていませんが、機械学習の応用でないと解決の難しい課題であることは間違いありません。
  2. 顧客のセグメント分類条件を60項目から7項目にまで集約 (株式会社ジャックス様の取り組みです。 SAS Institute Japan 社の事例紹介より)。
    こちらは「ロジスティック回帰」を使ったとはっきり書かれています。ロジスティック回帰は先ほどのリンゴ分類問題のように、条件に基づいて分類ルールを決めたいときに使われます。リンゴの例では条件がマルかバツか、のような単純なものでしたが、細かい数字で条件付けする場合にはこのロジスティック回帰が適しています。本件は従来の分類ルールよりもより優れたルールの再作成に成功した、ということでしょう。文中ではロジスティック回帰は統計解析手法の1つと書かれていますが、このように分類ルールを作成するのに適しているため、同時に機械学習の手法でもあると言えます。

データマイニングと機械学習

ところで「データマイニング」も機械学習とあわせてよく出てくる単語です。じっさいに使われる手法の多くで共通点がありますが、データマイニングは必ずしも「学習を機械にやってもらう」ことを意味しません[2]。とはいえ、ビジネスの上では、効率よく分類することと、利益につながるような新発見が重要なので、この分類にこだわることはあまり意味がないとも思えます。
じっさいに機械学習を実施する場合、サポートベクターマシン (SVM) や回帰分析といった手法がよく使われます。「リンゴかどうか」の二者択一ではなく、「これはリンゴかナシか、洋ナシか」とか「これはなんという果物か」のようなより複雑な分類の場合は、決定木 (Dicision Tree) という手法が使えます。 「機械学習」とか「人工知能」とか物々しい名称で呼ばれていますが、実際に使われているのは想像されているより素朴で、古典的な技術です (もちろんより高度で複雑な手法の研究は現在もなされていますが、残念ながら機械学習はまだ家事を全てこなしてくれるほど万能ではありません)。

より複雑な問題に

これで機械学習の大まかな理念は説明しました。以下は機械学習の手法についてより細かい、重要な話、興味を引きそうな話を挙げています。

過学習

では, 先ほどのリンゴ分類問題に戻りましょう。 これがリンゴかどうか判断してください。
(http://commons.wikimedia.org/wiki/File:Apple_logo_black.svg)
形はリンゴのようですが、これは食べられません。しかし我々はこれを見てリンゴだと言います。しかしここまでの判断ルールでは、これはリンゴとは判断できません。つまり、学習に用いた情報のうち「食べたときの食感」という判断基準のせいで、食べられない「アイコンとしてのリンゴ」がリンゴでないと判断されてしまいました。これは株価予測モデル作成の記事で書いた過剰適合 (機械学習の「過学習」とほぼ同じ概念です) の話ともつながります。学習に用いた情報がリンゴの全てだと過信すると、特殊なケースの判断を誤ってしまうことがあります。機械学習はあいまいな判断ルールやその場限りなルールを曲げたりすることを認めません。そこで、「過学習を防ぐためのルール」も予め用意します。交叉検証法や、罰則付き回帰 (正則化) と呼ばれる手法です。

より「人間らしい」機械学習

リンゴ分類問題では、「人間が判断するリンゴかどうかの判断ルール」を明文化しました。これは個々の果物に対して、それがリンゴかどうかという「答え」が分かっているのでそれに合わせてルールを決めています。このようなケースに対する機械学習の手法を「教師あり学習」 と言います。これに対して、ときには正しい答えがわかっていないまま判断ルールを決めることが必要とされる場合があります。そのようなケースは「教師なし学習」と呼ばれます。
また、「多腕バンディット問題」というものも面白いテーマです。片側にだけレバーの付いているスロットマシンの姿から、スロットマシンのことを英語では「1本腕の山賊 (バンディット)」と呼ぶことがあります。スロットマシンには当たりやすい台と当たりにくい台があります。しかし当たりやすいかどうかは見た目からは判断できず、コインを投入して遊んでみないと分かりません。しかも1回だけではなく、何回も試さないと本当に当たりやすい台かどうかは分かりません。
今ここで、いくつものスロットマシンが並んでいるとします。どうすればあなたはスロットマシンでより多く儲けることができるでしょうか? 当たりやすい台を選んで遊べばより多く儲けられますが、どれが当たりやすい台かは分かりません。いくつかのスロットを何度も試せば当たりやすい台は見つかりやすくなりますが、コインを多く使うため差し引きの儲けは減ります (ここでは問題を簡単にするため、当たったコインは再利用できないものとします)。一方で山勘で1つの台を選んでも、それが当たりやすい台かどうかは分かりません。ですので、当たりやすい台を見つけるために複数のスロットを試す工程を丁度いいところで切り上げ、当たりやすい台に専念するタイミングを見計らう必要があります。つまり多腕バンディット問題とは、「試行錯誤をしつつ、最も良い方法を探す」ことを機械学習的に実行するという問題で、これはまるで人間の学習そっくりです。このようなタイプの機械学習は「強化学習」と呼ばれます。
あるいは、人間の無数の神経細胞のつながりをそのまま模した「ニューラルネットワーク」という手法もあります。ニューラルネットワークをさらに多層構造にしたものを利用する「深層学習」と呼ばれ、ここ最近話題となっています (参考: Internet Watch 『Google、「DQN」という人工知能を開発、ゼロからゲームをプレイして自力で攻略方法を見つける』)。深層学習が主に応用されるのは情報量が膨大になる画像認識や音声認識分野らしいですが、私はそういう仕事に携わっていないので詳しいことは分かりません。

おすすめ文献

今回の記事を読んで機械学習に興味を持ったという方は以下の文献を読むことをおすすめします。ただし、ここでは機械学習の理論や実装方法に関する本は紹介しません。厳密な理論や実装方法に関しては、すでに多くのすぐれた技術者・研究者の方々がブログやサイトで紹介されていますので、ここでは非専門的な読み物を紹介します。
  1. イアン・エアーズ (2010) 『その数字が戦略を決める』, 文藝春秋社出版, 山形浩生訳, 原著: Ian Ayres (2008) “Super Crunchers: Why Thinking-By-Numbers is the New Way To Be Smart,” Bantman
  2. トーマス H. ダベンポート・ジェーン・G・ハリス (2008) 『分析力を武器とする企業 強さを支える新しい戦略の科学』, 日経BP社, 村井章子訳, 原著: Thomas H. Davenport and Jeanne G. Harris (2007) “Competing on Analytics: The New Science of Winning,”, Harvard Business School Press.
これらの書籍では必ずしも「機械学習」という語では表現されていませんが、「コンピュータを用いて膨大な情報から学習することで一定の法則を見つけ出し、予測に利用する」という点は同じです。

参考文献

以下は記事を書くにあたって参考にした文献です。
Danushka Bollegala (2014)『深層学習入門』, http://www.slideshare.net/bollegala/ss-39065162
Sutton, R. S., & Barto, A. G. (2000). 『強化学習』, 森北出版,三上貞芳・皆川雅章訳, 原著 “Reinforcement Learning,” 1989, MIT Press.
ビショップ, C. M. (2007). 『パターン認識と機械学習 (上): ベイズ理論による統計的予測』, 丸善出版, 村田昇・元田浩・栗田多喜夫・樋口知之・松本裕治訳, 原著 “Pattern Recognition and Machine Learning,” 2006, Springer.
ビショップ, C. M. (2007). 『パターン認識と機械学習 (下): ベイズ理論による統計的予測』, 丸善出版, 村田昇・元田浩・栗田多喜夫・樋口知之・松本裕治訳, 原著 “Pattern Recognition and Machine Learning,” 2006, Springer.

  1. [1] 思考能力と感情を厳密に分けられるのか、といった論争も現在進行中らしいですが、今回は「論理的思考力」をどう人工的に創りだすかと言う観点なので省きます。.
  2. [2] そもそも「データマイニング」ということばがどこまでの範囲を指すのかの明確な定義も実は存在しません。

ネイチャーインサイト サイトリニューアル&NIBLOGの引っ越し

ご連絡が遅くなりましたが、 ネイチャーインサイトの際とがリニューアルしました。 https://www.n-insight.co.jp/ それに伴い、NIBLOGも引っ越しすることになりました。 https://www.n-insight.co.jp/niblog/ ...