神经网络的基本知识
感知机

输入:来自其他 n 个神经元传递过来的输入信号
处理:输入信号通过带权重的连接进行传递, 神经元接受到总输入值将与神经元的阈值进行比较
输出:通过激活函数的处理以得到输出
感知机由两层神经元组成, 输入层接受外界输入信号传递给输出层, 输出层是M-P神经元(阈值逻辑单元)




若感知机对训练样例 (x,y) 预测正确,则感知机不发生变化;否则根据错误程度进行权重的调整。
若两类模式线性可分, 则感知机的学习过程一定会收敛;否则感知机的学习过程将会发生震荡,单层感知机的学习能力非常有限, 只能解决线性可分问题。
多层感知机

输出层与输入层之间的一层神经元, 被称之为隐层或隐含层, 隐含层和输出层神经元都是具有激活函数的功能神经元。
感知机-多层前馈神经网络

神经网络原理
“神经网络是由具有适应性的简单单元(神经元模型)组成的广泛并行互联的网络, 它的组织能够模拟生物神经系统对真实世界物体所作出的反应” 。
生物神经网络:每个神经元与其他神经元相连, 当它“兴奋”时, 就会向相连的神经元发送化学物质, 从而改变这些神经元内的电位;如果某神经元的电位超过一个“阈值”, 那么它就会被激活, 即“兴奋”起来, 向其它神经元发送化学物质。
神经网络的原理: 通过前向传播计算预测值,通过损失函数衡量预测值与真实值之间的差距,通过反向传播计算梯度并更新参数,以及通过激活函数引入非线性因素。
- 前向传播:数据从输入层经过隐藏层流向输出层,每层通过权重和偏置进行线性变换,并经过激活函数得到非线性输出。
- 激活函数:为神经网络引入非线性,提升模型的表达能力。
- 损失函数:衡量预测值与真实值之间的差距,如均方误差用于回归,交叉熵用于分类。
- 反向传播:根据损失函数的梯度信息,从输出层逐层向输入层计算参数的梯度,并更新参数,以最小化损失函数值。
- 梯度下降:一种优化算法,根据计算出的梯度按一定学习率更新网络参数,逐步逼近最优解。
误差逆传播算法(Error BackPropagation, 简称BP)




参数个数:d个输入神经元连接q个隐层神经元 d*q,q个隐层神经元连接l个输出神经元 q*l,再加 q+ l个阈值,最终结果是(d+l+q)*q+l。


工作流程:
(1)将输入示例提供给输入层神经元,逐层将信号前传,直到产生输出结果
(2)计算输出层与真实值的误差,将误差使用BP算法传播到整个网络,对连接权重及阈值进行调整。
(3) 该迭代过程循环进行,直到达到某些停止条件为止。(例如训练误差达到了很小的值,或者整个数据集运行了20轮)

多层前馈网络表示能力 :只需要一个包含足够多神经元的隐层, 多层前馈神经网络就能以任意精度逼近任意复杂度的连续函数 。
多层前馈网络局限 :神经网络由于强大的表示能力, 经常遭遇过拟合。表现为:训练误差持续降低, 但测试误差却可能上升 。如何设置隐层神经元的个数仍然是个未决问题.。
实际应用中通常使用“试错法”调整 缓解过拟合的策略 。
早停:在训练过程中, 若训练误差降低, 但验证误差升高, 则停止训练 。
正则化:在误差目标函数中增加一项描述网络复杂程度的部分, 例如连接权值与阈值的平方和。
卷积神经网络

卷积:平移不变模式,提取局部特征。
池化:对图像进行缩放。

卷积网络一般框架:卷积层+激活函数+池化层+全连接层。
卷积+激活+池化:出现多次,用于提取特征。
全连接层:最后一次出现,用于分类。


输入层
输入层:输入层是对数据进行预处理的阶段,将输入的数据(图像/文字)转换成网络能够计算的数字。

卷积层
卷积层(Convolutional layer),卷积神经网络中每层卷积层由若干卷积单元(卷积核)组成,每个卷积单元的参数都是通过反向传播算法优化得到的。
卷积运算的目的是提取输入的不同特征,第一层卷积层可能只能提取一些低级的特征如边缘、线条和角等层级,更多层的网络能从低级特征中迭代提取更复杂的特征。
- 卷积核(filter/kernel):用于对输入图像进行共享权值的遍历
- 步长(stride):卷积核在图片上移动的大小
- 填充(padding):满足输出的图像的维度要求





激活层
往模型中加入非线性元素,可以更好地解决复杂的问题。

池化层
池化层的主要的作用是压缩数据和参数的量(保持最显著的特征),通过去掉上一层的输出中不重要的信息,进一步减少参数数量。Pooling的方法很多,常用方法有最大池化与均值池化。

全连接层(Fully Connected Layer,简称FC层)

