走AI岗需要具备什么技能?

2020-06-09 14:11发布

1条回答
Anonyem
1楼 · 2020-06-10 08:38.采纳回答

转行到应用AI之前最需要掌握的5个技能

1. 统计学

要深入理解机器学习,必须要有扎实的统计学基础知识,这涉及到几个方面:

  • 度量模型是否成功的各种方法(精确度、召回率、ROC曲线下面积等)。损失函数和评估指标的选择是如何**偏离模型的输出**的。

  • 如何理解**过拟合**和**欠拟合**,以及**偏差/方差折衷**。

  • 你对模型的结果有什么样的**信心**。

2. 机器学习理论

在训练神经网络的时候,实际上发生了什么?是什么使得某些任务可行,而其他任务不可行?要弄清楚这些问题,最好的方法不是深入研究理论知识,而是试着通过图形和示例来了解机器学习。

需要理解的概念范围包括:不同的**损失函数**的工作原理是什么、为什么**反向传播**是有用的、**计算图**是什么。而对于**如何建立一个功能模型**,以及**如何跟团队里的其他人员进行有效地交流**,这些都需要深入地理解。下面我给出了一些参考资料:

  • 谷歌的深度学习课程对深度学习做了一般性地介绍。

  • Fei-Fei Li的计算机视觉课程,以及Richard Socher的NLP课程,则提供了更为专业的介绍

  • Goodfellow编写的深度学习书籍相当不错,可用于全面了解深度学习方面的基础知识。

另一个基本技能是阅读、理解和实施论文的能力。这个一开始做起来可能会感觉比较困难,所以最好的方法就是阅读附带代码的论文(例如,研究GitXiv上的论文),并试着去理解它是如何实现的。

3. 数据处理

如果你去问任何一个数据科学家他们的主要工作是什么,他们会告诉你,90%的工作是数据处理。这与应用AI同样重要,因为模型的成功与否与数据的质量(和数量)强相关。数据工作包含多个方面,但可归纳为下面几类:

  • 数据采集(包括:找到好的数据源、准确度量数据的**质量**和**分类**、获取和推断标签)

  • 数据预处理(**缺失数据**填补、**特征工程**、数据**增强**、数据**规范化**、交叉验证分割)

  • 数据后处理(使模型的输出可用、清理工作、处理**特殊情况**和**异常值**)

熟悉数据处理工作最好的方法是获取一个数据集并试着使用它。有很多在线数据集,以及很多提供API的社交媒体和新闻媒体网站。基于上面提到的几个步骤,我们可以这样进行学习:

  • 获取一个开源的数据集,并对其进行检查。它有多大(点和特征的数量)?数据如何分布?是否存在缺失值或异常值?

  • 构建一个将原始数据转换为可用数据的转换流程。如何填补缺失值?如何正确处理异常值?如何规范化数据?能创造出更多的表现特征吗?

  • 检查转换过的数据集。如果看起来一起正常,请继续下一章节!

4. 对模型进行调试或调优

调试机器学习算法(无法收敛,或者得到的结果不合理)与调试普通代码有着很大的区别。同时,要找出合适的架构和超参数则需要具备扎实的理论基础和完备的基础架构,以便对不同的配置进行彻底的测试。

由于目前机器学习领域发展迅猛,而调试模型的方法也在不断地发展。以下是从我们部署模型的讨论和经验中总结出来的“合理性检查”列表,这些条目也以某种方式反映了许多软件工程师熟悉的KISS原理。

  • 从一个已经被证明可以使用类似数据集的**简单模型**开始,以尽快获得**基线**版本。经典的统计学习模型(线性回归、最近邻居等)或者简单的启发式算法或规则通常能帮你**解决80%的问题**,并且能更快地实现需求。刚开始的时候,要用最简单的方式来解决问题(请参阅谷歌的机器学习规则的前几点)。

  • 如果你决定训练一个更复杂的模型以改进基线版本,那么可以用**数据集的一个很小的子集**来进行训练并达到过拟合。这能够确保这个模型至少还有学习的能力。不断地对模型进行迭代,直到对5%的数据量过拟合。

  • 一旦开始用更多的数据进行训练,那么超参数就开始发挥更大的作用了。你需要理解这些参数涉及到的**理论**,这样才能找到合理的值。

  • 请采用有针对性的方法对模型进行调优。简要地记录下你曾经使用的所有配置及其结果。在理想情况下,可以使用**自动超参数搜索**策略。最开始的时候,使用随机搜索就足够了。

