オムライスの備忘録

数学・統計学・機械学習・プログラミングに関することを記す

【深層学習】Long Short-Term Memory (LSTM)

こんな方におすすめ

深層学習・ディープラーニングでも必要な「Long Short-Term Memory : LSTM」の基本的な内容について知りたい。



この記事では、Long Short-Term Memory : LSTMの基礎概念のまとめを行います。

「これから、機械学習ディープラーニングの学習をしたいから、その基本となるLong Short-Term Memory : LSTMの理解を深めたい」という方に向けた記事になります。



キーワード・知ってると理解がしやすい

  • RNN

目次

Long Short-Term Memory : LSTMとは

RNN のネットワークアーキテクチャを基本とした、拡張モデルです。

こちらの記事でRNNについて紹介してます。

yhayato1320.hatenablog.com

RNN との違い

LSTMは、計算グラフの構造がRNNと異なります。
上の記事にもありますが、以下がRNNの計算グラフになります。



このグラフに「記憶セル」と複数の「ゲート」という機構を搭載することでLSTMの計算グラフが出来上がります。
なので、「記憶セル」と「ゲート」を注目してまとめていきます。
これらの概念に触れる前に、計算ノードを簡略的に表現します。
(この簡略化がないとでてくるノードが多すぎて混乱してしまいます。)
tanh」と表記があるものは同様の計算ノードを簡略したものと思ってください。



記憶セル

「記憶セル」の役割は 、その名前の通り「記憶」・「情報を保持」します。
そのため、自身のLSTMレイヤ内の伝達しか行いません。



ゲート

「ゲート」の役割は、情報の量をコントロールすることです。
「ゲート」としてのパラメータは0.0 ~ 1.0 の整数値で、どの程度の情報を流すかをコントロールします。

Outputゲート

「Outputゲート」は次の出力となる情報がどれだけ重要かどうかを判断します。
その名の通り、「Output」の情報のコントロールを行います。





Forgetゲート

「Forgetゲート」は「記憶セル」に作用するゲートです。
「記憶セル」は次時刻への記憶セルにそのまま情報を伝えられるわけではないです。
前時刻の「記憶セル」の情報が「Forgetゲート」によりどれだけ重要な情報かを判断されます。(忘れさせられる)





新しい情報

「Forgetゲート」により、過去の記憶を忘れさせられた「記憶セル」は新しい情報を取得します。





Inputゲート

そしてまた、新しい情報がどれだけ重要かを判断する「Inputゲート」を設けます。





まとめ

このように、RNN のような単純な構造に「記憶セル」と複数の「ゲート」を搭載することで
LSTMという新しいアーキテクチャを構築しました。

参考

ゼロから作るDeep Learning ❷ ―自然言語処理編

ゼロから作るDeep Learning ❷ ―自然言語処理編

  • 作者:斎藤 康毅
  • 発売日: 2018/07/21
  • メディア: 単行本(ソフトカバー)

【深層学習】リカレントニューラルネットワーク #アルゴリズム編

こんな方におすすめ

深層学習・ディープラーニングでも必要な「リカレントニューラルネットワーク (Recurrent Neural Network : RNN)」の基本的な内容について知りたい



この記事では、リカレントニューラルネットワーク (Recurrent Neural Network : RNN)の基礎概念のまとめを行います

「これから、機械学習ディープラーニングの学習をしたいから、その基本となるリカレントニューラルネットワーク (Recurrent Neural Network : RNN)の理解を深めたい」という方に向けた記事になります



キーワード・知ってると理解がしやすい

目次

リカレントニューラルネットワーク (Recurrent Neural Network : RNN)とは

リカレントニューラルネットワーク (Recurrent Neural Network : RNN)とは、DNNのアーキテクチャの一つです

通常のDNNのアーキテクチャでは、フィードフォワードと呼ばれる、流れが一方向のネットワークが使用されます



DNNのネットワークアーキテクチャ



こちらの記事では、基本的なDNNのネットワークアーキテクチャを紹介しております yhayato1320.hatenablog.com



RNNの特徴としては、リカレント(再帰的)の名称の通り、処理の流れが循環するようなアーキテクチャになっております

歴史

1986年のデビッド・ラメルハートの研究で発案された模様

レイヤ視点でのRNN その1

