第一章:Python入门
简要介绍了Python、Numpy、Matplotlib安装及基本用法。
第二章:感知机
1、感知机(人工神经元)是神经网络的起源算法,给定一个输入,输出一个既定值;
2、感知机将权重w1、w2...和偏置b设置为参数;
3、单层感知机可以表示与门、或门和与或门,无法表示异或门;
4、双层感知机可以表示异或门;
5、单层感知机只能表示线性空间。多层感知机可以表示非线性空间,理论上能表示计算机。
第三章:神经网络
1、神经网络的一个重要性质是它可以自动地从数据中学习到合适的权重参数;
2、神经网络例子:输入层——中间层(隐藏层)——输入层;
3、激活函数:将输入信号的总和转化为输出信号;
4、激活函数有 sigmoid函数、ReLU函数和阶跃函数等,前者的平滑性对神经网络的学习有重要意义;
5、感知机使用阶跃函数作为激活函数;
6、线性的激活函数无法发挥多层叠加网络的优势,非线性的激活函数可以;
7、Numpy数组的运算可以高效地实现神经网络,注意矩阵乘法维度的对应性;
8、机器学习问题可以分为
分类问题(数据属于哪一个类别);
回归问题(根据输入预测一个连续的数值);
输出层根据要求解问题的性质决定,分类问题常用恒等函数,回归问题用softmax函数;
9、恒等函数按原样输出,softmax函数输出与所有输入信号相连,受到所有输入函数的影响,输出总和为1;
10、Mnist手写数字识别实例中的前向传播(推理处理)
Python中pickle功能可以将程序运行中的对象保存为文件;
正规化 normalization 把数据限定在某个范围内的处理;
预处理 pre-processing 对输入数据进行某种转换;
批 batch 打包式的输入数据,以批为单位进行推理处理,可以高速高效运算。
第四章:神经网络的学习
1、数据是机器学习的核心;
2、泛化能力:处理未被观察过的数据的能力;
3、过拟合:只对某个数据集过度拟合的状态,应当避免;
4、损失函数:神经网络学习的指标,一般用均方误差和交叉熵误差等;
5、识别精度对微小的参数变化没有连续值的反应;
6、梯度:由全部向量的偏导数汇总成的向量,梯度指示的方向是各点处函数值降低最多的方向。梯度法:不断沿梯度方向前进,逐渐减小函数值的过程;
7、学习率:决定在一次学习中,应该学习多少以及在多大程度上更新参数。学习率是需要人工设定的超参数;
8、epoch:一个epoch指学习中所有训练数据均被使用过一次时的更新次数。
第五章:误差反向传播法
1、引入计算图,其优点是可以通过正向传播和反向传播高效计算各个变量的导数值;
2、计算图的节点由局部计算构成,局部计算构成全局计算;
3、加法节点的反向传播原封不动地将上游的值传播给下游;
4、乘法节点的反向传播会乘以正向传播时的输入“翻转值”后传给下游;
5、通过理解计算图,以层为单位实现神经网络的处理,代码实现加法层、乘法层和激活层;
6、Affine层:神经网络正向传播时会进行矩阵的乘积运算,是进行“仿射变换”的处理层。
用Affine实现全连接层(相邻层的所有神经元之间都有连接);
7、神经网络处理分为 推理 和 学习 两个阶段,前者只对得分最大值感兴趣,通常不使用Softmax层(Softmax函数将输入值正规化后再输出),学习阶段需要Softmax层;
8、神经网络的反向传播会把误差传递给前面的层,前面的层从这个误差中学习;
9、两种求梯度方法:
数值微分:实现简单,计算耗时;
解析性求解数学式:使用误差反向传播法,实现复杂,高效计算;
梯度确认:比较两者结果是否非常接近。数值微分可作为误差反向传播法的梯度确认。
第六章:与学习相关的技巧
1、神经网络的最优化问题:寻找最优参数;
2、随机梯度下降法SGD:梯度方向并未指向最小值,而是极小值,在非均向形状的函数中,搜索路径低效;
3、优化器optimizer:SGD,Momentum,AdaGrad,Adam等;
4、抑制过拟合,提高泛化能力:
权值衰减:减少权重参数的值;
Dropout:学习过程中随机删除神经元,模拟“集成学习”(让多个模型单独学习,推理时再取多个模型输出的平均值);
5、权重初始值的赋值方法对于正确的学习非常重要,设置为0或者相同值将无法正常学习。神经网络高效学习的必要条件是各层的激活值分布有适当的广度,不能有明显的偏向,各层间传递的是多样性的数据;
6、权重初始值:Xavier初始值、He初始值比较有效;
7、Batch Norm(Normalization):以进行学习时的mini-batch为单位进行正规化。
可以使学习快速进行;
对初始值健壮(依赖性低);
抑制过拟合;
8、过拟合原因:模型有大量参数,表现力强;训练数据少;
9、超参数:各层的神经元数量,batch,lr,权值衰减;
10、数据集:
训练数据:用于学习;
监督数据:调整超参数;
测试数据:评估泛化能力;
11、逐渐缩小“好值”的存在范围是超参数最优化的一个有效方法。
第七章:卷积神经网络CNN
1、在Affine全连接层中,数据被拉平,数据的形状被忽视,与形状相关的信息无法被利用;
2、卷积层可以保持数据形状不变,CNN可以有效读取图像中的某种特性;
3、卷积运算对输入数据应用滤波器运算;
padding填充:向输入数据的周围填入固定的数据;
stride步幅:应用滤波器的位置间隔
4、池化层:夹在连续的卷积层中间,压缩数据和参数的量,减小过拟合;
Max池化:从目标区域中取出最大值;
Average池化:计算目标区域的平均值;
5、池化层特征:
没有要学习的参数;
通道数不发生变化:计算按照通道独立进行;
对微小的位置变化健壮;
6、卷积层和池化层是图像识别中必备的模块。
第八章:深度学习
1、提高识别精度:集成学习,学习率衰减和数据增强Data Augmentation等;
2、加深层:
与未加深层的网络相比,可以更少参数达到同等学习效果;
分层传递、学习信息更高效
3、迁移学习:将学习完的权重复制到其他的神经网络,以新的数据集为对象进行再学习;
4、分布式学习:在多个CPU或者多台机器上分布计算,实现学习高速化;
5、数值精度的位数缩减不太影响输出结果的正确性,降低了学习时间和资源;
6、通过设置滤波器的参数和数量:全连接层可以替换成进行相同处理的卷积层。