[{"data":1,"prerenderedAt":333},["ShallowReactive",2],{"article:column:/column/math-beauty/derivatives-local-linear":3},{"id":4,"title":5,"body":6,"description":12,"extension":322,"meta":323,"navigation":328,"path":329,"seo":330,"stem":331,"__hash__":332},"column/column/math-beauty/derivatives-local-linear.md","导数：把变化写成局部直线",{"type":7,"value":8,"toc":309},"minimark",[9,13,16,19,23,26,29,32,35,38,41,44,47,50,53,56,59,62,65,68,71,74,77,84,87,90,93,96,99,102,105,108,111,114,117,120,123,126,129,132,135,138,141,144,147,150,153,156,159,162,165,168,171,177,180,183,186,189,192,195,198,201,204,207,213,216,219,222,225,228,231,234,237,240,243,250,253,256,262,265,268,271,282,291,300,303,306],[10,11,12],"p",{},"先修：12 数据与损失；17 最小二乘与投影；29 优化目标与平方配方；基础四则运算与平面坐标",[10,14,15],{},"调整一个参数，损失会升还是会降？第29章把目标写清楚了，但若每次都把全部候选重新比较，仍然很费力。我们能不能站在当前的位置，先判断向哪边挪动一点比较有利？",[10,17,18],{},"导数回答的就是这种局部问题。它把输入的一小段变化，翻译成输出变化的一阶近似。关键不在“很小”两个字，而在一个可检验的要求：当改动缩小时，近似误差相对于改动本身必须趋于零。",[20,21,22],"h2",{"id":22},"先把一个旋钮当成自变量",[10,24,25],{},"沿用虚构的玩具读数(0,1)、(1,2)、(2,2)，输入、输出都以厘米计，预测模型仍是ŷ＝ax＋b。本章固定斜率a＝1/2，只调整截距b。三项残差是1−b、3/2−b、1−b，等权平方误差和为",[10,27,28],{},"L(b)＝2(1−b)²＋(3/2−b)²",[10,30,31],{},"＝3b²−7b＋17/4",[10,33,34],{},"＝3(b−7/6)²＋1/6。",[10,36,37],{},"给定一个实数b，规则便输出唯一的实数L(b)。这种从实数输入得到实数输出的对应，叫作实函数；b是自变量，L(b)是函数值。字母L标记整条规则，L(1)则是把输入定在1后得到的一个数。本例允许b取任何实数。",[10,39,40],{},"这也区分了两件容易混淆的事：玩具只留下三个观测点，损失函数却可以在无穷多个参数值上计算。比如b＝1.001并非新测量，它只是另一条候选预测线的截距。把这个参数代入同一组残差公式，便能得到相应损失。我们研究的是已选模型与数据共同定义的函数，没有偷偷补入新的观测。",[10,42,43],{},"注意，图中的横轴现在是参数b，不是玩具的滑杆位置x；纵轴是损失，不是指针读数y。原来的观测和a都暂时固定，变化的是我们选择的截距。这样才说得清“对谁求变化率”。",[10,45,46],{},"下文公式按固定厘米单位记录的数值运算。恢复单位时，b及其改变量以厘米计，L以平方厘米计。改变计量单位会改变数值表达，不能只改轴上的单位标签而保留全部数字。",[20,48,49],{"id":49},"先算一次真正发生的变化",[10,51,52],{},"从当前的b移动到b＋h。h叫作增量，可以为正，也可以为负：正数向右移，负数向左移。输出的改变量记为ΔL＝L(b＋h)−L(b)。用刚才的展开式计算：",[10,54,55],{},"ΔL＝3[(b＋h)²−b²]−7h",[10,57,58],{},"＝3(2bh＋h²)−7h",[10,60,61],{},"＝(6b−7)h＋3h²。",[10,63,64],{},"这是精确等式，还没有近似。如果h≠0，将输出变化除以输入变化，得到差商：",[10,66,67],{},"ΔL/h＝[L(b＋h)−L(b)]/h＝6b−7＋3h。",[10,69,70],{},"它描述这一小段区间上的平均变化率。画在b与L的坐标图里，它就是连接(b,L(b))和(b＋h,L(b＋h))的割线斜率。[1]",[10,72,73],{},"h为负时也用同一个公式，不必另造规则。分子和分母都保留方向：从右边的点退到左边，如果函数值增加，分子为正、分母为负，差商仍为负。斜率说的是沿横轴增加的方向，纵轴怎样变化，不是这次移动在纸面上朝哪边走。",[10,75,76],{},"例如b＝1、h＝0.1，L从0.25变成0.18，所以ΔL＝−0.07，差商为−0.7。若改用h＝0.01，差商变成−0.97；从左边靠近，h＝−0.01时，差商是−1.03。它们来自不同的两点，数值不同，却都在靠近−1。",[10,78,79],{},[80,81],"img",{"alt":82,"src":83},"在b等于1处固定一个点，h依次取0.3、0.1、0.03时，割线斜率依次为负0.1、负0.7、负0.91，逐渐接近斜率负1的切线","/collections-assets/math-beauty/ch30/01-secants-to-tangent.png",[10,85,86],{},"图1：三幅图使用相同坐标尺度；绿色曲线是L，橙色是割线，蓝色虚线是切线。图只画右侧逼近，左侧也必须趋向同一斜率。",[20,88,89],{"id":89},"极限不是把零塞进分母",[10,91,92],{},"“越来越接近”需要比看几个小数更可靠的意思。在本例中，无论当前b取什么值，差商与6b−7的距离始终是",[10,94,95],{},"|(6b−7＋3h)−(6b−7)|＝3|h|。",[10,97,98],{},"假设有人提出任意一个正的误差阈值ε，要求这个距离小于ε。我们只需限制0＜|h|＜ε/3，就能保证3|h|＜ε。例如要误差小于0.001，就取0＜|h|＜1/3000。阈值可以继续缩小，我们仍能给出相应范围。",[10,100,101],{},"这里保证的是范围内所有非零h，而不只是挑出的几次试算。h可以从正侧或负侧逼近0，保证都成立。因此可写成",[10,103,104],{},"lim(h→0) [L(b＋h)−L(b)]/h＝6b−7。",[10,106,107],{},"lim表示极限。我们把这个极限记为L′(b)，读作“L在b处的导数”，所以",[10,109,110],{},"L′(b)＝6b−7。",[10,112,113],{},"这里先固定一个b，再让h变化；求完极限以后，可以对另一个b重复同样过程。结果L′本身也形成一个函数：它接收当前位置，输出当地的变化率。L′(1)＝−1是一处的数值，L′(b)＝6b−7则告诉我们所有位置的数值，不能把两种写法混在一起。",[10,115,116],{},"运算顺序十分重要：在h≠0时，先把差商化简成6b−7＋3h，再研究h接近0时的值。原差商在h＝0时是0/0，没有定义；极限从来没有赋予0/0一个值。它考察的是附近非零输入的行为。",[10,118,119],{},"这就是代数化简与取极限各自负责的部分。约去h，只是在h不为0的范围内改写同一个数；让h趋于0，才从这一整片附近的值确定一个局部变化率。仅列出h＝0.1、0.01、0.001时的结果，最多提示一个猜想。这里之所以能作出结论，是因为3|h|的估计覆盖了所有足够小的非零步长。",[10,121,122],{},"对于一般实函数f，若它在t₀的某个邻域内有定义，就可以问同一问题。这里“邻域”指包含t₀、且向左右各伸出一点的开区间，例如(t₀−r,t₀＋r)，其中r＞0。若",[10,124,125],{},"f′(t₀)＝lim(h→0) [f(t₀＋h)−f(t₀)]/h",[10,127,128],{},"存在并且是有限实数，就说f在t₀可微。极限要求：无论误差门槛多严，都能把非零h限制得足够靠近0，使全部差商都落在候选值的误差范围内，左右必须一致。本章讨论这种内点处的双侧导数，暂不展开边界上的单侧约定。[1]",[10,130,131],{},"“有限”也有作用：若差商的绝对值不断变大，不能把一个无限大的量当成本章意义下的导数。若差商在不同数值间持续摆动，无法满足任意误差阈值的要求，也不存在导数。图画得再平滑，都不能替代对极限条件的检查。",[10,133,134],{},"导数不是某一对观测算出的有限差分本身。差商可以提供估计，极限的存在还需要理由。在机器上也不能无限制地把h缩小；两次很接近的计算结果相减会受舍入影响，第35至37章再讨论这些数值问题。",[20,136,137],{"id":137},"切线为什么能预测短步",[10,139,140],{},"把精确变化式重新排好：",[10,142,143],{},"L(b＋h)＝L(b)＋L′(b)h＋3h²。",[10,145,146],{},"右边依次是原来的值、由导数给出的线性变化，以及剩余的误差。若暂时去掉最后一项，就得到局部线性近似",[10,148,149],{},"L(b＋h)≈L(b)＋L′(b)h。",[10,151,152],{},"固定b之后，右边关于h是一条直线；在原坐标中，它经过(b,L(b))，斜率为L′(b)，就是本章所说的切线。导数的极限定义说明它怎样从割线中产生，并不依赖“直线只能碰曲线一次”的图形说法。[2]",[10,154,155],{},"为什么允许忽略3h²？只说它趋于0还不够，因为h本身也趋于0。真正有用的是比较它们的量级：",[10,157,158],{},"|3h²|/|h|＝3|h|→0。",[10,160,161],{},"这说明余项相对于输入变化还要更小，通常称作比一阶更小。即便L′(b)恰好为0，这个判据仍然成立；我们除以的是|h|，不是可能为0的线性预测值。",[10,163,164],{},"这也不是承诺余项相对于实际输出变化一定很小。若一次项为0，真实变化可能全部来自余项，线性预测仍然给0。近似是否适合当前用途，要看允许的绝对误差和步长；导数提供的保证有明确尺度，不能换成另一种误差要求后继续照用。",[10,166,167],{},"一般地，把余项定义为r(h)＝f(t₀＋h)−f(t₀)−f′(t₀)h。对于h≠0，|r(h)|/|h|恰好等于差商与f′(t₀)之差的绝对值，因此趋于0。可微所保证的局部直线近似，就精确到这一层。",[10,169,170],{},"为什么不随便选另一个斜率m？若把L′(b)换成m，新的余项除以h就是L′(b)−m＋3h。当h趋于0时，它留下L′(b)−m；除非m正好等于导数，否则这个误差不会相对于步长消失。所有穿过当前点的直线都在该点给出正确值，导数却挑出了其中唯一能满足这一阶误差要求的直线。",[10,172,173],{},[80,174],{"alt":175,"src":176},"从b等于1出发，步长0.1使线性预测从0.25下降到0.15，精确值为0.18，余项为0.03；步长0.01时余项缩到0.0003","/collections-assets/math-beauty/ch30/02-linear-change-and-remainder.png",[10,178,179],{},"图2：左图比较真实曲线与切线；橙色竖段是精确值高于线性预测的部分。右侧比较两个步长，余项随h的平方缩小。",[10,181,182],{},"从h＝0.1缩到h＝0.01，步长变为原来的十分之一，余项却从0.03变成0.0003，只剩百分之一。线性变化和二次余项缩小的速度不同，这才让前者在越来越短的步子里担当主要部分。说近似更好时，还应说明用什么尺度衡量，不能只看图上两条线是否重合。",[10,184,185],{},"b＝1时，L′(1)＝−1。取h＝0.1，线性预测说ΔL≈−0.1，精确计算却是−0.1＋0.03＝−0.07。因此实际下降0.07平方厘米，不能把预测下降0.1说成实际结果。",[10,187,188],{},"这个导数的单位是“平方厘米/厘米”，约去后是厘米。L′(1)＝−1厘米表示：在此处，截距的短小增量乘上这个变化率，近似得到损失的改变量。导数乘h之后才恢复平方厘米；它本身不是损失。",[10,190,191],{},"第29章说过，将SSE改成MSE只需除以3。若记M(b)＝L(b)/3，它的每个差商也恰好是原差商的三分之一，因此M′(b)＝L′(b)/3。最优截距没有变，导数的大小却变了。这说明变化率包含目标采用的数值标尺，不能离开损失的定义比较两个导数。",[10,193,194],{},"若一口气取h＝1呢？精确变化是−1＋3＝2，损失反而上升。负导数允许我们判断足够小的正向步子，却没有批准任意大步。本例甚至能直接看出：当0＜h＜1/3时，ΔL＝h(−1＋3h)＜0；跨出这段范围便要重新判断。",[10,196,197],{},"从极限也能解释这个保证：因为差商趋于−1，足够靠近时便能让它与−1相差不到1/2，于是差商仍为负。再乘一个正的h，输出变化就为负。这里比较的是当前点与附近点的函数值，不能仅凭一个点的导数，断言整条曲线在远处仍然下降。",[20,199,200],{"id":200},"连续的图也可能没有导数",[10,202,203],{},"考虑f(t)＝|t|。绝对值表示数到0的距离，因此t从左右靠近0时，f(t)都靠近f(0)＝0。这叫作在0连续：输入靠近该点，输出也靠近该点的函数值。",[10,205,206],{},"但它在0处的差商是|h|/h。h＞0时始终等于1；h＜0时始终等于−1。两侧无法靠近同一个数，因此f′(0)不存在，尽管曲线在这里没有断开。[3]",[10,208,209],{},[80,210],{"alt":211,"src":212},"绝对值函数在原点连续，但从左侧取差商恒为负1，从右侧取差商恒为正1，尖点没有共同的有限双侧导数","/collections-assets/math-beauty/ch30/03-absolute-value-corner.png",[10,214,215],{},"图3：两侧各自都是直线，困难发生在相接处。取更小的步长也不能消除两侧斜率的分歧。",[10,217,218],{},"反过来，可微一定蕴含连续。因为h≠0时，函数变化等于h乘上差商；若差商趋于有限数，它在足够小的范围内就有界，而h趋于0，所以乘积趋于0。于是f(t₀＋h)趋于f(t₀)。这段推导也说明，连续与可微的要求为何有强弱之分。[3]",[20,220,221],{"id":221},"导数为零以后还要判断",[10,223,224],{},"回到损失函数，解L′(b)＝0得到b＝7/6。这样的点叫作驻点，表示一阶变化率为0。它值得检查，却不能仅凭这个名称宣布最小。",[10,226,227],{},"本例有现成的证明：L(b)＝3(b−7/6)²＋1/6。平方项非负，并且仅在b＝7/6时为0，因此这是固定a＝1/2后唯一的全局最小点，最小损失为1/6平方厘米。导数帮我们找到候选，平方配方完成了保证。",[10,229,230],{},"若一个可微的内点确实是局部最小点，那么附近函数值都不小于它：右侧差商非负，左侧差商非正。两侧还要有同一个极限，就只能共同趋于0。这解释了为何零导数值得搜索，但逻辑方向不能倒转；必要条件并不自动成为充分条件。若可行范围有端点，还要另外检查端点。",[10,232,233],{},"为什么不能省掉后半步？看g(t)＝t³。在0处，非零h的差商为h³/h＝h²，极限是0，所以g′(0)＝0。但任意靠近0的负数都有g(t)＜0＝g(0)，正数则给出更大的值；0不是局部最小点。所谓局部最小，是至少存在一小段邻域，其中没有更低的函数值。",[10,235,236],{},"因此，“水平切线”与“最低点”不能画等号。绝对值函数还从另一面提醒我们：最小值也可能出现在不可微的尖点。寻找最优解时，需要关心问题的范围和函数的条件；第33章再研究哪些结构能加强局部判断。",[10,238,239],{},"导数带来的新能力，是把弯曲函数在一点附近写成一条可控误差的直线。接下来，如果输入变化还要经过几层规则才影响损失，该怎样把这些局部变化接起来？第31章将讨论链式法则，第32章再让a、b两个旋钮同时参与。",[20,241,242],{"id":242},"顺手试一下",[10,244,245,249],{},[246,247,248],"strong",{},"题目1："," 在b＝1处取h＝−0.02。求差商、线性预测的损失变化、实际变化和新损失。若要求差商与导数的距离小于0.015，h应满足什么条件？",[10,251,252],{},"**提示：**L(1)＝1/4，L′(1)＝−1；实际变化比线性预测多3h²。",[10,254,255],{},"**参考答案：**差商为−1＋3×(−0.02)＝−1.06。线性预测的变化为(−1)×(−0.02)＝0.02；余项为3×0.0004＝0.0012；实际变化为0.0212，新损失为0.2712平方厘米。要3|h|＜0.015，必须有0＜|h|＜0.005；排除0是因为差商在0处没有定义。",[10,257,258,261],{},[246,259,260],{},"题目2："," 从b＝7/6出发取h＝0.1。导数、线性预测的变化和实际变化分别是多少？为什么这不违背局部线性近似？再说明g(t)＝t³在0处与它有何不同。",[10,263,264],{},"**提示：**导数为0只消除了关于h的一次项；检查余项除以|h|的极限。",[10,266,267],{},"**参考答案：**L′(7/6)＝0，线性预测的变化为0，实际变化为3×0.1²＝0.03平方厘米，新损失为1/6＋3/100＝59/300平方厘米。余项与|h|的比为3|h|，随h趋于0而趋于0，近似要求仍满足。这里任意非零h都使损失上升。g在0处也有零导数，但增量h³在h＜0时为负、h＞0时为正，因此0不是它的局部最小点。",[20,269,270],{"id":270},"参考与延伸",[10,272,273,274,281],{},"[1] 莱斯大学OpenStax，Gilbert Strang、Edwin “Jed” Herman，《Calculus Volume 1》，",[275,276,280],"a",{"href":277,"rel":278},"https://openstax.org/books/calculus-volume-1/pages/3-1-defining-the-derivative",[279],"nofollow","3.1 Defining the Derivative","。核对差商、割线与导数的极限定义；本文对固定斜率SSE的误差阈值论证独立展开。",[10,283,284,285,290],{},"[2] 同一教材，",[275,286,289],{"href":287,"rel":288},"https://openstax.org/books/calculus-volume-1/pages/4-2-linear-approximations-and-differentials",[279],"4.2 Linear Approximations and Differentials","。核对切线近似的形式与局部适用范围；本章用精确余项检验两个步长。",[10,292,293,294,299],{},"[3] 同一教材，",[275,295,298],{"href":296,"rel":297},"https://openstax.org/books/calculus-volume-1/pages/3-2-the-derivative-as-a-function",[279],"3.2 The Derivative as a Function","。核对可微与连续的关系，以及绝对值函数在0处的左右差商。",[10,301,302],{},"本文沿用本系列虚构教学读数，算例与三幅图为本章编排绘制；没有据此宣称真实测量或机器学习训练效果。",[304,305],"hr",{},[10,307,308],{},"作者：Jiancheng Wang · 数学之美（独立原创）",{"title":310,"searchDepth":311,"depth":311,"links":312},"",3,[313,315,316,317,318,319,320,321],{"id":22,"depth":314,"text":22},2,{"id":49,"depth":314,"text":49},{"id":89,"depth":314,"text":89},{"id":137,"depth":314,"text":137},{"id":200,"depth":314,"text":200},{"id":221,"depth":314,"text":221},{"id":242,"depth":314,"text":242},{"id":270,"depth":314,"text":270},"md",{"collection":324,"order":325,"slug":326,"author":327},"数学之美",30,"derivatives-local-linear","Jiancheng Wang",true,"/column/math-beauty/derivatives-local-linear",{"title":5,"description":12},"column/math-beauty/derivatives-local-linear","PXgneEKHLBJhQeB0fdKusZKxLyMZp8CtPcdzL4Mg3E8",1791935829200]