【问题标题】:h2o autoencoders high error (h2o.mse)h2o 自动编码器高错误 (h2o.mse)
【发布时间】:2018-12-06 01:02:33
【问题描述】:

我正在尝试使用 h2o 来创建一个使用其深度学习功能的自动编码器。我将一组大小约为 4000x50 的数据提供给深度学习函数(隐藏节点 c(200)),然后使用 h2o.mse 检查其错误,我得到大约 0.4,这是一个相当高的值。

有没有办法通过改变深度学习功能来减少错误?

【问题讨论】:

    标签: r h2o


    【解决方案1】:

    我假设一切都是默认设置,除了定义一个具有 200 个节点的隐藏层?

    您要尝试的第一组事情是:

    • 使用更多的时期(或使用不那么激进的早期停止标准)
    • 使用第二个隐藏层
    • 在隐藏层中使用更多节点
    • 获取更多训练数据

    请注意,所有这些都会增加您的训练时间。

    【讨论】:

      【解决方案2】:

      您可以使用 H2OGridSearch 找到具有最小 MSE 的最佳自动编码器模型。 以下是 Python 中的示例。 Here 你可以在 R 中找到例子。

      def tuneAndTrain(hyperParameters, model, trainDataFrame):
          h2o.init()
          trainData=trainDataFrame.values        
          trainDataHex=h2o.H2OFrame(trainData)
          modelGrid = H2OGridSearch(model,hyper_params=hyperParameters)
          modelGrid.train(x=list(range(0,int(len(trainDataFrame.columns)))),training_frame=trainDataHex)
          gridperf1 = modelGrid.get_grid(sort_by='mse', decreasing=True)
          bestModel = gridperf1.models[0]
          return bestModel
      

      你可以调用上面的函数来寻找和训练最好的模型:

      hiddenOpt = [[50,50],[100,100], [5,5,5],[50,50,50]]
      l2Opt = [1e-4,1e-2]
      hyperParameters = {"hidden":hiddenOpt, "l2":l2Opt}
      bestModel=tuneAndTrain(hyperParameters,H2OAutoEncoderEstimator(activation="Tanh", ignore_const_cols=False, epochs=200),dataFrameTrainPreprocessed)
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-06-11
        • 2019-08-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-10-19
        • 1970-01-01
        相关资源
        最近更新 更多