Ответ состоит в том, что нужно сделать точечное произведение матрицы A
и ее транспонированной матрицы (A.t()
), чтобы получить положительную полуопределенную матрицу. Последнее, что нужно сделать, это убедиться, что оно определено (строго больше нуля).
С Pytorch:
Sigma_k = torch.rand(512, 512)
Sigma_k = torch.mm(Sigma_k, Sigma_k.t())
Sigma_k.add_(torch.eye(512))
Формальный алгоритм описан здесь .