深度学习可以求解特定函数的参数么?

深度学习作为当下最为热门的技术,可以求解很多产业问题,如情感分析、故障预测、人脸识别、股票趋势预测,气象预测等等。这些应用展示了深度学习强大的能力,那么可以将深度学习技术应用到特定函数的参数求解上么?

先上答案,不可以。深度学习技术无法应用到特定函数的参数求解问题上,因为深度学习虽然可以拟合任意函数的,但是却无法给出具体的函数形式。就如resnet、densenet一样,虽然知道他们很好的解决的imagenet数据集的分类问题,但却无法给出具体的函数的形式。

1、如何求解特定函数的参数

那么退而求其次,在深度学习领域中有哪些技术可以用于特定函数的参数求解。这要将深度学习回退到神经网络的层次,深度学习的本质就是通过增加模型的深度来解决复杂问题。而神经网络的训练与调参的本质就是梯度下降与反向传播,通过梯度下降与反向传播可以通过求解任意形式函数的参数。

2、针对特定问题如何构造神经网络

关于本博文的思考,其实源于以下链接:https://ask.csdn.net/questions/7764283
问题中题主想使用神经网络的方法求解以下函数的参数
在这里插入图片描述
针对于该问题,博主的回答是:神经网络是可以拟合任意函数的,但是无法指定拟合的函数形式,也就是说通过常规方法构建的全连接神经网络是无法求解出指定函数的参数的,因为全连接神经网络无非就是矩阵相乘与激活函数,矩阵相乘是无法表示cos函数、指数函数的。除非针对这些函数实现自定义layer(实现cos layer,指数 layer)才能约束网络所学习的参数。

补充说明1:全连接神经网络模型如果没有激活函数就只能是实现一个线性函数的拟合,无法实现非线性函数的拟合。因为,多个全连接层叠加本质上就是矩阵连乘,可以化简为一个全连接层。

补充说明2:对于自定义layer,求解特定函数的参数,约束了函数的形式,这使参数的初始化对模型的训练影响极其严重。不同于全连接神经网络,只需要考虑参数初始化为特定的分布即可。

补充说明3:根据补充说明2,求解特定函数的参数时,应该初始化多组函数,进行多路训练。对多路模型的训练时,每隔一定的轮次可以加权聚合多个模型的参以加速收敛。

3、构造特定layer存在问题

在深度学习框架中,如tensorflow、paddle、pytorch都是支持自定义layer的,通过多个自定义layer的叠加可以实现任意指定的函数。这里所存在的一个问题是layer的参数,layer的前向传播、layer梯度的计算方式。

layer的参数:这里其实就是要求解的函数的参数。可能是cos函数的系数,也可能是指数函数的系数;

layer的前向传播:这里就是指定函数的具体形式,如cos函数形式,指数函数形式;

layer梯度的计算方式:因为函数的具体形式是在layer的前向传播中指定的,深度学习框架内置的自动求导方法不一定可用,需要自行给出特定layer导数的计算方式。

猜你喜欢

转载自blog.csdn.net/a486259/article/details/126067354