| 对比维度 | CNN 卷积神经网络 | RNN 循环神经网络 |
|---|---|---|
| 处理数据类型 | 空间数据(图片、矩阵) | 时序序列(句子、语音、股价) |
| 数据依赖关系 | 局部空间依赖,无时间先后 | 前后时序依赖,上下文相关 |
| 记忆能力 | 无记忆,各输入独立 | 有状态记忆,保存历史信息 |
| 运算方式 | 并行计算(整张图一起算) | 串行逐时间步计算,速度慢 |
| 长距离依赖 | 靠堆叠卷积 / 全局池化间接捕捉 | 原生难捕捉长距离依赖(LSTM 改善) |
| 典型优势 | 提取空间特征、平移不变性 | 理解上下文语序、时序规律 |
| 典型缺点 | 不懂语序、时序逻辑弱 | 串行慢、长序列梯度问题 |
总结:
CNN适合处理图片以及视频文件
RNN合适处理语言类文本、语法解析以及文档类文件
矩阵:
(数学)乘积运算法则,标记符号:A⊙B
np.dot(A,B) 要求矩阵A的行数==矩阵B的列数
1. 交换律不成立:一般 AB ≠ BA
2. 结合律:(AB)C=A(BC)
3. 分配律:A(B+C)=AB+AC
4. 单位矩阵:AE=EA=A
普通矩阵相乘,标记符号:A×B
A*B 逐元素乘法(哈达玛积 Hadamard product),对应位置元素相乘,两个矩阵形状要求一致
激活函数:
个人理解就是矩阵的值范围化处理(专业叫啥?想叫归一化的,简单函数适用,但复杂函数并不适用,因为精度并没有减少)
一、sigmoid函数

二、silu函数

二、阶跃函数

三、ReLu函数


四、softmax函数
函数作用:将所有元素调整为0-1之间的小数,并且各元素相加总和为1,作用于概率统计计算
五、tanh函数
np.tanh(x)

误差计算函数
注意:所计算后的误差值不参与梯度反向传播计算中
机器学习与神经网络的不同

池化:
个人理解就是多层矩阵降维(扁平化)
池化一般也就两种: AvgPool2d 平均池化、MaxPool2d 最大池化(听字面意思就能知道咋算的了)
卷积层:
个人理解就是多层矩阵运算

参数值说明:P(填充值,左边周围一堆0的那个)FH(卷积核高,黄色那个)FW(卷积核宽,黄色那个)S(计算步长)
以下面
nn.Conv2d(in_channels=1, out_channels=6, kernel_size=5, padding=2)
创建一个2D 卷积层,各参数含义:
in_channels=1:输入通道数为 1
代表输入是单通道图像(灰度图)
out_channels=6:输出通道数为 6
表示该层包含6 个卷积核,最终输出 6 张特征图。(实际上就是4×6通道,图片上是4×1通道)
kernel_size=5:卷积核大小为 5×5(对应黄色那个)。
padding=2:四周填充 2 个像素(左边的一圈0填充两层)
numpy数组运算说明:
- 基本操作
以二维矩阵数组U作为示例:
U[:1] 取第一行数据(0.34095,-0.0000,-0.0000,0.12052...)
U[:,0] 取第一列数据 (0.34095,-0.0000,0.43631,0.0000...) U[:,1] 取第二列数据 (-0.0000,-0.59764,-0.0000,0.49783...)
- 高级索引操作
x=np.array([[1,2,3,4,5],[6,7,8,9,10],[11,12,13,14,15]])
print(x[[0,2,1],[2,0,3]])
相当于取值 x[0,2],x[2,0],x[1,3] 元素组成一个新数组,即 [3,11 ,9]
- [...]运算符
作用:将数组内元素进行实际替换而非引用替换
代码示例:
结果:
- T运算符作用
作用:进行数组转置(三行五列变成五行三列)
结果:
- argmax运算
作用:每行取最大值索引
结果: