首页 > 编程知识 正文

人工神经网络优化算法,人工神经网络算法实例

时间:2023-05-04 02:22:32 阅读:18396 作者:2190

探测器算法的意义1 .回顾2 .探测器算法的意义2.1机器学习算法框架的建议2.2框架的介绍2.3探测器算法的优势3 .最后的参考资料

1 .回顾

前文论述了Rosenblatt在1957年提出的感知器算法,证明了算法在线性可分离条件下的收敛性。 感知器算法的本质是在训练数据集的线性可分离条件下,寻找分类的超平面。 这与我们学习的支持向量机所做的差不多,因为支持向量机根据所有训练数据来寻找最大化间隔的超平面,而感知子算法则比较随意地寻找分为两类的超平面。 因此,在很多情况下,支持向量机分割的分类方面往往要稍优于感知器算法。

2 .概念提升算法的含义以下是对同一训练数据集分别应用概念提升算法和支持向量机算法得到的分类面,支持向量机得到的分类面比概念提升算法更直观

图1传感器算法得到的分类面

图2支持向量机得到的超平面上的结果一点也不奇怪。 因为感知子算法是1957年发明的,但支持向量机在1995年左右逐渐得到认可,两者之间相差将近40年。 它们在理论深度和实际性能上有差异是很正常的。 由于探测器算法性能不够完善,我们目前已不再使用探测器算法,但在机器学习这一领域的发展过程中具有重要的历史意义。 这个意义在探测器算法中首先提出了机器学习算法的框架。

2.1机器学习算法框架的提出假设一个系统的输入是X X X,输出是Y Y Y,现在是一系列训练数据集(X i,y i ) ) X_i,y_i ) ) X i,y i ),I=这里,f f f的形状是我们人为指定的, 是求出的变量。 机器学习的过程使用数据集训练数据集(X i,y i ) ) X_i,y_i ) ) X i,y i )求出 。 如果求出 ,则对于任意检体,我们能够直接通过f(x )

, θ ) f(X,θ) f(X,θ)计算输出 Y Y Y,从而完成对测试样本输出的预测。

图3 某个系统

对比一下前面所讲,我们可以得出,在感知器算法中,待估计参数 θ = ( W , b ) θ=(W,b) θ=(W,b),而 f ( X , θ ) = s g n ( W T X + b ) f(X,θ)=sgn(W^TX+b) f(X,θ)=sgn(WTX+b)。

假设 X X X 是 M M M维度的特征向量,那么待估计参数 θ θ θ的维度 将会是 M + 1 M+1 M+1维,即我们将要估计 M + 1 M+1 M+1个参数。

Rosenblatt是第一个提出这套机器学习算法框架的人,这个框架包含了所有的分与回归的问题,也包含强化学习、无监督学习等机器学习的其他领域的问题,这是一个相当广泛的算法框架。

2.2 框架的介绍

下面介绍对此框架的直观感受与认识。首先训练数据的复杂度应该与预测函数 f f f的复杂度相匹配。这里有3张图,在第一张图中,训练数据的分布相对复杂,但 f f f是一个简单地线性函数,那么无论算出的 θ θ θ等于多少都不可能全面的模拟训练数据的分布,我们把训练数据比预测函数更复杂的情况叫作模型欠拟合(underfit)。第二张图中,训练数据和预测函数的复杂度相适应的情况,这时模型的预测能力是比较好的。在第三张图中,训练数据的复杂度低于预测函数的复杂度,其结果将会是预测函数能相当精确地拟合训练数据,但是在没有训练数据的区域,预测函数也会“人为的”制造出复杂的函数值的分布。之所以说是 “人为的” ,是因为这种复杂的分布是由 预测函数 f f f 的具体形式决定的,而 f f f的具体形式是设计算法的人人为指定的,它并不反映数据在空间分布的真实情况。我们把预测函数复杂度高于训练数据复杂度的情况叫作过拟合(overfit)。在过拟合的情况下,会出现预测函数在训练数据上预测得非常精确,但在测试数据上却预测得很糟糕的局面。

一般来说,现实生活中,机器学习问题训练数据的分布是非常复杂的。因此,我们要设计复杂的 预测函数 f f f 使它与训练数据的复杂程度相适应。在复杂的预测函数中,待求 变量 θ θ θ 的维度也会非常高,举一个目前机器学习的例子:


这是2014年Facebook公司做人脸识别的分类器,由于人脸识别是一个复杂的任务,训练数据的分布极其复杂。为了描述这种分布,Facebook公司用了400多万张标注好的人脸数据进行训练,识别算法是一个深度学习的网络模型。深度学习也是我们人为指定的一种 预测函数 f f f 的形式,在这个预测函数 f f f的形式中,待求变量 θ θ θ的维度是1800多万维,也就是说我们要通过400多万张人脸图片去求出 θ θ θ的1800多万个分量。目前机器学习的任务和解决任务的方法复杂到了这样的程度,但是Rosenblatt
提出的这套算法框架仍然适用。

2.3 感知器算法的优势

我们继续看一下感知器算法(Perceptron Algorithm)
(1)随机选择W和b。
(2)取一个训练样本(X,y)
  (i) 若 W T X + b > 0 W^TX+b>0 WTX+b>0且 y = − 1 y=-1 y=−1,则:
   w = W − X , b = b − 1 w=W-X,b=b-1 w=W−X,b=b−1
  (ii) 若 W T X + b < 0 W^TX+b<0 WTX+b<0且 y = + 1 y=+1 y=+1,则:
   w = W + X , b = b + 1 w=W+X,b=b+1 w=W+X,b=b+1
(3)再取另一个(X,y) ,回到(2)
(4)终止条件:直到所有输入输出对都不满足(2)中(i)和(ii)之一,退出循环。

从这个算法流程中,相比支持向量机它有什么优势呢?

感知器算法的一个优势在于它消耗的计算资源和内存资源非常少,请看在上面感知器算法中,我们只需要储存W和b,然后针对每次输入的训练样本X,不断地调整W和b的值,调整的函数也是非常简单的加减法。而支持向量机中却是把所有的训练数据都输入进计算机,让计算机解一个全局优化的问题,其计算量与存储量的消耗与感知器算法不可同日而语。

目前的机器学习领域,由于训练数据非常多,这种每次只送一小部分数据去训练,然后不断循环的算法越来越受到大家的欢迎。而像支持向量机这种针对所有数据进行全局优化的算法反而不占优势了。感知器算法是这类算法的先驱,具有重要的历史地位。

3. 结尾

在这一讲中,我们分别从机器学习算法框架方面以及感知器算法自身特点的方面,论述了感知器算法的重要意义。在预测函数与训练数据复杂度匹配性方面作了初步的探讨,提出了欠拟合(underfit)、过拟合(overfit)两个重要的概念。

最后,有两道思考题:
(1)请举出实际生活中,非机器学习领域的欠拟合和过拟合的例子。
(2)在训练机器学习模型的过程中,如何检测欠拟合和过拟合呢?如果发生了欠拟合和过拟合,应该采取什么样的措施去纠正其产生的负面影响?

参考资料 浙江大学《机器学习》课程—义气的唇膏老师主讲

如果文章对你有帮助,请记得点赞与关注,谢谢!

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。