Moved LP Decoding slide; Added general optimization slide; Added forthcoming examination slide

This commit is contained in:
Andreas Tsouchlos 2023-01-25 14:21:31 +01:00
parent e817b94a2e
commit c18d0f8c12
5 changed files with 262 additions and 137 deletions

View File

@ -77,3 +77,25 @@
institution = {KIT},
}
@BOOK{distr_opt_book,
author = {Boyd, Stephen and Parikh, Neal and Chu, Eric and Peleato, Borja and Eckstein, Jonathan},
booktitle = {Distributed Optimization and Statistical Learning via the Alternating Direction Method of Multipliers},
year = {2011},
volume = {},
number = {},
pages = {},
doi = {},
url = {https://ieeexplore.ieee.org/document/8186925},
}
@INPROCEEDINGS{efficient_lp_dec_admm,
author = {Zhang, Xiaojie and Siegel, Paul H.},
booktitle = {2013 IEEE International Symposium on Information Theory},
title = {Efficient iterative LP decoding of LDPC codes with alternating direction method of multipliers},
year = {2013},
volume = {},
number = {},
pages = {1501-1505},
doi = {10.1109/ISIT.2013.6620477}
}

View File

@ -46,6 +46,8 @@
\end{itemize}
\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}[t]
\frametitle{Proximal Decoding: General Idea}
@ -82,6 +84,8 @@
\end{itemize}
\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}[t, fragile]
\frametitle{Proximal Decoding: Algorithm}
\begin{itemize}
@ -104,18 +108,199 @@ Output $\boldsymbol{\hat{x}}$
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{ADMM}%
\label{sub:Alg ADMM}
\subsection{LP Decoding}%
\label{sub:LP Decoding}
\begin{frame}[t]
\frametitle{ADMM Decoding: General Idea}
\frametitle{LP Decoding}
\todo{TODO}
\begin{minipage}[c]{0.6\linewidth}
\begin{itemize}
\item Codeword Polytope:
\begin{align*}
\text{poly}\left( \mathcal{C} \right) =
\left\{
\sum_{\boldsymbol{c}\in\mathcal{C}}\lambda_{\boldsymbol{c}}
\boldsymbol{c} : \lambda_{\boldsymbol{c}} \ge 0,
\sum_{\boldsymbol{c}\in\mathcal{C}}\lambda_{\boldsymbol{c}} = 1
\right\},
\hspace{5mm} \lambda_{\boldsymbol{c}} \in \mathbb{R}
\end{align*}
\item Cost Function:
\begin{align*}
\sum_{i=1}^{n} \gamma_i c_i,
\hspace{5mm}\gamma_i = \log\left(
\frac{P\left( Y=y_i | C=0 \right) }{P\left( Y=y_i | C=1 \right) } \right)
\end{align*}
\item LP Formulation of ML Decoding:
\begin{align*}
&\text{minimize } \sum_{i=1}^{n} \gamma_i f_i \\
&\text{subject to } \boldsymbol{f}\in\text{poly}\left( \mathcal{C} \right)
\end{align*}
\end{itemize}
\end{minipage}%
\hfill%
\begin{minipage}[c]{0.4\linewidth}
\begin{figure}[H]
\centering
\tikzstyle{codeword} = [color=KITblue, fill=KITblue,
draw, circle, inner sep=0pt, minimum size=4pt]
\tdplotsetmaincoords{60}{245}
\begin{tikzpicture}[scale=1, transform shape, tdplot_main_coords]
% Cube
\draw[dashed] (0, 0, 0) -- (2, 0, 0);
\draw[dashed] (2, 0, 0) -- (2, 0, 2);
\draw[] (2, 0, 2) -- (0, 0, 2);
\draw[] (0, 0, 2) -- (0, 0, 0);
\draw[] (0, 2, 0) -- (2, 2, 0);
\draw[] (2, 2, 0) -- (2, 2, 2);
\draw[] (2, 2, 2) -- (0, 2, 2);
\draw[] (0, 2, 2) -- (0, 2, 0);
\draw[] (0, 0, 0) -- (0, 2, 0);
\draw[dashed] (2, 0, 0) -- (2, 2, 0);
\draw[] (2, 0, 2) -- (2, 2, 2);
\draw[] (0, 0, 2) -- (0, 2, 2);
% Codeword Polytope
\draw[line width=1pt, color=KITblue] (0, 0, 0) -- (2, 0, 2);
\draw[line width=1pt, color=KITblue] (0, 0, 0) -- (2, 2, 0);
\draw[line width=1pt, color=KITblue] (0, 0, 0) -- (0, 2, 2);
\draw[line width=1pt, color=KITblue] (2, 0, 2) -- (2, 2, 0);
\draw[line width=1pt, color=KITblue] (2, 0, 2) -- (0, 2, 2);
\draw[line width=1pt, color=KITblue] (0, 2, 2) -- (2, 2, 0);
% Polytope Annotations
\node[codeword] (c000) at (0, 0, 0) {};% {$\left( 0, 0, 0 \right) $};
\node[codeword] (c101) at (2, 0, 2) {};% {$\left( 1, 0, 1 \right) $};
\node[codeword] (c110) at (2, 2, 0) {};% {$\left( 1, 1, 0 \right) $};
\node[codeword] (c011) at (0, 2, 2) {};% {$\left( 0, 1, 1 \right) $};
\node[color=KITblue, right=0cm of c000] {$\left( 0, 0, 0 \right) $};
\node[color=KITblue, above=0cm of c101] {$\left( 1, 0, 1 \right) $};
\node[color=KITblue, left=0cm of c110] {$\left( 1, 1, 0 \right) $};
\node[color=KITblue, left=0cm of c011] {$\left( 0, 1, 1 \right) $};
% f
\node[color=KITgreen, fill=KITgreen,
draw, circle, inner sep=0pt, minimum size=4pt] (f) at (0.7, 0.7, 1) {};
\node[color=KITgreen, right=0cm of f] {$\boldsymbol{f}$};
\end{tikzpicture}
\caption{$\text{poly}\left( \mathcal{C} \right)$ for $n=3$}
\end{figure}
\end{minipage}
\end{frame}
\begin{frame}[t]
\frametitle{ADMM Decoding: Algorithm}
\todo{TODO}
\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%\begin{frame}[t]
% \frametitle{LP Relaxation}
%
% \begin{minipage}[c]{0.6\linewidth}
% \begin{itemize}
% \item Set of all variable nodes incident to a check node:
% \begin{align*}
% N\left( j \right) \equiv \left\{
% i | i\in \mathcal{I},
% \boldsymbol{H}_{j,i} = 1
% \right\},
% j \in \mathcal{J}
% \end{align*}
% \begin{align*}
% S \subseteq N\left( j \right), \left| S \right| \text{odd}
% \end{align*}
% \item Relaxed polytope representation:
% \begin{align*}
% \sum_{i\in \left( N\left( j \right) \setminus S\right) } f_i
% + \sum_{i\in S} \left( 1 - f_i \right) \ge 1
% \end{align*}
% ``$\boldsymbol{f}$ is separated by at least one bitflip
% from all illegal configurations''
% \end{itemize}
% \end{minipage}%
% \hfill%
% \begin{minipage}[c]{0.4\linewidth}
% \begin{figure}[H]
% \centering
%
% \tikzstyle{codeword} = [color=KITblue, fill=KITblue,
% draw, circle, inner sep=0pt, minimum size=4pt]
%
% \tdplotsetmaincoords{60}{245}
% \begin{tikzpicture}[scale=1, transform shape, tdplot_main_coords]
% % Cube
%
% \draw[dashed] (0, 0, 0) -- (2, 0, 0);
% \draw[dashed] (2, 0, 0) -- (2, 0, 2);
% \draw[] (2, 0, 2) -- (0, 0, 2);
% \draw[] (0, 0, 2) -- (0, 0, 0);
%
% \draw[] (0, 2, 0) -- (2, 2, 0);
% \draw[] (2, 2, 0) -- (2, 2, 2);
% \draw[] (2, 2, 2) -- (0, 2, 2);
% \draw[] (0, 2, 2) -- (0, 2, 0);
%
% \draw[] (0, 0, 0) -- (0, 2, 0);
% \draw[dashed] (2, 0, 0) -- (2, 2, 0);
% \draw[] (2, 0, 2) -- (2, 2, 2);
% \draw[] (0, 0, 2) -- (0, 2, 2);
%
% % Codeword Polytope
%
% \draw[line width=1pt, color=KITblue] (0, 0, 0) -- (2, 0, 2);
% \draw[line width=1pt, color=KITblue] (0, 0, 0) -- (2, 2, 0);
% \draw[line width=1pt, color=KITblue] (0, 0, 0) -- (0, 2, 2);
%
% \draw[line width=1pt, color=KITblue] (2, 0, 2) -- (2, 2, 0);
% \draw[line width=1pt, color=KITblue] (2, 0, 2) -- (0, 2, 2);
%
% \draw[line width=1pt, color=KITblue] (0, 2, 2) -- (2, 2, 0);
%
% % Polytope Annotations
%
% \node[codeword, color=KITred] (c111) at (2, 2, 2) {};% {$\left( 0, 0, 0 \right) $};
% \node[codeword, color=KITred] (c001) at (0, 0, 2) {};% {$\left( 1, 0, 1 \right) $};
% \node[codeword, color=KITred] (c100) at (2, 0, 0) {};% {$\left( 1, 1, 0 \right) $};
% \node[codeword, color=KITred] (c010) at (0, 2, 0) {};% {$\left( 0, 1, 1 \right) $};
%
% \node[color=KITred, left=0cm of c111] {$\left( 1, 1, 1 \right) $};
% \node[color=KITred, right=0cm of c001] {$\left( 0, 0, 1 \right) $};
% \node[color=KITred, right=0.35cm of c100] {$\left( 1, 0, 0 \right) $};
% \node[color=KITred, below=0cm of c010] {$\left( 0, 1, 0 \right) $};
% \end{tikzpicture}
% \caption{Relaxed polytope for $n=3$}
% \end{figure}
% \end{minipage}
% \todo{How is this a relaxation and not just an alternative formulation?
% We have just switched out valid codewords for invalid ones}
% \todo{Is LP Relaxation relevant as theoretical background?}
%\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%\subsection{ADMM}%
%\label{sub:Alg ADMM}
%
%\begin{frame}[t]
% \frametitle{ADMM Decoding: General Idea}
%
% \todo{TODO}
%\end{frame}
%
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%\begin{frame}[t]
% \frametitle{ADMM Decoding: Algorithm}
%
% \todo{TODO}
%\end{frame}

