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

PDF
TensorFlowをざっくりLTしてみた
PDF
思いついたアルゴリズムを TensorFlow で実装してみた話
PDF
内省するTensorFlow
PDF
TensorFlowで遊んでみよう!
PDF
TensorFlowで逆強化学習
PDF
TensorFlow 入門
PDF
Chainerのテスト環境とDockerでのCUDAの利用
PDF
ピーFIの研究開発現場
TensorFlowをざっくりLTしてみた
思いついたアルゴリズムを TensorFlow で実装してみた話
内省するTensorFlow
TensorFlowで遊んでみよう!
TensorFlowで逆強化学習
TensorFlow 入門
Chainerのテスト環境とDockerでのCUDAの利用
ピーFIの研究開発現場

What's hot (19)

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

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