深度学习是什么?学完能干什么?

2020-08-12 20:00发布

学这个有什么要求么?学完能从事哪个工作岗位?

学这个有什么要求么?学完能从事哪个工作岗位?

2条回答
大牧
2楼 · 2020-08-13 09:14

深度学习工程师就业路径

目前,成为深度学习工程师有两条路径:一是通过春秋两季的校园招聘,另一种是借助社会招聘跨行业转型。前述文章曾经将深度学习工程师分为算法工程师、后端工程师和前端工程师。综合目前市面上各大公司招聘和咨询报告结果,目前工作3-5年左右的工程师为人工智能的市场主力,而应届毕业生更多还在成长之中。



深度学习工程师就业情况

开启这个话题,咱们先拿小编身边深度学习工程师的举例,在上大数据分析。

小A同学,本科专业属于工科,对深度学习有强烈的兴趣,随即选择自学并同时报名培训班,研究生毕业后,加入创业公司,但是后续的工作其实和深度学习没关系了。

小B同学去年入职NLP自然语言处理方向的算法工程师,本科到博士均是国内985大学就读,后进入大厂最终成为了一名深度学习工程师,主攻算法方向。


这里大家就发现了,其实个例之间相差还是很大的。于是小PP纵览招聘机构以及权威咨询机构的报告,为大家分析总结了如下内容。

根据领英2017年《全球AI领域人才报告》显示,中国在软件、算法、机器学习等基础层研究人才占总数的45.6%,细分领域来看计算机视觉是最大热门领域,占AI技术领域人才总比重6.4%;NLP占总比重4.1%,语音识别占总比重2.3%,自动驾驶占总比重的1.1%。

image.png



统计数据显示,目前中国至少有280家企业和人工智能直接相关,而其中对人工智能人才需求排在前10位的如下图所示(图片来源于领英2017年《全球AI领域人才报告》)。

image.png


那么,不同规模的企业对AI技术人才又能下多大血本呢?


在此,根据各企业在招聘网站Boss直聘,今年上半年投放的语音技术算法工程师招聘需求为例,观察融资情况不同的企业给人才的底薪状况并进行比较。


直观可见的是,具备3-5年经验的工程师薪资相对较高,基本可以达到月薪5万以上。


image.png

此外,观察职位描述可以发现:除了专业要和计算机、软件工程相关,还需要对相关算法和计算机语言有“研、究、开发和应用经验”“较为深刻的理解”才能顺利取得面试机会。

因此,想成功找到深度学习工程师的工作,技术过硬仍然是第一位,并非短期速成能hold住全场,需要深入不断的打磨。


Anonyem
3楼 · 2020-09-24 10:36







深度学习笔记(20)端到端学习

  1. 端到端的深度学习概念2.语音识别的端到端学习3.人脸识别的端到端学习4.机器翻译的端到端学习5.非端到端6.端到端的优缺点7.端到端的关键问题



  1. 端到端的深度学习概念

  2. 深度学习中最令人振奋的最新动态之一就是端到端深度学习的兴起

  3. 简而言之,以前有一些数据处理系统或者学习系统,它们需要多个阶段的处理端到端深度学习就是忽略所有这些不同的阶段,用单个神经网络代替它

2.语音识别的端到端学习

来看一些例子,以语音识别为例目标是输入x,一段音频,把它映射到一个输出y,就是这段音频的听写文本所以传统上,语音识别需要很多阶段的处理首先会提取一些特征,一些手工设计的音频特征比如MFCC,这种算法是用来从音频中提取一组特定的人工设计的特征在提取出一些低层次特征之后,可以应用机器学习算法在音频片段中找到音位所以音位是声音的基本单位,比如说“Cat”这个词是三个音节构成的,Cu-、Ah-和Tu-算法就把这三个音位提取出来然后将音位串在一起构成独立的词然后将词串起来构成音频片段的听写文本所以,和这种有很多阶段的流水线相比,端到端深度学习做的是训练一个巨大的神经网络,输入就是一段音频,输出直接是听写文本

事实证明,端到端深度学习的挑战之一是,可能需要大量数据才能让系统表现良好比如,只有3k小时数据去训练语音识别系统,那么传统的流水线效果真的很好但当拥有非常大的数据集时,比如10k小时数据或者100k小时数据这样端到端方法突然开始很厉害了

需要大数据集才能让端到端方法真正发出耀眼光芒如果数据量适中,那么也可以用中间件方法,可能输入还是音频然后绕过特征提取,直接尝试从神经网络输出音位


3.人脸识别的端到端学习

端到端学习也可以在其他阶段用就如人脸识别,首先是找到人脸然后放大图像的那部分,并裁剪图像,使人脸居中显示然后再喂到神经网络里,让网络去学习,估计身份总的来说就是,是弄清楚脸在哪里,再弄清楚这是谁

