主要内容

最新のリリースは,このページがまだ翻訳されいません。このページの最新版は英語でご覧になれます。

分享用のシンプルなな学习ネットワークの作作作作者

このこのでは,深层学习による分类用途のシンプルな畳み込みニューラルネットワーク作品しをニューラルしします。畳み込みニューラルネットワークはます习に不可能なであり,特价にイメージの认识ツール适していいいい

このこのでは,以以を実行するをますます。

  • イメージデータの読み込みと確認。

  • ネットワークアーキテクチャの定义。

  • 学习オプションの指定。

  • ネットワークに学習をさせます。

  • 新しいデータのラベルの予測と分類精度の計算。

イメージデータの読み込みと确认

数字の标本データをデータストアストアとしてます。imageDatastoreは,フォルダー名に基づいてイメージに自動的にラベルを付け,データをimageageAtastore.オブジェクトとして格式します。イメージデータストアを使使すると,メモリに收まらないデータなど大大イメージデータを格式し,畳み込み畳み込みネットワークの学习中间にイメージを単位で效率読み取ることができで效率読み取るますます效率

digitdatasetpath = fullfile(matlabroot,“工具箱”'nnet''nndemos'......'nndatasets''digitdataset');imd = imageDatastore (digitDatasetPath,......“IncludeSubfolders”,真正,“LabelSource”'foldernames');

データデータストアのイメージイメージをか表示しし

图;烫= randperm(10000年,20);对于我= 1:20子图(4,5,i);imshow(imds.files {perm(i)});结束

各カテゴリのイメージのををします。labelCount.は,ラベル,およびそれぞれのラベルが付いているイメージの数を格納する表です。データストアには0 ~ 9の数字それぞれについて1000個のイメージ,合計で10000個のイメージが含まれます。ネットワークの最後の全結合層のクラス数を引数输出として指定できます。

labelCount = countEachLabel (imd)
labelcount =10×2表标签数_____ _____ 0 1000 1 1000 2 1000 3 1000 4 1000 5 1000 6 1000 7 1000 8 1000 9 1000

00digitdata.イメージのはそれぞれししし确认しししし确认ししししししししししししししししししししししししし确认确认确认确认确认确认确认确认确认确认确认确认し确认

IMG = ReadImage(IMDS,1);尺寸(IMG)
ans =.1×228 28.

学习セットと検证セットの指定

データを学习データセットセット検证データセットににし,学校セットの各にに750个のイメージがれ,検证セットに各の残りのが含まれるようにしがが含まようにしし。spliteachlabel.は,データストアdigitdata.を2つの新闻データストアTrainDigitdata.valdigitdata.に分享します。

numTrainFiles = 750;[imdsTrain, imdsValidation] = splitEachLabel (imd, numTrainFiles'随机化');

ネットワークアーキテクチャの定义

畳み込みニューラルネットワークアーキテクチャを定義します。

[imageInputLayer([28 28 1]) convolution2dLayer(3,8,'填充'“相同”)BatchnormalizationLayer Ruilulayer MaxPooling2dlayer(2,'走吧'2) convolution2dLayer(16日'填充'“相同”)BatchnormalizationLayer Ruilulayer MaxPooling2dlayer(2,'走吧',2)卷积2dlayer(3,32,'填充'“相同”) batchNormalizationLayer relullayer fullconnectedlayer (10) softmaxLayer classiationlayer];

イメージイメージ力量imageInputlayer.ににはイメージサイズを指定ししししではははははははははは,高度,幅,およびチャネルサイズします。数码データはグレースケールます。(カラーチャネル)は1です。カラーカラーイメージの対応対応しチャネルサイズ3にになりなりてサイズははははなりなりデータサイズははははははは,Trainnetwork.により既定で学习の开放时にシャッフルさため,シャッフルの必要はありませ。学习时の各のの开放时にも,Trainnetwork.によりデータは自动的にさされます。

畳み込み层畳み込み層の最初の引数は过滤ですこれ,イメージのスキャン时尚学院关有关部用さされるフィルターのとととを示しますます。この例はフィルターサイズが3 x 3であること示してが。幅幅には异なるサイズサイズ指定できできでき2できののnumfilters.これは,入力の领域にするによって,特色,特殊マップのがされます。名称と値のペアれます。'填充'ををの特てにパディングのストライドがししががが层の场合,“相同”パディングパディング空间ののサイズが力サイズと同じなりますなりなりなりconvolution2dLayerの名前と値のペアの引数を使用して,この层のストライドと学习率を定义することもできます。

