网络优化与超参数选择 | 学习笔记

简介: 快速学习网络优化与超参数选择

开发者学堂课程【Tensorflow2.0入门与实战网络优化与超参数选择】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/664/detail/11109


网络优化与超参数选择


内容介绍:

一、 网络容量

二、 实例


一、网络容量

可以认为与网络中的可训练参数成正比,即网络当中可训练参数越多,说明网络的容量越大。

网络中的神经单元数越多,层数越多,神经网络的拟合能力越强但是训练速度、难度越大,越容易产生过拟合。

增加网络容量的方法:

(1)增加网络中神经元个数,增加网络容量

(2)增加网络层数,增加网络容量,拟合能力越强,但不能无限增大

如何选择超参数?

所谓超参数,也就是搭建神经网络中,需要我们自己如选择(不是通过梯度下降算法去优化)的那些参数。比如,中间层的神经元个数、学习速率

那么如何提高网络的拟合能力,一种显然的想法是增大网络容量:

(1)增加层

(2)增加隐藏神经元个数

这两种方法哪种更好呢?

单纯的增加神经元个数对于网络性能的提高并不明显,增加层会大大提高网络的拟合能力这也是为什么现在深度学习的层越来越深的原因 

注意

单层的神经元个数,不能太小,太小的话,会造成信息瓶颈,使得模型欠拟合。

 

二、实例

只有一个隐藏层:

model = tf. keras.Sequential()

model.add(tf.keras.layers.Flatten(input_shape=(28,28)))# 28*28

model.add(tf.keras.layers.Dense(128,activation='relu'))

model.add(tf.keras.layers. Dense(10,activation='softmax'))

model.summary()

运行结果为:

Total params: 101,770

Trainable params: 101,770

Non-trainable params: 0

重新定义 model(增加两个隐藏层):

model = tf. keras.Sequential()

model.add(tf.keras.layers.Flatten(input_shape=(28,28)))# 28*28

model.add(tf.keras.layers.Dense(128,activation='relu'))

model.add(tf.keras.layers.Dense(128,activation='relu'))

model.add(tf.keras.layers.Dense(128,activation='relu'))

model.add(tf.keras.layers. Dense(10,activation='softmax'))

model.summary()

运行结果为:

Total params: 134,794

Trainable params: 134,794

Non-trainable params: 0

编译模型:

model.compile(optimizer=tf.keras.optimizers.Adam(learning_rate=0.001),

loss=' categorical_crossentropy',

metrics=['acc']

)

将 learning_rate 恢复至0.001,训练10个 epochs,查看效果

model.fit(train_image,train_label_onehot,epochs=10)

最后,准确率达到91.03%,可以说增加网络拟合能力,能够提高正确率,但不能无限增加拟合能力,因为可训练参数过多可能会使模型过拟合。

相关文章
|
3月前
|
机器学习/深度学习 算法 调度
14种智能算法优化BP神经网络(14种方法)实现数据预测分类研究(Matlab代码实现)
14种智能算法优化BP神经网络(14种方法)实现数据预测分类研究(Matlab代码实现)
384 0
|
3月前
|
机器学习/深度学习 并行计算 算法
粒子群算法优化RBF神经网络的MATLAB实现
粒子群算法优化RBF神经网络的MATLAB实现
397 123
|
4月前
|
机器学习/深度学习 算法 安全
【PSO-LSTM】基于PSO优化LSTM网络的电力负荷预测(Python代码实现)
【PSO-LSTM】基于PSO优化LSTM网络的电力负荷预测(Python代码实现)
255 0
|
4月前
|
机器学习/深度学习 算法 数据挖掘
没发论文的注意啦!重磅更新!GWO-BP-AdaBoost预测!灰狼优化、人工神经网络与AdaBoost集成学习算法预测研究(Matlab代码实现)
没发论文的注意啦!重磅更新!GWO-BP-AdaBoost预测!灰狼优化、人工神经网络与AdaBoost集成学习算法预测研究(Matlab代码实现)
179 0
|
4月前
|
机器学习/深度学习 数据采集 传感器
具有多种最大功率点跟踪(MPPT)方法的光伏发电系统(P&O-增量法-人工神经网络-模糊逻辑控制-粒子群优化)之使用粒子群算法的最大功率点追踪(MPPT)(Simulink仿真实现)
具有多种最大功率点跟踪(MPPT)方法的光伏发电系统(P&O-增量法-人工神经网络-模糊逻辑控制-粒子群优化)之使用粒子群算法的最大功率点追踪(MPPT)(Simulink仿真实现)
360 0
|
2月前
|
机器学习/深度学习 数据可视化 网络架构
PINN训练新思路:把初始条件和边界约束嵌入网络架构,解决多目标优化难题
PINNs训练难因多目标优化易失衡。通过设计硬约束网络架构,将初始与边界条件内嵌于模型输出,可自动满足约束,仅需优化方程残差,简化训练过程,提升稳定性与精度,适用于气候、生物医学等高要求仿真场景。
350 4
PINN训练新思路:把初始条件和边界约束嵌入网络架构,解决多目标优化难题
|
2月前
|
机器学习/深度学习 算法
采用蚁群算法对BP神经网络进行优化
使用蚁群算法来优化BP神经网络的权重和偏置,克服传统BP算法容易陷入局部极小值、收敛速度慢、对初始权重敏感等问题。
328 5
|
2月前
|
机器学习/深度学习 数据采集 人工智能
深度学习实战指南:从神经网络基础到模型优化的完整攻略
🌟 蒋星熠Jaxonic,AI探索者。深耕深度学习,从神经网络到Transformer,用代码践行智能革命。分享实战经验,助你构建CV、NLP模型,共赴二进制星辰大海。
|
2月前
|
机器学习/深度学习 人工智能 算法
【基于TTNRBO优化DBN回归预测】基于瞬态三角牛顿-拉夫逊优化算法(TTNRBO)优化深度信念网络(DBN)数据回归预测研究(Matlab代码实现)
【基于TTNRBO优化DBN回归预测】基于瞬态三角牛顿-拉夫逊优化算法(TTNRBO)优化深度信念网络(DBN)数据回归预测研究(Matlab代码实现)
159 0
|
4月前
|
机器学习/深度学习 数据采集 运维
匹配网络处理不平衡数据集的6种优化策略:有效提升分类准确率
匹配网络是一种基于度量的元学习方法,通过计算查询样本与支持集样本的相似性实现分类。其核心依赖距离度量函数(如余弦相似度),并引入注意力机制对特征维度加权,提升对关键特征的关注能力,尤其在处理复杂或噪声数据时表现出更强的泛化性。
259 6
匹配网络处理不平衡数据集的6种优化策略:有效提升分类准确率