In[]:=
deploy
Wed 27 Jul 2022 16:39:57
In[]:=
stepLen[data_]:=Total[&/@data];GramSchmidt[w_?MatrixQ]:=Module[{v=ConstantArray[0,Length[w]]},Table[v[[n]]=w[[n]]-Sum[(v[[i]].w[[n]]/v[[i]].v[[i]])*v[[i]],{i,1,n-1}],{n,1,Length[w]}];v];d=100;dsize=2000;dist=MultinormalDistribution[DiagonalMatrix[Table[1,{i,1,d}]]];data=RandomVariate[dist,dsize];data=Normalize/@data;getStepsGS[bsize_]:=Mean[stepLen@GramSchmidt@#&/@Partition[data,bsize]];DiscretePlot[getStepsGS[k],{k,1,d,1},PlotLabel->"Step length after orthog",AxesLabel->{"batch size","effective step"}]
2
Norm[#]
Out[]=
In[]:=
norm2[mat_]:=With[{f=Flatten[mat]},Total[f*f]];x1={1,0};x2={1,1};{x1,x2}=Normalize/@{x1,x2};{y1,y2}=mgs[{x1,x2}];data1={x1,x2};data2={y1,y2};Show[Graphics[Arrow[{{0,0},#}]&/@data1],Axes->True,PlotLabel->StringForm["Before GS,total =``",N@stepLen[data1]],AspectRatio->1,PlotRange->{{0,1},{0,1}}]Show[Graphics[Arrow[{{0,0},#}]&/@data2],Axes->True,PlotLabel->StringForm["After GS,total =``",N@stepLen[data2]],AspectRatio->1,PlotRange->{{0,1},{0,1}}]
2
length
2
length
Out[]=
Out[]=