ドラゴンズクラウンPROをプレイ中 その2

皆さんこんにちは。eの人@シュレーディンガーのレゾンデートルです。

PS4でサイドビューのRPGアクションゲームをプレイしています。


ドラゴンズクラウンPROのタイトル画面
20191006-1.jpg

本格的にプレイし始めたことで、だんだんとプレイが進んできました。

物理攻撃が効かない幽霊とか、

いったいどうしたらいいんだ(棒)
20191006-3.jpg

出てきて、パーティに魔法使いが必要になってきたりします。

古城には、敵に連れ去られた村娘などもおり、

ん? 今何でもするって言ったよね?
20191006-5.jpg

キャンディーズかな?(もっと今風の喩えをだな…)
20191006-6.jpg

彼女らを死なせないようにして脱出しなければならない場合もあります。

場所によっては、人魚に会ったりして、

友好的なマーメイドと遭遇。[戦わずに立ち去る] [戦う]
20191006-8.jpg

ストーリーに広がりが見えています。

あと、ダンジョンでは、冒険者の亡骸を見つけることもあるのですが、寺院に預けることができる亡骸には限りがあるため、復活させてあげられない冒険者は埋葬することになります。

ウィズっぽい
20191006-7.jpg

という感じで、あたらしいダンジョンに挑みつつ、

20191006-9.jpg

プレイを続けていきます。










最近聴いた曲

サムネで選んだ。少女病を思い出した。


いい感じ


このアーティストの曲は名曲が多い






HI! VEVO Vol.171

Ellie Goulding, Diplo, Swae Lee - Close To Me (Official Video)


頻出するclo--------se to me! って部分のメロディがいい感じ。







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

交響組曲 シェヘラザード


リムスキー=コルサコフ作曲。千夜一夜物語を題材とした組曲です。
第1楽章:海とシンドバッドの船(第290-315夜)
第2楽章:カランダール王子の物語(第9-18夜)
第3楽章:若い王子と王女(第998-1001夜)
第4楽章:バグダッドの祭り。海。船は青銅の騎士のある岩で難破。終曲(第290-315夜)
無慈悲な王と美しく聡明なシェヘラザードのテーマの掛け合いが特徴的。








ニコニコ動画のリンク

フランスのゲームってことで、かなり変わった雰囲気のゲームだった




高画質。平和主義プレイでないのもいい




実際の霊夢と咲夜ってこんな感じなのかも



アズレンのアニメを早く観たい!(今はまだdアニメストアのみ)

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

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

今回は、全微分を見ていきます。


参考サイト
理系大学生の数学駆け込み寺(全微分の定義と公式【基礎から丁寧に学ぼう!】)

前回は、2変数関数から

式1
4-2-1.png

各変数における偏微分を算出しました。

式2
4-3-1.png

この各偏微分は、それぞれ u 方向、v 方向の傾きを表しています。

このことから、u 方向の傾きと、v 方向の傾きを足すことで、2変数関数の接する面(接平面)の傾きを算出することができます。
この平面の接点の傾きを全微分と言います。

全微分の公式は式3となります。

式3
4-3-2.png

式1を偏微分したあとに全微分すると、式4となります。

式4
4-3-3.png


ちなみに、1変数関数の連続した滑らかな曲線にある接線は、

図1
4-3-7.png

接点の場所を拡大し続けたものと同じになるように、
2変数関数の連続した滑らかな曲面にある接平面は、

図2
4-3-8.png

接点を拡大し続けたものと同じになります。


なお、全微分の公式である式3を一般的な式に直すと式5になります。

式5
4-3-9.png

さらに、全微分は3変数以上の多変数関数でも可能で、式6のときの、

式6
4-3-10.png

多変数関数の全微分の総和∑は、式7となります。

式7
4-3-11.png


それでは、式8の2変数関数を全微分したときの、点(p, q)が接点のグラフをPythonで作成してみます。
p = 1、q = 1 とします。

