深度学习-数学基础
时间: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
- merge语句导致的CPU使用率过高的优化(二) (r7笔记第9天)
- 网页爬虫-R语言实现基本函数
- Python中的random模块用于生成随机数
- 简单易学的机器学习算法——极限学习机(ELM)
- 图片数据集太少?Keras Image Data Augmentation 各参数详解
- 备库归档删除策略失效的问题分析 (r7笔记第6天)
- 优化算法——梯度下降法
- Java基础-26(02)总结网络编程
- 记一次数据同步需求的改进(二) (r7笔记第5天)
- Python信贷数据处理与初步分析(ZIP解压)
- web前端之锋利的jQuery八:jQuery插件的使用(表单验证、表单提交)
- 优化算法——牛顿法(Newton Method)
- merge语句导致的CPU使用率过高的优化(r7笔记第4天)
- 由dual导致的一个潜在的监控问题(r7笔记第3天)
- 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 数组属性和方法
- Python 输入时间字符串以分钟单位计算时间差
- Linux下执行bcp指令
- Python 处理时间差
- Zabbix发送带附件的邮件
- CentOs7下Zabbix安装教程——zabbix agent安装和前端配置
- CentOs7下Zabbix安装教程——zabbix server安装
- CentOs7下Zabbix安装教程——准备工作
- python:HTTP Error 505: HTTP Version Not Supported
- PYES异常: TypeError: 'NoneType' object is not callable
- 第十八篇 zabbix创建自定义报警媒介
- 原创|如果懂了HashMap这两点,面试就没问题了
- RTSP协议网络摄像头互联网直播开源流媒体平台
- RTSP协议网页无插件播放,匿名登录不显示设备资源如何解决?
- 设计模式~代理模式
- Linux工具入门:make工具与Makefile文件