レイヤ視点でRNNを確認しましょう
まずは、単層をみてみます



レイヤ視点のRNN



通常のネットワーク(フィードフォワードネット)では、入力 x に対して出力は h の1つのみです. しかし、リカレントニューラルネットワークは出力を再度、入力として加え、今までの情報を記憶しながら学習していきます



さらに、レイヤの構造を詳細に見ていきます
ループ展開するとこのようになります



ループ展開したRNN



このようにループを展開することで、右方向に伸びる長いニューラルネットワークと理解することができます
入力にある x_t は時刻t における入力と表現します

ノード視点でのRNN

では、RNN はレイヤ内で、どのような計算をしているのか
上の図からわかるように、入力は  h_t-1 x_t で、出力は  h_t です
計算式は以下のようになります




\displaystyle{
h_{t}\ =\ \tanh(h_{t-1}W_{h}\ +\ x_{t}W_{x}\ +\ b)
}



  • 入力
    • x_t : 時刻t の入力
    • h_{t-1} : 時刻t-1 の中間出力


  • 出力
    • h_t : 時刻t の中間出力


  • パラメータ
    • W_{h} : 前時刻の中間出力h_t-1を次時刻の中間出力h_tに変換する重みパラメータ
    • W_{h} : 入力xを中間出力hに変換する重みパラメータ
    • b : バイアスパラメータ



以上の計算をノード視点で考えます

ノード視点のRNN



ノード視点で考えることで以下の理解も深まります

  • 逆伝播の計算
  • LSTM や GRU等のRNN拡張モデルの構造

レイヤ視点でのRNN その2

RNN レイヤもひとつのレイヤにすぎないので、他のレイヤと組み合わせてネットワーク全体を構築します. word2vec のような「言語モデル」を、例としてネットワーク全体を構築します. 構成されているレイヤは以下です

  • Embedding レイヤ
  • RNN レイヤ
  • 全結合層(Affine レイヤ)
  • Softmax レイヤ



レイヤ視点でのRNN その2



上図のように、複数のレイヤと一緒にネットワーク全体のアーキテクチャを構築します

RNNの利点

このようなアーキテクチャにする利点は、時系列データ / 自然言語データの学習に効果的です
時系列データや自然言語データのタスクでは、ある時刻の変数を前時刻の情報から推測します
しかし、通常のDNNのネットワークアーキテクチャだと、その系列情報までうまく学習することができません
RNNのように過去の出力も入力の一部として取り込むことで、結果的に系列情報を学習するような仕組みをつくることができます

まとめ



実装についての記事も書きました yhayato1320.hatenablog.com



LSTM についての記事もあります yhayato1320.hatenablog.com

参考

ゼロから作るDeep Learning ❷ ―自然言語処理編

ゼロから作るDeep Learning ❷ ―自然言語処理編

  • 作者:斎藤 康毅
  • 発売日: 2018/07/21
  • メディア: 単行本(ソフトカバー)

【深層学習】ディープニューラルネットワーク



この記事では、ディープニューラルネットワーク (Deep Neural Network : DNN)の基礎概念のまとめを行います。
「これから、機械学習ディープラーニングの学習をしたいから、その基本となるディープニューラルネットワーク (Deep Neural Network : DNN)の理解を深めたい」という方に向けた記事になります。





この記事では、ディープニューラルネットワーク (Deep Neural Network : DNN) アーキテクチャレイヤ視点で考えていきます。

目次

一言でDNNとは

ニューラルネットワーク関数を複数連結させ、層を深くしたニューラルネットワーク多層ニューラルネットワークと同義。


構成要素

ディープラーニングには、様々なアーキテクチャがありますが、最も基本的なアーキテクチャを考えます。
以下レイヤ視点から見た基本的なアーキテクチャです。





アーキテクチャの構成要素は以下の3つです。

  • アフィン変換レイヤ (Affine Layer)
  • 活性化関数レイヤ (Activation Function Layer)
  • 誤差関数レイヤ (Loss Function Layer)


アフィン変換レイヤ (Affine Layer)

積と和の計算で線形変換を行います。



* 「全結合レイヤ (Fully Connected Layer)」とも呼び、
「全結合レイヤ (Fully Connected Layer)」 、「活性化関数レイヤ (Activation Function Layer)」、「誤差関数レイヤ」
のみで構成されたモデルを「全結合モデル」と呼びます。



