首页 > 其他分享 >深度学习原理

深度学习原理

时间:2024-06-21 18:59:37浏览次数:22  
标签:函数 权重 模型 非线性 学习 2.2 深度 线性 原理

目录

一、 简介

 二、用一个求函数表达式的问题解析深度学习原理

2.1 线性和非线性函数

2.1.1 线性函数(Linear Function)

2.1.2 非线性函数(Non-linear Function)

2.2 深度学习原理

2.2.1 函数分段

2.2.2 引入非线性函数

2.2.3 非线性函数图形变换

2.2.4 线性操作与非线性操作示例

2.2.5 函数求解的神经网络图表达

2.2.6 损失函数

2.2.6.1 反向传播算法

2.2.6.2 优化算法

2.2.7正则化


一、 简介

        AIGC(Artificial Intelligence Generated Content,即人工智能生成内容)是一种利用人工智能技术自动创建文本、图像、音频和视频等内容的技术。AIGC的核心是通过机器学习和深度学习算法,让计算机模型学会理解和生成人类语言,从而能够自动产生有价值的内容。这是几个关键概念的关系:

         生成式AI系统的设计通常基于神经网络模型,尤其是自然语言处理(NLP)领域的模型。这些模型的设计灵感往往来源于人脑的结构和功能,通过模拟神经元的连接和信息传递机制,构建复杂的网络结构。

        右边的节点网络中,最左侧的3个浅紫色的点是输入节点,最右边的2个红色节点是输出节点,中间的2层就是处理层(又叫隐藏层神经元)

一个典型的神经网络模型可能包括以下三部分:

        (1)输入层:接收输入数据,如文本、语音或图像。

        (2)处理层:通过多层的神经网络对输入进行处理和学习,提取关键信息和特征。

        (3)输出层:根据学习到的信息生成响应或内容。

        对神经网络简化,得到只有一个输入、1个处理和1个输出的模型:

这个图里,输入数据X经过线性函数l和非线性函数r计算,最终得到结果Y’。

要怎么理解上面这个图呢?

下面我们将它用一个例子来讲清楚其原理。

 二、用一个求函数表达式的问题解析深度学习原理

首先提出问题:求下图中的y=f(x)关于x的表达式:

可以看到这个函数曲线大致分为了3部分,我们把它标注为下图:

         如果要知道f(x)的表达式,那把1、2、3的表达式求出来,他们组合的结果就是f(x)的函数表达式了。

2.1 线性和非线性函数

        在进行下一步之前,咱们得先了解下线性函数和非线性函数的区别:

2.1.1 线性函数(Linear Function)

        线性函数是指输入和输出之间存在线性关系的函数。在线性函数中,输出是输入的加权和,可能还会加上一个偏置项。线性函数的一般形式可以表示为:

y=wx+b

        其中,w 是权重,x 是输入,b 是偏置项,而 y 是输出。线性函数的特点是,当输入增加时,输出成比例地增加;当输入减少时,输出成比例地减少。线性函数无法捕捉输入和输出之间的复杂关系,如非线性模式或特征。

2.1.2 非线性函数(Non-linear Function)

        非线性函数是指输入和输出之间不是简单比例关系的函数。非线性函数可以引入数据的复杂模式和结构,使得神经网络能够学习和模拟更加复杂的函数映射。非线性函数在神经网络中又比称为激活函数,常见的激活函数包括:

  • ReLU 函数:ReLU(x)=max(0,x)
  • Sigmoid 函数:....
  • Tanh 函数:....
  • Swish 函数:Swish(x)=xσ(x)

        非线性函数的特点是,它们可以使得神经网络的输出不仅仅依赖于输入的线性组合,还能够捕捉输入之间的相互作用和复杂的非线性关系。这对于解决实际问题非常重要,因为现实世界中的很多问题都是非线性的。

2.1.3 线性与非线性在神经网络中的作用

        在线性神经网络中,如果网络只包含线性函数,那么无论网络有多少层,最终的输出都是输入的线性组合。这意味着多层线性网络的功能与单层线性网络相同,因为线性函数的复合仍然是线性的。这就是为什么我们需要非线性激活函数的原因。非线性激活函数打破了线性,使得每一层都能够学习到新的、更复杂的特征表示,从而使神经网络能够解决更加复杂的任务。

例:

Y=a(c(ex+f)+d)+b

3次线性操作后合并同类项,最终结果会等于:

Y= Ax+B

还是线性函数。

2.2 深度学习原理

2.2.1 函数分段

回到上面的例子,要求解的函数图像分割成3部分

对应上面的1、2、3分段的函数,3部分的表达式组合即可表达函数的y=f(x)。

2.2.2 引入非线性函数

接下来引入一个非线性函数,本例使用上文提到的ReLU函数。其图形如下所示:

2.2.3 非线性函数图形变换

对于坐标轴上的任意一段分段图形,都可通过调整R(x)函数获得,如下图所示:

对应到函数表达式上为:

R(x)1=R(x-1)

R(x)2=3R(x-4)-5

2.2.4 线性操作与非线性操作示例

以R(x)2=3R(x-4)-5 这个变换后得到的图像为例:

对数据X来说,

  1. x进行一次线性操作: y=x-4 (参数分别是1和4)

  1. 线性操作的结果做一次非线性操作:y=R(x-4)

非线性操作的结果再做一次线性操作:3R(x-4)-5 (参数分别是3和5)

 

自此,输入x通过线性+非线性+线性操作,得到一个任意位置的R(x)函数。

2.2.5 函数求解的神经网络图表达

我们将上述例子的求解方法按照前面的神经图来输出,就得到了下图:

        图示有3个神经元,每个路径经过1次线性操作L,1次非线性操作R,1次线性操作L,得到1个分段函数f(x)1,3个路径得到3个分段函数组成预测函数Y’。

        然而,正常情况下的要求的函数图像并不是规则的,于是就需要更多的处理节点、更多层数的隐藏层去处理,以得到更拟合原有函数y=f(x)的预测结果。

通过在隐藏层增加更多层的处理层,来获得更精确的预测结果。

隐藏层越多、单层的处理节点越多,其参数就越多,模型也越加复杂,结果也就接近正确值,正是因为中间隐藏层很多、很深,所以神经网络模型也叫深度学习模型。

在这个过程中,模型训练就是通过调整每个线性函数的参数(权重Weights和偏移量Biases),使结果更准确的拟合。

2.2.6 损失函数

既然是根据分段来拟合,那必然少不了与原始函数的差异,拟合函数与原函数的差异,我们用损失函数来说表示,损失函数是衡量模型预测结果与真实结果之间差异的指标。在训练过程中,模型的目标是最小化这个损失。

如:使用绝对值均值(Y与Y’在相同x的差值的绝对值的均值)来衡量损失函数的值。在计算得到损失函数的值后,通过优化算法、反向传播算法来调整权重,以找到最小化损失函数的权重值

2.2.6.1 反向传播算法

反向传播算法是神经网络训练中的核心,它通过计算损失函数相对于每个权重的梯度来更新权重。这个过程从输出层开始,逐层向输入层反向传播误差信号,每个神经元的权重都会根据误差梯度进行调整。反向传播通常与梯度下降算法结合使用,以找到最小化损失函数的权重值。

2.2.6.2 优化算法

优化算法用于更新网络中的权重,以减少损失函数的值。最常见的优化算法是随机梯度下降(SGD)及其变体,如Adam等。这些算法通过在每次迭代中调整权重来逐步优化模型的性能。

2.2.7正则化

在深度学习中,正则化是一种用于防止过拟合的技术。过拟合是指模型在训练数据上表现很好,但在未见过的测试数据上表现较差的现象。这通常是因为模型学习到了训练数据中的噪声和细节,而没有捕捉到数据的潜在分布或泛化特征。

常见的正则化方法包括:

L1正则化(Lasso):在损失函数中添加权重的绝对值之和,倾向于产生稀疏权重矩阵,即许多权重为零。

L2正则化(Ridge):在损失函数中添加权重的平方和,倾向于让权重均匀地分布,而不是选择少数几个特征。

Dropout:在训练过程中随机丢弃(即暂时移除)网络中的一些节点,防止模型对特定的神经元过度依赖。

早停(Early Stopping):在训练过程中监控模型在验证集上的表现,当性能不再提升或开始下降时停止训练,以避免过拟合。

正则化是深度学习中提高模型性能的重要手段,通过适当的正则化策略,可以使模型在未知数据上表现得更好。

OK,到这里我们已经把深度学习的整个流程讲完了,总结一下:

深度学习的核心部分,是通过一系列的学习和训练过程来掌握数据的特征和模式。

这个过程可以分为以下几个关键步骤:

(1)前向传播:

当输入数据(如文本序列)被送入模型时,它会通过每一层的神经元进行前向传播。每个神经元都会接收来自前一层的输入,通过加权求和(考虑每个连接的权重)后,通常会通过一个非线性激活函数(如ReLU)进行转换,产生输出到下一层。这个过程会一直重复,直到达到输出层。

(2)权重初始化:

在训练开始之前,模型中的权重通常会被初始化为随机值。这是为了防止权重在训练初期就陷入局部最优解,确保模型能够开始学习。权重初始化的方法有很多种,如随机初始化等,每种方法都旨在帮助模型更有效地学习。

(3)模型训练与参数优化

在训练过程中,模型通过损失函数来衡量模型预测结果与真实结果之间差异,在计算得到损失函数的值后,通过优化算法、反向传播算法来调整权重,以找到最小化损失函数的权重值。这个过程通常涉及到监督学习,即模型通过比较预测结果和真实结果的差异来不断调整自身参数。为了防止模型过拟合(即在训练数据上表现很好但在未见数据上表现差),通常会在训练过程中加入正则化项。

