function [jVal, gradient] = costFunction(theta) ... optTheta = fminunc(@costFunction. initalTheta, options) Neural Network(L-4): theta matrices (Theta1, Theta2, Theta3) D matrices (D1, D2, D3) ------------------------- thetaVec = [Theta1(:), Theta2(:); Theta3(:)]; DVec = [D1(:); D2(:); D3(:)]; ここでTheta1(:)の意味は、Theta1の各要素をすべて列にしたもの つまり octave:7> b=[1 3; 2 4] b = 1 3 2 4 があったっとき、b(:)は、次のようになる octave:8> b(:) ans = 1 2 3 4 ------- Theta1 is 10x11, Theta2 is 10x11 and Theta3 is 1x11 Theta1 = reshape(thetaVector(1:110),10,11) Theta2 = reshape(thetaVector(111:220),10,11) Theta3 = reshape(thetaVector(221:231),1,11) reshape関数は、reshape(a, size)のように書いて次のように行列の変形をできる > reshape([1,2,3,4], 2,2) ans = 1 3 2 4 --------- octave:1> Theta1=ones(10,11) Theta1 = 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 octave:2> Theta2=2*ones(10,11) Theta2 = 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 octave:3> Theta3=3*ones(1,11) Theta3 = 3 3 3 3 3 3 3 3 3 3 3 > ThetaVec =[ Theta1(:); Theta2(:); Theta3(:) ]; octave:10> size(ThetaVec) ans = 231 1 ここでsizeは行列のサイズを返し、次のようになる > a=[1,2;3,4;5,6] a = 1 2 3 4 5 6 octave> size(a) ans = 3 2 octave> size(a,1) ans = 3 octave> size(a,2) ans = 2 1> reshape(ThetaVec(1:110), 10, 11) ans = 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ---------------
2016年1月1日金曜日
Cousera Machine Learning / week5-4 めも
Implementation Note: Unrolling Parameters 授業メモ
登録:
コメントの投稿 (Atom)
0 件のコメント:
コメントを投稿