ディープラーニングがどれだけ複雑に見えても、一番小さい単位に分解すると線形な計算が出てきます。入力に重みをかけて足す。今回はこの線形モデルについて、何ができて何ができないのかを整理します。
出力は入力の重み付き和
線形モデルの考え方はシンプルで、「出力は各入力に重要度をかけて合計したもの」という仮定です。
\[ f(x) = w^T x + b \]\( w \) が重み、\( b \) がバイアス(切片)です。
たとえば「コーヒーの美味しさ」を予測するなら、「豆の質」に3、「お湯の温度」に1、「淹れる時間」に-0.5をかけて足し合わせるようなイメージです。各パラメータの意味がそのまま読めるので、「なぜその予測になったのか」を人間が追いやすい。線形モデルが説明性の高いモデルだと言われるのはこの点です。
二乗誤差で最適化する
線形モデルでよく使われる損失関数は二乗誤差です。
\[ L(f(x), y) = (f(x) - y)^2 \]差を二乗するので、大きく外れた予測ほどペナルティが重くなります。裏を返せば、極端な外れ値に引っ張られやすいのですが、計算が扱いやすいこともあって広く使われています。
線形モデルと二乗誤差の組み合わせ(最小二乗法)には、勾配降下法で少しずつ下らなくても行列演算で一発で最適解が出るという性質があります(正規方程式)。モデルが線形だから成り立つ話で、非線形なモデルではこうはいきません。自分はこの事実を知ったとき、前回までの勾配降下法の話は何だったのかと一瞬思いましたが、線形モデル以外では正規方程式が使えないので、やはり勾配降下法は必要です。
直線では表現しきれないもの
線形モデルは入力と出力の関係が比例的であることを前提にしています。当然、そうでない場合のほうが多い。
ある温度を超えると急に味が変わる、複数の要素が組み合わさって初めて効果が出る、画像のピクセルの並びから「猫」を判定する。どれも直線一本で表せる話ではありません。こういうケースに線形モデルを当てると、データの構造を捉えきれずに予測精度が頭打ちになります。未学習(Underfitting)と呼ばれる状態です。
まとめ
線形モデルは、複雑な現象を「要素の足し算」として捉えてみるところから始まります。解釈しやすく、最適化も楽ですが、表現力は限られています。
この限界があるから、直線を曲げる方向に進むことになります。次回は活性化関数とロジスティック回帰について書きます。