Machine_learning_nursery_rhymes’s diary

仕事の種を模索するため、今まで逃げていた統計・データを勉強していく

多次元配列の計算について勉強する

多次元配列について考える

データの前処理をする際に、N次元状に並べその内積計算をしていますが、そのルールがあいまいだったので、本日の学習は2回目はこちらから開始です。

配列の次元数はnp.ndim()を利用して確認できます。配列の形状はShapeを利用します。

import numpy as np
A = np.array([[[1,2,3,4],
[5,6,7,8,],
[9,10,11,12]],
[[1,2,3,4],
[5,6,7,8,],
[9,10,11,12]]])
print(A)

np.ndim(A)
3#次元
A.shape
(2, 3, 4)#奥行、行、列

内積の計算

np.dot()を利用し、内積を計算します。私は以下のサイトで勉強しました。行列の積では、対応する次元の要素を一致させる必要があります。線形代数についてはこちらで勉強していますが、中々進まない。

プログラミングのための線形代数

プログラミングのための線形代数

NNの行列積

(例題式)Xは入力、Wは重み
X*W=Y

X=np.array([1,2,3]) #(3,)
W = np.array([[1,2,3],[4,5,6],[7,8,9]]) #(3, 3)
Y=np.dot(X,W) #Y=[30 36 42],(3,)

右側にshapeで次元数を記載しましたが、うちうちが一致しています。
X W  Y
3 3×3 3


Yに出力する際にシグモイド関数やReLU関数を使用します。今回の結果をsigmoidで表現するとarray([1., 1., 1.])、relurだとarray([30, 36, 42])になります。