看过1000份算法简历,才明白人工智能、机器学习、深度学习!!!
前几期我们分别从不同的岗位撰写了一些关于算法和AI的内容。
关于岗位的内容并没有写完,之后再梳理出每一个岗位涉及到的相关技术,并一一做解析做成系列。
近期,我们还是想从相对广泛的AI基础开始,让大家整体性的理解。
人工智能、机器学习、深度学习三者的真实关系
在我们百度搜索人工智能、机器学习、深度学习时,往往会出现这类资讯内容。
大部分文章在描述这三者关系的时候,都会引用这张图。
这张图,会让我们产生一种错觉。
我们会简单的认为这3者的关系是包含与被包含的关系。
事实上,这只是展示人工智能领域相关技术的发展时间表。
人工智能,我更愿意理解其为一种物体或生物。这种物体或生物拥有和人类一样的智慧,可以像人类一样对某些事物或工作流程做出更为准确的判断,并通过判断做出相应的反应。
比如,我们看到的电影《终结者》,《超能查派》这些角色,就是一个人工智能。它是一个包含一些属性的名词。
机器学习,是实现人工智能的方法。它更像是一个动词,帮助我们制造出人工智能。
深度学习,根据百度百科对深度学习的解释,该概念是2006年由Hinton等人提出,基于深信度网(DBN)提出非监督贪心逐层训练算法。因此,它是一类算法类型的总称,归属于机器学习。
因此,机器学习包含着深度学习;
人工智能,则是机器学习的目的。
机器学习的本质
机器学习,是用各种计算方法得出某个事物是某个事物的概率,且这个概率的数字可以被优化。
知乎上有一位仁兄说得非常简洁:机器学习的本质是概率和自适应。
用一张图做更为更通俗的描述:
-
给婴儿建立对事物认识的模型(算法)-猫的识别模型;
-
以模型对事物进行归类并得出概率。如:认为猫2,60%概率是猫,40%概率是狗;
-
经过n次的学习之后,模型完美。如:婴儿已经可以判定各种不同的猫(100%),不会再将猫当成狗。
这里的婴儿相当于初代人工智能。
机器学习是让人工智能不断提高识别猫的概率,当提高到一定程度之后,人工智能就相当于具备了识别各种猫的能力。
那么机器学习是如何帮助『婴儿』获得识别物品的能力呢?
机器学习的常见步骤
假设
我们需要教会婴儿能够识别出黑猫、白猫、花猫。
识别3种猫的系统,我们称之为『模型』,建立这个『模型』的过程,我们称之为训练(所谓的自适应)。
识别概率达到90%以上,我们称之为能够正确识别。
收集数据
猫的数据需要从一只又一只黑猫、白猫、花猫的身上搜集和提取。比如猫的耳机形状、瞳孔的形状、猫的胡须数量、猫的身长比例、猫的皮毛颜色等,都是搜集的重点。一般情况下所收集的数据的数量和质量都将决定最终形成的模型的好坏(这个模型,就是我们得出该物品是某物品的概率)。
为了简化我们的模型参数,我们以皮毛颜色数量、皮毛颜色的深度,作为主参数来判定猫的种类。这其实,就是所谓的特征工程。
我们在街上寻找各式各样的猫,并做好数据的采集,大约得出这样的表格。
数据准备
当我们收集好这些数据后,需要将这些数据的顺序进行打乱。因为顺序并不是我们判断猫类的依据,同时我们也不希望顺序会对模型学习产生影响。
我们可以先使用手绘的形式得出数据的分析结果,以避免其他潜在的数量关联造成数据失衡。即,如果我们收集的数据表现出大量结果为黑猫,其他白猫和花猫的结果非常少,那就非常有可能出现使用这样的数据做模型学习,会造成模型最终只能分辨黑猫和非黑猫。这明显不合常理,因为我们日常见到黑猫、白猫、花猫的概率往往都是一样的。
当我们能够确保各类数据相对均衡之后,则要将数据分成2个大部分。
-
训练数据(75%或70%)
-
评估数据(25%或30%)
这个过程与我们过去上学是类似的。
我们所有人按照正常的课程一个学期一个学期学习知识。
我们日常的课本、练习题,都是类似于训练数据;而考试的考题则是评估数据;考试后的分数就是我们的学习成果。
不能够使用训练数据作为评估数据的原因是:
担心这些数据被模型记住,等同于我们考试的题目一般都跟平常的练习题目不是一样的。不然,我们都不用认真学习了,只要考试前做一些真题试卷,就可以拿到高分。
选择模型
模型,其实我们可以理解为算法。(其实从数学角度来讲,是一个公式,这个公式是可以对数据或事物做分类)。
其实这些年来,网上已经有研究者或数据科学家研究出非常多的通用模型,有些适合处理图像数据,有些适合处理文本数据,有些适合处理音频数据。
很多时候,做这块工作的算法工程师,可以从这些通用模型中寻找适合当前业务的模型,再略做修改,就可以使用。
训练模型
接下来这个过程,就是让我们之前选定的模型,更适合用来识别黑猫、白猫、花猫。通过训练,可以将其识别的准确度(概率)提高。
这个过程,类似于我们在学习开车的过程。
刚开始,你可能连方向盘、油门、刹车、档位都分不清楚,更别说倒车的时候通过后视镜去判断车的位置,在拥堵的广州大道上见缝插针的加塞。
经过无数次教练的耐心辅导(估计骂得要死),你终于学习会了方向盘、油门、刹车的使用;
经过无数次被别人加塞的教练之后,你终于学会了加塞和超车,然后距离别家车主1cm的距离,扬长而去,只留下别人在车里只有其自己才能够听得见的漫骂。
整个训练的过程大约如下图所示,当然需要输入的数据(猫的种类)得有各种不同的。这里暂时只显示黑猫识别过程。
-
向模型中输入数据(猫);
-
模型经过计算,输出猫是分别是黑猫、白猫、花猫的概率;
-
将判定输出数据是否准确,将结果反馈给模型(调参,进行模型优化);
-
经过n次训练之后,我们终于可以将猫的类型概率调到某种类型80%以上;
-
这时候,我们暂且可以认为这个模型是可用于分辨猫的种类的有效模型。
训练结束(知识学会:知道油门刹车方向盘的使用),接下来要评估模型了(考试:考驾照)。
评估模型
将之前25-30%的评估数据调进来使用。
BINGO:考试通过。
应用
应用,就是拿着驾照,正式上路啦。
上述,大约是机器学习的过程。
当然,这个过程可能只是一个简单的流程。模型选择和模型训练方法,可能会有些不同。
因此才会有各种不同的算法,包括深度学习的算法。
机器学习的算法分类
说分类之前,先描述一下深度学习和机器学习的区别。
关键区别如下图:
深度学习的模型训练过程,就是通过一层一层的分解,将图片的简单特征转化为更复杂的特征,使得不同的图像识别度更高。
我的理解是,将原本识别度相对比较低的图像通过分解,形成相对识别度较高的特征,然后再将这些识别度高的特征进行组合,从而得到结果预测更贴近于事实。
分层处理数据和大脑的工作原理比较相似,不同的大脑区别用于处理不同的任务。
截止目前,机器学习算法主要有以下分类:
将开篇的结构图做细化:
虽然目前机器学习的分类有这么多种,但主分类还是以监督学习、无监督学习、强化学习这3者为主。
本期到此结束,相信大家已经可以对AI、机器学习、深度学习的差别有一个相对明确的认知。
下期我们会找些例子,详细描述各种算法的区别。