訓練中に確率0.5で入力要素をゼロに設定するネットの層を表す.
DropoutLayer[p]
訓練中に確率 p で入力要素をゼロに設定する.
DropoutLayer
訓練中に確率0.5で入力要素をゼロに設定するネットの層を表す.
DropoutLayer[p]
訓練中に確率 p で入力要素をゼロに設定する.
詳細とオプション
- DropoutLayerは,一般に,ニューラルネットワークの正規化の形式として使われる.
- DropoutLayerはNetChainやNetGraph等の中で使われることが多い.
- 次の任意パラメータを使うことができる.
-
Method "Dropout" 使用するドロップアウトメソッド "OutputPorts" "Output" 出力ポート - Methodオプションの使用可能な明示的設定には以下がある.
-
"AlphaDropout" 入力定数の平均と分散を保つ.ElementwiseLayer["SELU"]のアクティベーションと一緒に使われるように設計されている "Dropout" 訓練中に,確率 p で入力要素を0に設定し,余りを1/(1-p)倍する - 次は,"OutputPorts"オプションの可能な設定である.
-
"BinaryMask" 入力データに適用されるバイナリマスク "Output" ドロップアウトの出力 {port1,…} 有効なポートのリスト - DropoutLayerはNetGraph等で使うために次のポートを開放する.
-
"Input" 任意階数の配列または配列の列 "Output" 任意階数の配列または配列の列 - DropoutLayerは,通常は,入力次元をNetChain等のコンテキストから推定する.次元を{n1,n2,…}として明示的に指定したければDropoutLayer["Input"->{n1,n2,…}]を使うとよい.
- DropoutLayer[…][input]は層を適用した出力を明示的に計算する.
- DropoutLayer[…][{input1,input2,…}]は各 inputiについて出力を明示的に計算する.
- NumericArrayが入力として与えられたときの出力はNumericArrayである.
- DropoutLayerは,訓練中に入力要素をランダムにゼロにのみ指定する.評価中は,層の適用時にNetEvaluationMode->"Train"が指定されていない限り,DropoutLayerは入力を変更しない.
- Options[DropoutLayer]は層を構築するデフォルトオプションのリストを与える.Options[DropoutLayer[…]]はデータについて層を評価するデフォルトオプションのリストを与える.
- Information[DropoutLayer[…]]は層についての報告を与える.
- Information[DropoutLayer[…],prop]はDropoutLayer[…]の特性 prop の値を与える.使用可能な特性はNetGraphと同じである.
例題
すべて開く すべて閉じる例 (1)
DropoutLayerを作る:
drop = DropoutLayer[]drop[{1, 2, 3, 4, 5}]NetEvaluationModeを使ってDropoutLayerの訓練動作を強制する:
drop[{1, 2, 3, 4, 5}, NetEvaluationMode -> "Train"]スコープ (2)
特定の確率のDropoutLayerを作る:
drop = DropoutLayer[0.8]drop[{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}]訓練動作を使用するように指定して,この層を入力データに適用する:
drop[{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}, NetEvaluationMode -> "Train"]RGB画像を取ってRGB画像を返すDropoutLayerを作る:
drop = DropoutLayer[0.95, "Input" -> NetEncoder["Image"], "Output" -> NetDecoder["Image"]]DropoutLayerは,ランダムかつ独立に各画素の個々の色成分をゼロ化することで,階数3の配列で表される画像に作用する:
drop[[image], NetEvaluationMode -> "Train"]オプション (2)
Method (1)
"AlphaDropout"をドロップアウトメソッドとして使ってDropoutLayerを作る:
drop = DropoutLayer[Method -> "AlphaDropout"]drop[{1, 2, 3, 4, 5, 6, 7}, NetEvaluationMode -> "Train"]入力データの平均が0で分散が1なら,出力の平均と分散もこれと同じになる:
data = RandomVariate[NormalDistribution[0, 1], 20000];out = drop[data, NetEvaluationMode -> "Train"];Variance@outMean@outout2 = DropoutLayer[][data, NetEvaluationMode -> "Train"];Mean@out2Variance@out2"OutputPorts" (1)
出力の他にバイナリマスクを与えるDropoutLayerを作成する:
drop = DropoutLayer["OutputPorts" -> {"Output", "BinaryMask"}]drop[{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}]drop[{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}, NetEvaluationMode -> "Train"]特性と関係 (1)
DropoutLayerをNetChain内の再帰層間で使って正規化することができる.文章を分類するのによく使われるネットワークは,次のようにDropoutLayerと統合させてもよいかもしれない:
NetChain[{EmbeddingLayer[20], GatedRecurrentLayer[100], DropoutLayer[0.2], GatedRecurrentLayer[100], SequenceLastLayer[], LinearLayer[{}], LogisticSigmoid}, "Input" -> NetEncoder["Characters"], "Output" -> NetDecoder["Boolean"]]再帰層に直接"Dropout"オプションを使う,ドロップアウトのより高度な形を使うこともできる:
gru = GatedRecurrentLayer[100, "Dropout" -> {"VariationalInput" -> 0.2, "StateUpdate" -> 0.1}]NetChain[{EmbeddingLayer[20], gru, gru, SequenceLastLayer[], LinearLayer[{}], LogisticSigmoid}, "Input" -> NetEncoder["Characters"], "Output" -> NetDecoder["Boolean"]]考えられる問題 (1)
デフォルトで,NetEvaluationMode->"Train"によって呼び起こされる任意のランダム性は,SeedRandomやBlockRandomの影響は受けない:
drop = DropoutLayer[]Table[BlockRandom[drop[{1, 2, 3, 4}, NetEvaluationMode -> "Train"]], 6]オプションRandomSeedingInheritedを使って動作を変える:
Table[BlockRandom[drop[{1, 2, 3, 4}, NetEvaluationMode -> "Train",
RandomSeeding -> Inherited]], 6]オプションRandomSeedingを使ってランダム性を制御する:
Table[drop[{1, 2, 3, 4}, NetEvaluationMode -> "Train", RandomSeeding -> 123], 6]テクニカルノート
関連するガイド
テキスト
Wolfram Research (2016), DropoutLayer, Wolfram言語関数, https://reference.wolfram.com/language/ref/DropoutLayer.html (2020年に更新).
CMS
Wolfram Language. 2016. "DropoutLayer." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2020. https://reference.wolfram.com/language/ref/DropoutLayer.html.
APA
Wolfram Language. (2016). DropoutLayer. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/DropoutLayer.html
BibTeX
@misc{reference.wolfram_2026_dropoutlayer, author="Wolfram Research", title="{DropoutLayer}", year="2020", howpublished="\url{https://reference.wolfram.com/language/ref/DropoutLayer.html}", note=[Accessed: 16-September-2026]}
BibLaTeX
@online{reference.wolfram_2026_dropoutlayer, organization={Wolfram Research}, title={DropoutLayer}, year={2020}, url={https://reference.wolfram.com/language/ref/DropoutLayer.html}, note=[Accessed: 16-September-2026]}