主要内容

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

序列输入层

シーケンス入力層

説明

シーケンス入力層は、ネットワークにシーケンス データを入力します。

作成

説明

= sequenceInputLayer (输入大小は,シーケンス入力層を作成し,输入大小プロパティを設定します。

= sequenceInputLayer (输入大小名称,值は,名前と値のペアを使用して,オプションの归一化意思是、および名称の各プロパティを設定します。複数の名前と値のペアを指定できます。各プロパティ名を一重引用符で囲みます。

プロパティ

すべて展開する

イメージ入力

入力のサイズ。正の整数または正の整数のベクトルとして指定します。

  • ベクトル シーケンス入力の場合、输入大小は特徴の数に対応するスカラーです。

  • 2.次元イメージ シーケンス入力の場合、输入大小は3要素から成るベクトル[w c h]です。ここで、hはイメージの高さ、wはイメージの幅、cはイメージのチャネル数です。

  • 3.次元イメージ シーケンス入力の場合、输入大小は 4.要素から成るベクトル[h w d c]です。ここで、hはイメージの高さ、wはイメージの幅、dはイメージの深さ、cはイメージのチャネル数です。

例:100

データが入力層を通じて順伝播されるたびに適用するデータ正規化。次のいずれかに指定します。

  • “零中心”- - - - - -意思是によって指定された平均を減算します。

  • “zscore”- - - - - -意思是によって指定された平均を減算し,StandardDeviationで除算します。

  • “rescale-symmetric”- - - - - -分钟および马克斯によってそれぞれ指定された最小値と最大値を使用して、範囲 [-1, 1] に入力を再スケーリングします。

  • “重新缩放01”- - - - - -分钟および马克斯によってそれぞれ指定された最小値と最大値を使用して、範囲 [0, 1] に入力を再スケーリングします。

  • “没有”——入力データを正規化しません。

  • 関数ハンドル——指定した関数を使用してデータを正規化します。関数は,Y = func (X)という形式でなければなりません。ここで,Xは入力データ、出力Yは正規化データです。

ヒント

既定では、学習時に正規化統計量が自動的に計算されます。学習時に時間を節約するため、正規化に必要な統計量を指定し、培训选项“ResetInputNormalization”オプションをに設定します。

入力データにパディングが含まれている場合、この層は、入力データの正規化時にパディング値を無視します。

正規化の次元。次のいずれかに指定します。

  • “汽车”– 学習オプションがの場合、いずれかの正規化統計量 (意思是StandardDeviation分钟、または马克斯)を指定し,統計量に一致する次元に対して正規化を行います。そうでない場合,学習時に統計量を再計算し,チャネル単位の正規化を適用します。

  • “频道”– チャネル単位の正規化。

  • “元素”– 要素単位の正規化。

  • “所有”——スカラーの統計量を使用してすべての値を正規化します。

ゼロ中心正規化および Zスコア正規化の平均。数値配列または空として指定します。

  • ベクトル シーケンス入力の場合、意思是はチャネルごとの平均から成る输入大小行1列のベクトル,数値スカラー,または[]でなければなりません。

  • 2.次元イメージ シーケンス入力の場合、意思是输入大小と同じサイズの数値配列、チャネルごとの平均から成る 1 x 1 x输入大小(3)の配列、数値スカラー、または[]でなければなりません。

  • 3.次元イメージ シーケンス入力の場合、意思是输入大小と同じサイズの数値配列,チャネルごとの平均から成る1 x 1 x 1 x输入大小(4)の配列、数値スカラー、または[]でなければなりません。

意思是プロパティを指定する場合、归一化“零中心”または“zscore”でなければなりません。意思是[]の場合、学習時に平均が計算されます。

学習を行わずにネットワークを作成する場合(装配网络を使用してネットワークを組み立てる場合など)、このプロパティを設定できます。

データ型:仅有一个的|双重的|int8|int16|int32|int64|uint8|uint16|uint32|uint64

zスコア正規化に使用される標準偏差。数値配列、数値スカラー、または空として指定します。

  • ベクトル シーケンス入力の場合、StandardDeviationはチャネルごとの標準偏差から成る输入大小行1列のベクトル,数値スカラー,または[]でなければなりません。

  • 2.次元イメージ シーケンス入力の場合、StandardDeviation输入大小と同じサイズの数値配列,チャネルごとの標準偏差から成る1 x 1 x输入大小(3)の配列、数値スカラー、または[]でなければなりません。

  • 3.次元イメージ シーケンス入力の場合、StandardDeviation输入大小と同じサイズの数値配列,チャネルごとの標準偏差から成る1 x 1 x 1 x输入大小(4)の配列、または数値スカラーでなければなりません。

StandardDeviationプロパティを指定する場合、归一化“zscore”でなければなりません。StandardDeviation[]の場合、学習時に標準偏差が計算されます。

学習を行わずにネットワークを作成する場合(装配网络を使用してネットワークを組み立てる場合など)、このプロパティを設定できます。

データ型:仅有一个的|双重的|int8|int16|int32|int64|uint8|uint16|uint32|uint64

再スケーリングの最小値。数値配列または空として指定します。

  • ベクトル シーケンス入力の場合、分钟はチャネルごとの平均から成る输入大小行1列のベクトル,または数値スカラーでなければなりません。

  • 2.次元イメージ シーケンス入力の場合、分钟输入大小と同じサイズの数値配列、チャネルごとの最小値から成る 1 x 1 x输入大小(3)の配列、または数値スカラーでなければなりません。

  • 3.次元イメージ シーケンス入力の場合、分钟输入大小と同じサイズの数値配列,チャネルごとの最小値から成る1 x 1 x 1 x输入大小(4)の配列、または数値スカラーでなければなりません。

分钟プロパティを指定する場合、归一化“rescale-symmetric”または“重新缩放01”でなければなりません。分钟[]の場合,学習時に最小値が計算されます。

学習を行わずにネットワークを作成する場合(装配网络を使用してネットワークを組み立てる場合など)、このプロパティを設定できます。

データ型:仅有一个的|双重的|int8|int16|int32|int64|uint8|uint16|uint32|uint64

再スケーリングの最大値。数値配列または空として指定します。

  • ベクトル シーケンス入力の場合、马克斯はチャネルごとの平均から成る输入大小行1列のベクトル,または数値スカラーでなければなりません。

  • 2.次元イメージ シーケンス入力の場合、马克斯输入大小と同じサイズの数値配列,チャネルごとの最大値から成る1 x 1 x输入大小(3)の配列、数値スカラー、または[]でなければなりません。

  • 3.次元イメージ シーケンス入力の場合、马克斯输入大小と同じサイズの数値配列、チャネルごとの最大値から成る 1 x 1 x 1 x输入大小(4)の配列、数値スカラー、または[]でなければなりません。

马克斯プロパティを指定する場合、归一化“rescale-symmetric”または“重新缩放01”でなければなりません。马克斯[]の場合,学習時に最大値が計算されます。

学習を行わずにネットワークを作成する場合(装配网络を使用してネットワークを組み立てる場合など)、このプロパティを設定できます。

データ型:仅有一个的|双重的|int8|int16|int32|int64|uint8|uint16|uint32|uint64

層の名前。文字ベクトルまたは 一串スカラーとして指定します。層グラフに層を含めるには、層に空ではない一意の名前を指定しなければなりません。この層が含まれる系列ネットワークに学習させて名称''に設定すると,学習時に層に名前が自動的に割り当てられます。

データ型:烧焦|一串

層の入力の数。この層には入力がありません。

データ型:双重的

層の入力名。この層には入力がありません。

データ型:细胞

層の出力の数。この層には単一の出力のみがあります。

データ型:双重的

層の出力名。この層には単一の出力のみがあります。

データ型:细胞

すべて折りたたむ

名前が“seq1”、入力サイズが 12のシーケンス入力層を作成します。

层=sequenceInputLayer(12,“名字”“seq1”
layer = SequenceInputLayer with properties: Name: 'seq1' InputSize: 12 Hyperparameters Normalization: 'none' NormalizationDimension: 'auto'

シーケンス入力層を配列に含めます。

inputSize = 12;numHiddenUnits = 100;numClasses = 9;层= [...sequenceInputLayer(inputSize)lstmLayer(numHiddenUnits,“输出模式”“最后一次”)软连接层(numClasses)
layers=5x1带层的层阵列:1''序列输入12维序列输入2''LSTM LSTM带100个隐藏单元3''完全连接9完全连接层4''Softmax Softmax 5''分类输出crossentropyex

名前が“seq1”の224行224列のRGBイメージのシーケンスに対して,シーケンス入力層を作成します。

层=sequenceInputLayer([224 224 3],“名字”“seq1”
layer=SequenceInputLayer,具有以下属性:名称:“seq1”InputSize:[224 224 3]超参数规范化:“无”规范化维度:“自动”

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

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

[XTrain,YTrain]=日本全球应变数据;

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

图绘制(XTrain{1}”)标题(“培训观察1”) numFeatures = size(XTrain{1},1);传奇(“功能”+字符串(1:numFeatures),“位置”“northeastoutside”

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

inputSize = 12;numHiddenUnits = 100;numClasses = 9;层= [...sequenceInputLayer(inputSize)lstmLayer(numHiddenUnits,“输出模式”“最后一次”)软连接层(numClasses)
layers=5×1带层的层阵列:1''序列输入12维序列输入2''LSTM LSTM带100个隐藏单元3''完全连接9完全连接层4''Softmax Softmax 5''分类输出crossentropyex

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

ミニバッチが小さく,シーケンスが短いため,学習にはCPUが適しています。“ExecutionEnvironment”“cpu”に設定します。GPUが利用できる場合、GPUで学習を行うには、“ExecutionEnvironment”“汽车”(既定値) に設定します。

maxEpochs = 70;miniBatchSize = 27个;选择= trainingOptions (“亚当”...“ExecutionEnvironment”“cpu”...“MaxEpochs”,maxEpochs,...“MiniBatchSize”,小批量,...“GradientThreshold”1....“冗长”错误的...“阴谋”“培训进度”);

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

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

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

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

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

XTest YPred =分类(净,“MiniBatchSize”, miniBatchSize);

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

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

要标记的序列分類用の LSTMネットワークを作成するには、シーケンス入力層、LSTM層、全結合層、ソフトマックス層、および分類出力層を含む層配列を作成します。

シーケンス入力層のサイズを入力データの特徴の数に設定します。全結合層のサイズをクラスの数に設定します。シーケンス長を指定する必要はありません。

LSTM層では、隠れユニットの数と出力モード“最后一次”を指定します。

numFeatures=12;numHiddenUnits=100;NumClass=9;图层=[...sequenceInputLayer numFeatures lstmLayer (numHiddenUnits,“输出模式”“最后一次”) fulllyconnectedlayer (numClasses) softmaxLayer classificationLayer;

要标记的序列分類について LSTMネットワークに学習をさせ、新しいデータを分類する方法の例については、深層学習を使用したシーケンスの分類を参照してください。

sequence-to-sequence分類用のLSTMネットワークを作成するには,sequence-to-label分類の場合と同じアーキテクチャを使用しますが,LSTM層の出力モードを“序列”に設定します。

numFeatures=12;numHiddenUnits=100;NumClass=9;图层=[...sequenceInputLayer numFeatures lstmLayer (numHiddenUnits,“输出模式”“序列”) fulllyconnectedlayer (numClasses) softmaxLayer classificationLayer;

顺序对一回帰用の LSTMネットワークを作成するには、シーケンス入力層、LSTM層、全結合層、および回帰出力層を含む層配列を作成します。

シーケンス入力層のサイズを入力データの特徴の数に設定します。全結合層のサイズを応答の数に設定します。シーケンス長を指定する必要はありません。

LSTM層では、隠れユニットの数と出力モード“最后一次”を指定します。

numFeatures = 12;numHiddenUnits = 125;numResponses = 1;层= [...sequenceInputLayer numFeatures lstmLayer (numHiddenUnits,“输出模式”“最后一次”)完全连接层(numResponses)回归层];

sequence-to-sequence回帰用のLSTMネットワークを作成するには,sequence-to-one回帰の場合と同じアーキテクチャを使用しますが,LSTM層の出力モードを“序列”に設定します。

numFeatures = 12;numHiddenUnits = 125;numResponses = 1;层= [...sequenceInputLayer numFeatures lstmLayer (numHiddenUnits,“输出模式”“序列”)完全连接层(numResponses)回归层];

顺序对顺序回帰について LSTMネットワークに学習をさせて、新しいデータを予測する方法の例については、深層学習を使用した 顺序对顺序回帰を参照してください。

出力モードが“序列”の追加のLSTM層をLSTM層の前に挿入すると,LSTMネットワークを深くできます。過適合を防止するために,LSTM層の後にドロップアウト層を挿入できます。

要标记的序列分類ネットワークでは、最後の LSTM層の出力モードは“最后一次”でなければなりません。

numFeatures=12;numHiddenUnits1=125;numHiddenUnits2=100;NumClass=9;图层=[...sequenceInputLayer(numFeatures)lstmLayer(numHiddenUnits1,“输出模式”“序列”) dropoutLayer (0.2) lstmLayer (numHiddenUnits2“输出模式”“最后一次”) dropoutLayer(0.2) fulllyconnectedlayer (numClasses) softmaxLayer classificationLayer];

顺序对顺序分類ネットワークでは、最後の LSTM層の出力モードは“序列”でなければなりません。

numFeatures=12;numHiddenUnits1=125;numHiddenUnits2=100;NumClass=9;图层=[...sequenceInputLayer(numFeatures)lstmLayer(numHiddenUnits1,“输出模式”“序列”) dropoutLayer (0.2) lstmLayer (numHiddenUnits2“输出模式”“序列”) dropoutLayer(0.2) fulllyconnectedlayer (numClasses) softmaxLayer classificationLayer];

ビデオや医用画像データなどのイメージのシーケンスを含むデータ用の深層学習ネットワークを作成します。

  • イメージのシーケンスをネットワークに入力するには,シーケンス入力層を使用します。

  • 畳み込み演算を各タイム ステップに個別に適用するには、まずシーケンス折りたたみ層を使用してイメージのシーケンスをイメージの配列に変換します。

  • これらの演算の実行後にシーケンス構造を復元するには、シーケンス展開層を使用してこのイメージの配列をイメージ シーケンスに変換し直します。

  • イメージを特徴ベクトルに変換するには,フラット化層を使用します。

その後、ベクトル シーケンスを LSTM層と BiLSTM層に入力できます。

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

28 x 28のグレースケールイメージのシーケンスを10個のクラスに分類する分類用のLSTMネットワークを作成します。

次のネットワークアーキテクチャを定義します。

  • 入力サイズ[28 28 1]のシーケンス入力層。

  • 20個の 5.行 5.列のフィルターを持つ、畳み込み層、バッチ正規化層、および 雷卢層のブロック。

  • 最後のタイム ステップのみを出力する、200個の隠れユニットを持つ LSTM層。

  • サイズが10(クラス数)の全結合層と,その後に配置するソフトマックス層と分類層。

畳み込み演算をタイムステップごとに個別に実行するには,畳み込み層の前にシーケンス折りたたみ層を含めます。LSTM層はベクトルシーケンス入力を想定しています。シーケンス構造を復元し,畳み込み層の出力を特徴ベクトルのシーケンスに形状変更するには,畳み込み層とLSTM層の間にシーケンス展開層とフラット化層を挿入します。

inputSize=[28 28 1];filterSize=5;numFilters=20;numHiddenUnits=200;NumClass=10;layers=[...sequenceInputLayer (inputSize“名字”“输入”)序列折叠层(“名字”“折”)卷积2dlayer(filterSize、NumFilter、,“名字”“conv”)批处理规范化层(“名字”‘bn’) reluLayer (“名字”“雷卢”)序列展开层(“名字”“展开”)压扁层(“名字”“平”)第一层(numhidden单位,“输出模式”“最后一次”“名字”“lstm”)完全连接层(NumClass,“名字”“俱乐部”) softmaxLayer (“名字”“softmax”)分类层(“名字”“分类”));

層を層グラフに変換し、シーケンス折りたたみ層のminiBatchSize出力をシーケンス展開層の対応する入力に結合します。

lgraph=层图形(层);lgraph=连接层(lgraph,“折/ miniBatchSize”“展开/小批量大小”);

関数情节を使用して最終的なネットワーク アーキテクチャを表示します。

图形绘图(lgraph)

图中包含一个坐标轴。坐标轴包含一个graphplot类型的对象。

互換性の考慮事項

すべて展開する

将来のリリースで動作変更

R2020aでの動作変更

参照

[1] M.Kudo,J.Toyama和M.Shimbo.“使用通过区域的多维曲线分类”,《模式识别快报》,第20卷,第11-13期,第1103-1111页。

[2] UCI机器学习知识库:日语元音数据集。https://archive.ics.uci.edu/ml/datasets/Japanese+Vowels

拡張機能

R2017bで導入