- 特征整合:全连接层将前一层的所有输出与当前层的每个神经元连接,能够整合前一层的局部或全局特征,生成新的特征表示。【将多层的特征映射成一个一维的向量】
- 非线性变换:通过激活函数(如ReLU、Sigmoid等),全连接层引入非线性,增强模型的表达能力,使其能够拟合更复杂的函数。
- 输出转换:在分类任务中,全连接层通常作为最后的输出层,将高维特征映射到类别空间。【对卷积层获得的不同的特征进行加权,最终目的是得到一个可以对不同类别进行区分的得分】【输出层就是获得对应每个类别的得分】
- 参数学习:全连接层通过大量可训练参数(权重和偏置)学习数据的内在规律,提升模型的性能。
输入:前一层的所有输出。
输出:每个神经元的加权和经过激活函数后的结果。
参数:权重矩阵 WW和偏置向量 b,通过反向传播优化。

卷积网络在本质上是一种输入到输出的映射,它能够学习大量的输入与输出之间的映射关系,而不需要任何输入和输出之间的精确的数学表达式,只要用已知的模式对卷积网络加以训练,网络就具有输入输出对之间的映射能力。卷积神经网络的训练过程与传统神经网络类似,也是参照了反向传播算法。

循环神经网络
循环神经网络是一种对序列数据建模的神经网络。
RNN不同于前向神经网络,它的层内、层与层之间的信息可以双向传递,更高效地存储信息,通常用于处理信息序列的任务。
RNN主要用来处理序列数据,在传统的神经网络模型中,每层内的节点之间无连接,但是循环神经网络中当前神经元的输出与前面的输出也有关,网络会对前面的信息进行记忆并用于当前神经元的计算中。




...
LSTM





遗忘门,LSTM的第一步是决定从细胞状态中丢弃哪些信息。该门会读取h_t-1和x_t,输出一个在0到1之间的数值确定细胞状态保留的信息量。

这里包含两个部分。首先,sigmoid 层称 “输入门层” 决定将要存放在细胞状态的信息量的大小。然后,一个 tanh 层创建一个新的候选值向量会被加入到状态中。下一步,我们会将这两个信息来产生对状态的更新。

更新细胞状态,将 遗忘门得到的数值和旧状态相乘 ,将sigmoid输出和产生的候选值相乘,最后相加,得到新的细胞状态。

输出门,基于计算出的细胞状态确定输出的整个细胞单元的状态。
首先,使用sigmoid层来确定将细胞状态的哪部分输出。。。

激活函数
激活函数: 一种添加到人工神经网络中的函数,旨在帮助网络学习数据中的复杂模式。
在神经元中,输入的input经过一系列加权求和后作用于另一个函数,这个函数就是这里的激活函数。类似于人类大脑中基于神经元的模型,激活函数最终决定了是否传递信号以及要发射给下一个神经元的内容。
激活函数为神经网络引入了非线性元素,使得网络能够逼近复杂的非线性函数,从而解决更广泛的问题。
常见的激活函数有Sigmoid、Tanh、Relu和Softmax。


Softmax
Softmax 是一种常用的激活函数,主要用于多分类任务中,将神经网络的输出转换为概率分布。
它的核心作用是将一组任意实数转换为概率值,这些概率值的总和为 1,便于表示每个类别的预测概率。

2. Softmax函数的特性
-
输出为概率分布:Softmax函数的输出是一个概率分布,每个元素的值介于0和1之间,且所有元素的和为1。这使得它非常适合用于多分类任务中,表示每个类别的预测概率。
-
放大差异:Softmax函数通过指数运算放大了输入值之间的差异。较大的输入值会被赋予更高的概率,而较小的输入值则会被赋予较低的概率。
-
可微性:Softmax函数是连续可微的,这使得它能够与梯度下降等优化算法结合使用,用于训练深度学习模型。
3. Softmax函数的应用
Softmax函数广泛应用于机器学习和深度学习中,尤其是在多分类任务中。以下是一些典型的应用场景:
-
多分类任务:在神经网络中,Softmax通常作为最后一层的激活函数,将模型的原始输出(如得分或相似性)转化为概率分布。例如,在手写数字识别任务中,Softmax可以将模型的输出转化为每个数字(0-9)的概率。
-
注意力机制:在Transformer等模型中,Softmax函数用于计算注意力权重,表示输入序列中每个位置的重要性。
-
概率建模:在生成模型(如语言模型)中,Softmax函数用于计算每个可能输出的概率分布。
我们希望模型输出y(j)可以视为属于类j的概率,然后选择具有最大输出值的类别argmaxy(j)作为我们的预测。softmax:最大概率的标签,能够将未规范化的预测变换为非负数,并且总和为1,同时能够让模型保持可导。
损失函数
损失函数定义了拟合结果和真实结果之间的差异,作为优化的目标直接关系模型训练的好坏。

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)