gpt4 book ai didi

学习Tensorflow的困境与解药

转载 作者:撒哈拉 更新时间:2024-04-01 10:46:21 55 4
gpt4 key购买 nike

我构建的预测模型

在过去的一段时间里我抓去了小宇宙内上万条播客节目的首日播放量的数据,并利用这些数据构建了一个用于预测播客节目播放量的模型。包含以下六个输入参数:

  • 节目发布于一周中的哪一天
  • 节目发布于一天中的哪个时段
  • 节目所属播客的订阅数
  • 节目所属播客的听众女性占比
  • 节目所属播客的听众占比最高的城市

下图左侧是利用 Tensorflow Visor 渲染的参数与播放量的散点关系图,右侧是将训练过程可视化之后的效果.

你可以在这里找到原始数据与模型有关代码。当然因为只是作为学习和娱乐之用,我不保证数据的绝对有效和采集方式的绝对科学.

在继续阅读下面的文字之前,你需要阅读上述链接中的源代码,代码非常简单不过百行左右.

困境

在 100 行的代码中只有不到一半代码切实与编译、训练模型有关,剩下的则是关于数据转换、可视化等等.

如果你之前没有 Tensorflow 的有关经验,会发现代码可以被看懂却无法理解:我知道它在创建对象,我知道它在执行异步操作,但什么是 meanSquaredError?什么是 tensor?什么是 dense?

这是 Tensorflow 带来的最直接的反直觉体验:在传统的编程领域,编程语言或者框架带来差异微乎其微,但是在这里却让人步履维艰——原因在于:1)过往的的编程经验无法迁移至此,因为它无关响应,无关跨功能需求;2)在传统的开发工作中代码是贯穿所有的主心骨,而在 Tensorflow 前代码已然沦落为配角,前期知识的积累才弥足珍贵。理解二者尤为重要,因为它意味着过往你学习一门技术的方法在此不再有效.

例如本文所抓取的数据都由一个部署在 K8S 上的 NodeJS 应用程序完成。在此之前我从未使用过 K8S。但这并未给我带来太大困恼,使用 Google 搜索 “k8s tutorial” 或者 “k8s nodejs” 就可以找到足够多的入门教程让我跌跌撞撞的将一个 NodeJS 在 K8S 上运行起来(但我依然推荐系统性的学习,这里推荐异步社区引进的图书《Kubernetes修炼手册》。英文原版在亚马逊上名列 Cloud Computing 类目排名第一, 我是在阅读完毕一半的英文版之后才发现的有中文版。).

但这一套方法在 Tensorflow 面前失灵了,你所能检索到的大部分教程都存在小节开头所提及的同样问题。我甚至得出了一类规律:如果教程里不包含丁点图片,那它根本就不适用于非机器学习专业的编程人员入门.

解药

读到这里你大概明白了,机器学习本质上是一门垂直的科学,但和编程存在交集这件事让我们有了“相声不就是说话嘛,所以我有嘴我也行”的错觉 。

所以在了解机器学习领域基本知识,而不是单刀直入编程才是学习 Tensorflow 的首要任务.

学习什么(What)

如果我们都同意上述结论的话,那我的下一个问题是:了解到多少程度才算够?因为此时我想提醒你小心落入第二个圈套,掉进“兔子洞”中.

你可以在 YouTube 上搜索到各式各样的机器学习入门:YouTube 上最广为人知的机器学习课程非斯坦福 Stanford CS229: Machine Learning Cours 系列莫属,这个由前百度公司首席科学家吴恩达亲自授课的系列课程单集播放量均在百万级别以上;如果你只是想从最基本最经典的 Linear Regression 问题开始,可以选择观看 StateQuest 的系列视频.

但我都不推荐它们,因为它们偏侧理论,与代码无关,要知道在这条学习路径上遇到的每个知识点都可以向专业方向延申的很远,例如在 Tensorflow 的 API 文档中不少的方法说明都保留了对有关论文的引用,但我相信在座各位学习 Tensorflow 的初衷并非是想成为职业的数据科学家,所以恰当的把握理论与实践的边界感颇为重要.

如何学习(How)

最近在折腾 Tensorflow 的同时我还在折腾 NextJS 和 K8S,对比之下我发现视频教程,或者说至少可视化这件事对学习 Tensorflow 尤为重要.

这个道理再简单不过了:只有通过图我才能告诉你什么是 hidden layer、只有通过图我才能帮你回顾起矩阵之间的计算是如何运作的.

一个实际例子是早在一年之前我就购买了图书《JavaScript深度学习》,当它谈到其中的 back propagation 时把我劝退了。直到一年之后当我再通过 The Coding Train 的 Neural Networks 教程学习到 back propagation 时才发现它如此的简单.

下图是我的学习笔记,不难看出其中的图解占据了大多数内容: