
人工ç¥èœã®ã¿ã¹ã¯
人工ç¥èœïŒAIïŒã¯ã人éãšåç以äžã®ã¬ãã«ã®äººã ãé垞解決ããåé¡ã解決ã§ããã¢ã«ãŽãªãºã ã§ãã ããã«ã¯ãèŠèŠç»åã®èªèãããã¹ãã®ç解ãšåæãã¡ã«ããºã ã®å¶åŸ¡ãè«çãã§ãŒã³ã®æ§ç¯ããããŸãã 人工ç¥èœã·ã¹ãã ã¯ãããããåé¡ããã¹ãŠäžåºŠã«å¹æçã«è§£æ±ºã§ããã·ã¹ãã ã§ãã ãã®åé¡ã«å¯Ÿãã解決çã¯ãŸã ãããŸããããAIåé¡ã解決ããããã®æåã®ã¹ããããšåŒã°ããããŸããŸãªã¢ãããŒãããããŸãã
20äžçŽã«ã¯ãã«ãŒã«ããŒã¹ã®ã¢ãããŒããæã人æ°ããããŸããã 圌ã®èãã¯ãäžçã¯ãäŸãã°ç©çåŠãä»ã®èªç¶ç§åŠã«ãã£ãŠç 究ãããŠããæ³åã«åŸããšããããšã§ãã ãŸããAIã§å¹æçã«çŽæ¥ããã°ã©ã ã§ããªãå Žåã§ããååãªæ°ã®ããã°ã©ã ãããã«ãŒã«ã䜿çšããŠãã³ã³ãã¥ãŒã¿ãŒã«åºã¥ãAIã·ã¹ãã ããããã®ã«ãŒã«ã«åºã¥ããŠäžçã«å¹æçã«ååšããä»»æã®åé¡ã解決ã§ãããšä»®å®ããã®ã¯åççã§ãã ãã®ã¢ãããŒãã§ã¯ãããã€ãã®ã€ãã³ãã®èªç¶ç¢ºçãèæ ®ããŠããŸããã ãããèæ ®ããã«ã¯ãã©ã³ãã ãªå ¥åããŒã¿ãæ¡ä»¶ãšããŠã確çç決å®ãè¡ãããã®ãã®ã«ãŒã«ã®ãªã¹ãã«ç¢ºçã¢ãã«ãæ§ç¯ããå¿ èŠããããŸãã
äžçãå®å šã«èª¬æããã«ã¯ãéåžžã«å€ãã®ã«ãŒã«ãå¿ èŠã«ãªããããããããæåã§èšå®ããã³ä¿å®ããããšã¯ã§ããŸããã ããã«ãããçŸå®äžçã®ã€ãã³ããååã«èŠ³å¯ãããããã®èŠ³å¯ããå¿ èŠãªã«ãŒã«ãèªåçã«å°åºãããšããã¢ã€ãã¢ãçãŸããŸãã ãã®ã¢ã€ãã¢ã¯ãããã€ãã®èªç¶ããã»ã¹ã®å®éã®ç¢ºçè«ãšãç¹å®ã®æ±ºå®è«çããã»ã¹ã«åœ±é¿ãäžããèŠå ãå®å šã«ã¯ããããªããšããäºå®ã«ãã£ãŠçããæ³åäžã®ç¢ºçè«ã®äž¡æ¹ãå³åº§ã«ãµããŒãããŸãã 芳枬ããã®ã«ãŒã«ã®èªåå°åºã¯ãæ©æ¢°åŠç¿ãšåŒã°ããæ°åŠã®ã»ã¯ã·ã§ã³ã«ãã£ãŠåŠçãããŸãããããçŸåšãAIã®æãææãªåºç€ã§ãã
æ©æ¢°åŠç¿AI
åã®ç« ã§ã¯ãæ©æ¢°åŠç¿ã®å€å žçãªåé¡ïŒåé¡ãšååž°ïŒãšããããã解決ããããã®å€å žçãªç·åœ¢ææ³ïŒããžã¹ãã£ãã¯ååž°ãšç·åœ¢ååž°ïŒã«ã€ããŠèŠãŠããŸããã å®éã«ã¯ãéç·åœ¢ã¢ãã«ã¯ãéåžžã決å®æšãŸãã¯ãã£ãŒã人工ãã¥ãŒã©ã«ãããã¯ãŒã¯ã«åºã¥ããè€éãªåé¡ã«äœ¿çšãããŸãããããã¯ãé«ã¬ãã«ã®åé·æ§ãåããé«å¯åºŠããŒã¿ïŒç»åãé³å£°ãããã¹ãïŒã®åŠçãããåªããŠããŸãã
ãããã®æ¹æ³ã¯ã芳å¯ã«åºã¥ããŠã«ãŒã«ãèªåçã«å°åºããããšãã§ããåçšã¢ããªã±ãŒã·ã§ã³ã§éåžžã«ããŸãé©çšãããŸãã ãã ããAIã·ã¹ãã ãšããŠäœ¿çšããã«ã¯äžååã§ãããšããæ¬ ç¹ããããŸããããšãã°ãç»åå ã®ç«ãšç¬ãåºå¥ãããªã©ãç¹å®ã®é«åºŠã«ç¹æ®åãããåé¡ã解決ããããã«ç¹å¥ã«èšèšãããŠããŸãã æããã«ãç»åã1ã€ã®æ°å€ã«åèšããã¢ãã«ã§ã¯ã倧éã®ããŒã¿ã倱ãããŸãã ç»åå ã®ç«ãå€å¥ããã«ã¯ãç«ã®æ¬è³ªãç解ããå¿ èŠã¯ãããŸããããã®ç«ã®äž»ãªå åãæ¢ãæ¹æ³ãåŠã¶ã ãã§ååã§ãã ç»ååé¡ã®ã¿ã¹ã¯ã¯ãã·ãŒã³ã®å®å šãªç解ãæå³ããã®ã§ã¯ãªããã·ãŒã³å ã®ç¹å®ã®ãªããžã§ã¯ãã®æ€çŽ¢ã®ã¿ãæå³ããŸãã å°ãªããšãåéããã³ããŒã¯ã¢ãŠããå¿ èŠãªææ°é¢æ°çã«å€§éã®èŠ³æž¬ã®ããããªããžã§ã¯ãã®ãã¹ãŠã®å¯èœãªçµã¿åããã®æ¥ç¶ã®ãã¹ãŠã®å¯èœãªçµã¿åããã®åé¡åã決å®ããããšã¯ã§ããŸããã ãããã£ãŠãç¹å®ã®ã¿ã¹ã¯ã解決ããã匷åã䌎ãå€å žçãªæ©æ¢°åŠç¿åé¡ã®ã¢ã€ãã¢ã¯é©åã§ã¯ãããŸããã AIã®å Žåãæ©æ¢°åŠç¿ã®åé¡ãå®åŒåããããã®æ ¹æ¬çã«ç°ãªãã¢ãããŒããå¿ èŠã§ãã
äžçãç解ããåé¡ã®ç¢ºçè«ç声æ
ãã®ãããäžé£ã®èŠ³å¯çµæãçæããããã»ã¹ãç解ãããšããæå³ã§ã芳å¯ãå¿ èŠã§ãã ãã®åé¡ã確ççèšèªã§åå®åŒåããŸãã 芳枬ã確çå€æ°ã®å®çŸãšãã



ãã®åé¡ã解決ããã«ã¯ãããã€ãã®ã¢ãããŒãããããŸãã æãäžè¬çãªæ¹æ³ã®1ã€ã¯ãæœåšå€æ°ã®å°å ¥ã§ãã ç¹å®ã®è¡šçŸããããšä»®å®ããŸã








å¥ã®æ¹æ³ã§åé¡ã«ã¢ãããŒãã§ããŸãã å®éãæ瀺çã«èšç®ããŸã











äž»æååæ
åçŽãªçæã¢ãã«ãèŠãŠã¿ãŸãããã ããã€ãã®èŠ³æž¬å¯èœãªéããããŸããã






æåŸ ã®æ倧å
æåŸ å€æ倧åïŒEMïŒã¯ãæœåšå€æ°ãæã€ã¢ãã«ããã¬ãŒãã³ã°ããããã®ã¢ã«ãŽãªãºã ã§ãã 詳现ã¯å°éæç®ã§èŠã€ããããšãã§ããŸãããã¢ã«ãŽãªãºã ã®äžè¬çãªæ¬è³ªã¯éåžžã«ç°¡åã§ãïŒ
- ãã©ã¡ãŒã¿ãŒã®åæå€ã§ã¢ãã«ãåæåããŸãã
- E-ã¹ãããã æœåšå€æ°ãçŸåšã®ã¢ãã«ã®æåŸ å€ã§åããŸãã
- Mã¹ãããã æœåšå€æ°ãåºå®ãããã¢ãã«ã®å°€åºŠãæ倧åããŸãã ããšãã°ããã©ã¡ãŒã¿ã®åŸé éäžã
- æœåšå€æ°ã®æåŸ å€ãå€åããªããªããŸã§ãïŒ2ã3ïŒãç¹°ãè¿ããŸãã
M-ã¹ããããæåŸãŸã§å°€åºŠãæ倧åãããæ倧ã«åãã£ãŠäžæ©ããèžã¿åºããªãå Žåãããã¯äžè¬åEMïŒGEMïŒãšåŒã°ããŸãã
EMã䜿çšããPCAãœãªã¥ãŒã·ã§ã³
PCA EMã¢ãã«ã®æé©ãªãã©ã¡ãŒã¿ãŒã®æ€çŽ¢ã«ã¢ã«ãŽãªãºã ãšæå°€æ³ãé©çšããŸã


