Main Content

scalingLayer

アクターまたはクリティック ネットワークのスケーリング層

説明

スケーリング層は、入力配列 U の線形スケーリングと線形バイアス処理を行い、Y = Scale.*U + Bias を出力します。ユーザーが定義した深層ニューラル ネットワークにこの層を組み込んで、強化学習エージェントのアクターまたはクリティックとして使用できます。この層は、tanhLayer やシグモイドなどの非線形層の出力のスケーリングとシフトを行う場合に役立ちます。

たとえば、tanhLayer は、-1 ~ 1 に収まる範囲の出力を提供します。アクター ネットワーク出力に異なる境界がある場合 (アクター仕様で定義されている場合)、アクター ネットワーク出力を適切にスケールおよびシフトする出力として ScalingLayer を含めることができます。

ScalingLayer オブジェクトのパラメーターは学習可能ではありません。

作成

説明

sLayer = scalingLayer は、既定のプロパティ値を使用してスケーリング層を作成します。

sLayer = scalingLayer(Name,Value) は、名前と値のペアを使用してプロパティを設定します。たとえば、scalingLayer('Scale',0.5) は、入力を 0.5 でスケールするスケーリング層を作成します。各プロパティ名を引用符で囲みます。

プロパティ

すべて展開する

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

この プロパティ は読み取り専用です。

層の説明。文字ベクトルとして指定します。スケーリング層を作成するときに、このプロパティを使用して、その目的を特定するのに役立つ説明を付けることができます。

スケーリング層への入力における要素単位のスケール。次のいずれかとして指定します。

  • スカラー — 入力配列のすべての要素に同じスケール係数を指定します。

  • 入力配列と同じ次元に拡張可能な配列 — 入力配列の各要素に異なるスケール係数を指定します。

メモ

ScaleBias が両方とも配列である場合は、同じサイズでなければなりません。

スケーリング層は入力 U を受け取り、出力 Y = Scale.*U + Bias を生成します。

スケーリング層への入力における要素単位のバイアス。次のいずれかとして指定します。

  • スカラー — 入力配列のすべての要素に同じバイアスを指定します。

  • 入力配列と同じ次元に拡張可能な配列 — 入力配列の各要素に異なるバイアスを指定します。

メモ

ScaleBias が両方とも配列である場合は、同じサイズでなければなりません。

スケーリング層は入力 U を受け取り、出力 Y = Scale.*U + Bias を生成します。

すべて折りたたむ

入力配列 U を出力配列 Y = 0.1.*U - 0.4 に変換するスケーリング層を作成します。

sLayer = scalingLayer(Scale=0.1,Bias=-0.4)
sLayer = 
  ScalingLayer with properties:

     Name: 'scaling'
    Scale: 0.1000
     Bias: -0.4000

   Learnable Parameters
    No properties.

   State Parameters
    No properties.

Use properties method to see a list of all properties.

スケーリング層が入力配列を期待どおりにスケーリングおよびオフセットしていることを確認します。

predict(sLayer,[10,20,30])
ans = 1×3

    0.6000    1.6000    2.6000

強化学習のために、sLayer をアクター ネットワークまたはクリティック ネットワークに組み込むことができます。

scalingLayer の前の層が最初の次元に沿って配置した 3 つの出力をもつ tanhLayer であり、scalingLayer を使用して各出力に異なるスケーリング係数とバイアスを適用するとします。

scale = [2.5 0.4 10]';
bias = [5 0 -50]';

scalingLayer オブジェクトを作成します。

sLayer = scalingLayer(Scale=scale,Bias=bias);

スケーリング層によって、予想される次元の配列に正しいスケール値とバイアス値が適用されていることを確認します。

testData = [10 10 10]';
predict(sLayer,testData)
ans = 3×1

    30
     4
    50

拡張機能

C/C++ コード生成
MATLAB® Coder™ を使用して C および C++ コードを生成します。

GPU コード生成
GPU Coder™ を使用して NVIDIA® GPU のための CUDA® コードを生成します。

バージョン履歴

R2019a で導入