主要内容

このページの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。

列车网络

深層学習用のニューラルネットワークの学習

説明

分類および回帰タスクでは,列车网络を使用して、イメージ データを畳み込みニューラル ネットワーク (美国有线电视新闻网、美国有线电视新闻网)に学習させたり、シーケンス データを長短期記憶 (LSTM)やゲート付き回帰ユニット (GRU)などの再帰型ニューラル ネットワーク (RNN)に学習させたり、または数値特徴量データを多層パーセプトロン (MLP)ネットワークに学習させたりできます。1.つの 中央处理器または 1.つの GPUで学習させることができます。イメージ分類やイメージ回帰の場合、複数の GPUまたは並列で学習させることができます。GPU、マルチ GPU、および並列オプションの使用には 并行计算工具箱™ が必要です。深層学習にGPUを使用するには,以3.0计算能力上のCUDA®対応 英伟达®GPUも必要です。実行環境のオプションを含む学習オプションを指定するには,関数trainingOptionsを使用します。

= trainNetwork (imds,,选项)は、イメージ データストアimdsのイメージとラベル,および选项で定義された学習オプションを使用して、イメージ分類タスク用にで指定したネットワークに学習させます。

= trainNetwork (ds,,选项)はデータストアdsによって返されるデータを使用してネットワークに学習させます。この構文は,複数の入力をもつネットワークに対し,結合されたデータストアのような,データの複数の列を返すデータストアと共に使用します。

= trainNetwork (X,Y,,选项)は、数値配列Xで指定したイメージ データまたは特徴データと、Yで指定したカテゴリカル応答または数値応答を使用してネットワークに学習させます。

= trainNetwork (序列,Y,,选项)は,序列で指定したシーケンスデータとYで指定した応答を、再帰型ネットワーク (LSTM)ネットワークや 格鲁ネットワークなど) に学習させます。

= trainNetwork (资源描述,,选项)は、表资源描述のデータを使用してネットワークに学習させます。

= trainNetwork (资源描述,响应名称,,选项)は、表资源描述のデータを使用してネットワークに学習させますが,応答を含む表の列も指定します。

[,信息]=列车网络(___)は、前述の構文のいずれかを使用して学習に関する情報も返します。

すべて折りたたむ

データを图像数据存储オブジェクトとして読み込みます。

digitDatasetPath = fullfile (matlabroot,“工具箱”,“nnet”,...“nndemos”,“数据集”,“DigitDataset”);imd = imageDatastore (digitDatasetPath,...“IncludeSubfolders”,真的,...“LabelSource”,“foldernames”);

データストアには,0 ~ 9の数字から成る10000個の合成イメージが格納されています。イメージは,さまざまなフォントを使用して作成された数字のイメージにランダム変換を適用して生成されたものです。数字のイメージはそれぞれ28 x 28ピクセルです。データストアには、カテゴリごとに同じ数のイメージが含まれます。

データストアのイメージをいくつか表示します。

图numImages = 10000;烫= randperm (numImages 20);对于i=1:20子图(4,5,i);imshow(imds.Files{perm(i)});drawnow;终止

データストアを分割して、学習セットの各カテゴリに 750個のイメージが含まれ、テスト セットに各ラベルの残りのイメージが含まれるようにします。

numTrainingFiles = 750;[imdsTrain, imdsTest] = splitEachLabel (imd, numTrainingFiles“随机”);

拆分标签は,digitData内のイメージ ファイルを 2.つの新しいデータストアimdsTrainimdsTestに分割します。

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