ã©ãã§




倧ããã¯ã©ãã§ãã












䟡å€


- EïŒ
ã ããã«ããã2çªç®ã®çšèªãç¡å¹ã«ãªããŸã
ã
- MïŒæåã®é
ãæ倧åãã
ã
PPCAã¯ç·åœ¢ã¢ãã«ã§ãããããåæçã«è§£æ±ºã§ããŸãã ãããã代ããã«ãæ倧åãæåŸãŸã§å®è¡ããããåŸé äžæãæé©ã«åãã£ãŠ1ã¹ããããããªãå Žåãäžè¬åãããEMã¢ã«ãŽãªãºã ã®å©ããåããŠããã解決ããããšããŸãã ããã«ã確ççåŸé äžæã䜿çšããŸãã 圌ã®ã¹ãããã¯ãå¹³åçã«ã®ã¿æé©åãžã®ã¹ãããã«ãªããŸãã ããŒã¿ã¯iidãªã®ã§ã

ãã©ãŒã ã®åŒã«æ³šæããŠãã ãã



åäžã®ãµã³ãã«ã¯æ°åŠçãªæåŸ ã®å ¬å¹³ãªæšå®å€ã§ããããã次ã®çåŒãã»ãŒæžãçããããšãã§ããŸãã

åèšã眮æ





ãŸãã¯

ãã©ãŒãã¥ã©1. PPCAã¢ãã«ã®ããŒã¿ã®å°€åºŠã«æ¯äŸããæ倱é¢æ°ã
ã©ãã§




- ãã©ã¡ãŒã¿ãåæåãã
åççãªã©ã³ãã åæè¿äŒŒã
- ãµã³ããªã³ã°
-ããŒã¿ããã®ãããããã®ãµã³ããªã³ã°ã
- æœåšå€æ°ã®æåŸ
å€ãèšç®ããŸã
ãŸãã¯
ã
- 代çš
åŒïŒ1ïŒã§
ãããŠããã©ã¡ãŒã¿ã®åŸé äžæã®ã¹ããããèžã¿ãŸãã èŠããŠããããšãéèŠã§ã
å ¥åãšããŠååŸãããã®å éšã®ãšã©ãŒã®éäŒæãèš±å¯ããªãã§ãã ããã
- ããŒã¿ã®å°€åºŠãšã³ã³ãããŒã«ã®å¯èŠå€æ°ã®æœåšå€æ°ã®æåŸ å€ã倧ããå€ãããªãå Žåããã¬ãŒãã³ã°ãåæ¢ããŸãã ãã以å€ã®å Žåã¯ãæé ïŒ2ïŒã«é²ã¿ãŸãã
ã¢ãã«ããã¬ãŒãã³ã°ãããåŸãã¢ãã«ãããµã³ãã«ãçæã§ããŸãã

PCAåé¡ã®æ°å€è§£
æšæºã®SGDã䜿çšããŠPPCAã¢ãã«ããã¬ãŒãã³ã°ããŸãããã ãã¹ãŠã®è©³çŽ°ãç解ããããã«ãããã¡ãã®äŸã䜿çšããŠã¢ãã«ã®åäœãå床調ã¹ãŸãã å®å šãªã¢ãã«ã³ãŒãã«ã€ããŠã¯ã ãã¡ããã芧ãã ãã ããã®èšäºã§ã¯ãéèŠãªç¹ã®ã¿ãåãäžããŸãã
眮ã



å³ 1.ååžã®ç¹ã®95ïŒ ãå ¥ãäžå€®ä»è¿ã®æ¥å

ãã®ãããæåã«è¡ãããšã¯ããŒã¿ã®çæã§ãã ãµã³ãã«ãçæããŸã

def normal_samples(batch_size): def example(): return tf.contrib.distributions.MultivariateNormalDiag( [5, 10], [1.2, 2.4]).sample(sample_shape=[1])[0] return tf.contrib.data.Dataset.from_tensors([0.]) .repeat() .map(lambda x: example()) .batch(batch_size)
次ã«ãã¢ãã«ãã©ã¡ãŒã¿ãŒã決å®ããå¿ èŠããããŸãã
input_size = 2 latent_space_size = 1 stddev = tf.get_variable( "stddev", initializer=tf.constant(0.1, shape=[1])) biases = tf.get_variable( "biases", initializer=tf.constant(0.1, shape=[input_size])) weights = tf.get_variable( "Weights", initializer=tf.truncated_normal( [input_size, latent_space_size], stddev=0.1))
ãã®åŸãå¯èŠå€æ°ã®ãµã³ãã«ã®æœåšè¡šçŸãååŸã§ããŸãã
def get_latent(visible, latent_space_size, batch_size): matrix = tf.matrix_inverse( tf.matmul(weights, weights, transpose_a=True) + stddev**2 * tf.eye(latent_space_size)) mean_matrix = tf.matmul(matrix, weights, transpose_b=True) # Multiply each vector in a batch by a matrix. expected_latent = batch_matmul( mean_matrix, visible - biases, batch_size) stddev_matrix = stddev**2 * matrix noise = tf.contrib.distributions.MultivariateNormalFullCovariance( tf.zeros(latent_space_size), stddev_matrix) .sample(sample_shape=[batch_size]) return tf.stop_gradient(expected_latent + noise)
ããã§ã¯ãtf.stop_gradientïŒ...ïŒã«æ³šæããå¿ èŠããããŸãã ãã®é¢æ°ã¯ãå ¥åãµãã°ã©ãå ã®ãã©ã¡ãŒã¿ãŒå€ããããã®ãã©ã¡ãŒã¿ãŒã«é¢ããŠåŸé ã«åœ±é¿ãäžããããšãèš±å¯ããŸããã ãããå¿ èŠã§ã

æ倱é¢æ°ãæžããŸããã

sample = dataset.get_next() latent_sample = get_latent(sample, latent_space_size, batch_size) norm_squared = tf.reduce_sum((sample - biases - batch_matmul(weights, latent_sample, batch_size))**2, axis=1) loss = tf.reduce_mean( input_size * tf.log(stddev**2) + 1/stddev**2 * norm_squared) train = tf.train.AdamOptimizer(learning_rate) .minimize(loss, var_list=[bias, weights, stddev], name="train")
ãããã£ãŠãã¢ãã«ã¯ãã¬ãŒãã³ã°ã®æºåãã§ããŠããŸãã ã¢ãã«ã®åŠç¿æ²ç·ãèŠãŠã¿ãŸãããã

å³ 2.æ²ç·åŠç¿ã¢ãã«PPCAã
ã¢ãã«ã¯ããªãå®æçãã€è¿ éã«åæããããšãããããŸããããã¯ã¢ãã«ã®åçŽããããåæ ããŠããŸãã åŠç¿ããååžãã©ã¡ãŒã¿ãŒãèŠãŠã¿ãŸãããã


å³ 3.åç¹ããã®ãªãã»ããã®ã°ã©ãïŒãã©ã¡ãŒã¿ãŒ

ãããèŠããã





å³ 4.ãã©ã¡ãŒã¿å€æŽã®ã¹ã±ãžã¥ãŒã«

å€ãèŠãããŸã



å³ 5.ãã©ã¡ãŒã¿ãŒå€æŽã®ã°ã©ã




ããŒã¿ã®ååžãèŠãŠã¿ãŸãããã æœåšå€æ°ã¯1次å ã§ããããã1次å ååžãšããŠè¡šç€ºãããŸãã å¯èŠå€æ°ã¯2次å ã§ãããäžããããå ±åæ£è¡åã¯å¯Ÿè§ã§ããã€ãŸãããã®æ¥åäœã¯åº§æšè»žãšæŽåããŠããŸãã ãããã£ãŠã座æšè»žäžã®ååžã®2ã€ã®æ圱ãšããŠè¡šç€ºããŸãã ããã¯ãäžãããåŠç¿ãããååžãã©ã®ããã«èŠãããã§ã


å³ 6.ç¹å®ã®ååžã®äºæž¬


å³ 7.åŠç¿ããååžã®äºæž¬

ãããŠãäžããããŠåŠç¿ãããååžã¯æ¬¡ã®ããã«ãªããŸã


å³ 8.ç¹å®ã®ååžã®äºæž¬


å³ 9.åŠç¿ããååžã®äºæž¬

ãããã£ãŠãåæããã³åŠç¿ååžã¯æ¬¡ã®ããã«ãªããŸã


å³ 10.ã¿ãŒã²ããé åž


å³ 11.åŠç¿ããååž

åŠç¿ããããã¹ãŠã®ååžã¯ãã¿ã¹ã¯ã«ãã£ãŠäžããããååžã«éåžžã«é¡äŒŒããååžã«åæããããšãããããŸãã ãããæçµçã«ç¢ºèªããããã«ãã¢ãã«ãã¬ãŒãã³ã°ã®ãã€ããã¯ã¹ãèŠãŠã¿ãŸãããã

å³ 12. PPCAã¢ãã«ã®åŠç¿ããã»ã¹ãåŠç¿ãããååž


ãããã«
æå®ãããã¢ãã«ã¯ãç·åœ¢ã¢ãã«ã§ããå€å žçãªPCAã¢ãã«ã®ç¢ºçç解éã§ãã å ã®èšäºã®æ°åŠã䜿çšãããã®äžã«GEMã¢ã«ãŽãªãºã ãæ§ç¯ããç°¡åãªäŸã䜿çšããŠãçµæã®ã¢ãã«ãåæ解ã«åæããããšã瀺ããŸããã ãã¡ãããåé¡ãããå Žå

è¬èŸ
ããã¹ããã¬ãã¥ãŒããŠãããOlga Talanovaã«æè¬ããŸãã ãã®èšäºã®ã¬ã€ã¢ãŠããæäŒã£ãŠãããAndrei Tarashkevichã«æè¬ããŸãã