对以下文章机器学习总结
人工智能和机器学习之间的关系
人工智能是一个最宽泛的概念,是一个研究领域,同时也是一个实现目标,而机器学习则是实现这一目标的一类方法。深度学习只是机器学习这一类方法中的一种。
机器学习之前的建模方式对比 :
深度学习改变了很多领域算法的实现模式。在深度学习兴起之前,很多领域建模的思路是投入大量精力做特征工程,将专家对某个领域的“人工理解”沉淀成特征表达,然后使用简单模型完成任务(如分类或回归)。而在数据充足的情况下,深度学习模型可以实现端到端的学习,即不需要专门做特征工程将原始的特征输入模型中,模型同时完成特征提取和分类任务。
Dimension disaster:
阶跃激活函数 (输入值和阈值的差值)
阶跃函数用于计算决定神经元是兴奋还是抑制的关键.阶跃函数可以将神经元输入值与阈值的差值映射为输出值1或0;若差值大于等于零则输出1,对应兴奋;若差值小于零则输出0,对应抑制。
阶跃函数具有不光滑、不连续等众多不“友好”的特性,无法连续求导。在实际应用中无法使用.
S型函数(sigmoid函数)— 无论输入值的范围有多大,这个函数都可以将输出挤压在范围(0,1)之内。
实际应用中, 我们通常用S型函数函数来代替阶跃函数,最常用的S型函数为sigmoid函数.
那么对于Sigmoid函数,则输出大于0.5小于1,对应兴奋;如果输入值在(-0.5,0)之间,那么输出则小于0.5大于0,对应抑制。
- 既然如此,我们又应该怎样理解激活函数呢?其实从生活中就可以找到相似的影子。比如有一个父亲为了奖励他的孩子,对他说如果下次期末总成绩90分以上就奖励100元,不到90分就没有奖励。现在我们把这一过程抽象为一个M-P神经元模型。父亲最终会有两个状态,一个是奖励100元(激活),一个是没有奖励(抑制)。输入的 、 、到 等因素为孩子的表现,比如 代表孩子今天有没有认真听课, 代表孩子有没有认真完成作业, 代表孩子考试有没有认真计算。这些表现因素乘以各自的权重相加就是孩子的期末总成绩,如果总成绩没有超过父亲奖励的阈值,则最终相减的结果小于0,经过阶跃激活函数后值为0,代表父亲处于抑制状态,也就是没有奖励。但在第二次,孩子学习更加刻苦,考试过程中也特别认真,最后乘以各因素权重后的和超过了父亲的奖励阈值,即超过了90分,则最终相减的结果大于0,此时经过阶跃激活函数后的值为1,代表父亲处于激活状态,于是奖励给了孩子100元。 这便是激活函数以及整个M-P神经元模型的基本原理。
输入的数据各个特征乘以权重再相加, 结果和阈值进行差值计算, 大于0则阶跃激活函数结果为1,神经元兴奋状态,则奖励。 差值计算结果小于0,则阶跃激活函数结果为0,神经元抑制状态, 则惩罚.
感知机
感知机是一种判别模型,其目标是求得一个能够将数据集中的正实例点和负实例点完全分开的分离超平面。
- 感知机在1957年由弗兰克·罗森布拉特提出,是支持向量机和神经网络的基础。
- 感知机是一种二类分类的线性分类模型,输入为实例的特征向量,输出为实例的类别,正类取1,负类取-1。
- 感知机是一种判别模型,其目标是求得一个能够将数据集中的正实例点和负实例点完全分开的分离超平面。如果数据不是线性可分的,则最后无法获得分离超平面。
单层感知机及其基本原理
基本结构 — 由两层神经元构成的网络结构。
x 表示输入, w 表示权重, y表示输出.
红色字体讲清楚了,M-P单神经元模型和感知机模型的区别
-
上面所讲到的M-P神经元模型其实就是对单个神经元的一种建模,需要注意的一点是,M-P模型的权重和阈值都是人为给定的,所以对这一类模型不存在“学习”的说法。其实,这也是M-P模型与单层感知机最大的区别,感知机中引入了学习的概念,权重和阈值是通过学习得来的。
-
单层感知机模型是由美国科学家Frank Rosenblatt(罗森布拉特)在1957年提出的,它的基本结构如图所示,简单来说,感知机(Perceptron)就是一个由两层神经元构成的网络结构:输入层接收外界的输入信号,通过激活函数(阈值)变换,把信号传送至输出层,因此它也被称为“阈值逻辑单元”;输出层(也被称为是感知机的功能层)就是M-P神经元。 (单感知机(Perceptron)就是一个由两层神经元构成的网络结构)
-
输出的数学表达式如图所示。可以看到,大于阈值的时候输出为1,小于等于阈值的时候输出为0
我们判断正确错误和我们的权值 、 和阈值相关。那么怎么选择权值和阈值呢?事实上,我们并不能一开始就知道这几个参数的取值,而是一点点地“折腾试错”(Try-Error),而这里的“折腾试错”其实就是感知机的学习过程。
3.2 感知机的学习过程
神经网络的学习规则 — 调整神经元之间的连接权值和神经元内部阈值的规则。
中国有句古话:“知错能改,善莫大焉”说的就是,犯了错误而能改正,没有比这更好的事了。放到机器学习领域,这句话显然属于“监督学习”的范畴,因为“知错”,就表明事先已有了事物的评判标准,如果你的行为不符合或者偏离这些标准,那么就要根据偏离的程度,来“改善”自己的行为。
神经网络的学习规则就是调整神经元之间的连接权值和神经元内部阈值的规则(这个结论对于深度学习而言依然是适用的)。 (神经网络的学习过程,本质上就是不断调整神经元之间的权重和阈值的过程. 开始随机初始化权重和阈值,随着数据的输入数量变大, 这两个值为无限接近正确的数字.)
感知机的学习过程分为四个阶段。
第一次学习,就是第一次根据规则调整权重和阈值.
感知机的几何意义 (单感知机只能解决线性分布的问题.)
在非线性分布形态的场景,感知机的学习过程就会发生“震荡(Fluctuation)”,权重就难以求得合适的解。因此,单个感知机的局限性在于它只能表示由一条直线分割的空间,对于非线性问题(即线性不可分问题,如上图中的非线性空间)仅用单个感知机无法解决。
单层的感知机不能解决“异或”问题。
观察三角符和圆圈的分布形态:
非线性分布
深度神经网络
深度神经网络是一种使用数学模型处理图像以及其他数据的多层系统,而且目前已经发展为人工智能的重要基石。
感知机模型则由两层神经元组成,输入层接收外界输入信号后,经过激活函数处理,传递给输出层,输出层再经过激活函数处理形成最终的输出。
单层的感知机不能解决“异或”问题,也正是因此被人工智能泰斗明斯基并无恶意地把人工智能打入“冷宫”二十载。其实解决“异或”问题的关键在于能否解决非线性可分问题,而要解决非线性问题就需要提高网络的表征能力,也就是需要使用更加复杂的网络。
按照这个思路,我们可以考虑在输入层和输出层之间添加一层神经元,将其称之为隐藏层(Hidden Layer,又称“隐含层”或“隐层”)。
神经网络模型
- 虽然多层感知机模型较M-P神经元而言已经有了很大进步,但这一类模型仍然无法很好地解决比较复杂的非线性问题。因此,在多层感知机模型的基础上,还研究出了如图所示的神经网络模型。
- 神经网络模型具有如下特点:
- 由输入层、隐藏层和输出层组成,根据问题的需要,结构中可能含有更多隐藏层;
- 每层神经元与下一层神经元两两之间建立连接;
- 神经元之间不存在同层连接,也不存在跨层连接;
- 输入层仅仅起到接收输入的作用,不进行函数处理;
- 而隐藏层与输出层的神经元都具有激活函数,是功能神经元。上图所示为具备单个隐藏层的神经网络。
此外,针对以上的第1条中,对于神经网络模型,当隐藏层如下图中所示大于等于两层时,就称之为深度神经网络(Deep Neural Network,DNN)
深度神经网络的训练过程:
内容有点深,脑细胞不够, 改天补充。 参考文章,像大佬致敬: