发布于 2026-01-06 3 阅读
0

9天成为机器学习工程师

9天成为机器学习工程师

引言

我对这项技术了解不多。但我知道它是一项解决重大问题的强大工具。以自动驾驶汽车为例——不用再操控方向盘,想想就令人兴奋,它不仅能帮助我们缓解交通拥堵、应对气候变化,还能节省时间,让道路更安全。

但就像所有伟大的技术一样,它也引起了广泛的关注。作为一名开发者,为了更好地了解它能解决哪些问题以及如何真正利用机器学习,我接受了一项挑战——在9天内成为一名机器学习工程师。

在本文中,我将带您了解我的经历、过程,并分享一些资源。

我几乎一窍不通,最终却开发出了一个能够检测视频/网络摄像头画面中的“OK”和“STOP”标志的工具。

计划

为了给任务设定时间限制并制定清晰的学习路径,我制定了一个计划。

  • 第一天:了解无需编写代码的机器学习工具,掌握其基本功能。
  • 第二天:学习基础理论(课程,麻省理工学院课程,3blue1brown 或其他类似课程)
  • 第三天:学习基础理论(课程,麻省理工学院课程,3blue1brown 或其他类似课程)
  • 第四天:观看一些介绍技术的实用视频教程。
  • 第5-9天:构建一个能够识别视频中“停止”和“OK”标志的工具

我的旅程,日复一日

事实是?我可以肯定地说,一切都没有按计划进行。

第 1-2 天 - 无代码机器学习工具

在前两天,我学习了很多关于无代码机器学习工具的知识,并对机器学习的功能有了基本的了解。我浏览了一份不同的无代码机器学习工具列表,并对每个工具都做了简要的评价。

令人惊叹的是,它既有面向企业级用户的软件,也有面向完全初学者的软件。
例如,如果您对机器学习一无所知,我建议您尝试一下Teachable Machine。它最初让我印象深刻,因为我能够轻松地构建一个姿态检测器。

Peltarion 和 Teachable Machine——我使用的两个工具。

另一个很有趣的工具是Lobe,我可以用它构建图像检测器并学习图像标注。Lobe 的用户界面非常简洁易用,使用起来就像玩游戏一样。

至于更高级的工具,我推荐您了解一下PeltarionObviously.ai(自录)。

Peltarion看起来是一个非常全面的平台。对于不太了解机器学习的初学者来说,它提供的众多选项一开始可能会让人感到困惑,但通过学习教程,一切都会变得清晰明了。他们还提供了一些辅助材料,帮助用户学习机器学习/人工智能领域的专业术语。
至于Obviously.ai,我推荐给想要了解人工智能应用前景的商业人士,因为他们似乎更多地使用了商业术语,这一点我很喜欢。它还提供了一个用户示例数据集供用户练习。我使用了 Airbnb 的数据集。

第3-4天 理论 理论 理论

我的目标是深入了解机器学习和深度学习。
我观看了大量的视频和文章,以获得一些基本概念。我认为最难的部分在于如何选择学习内容和学习方法,因为相关的资源实在太多了。我的学习方法是先从基础视频入手,然后再逐步深入到深度学习。

为了学习最基础的内容,我观看了SimplilearnGoogle Cloud TechTensorflow ChannelEdureka等频道的视频。

来自谷歌云技术和麻省理工学院的理论视频

之后,我选修了一门麻省理工学院的深度学习课程。虽然我没能完全理解,但它确实让我对神经网络的工作原理有了很好的了解。我还从3Blue1Brown的频道获取了一些补充信息。

至少,你应该理解一些简单的术语,例如

  • 精确率、召回率、真正例、假正例、混淆矩阵。

在介绍深度学习时,也会出现诸如此类的短语。

  • 卷积层
  • 学习率
  • 梯度下降法
  • 汇集。

即使你没完全理解也不用担心。我当然也没完全理解,但对我来说,掌握主要概念已经足够了。

第 5 天 - Deeplizard 的实用教程

学习了两天基础理论后,我想做一些更实际的事情。

在 freeCodeCamp 的 YouTube 频道上找到了 Deeplizard 的一个视频,非常实用,讲解也很清晰。视频详细讲解了如何操作的所有步骤。

  • 建立本地环境
  • 使用 Jupyter notebook
  • 创建我们自己的训练数据集
  • 训练模型
  • 创建神经网络
  • 查看混淆矩阵。

如果你想学习如何构建图像分类器的基础知识,我强烈推荐这个视频。他们还提供了源代码,我将其作为我未来研究的基础。

使用 Jupyter Notebook 进行机器学习

到当天结束时,我使用了教程提供的源代码,进行了一些尝试,并得到了区分猫和狗的第一批训练结果!太棒了!

第 6 天 构建我自己的项目

第六天,我开始着手自己的项目。

