深度学习笔记-深度学习基础(1)

2019/07/06

深度学习笔记-深度学习基础(1)

神经网络的数学基础


初识神经网络

主要内容包括神经网络介绍、数据表示、张量的操作、常见的向量数据、张量运算。

神经网络的核心组件是,大多数深度学习都是将简单的层链接起来,从而实现渐进式的数据蒸馏。深度学习模型就像是数据处理的筛子,包含一系列越来越精细的数据过滤器(即层)。

模型编译时,需要三个参数:

  • 损失函数(loss function):网络如何衡量在训练数据上的性能
  • 优化器(optimizer):基于训练数据和损失函数来更新网络的机制
  • 在训练和测试过程中需要监控的指标(metric):如精度、loss ***

神经网络的数据表示

数据存储在多维Numpy数组中,也叫张量(tensor),它是一个数据容器,是矩阵向任意维度的推广,张量的维度通常叫做轴(axis)

标量(0D张量)

顾名思义,仅包含一个数字

向量(1D张量)

数字组成的数组叫一维张量,仅有一个轴。有5个元素的向量被称为5D向量,但仍然叫做1D张量。

矩阵(2D张量)

高维张量(n D张量)

张量的关键属性

  • 轴的个数(阶)ndim

  • 形状 是一个整数元组,向量的形状只包含一个元素,如(5,);标量的形状为控,即() shape

  • 数据类型 dtype

    常见张量数据

    • 向量数据 2D张量,(样本轴,特征轴)。
    • 时间序列或序列数据 3D张量,(样本轴,时间轴,特征轴)。如股票价格、推文数据
    • 图像数据 4D张量 (样本轴,高度,宽度,颜色深度)(有通道在前和在后之分)
    • **视频数据 ** 5D张量 (样本轴,帧,高度,宽度,颜色深度)

张量基本操作

张量切片

同list切片

张量运算

  • +、- 逐元素相加、减

  • np.dot(x,y) 点积

  • relu(x) max(x,0)

  • 广播 较小的张量通过广播,使得ndim与较大的张量相同。重复的操作是完全虚拟的,只出现在算法中,没有出现在内存中。

  • 张量变形 np.reshape()

随机梯度下降及其变体

随机 是指每批数据都是随机抽取的

**SGD ** 小批量SGD 每次取一批数据;真SGD 每次只抽取一个样本;批量SGD 每次迭代所有数据(每次更新都更加精确,但是计算代价也会很高)

优化器 计算下一次权重更新时,考虑上一次权重更新。如带动量的SGD、Adagrad、RMSProp。动量解决了SGD的两个问题:收敛速度局部极小点。动量的方法实现过程类似于移动小球,不仅要考虑当前的加速度,还要考虑之前的累加的速度。

深度学习几何解释

仿射变换旋转缩放等基本的几何操作等都可以理解为张量运算。神经网络可以解释为在高维空间中非常复杂的几何变换。

例子:想象有两张彩纸:一张红色,一张蓝色。将两张纸叠在一起揉成小球。这个皱巴巴的纸球就是输入的数据,每张纸对应于分类问题的一个类别(三维空间中无法准确分开)。神经网络要做的就是找到可以让纸秋恢复平整的变换,从而能够再次让两个类别明确可分。(变换为高维空间上的两张纸)

让纸球恢复平整就是机器学习的内容:为复杂的、高度折叠的数据流形找到简洁的表示

Post Directory