第2章 神经网络的数学基础

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010819416/article/details/89522627

2.1 初始神经网络

2.2 神经网络的数据表示

所有机器学习系统都使用张量作为基本数据结构,是数字的容器。

2.2.1 标量(0D张量)

仅包含一个数字的张量叫作标量。

2.2.2 向量(1D张量)

数字组成的数组叫作向量

2.2.3 矩阵(2D张量)

向量组成的数组叫作矩阵。

2.2.4 3D张量与更高维张量

将多个矩阵组合成一个新的数组叫作3D张量。

2.2.5 关键属性

张量的三个关键属性:

  • 轴的个数(阶):3D张量有3个轴
  • 形状:这是一个整数元组,表示张量沿每个轴的维度大小(元素个数)。
  • 数据类型:张量中所包含数据的类型,张量的类型可以是float32、uint8、float64。

2.2.6 在Numpy中操作张量

选择沿着第一个轴的特定数字,选择张量的特定元素叫作张量切片。

2.2.7 数据批量的概念

深度学习中所有数据张量的第一个轴都是样本轴。

可以将数据拆分为小批量的张量,第一个轴叫作批量轴或批量维度

2.2.8 现实世界中的数据张量

  • 向量数据:2D张量
  • 时间序列数据或序列数据:3D张量
  • 图像:4D张量
  • 视频:5D张量

2.2.9 向量数据

例如:人口统计数据集

2.2.10 时间序列数据或序列数据

例如:股票价格数据集

2.2.11 图像数据

图像通常具有三个维度:高度、宽度和颜色深度。

例如128张彩色图像张量的形状(128,256,256,3)

2.2.12 视频数据

视频可以看作一系列帧,每一帧都是一张彩色图像 。图像是3D张量,视频就是4D张量,不同视频组成的批量就是5D张量。

2.3 神经网络的“齿轮”:张量运算

2.3.1 逐元素运算

2.3.2 广播

2.3.3 张量点积

点击运算,也叫张量积,是最常见也最有用的张量运算。

例如:
(a,b,c,d). (d,) -> (a, b , c)

(a, b, c, d) . (d, e) -> (a, b, c, e)

2.3.4 张量变形

一种特殊的张量变形是转置。对矩阵做转置是指将行和列互换。

2.3.5 张量运算的几何解释

张量运算都有几何解释。

2.3.6 深度学习的几何解释

可以将神经网络解释为高纬空间中非常复杂的几何变换。

深度学习:将复杂的几何变换逐步分解为一长串基本的几何变换。

2.4 神经网络的“引擎”:基于梯度的优化

利用网络中所有运算都是可微的,计算损失相对于网络系统的梯度,然后向梯度的反方向改变系统,从而使损失降低。

2.4.1 什么是“导数”

可微的意思是可以被求导。
对于每个可微函数f(x),都存在一个导数函数f’(x),将x的值映射为f在该点的局部线性近似的斜率。

2.4.2 张量运算的导数:梯度

梯度是张量运算的导数。是导数这一概念向多元函数导数的推广。多元函数是以张量作为输入的函数。

2.4.3 随机梯度下降

2.4.4 链式求导:反向传播算法

将链式法则应用于神经网络梯度值的计算,得到的算法叫作反向传播(反式微分)。

TensorFlow:给定一个运算链,并且已知每个运算的导数,这些框架就可以利用链式法则来计算这个运算链的梯度函数,将网络参数值映射为梯度值。

2.5 回顾第一个例子

本章小结

  • sequential 顺序的
  • activation 激活
  • dense 密集的
  • optimizer 优化器

猜你喜欢

转载自blog.csdn.net/u010819416/article/details/89522627