前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【干货】TensorFlow 实用技巧:模型盘点,使用情况及代码样例

【干货】TensorFlow 实用技巧:模型盘点,使用情况及代码样例

作者头像
新智元
发布2018-03-23 17:35:55
8380
发布2018-03-23 17:35:55
举报
文章被收录于专栏:新智元新智元

本文将介绍当前 TensorFlow 上的所有抽象模型,描述每个模型的使用情况以及简单的代码样例。详细的示例请访问这里:https://github.com/c0cky/TensorFlow-in-a-Nutshell

递归神经网络(RNN)

使用情况:语言建模、机器翻译、词汇嵌入、文本处理

自从长短时记忆(LSTM)和门控递归单元(GRU)提出以后,递归神经网络(RNN)相较其他自然语言处理模型有了飞跃式的发展。RNN 的输入可以是表征字符的向量,可以经过训练在训练数据集的基础上生成新的句子。RNN 模型的好处在于保留句子中的情景,能够推演“cat sat on mat”的意思是猫在垫子上面。TensorFlow 出现以后,编写这类网络变得愈发简单。下面是一个简单样例:

卷积神经网络(CNN)

使用情况:图像处理、人脸识别、计算机视觉

卷积神经网络(CNN)特别之处在于,设计这种模型时它的输入就已经被定为图像。CNN 可以通过一个小窗口对一幅图像进行卷积处理(滑动),小窗口被称为核,这个小窗口从图像上滑过就生成了一个卷积特征。

生成卷积特征可以用于检测边缘,进而让网络能够描绘图像中的物体。

生成这幅图的卷积特征如下

下面是一个从 NMIST 数据集中识别手写体的代码样例:

前馈神经网络

使用情况:分类和回归

前馈神经网络在每一层都有感知机,会将输入的信息传递到下一层,网络的最后一层是输出。在给定的一层,节点之间不会直接相连。没有原始输入也没有输出的层就是隐藏层。

前馈神经网络的目标与使用反向传播的其他监督神经网络很类似,让输入有理想的、经过训练的输出。前馈神经网络是解决分类和回归问题的一些最简单有效的神经网络。下面我们将展示创造前馈神经网络识别手写数字有多么简单:

线性模型

使用情况:分类和回归

线性模型输入 X 值后,生成用于分类和回归 Y 值最适合的一条线。例如你手头有附近一组房屋的大小和价格,你就能用线性模型预测给定大小的房屋的价格。

需要指出的是,线性模型可以接受多个 X 特征输入。例如上面的房屋例子中,我们能根据房屋大小生成一个线性模型,也可以根据房间数量或者卫生间数量预测一栋房子的价格,分别是f(大小),f(房间数量),f(卫生间数量)。

支持向量机(SVM)

使用情况:当前仅用于二元分类

SVM 背后的基本概念是,对于二元可分的模式(pattern),存在一个最优的超平面。对于不可二元分类的数据,我们可以使用核函数将原始数据转换到一个新的平面上。SVM 将区分超平面的边缘区域最大化。SVM 尤其适用于高纬空间,如果维度比样本数量大也依然有效。

深广模型(Deep and Wide Models)

使用情况:推荐系统、分类和回归

深广网络(Deep and Wide Network)的细节可以参见这篇文章:谷歌发布 Deep and Wide 网络,开源 TensorFlow 模型。

深广网络将线性模型和前馈神经网络结合在一起,因此网络得出的预测既有记忆也有泛化功能。这类模型可以用于分类和回归问题。深广网络的预测相对较准,可以减少特征工程。由此,在两边都取得最好的结果。下面是一个简单的代码片段:

随机森林

使用情况:分类和回归

随机森林模型包含很多不同的分类树,每棵树都为分类投票。森林选择票数最多的那个分类。

随机森林不会过拟合,你可以随便增加树的数量而且速度也相对较快。你可以用下面这段代码跑一次 iris 数据。

贝叶斯强化学习

使用情况:分类和回归

在Github TensorFlow 页面 contrib 文件夹有一个库叫做 BayesFlow。BayesFlow 里面没有说明,只有一个 REINFORCE 算法。这个算法是由 Ronald Wiliams 提出的。

REward Increment = Nonnegative Factor * Offset Reinforcement * Characterisitic Eligibility

该网络试图解决直接的强化学习任务,每次试验得到强化值后对修正权重。在每次试验最后,每个权重都会学习速率因子乘以强化值减去基准乘以特征资格(characteristic eligibility)。Williams 在论文中讨论了使用反向传播训练 REINFORCE 网络的情况。

线性链条件随机场

使用情况:数据排序

CRF 是根据无向模型因子化(factorize)的条件概率分布。这种模型预测单一样本的标签,同时保持相邻样本的语境。CRF 与隐藏摩尔科夫模型十分类似。CRF 常用于图像分割和物体识别,在浅层分析、命名实体识别和基因查找(gene finding)中也有使用。

编译来源:https://hackernoon.com/tensorflow-in-a-nutshell-part-three-all-the-models-be1465993930#.xsno91gkc

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2016-10-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 新智元 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
人脸识别
腾讯云神图·人脸识别(Face Recognition)基于腾讯优图强大的面部分析技术,提供包括人脸检测与分析、比对、搜索、验证、五官定位、活体检测等多种功能,为开发者和企业提供高性能高可用的人脸识别服务。 可应用于在线娱乐、在线身份认证等多种应用场景,充分满足各行业客户的人脸属性识别及用户身份确认等需求。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档