Main Content

regressionLayer

(非推奨) 回帰出力層

regressionLayer は推奨されません。代わりに、関数 trainnet を使用し、損失関数を "mse" に設定します。詳細については、バージョン履歴を参照してください。

説明

回帰層は、回帰タスクの半平均二乗誤差損失を計算します。

layer = regressionLayer は、ニューラル ネットワークの回帰出力層を RegressionOutputLayer オブジェクトとして返します。

layer = regressionLayer(Name,Value) は、名前と値のペアを使用して、オプションの Name プロパティおよび ResponseNames プロパティを設定します。たとえば、regressionLayer('Name','output') は、'output' という名前の回帰層を作成します。各プロパティ名を一重引用符で囲みます。

すべて折りたたむ

回帰出力層を作成します。

'routput' という名前の回帰出力層を作成します。

layer = regressionLayer('Name','routput')
layer = 
  RegressionOutputLayer with properties:

             Name: 'routput'
    ResponseNames: {}

   Hyperparameters
     LossFunction: 'mean-squared-error'

回帰用の既定の損失関数は、平均二乗誤差です。

Layer 配列に回帰出力層を含めます。

layers = [ ...
    imageInputLayer([28 28 1])
    convolution2dLayer(12,25)
    reluLayer
    fullyConnectedLayer(1)
    regressionLayer]
layers = 
  5x1 Layer array with layers:

     1   ''   Image Input         28x28x1 images with 'zerocenter' normalization
     2   ''   2-D Convolution     25 12x12 convolutions with stride [1  1] and padding [0  0  0  0]
     3   ''   ReLU                ReLU
     4   ''   Fully Connected     1 fully connected layer
     5   ''   Regression Output   mean-squared-error

入力引数

すべて折りたたむ

名前と値の引数

オプションの引数のペアを Name1=Value1,...,NameN=ValueN として指定します。ここで、Name は引数名で、Value は対応する値です。名前と値の引数は他の引数の後に指定しなければなりませんが、ペアの順序は重要ではありません。

R2021a より前では、コンマを使用して名前と値をそれぞれ区切り、Name を引用符で囲みます。

例: regressionLayer('Name','output') は、'output' という名前の回帰層を作成します。

層の名前。文字ベクトルまたは string スカラーとして指定します。Layer 配列入力の場合、関数 trainNetwork は、名前が "" の層に自動的に名前を割り当てます。

RegressionOutputLayer オブジェクトは、このプロパティを文字ベクトルとして格納します。

データ型: char | string

応答の名前。文字ベクトルの cell 配列、または string 配列として指定します。学習時に、学習データに従って応答名が自動的に設定されます。既定値は {} です。

データ型: cell

出力引数

すべて折りたたむ

回帰出力層。RegressionOutputLayer オブジェクトとして返されます。

詳細

すべて折りたたむ

回帰出力層

回帰層は、回帰タスクの半平均二乗誤差損失を計算します。 一般的な回帰問題の場合、回帰層が最後の全結合層の後に続かなければなりません。

1 つの観測値の場合、平均二乗誤差は次で求められます。

MSE=i=1R(tiyi)2R,

ここで、R は応答の数、ti はターゲット出力、yi は応答 i に対するネットワークの予測値です。

イメージ回帰ネットワークおよび sequence-to-one 回帰ネットワークの場合、回帰層の損失関数は R で正規化されるのではなく、予測応答の半平均二乗誤差になります。

loss=12i=1R(tiyi)2.

image-to-image 回帰ネットワークの場合、回帰層の損失関数は R で正規化されるのではなく、各ピクセルの予測応答の半平均二乗誤差になります。

loss=12p=1HWC(tpyp)2,

ここで、H、W、および C は、それぞれ出力の高さ、幅、チャネル数を表し、p は t および y の各要素 (ピクセル) に対して線形に付けたインデックスです。

sequence-to-sequence 回帰ネットワークの場合、回帰層の損失関数は R で正規化されるのではなく、各タイム ステップの予測応答の半平均二乗誤差になります。

loss=12Si=1Sj=1R(tijyij)2,

ここで、S はシーケンス長です。

学習時には、ミニバッチ内の観測値に対する平均損失が計算されます。

拡張機能

バージョン履歴

R2017a で導入

すべて折りたたむ

R2024a: 非推奨

R2024a 以降、RegressionOutputLayer オブジェクトは非推奨となりました。代わりに、trainnet を使用し、損失関数を "mse" に設定してください。

RegressionOutputLayer オブジェクトのサポートを削除する予定はありません。ただし、関数 trainnet には次の利点があるため、代わりにこの関数を使うことを推奨します。

  • trainnetdlnetwork オブジェクトをサポートしています。このオブジェクトは、ユーザーが作成したり外部のプラットフォームからインポートしたりできる、さまざまなネットワーク アーキテクチャをサポートしています。

  • trainnet を使用すると、損失関数を簡単に指定できます。組み込みの損失関数を選択するか、カスタム損失関数を指定できます。

  • trainnetdlnetwork オブジェクトを出力します。このオブジェクトは、ネットワークの構築、予測、組み込み学習、可視化、圧縮、検証、およびカスタム学習ループをサポートする統合されたデータ型です。

  • trainnet は、通常、trainNetwork よりも高速です。

関数 trainNetworkRegressionOutputLayer オブジェクトを組み合わせた代表的な使用法と、代わりに関数 trainnet を使用するためのコードの更新方法を、次の表に示します。

非推奨推奨
net = trainNetwork(X,T,layers,options)layers には RegressionOutputLayer オブジェクトが含まれています。

net = trainnet(X,T,layers,"mse",options);
この例では、RegressionOutputLayer オブジェクトを使用せずに、layers で同じネットワークを指定しています。

net = trainNetwork(data,layers,options)layers には RegressionOutputLayer オブジェクトが含まれています。

net = trainnet(data,layers,"mse",options);
この例では、RegressionOutputLayer オブジェクトを使用せずに、layers で同じネットワークを指定しています。