最优化算法(陈士祥) 2024春  课程号:MATH5015P01
2024春  课程号:MATH5015P01
8.6(9人评价)
  • 课程难度:中等
  • 作业多少:中等
  • 给分好坏:超好
  • 收获大小:一般
选课类别:基础 教学类型:理论课
课程类别:研究生课程 开课单位:数学科学学院
课程层次:本研贯通   学分:4.0
课程主页:暂无(如果你知道,劳烦告诉我们!)
排序 学期

评分 评分 9条点评

匿名用户 2024春
  • 课程难度:困难
  • 作业多少:中等
  • 给分好坏:超好
  • 收获大小:没有
  • 难度:困难
  • 作业:中等
  • 给分:超好
  • 收获:没有

课越来越听不懂了,真的好难好难。希望老师能看看评课社区救救我。现在上课感觉就是东西一大堆,啥重要啥是介绍分不清,挨个看挨个算都要花好长时间。真心希望能简化一下PPT或者和运筹一样出一份阶段性重点知识点讲义。再这样下去要被逼得退课了。。。真的太难了啊啊啊啊啊啊

作业太难了,一道题盯着一两周毫无进展,而且几乎每道题都是这样。几乎没有收获,不如发答案多抄几遍先抄会。

什么都不会→作业不会做→没人可以问→什么都不会,无解!

没有模仿何谈创造。

优化运筹是一门丑陋的学问

(最后修改于 10 0 复制链接
真白一生推 2024春
  • 课程难度:中等
  • 作业多少:中等
  • 给分好坏:超好
  • 收获大小:很多
  • 难度:中等
  • 作业:中等
  • 给分:超好
  • 收获:很多

一共20个PPT,主要内容为:
L2:凸集
L3:凸函数
L4:优化问题介绍(QCQP,SDP等)
L5:最优化条件(KKT)
L6:梯度法和收敛性
L7:次梯度法
L8:投影梯度法、条件梯度法
L9:近似点映射
L10:近似点梯度法
L11:加速梯度法
L12:牛顿法
L13:BFGS
L14:对偶算法
L15:增广拉格朗日算法
L16:ADMM
L17:分块坐标下降法
L18:随机优化算法
L19:方差缩减技术&更优秀的SGD
除了L8,L11,L14,L17,L19其余均在运筹学中讲过,只不过深浅度不同,所以上这门课之前建议先上完运筹学



关于讲课,个人认为前半段是核心,涉及很多优化中的技术,包括对偶问题求解和共轭函数的性质,强凸性和L光滑等推导,大部分结论和收敛性分析都挺精妙的,尤其是我注意到强凸和L光滑的所有性质全部对应,包括余强制性等,写在一块看真是优美。后半部分讲的是几个经典的算法,很多都是介绍其应用和扩展的分析,并不需要太花时间理解。老师前后内容讲的速度基本相同,而前面内容密度较大,导致如果没有上过运筹会非常难上手,希望老师明年能够稍微调整一下节奏。

此外,老师的PPT做的非常好,补充了很多相关的研究成果,在未来如果使用到了相关算法可以把PPT当成资料来查询,很方便。



关于作业,仍旧继承运筹的良好风格,作业与内容基本挂钩,每四个PPT布置一次作业,每次作业留的时间都巨长,时间很充分,但是抱持对DDL的尊敬,我一直都是最后两天写,一般通过战友之间的互帮互助一个晚上就写完了。每次是4-5个题,难度有点大,不过复习重看作业的时候发现还是蛮基础的,还是平常没认真的问题,如果每次讲完把PPT整理好应该不会太困难。

作业答案每次助教都会写一个pdf,写的还行,应该都是对的,不过有一点省略,不太方便理解,这点比运筹好太多了,运筹答案里面相当多错误和伪证。下学期应该会当运筹学的助教,届时希望能出一份严谨易读的答案。



关于代码作业和课上pre,都挺简单的。代码作业是一个逻辑回归问题,可以选择使用梯度法或者ADMM求解,MATLAB和Python都可以用,GPT写出来大体是对的,需要修改,我因为有一个小地方一直没搞对花了一整天的时间(老师上课原话说两三个小时就写完了,不好评价)



关于考试,个人评价是非常怪,最开始一个小时直接给我干懵逼了没怎么写题,和我yy中的完全不一样,我以为还是作业的形式布置六七个题,每个题对应一次作业的一些内容,什么凸函数判断啊算近似点算子啊写个迭代格式什么的,结果上来考了个松弛和紧性(如果没记错紧这个概念PPT好像没讲),后面更是说简单也简单说难也难,一度成为文科题目,有让你解释线搜索准则为什么好这种题。感觉考的挺边边角角的,可能是陈老师的风格吧,上学期运筹判断题也有两个考的很细完全忘了。明年的同学可以专门往感觉不会考的角落看看。

刚刚出给分,助教应该是不小心把全部人的分数发出来了,目测中位数和平均分都是50一丢丢,78以下到87以上断层了,crazy

给分就不用多说了,肯定非常猛的,虽然高分助教似乎说往下调了

(最后修改于 6 0 复制链接
Peanut_Tang 2024春
  • 课程难度:困难
  • 作业多少:中等
  • 给分好坏:超好
  • 收获大小:很多
  • 难度:困难
  • 作业:中等
  • 给分:超好
  • 收获:很多

给个回忆卷:Final.pdf

不愧是陈爹,给分超级好,期末考大概开根乘十了。

助教可能是不小心把所有人的成绩都放出来了,我算了一下,平均分是 55.29,中位数是 56.5(去 0),直接 78~87 断层了,太可怕。


这门课在运筹学之后上会感到极度舒适。虽然内容和运筹学重合不少,但深度更深,没有上过运筹学的话可能一下子新东西有点多,而上过运筹学之后可以更快的理解更深入的部分。

学期初在这一门课和另一门研课直接来回摆动,最后还是选了这门课,因为我相信陈士祥,✝陈门✝

上来的几节课先系统的介绍了凸分析的相关工具,这是运筹学中较为缺失的一部分,而这门课很好的补全了这一部分内容。SDP、凸集分离定理、对偶锥、具体的有李氏光滑函数和强凸函数性质的再一次阐述、共轭函数等。在上学期讲的次梯度中也更进一步细化了理论知识。

后半部分是各种各样的数值优化算法,其中老师上课不乏有趣的见解,可以让我们更好的理解优化算法。虽然老师的 PPT 很多地方和 PKU 的教案重合(这个老师在 PPT 开头就说过了),但老师也有很多自己加上的精华部分,如算法各种各样的有趣的性质,也给了诸多的参考文献。

即使是最简单的梯度下降法,也有非常多有趣的性质。老师上课提到了 Implicit Regularization,除了这个外,还有诸如 Margin Maximization、Simplicity Bias、Feature Averaging、Sharpness Minimization、Grokking 等。在 TCS 与 ML 结合的分支——Learing Theory 中,非常关心梯度下降法的这些性质,尝试发现和证明它们,因为这些性质可以帮我们理解实际机器学习中出现的各种各样的现象。

只不过总计下来花了 7.5 学分才将 PKU 的最优化教科书学完,会不会有点慢呢?我不是很了解。

作业有些题挺难的,但反正 DDL 够长,可以慢慢想,还是可以想出来点东西的。实验确实不难,但也算很有意义。我上学期运筹学实验三选二选了 Simplex 和 Dijkstra,都是吃高中信奥的老本,偷懒没有选剩下一个和优化相关的实验,所以这学期是我初次实操数值优化算法。并不难,用 Python 写两个小时差不多了,但可以对算法理解更好一些。比如我在写 FISTA 的时候,线搜索乱写,直接硬套 Armijo,导致发散了。过了一个小时,去认真翻书,才发现原来线搜索需要这么写才能保证收敛,总的下来还算有收获。而且老师要求「报告美观」,这让我 LaTeX 水平大大提升。

再来说说考试,期末考很符合计算数学的特点,都在算。只不过时间不太够,最后没有算完,而且有些文科题目也让我有一点懵逼。最后结果比自己预估的低一些,但陈老师是真的捞!


下学期想去带运筹学助教,查卷时找老师问了问,说可以,希望不要出尔反尔。但其实作为非数院出身的我,数理基础是很差的,只希望到时候不要拖同事的后退(瑟瑟发抖)。

(最后修改于 4 3 复制链接
唐氏老哥怎么感觉你是抄袭楼上的评课啊🤔,怎么这么多话都是完全一样的啊,自己不会说话吗
Peanut_Tang回复 @唐氏: 哥们 我除了第二部分第一段第三段有点像之外 和楼上的会很像吗
Peanut_Tang回复 @唐氏: 如果你觉得我对考试的吐槽很像,那我可以只把平均中位放出来,这是其他评课里没有的。如果你觉得我对课程内容说的和别的评课很像。那确实就该是差不多的,大家学习路径都是类似的。如果你不想看我自己随便瞎扯的东西,那就别看了好吧。
立即登录,说说你的看法
匿名用户 2024春
  • 课程难度:中等
  • 作业多少:很少
  • 给分好坏:一般
  • 收获大小:一般
  • 难度:中等
  • 作业:很少
  • 给分:一般
  • 收获:一般

上课有点迷,听不懂想干什么,上课来听的人越来越少。ppt详略主次也没有北大的教案清晰。

4 0 复制链接
wryzsa 2024春
  • 课程难度:中等
  • 作业多少:很少
  • 给分好坏:超好
  • 收获大小:很多
  • 难度:中等
  • 作业:很少
  • 给分:超好
  • 收获:很多

上课根本听不懂,就是定义+定义+定理,例子太少了(当然可能也是内容比较多)

除了泛函讲过的东西就没听懂过…还好老师给的资料很详细也很丰富,看资料自学足够了

 

更新:老师备课好认真,讲的也很好,听不懂是我太菜了呜呜

(最后修改于 1 0 复制链接
T1anSky 2024春
  • 课程难度:困难
  • 作业多少:中等
  • 给分好坏:超好
  • 收获大小:一般
  • 难度:困难
  • 作业:中等
  • 给分:超好
  • 收获:一般

老师很好,是我太菜上课听不懂。这里写给非数学专业的同学:尽量别选这门课,难度很大,非常坐牢。如果只对怎么解决优化问题,应用优化算法感兴趣,不关注算法背后的原理的,没必要选这门课,它需要一定的数学功底,对数学接触少的人跟看天书没什么区别,符号晦涩,思维跳跃,牢底坐穿。

 

如果实在为了学分没得选,陈老师这门课一定不会让你失望。首先是陈老师开了BB,高新同学不用奔波了。考试题比作业简单很多,而且考试评分占比也不大,只有50%,其余50%是作业、程序设计、论文分享。最重要的是给分真的很好,像我这样的坐牢人,考前把考点记一记,考试时把送分题拿一拿,普通题公式套一套,难题胡诌两句,最后总评>75。

0 0 复制链接
JameTime 2024春
  • 课程难度:困难
  • 作业多少:很少
  • 给分好坏:超好
  • 收获大小:很多
  • 难度:困难
  • 作业:很少
  • 给分:超好
  • 收获:很多

本人没学过运筹学,所以这门课的内容对我来说几乎都是新的。

内容很丰富,例子很多,算法收敛性的证明也很详细,并且提供了很多较为前沿的论文来进一步阅读。但是也因为内容太多,上课感觉重点不突出,听课的人也很少。

作业:5次题目(一次5题以内),不算很难,但经常有难算的和意思不清楚的题目,发的答案有时也让人怀疑其正确性。后半学期汇报一篇论文,想水过可以选简单的。一次编程作业,比较容易,基本上一天可以做完。

调分力度无敌了。

(最后修改于 0 0 复制链接
stable 2024春
  • 课程难度:简单
  • 作业多少:很少
  • 给分好坏:一般
  • 收获大小:一般
  • 难度:简单
  • 作业:很少
  • 给分:一般
  • 收获:一般

这门课程70%的内容与运筹学相同,我讲讲不同点:

加入了更多矩阵相关的优化问题,比如半定优化;引入了共轭函数,更加系统地介绍了对偶理论以及应用;介绍了条件梯度法、加速梯度法、分块坐标下降法。

运筹学中的单纯形法、流算法、动态规划、信赖域该课程没有涉及。

个人认为运筹学学完马上选这门课比较好,几乎不用听什么课,最后考前看看ppt就好了。

任务:五次书面作业,一次编程作业,一次论文报告

书面作业有点难度,编程作业比较水,论文报告看你选的什么论文,有的很简单,有的很难。

考试:难度大概比运筹学期末高20-30%,送分题不少,不过没有运筹学那么简单(可能是因为老师没像运筹学一样给题库)

选课建议:对于准备保研本校的同学,如果时间充足可以大三下选;如果不准备保研,可有可无

注:以上评论主要面向大三下考虑选课的同学

 

0 0 复制链接

陈士祥

教师主页: 戳这里

其他老师的「最优化算法」课

杨周旺 8.5 (11) 2023春 2022春...
未知 2016秋 2013春
张举勇 2015秋 2014秋

陈士祥老师的其他课

运筹学 9.5 (16) 2024秋 2023秋