def fake_signal(): signals = get_signals() # assume all signals are same length signals = np.array(signals) hmm = HMM(5, 3, signals[0].shape[1]) # M, K, D hmm.init_random(signals) init = tf.global_variables_initializer() session = tf.InteractiveSession() session.run(init) hmm.set_session(session) hmm.fit(signals, max_iter=30) L = hmm.get_cost_multi(signals).sum() print("LL for fitted params:", L) # test in actual params _, _, _, pi, A, R, mu, sigma = big_init() # turn these into their "pre-softmax" forms pi = np.log(pi) A = np.log(A) R = np.log(R) M, K, D, _ = sigma.shape # need to convert full cov into diag cov logSigma = np.zeros((M, K, D)) for j in range(M): for k in range(D): logSigma[j,k] = np.log(np.diag(sigma[j,k])) hmm.set(pi, A, R, mu, logSigma) L = hmm.get_cost_multi(signals).sum() print("LL for actual params:", L)
def fake_signal(): signals = get_signals() # assume all signals are same length signals = np.array(signals) hmm = HMM(5, 3, signals[0].shape[1]) # M, K, D hmm.init_random(signals) init = tf.global_variables_initializer() session = tf.InteractiveSession() session.run(init) hmm.set_session(session) hmm.fit(signals, max_iter=30) L = hmm.get_cost_multi(signals).sum() print "LL for fitted params:", L # test in actual params _, _, _, pi, A, R, mu, sigma = big_init() # turn these into their "pre-softmax" forms pi = np.log(pi) A = np.log(A) R = np.log(R) M, K, D, _ = sigma.shape # need to convert full cov into diag cov logSigma = np.zeros((M, K, D)) for j in range(M): for k in range(D): logSigma[j,k] = np.log(np.diag(sigma[j,k])) hmm.set(pi, A, R, mu, logSigma) L = hmm.get_cost_multi(signals).sum() print "LL for actual params:", L
def fake_signal(init=big_init): signals = get_signals(init=init) # for signal in signals: # for d in xrange(signal.shape[1]): # plt.plot(signal[:,d]) # plt.show() hmm = HMM(5, 3) hmm.fit(signals) L = hmm.log_likelihood_multi(signals).sum()
def fake_signal(): signals = get_signals() hmm = HMM(5, 3) hmm.fit(signals) L = hmm.log_likelihood_multi(signals).sum() print "LL for fitted params:", L # test in actual params _, _, _, pi, A, R, mu, sigma = big_init() hmm.set(pi, A, R, mu, sigma) L = hmm.log_likelihood_multi(signals).sum() print "LL for actual params:", L
def fake_signal(): signals = get_signals() # assume all signals are same length signals = np.array(signals) hmm = HMM(5, 3, signals[0].shape[1]) # M, K, D hmm.init_random(signals) init = tf.global_variables_initializer() session = tf.InteractiveSession() session.run(init) hmm.set_session(session) hmm.fit(signals, max_iter=30) L = hmm.get_cost_multi(signals).sum()
def fake_signal(init=simple_init): signals = get_signals(N=10, T=10, init=init) # for signal in signals: # for d in xrange(signal.shape[1]): # plt.plot(signal[:,d]) # plt.show() hmm = HMM(2, 2) hmm.fit(signals) L = hmm.log_likelihood_multi(signals).sum() print("LL for fitted params:", L) # test in actual params _, _, _, pi, A, R, mu, sigma = init() hmm.set(pi, A, R, mu, sigma) L = hmm.log_likelihood_multi(signals).sum() print("LL for actual params:", L)
def fake_signal(init=simple_init): signals = get_signals(N=10, T=10, init=init) # for signal in signals: # for d in xrange(signal.shape[1]): # plt.plot(signal[:,d]) # plt.show() hmm = HMM(2, 2) hmm.fit(signals) L = hmm.log_likelihood_multi(signals).sum() print "LL for fitted params:", L # test in actual params _, _, _, pi, A, R, mu, sigma = init() hmm.set(pi, A, R, mu, sigma) L = hmm.log_likelihood_multi(signals).sum() print "LL for actual params:", L
def fake_signal(init=big_init): signals = get_signals(init=init) for signal in signals: for d in xrange(signal.shape[1]): plt.plot(signal[:,d]) plt.show() hmm = HMM(5, 3) hmm.fit(signals) L = hmm.log_likelihood_multi(signals).sum() print "LL for fitted params:", L # test in actual params _, _, _, pi, A, R, mu, sigma = init() hmm.set(pi, A, R, mu, sigma) L = hmm.log_likelihood_multi(signals).sum() print "LL for actual params:", L
def fake_signal(init=simple_init): signals = get_signals(N=10, T=10, init=init) hmm = HMM(2, 2) hmm.fit(signals) L = hmm.log_likelihood_multi(signals).sum() print("LL for fitted params:", L) for signal in signals: plt.plot(signal, '--') plt.plot(hmm.predict_sequence(signal)) plt.show() # test in actual params _, _, _, pi, A, R, mu, sigma = init() hmm.set(pi, A, R, mu, sigma) L = hmm.log_likelihood_multi(signals).sum() print("LL for actual params:", L) # print most likely state sequence print("Most likely state sequence for initial observation:") print(hmm.predict_sequence(signals[0]))
def fake_signal(init=big_init): signals = get_signals(init=init) # for signal in signals: # print "mean:", signal.mean(axis=0), "var:", signal.var(axis=0) hmm = HMM(5, 3) hmm.fit(signals) L = hmm.log_likelihood_multi(signals).sum() print "LL for fitted params:", L # test in actual params _, _, _, pi, A, R, mu, sigma = init() M, K, D = mu.shape diag_sigma = np.zeros((M, K, D)) for j in xrange(M): for k in xrange(K): diag_sigma[j, k] = np.diag(sigma[j, k]) hmm.set(pi, A, R, mu, diag_sigma) L = hmm.log_likelihood_multi(signals).sum() print "LL for actual params:", L
def fake_signal(init=big_init): signals = get_signals(init=init) # for signal in signals: # print "mean:", signal.mean(axis=0), "var:", signal.var(axis=0) hmm = HMM(5, 3) hmm.fit(signals) L = hmm.log_likelihood_multi(signals).sum() print "LL for fitted params:", L # test in actual params _, _, _, pi, A, R, mu, sigma = init() M, K, D = mu.shape diag_sigma = np.zeros((M, K, D)) for j in xrange(M): for k in xrange(K): diag_sigma[j,k] = np.diag(sigma[j,k]) hmm.set(pi, A, R, mu, diag_sigma) L = hmm.log_likelihood_multi(signals).sum() print "LL for actual params:", L
def fake_signal(): signals = get_signals() hmm = HMM(5, 3) hmm.fit(signals, max_iter=3) L = hmm.log_likelihood_multi(signals).sum() print("LL for fitted params:", L) # test in actual params _, _, _, pi, A, R, mu, sigma = big_init() # turn these into their "pre-softmax" forms pi = np.log(pi) A = np.log(A) R = np.log(R) # decompose sigma using cholesky factorization sigma = np.linalg.cholesky(sigma) hmm.set(pi, A, R, mu, sigma) L = hmm.log_likelihood_multi(signals).sum() print("LL for actual params:", L)
def fake_signal(init=big_init): signals = get_signals(init=init) # for signal in signals: # for d in xrange(signal.shape[1]): # plt.plot(signal[:,d]) # plt.show() hmm = HMM(5, 3) hmm.fit(signals) L = hmm.log_likelihood_multi(signals).sum() print("LL for fitted params:", L) # test in actual params _, _, _, pi, A, R, mu, sigma = init() hmm.set(pi, A, R, mu, sigma) L = hmm.log_likelihood_multi(signals).sum() print("LL for actual params:", L) # print most likely state sequence print("Most likely state sequence for initial observation:") print(hmm.get_state_sequence(signals[0]))
def fake_signal(init=simple_init): signals = get_signals(N=10, T=10, init=init) # for signal in signals: # for d in xrange(signal.shape[1]): # plt.plot(signal[:,d]) # plt.show() hmm = HMM(2, 2) hmm.fit(signals) L = hmm.log_likelihood_multi(signals).sum() print("LL for fitted params:", L) # test in actual params _, _, _, pi, A, R, mu, sigma = init() hmm.set(pi, A, R, mu, sigma) L = hmm.log_likelihood_multi(signals).sum() print("LL for actual params:", L) # print most likely state sequence print("Most likely state sequence for initial observation:") print(hmm.get_state_sequence(signals[0]))
def fake_signal(): signals = get_signals() hmm = HMM(5, 3) hmm.fit(signals) L = hmm.log_likelihood_multi(signals).sum()