First round of corrections

This commit is contained in:
Andreas Tsouchlos 2023-04-18 16:47:16 +02:00
parent 53ad451013
commit d49cdd4394
4 changed files with 47 additions and 60 deletions

View File

@ -37,7 +37,7 @@
discard if not={mu}{3.0},
discard if gt={SNR}{4.0}]
{res/admm/ber_2d_20433484.csv};
\addlegendentry{LP Decoding}
\addlegendentry{ADMM}
\addplot[PineGreen, line width=1pt, mark=triangle, solid]
table [col sep=comma, x=SNR, y=FER,
discard if gt={SNR}{3.0}]
@ -306,7 +306,7 @@
\addplot[RoyalPurple, only marks, mark=triangle*]
table [col sep=comma, x=n, y=spf]
{res/admm/fps_vs_n.csv};
\addlegendentry{LP decoding}
\addlegendentry{ADMM}
\end{axis}
\end{tikzpicture}
@ -377,7 +377,7 @@ return $\boldsymbol{s}$
g_j\left( \boldsymbol{T}_j\tilde{\boldsymbol{c}}
\right)}_{\text{Constraints}}} \\
\text{subject to}\hspace{5mm} &
\tilde{\boldsymbol{c}} \in \mathbb{R}^n
\tilde{\boldsymbol{c}} \in \left[ 0, 1 \right]^n
\end{align*}
\vspace*{-5mm}
@ -422,14 +422,14 @@ Initialize $\boldsymbol{r}, \boldsymbol{s}, \omega, \gamma$
while stopping critierion unfulfilled do
for j in $\mathcal{J}$ do
$p_j \leftarrow \prod_{i\in N_c\left( j \right) } r_i $
$\textcolor{KITblue}{M_{j\to} \leftarrow p_j^2 - p_j}$|\Suppressnumber|
$\textcolor{KITblue}{M_{j\to i} \leftarrow p_j^2 - p_j}$|\Suppressnumber|
|\vspace{0.7mm}\Reactivatenumber|
end for
for i in $\mathcal{I}$ do
$s_i \leftarrow s_i + \gamma \left[ 4\left( s_i^2 - 1 \right)s_i
\phantom{\frac{4}{s_i}}\right.$|\Suppressnumber|
|\Reactivatenumber|$\left.+ \frac{4}{s_i}\sum_{j\in N_v\left( i \right) }
M_{j\to} \right] $
M_{j\to i} \right] $
$r_i \leftarrow r_i + \omega \left( s_i - y_i \right)$
end for
end while
@ -470,7 +470,7 @@ return $\tilde{\boldsymbol{c}}$
\begin{itemize}
\item Analysis of the general behavior of the two decoding algorithms
\begin{itemize}
\item Parameter choice
\item Parameter choice based on decoding performance and time complexity
\item Verification of theoretical considerations with simulation results
\end{itemize}
\item Suggestion for improvement of proximal decoding

View File

