AI职业生涯终极指南:如何选择专业,晋升和找到出色的工作





8月3日,机器学习和人工智能专家Sergey Shirkin在我们的社交网络上发表了讲话。



Sergey在Sberbank和Rosbank参与了金融技术和数据库的自动化,并在Equifax的机器学习和分析工作的基础上建立了财务模型。在Dentsu Aegis Network Russia上使用人工智能方法预测电视收看。经济高等学校客座讲师(数据驱动通信硕士课程)。



Sergey还探索了应用于AI和机器学习的量子计算。他位于极客大学的人工智能,大数据分析和数据工程学院的最前沿,在那里担任院长和讲师。



我们与您分享广播和录音的笔录。



***



我叫Sergey Shirkin,今天我们将讨论人工智能。我们将讨论初始路径-如何进入人工智能,如何学习必修课,要学习哪些课程,要阅读哪些文学作品,如何开始职业。也关于各个方向。



今天的主题不仅对初学者也很有趣,对于有经验的程序员也可能很有趣-例如,如何从编程领域转向机器学习,人工智能和神经网络领域。根据一个人从事的技术和学习的语言的不同,向该领域的实际过渡可以以不同的方式进行。AI有很多专业。



推荐用于自我沉浸在AI中的材料?



如果您是一个完整的初学者,最好先学习Python。正如我与其他新手所看到的一样,一种快速的方法是PythonTutor.ru。在那里,您需要学习理论并解决问题-至少有70%的问题,如果您以前从未编程过,那么这些问题似乎很难解决。



下一步是SQL查询语言,站点SQL-EX.ru将在这里提供帮助:有关SQL的练习。它们分阶段进行:培训阶段,获得评分的阶段-您可以在评分中占据特定位置。在这里,您将学习如何使用数据库。同时,还有作者Moiseenko的教学材料,它们很容易学习。



然后,您需要学习机器学习本身。从线性回归,逻辑回归到梯度提升的各种算法。这里有很多材料。然后,您可以进入神经网络-用于计算机视觉,用于NLP;您将学习卷积,递归神经网络,以及最先进的网络-变压器,伯特等。



我将向您介绍AI的发展。如果您回顾一下2010年之前的发展历史,那将是微不足道的:当然,在AI和相关领域(例如大数据)中也取得了一些重大成就,并且许多数学算法已经准备就绪。但是没有足够的计算能力和数据来支持AI。自2010年(或更确切地说是2012年)以来,人工智能已经爆炸式增长。在2012年的一项竞赛中,神经网络击败了经典的机器视觉算法,学会了识别约1000种图像类别。



在取得这一成就之后,使用经典计算机视觉的竞争对手出现了很大的差距,并且开始了人工神经网络的开发。各种卷积网络体系结构应运而生,计算机视觉领域取得了突破。以前,人们认为对于神经网络来说,区分猫和狗的图像是一件非常困难的事情,但是在2012年,神经网络学会了比人类更快,更准确地识别和分类图像。



如今,计算机视觉已取得长足发展。同时,自然语言处理-NLP-正在开发中。随着几个月前由OpenAI创建的GPT-3模型的出现,神经网络已经学会了生成文本(以及音乐和其他序列)。这是NLP的主要步骤之一-在此十年中很可能会蓬勃发展。聊天机器人将出现,它们将能够与人完全保持对话。



SQL和Python有点。在没有经验的数据科学课程上学习后,您是否可以立即获得数据科学家的工作,还是需要首先作为数据库分析师工作?



与五年前相比,现在进入数据科学更加困难。然后就有可能参加Kaggle上的一些比赛,并在一些有趣的比赛中而不是训练水平上参加比赛-不一定是第一名,例如前10%。在那之后,已经有可能去公司,回答有关机器学习的简单问题,并且可以雇用这样的人。专家很少。



现在,一切都变得更加复杂,因此有时候,在您学习了机器学习和数学以实现自己的梦想后,就无法正常工作了-一位AI专家或数据科学家。