活性化関数レイヤ (Activation Function Layer)

入力に対し、活性化するかどうかを決定します。
非線形関数を使用することが多いです。
予測を出力する最後の活性化関数は、タスクに応じで変更されます。



例 : シグモイド関数 / ステップ関数 / ReLu関数 / ect...



誤差関数レイヤ (Loss Function Layer)

予測と正解(ラベル)から誤差を計算します。 誤差の計算方法は、タスクやアーキテクチャなどにより異なります。



まとめ

この記事では、DNNの基本的なアーキテクチャをレイヤ視点での構成要素をまとめてみました。

また、関数の定式化は別の記事にまとめております。

yhayato1320.hatenablog.com

参考

ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装

ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装

  • 作者:斎藤 康毅
  • 発売日: 2016/09/24
  • メディア: 単行本(ソフトカバー)



【深層学習】畳み込みニューラルネットワーク #概念編



この記事では、畳み込みニューラルネットワーク(Convolutional Neural Network : CNN)の基礎概念のまとめを行います。

「これから、機械学習ディープラーニングの学習をしたいから、その基本となる畳み込みニューラルネットワーク(Convolutional Neural Network : CNN)の理解を深めたい」という方に向けた記事になります。





アルゴリズムについては別の記事を参考にしてください。

yhayato1320.hatenablog.com

目次

手書き数字認識

手書き数字認識というタスクを考えます。

手書き数字認識

入力は手書き数字の画像で、出力は 0 ~ 9 の10クラスの事後確率です。

手書き数字認識

ニューラルネットワークモデル

ニューラルネットワークモデル (NNモデル) の利用を前提に手法を検討するとします。

* 手書き画像のそれぞれには、もちろん微妙な違い(平行移動・縮小拡大・回転)があり、その違いに対して不変性・柔軟性・頑健性を必要とするので、NNモデルを前提に進めます。



単純なアプローチ

単純なアプローチは全結合のネットワークへの入力として画像を扱うことです。

しかし、このアップローチは画像の重要な特性・情報を見落としています。

すなわち、距離の近いピクセル同士は相関・関連性が高く、距離の遠いピクセル同士は相関・関連性が低いということです。

畳み込みニューラルネットワーク

次のアプローチとして「畳み込みニューラルネットワーク(Convolutional Neural Network : CNN)」を考えます。

* CNN のアルゴリズムに関してはこの記事では言及しないです。

CNN

CNN には3つ機構が含まれています。

    1. 局所的受容野 (local receptive field)
    2. 「畳み込み層」、「プーリング層 / 部分サンプリング層」における機構


    1. 重み共有 (weight sharing)
    2. 「畳み込み層」 における機構


    1. 部分サンプリング (sub-sampling)
    2. 「プーリング層 / 部分サンプリング層」における機構



局所的受容野 (local receptive field)

画像のある注目点について考えたとき、その注目点の近傍の点と関係が強く、離れるほど関係が弱くなっていくという考えのもと
次のNNの層への入力を近傍のユニット群のみにするという機構。

この機構により、精度とパラメータ計算コスト効率を向上さています。

重み共有 (weight sharing)

画像の注目点ごとにパラメータを変えるのではなく、共有のパラメータを使うことで、パラメータ計算コストを向上させています。

部分サンプリング (sub-sampling)

CNN の「プーリング層 / 部分サンプリング層」に用いられている機構。

特徴量の統計量を計算することで、
画像のゆがみ (平行移動・縮小拡大・回転) に対して、影響を受けにくい不変性・柔軟性・頑健性をもつことが期待できます。

参考

パターン認識と機械学習 上

パターン認識と機械学習 上

【自然言語処理】word2vec

  • こんな方におすすめ

深層学習・ディープラーニングでも必要な「word2vec」の基本的な内容について知りたい。



この記事では、word2vecの基礎概念のまとめを行います。

「これから、機械学習ディープラーニングの学習をしたいから、その基本となるword2vecの理解を深めたい」という方に向けた記事になります。



  • キーワード・知ってると理解がしやすい



ニューラルネットワークの関連記事です。
yhayato1320.hatenablog.com

目次

「word2vec」とは

単語 (Word) をベクトル (Vector) として表現、変換するための手法の1つ
Word To Vector

単語の分散表現

