深入浅出Pytorch--深度学习概览

本文概述了深度学习的发展历程,重点介绍了2015年ResNet在ILSVRCCC比赛中的突破,探讨了机器学习的数据类型及概率分布概念。深入解析了生成式与判别式模型的区别,讨论了模型训练中的过拟合问题及其解决方案,如正则化、早停法和Dropout。此外,文章还介绍了激活函数的作用和种类,以及梯度消失和爆炸问题,并对比了不同优化算法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 2015年,ILSVRCC比赛中,ResNet错误率首次降到5%以下,战胜了人类。

2. 机器学习中数据的类型

图片
文本
音频
数据
RGB / RGBA
字符串
通用格式:16bit 振幅44.1kHz采样频率

图片
1. 包含了很多像素点,一个像素一个字节,值为0~255
2. 图像处理中,处理不同图片大小,resize可以用最近邻插值双线性插值法
3. 处理流程图如下:

图片
数据增强
单张图片的归一化
数据集尺度的归一化
  • HSV: Hue(色相),Saturation(饱和度),V(Brightness Value)明度。Jittering就是在这三个值上做5~10%随机增减再返回RGB。
数据增强
随机剪裁Random Cropping
色彩Jittering
回归尺寸

文本:

文本
分词 Tokenization
去停词 Stop Words
正则化
词嵌入Embedding
  1. 分词: 连续文本根据标点空格分成单词列表。
  2. 停词: 去掉出现频率大,没有啥意义的单词,比如吧,哦,了,it, of ,the …
  3. 正则化:文本统一化,英文–>中文
  4. 词嵌入n个单词,每个单词对应m长的向量 n × m n \times m n×m矩阵。经验:m 约等于n的四次方根的1到10倍,然后转化成最近的2次幂。

3. 可以认为机器学习就是得到一种概率分布(联合分布 or 条件分布) P θ ( X , Y ) P_\theta\bold(X,Y) Pθ(X,Y) or P θ ( Y ∣ X ) P_\theta\bold(Y|X) Pθ(YX)

条件概率分布,也就是给定X数据集,得到你认为他们的标签们的概率分布。
联合概率分布,就是说 我得到的是 数据集和标签 粘连在一起,都可以看做属性的情况下的概率分布。

P ( X , Y ) = ∫ P ( Y ∣ X ) P ( X , Y ) d X P(\bold X,\bold Y) = \int P(\bold Y|\bold X) P\bold (\bold X,\bold Y)\mathrm{d}\bold X P(X,Y)=P(YX)P(X,Y)dX

4. 生成式模型(Generative Model)和判别式模型(Discriminative Model)

生成式模
判别式模型
机器学习模型
朴素贝叶斯, 隐马尔可夫, HMM
逻辑回归,条件随机场

生成式模型: 联合概率分布
判别式模型: 条件概率分布

5. 判别式模型虽然一般比生成式模型效果好,但是不能通过模型任意产生新的数据。

必备常识

  1. 可以得到的信息多—> 熵就低。 因为,可以得到信息,那么就越有一定的规则,有序,即熵低。反之,无序,无新信息可获取,熵高。比如,分子运动高度无序,熵高。 一切事物趋于无序,趋于熵增。

  2. 概率密度分布相对集中, 即(可提供给我们的信息)多, 信息熵就小。 因为,如果概率密度集中,等同于我们知道一个点概率,我们就可以知道别的点很可能也出现。

  3. 一些定义和证明
    H ( X ) = − ∫ P ( X ) log ⁡ P ( X ) d X H(\bold X) = - \int \bold P(\bold X)\log\bold P(\bold X)\mathrm{d}\bold X H(X)=P(X)logP(X)dX
    H ( X , Y ) = − ∫ P ( X , Y ) log ⁡ P ( X , Y ) d X d Y H(\bold X,\bold Y) = - \int \bold P(\bold X,\bold Y)\log\bold P(\bold X,\bold Y)\mathrm{d}\bold X \mathrm{d}\bold Y H(X,Y)=P(X,Y)logP(X,Y)dXdY
    H ( Y ∣ X ) = − ∫ P ( X , Y ) log ⁡ P ( Y ∣ X ) d X H(\bold Y|\bold X) = - \int \bold P(\bold X,\bold Y)\log\bold P(\bold Y|\bold X)\mathrm{d}\bold X H(YX)=P(X,Y)logP(YX)dX
    因此,
    H ( Y ∣ X ) = H ( X , Y ) − H ( X ) H(\bold Y|\bold X) =H(\bold X,\bold Y) - H(\bold X) H(YX)=H(X,Y)H(X)
    可以看到条件熵,能获得的信息更多。对我们更有益。

