我想知道在机器学习算法中,许多可训练参数会产生什么影响。
例如,具有许多层的CNN可以从图像中提取更多抽象数据。但更多的层意味着更多的可训练参数。构建非常深的模型有什么缺点吗?
更多的参数是否意味着加载模型需要更多的RAM?
更多的参数是否意味着模型计算开销更大,即需要更好的硬件来训练?
更多的参数是否意味着模型训练和分类的时间更长,或者在大多数情况下变化可以忽略不计?
我注意到更深的模型和更多的参数在保存模型时文件大小更大,还有其他成本吗?
我找到的关于这个话题的大多数来源都只提到要保持参数低,但从未详细说明为什么我们要这样做。
回答:
更多的参数是否意味着加载模型需要更多的RAM?
是的,这需要更多的RAM/VRAM,具体取决于你的训练模式。
更多的参数是否意味着模型计算开销更大,即需要更好的硬件来训练?
是的。
更多的参数是否意味着模型训练和分类的时间更长,或者在大多数情况下变化可以忽略不计?
是的,随着计算数量的增加,时间会更长。
我注意到更深的模型和更多的参数在保存模型时文件大小更大,还有其他成本吗?
除了你已经指出的之外?是的,优化可能会受到影响,训练方案也会受到影响。
我找到的关于这个话题的大多数来源都只提到要保持参数低,但从未详细说明为什么我们要这样做。
当可训练参数的数量增加时,计算量也会增加,这意味着硬件需求增加,包括RAM和处理能力。它还引入了优化方面的困难,比如过拟合,甚至是选择使用的优化算法的问题。
根据你的使用情况,模型的传输可能会成为一个问题,例如,考虑到物联网设备、无人机、自动驾驶车辆/机器人需要更新等,连接速度差/慢等情况。(有办法减少模型大小并提高其性能,但总的来说,参数越多意味着更多的空间/时间)