你的开发能力越强,则这些步骤实现起来就越快,反之亦然。

5. 软件工程

许多的应用机器学习允许你充分发挥自己在软件工程方面的技能,虽然有时也会有一点小改变。这些技能包括:

  • 测试流水线的各个方面(数据的预处理和增强、输入输出的整理、模型推理时间)。

  • 基于**模块化**和可重用的原则来构建代码。

  • 在训练过程中的不同点对模型进行备份(**设置检查点**)。

  • 配置一个**分布式的基础架构**,这样能更加有效地进行训练、超参数搜索或者推演。


相关问题推荐

  • 回答 20

    选对培训机构比较重要,还有就是选择的时候看一下自己适合哪种风格的讲课方式,这个也很重要。因为现在5G时代来临,人工智能绝对是一个发展的大趋势,如果你自己空余时间又比较多的话,其实可以报一个辅导班,学习学习一些基本的东西,毕竟多学点总是没有坏处...

  • 回答 3

    深度学习是近几年人工智能领域的主要研究方向。深度学习的主要任务是通过构建深度卷积神经网络(Deep Neural Network,DNN)和采用大量样本数据作为输入,人们最终会得到一个具有强大分析能力和识别能力的模型,该模型包含了DNN的构成参数以应用于实际工作。...

  • 回答 3

    AI深度学习课程是用于建立、模拟人脑进行分析学习的神经网络,并模仿人脑的机制来解释数据的一种机器学习技术,主要应用于图像识别、语音识别、自然语言处理等领域。学完可以从事深度学习工程师、机器学习工程师、人工智能工程师、高级算法工程师、高级算法工...

  • 回答 16

    算法,数据相关的适合做人工智能

  • 回答 28

    人工智能取代的行业,一定有如下几个特征:1、大量重复型。2、逻辑性比较强。3、数据库依赖型。像司机,咨询,教育,医生,会计,律师助理,工程师,码农等,都是容易被取代的行业。当然,这都是强人工智能以后会发生的事,现在还是弱人工智能的时代,想进入...

  • 回答 9

    如果你是自己学着玩,提升自己的话,高中毕业都可以。如果是冲着AI算法岗或者科研一席之地,至少211硕士。具体可以亲身体验一下今年算法岗秋招。

  • 回答 9

    可以,未来的人工智能发展深度学习必然是现在大型机器生产科研必备的,证书的话某个培训好像有这个中科院的证书,具体你去百度吧

  • 回答 8

    我觉得就是人工智能的课程,现在家具都是智能家居了。这一块发展一定很好

  • 回答 3

    对于sgd算法而言,batch size太大太小都不好,太小的话训练不稳定,计算效率低;太大的话收敛速度慢,需要仔细调节一下。以2的倍数调节,例如32,64,128等

  • 回答 1

    在terminal中输入$wolf@wolf:~/Downloads/gitclonehttps://github.com/Tencent/ncnn cd切换到NCNN目录***这步很重要,这时候需要修改ncnn的root目录下的CMakeLists.txt文件,需要将倒数几行的add_subdirectory(examples),取消注释,这样就是默认编译example...

  • 回答 5

    人工智能的话其实到现在来说已经慢慢趋于成熟,学的话首先是一线城市,学出来好就业,还有就是薪资也高

  • 回答 3

    画个train and test error VS 训练数据量(training set size) 的learningcurve应该会更加直观了。可以找个简单的数据集,比如说handwritten digits或者什么的,分别用神经网络和决策树或者knn做出这个learningcurve。你会看到如果用一个决策树去解决这个问题...

  • 回答 2

    共生矩阵用两个位置的象素的联合概率密度来定义,它不仅反映亮度的分布特性,也反映具有同样亮度或接近亮度的象素之间的位置分布特性,是有关图象亮度变化的二阶统计特征。它是定义一组纹理特征的基础。     一幅图象的灰度共生矩阵能反映出图象灰度关于...

没有解决我的问题,去提问