Я читаю исходный код Python-реализации T-SNE.(https://lvdmaaten.github.io/tsne/code/tsne_python.zip)
Я запутался в реализации функции Hbeta. При вычислении энтропии автор использует следующую строку кода.
H = np.log(sumP) + beta * np.sum(D * P) / sumP
Я не смог найтисоответствующая формула в диссертации. Вместо этого формула, вычисляющая энтропию:
Похоже, что вычисление H и формула не совпадают.
Может кто-нибудь объяснить мне, что я пропустил?
def Hbeta(D=np.array([]), beta=1.0):
"""
Compute the perplexity and the P-row for a specific value of the
precision of a Gaussian distribution.
"""
# Compute P-row and corresponding perplexity
P = np.exp(-D.copy() * beta)
sumP = sum(P)
H = np.log(sumP) + beta * np.sum(D * P) / sumP
P = P / sumP
return H, P