。
00
畳み込みニューラルネットワーク(CNNまたはCROMNET)は深层学习に不可能なツールでありでありますますいいますてイメージをイメージをををををイメージイメージイメージイメージイメージをイメージをますますますます予测イメージイメージイメージイメージデータデータますデータデータデータデータデータデータデータデータデータをするために,ネットワークの最后に回帰层をことができことができ。
。
オプションで,imrotate.
(图像处理工具箱™)をを用してイメージを回転せせ箱形图
(统计和机器学习工具箱™)をを用して残差のひげ図を作物
データデータには,手书きの数码のイメージと各イメージ対応する回転(度単位)が含ま含まれいいますますますますいます。
digittrain4darraydata.
とdigittest4darraydata.
をを使て学习と検证イメージを4次元配列として読み込みます。能力ytrain.
およびyvalidation.
は回転角度(度単位)です。学习データデータセットと検证データセットはそれぞれそれぞれはははそれぞれはいはははいいいいいいいい
[XTrain,〜,Ytrain] = Digittrain4darraydata;[xvalidation,〜,yvalidation] = dimittest4darraydata;
imshow.
をを使し,ランダムに选ばれたたのます表示しししししし
numtrainimages = numel(ytrain);图idx = randperm(numtrainimages,20);为了i = 1:numel(idx)子图(4,5,i)imshow(xtrain(:,:,:,idx(i)))结尾
ニューラルネットワークに学习させるときは,ネットワークネットワークすべての段阶でデータ正式化れてことを确认と,多重の场役にます。正式化は,勾配はは,勾配降はをますたの降を使使しネットワーク习习の使化た习习降定定化化高度化学に有效です。データデータが适切にスケーリングされていない场场,さいないに损失损失南
になり,ネットワークパラメーターが発散する可性がありますます。データデータ正式するます。データ规正式するな方法として,データの范囲が[0,1]になるになるに,または平等が0で标准偏差が1になるように,データデータを再スケーリングスケーリングするありありありをををを正式化。
入にに力する前ににで,このこのは,入力イメージは[0,1]にに正式化。
施力。バッチ正规化学をする,畳み込み层と全全层それぞれについてについて正式化ます。
応答正正式化层をしてネットワークの最后で正式化するで予测の正式にれれのがスケールこれらこれらの予测とにスケールこれらこれらののににがこれらのののに异なるこれらこれらののに异なるこれらこれらこれらのの异なる异なるこれら场场の异なる异なるこれら场异なる学习が收束しないことがありますますありありますされないにされいない场は,正文化をて,ネットワーク学习がされるか确认てください。学习の前応答を正式化するする応答をを化するを。ネットワークネットワークの予测を変换し,元元の応答の予测を求めばなりなりませ
応答の分布をプロットしします。応答(度単位の回転角度角度ます,-45と45の间でほぼ様しおり问题ありませんありありん。分别あり,常に正析されいます。
图直方图(YTrain)轴紧的ylabel('算作')Xlabel('旋转角度')
一般的に,データを厳密に正式化する,この例でませ。ytrain.
ではなく100 * ytrain
またはYTrain + 500.
をを予测するためににネットワークに习ささせる场,学校を开始する,损失が南
にに,ネットワークパラメーターが発散ます。AY + B.を予测するネットワークとyを予测するネットワークとが,最后の全全层层重みとバイアスの単纯再しかしか违わても,このような结果もます。
入力または応答の分布が非常に不均一な场合や偏っている场合は,ネットワークの学习前にデータを非线形変换(対数を取るなど)することもできます。
回帰问题を解くに,ネットワークの层を作用成し,ネットワークの最后に回帰层を含め。
最初の层は,入力データのサイズとを定义します。入力イメージは28 x 28 x 1です。[28 x 28 x 1。
ネットワークの中间は,计算と学习の大部が行わ,ネットワークの中间を成すアーキテクチャをします。
最后の层は,出力データのサイズとタイプを定义します。回帰问题を解くには,ネットワークの最后の回帰层の前に全结合层を配置しなければなりません。サイズ1の全结合出力层,およびおよび回帰层作作作作作作者。
配列层
ですべての层をまとめます。
图层= [imageInputlayer([28 28 1])卷积2dlayer(3,8,'填充'那'相同的')BatchnormalizationLayer Rublayer普通泡泡液(2,'走吧',2)卷积2dlayer(3,16,'填充'那'相同的')BatchnormalizationLayer Rublayer普通泡泡液(2,'走吧',2)卷积2dlayer(3,32,'填充'那'相同的')BatchnormalizationLayer Ruilulayer卷积2dlayer(3,32,'填充'那'相同的')BatchnormalizationLayer Rufulayer Dropoutrayer(0.2)全连接层(1)回归层];
ネットワーク学习オプションを作品成型。学期を30エポック行为ます。初期学习率を0.001に设定し,20エポック后に学习率ますますと検证频度を指定て,学校中间にの精密度监视します。学习データデータでネットワークににさせ,学校中间に一定间隔で検证に対してその精密を计算します。検证データは,ネットワークのの更にはさません。状况プロットをオンにし,コマンドウィンドウの出力をオフにします。
minibatchsize = 128;验证频率=地板(Numel(YTrain)/小型匹配);选项=培训选项('sgdm'那......'minibatchsize',小匹马,......'maxepochs',30,......'italllearnrate',1e-3,......'shownrateschedule'那'分段'那......'学习ropfactor',0.1,......'学习ropperiod'20,......'洗牌'那'每个时代'那......'vightationdata',{xvalidation,yvalidation},......'验证职业',验证职权,......'plots'那'培训 - 进步'那......'verbose',错误的);
Trainnetwork.
をを使しネットワークをを。このこのでは,互换性のあるgpuが利用できる料は,そのgpuが使使れます。Trainnetwork.
ではCPUががが使さます。GPUで学习をには,计算能力3.0以上のcuda®対応nvidia®gpuが必要。
net = trainnetwork(xtrain,ytrain,图层,选项);
网
の层数
プロパティに含まれるネットワークアーキテクチャの详细を确认します。
Net.Layers.
ANS = 18×1层阵列,层数:1'ImageInput'图像输入28×28×1图像与“Zerocenter”归一化2'CONC_1'卷积8 3×3×1卷绕卷曲[1 1]并填充'同样'3'Batchnorm_1'批量归一化批量归一化用8个通道4'Relu_1'Relu Relu 5'AvgPool2D_1'平均池2×2平均汇集步进[2 2]和填充[0 0 0 0] 6'CONC_2'卷积16 3×3×8卷绕升序[11]和填充'相同'7'Batchnorm_2'批量归一化批量归一化与16个通道8'Relu_2'Relu Relu 9'AvgPool2D_2'平均池2×2平均汇集步进[2]和填充[0 0 0 0] 10'CROM_3'卷积32 3×3×16卷绕升温[11]和填充'相同的'11'BATCHNOMM_3'批量归一化批量归一批与32个通道12'Relu_3'Relu Relu 13'Conv_4'卷积32 3×3×32卷曲的卷发[1 1]和填充'相同的'14'Batchnorm_4'批量归一化批量标准化,32通道15'Relu_4'Relu RELU 16'丢弃'辍学20%丢失17'FC'完全连接的1完全连接的层18'回归输出输出均值均匀误差响应'响应'
検证データに対する精密を评価ことによって,ネットワーク性能をテストます。
预测
をを使て,検证イメージの回転角度をしします。
ypreedicte =预测(net,xvalidation);
性能の评価
次の计算を行て,モデルの性能を评価し。
许容误差限于内にある予测の比率
回転角度の予测値ととの値の平方平根二乘二乘(RMSE)
predictionerror = yvalidation - Y预期;
真ををます设定ます値をの内にあるのの范囲内にのの比率をしますの比率を计算ますますの比率を计算します予测比率を计算しますの比率ををしますの比率比率を计算しますの比率を计算しますの比率を计算します。
thr = 10;numcorrect = sum(abs(predictionError)
精度= 0.9690.
平方平平台二乘误差(RMSE)をを用して,回転角度の予测と実际の値の差测定ししますしますののの测定し。
正方形=预测值。^ 2;RMSE = SQRT(平均值(正方形))
RMSE =.单身的4.6062
散散値予测ますししををしししますますをプロットしししプロットししししししし
图分散(Y预期,YValidation,'+')Xlabel(“预测值”)ylabel(“真实价值”) 抓住上图([ - 60 60],[-60 60],'r--')
图像处理工具箱の关键词使て,数目をまっすぐし,まとめまとめ表示でき。imrotate.
(图像处理工具箱)をを用して,49个の数据库本をの予测回転角度にて回転せせます応じ回転さます。
idx = randperm(numvalidationImages,49);为了i = 1:numel(idx)图像= xvalidation(:,:,:,idx(i));predictentangle = ypreedicted(idx(i));iconiageRotated(::,:,i)= imrootate(图像,predictentangle,'bicubic'那'庄稼');结尾
元元数码と回転回転正后后をを表示しし剪辑
(图像处理工具箱)をを用して,数码を1つのイメージにて表示ます。
图形子图(1,2,1)蒙太奇(xvalidation(:,:,:,idx))标题('原来的')子图(1,2,2)蒙太奇(Imagesotated)标题('纠正')