当前位置: 首页 > 科技观察

不是码农也能看懂的“机器学习”原理

时间:2023-03-14 14:22:23 科技观察

什么是机器学习?让我们从一个老式的场景开始:有一天你去买芒果,小贩有一车芒果。你一一挑选,称重给小贩,按斤付钱。当然,您的目标是最甜、最熟的芒果,那么您如何选择呢?记得,外婆说过,亮黄色的比淡黄色的甜。你定下一个标准:只摘鲜黄色的芒果。所以按颜色选择,付款,然后回家。啊哈,人生圆满了吗?呵呵。告诉你,生活就是各种烦恼等着你回家品尝芒果。有些真的很甜,有些则不是。呃~显然,奶奶教的金科玉律是不够的,光看颜色是不靠谱的。闭关了半天,你得出一个结论:明黄色的大芒果一定是甜的,小的芒果甜的几率只有一半。所以下一次,你带着这个结论去买芒果,却发现你经常光顾的供应商放假了。嗯,如果你换一家店,原来他们的进货渠道不一样。您的规则不再适用,您必须重新开始。好吧,你已经尝遍了这家店里的每一种芒果,得出的结论是淡黄色的小芒果最甜。还没结束。你的远房表弟又来找你玩了。但她说,芒果甜不甜无所谓,多汁就好。好吧,你得再做一个实验,找出越软的芒果越多汁的规律。然后你又移民了。尝尝这里的芒果,嘿嘿,新世界的大门打开了。青芒果实际上比黄芒果好吃……请问编码人员。现在想象一下,这段旅程充满曲折。你写了一个小组程序来帮助减轻负担。程序逻辑基本上应该是这样的:预设变量颜色,大小,店面,硬度如颜色=亮黄色大小=大店面=常去的小贩芒果=甜如硬度=软芒果=多汁,用起来很爽,你甚至可以把这套送给你弟弟,他摘的芒果会让你满意。但是每做一个新的实验,都要人肉的去改程序逻辑。在编程之前,您必须确保了解芒果采摘艺术的复杂性。如果需求太复杂,芒果的种类太多,那么光是把所有的选择规则都翻译成程序逻辑就够你捏把汗了,相当于读了个“芒果学”的博士学位。不是每个人都有“读博士”的技能。请《机器学习》算法机器学习算法其实是普通算法的进化版本。通过自动学习数据模式让您的程序更智能。你从市场上随机购买一批芒果(训练数据),将每颗芒果的物理属性,如颜色、大小、形状、产地、店面等(特征)列在表格中,对应芒果的甜度和果汁多少,成熟度等(输出变量)。然后将这些数据丢给机器学习算法(分类/回归),它会自动计算出芒果的物理属性与其品质之间的相关模型。下次去购物时,输入店内出售的芒果的物理属性(测试数据),机器学习算法会根据上次计算的模型预测这些芒果的品质。机器使用的算法可能和你人肉写的逻辑规则类似(比如决策树),也可能更高级,但基本上反正你不用管。好了,现在你可以放心买芒果了,颜色大小都是浮云,让机器操心。更好的是,你的算法会逐渐进化(强化学习):根据预测结果的正确性,算法会自己修正模型,所以随着训练数据的积累,它的预测会越来越准确。最奇妙的是,使用相同的算法,您可以制作多个模型,每个模型对应苹果、橙子、香蕉和葡萄。用一句话总结机器学习就是:走你自己的路,让你的算法牛逼。常见机器学习算法的分类与总结1.学习方法根据不同的数据类型,对一个问题进行建模有不同的方法。在机器学习或人工智能领域,人们首先考虑算法是如何学习的。在机器学习领域,有几种主要的学习风格。按照学习方法对算法进行分类是一个好主意,这样人们在建模和算法选择时就可以根据输入的数据选择最合适的算法以获得最好的结果。监督学习:在监督学习下,输入的数据称为“训练数据”,每组训练数据都有明确的标识或结果,如反垃圾邮件系统中的“垃圾邮件”和“非垃圾邮件”,以及“手写数字识别中的1"、"2"、"3"、"4"等。在建立预测模型时,监督学习建立了一个学习过程,将预测结果与“训练数据”的实际结果进行比较,不断调整预测模型,直到模型的预测结果达到预期的准确率。监督学习常见的应用场景是分类问题和回归问题。常见的算法包括逻辑回归和反向传播神经网络。无监督学习:在无监督学习中,数据没有被具体识别,学习模型用于推断数据的一些内在属性。结构。常见的应用场景包括关联规则学习和聚类。常见的算法有Apriori算法和k-Means算法。半监督学习:在这种学习方法中,输入数据的一部分被标记,一部分没有。这种学习模型可以用于预测,但是模型首先需要学习数据的内部结构,才能合理组织数据进行预测。应用场景包括分类和回归,算法包括对常见监督学习算法的一些扩展,这些算法首先尝试对未标记数据建模,然后对标记数据进行预测。如理论推理算法(GraphInference)或拉普拉斯支持向量机(LaplacianSVM.)等。强化学习:在这种学习模式下,输入数据作为对模型的反馈。与监督模型不同,输入数据仅用作检查模型正确或错误的一种方式。在强化学习下,输入数据直接反馈给模型,模型必须立即进行调整。常见的应用场景包括动态系统和机器人控制。常见的算法包括Q-Learning和Temporaldifferencelearning。在企业数据应用的背景下,监督学习和无监督学习模型可能是最常用的。在图像识别等领域,由于存在大量非标记数据和少量可识别数据,半监督学习是目前的热门话题。强化学习在机器人控制和其他需要系统控制的领域得到了更广泛的应用。2.算法相似性根据算法功能和形式的相似性,我们可以对算法进行分类,如基于树的算法、基于神经网络的算法等。当然,机器学习的范围很广,有些算法很难明确地归为一类。对于某些类别,同一类别的算法可以解决不同类型的问题。在这里,我们尝试以最容易理解的方式对常用算法进行分类。回归算法:回归算法是一类算法,它试图使用误差度量来探索变量之间的关系。回归算法是统计机器学习中的强大工具。在机器学习领域,人们谈论回归,有时指的是一类问题,有时指的是一类算法,这常常让初学者感到困惑。常见的回归算法包括:OrdinaryLeastSquare、LogisticRegression、StepwiseRegression、MultivariateAdaptiveRegressionSplines和LocallyScatteredSmoothingEstimation(局部估计散点图平滑)基于实例的算法通常用于对决策问题建模。此类模型往往先选择一批样本数据,然后根据一些近似值将新数据与样本数据进行比较。以这种方式找到最佳匹配。因此,基于实例的算法通常也被称为“赢家通吃”学习或“基于记忆的学习”。常见的算法包括k最近邻(KNN)、学习向量量化(LVQ)和自组织映射(SOM)正则化方法。正则化方法是其他算法(通常是回归算法),根据算法的复杂度调整算法。正则化方法通常奖励简单的模型并惩罚复杂的算法。常见算法包括:岭回归、最小绝对收缩和选择算子(LASSO)和弹性网络。决策树学习决策树算法采用树状结构,根据数据的属性建立决策模型。决策树模型常用于解决分类和回归问题。常用算法包括:分类回归树(CART)、ID3(IterativeDichotomiser3)、C4.5、卡方自动交互检测(CHAID)、DecisionStump、随机森林(RandomForest)、多元自适应回归样条(MARS)梯度提升机(GradientBoostingMachine,GBM)贝叶斯方法贝叶斯方法算法是一类基于贝叶斯定理的算法,主要用于解决分类和回归问题。常见的算法包括:朴素贝叶斯算法、平均单相关估计器(AODE)和贝叶斯信念网络(BBN)。基于内核的算法最著名的基于内核的算法是支持向量机(SVM)。基于内核的算法将输入数据映射到高阶向量空间,在该空间中可以更轻松地解决一些分类或回归问题。常见的基于核的算法包括:支持向量机(SupportVectorMachine,SVM)、径向基函数(RadialBasisFunction,RBF)和线性判别分析(LinearDiscriminateAnalysis,LDA)等聚类算法聚类,就像回归一样,有时人们描述一类问题,有时他们描述一类算法。聚类算法通常以中心点或分层方式合并输入数据。所有的聚类算法都试图找到数据的内部结构,以便根据最大的共性对数据进行分类。常见的聚类算法包括k-Means算法和期望最大化算法(ExpectationMaximization,EM)。Associationrulelearning关联规则学习通过寻找最能解释数据变量之间关系的规则,在大型多元数据集中寻找有用的关联规则。常见的算法有Apriori算法和Eclat算法。人工神经网络算法模拟生物神经网络,是一种模式匹配算法。通常用于解决分类和回归问题。人工神经网络是机器学习的一个庞大分支,有数百种不同的算法。(深度学习是算法之一,我们将单独讨论),重要的人工神经网络算法包括:感知器神经网络、反向传播、霍普菲尔德网络、自组织映射(Self-OrganizingMap,SOM)。LearningVectorQuantization(LVQ)deeplearning深度学习算法是人工神经网络的发展。它在近期赢得了很多关注,尤其是在百度也开始关注深度学习之后,在国内引起了很多关注。如今,随着计算能力变得越来越便宜,深度学习试图构建更大、更复杂的神经网络。许多深度学习算法都是半监督学习算法,旨在处理具有少量未标记数据的大型数据集。常见的深度学习算法包括:RestrictedBoltzmannMachine(RBN)、DeepBeliefNetworks(DBN)、ConvolutionalNetwork、StackedAuto-encoders。降维算法与聚类算法一样,降维算法试图分析数据的内部结构,但降维算法试图以无监督学习的方式使用较少的信息来概括或解释数据。此类算法可用于可视化高维数据或简化监督学习的数据。常用算法包括:主成分分析(PrincipleComponentAnalysis,PCA)、偏最小二乘回归(PartialLeastSquareRegression,PLS)、Sammon映射、多维缩放(Multi-DimensionalScaling,MDS)、投影追踪(ProjectionPursuit)等待。集成算法:集成算法使用一些相对较弱的学习模型,在相同的样本上独立训练,然后综合结果进行整体预测。集成算法的主要难点在于集成哪些独立的、较弱的学习模型,以及如何集成学习结果。这是一类非常强大的算法,同时也非常流行。常见的算法包括:Boosting、BootstrappedAggregation(Bagging)、AdaBoost、StackedGeneralization(Blending)、GradientBoostingMachine(GBM)、随机森林(RandomForest)。