6.训练集,验证集, 测试集 划分

机器学习中可以考虑: 0.7, 0.2, 0.1
深度学习中可以考虑: 0.9 0.05, 0.05

7.避免过拟合

  1. 正则化(L1—> 拉普拉斯先验分布 |L2–>高斯先验分布)
  2. Early Stopping早停法
  3. Dropout 神经元
    总之从 1.数据集本身,2.正则,3.换模型复杂度上入手。

8. 激活函数

激活函数就是为了引入非线性!
三种常用
σ ′ = σ ( x ) ( 1 − σ ( x ) ) \sigma' = \sigma(x)(1-\sigma(x)) σ=σ(x)(1σ(x))
t a n h ′ ( x ) = 1 − t a n h 2 ( x ) tanh'(x) = 1 - tanh^2(x) tanh(x)=1tanh2(x)

ReLu 取值(0,+inf) 导数 :(0, 1)
Sigmoid 取值(0,1) 导数(0, 0.25)
Tanh 取值(-1,1) 导数(0, 1)

回归任务: 线性输出任何值, 损失函数为MSE
分类任务: 线性输出后,加入非线性比如softmax层,再输出结果标签。 损失函数是Cross Entropy损失函数

softmax:
输入指数函数后,指数归一化,就是对应的概率了。

p i = e x i ∑ k = 1 N e x k p_i = \frac{e^{x_i}}{\sum_{k=1}^{N}e^{x_k}} pi=k=1Nexkexi
思考:
如果有个 e x k e^{x_k} exk很大,大到超出了浮点数范围,
因此一般会这样:
p i = e x i − x m a x ∑ k = 1 N e x k − x m a x p_i = \frac{e^{x_i - x_{max}}}{\sum_{k=1}^{N}e^{x_k-x_{max}}} pi=k=1Nexkxmaxexixmax
x m a x = m a x ( x 1 , x 2 , . . . , x N ) x_{max} = max(x_1, x_2, ..., x_N) xmax=max(x1,x2,...,xN)

思考softmax只有两类的时候就是sigmoid


9. 梯度消失和梯度爆炸

  • 一开始权重过大, σ ′ ∗ w > 1 \sigma'*w >1 σw>1,导致爆炸
  • 一开始权重过小反向传播后, 最前面几层,梯度消失。(sigmoid , tanh)

10.SGD, Momentum, AdaGrad, Rmsprop, Adam

  • SGD : 批次随机梯度下降

  • Momentum: w t + 1 = w t − m t \bold w_{t+1} = \bold w_t - \bold m_t wt+1=wtmt
    m t = γ . m t − 1 + α d L d w t \bold m_t = \gamma.\bold m_{t-1} + \alpha\frac{dL}{d \bold w_t} mt=γ.mt1+αdwtdL

  • AdaGrad: 类似于NLMS, 记忆梯度平方
    G t = ∑ i = 1 t ( d L d w i ) 2 \bold{G_t }= \sum_{i=1}^{t}(\frac{dL}{d\bold w_i})^2 Gt=i=1t(dwidL)2
    w t + 1 = w t − α d L d w t G t + ϵ \bold w_{t+1} = \bold w_t - \frac{\alpha \frac{dL}{d\bold w_t}}{\sqrt{\bold G_{\bold t}+\epsilon}} wt+1=wtGt+ϵ αdwtdL

  • RMSprop: 不用全部记忆,用移动指数平均。
    v t v_t vt代替AdaGrad中的 G t G_t Gt
    v t = γ v t − 1 + ( 1 − γ ) ( d L d w i ) 2 \bold{v_t} = \gamma \bold{v_{t-1}}+(1-\gamma)(\frac{dL}{d\bold w_i})^2 vt=γvt1+(1γ)(dwidL)2
    w t + 1 = w t − α d L d w t v t + ϵ \bold w_{t+1} = \bold w_t - \frac{\alpha \frac{dL}{d\bold w_t}}{\sqrt{\bold v_{\bold t}+\epsilon}} wt+1=wtvt+ϵ αdwtdL

  • Adam:结合动量和速度

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

万物琴弦光锥之外

给个0.1,恭喜老板发财

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值