def update_V(m_opts, m_vars):
P, N = E_x_omega_col(m_opts, m_vars) # expectation of xi_{nl} for n = i, expecation of omega_{nl} for n = i
Kappa = PG_col(m_opts, m_vars) # polyagamma kappa_{nl} for n = i
PN = P*N
PK = P*Kappa
for i in range(m_vars['n_labels']):
PN_i = PN[i][:,np.newaxis]
PK_i = PK[i]
sigma = m_vars['U_batch'].T.dot(PN_i*m_vars['U_batch'])# + m_opts['lam_v']*np.eye(m_opts['n_components'])
x = m_vars['U_batch'].T.dot(PK_i)
m_vars['sigma_v'][i] = (1-m_vars['gamma'])*m_vars['sigma_v'][i] + m_vars['gamma']*sigma
m_vars['x_v'][i] = (1-m_vars['gamma'])*m_vars['x_v'][i] + m_vars['gamma']*x
m_vars['V'][i] = linalg.solve(m_vars['sigma_v'][i], m_vars['x_v'][i])
评论列表
文章目录