SlideShare a Scribd company logo
1 of 13
TensorFlowで言語識別を
やってみた
2015/12/11@TensorFlow研究会
株式会社ビズリーチ 安田京太
自己紹介
安田京太(@dasoran)
・株式会社ビズリーチ所属
・新卒で今年の春に入社して現在インフラ担当
・機械学習は(ほぼ)趣味ですこし
やったこと
・英語、フランス語、スペイン語の文章を食わせて言語を当てさせる
・MNIST以外の簡単な学習タスクで挙動を確認したかった
・word単位で入力するのではなく、文字単位で入力した
・シンプルだと思ったのに見かけることがない
・それくらいの構造頑張って学習してほしい
入力データ
This is a pen.
↓ 文字コード化
[0x54, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73,0x20, 0x61, 0x20, 0x70, 0x65, 0x6e, 0x2e]
・400文字で文章を切って入力
TensorFlow部分のコード
x = tf.placeholder(tf.float32, [None, n_input_node])
W = tf.Variable(tf.zeros([n_input_node, 3]))
b = tf.Variable(tf.zeros([3]))
y = tf.nn.softmax(tf.matmul(x, W) + b)
y_ = tf.placeholder(tf.float32, [None, 3])
cross_entropy = -tf.reduce_sum(y_*tf.log(y))
train_step = tf.train.GradientDescentOptimizer(0.01).minimize(cross_entropy)
init = tf.initialize_all_variables()
correct_prediction = tf.equal(tf.argmax(y,1), tf.argmax(y_,1))
accuracy = tf.reduce_mean(tf.cast(correct_prediction, "float"))
sess = tf.Session()
sess.run(init)
for i in range(100):
perm = np.random.permutation(n_train)
for i in range(0, n_train, batchsize):
x_batch = np.asarray(x_train[perm[i:i + batchsize]])
y_batch = np.asarray(y_train[perm[i:i + batchsize]])
sess.run(train_step, feed_dict={x: x_batch, y_: y_batch})
print sess.run(accuracy, feed_dict={x: x_test, y_: y_test})
入力データ
短い!
(というかほとんどMNISTそのまま……)
初心者的TensorFlowの勘所
・定義してから実行する
・外部から値を入れたい変数をplaceholderで定義する
・placeholderで定義した値にsess.run(関数, feed_dict={値})で代入実行する
初心者的TensorFlowの勘所
「y = 5x + 3」を計算してみる
x = tf.placeholder(tf.float32, [None, 1])
y = 5 * x + 3
init = tf.initialize_all_variables()
sess = tf.Session()
sess.run(init)
print sess.run(y, feed_dict={x: [[10], [3]]})
話を戻して
言語認識の結果
正答率:0.416
ほとんど識別できてない
やはりword単位でないとだめなのか・・・
文字だけでなんとかする努力
・入力文字を数値ではなく256次元の1,0のベクトルにしてみた
T
↓ 文字コード化
[0x54]
↓ ベクトル化
[0, 0, 0, …, 0, 0, 1, 0, 0, ….0]
努力の結果
正答率:0.843
学習してると言えるくらいになった!
データが分散していないと学習がうまくできない事があるらしい。
まとめ
・TensorFlowは簡単!
・学習タスクは入力データの形式が大事

More Related Content

What's hot

最先端NLP勉強会 “Learning Language Games through Interaction” Sida I. Wang, Percy L...
最先端NLP勉強会“Learning Language Games through Interaction”Sida I. Wang, Percy L...最先端NLP勉強会“Learning Language Games through Interaction”Sida I. Wang, Percy L...
最先端NLP勉強会 “Learning Language Games through Interaction” Sida I. Wang, Percy L...Yuya Unno
 
子供の言語獲得と機械の言語獲得
子供の言語獲得と機械の言語獲得子供の言語獲得と機械の言語獲得
子供の言語獲得と機械の言語獲得Yuya Unno
 
NIP2015読み会「End-To-End Memory Networks」
NIP2015読み会「End-To-End Memory Networks」NIP2015読み会「End-To-End Memory Networks」
NIP2015読み会「End-To-End Memory Networks」Yuya Unno
 
言語と知識の深層学習@認知科学会サマースクール
言語と知識の深層学習@認知科学会サマースクール言語と知識の深層学習@認知科学会サマースクール
言語と知識の深層学習@認知科学会サマースクールYuya Unno
 
20150702文章読解支援のための日本語の語彙平易化システム
20150702文章読解支援のための日本語の語彙平易化システム20150702文章読解支援のための日本語の語彙平易化システム
20150702文章読解支援のための日本語の語彙平易化システムTomoyuki Kajiwara
 
文章読解支援のための語彙平易化@第1回NLP東京Dの会
文章読解支援のための語彙平易化@第1回NLP東京Dの会文章読解支援のための語彙平易化@第1回NLP東京Dの会
文章読解支援のための語彙平易化@第1回NLP東京Dの会Tomoyuki Kajiwara
 
ゼロから始める自然言語処理 【FIT2016チュートリアル】
ゼロから始める自然言語処理 【FIT2016チュートリアル】ゼロから始める自然言語処理 【FIT2016チュートリアル】
ゼロから始める自然言語処理 【FIT2016チュートリアル】Yuki Arase
 
Tensor flow勉強会 (ayashiminagaranotensorflow)
Tensor flow勉強会 (ayashiminagaranotensorflow)Tensor flow勉強会 (ayashiminagaranotensorflow)
Tensor flow勉強会 (ayashiminagaranotensorflow)tak9029
 
Facebookの人工知能アルゴリズム「memory networks」について調べてみた
Facebookの人工知能アルゴリズム「memory networks」について調べてみたFacebookの人工知能アルゴリズム「memory networks」について調べてみた
Facebookの人工知能アルゴリズム「memory networks」について調べてみた株式会社メタップスホールディングス
 
AI入門「第1回:AIの歴史とTensorFlow」
AI入門「第1回:AIの歴史とTensorFlow」AI入門「第1回:AIの歴史とTensorFlow」
AI入門「第1回:AIの歴史とTensorFlow」fukuoka.ex
 
日本語の語彙平易化システムおよび評価セットの構築
日本語の語彙平易化システムおよび評価セットの構築日本語の語彙平易化システムおよび評価セットの構築
日本語の語彙平易化システムおよび評価セットの構築Tomoyuki Kajiwara
 
ニューラルチューリングマシン入門
ニューラルチューリングマシン入門ニューラルチューリングマシン入門
ニューラルチューリングマシン入門naoto moriyama
 
開発者からみたTensor flow
開発者からみたTensor flow開発者からみたTensor flow
開発者からみたTensor flowHideo Kinami
 
【FIT2016チュートリアル】ここから始める情報処理 ~音声編~ by 東工大・篠崎先生
【FIT2016チュートリアル】ここから始める情報処理 ~音声編~ by 東工大・篠崎先生【FIT2016チュートリアル】ここから始める情報処理 ~音声編~ by 東工大・篠崎先生
【FIT2016チュートリアル】ここから始める情報処理 ~音声編~ by 東工大・篠崎先生Toshihiko Yamasaki
 

What's hot (19)

最先端NLP勉強会 “Learning Language Games through Interaction” Sida I. Wang, Percy L...
最先端NLP勉強会“Learning Language Games through Interaction”Sida I. Wang, Percy L...最先端NLP勉強会“Learning Language Games through Interaction”Sida I. Wang, Percy L...
最先端NLP勉強会 “Learning Language Games through Interaction” Sida I. Wang, Percy L...
 
子供の言語獲得と機械の言語獲得
子供の言語獲得と機械の言語獲得子供の言語獲得と機械の言語獲得
子供の言語獲得と機械の言語獲得
 
NIP2015読み会「End-To-End Memory Networks」
NIP2015読み会「End-To-End Memory Networks」NIP2015読み会「End-To-End Memory Networks」
NIP2015読み会「End-To-End Memory Networks」
 
Emnlp読み会資料
Emnlp読み会資料Emnlp読み会資料
Emnlp読み会資料
 
tmu_science_cafe02
tmu_science_cafe02tmu_science_cafe02
tmu_science_cafe02
 
言語と知識の深層学習@認知科学会サマースクール
言語と知識の深層学習@認知科学会サマースクール言語と知識の深層学習@認知科学会サマースクール
言語と知識の深層学習@認知科学会サマースクール
 
20150702文章読解支援のための日本語の語彙平易化システム
20150702文章読解支援のための日本語の語彙平易化システム20150702文章読解支援のための日本語の語彙平易化システム
20150702文章読解支援のための日本語の語彙平易化システム
 
文章読解支援のための語彙平易化@第1回NLP東京Dの会
文章読解支援のための語彙平易化@第1回NLP東京Dの会文章読解支援のための語彙平易化@第1回NLP東京Dの会
文章読解支援のための語彙平易化@第1回NLP東京Dの会
 
ゼロから始める自然言語処理 【FIT2016チュートリアル】
ゼロから始める自然言語処理 【FIT2016チュートリアル】ゼロから始める自然言語処理 【FIT2016チュートリアル】
ゼロから始める自然言語処理 【FIT2016チュートリアル】
 
Tensor flow勉強会 (ayashiminagaranotensorflow)
Tensor flow勉強会 (ayashiminagaranotensorflow)Tensor flow勉強会 (ayashiminagaranotensorflow)
Tensor flow勉強会 (ayashiminagaranotensorflow)
 
Facebookの人工知能アルゴリズム「memory networks」について調べてみた
Facebookの人工知能アルゴリズム「memory networks」について調べてみたFacebookの人工知能アルゴリズム「memory networks」について調べてみた
Facebookの人工知能アルゴリズム「memory networks」について調べてみた
 
joint_seminar
joint_seminarjoint_seminar
joint_seminar
 
AI入門「第1回:AIの歴史とTensorFlow」
AI入門「第1回:AIの歴史とTensorFlow」AI入門「第1回:AIの歴史とTensorFlow」
AI入門「第1回:AIの歴史とTensorFlow」
 
日本語の語彙平易化システムおよび評価セットの構築
日本語の語彙平易化システムおよび評価セットの構築日本語の語彙平易化システムおよび評価セットの構築
日本語の語彙平易化システムおよび評価セットの構築
 
2016tf study5
2016tf study52016tf study5
2016tf study5
 
ニューラルチューリングマシン入門
ニューラルチューリングマシン入門ニューラルチューリングマシン入門
ニューラルチューリングマシン入門
 
開発者からみたTensor flow
開発者からみたTensor flow開発者からみたTensor flow
開発者からみたTensor flow
 
【FIT2016チュートリアル】ここから始める情報処理 ~音声編~ by 東工大・篠崎先生
【FIT2016チュートリアル】ここから始める情報処理 ~音声編~ by 東工大・篠崎先生【FIT2016チュートリアル】ここから始める情報処理 ~音声編~ by 東工大・篠崎先生
【FIT2016チュートリアル】ここから始める情報処理 ~音声編~ by 東工大・篠崎先生
 
Deep forest
Deep forestDeep forest
Deep forest
 

Tensorflowで言語識別をやってみた