《动手学深度学习Pytorch版》Task1-线性回归、softmax与分类模型、多层感知机

课程链接:https://www.boyuai.com/elites/course/cZu18YmweLv10OeV

知识点

线性回归

  • 模型
    房价预测的线性模型 price=wareaarea+wageage+bprice=w_{area} ⋅ area + w_{age} ⋅ age + b

  • 损失函数
    有很多可以选择,比如mse,rmse,mae等等
    mse:li(w,b)=12(y^iyi)2mse: l^i(\textbf w,b) = \frac{1}{2}(\hat y^i-y^i)^2
    L(w,b)=1ni=1nli(w,b)=1ni=1n12(wTxi+byi)2L(w, b) = \frac{1}{n}\sum_{i=1}^{n}l^i(\textbf w,b) = \frac{1}{n}\sum_{i=1}^n\frac{1}{2}(\textbf w^T\textbf x^i+b-y^i)^2

  • 优化函数
    sgd

softmax与分类模型

  • softmax可以认为是一个单层的神经网络
  • softmax的优点
    《动手学深度学习Pytorch版》Task1-线性回归、softmax与分类模型、多层感知机
  • 交叉熵
    用来计算两种分布的相似性,可以用于多分类,公式如下
    CrossEntropyLoss(p,q)=p(x)log(q(x)) CrossEntropyLoss(p , q) = -\sum p(x)log(q(x))
    对于二分类,交叉熵就可以转化为
    CrossEntropyLoss(y,y^)=i=1n((yilog(y^i)+(1yi)log(1y^i) CrossEntropyLoss(y , \hat y) = -\sum^n_{i=1} ((y^i log(\hat y^i) + (1-y^i) log(1 - \hat y^i))
    y是真实值,y^\hat y是预测值,值为0或1
    举例:有5条数据,真实label为[0,0,1,1,0],预测label为1的概率为[0.9, 0.2, 0.8, 0.1, 0.3],CrossEntropyLoss= - 15\frac{1}{5}[log(1-0.9)+log(1-0.2)+log(0.8)+log(0.1)+log(1-0.3)]
    对于多分类,假设分类数为3,有2条数据,真实label是[1,2] (实际上可以认为是[0,1,0],[0,0,1]),预测概率是[[0.6, 0.3, 0.1],[0.1, 0,4, 0.5]],CrossEntropyLoss=-12\frac{1}{2}[log(0.3) + log(0.5)]

多层感知机

单层感知机就是线性回归再加个非线性**函数,多层就是多个感知机堆叠起来。

  • 为什么需要非线性**函数?
    《动手学深度学习Pytorch版》Task1-线性回归、softmax与分类模型、多层感知机
  • 常用的几种**函数
    • sigmod
      • sigmod(x)=11+exp(x)sigmod(x) = \frac{1}{1+exp(-x)}
    • tanh
      • tanh(x)=1exp(2x)1+exp(2x)=21+exp(2x)1tanh(x) = \frac{1-exp(-2x)}{1+exp(-2x)} = \frac{2}{1+exp(-2x)} - 1
    • ReLU
      • ReLU(x)=max(x,0)ReLU(x) = max(x, 0)