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

揭穿机器学习“皇帝的新装”_0

时间:2023-03-22 12:07:26 科技观察

揭穿机器学习的“皇帝新衣”听上去很难,但实际上,机器学习的核心简单得令人尴尬。本文将通过一个酒好不好吃的例子,让你快速了解机器学习的整个技术流程。数据假设我们品尝了50种葡萄酒,为了便于展示,我将以下数据可视化。每种酒的数据包括年份、分数和我们要学习的特征:Y表示好,N表示坏。上图左侧是表格模式,用图片展示信息的方式更加友好。如果您想使用数据集术语(例如要素和实例)来描述此数据,请参考以下指南。算法通过选择使用哪种机器学习算法,我们可以获得我们想要的输出。在这个问题中,算法的全部工作是将上图中的红色部分与蓝色部分分开。机器学习算法的目的是选择数据中最合理的地方来设置边界。如果你想画一条线,恭喜你!您刚刚发明了一种称为感知器的机器学习算法。是的,这样一个科幻的名字描述的是一个很简单的概念!随着你了解的越来越多,你会发现被机器学习中的术语吓倒是很常见的,但它们的内涵通常名不副实。的复杂性。如果是你,你会如何区分蓝色和红色?您可能会说一条直线就足够了。但我们的目标是将Y与N分开,而不是装饰地平线。机器学习算法的目的是选择最合理的位置来设置边界,边界由据点到达的位置决定。但是它是怎么做到的呢?通常,通过优化目标函数。优化如果您打算优化自己的博客文章,请这样想:目标函数就像棋盘游戏的计分规则,优化它就是弄清楚如何玩它,这样您就可以玩得更好并获得最佳效果得分可能。目标函数(损失函数)就像棋盘游戏的积分系统。在机器学习传统中,我们更喜欢大棒而不是胡萝卜——分数是对错误的惩罚(在分界线的错误一侧标记),游戏是尽可能少地获得错误分数。这就是为什么ML中的目标函数通常被称为“损失函数”,即目标是最小化损失。现在我们可以回到最初的问题,将您的手指水平指向屏幕并继续绘制直线,直到您得到零结果(即没有一点可以逃脱您强大、愤怒的手指画出的线)。希望您找到的解决方案是这样的:希望您足够聪明,能够意识到在上面的三个解决方案中,最右边的那个是最好的。如果你喜欢多样性,你就会喜欢算法。因为他们太多了,而且他们之间的区别往往在于他们如何试图在不同的地方划分界限。在优化问题中,以小增量旋转边界显然是不可靠的。有更好的方法可以更快地到达最佳位置。一些研究人员毕生致力于弄清楚如何以最少的偏移获得最佳边界位置,无论数据域看起来多么不正常(由您的输入决定)。另一个变化来源是边界的形状。事实证明,边界不一定是直的。不同的算法使用不同的界限。我们在选择这些各式各样的名字的时候,只是选择标签之间所画边界的形状,也就是在选择的时候是要用对角线、多条横竖线还是灵活的短波浪线来分隔它们?时髦算法如今,没有数据科学家再使用简单的直线。灵活的形状在当今大多数人中很流行(你可能知道,例如,神经网络——虽然它们没有很多神经元,但它们的名字在半个多世纪前就已被命名,而且似乎没有人喜欢我的建议——那是,我们将它们重命名为“瑜伽网络”或“多层数学运算”)。如果你一直期待一个神奇的算法,那么你会早点失望,早点醒来。当这些科幻迷信的兴奋消退时,您将重生并决心做一些很酷的事情。机器学习本身可能并不起眼,但你可以用它做的事情却是惊天动地的。它可以让你写出你根本无法想象的程序代码,可以让你把那些难以启齿的过程自动化。不要不喜欢机器学习的简单性。杠杆也很简单,却可以撬动整个世界。除了这种与其他线性算法和智能神经网络的营销比较,值得我们关注的是这些算法的灵活性和可扩展性。虽然其他算法在处理数据拉伸和转换时没有那么聪明,但是世界上没有免费的午餐,而且神经网络的使用也是昂贵的(下文会详细介绍),所以不要相信那些声称神经网络的人网络永远是完美的程序人。神经网络也可以称为瑜伽网络。这些奇怪的算法名称只是告诉你将把什么形状的分界线放入你的数据集中。如果你是一个致力于将机器学习投入到实际应用中的学习者,那么即使你记不住这些术语也没关系。在实践中,您只需通过尽可能多的算法尝试您的数据,然后迭代那些看起来最有希望的算法。证明巧克力布丁的最好方法就是吃它,所以我们开始吧。即使您仔细研究了材料,您也不能只是碰巧第一次就把算法弄对了。别担心,这不是标准答案的比赛。甚至抱着玩的心态,敲敲敲打,多多琢磨。机器学习布丁的证明隐藏在理解它的过程中——这个算法是否适合新数据?你不必担心算法是如何工作的,把这个问题留给专门设计新算法的研究人员(你最终会越来越熟悉这些术语,就像你会记住坏肥皂中的角色一样歌剧,随着时间的推移,你会记住所有这些尴尬的术语)一旦模型建立了分界线,算法就结束了。而你从算法中得到的正是你一直想要的:模型。所谓模型只是“计算机食谱”的一个很酷的名字,其实就是计算机用来将数据转化为决策的指令。当我再次显示一瓶新酒时,如果数据落在蓝色区域,则命名为蓝色。落在红色区域?然后将其命名为红色。贴标签一旦您将新鲜模型投入使用,将酒的年份和评级分数输入计算机后,您的系统将查找对应区域的酒瓶数据并输出一个标签。当我有四瓶新酒时,只需将输入的数据与菜单上的红蓝区域匹配,插入标签,看,就是这么简单!那我们怎么知道这个算法是否可行呢?我们可以通过检查输出来判断,比如测试一群在键盘上打字的猴子是否在写莎士比亚。吃布丁证明布丁用大量新数据测试你的系统,以确保你的系统在这些数据上运行良好。其实不管你是面对一个算法,还是程序员拿着电脑菜谱找你,你都应该用大量的数据去测试。这是对我的另一篇文章的一个非常形象的总结:Poet-likeMachineLearning来组织纸上的单词,这种方法决定了最终诗歌的形式(边界形状),例如这首诗是日本俳句还是日本俳句十四行诗。一旦十四行诗的骨架用文字充实起来,它就变成了一首诗(模型)。至于为什么诗歌变成了电脑食谱,饶了我吧——我不知道,但我欢迎其他建议。无论如何,类比的其余部分是有道理的。机器学习模型VS传统编程代码必须指出的是,机器学习的这个秘方与程序员专注于问题并手动键入的代码并没有太大区别。忘记关于拟人化机器学习的幻想;机器学习模型在概念上与常规代码没有区别。是的,程序员带着主观意见和脑子里的咖啡因手写的菜谱代码不要到处喊“再训练”——这个术语只是指在添加新的数据样本后需要再次运行算法来调整模型边界那是全部。但是这个术语让机器学习听起来像一个活物,就好像它与那些标准的程序员产品有着天生的区别。事实上,程序员也可以坐下来,根据新的信息手动调整代码。先进的机器学习系统可以加快更新迭代速度,所以把时间花在测试系统上,或者你也可以运行一个睡眠程序让自己好好休息一下。这就是机器学习的意义所在吗?差不多,机器学习的核心部分是安装各种包并消除你庞大的、多毛的数据怪物,这样挑剔的算法就可以在你的数据集上运行。然后是永无止境的代码设置调整(不要让听起来花哨的名字“超参数调整”吓跑你)直到你高兴:OK!一个模型就做好了!但是一旦你的模型在新数据上工作如果集合中的性能不好,你必须回到绘图板并一次又一次地调试,直到云层清晰,你的计划终于准备就绪。这就是为什么你雇用对失败有高度容忍度的人如果你一直期待神奇的算法,你失望得越早,你醒得越早,当这些科幻迷恋的兴奋消逝时,我们将成为A新生的信念是做一些很酷的事情。机器学习本身可能并不起眼,但你可以用它做的事情是惊天动地的。它可以让你写出你根本无法想象的程序代码,可以让你把那些难以启齿的过程自动化。不要不喜欢机器学习的简单性。杠杆也很简单,却可以撬动整个世界。相关报道:https://hackernoon.com/machine-learning-is-the-emperor-wearing-clothes-59933d12a3cc)》]点此查看本作者更多好文