見出し画像

マシンラーニングの雑な説明

マシンラーニングのアルゴリズムは、空間を変形してデータに合った表現に変える。いろんなアルゴリズムや用途があるけれど基本はみな同じだ。初めてちゃんとイメージできたのは Francois Chollet の本を読んだ時だと思う。

例えばデータの分類をしたいときには種類の分かれ目に境界線を引きたい。この時に座標をぐるっと回転してやるとデータがずっと扱いやすくなる。

「x > 0 なら猫」、みたいな感じだ。こんな風に目的に合わせて空間を変形させて使いやすい形にする。魔法でもなんでもないただの計算による座標変換。

このグラフをずらしてぐるっと回転させると

画像1

こうなる。xの値を見るだけで黒丸と赤三角が分類できる。

画像2

複雑なデータになるとうまい変換を見つけるのが難しくなる。これをコンピュータに自動でやらせるのがマシンラーニング。こんなグラフだったらどうだろう。いい感じの変換を見つけられるだろうか。

画像3

この変形を行う層を幾つも深く(deep)重ねて複雑な変換をするのがディープラーニング。学習が進むごとにこの変換の仕方を変えて行って、いい感じになるまで続ける。変換するたびにうまく行っているかを調べて、良さそうな方向にちょっとづつずらしていく。

膨大な計算。基礎となる理論は昔からあったのだけど遅すぎて使えなかった。最近急に実用化されたのはコンピュータ、特にGPUが進化してまともな時間で計算ができるようになったのが大きい。

二次元のグラフならまだ簡単に見えるが実際に扱うのは超多次元のデータだ。例えば画像なら1ピクセルだけでRGBの3つの値があるので三次元(RGBAなら四次元)。それが縦と横にずらっと並んでいる。32 x 32 の小さな画像でも 32 x 32 x 3 で 3072 個の値があることになる。
こういうデータを扱うにはテンソルという行列を拡張したみたいなやつを使う。

そんな多次元の空間があってその一点一点が一個の画像に対応している。これをグニャっと曲げて「猫らしさ」みたいな情報が簡単に取り出せるようにする。絵に書くのは無理だけど想像すると楽しい。次元の数が変えて空間自体の大きさが変わったり、ベチャッと潰して簡単にしたりもする。画像がベタっと詰まった空間をグニャっとして猫に見えるやつとか犬に見えるやつを集める。グニャグニャベチャッ。

この記事が気に入ったらサポートをしてみませんか?