作家
登录

图解机器学习:神经网络和TensorFlow的文本分类

作者: 来源: 2017-04-24 09:29:37 阅读 我要评论

  1. import tensorflow as tf 
  2. my_graph = tf.Graph() 
  3. with tf.Session(graph=my_graph) as sess: 
  4.     x = tf.constant([1,3,6])  
  5.     y = tf.constant([1,1,1]) 
  6.     op = tf.add(x,y) 
  1. input values: x 
  2. weights: w 
  3. bias: b 
  4. output values: z 
  5. expected values: expected 

为了知道收集是否正在进修,你须要比较一下输出值(Z)和期望值(expected)。我们要怎么计算这个的不合(损耗)呢?有很多办法去解决这个问题。因为我们正在进行分类义务,测量损耗的最好的方法是 交叉熵误差。

James D. McCaffrey 写了一个出色的解释,解释为什么这是这种类型义务的最佳办法。

经由过程 TensorFlow 你将应用 tf.nn.softmax_cross_entropy_with_logits() 办法计算交叉熵误差(这个是 softmax 激活函数)并寂?娼均误差 (tf.reduced_mean())。

你也须要定义第一个隐蔽层会有若干节点。这些节点也被称为特点或神经元,在膳绫擎的例子中我们用每一个圆圈表示一个节点。

你欲望经由过程权重和误差的最佳值,以便最小化输出误差(实际获得的值和精确的值之间的差别)。要做到这一点,将需应用 梯度降低法。更具体些是,须要应用 随机梯度降低。

图解机械进修:神经收集和TensorFlow的文本分类
(梯度降低。源: https://sebastianraschka.com/faq/docs/closed-form-vs-gd.html)

为了计算梯度降低,将要应用 Adaptive Moment Estimation (Adam)。要在 TensorFlow 中应用此算法,须要传递 learning_rate 值,该值可肯定值的增量步长以找到最佳权重值。

办法 tf.train.AdamOptimizer(learning_rate).minimize(loss) 是一个 语法糖,它做了两件工作:

  1. # Construct model 
  2. prediction = multilayer_perceptron(input_tensor, weights, biases) 
  3. # Define loss 
  4. entropy_loss = tf.nn.softmax_cross_entropy_with_logits(logits=prediction, labels=output_tensor) 
  5. loss = tf.reduce_mean(entropy_loss) 
  1. compute_gradients(loss, )  
  2. apply_gradients() 

这个办法用新的值更新了所有的 tf.Variables ,是以我们不须要传递变量列表。如今你有了练习收集的代码:

  1. learning_rate = 0.001 
  2. # Construct model 
  3. prediction = multilayer_perceptron(input_tensor, weights, biases) 
  4. # Define loss 
  5. entropy_loss = tf.nn.softmax_cross_entropy_with_logits(logits=prediction, labels=output_tensor) 
  6. loss = tf.reduce_mean(entropy_loss) 
  7. optimizer = tf.train.AdamOptimizer(learning_rate=learning_rate).minimize(loss) 

数据操作

将要应用的数据集有很多英文文本,我们须要操作这些数据将其传递给神经收集。要做到这一点,须要做两件事:

  1. 为每一个工作创建索引
  2. 为每一个文本创建矩阵,在矩阵里,如不雅单词在文本中则值为 1,不然值为 0

让我们看着代率攀来懂得这个过程:

  1. import numpy as np    #numpy is a package for scientific computing 
  2. from collections import Counter 
  3. vocab = Counter() 
  4. text = "Hi from Brazil"

      推荐阅读

      iOS AFNetworking框架HTTPS请求配置

    【引自IamOkay的博客】 iOS在Apple公司的强迫请求下,数据传输必须按照ATS(App Transefer Security)条目。关于AFNetworking框架传输HTTPS数据。一.AllowsArbitraryLoads 白名单机制NSAll>>>详细阅读


    本文标题:图解机器学习:神经网络和TensorFlow的文本分类

    地址:http://www.17bianji.com/lsqh/34909.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)