当前位置: 首页 > article >正文

机器学习-感知机-神经网络-激活函数-正反向传播-梯度消失-dropout

文章目录

  • 感知机
    • 工作流程
  • 神经网络
    • 区别
    • 各种各样的神经网络
  • 激活函数
    • 激活函数类型
      • Sigmoid 函数
      • ReLU函数
      • Leaky ReLU 函数
      • Tanh 函数
  • 正向传播
  • 反向传播
  • 梯度消失(gradient vanish)
    • 如何解决
  • Dropout
    • 使用
  • PyTorch实战神经网络算法(手写MNIST数字识别)
    • view
    • softmax和log-softmax
    • cross-entropy loss
    • nll_loss
    • batch size底层运算机制

感知机

感知机是神经网络的起点
在这里插入图片描述
在这里插入图片描述

工作流程

在感知机模型中,step function起到了一个 分类决策 的作用。

在这里插入图片描述
学习调整权重
在这里插入图片描述

神经网络

在这里插入图片描述

区别

无需自己选择特征,传统感知机人工手动提取选择特征,深度学习特征提取的过程是自动完成的。只需要输入各种数据即可
在这里插入图片描述
提取特征可以通过最后输出层的前一层隐藏层的输出特征可以看出来,与一开始的输入层的特征不一样
在这里插入图片描述
可以用作多分类
在这里插入图片描述
或者目标检测
在这里插入图片描述

各种各样的神经网络

DNN 深度神经网络(ANN 人工神经网络 /MLP 多层感知机)、CNN、RNN
在这里插入图片描述
在这里插入图片描述

激活函数

在这里插入图片描述
激活函数是一种非线性函数,它可以把输入的数据映射到一个新的输出值,这个输出值可以在下一层被用作输入。
在这里插入图片描述

在这里插入图片描述

激活函数类型

在这里插入图片描述

Sigmoid 函数

在这里插入图片描述
在这里插入图片描述

ReLU函数

在这里插入图片描述

Leaky ReLU 函数

在这里插入图片描述

Tanh 函数

虽然两者都是非线性的,但 Tanh 函数在输入接近零时提供了更强烈的非线性映射,这是因为其曲线在这个区域内更为陡峭。这使得它能够在某些任务中捕捉到更复杂的模式。
在这里插入图片描述

正向传播

在这里插入图片描述
在这里插入图片描述

反向传播

在这里插入图片描述
负责多少就是对损失值影响多少,就是梯度
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

梯度消失(gradient vanish)

在这里插入图片描述
在这里插入图片描述

如何解决

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
Sigmoid函数导函数区间在0到0.25之间,Tanh函数导函数区间在0到1之间,它们输出的数值一直很小。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Dropout

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
消除特征间的依赖关系:不依赖其他特征通过一部分学习的特征就能判断

使用

深度学习框架中会封装有 Dropout 层,这样需要将哪一层输出随机的丢弃一些,那么就在哪一层后面跟 Dropout 层即可。

自行实现如下

p = 0.5  # 激活的概率。p越高,Dropout 越少。
def train_step(X):
    """ X 是输入数据 """
    
    # 第 1 层的前向传播
    H1 = np.maximum(0, np.dot(W1, X) + b1)  # ReLU 激活
    U1 = np.random.rand(*H1.shape) < p  # 随机生成 Dropout mask
    H1 *= U1  # 应用 Dropout,丢弃一些神经元
    
    # 第 2 层的前向传播
    H2 = np.maximum(0, np.dot(W2, H1) + b2)  # ReLU 激活
    U2 = np.random.rand(*H2.shape) < p  # 随机生成 Dropout mask
    H2 *= U2  # 应用 Dropout,丢弃一些神经元
    
    # 输出层
    out = np.dot(W3, H2) + b3  # 不对输出层应用 Dropout
    
    return out

在这里插入图片描述
在这里插入图片描述

PyTorch实战神经网络算法(手写MNIST数字识别)

https://pytorch.org/

inputs.view(-1, 28*28)

view

在这里插入图片描述

softmax和log-softmax

在这里插入图片描述

cross-entropy loss

在这里插入图片描述

nll_loss

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

batch size底层运算机制

https://blog.csdn.net/weixin_44986037/article/details/144216069


http://www.kler.cn/a/465000.html

相关文章:

  • git:指令集
  • 3.5 字典树(Trie)与后缀树
  • Unity3D仿星露谷物语开发16之角色拾取道具
  • 文献阅读 | B. S. Carmo 2010
  • TI毫米波雷达原始数据解析之Lane数据交换
  • 【小程序开发】- 小程序版本迭代指南(版本发布教程)
  • 无需训练!多提示视频生成最新SOTA!港中文腾讯等发布DiTCtrl:基于MM-DiT架构
  • Windows系统提示ffmpeg.dll丢失怎么解决?
  • 详细讲解外部导入Excel通过命令行形式导数据库中
  • Elasticsearch 在 Java 中的使用教程
  • Golang互斥锁正常模式和饥饿模式的区别
  • 信息科技伦理与道德1:绪论
  • Java的基础概念(二)
  • MySQL中distinct和group by去重的区别
  • 力扣--LCR 167.招式拆解I
  • LeetCode7. 整数反转
  • 基于物联网的冻保鲜运输智能控制系统
  • MySQL实用SQL示例
  • 利用Java爬虫获取亚马逊国际按关键字搜索商品的实践指南
  • SQL偏移类窗口函数—— LAG()、LEAD()用法详解
  • Leetcode 从前序与中序遍历序列构造二叉树
  • B端UI设计规范是什么?
  • 汽车驾校转型做无人机执照培训详解, “驾” 起无人机培训新未来?
  • 大模型LLM-MMOE
  • leetcode 2658. 网格图中鱼的最大数目
  • 【20250101】Nature正刊:纯仿真强化学习得到外骨骼机器人的自适应控制策略