ディープラーニングG検定の勉強中 その16(ベクトル間の距離)

書籍「最短コースでわかるディープラーニングの数学」の内容に沿って勉強しています。

今回は、ベクトル間の距離について見ていきます。


2つのベクトルを式1のように(x軸に進んだ量, y軸に進んだ量)として成分表示したとき、

式1
3-3-3-1.png

の距離dは、式2が成り立ちます。

式2
3-3-3-2.png


それでは実際の値を代入して、距離dを算出してみます。

図1
3-3-3-3.png

図1のの距離d(青い点線の始点と終点の距離)は、図1の目盛りを「1」としたときに、式3となります。

式3
3-3-3-4.png

図1を見ると分かりますが、三平方の定理で斜辺を求めたのと同じ結果になっています。


図2
3-3-3-5.png

図2のの距離dは、式4となります。

式4
3-3-3-6.png


図3
3-3-3-7.png

図3のの距離dは、式5となります。

式5
3-3-3-8.png

図2と図3は一見直角三角形になっていないように見えますが、距離dの青い点線を斜辺と見ると、直角三角形ができているのが分かると思います。その「隠れた」直角三角形から、三平方の定理によって斜辺(距離d)を求めることができます。


ちなみに、式2が成り立つということは、多次元でも成り立つことになります。それを総和∑で表したのが式6となります。

式6
3-3-3-9.png


式5をPythonで確認してみます。

参考サイト
Qiita([Python]Numpyの参照、抽出、結合)

--------------------
import numpy as np
import math

a = np.array([1, 3])
b = np.array([4, 1])

d = math.sqrt((a[0] - b[0])**2 + (a[1] - b[1])**2)

print("d = " + str(d))

--------------------
出力結果
d = 3.605551275463989

google検索に√13と入力した計算結果です。

式7
3-3-3-10.png

同じ結果となりました。



進捗状況

最短コースでわかるディープラーニングの数学
89/328(27.1%)

ディープラーニングG検定の試験日まであと45日

ディープラーニングG検定の勉強中 その15(ベクトルの長さ(絶対値))

書籍「最短コースでわかるディープラーニングの数学」の内容に沿って勉強しています。

今回は、ベクトルの長さについて見ていきます。

ベクトルの長さは、正とした向きのベクトルをそのまま正反対にしても同じであるため、ベクトルaについて、
式1のように絶対値で表します。

式1
3-3-1-1.png

このとき、図1のように各ベクトルが直角三角形になっている場合には、三平方の定理がそのまま当てはまります。

図1
3-3-1-2.png

斜辺の長さの2乗は、他の2つの辺の長さのそれぞれ2乗と等しいので、式3が成立します。

式3
3-3-1-3.png

つまり、斜辺の長さは式4となるわけです。

式4
3-3-1-4.png


このことは、3次元でも成り立ちます。
図2のとき、

図2
3-3-1-5.png

△OABと、△OBCは、それぞれが直角三角形になっているので、その2つの三角形のそれぞれで三平方の定理が成り立ちます。

式5
3-3-1-6.png

式6
3-3-1-7.png

この式5と式6から、式7も成り立つことになります。

式7
3-3-1-8.png

図2により、式8となるため、

式8
3-3-1-10.png

3次元においても、式9のように三平方の定理が成り立つことになります。同様にして式10のように多次元でも三平方の定理が成り立ちます。

式9
3-3-1-11.png

式10
3-3-1-14.png

この式10を総和∑で書くと式11になります。

式11
3-3-1-15.png


実際に数値を入れて計算してみます。

図2の目盛りを「1」とすると、式12がOCの長さということになります。

式12
3-3-1-12.png


これをPythonでも確認してみます。
参考サイト
UNPySide(【Python】三平方の定理)

--------------------
import math

OA = 3
AB = 4
BC = 2
OB = math.sqrt(OA**2 + AB**2)
OC = math.sqrt(OA**2 + AB**2 + BC**2)

print("OC = " + str(OC))

--------------------
出力結果
OC = 5.385164807134504

式10の√29と一致するかどうか、googleの検索窓に入れて検索してみると、自動的に計算されて、式13となり、Pythonの出力結果と同じとなりました(小数点以下の桁数は違いますが、小数第11位までは一致しています)。

式13
3-3-1-13.png


出力結果をルート記号のままで出力できそうですが、いろいろなサイトを見ても、概数で表示していることがほとんどのようです。
そういうものなんでしょうか。

ディープラーニングG検定の勉強中 その14(ベクトルの和と差)

書籍「最短コースでわかるディープラーニングの数学」の内容に沿って勉強しています。

今回からは、テキストの第3章のベクトル・行列に取り掛かります。
今回は、ベクトルの和と差について見ていきます。

参考サイト
ベクトルのいろいろ(2.ベクトルの演算について その1(和と差、実数倍))

ベクトルとは、「向きと大きさを持つ量」のことです。

ベクトルの表記は、このブログではという表記に統一します。

