《深度学习》/《Deep Learning》——深度学习圣经的读书笔记

学习方法

  1. 对着书看一遍,把理解的内容写成笔记
  2. 看完一章后,看着笔记和书,把内容复习一下,把需要画线的地方画好并理解
  3. 逐层深入:这本书讲解基础概念讲得不生动,但是高层次上有很多不错的高瞻远瞩的见解,所以先看网文理解到基本的网络(如RNN-LSTM),然后看书深化理解

*. Jumping Read:读某一章很痛苦的时候,先读后面一章,然后返回来读

熟悉语音,VAE,tf,python,和深度学习的最佳方法——跟进大佬用tf写的语音转换代码,比如VAE那份,跑起来并改善

证明技法

泰勒级数逼近后,可以带入想要的参数常量P155
做简化,初始化为0,等

证明A方法=B方法:
在写出利用了A/B的代价函数/权重特征值/Hessian,然后联立对比

概论

  • 当有5k样本的时候,就可以达到可接受的性能
  • 当有10M个样本的时候,一般就可以超过人类的表现

矩阵

基础

  • 注意向量的子集的表示方法,x1表示是x中除去 x1 的子集,如果令集合S={ 1,3,6},那么集合xS表示除去x1x3x6
  • 转置是沿着对主对角线的翻转,主对角线是左上角开始的

乘法

矩阵乘法不可教(交换)

单位矩阵和逆矩阵

线性方程组可以求解,而这个解要用到矩阵的逆操作

A1A=In

有了这个逆操作很简单就可以求取满秩的线性方程

逆矩阵存在的条件:线性相关

  • X向量的线性组合即生成子空间包含了b,所以要求A的维度大于b的维度,冗余即为线性相关,可以表示为其他向量的特征组合
  • 必须方阵,线性无关的时候称为奇异

线性相关

对一组向量a1,a2,…an,如果有 :

k1a1+k2a2+...=0

则这组向量是线性相关的

对于任意的b使得

Ax=b

成立,那么当b的维度为m时,A需要恰好m个相互线性无关的列向量(当大于m个的时候,肯定会有一些向量没办法跟其他的保持线性无关,就会变成不止一个b)

逆矩阵有左乘和右乘,分别是:

A1A=I


AA1=I

对于方阵有左乘等价于右乘

秩 Rank

如果上面n个向量能选出最多的r个使得构成线性无关的子集,并且任意加一个都会变成线性相关的,那么r就是矩阵的秩

这个向量组称为最大线性无关向量组

衡量向量的大小:范数(norm)

几何角度来看,x的范数,就是原点O到点x的距离
最常用的是p范数:

||x||p=(|xi|p)1p

单位范数即满足
||x||p=1

的点在平面上组成的线
  • 0范数:衡量x中0的数量(不用上式定义)
  • 1范数:令p=1,得元素绝对值之和,单位范数是方形
  • 2范数:p=2,欧几里得范数,大小表示原点到当前点的距离

不同p值的单位范数:
image

矩阵的范数:

  • 1-范数:

    ||A||1=maxji=1m|ai,j|

    列和范数,即所有矩阵列向量绝对值之和的最大值
  • 2-范数:

    ||A||2=λ1

    lambda为A^TA的最大特征值
    谱范数,即A’A矩阵的最大特征值的开平方
  • ∞-范数:

    ||A||=maxij=1N|ai,j|

    行和范数,即所有矩阵行向量绝对值之和的最大值
  • F-范数:

    ||A||F=i=1mj=1n|ai,j|212

    Frobenius范数,即矩阵元素绝对值的平方和再开平方,类似于向量的L2范数,很多深度学习被归结于F范数的最优化问题,比如PCA和Autoencoder
  • 核范数:

    ||A||=i=1nλi

    其中λi是A的奇异值。
    即奇异值之和。

特殊的矩阵:

  • 对角只在主对角线上含有非零元素
    • 进行乘法的时候只需要把非零元素跟对应行相乘即可
    • 机器学习中,如果把一些矩阵限定为对角阵,可以降低计算代价
    • 对于非方形的矩阵,要变成对角阵,需要在缩放后在后面补零或者删除一些部分
      A=AT
  • 对称表示对称元素相等。如,距离度量矩阵
    Ai,j=Aj,i
  • 正交矩阵求逆代价小,是行向量和列向量分别标准正交*
    ATA=AAT=I


    A1=AT