两步法更好原因:一是解决的两个问题,每个问题实际上要简单得多二是两个子任务的训练数据都很多

具体来说,有很多数据可以用于人脸识别训练,对于这里的任务1来说,任务就是观察一张图找出人脸所在的位置,把人脸图像框出来所以有很多数据,有很多标签数据(x,y)其中x是图片,y是表示人脸的位置,可以建立一个神经网络,可以很好地处理任务1

然后任务2,也有很多数据可用,比如说数百万张人脸照片所以输入一张裁剪得很紧凑的照片,今天业界领先的人脸识别团队有至少数亿的图像,可以用来观察两张图片,并试图判断照片里人的身份,确定是否同一个人

相比之下,如果想一步到位,这样(x,y)的数据对就少得多其中x是门禁系统拍摄的图像,y是那人的身份因为没有足够多的数据去解决这个端到端学习问题但却有足够多的数据来解决子问题1和子问题2

实际上,把这个分成两个子问题,比纯粹的端到端深度学习方法,达到更好的表现不过如果有足够多的数据来做端到端学习,也许端到端方法效果更好但在今天的实践中,并不是最好的方法


4.机器翻译的端到端学习

再来看几个例子,比如机器翻译传统上,机器翻译系统也有一个很复杂的流水线比如英语机翻得到文本,然后做文本分析基本上要从文本中提取一些特征之类的,经过很多步骤最后会将英文文本翻译成法文

因为对于机器翻译来说的确有很多(英文,法文)的数据对端到端深度学习在机器翻译领域非常好用那是因为现在可以收集x-y对的大数据集就是英文句子和对应的法语翻译


5.非端到端

比如说希望观察一个孩子手部的X光照片,并估计一个孩子的年龄这个问题的典型应用,是儿科医生用来判断一个孩子的发育是否正常处理这个例子的一个非端到端方法,就是照一张图,然后分割出每一块骨头所以就是分辨出那段骨头应该在哪里,那段骨头在哪里,那段骨头在哪里,等等

然后,知道不同骨骼的长度,可以去查表查到儿童手中骨头的平均长度来估计年龄,所以这种方法实际上很好

相比之下,如果直接从图像去判断孩子的年龄,那么需要大量的数据去直接训练但这种做法今天还是不行的,因为没有足够的数据来用端到端的方式来训练这个任务

所以在这个例子中,端到端深度学习效果很好所以端到端深度学习系统是可行的,它表现可以很好,也可以简化系统架构,不需要搭建那么多手工设计的单独组件但它也不是灵丹妙药,并不是每次都能成功


6.端到端的优缺点

假设正在搭建一个机器学习系统要决定是否使用端对端方法,了解端到端深度学习的一些优缺点这样就可以根据一些准则,判断应用程序是否有希望使用端到端方法

应用端到端学习的一些好处第一个好处是端到端学习真的是只让数据说话第二个好处是简化设计工作流程,无需花太多时间去手工设计功能和中间表示方式

这里有一些缺点,首先,它可能需要大量的数据另一个缺点是,它排除了可能有用的手工设计组件


7.端到端的关键问题

学习算法有两个主要的知识来源一个是数据,另一个是手工设计的任何东西,可能是组件,功能,或者其他所以,在构建一个新的机器学习系统时是否使用端到端深度学习的关键问题是是否有足够的数据能够直接学到从x映射到y足够复杂的函数

现在还没有正式定义过这个词“必要复杂度(complexityneeded)”但直觉上,如果想从x到y的数据学习出一个函数就是看着这样的图像识别出图像中所有骨头的位置那么也许这像是识别图中骨头这样相对简单的问题也许系统不需要那么多数据来学会处理这个任务

给出一张人物照片,也许在图中把人脸找出来不是什么难事所以也许不需要太多数据去找到人脸,或者至少可以找到足够数据去解决这个问题

相对来说,把手的X射线照片直接映射到孩子的年龄,直接去找这种函数,直觉上似乎是更为复杂的问题

最后讲一个更复杂的例子,吴恩达老师一直在花时间帮忙主攻无人驾驶技术的公司drive.ai造出一辆能自主行驶的车,这不是端到端的深度学习方法可以把车前方的雷达、激光雷达或者其他传感器的读数看成是输入图像但是为了说明起来简单,就说拍一张车前方或者周围的照片然后驾驶要安全的话,必须能检测到附近的车,也需要检测到行人,需要检测其他的东西之后就需要计划路线,需要决定如何摆方向盘引导车子的路径,还要发出合适的加速和制动指令从传感器或图像输入到检测行人和车辆,深度学习可以做得很好

但一旦知道其他车辆和行人的位置或者动向,选择一条车要走的路这通常用的不是深度学习,而是用所谓的运动规划软件完成的

如果学过机器人课程,一定知道运动规划然后决定了你的车子要走的路径之后还会有一些其他算法,控制算法可以产生精确的决策确定方向盘应该精确地转多少度,油门或刹车上应该用多少力

