当大家看到这篇文章封面的时候应该就已经知道我这三个月最重要的东西是什么了,它就是ChatGPT!
我的博士项目是开发结构方程模型2.0,需要用到的知识技能比较杂,既有心理学/社科具体领域的方法论,也有偏计算工程的算法类知识。所以从九月中旬开始,我一路从Psychometrics学到了Convex Optimization,期间还定期涉猎各种过去知道但没有深究的方法,比如PCA等等。
在不停地接触新的知识,尤其是学习偏engineering和mathematics的Convex Optimization时,最初我整个人都是懵的(到现在都还有点懵),但是现在好歹是快要靠所学的知识,搭出一个能够解决自己项目问题的高级算法出来了(用AO-ADMM框架,全称Alternating Optimization-Alternating Direction Method of Multipliers,光名字就够让人懵逼的了)。在这个过程中,我一方面通过找各种材料不停地重复交叉学习,比如YTB上的讲座课我选择性地看了如下三个:
学习的过程毫无疑问是十分痛苦的,尤其是当你有一个问题亟待解决,容不得你发散式探索式学习的时候。而这时候,就不得不提ChatGPT对我整个学习过程的帮助了。
对我来说,gpt在这三个月对我最大的帮助分为三个方面:
1. 当探索一个陌生领域时,gpt能够为我快速勾勒出整个领域的图景,使我能够对该领域的骨架有一个了解,从而规划自己的学习;
2. 当使用新学习的知识解决问题遇到困难,而又因为是新领域,自己一脸懵逼时,gpt总是能够为我提供一些可行的思路(当然细节需要自己落实)。
3. 当我对某个新学的知识点有了一些自己的理解和猜想又不知道是否正确时,gpt是最好的学习/讨论伙伴,它总是能够给予我正确的反馈,并且帮助我厘清自己的想法。
第一个方面比较基本,实际上并不是人工智能的专属。如果你善用google搜索引擎,大多数的领域图景都会有人给出很好的勾勒,只不过你可能需要花更多的时间去总结信息,我主要来聊聊后两个方面。
对于第二个方面,我自己的经验是,只要你的问题足够“一般化”,同时正确的解决方案不那么“细节化”,那么gpt都是能够给出很好的回答的。
举个例子,我之前在优化我的对数似然函数时,所加的Constraints导致我的优化没有办法并行快速处理,如果我把我的问题直接输入给gpt,那么这个问题肯定会很长很长,因为涉及到的具体的参数,每个参数具体是什么意思,这些信息太多太多了。所以我先一般化总结了Constraints导致我的优化没有办法并行处理的原因(并行处理是在矩阵中按行进行的,而Constraints是在矩阵中按列施加的),然后询问gpt有没有办法解决这个问题。Gpt就此问题给了我7种可能的解决方案,然后我再一个一个地去思考和尝试,并就每个方案的实施思路和细节与它讨论,最后总结出了一个可以最终实施的方案。
上述的例子解释的是向gpt问的问题需要“一般化”,这其实并不是一件简单的事情。我自己这么多年的教学经验告诉我,对于很多学生来说,无法解决问题的根本原因是最初就没有形成一个明晰的,可操作化的问题。而向gpt提问不仅需要你的问题足够明晰,而且需要一般化,因为如果要花一堆时间介绍问题背景信息,一方面浪费时间,另一方面gpt答案的准确度可能也会因为情境过于具体而有所下降。我自己现在也常常有碰到某个问题时,由于没有想到一个将问题一般化的方法,因而放弃询问gpt的情况。
还有一个点是正确的解决方案不能过于细节化,这一点其实是和上一点对应,如果正确的解决方案过于细节化,那么它解决的问题就一定也是十分细化的。但我们询问的往往能是一个一般化的问题,这个一般化的问题存在各种细化变式,而gpt给的解决方案可能只能解决其中某种变式。这时你可能会说,我们可以穷尽所有的细化变式,最终趋近那个能够解决我们问题的方案。这一点只有当你对目前工作的领域十分熟悉时,你才能对所有的细化变式了如指掌,从而逐个穷尽。
还是举个例子,我之前在做正则化优化问题(添加l1 penalty)的时候,梯度下降总是不收敛,我最后花了两天时间解决了这个问题,答案是我在寻找最佳步长的时候要用一个新的不等式去寻找。这个答案是一个很具体细节的答案,是我自己翻Tibishirani的lecture notes找到的,gpt在这个问题上对我的帮助几乎为零。具体原因就如我前述所说,我给到它的问题只能是一个一般化的“不收敛”问题,这个问题背后可以有各种原因,我每给到它我算法某一步骤的信息,它就有可能结合这些信息去推测一个不收敛问题的“细化变式”,但是这是一个无穷尽的过程,我自己也不知道有哪些步骤可能是引发问题的根源,哪些步骤不是。相反,第一个例子中我直接自己总结出了原因,所有gpt只需要解决那个源头即可。
接下来聊聊第三个方面,也就是gpt是一个很好的讨论伙伴。我最近几乎隔几天就要使用一下gpt的语音聊天功能,和它交流一些我最近形成的理解和观点(因为刚形成,打字写不清楚,口头表达更容易),比如下面这一则:
我自己本科的毕业论文是教育心理学的内容,领域内有一个理论把学习分成四个境界:Passive-Active-Interactive-Constructive。Passive指的是上课就听讲,Active指的是听讲的时候还动手写写笔记,比较努力地记住这些东西,Interactive指的是在学习过程中学习者提出自己的问题,与老师产生互动,Constructive是指学生自己主动地去构建出知识体系(Constructivism也是教育学中的一个重要的理论流派)。Gpt的这个功能就可以很好地满足我的interactive learning和constructive learning。
当然,这个功能发挥价值也是具有一定前提的,它需要你是一个积极主动的思考者,善于发现自己理解当中的一些问题。相反,我在统计系见过很多学生一学期从头到尾没啥问题,一考试一塌糊涂,对于这类人来说这个功能就没有办法发挥价值了。说到这里,就又让我想起了不知道在哪里看到过的一句话,大致意思是,AI并不是来淘汰人类的,它是来拉大/加剧人与人之间的差距的。在我这个讨论情境下,AI就是来拉大学习能力强和学习能力弱的人之间的学习成果差距的。
最后,我想说的是,我自己写公众号,经常会在后台和评论区收到一些提问,比如有人会说能不能讲讲这个模型,能不能说说这个问题怎么解决。我自己有时候忙碌地学习完,看到这类问题真的容易有一种“怒其不争,哀其不幸”的感觉。对于我自己来说,我博士阶段遇到的80%的问题(甚至更多),gpt都帮助我很好地解决了。虽然我是最终的落实者,但我愿意说gpt在大多数问题上做出了比我更加关键的贡献。那么,gpt对于复杂的研究问题表现尚且如此令人满意,很多各领域的基础问题就更不用说了。
这整篇文章都是随意的碎碎念(主要感觉自己是时候该更新一篇了),如果你有耐心看到这里,那么请最后再接受一下我的唠叨:如果你还没有使用gpt,请从明天起就开始玩耍它!如果你还没有开gpt会员,请一定要在经济许可的范围内购买一个!