处理机调度的三个层次
处理机调度引言:为什么要进行调度?正文:三个层次引言:为什么要进行调度?在多道程序环境中,内存中存在多个进程,其数目通常是多于处理机数目的。不论是出于提高处理机利用率、优先执行某个进程、提高系统吞吐量还是作业周转时间,我们都需要能动态的将处理机分配给某个进程(就绪态)。因此,处理机调度成为OS中十分重要的一个功能。
正文:三个层次为方便对比,将以表格形式呈现
高级调度中级调度低级调度又称作业调度内存调度进程调度调度对象处于外存上的后备队列的作业暂时不能运行的进程就绪队列中的进程位置变化外存-->内存内存–>外存内存–>CPU适用系统批处理系统批处理、实时、分时系统批处理、实时、分时系统运行频率低,几分钟一次中等高,10~100ms一次下面将会简述三种调度的基本流程
高级调度(作业调度):根据某种算法,选择外存上的后备队列中的几个作业放入内存,并为之创建进程,分配资源。然后将其放入就绪队列。中级调度(内存调度):将暂时无法运行的进程调至外存等待(挂起状态)。当这些进程又具备运行条件,且内存有空余时,通过中级调度将这些进程重新调入内存,并且修改状态为就绪状态。低级调度(进程调度):根据某种算法,从就绪队列中选择某些进程分配处理机资源。参考:《计算机操作系统》第四版汤小丹等著
人工智能的发展历史
如果要结构化地表述人工智能的话,从下往上依次是基础设施层、算法层、技术层、应用层(见下图)。基础设施包括硬件/计算能力和大数据;算法层包括各类机器学习算法、深度学习算法等;再往上是多个技术方向,包括赋予计算机感知/分析能力的计算机视觉技术和语音技术、提供理解/思考能力的自然语言处理技术、提供决策/交互能力的规划决策系统和大数据/统计分析技术。每个技术方向下又有多个具体子技术;最顶层的是行业解决方案,目前比较成熟的包括金融、安防、交通、医疗、游戏等。
1、基础设施层
在过去的几年,全球的数据量,以每年58%的速度增长,在未来这个速度就会更快。与之前相比,现阶段“数据”包含的信息量越来越大,维度越来越多,从简单的文本、图像、声音等数据,到动作、姿态、轨迹的人类行为数据,再到地理位置、天气等环境数据。有了规模更大、类型更丰富的数据,模型效果自然也得到提升。我们知道海量的训练数据是人工智能发展的重要燃料,数据的规模和丰富度对算法训练尤为重要。
而在另一方面,运算力的提高也起到了明显效果。AI芯片的出现显著提高了数据处理速度,尤其在处理海量数据时明显优于传统CPU。在擅长处理/控制和复杂流程但高功耗的CPU的基础之上,诞生了擅长并行计算的GPU,以及拥有良好运行能效比、更适合深度学习模型的FPGA和ASIC。芯片的功效比越来越高,而且灵活性则越来越低,甚至可以是为特定功能的深度学习算法量身定做的。
人工智能工程师的三个层次
01AI工程师的三个层次每一波浪潮的到来,都意味一片无人占领的蓝海,也意味着众多新成长起来的巨头,还意味着什么?大量的技术人员需求,供不应求的开发市场,以及从业者的高薪与众多的机会。
我们最常做的事情是目送着上一次浪潮的余波远去,感叹自己生不逢时,却没有意识到,下一波浪潮已经到了我们脚下。
没错,我们说的就是AI。
身在IT圈中的人,应该都有着直观的认识。目前国内知名的互联网企业无一不在建立自己的人工智能技术团队,以期用AI技术,提升产品的体验和智能化程度。
但与此同时,各种不明觉厉的名词也吓退了很多非科班出身的开发者。什么叫卷积神经网络?什么叫凸优化?是不是还要回去重读高数,线代,概率?那么一大堆公式,感觉完全看不懂啊?听说没个名校博士出身都搞不了这个?
在很久以前的一篇知乎回答中提过,作为开发人员,AI领域界在我看来会分成这么几个层次
学术研究者他们的工作是从理论上诠释机器学习的各个方面,试图找出“这样设计模型/参数为什么效果更好”,并且为其他从业者提供更优秀的模型,甚至将理论研究向前推进一步。能够做到这一步的人,可以说凤毛麟角,天赋是绕不过去的大山,机遇和努力也缺一不可。
算法改进者他们也许无法回答出“我的方法为什么work”,也许没有Hinton,LeCun那样足以载入史册的重大成果,但是却能根据经验和一些奇思妙想,将现有的模型玩出更好的效果,或者提出一些改进的模型。这些人通常都是各个机器学习巨头公司的中坚力量或者成长中的独角兽,使用什么模型对他们来讲也不是问题,根据所处的环境,通常都有固定的几个选择。在这个层面,insight和idea才是重要的东西,各种工具的区别,影响真的没那么大。可能会让一个结果早得到或者晚得到几天或者几周,却不可能影响“有没有成果”。
工业实现者这些人基本上不会在算法领域涉入太深,也就是了解一下各个算法的实现,各个模型的结构。他们更多地是根据论文去复现优秀的成果,或者使用其他人复现出来的成果,并且试图去在工业上应用它。
对于大部分IT人来说,做到第三类,也就是工业实现这个层面,已经足够好了,至少,我们已经有了亲身参与这个大时代的机会,仅就这一点来说,便已经击败了全国99%的人(斜眼笑的表情)。
不光是普通程序猿这么说,文艺的程序猿和……额,高大上的程序猿也都这么说。
我说,呵呵。
答案只有一个:JustDoIT(去搞IT吧,少年)
成为人工智能工程师,在我看来,要把机器学习、深度学习掌握好,就可以入行拼搏了!另外,理论必须要结合项目实战:因为作为程序员,读十遍书不如跑一遍程序,与其花费大量的时间去啃书本,不如亲手完成自己的程序并运行它。我们在写出代码的同时,就会了解到自己还有哪些地方不够清楚,从而针对性地学习。
02机器学习入门我们先来说说,机器学习应该学习哪些。
学习任何东西,勿在浮沙筑高台(对这句话眼熟的请举手),有一些基础的知识还是需要掌握的。例如在计算机视觉领域,根据我们团队内部培训的经验,为了能够独立进行机器学习的开发工作,最好首先完成这么几项课程:
入门机器学习熟悉机器学习领域的经典算法、模型及实现的任务等,同时学习搭建和配置机器学习环境,并学会用线性回归解决一个实际问题。
Logistic回归分析、神经网络、SVM掌握数据集探索;理解分类任务算法(Logistic回归、神经网络、SVM)原理;学会在scikit-learn框架下采用各分类算法分类具体任务。
决策树模型与集成学习算法损失函数:信息增益、Gini系数划分:穷举搜索、近似搜索正则:L2/L1预防过拟合:预剪枝及后剪枝;Bagging原理;Boosting原理;流行的GBDT工具:XGBoost和LightGBM
聚类、降维、矩阵分解主成分分析(PCA);独立成分分析(ICA);非负矩阵分解(NFM);隐因子模型(LFM);KMeans聚类和混合高斯模型GMM(EM算法);吸引子传播聚类算法(AffinityPropagation聚类算法)
特征工程、模型融合&推荐系统实现学会常用数据预处理方法及特征编码方法;学习特征工程的一般处理原则;组合各种特征工程技术和机器学习算法实现推荐系统。
上面的课程大概会消耗你1个月多的所有业余时间。但是相信我,这是值得的。
如果实在连一两个月的业余时间都拿不出来,好吧,我来偷偷告诉你最最最基本的一个要求,满足了这个要求,你就能够算是机器学习入门了:会算矩阵乘法
矩阵乘法别笑,说正经的,在这个框架高度封装的年代,梯度不需要自己算,损失不需要自己求,反向传导更是被处理得妥妥的,在不求甚解的情况下,你甚至只需要知道这么几个概念就可以开始着手写第一个程序了:
它就是通过一系列矩阵运算(或者类似的一些其他运算)将输入空间映射到输出空间而已。参与运算的矩阵的值称为权重,是需要通过不断迭代来寻找到最优值。
当前的权重值离最优值还差多远,用一个数值来表示,这个值就叫损失,计算这个值的函数叫损失函数。
当前的权重值应该调大还是调小,这个值通过对损失函数求导来判断,这个求导得到的函数叫做梯度。
通过损失和梯度来更新权重的方法叫做反向传导。
迭代的方法称为梯度下降。
虽然这么写出来的程序一定是不知其所以然,但是其实20年前我第一次用C++写Helloworld的时候也是一脸懵逼的,我相信,每个能够投身机器学习开发工作的程序猿,都是有大毅力大勇气的,自然不会欠缺继续学习的动力和决心。
03深度学习入门我们再来说说,深度学习应该学习哪些。
深度学习着重掌握卷积神经网络和循环神经网络,使用大量真实的数据集,结合实际场景和案例介绍深度学习技术的应用范围与效果。
神经网络入门及深度学习环境配置熟悉神经网络领域的常用术语、安装并配置深度学习框架Tensorflow,学会用Tensorflow解决一个实际问题。
神经网络基础及卷积神经网络原理使用不同结构的神经网络结构验证网络结构对效果的影响;了解卷积神经网络的相关概念和基础知识,并通过实战案例理解CNN局部相关性与权值共享等特性。
卷积神经网络实战图像分类及检测任务:学习图像分类任务及检测任务目前主要模型算法,并通过两个实战案例学习在Tensorflow框架下训练CNN模型。
卷积神经网络之图像分割实例掌握分割任务简介、反卷积(deconv/transpose-conv)、FCN
循环神经网络原理RNN基本原理
门限循环单元(GRU)
长短期记忆单元(LSTM)
词向量提取:Word2Vec
编码器—解码器结构
注意力机制模型:AttentionModel
图片标注(ImageCaptioning)
图片问答(VisualQuestionAnswering)
如何系统学习深度学习?90万程序员都在这么做!点我查看
04进阶恭喜,你成为人工智能工程师群中的一员了。
接下来就可以收集一些自己的数据,并且训练一些自己的识别引擎;或者尝试着优化这个模型,感受一下所谓调参党的痛苦;又或者直接尝试实现ResNet、Inception这些更为先进的网络来刷刷Cifar;再不然可以尝试着向NLP或者强化学习方向去学习一下。总之,这些事情远没有看起来那么难。
当然,不论那条路,学习,进步和自我鞭策都是逃避不掉的必修课。一个新生的领域,勃勃的生机必然也意味着新成果的层出不穷。完成我上面提到的三门课程只能让一个人从门外汉变成圈里人,有了进入这个领域,赶上这波浪潮的基本资格,至于到底是成为弄潮儿还是直接被大浪吞没,还是那句话,不劳苦必然无所得。努力学习不一定能修成正果,而不去努力学习,则注定是一无所获。
最后,祝福,祝福各位能在AI领域里大放异彩。
【干货】人工智能工程师的三个层次(附技术学习路线图)
作者| 智亮
GoogleTensorflow框架的Contributor。在计算机视觉领域有深厚的工业经验,带领团队开发的“花伴侣”植物识别App,上线数月即在0推广的情况下达到百万用户,并获得阿里巴巴2017云栖大会APISolution大赛一等奖,团队受邀成为腾讯微信公开课北京站九位演讲嘉宾之一。
01
每一波浪潮的到来,都意味一片无人占领的蓝海,也意味着众多新成长起来的巨头,还意味着什么?大量的技术人员需求,供不应求的开发市场,以及从业者的高薪与众多的机会。
我们最常做的事情是目送着上一次浪潮的余波远去,感叹自己生不逢时,却没有意识到,下一波浪潮已经到了我们脚下。
没错,我们说的就是AI。
身在IT圈中的人,应该都有着直观的认识。目前国内知名的互联网企业无一不在建立自己的人工智能技术团队,以期用AI技术,提升产品的体验和智能化程度。
但与此同时,各种不明觉厉的名词也吓退了很多非科班出身的开发者。什么叫卷积神经网络?什么叫凸优化?是不是还要回去重读高数,线代,概率?那么一大堆公式,感觉完全看不懂啊?听说没个名校博士出身都搞不了这个?
在很久以前的一篇知乎回答中提过,作为开发人员,AI领域界在我看来会分成这么几个层次
1.学术研究者
他们的工作是从理论上诠释机器学习的各个方面,试图找出“这样设计模型/参数为什么效果更好”,并且为其他从业者提供更优秀的模型,甚至将理论研究向前推进一步。能够做到这一步的人,可以说凤毛麟角,天赋是绕不过去的大山,机遇和努力也缺一不可。
2.算法改进者
他们也许无法回答出“我的方法为什么work”,也许没有Hinton,LeCun那样足以载入史册的重大成果,但是却能根据经验和一些奇思妙想,将现有的模型玩出更好的效果,或者提出一些改进的模型。这些人通常都是各个机器学习巨头公司的中坚力量或者成长中的独角兽,使用什么模型对他们来讲也不是问题,根据所处的环境,通常都有固定的几个选择。在这个层面,insight和idea才是重要的东西,各种工具的区别,影响真的没那么大。可能会让一个结果早得到或者晚得到几天或者几周,却不可能影响“有没有成果”。
3.工业实现者
这些人基本上不会在算法领域涉入太深,也就是了解一下各个算法的实现,各个模型的结构。他们更多地是根据论文去复现优秀的成果,或者使用其他人复现出来的成果,并且试图去在工业上应用它。
对于大部分IT人来说,做到第三类,也就是工业实现这个层面,已经足够好了,至少,我们已经有了亲身参与这个大时代的机会,仅就这一点来说,便已经击败了全国99%的人(斜眼笑的表情)。
不光是普通程序猿这么说,文艺的程序猿和……额,高大上的程序猿也都这么说。
我说,呵呵。
答案只有一个:JustDoIT(去搞IT吧,少年)
成为人工智能工程师,在我看来,要把机器学习、深度学习掌握好,就可以入行拼搏了!另外,理论必须要结合项目实战:因为作为程序员,读十遍书不如跑一遍程序,与其花费大量的时间去啃书本,不如亲手完成自己的程序并运行它。我们在写出代码的同时,就会了解到自己还有哪些地方不够清楚,从而针对性地学习。
02
我们先来说说,机器学习应该学习哪些。
学习任何东西,勿在浮沙筑高台(对这句话眼熟的请举手),有一些基础的知识还是需要掌握的。例如在计算机视觉领域,根据我们团队内部培训的经验,为了能够独立进行机器学习的开发工作,最好首先完成这么几项课程:
1.入门机器学习:
熟悉机器学习领域的经典算法、模型及实现的任务等,同时学习搭建和配置机器学习环境,并学会用线性回归解决一个实际问题。
2.Logistic回归分析、神经网络、SVM:
掌握数据集探索;理解分类任务算法(Logistic回归、神经网络、SVM)原理;学会在scikit-learn框架下采用各分类算法分类具体任务。
3.决策树模型与集成学习算法:
损失函数:信息增益、Gini系数;划分:穷举搜索、近似搜索;正则:L2/L1;预防过拟合:预剪枝及后剪枝;Bagging原理;Boosting原理;流行的GBDT工具:XGBoost和LightGBM
4.聚类、降维、矩阵分解:
主成分分析(PCA);独立成分分析(ICA);非负矩阵分解(NFM);隐因子模型(LFM);KMeans聚类和混合高斯模型GMM(EM算法);吸引子传播聚类算法(AffinityPropagation聚类算法)
5.特征工程、模型融合&推荐系统实现:
学会常用数据预处理方法及特征编码方法;学习特征工程的一般处理原则;组合各种特征工程技术和机器学习算法实现推荐系统。
上面的课程大概会消耗你1个月多的所有业余时间。但是相信我,这是值得的。
如果实在连一两个月的业余时间都拿不出来,好吧,我来偷偷告诉你最最最基本的一个要求,满足了这个要求,你就能够算是机器学习入门了: 会算矩阵乘法
别笑,说正经的,在这个框架高度封装的年代,梯度不需要自己算,损失不需要自己求,反向传导更是被处理得妥妥的,在不求甚解的情况下,你甚至只需要知道这么几个概念就可以开始着手写第一个程序了:
它就是通过一系列矩阵运算(或者类似的一些其他运算)将输入空间映射到输出空间而已。参与运算的矩阵的值称为权重,是需要通过不断迭代来寻找到最优值。
当前的权重值离最优值还差多远,用一个数值来表示,这个值就叫损失,计算这个值的函数叫损失函数。
当前的权重值应该调大还是调小,这个值通过对损失函数求导来判断,这个求导得到的函数叫做梯度。
通过损失和梯度来更新权重的方法叫做反向传导。
迭代的方法称为梯度下降。
虽然这么写出来的程序一定是不知其所以然,但是其实20年前我第一次用C++写Helloworld的时候也是一脸懵逼的,我相信,每个能够投身机器学习开发工作的程序猿,都是有大毅力大勇气的,自然不会欠缺继续学习的动力和决心。
03
我们再来说说,深度学习应该学习哪些。
深度学习着重掌握卷积神经网络和循环神经网络,使用大量真实的数据集,结合实际场景和案例介绍深度学习技术的应用范围与效果。
1.神经网络入门及深度学习环境配置:
熟悉神经网络领域的常用术语、安装并配置深度学习框架Tensorflow,学会用Tensorflow解决一个实际问题。
2.神经网络基础及卷积神经网络原理:
使用不同结构的神经网络结构验证网络结构对效果的影响;了解卷积神经网络的相关概念和基础知识,并通过实战案例理解CNN局部相关性与权值共享等特性。
3.卷积神经网络实战:
图像分类及检测任务:学习图像分类任务及检测任务目前主要模型算法,并通过两个实战案例学习在Tensorflow框架下训练CNN模型。
4.卷积神经网络之图像分割实例:
掌握分割任务简介、反卷积(deconv/transpose-conv)、FCN
5.循环神经网络原理:
RNN基本原理
门限循环单元(GRU)
长短期记忆单元(LSTM)
词向量提取:Word2Vec
编码器—解码器结构
注意力机制模型:AttentionModel
图片标注(ImageCaptioning)
图片问答(VisualQuestionAnswering)
04
恭喜你,成为人工智能工程师群中的一员了
接下来就可以收集一些自己的数据,并且训练一些自己的识别引擎;或者尝试着优化这个模型,感受一下所谓调参党的痛苦;又或者直接尝试实现ResNet、Inception这些更为先进的网络来刷刷Cifar;再不然可以尝试着向NLP或者强化学习方向去学习一下。总之,这些事情远没有看起来那么难。
当然,不论那条路,学习,进步和自我鞭策都是逃避不掉的必修课。一个新生的领域,勃勃的生机必然也意味着新成果的层出不穷。完成我上面提到的三门课程只能让一个人从门外汉变成圈里人,有了进入这个领域,赶上这波浪潮的基本资格,至于到底是成为弄潮儿还是直接被大浪吞没,还是那句话,不劳苦必然无所得。努力学习不一定能修成正果,而不去努力学习,则注定是一无所获。
最后,祝福,祝福各位能在AI领域里大放异彩。(点击阅读原文,下载技术学习路线图)
05
最后,一个个小小的推荐
最后,做一个小小的推荐。
本文作者智亮老师在CSDN学院开设的《人工智能工程师》实训班即将开车了。
这是一个100天的学习计划,目标是:能让你从AI小白直接晋级为具备一年经验的人工智能工程师。
内容包括刚才智亮老师写的机器学习和深度学习需要掌握的知识和系统图谱,每节课配有实战案例,提供GPU云实验平台进行案例实操,将理论知识与实际案例应用相结合,反复巩固,助力你成为AI工程师。
如果你渴望学习AI技术,想要系统性学习,那么来吧,4个月的携手实战,相信你收获不一样的自己,人工智能工程师。
以下为课程特色(官方脸):
课程内容分成三个阶段:机器学习、深度学习、还有我们的四个工业级实战项目(可选)及成果展示!全程实战案例,从机器学习原理到推荐系统实现,从深度学习入门到图像语义分割及写诗机器人,再到专属GPU云平台上的四大工业级实战项目。
有专人来跟踪你的学习进度,并根据你的数学和编程基础来制定专属学习计划,保证不掉队。两位大咖讲师在计算机视觉的产业界和学术界分别都有着深厚的经验,产、学、研结合紧密。
学成之日,会有来自AI产业界的专业讲师来做就业指导,甚至还有可能直接推荐就业并全额返还学费。
不再多说,
这是天堂。
这是地狱。
我们已经在这里等你,来吗,少年?
扫码了解详情
☞ 点击阅读原文,查看人工智能学习路线图。