机器学习科普(开篇)----超简单的机器学习科普系列

冬眠.jpg

前言

近几年人工智能非常火,不管什么领域都想跟它沾沾边。但人工智能却很高冷,让我们这些凡夫俗子很难靠近。光看着它的知识线路图就想放弃。

于是,我在想,是否我可以写一个系列,让大家能花最少的时间了解到人工智能最精华的内容呢。
目前的安排是先从机器学习系列开始,讲解主要的算法及它的思想,之后可能会涉及到自然语言处理系列(先剧透一下)
不要觉得难,不要害怕发际线作对,跟我一起学,保证你夏天头顶不冷,冬天头顶不热
(´▽`)

本系列的特点

1、内容以思想为主
思想不仅限于技术领域,也能解决其他领域的问题
2、尽量不涉及数学公式
保证零基础能听懂,收获满满滴
3、提供实现代码
你若想深入研究,我也会在每篇文章末尾提供参考资料和可实现的代码(代码一般是使用python写的)
4、一起进步
有什么问题和改进的意见,可以给我留言,看到绝对会回复的。

好了,我们开始吧!


先补充点能量

人工智能,有多智能

人工智能这个词可以拆成:人工和智能两个词。人工,就是非天然所造,即:人造的。
那么人工智能其实就是人造的一个东西。
那智能呢?
以人的标准来看,一个人智不智能就是看这个人聪不聪明。
智能的评价标准就是:人造的这个东西有多聪明。
而一个聪明人一般给人的印象就是:学习能力强、记性好、什么事都做得好等等。人工智能也不外乎。
目前有两种人工智能研究路线:
我们都知道人工智能可以通过数据挖掘等手段最终解决很多问题,这种人工智能叫“弱人工智能”,
而像《西部世界》那种拥有意识的智能叫“强人工智能”,
弱人工智能的应用比较普遍,但强人工智能目前还难以实现。
(╯﹏╰)

人工智能与机器学习的关系

机器解决新问题的方法有两种,一个是启发法问题求解,另一个就是机器学习。
(本系列主要简介机器学习,启发法问题求解待后续更)
两者关系即:机器学习是人工智能实现的方法之一,人工智能是机器学习的目标。

什么是机器学习

机器学习是定义在学习基础之上的,由于目前学习尚无统一定义,因而机器学习也不能给出一个严格的定义。
不过,我们可以从直观上来理解它。
机器学习可以理解成让机器来模拟人类的学习功能。
从解决问题的层面来看(即:实现弱人工智能),机器学习的目的就是通过学习来解决复杂问题。

机器学习的发展过程

我们程序员们做事最喜欢讲目的,对不对?
所以,我绝不讲无意义的内容。
讲发展过程的目的是为了将思想串起来,让你知道前因后果,同时也能便于算法的理解。

其实,机器学习的发展还挺坎坷的,有几次差点断气。
先忘掉所有已知机器学习的知识,你想一下,如果你来实现机器学习,你会怎么做?
既然机器学习是模拟人类学习,而人类学习和行动是通过神经元触发实现的。

即:你在开车拐弯的时候,如何让你的手脚能同步而实现拐弯这个动作呢,首先是你的眼睛看到了弯道,然后眼睛将接收到的信号传入到大脑,然后大脑的神经元触发到周围的神经元(神经元与神经元之间有连接,具体内容会在神经网络中讲解),最后将信号转送到你的手,你的手接收到信号后便实现了转动方向盘的动作。

1、神经元模拟研究(20世纪40年代到60年代)
知道这过程后,我们就可以通过模拟人类神经元的形式来实现学习机制了。
但很遗憾,这种理论在解决复杂智能系统时都失败了(单层感知器无法解决非线形可分问题)。之后,机器学习的研究便进入了低谷期。

2、符号概念获取(20世纪60年代到70年代)

这种方式没成功,可以换种思维模式。像我们程序员,最容易想到的就是 if-else 了吧。如果已知知识,那么我们便可以通过已知知识来学习了。例如:辨别好工作的方法,if(工资高 and 不加班) then 好工作。这种思考过程称为:概念学习过程,我们只要分析一些概念的正例和反例,便能作出决策。

这类算法例如:决策树、产生式规则或语义网络等。
但这些算法只能学习单一的概念,仍然无法解决复杂问题。人工智能在此期间仍处于低迷状态。

3、知识强化学习(20世纪70年代到80年代)

单一概念不行,自然想到从单个概念扩展到了多个概念。

人们也就想到这种办法,将多个概念形成了知识库,从而实现知识的强化学习。特别是专家系统的出现(将领域专家大量的经验知识存储在知识库,然后模拟领域专家做决策),极大刺激了机器学习的发展,这一时期成了机器学习复兴时期。

但在此期间,机器学习仍只能解决一些领域简单问题,而像我们看到的 AlphaGo 这类智能,通过以上机器学习还无法办到。直到之前一直低迷的神经网络的复苏及深度学习的出现。

4、连接学习与深度学习(20世纪80年代到21世纪)
在最开始讲过了模拟人类神经元失败了,主要是因为单层感知器只能解决线性可分问题,无法解决线性不可分问题。
什么是线性可分呢?


线性可分

即:一条直线能完成数据的分类
什么是线性不可分呢?


线性不可分

即:无法简单用一条直线来完成分类

而人工神经网络可以解决线性不可分问题。


吃包薯片,继续战斗,嗝~~~

(1)人工神经网络的浅层模型
BP神经网络可以解决线性不可分问题,BP神经网络图:


一个隐藏层的BP神经网络图

输入层:接收数据
隐藏层:做一些变换(隐藏层越多,就越复杂)
输出层:将变换后的数据输出
例如分类问题:我们输入一堆数据后,通过隐藏层对数据处理,最后输出层输出分类结果。(就是这么简单)
但仍存在问题:我们可以从图中看出,BP神经网络是全连接的(不同层的节点间全连接),随着隐藏层的不断增加,连接也不断增加,计算量随之增大。

面对复杂问题,可能需要多个隐藏层才能解决,而过多的隐藏层会引起计算耗时太长,因此BP神经网络仍无法解决复杂问题。

莫慌,莫慌,厉害角色马上登场

(2)深层神经网络模型
一听这名字就很高大上,其实思想并不难。

BP神经网络的缺点:
1、隐藏层增加会大幅度的增加计算量
2、隐藏层太多会产生严重的传播误差(即:隐藏层会对数据进行处理,而处理过程会产生误差,随着层级增多,误差可能会越大,最后影响输出结果)

这时,深层神经网络模型闪亮登场(此时需要掌声):

登场的是:深度卷积神经网络

深度卷积神经网是一个狠角色,它可以解决BP神经网络的两大缺点。

深度卷积神经网由多个卷积层和池化层组成。卷积层做特征提取(例如:人像识别中,对人的五官特征进行提取),池化层用于降低计算量。这样完美解决了BP神经网络的两大缺点。像我们经常见到的,人脸识别、AlphaGo都是使用了该模型。

尽管深度神经网络可以处理很多复杂问题,如:人脸识别、智能诊断等。但它仍存在问题,主要问题在于深度神经网络基于“黑箱模式”,即:我们知道输入与输出结果,但对输出结果是如何产生的,深度神经网络提供不了。那么问题就来了,例如我们做智能诊断时,机器虽然给出了诊断结果,但医生无法知道它是怎么得出这个结果的,那么就很难评估它的可靠性了。

机器学习与我何干

枯燥的发展史终于讲完了,能看到这里的你,一定是真爱了(爱了,爱了)
学海无涯,此生有涯。知识肯定是学不完的,那为什么还要学习?

爱一个人不需要理由,但学习肯定需要理由的。

我的修为不高,我认为学习首要目的应该是解决问题吧。而面对复杂问题,思想很重要。

1、多个思考角度
不管你是否从事什么工作,你都可以学习机器学习的思想,了解机器如何解决问题之后,也可以为解决现实问题多个思考角度吧。

2、解决生活问题
我会提供案例代码,你可以通过学习,自己写代码来解决生活问题。

想到算法,我就头大,我想你也有点吧。所以,之后对于算法,我尽量简单化,多讲思想,与现实生活相紧扣。

总结

1、弱人工智能与强人工智能
弱人工智能就是我们常见到的,用机器学习实现的人工智能。强人工智能是像人一样拥有意识的智能。

2、关于机器学习
机器学习是人工智能的实现方式之一。机器学习是基于统计学,对数据进行挖掘,模拟人类作出决策,实现弱人工智能。

3、机器学习发展过程
(1)机器学习首先是模拟人类学习(神经元模拟),但无法解决非线性可分问题(现实中多为非线性可分问题)。

(2)后来进行单一概念学习(即:if-else模式),只能针对已知知识,无法解决复杂问题。

(3)将单一概念学习扩展到多概念学习(如:专家系统)

(4)浅层神经网络到深度神经网络(即:BP神经网络到卷积神经网络)

(5)深度神经网络模型虽然能解决很多问题,但由于它基于“黑箱模式”,从而限制了它的发展。

我:天呐,终于写完了,我都快奔溃了。
你:天呐,终于看完了,真的要吐了。

辛苦了,辛苦了

预告

到目前为止,我们还只了解到了机器学习的概念以及算法的皮毛。接下来我将讲解机器学习算法具体思想及代码实现,尽请期待~

写在最后

如果喜欢的话,可以加我的公众号“樱桃小卷子”,是我(卷子)和我朋友(樱桃)两只程序媛经营的。
最后谢谢你,居然看完了,感动ing。

你可能感兴趣的:(机器学习科普(开篇)----超简单的机器学习科普系列)