式8
4-3-4.png

式9 偏微分と全微分の結果
4-3-5.png


参考サイト
Jenga 妄想の大気開放(オライリーの『ゼロから作るDeep Learning』、第4章の偏微分、式4.6 f(x0,x1)=x0^2+x1^2 に接平面を追記する)

--------------------
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D

fig = plt.figure()
ax = Axes3D(fig)

#計算範囲
u = np.arange(-5.0, 6.00, 0.5)
v = np.arange(-5.0, 6.00, 0.5)

u, v = np.meshgrid(u, v)
Z = -(u ** 2) -(v ** 2) # 2変数関数


#与えられたデータから点を打つ
p=[1] # 点p
q=[1] # 点q
dL=[2] # 全微分の解 (p^2+q^2=2)

#接点の描画 (赤い点)
ax.scatter3D(p, q, dL, color="red",marker="o", s=100)

#接平面の描画
ud = np.arange(-3.55, 6.50, 0.7)
vd = np.arange(-3.55, 6.50, 0.7)
ud, vd = np.meshgrid(ud, vd)
PD = -(2*ud) -(2*vd) + 6 # 接平面の方程式 (z-f(p,q)=fu(p,q)(u-p)+fv(p,q)(v-q))
ax.plot_wireframe(ud, vd, PD, color = "orange")

# 軸ラベルの設定
ax.set_xlabel("u-axis")
ax.set_ylabel("v-axis")
ax.set_zlabel("Z-axis")

# 表示範囲の設定
ax.set_xlim(-7, 10)
ax.set_ylim(-8, 5)
ax.set_zlim(-40, 10)

#角度(上下、回転)
ax.view_init(40, -30)

#2変数関数の描画
ax.plot_wireframe(u, v, Z, color = "blue")

plt.show()

--------------------
出力結果
4-3-8.png


多変数関数と接平面の両方の3Dグラフを出す方法を載せたサイトはあまりないので、今回の参考サイトは特に重宝しました。

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

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

今回は、偏微分を見ていきます。


参考サイト
Sci-pursuit(偏微分の意味とやり方)

多変数関数の変数のうち、1つの変数の変化だけを追うようにして、他の変数は定数とみなす方法が偏微分です。

偏微分の計算は、微分の公式

式1
4-2-2.png

を使って行います。

それでは、式2の2変数関数について、

式2
4-2-1.png

それぞれ u と v の偏微分をしてみます。
ここでの( )は、定数として扱う部分、という意味で使っています。

式3 変数 u に対する偏微分
4-2-3.png

式3では微分の対象ではない v を定数とみなすことができるものの、どんなときでも消去できるわけではないことに注意する必要があります。微分の公式に則って、ピンク色の部分のように微分することになります。

式4 変数 v に対する偏微分
4-2-4.png


偏微分は、3種類以上の変数の関数に対しても行うことができます。

ここでは3種類のそれぞれの変数に対する微分を見ていきます。

式5 3変数関数
4-2-5.png

式6 変数 u に対する偏微分
4-2-6.png

式7 変数 v に対する偏微分
4-2-7.png

式8 変数 w に対する偏微分
4-2-8.png


この3変数関数に対する偏微分をPythonでも確認してみます。

参考サイト
SYSTEM GUARDIAN(Python 偏微分で大満足カレーを作る Matplotlib)

--------------------
import sympy as sym
sym.init_printing()
from IPython.display import display

(u,v,w) = sym.symbols("u,v,w")

targetFunc = (2 * u**3) + (7 * v**2) + (5 * w**4) - (3 * u * v) + (2 * v * w**2) + u + (4 * v) + 5

def PartialDiff(PD):
 du = sym.diff(PD, u)    # uで偏微分
 dv = sym.diff(PD, v)    # vで偏微分
 dw = sym.diff(PD, w)   # wで偏微分
 return du, dv, dw

