《网络构建》---入门级AI学习(转岗AI产品看过来)
网络构建
本章将从以下四点进行网络构建内容阐述:
- 如何选择神经网络?
- 如何构建神经网络?
- 如何设置值超参数?
- 激活函数及损失函数对网络模型的影响
1. 如何选择神经网络:
- “合适”的神经网络是什么(what):
- 网络的特征提取具有高效性(即自动提取“合理的”求解规则,自学能力)
- 数据格式的简易型(训练简单、快速)
- 参数数目的少量性(便于超参数输入与优化)
2. 如何构建神经网络:
搭建神经网络六步法:参考原文链接
- 导入源(import 导入相关模块)
- 划分训练集和测试集
- 搭建网络结构逐层描述网络(前向传播)---拉直层、全连接层、卷积层、循环核
- 断点续训,存取模型(模型训练)
- 参数提取、可视化训练结果
- 模型部署(推理应用)
3. 如何设置超参数:
- 模型的错误率为什么居高不下?:
- 模型实现中的bug(比如标签错误)
- 超参数选择不合适(比如学习率)
- 数据模型不适配
- 数据集构造(比如没有足够数据、分类不均衡、训练验证数据集分布不均匀等)
2. 如何解决错误率偏高问题?
- 从最简单模型入口,对症下药
- 成功搭建模型,重现结果
- 分解偏差各项,逐步拟合数据
- 用由粗到细随机搜索优化超参数
- 如果欠拟合,就增大模型,如果过拟合,就添加数据或调整
- 参数:是可以从学习中得到
- 超参数:只能靠人的经验来设定(比如算法中学习率、梯度下降法循环的数量、隐藏层数目、隐藏层单元数目、激活函数的选择)→控制了最后参数和的值
4. 如何选择最优超参数?(算法代码、训练、实践 不断循环迭代选择出最优解)
5. 调参策略
- 网络调参方向:更深的网络(网络更层数最深的进行优先调参)、更加复杂的结构
- 目的:提高泛化能力(正则化、增加神经网络层数、使用正确的代价函数、使用好的权重初始化技术、认为拓展训练集、弃权技术(见底部名词解释))
4. 激活函数及损失函数对网络模型的影响:
激活函数:见之前的定义
损失函数:见之前的定义
- 选择激活函数时, 一般隐层选择 Leak ReLU 函数会得到较为理想的效果 。
优点:
- x>0,线性函数,不存在梯度消失的问题,在深度学习中处于一个稳定状态。
- 增大了网络的稀疏性(分段线性函数,单侧抑制),拟合稀疏数据,降低过拟合。
- 运算量特别小,求导很简单
缺点:损失了一部分的稀疏性
2. 选择损失函数时:
CNN:
RNN:
总结:对应不同的问题为何不适用标准的神经网络,以及在选择卷积神经网络及循环神经网络,在构建网络模型时如何设置超参数,不同的网络应该使用的何种激活函数及损失函数。
附录:(名词解释)
- 弃权技术:drop-out ,对于输入的X,给定一个输出的Y,使用弃权技术之后,将会随机的删除在传递过程的隐藏单元,同时让输入和输出的神经元保持不变。通过不断地重复,我们的⽹络会学到⼀个权重和偏置的集合。
入门级AI学习-深度学习 文章被收录于专栏
内容:入门级AI课程学习(深度学习领域) 适用人群:初学者、入门级小白研发/产品/测试等 覆盖范围: 1.神经网络基础概念 2.数据集处理 3.网络构建 4.正则化 5.优化器 6.初始化 7.参数调节 8.深度置信网络 9.卷积神经网络 10.循环神经网络