このページの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。
深層学習用のニューラルネットワークの学習
分類および回帰タスクでは,列车网络
を使用して、イメージ データを畳み込みニューラル ネットワーク (美国有线电视新闻网、美国有线电视新闻网)に学習させたり、シーケンス データを長短期記憶 (LSTM)やゲート付き回帰ユニット (GRU)などの再帰型ニューラル ネットワーク (RNN)に学習させたり、または数値特徴量データを多層パーセプトロン (MLP)ネットワークに学習させたりできます。1.つの 中央处理器または 1.つの GPUで学習させることができます。イメージ分類やイメージ回帰の場合、複数の GPUまたは並列で学習させることができます。GPU、マルチ GPU、および並列オプションの使用には 并行计算工具箱™ が必要です。深層学習にGPUを使用するには,以3.0计算能力上のCUDA®対応 英伟达®GPUも必要です。実行環境のオプションを含む学習オプションを指定するには,関数trainingOptions
を使用します。
データを图像数据存储
オブジェクトとして読み込みます。
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.つの新しいデータストアimdsTrain
とimdsTest
に分割します。
畳み込みニューラル ネットワーク アーキテクチャを定義します。
层= [...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
imds
—イメージ データストア图像数据存储
オブジェクトイメージとラベルが格納されたイメージデータストア。图像数据存储
オブジェクトとして指定します。
関数imageDatastore
を使用してイメージデータストアを作成します。イメージが格納されたフォルダーの名前をラベルとして使用するには,“LabelSource”
オプションを“foldernames”
に設定します。あるいは、イメージ データストアの标签
プロパティを使用して手動でラベルを指定します。
関数列车网络
は,イメージ分類ネットワーク用のイメージデータストアのみをサポートします。回帰ネットワーク用のイメージデータストアを使用するには,関数变换
および结合
を使用して、変換または結合されたデータストアを作成します。詳細については、ds
入力引数を参照してください。
图像数据存储
を使用すると,事前取得を使用してJPGまたはPNGイメージファイルのバッチ読み取りを行うことができます。イメージの読み取りにカスタム関数を使用する場合,图像数据存储
は事前取得を行いません。
ヒント
イメージのサイズ変更を含む深層学習用のイメージの前処理を効率的に行うには、augmentedImageDatastore
を使用します。
imageDatastore
のreadFcn
オプションは通常,速度が大幅に低下するため,前処理またはサイズ変更に使用しないでください。
ds
—データストアメモリ外のデータおよび前処理用のデータストア。
次の表に、列车网络
と直接互換性のあるデータストアを示します。関数变换
および结合
を使用して、深層学習ネットワークに学習させるための他の組み込みデータストアを使用できます。これらの関数は、データストアから読み取られたデータを、列车网络
に必要な表または细胞配列形式に変換できます。複数の入力があるネットワークの場合,データストアは結合または変換されたデータストア,またはカスタムミニバッチデータストアでなければなりません。詳細については,深層学習用のデータストアを参照してください。
データストアのタイプ | 説明 |
---|---|
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]} |
||
多入力層 | ( 最初の 入力の順序は、層グラフ |
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.列の 单间牢房配列が含まれていなければなりません。
関数列车网络
は,複数のシーケンス入力層をもつネットワークをサポートしていません。
応答の形式は,タスクのタイプによって異なります。
タスク | 応答の形式 |
---|---|
分類 | 直言スカラー |
回帰 |
|
顺序对顺序分類 | カテゴリカル ラベルの 1.行 s列のシーケンス。ここで、sは対応する予測子シーケンスのシーケンス長です。 |
顺序对顺序回帰 | R行s列の行列。ここで,R は応答の数、s は対応する予測子シーケンスのシーケンス長です。 |
表で返される応答の場合,要素は,直言スカラー,数値行ベクトルであるか,数値配列が格納された1行1列の细胞配列でなければなりません。
X
—イメージデータまたは特徴データイメージデータまたは特徴データ。数値配列として指定します。配列のサイズは入力のタイプによって以下のように異なります。
入力 | 説明 |
---|---|
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
—応答応答。ラベルの 明确的ベクトル、数値配列、カテゴリカル シーケンスの 单间牢房配列、または数値シーケンスの 单间牢房配列として指定します。Y
の形式は、タスクのタイプによって異なります。応答に楠
が含まれていてはなりません。
タスク | 形式 |
---|---|
イメージ分類または特徴分類 | ラベルの N行 1.列の 明确的ベクトル。Nは観測値の数です。 |
要标记的序列分類 | |
顺序对顺序分類 | ラベルのカテゴリカルシーケンスのN行1列の细胞配列。Nは観測値の数です。各シーケンスには,対応する予測子シーケンスと同じ数のタイムステップがなければなりません。 観測値が1つのsequence-to-sequence分類タスクでは, |
タスク | 形式 |
---|---|
2.次元イメージ回帰 |
|
3次元イメージ回帰 |
|
sequence-to-one回帰 | N行 R列の行列。ここで、Nはシーケンスの数、Rは応答の数です。 |
顺序对顺序回帰 | 数値シーケンスのN行1列の细胞配列。ここでNはシーケンスの数です。シーケンスはR行の行列で,Rは応答の数です。各シーケンスには,対応する予測子シーケンスと同じ数のタイムステップがなければなりません。 観測値が1つのsequence-to-sequence回帰タスクでは, |
特徴回帰 | N行R列の行列。Nは観測値の数,Rは応答の数です。 |
応答の正規化は、回帰用のニューラル ネットワークの学習の安定化と高速化に役立つことがよくあります。詳細については、回帰用の畳み込みニューラルネットワークの学習を参照してください。
资源描述
—入力データ表格
入力データ。予測子と応答が格納された 桌子として指定します。桌子の各行は観測値に対応します。
桌子の列での予測子と応答の配置は、タスクのタイプによって異なります。
分類
タスク | 予測子 | 応答 |
---|---|---|
イメージ分類 |
予測子は、表の最初の列に格納されていなければなりません。 |
カテゴリカルラベル |
要标记的序列分類 | シーケンス データまたは時系列データを含む 小地毯ファイルの絶対ファイル パスまたは相対ファイル パス。 垫ファイルには,行がデータ点に対応し,列がタイムステップに対応する行列で表される時系列が含まれていなければなりません。 予測子は、表の最初の列に格納されていなければなりません。 |
カテゴリカルラベル |
顺序对顺序分類 | 垫ファイルの絶対ファイルパスまたは相対ファイルパス。垫ファイルには,エントリが各タイムステップのラベルに対応する直言ベクトルで表される時系列が含まれていなければなりません。 |
|
特徴分類 | 数値スカラー。
|
カテゴリカルラベル |
イメージまたはシーケンス入力のある分類ネットワークでは、响应名称
を指定しない場合、関数は既定で、资源描述
の最初の列を予測子に使用し,2番目の列をラベルとして使用します。特徴入力のある分類ネットワークでは,响应名称
引数を指定しない場合,関数は既定で,资源描述
の最初の (numColumns - 1
)個の列を予測子に使用し,最後の列をラベルに使用します。ここで,numFeatures
は入力データの特徴の数です。
回帰
タスク | 予測子 | 応答 |
---|---|---|
イメージ回帰 |
予測子は、表の最初の列に格納されていなければなりません。 |
|
sequence-to-one回帰 | シーケンス データまたは時系列データを含む 小地毯ファイルの絶対ファイル パスまたは相対ファイル パス。 垫ファイルには,行がデータ点に対応し,列がタイムステップに対応する行列で表される時系列が含まれていなければなりません。 予測子は、表の最初の列に格納されていなければなりません。 |
|
顺序对顺序回帰 | 垫ファイルの絶対ファイルパスまたは相対ファイルパス。垫ファイルには,行が応答に対応し,列がタイムステップに対応する行列で表される時系列が含まれていなければなりません。 |
|
特徴回帰 | 1.つ以上の列でスカラーとして指定された特徴。
|
スカラー値から成る1つ以上の列 |
イメージまたはシーケンス入力のある回帰ネットワークでは,响应名称
を指定しない場合、関数は既定で、资源描述
の最初の列を予測子に使用し、後続の列を応答として使用します。特徴入力のある回帰ネットワークでは、响应名称
引数を指定しない場合,関数は既定で,最初のnumFeatures
個の列を予測子に使用し,後続の列を応答に使用します。ここで,numFeatures
は入力データの特徴の数です。
応答の正規化は、回帰用のニューラル ネットワークの学習の安定化と高速化に役立つことがよくあります。詳細については、回帰用の畳み込みニューラルネットワークの学習を参照してください。
応答に楠
を含めることはできません。予測子データに楠
が含まれる場合,学習を経由して伝播されます。ただし,ほとんどの場合に学習が収束しなくなります。
データ型:表格
响应名称
—入力テーブルの応答変数の名前入力テーブルの応答変数の名前。次のいずれかとして指定します。
1つの応答をもつ分類または回帰タスクの場合,响应名称
は,入力テーブルに応答変数が格納された文字ベクトルまたは字符串スカラーでなければなりません。
複数の応答をもつ回帰タスクの場合、响应名称
は,入力テーブルに応答変数が格納された字符串配列または文字ベクトルの细胞配列でなければなりません。
データ型:烧焦
|单间牢房
|字符串
选项
—学習オプションTrainingOptionsSGDM
|TrainingOptionsRMSProp
|培训选项ADAM
学習オプション。関数trainingOptions
によって返されるTrainingOptionsSGDM
、TrainingOptionsRMSProp
,または培训选项ADAM
オブジェクトとして指定します。
网
— 学習済みネットワーク系列网络
オブジェクト|DAGNetwork
オブジェクト学習済みネットワーク。系列网络
オブジェクトまたはDAGNetwork
オブジェクトとして返されます。
层
配列を使用してネットワークに学習させる場合、网
は系列网络
オブジェクトになります。分层图
オブジェクトを使用してネットワークに学習させる場合,网
はDAGNetwork
オブジェクトになります。
信息
——学習に関する情報学習に関する情報。構造体として返されます。ここで、各フィールドは、学習の反復ごとに 1.つの要素を持つスカラーまたは数値ベクトルです。
分類タスクでは,信息
に次のフィールドが含められます。
培训损失
— 損失関数値
训练准确性
——学習精度
验证损失
— 損失関数値
验证准确性
——検証精度
BaseLearnRate
— 学習率
FinalValidationLoss
— 最終検証損失
最终验证准确性
——最終検証精度
回帰タスクでは,信息
に次のフィールドが含められます。
培训损失
— 損失関数値
培训RMSE
— 学習の RMSE値
验证损失
— 損失関数値
ValidationRMSE
— 検証の RMSE値
BaseLearnRate
— 学習率
FinalValidationLoss
— 最終検証損失
FinalValidationRMSE
——最終検証RMSE
选项
で検証データが指定されている場合,構造体にはフィールド验证损失
、验证准确性
、ValidationRMSE
、FinalValidationLoss
、最终验证准确性
,および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选项)
工藤,富山,新博。“使用通过区域的多维曲线分类”。模式识别字母。第20卷,第11-13期,第1103-1111页。
[2] 日本元音数据集。https://archive.ics.uci.edu/ml/datasets/Japanese+元音
計算を並列実行するには,“执行环境”
オプションを“multi-gpu”
または“平行”
に設定します。
trainingOptions
を使用して“执行环境”
を設定し,选项
を列车网络
に指定します。“执行环境”
を設定しない場合,GPUが利用できる場合は列车网络
がGPUで実行されます。
詳細は、並列およびクラウドでの深層学習のスケールアップを参照してください。
次のMATLABコマンドに対応するリンクがクリックされました。
コマンドをMATLABコマンドウィンドウに入力して実行してください。WebブラウザーはMATLABコマンドをサポートしていません。
您还可以从以下列表中选择网站:
选择中国站点(中文或英文)以获得最佳站点性能。其他MathWorks国家/地区站点不适合您所在位置的访问。