首页 / 资讯中心 / 文章详情

河以AI - - Transformer原理篇(一)

河以AI - - Transformer原理篇(一) ★ FEATURED ARTICLE
前言笔者研一时毅然决然加入生物信息这一行那还是2023年。彼时GPT还多半只能用来聊天解闷甚至偶尔被拿来调侃。回想初学那年主要学R语言和Linux常游走于简书、CSDN、GitHub之间。半年后开始接触Python大约又过了一年才脱离“调包侠”身份开始会写一些简单的循环和函数到毕业时前后学了两年才勉强能写一些流程化脚本。读博士以来人工智能飞速发展GPT-3、GPT-4、GPT-5以及Claude Code、DeepSeek、Kimi、GLM轮番轰炸一度让我怀疑自己这两三年学习的意义。但随着使用越来越多我慢慢有了自己的理解。首先我越来越倾向于把商用大语言模型当作生物信息学里的“仪器”来用。上世纪PCR还要靠三个水浴锅来完成2000年代逐渐有了全自动PCR仪我大四时做过数十次RNA提取如今2020年代也有了核酸自动提取仪。生物信息学领域也早该有自动化程度相当的工具。虽然一个没有生物信息学背景的人也能借AI做出分析并初步检验分析是否正确但他无法判断每个部分的轻重取舍无法判断整个流程设计中的逻辑与美感也无法判断当一份数据存在多个生信方向时哪个方向最能体现数据的价值。有了AI就像有了一台自动化仪器以前手写的代码像protocol基于经验的prompt像实验操作。只有这三者都具备才称得上一个现代化的bioinformatics analyst。此前我做过一些蛋白质设计学习内容的分享但这个课题由于各种原因无法继续于是转而探索大模型。笔者是生物学背景计算机知识不强这段时间对大语言模型进行了艰难的探索总算学到一点皮毛在此分享以资互相学习。说到大模型就绕不开最经典的Transformer模型。第一篇推文就从Transformer模型讲起吧本篇内容主要整理自B站UP主“飞天闪客”BV号BVNCgVzoEG9由笔者重新整理。目录1符号主义与联结主义2 激活函数3 神经网络4 损失函数5 梯度下降6 反向传播7 训练1符号主义与联结主义在开始的开始如果要学习人工智能你必须承认一点函数能够表示一切functions describe the world。最初的人工智能研究大多将现实世界抽象为符号然后通过运算规则得到一个结果用结果来解释世界。最简单的例子就是已知直角三角形的两个边长a和b通过勾股定理a² b² c²就可以知道斜边长c。这便是符号主义Symbolism。人工智能源于数理逻辑即通过逻辑符号来表达思维执着于找到精准的万能公式。从1950年代中期到1980年代后期符号主义AI一直是AI研究的主要范式。对于简单的数学和物理公式来说符号主义非常适用但对于图像识别比如识别一张图片是小狗还是小猫要让计算机通过程序来完成识别显然没那么简单。甚至对于翻译这种看似简单的任务在人工智能出现之前不同语言的不同语法也让计算机的翻译表现平平。20世纪80年代以来联结主义Connectionism逐渐成为主流。它强调仿人脑模型即将神经元之间的联结关系作为人工神经网络的基础。接下来要讲的内容都属于联结主义先从一些基础知识讲起。2 激活函数先以简单的二维空间为例最简单的函数是然而线性函数过于简单无法描述复杂关系在人工智能中往往用激活函数Activation Functiong(x)将线性关系变为非线性关系常用的激活函数有这两个函数是最常用的两个激活函数虽然简单但是非常好用。3 神经网络在实际应用中自变量往往不止一个可以写为如果一层激活函数不够灵活则可以套更多的激活函数来拟合更加复杂的非线性关系这样就可以构造出非常复杂的非线性关系而且理论上可以逼近任意的连续函数但是如果所有函数都这样表示实在是太让人头大了因此我们需要一种更简单的表示方式其中蓝色的圆圈称为“神经元”。如果存在多个输入则如下表示如果嵌套了多个函数则在水平方向增加被嵌套的函数由于不直接显示在最终结果中其被称为隐藏层hidden layer这样我们就构建了最简单的神经网络neural networksNN神经网络是一种模仿生物神经网络动物的中枢神经系统特别是大脑的结构和功能的数学模型或计算模型用于对函数进行估计或近似。上图从左到右这种逐层进行“加权求和加偏置激活函数”计算最终得到输出结果的过程就叫做前向传播forward propagation。4 损失函数我们构建人工智能模型的过程其实就是通过一组现实世界的自变量x和因变量y来得到一组w和b使得公式得到的y与真实的y误差最小其中的w和b其实也就是权重。为了求得这组w和b我们需要表示预测y与真实y的函数这个函数就叫损失函数Loss Function为了解决绝对值的分类讨论问题我们将绝对值改为平方为了消除样本量大小的影响再除以样本数就得到了均方误差mean squared error, MSE。我们的目的就变成了那么如何求解让L最小的w和b的值呢观察损失函数后发现其实就是求该函数的极值点也就是让其导数等于0求极值点。由于概念较为抽象我们先把b去掉以(1,1)(2,2)(3,3)(4,4)为例来解释一下将 x11,y11,x22,y22,x33,y33,x44,y44 带入L(w)可以得到一个简单的二次函数对其求导所以yx就是让损失函数最小也就是最拟合真实数据的直线。注意到我们这里只保留了w而忽略了b损失函数是一个二维图形因此求极值只需要对w求导即可5 梯度下降而更常见的情况是w和b都存在于损失函数这就要求wb两个变量的损失函数的最小值这时损失函数就是一个三维图形了由于此时损失函数难以求导人们无法通过公式计算得到损失函数的极值点只能通过遍历所有wb的方法来找到使得L(w,b)最小的点那么只要让w,b一直往偏导数的反方向变化具体原理请自学高数找到使得L(w,b)最小的点即可这种方法叫做梯度下降gradient descent其中 η 能控制下降的速度称为学习率learning rate它是机器学习中一个常见的超参数 η 过大容易难以找到最小位置 η 过小会导致训练速度过慢且容易陷入局部最小。6 反向传播梯度下降的想法听起来很美好但仍需求解偏导数如果嵌套的函数很多那么求最内层的偏导会非常复杂。那么有没有一种简单的方法来求损失函数的偏导呢我们以一个最简单的神经网络举例在这个神经网络中我们需要求w1w2b1b2的值因此需要求四个偏导数我们以求最内层的w1偏导数为例把求L的w1的偏导拆分为三个简单的偏导相乘这种方法叫做链式法则chain rule也就是微积分中的复合函数求导。由于这种方法是从右向左依次计算偏导逐步更新每一层的参数直到得到所有参数因此又称为反向传播back propagation。7 训练到这里我们就掌握一次训练所需的全部步骤先进行前向传播输入x通过函数f(x)计算得到y然后进行反向传播计算出损失函数关于每个参数的梯度每个参数都向着梯度反方向变化一点点这就构成了神经网络的一次训练通过多轮的训练直到找到损失函数最小的一组w,b我们也就构建了一个神经网络模型。作者bioinforiver2026年10月20日本系列内容来源于网络仅用于分享学习不得用于任何商业用途。参考文献1.【闪客】一小时从函数到 Transformer飞天闪客2025年7月21日BVNCgVzoEG92.CSDN - VIP深度学习中常见的10种激活函数Activation Functionuna_mattina72023年3月21日https://blog.csdn.net/qq_42691298/article/details/126590726
阅读完成 · 觉得有帮助?
咨询建站