#はじめに
今回はディープラーニングの基本をまとめました。
※これからディープラーニングを学習する人向けの記事です。
🌟「ディープラーニングの実装及び過学習対策」
https://qiita.com/hara_tatsu/items/b7423e90574cf7730978
🌟「畳み込みニューラルネットワーク(CNN)まとめ」
https://qiita.com/hara_tatsu/items/8dcd0a339ad2f67932e7
🌟畳み込みニューラルネットワーク(CNN)の実装
https://qiita.com/hara_tatsu/items/d2c6536ae35cca5e97ab
#ニューラルネットワークについて
まずはディープラーニングの前身となるニューラルネットワークについて。
ニューラルネットワークとは、簡単にいうと人間の脳の中をマネしたアルゴリズム。
脳の中にはニューロンと呼ばれる神経細胞が何十億個とあり、それらが互いに結びつくことで神経回路という巨大なネットワークのようなものを作り上げている。
一つの情報が脳内に入ってくると、ニューロンに電気信号で伝わる。この電気信号が脳内の神経回路を駆け巡り、脳内のどの部分にどれだけの電気信号を伝えるかによって、情報を処理している。
この神経回路の仕組みを再現すれば、最高の機械学習ができるのではないか?
と考えて生まれたのがニューラルネットワークです。
##単純パーセプトロン
単純なニューラルネットワークのモデル。
複数の入力を受け取り、一つの出力を行う。
入力を受け取る部分を入力層、出力する部分を出力層と言う。
入力層と出力層とのつながりは「重み」というもので調整され、どれだけの特徴を出力層に伝えるかを調整している。
※入力層と出力層のみでは回路が単純すぎるため、線形分類しか行うことしかできない。
##多層パーセプトロン
単純パーセプトロンの線形分類しかできないという弱点を解決するために、入力層と出力層の間に更に層を追加するというアプローチをとったものを多層パーセプトロンと言います。
※参考図
入力層と出力層の間の層のことを中間層(隠れ層)と言います。層が追加させただけで、単純パーセプトロンと仕組みは変わりません。
しかし、層が追加されたことでネットワーク全体の表現が向上し、非線形分類も行うことができるようになりました。
#ディープラーニング
ディープラーニングとは、多層パーセプトロンの中間層(隠れ層)をより増やしたモデルになります。(一般的に中間層2つ以上)
※層が「深い」から、ディープラーニング(深層学習)と言われている。
##ディープラーニングの学習の流れ
①順伝播
与えられた入力を重みで調整し、予測値を出力する。
(一般的に初期値の重みはランダムで設定される)
②誤差の計算(損失関数)
予測値と教師データである正解値の誤差を計算する。
具体的な計算方法は以下のとおり。
回帰:平均2乗誤差
分類:交差エントロピー誤差
③逆伝播(誤差逆伝播法)
損失関数(誤差)を最小化するために逆向きに学習し、パラメーター(重み等)を更新する。
④ ①〜③を繰り返すことでディープラーニングの予測精度を高めていきます。
##誤差逆伝播法(バックプロパゲーション)とは
損失関数(誤差)を最小化するために逆向きに学習し、パラメーター(重み等)を更新する作業。
パラメーターの更新の際に重要なことは大きく2つ!
○パラメーターを増やすか減らすか決める。
(勾配降下法)
○どれくらい増減させるか
(学習率)
※ディープラーニングの実装の際にはオプティマイザー(optimizer)と言われる。
ADam,RMSPropなどが使われる。
#ディープラーニングの特徴まとめ
メリット
・予測精度が圧倒的に高い
・パラメーターの数が多い
・特徴エンジニアリングが不要(学習に影響を与えそうなデータを抽出する作業)
デメリット
・単純な問題の場合は単純なモデル(重回帰分析)の方が性能が良い
・計算コストが非常に高い
・大量の学習データが必要
#おわりに
以上です。
ディープラーニングの基本をまとめました。