RegressionOutputLayer
回帰出力層
説明
回帰層は、回帰タスクの半平均二乗誤差損失を計算します。
作成
regressionLayer
を使用して回帰出力層を作成します。
プロパティ
回帰出力
ResponseNames
— 応答の名前
{}
(既定値) | 文字ベクトルの cell 配列 | string 配列
応答の名前。文字ベクトルの cell 配列、または string 配列として指定します。学習時に、学習データに従って応答名が自動的に設定されます。既定値は {}
です。
データ型: cell
LossFunction
— 学習用の損失関数
'mean-squared-error'
学習に使用される損失関数。'mean-squared-error'
として指定します。
層
Name
— 層の名前
""
(既定値) | 文字ベクトル | string スカラー
層の名前。文字ベクトルまたは string スカラーとして指定します。Layer
配列入力の場合、関数 trainNetwork
は、名前が ""
の層に自動的に名前を割り当てます。
RegressionOutputLayer
オブジェクトは、このプロパティを文字ベクトルとして格納します。
データ型: char
| string
NumInputs
— 入力の数
1
(既定値)
層への入力の数。1
として返されます。この層は単一の入力のみを受け入れます。
データ型: double
InputNames
— 入力名
{'in'}
(既定値)
入力名。{'in'}
として返されます。この層は単一の入力のみを受け入れます。
データ型: cell
NumOutputs
— 出力の数
0
(既定値)
層の出力の数。0
として返されます。この層には出力がありません。
データ型: double
OutputNames
— 出力名
{}
(既定値)
層の出力の名前。{}
として返されます。この層には出力がありません。
データ型: cell
例
回帰出力層の作成
回帰出力層を作成します。
'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
詳細
回帰出力層
回帰層は、回帰タスクの半平均二乗誤差損失を計算します。 一般的な回帰問題の場合、回帰層が最後の全結合層の後に続かなければなりません。
1 つの観測値の場合、平均二乗誤差は次で求められます。
ここで、R は応答の数、ti はターゲット出力、yi は応答 i に対するネットワークの予測値です。
イメージ回帰ネットワークおよび sequence-to-one 回帰ネットワークの場合、回帰層の損失関数は R で正規化されるのではなく、予測応答の半平均二乗誤差になります。
image-to-image 回帰ネットワークの場合、回帰層の損失関数は R で正規化されるのではなく、各ピクセルの予測応答の半平均二乗誤差になります。
ここで、H、W、および C は、それぞれ出力の高さ、幅、チャネル数を表し、p は t および y の各要素 (ピクセル) に対して線形に付けたインデックスです。
sequence-to-sequence 回帰ネットワークの場合、回帰層の損失関数は R で正規化されるのではなく、各タイム ステップの予測応答の半平均二乗誤差になります。
ここで、S はシーケンス長です。
学習時には、ミニバッチ内の観測値に対する平均損失が計算されます。
バージョン履歴
R2017a で導入R2024a: 非推奨
R2024a 以降、RegressionOutputLayer
オブジェクトは非推奨となりました。代わりに、trainnet
を使用し、損失関数を "mse"
に設定してください。
RegressionOutputLayer
オブジェクトのサポートを削除する予定はありません。ただし、関数 trainnet
には次の利点があるため、代わりにこの関数を使うことを推奨します。
trainnet
はdlnetwork
オブジェクトをサポートしています。このオブジェクトは、ユーザーが作成したり外部のプラットフォームからインポートしたりできる、さまざまなネットワーク アーキテクチャをサポートしています。trainnet
を使用すると、損失関数を簡単に指定できます。組み込みの損失関数を選択するか、カスタム損失関数を指定できます。trainnet
はdlnetwork
オブジェクトを出力します。このオブジェクトは、ネットワークの構築、予測、組み込み学習、可視化、圧縮、検証、およびカスタム学習ループをサポートする統合されたデータ型です。trainnet
は、通常、trainNetwork
よりも高速です。
関数 trainNetwork
と RegressionOutputLayer
オブジェクトを組み合わせた代表的な使用法と、代わりに関数 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 で同じネットワークを指定しています。 |
MATLAB コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)