前言:
本篇内容记录笔者学习深度学习的学习过程,如果你有任何想询问的问题,欢迎在以下任何平台提问!
Bilibili:space.bilibili.com/57089326
注:本文将会随着笔者的学习过程随时补充。
线性回归:
线性模型:
n维输入:x⃗=[x1,x2,…,xn]Tvec{x}=[x_1,x_2,…,x_n]^T
有:
- n维权重:w⃗=[w1,w2,…,wn]Tvec{w}=[w_1, w_2, …, w_n]^T
- 标量偏差bb
输出是输入的加权和:y=<w⃗,x⃗>+by=<vec{w},vec{x}>+b
如此,线性模型(有显式解)可以看作单层的神经网络(带权的层为1)
损失函数:
平方误差损失函数:l(i)(w⃗,b)=12(y^(i)−y(i))2l^{(i)}(vec{w},b)=frac{1}{2}(hat{y}^{(i)}-y^{(i)})^2
其中,y^(i)hat{y}^{(i)}是预测值,y(i)y^{(i)}是真实标签
随机梯度下降:
最小化目标函数 <=> 执行极大似然估计
梯度下降中的参数更新公式:wt→=wt−1→−η∂l∂wt−1→overrightarrow{w_t} = overrightarrow{w_{t-1}} – ηfrac{partial{l}}{partial{overrightarrow{w_{t-1}}}}
其中:ηη是学习率(步长的超参数),∂l∂wt−1→frac{partial{l}}{partial{overrightarrow{w_{t-1}}}}是梯度
Softmax回归:
Softmax实际上是一个分类问题;
回归:估计一个连续值
- 单连续值输出
- 自然区间R
- 与真实值的区别作为损失
分类:预测一个离散类别
- 通常多个输出
- 输出ii是预测为第ii类的置信度(对分类问题,只关心对于正确类的置信度是否足够大)
一些数据集:
MNIST:手写数字识别(10类)
ImageNet:自然物品分类(1000类)
回归→分类:
全连接层的开销:
像这样的二分图,对于dd个输入和qq个输出:
原本:参数开销O(dq)O(dq),这实在是太高了!
优化:O(dqn)O(frac{dq}{n}),nn为超参数,可以灵活指定,用以平衡参数节约和模型有效性。
交叉熵损失:
交叉熵,衡量2个概率的区别,原始公式如下:
H(p,q)=Σi−pilog(qi)H(p, q) = Sigma_i-p_ilog(q_i)
以此作为损失,有损失函数:
l(y,y^)=−Σiyilogyi^=−logyy^l(y, hat{y})=-Sigma_iy_iloghat{y_i}=-loghat{y_y}
其梯度是真实概率和预测概率的区别:
σoil(y,y^)=softmax(o)i−yisigma_{o_i}l(y, hat{y})=softmax(o)_i-y_i(o是置信度)
本文正在参加 人工智能创作者扶持计划