Artificial intelligence 单正无限制输出值神经网络

Artificial intelligence 单正无限制输出值神经网络,artificial-intelligence,neural-network,Artificial Intelligence,Neural Network,有人能帮我在神经网络中选择正确的激活函数吗。netwrork是用Python编写的,它应该根据其特征(输入)来估算房地产价格(输出) 现在我在输出层和隐藏层上都使用了sigmoid激活函数。在所有列车案例中,价格都是标准化的(item.price/max_price_of_all_items),因此输出I的值小于1。以下是我正在使用的更多特征: 学习速度为0.01 关于的培训集包含约600个条目(最多3500个) 隐藏层2 第5层神经元 投入9 产出1 纪元-5000(不够?) 经过训练的网

有人能帮我在神经网络中选择正确的激活函数吗。netwrork是用Python编写的,它应该根据其特征(输入)来估算房地产价格(输出)

现在我在输出层和隐藏层上都使用了sigmoid激活函数。在所有列车案例中,价格都是标准化的(item.price/max_price_of_all_items),因此输出I的值小于1。以下是我正在使用的更多特征:

  • 学习速度为0.01
  • 关于的培训集包含约600个条目(最多3500个)
  • 隐藏层2
  • 第5层神经元
  • 投入9
  • 产出1
  • 纪元-5000(不够?)
经过训练的网络效果很差。有什么我错过的吗。 是否有可能在输出上有正常的价格(而不是像现在这样的[0:1]的值)。 我应该改变输出神经元的激活功能吗


感谢您的帮助

以下是一些建议:

  • 确保在输出上使用均方误差,无需激活函数:
    err(x,f(x))=(x-f(x))^2
    ,其中x是真实输出,f(x)是预测输出

  • 如果您自己实现反向传播,请跟踪每个历元的网络平均错误进度。如果历元之间的错误增加,则表明您的实现不正确。 您还可以通过与使用有限差分计算的近似梯度进行比较来检查反向传播计算的梯度

  • 规范化您的输入和输出:减去平均值并除以标准偏差,或者使用PCA将数据变白

  • 资源:


      • 以下是一些建议:

      • 确保在输出上使用均方误差,无需激活函数:
        err(x,f(x))=(x-f(x))^2
        ,其中x是真实输出,f(x)是预测输出

      • 如果您自己实现反向传播,请跟踪每个历元的网络平均错误进度。如果历元之间的错误增加,则表明您的实现不正确。 您还可以通过与使用有限差分计算的近似梯度进行比较来检查反向传播计算的梯度

      • 规范化您的输入和输出:减去平均值并除以标准偏差,或者使用PCA将数据变白

      • 资源:


        你在一个非常广泛的话题上问了一个非常模糊的问题,但与你的具体问题和个人问题有关。这样你可能不会得到一个有用的答案,但我还是会尝试一下

        根据你的描述,你似乎是神经网络领域的新手,只想把它放在你的分类问题上。正如你可能从神经网络维基页面的长度和深度推断的那样,让神经网络“正常工作”涉及到很多困难。我建议在期待有深刻见解的结果之前先研究一下这个主题。你会更好地了解你的方法哪里出了问题

        以下是我列出的使用神经网络进行分类时应注意的事项:

      • 用于培训和验证的数据集
      • 输入编码和规范化
      • 神经元类型(激活功能)
      • 网络拓扑
      • 输出编码和“非规范化”
      • “适合度”评价函数
      • 训练算法
      • 我的最佳猜测是,你已经有了很多正确的输出神经元,但你的拓扑结构是不够的。拓扑结构决定了你学习东西的能力。你可能希望在隐藏层中添加更多神经元。此外,你可能希望使用多个输出神经元,而不是一个。在你的情况下,你可能有房地产价值类别(0-10k美元,10k-50k美元,50k-100k美元,等等),所以每个类别可以使用一个输出神经元。这些类别可能比精确的模拟估计更容易学习

        我第二个最好的猜测是,你的输入数据中根本没有模式。如果给你一个输入向量,你能估计出正确的房地产价值吗?你是如何做到的


        如果我的猜测没有任何帮助,那么您的培训过程似乎有问题。通过将您的实施应用于互联网上流行且被广泛理解的培训问题来进行调查,以获得更多的见解。

        您在一个非常广泛的主题上提出了一个非常模糊的问题,但与您的非常具体的培训相关个人问题。这样你可能不会得到一个有用的答案,但我还是会试试看

        根据你的描述,你似乎是神经网络领域的新手,只想把它放在你的分类问题上。正如你可能从神经网络维基页面的长度和深度推断的那样,让神经网络“正常工作”涉及到很多困难。我建议在期待有深刻见解的结果之前先研究一下这个主题。你会更好地了解你的方法哪里出了问题

        以下是我列出的使用神经网络进行分类时应注意的事项:

      • 用于培训和验证的数据集
      • 输入编码和规范化
      • 神经元类型(激活功能)
      • 网络拓扑
      • 输出编码和“非规范化”
      • “适合度”评价函数
      • 训练算法
      • 我的最佳猜测是,您已经获得了大量正确的输出神经元,但您的拓扑结构不足。拓扑结构决定了学习能力的好坏!您可能希望在隐藏层中添加更多神经元。此外,您可能希望使用多个输出神经元,而不是一个。在您的情况下,您可能需要