我的目标是开发一个应用程序,能够检测视频中的“停止”和“OK”手势,这样我就可以利用这些检测结果剪掉录像中不需要的部分。

我从 Deeplizard 的教程中获取了源代码,并根据我的需求开始修改它,结果发现我的模型需要一些训练数据。

我拍了很多自己拿着“停止”和“OK”手势的照片,把它们分成测试/训练/验证三个文件夹,然后输入到深度学习模型中。我满怀希望地想着它会成功,结果却失败了。

我咨询了一位同事,他建议我先检测出手部部位,然后再进行分类。这个建议让我重新思考了整个方法。

我的新方法

为了使系统正常工作,我必须(对每一帧)

  • 检测手部(如果存在)
  • 截取检测到的手部的屏幕截图
  • 判断这个手势是“OK”还是“停止”的标志

第 7 天 - YOLO 目标检测

第七天,我开始搜索有关目标检测的教程,很快就找到了一些关于 YOLO(You Only Learn Once,你只需学习一次)目标检测系统的优秀教程。

我使用的教程是由 Jay Bhatt 和 Pysource 创建的。

在这些教程中,我了解到了Colab,它本质上是 Google Jupyter 的在线版本,用于运行代码和训练模型。它还可以连接到你的 Google 云端硬盘,使文件管理变得非常方便。

使用 Colab 可以加快工作流程。它还允许您访问远程 GPU。

由于它可以使用远程 GPU,所以比我的本地机器快得多。

看完教程后,就到了设置我自己的手部检测系统的时候了。然而,当我开始手动标注时,最初的热情在5分钟后就消失殆尽了。

这意味着要在不同的图像中绘制大约 500 只手的方框,以此来创建我未来模型的训练数据。作为一名开发者,我真的非常讨厌手工工作,唉……这简直太痛苦了。(放大)

不过,在使用教程中的源代码并根据我的需求进行调整后,我的物体检测功能终于实现了!所有的手都被检测到了。

我甚至用实时网络摄像头在本地进行了测试,看到一个真正使用机器学习的软件实际运行,感觉真好。

第 8 天 - 数据 数据 数据

第八天带着满满的希望开始了——我有一个能正常工作的手持式探测器,现在只需要对它们进行分类。

我以Deeplizard的源代码为基础,从网上收集训练数据并训练模型。结果如何?看起来还不错。直到我用自己视频的真实素材进行测试。结果完全不准——“停止”标志被识别成了“正常”。

未能识别

我花了一整天时间研究代码和训练数据,试图弄明白到底发生了什么。

第 9 天 - 让一切运转起来

第九天,我想到一个办法,就是利用YOLO检测器和实时网络摄像头画面来创建训练数据。我设置好网络摄像头,当它检测到手部动作时,就将其保存到训练数据中(脚本是用Python编写的)。

我收集了大约2000张图像,当时感觉很有希望。当我把视频流中的一帧图像发送到分类器时,一切似乎都很顺利。验证准确率高达98%,这显然好得令人难以置信。

似乎有效——好的,然后停止

虽然测试真实视频素材还不够完美,但对我来说已经足够好了,因为我可以在应用程序层面添加额外的检查。

我想为了改进模型,我需要来自各种情况的更多训练数据,并使用数据增强(以不同的方式显示同一图像)。

结论

我成为机器学习工程师了吗?当然没有。但我确实了解了机器学习的工作原理,以及可以用它解决哪些类型的问题。

通过这项实验,我明白了数据对于模型训练的重要性。

我的主要收获是:

  • 首先,机器学习并不像看起来那么难,至少在基础层面上是这样。
  • 通过使用无代码工具,您可以了解该领域的很多知识。
  • 对于想要尝试这项技术的开发者来说,免费资源非常丰富。只需访问 YouTube,打开 freeCodeBootcamp,就能找到一些实用的教程。
  • 创建机器学习模型最重要的部分是数据及其准备。
  • 与所有技术一样,在使用机器学习之前,必须先问问自己要解决什么问题。

最后,我想说,有很多我不知道的事情,但是亲身经历构建事物的过程,无疑让我对机器学习的未来更加充满热情。

我真心希望这篇文章/视频能激发你尝试机器学习的兴趣。
如果你对这篇文章/视频有任何想法或建议,请在下方评论区留言。

我推荐尝试的无代码机器学习工具

学习基础知识的资源

深度学习资源

实用教程资源

其他资源

工具

我肯定还读过一些文章和资料,但很遗憾没有记下来。所以如果你有的话,请在评论区分享。


DeveloperHabits
📷 YouTube:developerHabits
👉 Twitter: https: //twitter.com/developerHabits
👉 Instagram: https: //www.instagram.com/developerhabits

文章来源:https://dev.to/kethmars/becoming-machine-learning-engineer-in-9-days-h1n