def main():
 du, dv, dw = PartialDiff(targetFunc)
 print("3変数関数:")
 display(targetFunc)
 print("uで偏微分:")
 display(du)
 print("vで偏微分:")
 display(dv)
 print("wで偏微分:")
 display(dw)

if __name__ == '__main__':
 main()

--------------------
出力結果
4-2-9.png


偏微分は思ったほど難しくなくてよかったです。
でも、次の全微分はややこしそうw

ディープラーニングG検定の勉強中 その22(多変数関数)

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

今回から、第4章の多変数関数の微分に入ります。

今回は、多変数関数と、そのグラフを表示してみます。

テキストでは、入力変数を x と y の代わりに u と v で使っており、このブログでもそれを踏襲します。

2つの入力と、その出力の例です。

式1
4-1-1.png


これをPythonを使って3Dグラフで表示してみます。

参考サイト
Pynote(matplotlib - 2変数関数を3Dで可視化する。)
Python 数値計算入門([Matplotlib] 3次元データの可視化)

--------------------
import matplotlib.pyplot as plt
import numpy as np
from mpl_toolkits.mplot3d import Axes3D

def func(u, v):
 # return 2u3^3+7v^2+3uv+u+4v+5
 return 2 * u**3 + 7 * v**2 - (3 * u * v) + u + (4 * v) + 5

U, V = np.meshgrid(np.arange(-4., 4., 0.5),
   np.arange(-4., 4., 0.5))
Z = func(U, V)

# ポリゴンでグラフを作成する。
fig = plt.figure(figsize=(7, 7))
ax = fig.add_subplot(111, projection='3d')
ax.plot_surface(U, V, Z)  #ポリゴン表示

ax.set_xlabel("U", size = 12)
ax.set_ylabel("V", size = 12)
ax.set_zlabel("Z", size = 12)

plt.show()

--------------------
出力結果

4-1-2.png


多変数関数のグラフって面白いですね。手書きは大変そうなので、Python大活躍です。

本日、ディープラーニングG検定の申し込みをしました。あとは受験に向けて頑張るのみです。

ディープラーニングG検定の勉強中 その21(行列と行列計算)

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

今回は、行列と行列計算について見ていきます。


参考サイト
Wild Data Chase -データを巡る冒険([ 機械学習 ] 単層パーセプトロンの実装)

ベクトルの成分表示の内積の考え方を利用して、機械学習方法の1つであるパーセプトロンを作ることができます。

図1 2入力・1出力ノードの単層パーセプトロン
3-7-1-1.png

ベクトルのコサイン類似度が図1の y に相当し、x1 と x2 はそれぞれの向きと大きさを持つベクトルです。
パーセプトロンでは、出力結果の閾値が1なら「正の例」、0なら「負の例」として分類します。

例えば、動画に映っている動物の分類をするときに、x1が鳴き声(犬か猫)、x2が顔の形(犬か猫)という入力で、鳴き声と顔の形のそれぞれの重みづけによって出力結果の閾値が1なら「犬」、そうでなければ「猫」と分類するイメージです。

図1の y は式1で算出され、

式1
3-7-1-2.png

この式は行列としては式2のように表されます。

式2
3-7-1-3.png

この式は、行列をW、ベクトルをベクトル x とすることで、

式3
3-7-1-11.png

式4として表すことができます。

式4
3-7-1-10.png


単層パーセプトロンの入力・出力ノードが増えたときには以下のようになります。

図2 2入力・3出力の単層パーセプトロン
3-7-1-5.png

各出力ノードの表示成分の内積は式5となります。

式5
3-7-1-6.png

これを行列で表すと式5となります。

式5
3-7-1-8.png

行列をW、ベクトルをベクトル x とすることで、

式6
3-7-1-9.png

上記の式4のように表すことができます。



今回でテキストの第3章が終わりました。
次回からは、第4章の「多変数関数の微分」について見ていきます。


進捗状況

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

ディープラーニングG検定の受験日まで、あと41日