一个好的方法是首先与数据,数据库分析师或数据分析师合作。事实是,您必须学习如何预处理,清理数据,应用统计信息。这些可以是数据库技术,包括Python。获得经验后,您就会有背景,然后,您就可以使用自己在Python中的数据科学库的知识-Pandas,NumPy,SKLearn,申请与AI或数据科学相关的工作。



AI专家和数据科学家之间有什么区别?



AI是否需要C ++?为了成为计算机视觉专家,您会建议学习什么?



现在,西方公司的职位空缺已有一个部门:除了数据科学家外,人工智能专家还有单独的职位空缺。以前,据了解,数据科学家是从事表格数据,计算机视觉任务和NLP任务分析的人员。数据分析员也有空缺-尽管薪资水平很高,但薪水却较低。这样的人必须分析数据,但不必深入研究与语音,文本和图像有关的AI,主要使用表格数据。然后是混合职位空缺:在硅谷,所有数据分析师都被称为数据科学家,包括仅使用表格数据的人员以及使用NLP和计算机视觉的人员。同时,不久之后,他们开始分配独立的AI专家。在俄罗斯公司中,通常没有这样的部门,尽管有时会有专门的职位空缺-例如“ NLP /计算机视觉工程师”。希望数据科学家能够一点一点地做所有事情。



关于C ++:最基本的是Python。也就是说,如果您是AI专家,则应该使用TensorFLow,Keras或PyTorch-它首先出现。但是,如果您编写更多的低级程序-例如,如果该工作与机器人车辆有关,那么您通常将需要C ++代码。 Python并不总是很快。机器学习库通常是用C ++编写的,但有时您需要用C ++编写整个程序:除了模型本身之外,逻辑(if-else等)也可以工作,而在C ++中则可以更快地工作。当然,很难立即找到空缺,最好先在有足够的Python的地方工作,例如,在有带有图像分析功能的社交媒体分析的地方,而无需快速处理。



为了成为专家,您需要学习如何使用神经网络库,研究适用于Python的OpenCV库-它也可用于C ++。这将为您提供工具箱。还希望能够使用NumPy库,了解图像分析的数学原理-即了解线性代数和微积分,并了解神经网络的体系结构。等等。



为什么ML采访会问有关如何解决哈希表中的冲突的问题?



为什么您可以一路在Google上将其标记为招聘?



并非每个空缺都要求这一点。如果您要进行表格数据分析,则不太可能会要求您。他们肯定会询问您是否正在申请ML工程师的职位:也就是说,您不仅要创建ML模型,还要实现它们,还需要了解算法和数据结构。而且,如果您正在开发像机器人汽车这样的东西,那就更是如此:您必须编写高级和低级代码,并且必须具备这一知识。有时,在表格数据分析中需要这些知识-假设您使用C ++为此编写了一个模块。

如果您尚未准备好接受此类空缺,则可以进行更多面试。例如,如果您去银行从事数据科学家的工作,那么这样的问题就会更少。



我已经用Python写作了10年,但是没有接受过高等教育。没有智慧进入AI领域有多困难?



需要高等数学。您将必须参加课程或学习文学,这将是一个漫长的过程。您将需要线性代数,微积分,概率论和数学统计方面的培训。普通的学校课程显然不足以学习AI。当然,程序是不同的-在某些学校和10年级,涵盖了大学的主题,但这很少发生。



熊猫,SKLearn,Catboost,Seaborn,Kaggle培训活动-3%和13%。我需要深入学习DL,还是已经可以找工作?



图书馆已经做好了。您已经拥有用于处理表格数据的Pandas,用于机器学习模型的SKLearn,用于梯度增强的Catboost和用于渲染的Seaborn。结果分别是3%和13%-这意味着如果这不是一场训练比赛,那么有了这样的结果,您应该已经获得了某种奖牌。



并非总是需要深度学习。我认为您可能已经在寻找工作。但是,如果您需要使用DL,则仍然需要教授神经网络。



