机器学习的三种方法

机器学习的三种⽅法
⽬录
介绍
在机器学习中,很多时候,任务是尝试创建⼀种能够根据⼀些输⼊数据给出特定结论的算法,并且该结论应基于⼀些较早收集的数据。此类任务的⼀个简单⽰例可能是到学⽣学习考试所需的最少精⼒。例如,如果我们有7位学⽣的数据:学习时间和考试成功率(⼀个流⾏的例⼦:-)
计算机程序应该计算出最短的学习时间来通过考试。
好。那只是⼀个例⼦。我不想打扰这些简单的事情(⽆论如何:解决⽅案应该在6.9⼩时左右)。
我认为,对于此类任务,有三种可能很有趣的重要算法:
1、逻辑回归
2、反向传播
3、⽀持向量机
第四个是以上两个中的中和。
维多利亚时代4、梯度下降
四种算法都具有相同的功能:回答上述问题。但是他们这样做的⽅式是不同的,他们可以提供的答案也不同。⼀些⽐较⾮常有趣。
应⽤它们的过程都是相同的:使⽤具有⼀些输⼊特征x1,x2,x3等的现有数据集,以及稍后应猜测的属性y,并训练软件来识别输⼊特征并猜测属性正确。培训是针对所有⼈进⾏的迭代过程。
我实现了这三种算法,并使⽤它们处理了鸢尾花(Iris)数据集以进⾏⽐较。
鸢尾花(Iris)数据集
鸢尾花(Iris)数据集是处理此类问题的流⾏数据集。这是⼀个⾮常不错的数据集,包含150个鸢尾花的
特征数据:它的花的⼤⼩。
它在⼀⾏中包含以下信息:
1. 萼⽚长度(厘⽶)
绿体育2. 萼⽚宽度(厘⽶)
3. 花瓣长度(厘⽶)
4. 花瓣宽度(厘⽶)
5. 类:
1. Iris Setosa
2. Iris Versicolour
3. Iris Virginica
这个想法是根据花朵的⼤⼩来猜测正确的花朵类别。
对于每种算法,我都实现了训练应⽤程序和测试应⽤程序。我将150个样本分成135个样本进⾏训练,将每朵花中的5个样本进⾏测试。我知道,仅15个⽤于测试的样本并不过分。但是我认为这⾜以理解:-)
但⾸先,对算法进⾏⼀⼩段介绍:
梯度下降
梯度下降是⼀种算法,它试图近似⼀个函数,例如:
到给定的⼀组数据样本(x1,x2,x3…,y)上。根据所需的输出,近似函数可以是线性或多项式,也可以是可微函数。通过这种近似,它可以猜测属性y未知的另⼀个数据样本(x1,x2,x3…,?)的属性y。它以这种形式主要⽤于猜测实际值作为数据样本的属性。例如,如果我们有⼀些酒的特征数据,例如酒精含量,糖含量,酸度……并且该属性的质量等级介于1到10之间,则可以使⽤梯度下降算法来解决。
逼近函数f(x)应该与属性y尽可能匹配。因此,可以通过计算所有训练样本的偏差来使f(x)与属性相关,例如:
该偏差通常称为优化成本,它是对近似质量的验证。它越⼩,近似值越好。该成本应最⼩化,这可以通过梯度下降算法来完成。因此,建⽴了成本函数的梯度,并且从⼀个随机点开始,只要该梯度不为0,算法就会沿该梯度递减。移动是通过相对较⼩的步长来完成的:即所谓的学习率。这个学习率对收敛⾏为的影响很⼤。如果太⼤,算法将开始振荡,并且永远不到最⼩值。如果它太⼩,该算法将⼊睡并且永远不会达到最⼩值。通常,它应该更⼩,必须处理更多的数据样本。
(有关梯度下降算法的详细说明,请参见。)
逻辑回归
逻辑回归是⼀种基于梯度下降(Gradient Descend)算法的算法,但其⽬的是逼近具有数字输出0或1的函数。其输出是概率。与梯度下降(Gradient Descend)相似,它尝试近似⼀个函数,例如:
但是,此函数被输⼊到所谓的触发函数中,该函数通常是Sigmoid函数。
该g(x)⽤于优化,并且应尽可能匹配属性y(值0或1)。现在,通过计算所有训练样本的偏差来使g(x)与属性相关,例如:
对于较⼤的负输⼊值,S形函数为0,对于较⼤的正输⼊值,S形函数为1。
sigmoid函数的形状
它将近似值的输出转换为介于0和1之间的概率,对于y = 0,该概率⼩于0.5;对于y = 1,该概率⼤于0.5。逻辑(Logistic)回归⽤于猜测数字属性(请参见以获得详细说明)。
使⽤逻辑回归处理鸢尾花(Iris)数据集
要使⽤逻辑回归处理鸢尾花(Iris)数据集,⾸先必须将任务分为三个部分:
该算法应⾸先检查数据样本是否属于Iris Versicolor类。如果不是,则应检查样品是否属于Iris Setosa,如果不是,则应最终检查是否属于Iris Virginica。看起来像:
这意味着我们必须训练3个设置并获得3个参数集,这些参数集可以轻松地从训练应⽤程序复制到测试应⽤程序中。好的,可以跳过最后⼀步,但是我认为这是⼀个不错的⽹络。:-)
需要注意的重要⼀点:最后⼀个结的输出为“No Iris Virginica”。这些数据永远不会激活。该算法只能区分训练有素的类别,并且由于不包括三个花中没有⼀个的类别,因此该算法永远不会将样本分类为这三个类别中的⼀个。说出你的故事2011
我们⾸先必须确定要使⽤的近似函数。由于花朵的测量仅在特定范围内适合⼀个特定的花朵类别,因此对于每个特征,近似函数应为⼆阶多项式,例如:
为了进⾏培训,我准备了三个数据集。⼀个⽤于第⼀个类,⼀个⽤于第⼆个类,最后⼀个类。
自钻锚杆有了这些,我得到了以下参数:
Iris Versicolor
132772次迭代后的成本为0.0166。
Iris Setosa
5148次迭代后的成本为0.00046
Iris Virginica
8653次迭代后的成本为0.0116
通过在测试应⽤程序中实现这些参数,可以以91%的平均概率识别出全部15个测试数据样本都是正确的,并且每次训练结果的成本都相对较⼩,⾮常酷。
反向传播
逻辑回归处理具有⼀个线性或多项式函数和⼀个触发函数的近似函数。反向传播处理由多个触发函数及其输⼊函数组成的复杂函数⽹,通常是前⼀层所有结的总和乘以⼀个线性因⼦:神经⽹络。该⽹络包含多个层:输⼊层采⽤⼀个数据样本的特征,⼀个或多个隐藏层包含逼近函数(包括触发器),输出层将结果传输到外部世界。这样就形成了多个结的⽹,通常,从⼀个层的每个结到下⼀层的每个结都有⼀个连接,每个连接都象征着每个结的后续结的输⼊函数,除了输⼊结,
具有2个隐藏层的神经⽹络
反向传播主要⽤于通过数字输出近似更复杂的功能。对于每个数据样本,它⾸先在⽹络中从左到右运⾏,并计算⼀个样本的输出值。然后,它从右到左运⾏,并根据其输出的偏差为该样本计算⽹络中参数的校正。这两个过程称为正向传播和反向传播,它们是针对每个数据样本执⾏的,并且在这样的循环结束时,通过所有这些校正的平均值来校正参数,并重复循环直到达到最⼩偏差为⽌。
希克
(有关该算法的详细说明,请参见。)
使⽤反向传播处理鸢尾花(Iris)数据集
为了处理鸢尾花(Iris)数据集,我建⽴了如下神经⽹络:
具有四个输⼊,⼀个隐藏层和两个输出,它们以⼆进制形式给出花朵类别的编号,例如:
Iris-setosa => output 1 = 0 ; output 2 = 0
聚乙二醇醚
Iris-versicolor => output 1 = 1 ; output 2 = 0
Iris-virginica => output 1 = 1 ; output 2 = 1
基本上,仅使⽤⼀个输出并训练3种不同的设置是可能的。但是,使⽤更多的输出,反向传播算法效果更好。
使⽤此设置,我可以⼀次处理整个数据集。我只需要为培训设置两个输出即可。
使⽤此设置,反向传播算法将计算值:
与:
在固定的60000次迭代后,成本= 0.0145854。
我在测试应⽤程序中对它们进⾏了硬编码,所有15个测试样本均被识别为正确的,平均概率为98%。这⽐逻辑回归算法要好得多。⽀持向量机
⽀持向量机不同于上述算法。它不是近似函数,⽽是对数据进⾏分类。在⼀个⾮常简单的⽰例:如果有包含功能x1,x2和所述属
性y为1且为-1的数据集,⽀持向量机尝试在y = 1的数据样本和y = -1的数据样本之间画⼀条线,如下所⽰:
在此样本图像上,红⾊点是y = -1的点,蓝⾊点是y = -1的点。⿊线是分隔线。此外,还有两条灰⾊边距线。这3条线的放置⽅式应使边界线之间没有点,并且边界线之间的距离应尽可能⼤(向量uv的长度)。好的,这是⼀个⾮常简单且不常见的⽰例。但是⽀持向量机算法能够解决更多复杂的任务。在多维情况下,它不是在样本之间放置⼀条直线⽽是⼀条超平⾯。
原则上,⽀持向量机计算向量W和每个数据样本产⽣的偏移b:
常数b将属性y乘以W和x的点积,其中x是所有输⼊要素的向量。

本文发布于:2024-09-22 09:42:10,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/570031.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:数据   样本   算法   函数   属性   输出
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议