まったりAI勉強記

AI(人工知能)について、特にゆかりがあるわけでもない社会人が、まったりとAIについて勉強していく勉強日記です。

【ひとり読書会】PyTorch&深層学習プログラミング(第18回)

どうも、カタミチです。

さて、今日も「最短コースでわかる PyTorch&深層学習プログラミング」のひとり読書会、やっていきますかねー。

今日は、線形回帰の計算の続きですね。行ってみましょう!

 

3-6. 予測計算

前回、前処理して少しXとYのデータを加工したんでしたね。ということで、次の予測計算のパートです。今回まずは前処理まで済ませたデータを…

テンソル形式に変換します。元々はNumPyの配列で定義していたものの変換ですね。浮動小数への変換は、float関数で対応してますね。

で、今回求めたい値である重みとバイアスもテンソルで定義。

初期値には1を採用するみたいです。ここは、以前勉強した時に「1が妥当なのか?」と疑問に思った点ですが、実際には、工夫の余地がある部分でしたね。

で、ここに引数として「request_grad」を設定してます。なるほど、求めたい値それぞれにこの引数を設定する感じなんですね。だんだんお作法が分かってきました。

で、予測関数を定義します。

Yの値は、初期値ではXに1を掛けて1を足したものなので、printした結果は確かに合ってますね。

どうやら、直接\(Yp= W * X + B\)とせずに、予測関数predを挟むことが必要なようです。

で、計算グラフの表示ですが、今回は求める値がWとBの2つあるため、make_dotの引数のparamsには2つとも渡すようですね。

で、表示してみると…

 

おおー、なんかスタートが2つありますね!

Wの側の「MulBackward0」は、掛け算を表しているようです。で、その下の、矢印が集まった先の「AddBackward0」は、足し算ですね。今回の例で見ると、計算グラフが何を表しているのかが割とイメージ付きました。

 

ということで

少しずつ、計算グラフってやつにも馴染んできました。おそらく、これからも何度も出てくると思いますので、さらに慣れていきますかねー。

さて、線形回帰はここから損失計算に入っていきますね。引き続き頑張っていこー、おー。

ではまた。