要阅读的基本书籍是什么?



我将在流的结尾展示我的书。我选择了基本设置,没有什么特别高级的。



这些职业现在需求到什么程度?两年内会有很多空缺吗?



如果您还记得2015-16年,那么例如,猎头公司的数据科学家空缺不超过5-10个。也就是说,市场几乎是空的。当然,然后将分析师重命名为数据科学家,但这还不够。



现在,如果您查看同一站点,则一次需要数百个。他们说有些空缺不存在。例如,在ODS上-OpenDataScience-如果您查看的话,会有一个单独的空缺部分。总的来说,虽然空缺并没有结束,但我认为在两年之内只会有更多空缺。不仅大公司参与其中:初创公司,小公司;现在,政府机构(例如,各个市政部门,税务部门等)都需要数据科学家。



最需要AI的行业是?



金融领域是AI的最简单应用,其显式使用可以使专家的大量脑力劳动自动化。有大量的银行。他们每个人都需要,例如,评估借款人的信誉,即根据各种标准来确定是否值得发行贷款,一个人是否高估了自己的实力以及他是否有能力偿还贷款。这是AI最明显的用途。



然后进行营销,制作广告活动:也就是说,当您需要预测某个人是否会观看广告时(在互联网,电视等)。这也是一个发展的方向,不可能不使用AI将其自动化。另外,机器人化现在正在发展:不仅有工业机器人,而且还有家用机器人-机器人吸尘器和其他家用配件,这些人也正在开发它们。或智能手机的各种应用程序-通常,有许多行业,从工业,医药,零售,金融,市场营销到娱乐结束。例如,AI也可以用于游戏中。



申请数据科学工作时,有一百多人赞赏:数学知识,对特定算法的理解,工作经验?



他拥有技术硕士学位,并在咨询中担任数据分析师一年。



您拥有良好的背景-一所技术大学,一年的数据分析师工作。如果您已经学习了技术并且知道如何编程,那么进入数据科学很容易。如果您从事数据库分析并且了解SQL,那么这是一个很大的优势,如果您添加编程和机器学习,那么这是一个很好的组合。



我将讨论如何在工作中构建机器学习模型。我工作的公司是非常著名的Dentsu Aegis公司,尤其是在市场营销人员中。它是世界排名前五的传播集团;它的总部位于东京,在145个国家设有办事处。俄罗斯分公司-Dentsu Aegis Network Russia。他在俄罗斯工作了25年,是媒体创新的先驱。



我将告诉您我作为数据科学家负责的领域。这正是我在实际应用中提到的最明显的应用。营销中的AI帮助自动化专家的许多任务,其中之一是预测不同目标受众将如何观看不同类型的内容。我将告诉您更多有关我的近期任务-电视观看的预测。



听众可能有数百人,并且为了手动进行预测,将需要数十位专家的工作。压倒性的。大量数据-表格中多达数十亿行。您不仅需要关心构建机器学习模型,还需要使其快速工作。对于此类工作,您需要充分了解关系数据库和非关系数据库,与Linux一起工作,具有一定的开发技能,并且通常了解应用程序体系结构,公司的IT基础架构,对Python以及C ++的了解。

在建立电视观看量预测时,我们使用了现代的机器学习方法。对于表格数据,这些是梯度增强和随机森林。如果对文本进行分析,我们将使用神经网络。除此之外,还包括主题建模,TF-IDF和其他常见的NLP方法。



之所以使用梯度增强,是因为如果我们预测使用表格数据,那么在处理此类数据时,梯度增强要领先于所有已知算法。从2018年开始,在Kaggle,使用表格数据在比赛中取得的所有主要成就都是在梯度提升的帮助下精确实现的。然后,大多数摇摇晃晃的人切换到XGBoost-这是第一个已知的用于梯度增强的库,后来,许多人从Microsoft掌握了LightGBM或从Yandex掌握了CatBoost。对于预测电视收视的任务,时间序列的使用也很合适,但是这种方法并不总是奏效的-意外出现定期发生的突发事件,需要及时做出响应或预期。有时会有很大的异常时期-从几天到几个月:例如,2018年FIFA世界杯对观看次数产生了重大影响。检疫也成为异常时期:人们开始在家里花更多的时间看电视。预期也必须考虑到这一点。通常,这一时期对于机器学习和AI来说是一种挑战,因为您需要不断监控模型并对其进行控制,以使它们正确运行。除异常时段外,天气预报还受假期,天气条件,特定节目和频道的趋势变化的影响。结果,模型变得非常复杂,因为必须考虑所有可能的选择,必须考虑或预期异常和偏差。预期也必须考虑到这一点。通常,这一时期对于机器学习和AI来说是一种挑战,因为您需要不断监控模型以使其正常工作。除异常时段外,天气预报还受假期,天气条件,特定节目和频道的趋势变化的影响。结果,模型变得非常复杂,因为有必要考虑所有可能的选择,考虑或预期异常和偏差。预期也必须考虑到这一点。通常,这一时期对于机器学习和AI来说是一种挑战,因为您需要不断监控模型以使其正常工作。除异常时段外,天气预报还受假期,天气状况,特定节目和频道的趋势变化的影响。结果,模型变得非常复杂,因为必须考虑所有可能的选择,必须考虑或预期异常和偏差。特定节目和频道的观点变化趋势。结果,模型变得非常复杂,因为有必要考虑所有可能的选择,考虑或预期异常和偏差。特定节目和频道的观点变化趋势。结果,模型变得非常复杂,因为必须考虑所有可能的选择,必须考虑或预期异常和偏差。



当然,这些模型不会任由自己处理-测试,微调,监控一直在进行。但是,不仅仅是模型很重要:另一个重要步骤是特征创建。首先,这些是与放映时间有关的标志:一天中的时间,一周中的某天,季节等。其次,有与内容相关的属性。同时,必须了解,如果该节目是在晚上播出的,那么,无论什么有趣的内容,观看次数都不会超过黄金时段。属性的重要性可以有所不同,但是不同的受众将选择不同的内容。这可能取决于性别,年龄,社会地位。



要素数据处理是最耗时的阶段之一,即要素工程:处理或创建要素。数据科学的这一部分需要大量经验:要么事先没有已知的配方,要么它们太简单了,您必须想办法随时准备功能。



有时,数据中会有一些好奇:假设观众在晚上打开电视并入睡。事实证明,他好像整夜都在看节目。这是数据中噪声的一个示例-数据看似准确,但似乎不准确,尽管很难,但您需要学习猜测。另外,通常很少在晚上显示广告。



在构建模型时,我们不仅需要使其起作用,还需要提供测试和监视。为此,我们需要指标。由于存在回归问题,因此我们的指标集将不同于分类的指标集。这些是均方根误差和确定系数-它们都是非常重要的。您还必须创建自己的指标来解决特定的业务问题,例如,优化广告活动成本的问题。在这种情况下,我们不仅需要预测电视收视率,还需要预测广告活动的覆盖范围;我们不仅使用机器学习,还使用复杂的统计和计量经济学方法。当机器学习的知识不足时就是这种情况:它需要微积分,线性代数和数学优化方法。与常见的机器学习任务(回归,分类,聚类)不同,在这里您必须提出自己的方法,仅编程是不够的。



我想提一下高等经济学院的计划-数据驱动通信。在整个过程中,我不得不帮助学生,他们从事市场营销和与机器学习有关的主题。实际上,对于营销人员而言,什么是机器学习和数据科学?以前,并不期望该领域的专家会编程和制作复杂的模型,但是现在,它是一种在劳动力市场上具有优势的技能。如果除了他的专业外,一位专家还掌握了数据科学,那么他就有机会换工作并成为数据科学家,或者继续在其学科领域发展,但具有巨大的竞争优势。机器学习专家将能够做出更准确的预测,但是这需要大量学习。



是否值得关注MIPT / Yandex数据科学课程,或者是面向Udacity?



据我了解,您是指MIPT / Yandex开设的Coursera课程。Udacity是一个独立的学习平台;尽管课程中有很大一部分课程是针对AI和数据科学的,但不仅有数据科学的课程。我建议不要只使用一种资源,而应该尝试几门课程。这些课程并非100%重合,您总是可以找到以前不知道的新知识。新课程也可以用于重复课程。例如,我们的AI,数据工程和大数据分析部门的GeekBrains课程。由于我是他们的院长和老师,因此我可以向您详细介绍他们。



将课程合并为多个学院-例如,人工智能学院有17个课程,另外还有8个课程。几乎每门课程都将实际工作作为最终项目。因此,从中学习的专家可以练习。我建议不仅学习理论,还建议您做项目:良好的实践能力将使您更接近面试和开始职业。



我本人曾在Udacity上过一段时间的学习-我参加了机器人车辆课程,时间很长,原计划计划为9个月,但该课程持续了大约一年。我确实学到了很多东西,从该平台获得的印象是积极的。但是,当然,那里的所有课程都是用英语授课的。



如何考虑时间序列中的异常,并将其消除?



一个不愉快的过程。尚无现成的配方-您需要进行大量测试。更准确地说,有现成的模型,但它们仅设计用于检测过去的异常,不仅需要检测而且需要预期。



在这种情况下,会有各种发展,但是您必须自己创建它们。最重要的是确定将来会发生什么:例如,增加某些频道和节目的电视收视率。随着时间的流逝,这些数据会返回到训练数据中,需要以正确的方式进行处理。



即使将来没有异常,过去的异常也可能影响您的预后。这里有很多方法。最简单的方法是删除异常数据,但是如果有很多异常数据,从考虑的角度来看,这可能会导致整个时间序列的损失,因此此方法并不总是适用。



没有经验的人如何找到工作?



好的经验是您的项目。也就是说,如果您不只是讲授理论,而是立即做一个项目(最好是在导师(有数据科学和AI经验的人)的指导下),那么您就知道自己在做什么。您不仅知道如何应用理论或将模型应用于Internet上找到的数据,而且还解决了实际问题。在进行此类项目时,您会获得无法从书籍和课程中获得的知识,在这里,导师的帮助是无价的。



让我们谈谈书籍-我已经准备了一小堆。



如果您从事数据科学工作,那么很可能将不得不在Linux环境中工作。同时,您将不是管理员-也就是说,您不需要太深的知识-但是将需要对用于简单管理任务(计划脚本的启动或操作系统资源的处置)的该平台有足够的了解。这是Scott Granneman的书《 LINUX-Pocket Guide》的帮助所在。可以在几天之内进行研究。



关于概率论,我会推荐GG Bitner撰写的《概率论》一书-它既包含理论又包含问题。概率论将对面试和工作都派上用场。

任何从事IT工作的人都需要最少的知识和技能。因此,《计算机科学的理论最低限度–程序员和开发人员需要知道的一切》(菲洛·弗拉德斯顿·费雷拉)一书是计算机科学方面的教育程序。



如果您沉迷于编程和低级开发,那么您将需要算法。在Panos Luridas的《初学者的算法-开发人员的理论和实践》一书中,算法的给出没有参考特定的语言。 Robert Sedgwick有一本针对C ++的更长的书-“ C ++中的算法”。当您想要消除Python所具有的一些高级操作并从头开始创建算法时,它很有用。



如果您想对数据科学家的顶级工作有一个大致的了解,那么Kirill Eremenko的书《在任何领域使用数据-如何使用分析方法达到新的水平》就非常适合您。这里没有编程。但是,如果您已经是专家,那么只有当您尚未使用数据时,它才会对您有用。

下一步:“数据科学。 Joel Grasse撰写的Scratch的Data Science也是一本有用的书。来自同一出版物-“数据科学专业人员的实践统计。 《彼得·布鲁斯和安德鲁·布鲁斯的50个基本概念》。您也可以在此处研究统计信息。



如果您要使用Python处理数据并使用Pandas库,那么您肯定需要Wes McKinney编写的“ Python和数据分析”(Pandas库本身的作者)。

关于机器学习,我推荐两本书:Peter Flach和Python的《机器学习》和Sebastian Raska的《机器学习》。



对于深度学习,有一本书是由Francois Schollet撰写的《 Python的深度学习》,您可以在其中学习NLP和计算机视觉问题的神经网络。特别是在NLP上,Benjamin Bengford,Rebecca Belbrough和Tony Ojeda撰写了“ Python中文本数据的应用分析”。



如果您想学习TensorFlow进行深度学习,则可以使用Bharat Ramsundar和Reza Bosag Zade的同名书。



还有一本书简单明了地解释了神经网络的原理-Andrew Trask的著作《 Grock Deep Learning》。还有“摇滚算法”-它很好地解释了在面试和实践中有用的算法。



你在面试中问什么?



这里有一些问题。关于经典机器学习存在疑问-在数据科学和AI领域工作的专家应该知道经典机器学习模型如何工作:线性,逻辑回归,梯度下降,L1-L2正则化。一个人必须谈论决策树的操作原理,关于分类和回归问题的信息内容的标准;让人们知道随机森林,梯度增强的工作原理。如果他知道梯度增强模型(Catboost,LightGBM和XGBoost)之间的差异,那就很好,也就是说,这些库之间有什么区别,如何在其中实现梯度增强。您还需要一个人来拥有机器学习库-Pandas,NumPy,SKLearn。如果专家需要使用神经网络,计算机视觉和NLP,然后会有关于这些主题的问题。

可能会有很多问题。如果一个人回答得很好,那么向他询问一些他的项目很有趣-如果一个人做了什么,受访者会立即有很多与项目有关的问题。如果您在GitHub上有个人项目或课程中的教育项目,那么能够详细说明所使用的技术和算法将非常有用。



此外,在面试中,您可以提出不同的基本问题。通常,如果一个人的回答很好,那么他很可能是一个很好的专家。当然,重要的是他能够完成测试任务。理论是一回事,但是一个人如何解决实际问题,对其进行编程,他将编写什么代码也很重要。如果一个人了解整个理论,但是在需要时发送不使用OP的代码,那么他将不知道如何正确地应用该理论。而且,当然,代码本身应该是可读和注释的。



我也想谈谈量子计算,量子机器学习是我感兴趣的另一个领域,但是今天我没有时间。



收到面试邀请应该在简历上写些什么?



简历是关键时刻。首先,不应在数量上过分膨胀:它应仅包含相关经验。如果您在与IT不相关的专业中工作,则没有必要。简要列出与空缺相关的成就,项目,所学课程。写出能显示出您有能力胜任这项工作的专家的内容。并且,摘要必须是可读的。




之前发生了什么



  1. Facebook高级软件工程师Ilona Papava-如何获得实习机会,如何获得报价以及有关在公司工作的所有信息
  2. Bodex Yangel,Yandex ML工程师-如果您是数据科学家,如何不加入愚蠢的专家队伍
  3. EOLastBackend的Alexander Kaloshin-如何启动一家初创公司,进入中国市场并获得1500万投资。
  4. , Vue.js core team member, GoogleDevExpret — GitLab, Vue Staff-engineer.
  5. , DeviceLock — .
  6. , RUVDS — . 1. 2.
  7. , - . — .
  8. , Senior Digital Analyst McKinsey Digital Labs — Google, .
  9. «» , Duke Nukem 3D, SiN, Blood — , .
  10. , - 12- — ,
  11. , GameAcademy — .
  12. , PHP- Badoo — Highload PHP Badoo.
  13. , CTO Delivery Club — 50 43 ,
  14. , Doom, Quake Wolfenstein 3D — , DOOM
  15. , Flipper Zero —
  16. , - Google — Google-
  17. .
  18. Data Science ? Unity









All Articles