簡體   English   中英

Deeplearning4J MultiLayerConfiguration 用於二類邏輯回歸模型的設置

[英]Deeplearning4J MultiLayerConfiguration settings for a two class logistic regression model

我正在嘗試構建一個二類邏輯回歸模型,但不確定二類模型的最佳方法。

我正在處理如下所示的數據:

特色一 功能 b 功能 c ... 標簽
0.85 0.2 0.4 1.0
0.05 0.3 0.1 0.0

具有范圍 0-1 的特征和 0 或 1 的標簽。

我目前正在使用這個 MultiLayerConfiguration:

private static final int FEATURES_COUNT = 30;
private static final int CLASSES_COUNT = 2; 
...

MultiLayerConfiguration conf = new NeuralNetConfiguration.Builder().seed(12345)
        .updater(new Sgd(0.01))
        .seed(1)
        .biasInit(0)
        .list()
        .layer(new DenseLayer.Builder()
            .nIn(FEATURES_COUNT)
            .nOut(50)
            .activation(Activation.SIGMOID)
            .weightInit(new UniformDistribution(0, 1))
            .build())
        .layer(new DenseLayer.Builder()
            .nIn(50)
            .nOut(50)
            .activation(Activation.SIGMOID)
            .weightInit(new UniformDistribution(0, 1))
            .build())
        .layer(new OutputLayer.Builder(LossFunctions.LossFunction.NEGATIVELOGLIKELIHOOD)
            .nOut(2)
            .activation(Activation.SOFTMAX)
            .weightInit(new UniformDistribution(0, 1))
            .build())

這是構建模型的最佳方式嗎?

此外,當運行幾分鍾時,模型只預測標簽 0。

   0   1
   ---------
   247   0 | 0 = 0
   253   0 | 1 = 1

我也可以根據需要生成盡可能多的數據,並且目前正在使用 6,000 的數據集,批量大小為 500。

你會如何建議我改進我的設置/模型?

預先感謝您的任何建議。

除非您有特定目標,否則我會避免為您的模型設置分布。 這會極大地影響模型的性能。 默認 XAVIER 適用於大多數用例。

您通常也不希望模型權重初始化在 0 和 1 之間。這太大了,會阻止模型學習。

邏輯回歸也不是您在此處介紹的內容。 您創建了一個 3 層 MLP。 如果您只想進行邏輯回歸,那將是帶有 softmax 或 sigmoid 的 1 層神經網絡。 這應該會大大簡化您的調整。

值得注意的是,當您進一步深入時,數據的規范化也很重要。

最后,對於您的數據設置,請確保您的標簽分別為 0 和 1。 如果輸出有 sigmoid,則需要 1 個輸出為 0 或 1。如果有 2,則需要 2 列 0/1,其中 1 是標簽。 1 的列索引將是您想要的目標標簽。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM