[转]TensorFlow---岂止深度学习
原文链接
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模块可参考以前的文章。
最新文章
- BZOJ 1009 【HNOI2008】 GT考试
- UNIX环境高级编程笔记之标准I/O库
- 数据结构--栈的应用(表达式求值 nyoj 35)
- php处理数组函数大全
- SQL注入脚本(基于时间)
- virtual box 中两个虚拟机 、宿主机 三机互通并且能上外网设置
- Android输入输出机制之来龙去脉
- JavaScript 哈希表(散列表)应用
- 六、latex中的特殊字符
- FineUI经典项目展示(1)生产在线管理系统
- java编程规范(持续更新)
- 如何搭建高可用redis架构?
- Sprint 冲刺第三阶段第一天
- C语言 —— sprintf()函数
- 63.delegate回调 和block回调
- DirectInfo.GetFiles返回数组的默认排序
- UGUI之控件以及按钮的监听事件系统
- phpstorm10激活加汉化
- ORACLE中index的rebuild(转)
- ubuntu 16.04+Anaconda+theano+keras安装【转】
热门文章
- 10款CSS3按钮 - 程序员再也不用为按钮设计而发愁了...
- 深入浅出Nodejs读书笔记
- 手把手实现腾讯qq拖拽删去效果(一)
- 【google面试题】求1到n的正数中1出现的次数的两种思路及其复杂度分析
- oauth2-server-php-docs 授权控制器
- (纪录片)鸟瞰中国 China from Above
- .NET 服务器定位模式(Service Locator Pattern)——Common Service Locator
- python 读取单所有json数据写入mongodb(单个)
- 【树莓派】【转】树莓派3装Android 6.0,支持Wi-Fi和蓝牙
- Ubuntu MYSQL环境搭建