marquee
  • 2018上半年将更新数据库、C++、计算机组成原理、操作系统等文章,谢谢关注~
  • 由于算法限制,搜索时注意简化关键字,谢谢支持~
  • 网站不兼容IE5.0及以下,请使用主流浏览器访问.
  • 试用搜索、标签、分类目录功能发现更多。
  • TensorFlow实现简单神经网络分类问题

    利用TensorFlow来训练所有的神经网络的训练过程可以分为如下3个步骤:

    ①定义神经网络的结构和前向传播的输出结果。
    ②定义损失函数以及选择反向传播优化算法。
    ③生成会话(tf.Session)并且在训练数据上反复运行反向传播优化算法。

    下面给出一个简单的二分类问题的神经网络算法(完整的流程)

    神经网络具体结构如下图:

    训练流程图:

    几个解释:

    ①Numpy 是一个科学计算的工具箱的,这里通过Numpy生成模拟数据集。

    ②batch是每一次的训练数据的大小。

    ③损失函数是交叉熵(cross_entropy)
    具体解释请看:http://www.omegaxyz.com/2018/05/07/information_entropy/

    ④反向传播算法可以使用梯度下降法:tf.train.GradientDescentOptimizer(0.05).minimize(cross_entropy)或者tf.train.AdamOptimizer(0.002).minimize(cross_entropy)
    文章中使用的是AdamOptimizer,学习率是0.002。

    ⑤这里所有x1+x2<1的样例都被认为是正样本。

    ⑥每隔一段时间计算在所有数据上的交叉熵并输出,交叉熵越小说明预测的结果和真实的结果差距越小,这里用matplotlib画图。

    代码:

    结果:

    交叉熵越低,结果越好

    读者评分
    [评分人数: 1 平均分: 5]

    评论

    OmegaXYZ