二点を通る直線の式の先にある技術 第0回

リンクは記事が公開され次第随時更新します。

二点を通る直線の式を求める方法は中学校で習いました。今回、数回の投稿に分けてこの二点を通る直線の式から話を広げていき、プログラミング(python)も導入し、人工知能・機械学習の理解までつなげていきます。数学が苦手な方でもプログラミング未経験でも理解できるように説明します。第0回としまして、今回は動機付けを行います。

全体の概要

人工知能や機械学習の昨今の盛り上がりにより、界隈の研究者以外からも注目を集めるようになりました。すでに人工知能や機械学習を搭載したサービスがいくつも世に出ており、その技術の重要性については言及するまでもないでしょう。前振りで人工知能・機械学習の理解と書きましたが、この投稿をすべて読めば機械学習の回帰の中の線形回帰について理解できるようになると思います。

回帰や線形回帰が人工知能・機械学習においてどのような位置にあるのかを説明します。機械学習の分野は大きく以下の4つに分類することができます。

  • 分類
  • 回帰
  • クラスタリング
  • 次元削減

他にも囲碁で一躍有名になったAlphaGoでおなじみの強化学習がありますが、あれは少し特殊なので説明は割愛します。

教師あり学習と教師なし学習

基本的には、分類と回帰が教師あり学習でクラスタリングと次元削減が教師なし学習です。教師あり学習・教師なし学習の話について少しだけ説明しておきます。

教師あり学習というのは事前に入力と正解のセットをプログラムに学習させ、それをもとに未知の入力が来た時の正解を予測するものです。iPhoneに自分の顔画像を覚えさせておき、他人の顔画像が入力されたときはロックを解除しないようにするのは教師あり学習です。教師なし学習ではそういった登録の作業を行いません。データの構造を解析します。顧客情報を収集し、同じような嗜好の人ごとにまとめ上げるようなものは教師なし学習です。教師なし学習では同じような嗜好であるということはわかりますが、それがどういった嗜好なのかはわかりません。例えば、AさんとBさんはともにテントなどのキャンプ用品を買っている場合、同じような嗜好であると判断できますが、彼らがアウトドア派であるということは判定できません。そういった判定を行いたいのであれば、キャンプ用品を買う人はアウトドア派であると教師あり学習で教える必要があります。

機械学習の4つの手法

ここでは、4つの手法について簡単に説明します。

分類

分類は与えられた入力がどんなものかを答える問題です。顔認証システムで、入力された顔画像が登録されているかいないかを判定するような問題はこれにあたります。判定できるのは入力がAであるか、Bであるか、Cであるかといった種類(クラスといいます)です。OCRもどの文字かという種類をあてる問題なので、分類になります。

回帰

回帰も与えられた入力がどんなものかを答える問題です。顔画像が入力されたとき、その人の年齢が何歳か答えるという問題があてはまります。分類との違いは出力が数値(連続値)であることです。1歳である、2歳である、3歳であるといったカテゴリを作って無理やり分類することもできますが、そうするとたいてい不都合が起こります。カテゴリを作ってしまうと、1歳が正解のとき2歳と間違えた場合も、30歳と間違えた場合も同じ間違いになってしまいますが、回帰問題であれば1歳と2歳で間違えた方がより惜しいということを考慮することができます。

クラスタリング

クラスタリングは入力をいくつかのグループに分ける問題です。グループに分けるという点で分類と混同してしまうかもしれませんが、クラスタリングは教師なし学習なのでクラスを判定することはできません。入力データに対してこれとこれは同じ、これとこれは違うといったグループ分けをするのみです。分けるべきグループの数は、手法によって自動的に計算されることもあれば、3個に分けなさいなど外から与える必要がある場合もあります。これを買った人はこちらの商品も…という推薦はこの技術を応用しています。

次元削減

次元削減は回帰や分類、クラスタリングと組み合わせ、その前処理として行われることが多いです。かなり脱線してしまうので割愛しますが、計算量を抑えたり次元の呪いによる悪影響を抑えたりします。また、次元圧縮で2次元や3次元まで圧縮すると高次元のデータを可視化することができます。次元と聞くとピンと来ないかもしれませんが、画像認識ならば画素数のことを次元といいます。4KのRGB画像だと約2654万次元‬(横幅4096×縦幅2160×3色)になります。こうした画像が大量にあるとき、次元圧縮し3次元で表せばデータ全体の構造が一目でわかります。(さすがに4K画像を3次元にするのはやりすぎですが…)

回帰の位置づけ

scikit-learnのcheatsheetにおける回帰

上の図はpythonの機械学習パッケージとして有名なscikit-learnから引用したものです。赤丸で示した部分が回帰です。回帰は機械学習の4つの手法のうちの一端を担っており、この図によればデータが50以上あり、予測するものがであるのならばそれは回帰で解くべき問題となります。線形回帰は回帰の中でも基本的なもので、これを抑えていればリッジ回帰、ラッソ回帰、SVR等の理解に役立つと思います。

まとめ

次の記事から、人工知能・機械学習分野の中でも重要な手法の一つである回帰を中学数学の知識から徐々に広げて説明していきます。ついでに、一部ですがプログラミングの考え方についても理解できるように工夫します。この記事を読んで少しでも興味を持っていただけたなら次の記事もぜひご覧ください。

コメント

タイトルとURLをコピーしました