社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Git

陶哲轩“喂饭级”AI教程来了!只用GitHub Copilot证明函数极限问题

量子位 • 3 周前 • 59 次点击  
一水 发自 凹非寺
量子位 | 公众号 QbitAI

视频新人博主陶哲轩又更新了!这次是“喂饭级”AI教程——

手把手演示如何只用GitHub Copilot证明函数极限问题

(这更新频率确实o( ̄▽ ̄)d)

据陶哲轩介绍,他此前主要将GitHub Copilot用于一些“花里胡哨”的代码补全,但实际情况是,如果想让它来证明数学定理,往往需要人类的“正确指挥”。

因此,这一次的教学核心奔着一个目标:

让大家学会如何正确引导GitHub Copilot。

他从定义函数极限问题出发,依次演示了求和、求差和求积定理的证明过程,以及他在过程中遇到的问题和解决方法,全程主打一个细致。

下面具体来看。

一招鲜:Copilot代码补全+人工手动调整

先说结论,和陶哲轩一直以来的观念一致,GitHub Copilot等AI目前在数学定理证明中仍主要用于“打辅”。

Copilot能快速生成代码框架和常见模式,对初学者尤其有用,还能提示使用已有库函数。

但面对复杂的数学细节、特殊情况和需要创造性解决方案的问题时,Copilot的可靠性下降,需要大量人工干预和调整。

在他看来,复杂问题可能需要结合纸笔推导,确保思路正确后再进行形式化验证。

以下为得出结论的详细过程。

首先,他定义了函数极限问题,即“设f是从实数到实数的函数,当x趋近于x_𝜃时f(x)收敛于L”。

Copilot帮忙自动补全了这个极限的ε-δ定义,不过由于他更喜欢用绝对值符号来表达极限的定义,所以自己又稍微修改了一下。

求和定理证明

然后他提出了第一个想要证明的问题——函数极限的求和定理证明

如果函数f在x_𝜃处收敛于L,函数g在x_𝜃处收敛于M,那么f+g在x_𝜃处收敛于L+M。

Copilot给出了正确的命题表述。

随后在证明过程中,陶哲轩用到了大量“Copilot代码补全+人工手动调整”这一模式。

比如证明的起始步骤是提取f和g收敛的ε-δ条件。这里需要特别注意δ的选取,即取δ₁和δ₂的最小值,以保证两个函数的收敛性同时成立。

但Copilot最初给出的证明方式有些问题,特别是在处理δ的正性验证(某个数学命题或结论是否为正)时不够严谨。

同时在证明不等式部分,陶使用了计算块(calc block)来构建不等式链。虽然Copilot自动生成了基本结构,但在绝对值符号处理和最终步骤上出现了偏差。

这里需要手动修正几个关键点:

  • 移除了多余的绝对值符号
  • 修正了三角不等式的应用
  • 调整了最终表达式

另外,为了应对数学分析中合并估计值时常遇到的ε损失问题,陶也尝试让Copilot采用标准解决方法(从一开始就使用ε/2来进行论证),结果发现其生成的代码中ε仍然是原来的两倍,因此需要手动调整参数。

整体而言,他不断在Copilot的自动补全和手动调整之间切换。这说明Copilot虽然能快速生成代码框架,但关键的数学细节和严谨性仍需要人工把控。

不过值得一提的是,Copilot在后期提示可以使用Lean内置的add_sub_add_comm引理,以简化重组步骤。

这意味着,Copilot不仅能补全代码,还能提醒开发者利用现有的库函数。

求差定理证明

在证明了和的极限后,陶尝试用类似方法证明差的极限。

和前面一样,Copilot能够生成基本正确的命题表述,并自动沿用了之前的证明框架。

不过在关键的一行还是出现了问题:它错误地使用了一个不存在的sub_sub_anc方法。

虽然陶尝试通过提示让它修正,但Copilot似乎无法记住上下文,给出的解决方案也不理想。

同时在处理代数表达式时,陶原本希望使用congruence策略来匹配等式两边,但这个策略过于激进,把问题过于简化了。

Copilot在这个环节表现得不太稳定,有时会虚构不存在的方法

最后陶不得不手动完成这个代数恒等式的证明,因为虽然这个恒等式在所有交换群中都成立,但Lean的数学库中并没有现成的直接解决方案。

求积定理证明

最后,对于函数乘积极限定理证明,陶给Copilot的打分为B+

总体而言,它完成了大部分工作,但在处理ε的分配和绝对值不等式时出现了混乱。

首先,对于乘积极限的证明,Copilot提出的策略是:

  • 将f的近似误差设为ε/(2|M|+1)
  • 将g的近似误差设为ε/(2|L|+1)

陶哲轩表示,这个思路基本正确,但在具体实现时出现了几个问题:

其一,在验证正性条件时,Copilot试图使用多个特定引理,但实际上可以使用更通用的正性验证方法。(陶手动调整了这个部分)

其二,在处理绝对值不等式时,Copilot错误地使用了add_lt_add方法,这个方法要求两边都是严格不等式,但实际情况中有一个等式。陶尝试让Copilot修正这个问题,但它给出的解决方案并不理想。

与此同时,在最终证明的以下几个关键步骤中,虽然Copilot在整体框架上提供了很大帮助,但在处理这些精细的数学细节时,还是需要人工干预来确保准确性。

  • 使用三角不等式分解表达式
  • 分别控制f(x)-L和g(x)-M的项
  • 处理交叉项L(g(x)-M)和M(f(x)-L)

陶哲轩强调,尤其在处理不等式和绝对值运算时,需要特别注意每个步骤的适用条件

比如在最后阶段遇到的一个bug:Copilot生成的代码假设M是正数,而实际上并没有这个前提条件。

对于这个问题,陶最后也花了一番功夫手动调整。并且他意识到,当问题复杂度达到一定程度时,Copilot确实会变得不太可靠。

最后他得出结论,面临上述情况,切换到更传统的人工证明方法可能更有效。

如果我能先用纸笔写下完整的证明思路,确保所有ε参数都正确设置,然后再进行形式化验证,效率会更高。

小结一下,Copilot这类工具在起步阶段确实很有帮助,但关键在于要懂得何时使用它,何时需要切换回传统方法。

One More Thing

以上教学收获一片好评的同时,网友的关注点也开始逐渐跑偏——

众人在线求更换录音设备。


看来油管新人博主的业务还需要精进(doge)。

参考链接:
[1]https://www.youtube.com/watch?v=c1ixXMtmfS8
[2]https://github.com/teorth/estimate_tools/blob/master/EstimateTools/test/limits.lean

—  —

📪 量子位AI主题策划正在征集中!欢迎参与专题365行AI落地方案,一千零一个AI应或与我们分享你在寻找的AI产品,或发现的AI新动向

💬 也欢迎你加入量子位每日AI交流群,一起来畅聊AI吧~



一键关注 👇 点亮星标

科技前沿进展每日见


一键三连「点赞」「转发」「小心心」

欢迎在评论区留下你的想法!


Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/182375
 
59 次点击