【问题标题】:Setup linear regression with a factorMatrix - DL4j使用 factorMatrix 设置线性回归 - DL4j
【发布时间】:2020-07-16 12:12:56
【问题描述】:

我有一个 INDArray 类型的 factorMatrix,即 xIn

它包含 5 列 [A, B, C, D, E]

另一个 INDArray 有 1 列 [y],即 yIn

对于熟悉 MatLab 的人,我现在可以使用:

modelTrain = fitlm([XInSample yInSample] , 'linear') and then 

retPredictionRegress = predict(modelTrain , XInSample);

我在使用 xInyInd 设置 DL4J 时遇到问题,即使我 found 声称有帮助 - 但至少对我没有帮助。

谁能带我走上正轨?

【问题讨论】:

    标签: deeplearning4j dl4j nd4j


    【解决方案1】:

    dl4j 中的线性回归只是一个具有特定损失函数并输出较晚类型的神经网络。这遵循了在任何其他深度学习框架中如何进行线性回归。这个概念/想法并不是真正特定于 dl4j 本身。它遵循使用更通用框架的回归问题的任何实例化中的约定。

    我看到你在这里也发表了评论: DL4J linear regression

    回复您的“至少对我没有帮助”,您介意澄清您在问题中遇到的问题吗?这会有所帮助。

    回答您的问题,您只需声明一个包含 5 个输入的神经网络,并声明您有多少个输入。如果您认为目标合适,您可以声明超过 1 个输出。在您的情况下,它是 1 个输出。

    这方面的一个例子是:

     //Create the network
            int numInput = 5;
            int numOutputs = 1;
            int nHidden = 10;
            MultiLayerNetwork net = new MultiLayerNetwork(new NeuralNetConfiguration.Builder()
                    .seed(seed)
                    .weightInit(WeightInit.XAVIER)
                    .updater(new Nesterovs(learningRate, 0.9))
                    .list()
                    .layer(0, new DenseLayer.Builder().nIn(numInput).nOut(nHidden)
                            .activation(Activation.TANH) //Change this to RELU and you will see the net learns very well very quickly
                            .build())
                    .layer(1, new OutputLayer.Builder(LossFunctions.LossFunction.MSE)
                            .activation(Activation.IDENTITY)
                            .nIn(nHidden).nOut(numOutputs).build())
                    .build()
            );
    

    上面的sn-p来自dl4j的例子。

    在这种情况下,您将使用适当的输出调整神经网络。如果您想了解神经网络和回归之间的关系,我建议您对该主题进行更广泛的阅读。

    【讨论】:

    • 当然,您的解释。该示例令人困惑,因为当我检查输入和测试数据时,我看不到任何标签。到目前为止,我理解 ML 应该有一个像样的标签,告诉 ML 算法对结果进行分类。在我的情况下,一行中的每个 xIn 都映射到其对应的 yIn => (正值或负值) - 所以我不清楚当没有要映射的标签时 ML 如何映射?我认为这与其他询问者的要求相同。
    • 您好,您可以将输出目标映射为模型的输出以供学习。 “标签”只是实数输出。这里需要注意的是,您应该确保标准化您的输入和输出。在 dl4j 本身中,您需要确保在完成训练后将输出重新缩放为“真实”数字。
    猜你喜欢
    • 2018-07-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-09
    • 1970-01-01
    • 2021-10-12
    相关资源
    最近更新 更多