単語を固定長のベクトルで表現することを「単語の分散表現」(Word Embedding) と呼びます。
word2vec も単語の分散表現を取得する手法の1つです。

単語の分散表現

分布仮説

「単語の意味は周囲の単語によって形成される」という前提・アイディア・考え。

分布仮説

「カウントベース」と「推論ベース」

ここでは、カウントベースについては言及しませんが、自然言語処理において、単語の分散表現を取得する手法としては、大きく分けて2つあります。
1つは「カウントベース」と言われる手法で、1つは「推論ベース」と言われる手法です。
word2vec は、「推論ベース」に含まれる手法です。

推論ベース

推論ベース

推論ベースという名称なので、この手法は、
ある「入力」から何かを「出力=推論結果」するような形式をとります。
どんな入力からどんな出力を推定するモデルなのかがポイントになります。

word2vec のモデル

word2vec で使用されるモデルは、ニューラルネットワーク (NN) を用いられることがスタンダードで、有名なモデルは2つあります。

  • CBOW モデル
  • skip-gram モデル

word2vec

2つのモデルを紹介します。

CBOW モデル

continuous bag-of-words (CBOW) は、「コンテキスト」から「ターゲット」を推測するNNモデルです。 CBOWモデル

skip-gram モデル

skip-gram モデルは、CBOW モデルとは逆で、「ターゲット」から「コンテキスト」を推測するNNモデルです。 skip-gramモデル

分散表現としての利用

二つのモデルとも目的は、単語の分散表現を取得することでした。
では、上のモデルで学習を行い、パラメータ (上図での W_in と W_out)が最適化されたとして、どのように分散表現と利用するのでしょうか?
それは、W_in (または W_out と両方)を分散表現のベクトルして利用します。

分散表現としての利用

参考

ゼロから作るDeep Learning ❷ ―自然言語処理編

ゼロから作るDeep Learning ❷ ―自然言語処理編

  • 作者:斎藤 康毅
  • 発売日: 2018/07/21
  • メディア: 単行本(ソフトカバー)

【深層学習】畳み込みニューラルネットワーク #アルゴリズム編

  • こんな方におすすめ

深層学習・ディープラーニングでも必要な「畳み込みニューラルネットワーク」の基本的な内容について知りたい。



この記事では、畳み込みニューラルネットワーク(Convolutional Neural Network : CNN)の基礎概念のまとめを行います。

「これから、機械学習ディープラーニングの学習をしたいから、その基本となる畳み込みニューラルネットワーク(Convolutional Neural Network : CNN)の理解を深めたい」という方に向けた記事になります。





関連記事です。

yhayato1320.hatenablog.com


yhayato1320.hatenablog.com

目次

全体の構造

ネットワーク構造の大枠を紹介します。



畳み込みニューラルネットワーク

畳み込みニューラルネットワーク (Convolutional Neural Network : CNN) は
全結合のニューラルネットワークに対して、「畳み込み層 (Convolution Layer)」「プーリング層 (Pooling Layer)」が新しく組み込まれたネットワーク構造になります。

CNN の理解には、各層の理解が必要です。

畳み込み層

「畳み込み層」の理解に必要になってくる要素は3つあります。


  1. 畳み込み演算
  2. パディング (padding)
  3. ストライド (stride)


畳み込み演算

畳み込み演算は畳み込み層で行われるメインの計算です。
(後述する「パディング」、「ストライド」は畳み込み演算の設定、パラメータのようなものです。)



畳み込み演算は、画像処理における「フィルター演算」に位置します。

具体的な計算方法を示した図が以下です。



image

入力の行列データに対して、フィルター行列を適用して、行列を出力します。
(フィルター行列はカーネル行列と呼ぶこともあります。)



処理の流れは以下です。

  1. 入力の行列データのフィルター行列を適用する範囲を決定
  2. 適用する範囲に対して、フィルター行列との和積演算を行う
  3. その結果を対応する出力行列の一部に格納


フィルター行列を適用する範囲をずらしていくことで、このプロセスを繰り返し、入力の行列データ全体に適用します。

畳み込みニューラルネットワーク



フィルター行列の値は何でも良いわけではなく、このフィルター行列の値は学習していくパラメータになります。
最後にバイアスパラメータを足し合わせて出力となります。



