俺にも執筆活動させろボケ

udemyで動画学習している。

本の杖とか手すりとしてこのブログ使ってたけどあんまりうまく活用できてなかった。

本の杖っていうのは読み終わったら目次にその章の概要を書いていくとか手すりってのは読み終わったら章のマスを塗りつぶしていくと最後まで読める的な読書術なんだけど。

これがまためんどくさい、塗ったり概要を書くことはかんたんなんだがそのシートを作るのがめんどくさい。

その悩みを解消できるのがudemyだった。

動画を見終わるとチェックが勝手に入る、これは便利だ。

学習しやすいしにくいってそういうことだと思う。

あと理解が圧倒的に速い、一人だとたぶんこういうことなんだろうなあ→ちょっとちがうかこうだ→やっぱりそうだな。

講師がいるとこれこれこうです。→なるほど。で終わる。

f:id:nemui3900:20180125174304j:plain

あと8本積んであるので、しばらくはこれをやっていく。

次は時系列データの機械学習に進もう。

いったん整理

y=Xw

yが予測

Xがプレースホルダ(訓練データだったりテストデータ)

wがパラメータでこれをいじって正解率を上げたりする。

qiita.com

  1. inference() - 予測のためにネットワークを前進実行するグラフを作成します。
  2. loss() - 損失を生成する操作をグラフに追加します。
  3. training() - 勾配を計算し適用する操作をグラフに追加します。

前進実行とはなんだ。

tf.Variable

はwでパラメーター

あかん英語・日本語・専門用語・プログラミングチャンプルされ過ぎてて読み進まん。

この先は専門書で学ぶことにする。

チュートリアル最初を飛ばしてた


qiita.com

メカニクス行く前に一番最初の飛ばしてることに気づいて最初から。

”Variablesは学習可能なパラメータをグラフに追加することを可能にします。

その値は変わることはありません。対象的に、変数(variables)はtf.Variableを呼んでも初期化されません。TensorFlowプログラムですべての変数を初期化するためには明示的に以下のような特別な操作をしなければなりません:

init = tf.global_variables_initializer()
sess.run(init)
initがすべてのグローバル変数を初期化するTensorFlow sub-graphのハンドルであると認識することは重要です。sess.runを呼ぶまで、それらの変数は初期化されません。”

tf.contrib.learn

ってのがあるのね

optmizeの動きがいまいちわからん、プレースホルダに誤差が小さくなるような値が代入されるときに具体的にoptがやってるってことだよなあ。

 

2つ目の消化。

qiita.com

引きつづき引用を黒、メモを青で。

 

高効率のC ++バックエンドに依存しています。このバックエンドとの接続をセッションと呼びます。

まずグラフを作成し、セッションでそれを起動することです。

コードを構造化する方法についてTensorFlowをより柔軟にする便利なInteractiveSessionクラスを使用します。

Pythonコードの役割は、この外部計算グラフを構築し、計算グラフのどの部分を実行すべきか記述することです。詳細については基本的な使用方法計算グラフの節を参照してください。

概要がなんとなくうっすら本当にうっすらわからんでもない。

線型レイヤーってなんやねん。

 

shape引数はオプションですが、これを指定するとTensorFlowは一貫性のないテンソル形状から生じるバグを自動的にキャッチすることができます。

sess.run(tf.global_variables_initializer())

セッション内で変数を使用する前に、そのセッションを使用して変数を初期化する必要があります。このステップでは、すでに指定されている初期値(0で満たされたテンソル)をとり、各変数に割り当てます。これは、一度にすべての変数について行うことができます。

変数は一度に初期化しておく。

例えば、tf.argmax(y,1)はモデルが各入力に対して最も可能性が高いと考えているラベルで、一方、tf.argmax(y_,1)は正しいラベルです。予測が真実に一致するかどうかをチェックするためにtf.equalを使用することができます。

畳み込み一回勉強したけどちゃんとわかってないことが分かった。

実際に手を動かすべきだなあこのへんは。

 

QRNNをやりたいというかやるためのチュートリアル

qiita.com

チュートリアルちゃんとやるために翻訳されたところを見つけた、ありがてえ。

英語は苦手や。

 

メモ

”画像を「x」、ラベルを「y」”

「1-ホットベクトル」=3 は、[0,0,0,1,0,0,0,0,0,0]

https://camo.qiitausercontent.com/36b1352f8185982e4f9eb032b50b79bc6b2de5af/68747470733a2f2f7777772e74656e736f72666c6f772e6f72672f76657273696f6e732f6d61737465722f696d616765732f6d6e6973742d747261696e2d79732e706e67

”次の図は、あるモデルが、これらのクラスのそれぞれについて学習した重みを示しています。赤色が負の重みを表し、青色が正の重みを表します。”

https://camo.qiitausercontent.com/dfbde259a956f79f0cbc6ce22c6694f6e84f31b9/68747470733a2f2f7777772e74656e736f72666c6f772e6f72672f76657273696f6e732f6d61737465722f696d616765732f736f66746d61782d776569676874732e706e67

ああ、ソフトマックス回帰とソフトマックス関数って別の言葉か。ごっちゃになってたわ。

https://camo.qiitausercontent.com/2355e0dce3dbb82afba844cb8fa8fc0b10a7e201/68747470733a2f2f7777772e74656e736f72666c6f772e6f72672f76657273696f6e732f6d61737465722f696d616765732f736f66746d61782d72656772657373696f6e2d766563746f726571756174696f6e2e706e67

”28x28=784”

”形状 [None, 784] で表します。(ここで None は、次元が任意の長さをとることができることを意味します。)”

”これをコストまたは損失と呼び、モデルが希望する結果からどの程度離れているかを表します”

「交差エントロピー」は今度ちゃんと覚える。

”tf.reduce_mean は、バッチ内のすべてのサンプルにわたる平均を計算します。”

 tf.argmax はいくつかの軸に沿ったテンソルで最も高い要素のインデックスを与える非常に便利な関数です。”

tf.argmaxは後でちゃんと解説ググる

一日一個やな、分かったようなわからないような。

 

根性で予定していたプログラムを書ききった(えらい

とりあえずワーニング出ちゃったけど各periodごとに相関係数を算出した。

f:id:nemui3900:20180109223405j:plain

無理やりfor文でやったけど絶対もっといい方法がある。

つーかゼロ除算してるっぽいなあ

そもそも対数変化率でやるのやめるか?

相関係数の乖離はjpyでそのままやるかね

とりあえず一日ごとに分解して対数変化率のスランプグラフと

相関係数のデータをnpzにして保存するのをスケジュール組んでスクリプトで勝手にやらせるようにしておきたい。

圧倒的にクオンツの知識が足りていないのと本を読む時間がとれていない。

俺が難しい本を読む速度が大幅に上がらないとそもそも解決しない気がしてきたので突貫工事で誤魔化していきたい。

基礎は大事だが何か作って表現しないとさすがにストレスがたまりすぎている。