清华大模型公开课第二季 | Lecture 2 神经网络与大模型基础 Part 1

大纲

  • 引言

    • 课程介绍
    • 主讲人介绍
    • 课程内容概述
  • 神经网络基础知识

    • 神经网络的定义和结构

      • 神经元的基本单元
      • 多维输入和权重
      • 激活函数的作用
    • 神经网络的层级结构

      • 输入层、隐藏层和输出层
      • 权重和偏置的矩阵表示
    • 激活函数的选择和作用

      • Sigmoid函数
      • 双曲正切函数
      • ReLU函数
  • 大型语言模型的基本信息

    • 神经网络的层数增加的原因

    • 神经网络的学习方法

      • 拟合机制
      • 损失函数和梯度下降
    • 神经网络在语言理解中的应用

      • 语言的离散性和符号系统
      • One-hot编码和词嵌入
      • 语言模型的建模方法
  • RNN和CNN在语言模型中的应用

    • RNN的基本原理和结构

      • 循环神经网络的定义
      • 隐藏状态和序列数据处理
    • CNN的基本原理和结构

      • 卷积神经网络的定义
      • 局部特征提取
    • RNN和CNN的比较

      • 计算速度和参数数量
      • 反向传播链路的长度
  • Transformer模型的介绍

    • Transformer的基本原理和结构

      • 注意力机制的引入
      • 编码器和解码器的结构
    • Transformer在机器翻译中的应用

      • 序列处理和信息保留
    • Transformer的优势和特点

      • 计算速度和记忆能力
      • 模型结构的灵活性

内容总结

一句话总结

本文深入探讨了神经网络和大型语言模型的基础知识,包括神经网络的结构、激活函数的选择、以及RNN、CNN和Transformer在语言模型中的应用。

观点与结论
  • 神经网络的层数增加可以提高模型的表达能力。
  • 激活函数在神经网络中是不可或缺的,它确保模型具有更复杂的表达能力。
  • RNN和CNN在处理序列数据时各有优势,CNN在计算速度上更快,而RNN能更好地处理长序列。
  • Transformer模型通过注意力机制替代了RNN的结构,提高了计算速度和记忆能力。
自问自答
  1. 为什么神经网络需要激活函数?

    • 激活函数确保模型具有更复杂的表达能力,防止随着层数的增加而退化为单层网络。
  2. RNN和CNN在处理序列数据时有什么不同?

    • RNN能处理长序列并保留信息,而CNN计算速度更快,但主要提取局部特征。
  3. Transformer模型相比RNN有哪些优势?

    • Transformer通过注意力机制提高了计算速度和记忆能力,更适合处理长序列数据。
  4. 什么是One-hot编码,它在语言模型中有什么作用?

    • One-hot编码是一种将离散符号转换为数学上可运算向量的方法,用于语言模型的输入表示。
  5. 词嵌入在语言模型中有什么作用?

    • 词嵌入将高维的One-hot向量降维到低维空间,使模型更容易处理和学习。
关键词标签
  • 神经网络
  • 大型语言模型
  • 激活函数
  • RNN
  • CNN
  • Transformer
  • 词嵌入
  • 注意力机制
适合阅读人群
  • 机器学习初学者
  • 神经网络研究者
  • 自然语言处理工程师
  • 数据科学家
术语解释
  • 神经网络:一种模仿人脑结构设计的机器学习架构。
  • 激活函数:在神经网络中,用于处理输入和权重内积后得到的输出,引入非线性因素。
  • RNN(循环神经网络) :一种能够处理序列数据的神经网络,通过隐藏状态保留之前的信息。
  • CNN(卷积神经网络) :一种主要用于图像处理的神经网络,通过卷积核提取局部特征。
  • Transformer:一种基于注意力机制的神经网络模型,广泛应用于自然语言处理任务。
  • 词嵌入:将高维的One-hot向量映射到低维空间的过程,便于模型处理和学习。
  • 注意力机制:一种模拟人类注意力分配的机制,用于提高模型处理长序列数据的能力。

讲座回顾

在这里插入图片描述

大家好,我是曾国洋。非常高兴今天我们有机会一起分享我们在大模型和神经网络方面的一些研究成果。

