概要
本記事ではディープラーニングを初めて使う人向けモデルとパラメータについて説明します。
モデルとは何なのか、パラメータとは何なのか、どうしてこの二つでAIが作れるのかを読者に理解してもらうことを目的としています。
前提知識
- 数学における関数の知識
- $y = ax + b$ は直線を表す
- $y = ax^2 + bx + c$ は放物線を表す
どのようにAIはできるのか
ディープラーニングなどのAI開発において、AIは必ず入力と出力を必要とします。例えば画像認識AIであれば、入力は認識する対象の画像、出力は認識した動物の名前となります。
入力をx、出力をyとしたときyとxの関係式、つまり$y = f(x)$となるような$f(x)$を見つけることでAIを作成することができます。
実際の例
実際にAIを作る手順を簡単なデータで見せていきます。表を見てください
握力[kg] | ボールの飛距離[m] |
---|---|
35 | 71 |
45 | 92 |
38 | 76 |
15 | 31 |
10 | 19 |
20 | 39 |
この表は握力x[kg]の人が、ボールを投げた時にボールが飛ぶ飛距離y[m]を表した表です。これをx軸を握力、y軸をボールの飛距離としてグラフで表します。
この点の並びを見ると「握力とボールの飛距離の関係は直線で表せるのではないか」と考えると思います。直線を数式で表すと$y = ax + b$です。
今回x軸は握力[kg]、y軸はボールの飛距離[m]なので、xを握力[kg]、yをボールの飛距離[m]とすると$y = ax + b$という関係が成り立つことがこの図から予測できます。
このあとaとbを求めます。本来、最小二乗法などの方法で求めますが難しいのでここでは話しません。
今回はa = 2、b = 0とすると、下の図のようにすべての点とほとんど重なるような直線になります。(下図の点線が$y = 2x + 0$です。)
この直線y = 2x + 0を用いると様々な握力の人の、ボールを投げられる距離を予測できます。例えば握力が50[kg]の人であれば$y = 2 × 50 = 100$よりおよそ100[m]ほどボールを投げられるでしょう。
モデルとパラメータとは
上で示した例においてxとyの関係を$y = ax + b$と予想しました。このとき、この$y = ax + b$という形そのものをモデルといい、a、bのようなx、y以外の文字をパラメータといいます。
モデルを決める重要性
例えば上の例でモデルを$y = ax^5 + bx^4 + cx^3 + dx^2 + ex + f$とすると下の図のようになります。(パラメータa~fはエクセルで求めました。)
すべての点の上をちゃんと通っていますが、このモデルでは握力とボールの飛距離の関係を適切に表しているように見えません。このように適切なモデルを設計できていない場合、AIの精度は大きく下がってしまいます。
結論
実際のデータはグラフ化するのは難しくモデルも複雑で理解しがたいものばかりです。ただ、先駆者のコードを眺める中でも、実際にはこういう感じのことをやっていることを理解しながら読むと頭に入りやすいと思います。
補足
実際には握力とボールの飛距離にはそれほど相関関係はないと思います。