View File

@ -1438,13 +1438,13 @@ $\textcolor{KITblue}{\text{Output }\boldsymbol{\tilde{x}}_n\text{ with lowest }d
%\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{ADMM: Examination Results}%
\label{sub:Ex ADMM}
\begin{frame}[t]
\frametitle{ADMM}
\todo{TODO}
\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%\subsection{ADMM: Examination Results}%
%\label{sub:Ex ADMM}
%
%\begin{frame}[t]
% \frametitle{ADMM}
%
% \todo{TODO}
%\end{frame}

View File

@ -3,12 +3,28 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{TODO}%
\label{sub:TODO}
\subsection{LP Decoding}%
\label{sub:LP Decoding}
\begin{frame}[t]
\frametitle{TODO}
\frametitle{Forthcoming Examination: LP Decoding}
\begin{itemize}
\item Test the (Alternating Direction Method of Multipliers) ADMM
as an optimization method for LP Decoding
\begin{itemize}
\item ADMM is intended to blend the decomposability
of dual ascent with the superior convergence properties of the method
of multipliers \cite{distr_opt_book}
\item Recently, ADMM has been proposed for efficient LP Decoding
\cite{efficient_lp_dec_admm}
\end{itemize}
\item Compare ADMM implementation with Proximal Decoding implementation with respect to
\begin{itemize}
\item Decoding performance (BER, FER)
\item Computational performance (time complexity, actual seconds per frame)
\end{itemize}
\end{itemize}
\todo{TODO}
\end{frame}

View File

@ -105,35 +105,20 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{LP Decoding}%
\label{sub:LP Decoding}
\subsection{Optimization as a Decoding Method}%
\label{sub:Optimization as a Decoding Method}
\begin{frame}[t]
\frametitle{LP Decoding}
\frametitle{Optimization as a Decoding Method}
\begin{minipage}[c]{0.6\linewidth}
\begin{itemize}
\item Codeword Polytope:
\begin{align*}
\text{poly}\left( \mathcal{C} \right) =
\left\{
\sum_{\boldsymbol{c}\in\mathcal{C}}\lambda_{\boldsymbol{c}}
\boldsymbol{c} : \lambda_{\boldsymbol{c}} \ge 0,
\sum_{\boldsymbol{c}\in\mathcal{C}}\lambda_{\boldsymbol{c}} = 1
\right\},
\hspace{5mm} \lambda_{\boldsymbol{c}} \in \mathbb{R}
\end{align*}
\item Cost Function:
\begin{align*}
\sum_{i=1}^{n} \gamma_i c_i,
\hspace{5mm}\gamma_i = \log\left(
\frac{P\left( Y=y_i | C=0 \right) }{P\left( Y=y_i | C=1 \right) } \right)
\end{align*}
\item LP Formulation of ML Decoding:
\begin{align*}
&\text{minimize } \sum_{i=1}^{n} \gamma_i f_i \\
&\text{subject to } \boldsymbol{f}\in\text{poly}\left( \mathcal{C} \right)
\end{align*}
\item Reormulate decoding problem as optimization problem
\begin{itemize}
\item Establish objective function
\item Establish constraints
\end{itemize}
\item Use optimization method to solve the new problem
\end{itemize}
\end{minipage}%
\hfill%
@ -165,14 +150,14 @@
% Codeword Polytope
\draw[line width=1pt, color=KITblue] (0, 0, 0) -- (2, 0, 2);
\draw[line width=1pt, color=KITblue] (0, 0, 0) -- (2, 2, 0);
\draw[line width=1pt, color=KITblue] (0, 0, 0) -- (0, 2, 2);
% \draw[line width=1pt, color=KITblue] (0, 0, 0) -- (2, 0, 2);
% \draw[line width=1pt, color=KITblue] (0, 0, 0) -- (2, 2, 0);
% \draw[line width=1pt, color=KITblue] (0, 0, 0) -- (0, 2, 2);
\draw[line width=1pt, color=KITblue] (2, 0, 2) -- (2, 2, 0);
\draw[line width=1pt, color=KITblue] (2, 0, 2) -- (0, 2, 2);
% \draw[line width=1pt, color=KITblue] (2, 0, 2) -- (2, 2, 0);
% \draw[line width=1pt, color=KITblue] (2, 0, 2) -- (0, 2, 2);
\draw[line width=1pt, color=KITblue] (0, 2, 2) -- (2, 2, 0);
% \draw[line width=1pt, color=KITblue] (0, 2, 2) -- (2, 2, 0);
% Polytope Annotations
@ -192,92 +177,9 @@
draw, circle, inner sep=0pt, minimum size=4pt] (f) at (0.7, 0.7, 1) {};
\node[color=KITgreen, right=0cm of f] {$\boldsymbol{f}$};
\end{tikzpicture}
\caption{$\text{poly}\left( \mathcal{C} \right)$ for $n=3$}
\caption{Hypercube ($n=3$) with valid codewords}
\end{figure}
\end{minipage}
\todo{Move this slide to LP decoding}
\end{frame}
\begin{frame}[t]
\frametitle{LP Relaxation}
\begin{minipage}[c]{0.6\linewidth}
\begin{itemize}
\item Set of all variable nodes incident to a check node:
\begin{align*}
N\left( j \right) \equiv \left\{
i | i\in \mathcal{I},
\boldsymbol{H}_{j,i} = 1
\right\},
j \in \mathcal{J}
\end{align*}
\begin{align*}
S \subseteq N\left( j \right), \left| S \right| \text{odd}
\end{align*}
\item Relaxed polytope representation:
\begin{align*}
\sum_{i\in \left( N\left( j \right) \setminus S\right) } f_i
+ \sum_{i\in S} \left( 1 - f_i \right) \ge 1
\end{align*}
``$\boldsymbol{f}$ is separated by at least one bitflip
from all illegal configurations''
\end{itemize}
\end{minipage}%
\hfill%
\begin{minipage}[c]{0.4\linewidth}
\begin{figure}[H]
\centering
\tikzstyle{codeword} = [color=KITblue, fill=KITblue,
draw, circle, inner sep=0pt, minimum size=4pt]
\tdplotsetmaincoords{60}{245}
\begin{tikzpicture}[scale=1, transform shape, tdplot_main_coords]
% Cube
\draw[dashed] (0, 0, 0) -- (2, 0, 0);
\draw[dashed] (2, 0, 0) -- (2, 0, 2);
\draw[] (2, 0, 2) -- (0, 0, 2);
\draw[] (0, 0, 2) -- (0, 0, 0);
\draw[] (0, 2, 0) -- (2, 2, 0);
\draw[] (2, 2, 0) -- (2, 2, 2);
\draw[] (2, 2, 2) -- (0, 2, 2);
\draw[] (0, 2, 2) -- (0, 2, 0);
\draw[] (0, 0, 0) -- (0, 2, 0);
\draw[dashed] (2, 0, 0) -- (2, 2, 0);
\draw[] (2, 0, 2) -- (2, 2, 2);
\draw[] (0, 0, 2) -- (0, 2, 2);
% Codeword Polytope
\draw[line width=1pt, color=KITblue] (0, 0, 0) -- (2, 0, 2);
\draw[line width=1pt, color=KITblue] (0, 0, 0) -- (2, 2, 0);
\draw[line width=1pt, color=KITblue] (0, 0, 0) -- (0, 2, 2);
\draw[line width=1pt, color=KITblue] (2, 0, 2) -- (2, 2, 0);
\draw[line width=1pt, color=KITblue] (2, 0, 2) -- (0, 2, 2);
\draw[line width=1pt, color=KITblue] (0, 2, 2) -- (2, 2, 0);
% Polytope Annotations
\node[codeword, color=KITred] (c111) at (2, 2, 2) {};% {$\left( 0, 0, 0 \right) $};
\node[codeword, color=KITred] (c001) at (0, 0, 2) {};% {$\left( 1, 0, 1 \right) $};
\node[codeword, color=KITred] (c100) at (2, 0, 0) {};% {$\left( 1, 1, 0 \right) $};
\node[codeword, color=KITred] (c010) at (0, 2, 0) {};% {$\left( 0, 1, 1 \right) $};
\node[color=KITred, left=0cm of c111] {$\left( 1, 1, 1 \right) $};
\node[color=KITred, right=0cm of c001] {$\left( 0, 0, 1 \right) $};
\node[color=KITred, right=0.35cm of c100] {$\left( 1, 0, 0 \right) $};
\node[color=KITred, below=0cm of c010] {$\left( 0, 1, 0 \right) $};
\end{tikzpicture}
\caption{Relaxed polytope for $n=3$}
\end{figure}
\end{minipage}
\todo{How is this a relaxation and not just an alternative formulation?
We have just switched out valid codewords for invalid ones}
\todo{Is LP Relaxation relevant as theoretical background?}
\end{frame}