在这里插入图片描述

  • 韩旭因临时有事晚到,前半节课由我主讲。
  • 课程内容包括神经网络基础知识和大型语言模型基本信息。
  • 课程节奏可能较快,鼓励随时提问。
  • 讲解节奏较慢,适合不同技术水平的同学。

今天本来是我和韩旭共同分享,但韩旭因临时有事会晚些到达。因此,前半节课将由我主讲。今天的课程内容主要包括神经网络的基础知识以及大型语言模型的基本信息。课程节奏可能会较快,若有任何疑问,欢迎随时举手提问,我们将及时解答。我通常讲解这些内容时节奏较慢,因此适合不同技术水平的同学。当然,大家随时可以提出问题。

在这里插入图片描述

可以随时去问。第一部分内容主要讲一下就是

  • 神经网络是模仿人脑设计的机器学习架构。
  • 神经网络的基本学习单元是神经元。
  • 神经元处理多维输入x,通过权重w和偏置b进行计算。
  • 计算结果经过激活函数处理后输出。

在机器学习领域,除了神经网络,还存在多种其他机器学习算法,但目前神经网络的提及频率较高。神经网络是一种模仿人脑结构设计的机器学习架构,其中最基本的学习单元是神经元。一个神经元支持多维输入,记作x,具有可学习的权重w和偏置b。通过输入与一维权重向量w的内积加上偏置b,再经过激活函数处理,从而得到输出。

  • 神经元设计模仿人类神经元,接收多信号输入并产生激活输出。
  • 大脑中的激活输出通常表现为开启或关闭状态。
  • 早期神经元设计采用简单的激活函数,类似开关。
  • 随着神经元数量增加,构建出更复杂的神经网络。
  • 神经网络中,每层权重对应一个A值,A值转换为输出。

这个神经元的输出设计思路与人类神经元相似,它能够接收多个信号输入,并通过内部的复杂反应,最终产生一个激活输出。在大脑中,这种激活输出已有广泛研究,通常表现为开启或关闭状态。因此,早期的神经元设计也与此类似,最初的激活函数类似于一个简单的开关。随着神经元数量的增加,我们可以构建出更复杂的神经网络,这是目前常见的神经网络结构。在这种结构中,每一层的权重w会对应得到一个A值,这些A值随后被转换为相应的输出。

  • 向量级的W可以转换为矩阵,并通过矩阵乘法处理。
  • 输入X是向量,W是矩阵,乘法后加上偏置,再通过逐元素激活函数。
  • 这种结构构成了现代神经网络的基本架构。
  • 神经网络包括输入层、输出层和隐藏层。

其实我们可以将向量级的W转换为一个矩阵,然后通过矩阵乘法。输入X是一个向量,W是一个矩阵,向量乘以矩阵再加上一个向量维度的偏置,然后通过一个逐元素的激活函数,这个激活函数是对向量的每一维分别进行的。通过这种方法,基本上就能得到现代神经网络的一个基本架构。随着我们将神经网络堆叠在一起,最早的这部分蓝色部分被称为输入层,即我们提供的数据部分,最后输出的部分被称为输出层,而在中间的这些层我们称之为隐藏层。

  • 神经网络中的中间状态(“黑盒子”内部状态)意义不明确,由模型学习赋予。
  • 激活函数在神经网络中不可或缺,确保模型具有复杂的表达能力。
  • 去掉激活函数会导致模型表达能力下降,可能退化为单层网络。
  • 早期激活函数如开关函数,符合直觉。

在神经网络中,那些既非输入也非输出的状态,即我们通常所说的“黑盒子”内部状态,其实际意义取决于模型学习的内容。与输入和输出不同,这些中间状态的意义并不明确,而是由模型通过学习来赋予的。在此过程中,有几个关键点值得关注。首先,为何必须引入激活函数?是否可以仅通过一系列数值运算来替代激活函数?实际上,这种做法并不恰当。如果我们回顾之前的公式,假设去掉激活函数F,公式将简化为单纯的矩阵运算,这将导致模型的表达能力大幅下降。因此,激活函数在神经网络中是不可或缺的。无论我们如何构建神经网络,其中必然包含激活函数,它位于矩阵运算之间,确保模型具有更复杂的表达能力,并防止随着层数的增加而退化为单层网络。最早的激活函数,如我之前提到的类似开关的函数,非常符合我们的直觉。

当输入信号较小时,它处于关闭状态;而当输入信号较大时,它则处于开启状态。有人可能会好奇,为何不采用Z字型函数,而是选择平滑版本。实际上,选择平滑版本是有其特定原因的。

这有一点点原因,这个我会在后面介绍。后来经过一些实践发现这个东西效果不佳。大家发现这样一个函数是最小的。

  • 初始激活函数(如Sigmoid)存在局限性,难以处理复杂情况和有效学习。
  • 引入双曲正切函数(hyperbolic tangent)作为替代,被广泛采用。
  • 最新研究表明,双曲正切函数在性能上优于其他函数。

最大值为0,最大值为1,未激活时为0,激活时为1。这种机制使得模型难以处理复杂的情况或进行有效的学习。因此,后来提出了将激活函数从Sigmoid函数下移至双曲正切函数(hyperbolic tangent),这种方法被广泛采用。最新的技术表明,双曲正切函数相较于其他函数表现更为出色。

无少的这种开关型的大家发现就这种ReLU的max和零值max就够了。然后现在的话在那个大模型。

第二是说,为什么一定要增加神经网络的层数呢?前面已经讲过,IT领域为何需要增加神经网络的层数。

  • 单层神经网络的表达能力有限。
  • 增加网络层数可以提升表达能力,并在某些中间层揭示有价值的信息。
  • 在计算机视觉任务中,中间层(隐藏空间维度)能从简单图片中提取信息。

实际上,这里存在一些原因。对于单层的神经网络而言,其表达能力相对有限。然而,当我们增加网络层数时,可以观察到在某些中间状态,网络能够揭示出一些有价值的信息。例如,在进行计算机视觉任务时,前面提到的中间层属于隐藏空间的维度。此时,我们发现网络能够从最简单的图片中提取信息。

  • 模型通过自我学习提取边缘信息,逐步形成与物件相关的信息,最终得到目标级别的信息。
  • 增加模型层数有助于模型理解内容,每层执行特定任务。
  • 计算机视觉和自然语言处理领域中,模型处理信息的方式类似。
  • 已讲解神经网络的构成、搭建方法及激活函数运算,接下来将讨论学习方法。

它能提取这些边缘信息,再将边缘信息逐步处理,从而形成与物件相关的信息,最终得到目标级别的信息。在这个过程中,这些信息其实是模型通过自我学习获得的。通过增加模型的层数,它可以像人类一样大致理解内容。在每一层中,模型都在执行特定的任务。这在计算机视觉(CV)领域中尤为明显,而在自然语言处理(NLP)领域也有类似的机制。前面已经讲解了神经网络的构成方式、搭建方法以及其中涉及的激活函数如何运算。接下来,我们将讨论神经网络的学习方法。

  • 材料内容包含较多数学知识,但整体难度不高。
  • 神经网络模型的学习过程可简化为拟合机制。
  • 模型通过学习输入数据,映射到相应的输出,以构建有效模型。

学习我们希望学习的数据,这份材料包含较多数学内容,但整体较为简单。对于神经网络模型而言,其学习过程可以简化为一种拟合机制。最基本的是,我们有一些输入,我们希望模型能够学习这些输入,并对应到某些输出,从而构建一个有效的模型。

  • 任务目标:找到最优参数 ( \Theta ) 以使神经网络 ( F_{\Theta} ) 的输出 ( y_i ) 与目标值尽可能接近。
  • 神经网络 ( F_{\Theta} ):视为黑盒,输入 ( x_i ) 通过网络处理后输出。
  • 优化过程:通过优化 ( \Theta ) 完成模型训练。
  • 损失函数 ( L ):用于度量模型输出与目标之间的距离。

这个任务可以在数学上构建成一种最优化的任务,目的是找到最优参数,使得对于所有输入 ( x_i ),能够找到最合适的 ( y_i )。这里涉及到的符号 ( F {\Theta} ) 代表神经网络,如果将其视为一个黑盒,输入通过 ( F{\Theta} ) 处理后输出,其中 ( \Theta ) 是网络的参数。我们的目标是找到最优的 ( \Theta ),使得预测目标值与模型输出值尽可能接近。通过优化 ( \Theta ),我们可以完成模型的训练。此外,符号 ( L ) 代表损失函数,用于度量模型输出与目标之间的距离。

  • 拟合任务示例:从天气预测降水量,使用平方函数计算预期值与真实值的差异。
  • 收敛特性:平方函数计算结果会收敛到均值。
  • 数学方法应用:神经网络学习机制可通过数学方法定义和求解。
  • 常见求解方法:梯度下降法,适用于高维数学模型。

这其实也是可以很多样化的。举个最简单的例子,比如我们去做一个拟合,比如我们要拟合从今天的天气到今天的降水量,我们可以使用一个平方函数,即我们的预期值和真实值之间一减,然后求个平方。这样的话,你会发现它最后会收敛到一个均值。如果大家感兴趣,其实可以从数学上去算一算。在这里,这个L也有很多现成的选项,在后边我们也会稍微介绍到一些。当我们从数学上能很好地把神经网络学习的机制定义清楚时,我们就可以通过数学的方法去求解它了。在这里,一个最常见的方法叫做梯度下降,我相信大家也有所听说过。梯度其实就代表,如果我们把神经网络通过数学表达,把它看成一个高维的或者说一个比较数学的模型。

说到数学的运算,这个运算其实我们可以对它进行求导。这个求导的话,

  • 描述了数值求导(符号求导)的过程,指出其可能较为复杂。
  • 强调数值求导的运算相对简单。
  • 举例说明数值求导的应用,即在特定输入点求导数,并解释导数近似于该点的切线。

它是一个数值的求导,即符号求导。对于符号求导而言,其过程可能较为复杂。然而,数值求导的运算则相对简单。例如,对于某个当前的输入,我们能够求得该输入点上的导数。根据导数的定义,这实际上近似于在该位置上拟合的一条切线。

  • 优化算法中常用沿导数方向更新参数的方法。
  • 以二次函数 ( x^2 ) 为例,导数 ( 2x ) 指导参数更新方向。
  • 当 ( x ) 小于 0 时,向正方向移动;当 ( x ) 大于 0 时,向负方向移动。
  • 该方法可能陷入局部最优解而非全局最优解。
  • 神经网络的复杂结构有助于避免局部最优问题。

在优化算法中,我们通常会提到一种方法,它会沿着导数的方向进行参数更新。通过这种方法,算法最终会收敛到一个极值点。以最简单的二次函数为例,假设我们考虑函数 ( x^2 ),其导数为 ( 2x )。当 ( x ) 小于 0 时,导数为负,我们会沿着负导数的方向移动,即向正方向前进。相反,当 ( x ) 大于 0 时,导数为正,我们会沿着负导数的方向移动,即向负方向前进。通过这种方式,我们可以逐渐逼近最小值。然而,这种方法也存在一些问题,例如对于某些简单的函数,它可能不会达到全局最优解,而是陷入局部最优解。这种情况在函数中存在小坑时尤为常见。尽管最初人们对此问题感到担忧,但随着神经网络参数量的增加和模型深度的增长,人们发现神经网络结构能够变得足够复杂,从而避免这些问题。

  • 在实际应用中,局部最优解通常不会极其糟糕,可以从多个初始位置找到相对较优的解。
  • 学习率(alpha)是梯度下降方法中的关键参数,影响每一步的步长。
  • 学习率设置过大可能导致跳出合理范围,设置过小则会导致进展缓慢。

在实际应用中,很难遇到那种极其糟糕的局部最优解,导致陷入其中的情况。这使得我们基本上从多个初始位置都能找到一个相对较优的解,虽然不一定是全局最优解,但至少是一个较为优秀的解。此外,还有一个特别的参数称为alpha,实际上就是学习率。这里的学习率指的是梯度下降方法中每一步所走的距离,因为这是一个迭代方法,每一步如果走得太远,可能会跳出合理范围。例如,如果学习率设置得过大,可能会从当前点向负方向跳跃,结果反而对应到一个更大的值。因此,学习率在这里也是一个非常关键的因素。如果学习率设置得太小,问题则是进展缓慢,尽管步幅小,但前进速度慢。

)

  • 行进缓慢可以获得相对优秀的位置。
  • 除了梯度下降法,还有其他方法寻找局部最优解。
  • 梯度下降法在大规模神经网络训练中因其经济性和可实现性被广泛采用。

如果我们行进缓慢,至少能够达到一个相对优秀的位置。此外,除了梯度下降法,实际上还有其他多种方法可以用来寻找局部最优解。在数学领域,这方面的研究相当丰富。然而,在大规模神经网络训练中,梯度下降法因其经济性和可实现性而被广泛采用,成为寻找局部最优解的一种有效方法。

在实操过程中,其实就需要用到我们在计算梯度时的一个链式法则。

  • 在数学中,对多维向量求导的结果等于函数对每个分量的偏导数。
  • 利用链式法则,例如求Y对X的导数dydx,等于U对X的导数乘以Y对U的导数。
  • 这种方法可以用于分解复杂的神经网络,求出导数。
  • 这种方法还带来了一个额外要求。

在数学中,计算函数F对一个多维向量求导时,其结果等于F对每个分量的偏导数。在此过程中,我们可以利用链式法则。例如,求Y对X的导数dydx,实际上等于U对X的导数乘以Y对U的导数。基于这种方法,我们可以将复杂的神经网络分解,从而求出导数。这种方法还带来了一个额外要求。

在这里插入图片描述

大模型&AI产品经理如何学习

求大家的点赞和收藏,我花2万买的大模型学习资料免费共享给你们,来看看有哪些东西。

1.学习路线图

在这里插入图片描述

第一阶段: 从大模型系统设计入手,讲解大模型的主要方法;

第二阶段: 在通过大模型提示词工程从Prompts角度入手更好发挥模型的作用;

第三阶段: 大模型平台应用开发借助阿里云PAI平台构建电商领域虚拟试衣系统;

第四阶段: 大模型知识库应用开发以LangChain框架为例,构建物流行业咨询智能问答系统;

第五阶段: 大模型微调开发借助以大健康、新零售、新媒体领域构建适合当前领域大模型;

第六阶段: 以SD多模态大模型为主,搭建了文生图小程序案例;

第七阶段: 以大模型平台应用与开发为主,通过星火大模型,文心大模型等成熟大模型构建大模型行业应用。

2.视频教程

网上虽然也有很多的学习资源,但基本上都残缺不全的,这是我自己整理的大模型视频教程,上面路线图的每一个知识点,我都有配套的视频讲解。

在这里插入图片描述

在这里插入图片描述

(都打包成一块的了,不能一一展开,总共300多集)

因篇幅有限,仅展示部分资料,需要点击下方图片前往获取

3.技术文档和电子书

这里主要整理了大模型相关PDF书籍、行业报告、文档,有几百本,都是目前行业最新的。
在这里插入图片描述

4.LLM面试题和面经合集

这里主要整理了行业目前最新的大模型面试题和各种大厂offer面经合集。
在这里插入图片描述

👉学会后的收获:👈
• 基于大模型全栈工程实现(前端、后端、产品经理、设计、数据分析等),通过这门课可获得不同能力;

• 能够利用大模型解决相关实际项目需求: 大数据时代,越来越多的企业和机构需要处理海量数据,利用大模型技术可以更好地处理这些数据,提高数据分析和决策的准确性。因此,掌握大模型应用开发技能,可以让程序员更好地应对实际项目需求;

• 基于大模型和企业数据AI应用开发,实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能, 学会Fine-tuning垂直训练大模型(数据准备、数据蒸馏、大模型部署)一站式掌握;

• 能够完成时下热门大模型垂直领域模型训练能力,提高程序员的编码能力: 大模型应用开发需要掌握机器学习算法、深度学习框架等技术,这些技术的掌握可以提高程序员的编码能力和分析能力,让程序员更加熟练地编写高质量的代码。
在这里插入图片描述

1.AI大模型学习路线图
2.100套AI大模型商业化落地方案
3.100集大模型视频教程
4.200本大模型PDF书籍
5.LLM面试题合集
6.AI产品经理资源合集

👉获取方式:
😝有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费】🆓

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员辣条

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值