莫凡 pytorch

1 什么是神经网络(机器学习)

  • 输入层、隐藏层、输出层

  • 首先由大量得带有标签的图片进行训练,当预测出错误的结果时,由正确结果和错误结果之间的误差进行反馈,不断进行调整,以获得更好的结果
    image

  • 通过激活函数对不同神经元的重要性进行调整,使得网络得到想要的结果
    image

2 神经网络:梯度下降(Gradient Descent)

  • 梯度下降算是网络优化(Optimization)的一个方法
    image

  • 目标:让真实值和实际值的误差尽可能小

  • 方法:不断调整梯度
    image

梯度躺平的点一般不止一个,但是即便是一个局部最优,也可以出色地完成任务

image

3. 神经网络的黑盒处理

  • 相当于将输入一次次转换成代表特征
    image

4. Numpy和pytorch对比

image

  • numpy array 和 torch tensor

5. 激励函数

  • 解决不能用线性方程(Linear)表示的问题
    image

  • 方法:将线性函数变为非线性,加一个AF()

image

  • AF就是非线性激活函数
    image

  • 可以自己创建非线性激活函数,但是函数必须是可以微分的,因为反向传播的过程中需要用到,把误差传递回去

  • 在隐藏层比较少的时候,可以随意选择隐藏层,在隐藏层比较多的时候,需要选择慎重选择(卷积选relu,循环可以relu或tanh)

image

6.激励函数(Activation)

使得结果进行转化

image

7. Rrgression回归

预测一个值

  • 创建网络--搭建网络

image

  • 优化网络--计算误差

学习率不能太大,学习越快越不好

image

  • 训练网络

预测结果-计算loss-优化
image

可以用mayplotlib可视化

8. Classification 分类

image

  • 模型创建--网络调用
    image

image

  • 优化-计算损失
    image

  • 训练模型

image

9. 快速搭建神经网络

  • 利用Sequential

image

10. 保存提取

  • 只保存网络
  • 保存网络的参数

11. 批数据训练

batch_size:就是每批多少个
epoch: 对数据整体训练几次
step:总数量/batch_size
shuffle:决定是否打乱每次epoch取得数据

batch_size=5的案例:
image

12. 优化器Optimizer加速神经网络训练(深度学习)

  • 将数据拆分,并进行处理
  • 几种加速训练的方法
    image

image

image

image

13. Optimizer优化器

目的: 降低loss

  • 不同的优化函数

image

  • 计算loss--保存
    image

  • 训练

image

  • 效果:

image

14. 卷积神经网络

  • 对图片中每一小块的信息进行处理
  • 对重要的信息进行整理

image

  • 压缩长宽,增加高度
    image

  • 卷积层会无意丢失一些信息,因此采用池化层进行处理(尽量不压缩长宽,交给池化)

image

  • 常见搭建结构
    输入图像-卷积层-最大池化-卷积层-最大池化-全连接-分类
    image

14.1 CNN卷积神经网络

  • 创建CNN
    in_channels:输入的层的高度
    out_channels:输出的层的高度
    kernel_size:扫描区域的大小
    stride:每次移多少距离
    padding:扫面区域不够大时,需要填充什么

image

15. 循环神经网络RNN

  • 由前一状态的s(t),共同决定当前状态s(t)+s(t+1),前后状态相关。

  • 应用:作曲、写文章、写代码

15.1 LSTM RNN (长短期记忆)

普通RNN的问题:

  • 梯度弥散
    由后向前乘以权重(小于1),最终loss结果为0,梯度消失

image

  • 梯度爆炸
    由后向前乘以权重(大于1),最终loss结果为无穷大,梯度爆炸

image

15.2 RNN 分类

TIME_STEP:扫描多少步
INPUT_SIZE:每步多少个像素

image

num_layers:细胞里面的层数,越大计算耗时越多
batch_first: True->(batch,time_step,input) False->(time_step,batch,input)

image

15.3 RNN 回归

  • 由前面时间点的信息和当前时间点的信息,对下一时间点的信息进行预测

16. 自编码/非监督学习(Autoencoder)

  • 给特征属性进行降维
  • 压缩encoder 解压decoder

image

  • 定义

image
image

17. DQN(Reinforcement Learning 强化学习)

image

image

image

18. GAN生成对抗网络(深度学习)

由无意义的数字->生成对应有意义的东西

新手画家用随机灵感画画->鉴赏家会收到新手画家和专业画家的画作,他来判断哪副是谁画的->鉴赏家一般判断,一边告诉新手画家如何画的更像著名画家
->这样新手画家就知道如何画出更好的画作了。

image

image

19. 为什么torch是动态的

  • 可以处理多个不确定维度的参数,而tensorflow只能处理一个不断变化的参数

20. 过拟合(over-fitting)

学的太好了

解决方法:

  • 增加数据量

  • 利用正则化(L1\L2 regularization)
    image

  • 神经网络:Dropout ->随机忽略一些神经元

image

案例:

各网络层之间加一个Dropout,0.5表示每次传递一半

image

image

21. 批标准化(Batch Normalization)

将数据统一化

image

前向传递中调整:
image

网络结构:
image

效果:
image

原理:
image

在每一层有效地传递下去,就是Batch Normalization:
image

论文:Batch Normalization:Accelerating Deep Network Training by Reducing Internal Corvariate Shift

代码:
image

posted @   Trouvaille_fighting  阅读(208)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示

目录导航