如何在图或人工神经网络中引导信息流?

发布于 2024-11-27 03:08:16 字数 415 浏览 2 评论 0原文

我正在构建一个无向人工神经网络。没有明显的输入或输出节点,并且所有连接都是无向的。

为了使网络正常工作,我正在设计系统,将每个节点的动作阈值和加权关系视为其与“焦点”节点(临时输出节点)距离的函数。

换句话说,我会任意选择一个节点或一组节点作为数据的端点和输出。该节点可以随时更改。通过图表的信息流将像磁铁一样被吸引到所选节点,因为从统计角度来看,靠近最终节点的节点更有可能激活并沿着该路径发送信息。

我希望这可以创建一个非常动态和现实的人工神经网络模式,具有非常准确的学习模式。

现在我陷入了如何有效地确定每个节点到末端节点的距离的问题。据我所知,如果我使用 Neo4j,计算两点之间的最短路径平均需要大约 250 毫秒。将此类计算合并到算法中会太慢,因为这意味着必须为当前“触发”节点的每个相邻节点重复计算最短路径。

有什么想法吗?

I'm building an undirected ANN. There are no distinct input or output nodes, and all connections are undirected.

In order to make the network work, I am designing the system to treat each node's action threshold and weighted relationship as a function of its distance from a "focus" node - a temporary output node.

In other words, I will arbitrarily select a node or group of nodes to be the endpoint and output of data. This node can change at any time. The flow of information through the graph will gravitate like magnets toward the chosen node, because it will be statistically more likely for nodes close to the the end node to active and send information down that path.

My hope is that this can create a very dynamic and realistic ANN pattern with very accurate learning patterns.

Right now I'm stuck on the issue of how to determine each node's distance from the end node efficiently. From what I've read, if I were to use Neo4j, it would take about 250ms to calculate the shortest path between two points, on average. It would be way too slow to incorporate such calculations into the algorithm, as this means the shortest path would have to be calculated repeatedly for every adjacent node to the currently "firing" nodes.

Any ideas?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

旧话新听 2024-12-04 03:08:16

...这意味着必须重复计算最短路径
对于当前“发射”节点的每个相邻节点。

Dijkstra 的最短路径算法将找到从一个节点到网络中每个其他节点的最短路径 - 因此您可以在 O(N^2) 时间内通过一次算法找到到指定端节点的所有最短路径。

Floyd-Warshall算法在O(N^3)时间内计算网络中每对节点的最短路径,并且需要O(N^2)存储空间。如果您的网络不发生变化,并且您可以承受前期计算成本,那么这可能是一个不错的选择。

... this means the shortest path would have to be calculated repeatedly
for every adjacent node to the currently "firing" nodes.

Dijkstra's shortest path algorithm will find the shortest path from one node to every other node in the network - so you could find all the shortest paths to a nominated end node with one pass of the algorithm in O(N^2) time.

The Floyd-Warshall algorithm calculates the shortest path for every pair of nodes in the network in O(N^3) time and requires O(N^2) storage space. If your network doesn't change, and you can afford the up-front calculation cost, this might be a good choice.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文