ose*_*ose 5 sql database graph-databases neural-network
我正在开发一个使用神经网络的应用程序.目前我正在考虑将其置于基于SQL(可能是SQL服务器)或图形数据库的关系数据库中.
从性能的角度来看,神经网络将非常庞大.
我的问题:
这取决于模型进展的意图.
免责声明
首先,我要声明我只熟悉Kohonnen地图.(所以,我承认曾被Kohonnen嘲笑为只有神经网络的入门级别.)以上问题是我多年来随意和低教育阅读后的幻想的个人心理攻击的结果.各种神经系统.
类别与参数对比属性
我们可以按车轮数量或吨位分类车辆吗?轮量或吨位应该是属性,参数还是类别特征.
理解这一争论是构建存储库的关键步骤.这场辩论与疾病和患者病媒特别相关.我见过患者信息关系图式,由医学专家设计,但显然没有太多的信息科学培训,为每位患者设定了一套共同的参数.每个患者记录有数千列,大多数未使用.当它们超出表的列限制时,它们会创建一个新表,其中包含数千个稀疏使用的列.
类型1:所有节点都有一组公共参数,因此可以将节点建模为具有已知列数的表.
类型2:有各种类型的节点.有固定数量的节点类.每个类都有一组固定的参数.因此,每个节点类都有一个特征表.
类型3:没有意图对节点进行打孔.每个节点都可以自由开发并获取自己独特的属性集.
类型4:有固定数量的节点类.类中的每个节点都可以自由开发并获取自己独特的属性集.每个类都有一组允许节点获取的有限属性.
阅读EAV模型以了解参数与属性的问题.在EAV表中,节点只需要三个特征列:
但是,在技术限制下,属性可以是数字,字符串,可枚举或类别.因此,将有四个属性表,每个值类型一个,加上节点表:
顺序/链接访问与散列/直接地址访问
您是否必须直接访问单个节点而不是遍历结构树以快速访问节点?
您是否需要找到已获取特定特征(属性集)的节点列表,而不管它们在网络拓扑上的位置?您是否需要在网络节点上执行分类(也称主成分分析)?
状态机
您是否希望将网络区域视为状态机的集合?状态机是非常有用的量化实体.状态机定量可以帮助您根据邻域相似性和关系在一系列节点上形成经验实体.
不要试图理解和跟踪数百万个节点的个体行为,为什么不将它们聚集成相似的区域.并跟踪这些地区的状态机流量.
结论
这是我的建议.您应该从最初使用完全关系数据库开始.原因是关系数据库和关联的SQL提供了非常宽松的关系视图信息.使用关系模型上的SQL,您可以查询或关联您不知道存在的关系.
随着实验的进展,您可能会发现某些关系建模更适合网络图形存储库,您应该将模式的这些部分移动到这样合适的存储库中.
在最终的事态.我会维护一个双模式信息回购.您维护一个关系回购以跟踪节点及其属性.因此,您将动态变异结构存储在网络图库中,但每个节点都引用关系数据库中的节点ID.关系数据库允许您根据属性及其值查询节点.例如,
SELECT id FROM Nodes a, NumericAttributes b
WHERE a.attributeName = $name
AND b.value WItHIN $range
AND a.id = b.id
Run Code Online (Sandbox Code Playgroud)
我想,也许可以使用hadoop而不是传统的网络图数据库.但是,我不知道hadoop如何适应动态变化的关系.我的理解是,hadoop对于一次性多次读取是有益的.然而,动态神经网络在频繁的关系变化中可能表现不佳.然而,建模网络关系的关系表效率不高.
尽管如此,我相信我只是暴露了你需要考虑的问题,而不是给你一个明确的答案,特别是对许多概念的生锈知识.