【问题标题】:Neural network performance optimization神经网络性能优化
【发布时间】:2017-04-24 14:50:23
【问题描述】:

我正在尝试根据报告中提到的症状对医疗报告进行分类。我正在做的步骤是

1) 从每份医疗报告中提取症状。

2) 创建一个从所有医疗报告中提取的所有症状的集合,到目前为止的总术语是 3700。

3) 创建一组在这些出院摘要中诊断和提及的所有疾病,到目前为止的总词条为 1500。

4) 现在我遍历所有医疗报告并为每个报告及其诊断创建一个热向量。我有 5000 个文档。

对于症状,我得到一个 5000 X 3700 的矩阵 其中每一行代表一个文档,每一列显示一个症状。如果文档中存在症状,则该列的值为 1,否则该值为 0,即症状为

为了诊断,我得到一个 5000 X 1500 的矩阵

I am using a backward propagating neural network for training. The network has 3700 input neurons, 1 hidden layer and 1500 output neurons.

代码从这里http://jrmeyer.github.io/tutorial/2016/02/01/TensorFlow-Tutorial.html 用于创建分类器。

问题是无论我训练多少(到目前为止我已经尝试了 25000 个 epoch),我得到的结果都很糟糕,

输出具有 160 多个标签的最大概率值 (1),而我期望 5 个标签。

我可能做错了什么,或者我应该做些什么来改善结果。

更新:我也尝试用最少的数据(100 个文档和 85000 个时期)测试网络。

可能导致该问题的一个问题是,从每个文档中,最多可以提取 15 - 20 个术语,因此一个热向量有 20 个 1 和 3680 个 0。有人可以建议这是否是问题所在?

【问题讨论】:

    标签: machine-learning tensorflow neural-network gradient-descent multilabel-classification


    【解决方案1】:

    没有足够的细节来理解你的问题和实现 但如果您有更多技术问题(错误、网络架构等)或数据问题,一个很好的起点是创建您知道应该适合您的模型的合成数据(假一些疾病,每个有一系列症状)

    如果模型未提供预期结果,则可能是技术问题。 如果是这样,则更有可能是数据问题:可能您的数据噪声太大,或者底层模型更复杂,或者您没有足够的数据。

    【讨论】:

    【解决方案2】:

    您可以尝试以下几种方法(尽管这些并不能保证提高性能):

    1. 绘制学习曲线以确定最佳学习率、l2 惩罚等。
    2. 生成综合数据
    3. 增加网络的深度

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-01-24
      • 2012-12-29
      • 2019-07-13
      • 1970-01-01
      • 1970-01-01
      • 2020-01-23
      • 2010-10-24
      相关资源
      最近更新 更多