【发布时间】:2017-02-09 01:54:02
【问题描述】:
我根据我获取的 Wikipedia 数据构建了一个文章分类器,该数据来自 5 个总分类。
他们是:
Finance (15 articles) [1,0,0,0,0]
Sports (15 articles) [0,1,0,0,0]
Politics (15 articles) [0,0,1,0,0]
Science (15 articles) [0,0,0,1,0]
None (15 random articles not pertaining to the others) [0,0,0,0,1]
我访问了 wikipedia,并从每个类别中抓取了大约 15 篇相当长的文章来构建我的语料库,我可以用它来训练我的网络。
在构建了从所有文章中收集的大约 1000 个单词的词典后,我将每篇文章转换为 word vector,以及正确的 classifier 标签。
词向量是hot array,而标签是one hot array。
例如,这里是一篇文章的表示:
[
[0,0,0,1,0,0,0,1,0,0,... > 1000], [1,0,0,0] # this maps to Finance
]
因此,从本质上讲,我将word vectors 的随机列表映射到正确的classifiers。
我的网络是一个 3 层的深度神经网络,每层包含 500 个节点。我通过网络超过 30 个 epoch,然后在最后显示我的模型有多准确。
现在,我的准确率约为 53% 到 55%。我的问题是,我能做些什么来让这个进入 90 年代?有没有可能,或者我会因为训练这个东西而发疯?
也许另外,可以说我的主要瓶颈是什么?
按以下 cmets 编辑
神经网络并不是真正为在单台机器上运行最好而设计的,如果你有一个集群,或者至少是一个生产级机器,它们会更好地运行。消除语料库的“长尾”是很常见的——如果一个词只出现在一个文档中一次,那么你可能想要消除它。您可能还想应用一些词干,这样您就不会捕获同一个单词的倍数。我强烈建议您在修剪之前尝试将 TFIDF 转换应用于您的语料库。
网络规模优化本身就是一个领域。基本上,你尝试添加更多/更少的节点,看看你会得到什么。请参阅以下内容进行技术讨论。 https://stats.stackexchange.com/questions/181/how-to-choose-the-number-of-hidden-layers-and-nodes-in-a-feedforward-neural-netw
【问题讨论】:
标签: machine-learning neural-network