1. 概述
神经网络和深度学习技术发展到如今的程度,已经在各行各业得到了广泛的应用,但是,我们看到的学术论文和各种技术报告中的神经网络结构,都是在训练之前设计好的,并且在训练过程中不会再改变,在模型使用过程中更加不会改变。
当然了,像图神经网络、递归神经网络、循环神经网络之类的“网络结构看起来改变,但本质上没改变”的神经网络,不在本文中进行详细辩论,有兴趣的可以自行对比推演。
2. 问题
对于训练之前就固定结构的神经网络,不管声称得怎么样,本质上都是人为定下的,都是神经网络设计人员和深度学习研发人员在一堆数据上试验和总结出来的。这样的网络模型在未来使用过程中,很可能会遇到新数据并产生异常表现,或者给出错误的决策和分析结果。为此,相应的机构和人员需要不断将新的会引起异常的数据添加到训练集中,然后重新训练模型,甚至重新修改网络结构,即重新设计神经网络,名曰“模型升级”。总之,这样的算法和模型无法离开“人”而存在,更无法及时应对新的场景,其工作稳定性受“人”的能力和训练集范围的影响较大。
上述的模型升级操作虽然能阶段性解决问题,也是目前的主流操作方式,但根本上来说,是治标不治本的,毕竟新数据不知道何时、何地、在什么场景下会出现,更不一定能获取、保存和提供给训练人员,更甚者,新数据是否会全面推翻原有的网络结构都很难说。而人工智能本质上需要的是,能够根据数据自行演变、自动改变网络结构并训练出相应模型的算法。
3. 结论
深度学习算法应能够根据训练数据自行组织神经网络结构,即网络模型训练时应能根据训练数据自动改变网络结构和网络层数,由此训练出的模型才是真正意义上的人工智能模型,也将会更加适应于各种各样的工作场景,更能脱离“人”而在工作过程中自动进化和完善模型。
这里所指的“训练”不仅仅是首次的大批量数据训练,也包括后期的追加数据训练,换句话说,训练分为初始训练和追加训练,训练数据可多可少(仅有几条数据也要能训练出可用的模型),而这里所提到的所有训练场景均要支持自动改变网络结构和网络层数,不仅仅只有初始训练要支持。
4. 附
确定性神经网络便是沿着本文所述方向研发的神经网络算法,神经网络连子棋V1.x版便能够在训练过程中自动改变网络层数,对于自动改变网络结构的支持,也将在V2.x版本中支持,有兴趣的同行可以参考对比,在官网(www.gnxxkj.com)、github、gitlab、gitee上均能找到相应的下载资源,也可以获取训练数据训练自己的模型来进行对比分析。