一、线性回归(预测连续集)
基本因素:
1. 模型
2. 数据集:这个数据上面寻找模型参数来使模型的预测价格与真实价格的误差最小
3. 损失函数(衡量价格预测值与真实值之间的误差):
4. 优化函数 - 随机梯度下降:
a) 先选取一组模型参数的初始值,如随机选取;接下来对参数进行多次迭代,使每次迭代都可能降低损失函数的值。在每次迭代中,先随机均匀采样一个由固定数目训练数据样本所组成的小批量(mini-batch)BB,然后求小批量中数据样本的平均损失有关模型参数的导数(梯度),最后用此结果与预先设定的一个正数的乘积作为模型参数在本次迭代的减小量。
(i)初始化模型参数,一般来说使用随机初始化;
(ii)我们在数据上迭代多次,通过在负梯度方向移动参数来更新每个参数。
两个向量相加的两种方法:
1.向量相加的一种方法是,将这两个向量按元素逐一做标量加法。
2.将这两个向量直接做矢量加法
后者比前者运算速度更快。因此,我们应该尽可能采用矢量计算,以提升计算效率
线性回归模型从零开始的实现
1. 生成数据集
2.使用图像来展示生成的数据.
3. 读取数据集
4. 初始化模型参数
5. 定义模型
6. 定义损失函数、定义优化函数
7. 训练
线性回归模型使用pytorch的简洁实现(能够更加快速地完成模型的设计与实现)
1. 生成数据集
2. 读取数据集
3. 定义模型
4. 初始化模型参数
]5. 定义损失函数、定义优化函数
6. 训练
二、softmax和分类模型(预测种类、离散型)
交叉熵损失函数:更适合衡量两个概率分布差异的测量函数
模型训练和预测:等于正确预测数量与总预测数量之比。
获取Fashion-MNIST训练集和读取数据
torchvision主要由以下几部分构成:
torchvision.datasets: 一些加载数据的函数及常用的数据集接口;
torchvision.models: 包含常用的模型结构(含预训练模型),例如AlexNet、VGG、ResNet等;
torchvision.transforms: 常用的图片变换,例如裁剪、旋转等;
torchvision.utils: 其他的一些有用的方法。
softmax从零开始的实现
1.获取训练集数据和测试集数据
2.模型参数初始化
3.对多维Tensor按维度操作
4.定义softmax操作
5.定义损失函数
6.定义准确率
7.训练模型
8.模型预测
softmax的简洁实现
1.初始化参数和获取数据
2.定义网络模型
3.初始化模型参数
4.定义损失函数
5.定义优化函数
6.训练
多层感知机
含单隐藏层的多层感知机的设计,也就是将隐藏层的输出直接作为输出层的输入
激活函数
ReLU函数提供了一个很简单的非线性变换。
ReLU(x)=max(x,0). \text{ReLU}(x) = \max(x, 0).
ReLU(x)=max(x,0).
sigmoid函数可以将元素的值变换到0和1之间:
tanh(双曲正切)函数可以将元素的值变换到-1和1之间:
ReLu函数是一个通用的激活函数,目前在大多数情况下使用。但是,ReLU函数只能在隐藏层中使用。
用于分类器时,sigmoid函数及其组合通常效果更好。由于梯度消失问题,有时要避免使用sigmoid和tanh函数。
在神经网络层数较多的时候,最好使用ReLu函数,ReLu函数比较简单计算量少,而sigmoid和tanh函数计算量大很多。
在选择激活函数的时候可以先选用ReLu函数如果效果不理想可以尝试其他激活函数。
文本预处理分为四个步骤:
1.读入文本
2.分词
3.建立字典,将每个词映射到一个唯一的索引
4.将文本从词的序列转换为索引的序列,方便输入模型
语言模型
n元法:n元语法通过马尔可夫假设简化模型,马尔科夫假设是指一个词的出现只与前面
n个词(一段序列由多个词组成)相关,即n阶马尔可夫链
P(w1,w2,…,wT)=∏t=1TP(wt∣wt−(n−1),…,wt−1).
n元法的缺点:参数空间过大、数据稀疏
循环神经网络