
306
|
第六章:深度網路的調整
我們所要提到的最後一種做法,就叫做「
超級取樣
(
super sampling
)」,在這種做法
中,我們會針對較低頻率的類別進行複製,用超級取樣的方式讓它達到其他類別的
數量
33
。
加權損失函數
在訓練過程中處理各類別數量不均衡的另一種方法,就是使用較低的權重來訓練較大類
別中的樣本。這有助於平衡那些不均衡資料集對訓練所造成的影響,而且通常會傾向於
創建出能夠更準確偵測出較罕見標籤的模型。
為了幫助你進一步理解這個概念,我們就用一小段程式碼來進行說明。在下面這段程式
碼中,可以看到我們創建了一個
INDArray
,來保存加權損失函數中各個類別的權重值:
INDArray weights = Nd4j.create(new double[]{0.1, 0.4, 1.0});
然後我們把這些權重值送進損失函數的新實例中,如程式碼片段中特別強調的部分所示:
MultiLayerConfiguration conf = new NeuralNetConfiguration.Builder()
.seed(seed)
.iterations(1)
.optimizationAlgo(OptimizationAlgorithm.STOCHASTIC_GRADIENT_DESCENT)
.learningRate(learningRate)
.updater(Updater.NESTEROVS).momentum(0.9)
.list()
.layer(0, new DenseLayer.Builder().nIn(numInputs).nOut(numHiddenNodes) ...