【机器学习】深度学习(DNN)

文章目录

    • [1. 神经网络结构](#1. 神经网络结构)
    • [2. 训练步骤](#2. 训练步骤)
    • [3. 反向传播](#3. 反向传播)
    • [4. 为什么深,而不是宽(模块化)](#4. 为什么深,而不是宽(模块化))
    • [5. 初始化参数能否全为0?](#5. 初始化参数能否全为0?)

1. 神经网络结构

  • 输入层
  • 隐藏层:用于特征转换
  • 输出层:用于分类
  • 技巧:将网络中的参数写成矩阵形式,利用GPU加速

2. 训练步骤

  1. 确定神经网络的结构
  • 需要根据输入和输出的维度来确定结构,最关键的部分。
  • 注:考虑输入之间的内在关联,所有的类(class)使用同一个模型进行分类。
  1. 评估函数
  • 输出与正确结果的交叉熵。
  1. 选择最优函数
  • 梯度下降法。

3. 反向传播

概念

反向传播是一种在做梯度下降时的微分方法。

方式

从后向前计算微分,因为前面的微分需要后面的结果。

两个部分

  1. 梯度: ∇ f w = ∂ l ∂ w = ∂ z ∂ w ⋅ ∂ l ∂ z \nabla f_w = \frac{\partial l}{\partial w} = \frac{\partial z}{\partial w} \cdot \frac{\partial l}{\partial z} ∇fw=∂w∂l=∂w∂z⋅∂z∂l

  2. 正向传播: ∂ z ∂ w \frac{\partial z}{\partial w} ∂w∂z ,即每一个神经元的输出。

  3. 反向传播:
    ∂ l ∂ z = ∂ a ∂ z ⋅ ∂ l ∂ a = σ ′ ( z ) [ w 3 ⋅ ∂ l ∂ z ′ + w 4 ⋅ ∂ l ∂ z ′ ′ ] \frac{\partial l}{\partial z} = \frac{\partial a}{\partial z} \cdot \frac{\partial l}{\partial a} = \sigma'(z) \left[ w_3 \cdot \frac{\partial l}{\partial z'} + w_4 \cdot \frac{\partial l}{\partial z''} \right] ∂z∂l=∂z∂a⋅∂a∂l=σ′(z)[w3⋅∂z′∂l+w4⋅∂z′′∂l]

将正向传播和反向传播的结果相乘,得到L对w的偏微分。

与正向传播比较

  • 反向传播需要更多的内存,但效率更高。
  • 无需像正向传播那样每次计算微分时都要重新计算后续的结果,减少了栈空间的使用。

全连接反馈网络

  • 每一层的神经元输出全部进入下一层的输入。

4. 为什么深,而不是宽(模块化)

更深的网络:它的模型更加复杂,但这种复杂性是模块化的。

核心

  • 将复杂的问题分解为多个简单的问题。每一层的神经元处理相同级别的任务,其输出作为更高层次任务的数据来源。

好处

  • 每一层的输出都可以被深层的神经元重复利用,避免像浅层网络那样每次都重新计算,提高效率。
  • 深层的隐藏层能够更详细地提取特征,提取后的特征能更好地进行分类,且比人为指定的特征更接近最优解。
  • 每个基本分类器能够获得足够的训练示例,相比于平铺网络,较少的数据就能训练好。

  • 深度/平铺网络的参数量是一样的,复杂性指的是网络结构,而不是参数数量。

5. 初始化参数能否全为0?

  • 同一层的神经元是同构的,具有相同的输入和输出。如果初始参数设置为相同值,无论正向还是反向传播,它们的取值都会一样,导致学习过程无法打破对称性,最终训练结果会使同一层的参数都相同。
  • 因此,应该在初始化时随机赋值,以打破这种对称性。
相关推荐
2301_769624406 分钟前
基于Pytorch的深度学习-第二章
人工智能·pytorch·深度学习
咨询1871506512710 分钟前
高企复审奖补!2025年合肥市高新技术企业重新认定奖励补贴政策及申报条件
大数据·人工智能·区块链
Guheyunyi22 分钟前
智能照明系统:照亮智慧生活的多重价值
大数据·前端·人工智能·物联网·信息可视化·生活
云天徽上40 分钟前
【数据可视化-27】全球网络安全威胁数据可视化分析(2015-2024)
人工智能·安全·web安全·机器学习·信息可视化·数据分析
ONEYAC唯样1 小时前
“在中国,为中国” 英飞凌汽车业务正式发布中国本土化战略
大数据·人工智能
mozun20201 小时前
产业观察:哈工大机器人公司2025.4.22
大数据·人工智能·机器人·创业创新·哈尔滨·名校
-一杯为品-1 小时前
【深度学习】#9 现代循环神经网络
人工智能·rnn·深度学习
硅谷秋水1 小时前
ORION:通过视觉-语言指令动作生成的一个整体端到端自动驾驶框架
人工智能·深度学习·机器学习·计算机视觉·语言模型·自动驾驶
小墙程序员1 小时前
机器学习入门(一)什么是机器学习
机器学习
Java中文社群1 小时前
最火向量数据库Milvus安装使用一条龙!
java·人工智能·后端