深層学習(Deep Learning)
- ニューラルネットワークを用いたモデル
-
画像分類の特徴量を
手作業
で作成するのは非常に大変
-
例:猫と犬の識別機
- 耳? 手足? 仮に線形回帰でやる場合、数式でどのような特徴を作成すれば捉えれる?
-
深層学習なら、データから複雑な特徴量を勝手に学習してくれる
- 特に、 非線形 な識別面も学習できる
-
例:猫と犬の識別機
単層パーセプトロンが基本
重回帰分析の後に、非線形な関数をくっつけたものが基準
線形では表現(識別)できないデータを、線形と非線形を組み合わせて表現する
このとき用いられる非線形な関数を 活性化関数 と呼び、以下のようなものが代表として挙げられる
パーセプトロンを”繰り返す”
非線形な関数を交えることで、線形分離不可能なものでも分離可能とできる
- 単回帰分析では直線だったものを、グネグネ捻じ曲げることが出来るイメージ
- 深層学習は関数近似論であり、グネグネ曲げたりして、尤もらしいパラメータを学習して導出する
どのように学習するか
重回帰分析と同じように、損失(誤差)の最小化を考える。有名なものとしては以下:
-
Mean Squared Error Loss
(MSE
, 回帰問題) -
Binary Cross Entropy Loss
(BCE
, 2クラス分類問題)
(サンプル数を , 番目のサンプルを , 番目の正解ラベルを とする。)
いずれにしても、損失は正解に近い値を取れば取るほど小さく、また誤った値を取れば取るほど大きくなる
勾配降下法(Gradient Descent, GD)
非線形が組み合わさって重なっているので、ぐにゃぐにゃしている。
- 単回帰分析・重回帰分析のように解析的( )に求められない
- 適当な初期値にボールを置いて、転がす
- ボールに慣性を付けたり、過去の転がした情報を再利用して計算量減らしたり、色々な転がし方がある
-
初期値や転がし方で変わるので、常に大域的最適解に到達するとは限らない
- 例えば、上図で右の方から転がしたら、右の方で止まることもあり得る。(局所的最適解)
誤差逆伝播
高校数学でやった連鎖率で勾配が計算可能
過学習の抑制
サンプルにフィッティングしすぎるのは良くないので、抑制する
Dropout
ニューロンの重みを幾つか一時的に0
Early Stopping
評価用データを反復的に評価し、早めに学習を打ち切る
派生モデルを覗いて、考え方を知ろう
深層学習の層構造や、損失などを変えることで、色々なことに応用できる
CNN (Convolutional Neural Network)
- 画像に対して、昔から使われている解
- 固定長のフィルタを用意
-
フィルタを動かしながら、内積(フィルタとの掛け算)を計算する
- 内積は類似度とも見なせる
RNN (Recurrent Neural Network)
再帰的な構造を取り入れた
LSTM ( Long Short Term Memory)
RNNでは長期記憶の保持が難しい
- どんどん薄れていくイメージ
シグモイドゲート(つまり確率)で忘れる・覚えるを表現
- 長期記憶(Long Term Memory)を保持する
Transformer
- Attention 機構で、ベクトル化したword とword の関連度を表現する
- RNNと異なり、並列に学習が可能
ChatGPT (GPT-4)
今話題の大規模言語モデル(LLM)
diffusion Model
- 画像からノイズを取り除くよう学習
- 適当なノイズを与えると、それっぽい画像を返す
生成AIの取り扱い
社内ルールにのっとること