主要内容

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

fullyConnectedLayer

説明

全結合層は,入力に重み行列を乗算し,バイアスベクトルを加算します。

作成

説明

=完全连接层(outputSizeは全結合層を返し,输出大小プロパティを指定します。

=完全连接层(outputSize名称,值は,名前と値のペアを使用して,オプションのパラメーターと初期化学習率および正則化,および姓名の各プロパティを設定します。たとえば、fullyConnectedLayer(10、“名称”、“fc1”)は,出力サイズが10名前が“fc1”である全結合層を作成します。複数の名前と値のペアを指定できます。各プロパティ名を一重引用符で囲みます。

プロパティ

すべて展開する

全結合

全結合層の出力サイズ。正の整数として指定します。

例:10

全結合層の入力サイズ。正の整数または“汽车”として指定します。输入大小“汽车”の場合,学習中に入力サイズが自動的に決定されます。

パラメーターと初期化

重みを初期化する関数。次のいずれかに指定します。

  • “glorot”–格洛特初期化子[1](Xavier初期化子とも呼ばれる)を使用して重みを初期化します。Glorot初期化子は,平均0分散2/(输入大小+输出大小)の一様分布から個別にサンプリングを行います。

  • “他”——他初期化子[2]を使用して重みを初期化します。他初期化子は,平均0分散2/输入大小の正規分布からサンプリングを行います。

  • '正交'——直交行列问を使用して入力の重みを初期化します。この直交行列は,単位正規分布からサンプリングされた乱数行列Zに対するZ = QRのQR分解によって与えられます。[3]

  • “narrow-normal”——平均0,標準偏差0.01の正規分布から個別にサンプリングを行って,重みを初期化します。

  • “零”- 0で重みを初期化します。

  • '一个'- 1で重みを初期化します。

  • 関数ハンドル——カスタム関数で重みを初期化します。関数ハンドルを指定する場合,関数は重量= func(深圳)という形式でなければなりません。ここで,深圳は重みのサイズです。例については,カスタム重み初期化関数の指定を参照してください。

この層では,权重プロパティが空の場合にのみ重みが初期化されます。

データ型:烧焦|一串|function_handle

バイアスを初期化する関数。次のいずれかに指定します。

  • “零”- 0でバイアスを初期化します。

  • '一个'- 1でバイアスを初期化します。

  • “narrow-normal”——平均0,標準偏差0.01の正規分布から個別にサンプリングを行って,バイアスを初期化します。

  • 関数ハンドル——カスタム関数でバイアスを初期化します。関数ハンドルを指定する場合,関数は偏见= func(深圳)という形式でなければなりません。ここで,深圳はバイアスのサイズです。

この層では,偏倚プロパティが空の場合にのみバイアスが初期化されます。

データ型:烧焦|一串|function_handle

層の重み。行列として指定します。

層の重みは学習可能なパラメーターです。層の权重プロパティを使用して,重みに直接,初期値を指定できます。ネットワークの学習時に,層の权重プロパティが空ではない場合,trainNetwork权重プロパティを初期値として使用します。权重プロパティが空の場合、trainNetworkは層のWeightsInitializerプロパティによって指定された初期化子を使用します。

学習時、权重输出大小输入大小列の行列です。

データ型:单一的|双重的

層のバイアス。行列として指定します。

層のバイアスは学習可能なパラメーターです。ネットワークの学習時に,偏倚が空ではない場合,trainNetwork偏倚プロパティを初期値として使用します。偏倚が空の場合、trainNetworkBiasInitializerによって指定された初期化子を使用します。

学習時、偏倚输出大小1列の行列です。

データ型:单一的|双重的

学習率および正則化

重みの学習率係数。非負のスカラーとして指定します。

この係数にグローバル学習率が乗算されて、この層の重みの学習率が決定されます。たとえば、加权比率因子が 2.の場合、この層の重みの学習率は現在のグローバル学習率の 2.倍になります。関数trainingOptionsで指定された設定に基づいて,グローバル学習率が決定されます。

例:2

バイアスの学習率係数。非負のスカラーとして指定します。

この係数にグローバル学習率が乗算されて、この層のバイアスの学習率が決定されます。たとえば、BiasLearnRateFactorが 2.の場合、層のバイアスの学習率は現在のグローバル学習率の 2.倍になります。関数trainingOptionsで指定された設定に基づいて,グローバル学習率が決定されます。

例:2

重みの L2级正則化係数。非負のスカラーとして指定します。

この係数にグローバルL2正則化係数が乗算されて,この層の重みのL2正則化が決定されます。たとえば,WeightL2Factorが 2.の場合、この層の重みの L2级正則化はグローバル L2级正則化係数の 2.倍になります。グローバル L2级正則化係数は、関数trainingOptionsを使用して指定できます。

例:2

バイアスのL2正則化係数。非負のスカラーとして指定します。

この係数にグローバル L2级正則化係数が乗算されて、この層のバイアスの L2级正則化が決定されます。たとえば、BiasL2Factorが 2.の場合、この層のバイアスの L2级正則化はグローバル L2级正則化係数の 2.倍になります。グローバル L2级正則化係数は、関数trainingOptionsを使用して指定できます。

例:2

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

データ型:烧焦|一串

層の入力の数。この層は単一の入力のみを受け入れます。

データ型:双重的

層の入力名。この層は単一の入力のみを受け入れます。

データ型:细胞

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

データ型:双重的

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

データ型:细胞

すべて折りたたむ

出力サイズが 10、名前が“fc1”の全結合層を作成します。

层= fullyConnectedLayer (10,“名字”“fc1”
layer=FullyConnectedLayer,属性:Name:'fc1'超参数InputSize:'auto'输出大小:10个可学习参数权重:[]偏差:[]显示所有属性

配列に全結合層を含めます。

层=[...imageInputLayer([28 28 1])卷积2dlayer (5,20)“步”,2) full connectedlayer (10) softmaxLayer classiationlayer]
图层= 7x1图层数组:1”的形象输入28 x28x1图像zerocenter正常化2”卷积20 5 x5旋转步[1]和填充[0 0 0 0]3”ReLU ReLU 4”马克斯池2 x2马克斯池步(2 - 2)和填充[0 0 0 0]5“完全连接10完全连接层6”Softmax Softmax crossentropyex 7”分类输出

重みとバイアスの初期化子関数を指定するには,それぞれWeightsInitializerプロパティとBiasInitializerプロパティを使用します。重みとバイアスを直接指定するには,それぞれ权重プロパティと偏倚プロパティを使用します。

初期化関数の指定

出力サイズが 10の全結合層を作成し、重み初期化子を 他初期化子に指定します。

outputSize=10;层=fullyConnectedLayer(outputSize,“WeightsInitializer”“他”
layer=FullyConnectedLayer,属性:Name:“”Hyperparameters InputSize:'auto'OutputSize:10个可学习参数权重:[]偏差:[]显示所有属性

权重プロパティおよび偏倚プロパティは空になることに注意してください。学習時に,これらのプロパティは指定した初期化関数を使用して初期化されます。

カスタム初期化関数の指定

重みとバイアスの独自の初期化関数を指定するには、関数ハンドルにWeightsInitializerプロパティおよびBiasInitializerプロパティを設定します。これらのプロパティに、重みとバイアスのサイズを入力として取り、初期化値を出力する関数ハンドルを指定します。

出力サイズが 10の全結合層を作成し、標準偏差 0.0001のガウス分布から重みとバイアスをサンプリングする初期化子を指定します。

outputSize = 10;weightsInitializationFcn = @(sz) rand(sz) * 0.0001;biasInitializationFcn = @(sz) rand(sz) * 0.0001;层= fullyConnectedLayer (outputSize,...“WeightsInitializer”,@(sz)兰特(sz)*0.0001,...“BiasInitializer”,@(sz)兰特(sz)*0.0001)
layer=FullyConnectedLayer,属性:Name:“”Hyperparameters InputSize:'auto'OutputSize:10个可学习参数权重:[]偏差:[]显示所有属性

ここでも、权重プロパティおよび偏倚プロパティは空になります。学習時に、これらのプロパティは指定した初期化関数を使用して初期化されます。

重みおよびバイアスの直接指定

出力サイズが10の全結合層を作成し,垫ファイル重量.matで重みとバイアスをそれぞれWbに設定します。

outputSize=10;负载FCWeights重量层= fullyConnectedLayer (outputSize,...“重量”W...“偏见”, b)
Name: " Hyperparameters InputSize: 720 OutputSize: 10 learable Parameters Weights: [10x720 double] Bias: [10x1 double]显示所有属性

ここで,权重プロパティおよび偏倚プロパティには指定した値が含まれます。学習時に,これらのプロパティが空ではない場合,指定した値が初期の重みとバイアスとして使用されます。この場合,初期化子関数は使用されません。

詳細

すべて展開する

互換性の考慮事項

すべて展開する

R2019a型での動作変更

参照

[1] 格洛特、泽维尔和约书亚·本吉奥。”理解训练深度前馈神经网络的困难〉,《第十三届人工智能与统计国际会议论文集》,第249-256页,2010年。

[2] 何开明、张翔宇、任少卿、孙健。”深入研究整流器:在图像网络分类上超越人类水平的性能〉,《IEEE计算机视觉国际会议论文集》,第1026-1034页,2015年。

Saxe, Andrew M., James L. McClelland和Surya Ganguli。深度线性神经网金宝搏官方网站络学习的非线性动力学的精确解

拡張機能

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

图形处理器コード生成
GPU编码器™ を使用して NVIDIA®GPUのための CUDA®コードを生成します。

R2016a型で導入