一 线性回归
1 模型:
以房屋价格为例,假设价格只取决于面积和房龄两个因素,则其之间的关系为线性关系,线性回归假设输出与各个输入之间是线性关系:
2 损失函数:
在模型训练中,我们需要衡量价格预测值与真实值之间的误差。通常我们会选取一个非负数作为误差,且数值越小表示误差越小。一个常用的选择是平方函数。 它在评估索引为的样本误差的表达式为
3 优化函数-随机梯度下降:
小批量随机梯度下降:先选取一组模型参数的初始值,如随机选取;接下来对参数进行多次迭代,使每次迭代都可能降低损失函数的值。在每次迭代中,先随机均匀采样一个由固定数目训练数据样本所组成的小批量(mini-batch),然后求小批量中数据样本的平均损失有关模型参数的导数(梯度),最后用此结果与预先设定的一个正数的乘积作为模型参数在本次迭代的减小量。
1-随机初始化模型的参数 2-对参数多次迭代尽可能减小损失函数值 3-每次迭代中随机采样一个固定数目样本即一个小批量 4-求小批量中平均损失参数的导数(梯度)
4 线性回归模型从零开始的实现:
步骤:1-生成数据集 2-使用图像来展示生成的数据 3-读取数据集 4-初始化模型参数 5-定义用来训练参数的训练模型 6-定义损失函数(使用的是均方误差损失函数) 7-定义优化函数(使用的是小批量随机梯度下降) 8-当数据集、模型、损失函数和优化函数定义完了之后就可来准备进行模型的训练
5 线性回归模型使用pytorch的简洁实现
二 Softmax与分类模型
1 softmax的基本概念:
1-一个简单的图像分类问题,输入图像的高和宽均为2像素,色彩为灰度。图像中的4像素分别记为.假设真实标签为狗、猫或者鸡,这些标签对应的离散值为 2-权重矢量 3-softmax回归同线性回归一样,也是一个单层神经网络。由于每个输出的计算都要依赖于所有的输入,softmax回归的输出层也是一个全连接层。3-softmax运算不改变预测类别输出,相当于一个概率问题
2 softmax回归的矢量计算表达式为:
3 交叉熵损失函数:
4 获取Fashion-MNIST训练集和读取数据:
图像内容更加复杂的数据集Fashion-MNIST;
torchvision包,它是服务于PyTorch深度学习框架的,主要用来构建计算机视觉模型。torchvision主要由以下几部分构成:
torchvision.datasets: 一些加载数据的函数及常用的数据集接口;
torchvision.models: 包含常用的模型结构(含预训练模型),例如AlexNet、VGG、ResNet等;
torchvision.transforms: 常用的图片变换,例如裁剪、旋转等;
torchvision.utils: 其他的一些有用的方法。
三 多层感知机
1 多层感知机的基本知识MLP
多层感知机就是含有至少一个隐藏层的由全连接层组成的神经网络,且每个隐藏层的输出通过激活函数进行变换。
激活函数:
1-ReLU函数
2-Sigmoid函数
3-tanh(双曲正切)函数可以将元素的值变换到-1和1之间:
2 关于激活函数的选择
ReLu函数是一个通用的激活函数,目前在大多数情况下使用。但是,ReLU函数只能在隐藏层中使用。
用于分类器时,sigmoid函数及其组合通常效果更好。由于梯度消失问题,有时要避免使用sigmoid和tanh函数。
在神经网络层数较多的时候,最好使用ReLu函数,ReLu函数比较简单计算量少,而sigmoid和tanh函数计算量大很多。
在选择激活函数的时候可以先选用ReLu函数如果效果不理想可以尝试其他激活函数。