機械学習 はじめよう

第1回 機械学習 ことはじめ

この記事を読むのに必要な時間:およそ 3 分

連載の構成

ここまでは,機械学習を知らない人にはじめてみたいと思ってもらう話でした。この連載では次回以降,機械学習とはどんなものかを「理論編」「実践編」に分けて紹介していきます。

「理論編」は本稿の著者である中谷が担当します。なぜそういう概念を考えるか,それを使って何ができるか,という動機につながる部分に重きをおいて,機械学習の様々な技術を紹介します。筆者自身も機械学習を学び始めてまだ日が浅いので,一緒に学んでいく部分も多いのですが,その分,初学者が引っかかりやすいところなどを伝えていけると思っています。

「実践編」は本連載もう一人の著者である恩田さんの担当です。サンプルデータにしたがって計算したり,実際に機械学習を行うコードを実装したりします。交互に掲載される「理論編」の内容について,手を動かすことでより理解してもらうのが狙いです。

機械学習をしっかり紹介するには数学の知識や数式を避けては通れません。どうしても必要とする前提知識は多くなってしまいます。

中でも線形代数(行列)と解析(微積分) は必須です。これらは本連載では説明しませんので,必要に応じて書籍などで別途勉強してください。参考になりそうなページを紹介します。

数学の書籍も数多くありますが,読みやすいものが良ければ以下の2冊がよいかもしれません。

  • 『プログラミングのための線形代数』オーム社
  • 『プログラミングのための確率統計』オーム社

線形代数は行列式,固有値まで知っていればひとまず安心です。解析は偏微分が分かれば大丈夫でしょう。

そして確率統計をとてもよく使います。こちらは連載の第2回で必要な範囲のおさらいをしますので,高校2年生レベルの確率(期待値,分散,標準偏差など)が分かっていればOKです。

機械学習の流れ

今回は連載の第1回なので,もう少し機械学習の全体的なお話,機械学習はどのような流れで行われるのか,という基本的な構成について紹介します。次回から始める具体的な内容も,この基本構成の中に位置づけて考えると,その役割が分かりやすくなるでしょう。

機械学習でもっとも重要なことは,⁠解決したい問題を数値化する方法」です。これを「モデル」と言います。⁠モデル」があって初めてコンピュータが問題を解く(判断する)ことができる状態になります。そして,問題を解く精度や性能は,この「モデル」の良し悪しで大部分決まってしまいます。

「問題を数値化する方法なんていくらでもありそうだけど?」という疑問を持たれるかもしれません。実際,自然言語処理・パターン認識・人工知能などの分野ごとに,問題を解くのにより適した「モデル」やその派生が毎年提案されて続けていて,⁠モデル」の流行り廃りもあったりします。毎年新しい携帯電話のモデルが出るような感じでしょうか。

機械学習を研究するのではなく,使いたい私達は,そういった「モデル」の中で評価の定まったものを利用させてもらうことにしましょう(新しい「モデル」に飛び付くのもかまいませんが,最新「モデル」はとても難しいです……)⁠

さて,これらの「モデル」はみなパラメータを持っていて,パラメータを決めることで適切な判断ができるようになります。このパラメータをデータから決める処理を「学習」「推論」と言います。

パラメータの数や種類は「モデル」によって様々です。パラメータが多い「モデル」は表現力が高い(≒問題をより精密に数値化できる)ので,新しい「モデル」ほどパラメータが多い傾向にあります。

もちろん,パラメータが多いほど「学習」は難しくなりますので,多ければいいというわけでもありません。⁠学習」ではデータから効率よくパラメータを決める必要があります。そのパラメータを決めるなどの具体的な処理の手順が「アルゴリズム」です。

ちなみに,特にこのパラメータを決める「アルゴリズム」や処理の一部を指して「最適化」と呼ぶこともあります(プログラミングの「最適化」とは違います)⁠

「モデル」⁠学習」⁠アルゴリズム」を,それぞれのものとして紹介しましたが,実際には「モデル」を決めた時点で「アルゴリズム」なども使えるものが決まってしまい,それらは不可分なことが多いです。

そのため,よい「モデル」の一番の条件は,よい「アルゴリズム」があることになります。この「モデル」は人間の判断力に匹敵する精度を誇りますが,パラメータの学習に10年かかります,では意味がないですからね。

機械学習をはじめよう!

今回は概説的なお話でしたが,次回はいよいよ具体的な内容,機械学習に必要な確率の解説をします。

AI(人工知能)という言葉が生まれて,まだ50年と少し。機械学習はその人工知能の関連分野として体系化が始まった,若くて熱い分野です。しかしながら,機械学習はまだまだマイナーな技術です。

ここ5年10年の間に幅広い分野で適応が始まったという話をしました。これはコンピュータの処理能力の向上に負う部分も多いですが,実は「今まで知らなかった」⁠誰も使えるとは考えてなかった」という単純極まりない理由も少なくありません。

特にデータが増えるほど,コンピュータが速くなるほど,機械学習に有利な状況になっていきます。それでもまだ「知らなかった」⁠考えてなかった」と言っていて大丈夫でしょうか。

機械学習とインターネットとの距離はとても近いのです。この連載で,広く機械学習を知ってもらい,本格的に学ぼうと思うきっかけになれば幸いです。あなたも機械学習をはじめまてみませんか?

著者プロフィール

中谷秀洋(なかたにしゅうよう)

サイボウズ・ラボ(株)にてWebアプリ連携や自然言語処理を中心に研究開発を行いながら,英単語タイピングゲーム iVocaをサービス提供している。

URLhttp://d.hatena.ne.jp/n_shuyo/
Twitterhttp://twitter.com/shuyo