畳み込みニューラルネットワーク

パディング (padding)

畳み込み演算における、padding とは pad(詰め物)を埋めることを意味し、埋め込みの意味です。
では、「何」を「どこ」に埋め込むかというと、「任意の数値」を「入力の行列の外側」に埋め込みます。

畳み込み演算は、入力の行列のサイズがフィルターの大きさ以上でなければ計算できません。
そこで、「任意の数値(影響はなくすため0が多いです)」を「入力の行列の外側」に埋め込んだ後に畳み込み演算を処理します。



畳み込みニューラルネットワーク

パディングをすることで出力の行列の大きさをコントロールできます。

ストライド (stride)

ストライド (stride) は英語で歩く、闊歩すると意味で、フィルター行列が入力の行列データの移動を歩いていく(少しづづずれていく)ようなイメージでしょうか?



上の例では、フィルター行列が、入力の行列データの上を1マスずつずれていくように移動していましたが、動く幅も畳み込み演算の1つの設定になります。

その動く幅をストライド (stride) と呼びます。

畳み込みニューラルネットワーク

プーリング層

部分サンプリング (sub-sumpling)とも呼ばれる処理です。

プーリング (pooling) 層では、縦・横方向の空間を小さくする演算を行います。

畳み込みニューラルネットワーク



具体的な処理の流れは、

  1. 処理を適応する入力の行列データの範囲を決定
  2. 決定した範囲の要素の中で、最大の要素を計算
  3. その結果を対応する出力行列の一部に格納


このプロセスを繰り返し、入力の行列データ全体に適用します。

まとめ

  • 畳み込みニューラルネットワーク(Convolutional Neural Network : CNN) は「畳み込み層 (Convolution Layer)」と「プーリング層 (Pooling Layer)」の2つ処理を繰り返し行う構造である。
  • 「畳み込み層 (Convolution Layer)」は畳み込み演算を行うことで、入力データ(画像等)から特徴を抽出するパラメータを学習する。
  • 「プーリング層 (Pooling Layer)」では、入力データの情報を縮小させていく。

疑問点

  • なぜ、サブサンプリングの処理を poolimg というのだろう?(pooling 貯めるの意味?)

参考

ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装

ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装

  • 作者:斎藤 康毅
  • 発売日: 2016/09/24
  • メディア: 単行本(ソフトカバー)

【深層学習】フィードフォワードネットワーク関数 #01



この記事では、フィードフォワードネットワーク関数の基礎概念のまとめを行います。

「これから、機械学習ディープラーニングの学習をしたいから、その基本となるフィードフォワードネットワーク関数の理解を深めたい」という方に向けた記事になります。





線形基底関数モデルの関連記事です。

yhayato1320.hatenablog.com

目次

線形基底関数モデルからニューラルネットワークモデルへ

テーブルデータ等における予測モデルでは、線形回帰モデルや線形識別モデル、それを一般化した線形基底関数モデルを用いることがあります。

精度を上げるためにデータの情報を増やす(次元を増やす)ことがありますが、それには「次元の呪い」等の問題が生じます。

そこで、事前に基底関数の数を固定し、それらを適応的にしておくという考えがあります。

その手法で最も成功したモデルが「フィードフォワードニューラルネットワーク」になります。

フィードフォワードネットワーク関数

処理の全体象イメージです。

image



関数全体の定式化の前に、各処理ごとに定式化していきます。



活性の計算

入力変数 x_1,\ \cdots,\ x_D の線形和を作ります。




\displaystyle{
a_{j}\ =\ \sum_{i=1}^{D}w_{ji}^{(1)}x_{i}\ +\ w_{j0}^{(1)}\ \ (j\ =\ 1,\ \cdots\ M)
}



  • x_i\ (i\ =\ 1,\ \cdots,\ D) : 入力変数
  • D : 入力変数の次元数
  • w_{ji}^{(1)} : 1つ目の層の重みパラメータ
  • M : 1つ目の層のノード数
  • a_j : 活性(と呼ぶようですが、中間出力です。)



添字 i,\ j を無くして表現すると、以下の式になります。


\displaystyle{
a_{1}\ =\ w_{10}^{(1)}\ \cdot\ 1\ +\ w_{11}^{(1)}\ x_{1}\ +\ \cdots\ +\ w_{1D}^{(1)}\ x_{D} \\
\vdots \\
a_{j}\ =\ w_{j0}^{(1)}\ \cdot\ 1\ +\ w_{j1}^{(1)}\ x_{1}\ +\ \cdots\ +\ w_{jD}^{(1)}\ x_{D} \\
\vdots \\
a_{M}\ =\ w_{M0}^{(1)}\ \cdot\ 1\ +\ w_{M1}^{(1)}\ x_{1}\ +\ \cdots\ +\ w_{MD}^{(1)}\ x_{D} \\
}



つまり、D個の入力変数に対してM x (D+1) 個の重みパラメータを利用して、M個の出力をするということになります。

これらを行列の計算式で書き表すこともできます。


\displaystyle{
  \left(
    \begin{array}{c}
      a_{1} \\
      \vdots \\ 
      a_{j} \\
      \vdots \\ 
      a_{M}
    \end{array}
  \right)\ =\ 
  \left(
    \begin{array}{ccc}
      w_{10}^{(1)} & \cdots & w_{1D}^{(1)} \\
      \vdots & \ddots & \vdots \\
      w_{M0}^{(1)} & \cdots & w_{MD}^{(1)}
    \end{array}
  \right)\ \cdot\ 
  \left(
    \begin{array}{c}
      1 \\
      x_{1} \\
      \vdots \\ 
      x_{D}
    \end{array}
  \right)\ \\
}


まとめるとこのようなかんじです。


\displaystyle{
\mathbb{a}\ =\ \mathbb{w}^{(1)}\ \mathbb{x}
}

隠れユニットの計算

次に微分可能な非線形活性化関数 h で活性 a_{j}\ \ (j\ =\ 1,\ \cdots\ M)を変換します。




\displaystyle{
z_{j}\ =\ h(a_{j})\ \ (j\ =\ 1,\ \cdots\ M)
}



z_{j}\ \ (j\ =\ 1,\ \cdots\ M) は基底関数の出力に相当し、ニューラルネットワークでは隠れユニットと呼ばれています。


非線形活性化関数 h には一般に、ロジスティックシグモイド関数tanh関数が使われることが多いです。

出力ユニット活性

次に活性 a_j\ \ (j\ =\ 1,\ \cdots\ M) を計算したときと同様、z_j\ \ (j\ =\ 1,\ \cdots\ M) を入力と見立てて、同様の線形和を作ります。




\displaystyle{
a_{k}\ =\ \sum_{j=1}^{M}w_{kj}^{(2)}z_{j}\ +\ w_{k0}^{(2)}\ \ (k\ =\ 1,\ \cdots\ K)
}



  • z_j\ (j\ =\ 1,\ \cdots,\ M) : 隠れユニット
  • M : 1つ目の層のノード数
  • w_kj{}^{(2)} : 2つ目の層の重みパラメータ
  • K : 出力の総数
  • a_k : 出力ユニット活性(と呼ぶようですが、中間出力です。)



活性の計算との違いは添字のみになります。

出力の計算

最後に出力を計算します。

適当な活性化関数 \sigma を用いて、変換します。


\displaystyle{
y_{k}\ =\ \sigma(a_{k})\ \ (k\ =\ 1,\ \cdots\ K)
}



ネットワーク全体の関数

これらの結果をまとめ、ネットワーク全体の関数は




\displaystyle{
y_{k}(\mathbb{x},\ \mathbb{w})\ =\ \sigma 
  \left( 
    \sum_{j=1}^{M}w_{kj}^{(2)}
      h 
       \left(
         \sum_{i=1}^{D}w_{ji}^{(1)}x_{i}\ +\ w_{j0}^{(1)}
       \right)
    \ +\ w_{k0}^{(2)}
  \right)
}



行列式で整形すると


\displaystyle{
\mathbb{y}\ =\ \sigma\ (\ \mathbb{w}^{(2)} \cdot\ h\ (\mathbb{w}^{(1)} \cdot \mathbb{x}\ )\ )
}



全体のネットワークイメージ図再掲します。 image



まとめ

ニューラルネットワークにおけるフィードフォワードネットワーク関数を定式化しました。

この関数はネットワーク上の情報の順伝播(forward propagation)と解釈されることが多く、ディープラーニングの基本になります。

参考

パターン認識と機械学習 上

パターン認識と機械学習 上