一、神经元与矩阵

  • 神经元对输入的处理可以看作是一种线性变换,即y = Wx + b,其中y是输出向量,b是偏置项(也常表示为一个向量)。
  • 这种线性变换通过矩阵乘法实现,使得神经网络能够处理多维数据。

[注]:b、x、w粗体在深度学习论文中一般表示一组矩阵或者一组向量,r1、b1、r2、b2细体一般表示一个数字。

当然,这种单纯的串联无意义,无论多少串联都只有一层,类比生物神经元

生物神经元具有兴奋和抑制两种状态,当接受的刺激高于 一定阈值时,则会进入兴奋状态并将神经冲动由轴突传出, 反之则没有神经冲动,因此引出激活函数。

二、激活函数

1、激活函数的位置

如果没有激活函数,无论网络多么复杂,最后的输出都是输入的线性组合,而纯粹的线性组合并
不能解决更为复杂的问题。
引入激活函数之后,由于激活函数都是非线性的,这样就给神经元引入了非线性元素,使得神经
网络可以逼近任何非线性函数,这样使得神经网络应用到更多非线性模型中。
为什么激活函数要求能求导?是为了保证反向传播算法能够正常进行,从而允许网络通过梯度下降等方法学习并更新权重。【反向传播算法的核心是链式求导法则,它要求网络中的每一层都能对其输入和权重求导。激活函数作为网络中的一层,其输出会作为下一层的输入。因此,为了能够通过链式求导法则计算出损失函数对权重的梯度,激活函数必须是可以求导的。

2、激活函数的真实作用

添加激活函数使预测情况无限接近于真实情况
※搜索各种激活函数加入项目中看看影响如何?

三、神经网络的参数

Wbc^{T}等参数统称为\theta表示所有的参数

四、深度学习的训练过程

1、训练过程

梯度下降:在某个点下降最快的方向进行优化使得loss变小

2、代码演示

linear(4,3)表示四个输入三个输出,那么对于下一层linear(3,2)就是三个输入两个输出。

以下代码表示上图中深度学习网络的结构

3、添加激活函数sigmoid与relu效果展示

①无添加激活函数(1-100-1)

由于没有添加激活函数,故只为线性表示,即矩阵的线性关系。

②添加sigmoid(1-100-1)和relu(1-100-1)

relu
sigmoid​​​​

③添加层数—(1-100-100-1)      

sigmod
relu

由此可见,添加一层深度拟合效果更为接近真实函数,其中relu激活函数效果更好,在添加一层效果会更好但是会产生过拟合

过拟合现象

4、界外预测

即在给出数据范围外的预测情况。

(-5,5)
(-5,10)

显然此模型对于数据外的“实战性能”不行。 

五、过拟合与欠拟合

1、过拟合

  • 定义:过拟合是指模型在训练数据上表现得过于优秀,以至于它学习到了训练数据中的噪声和细节,而未能泛化到未见过的数据。换句话说,模型过于复杂,以至于它“记住”了训练数据,而不是学习到数据的真正规律。
  • 解决方法
    • 增加数据量:更多的数据可以帮助模型学习到更通用的规律,减少过拟合。
    • 正则化:如L1、L2正则化,通过添加惩罚项来限制模型的复杂度。
    • Dropout:在训练过程中随机丢弃一些神经元连接,防止模型过于依赖某些特定神经元。
    • 早停法:在验证集性能开始下降时停止训练。
    • 简化模型:减少模型的层数或参数数量。

2、欠拟合 

  • 定义:欠拟合是指模型在训练数据上表现不佳,因为它过于简单,无法捕捉到数据的真正规律。换句话说,模型没有学习到足够的信息来做出准确的预测。
  • 解决方法
    • 增加模型复杂度:增加模型的层数、参数数量或使用更复杂的模型结构。
    • 延长训练时间:确保模型有足够的时间来学习数据。
    • 特征工程:提取更多有用的特征或组合现有特征,以增加模型的输入信息。
    • 调整学习率:适当的学习率可以帮助模型更好地收敛。
Logo

脑启社区是一个专注类脑智能领域的开发者社区。欢迎加入社区,共建类脑智能生态。社区为开发者提供了丰富的开源类脑工具软件、类脑算法模型及数据集、类脑知识库、类脑技术培训课程以及类脑应用案例等资源。

更多推荐