深層学習とは
深層学習とは様々な種類のニューラルネットワークを結合し構築されたネットワークです。
ニューラルネットワークとは、人間の神経細胞の仕組みを再現した計算モデルで、入力データに対して重み付けや活性化関数などの処理を行って出力データを生成します。
ニューラルネットワークは大きくフィードフォワード型のネットワーク、CNNネットワーク、RNNネットワークに分類でき、今回は最も基礎的なフィードフォワード型ネットワークについて解説していきます。
深層学習は画像認識や音声認識、将棋AIなど様々な場面で活用されており、深層学習に関する知識は今後より一層求められると考えられます。
ぜひ、この記事を最後までご覧いたければ幸いです。
フィードフォワード型ネットワーク解説
フィードフォワード型ネットワークとは最も単純なニューラルネットワークであり、パーセプトロン(Rosenblatt and Frank (1958))というネットワークに基づいています。
上図はフィードフォワード型ネットワークの概念を表しています。
式にすると以下のようになります。
Xは入力ベクトル、Yは出力ベクトル、Bは定数ベクトルWは重み行列を表しています。
ベクトルや行列が登場しやや分かりにくいですが、実行していることは各入力値に特定の重みを掛け合わせ定数項を足し合わせて出力するという単純な計算ロジックです。
例えば出力ydに着目すると、フィードフォワード型ネットワークの計算ロジックは、yd=xa×wa,d+xb×wb,d+xc×wc,dとなります。
フィードフォワード型ネットワークは容易に拡張することができ、現在の出力層Yを新たに入力X’として考え新たに出力層Zを与えると以下の様に多層化することができます。
上記のように層を積み重ねることでネットワークの説明力、つまり入力から出力を予測する能力をアップさせることができます。このように何層もネットワークを重ねたモデルを深層学習モデルといいます。
以上がフィードフォワード型ネットワークの概要になります。
ネットワーク学習方法【概要】
実際のAIプロジェクトの際はフィードフォワード型ネットワークなどを用いてモデルを構築した後に大量の学習データを用いてモデルのパラメータ(フィードフォワード型ネットワークの場合、前出の重み行列W)を学習します。
学習の際はモデルの出力データや教師データなどから損失関数を定義し、損失関数が最小となるよう誤差逆伝播法を用いながら学習していきます。損失関数としては出力データと教師データの誤差の平均2乗和から算出されるMES(Mean Squared Error)などが有名です。
誤差逆伝播法など学習方法については後ほど解説記事を投稿しようと思います。
終わりに
以上、深層学習で最も基本となるフィードフォワード型ネットワークについての解説でした。
ネットワークの概要は掴んでいただけたかと思うので、より深く学習される方は専門書などの足がかりにしていただけますと幸いです。
ご清覧ありがとうございました。