pytorch 神经网络
神经网络
- 1 感知神经网络
- **2. 人工神经元**
- 2.1 构建人工神经元
- 2.2 组成部分
- 2.3 数学表示
- 2.4 对比生物神经元
- 3. 深入神经网络
- 3.1 基本结构
- 3.2 网络构建
我们要学习的 深度学习(Deep Learning)是神经网络的一个子领域,主要关注更深层次的神经网络结构,也就是 深层神经网络(Deep Neural Networks,DNNs)。所以,我们需要先搞清楚什么是神经网络!
1 感知神经网络
神经网络(Neural Networks)是一种模拟人脑神经元网络结构的计算模型,用于处理复杂的模式识别、分类和预测等任务。生物神经元如下图:
生物学:
人脑可以看做是一个生物神经网络,由众多的神经元连接而成
- 树突:从其他神经元接收信息的分支
- 细胞核:处理从树突接收到的信息
- 轴突:被神经元用来传递信息的生物电缆
- 突触:轴突和其他神经元树突之间的连接
人脑神经元处理信息的过程:
- 多个信号到达树突,然后整合到细胞体的细胞核中(输入层)
- 当积累的信号超过某个阈值,细胞就会被激活(隐藏层)
- 产生一个输出信号,由轴突传递。(输出层)
神经网络由多个互相连接的节点(即人工神经元)组成
2. 人工神经元
人工神经元(Artificial Neuron)是神经网络的基本构建单元,模仿了生物神经元的工作原理。其核心功能是接收输入信号,经过加权求和和非线性激活函数处理后,输出结果。
2.1 构建人工神经元
人工神经元接受多个输入信息,对它们进行加权求和,再经过激活函数处理,最后将这个结果输出。
2.2 组成部分
- 输入(Inputs): 代表输入数据,通常用向量表示,每个输入值对应一个权重。
- 权重(Weights): 每个输入数据都有一个权重,表示该输入对最终结果的重要性。
- 偏置(Bias): 一个额外的可调参数,作用类似于线性方程中的截距,帮助调整模型的输出。
- 加权求和: 神经元将输入乘以对应的权重后求和,再加上偏置。
- 激活函数(Activation Function): 用于将加权求和后的结果转换为输出结果,引入非线性特性,使神经网络能够处理复杂的任务。常见的激活函数有Sigmoid、ReLU(Rectified Linear Unit)、Tanh等。
2.3 数学表示
如果有 n 个输入 x1,x2,…,xnx_1, x_2, \ldots, x_nx1,x2,…,xn,权重分别为 w1,w2,…,wnw_1, w_2, \ldots, w_nw1,w2,…,wn,偏置为 bbb,则神经元的输出 yyy 表示为:
z=∑i=1nwi⋅xi+by=σ(z)z=\sum_{i=1}^nw_i\cdot x_i+b \\ y=\sigma(z) z=i=1∑nwi⋅xi+by=σ(z)
其中,σ(z)\sigma(z)σ(z) 是激活函数。
例如:
线性回归:
y=∑i=1nwi⋅xi+by=\sum_{i=1}^nw_i\cdot x_i+b \\ y=i=1∑nwi⋅xi+b
线性回归不需要激活函数
逻辑回归:
z=∑i=1nwi⋅xi+by=σ(z)=sigmoid(z)=11+e−zz=\sum_{i=1}^nw_i\cdot x_i+b \\ y=\sigma(z)=sigmoid(z)=\frac{1}{1+e^{-z}} z=i=1∑nwi⋅xi+by=σ(z)=sigmoid(z)=1+e−z1
注:
- 一个神经网络就是将数据输入(输入层)通过某个函数计算(隐藏层)最终得到一个新数据(输出层)的过程
2.4 对比生物神经元
人工神经元和生物神经元对比如下表:
生物神经元 | 人工神经元 |
---|---|
细胞核 | 节点 (加权求和 + 激活函数) |
树突 | 输入 |
轴突 | 带权重的连接 |
突触 | 输出 |
3. 深入神经网络
神经网络是由大量人工神经元按层次结构连接而成的计算模型。每一层神经元的输出作为下一层的输入,最终得到网络的输出。
3.1 基本结构
神经网络有下面三个基础层(Layer)构建而成:
-
输入层(Input): 神经网络的第一层,负责接收外部数据,不进行计算。
-
隐藏层(Hidden): 位于输入层和输出层之间,进行特征提取和转换。隐藏层一般有多层,每一层有多个神经元。
-
输出层(Output): 网络的最后一层,产生最终的预测结果或分类结果
3.2 网络构建
我们使用多个神经元来构建神经网络,相邻层之间的神经元相互连接,并给每一个连接分配一个权重,经典如下:
注意:同一层的各个神经元之间是没有连接的。