一、前言
参考资料和图片均来自以下链接:
https://www.youtube.com/watch?v=aircAruvnKk&list=PLZHQObOWTQDNU6R1_67000Dx_ZCJB-3pi
https://www.youtube.com/watch?v=bfmFfD2RIcg
https://www.youtube.com/watch?v=KuXjwB4LzSA
https://www.youtube.com/watch?v=Ilg3gGewQ5U
3Blue1Brown的个人空间-3Blue1Brown个人主页-哔哩哔哩视频
神经网络——最易懂最清晰的一篇文章-CSDN博客
二、几个问题
首先我想引入几个问题:
1.对于神经网络中的 "神经元" 是什么,如何工作的?
2.多层感知器是什么?他和常出现的CNN、RNN、GNN等有什么关系?
3.输入神经网络的信息只能是数字形式的吗?为什么是或者否?
三、多层感知器的组成部分和工作原理
很多人(包括我自己)可能在起初接触神经网络时获取的大部分信息也许都是关于CNN、RNN等的,入门的门槛一下子就拉高了,也许从经典的多层感知器(MLP)入门神经网络会更加轻松,一级打boss比较难哈。
1.神经元:
神经元是神经网络的基本单元,它接收输入,对其进行处理,并生成输出。
神经元通常执行加权求和的操作,将输入乘以权重,加上一个偏置项,然后通过一个激活函数来产生输出。
数学表达如下图:(注意每一个神经元都要进行这样的操作)
每一层神经元接收上一层或下一层的输入,对应前向传播和反向传播,每一个神经元代表一个激活函数。不是只要激活值为正数就激活,所以要设置偏执项。对应以下视频10:59处,原话为:"但有时 即使加权和大于0时 你也不想把神经元点亮,可能只有当和大于例如10的时候才让它激发,此时你就需要加上一个偏置值 保证不能随便激发"。【官方双语】深度学习之神经网络的结构 Part 1 ver 2.0_哔哩哔哩_bilibili
2.层次结构:
输入层:接收原始数据作为网络的输入。
隐藏层:在输入和输出层之间,可以有一个或多个隐藏层构成了MLP的核心,它们负责处理输入数据,提取特征,并通过非线性变换学习输入数据的复杂模式和特征。
输出层:产生网络的最终输出,例如分类或回归任务的预测值。
神经网络的输入信息必须是数字形式的,因为神经网络的运算基于数学运算,如加法、乘法和激活函数等,这些都需要数值型数据才能进行。因此,任何非数字形式的数据,在输入到神经网络之前,都需要被转换成数字形式。这个转换过程通常称为特征工程或数据预处理。
3.连接和权重:
节点之间全连接:每个节点与前一层的所有节点相连。
每个连接都有一个权重,表示输入信号在该连接上传递时的强度或重要性。
每个神经元还有一个偏置项,用于调整激活函数的输出。
4.激活函数:
激活函数的作用是在神经元中引入非线性,这是MLP能够解决非线性问题的关键。
常见的激活函数包括Sigmoid、tanh、ReLU(Rectified Linear Unit)等。
此外必须的还有(下面的不必一下子就理解):
5.前向传播:
在前向传播过程中,信息从输入层开始,逐层向前传递,直到输出层。
每一层的输出都是下一层的输入。
6.损失函数:
损失函数衡量了神经网络的预测与实际值之间的差异。
训练神经网络的目标是最小化这个损失函数。
7.反向传播和优化:
通过反向传播算法,神经网络可以根据损失函数的梯度来更新权重和偏置。
优化器,如SGD(随机梯度下降)、Adam等,用于指导如何调整权重和偏置来最小化损失函数。
四、其余神经网络
其余的神经网络如CNN、RNN、GNN等都是在处理某一种任务是表现良好的,例如CNN专门针对图像数据设计、RNN能够处理时间序列和文本等有时间顺序的数据、GNN专为图数据设计等等,但他们都包含以上七部分。