深度学习-数学基础

时间:2022-07-25
本文章向大家介绍深度学习-数学基础,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

深度学习-数学基础

概述

对神经网络中出现的数学信息进行解释

正文

网络架构

  • 类:分类问题中的某个类别
  • 样本:数据点
  • 标签:某个样本对应的类
  • 损失函数(loss function):网络如何衡量在训练数据上的性能,即网络如何朝着正确的方向前进。
  • 优化器(optimizer):基于训练数据和损失函数来更新网络的机制。
  • 在训练和测试过程中需要监控的指标(metric):如果是分类问题一般预测正确占总预测的比例

神经网络中的数学术语

张量

  • 张量:数据的维度或者是数据的容器
  • 标量:仅包含一个数字的张量叫作标量;切记是一个数字,不是一维数组,也称为0D张量
  • 向量:数字组成的数组叫作向量(vector)或一维张量(1D 张量)
  • 矩阵:2维张量,也称为2D张量
  • 3D张量:若干个2D张量组成3D张量
  • 4D张量:若干个3D张量组成
属性
  • 轴的个数:3D张量有3个轴,类似坐标系
  • 形状:整数元组(元组的概念相见python基础),表示每个周的维度大小,如2*2的矩阵形状为(2,2)
  • 数据类型:float32、uint8、float64,一般为数字,同时也存在字符串的情况
张量现实展示
  • 向量数据:2D 张量,形状为 (样本, 特征)。有点类似数据框
  • 时间序列数据:形状为 (样本, 时间, 特征)。
  • 图像:4D张量形状为(样本, 图形高, 图形宽, 色彩通道)
  • 视频:5D张量,形状为(样本, 帧数, 图形高, 图形宽, 色彩通道)

张量计算

  • 逐元素计算 遍历整个张量,每个元素进行计算,如张量的加法运算
  • 广播 出现在小张量和大张量进行运算时,较小的张量会被广播,如(64, 3, 32, 10)的张量和(32, 10)的张量相加,最后结果为(64, 3, 32, 10)的张量;基本思想就是添加2个轴。
  • 点积运算 一般用.来表示,它和逐元素运算的不同在于点积运算在乘法之后还要进行加法运算,因此两个向量点积最终生成的是一个标量,而1个矩阵和1个向量点积,生成一个向量
  • 张量变形 张量变形是指改变张量的行和列,以得到想要的形状,如(2,3)的2D张量,通过张量变形重组为(6,)的向量

神经网络计算原理

神经网络是由一个个层组合而成,每个层都会对输入进行添加权重,对于计算开始时间,神经网络会给出一个初始化的值,然后进行不断优化,也叫训练,每一次优化叫作一次训练过程

  1. 抽取样本x和标签y,组成数据批量
  2. 在x上运行网络(前向传播),得到预测值y_pred。此时的参数为初始化随机参数
  3. 计算y_pred 和y 之间的距离,衡量损失。
  4. 更新网络的所有权重,目标是使得目标函数损失减少。

其中最核心的部分是第四步更新权重,神经网络使用求导和梯度下降的方式进行优化,为了避免算法的复杂,因此每次就行抽样,这样的方式也叫坐小批量随机梯度下降(mini-batch stochastic gradient descent,SGD),如果每次只抽取一个样本,叫作真SGD,如果每次迭代在所有数据上进行,那么叫作批量SGD

  • 关于链式求导:反向传播算法(后续有时间深度学习) 在前面的梯度算法中,我们假设函数是可微的,因此可以通过数学中的链式法则运算,可以实现神经网络的反向传播,如网络f包含3 个张量运算a、b 和c,还有3个权重矩阵W1、W2 和W3 f(W1, W2, W3) = a(W1, b(W2, c(W3))) 链式法则: (f(g(x)))' = f'(g(x)) * g'(x)

结束语

神经网络里的数学推导太过复杂,梯度下降算法,包括后面的链式求导如果自己推导的话还是困难,理解就行。例如梯度下降中的学习率、局部最优、全局最优和迭代等概念。

love&peace