原文链接
TensorFlow不仅可以用于深度学习自动求导,它也可用于构建传统机器学习和经典算法。

TensorFlow提供了“一揽子”常用数值计算和机器学习算法的构建模块。在本文中,作者将介绍广泛使用的机器学习算法以及它们在TensorFlow的tf.contrib中的构建模块。Note:许多tf.contrib中的稳定模块将会移到TensorFlow的主模块。

High level的TF.Learn Estimator

TF.Learn 是TensorFlow内部的high-level模块,并提供各种机器学习算法以及相应的estimator模块。除了简单易用的深度学习API(Deep Neural Networks,Recurrent Neural Networks等)外,TensorFlow提供的流行的机器学习算法如下,包括且不限于:

  • K均值聚类(K-means clustering)
  • 随机森林(Random Forests)
  • 支持向量机(SVM)
  • 高斯混合模型聚类(Gaussian Mixture Model clustering)
  • 线性/逻辑回归(Linear/logistic regression)

Statistical Distribution

TensorFlow提供了主流的各种统计分布函数,在tf.contrib.distributions中,包括且不限于Bernoulli,Beta, Chi2,Dirichlet,Gamma,Uniform等分布函数。这些统计分布函数是构建机器学习算法的重要构建模块,特别是像Bayesian这一类的概率模型。

Layer Component

在tf.contrib.layers内部,有许多产生layer操作及其相关权重和偏差变量的函数。这些大部分都是用来构建不同深度学习架构的。也有些函数是提供归一化,卷积层,dropout层(注:Dropout是在训练过程中以一定概率1-p将隐含层节点的输出值清0),‘one-hot’编码等。下面来粗略浏览一下:

  • tf.contrib.layers.optimizers模块:tf.contrib.layers.optimizers包括的优化器有Adagrad,SGD,Momentum等。它们用来解决数值分析的优化问题,比如,优化参数空间寻找最优模型;
  • tf.contrib.layers.regularizers模块:tf.contrib.layers.regularizers包括的正则化有L1规则化和L2规则化。规则化经常被用来抑制模型训练时特征数过大导致的过拟合(overfitting)问题;有时也作为Lasso回归和Ridge回归的构建模块;
  • tf.contrib.layers.initializers模块:tf.contrib.layers.initializers一般用来做模型初始化。包括深度学习在内的许多算法都要求计算梯度来优化模型。随机初始化模型参数有助于在参数空间中找到最优参数解。TensorFlow提供的有Xavier初始化器,用来在所有层中保持梯度大体相同;
  • tf.contrib.layers.feature_column模块:tf.contrib.layers.feature_column提供函数(比如,bucketing/binning,crossing/compostion,和embedding)来转换连续特征和离散特征;
  • tf.contrib.layers.embedding模块:tf.contrib.layers.embedding转化高维分类特征成低维、密集实数值向量。

损失函数(Loss Function)和Metric

  • tf.contrib.losses模块:机器学习算法优化依赖于损失函数。TensorFlow在tf.contrib.losses模块中提供大量的损失函数以供选择,比如,Sigmoid 交叉熵损失函数(sigmoid cross entropy)和Softmax(softmax cross entropy),Log损失函数,Hinge损失函数等;
  • tf.contrib.metrics模块:tf.contrib.metrics中提供了各种Metric,比如,precision,recall,accuracy, auc,MSE等。

其它

前面作者仅仅抛砖引玉地给出TensorFlow的contrib模块中重要的内容。其它更重要的函数,比如,DataFrame和Monitors模块可参考以前的文章。

最新文章

  1. BZOJ 1009 【HNOI2008】 GT考试
  2. UNIX环境高级编程笔记之标准I/O库
  3. 数据结构--栈的应用(表达式求值 nyoj 35)
  4. php处理数组函数大全
  5. SQL注入脚本(基于时间)
  6. virtual box 中两个虚拟机 、宿主机 三机互通并且能上外网设置
  7. Android输入输出机制之来龙去脉
  8. JavaScript 哈希表(散列表)应用
  9. 六、latex中的特殊字符
  10. FineUI经典项目展示(1)生产在线管理系统
  11. java编程规范(持续更新)
  12. 如何搭建高可用redis架构?
  13. Sprint 冲刺第三阶段第一天
  14. C语言 —— sprintf()函数
  15. 63.delegate回调 和block回调
  16. DirectInfo.GetFiles返回数组的默认排序
  17. UGUI之控件以及按钮的监听事件系统
  18. phpstorm10激活加汉化
  19. ORACLE中index的rebuild(转)
  20. ubuntu 16.04+Anaconda+theano+keras安装【转】

热门文章

  1. 10款CSS3按钮 - 程序员再也不用为按钮设计而发愁了...
  2. 深入浅出Nodejs读书笔记
  3. 手把手实现腾讯qq拖拽删去效果(一)
  4. 【google面试题】求1到n的正数中1出现的次数的两种思路及其复杂度分析
  5. oauth2-server-php-docs 授权控制器
  6. (纪录片)鸟瞰中国 China from Above
  7. .NET 服务器定位模式(Service Locator Pattern)——Common Service Locator
  8. python 读取单所有json数据写入mongodb(单个)
  9. 【树莓派】【转】树莓派3装Android 6.0,支持Wi-Fi和蓝牙
  10. Ubuntu MYSQL环境搭建