个人水平有限,仅记录一些理论知识及代码解释,代码实现的工程能力还需加强。
线性回归
labels += torch.tensor(np.random.normal(0, 0.01, size=labels.size()),
dtype=torch.float32)#增加一个根据正态分布随机生成的偏差
x.backward()
反向传播
- x为标量,可不填写grad_variables参数,若填写的话就相当于系数
- x不是标量,则须填写和x大小一样的参数
softmax函数
softmax用于多分类过程中,它将多个神经元的输出,映射到(0,1)区间内,可以看成概率来理解,选取概率最大的结点作为预测目标,从而来进行多分类。
交叉熵
信息量:
信息量越大,则发生概率越小。则将事件 x0 的信息量定义如下, 其中 p(x0)表示事件的发生概率, 可以看到如果事件100%发生, 则信息量为0
熵就是表示所有可能事件所产生的信息量期望
相对熵
相对熵又叫做KL散度, 用于衡量同一组随机变量x的两个分布 p(x) 与 q(x) 的差异, 在机器学习中, p(x) 常用于表示样本的真实分布, q(x)表示预测的分布, 机器学习就是不断的学习去让 q(x)来准确的拟合真实分布
相对熵越小, 表明两个分布越接近。
交叉熵
将相对熵变形
则前半部分就是 p(x) 的熵, 为一个常量, 后半部分就是交叉熵
逻辑回归的损失函数为
因为逻辑回归是一个伯努利分布,所以其实逻辑回归的损失函数 本质上就是交叉熵。
多层感知机
有输入层、隐藏层、输出层。将输入的数与权值相乘,再经由激活函数得到预测值,通过损失函数与真实值作比较,再反向传播梯度下降来更新权值