2016-10-13 4 views
-1

私はMATLABでニューラルネットワークのコードの一部を持っている:MATLABのmax([max(A)max(B)])の意味は?

p = randint(a); 

p1 = p(1:10,:); 
p2 = p(11:20,:); 

d1 = max([max(p1(:,1)) max(p2(:,1))]); 
d2 = max([max(p1(:,2)) max(p2(:,2))]); 
d3 = max([max(p1(:,3)) max(p2(:,3))]); 

input1 = [p1(:,1)'/d1; p1(:,2)'/d2; p1(:,3)'/d3]; 

私はここに「D」と「INPUT1」の意味だかを知りたいですか?

答えて

0

ゆっくりと壊してください。 max(p1(:,1))を実行すると、最初の列の最大値がp1になります。 max(p2(:,1))を実行すると、最初の列の最大値がp2になります。彼らはどちらも単一の値を返します。次に、maxコールをこれらの2つの数字でカプセル化すると、max([max(p1(:,1) max(p2(:,1)]);は、これらの2つの数字の間で最大の値を見つけます。

論理的に言えば、d1は、p1の最初の列とp2の最初の列の間で全体的に最も大きな値を見つけます。 d2d3は、p1p2の2番目と3番目の列に関して同じことを行います。

input1 Iはp1の最初の3つの列に属する入力フィーチャを定義し、これらの値を個別p1の列ごと[0,1]のスパン内に入ることを保証するの粗な方法であると仮定する。なぜ彼らがのためにこれをしているだけなので、p2を考慮に入れてもわかりませんが、訓練の前に入力データを前処理する手段として実行されている正規化ステップのようです。

+0

ありがとうございます。 –

+0

「p」は20行の行列で、ニューラルネットワークの入力として「p1」、ニューラルネットワークをテストしてターゲットと結果を相殺するサンプルとして「p2」の2つのグループに分かれています。 上記の正規化によれば、シミュレートされた出力は10進値の1つの列であると考えられますが、出力は(0,1)の間のちょうど分数になります。 この問題を解決するにはどうすればよいですか? –

+0

これは分数の値であると考えられています.... – rayryeng