机器学习网络结构如何设计

机器学习、深度学习的模型网络结构是如何确定的?前不久和人聊天,他说他们可以通过数学计算的方式来确定网络结构,从而完成对现有经典网络进行修改,或直接自己设计网络,来提升模型的精度和性能。说实话,这颠覆了我的认知,我原以为是靠经验和不断尝试才设计出的新的有效网络。那么该如何通过数学方式计算呢?能举个简单的例子么?

都是参考前人设计,然后基于此进行创新或者革新,设计新的网络结构,我举几个简单例子:
1.loss部分调整:比如:我们可以修改loss,之前用的交叉熵loss,完全可以改成focalloss,tripleloss,aslloss等等,当然可以自己设计一个新的loss。
2.常见模型结构微调:可以对网络结构加入一些常规的操作,dropout,fgb都是有可能的;另外,有的loss可能输入需要多个样本,这样可能就得让模型的调整模型的编码结构。
3.结构借鉴:可能提出一个新的结构组件,同时融合已有结构取得很好效果,比如,transformer,他的整体其实编解码结构,这个早就有了,但是他会把其中某个组件做了优化,做了并行,做了self-attention等等,当然这个attention机制在cv中早就有了,他可能对其中做了self,然后用了layNorm,做了另外的归一化等等;当然也有cv反过来,借鉴transformer,把输入调整成和NLP类似,对其中的mask的比例做了新的探索,对次序进行了变化等等

上面的例子没有先后顺序,没有高端还是低端,完全是看能否有效的解决问题,比如,
1.调整loss看起来好像没啥,实际上可能你用了一个好的loss,取得好的效果,就是一个不错的工作,很多大牛可能就是提出了一个新的loss,取得了一个新的结构。
2.调整其他结构也一样,有点大佬可能就是加了一个残差效果就上去了,可能加了一个attention等等

这也颠覆了我的认知.
.. 调参侠都要被优化了🙃