所以这个例子就表明如果想使用机器学习或者深度学习来学习某些单独的组件那么应用监督学习时,应该仔细选择要学习的x到y映射类型这取决于那些任务可以收集数据

相比之下,谈论纯端到端深度学习方法是很激动人心的输入图像,直接得出方向盘转角但是就目前能收集到的数据而言还有现在能够用神经网络学习的数据类型而言这实际上不是最有希望的方法这种纯粹的端到端深度学习方法

其实前景不如这样更复杂的多步方法目前能收集到的数据,还有现在训练神经网络的能力是有局限的

这就是端到端的深度学习,有时候效果拔群但也要注意应该在什么时候使用端到端深度学习


参考:

《神经网络和深度学习》视频课程


相关推荐:

深度学习笔记(19)多任务学习深度学习笔记(18)迁移学习深度学习笔记(17)误差分析(二)深度学习笔记(16)误差分析(一)深度学习笔记(15)人的表现


谢谢!


相关问题推荐

  • 回答 3

    换行。比如,print hello\nworld效果就是helloworld\n就是一个换行符。\是转义的意思,'\n'是换行,'\t'是tab,'\\'是,\ 是在编写程序中句子太长百,人为换行后加上\但print出来是一整行。...

  • 回答 42

    十种常见排序算法一般分为以下几种:(1)非线性时间比较类排序:a. 交换类排序(快速排序、冒泡排序)b. 插入类排序(简单插入排序、希尔排序)c. 选择类排序(简单选择排序、堆排序)d. 归并排序(二路归并排序、多路归并排序)(2)线性时间非比较类排序:...

  • 回答 70
    已采纳

    前景很好,中国正在产业升级,工业机器人和人工智能方面都会是强烈的热点,而且正好是在3~5年以后的时间。难度,肯定高,要求你有创新的思维能力,高数中的微积分、数列等等必须得非常好,软件编程(基础的应用最广泛的语言:C/C++)必须得很好,微电子(数字电...

  • 回答 28

    迭代器与生成器的区别:(1)生成器:生成器本质上就是一个函数,它记住了上一次返回时在函数体中的位置。对生成器函数的第二次(或第n次)调用,跳转到函数上一次挂起的位置。而且记录了程序执行的上下文。生成器不仅记住了它的数据状态,生成器还记住了程序...

  • 回答 9

    python中title( )属于python中字符串函数,返回’标题化‘的字符串,就是单词的开头为大写,其余为小写

  • 回答 6

    第一种解释:代码中的cnt是count的简称,一种电脑计算机内部的数学函数的名字,在Excel办公软件中计算参数列表中的数字项的个数;在数据库( sq| server或者access )中可以用来统计符合条件的数据条数。函数COUNT在计数时,将把数值型的数字计算进去;但是...

  • 回答 1

    head是方法,所以需要取小括号,即dataset.head()显示的则是前5行。data[:, :-1]和data[:, -1]。另外,如果想通过位置取数据,请使用iloc,即dataset.iloc[:, :-1]和dataset.iloc[:, -1],前者表示的是取所有行,但不包括最后一列的数据,结果是个DataFrame。...

  • Python入门简单吗2021-09-23 13:21
    回答 45

    挺简单的,其实课程内容没有我们想象的那么难、像我之前同学,完全零基础,培训了半年,直接出来就工作了,人家还在北京大公司上班,一个月15k,实力老厉害了

  • 回答 4

    Python针对众多的类型,提供了众多的内建函数来处理(内建是相对于导入import来说的,后面学习到包package时,将会介绍),这些内建函数功用在于其往往可对多种类型对象进行类似的操作,即多种类型对象的共有的操作;如果某种操作只对特殊的某一类对象可行,Pyt...

  • 回答 8

     相当于 ... 这里不是注释

  • 回答 4

    还有FIXME

  • 回答 3

    python的两个库:xlrd和xlutils。 xlrd打开excel,但是打开的excel并不能直接写入数据,需要用xlutils主要是复制一份出来,实现后续的写入功能。

  • 回答 8

    单行注释:Python中的单行注释一般是以#开头的,#右边的文字都会被当做解释说明的内容,不会被当做执行的程序。为了保证代码的可读性,一般会在#后面加一两个空格然后在编写解释内容。示例:#  单行注释print(hello world)注释可以放在代码上面也可以放在代...

  • 回答 2

    主要是按行读取,然后就是写出判断逻辑来勘测行是否为注视行,空行,编码行其他的:import linecachefile=open('3_2.txt','r')linecount=len(file.readlines())linecache.getline('3_2.txt',linecount)这样做的过程中发现一个问题,...

  • 回答 4

    或许是里面有没被注释的代码

  • 回答 26

    自学的话要看个人情况,可以先在B站找一下视频看一下

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