@ -12,7 +12,7 @@
\vspace*{-0.3cm}
\begin{itemize}
\item MAP rule:
\item MAP rule as continuous maximization problem:
\begin{align*}
\hat{\boldsymbol{x}}
&= \argmax_{\tilde{\boldsymbol{x}}\in\mathbb{R}^n}
@ -77,9 +77,9 @@
\item Proximal operator \cite{proximal_algorithms}:
\begin{align*}
\text{prox}_{\gamma h} \left( \tilde{\boldsymbol{x}} \right) &\equiv
\argmin_{\boldsymbol{t}\in\mathbb{R}^n} \left(
\gamma h\left( \boldsymbol{t} \right) + \frac{1}{2} \lVert \boldsymbol{t}
- \tilde{\boldsymbol{x}} \rVert^2 \right)\\
\argmin_{\boldsymbol{t}\in\mathbb{R}^n}
\gamma h\left( \boldsymbol{t} \right) + \frac{1}{2} \lVert \boldsymbol{t}
- \tilde{\boldsymbol{x}} \rVert^2 \\
&\approx \tilde{\boldsymbol{x}}
- \gamma \nabla h\left( \tilde{\boldsymbol{x}} \right),
\hspace{5mm} \gamma \text{ small}
@ -146,12 +146,12 @@ return $\boldsymbol{\hat{c}}$
\boldsymbol{\gamma}^{T} \boldsymbol{c} = \sum_{i=1}^{n}
\gamma_i c_i,
\hspace{5mm}\gamma_i = \ln\left(
\frac{p_{Y_i \mid C_i}\left( y_i | c_i = 0 \right) }
{p_{Y_i \mid C_i}\left(y_i | c_i=1 \right) } \right)
\frac{f_{Y_i \mid C_i}\left( y_i | c_i = 0 \right) }
{f_{Y_i \mid C_i}\left(y_i | c_i=1 \right) } \right)
\end{align*}
\item Exact \textit{integer linear programming} (ILP) formulation of ML decoding:
\begin{align*}
&\text{minimize } \boldsymbol{\gamma}^\text{T} \tilde{\boldsymbol{c}}\\
&\text{minimize } \boldsymbol{\gamma}^\text{T} \boldsymbol{c}\\
&\text{subject to } \boldsymbol{c}\in \mathcal{C}
\end{align*}
\item Goal: relaxation of constraints to make a practical solution to the problem feasible
@ -665,7 +665,7 @@ return $\boldsymbol{\hat{c}}$
\end{tikzpicture}
\begin{align*}
\text{minimize}\hspace{2mm} &\boldsymbol{\gamma}^\text{T} \boldsymbol{c} \\
\text{minimize}\hspace{2mm} &\boldsymbol{\gamma}^\text{T} \tilde{\boldsymbol{c}} \\
\text{subject to}\hspace{2mm} &\tilde{\boldsymbol{c}} \in
\text{poly}\left( \mathcal{C} \right) &\
\end{align*}
@ -822,6 +822,7 @@ return $\boldsymbol{\hat{c}}$
\vspace*{-7mm}
\begin{itemize}
\item Convergence properties enhanced by over-relaxation with parameter $\rho$
\item Simplified rules%
\footnote{$\left( \boldsymbol{z}_j \right)_i $ is a slight abuse of notation.
What is actually meant is the component of $\boldsymbol{z}_j$ that is associated
@ -843,13 +844,11 @@ return $\boldsymbol{\hat{c}}$
- \boldsymbol{z}_j
\hspace{5mm} && \forall j\in\mathcal{J}
\end{alignat*}
\item The main computational effort are the projections
$\Pi_{\mathcal{P}_{d_j}}, \hspace{1mm} j\in\mathcal{J}$. Many
different approaches exist, e.g., \cite{original_admm},
\cite{efficient_lp_dec_admm}, \cite{lautern}.
\item The projections $\Pi_{\mathcal{P}_{d_j}}, \hspace{1mm} j\in\mathcal{J}$
are the main computational effort
\item Many approaches exist \cite{original_admm}, \cite{efficient_lp_dec_admm},
\cite{lautern}
\item The approach chosen here is the one described in \cite{original_admm}
\item The convergence properties can be enhanced by performing an
\textit{over-relaxation}, introducing the parameter $\rho$
\end{itemize}
\end{frame}

View File

@ -75,21 +75,20 @@
\label{fig:sim_results_prox}
\end{figure}
\vspace*{-0.5cm}
\begin{itemize}
\item $\mathcal{O}\left(n \right) $ time complexity - same as BP;
only multiplication and addition necessary \cite{proximal_paper}
\item Measured performance: $\sim\SI{10000}{}$ frames/s
on Intel Core i7-7700HQ @ 2.80GHz; $n=204$
\end{itemize}
\vspace{3mm}
% \vspace*{-0.5cm}
% \begin{itemize}
% \item $\mathcal{O}\left(n \right) $ time complexity - same as BP;
% only multiplication and addition necessary \cite{proximal_paper}
% \item Measured performance: $\sim\SI{10000}{}$ frames/s
% on Intel Core i7-7700HQ @ 2.80GHz; $n=204$
% \end{itemize}
% \vspace{3mm}
\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}[t]
\frametitle{Proximal Decoding: Choice of $\gamma$}
\setcounter{footnote}{0}
\begin{itemize}
\item Simulation%
@ -100,14 +99,14 @@
\begin{figure}[H]
\centering
\begin{subfigure}[c]{0.5\textwidth}
\hspace*{-3.5cm}
\begin{subfigure}[c]{0.4\textwidth}
\centering
\begin{tikzpicture}
\begin{semilogyaxis}[xlabel={$E_b / N_0$ (dB)}, ylabel={BER},
grid=both, grid style={line width=.1pt},
width=0.8\textwidth,
height=0.6\textwidth,
width=\textwidth,
height=0.75\textwidth,
legend style={at={(0.05,0.05)},anchor=south west},
ymin=3e-7, ymax=1.5,]
\addplot [ForestGreen, mark=*] table [x=SNR, y=BER,
@ -125,7 +124,8 @@
\end{semilogyaxis}
\end{tikzpicture}
\end{subfigure}%
\begin{subfigure}[c]{0.5\textwidth}
\hspace{5mm}
\begin{subfigure}[c]{0.4\textwidth}
\centering
\begin{tikzpicture}
@ -134,8 +134,8 @@
xlabel={$E_b / N_0$ (dB)},
ylabel={$\gamma$},
zlabel={BER},
width=0.8\textwidth,
height=0.6\textwidth,
width=\textwidth,
height=0.75\textwidth,
legend pos=outer north east,]
\addplot3[surf,
@ -392,7 +392,6 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}[t, fragile]
\frametitle{Proximal Decoding: Frame Error Rate}
\setcounter{footnote}{0}
\begin{itemize}
\item Analysis of simulated%
@ -514,7 +513,6 @@ return $\boldsymbol{\hat{c}}$
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}[t]
\frametitle{Proximal Decoding: Oscillation of Estimate}
\setcounter{footnote}{0}
\begin{itemize}
\item $\nabla L \left( \boldsymbol{y} \mid \tilde{\boldsymbol{x}} \right) $
@ -724,7 +722,6 @@ return $\boldsymbol{\hat{c}}$
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}[t]
\frametitle{Proximal Decoding: Visualization of Gradients}
\setcounter{footnote}{0}
\begin{figure}[H]
\centering
@ -809,11 +806,10 @@ return $\boldsymbol{\hat{c}}$
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}[t]
\frametitle{Proximal Decoder: Oscillation of $\nabla h\left( \tilde{\boldsymbol{x}} \right) $}
\setcounter{footnote}{0}
\begin{itemize}
\item For larger $n$, the gradient itself starts to oscillate
\item The amplitude of the oscillation seems to be highly correlated
\item The dynamic range of the oscillation is highly correlated
with the probability of a bit error
\end{itemize}
@ -873,7 +869,7 @@ return $\boldsymbol{\hat{c}}$
\end{axis}
\end{tikzpicture}
\caption{Correlation between bit error and amplitude of oscillation}
\caption{Correlation between bit error and dynamic range of oscillation}
\end{subfigure}
\end{figure}
@ -899,7 +895,6 @@ return $\boldsymbol{\hat{c}}$
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%\begin{frame}[t, fragile]
% \frametitle{Proximal Decoding: Improvement using ``ML-on-List''}
% \setcounter{footnote}{0}
%
% \begin{itemize}
% \item Comparison of proximal \& hybrid-proximal-ML\\
@ -1000,9 +995,8 @@ return $\boldsymbol{\hat{c}}$
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}[t, fragile]
\frametitle{Proximal Decoding: Improvement using \\``ML-in-the-List''}
\setcounter{footnote}{0}
\vspace*{-0.7cm}
\vspace*{-0.5cm}
\begin{itemize}
\item Improvement of proximal decoding by adding an ``ML-in-the-List'' step after
@ -1027,12 +1021,11 @@ for $K$ iterations do
return $\boldsymbol{\hat{c}}$
end if
end for
return $\boldsymbol{\hat{c}}$
return $\boldsymbol{\hat{c}}$ |\Suppressnumber|
|\phantom{a}||\Reactivatenumber|
\end{algorithm}
\vspace*{-5mm}
\caption{Proximal decoding algorithm \cite{proximal_paper}}
\end{figure}
\end{minipage}%
@ -1052,14 +1045,10 @@ for $K$ iterations do
end if
end for
$\textcolor{KITblue}{\text{Find }N\text{ most probably wrong bits.}}$
$\textcolor{KITblue}{\text{Generate variations } \boldsymbol{\tilde{c}}_l\text{ of }\boldsymbol{\hat{c}}\text{ with the }N\text{ bits modified.}}$
$\textcolor{KITblue}{\text{Compute }d_H\left( \boldsymbol{ \tilde{c}}_l, \boldsymbol{\hat{c}} \right) \text{ for all valid codewords } \boldsymbol{\tilde{c}}_l}$
$\textcolor{KITblue}{\text{Output }\boldsymbol{\tilde{c}}_l\text{ with lowest }d_H\left( \boldsymbol{ \tilde{c}}_l, \boldsymbol{\hat{c}} \right)}$
$\textcolor{KITblue}{\text{Generate variations } \boldsymbol{\hat{c}}_l\text{ of }\boldsymbol{\hat{c}}\text{ with the }N\text{ bits modified.}}$
$\textcolor{KITblue}{\text{Compute }d_H\left( \boldsymbol{ \hat{c}}_l, \boldsymbol{\hat{c}} \right) \text{ for all valid codewords } \boldsymbol{\hat{c}}_l}$
$\textcolor{KITblue}{\textbf{return }\boldsymbol{\hat{c}}_l\text{ with lowest }d_H\left( \boldsymbol{ \hat{c}}_l, \boldsymbol{\hat{c}} \right)}$
\end{algorithm}
\vspace*{-5mm}
\caption{Improved proximal decoding algorithm}
\end{figure}
\end{minipage}
\end{frame}
@ -1506,7 +1495,6 @@ $\textcolor{KITblue}{\text{Output }\boldsymbol{\tilde{c}}_l\text{ with lowest }d
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}[t]
\frametitle{Proximal Decoding: Average Error}
\setcounter{footnote}{0}
\begin{figure}[H]
\centering

View File

@ -93,7 +93,7 @@
\begin{align*}
\boldsymbol{x} = \left( -1 \right)^{\boldsymbol{c}},
\hspace{5mm} \boldsymbol{c} \in \mathbb{F}_2^n,
\hspace{2mm} \boldsymbol{x} \in \mathbb{R}^n
\hspace{2mm} \boldsymbol{x} \in \left\{ -1, 1 \right\}^n
\end{align*}
\item The channel model is AWGN:
\begin{align*}
@ -194,7 +194,7 @@
\node[color=KITgreen, right=0cm of f] {$\tilde{\boldsymbol{c}}$};
\end{tikzpicture}
\caption{Hypercube ($n=3$) with valid codewords for single parity-check}
\caption{Hypercube ($n=3$) with valid codewords for single parity-check code}
\end{figure}
\end{minipage}
\end{frame}