バッチ正规化学バッチ正規化層は,ニューラルネットワークを通じて伝播される活性化と勾配を正規化します。これにより,ネットワークの学習は簡単な最適化問題になります。畳み込み层の間にあるバッチ正規化層と、ReLU 層などの非線形性を使用して、ネットワークの学習速度を上げ、ネットワークの初期化に対する感度を下げます。BatchnormalizationLayer.をを使し,バッチ正规化层作物成し。

ReLU層バッチ正式化层のに非形活性形活性に非形活性ます続きますます。抵押者を使用して,ReLU層を作成します。

最大プーリング层畳み込み层(とと化有关系)のので,ダウンサンプリング致理性を行うがあります。これにより,特点徴空空サイズ缩小され,冗长な空ますますれます。な计算量を増やさずに,より深い畳み込み层のフィルターの数を増やすことができます。ダウンサンプリングの1つの方法が最大プーリングの使用です。これは,maxpooling2dlayer.を使用して作用成します大大プーリングは,最初最初次数poolSizeによって指定された,入力の矩形領域の最大値を返します。この例では,矩形領域のサイズは(2,2)です。名前と値のペアの引数'走吧'は,入力に沿ってスキャンときに习习取る取るステップサイズを指定指定し

全结合成畳み込み層とダウンサンプリング層の後には,1つ以上の全結合層を配置します。その名前からわかるように,全結合層はニューロンが前の層のすべてのニューロンに結合している層です。この層は,前の層によってイメージ全体で学習されたすべての特徴を組み合わせて,より大きなパターンを特定します。最後の全結合層は,これらの特徴を組み合わせてイメージを分類します。そのため,最後の全結合層の输出パラメーターは,ターゲットデータのクラスクラスとなります。この例では,10个のクラス対応対応て,出力サイズが10になっなっています。全康统计层をを用して,全结合层を作用成し。

ソフトマックス层ソフトソフト活性化有关部は,全结合层ののを正式化します。ソフトソフトマックス层ののしははががががががががががの数码で成されおり,分享最后でさおりとしてできでき。全结合层の后に关联有关系softmaxlayer.をを使使ててソフトマックスをを作物

分享最后の层はは层ですこのは,ソフトソフトマックス活性活性れ各入力についてれれ确率使使て,互いつに排他をて,互いつにを割り当,损失つにをての。分享层を作物成するは,分类层を使用します。

学習オプションの指定

ネットワーク構造を定義した後,学習オプションを指定します。初期学習率0.01をとしたモーメンタム項付き確率的勾配降下法(个)を使用して,ネットワークに学習させます。エポックの最大数を4に設定します。エポックとは,学習データセット全体の完全な学習サイクルのことです。検証データと検証頻度を指定して,学習中にネットワークの精度を監視します。すべてのエポックでデータをシャッフルします。学習データでネットワークに学習させ,学習中に一定の間隔で検証データに対してその精度を計算します。検証データは,ネットワークの重みの更新には使用されません。学習の進行状況プロットをオンにして,コマンドウィンドウの出力をオフにします。

选择= trainingOptions ('sgdm'......'italllearnrate',0.01,......'maxepochs'4......'洗牌'“every-epoch”......“ValidationData”,imdsvalidation,......“ValidationFrequency”30岁的......'verbose'假的,......'plots''培训 - 进步');

学習データを使用したネットワークの学習

层数,学校データ,および学习オプションによって定义れたアーキテクチャををて,ネットワークに学习せます。Trainnetwork.はGPUを使用します(并行计算工具箱™,および以3.0计算能力上のCUDA®対応GPUが必要)。そうでない場合はCPUが使用されます。trainingOptionsの名前と値のペアの引数'executionenvironment'を使使し,実行环境をするするできでき。

学习の进行状况プロットには,ミニバッチの损失と精密,および検证の损失と精密がされます。学习の进ます。学习の进行。习のののの深层学刊における学习の行状况の监视を参照しください。损失损失交差エントロピー损失。精选は,ネットワークネットワーク正しくですイメージののの合。

网= trainNetwork (imdsTrain层,选项);

検证イメージの分类と精密の计算

学習済みネットワークを使用して検証データのラベルを予測し,最終検証精度を計算します。精度とは,ネットワークによって予測が正しく行われるラベルの割合です。この場合,99%を超える予測ラベルが検証セット内の真のラベルに一致しています。

ypred =对(net,imdsvalidation)分类;yvalidation = imdsvalidation.labels;准确性= SUM(YPRED == YValidation)/ Numel(YValidation)
精度= 0.9988

参考

|||

关键词トピック