ベクトルの特徴

の移動距離と向きがまったく同じ場合は、2つのベクトルは等しい

図1
3-1-1.png

図1でみると、a’、あるいは、b’は等しいです。


ベクトルの成分表示

x軸の向きとy軸の向きとそれぞれの大きさを(a, b)のように表します。
図1でのは、(0, 3)、とは、と(3, 1)と表します。


ベクトルの和

ベクトルの和、は、図1で見ると、

図1
3-1-1.png

・点Aから点Bに進み、その点Bから点Cに進む
・点Aから点Cに直接進む

のでは、その量は同じと考えます。
よって、式1が成り立ちます。

式1
3-1-3.png

計算は、各ベクトルのx軸ごと、y軸ごとに行いますが、それを式1に当てはめると、式2も成立します。

式2
3-1-2.png

なお、式2は多次元にも当てはまるため、それぞれのベクトルにz軸を追加しても和を計算することが可能です。

それでは、図1を使ってベクトルの和を計算します。グラフの目盛りは1単位ごととします。

式3
3-1-4.png

ちなみに、a’b’の和もの量と等しくなります。

式4
3-1-5.png


ベクトルの差

図1において、からを引いたものは、と等しくなります。

式5
3-1-6.png

これを計算すると、式6となります。

式6
3-1-7.png

このときのは、元々のの値と同じです。


ベクトルのスカラー倍

と向きが同じで、のk倍のをスカラー倍と呼び、式7のように表記する。

式7
3-1-8.png

成分表示では、式8となる。

式8
3-1-9.png


それでは、今回の計算をPythonでも実施してみます。

参考サイト
Math Python(NumPyでベクトルの足し算と引き算を行う)

--------------------
import numpy as np

a = np.array([0, 3])  # ベクトルaの成分表示
b = np.array([3, 1])
c = a + b   # ベクトルの和
b = c - a   # ベクトルの差
k = 3    # 倍数
d = a * k   # ベクトルaのスカラー倍

print("c = a+b = " + str(c))
print("b = c-a = " + str(b))
print("d = a*k = " + str(d))

--------------------
出力結果
c = a+b = [3 4]
b = c-a = [3 1]
d = a*k = [0 9]


Pythonだと多次元のベクトルの計算がすごく簡単そうですね。



進捗状況

最短コースでわかるディープラーニングの数学
85/328(25.9%)

ディープラーニングG検定まであと47日

【悲報】アズールレーン クロスウェーブをもうクリアしたぁ

PS4で可愛い女の子が艦船の艤装を付けてバトルを繰り広げるゲーム「アズールレーン クロスウェーブ」をプレイしていたのですが、

あっさりクリアしてしまいました!w

スタッフロール
20190922-1.jpg

プレイ時間は、15時間あるかないかというところです。

ただし、これはストーリーモードの話で、このゲームには、

20190922-2.jpg

上の画像のように、エクストリームバトルや様々なKAN-SENのエピソード編があり、

エピソード(未着手)
20190922-3.jpg

それに加えて、KAN-SENとのケッコン? 的なやり込み要素もあるため、全体的には30~50時間かそれ以上は楽しめるようです。


それでは、ストーリーモードで遊んでみた感想を書いてみます。


1.キャラクター
このゲームのメインは何と言っても4ヶ国(日本、アメリカ、イギリス、ドイツ)の艦船を模した架空の国の様々なKAN-SENでしょう。
それぞれ特色のある女の子の姿をしていて、どのキャラクターもとても可愛らしかったです。

提督の好みを全て押さえた完璧なKAN-SEN
20190922-4.jpg

そのハムマンを見せろ(爆)
20190922-6.jpg

それになかなかKAN-SENのデザインもいいと思います。

20190922-5.jpg

全体的に、私を含めたプレイヤーのツボを完璧にリサーチしたような感じなので、「たまんねぇな!」とプレイしながら思ってました。


2.アクション
このゲームでは、秘書艦を自キャラとして、3Dバトルを楽しむことができます。
海外のFPS・TPSのようなガチ殺戮バトルではないので、ややゆるい感じではあるのですが、
第5章以降は、しっかりプレイしないとゲームオーバーになることも出てきます。

私の場合、第5章に入るまで、魚雷を撃たずにプレイしており、そのため第5章の敵に全く勝てなかったのですが、
魚雷を含めた全ての兵装をきちんと使い、敵の攻撃から素早く逃げることで、クリアできました。
まあ、逆に言えば、それさえきちんとできれば、エンディングは誰もが見れる難易度だと思います。


3.音楽
どの曲もよかったです。
本家のBGMと同じものもあるようで、今回のプレイでの私のお気に入り曲は、この曲でした。

【アズールレーンBGM】背水の戦い



4.プレイのリズム
序章~第1章のほとんどは会話シーンなので、アクションバトルを楽しみたい人にはかなりじらされる感じになると思います。
まあ、シナリオ自体はとても楽しい内容なので、可愛い女の子の振る舞いを楽しむことができればいいのではないかと思います。
第2、3章以降は各国KAN-SENとのバトルを楽しめるし、途中からは、エクストリームバトルも開幕するので、そちらでいくらでもバトルを楽しめますよ。


5.総評
まだストーリーモードしかクリアしてないので、あくまでその時点での評価ですが、
よくできた内容だとは思いました。が、もうちょっとストーリーモードが長くてもよいかなぁと思いました。

アプリ版をプレイしたことがないのでよく分からないのですが、もしかしたら、むしろこのゲームではエクストリームバトルがメインなのかもなぁというところです。
せっかく定価で購入したので、今後は他のゲームをしながら、時々、このゲームも続けようかと思います。
私は特にラフィちゃんが好きすぎるので、この子をケッコンまで成長させてみたいです。

というところで、星10個満点でこのゲームを評価するなら、

☆☆☆☆☆☆☆☆

というところでしょうか。メインストーリーに主眼を置くなら星6個くらいですが、エンドゲームの役割も果たすエピソード編やエクストリームバトルでのやり込み要素や、ラフィちゃんとオブザーバーの可愛さで星2個追加しました。


さて、今後は、未クリアのゲームが、

・DOOM
・ボーダーランズ2
・プリンセスクラウン
・ドラゴンズクラウンPRO
・ブラッドボーン
・その他

とたくさんあるし、
さらに、最近PS4で発売されたトラック運転ゲームかバス運転ゲームもプレイしてみたくはあるのですが、
んーーー、まずはDOOMを片付けるべく(ボリュームがやたらある)、プレイを再開してみますかね☆







最近聴いた曲

通常運転


サムネで選んだ


後半の盛り上がりがよい








HI! VEVO Vol.169

Billie Eilish - all the good girls go to hell


よろよろ歩く天使の行く末が気になるMV






クラシック曲を忘れない Vol.69

カンタータ「お願いだ、もうやめてくれ」より、「ああ、いつも不幸な人」


ヴィヴァルディ作曲。この作曲家の作品には四季以外にもたくさん名曲がありますが、そのうちの1曲。









ニコニコ動画のリンク


サムネで選んだ




待ってたよ~




RTA(リアル登山アタック)



ファミレスで居酒屋メニューを注文して過ごすのが好き

ディープラーニングG検定の勉強中 その13(商の微分)

書籍「最短コースでわかるディープラーニングの数学」の内容に沿って勉強しています。

今回は、商の微分についてです。

f(x)をg(x)で割ったものを微分したもの

式1
2-8-1.png

について見ていきます。

参考サイト
KIT数学ナビゲーション(基本的な関数の微分 1/x)
KIT数学ナビゲーション(合成関数を微分する手順)

式1の、

式2
2-8-2.png

となります。

よって、積の微分の公式により、

式3
2-8-3.png

が成り立ちます。
ただし、h'(x)のままでは計算できないため、一旦式を分解してから、合成関数の形にして計算できるようにします。

まずは、式2のg(x)の分数表示を、分数の指数表示にします。

式4
2-8-4.png

ここで、g(x)を u に置き換えて、2つの関数に分解します。

式5
2-8-5.png

①をdy/duとして、微分します。

式6
2-8-6.png

②をdu/dxとして、微分します。

式7
2-8-7.png

①と②に分解した微分を合成関数の微分の公式に代入します。

式8 合成関数の微分の公式
2-8-8.png

式9
2-8-9.png

これで、計算可能な形になったので、式3に代入して、

式10
2-8-10.png

この式10で導き出された式が商の微分の公式となります。


それでは、商の微分の公式に、実際の関数を代入してみます。

以下の2つの関数があるときに、

式11
2-8-12.png

商の微分の公式、
式12
2-8-11.png

に代入すると、式13となり、

式13
2-8-13.png

これを計算すると、式14の、2つの関数による商の微分の結果となります。

式14
2-8-14.png


この計算結果の検算として、Pythonでも確かめてみます。

--------------------
import sympy as sym

x = sym.Symbol('x')

fx = 2 * x**3 + 4 * x**2  #f(x)
gx = 3 * x**4      # g(x)

fxd = sym.diff(fx)    # f '(x)
gxd = sym.diff(gx)   # g '(x)

fxgx = ((fxd * gx) - (fx * gxd))   # 商の微分の公式の分子の計算

sym.Eq(sym.Derivative(fx/gx), sym.expand(fxgx / (gx**2)))

--------------------
出力結果
2-8-15.png


Pythonで商の微分をsympy.diff()だけで行おうとすると、出力結果が分かりにくいものとなるため、
今回は、計算が単純になるようにしてから微分しています。


商の微分の次は積分ですが、テキストの第6章までは特に活用されないみたいなので、
先に次の章となる、ベクトル・行列の勉強に進みます。


ディープラーニングG検定の勉強の進捗状況

最短コースでわかるディープラーニングの数学
76/328(23.2%)