p_1_1_forward_propagation_after(質問管理番号)
回答日時: | 2019/02/14 |
Q: | 入力値と重みの内積の質問になります。
■順伝播(単層・複数ユニット)では、 # 入力値 # 重み # 総入力 ■順伝播(単層・複数ユニット)のafter # 重み # 入力値 # 総入力 重みが3×4なのでxとWを逆にしたということだと理解できます。 ただ、 shape: (4,) |
A: | shape: (4,)は1次元ベクトルですが、numpyの仕様上、1×4とも4×1とも異なります(イメージはベクトルでいいと思いますが)。 どちらかというとnumpy.dotの仕様についてですが、これは1つ目の配列のshapeの最後の次元と、2つ目の引数のshapeの最初の次元とで行列積(テンソル積、内積)を計算します。ただし、「1つ目の配列のshapeの最後の次元=2つ目の引数のshapeの最初の次元」でないといけない。例えば、shape:(3, 4)のnumpy配列なら最初の次元は3で最後の次元は4です。shape:(4,)なら最初の次元も最後の次元も4です。このことを考えると、コードに矛盾はありません。 |
回答日時: | 2019/02/14 |
Q: | 1_1_forward_propagation_afterでは、 入力値のshapeは全てshape: (2,)という形です。1_2_back_propagationでは、 入力値のshapeはshape: (1, 3)という形に なっております。 どのような理由でコードに違いがあるか |
A: | 1_1_forward_propagation_afterでは、順伝播について簡単に理解することを目的に、そのように簡略化しています。一般的にはミニバッチを考慮した形、つまり1_2_back_propagationのようにshape: (1, 3)のような形が普通です(1の部分をN>1にしても動作するため)。 |