前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >机器学习中的问题解决方案:解析解vs数值解

机器学习中的问题解决方案:解析解vs数值解

作者头像
AiTechYun
发布2018-07-27 10:47:24
4990
发布2018-07-27 10:47:24
举报
文章被收录于专栏:ATYUN订阅号ATYUN订阅号

AiTechYun

编辑:chux

你有没有如下这些疑问:

  • 什么数据最适合我的问题?
  • 什么算法最适合我的数据?
  • 如何实现算法的最优配置?

这篇文章会让你了解为什么没人能告诉你要使用什么算法,或如何为特定的数据集配置算法。另外,找到好的数据、算法、配置实际上是应用机器学习的难点,也是你需要集中解决的部分。

下面让我们开始吧。

解析解vs数值解(Analytical vs Numerical Solutions)

数学运算中,许多问题可以靠解析解和数值解来解决。解析解包括用一种易于理解的形式来描述问题,并计算出精确解。数值解意味着在解法中进行猜测,并测试问题,直到得到足够好的解法。比如平方根就可以用这两种方法的任意一种解决。

我们一般更喜欢解析解,因为它速度更快,而且解法精确。然而,由于时间或硬件容量的限制,有时我们必须采用数值解。举一个很好的例子,在寻找一个线性回归方程的系数时可以进行解析解计算(例如使用线性代数),但如果为了执行解析计算,就无法对应单一电脑内存中的所有数据,这时就可以用数值解(例如使用梯度下降法)。有时,解析解是未知的,我们所能用的就是数值解。

解析解

许多问题都有定义明确的解决方案,一旦问题被定义,解决方案就很明显了。我们可以遵循一套逻辑步骤来计算精确的结果。例如,给定一个特定的算法任务,例如加法或减法,你知道应该用什么运算方法。在线性代数中,将矩阵进行因式分解有一系列方法,具体取决于矩阵的性质,是正方形还是矩形,是否包含实数或虚数等等。

我们可以将这个问题扩展到软件工程上,其中有一些问题会反复出现,不管你的应用特性如何,都可以用已知的有效模式来解决。例如,在游客模式中,对列表中的每一个项目执行操作。

应用机器学习中存在的一些问题定义明确,并附有解析解。例如,无论整数值的数量多少,将分类变量转化为热码编码的方法不仅简单,而且几乎都是用相同的方法。不过在机器学习中,我们关心的大多数问题都没有解析解。

数值解

有很多我们感兴趣的问题都没有精确解。或者说至少我们还没有找到解析解。我们必须对解法进行猜测,并测试这种解法有多合适。这涉及到设计问题,并在候选的解法中进行试误。从本质上说,找到数值解的过程相当于进行搜索。

这种解法有一些有趣的特性:

  • 我们很容易从不合适的解法中分辨出好的解法;
  • 我们经常不客观地觉得自己知道好的解法是什么,并且只能在测试过的候选解法之间比较它们的优点;
  • 我们通常对近似解法或自认为足够好的解法感到满意,而不是真正得到了唯一那个最佳解法。

最后一点是关键,因为我们试图用数值解来解决的问题通常是具有挑战性的(我们没有简单的方法来解决它们),而任何自认为不错的解法都不实用。对于给定的问题有许多解法,甚至其中许多解决方案很合适,可以使用。但在应用机器学习中,我们感兴趣的大多数问题都需要数值解法。还有比这更糟的情况:在此过程中,每个子问题的数值解可能会影响到后续子问题的解法空间。

机器学习中的数值解

应用机器学习是一门与数值有关的学科。给定的机器学习模型的本质是优化,它实际上是在寻找一组带有未知值的项来填充一个等式。每个算法都有不同的方程式和术语,它们可以自由使用这个术语。为了对给定的术语进行预测,这个方程式式很容易计算,但是利用给定的数据,我们并不知道用哪些术语能够得到“好的”甚至“最好的”预测。

这是我们一直想要解决的数值优化问题。它是数值的,因为我们试图用观察到的极限样本来解决优化问题,而这些样本冗杂、不完整并且容易出错。该模型尝试解释数据,并在观察结果的输入和输出之间创建映射。

机器学习中广泛的经验主义解法

机器学习算法的核心——数值优化问题,是嵌套在更广泛的问题内的。具体的优化问题受许多因素的影响,所有因素都为最终解决方案的精华部分做出了巨大贡献,而且这里面不包含解析解。

例如:

  • 用什么数据;
  • 用多少数据;
  • 在建模前如何处理数据;
  • 用什么建模算法;
  • 如何配置算法;
  • 如何评估机器学习算法

客观来说,以上这些是你会在预测模型时遇到的机器学习的问题。没有解析解,所以你只能探索哪种元素组合起来最适用于你的特定问题。这其实相当于重要的搜索问题,这些组合都要被测试和评估。在这样的问题中,你需要知道相对于你已经尝试过的其他候选方案,好的得分应是多少。而且除了试误,或是借鉴其他已得到合适解法的相关问题之外,没有其他的路可走。

这种应用机器学习的经验主义方法通常被称为“搜索式机器学习(machine learning as search)”,并在A Gentle Introduction to Applied Machine Learning as a Search Problem和Why Applied Machine Learning Is Hard两篇论文中有进一步阐述。

回答你的问题

让我们回到你的疑问上来,就是那些关于用什么数据、算法或配置会完美解决你的特定预测建模问题。没人会看你的数据或你描述的问题,然后告诉你怎样解决最好,甚至连差不多的方法都不会提供。

专家们可能会根据经验来进行研究,其中一些前期猜想可能会得到验证,但通常来说都会被否定,毕竟它们太过复杂或干脆就是错误的。

为了找到足够合适的解法,预测建模问题是非常有必要的,这也是作为机器学习从业者应该做的。这样的工作对于应用机器学习来说很困难,但必须一直练习并达到擅长的程度,才能在这一领域中胜任。

总结

在这篇文中,你也许已经明白了解析解和数值解的区别,以及应用机器学习的经验主义属性。

另外你应该也理解了:

  • 解析解是产生精确解的逻辑步骤;
  • 数值解是一种较慢的试误过程,可以得到近似解;
  • 数值解是应用机器学习的核心,用调整过的思维模式来为特定的预测建模问题选择数据、算法和配置。
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-04-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 ATYUN订阅号 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档