*标准正交:两个向量都是单位向量(范数=1的向量),而且正交(夹角为90°)

  • 所有特征>0称为正定,非负的半正定

方阵的特征值分解

就像把一个数变成不同的素数的乘积一样,矩阵也可以分解成不同的组成成分:
例如,可以把矩阵A中提取出特征向量v和特征值λ:(没有分解它)

Av=λv

则实数λ称为A的特征值,v称为特征向量
- 此时,v与Av共线,λ指出了v跟Av的方向和长度关系
- 因此v可以直接取单位向量。

要还原A,就需要借助A的全部单位特征向量v和全部特征值λ,把A的所有的线性无关是单位特征v组合在一起形成特征矩阵:

V={ v(1),...,v(n)}

又把所有的特征值λ组成向量:
λ=[λ1,...,λn]T

然后就会有:
A=Vdiag(λ)V1

于是完成了方阵的特征值分解

任意矩阵的特征值分解

对于不是方阵的任意矩阵,也照样可以进行分解。其中,实对称矩阵是一定能分解成实特征向量和实特征值的:

A=QΛQT

其中,Q是A的特征向量组成的正交矩阵, Λ 是特征值组成的对角阵。
Q是特征向量的组合,表示了组成原来的向量A的基向量的组织方式, Λ 是这些基向量各自向自己的方向延伸多少倍就可以还原A
因为这样的组织不唯一,为了唯一,一般把 Λ 降序排列。
由这样的分解可以看出矩阵有的许多性质:
- 奇异:奇异矩阵一定要有0特征值
- 正定:所有特征>0,其保证了如果 xTAx=0 ,那么 x=0
- 半正定:所有特征≥0,其保证了 xTAx0

奇异值分解SVD

还有一种分解矩阵的方式,就是分解成奇异向量和奇异值,这样的分解不单止可以让每一个实数矩阵可以进行分解,而且,用处更多.

分解成三个矩阵的乘积:

A=UDVT

分解成三个矩阵的乘积,分别是:U左奇异向量,D奇异值的对角阵,V右奇异向量。
  • 这样分解可以拓展矩阵求逆到非方矩阵上,其中,D矩阵也不一定是方阵。
  • 经常不用很多特征值就可以表达全部信息,可以用前r大的来表示。
  • 因为其求取AAT和ATA获得,这些都是对称矩阵所以一定有奇异值

没办法计算逆的时候,可以求伪逆

逆经常用来求取线性方程的解,但是对于非满秩的矩阵却没法求取逆,所以可以求取Moore-Penrose伪逆,A的伪逆用A+表示。

如果用伪逆得到了一个解x=A+y,那么这个解的L2范数会是所有可行解中最小的一个(也就是说,跟真正正解的欧几里得距离最小的那一个)

trace迹:对角元素的和

用来表达一些矩阵运算,例如,它表达了计算F-范数的一种方式。
- 转置不变
- 服从“交换率”

Tr(AB)=Tr(BA)

- trace跟F范数和奇异值有紧密的联系

行列式

  • det(A)
  • 把一个方阵转换到实数,等于特征的乘积
  • 用来衡量矩阵经过乘法后比原来扩大还是缩小了多少

利用线性代数的样例——PCA

  1. 将样本均值变为0
  2. 将样本方差变为1【这两步使得样本趋向于满足2范数=1,向量的大小并不是那么重要,可以缩放,但是变成单位矩阵才能为计算提供更多信息】
  3. 计算协方差矩阵XXT
  4. 对上面进行特征分解
  5. 求前k大的特征值

  6. 假设用矩阵D作为解码器

  7. 假设有最优编码c*,令编码后的c跟c*的L2范数距离最小,得到形式也很简单的编码函数:
    f(x)=DTx

    以及重构后的x的表达式:
    r(x)=DDTx
  8. 进一步地,令编解码后的r(x)跟x的F-范数距离最小
  9. 令问题简单化,使用一维向量d表示D
  10. 解得最优d为最大的特征值对应的特征向量(第一列特征向量)
  11. 后面特征向量以此类推

概率论

