安装
配置显卡驱动、CUDA、cuDNN以及说明三者之间的关系
配置anaconda
数据操作和数据预处理
N维数组是机器学习和神经网络的主要数据结构
创建数组需要:
- 形状:例如3x4矩阵
- 每个元素的数据类型
- 每个元素的值,例如全是0,或者随机数
注:括号左闭右开。第二个意思为每个三个取一个
多层感知机
感知机存在的问题
感知机是一个二分类的模型
它的求解算法等价于使用批量大小为1的梯度下降
它不能拟合XOR函数,导致第一次的AI寒冬
多层感知机总结
- 多层感知机使用隐藏层和激活函数来得到非线性模型
- 常用激活函数是Sigmoid,Tanh,ReLU
- 使用Softmax来处理多类分类
- 超参数为隐藏层数,和各个隐藏层的大小
模型选择+过拟合和欠拟合
训练误差和泛化误差
- 训练误差:模型在训练数据集上的误差
- 泛化误差:模型在新数据集上的误差
验证数据集:一个用来评估模型好坏的数据集(选择模型超参数)
- 例如拿出50%的训练数据
- 不要和训练数据混在一块(常见错误)
测试数据集:只用一次的数据集
验证数据集(validation dataset), 也叫验证集(validation set)
书中每次实验报告的准确度都是验证集准确度,而不是测试集准确度。
写的test_data其实是验证数据集
K折交叉验证:当训练数据稀缺时,我们甚至可能无法提供足够的数据来构成一个合适的验证集。
过拟合和欠拟合
模型容量:
拟合各种函数的能力
低容量的模型难以拟合训练数据
高容量的模型可以记住所有的训练数据
第二根曲线过于拟合,导致噪音都被拟合住了。二次曲线比较完美
VC维
总结
- 模型容量需要匹配数据复杂度,否则会导致欠拟合和过拟合。
- 统计机器学习提供数学工具来衡量模型复杂度。
- 实际中一般靠观察训练误差和验证误差
权重衰退
权重衰减(weight decay)是最广泛使用的正则化的技术之一, 它通常也被称为L2正则化。
限制w,不让去拟合很复杂的曲线
总结
- 权重衰退通过L2正则项使得模型参数不会过大,从而控制模型复杂度
- 正则项权重是控制模型复杂度的超参数
丢弃法
一个好的模型需要对输入数据的扰动鲁棒
在数据里加入噪音,等价于一个正则
丢弃法:在层之间加入噪音(隐含丢弃法也是一个正则方法)
总结
- 丢弃法将一些输出项随机置0来控制模型的复杂度
- 常作用在多层感知机的隐藏层输出上
- 丢弃概率是控制模型复杂度的超参数
数据稳定性+模型初始化
产生原因:进行了太多次矩阵乘法
梯度爆炸的问题
- 值超出值域(infinity):对于16位浮点数尤其严重(数值区间6e-5 - 6e4)
- 对学习率敏感
如果学习率太大-》大参数值-》更大的梯度
如果学习率太小-》训练无进展
我们可能需要在训练过程中不断调整学习率
梯度消失的问题
- 梯度值变为0:对16位浮点数尤为严重
- 训练没有进展:不管如何选择学习率
- 对于底部层尤为严重
仅仅顶部层训练的较好
无法让神经网络更深
总结
- 当数值过大或者过小时会导致数值问题
2.常发生在深度模型中,因为其会对n个数累乘。
模型初始化和激活函数
将每层的输出和梯度都看做随机变量,让它们的均值和方差都保持一致。
总结
合理的权重初始值和激活函数的选取可以提升数据稳定性
标签:01,训练,感知机,模型,笔记,动手,拟合,数据,复杂度 From: https://www.cnblogs.com/muyukiko/p/17697561.html