Skip to content

参数进行梯度下降时,是否有误? #4

@galaxyzen

Description

@galaxyzen
        if eg > 0:  # 大于0取原值,小于0则置0.即合页损失函数margin-based ranking criterion
            self.loss += eg
            temp_positive = 2 * self.learning_rate * (t - h - r)
            temp_negative = 2 * self.learning_rate * (t2 - h2 - r)
            if self.normal_form == "L1":
                temp_positive_L1 = [1 if temp_positive[i] >= 0 else -1 for i in range(self.dim)]
                temp_negative_L1 = [1 if temp_negative[i] >= 0 else -1 for i in range(self.dim)]
                temp_positive = np.array(temp_positive_L1) * self.learning_rate
                temp_negative = np.array(temp_negative_L1) * self.learning_rate

            # 对损失函数的5个参数进行梯度下降, 随机体现在sample函数上
            h += temp_positive
            t -= temp_positive
            r = r + temp_positive - temp_negative
            h2 -= temp_negative
            t2 += temp_negative

因为是随机替换head或者tail,当替换的是tail时,head没有被替换,实际上并不存在论文中所述的negative_head了,positive_head和negative_head实际上是一个东西,这种情况下在对positive_head求偏导时,是否应该包含两个部分 2 * (positve_head + relation - positive_tail) - 2 * (positive_head + relation - negative_tail)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions