#有偿求助#了解 [强化学习知识推理] [知识图谱补全] 的大佬看过来

2022-01-12 18:40:29 +08:00
 teemocat

有了解顶会 DeepPath AttnPath minerva 的大佬吗?强化学习知识推理、知识图谱补全方向的

现在卡在 [把 LSTM 加到 DeepPath 里] ,但是加不进去

有没有能解决这个问题的技术大牛,可以有偿 QAQ

1150 次点击
所在节点    程序员
3 条回复
teemocat
2022-01-12 22:42:26 +08:00
[这里是不是不能发图片哇?]

Deeppath 是将知识图谱中知识推理过程转化为马尔可夫序列决策过程
agent 和环境交互 接受状态 s (使用 transE ,编码为 et-e0 ,即目标状态的向量表示减去当前状态的向量表示),通过最终是否能成功到达目标给予奖励,使用三层全连接神经网络进行参数更新,其中 agent 每次从一个状态(节点)到达下一个状态时,会通过动作空间选择一个动作,决定下一个动作如何选择

action_prob = tf.nn.softmax(tf.matmul(h2,w3) + b3) 策略网略(即三层全连接神经网络,两层 relu 一层 softmax )是适用参数得出动作概率矩阵的

policy_nm.update(np.reshape(state_batch,(-1,state_dim)),total_reward,action_batch)
这个是每个 episode 之后,根据 agent 是否能到达目标节点,结合系统给出的奖励对参数进行更新的


[我的问题是 现在想将状态空间的编码加一个三层 LSTM 以记忆之前的状态与现在的联系]


输入策略网路的状态编码变为 st=( ht ,wt )

以下是我定义的 lstm 网络函数
def lstmm(state):
cells = []
for _ in range(2):
lstm_cell = tf.contrib.rnn.LSTMCell(200, use_peepholes=True,
state_is_tuple=True) # 2*50
cells.append(lstm_cell)
policy_step = tf.contrib.rnn.MultiRNNCell(cells, state_is_tuple=True)
init_state = policy_step.zero_state(1, dtype=tf.float64)
input_lstm = tf.reshape(state, [-1, 1, 200])
outputs, state = tf.nn.dynamic_rnn(policy_step, input_lstm, initial_state=init_state, dtype=tf.float64)
h_state = outputs[:, -1, :]
return h_state

我想接受到的输入是上一个状态的向量表示 prestate_vec 输出是一个带有之前状态信息的向量表示 但 LSTM 的输出不是很理解 它的两个输出的格式也有点晕.....

[我的需求是输出一个可以带有之前每一个状态信息的输出的话,是否应该像这个图的 lstmm 网络定义这样 还是说哪些地方要改]
teemocat
2022-01-13 20:47:09 +08:00
有人懂吗……
teemocat
2022-01-16 18:51:21 +08:00
有人懂吗……

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/827880

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX