机器学习的算法和普通《算法导论》里的算法有什么本质上的异同

机器学习的算法和普通《算法导论》里的算法有什么本质上的异同?

本人非计算机专业出身,对这些方向感兴趣,所以有此一问。曾经问过一些人,说是机器学习全是数学,是用数学的方式试图去描述和理解我们的世界,而《算法导论》里的这些算法主要是如何用计算机的思维去处理一些实际的问题。我似懂非懂,还是没能抓住最根源上的东西。希望能有一些专业的,通俗的回答,谢谢了


区别不大。算法的目的都是一样的:定一个目标,加一些约束,求一个比较好的结果
  • 相同点:算法是用来求解优化模型,《算法导论》和机器学习在这一点上是一回事
  • 区别《算法导论》里几乎都是组合优化而机器学习里主要是连续的问题,凸优化较多,也有很多非凸优化。机器学习算法自然大都是梯度下降、坐标下降、蒙特卡洛 这样的算法,与《算法导论》里的算法长得很不像。
  • 是机器学习里也有组合优化,比如聚类、比如概率图模型。在这一点上,跟算法导论区别不大。


为什么《算法导论》里大多是组合优化?我拿排序问题举个栗子。
  • 排序问题就是个组合优化。给定n个实数,要求按降序排列。
  • 目标函数:常数(没有目标函数)
  • 可行域是n维空间一个子集,集合的元素都是向量a,满足:a_1 \geq a_2 \geq \cdots \geq a_n.
  • 为了求解这样一个组合优化模型,可以有很多算法,比如快排、堆排、冒泡。

如果你能理解排序是个组合优化问题,你肯定能理解 网络流、最短路 等等问题都是组合优化。


拿机器学习里常用的最小二乘回归对比一下。
  • 最小二乘是个凸优化问题。
  • 目标函数:||X \beta - y ||_2^2
  • 可行域:整个空间
  • 为了求解这个凸优化模型,可以用梯度下降、共轭梯度、坐标下降等算法。
  • 你也可以用概率模型描述这个问题:y是\beta的线性函数 + 高斯噪声。然后可以用蒙特卡洛算法来求\beta


机器学习里也有组合优化,比如k-means。
  • k-means要求把集合{1, ..., n}划分成k个子集,使得对应的向量离cluster中心的平均距离最短。
  • k-means有具体的组合优化模型,我不写了。对应的组合优化模型被证明是NP hard。
  • 有很多近似算法求解k-means,最常用的是Lloyd Algorithm。

==========

注意,method和algorithm是两个东西。例如,
  • k-means是method,有几种优化问题model,有很多求解的algorithms。你们最常用的那种迭代算法是Lloyd Algorithm。
  • LDA是method也是model(这种method就一种model),这个model的求解是个NP Hard的问题(我记得Arora文章里证明过)。有很多种算法求解LDA,比如variational inference、MCMC、tensor decomposition。
  • word2vec是method,用来解决NLP的一些问题;有很多models,比如skip-gram、深度学习;每种model都有很多算法求解。

把method和algorithm混为一谈是典型的“野路子”从业人员的特征。比如,很多人喜欢把Lloyd算法称为kmeans。

经提醒,method和model有区别,但是界限不明,很多时候可以混用。但是algorithm和method绝对不能混用。



五大常用算法之一:分治算法


http://www.cnblogs.com/steven_oyj/archive/2010/05/22/1741370.html

五大常用算法之二:动态规划算法


http://www.cnblogs.com/steven_oyj/archive/2010/05/22/1741374.html

五大常用算法之三:贪心算法



http://www.cnblogs.com/steven_oyj/archive/2010/05/22/1741375.html

http://blog.csdn.net/qq_32400847/article/details/51336300

https://baike.baidu.com/item/%E8%B4%AA%E5%BF%83%E7%AE%97%E6%B3%95/5411800?fr=aladdin



五大常用算法之四:回溯法

http://www.cnblogs.com/steven_oyj/archive/2010/05/22/1741376.html

五大常用算法之五:分支限界法

http://www.cnblogs.com/steven_oyj/archive/2010/05/22/1741378.html




  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
机器学习算法项目机器学习算法项目机器学习算法项目机器学习算法项目机器学习算法项目机器学习算法项目机器学习算法项目机器学习算法项目机器学习算法项目机器学习算法项目机器学习算法项目机器学习算法项目机器学习算法项目机器学习算法项目机器学习算法项目机器学习算法项目机器学习算法项目机器学习算法项目机器学习算法项目机器学习算法项目机器学习算法项目机器学习算法项目机器学习算法项目机器学习算法项目机器学习算法项目机器学习算法项目机器学习算法项目机器学习算法项目机器学习算法项目机器学习算法项目机器学习算法项目机器学习算法项目机器学习算法项目机器学习算法项目机器学习算法项目机器学习算法项目机器学习算法项目机器学习算法项目机器学习算法项目机器学习算法项目机器学习算法项目机器学习算法项目机器学习算法项目机器学习算法项目机器学习算法项目机器学习算法项目机器学习算法项目机器学习算法项目机器学习算法项目机器学习算法项目机器学习算法项目机器学习算法项目机器学习算法项目机器学习算法项目机器学习算法项目机器学习算法项目机器学习算法项目机器学习算法项目机器学习算法项目机器学习算法项目机器学习算法项目机器学习算法项目机器学习

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值