基本定义

  • 概率质量函数PMF:
                《人工智能:深度学习入门到精通实战》课程主要就人工智能领域相关的深度学习基础、深度学习计算、卷积神经网络+经典网络、循环神经网络+RNN进阶、优化算法、计算机视觉和自然语言处理等,配套实战案例与项目全部基于真实数据集与实际任务展开,结合深度学习框架进行建模实战。                由浅入深,每一个理论搭配一个实验,引领学员浸泡式逐步掌握各项技能和实战项目,且侧重技能不同,学员的知识体系会更加全面课程大纲:第一章:深度学习基础-深度学习简介01.1-前置知识01.2-传统编程与数据编程01.3-深度学习起源01.4-深度学习崛起与发展01.5-深度学习成功案例01.6-深度学习特点 第二章:深度学习基础-Python基础02.1-PyTorch介绍与环境配置02.2-数据操作与创建Tensor02.3-算术操作、索引与改变形状02.4-线性代数、广播机制与内存开销02.5-Tensor和NumPy相互转换与Tensor on GPU02.6-实验01-创建和使用Tensor-102.7-实验01-创建和使用Tensor-202.8-梯度下降02.9-实验02-梯度下降-102.10-实验02-梯度下降-202.11-自动求梯度概念02.12-自动求梯度实例02.13-实验03-自动求梯度-102.14-实验03-自动求梯度-2 第三章:深度学习基础-线性回归03.1-线性回归讲解03.2-线性回归实例03.3-实验04-从零实现线性回归-103.4-实验04-从零实现线性回归-203.5-实验05-线性回归的简洁实现-103.6-实验05-线性回归的简洁实现-2 第四章:深度学习基础-softmax回归04.1-softmax回归04.2-实验06-FashionMNIST04.3-实验07-从零实现Softmax回归-104.4-实验07-从零实现Softmax回归-204.5-实验08-softmax回归的简洁实现 第五章:深度学习基础-多层感知机05.1-感知机05.2-多层感知机05.3-多层感知机与神经网络05.4-激活函数05.5-正向传播05.6-反向传播05.7-正向传播和反向传播05.8-批大小05.9-实验09-从零实现MLP05.10-实验10-MLP的简洁实现 第六章:深度学习基础-模型选择、欠拟合和过拟合06.1-训练误差和泛化误差06.2-模型选择06.3-欠拟合和过拟合06.4-权重衰减06.5-丢弃法06.6-实验11-多项式函数拟合实验06.7-实验12-高维线性回归实验-106.8-实验12-高维线性回归实验-206.9-实验13-Dropout 第七章:深度学习基础-数值稳定性和模型初始化07.1-数值稳定性和模型初始化-107.2-数值稳定性和模型初始化-207.3-实验14-房价预测案例-107.4-实验14-房价预测案例-207.5-实验14-房价预测案例-3 第八章:深度学习计算-模型构造08.1-模型构造-108.2-模型构造-208.3-模型构造-308.4-实验15-模型构造-108.5-实验15-模型构造-2 第九章:深度学习计算-模型参数的访问、初始化和共享09.1-模型参数的访问09.2-模型参数初始化和共享09.3-实验16-模型参数-109.4-实验16-模型参数-2 第十章:深度学习计算-自定义层与读取和储存10.1-不含模型参数的自定义层10.2-含模型参数的自定义层10.3-实验17-自定义层10.4-读取和储存10.5-GPU计算10.6-实验18-读取和储存  第十一章:卷积神经网络11.01-卷积神经网络11.02-卷积神经网络的组成层11.03-图像分类的局限性11.04-二维卷积层与卷积层11.05-卷积在图像中的直观作用11.06-实验19-二维卷积层11.07-填充与步幅11.08-卷积过程11.09-卷积层参数-111.10-卷积层参数-211.11-实验20-Pad和Stride11.12-多输入和输出通道11.13-实验21-多通道11.14-池化层11.15-实验22-池化层 第十二章:经典网络12.01-卷积神经网络12.02-实验23-LeNet模型12.03-深度卷积神经网络12.04-实验24-AlexNet模型12.05-使用重复元素的网络12.06-实验25-VGG模型12.07-网络中的网络12.08-实验26-NiN模型12.09-含并行连接的网络12.10-实验27-GoogLeNet模型12.11-批量归一化-112.12-批量归一化-212.13-实验28-批量归一化12.14-残差网络12.15-实验29-残差网络12.16-稠密连接网络12.17-实验30-稠密连接网络 第十三章:循环神经网络13.01-语言模型和计算13.02-n元语法13.03-RNN和RNNs13.04-标准RNN向前输出流程和语言模型应用13.05-vector-to-sequence结构13.06-实验31-语言模型数据集-113.07-实验31-语言模型数据集-213.08-实验32-从零实现循环神经网络-113.09-实验32-从零实现循环神经网络-213.10-实验32-从零实现循环神经网络-313.11-实验32-从零实现循环神经网络-413.12-实验33-简洁实现循环神经网络-113.13-实验33-简洁实现循环神经网络-2 第十四章:RNN进阶14.01-通过时间反向传播-114.02-通过时间反向传播-214.03-长短期记忆-114.04-长短期记忆-214.05-实验34-长短期记忆网络-114.06-实验34-长短期记忆网络-214.07-门控循环单元14.08-RNN扩展模型14.09-实验35-门控循环单元 第十五章:优化算法15.01-优化与深度学习15.02-局部最小值和鞍点15.03-提高深度学习的泛化能力15.04-实验36-小批量梯度下降-115.05-实验36-小批量梯度下降-215.06-动量法-115.07-动量法-215.08-实验37-动量法15.09-AdaGrad算法与特点15.10-实验38-AdaGrad算法15.11-RMSrop算法15.12-实验39-RMSProp算法15.13-AdaDelta算法15.14-实验40-AdaDelta算法15.15-Adam算法15.16-实验41-Adam算法15.17-不用二阶优化讲解与超参数 第十六章:计算机视觉16.01-图像增广与挑战16.02-翻转、裁剪、变化颜色与叠加16.03-实验42-图像增广-116.04-实验42-图像增广-216.05-微调16.06-迁移学习16.07-实验43-微调-116.08-实验43-微调-216.09-目标检测16.10-边界框16.11-实验44-边界框16.12-锚框与生成多个锚框16.13-交并比16.14-实验45-生成锚框-116.15-实验45-生成锚框-216.17-标注训练集的锚框-116.18-标注训练集的锚框-216.19-实验46-标注训练集的锚框-116.20-实验46-标注训练集的锚框-216.21-实验46-标注训练集的锚框-316.22-输出预测边界框16.23-实验47-输出预测边界框-116.24-实验47-输出预测边界框-216.25-多尺度目标检测16.26-实验48-多尺度目标检测16.27-目标检测算法分类16.28-SSD与模型设计16.29-预测层16.30-损失函数16.31-SSD预测16.32-实验49-目标检测数据集16.33-实验50-SSD目标检测-116.34-实验50-SSD目标检测-216.35-实验50-SSD目标检测-316.36-实验50-SSD目标检测-416.37-实验50-SSD目标检测-516.38-实验50-SSD目标检测-6 第十七章:自然语言处理17.01-词嵌入和词向量17.02-神经网络模型17.03-跳字模型17.04-训练跳字模型17.05-连续词袋模型17.06-负采样17.07-层序softmax17.08-子词嵌入17.09-Fasttext模型17.10-全局向量的词嵌入17.11-实验51-word2vec之数据预处理-117.12-实验51-word2vec之数据预处理-217.13-实验52-word2vec之负采样-117.14-实验52-word2vec之负采样-217.15-实验53-word2vec之模型构建-117.16-实验53-word2vec之模型构建-217.17-实验54-求近义词和类比词-117.18-实验54-求近义词和类比词-217.19-实验55-文本情感分类RNN-117.20-实验55-文本情感分类RNN-217.21-实验55-文本情感分类RNN-317.22-实验55-文本情感分类RNN-417.23-TextCNN17.24-TextCNN流程17.25-实验56-文本情感分类textCNN-117.26-实验56-文本情感分类textCNN-217.27-Seq2Seq的历史与网络架构17.28-Seq2Seq的应用与存在的问题17.29-Attention机制与Bucket机制17.30-实验57-机器翻译之模型构建-117.31-实验57-机器翻译之模型构建-217.32-实验57-机器翻译之模型构建-317.33-实验58-机器翻译之训练评估-117.34-实验58-机器翻译之训练评估-217.35-实验58-机器翻译之训练评估-3
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值