comments2final_reports_2024-07-26_opt
2024-07-26
講評
締め切りまでに正しく動くプログラムが完成できなかった人は、待ちますので,再提出してください。
再提出の締切: 8/5(月)18:00
バグがあります.
https://gyazo.com/d9d29068b5a7fcd591a6a94c23f137d5
https://gyazo.com/3078f62a63c762d65ccff6f71b9717c0
https://gyazo.com/3670707a46cec751dafc499f3339ec99
https://gyazo.com/705fbea9e2c45a40cf2eb443485ffec0
https://gyazo.com/2f34c04b85de14061cb33df1ce2ffd6b
https://gyazo.com/ef4eeb0ff9876a1dea83383262952588
https://gyazo.com/8b4389dc9610b8d14d87209852d41333
よい例
https://gyazo.com/7d11b8358a8048a39e8e1e1f5f127868
https://gyazo.com/ced2f25e3e69b4437bc223efd7ccdb98
https://gyazo.com/e1d4eed562072f019f0f908d1a03a761
https://gyazo.com/e1f026549e063da9d27ca1d9c26b70da
https://gyazo.com/e0973bec88be45ec4da41070f10883fd
https://gyazo.com/d7be81ec44518b52a185cb1f49f721d6
https://gyazo.com/e354f35e2044bc2bf622757498287e52
https://gyazo.com/1942f84b8e78afd374ce5fb4eddbf045
https://gyazo.com/2d3b8d4957aa9d269467bc83c978fcb5
https://gyazo.com/632ff510ae8a632e44dc10d9ced10787
Random Generator
次の手順を python で書いてください
code:xx
数式を使って書いてみよう.
具体的には,$ a, b \in \{ 0,1 \} $ として,まず
\begin{eqnarray}
C_0 (a) & = & \log (p_a) + \log (q_{a, y_0} )
\end{eqnarray}
とする.
次に,$ i=0, \cdots, T-1$ と順に
\begin{eqnarray}
S_{i} (b) & = & \mathop{\rm argmax}_a
\left \{ C_i (a)
+ \log p_{a,b} + \log q_{b, y_{i+1}} \right \} \\
C_{i+1} (b) & = & C_i ( S_{i} (b) ) + \log p_{S_{i} (b), b}
+ \log q_{b, y_{i+1} }
\end{eqnarray}
を計算する(図\ref{fig:data_structure}).
% ここで $ i,j \in \{ 0,1 \}$ である.
最後に
\begin{eqnarray}
\hat{x}_{T-1} & = & \mathop{\rm argmax}_{a} C_{T-1} (a)
\end{eqnarray}
を求める.
$ \hat{x}_i, ~i=T-2,\cdots,0$ は順に
\begin{eqnarray}
\hat{x}_i & = & S_{i} (\hat{x}_{i+1})
\end{eqnarray}
で取り出せる.
code:xxx
\begin{eqnarray}
J & = & \log p(x_1) + \log p(y_1|x_1)
+\sum_{i=1}^{n-1} \Bigl \{ \log p(x_{i+1} | x_i ) +
\log p(y_{i+1} | x_{i+1} ) \Bigr \}
\nonumber
\\
& = &
f_1(x_1)
+ h_1(x_1,x_2)
+ h_2(x_2,x_3)
+ \cdots
+ h_{n-1} (x_{n-1},x_n)
\nonumber
\end{eqnarray}
\begin{itemize}
\item $x_1$ に着目 ⇒
$f_1(x_1), h_1(x_1,x_2) $ にしか関係しない
\item $f_1(x_1) + h_1(x_1,x_2) $ を最大にするよう $x_1$ を選ぶ
\pause
\item ↑ $x_2$の値がわかっていないければ選べない
\pause
\item そこで,$x_2$の可能なすべての値($0,1$)に対して,以下を計算
% $\cdots$$\hat{x}_1(x_2)$
\item $ {\displaystyle f_2(x_2) = \max_{x_1} \{ f_1(x_1) + h_1(x_1,x_2) \} }$
$ {\displaystyle \hat{x}_1(x_2) = \mathop{\rm argmax}_{x_1} \{ f_1(x_1) +
h_1(x_1,x_2) \} } $ \\
$J =
f_2(x_2)
+ h_2(x_2,x_3)
+ \cdots
+ h_{n-1} (x_{n-1},x_n)
$
\end{itemize}
\begin{eqnarray}
J & = &
f_2(x_2)
+ h_2(x_2,x_3)
+ \cdots
+ h_{n-1} (x_{n-1},x_n)
\nonumber
\end{eqnarray}
\begin{itemize}
\item 変数の数が1つ減った.これを続けていけばよい.
\item $x_2$ に着目 ⇒
$f_2(x_2), h_2(x_2,x_3) $ にしか関係しない
\item $f_2(x_2) + h_2(x_2,x_3) $ を最大にするよう $x_2$ を選ぶ
\item ↑ $x_3$の値がわかっていないければ選べない
\item そこで,$x_3$の可能なすべての値($0,1$)に対して,以下を計算
\item $ {\displaystyle f_3(x_3) = \max_{x_2} \{ f_2(x_2) + h_2(x_2,x_3) \} }$
$ {\displaystyle \hat{x}_2(x_3) = \mathop{\rm argmax}_{x_2} \{ f_2(x_2) +
h_2(x_2,x_3) \} } $ \\
\end{itemize}
\begin{eqnarray}
J & = &
f_{n-1} (x_{n-1} )+ h_{n-1} (x_{n-1},x_n)
\nonumber
\end{eqnarray}
\begin{itemize}
\item $x_n$の可能なすべての値($0,1$)に対して,以下を計算
% $\cdots$$\hat{x}_1(x_2)$
\item $ {\displaystyle f_n(x_n) = \max_{ x_{n-1} }
\{ f_{n-1} (x_{n-1} )+ h_{n-1} (x_{n-1},x_n) \} }$
$ {\displaystyle \hat{x}_{n-1} (x_n) = \mathop{\rm argmax}_{x_{n-1}}
\{ f_{n-1} (x_{n-1} )+ h_{n-1} (x_{n-1},x_n) \} }$
%\{ f_2(x_2) + h_2(x_2,x_3) \} } $
\item
$ {\displaystyle x_n^* = \mathop{\rm argmax}_{x_n} f_n(x_n) } $
\end{itemize}
\begin{itemize}
\item $ {\displaystyle x_n^* = \mathop{\rm argmax}_{x_n} f_n(x_n) } $
\pause
\item $ {\displaystyle x_{n-1}^* = \hat{x}_{n-1} (x_n^*) } $
\pause
\item $ {\displaystyle x_{n-2}^* = \hat{x}_{n-2} (x_{n-1}^*) } $
\item $ \cdots \rightarrow x_1^* = \hat{x}_1 (x_2^*) $
\end{itemize}
https://gyazo.com/1b8ae8376aa6f4080086f93074edde44
https://gyazo.com/189f80e741ba0b0bf6ae98cc290016f8
https://gyazo.com/5495c68863763dc5404c8f4094bb852c
https://www.youtube.com/watch?v=wz1-DOZoQt0
ゼロから作るDeep Learning ❺
―生成モデル編
斎藤 康毅 著
https://www.oreilly.co.jp/books/images/picture_large978-4-8144-0059-1.jpeg