From 30033bd0f1efc0ae6db38daa943b8607b2524e35 Mon Sep 17 00:00:00 2001 From: Andreas Tsouchlos Date: Wed, 25 Jan 2023 00:41:19 +0100 Subject: [PATCH] Added outline for error slide; Added hybrid results slide; Commented out SD ML-on-List slide --- latex/presentations/midterm/presentation.tex | 2 +- .../midterm/sections/appendix.tex | 1 + .../midterm/sections/examination_results.tex | 264 ++++++++++++++---- 3 files changed, 217 insertions(+), 50 deletions(-) diff --git a/latex/presentations/midterm/presentation.tex b/latex/presentations/midterm/presentation.tex index 7a96c57..233c1b3 100644 --- a/latex/presentations/midterm/presentation.tex +++ b/latex/presentations/midterm/presentation.tex @@ -1,6 +1,6 @@ %\PassOptionsToPackage{colorlinks}{hyperref} -\documentclass[10pt, aspectratio=169]{beamer} +\documentclass[10pt, aspectratio=169, usenames,dvipsnames]{beamer} \usepackage[utf8]{inputenc} \usepackage[T1]{fontenc} diff --git a/latex/presentations/midterm/sections/appendix.tex b/latex/presentations/midterm/sections/appendix.tex index ad36114..4bfd124 100644 --- a/latex/presentations/midterm/sections/appendix.tex +++ b/latex/presentations/midterm/sections/appendix.tex @@ -45,6 +45,7 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \begin{frame}[t] \frametitle{Proximal Decoding: Visualization of Gradients} + \setcounter{footnote}{0} \begin{figure}[H] \centering diff --git a/latex/presentations/midterm/sections/examination_results.tex b/latex/presentations/midterm/sections/examination_results.tex index d961ecd..54134ce 100644 --- a/latex/presentations/midterm/sections/examination_results.tex +++ b/latex/presentations/midterm/sections/examination_results.tex @@ -577,6 +577,37 @@ Output $\boldsymbol{\hat{x}}$ %\end{frame} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\begin{frame}[t] + \frametitle{Proximal Decoding: Average Error} + + \begin{figure}[H] + \centering + + \begin{tikzpicture}[scale=0.7] + \begin{axis}[ + grid=both, + xlabel={k}, + ylabel={Average $\left| \boldsymbol{x}-\boldsymbol{\hat{x}} \right|$}, + ] + \addplot table [col sep=comma, + discard if not={gamma}{0.05}, + x=SNR, y=BER] + {res/2d_ber_fer_dfr_20433484.csv}; + \end{axis} + \end{tikzpicture} + + \caption{Average error value} + \end{figure} + + + \begin{itemize} + \item For large $k$, the average error asymptotically approaches a minimum, non-zero value + \item The minimum value is generally relatively small: ``Only a few bits are wrong'' + \end{itemize} +\end{frame} + + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \begin{frame}[t, fragile] \frametitle{Proximal Decoding: Improvement using ``ML-on-List''} @@ -638,67 +669,202 @@ $\textcolor{KITblue}{\text{Output }\boldsymbol{\tilde{x}}_n\text{ with lowest }d \end{frame} -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\begin{frame}[t, fragile] +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\begin{frame}[t] \frametitle{Proximal Decoding: Improvement using ``ML-on-List''} - \setcounter{footnote}{0} - + \begin{itemize} - \item Improvement of proximal decoding by adding an ``ML-on-list'' step after iterating + \item Comparison of proximal \& hybrid proximal-ML (correction of $N = \SI{12}{\bit}$) + decoding simulation + \footnote{(3,6) regular LDPC Code with $n=204, k=102$ + \cite[Code: 204.33.484]{mackay_enc}} + results \end{itemize} - \begin{minipage}[t]{.48\textwidth} + \begin{figure}[H] \centering - - \begin{figure} - \centering - - \begin{algorithm}[caption={}, label={}, - basicstyle=\fontsize{7.5}{9.5}\selectfont + + \begin{tikzpicture}[scale=0.55] + \begin{axis}[ + grid=both, + xlabel={$E_b / N_0$}, ylabel={BER}, + ymode=log, + legend columns=2, + legend style={at={(0.5,-0.45)},anchor=south}, + ymax=1.5, ymin=3e-8, ] -$\boldsymbol{s}^{\left( 0 \right)} = \boldsymbol{0}$ -for $k=0$ to $K-1$ do - $\boldsymbol{r}^{\left( k+1 \right)} = \boldsymbol{s}^{(k)} - \omega \nabla L \left( \boldsymbol{s}^{(k)}; \boldsymbol{y} \right) $ - Compute $\nabla h\left( \boldsymbol{r}^{\left( k+1 \right) } \right)$ - $\boldsymbol{s}^{\left( k+1 \right)} = \boldsymbol{r}^{(k+1)} - \gamma \nabla h\left( \boldsymbol{r}^{\left( k+1 \right) } \right) $ - $\boldsymbol{\hat{x}} = \text{sign}\left( \boldsymbol{s}^{\left( k+1 \right) } \right) $ - If $\boldsymbol{\hat{x}}$ passes the parity check condition, break the loop. -end for -Output $\boldsymbol{\hat{x}}$ - \end{algorithm} + \addplot[ForestGreen, mark=*, solid] + table [x=SNR, y=BER, col sep=comma, discard if not={gamma}{0.15}] + {res/2d_ber_fer_dfr_20433484_proximal.csv}; + \addlegendentry{proximal, $\gamma = 0.15$} + \addplot[Emerald, mark=triangle, densely dashed] + table [x=SNR, y=BER, col sep=comma, discard if not={gamma}{0.15}] + {res/2d_ber_fer_dfr_20433484_hybrid.csv}; + \addlegendentry{hybrid $\gamma = 0.15$} + + \addplot[NavyBlue, mark=*, solid] + table [x=SNR, y=BER, col sep=comma, discard if not={gamma}{0.01}] + {res/2d_ber_fer_dfr_20433484_proximal.csv}; + \addlegendentry{proximal, $\gamma = 0.01$} + \addplot[RoyalPurple, mark=triangle, densely dashed] + table [x=SNR, y=BER, col sep=comma, discard if not={gamma}{0.01}] + {res/2d_ber_fer_dfr_20433484_hybrid.csv}; + \addlegendentry{hybrid, $\gamma = 0.01$} - \caption{Proximal decoding algorithm \cite{proximal_paper}} - \end{figure} - - \end{minipage}% - \hfill\begin{minipage}[t]{.48\textwidth} - \centering - \begin{figure} - \centering - - \begin{algorithm}[caption={}, label={}, - basicstyle=\fontsize{7.5}{9.5}\selectfont + \addplot[RedOrange, mark=*, solid] + table [x=SNR, y=BER, col sep=comma, discard if not={gamma}{0.05}] + {res/2d_ber_fer_dfr_20433484_proximal.csv}; + \addlegendentry{proximal, $\gamma = 0.05$} + \addplot[red, mark=triangle, densely dashed] + table [x=SNR, y=BER, col sep=comma, discard if not={gamma}{0.05}] + {res/2d_ber_fer_dfr_20433484_hybrid.csv}; + \addlegendentry{hybrid, $\gamma = 0.05$} + \end{axis} + \end{tikzpicture} + \begin{tikzpicture}[scale=0.55] + \begin{axis}[ + grid=both, + xlabel={$E_b / N_0$}, ylabel={FER}, + ymode=log, + legend columns=2, + legend style={at={(0.5,-0.45)},anchor=south}, + ymax=1.5, ymin=3e-8, ] -$\boldsymbol{s}^{\left( 0 \right)} = \boldsymbol{0}$ -for $k=0$ to $K-1$ do - $\boldsymbol{r}^{\left( k+1 \right)} = \boldsymbol{s}^{(k)} - \omega \nabla L \left( \boldsymbol{s}^{(k)}; \boldsymbol{y} \right) $ - Compute $\nabla h\left( \boldsymbol{r}^{\left( k+1 \right) } \right)$ - $\boldsymbol{s}^{\left( k+1 \right)} = \boldsymbol{r}^{(k+1)} - \gamma \nabla h\left( \boldsymbol{r}^{\left( k+1 \right) } \right) $ - $\boldsymbol{\hat{x}} = \text{sign}\left( \boldsymbol{s}^{\left( k+1 \right) } \right) $ - $\textcolor{KITblue}{\text{If }\boldsymbol{\hat{x}}\text{ passes the parity check condition, output }\boldsymbol{\hat{x}}}$ -end for -$\textcolor{KITblue}{\text{Find }N\text{ most probably wrong bits.}}$ -$\textcolor{KITblue}{\text{Generate variations } \boldsymbol{\tilde{x}}_n\text{ of }\boldsymbol{\hat{x}}\text{ with the }N\text{ bits modified.}}$ -$\textcolor{KITblue}{\text{Compute }\langle \boldsymbol{ \tilde{x}}_n, \boldsymbol{\hat{x}} \rangle \forall n \in \left[ 1 : N-1 \right]}$ -$\textcolor{KITblue}{\text{Output }\boldsymbol{\tilde{x}}_n\text{ with lowest }\langle \boldsymbol{ \tilde{x}}_n, \boldsymbol{\hat{x}} \rangle}$ - \end{algorithm} - \caption{Hybrid proximal \& ML decoding algorithm} - \end{figure} - \end{minipage} + \addplot[ForestGreen, mark=*, solid] + table [x=SNR, y=FER, col sep=comma, discard if not={gamma}{0.15}] + {res/2d_ber_fer_dfr_20433484_proximal.csv}; + \addlegendentry{proximal, $\gamma = 0.15$} + \addplot[Emerald, mark=triangle, densely dashed] + table [x=SNR, y=FER, col sep=comma, discard if not={gamma}{0.15}] + {res/2d_ber_fer_dfr_20433484_hybrid.csv}; + \addlegendentry{hybrid prox. \& ML, $\gamma = 0.15$} + + \addplot[NavyBlue, mark=*, solid] + table [x=SNR, y=FER, col sep=comma, discard if not={gamma}{0.01}] + {res/2d_ber_fer_dfr_20433484_proximal.csv}; + \addlegendentry{proximal, $\gamma = 0.01$} + \addplot[RoyalPurple, mark=triangle, densely dashed] + table [x=SNR, y=FER, col sep=comma, discard if not={gamma}{0.01}] + {res/2d_ber_fer_dfr_20433484_hybrid.csv}; + \addlegendentry{hybrid prox. \& ML, $\gamma = 0.01$} + + \addplot[RedOrange, mark=*, solid] + table [x=SNR, y=FER, col sep=comma, discard if not={gamma}{0.05}] + {res/2d_ber_fer_dfr_20433484_proximal.csv}; + \addlegendentry{proximal, $\gamma = 0.05$} + \addplot[red, mark=triangle, densely dashed] + table [x=SNR, y=FER, col sep=comma, discard if not={gamma}{0.05}] + {res/2d_ber_fer_dfr_20433484_hybrid.csv}; + \addlegendentry{hybrid prox. \& ML, $\gamma = 0.05$} + \end{axis} + \end{tikzpicture} + \begin{tikzpicture}[scale=0.55] + \begin{axis}[ + grid=both, + xlabel={$E_b / N_0$}, ylabel={Decoding Failure Rate}, + ymode=log, + legend columns=2, + legend style={at={(0.5,-0.45)},anchor=south}, + ymax=1.5, ymin=3e-8, + ] + + \addplot[ForestGreen, mark=*, solid] + table [x=SNR, y=DFR, col sep=comma, discard if not={gamma}{0.15}] + {res/2d_ber_fer_dfr_20433484_proximal.csv}; + \addlegendentry{proximal, $\gamma = 0.15$} + \addplot[Emerald, mark=triangle, densely dashed] + table [x=SNR, y=DFR, col sep=comma, discard if not={gamma}{0.15}] + {res/2d_ber_fer_dfr_20433484_hybrid.csv}; + \addlegendentry{hybrid prox. \& ML, $\gamma = 0.15$} + + \addplot[NavyBlue, mark=*, solid] + table [x=SNR, y=DFR, col sep=comma, discard if not={gamma}{0.01}] + {res/2d_ber_fer_dfr_20433484_proximal.csv}; + \addlegendentry{proximal, $\gamma = 0.01$} + \addplot[RoyalPurple, mark=triangle, densely dashed] + table [x=SNR, y=DFR, col sep=comma, discard if not={gamma}{0.01}] + {res/2d_ber_fer_dfr_20433484_hybrid.csv}; + \addlegendentry{hybrid prox. \& ML, $\gamma = 0.01$} + + \addplot[RedOrange, mark=*, solid] + table [x=SNR, y=DFR, col sep=comma, discard if not={gamma}{0.05}] + {res/2d_ber_fer_dfr_20433484_proximal.csv}; + \addlegendentry{proximal, $\gamma = 0.05$} + \addplot[red, mark=triangle, densely dashed] + table [x=SNR, y=DFR, col sep=comma, discard if not={gamma}{0.05}] + {res/2d_ber_fer_dfr_20433484_hybrid.csv}; + \addlegendentry{hybrid prox. \& ML, $\gamma = 0.05$} + \end{axis} + \end{tikzpicture} + + \caption{Simulation results for $\gamma = 0.05, \omega = 0.05, K=200, N=12$} + \label{fig:simulation_results_hybrid} + \end{figure} \end{frame} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%\begin{frame}[t, fragile] +% \frametitle{Proximal Decoding: Improvement using ``ML-on-List''} +% \setcounter{footnote}{0} +% +% \begin{itemize} +% \item Improvement of proximal decoding by adding an ``ML-on-list'' step after iterating +% \end{itemize} +% +% \begin{minipage}[t]{.48\textwidth} +% \centering +% +% \begin{figure} +% \centering +% +% \begin{algorithm}[caption={}, label={}, +% basicstyle=\fontsize{7.5}{9.5}\selectfont +% ] +%$\boldsymbol{s}^{\left( 0 \right)} = \boldsymbol{0}$ +%for $k=0$ to $K-1$ do +% $\boldsymbol{r}^{\left( k+1 \right)} = \boldsymbol{s}^{(k)} - \omega \nabla L \left( \boldsymbol{s}^{(k)}; \boldsymbol{y} \right) $ +% Compute $\nabla h\left( \boldsymbol{r}^{\left( k+1 \right) } \right)$ +% $\boldsymbol{s}^{\left( k+1 \right)} = \boldsymbol{r}^{(k+1)} - \gamma \nabla h\left( \boldsymbol{r}^{\left( k+1 \right) } \right) $ +% $\boldsymbol{\hat{x}} = \text{sign}\left( \boldsymbol{s}^{\left( k+1 \right) } \right) $ +% If $\boldsymbol{\hat{x}}$ passes the parity check condition, break the loop. +%end for +%Output $\boldsymbol{\hat{x}}$ +% \end{algorithm} +% +% \caption{Proximal decoding algorithm \cite{proximal_paper}} +% \end{figure} +% +% \end{minipage}% +% \hfill\begin{minipage}[t]{.48\textwidth} +% \centering +% \begin{figure} +% \centering +% +% \begin{algorithm}[caption={}, label={}, +% basicstyle=\fontsize{7.5}{9.5}\selectfont +% ] +%$\boldsymbol{s}^{\left( 0 \right)} = \boldsymbol{0}$ +%for $k=0$ to $K-1$ do +% $\boldsymbol{r}^{\left( k+1 \right)} = \boldsymbol{s}^{(k)} - \omega \nabla L \left( \boldsymbol{s}^{(k)}; \boldsymbol{y} \right) $ +% Compute $\nabla h\left( \boldsymbol{r}^{\left( k+1 \right) } \right)$ +% $\boldsymbol{s}^{\left( k+1 \right)} = \boldsymbol{r}^{(k+1)} - \gamma \nabla h\left( \boldsymbol{r}^{\left( k+1 \right) } \right) $ +% $\boldsymbol{\hat{x}} = \text{sign}\left( \boldsymbol{s}^{\left( k+1 \right) } \right) $ +% $\textcolor{KITblue}{\text{If }\boldsymbol{\hat{x}}\text{ passes the parity check condition, output }\boldsymbol{\hat{x}}}$ +%end for +%$\textcolor{KITblue}{\text{Find }N\text{ most probably wrong bits.}}$ +%$\textcolor{KITblue}{\text{Generate variations } \boldsymbol{\tilde{x}}_n\text{ of }\boldsymbol{\hat{x}}\text{ with the }N\text{ bits modified.}}$ +%$\textcolor{KITblue}{\text{Compute }\langle \boldsymbol{ \tilde{x}}_n, \boldsymbol{\hat{x}} \rangle \forall n \in \left[ 1 : N-1 \right]}$ +%$\textcolor{KITblue}{\text{Output }\boldsymbol{\tilde{x}}_n\text{ with lowest }\langle \boldsymbol{ \tilde{x}}_n, \boldsymbol{\hat{x}} \rangle}$ +% \end{algorithm} +% +% \caption{Hybrid proximal \& ML decoding algorithm} +% \end{figure} +% \end{minipage} +%\end{frame} + + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \subsection{ADMM: Examination Results}% \label{sub:Ex ADMM}