层= [...imageInputLayer([28 1])卷积2Dlayer(5,20)reluLayer MaxPoolig2Dlayer(2,“大步走”,2) fulllyconnectedlayer (10) softmaxLayer classificationLayer;

モーメンタム項付き確率的勾配降下法の既定の設定にオプションを設定します。エポックの最大回数を20に設定し,初期学習率0.0001で学習を開始します。

选择= trainingOptions (“个”,...“MaxEpochs”, 20岁,...“InitialLearnRate”1的军医,...“详细”假的,...“情节”,“训练进步”);

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

net=列车网络(IMD列车、层、选项);

ネットワークの学習に使用されなかったテストセットについて学習済みネットワークを実行し,イメージのラベル(数字)を予測します。

YPred =分类(净,imdsTest);欧美= imdsTest.Labels;

精度を計算します。精度とは,テストデータ内のイメージの数に対する,分类による分類に一致するテストデータ内の真のラベルの数の比率です。

精度=总和(YPred==YTest)/numel(YTest)
精度= 0.9420

拡張イメージデータを使用して,畳み込みニューラルネットワークに学習させます。データ拡張は、ネットワークで過適合が発生したり、学習イメージの正確な詳細が記憶されたりすることを防止するのに役立ちます。

標本データを読み込みます。標本データは、手書き数字の合成イメージで構成されています。

[XTrain, YTrain] = digitTrain4DArrayData;

digitTrain4DArrayDataは,数字の学習セットを4次元配列データとして読み込みます。XTrainは、28 x 28 x 1 x 5000の配列です。

  • 28はイメージの高さと幅。

  • 1はチャネルの数。

  • 5000は手書き数字の合成イメージの数。

YTrainは、各観測値のラベルが含まれる 明确的ベクトルです。

ネットワークの検証用に 1000個のイメージを残しておきます。

idx = randperm(大小(XTrain, 4), 1000);XValidation = XTrain (:,:,:, idx);XTrain (::,:, idx) = [];YValidation = YTrain (idx);YTrain (idx) = [];

サイズ変更,回転,平行移動,反転など,イメージ拡張の前処理オプションを指定する图像数据增强器オブジェクトを作成します。イメージを,水平方向および垂直方向に最大3ピクセルまでのランダムな平行移動をさせたり,最大20度までの回転をさせたりします。

imageAugmenter=imageDataAugmenter(...“RandRotation”(-20年,20),...“随机翻译”3 [3],...“兰迪翻译”3 [3])
imageAugmenter=imageDataAugmenter,其属性为:FillValue:0 RandExlection:0 RandYReflection:0 RandRotation:[-20]RandScale:[1]RandYScale:[1]RandySchear:[0]RandySchear:[0]RandExTranslation:[-3]RandyStralation:[-3]

ネットワーク学習に使用するaugmentedImageDatastoreオブジェクトを作成し、イメージ出力サイズを指定します。学習中、データストアはイメージ拡張の実行とイメージのサイズ変更を行います。データストアは、イメージをメモリに保存せずに拡張します。列车网络は,ネットワークパラメーターを更新した後,その拡張イメージを破棄します。

imageSize=[28 28 1];augimds=增强的图像数据存储(imageSize,XTrain,YTrain,“数据增强”图像增强仪);

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

层=[imageInputLayer(imageSize)卷积2层(3,8,“填充”,“相同”maxPooling2dLayer(2,“大步走”2) convolution2dLayer(16日“填充”,“相同”maxPooling2dLayer(2,“大步走”32岁的,2)convolution2dLayer (3“填充”,“相同”)batchNormalizationLayer reluLayer fullyConnectedLayer(10)softmaxLayer classificationLayer];

モーメンタム項付き確率的勾配降下法の学習オプションを指定します。

选择= trainingOptions (“个”,...“MaxEpochs”15岁的...“洗牌”,“every-epoch”,...“情节”,“训练进步”,...“详细”假的,...“验证数据”,{XValidation,YValidation});

ネットワークに学習をさせます。検証イメージは拡張されないため、検証精度が学習精度より高くなります。

net=列车网络(augimds、层、选项);

標本データを読み込みます。標本データは、手書き数字の合成イメージで構成されています。3番目の出力には,各イメージに対応する回転角度(度単位)が含まれています。

digitTrain4DArrayDataを使用して学習イメージを4次元配列として読み込みます。出力XTrainは 28 x 28 x 1 x 5000の配列で、それぞれは以下を意味します。

  • 28はイメージの高さと幅。

  • 1はチャネルの数。

  • 5000は手書き数字の合成イメージの数。

YTrainには回転角度 (度単位) が含まれます。

[XTrain ~, YTrain] = digitTrain4DArrayData;

imshowを使用して,ランダムに選ばれた20枚の学習イメージを表示します。

figure numTrainImages = nummel (YTrain);idx = randperm (numTrainImages 20);对于i=1:numel(idx)子批次(4,5,i)imshow(XTrain(:,:,:,idx(i)))drawnow;终止

畳み込みニューラル ネットワーク アーキテクチャを指定します。回帰問題の場合、ネットワークの最後に回帰層を含めます。

层= [...imageInputLayer([28 28 1])卷积2层(12,25)完全连通层(1)回归层];

ネットワーク学習オプションを指定します。初期学習率を 0.001に設定します。

选择= trainingOptions (“个”,...“InitialLearnRate”, 0.001,...“详细”假的,...“情节”,“训练进步”);

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

net=列车网络(XTrain、YTrain、图层、选项);

テストデータの予測精度を評価することによって,ネットワーク性能をテストします。预测を使用して、検証イメージの回転角度を予測します。

[XTest ~,欧美]= digitTest4DArrayData;YPred =预测(净,XTest);

回転角度の予測値と実際の値の平方根平均二乗誤差(RMSE)を計算することによって,モデルの性能を評価します。

rmse =√(mean((YTest - YPred).^2)))
rmse =6.0356

要标记的序列分類について深層学習 LSTMネットワークに学習をさせます。

[1] および [2] に記載のある 日语元音データ セットを読み込みます。XTrainは,LPCケプストラム係数に対応する12の特徴をもつ可変長の270個のシーケンスが含まれる细胞配列です。Yは,ラベル1、2、……、9 の categorical ベクトルです。XTrainのエントリは行列で,行数が12(特徴ごとに1行)で,列数が可変(タイムステップごとに1列)です。

[XTrain, YTrain] = japaneseVowelsTrainData;

最初の時系列をプロットで可視化します。各ラインは特徴に対応しています。

图形绘图(XTrain{1}')标题(“培训观察1”)numFeatures=size(XTrain{1},1);图例(“特性”+字符串(1:numFeatures),“位置”,“东北外”)

LSTMネットワーク アーキテクチャを定義します。入力サイズを 12 (入力データの特徴の数) に指定します。100個の隠れユニットを含み、シーケンスの最後の要素を出力するように LSTM層を指定します。最後に、サイズが 9の全結合層を含めることによって 9個のクラスを指定し、その後にソフトマックス層と分類層を配置します。

inputSize=12;numHiddenUnits=100;numClass=9;层=[...sequenceInputLayer inputSize lstmLayer (numHiddenUnits,“OutputMode”,“最后”)fullyConnectedLayer(NumClass)softmaxLayer classificationLayer]
Layer = 5×1 Layer array with layers: 1 " Sequence Input Sequence Input with 12 dimensions 2 " LSTM LSTM with 100 hidden units 3 " Fully Connected 9 Fully Connected Layer 4 " Softmax Softmax 5 " Classification Output crossentropyex . jpg

学習オプションを指定します。ソルバーを“亚当”“梯度阈值”を1に指定します。ミニバッチサイズを27日エポックの最大回数を70に設定します。

ミニバッチが小さく、シーケンスが短いため、学習には 中央处理器が適しています。“执行环境”“cpu”に設定します。GPUが利用できる場合,GPUで学習を行うには,“执行环境”“自动”(既定値)に設定します。

maxEpochs=70;miniBatchSize=27;选项=培训选项(“亚当”,...“执行环境”,“cpu”,...“MaxEpochs”maxEpochs,...“MiniBatchSize”miniBatchSize,...“梯度阈值”1....“详细”假的,...“情节”,“训练进步”);

学習オプションを指定して LSTMネットワークに学習させます。

net=列车网络(XTrain、YTrain、图层、选项);

テスト セットを読み込み、シーケンスを話者別に分類します。

[XTest,YTest]=日本世界统计数据;

テストデータを分類します。学習に使用されるサイズと同じミニバッチサイズを指定します。

YPred=分类(净、XTest、,“MiniBatchSize”,小批量);

予測の分類精度を計算します。

acc = sum(YPred == YTest)./numel(YTest)
acc = 0.9514

数値特徴量のデータセット(空間次元や時間次元のない数値データの集合など)がある場合,特徴入力層を使用して深層学習ネットワークに学習させることができます。

CSVファイル“transmissionCasingData.csv”からトランスミッション ケーシング データを読み取ります。

文件名=“transmissionCasingData.csv”;台= readtable(文件名,“TextType”,“字符串”);

関数convertvarsを使用して、予測のラベルを 明确的に変換します。

labelName =“GearToothCondition”;tbl=转换器(tbl,标签名称,“绝对的”);

カテゴリカル特徴量を使用してネットワークに学習させるには,最初にカテゴリカル特徴量を数値に変換しなければなりません。まず,関数convertvarsを使用して,すべてのカテゴリカル入力変数の名前を格納した字符串配列を指定することにより,カテゴリカル予測子を直言に変換します。このデータセットには,“SensorCondition”“ShaftCondition”という名前の 2.つのカテゴリカル特徴量があります。

categoricalInputNames=[“SensorCondition”“ShaftCondition”];tbl=convertvars(tbl,分类输入名称,“绝对的”);

カテゴリカル入力変数をループ処理します。各変数について次を行います。

  • 関数onehotencodeを使用して,カテゴリカル値を一个炎热符号化ベクトルに変換する。

  • 関数addvarsを使用して、一个热的ベクトルを 桌子に追加する。対応するカテゴリカル データが含まれる列の後にベクトルを挿入するように指定する。

  • カテゴリカルデータが含まれる対応する列を削除する。

对于i=1:numel(categoricalInputNames)name=categoricalInputNames(i);oh=onehotcode(tbl(:,name));tbl=addvars(tbl,oh,“后”、名称);台(:名字)= [];终止

関数斯普利瓦茨を使用して,ベクトルを別々の列に分割します。

台= splitvars(台);

桌子の最初の数行を表示します。カテゴリカル予測子が、カテゴリカル値を変数名として複数の列に分割されていることに注意してください。

头(台)
ans=表8×23SigMean SigMedian SigRMS SigVar SigPeak SigPeak 2peak SigSkewness SigKurtosis SigCrestFactor SigMAD SigRangeCumSum SigCorrDimension SigApproxEntropy SigLyapExponent PeakFreq HighFreqPower EnvPower peakspec峰度无传感器漂移传感器漂移无轴磨损轴磨损齿轮齿状况________ _________ ______ _______ _______ _______________________ ___________ ______________ _______ ______________ ________________ ________________ _______________ ________ _____________ ________ ________________ _______________ ____________ _____________ __________ __________________ - 0.94876 -0.9722 1.3726 0.98387 0.81571 3.6314 -0.041525 2.2666 2.0514 0.8081 1.1429 0.031581 79.931 28562 06.75 e-06 3.23 e-07 162.13 0 1 1 0没有牙齿错-0.97537 -0.98958 1.3937 0.99105 0.81571 3.6314 -0.023777 2.2598 2.0203 0.81017 29418 1.1362 0.037835 70.325 5.08 e-08 9.16 e-08 226.12 0 1 1 0没有牙齿错1.0502 1.0267 1.4449 0.98491 2.8157 3.6314 -0.04162 2.2658 1.9487 0.80853 31710 1.1479 0.031565 125.19 6.74 e-06 2.85 e-07 162.13 0 1 0 1没有牙错1.0227 1.0045 1.4288 0.99553 2.8157 3.6314 -0.016356 2.2483 1.9707 0.81324 30984 1.1472 0.032088 112.5 4.99 e-06 2.4 e-07 162.13 0 1 0 1没有牙齿错1.0123 1.0024 1.4202 0.99233 2.8157 3.6314 -0.014701 2.2542 1.9826 0.81156 30661 1.1469 0.03287 108.86 3.62 e-06 2.28 e-07 230.39 0 1 0 1没有牙齿错1.0275 1.0102 1.4338 1.00012.8157 3.6314 -0.02659 2.2439 1.9638 0.81589 31102 1.0985 0.033427 64.576 2.55 e-06 1.65 e-07 230.39 0 1 0 1没有牙齿错1.0464 1.0275 1.4477 1.0011 2.8157 3.6314 -0.042849 2.2455 1.9449 0.81595 31665 1.1417 0.034159 98.838 1.73 e-06 1.55 e-07 230.39 0 1 0 1没有牙齿错1.0459 1.0257 1.4402 0.98047 2.8157 3.6314 -0.035405 2.2757 1.955 0.8058331554 1.1345 0.0353 44.223 0 1.11e-06 1.39e-07 230.39 0 1 0 1 No Tooth Fault

データセットのクラス名を表示します。

一会=类别(台{:,labelName})
类名=2×1电池{‘无齿故障’}{‘齿故障}

次に、データ セットを学習用区画とテスト用区画に分割します。データの 15% をテスト用に残しておきます。

各区画の観測数を求めます。

numObservations=大小(待定,1);numObservationsTrain=地板(0.85*numObservations);numObservationsTest=numObservations-numObservationsTrain;

観測値に対応するランダムなインデックスの配列を作成し,区画サイズを使用して分割します。

idx = randperm (numObservations);idxTrain = idx (1: numObservationsTrain);idxTest = idx (numObservationsTrain + 1:结束);

インデックスを使用して、データの 桌子を学習用、検証用、およびテスト用の区画に分割します。

tblTrain=tbl(idxTrain,:);tblTest=tbl(idxTest,:);

特徴入力層を使用してネットワークを定義し,特徴の数を指定します。またzスコア正規化を使用してデータを正規化するように入力層を構成します。

numFeatures=size(待定,2)-1;NumClass=numel(类名);layers=[featureInputLayer(numFeatures,“归一化”,“zscore”)fullyConnectedLayer(50)批次规格化层reluLayer fullyConnectedLayer(numClasses)softmaxLayer分类层];

学習オプションを指定します。

miniBatchSize=16;选项=培训选项(“亚当”,...“MiniBatchSize”miniBatchSize,...“洗牌”,“every-epoch”,...“情节”,“训练进步”,...“详细”、假);

、学習データ、および学習オプションによって定義されたアーキテクチャを使用して、ネットワークに学習させます。

net=列车网络(TBL列车、层、选项);

学習済みネットワークを使用してテスト データのラベルを予測し、精度を計算します。精度は、ネットワークが正しく予測するラベルの比率です。

YPred=分类(净、待测试、,“MiniBatchSize”,miniBatchSize);YTest=tblTest{:,labelName};精度=sum(YPred==YTest)/numel(YTest)
精度= 0.9688

入力引数

すべて折りたたむ

イメージとラベルが格納されたイメージデータストア。图像数据存储オブジェクトとして指定します。

関数imageDatastoreを使用してイメージデータストアを作成します。イメージが格納されたフォルダーの名前をラベルとして使用するには,“LabelSource”オプションを“foldernames”に設定します。あるいは、イメージ データストアの标签プロパティを使用して手動でラベルを指定します。

関数列车网络は,イメージ分類ネットワーク用のイメージデータストアのみをサポートします。回帰ネットワーク用のイメージデータストアを使用するには,関数变换および结合を使用して、変換または結合されたデータストアを作成します。詳細については、ds入力引数を参照してください。

图像数据存储を使用すると,事前取得を使用してJPGまたはPNGイメージファイルのバッチ読み取りを行うことができます。イメージの読み取りにカスタム関数を使用する場合,图像数据存储は事前取得を行いません。

ヒント

イメージのサイズ変更を含む深層学習用のイメージの前処理を効率的に行うには、augmentedImageDatastoreを使用します。

imageDatastorereadFcnオプションは通常,速度が大幅に低下するため,前処理またはサイズ変更に使用しないでください。

メモリ外のデータおよび前処理用のデータストア。

次の表に、列车网络と直接互換性のあるデータストアを示します。関数变换および结合を使用して、深層学習ネットワークに学習させるための他の組み込みデータストアを使用できます。これらの関数は、データストアから読み取られたデータを、列车网络に必要な表または细胞配列形式に変換できます。複数の入力があるネットワークの場合,データストアは結合または変換されたデータストア,またはカスタムミニバッチデータストアでなければなりません。詳細については,深層学習用のデータストアを参照してください。

データストアのタイプ 説明
CombinedDatastore 2つ以上の基になるデータストアから読み取られたデータを水平方向に連結します。
TransformedDatastore 基になるデータストアからの読み取りデータのバッチを独自の前処理パイプラインに従って変換します。
增强图像数据存储 深層ニューラルネットワークに学習させるために,サイズ変更,回転,反転,せん断,平行移動を含む,ランダムなアフィン幾何変換を適用します。
像素标签图像数据存储(计算机视觉工具箱) セマンティック セグメンテーション ネットワークに学習させるために、イメージおよび対応するグラウンド トゥルース ラベルに対して、同一のアフィン幾何変換を適用します (计算机视觉工具箱)™ が必要)。
随机抽取数据存储(图像处理工具箱) イメージまたはピクセルラベルイメージからランダムパッチのペアを抽出します(图像处理工具箱™が必要)。オプションで,同一のランダムなアフィン幾何変換をパッチのペアに適用できます。
去噪图像数据存储(图像处理工具箱) ノイズ除去ネットワークに学習させるために、ランダムに生成されたガウス ノイズを適用します (图像处理工具箱)が必要)。
カスタムミニバッチデータストア シーケンス,時系列,テキスト,または特徴データのミニバッチを作成します。詳細は、カスタムミニバッチデータストアの開発を参照してください。

データストアは、表または细胞配列でデータを返さなければなりません。データストア出力の形式は,ネットワークアーキテクチャによって異なります。

ネットワーク アーキテクチャ データストア出力 出力の例
単入力層

2.列の 桌子または 单间牢房配列。

最初の列と2番目の列は,それぞれ予測子と応答を指定します。

表の要素は,スカラー,行ベクトルであるか,数値配列が格納された1行1列の细胞配列でなければなりません。

カスタムミニバッチデータストアは,表を出力しなければなりません。

data =阅读(ds)
data = 4×2 table Predictors Response __________________ ________ {224×224×3 double} 2 {224×224×3 double} 7 {224×224×3 double} 9 {224×224×3 double} 9
data =阅读(ds)
data=4×2单元数组{224×224×3 double}{[2]}{224×224×3 double}{[7]}{224×224×3 double}{[9]}{224×224×3 double}{[9]}
多入力層

(numInputs+ 1) 列の 单间牢房配列。numInputsはネットワーク入力の数です。

最初のnumInputs個の列は各入力の予測子を指定し,最後の列は応答を指定します。

入力の順序は、層グラフ输入名称プロパティによって指定します。

data =阅读(ds)
Data = 4×3 cell array {224×224×3 double} {128×128×3 double} {[2]} {224×224×3 double} {128×128×3 double} {[2]} {224×224×3 double} {128×128×3 double} {[9]} {224×224×3 double} {128×128×3 double} {[9]}

予測子の形式は、データのタイプによって異なります。

データ 予測子の形式
2.次元イメージ

高x宽x高の数値配列。ここで、h、 w、および Cは、それぞれイメージの高さ、幅、およびチャネル数です。

3次元イメージ

高x宽x深x深の数値配列。ここで、h、 w、d、および Cは、それぞれイメージの高さ、幅、深さ、およびチャネル数です。

ベクトル シーケンス

c行s列の行列。ここで,c はシーケンスの特徴の数、s はシーケンス長です。

2.次元イメージ シーケンス

h x w x c sの配列。ここで,h、w、および c はそれぞれイメージの高さ、幅、およびチャネル数に対応します。s はシーケンス長です。

ミニバッチ内の各シーケンスは,同じシーケンス長でなければなりません。

3.次元イメージ シーケンス

h x w x d x c sの配列。ここで,h、w、d、および c は、それぞれイメージの高さ、幅、深さ、およびチャネル数に対応します。s はシーケンス長です。

ミニバッチ内の各シーケンスは,同じシーケンス長でなければなりません。

特徴

c行1列の列ベクトル。cは特徴の数です。

桌子で返される予測子の場合、要素に、数値スカラー、数値行ベクトルが含まれているか、または数値配列が格納された 1.行 1.列の 单间牢房配列が含まれていなければなりません。

関数列车网络は,複数のシーケンス入力層をもつネットワークをサポートしていません。

応答の形式は,タスクのタイプによって異なります。

タスク 応答の形式
分類 直言スカラー
回帰

  • スカラー

  • 数値ベクトル

  • イメージを表す3次元数値配列

顺序对顺序分類

カテゴリカル ラベルの 1.行 s列のシーケンス。ここで、sは対応する予測子シーケンスのシーケンス長です。

顺序对顺序回帰

R行s列の行列。ここで,R は応答の数、s は対応する予測子シーケンスのシーケンス長です。

表で返される応答の場合,要素は,直言スカラー,数値行ベクトルであるか,数値配列が格納された1行1列の细胞配列でなければなりません。

イメージデータまたは特徴データ。数値配列として指定します。配列のサイズは入力のタイプによって以下のように異なります。

入力 説明
2.次元イメージ h x w x c x Nの数値配列。ここで,h、w、および c は、それぞれイメージの高さ、幅、およびチャネル数です。N はイメージの数です。
3次元イメージ h x w x d x c x Nの数値配列。ここで,h、w、d、および c は、それぞれイメージの高さ、幅、深さ、およびチャネル数です。N はイメージの数です。
特徴 N行numFeatures列の数値配列。ここで,N は観測値の数、numFeaturesは入力データの特徴の数です。

配列にが含まれる場合,ネットワーク全体に伝播されます。

シーケンスデータまたは時系列データ。数値配列のN行1 列の cell 配列 (N は観測値の数)、または 1 つのシーケンスを表す数値配列として指定します。

单间牢房配列入力または数値配列入力の場合、シーケンスが含まれる数値配列の次元は、データのタイプによって異なります。

入力 説明
ベクトル シーケンス c行s列の行列。ここで,c はシーケンスの特徴の数、s はシーケンス長です。
2.次元イメージ シーケンス 高x宽x高x低の配列。ここで、h、 w、および Cは、それぞれイメージの高さ、幅、およびチャネル数に対応します。sはシーケンス長です。
3.次元イメージ シーケンス H x w x d x c x s。ここで,h、w、d、および c は、それぞれ 3 次元イメージの高さ、幅、深さ、およびチャネル数に対応します。s はシーケンス長です。

データストアを使用してシーケンスを指定するには、ds入力引数を使用します。

応答。ラベルの 明确的ベクトル、数値配列、カテゴリカル シーケンスの 单间牢房配列、または数値シーケンスの 单间牢房配列として指定します。Yの形式は、タスクのタイプによって異なります。応答にが含まれていてはなりません。

分類

タスク 形式
イメージ分類または特徴分類 ラベルの N行 1.列の 明确的ベクトル。Nは観測値の数です。
要标记的序列分類
顺序对顺序分類

ラベルのカテゴリカルシーケンスのN行1列の细胞配列。Nは観測値の数です。各シーケンスには,対応する予測子シーケンスと同じ数のタイムステップがなければなりません。

観測値が1つのsequence-to-sequence分類タスクでは,序列をベクトルにすることもできます。この場合,Yは、ラベルのカテゴリカル シーケンスでなければなりません。

回帰

タスク 形式
2.次元イメージ回帰
  • N行 R列の行列。ここで、Nはイメージの数、Rは応答の数です。

  • h x w x c x Nの数値配列。ここで,h、w、および c は、それぞれイメージの高さ、幅、およびチャネル数です。N はイメージの数です。

3次元イメージ回帰
  • N行 R列の行列。ここで、Nはイメージの数、Rは応答の数です。

  • h x w x d x c x Nの数値配列。ここで,h、w、d、および c は、それぞれイメージの高さ、幅、深さ、およびチャネル数です。N はイメージの数です。

sequence-to-one回帰 N行 R列の行列。ここで、Nはシーケンスの数、Rは応答の数です。
顺序对顺序回帰

数値シーケンスのN行1列の细胞配列。ここでNはシーケンスの数です。シーケンスはR行の行列で,Rは応答の数です。各シーケンスには,対応する予測子シーケンスと同じ数のタイムステップがなければなりません。

観測値が1つのsequence-to-sequence回帰タスクでは,序列を行列にすることができます。この場合,Yは,応答の行列でなければなりません。

特徴回帰

N行R列の行列。Nは観測値の数,Rは応答の数です。

応答の正規化は、回帰用のニューラル ネットワークの学習の安定化と高速化に役立つことがよくあります。詳細については、回帰用の畳み込みニューラルネットワークの学習を参照してください。

入力データ。予測子と応答が格納された 桌子として指定します。桌子の各行は観測値に対応します。

桌子の列での予測子と応答の配置は、タスクのタイプによって異なります。

分類

タスク 予測子 応答
イメージ分類
  • イメージの絶対ファイルパスまたは相対ファイルパス。単一列の文字ベクトルとして指定します。

  • イメージ。3次元数値配列を含む1行1列の细胞配列として指定します。

予測子は、表の最初の列に格納されていなければなりません。

カテゴリカルラベル

要标记的序列分類

シーケンス データまたは時系列データを含む 小地毯ファイルの絶対ファイル パスまたは相対ファイル パス。

垫ファイルには,行がデータ点に対応し,列がタイムステップに対応する行列で表される時系列が含まれていなければなりません。

予測子は、表の最初の列に格納されていなければなりません。

カテゴリカルラベル

顺序对顺序分類

垫ファイルの絶対ファイルパスまたは相対ファイルパス。垫ファイルには,エントリが各タイムステップのラベルに対応する直言ベクトルで表される時系列が含まれていなければなりません。

特徴分類

数値スカラー。

响应名称引数を指定しない場合、予測子は 桌子の最初のnumFeaturesの列になければなりません。numFeaturesは入力データの特徴の数です。

カテゴリカルラベル

イメージまたはシーケンス入力のある分類ネットワークでは、响应名称を指定しない場合、関数は既定で、资源描述の最初の列を予測子に使用し,2番目の列をラベルとして使用します。特徴入力のある分類ネットワークでは,响应名称引数を指定しない場合,関数は既定で,资源描述の最初の (numColumns - 1)個の列を予測子に使用し,最後の列をラベルに使用します。ここで,numFeaturesは入力データの特徴の数です。

回帰

タスク 予測子 応答
イメージ回帰

  • イメージの絶対ファイルパスまたは相対ファイルパス。文字ベクトルとして指定します。

  • イメージ。3次元数値配列を含む1行1列の细胞配列として指定します。

予測子は、表の最初の列に格納されていなければなりません。

  • スカラー値から成る1つ以上の列

  • 数値行ベクトル

  • 3.次元数値配列を含む 1.行 1.列の 单间牢房配列

sequence-to-one回帰

シーケンス データまたは時系列データを含む 小地毯ファイルの絶対ファイル パスまたは相対ファイル パス。

垫ファイルには,行がデータ点に対応し,列がタイムステップに対応する行列で表される時系列が含まれていなければなりません。

予測子は、表の最初の列に格納されていなければなりません。

  • スカラー値から成る1つ以上の列

  • 数値行ベクトル

顺序对顺序回帰

垫ファイルの絶対ファイルパスまたは相対ファイルパス。垫ファイルには,行が応答に対応し,列がタイムステップに対応する行列で表される時系列が含まれていなければなりません。

特徴回帰

1.つ以上の列でスカラーとして指定された特徴。

响应名称引数を指定しない場合、予測子は 桌子の最初のnumFeaturesの列になければなりません。numFeaturesは入力データの特徴の数です。

スカラー値から成る1つ以上の列

イメージまたはシーケンス入力のある回帰ネットワークでは,响应名称を指定しない場合、関数は既定で、资源描述の最初の列を予測子に使用し、後続の列を応答として使用します。特徴入力のある回帰ネットワークでは、响应名称引数を指定しない場合,関数は既定で,最初のnumFeatures個の列を予測子に使用し,後続の列を応答に使用します。ここで,numFeaturesは入力データの特徴の数です。

応答の正規化は、回帰用のニューラル ネットワークの学習の安定化と高速化に役立つことがよくあります。詳細については、回帰用の畳み込みニューラルネットワークの学習を参照してください。

応答にを含めることはできません。予測子データにが含まれる場合,学習を経由して伝播されます。ただし,ほとんどの場合に学習が収束しなくなります。

データ型:表格

入力テーブルの応答変数の名前。次のいずれかとして指定します。

  • 1つの応答をもつ分類または回帰タスクの場合,响应名称は,入力テーブルに応答変数が格納された文字ベクトルまたは字符串スカラーでなければなりません。

    複数の応答をもつ回帰タスクの場合、响应名称は,入力テーブルに応答変数が格納された字符串配列または文字ベクトルの细胞配列でなければなりません。

データ型:烧焦|单间牢房|字符串

ネットワーク層。配列または分层图オブジェクトとして指定します。

すべての層が順に結合されたネットワークを作成する場合,配列を入力引数として使用できます。この場合,返されるネットワークは、系列网络オブジェクトになります。

有向非循環グラフ(DAG)ネットワークは複雑な構造を持ち,層は複数の入出力を持てます。DAGネットワークを作成するには,ネットワークアーキテクチャを分层图オブジェクトとして指定して,その層グラフを列车网络の入力引数として使用します。

組み込まれている層の一覧については,深層学習層の一覧を参照してください。

学習オプション。関数trainingOptionsによって返されるTrainingOptionsSGDMTrainingOptionsRMSProp,または培训选项ADAMオブジェクトとして指定します。

出力引数

すべて折りたたむ

学習済みネットワーク。系列网络オブジェクトまたはDAGNetworkオブジェクトとして返されます。

配列を使用してネットワークに学習させる場合、系列网络オブジェクトになります。分层图オブジェクトを使用してネットワークに学習させる場合,DAGNetworkオブジェクトになります。

学習に関する情報。構造体として返されます。ここで、各フィールドは、学習の反復ごとに 1.つの要素を持つスカラーまたは数値ベクトルです。

分類タスクでは,信息に次のフィールドが含められます。

  • 培训损失— 損失関数値

  • 训练准确性——学習精度

  • 验证损失— 損失関数値

  • 验证准确性——検証精度

  • BaseLearnRate— 学習率

  • FinalValidationLoss— 最終検証損失

  • 最终验证准确性——最終検証精度

回帰タスクでは,信息に次のフィールドが含められます。

  • 培训损失— 損失関数値

  • 培训RMSE— 学習の RMSE値

  • 验证损失— 損失関数値

  • ValidationRMSE— 検証の RMSE値

  • BaseLearnRate— 学習率

  • FinalValidationLoss— 最終検証損失

  • FinalValidationRMSE——最終検証RMSE

选项で検証データが指定されている場合,構造体にはフィールド验证损失验证准确性ValidationRMSEFinalValidationLoss最终验证准确性,およびFinalValidationRMSEのみが含まれます。trainingOptions“ValidationFrequency”オプションは,検証メトリクスの計算が行われる反復を決定します。最終検証メトリクスはスカラーです。構造体の他のフィールドは行ベクトルであり、各要素が学習の反復に対応します。検証メトリクスの計算が行われない反復の場合、構造体の対応する値はになります。

ネットワークにバッチ正規化層が含まれている場合、通常、最終検証メトリクスは学習中に評価される検証メトリクスとは異なります。これは、最終的なネットワークのバッチ正規化層では、学習中とは異なる処理が実行されるためです。詳細については、batchNormalizationLayerを参照してください。

詳細

すべて折りたたむ

チェックポイント ネットワークの保存と学習の再開

深度学习工具箱™ では、学習の際、エポックの終了ごとに、ネットワークを .小地毯ファイルとして保存できます。この定期的な保存は、ネットワークまたはデータセットが大規模であり、学習に時間がかかる場合に特に便利です。学習が何らかの理由で中断された場合、最後に保存されたチェックポイント ネットワークから学習を再開できます。列车网络にチェックポイントネットワークを保存させる場合は,trainingOptionsの名前と値のペアの引数“检查点路径”を使用してパス名を指定しなければなりません。指定したパスが存在していない場合,trainingOptionsはエラーを返します。

列车网络は、チェックポイント ネットワーク ファイルに一意の名前を自動的に割り当てます。例の名前net_checkpoint__351__2018_04_12__18_09_52.matで、351は反復回数、2018年_04_12は日付,18 _09_52列车网络がネットワークを保存した時刻を表します。チェックポイントネットワークファイルは,ダブルクリックするか,コマンドラインで読み込みコマンドを使用すると,読み込むことができます。次に例を示します。

负载net_checkpoint__351__2018_04_12__18_09_52.mat
また、ネットワークの層を列车网络の入力引数に使用することで、学習を再開できます。次に例を示します。

trainNetwork (XTrain YTrain、net.Layers选项)
学習オプションと入力データは、チェックポイント ネットワークにこれらの情報が含まれていないため、手動で指定しなければなりません。例については、チェックポイントネットワークからの学習の再開を参照してください。

浮動小数点演算

深度学习工具箱に含まれる深層学習における学習、予測、検証用のすべての関数は、単精度浮動小数点演算を使用して計算を実行します。深層学習用の関数には列车网络预测分类激活などがあります。中央处理器と GPUの両方を使用してネットワークに学習させる場合、単精度演算が使用されます。

参照

工藤,富山,新博。“使用通过区域的多维曲线分类”。模式识别字母。第20卷,第11-13期,第1103-1111页。

[2] 日本元音数据集。https://archive.ics.uci.edu/ml/datasets/Japanese+元音

拡張機能

R2016aで導入