通过这些步骤,模型的处理层能够逐渐学习到如何从输入数据中提取特征,并将这些特征转化为有意义的输出。随着训练的进行,模型的性能会逐渐提高,最终能够生成符合预期的内容。

相信通过这篇文章,也能明白各种大模型里的提到的亿级的参数、模型训练等都是什么意思了。

 

 

标签:函数,权重,模型,非线性,学习,2.2,深度,线性,原理
From: https://blog.csdn.net/lbr15660656263/article/details/139867974

相关文章

  • ChatGPT的原理简介
    ChatGPT的原理简介目录ChatGPT简介自然语言处理基础词嵌入序列模型注意力机制生成式预训练模型Transformer架构GPT模型ChatGPT的工作原理预训练微调生成回复应用和局限应用场景局限和挑战未来发展方向总结ChatGPT简介ChatGPT是OpenAI开发的一种生成式预训练模型......
  • ch10 降维与度量学习
    降维的动机从k-近邻算法的角度看降维如果给定测试样本\(x\)与最近邻样本\(z\),那么正确率就为\[P(acc)=P(c_1=c_2|x,z)=\sum{c\in\mathcal{C}}P(c_1=c_2=c|x,z)=\sum_{c\in\mathcal{C}}P(c_1=c|x)P(c_2=c|z)\]如果在度量空间中满足密采样假......
  • 你知道什么是微调吗?大模型为什么要微调?以及大模型微调的原理是什么?
    “预训练(pre+train)+微调(fine+tuning),是目前主流的范式**”**在学习大模型的过程中,怎么设计神经网络和怎么训练模型是一个重要又基础的操作。但与之对应的微调也是一个非常重要的手段,这里就着重讲一下为什么要微调,其优点是什么以及微调的本质。01、什么是微调?学习一......
  • 初中各科学习方法和技巧,家长不妨收藏起来,请转告孩子!
      在孩子的学习生涯中,初中是一个至关重要的阶段。随着知识难度的加深和学科的增多,很多学生会出现跟不上班级进度的情况。这时候,作为家长,我们需要关注孩子的学习状况,并采取有效的措施来帮助他们。为了更好地指导孩子学习www.zjia8.com本文将分享初中各科的学习方法和技巧家......
  • 孩子学习差还不努力,父母坚持“1效应4招”,让宝宝主动爱上学习
      在学校里不难发现,成绩好的人往往能越学越好,而成绩差的人却往往陷入一种恶性循环。  因为听不懂、跟不上,就会导致成绩不好,新的知识还没讲明白,更别说谈把过去欠缺的知识点补回来了。时间一长每天都像在努力学习,但不会的知识点越来越多,成绩也是没有一点起色。这就是学......
  • 强化学习(Reinforcement Lrarning,RL)02:马尔科夫决策过程
    强化学习(ReinforcementLrarning,RL)02:马尔科夫决策过程强化学习(ReinforcementLrarning,RL)02:马尔科夫决策过程状态与状态空间动作与动作空间策略函数状态转移与状态转移函数奖励轨迹回报与折扣回报一个重要性质强化学习(ReinforcementLrarning,RL)02:马尔科夫决策过程马......
  • 游戏AI的创造思路-技术基础-机器学习(2)
    本篇存在大量的公式,数学不好的孩子们要开始恶补数学了,尤其是统计学和回归方程类的内容。小伙伴们量力而行~~~~~游戏呢,其实最早就是数学家、元祖程序员编写的数学游戏,一脉相承传承至今,囊括了更多的设计师、美术家、音乐家、作家、导演、演员等等,发展形成了今天大家看到的繁花......
  • 深入解析:Yarn 锁文件的工作原理与最佳实践
    Yarn是一个现代的包管理器,旨在提供快速、可靠和安全的依赖管理。它在JavaScript项目中广泛使用,尤其是在使用React等前端框架时。Yarn的一个核心特性是它的锁文件,它确保了项目依赖的一致性和可重复性。本文将深入探讨Yarn锁文件的工作原理,并提供一些最佳实践,以帮助开......
  • Python学习之爬虫简单例子
    importBeautifulSoupimportpandasaspdimporturllib.request,urllib.errordefrequestUrl(url):  headers={    'User-Agent':"Mozilla/5.0(Macintosh;IntelMacOSX10_14_6)AppleWebKit/537.36(KHTML,likeGecko)Chrome/81.0.404......
  • 带你学习Mybatis之拦截器
    mybatis拦截器mybatis拦截器也叫做插件,mybatis允许开发者自定义拦截器对SQL语句执行过程中的某一个点进行拦截。默认mybatis允许拦截Mybatis中的四大核心对象:Executor中的方法、ParameterHandler的方法、ResultSetHandler的方法以及StatementHandler中的方法Executor......