调整网络边缘权重的算法(最好在相关的 Matlab 工具箱上推荐)

标签 algorithm graph neural-network matlab

我正在使用图论框架来模拟信息流问题。

我正在寻找一种算法来调整图的边的权重以产生特定的行为。 在我使用 Matlab 的过程中,如果有一个专门的工具箱可以帮助可视化\建模\编写算法,那就太好了。

问题域如下:

  • 图形的边是加权和有向的。
  • 图中的信息流与时间相关。也就是说,有一个全局时间变量,它在每个 delta t 进行抽样,其中对每个节点进行一些计算。
  • 节点被分配了一个数值,该数值可能会在每个时间步发生变化 - 我们称之为节点的激活程度。

模型

由 3 层组成,每层由一个矩阵表示,如果节点 i 和节点 j 由强度为 w 的节点连接,则第 i 列和第 j 行的单元格的值为 w

Graph sketch

为了便于解释,我们将层命名为:l1 - 输入,l2 - 计算,l3 - 输出。 层是全连接的,即 l1 的每个矩阵单元都连接到 l2 的每个单元,同样 l2 的每个单元都连接到 l3 的每个单元(边是有向的)。

在时间步 t 中,每个节点的激活程度是连接到它的所有节点在时间 t-1 时激活的函数,每个节点乘以连接边的权重。 例如,如果我们考虑输入层 i1,i2 的 2 个节点连接到计算层 c1 的单个节点,权重为 w1,w2 分别,并且我们会说在时间 t=0 时 i1,i2 的激活分别是 a1,a2,而不是 c1< 的激活水平/em> 在 t=1 时等于 f(w1*a1,w2*a2)。

Activation flow

模型的先验知识决定了输入层 l1 的何种激活模式(0\1 排列)将导致输出层 l3 的准确预测。 现在,我想以某种方式训练网络调整边缘的权重,以便在足够的时间(delta t)之后,激活的动态将导致输入层的输入发散到输出层的所需输出。

所以我的 2 个问题是:

在这个系统中训练网络调整权重的好算法是什么(一个简单的算法名称或维基百科的链接将是一个很好的开始)?其次,如果您知道现有的 Matlab 工具可以简化实现过程,那就更好了。

谢谢!

最佳答案

不知道算法,但听起来像 Neural Network toolbox正是您所需要的。

阿诺

关于调整网络边缘权重的算法(最好在相关的 Matlab 工具箱上推荐),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16334209/

相关文章:

c - 如何用自定义字符串快速填充缓冲区?

python - 如何更改 python igraph 中的边方向?

neural-network - 值错误: Tensor conversion requested dtype float32 for Tensor with dtype int32

c++ - 合并来自 std::set 的相邻条目

c - 书中的跳过列表源代码,一个结构让我困惑

algorithm - 寻找适合一系列矩形的最大矩形的面积

java - 比较java中的顶点对

r - 错误 - 使用 ggrepel 包在 ggplot2 中可视化数据

machine-learning - 是否有必要为卡住层定义后向函数?

python - Keras 没有使用 100% cpu