无需学习机器学习

学习使用机器学习模型创建软件


图片

免责声明:本文仅基于我对机器学习领域的开发团队的观察,而不是对该行业进行科学审查的结果。作为参考,我正在帮助开发Cortex(一个用于将模型投入生产的开源平台)。

如果您是一名开发人员,那么至少您对机器学习有浓厚的兴趣。让学生以后学习进行预测的算法概念简直是很酷的。

但是,如果您决定按照所有经典开始学习ML,那么很可能在经过两周的线性代数和多元分析之后,您就退出了这一课。

原因在于,关于ML的大多数入门资料都不是针对开发人员,而是针对研究人员-对于只想创建机器学习产品的开发人员来说,这是一个问题。

您要创建产品还是进行研究?


直到2000年代末,机器学习几乎只是一个研究问题。几乎没有多少公司真正在生产中使用机器学习。

因此,许多关于机器学习的熟悉材料都是基于研究方法的。一切都从从数学角度对神经网络的解释以及机器学习的基础理论开始。给出了诸如反向传播方法和对抗网络之类的东西。

甚至与大学无关的材料在某种程度上也遵循这种模式。例如,这直接取自TensorFlow的“初学者快速入门”库:

图片

如果您认为我是有选择地做事,建议阅读以下内容

如果您已经熟悉了机器学习的基础数学,或者您想学习它,那么这种方法很适合您。但是,如果您主要对通过机器学习创建事物感兴趣,那么很可能这并不是您想要的。

使用编程作为数学的补充与通过首先学习汇编器来学习编写代码相同。没有开发人员会以这种方式学习。

注意:如果您以某种方式学会了用汇编语言进行编码,我会接受所有邪恶的评论,并且给您留下深刻的印象,即您在模糊的Linux发行版中找到了一个浏览器。

当您学习编码后,很可能是通过用高级语言编写“ hello world”来完成的。然后,随着项目变得越来越复杂,您开始研究低级编程。

这种培训模型在创建软件的人员中很成功,因为它可以在项目上明确设定优先级。如果您对创建推荐系统比对发表文章更感兴趣,那么这就是您应该如何进行机器学习的方法。

如何通过创建软件来学习机器学习


如果您是那种在课程中学习得最好的人,那么fast.ai面向程序员的实用深度学习课程就是推广这种自顶向下,从学习到处理的方法与ML合作的最佳资源

本文的目的根本不是为了宣传fast.ai,但值得注意的是,该平台的创始人(杰里米·霍华德(Jeremy Howard)和雷切尔·托马斯(Rachel Thomas))为开发人员提供了几门经过深度培训的课程,从字面上讲是要创造东西,并深入研究主要理论,因为它直接与项目相关。为了更好地了解他们的学习风格,请观看Rachel Thomas的视频。



另一方面,如果您属于那种通过自己沉浸和创造事物而学习最好的人,那么您可以像在任何其他编程领域一样开始精通机器学习。只需选择一个您感兴趣的项目- 我就为初学者整理了大量的自然语言处理项目列表 -选择。

为了更好地理解使用ML创建软件是什么(如果您采用这种方式):

  1. 定义目标,例如,为文本字段或车牌标识符创建自动完成功能。
  2. 查找适合您的项目的预先准备的模型-GPT-2或YOLOv3模型也可以与前面提到的项目一起使用。
  3. 如果需要,您甚至可以将库用作gpt-2-simple来微调(根据您自己的数据定制)模型。
  4. 最后,将模型部署为微服务。


将模型作为API部署后,您可以像其他任何Web服务一样请求它,并围绕它构建应用程序。

您可以单独的机器学习工程师创建的项目中看到此过程的实际应用



通过这种学习方法,您可以熟悉各种流行的模型体系结构,了解其他机器学习方法以及它们适用于哪些应用程序。同样重要的是,您将了解基于模型构建实际产品所需的机器学习基础结构。

一旦您可以创建基于ML的产品,就开始学习理论


作为一名工程师,您可能早先已经实现了某种形式的身份验证,这意味着(我希望)您对密码进行了哈希处理。

设置密码哈希时,您是否编写了自定义哈希算法?您花了几个星期学习密码学吗?还是您只是使用它bcrypt

同样,在创建第一个Web应用程序时,您是否研究数据库了几个星期?你是从头开始写的吗?还是您使用了自己喜欢的框架的随机ORM?
相同的逻辑适用于机器学习。如果您是一个喜欢创建软件的人,请先创建机器学习软件,然后使用工具,预先准备的模型和机器学习框架让自己脱离底层的ML理论。然后,如果您有兴趣,或者您的项目需要更多的复杂性,请进行更深入的研究以了解其工作原理。



图片
通过参加SkillFactory在线课程,了解如何从头开始获得热门职业或技能和薪资水平提高的详细信息:



阅读更多



All Articles