具有动态结构的二进制机器学习算法



如果我们考虑当今的机器学习算法从无知(底部)到意识(顶部)的变化,那么当前的算法就像是跳跃。 跳跃后,发育速度(学习能力)下降,不可避免的转身和摔倒(训练)。 所有的努力都减少到试图对跳跃施加尽可能多的力量的尝试,这会增加跳跃的高度,但不会从根本上改变结果。 抽水跳跃时,我们会增加高度,但不会学习飞行。 掌握“受控飞行”技术将需要重新考虑一些基本原理。

在神经网络中,使用的静态结构不允许超出整个结构的已建立的学习能力。 通过从固定数量的神经元中固定网络的大小我们限制了网络永远无法绕过的网络学习能力的大小。 创建网络时安装大量神经元可以提高学习能力,但会减慢学习时间。 训练过程中网络结构的动态变化以及二进制数据的使用将赋予网络独特的属性,并规避这些限制。

1.动态网络结构


网络本身必须决定其规模。 必要时,朝正确的方向生长,以增加尺寸。 在创建一个神经元,一层或两层神经网络时,我们不能明确地知道网络的必要训练能力,因此也不知道其大小。 我们的网络应该从头开始(完全缺乏结构),并且应该能够在新的培训数据到达时独立地朝着正确的方向扩展。

2.信号衰减

图片
参与信号求和的神经网络使用“模拟”方法进行计算。 多次转换会导致信号衰减及其在传输过程中的损失。 在大型网络上,“模拟”计算方法将不可避免地导致损失。 在神经网络中,信号衰减的问题可以通过递归网络来解决,实际上这只是一个拐杖,只能减少问题,而不能完全解决问题。 解决方案是使用二进制信号。 这种信号的变换次数不会导致其在变换过程中的衰减和损失。

3.网络学习能力


在学习过程中扩展结构,可以提高其教学能力。 网络本身根据任务确定向哪个方向发展以及需要多少神经元来解决问题。 网络大小仅限制服务器的计算能力和硬盘的大小限制。

4.网络培训


当将信号从模拟网络更改为二进制网络时,它将获得加速学习的机会。 训练提供了输出信号的明确设置。 学习过程本身仅改变神经元的一小部分,而使它们的很大一部分保持不变。 培训时间减少了很多次,仅限于几个网络元素的变化。

5.网络计算


要计算神经网络,我们需要计算所有元素。 跳过甚至部分神经元的计算都可能导致蝴蝶效应,其中微不足道的信号会改变整个计算的结果。 二进制信号的性质不同。 在每个阶段,都可以从计算中排除部分数据而不会产生任何后果。 网络越大,在计算中可以忽略的元素越多。 网络结果的计算被简化为少量元素的计算,直至网络的百分之一。 对于计算,具有1000个神经元网络的3.2%(32个神经元),具有100万个“神经元”的网络的0.1%(1000个)和具有十亿个“神经元”的网络的0.003%(3.2万个)就足够了。 随着网络规模的增加,计算所需的神经元百分比会减少。

6.结果解释


在神经网络中,权重乘以系数使得无法建立信号源。 神经网络的所有传入信号无一例外都会影响结果,使对导致其形成的原因的理解变得更加复杂。 二进制信号对结果的影响可以是零,部分或全部,这清楚地表明源数据参与了计算。 用于计算信号的二进制方法使您可以跟踪输入数据与结果的关系,并确定源数据对结果形成的影响程度。

以上所有内容都表明需要改变机器学习算法的方法。 经典方法不能完全控制网络,也不能完全理解网络中发生的过程。 为了实现“受控飞行”,需要确保网络内信号转换的可靠性以及飞行中结构的动态形成。

Source: https://habr.com/ru/post/zh-CN474954/


All Articles