LearningRateMultipliers

LearningRateMultipliers

ネット層およびNetTrainNetChainNetGraphのオプションで,訓練時に適用する学習率の乗数を指定する.

詳細

  • LearningRateMultipliers->Automaticのデフォルト値では,すべての層が同じ率で学習する.
  • LearningRateMultipliers->{rule1,rule2,}は,ネット中の訓練可能な全配列の学習率の決定に使用する規則一式を指定する.
  • LearningRateMultipliers->{rule1,rule2,}ruleiのそれぞれに次の形式を使うことができる.
  • "part"r乗数 r を名前付きの層,サブネットワークあるいは層の中の配列に使う
    nr乗数 r を第 n 層に使う
    m;;nr乗数 r を第 m 層から第 n 層までに使う
    {part1,part2,}r乗数 r をネストした層あるいは配列に使う
    _r乗数 r をすべての層に使う
  • LearningRateMultipliersr は,訓練可能なすべての配列に対して同じ乗数 r を使って指定する.
  • r が零あるいはNoneのときは,層または配列は訓練されてはならず,NetTrainはこれらを変更せずに残す.
  • r が正または負の数ならば,これは訓練メソッドによって選ばれた大域的学習率に適用する乗数を指定して,与えられた層または配列の学習率を決定する.
  • 訓練可能な各配列について,使用される率は最初に合致する規則で与えられる.合致する規則がない場合は1が使われる.
  • サブネット(ネストしたNetChainまたはNetGraph)を指定する規則は,そのサブネット内のすべての層または配列に適用される.
  • LearningRateMultipliers->{part->None}を使って特定の部分を「凍結」することができる.
  • LearningRateMultipliers->{part->1,_->None}を使って特定の部分以外のすべての層を「凍結」することができる.
  • ネットを部分的に参照するためにLearningRateMultipliersで使われる階層的指定{part1,part2,}は,NetExtractNetReplacePartで使われるものに等しい.
  • Information[net,"ArraysLearningRateMultipliers"]は,ネットのすべての層についてのデフォルトの学習率の乗数を与える.
  • 訓練時に純粋に使われる乗数は,特性"ArraysLearningRateMultipliers"を介してNetTrainResultsObjectから得ることができる.

例題

すべて開くすべて閉じる

  (2)

3層のネットを作って初期化し,最終層のみを訓練する:

訓練したネットを入力について評価する:

初期ネットの最初の層は零バイアスで始まっている:

最初の層のバイアスは,訓練したネットでも零のままである:

3番目の層のバイアスは訓練されている:

与えられた配列値で凍結した層を作る:

この層をより大きいネットの中にネストさせる:

デフォルトでNetTrainがネットのっすべての層に使う学習率乗数を得る:

このネットで訓練する:

訓練に使われた学習率乗数をチェックする:

凍結された層の配列は訓練中もそのままである:

スコープ  (1)

ネトワーク内でLearningRateMultipliersを置き換える  (1)

ネットを取る:

このネットの最初の層のLearningRateMultipliersをゼロに設定する:

LearningRateMultipliersオプションの値をプログラムを使ってチェックする:

アプリケーション  (1)

既存のネットワークを訓練して新たなタスクを解く,手書きの数字について訓練された,訓練済みのたたみ込みモデルを入手する:

画像を3つのクラスに分類するために,最終2層を削除して新たな2層を加える:

さまざまなフォントやサイズ,大文字小文字の違いを含む「x」,「y」,「z」の3文字をラスタライズすることで訓練データを生成する:

修正済みのネットワークを新たなタスクで訓練する:

未見の文字を分類する:

訓練集合と検証集合を含むもとの訓練データについてのパフォーマンスを測定する:

特性と関係  (1)

特定の学習率乗数で,LeNetをMNISTデータ集合で訓練し,NetTrainResultsObjectを返す:

個々の重み配列に使われている実際の学習率乗数を得る:

考えられる問題  (1)

ネットワーク内の数カ所に共有配列が出現する場合は,一意的な学習率乗数1つだけがその共有配列の出現すべてに対して適用される.

共有配列があるネットワークを作成する:

ネットワーク内の共有配列にLearningRateMultipliersを指定すると,すべての場所に同じ乗数が割り当てられる:

コンフリクトが発生した場合は,最初のマッチした値が使われる:

ネットワークの構築中にLearningRateMultipliersが指定された場合にも同じことが起こる:

Wolfram Research (2017), LearningRateMultipliers, Wolfram言語関数, https://reference.wolfram.com/language/ref/LearningRateMultipliers.html (2020年に更新).

テキスト

Wolfram Research (2017), LearningRateMultipliers, Wolfram言語関数, https://reference.wolfram.com/language/ref/LearningRateMultipliers.html (2020年に更新).

CMS

Wolfram Language. 2017. "LearningRateMultipliers." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2020. https://reference.wolfram.com/language/ref/LearningRateMultipliers.html.

APA

Wolfram Language. (2017). LearningRateMultipliers. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/LearningRateMultipliers.html

BibTeX

@misc{reference.wolfram_2024_learningratemultipliers, author="Wolfram Research", title="{LearningRateMultipliers}", year="2020", howpublished="\url{https://reference.wolfram.com/language/ref/LearningRateMultipliers.html}", note=[Accessed: 21-November-2024 ]}

BibLaTeX

@online{reference.wolfram_2024_learningratemultipliers, organization={Wolfram Research}, title={LearningRateMultipliers}, year={2020}, url={https://reference.wolfram.com/language/ref/LearningRateMultipliers.html}, note=[Accessed: 21-November-2024 ]}