Edited at

TensorFlow機械学習クックブック第2章で個人的につまったところとか


Recipe 13

<方法>

分類アルゴリズム

6.

xentropy = tf.nn.sigmoid_cross_entropy_with_logits(

logits=my_output_expanded, labels=y_target_expanded)

logitsて何だよ # 参考1:barber:

納得!


Recipe 14

<仕組み>

rand_x = [x_vals[rand_index]]

rand_y = [y_vals[rand_index]]
sess.run(train_step, feed_dict={x_data: rand_x, y_target: rand_y})

[]でくくってplaceholderにあわせて二次元にしてる。あれでも、x_dataに渡すのはリストでいいの?テンソル型じゃなくていいんだっけとか思ったけど、placeholderに渡すのは配列でもスカラーでもけっこうなんでもokだった # 参考2 :crossed_flags:


Recipe 15

<方法>

9.

plt.plot(setosa_x, setosa_y, 'rx', ms=10, mew=2, label='setosa')

ms、 mew ってなんだよ :performing_arts:

ms == marker size

mew == marker edge width


Recipe 16

<仕組み>

回帰モデルの評価

1.

train_indices = np.random.choice(len(x_vals), round(len(x_vals)*0.8), replce=False)

train_indices = np.array(list(set(range(len(x_vals))) = set(train_indices)))

長い :moyai:

np.random.choice(整数a, 整数b) で np.arange(a)で生成される配列の中身からb個ランダムで取り出す # 参考3

roundで整数にする

replace=False で重複禁止

set()で集合型にすることで、集合としての和、差、積等の演算ができる

np.arrayの引数はリストorタプルだそうなので、list()で集合型からリストに変換

あと list(set(hogehoge)) じゃなくて [set(hogehoge)] ってできないの?て思ったけどなんか違った(後者だとset(hogehoge)の全体がリストの第0要素になってしまう)

変換するときは明示的に書かないといけない的な

分類モデルの評価

5.

bins = np.linspace(-5, 5, 50)

plt.hist(x_vals[0:50], bins, ...)
plt.hist(x_vals[50:100], bins[0:50], ...)

なんで2行目のbinsは範囲書いたん?て思ったけど、これはx_valsの範囲は変わったけどbinsの範囲は変わらないことを明記したのか、と(必要なかった) :hotsprings:


難しい英語(うp主は英弱)

reduce_mean の reduce : 縮約する

temp_loss の temp (== temporary) : 一時的な

indices : indexの複数形

bin : 各々が互いに素である区間・階級。カテゴリ。


参考


  1. 機械学習のための数学

  2. TensorFlowのfeed_dict={x_data: x_val}の意味について

  3. NumPyのrandomを使った配列操作・乱数生成方法まとめ

  4. weblio