呓语 | 杨英明的个人博客

专注于c++、Python,欢迎交流

By

【深度学习】对模型复杂度的理解

正文

今天在看李沐老师的《动手学深度学习》时,觉得有段话说得很好:

在这里记录一下关于模型复杂度对拟合以及调整网络节点数的思考:

欠拟合就是训练过程中误差难以下降,过拟合就是训练之后,测试误差要远比训练误差大。

如果模型复杂度太低(参数过少),即模型可训练空间太小,就难以训练出有效的模型,便会出现欠拟合。

如果模型复杂度太高(参数很多),即模型可训练空间很大,在大量样本输入后容易训练过头,便会出现过拟合。

所以控制好模型复杂度(参数数量),是调整欠拟合和过拟合的一种方法。

换句话说,可以通过训练效果的图表判断是过拟合还是欠拟合,以此为依据调整网络的结构。

比如如果欠拟合了,表示无法充分训练,可以将网络层的节点数量调大一些。

这样就找到一种调整网络节点数的依据,而不是仅靠经验。

一个栗子

一个网络节点数很小的网络训练结果:

调大网络节点数之后:

可以看到,上图中训练损失下降困难,下图调大节点数之后损失得以继续下降。

原创声明

转载请注明:呓语 » 【深度学习】对模型复杂度的理解