深度学习-数学基础
时间: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,)的向量
神经网络计算原理
神经网络是由一个个层组合而成,每个层都会对输入进行添加权重,对于计算开始时间,神经网络会给出一个初始化的值,然后进行不断优化,也叫训练,每一次优化叫作一次训练过程
- 抽取样本x和标签y,组成数据批量
- 在x上运行网络(前向传播),得到预测值y_pred。此时的参数为初始化随机参数
- 计算y_pred 和y 之间的距离,衡量损失。
- 更新网络的所有权重,目标是使得目标函数损失减少。
其中最核心的部分是第四步更新权重,神经网络使用求导和梯度下降的方式进行优化,为了避免算法的复杂,因此每次就行抽样,这样的方式也叫坐小批量随机梯度下降(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
- COGS 68. [NOIP2005] 采药【01背包复习】
- UESTC 30 &&HDU 2544最短路【Floyd求解裸题】
- 我的第一个网页制作:Hello World!
- UESTC 1584 Washi与Sonochi的约定【树状数组裸题+排序】
- Hyperledger - 超级账本项目:简介,安装,案例
- 我的第三个网页制作:b、i、s、u、sub、sup标签的使用
- 【AlphaGo Zero 核心技术-深度强化学习教程代码实战04】Agent类和SARSA算法实现
- 我的第二个网页制作:p,hn,br标签的使用
- 超级账本项目:架构设计
- 我的第四个网页制作:列表标签
- “盛大游戏杯”第15届上海大学程序设计联赛夏季赛暨上海高校金马五校赛题解&&源码【A,水,B,水,C,水,D,快速幂,E,优先队列,F,暴力,G,贪心+排序,H,STL乱搞,I,尼姆博弈,J,差分dp
- 虎嗅主站盲打成功(已进后台)
- 我的第五个网页制作:pre、html转义、abbr标签的使用
- UVALive 3882 - And Then There Was One【约瑟夫问题】
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法