[{"data":1,"prerenderedAt":365},["ShallowReactive",2],{"article:column:/column/math-beauty/convexity-and-global-optima":3},{"id":4,"title":5,"body":6,"description":12,"extension":354,"meta":355,"navigation":360,"path":361,"seo":362,"stem":363,"__hash__":364},"column/column/math-beauty/convexity-and-global-optima.md","什么条件下，局部最优就是全局最优",{"type":7,"value":8,"toc":340},"minimark",[9,13,16,19,23,31,34,37,40,43,46,49,52,55,58,61,64,67,70,73,79,82,85,88,95,98,101,108,115,118,121,124,127,130,133,136,139,142,145,148,154,157,160,163,166,169,172,175,178,181,184,187,190,193,196,199,202,205,208,211,214,217,220,223,226,229,232,235,238,241,247,250,253,256,259,262,265,268,271,274,281,284,287,293,296,299,302,313,322,331,334,337],[10,11,12],"p",{},"先修：16 列空间、秩与零空间；17 最小二乘与投影；30 导数与极限；32 梯度与下降",[10,14,15],{},"上一章教我们沿负梯度试着降低损失。如果最后梯度变成零，能否宣布已经找到最好答案？第30章的t³已经提醒过我们：驻点连局部最小都未必是。计算程序停止，也可能只是改变量低于阈值，或者步长不合适。",[10,17,18],{},"把问题问得更强一点：假如我们确实证明了附近没有更好的点，远处会不会还藏着更低的值？本章研究一种能排除这种担忧的结构：可行域是凸集，目标是凸函数。在这些条件下，任何局部最小点都是全局最小点。关键证据是一条线段，而不是一张看起来像山谷的图。",[20,21,22],"h2",{"id":22},"局部与全局分别比较谁",[10,24,25,26,30],{},"把允许选择的点组成集合C，称为可行域。x",[27,28,29],"em",{},"是全局最小点，指它属于C，而且对所有y∈C都有f(y)≥f(x",")。",[10,32,33],{},"局部最小则只要求：存在一个半径ρ＞0，使每个满足y∈C、‖y−x*‖＜ρ的点都有f(y)≥f(x*)。这里‖y−x*‖表示坐标空间中的欧氏距离。“局部”始终相对于可行域；邻域中不允许选择的点，无须参加比较。比较使用≥，因此并不排除其他点与它一样好。[1]",[10,35,36],{},"全局最小点当然也是局部最小点，因为它已经赢过更大的比较范围；需要证明的是反方向。另外，“最小点”是输入位置，“最小值”是它对应的输出。多个位置可能共享一个最小值，也可能有一个可以不断逼近的下界，却没有任何位置真正达到它。",[10,38,39],{},"这两个定义都在谈函数值，不是在谈算法行为。试过几个方向没下降，不等于已检查附近所有可行点；梯度数值很小，也不等于在精确数学意义上恰为零。",[20,41,42],{"id":42},"凸首先要求线段走得通",[10,44,45],{},"若任取x、y∈C，以及0≤t≤1，都有",[10,47,48],{},"(1−t)x＋ty∈C，",[10,50,51],{},"就称C为凸集。这个点从t＝0时的x，沿直线移动到t＝1时的y；条件要求整条线段都留在集合里。[2]",[10,53,54],{},"区间、整个平面、填满的圆盘都是例子。只有圆周通常不行：取直径两端，连线中间不在圆周上。凸性检查的是集合包含哪些点，不是轮廓画得圆不圆。",[10,56,57],{},"在凸集C上，实值函数f称为凸函数，是指对任意x、y∈C和0≤t≤1，都有",[10,59,60],{},"f((1−t)x＋ty)≤(1−t)f(x)＋tf(y)。",[10,62,63],{},"左边先混合位置，再求函数值；右边先算两端的函数值，再按同一比例加权。图像的意思是：线段上位置对应的函数值，不高于两端函数值连成的弦。这里要求每一对端点、每一种比例都通过检查，不是抽几条弦看看。[2]",[10,65,66],{},"集合凸，保证中途的点可选；函数凸，保证这些点的值不超过弦。这是两个不同条件。例如f(s)＝s²在整条实线上凸，但若只允许C＝{−1,2}，两个孤立点各自都是相对于C的局部最小点，只有−1是全局最小点。不能把可行域的条件删掉。",[10,68,69],{},"凸函数也不必处处向上弯，更不必有碗底。例如f(s)＝2s＋1满足凸不等式中的等号，在实线上却可以不断向负方向降低。由定义判断凸性，比看到一张熟悉的抛物线更可靠；它描述一种比较关系，本身没有承诺最优解存在。",[20,71,72],{"id":72},"把远处的改进拉到眼前",[10,74,75,76,30],{},"现在证明核心结论。设C凸，f在C上凸，x",[27,77,78],{},"是局部最小点，ρ是定义中的半径。假设它并非全局最小，那么存在y∈C，使f(y)＜f(x",[10,80,81],{},"沿连接两点的线段取",[10,83,84],{},"zₜ＝(1−t)x*＋ty，",[10,86,87],{},"其中0＜t＜min{1,ρ/‖y−x*‖}。因为两点函数值不同，y≠x*，分母不为0。",[10,89,90,91,94],{},"C凸，所以zₜ可行。它与x",[27,92,93],{},"的距离是t‖y−x","‖＜ρ，因此已经进入局部最小所管辖的范围。另一方面，函数凸给出",[10,96,97],{},"f(zₜ)≤(1−t)f(x*)＋tf(y)",[10,99,100],{},"＝f(x*)＋t[f(y)−f(x*)]＜f(x*)。",[10,102,103,104,107],{},"这与“附近所有可行点都不更低”矛盾。所以根本不存在那个更好的y，x",[27,105,106],{},"必为全局最小点。证明没有使用导数，也没有要求x","是可行域的内点。[2]",[10,109,110],{},[111,112],"img",{"alt":113,"src":114},"左图显示凸域内连接候选点与远处更低点的线段，以及靠近候选点的中间点；右图显示凸函数低于弦，远处更低会迫使附近也更低","/collections-assets/math-beauty/ch33/01-segment-certificate.png",[10,116,117],{},"图1：右图用g(t)＝(1−t)²演示反证中的比较，t＝0只是被检验的候选，并非真最小点。t取0.15时，弦高0.85，函数值0.7225，都低于起点的1；证明则允许t按任意给定的邻域继续缩小。",[10,119,120],{},"这也说明为什么只讲“没有坏山谷”还不够。真正接通局部与全局的，是任意远处较低点都能沿可行线段，把较低值带到任意近处。",[20,122,123],{"id":123},"失去凸性确实会发生什么",[10,125,126],{},"看一个处处可微的函数，允许s取任意实数：",[10,128,129],{},"f(s)＝s⁴−(4/3)s³−4s²。",[10,131,132],{},"s＝−1给出f(−1)＝−5/3。它真的在附近最低吗？不靠图形，也不把驻点直接当极小点。将s写成−1＋h，逐项展开得到",[10,134,135],{},"f(−1＋h)−f(−1)＝h²[6−(16/3)h＋h²]。",[10,137,138],{},"当0＜|h|＜1/2时，方括号大于6−8/3＝10/3，因而整个差严格为正。于是−1是严格局部最小点。",[10,140,141],{},"但f(2)＝−32/3，比−5/3更低，相差9。甚至可以把全局保证直接配出来：",[10,143,144],{},"f(s)＋32/3＝(s−2)²[(s＋4/3)²＋8/9]≥0。",[10,146,147],{},"方括号始终为正，等号只在s＝2成立，所以2才是唯一全局最小点。局部与全局之间的差别，在这个光滑的四次多项式里真实存在。",[10,149,150],{},[111,151],{"alt":152,"src":153},"四次函数在负1处有值负五分之三的局部最低点，在2处有值负三十二分之三的全局最低点；两个最低值相差9","/collections-assets/math-beauty/ch33/02-two-different-minima.png",[10,155,156],{},"图2：曲线按同一坐标尺度绘制。两个点的身份由正文中的展开与平方分解确认，不能只凭导数为零或谷底的外观。",[10,158,159],{},"还能直接检查它为何不凸：0是−1与2按2/3、1/3加权的位置，而f(0)＝0，高于同样加权的端点值−14/3，违反凸不等式。",[20,161,162],{"id":162},"凸函数让局部直线成为全局下界",[10,164,165],{},"现在加上可微条件。设f定义在一个开凸集上，并且可微。“开”表示每个点周围都能容纳一个小球，使普通的多变量导数有完整的邻域可用。",[10,167,168],{},"任取域内x、y，对0＜t≤1，凸不等式可以改写为",[10,170,171],{},"[f(x＋t(y−x))−f(x)]/t≤f(y)−f(x)。",[10,173,174],{},"让t从正侧趋于0。按第32章的局部线性近似，左边趋于沿y−x方向的变化率∇f(x)·(y−x)，于是",[10,176,177],{},"f(y)≥f(x)＋∇f(x)·(y−x)。",[10,179,180],{},"这叫一阶支撑不等式。推导只做了减去f(x)、除以正数t、取极限三步。普通可微函数的线性近似主要描述附近；凸性让同一条线性表达式成为整个定义域上的下界。[3]",[10,182,183],{},"若∇f(x*)＝0，右边便只剩f(x*)，从而所有y都有f(y)≥f(x*)。因此，可微凸函数的无约束内点驻点就是全局最小点。这次零梯度有了充分保证，原因是额外的凸性。",[10,185,186],{},"边界需要另外理解。例如最小化f(s)＝s²，但只允许s≥1。最优点是1，导数却是2。负梯度指向更小的s，可行域恰好禁止从1向左走。支撑式在此给出s²≥1＋2(s−1)≥1，最后一步正用到了s≥1。若函数在包含可行域的开集上可微，上述推导对可行线段仍可使用；支撑式中的梯度本身不必为零。更一般地，只要沿所用线段的单侧方向导数存在，取极限这一步也可以按那个方向来做，不能未经说明就在边界套用双侧导数。",[20,188,189],{"id":189},"三点最小二乘为何属于这一类",[10,191,192],{},"回到虚构读数(0,1)、(1,2)、(2,2)，模型ŷ＝ax＋b，参数θ＝(a,b)。按固定厘米单位记录的数值运算，令y＝(1,2,2)，X的三行为(0,1)、(1,1)、(2,1)，则",[10,194,195],{},"L(θ)＝‖y−Xθ‖²。",[10,197,198],{},"参数允许取整个R²，这是凸集。要证明目标凸，先取任意两个同维向量r、s。对每一项，都有",[10,200,201],{},"[trᵢ＋(1−t)sᵢ]²",[10,203,204],{},"＝t²rᵢ²＋2t(1−t)rᵢsᵢ＋(1−t)²sᵢ²",[10,206,207],{},"＝trᵢ²＋(1−t)sᵢ²−t(1−t)(rᵢ−sᵢ)²。",[10,209,210],{},"把各项相加，就得到",[10,212,213],{},"‖tr＋(1−t)s‖²＝t‖r‖²＋(1−t)‖s‖²−t(1−t)‖r−s‖²。",[10,215,216],{},"最后一项非正，因此混合后的平方长度，不超过原来两份平方长度的加权平均。",[10,218,219],{},"取两组参数θ、φ，令r＝y−Xθ、s＝y−Xφ。由于X对参数的作用是线性的，混合参数后的残差恰好也是混合残差：",[10,221,222],{},"y−X[tθ＋(1−t)φ]＝tr＋(1−t)s。",[10,224,225],{},"代入恒等式，就有L(tθ＋(1−t)φ)≤tL(θ)＋(1−t)L(φ)，SSE的凸性得证。这里不能只说“平方是凸的”；预测怎样依赖参数，是不可省略的一环。",[10,227,228],{},"虽然模型写着截距b，预测对参数(a,b)仍是线性的：在固定的三个输入上，每个预测都是参数的固定系数组合。这里研究的是调节参数，观测y与矩阵X都不随混合而改变。如果改变数据或让X也依赖待调参数，就必须重新检查这一步。",[10,230,231],{},"再看等号。若X列满秩，即各列独立，那么θ≠φ意味着Xθ≠Xφ，因此r≠s。当0＜t＜1时，恒等式减去的那项严格为正，凸不等式就严格成立。这称为严格凸。",[10,233,234],{},"严格凸的函数至多有一个最小点：假如两点都达到同一个最小值，它们中点的值会严格更低，立刻矛盾。“至多”不等于“一定存在”。例如f(s)＝s²在s＞0上严格凸，却没有最小点；任何s都能换成s/2，使值变为原来的四分之一，0又不在可行域里。",[10,236,237],{},"我们的三点例子已在第17章构造出θ*＝(1/2,7/6)，并证明最小SSE为1/6平方厘米，所以存在性没有欠账。X的两列独立，再由严格凸性得到参数唯一。",[10,239,240],{},"还可以接上上一章的梯度：∇L＝(10a＋6b−12,6a＋6b−10)。代入θ*，两项都是0。用矩阵写，就是∇L＝−2Xᵀ(y−Xθ)，因此零梯度恰好等价于第17章的正交残差条件。投影证明与凸性证明并非给出不同答案，而是从不同结构确认同一个解。",[10,242,243],{},[111,244],{"alt":245,"src":246},"左图在斜率与截距坐标中用精确等高线表示满秩模型的唯一最小点；右图固定斜率二分之一，重复常数列使b加2c等于六分之七的整条直线都达到相同最小值","/collections-assets/math-beauty/ch33/03-one-point-or-line.png",[10,248,249],{},"图3：左侧是原模型的参数平面；右侧是重复列模型中固定a＝1/2的切片。等高线表示相同SSE，橙色点或线表示最优参数集合，不是数据平面里的预测直线。",[10,251,252],{},"若像第16章那样改成X′＝[x,u,2u]，预测只依赖a和b＋2c。全部参数(1/2,7/6−2q,q)都给出相同最佳预测。损失仍凸，但沿这条线不严格凸；普通凸问题完全可以有一整片同样好的解。",[10,254,255],{},"事实上，凸问题中任意两个最优点之间的整条线段都同样最优：凸不等式使中间值不高于端点的共同最小值，而最小值的定义又不允许它更低。两边夹住，便只能相等。于是最优集合可以宽，可以窄，却不能在两个同样好的点之间隔着一个更差的必经点。",[20,257,258],{"id":258},"凸性保证什么又没有保证什么",[10,260,261],{},"平方误差对预测值凸，不代表对任意模型参数都凸。例如预测p＝uv，目标F(u,v)＝(uv−1)²。两组参数(1,1)、(−1,−1)的损失都是0，中点(0,0)的损失却是1，超过端点值的平均，直接违反凸性。",[10,263,264],{},"所以第31章即便只在层间相乘，也不能自动沿用线性参数模型的结论；更不能据此说神经网络的局部最小都必为全局最小。凸性必须对实际优化的那组变量检查。",[10,266,267],{},"凸性也没有撤销第32章的步长限制。固定a＝1/2时，L(b)＝3(b−7/6)²＋1/6严格凸。令e＝b−7/6，梯度更新仍给出e的新值为(1−6η)e。取η＝1/2，误差变为−2e，除非本来就在最优点，否则越走越远。目标的结构与算法能否稳定到达目标，是不同的问题。",[10,269,270],{},"本章获得的是一个带条件的全局保证：可行线段与凸不等式，把附近的最优推广到整个可行域。它保证的是既定数据、模型与损失下的最优；下一章将追问，即使把这个目标优化到底，是否就能在新数据上表现更好。",[20,272,273],{"id":273},"顺手试一下",[10,275,276,280],{},[277,278,279],"strong",{},"题目1："," 对f(s)＝s²，分别考虑可行域C₁＝[1,∞)、C₂＝(0,∞)、C₃＝{−1,2}。各自有哪些局部最小点和全局最小点？哪些集合凸？为什么它们不与本章结论冲突？",[10,282,283],{},"**提示：**局部比较只看可行点；对孤立点，可以选一个不含其他可行点的小邻域。",[10,285,286],{},"**参考答案：**C₁凸，1是唯一局部及全局最小点，导数2不妨碍边界最优。C₂凸，但没有局部或全局最小点：任意s＞0都能向左移任意小的一步，保持正数并降低平方。C₃不凸；−1与2都是局部最小点，只有−1是全局最小点。前两种满足“任一局部最小都是全局最小”，其中第二种没有局部最小点；第三种缺少凸域条件。",[10,288,289,292],{},[277,290,291],{},"题目2："," 重复列模型中，取A＝(1/2,7/6,0)、B＝(1/2,−5/6,1)。求中点参数、三点预测和SSE。它是否反驳“严格凸函数至多有一个最小点”？再用F(u,v)＝(uv−1)²的两个零损失点说明另一种失效。",[10,294,295],{},"**提示：**前一个模型看a与b＋2c；后一个模型必须在参数空间取中点。",[10,297,298],{},"**参考答案：**中点为(1/2,1/6,1/2)，有效截距b＋2c＝7/6，预测为(7/6,5/3,13/6)，SSE＝1/6平方厘米，与A、B相同。这说明重复列后的损失不严格凸，但仍凸，没有反驳唯一性定理。F的两个零损失点是(1,1)与(−1,−1)，中点损失1＞0，因此F连普通凸性也不满足。参数冗余导致不严格，与非线性参数化破坏凸性，是两件不同的事。",[20,300,301],{"id":301},"参考与延伸",[10,303,304,305,312],{},"[1] 莱斯大学OpenStax，Gilbert Strang、Edwin “Jed” Herman，《Calculus Volume 1》，",[306,307,311],"a",{"href":308,"rel":309},"https://openstax.org/books/calculus-volume-1/pages/4-3-maxima-and-minima",[310],"nofollow","4.3 Maxima and Minima","。核对局部与全局极值、可微内点极值的必要条件及其逆命题不成立；本文明确采用相对于可行域的局部定义。",[10,314,315,316,321],{},"[2] Stephen Boyd、Lieven Vandenberghe及Parth Nobel修订，",[306,317,320],{"href":318,"rel":319},"https://web.stanford.edu/~boyd/cvxbook/bv_cvxslides.pdf",[310],"Convex Optimization讲义","，幻灯片2.3、3.2与4.10。核对凸集、凸函数与严格凸的定义，以及局部最优到全局最优的线段证明。",[10,323,324,325,330],{},"[3] 麻省理工学院MIT OpenCourseWare，Dimitri Bertsekas，",[306,326,329],{"href":327,"rel":328},"https://ocw.mit.edu/courses/6-253-convex-analysis-and-optimization-spring-2012/3e2a100d7fa327637ed8e31771a22c18_MIT6_253S12_lec03.pdf",[310],"6.253 Lecture 3","，第2—4页。核对可微凸函数的一阶支撑条件和受约束最优的一阶条件。",[10,332,333],{},"本文算例沿用本系列虚构读数；四次反例的展开、SSE恒等式与三幅配图为本章独立编排，不代表真实训练实验。",[335,336],"hr",{},[10,338,339],{},"作者：Jiancheng Wang · 数学之美（独立原创）",{"title":341,"searchDepth":342,"depth":342,"links":343},"",3,[344,346,347,348,349,350,351,352,353],{"id":22,"depth":345,"text":22},2,{"id":42,"depth":345,"text":42},{"id":72,"depth":345,"text":72},{"id":123,"depth":345,"text":123},{"id":162,"depth":345,"text":162},{"id":189,"depth":345,"text":189},{"id":258,"depth":345,"text":258},{"id":273,"depth":345,"text":273},{"id":301,"depth":345,"text":301},"md",{"collection":356,"order":357,"slug":358,"author":359},"数学之美",33,"convexity-and-global-optima","Jiancheng Wang",true,"/column/math-beauty/convexity-and-global-optima",{"title":5,"description":12},"column/math-beauty/convexity-and-global-optima","kVdf15WZHhov30A2UoMOxO24YvPyRDR2jkyHM3uzBkc",1791935829209]