で書いたことを1つずつ掘り下げていこうと思います。今日は「2. 〇〇学習」
機械学習をやっているととにかく〇〇学習という言葉が溢れ、AIと機械学習との違いも曖昧模糊としている。学び出した初期にかなり悩みました。
まず、人工知能と機械学習の位置付けですが、これがこれではっきりしない。なんせ人工知能学会のページ
をご覧いただくとわかると思いますが、別に住所が決まっっているわけではない。さらにAIマップなるものがあり、
こんな感じ。ビジネスでも使いそうなわかりやすいものに「ルールベース」がある。
if then で表せるような「ルール」で処理していく。こんなのが人工知能かよ、と思われるかもだけど世の中の全てをif thenで表していけば、少なくとも特定の問題についてはこれでいけるのでは、と本気で考えられていた。
実際のビジネスでも例えばマーケティングのRFM分析(購買の直近さ、回数、金額)で期間、回数、金額で条件をつけて、この顧客にはこの対応って決められてビジネス的な価値が出るならばこれはルールベース。別にたの機械学習などをしなくてもいい。
そんなこんなで人工知能をざっくり分けると、
こんな感じ。さらに現在隆盛を誇っている機械学習の中身を見ていくと「◯◯学習」の海に溺れるがざっくりいうとこんな感じ。
ルールを人間が作って指示してやるんじゃなくて、学習するアルゴリズムを与えてコンピュータ=機械に学習しなさいと指示する。その学習の仕方として大きく、
- 教師なし学習
- 答えを与えずに学習させる。主にデータとデータの「距離」を計算させて、これが近いね、これが遠いねなどと学習する
- 次元削減
- たくさんの変数があるものを少ない次元にまとめる。2次元にマップして、このデータとこのデータが近いね、これは遠いねとか視覚的に判断することもある
- クラスタリング
- データとデータのまとまりを知る
- 教師あり学習
- 答えを与えて学習させる。与えたデータだとどういう答えになるか学習させ、正解の答えと誤差が大きければその誤差を小さくさせるように学習を繰り返させる
- 分類
- 答えがYes/Noやカテゴリ値などのような場合、与えたデータを分けるから分類
- 回帰
- 答えが金額など連続値の場合(円単位などで自然数の場合もここでは連続値として扱うことが多いな)、与えたデータから連続値を予測する。「回帰」とは変わった名前だが歴史的経緯からこう呼ぶ(ゴルトンさんとか)
- 強化学習
- そもそも答えがない状態で学習する。例えば将棋などのボードゲーム。1手打つたびに正解があるわけじゃなく、最終的にどっちが勝ったか負けたかがわかり、1手1手では正解がない。ただ、この環境でこの手を打つと良さそうだよなんてことはわかるのでそれを「報酬」として与え、トータル報酬が最大になると勝ちつまり正解となるような学習をさせる
鉤括弧の「距離」としたのは我々が普通に思う距離はユークリッド距離と言いますが、それ以外にも「距離」はあるため。
大体はこんな感じなのですが、ざっと他にも
- 半教師あり学習
- 転移学習
- バッチ学習
- オンライン学習
- 深層学習
- 多様体学習
- アンサンブル学習
- 表現学習
- ...
などがありますね。書籍やネットの記事を見るとそれぞれ解説があるのですが、じゃぁAとBで何が違うのか、実際は同じことを言ってんじゃないのか?ようとの違い?など訳がわからなくなります。
こういう時はロジックツリーを書くと良いと思います。同じレイヤーには同レベルのものが並び含む、含まれるの関係を図示する感じですね。
こんな感じ。これを機械学習でやると
といったんはこういう分け方ができます。ただ、「学習」とほぼ同じ意味でも「学習」という言葉を使っていないものがあることもあります。また、研究分野によっては違う見方をする場合もあります。ですのでこの図が正解ではなく、ここをベースに分野や目的によって理解をUpdateしていくのが良いと思います。