登录
首页精彩阅读谷歌教你学 AI-第六讲深度神经网络
谷歌教你学 AI-第六讲深度神经网络
2018-01-30
收藏

谷歌教你学 AI-第六讲深度神经网络

Google Cloud发布了名为"AI Adventures"的系列视频,用简单易懂的语言让初学者了解机器学习的方方面面。今天让我们来看到第六讲深度神经网络

观看更多国外公开课,点击"阅读原文"

回顾之前内容:

谷歌教你学 AI -第一讲机器学习是什么?

谷歌教你学 AI -第二讲机器学习的7个步骤

谷歌教你学 AI -第三讲简单易懂的估算器

谷歌教你学 AI -第四讲部署预测模型

谷歌教你学 AI -第五讲模型可视化

本期视频如下:

AI Adventures--第六讲深度神经网络

针对不方便打开视频的小伙伴,CDA字幕组也贴心的整理了文字版本,如下:

在本期的AI Adventures中,我们将学习如何将线性模型转换为深度神经网络,从而训练越来越复杂的数据集。

随着线性模型中特征列的数量增加,在训练实现高正确率变得越来越难,因为不同列之间的交互越来越复杂。 这是一个已众所周知的问题,对于数据科学家来说,特别有效的解决方案是使用深度神经网络

为什么要用深度神经网络

深度神经网络能够适应更复杂的数据集,更好地推广到新数据中。由于有许多层,因此被称为”深”。 这些层能让它们比线性模型,更能适应复杂的数据集。

然而值得权衡的是,若用到深度神经网络,模型则需要更长的训练时间,规模也更大,解释性更低。 那么为什么要用呢?

因为这会带来更高的正确性。


深度学习一个棘手的方面是:要让所有参数“恰到好处”。

根据数据集,这些配置看几乎是无限制的。 但是,TensorFlow内置的Deep Classifier和Regressor提供了一些合理的默认值,你可以立即开始使用,从而快速轻松地进行操作。

从线性到深度

我们来看一个例子,如何将鸢尾花的例子从线性模型更新到深度神经网络(通常缩写为DNN)。

我不打算展示DNN处理的2000列模型…因此我只打算使用我们之前用到的4列模型。当中的机制都是一样的。

主要的变化来自于用DNN分类器替换线性分类器。 这将为我们创建一个深度神经网络

其他变化

其他的内容几乎都保持不变!深度神经网络还需要一个额外的参数,这是之前我们没有涉及的。

由于深层神经网络有多个层,每层有不同数量的节点,我们将添加一个`hidden_units`参数。

`hidden_units`能够让你为每个图层提供有具有节点数量的数组。这能让你在创建神经网络时,只需考虑它的大小和形状,而不是从头考虑方方面面。添加或删除层就像在数组中添加或删除元素一样简单!

更多的选择

当然,对于任何预先构建的系统,这确实很方便,但是往往缺乏可定制性。 DNN分类器通过让你选择许多其他参数来解决这个问题。有些合理的默认值会被使用 。 例如,优化器,激活函数和退出率都等都可以自定义。

将模型从线性转换为深度,还需要做些什么?

没了!

这就是使用估算器框架的美妙之处。这是整理数据、训练、评估和模型导出的一种常见方式,同时还可以灵活地尝试不同的模型和参数。

深度神经网络,让问题更简单

有时,深度神经网络效果要优于线性模型。在这种情况下,通过使用估算器框架替换一个函数,TensorFlow可以轻松地从线性模型切换到深度模型,而只需要更改少数的代码。 

这意味着你能够用更多的时间来处理数据、模型和参数,而不是反复进行训练循环。对于简单的深度神经网络问题,快使用TensorFlow估算器吧!

下期预告

当训练数据太大,我们的机器无法承载;或者训练模型需要好几个小时,那么是时候考虑其他的选择了。下一期我们将降到在云端训练大数据模型。

数据分析咨询请扫描二维码

客服在线
立即咨询