これは、Coursera機械学習コースの演習4の予測機能のスニペットです。それは、訓練されたニューラルネットワークから予測された数字をpに格納することです。誰かがこれをどうやって説明することができますか?ピクセル強度値のCoursera機械学習コースの数字を認識するこのコードを説明できます
function p = predict(Theta1, Theta2, x)
p = 0;
h1 = sigmoid(double([1 x]) * Theta1');
h2 = sigmoid([1 h1] * Theta2');
[dummy, p] = max(h2, [], 2);
end
x
= 1x784マトリクス。 Theta1
= 100x785マトリックス。 Theta2
= 10x101マトリックス。
私はすでにネットワークを訓練しており、Theta1とTheta2の最適値を得ています。私が知りたいのは、コードの最後の行が順方向に伝搬された値を受け取り、1/2/3/4/5/6/7/8/9/10をpに格納する方法です。どの桁が格納されているかは、予測桁です。
シグモイド関数:最高有するA
のI
indecesで
function g = sigmoid(z)
g = 1 ./ (1 + e.^-z);
end
単純ですあなたの質問をより具体的にする。現時点では、「どのようにニューラルネットワークを手書きから数字を認識させるか」という言い方が広がっています。そのコードスニペットについてより具体的なものを尋ねるためにあなたの質問を書いてください。また、スニペットは 'x'と' Theta1'が何であるかについての情報なしで何の意味もないので、残りのコードを提供します。 – Dan