波波老师,能推荐几个面试常考的最优化算法吗?

来源:7-1 什么是PCA

96年的nash

2019-10-26

波波老师,我最近要参加一场面试,面试要求说的熟悉最优化算法和理论基础,请问波波老师什么程度算是熟悉最优化算法,看完您的课程了解基本概念算是熟悉最优化算法基础了嘛?还有波波老师,您能推荐几个面试常考的最优化算法吗?目前只熟悉最小二乘法和梯度下降法

写回答

1回答

liuyubobobo

2019-10-27

这个课程没有专门讲解最优化理论,所以如果面试方特别强调了最优化理论,而不是机器学习的话,这个课程是不够的。这个课程主要集中在机器学习的算法层面,由于定位是入门课程,甚至很多算法内部涉及的优化问题都省略了。


但其实,最优化本身是比较泛的一个概念,在不同的语境中,可能代表不同的算法类别。整体,可以简单分为:


1. 无约束优化算法

梯度下降法就是典型。除此之外,牛顿法也比较基础。其他无约束优化算法。可以在网上搜索“无约束优化算法”了解更多。


2. 带约束优化算法

通常,整个《运筹学》领域研究的,都是带约束优化算法,比如线性规划,二次规划,动态规划等等。可以在网上搜索“带约束优化算法”了解更多。

另外,和机器学习离得比较近的,是凸优化。最小二乘,线性规划,二次规划等等,都可以放到凸优化的篮子里。如果你的岗位是机器学习的话,对理论基础这么强调的话,可以考虑找本凸优化的材料看看。


3. 智能算法

以回溯法作为基础,进行改造进行搜索,主要包括:分支限界,A*(启发式搜索),遗传算法,模拟退火,等等等等。这一类算法通常都会在人工智能的课本中介绍(注意,是人工智能,不是机器学习)。这个世界最权威的人工智能教材是这本:https://book.douban.com/subject/6730363/


整体,上面列举的 3)和1)2)不是一个类别,但都可以叫做最优化算法。除此之外,其他一些学科,比如博弈论中,也包含求解最优化问题的思路。这就是我最初说,“最优化本身是比较泛的一个概念”的原因。


不过上面我已经列举出了很多经典的优化算法,有兴趣可以研究一下。


加油!:)

2
1
96年的nash
非常感谢!
2019-10-27
共1条回复

Python3入门机器学习 经典算法与应用  

Python3+sklearn,兼顾原理、算法底层实现和框架使用。

5893 学习 · 2455 问题

查看课程