我正在使用图论框架来建模信息流问题。
我正在寻找一种算法来调整图形边缘的权重以产生特定的行为。当我使用 Matlab 时,如果有一个专用工具箱可以帮助可视化\建模\编写算法,那就太好了。
问题域如下:
- 图的边缘是加权和定向的。
- 图中的信息流是时间相关的。也就是说,有一个全局时间变量,它每隔 delta t 抽动一次,其中对每个节点进行一些计算。
- 节点被分配了一个数值,该数值可能会在每个时间步发生变化——我们称之为节点的激活程度。
该模型
由 3 层组成,每层由一个矩阵表示,如果节点i和节点j由强度为w的节点连接,则第i列和第j行的单元格的值为w。
为了便于解释,我们将层命名为:l1 - 输入,l2 - 计算,l3 - 输出。这些层是完全连接的,即 l1 的每个矩阵单元都连接到 l2 的每个单元,同样,l2 的每个单元都连接到 l3 的每个单元(边缘是有向的)。
在时间步t中,每个节点的激活程度是与它相连的所有节点在时间t-1的激活程度的函数,每个节点乘以连接边的权重。例如,如果我们考虑输入层i1,i2的 2 个节点,它们分别连接到计算层c1的单个节点,权重为w1,w2,我们会说在时间 t=0 激活i1,i2是a1,a2分别比c1在时间t=1时的激活电平等于 f(w1*a1,w2*a2)。
模型的先验知识要求准确预测输入层 l1 的激活模式(0\1 排列)将导致输出层 l3。现在,我想以某种方式训练网络以调整边缘的权重,以便在足够的时间(delta t)之后,激活的动态将导致输入层的输入发散到输出层的所需输出。
所以我的两个问题是:
在这个系统中训练网络以调整权重的好算法是什么(一个简单的算法名称或维基百科的链接将是一个很好的开始)?其次,如果您知道现有的 Matlab 工具可以通过实现使生活更轻松,那就更好了。
谢谢!