您的位置:首页 > 其它

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

2017-11-10 20:57 295 查看


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

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

SS Wang

machine learning

182 人赞同了该回答

区别不大。算法的目的都是一样的:定一个目标,加一些约束,求一个比较好的结果

相同点:算法是用来求解优化模型,《算法导论》和机器学习在这一点上是一回事

区别《算法导论》里几乎都是组合优化而机器学习里主要是连续的问题,凸优化较多,也有很多非凸优化。机器学习算法自然大都是梯度下降、坐标下降、蒙特卡洛 这样的算法,与《算法导论》里的算法长得很不像。
是机器学习里也有组合优化,比如聚类、比如概率图模型。在这一点上,跟算法导论区别不大。

为什么《算法导论》里大多是组合优化?我拿排序问题举个栗子。
排序问题就是个组合优化。给定n个实数,要求按降序排列。

目标函数:常数(没有目标函数)
可行域是n维空间一个子集,集合的元素都是向量a,满足:

.
为了求解这样一个组合优化模型,可以有很多算法,比如快排、堆排、冒泡。
如果你能理解排序是个组合优化问题,你肯定能理解 网络流、最短路 等等问题都是组合优化。

拿机器学习里常用的最小二乘回归对比一下。
最小二乘是个凸优化问题。
目标函数:


可行域:整个空间
为了求解这个凸优化模型,可以用梯度下降、共轭梯度、坐标下降等算法。
你也可以用概率模型描述这个问题:y是

的线性函数 + 高斯噪声。然后可以用蒙特卡洛算法来求



机器学习里也有组合优化,比如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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: