読書会成果物:TensorFlow実装入門
 Share
The version of the browser you are using is no longer supported. Please upgrade to a supported browser.Dismiss

View only
 
ABCDEFGHIJKLMNOPQRSTUVWXY
1
章番号質問内容回答者回答内容
2
答え ※必ずしも全て本に書いてある内容そのものだけでなく、読書会参加者の個人的な見解である場合も含みます
3
4
1.4確率的勾配降下法の考え方と、それがどうしてニューラルネットワークに関係するのかを教えてください杉原勾配降下法ではパラメータが一番近い極値に行く。
確率的では、平均誤差の計算のためにすべてのデータを使わず
一部のデータをサンプリングして勾配計算を行う
5
1.4ミニバッチのの数はなんで32~256を
とることになるのかを教えてください。
水上ミニバッチは2の累乗になることが多い。
ミニバッチ数はそのモデルによってことなり、試行錯誤で決められることが多い。
ミニバッチで標準化するので数が少ないと少ないモデルでの学習になり、一部のデータに過学習する
数が多いとよりデータ全体の特徴を捉えたモデルになる
またメモリの制約によって数は変わる
6
1.5誤差逆伝播法とは何ですか?杉原出力層側は損失関数がシンプルなため計算が簡単。入力側は、活性化関数がネストされていて計算難しい。
出力側から順に連鎖率を利用してパラメータを計算してその次の層に行くときもその計算を利用して計算していく
7
1.6層を深くすると何故より精度の高いモデルができる
のでしょうか。その層はどのくらいまでがいいのか。
susumuisより複雑な問題を解ける
8
2.2assign関数を使った時の内部での動きを知りたいsusumuis計算グラフを無理やりPythonのプログラムに翻訳したらこうなります。
ただし、計算グラフなので、assignを解釈するためには a, bも解釈されます。
const1 = 3 # a
val1 = 0 # b
add_val = const1 + val1 # add
b = add_val # assign
c = input() # placeholder
mul = b * c # multiply
9
2.2pythonのwith ~ as 構文がよくわかりません。susumuisすごいざっくりいうと、これと同じです。
sess = tf.Session()
sess.__enter__()
try:
処理
finally:
sess.__exit__()
with構文はファイルやDB接続などのリソースを割り当てる場面で使用します。
with構文を使えばリソースの開放忘れを防ぐことができます。
10
2.2sess.run(add)は addをforループだけ繰り返すということか?susumuis先ほどの例で、
const1 = 3 # a
val1 = 0 # b
const1 + val1 # add
この3つを3回繰り返すということです。
結果としては単に計算されているだけなので、なんの副作用もありません。
11
3.1TensorBoardでは何が見れるのですか?杉原構築した計算グラフや学習の過程での誤差や重みがどう変化していったかをみることができる。例えば折れ線グラフではaccuracyやロスがどのように変遷していったかや、学習でーたに用いた画像データがどのように表示されるか。
12
4.1自然言語がどうして時系列データに分類されるのか水上文章は文法に基づいているので次どのような品詞が来るのかの時系列問題に落とし込める
13
4.4ニューラル言語モデルとは何ですか?他の手法と比べて何が優れているのですか?水上ある単語を入力したとき、その周辺に現れる確率の高い単語を出力するようなネットワーク
14
4.2RNNをTensorFlowで実装するには何を使えばいいのですか?杉原r
15
4.1RNNの問題点とLSTMとは何かについて教えてください。杉原RNNにおいては出力が時間長分あるので誤差もその数あるが時系列の数だけ連鎖率を展開しなければいけない。
16
3.3クロスエントロピーの誤差関数は二乗誤差に比べて何がどうして優れているのでしょうか。水上一般的に交差エントロピーは分類問題、二乗誤差は予測問題で使用する。交差エントロピー誤差が大きいと学習が早くなる。一方、2乗誤差は誤差が大きくても学習が早くならず、緩やかに減少していく
17
3.4sess.runの中のfeed_dictは何をしているのか水上x_data = tf.placeholder(tf.float32)
m_const = tf.constant(3.)
my_product = tf.multiply(x_data, m_const)
run(my_product, feed_dict={x_data: 1.0})
x_dataに1.0を代入してmy_productというグラフを実行する
18
4.1RNNの問題点として普通のRNNはそんなに長時間のデータを意識した学習をすることができないという問題があるとありますが、これはなぜでしょうかsusumuis活性化関数にtanhを使うためある時刻tにおける誤差の、中間層の重みWに関する勾配を計算すると、tは大きくなるにつれて0に近づいてしまい、長い文章の後半の単語が考慮されずに更新されてしまうということになるからです。
19
5.3TensorFlowで大規模データを扱うときに注意することを教えてください杉原ファイルサイズが小さいものがたくさんの場合は一つずつ読み込むのではなく、一つのデータをある程度の大きさにまとめてから行う。
20
5.4TFRecord形式のパースの仕方を教えてください
21
22
5.5tensorflowで学習する際の訓練データとテストデータの分け方は。susumuisここではこうやっていて、
train_cutoff = int(0.85 * len(val_meta))
val_cutoff = int(0.90 * len(val_meta))
train_dataset = train_meta + val_meta[0:train_cutoff]
val_dataset = val_meta[train_cutoff:val_cutoff]
test_dataset = val_meta[val_cutoff:]
下から85%をtrain, 5%をvalidation, 10%をtestデータセットに単純に分割している。ランダムに分割しなくて良い理由はよくわからない。
23
5.6Inception-v3とはどのようなモデルですか?水上インセプションモデルは異なるサイズのフィルターの畳み込み層を複数横に並べて、それを結合して1つもモジュールとしている。入力された特徴マップのサイズと同じサイズのaverage poolingを行うpooling層を入れことで全結合層のパラメータ数を減らしている
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
Loading...