Google Cloud发布了名为"AI Adventures"的系列视频,用简单易懂的语言让初学者了解机器学习的方方面面。今天让我们来看到第五讲模型可视化。
回顾之前内容: 谷歌教你学 AI -第一讲机器学习是什么?
附有中文字幕的视频如下:
AI Adventures--第五讲模型可视化
针对不方便打开视频的小伙伴,CDA字幕组也贴心的整理了文字版本,如下:
在本期的AI Adventures中,让我们一起了解如何使用TensorBoard进行模型可视化以及调试问题!
当你知道问题所在时,调试问题就容易得多。 但是随着在复杂的模型中输入训练数据,情况则会变得复杂起来。幸运的是,TensorBoard让这变得简单。
与传统编程不同,机器学习中通常有很多难预测的因素。 数据的质量,模型的细微差别,需要选择的众多参数,这些都会影响到训练过程的成败。
如果有办法能够在训练过程中跟踪这些指标,并同时观察我们创建的模型结构,那么这将让我们能够调整模型并调试所看到的问题。
如今,这个抽象过程可能很难进行可视化,但幸运的是,TensorFlow有内置的解决方案!
TensorBoard
让我们看到TensorBoard,TensorFlow的内置可视化工具,这能让你完成各种事情,从观察模型结构到查看培训进度等等。
TensorFlow用到了当中计算图的理念。
这意味着,不是在传统意义上添加两个数字,而是构建一个添加操作符,并将添加的值一起作为输入。
所以当我们想到用TensorFlow训练模型时,它实际上是把所有内容作为“图表”的一部分来执行。 TensorBoard将这些模型可视化,从而你可以看到它们的样子,更重要的是,确保你已按照自己的需求连接了所有部分。
模型图可视化
下面是一个比较复杂的例子,用TensorFlow把模型图进行可视化。
TensorBoard能让我们进行缩放,平移和展开元素从而查看更多细节。 这意味着我们可以在不同抽象层查看模型,这能减少视觉的复杂程度。
但是,TensorBoard不仅仅能够显示模型结构。它还可以用图表很好地绘制指标的进展。
通常,我们会绘制正确率,损失,交叉熵等等。 取决不同模型,重要的指标也不同。TensorFlow的估算器中有很多预先配置在TensorBoard中的值,所以这是一个不错的开始。
TensorBoard可以显示各种信息,包括直方图、分布、嵌入。以及模型中的音频,图片和文本数据等。这些将在之后的视频中讲到。
线性模型
我们看到下一个例子,在TensorBoard中用到我们一直在使用的线性模型。 首先我们启动TensorBoard,并指向保存了模型结构和检查点文件的目录,接着运行:
tensorboard --logdir=”/tmp/iris_model/”
这将在端口6006启动本地服务器。是的,这拼写为GOOG(即谷歌)。转到本地主机:6006,接着看到本地机器上的TensorBoard。
我们可以看到一些标量指标是默认提供的,以及线性分类器。 我们也可以展开和放大任意图表。
可以通过双击缩小。 你可以看到我们的训练进展得很好,损失在随着时间减少。 还可以确定的是,训练还没有完成,因为及时在训练尾声,损失仍然按一定速度下降。这也提示我们,也许要加长训练过程,从而充分利用该模型。
图表标签
现在让我们看到图表标签。 注意,表面上的图表非常简单。
我们可以通过单击加号展开每个块,从而查看更多信息。 例如,如果展开“线性”块,我们会看到它由多个子组件组成。 我们可以通过放大和缩小,点击并拖动来进行平移。
还要注意,我们给特征列命名为“flower_features”显示为命名的图表组件。
这可以帮助调试和识别图表的连接方式。 TensorFlow的大部分操作都可以命名,因此这是辨明模型的的好方法。
本期我们了解到,将模型和重要的训练指标进行可视化,机器学习会变得更轻松、更有趣。
TensorBoard就能让你轻松做到这点,更好的是它就内置于TensorFlow当中。
下次当你需要对机器学习进行可视化,可以试着用用TensorBoard,揭示背后的原理。
下期预告
在下期,我们将学习如何将线性模型转换为深度神经网络,从而训练越来越复杂的数据集。