pytorch学习前的知识补充,简要笔记,配套b站炮哥课程和自己的心得。
一、全连接神经网络
整体结构:输入层-隐藏层-输出层。y=model(x)。卷积神经网络将隐藏层用卷积核表示
结构单元(神经元)
x, w, b都是矩阵。w和b一直更新。
希望找到最优的w和b,使得输出的y最接近真实值。
激活函数
1. 特点:一般都是非线性的,少数线性有特殊作用。往往神经网络越深,效果越好,但是需要避免过拟合。
2. 激活函数经典类型
a. sigmoid激活函数:优点是适合做分类任务:值域(0,1),代表事情的概率。其导数值域(0,0.25),缺点是反向传播时可能梯度消失(导数趋于0),我们希望导数值是一个平稳值。关于0不对称。梯度更新走的太远,w和b不能更新。
b. Tanh函数:值域是(-1,1),关于0对称,导数值域(0,1).优点是训练的更快,更容易收敛。更容易找到w和b
c. ReLU:本质上分段函数,折线。解决了梯度消失,但是梯度直接死亡,没有指数,计算更简单。
d. Leaky ReLU, 解决了神经元死亡的问题。但是无法为正负输入提供一致的关系预测(不对称).
前向传播:y=model(x)
本质上就是从x求y。
损失函数:
前向传播预测值和真实值的误差。
有标签--有监督:每一个x对应一个或一种label。
均方误差:例如-1,0,1时,平均误差为0,错误,取平方/绝对值,让误差大于等于0.再求均值。可以判断经过多少论收敛。
回归问题
连续值预测问题
反向传播
过程:前向传播--计算误差--反向传播。
利用反向传播更新w和b:梯度下降法。
梯度下降法
沿着梯度最大的地方走,跟新w和b。
a:学习率,控制迭代步长。0.05-0.001
总结
二、卷积神经网络
黑白图像:灰度图单通道
彩色图像:rbg三通道图
通道个数代表提取的特征个数,不一定代表颜色
图片个数x长x宽x通道数
全连接的缺点:按行展开,导致信息缺失,所以机器学习一般是卷积核提取信息
1、卷积
核=w
2、填充
卷积后结果变小了,但是经过卷积-池化-卷积-池化...最后矩阵只有1x1了,太小无法进行卷积运算了,所以要填充边框,让他恢复到原来的大小。
步幅和填充都可以控制输出图的大小。
3、运算
卷积后的特征图大小
P:填充;S:步幅
向下取整
4、多通道
对应位置相加,最后只得到一张特征图(卷积核数量是1的话)。
5、池化
最大池化:找区域里最大值。区域:感受野。
平均池化:区域内平均值。