From 970ee8fa5a9e2fd470b34be8d4039b0a2e7afc5e Mon Sep 17 00:00:00 2001 From: Trance-0 <60459821+Trance-0@users.noreply.github.com> Date: Thu, 20 Nov 2025 13:03:44 -0600 Subject: [PATCH] updates? --- content/CSE510/CSE510_L24.md | 2 - content/CSE510/CSE510_L25.md | 101 ++++++ content/CSE510/_meta.js | 1 + content/CSE5313/CSE5313_L23.md | 4 +- content/CSE5313/CSE5313_L24.md | 370 ++++++++++++++++++++++ content/CSE5313/_meta.js | 1 + public/CSE5313/Coded_computing_scheme.png | Bin 0 -> 52532 bytes 7 files changed, 475 insertions(+), 4 deletions(-) create mode 100644 content/CSE510/CSE510_L25.md create mode 100644 content/CSE5313/CSE5313_L24.md create mode 100644 public/CSE5313/Coded_computing_scheme.png diff --git a/content/CSE510/CSE510_L24.md b/content/CSE510/CSE510_L24.md index 7be42e5..40756cc 100644 --- a/content/CSE510/CSE510_L24.md +++ b/content/CSE510/CSE510_L24.md @@ -90,8 +90,6 @@ Parameter explanations: IGM makes decentralized execution optimal with respect to the learned factorized value. -## Linear Value Factorization - ### VDN (Value Decomposition Networks) VDN assumes: diff --git a/content/CSE510/CSE510_L25.md b/content/CSE510/CSE510_L25.md new file mode 100644 index 0000000..a367aec --- /dev/null +++ b/content/CSE510/CSE510_L25.md @@ -0,0 +1,101 @@ +# CSE510 Deep Reinforcement Learning (Lecture 25) + +> Restore human intelligence + +## Linear Value Factorization + +[link to paper](https://arxiv.org/abs/2006.00587) + +### Why Linear Factorization works? + +- Multi-agent reinforcement learning are mostly emprical +- Theoretical Model: Factored Multi-Agent Fitted Q-Iteration (FMA-FQI) + +#### Theorem 1 + +It realize **Counterfactual** credit assignment mechanism. + +Agent $i$: + +$$ +Q_i^{(t+1)}(s,a_i)=\mathbb{E}_{a_{-i}'}\left[y^{(t)}(s,a_i\oplus a_{-i}')\right]-\frac{n-1}{n}\mathbb{E}_{a'}\left[y^{(t)}(s,a')\right] +$$ + +Here $\mathbb{E}_{a_{-i}'}\left[y^{(t)}(s,a_i\oplus a_{-i}')\right]$ is the evaluation of $a_i$. + +and $\mathbb{E}_{a'}\left[y^{(t)}(s,a')\right]$ is the baseline + +The target $Q$-value: $y^{(t)}(s,a)=r+\gamma\max_{a'}Q_{tot}^{(t)}(s',a')$ + +#### Theorem 2 + +it has local convergence with on-policy training + +##### Limitations of Linear Factorization + +Linear: $Q_{tot}(s,a)=\sum_{i=1}^{n}Q_{i}(s,a_i)$ + +Limited Representation: Suboptimal (Prisoner's Dilemma) + +|a_2\a_2| Action 1 | Action 2 | +|---|---|---| +|Action 1| **8** | -12 | +|Action 2| -12 | 0 | + +After linear factorization: + +|a_2\a_2| Action 1 | Action 2 | +|---|---|---| +|Action 1| -6.5 | -5 | +|Action 2| -5 | **-3.5** | + +#### Theorem 3 + +it may diverge with off-policy training + +### Perfect Alignment: IGM Factorization + +- Individual-Global Maximization (IGM) Constraint + +$$ +\argmax_{a}Q_{tot}(s,a)=(\argmax_{a_1}Q_1(s,a_1), \dots, \argmax_{a_n}Q_n(s,a_n)) +$$ + +- IGM Factorization: $Q_{tot} (s,a)=f(Q_1(s,a_1), \dots, Q_n(s,a_n))$ + - Factorization function $f$ realizes all functions satsisfying IGM. + +- FQI-IGM: Fitted Q-Iteration with IGM Factorization + +#### Theorem 4 + +Convergence & optimality. FQI-IGM globally converges to the optimal value function in multi-agent MDPs. + +### QPLEX: Multi-Agent Q-Learning with IGM Factorization + +[link to paper](https://arxiv.org/pdf/2008.01062) + +IGM: $\argmax_a Q_{tot}(s,a)=\begin{pamtrix} +\argmax_{a_1}Q_1(s,a_1) \\ + \dots \\ + \argmax_{a_n}Q_n(s,a_n) +\end{pmatrix} +$ + +Core idea: + +- Fitting well the values of optimal actions +- Approximate the values of non-optimal actions + +QPLEX Mixing Network: + +$$ +Q_{tot}(s,a)=\sum_{i=1}^{n}\max_{a_i'}Q_i(s,a_i')+\sum_{i=1}^{n} \lambda_i(s,a)(Q_i(s,a_i)-\max_{a_i'}Q_i(s,a_i')) +$$ + +Here $\sum_{i=1}^{n}\max_{a_i'}Q_i(s,a_i')$ is the baseline $\max_a Q_{tot}(s,a)$ + +And $Q_i(s,a_i)-\max_{a_i'}Q_i(s,a_i')$ is the "advantage". + +Coefficients: $\lambda_i(s,a)>0$, **easily realized and learned with neural networks** + +> Continue next time... diff --git a/content/CSE510/_meta.js b/content/CSE510/_meta.js index c0a1ecd..557e618 100644 --- a/content/CSE510/_meta.js +++ b/content/CSE510/_meta.js @@ -27,4 +27,5 @@ export default { CSE510_L22: "CSE510 Deep Reinforcement Learning (Lecture 22)", CSE510_L23: "CSE510 Deep Reinforcement Learning (Lecture 23)", CSE510_L24: "CSE510 Deep Reinforcement Learning (Lecture 24)", + CSE510_L25: "CSE510 Deep Reinforcement Learning (Lecture 25)", } \ No newline at end of file diff --git a/content/CSE5313/CSE5313_L23.md b/content/CSE5313/CSE5313_L23.md index 5ec45ce..ab1a17e 100644 --- a/content/CSE5313/CSE5313_L23.md +++ b/content/CSE5313/CSE5313_L23.md @@ -160,14 +160,14 @@ Can we trade the recovery threshold $K$ for a smaller $s$? #### Construction of Short-Dot codes -Choose a super-regular matrix $B\in \mathbb{F}^{P\time K}$, where $P$ is the number of worker nodes. +Choose a super-regular matrix $B\in \mathbb{F}^{P\times K}$, where $P$ is the number of worker nodes. - A matrix is supper-regular if every square submatrix is invertible. - Lagrange/Cauchy matrix is super-regular (next lecture). Create matrix $\tilde{A}$ by stacking some $Z\in \mathbb{F}^{(K-M)\times N}$ below matrix $A$. -Let $F=B\dot \tilde{A}\in \mathbb{F}^{P\times N}$. +Let $F=B\cdot \tilde{A}\in \mathbb{F}^{P\times N}$. **Short-Dot**: create matrix $F\in \mathbb{F}^{P\times N}$ such that: diff --git a/content/CSE5313/CSE5313_L24.md b/content/CSE5313/CSE5313_L24.md new file mode 100644 index 0000000..415e2c9 --- /dev/null +++ b/content/CSE5313/CSE5313_L24.md @@ -0,0 +1,370 @@ +# CSE5313 Coding and information theory for data science (Lecture 24) + +## Continue on coded computing + +[!Coded computing scheme](https://notenextra.trance-0.com/CSE5313/Coded_computing_scheme.png) + +Matrix-vector multiplication: $y=Ax$, where $A\in \mathbb{F}^{M\times N},x\in \mathbb{F}^N$ + +- MDS codes. + - Recover threshold $K=M$. +- Short-dot codes. + - Recover threshold $K\geq M$. + - Every node receives at most $s=\frac{P-K+M}{P}$. $N$ elements of $x$. + +### Matrix-matrix multiplication + +Problem Formulation: + +- $A=[A_0 A_1\ldots A_{M-1}]\in \mathbb{F}^{L\times L}$, $B=[B_0,B_1,\ldots,B_{M-1}]\in \mathbb{F}^{L\times L}$ +- $A_m,B_m$ are submatrices of $A,B$. +- We want to compute $C=A^\top B$. + +Trivial solution: + +- Index each worker node by $m,n\in [0,M-1]$. +- Worker node $(m,n)$ performs matrix multiplication $A_m^\top\cdot B_n$. +- Need $P=M^2$ nodes. +- No erasure tolerance. + +Can we do better? + +#### 1-D MDS Method + +Create $[\tilde{A}_0,\tilde{A}_1,\ldots,\tilde{A}_{S-1}]$ by encoding $[A_0,A_1,\ldots,A_{M-1}]$. with some $(S,M)$ MDS code. + +Need $P=SM$ worker nodes, and index each one by $s\in [0,S-1], n\in [0,M-1]$. + +Worker node $(s,n)$ performs matrix multiplication $\tilde{A}_s^\top\cdot B_n$. + + +$$ +\begin{bmatrix} +A_0^\top\\ +A_1^\top\\ +A_0^\top+A_1^\top +\end{bmatrix} +\begin{bmatrix} +B_0 & B_1 +\enn{bmatrix} +$$ + +Need $S-M$ responses from each column. + +The recovery threshold $K=P-S+M$ nodes. + +This is trivially parity check code with 1 recovery threshold. + +#### 2-D MDS Method + +Encode $[A_0,A_1,\ldots,A_{M-1}]$ with some $(S,M)$ MDS code. + +Encode $[B_0,B_1,\ldots,B_{M-1}]$ with some $(S,M)$ MDS code. + +Need $P=S^2$ nodes. + +$$ +\begin{bmatrix} +A_0^\top\\ +A_1^\top\\ +A_0^\top+A_1^\top +\end{bmatrix} +\begin{bmatrix} +B_0 & B_1 & B_0+B_1 +\enn{bmatrix} +$$ + +Decodability depends on the pattern. + +- Consider an $S\times S$ bipartite graph (rows on left, columns on right). +- Draw an $(i,j)$ edge if $\tilde{A}_i^\top\cdot \tilde{B}_j$ is missing +- Row $i$ is decodable if and only if the degree of $i$'th left node $\leq S-M$. +- Column $j$ is decodable if and only if the degree of $j$'th right node $\leq S-M$. + +Peeling algorithm: + +- Traverse the graph. +- If $\exists v$,$\deg v\leq S-M$, remove edges. +- Repeat. + +Corollary: + +- A pattern is decodable if and only if the above graph **does not** contain a subgraph with all degree larger than $S-M$. + +> [!NOTE] +> +> 1. $K_{1D-MDS}=P-S+M=\Theta(P)$ (linearly) +> 2. $K_{2D-MDS}=P-(S-M+1)^2+1$. +> 3. $K_{product} +> Our goal is to get rid of $P$. + +### Polynomial codes + +#### Polynomial representation + +Coefficient representation of a polynomial: + +- $f(x)=f_dx^d+f_{d-1}x^{d-1}+\cdots+f_1x+f_0$ +- Uniquely defined by coefficients $[f_d,f_{d-1},\ldots,f_0]$. + +Value presentation of a polynomial: + +- Theorem: A polynomial of degree $d$ is uniquely determined by $d+1$ points. +- Proof Outline: First create a polynomial of degree $d$ from the $d+1$ points using Lagrange interpolation, and show such polynomial is unique. +- Uniquely defined by evaluations $[(\alpha_1,f(\alpha_1)),\ldots,(\alpha_{d},f(\alpha_{d}))]$ + +Why should we want value representation? + +- With coefficient representation, polynomial product takes $O(d^2)$ multiplications. +- With value representation, polynomial product takes $2d+1$ multiplications. + +#### Definition of a polynomial code + +[link to paper](https://arxiv.org/pdf/1705.10464) + +Problem formulation: + +$$ +A=[A_0,A_1,\ldots,A_{M-1}]\in \mathbb{F}^{L\times L}, B=[B_0,B_1,\ldots,B_{M-1}]\in \mathbb{F}^{L\times L} +$$ + +We want to compute $C=A^\top B$. + +Define *matrix* polynomials: + +$p_A(x)=\sum_{i=0}^{M-1} A_i x^i$, degree $M-1$ + +$p_B(x)=\sum_{i=0}^{M-1} B_i x^{iM}$, degree $M(M-1)$ + +where each $A_i,B_i$ are matrices + +We have + +$$ +h(x)=p_A(x)p_B(x)=\sum_{i=0}^{M-1}\sum_{j=0}^{M-1} A_i B_j x^{i+jM} +$$ + +$\deg h(x)\leq M(M-1)+M-1=M^2-1$ + +Observe that + +$$ +x^{i_1+j_1M}=x^{i_2+j_2M} +$$ +if and only if $m_1=n_1$ and $m_2=n_2$. + +The coefficient of $x^{i+jM}$ is $A_i^\top B_j$. + +Computing $C=A^\top B$ is equivalent to find the coefficient representation of $h(x)$. + +#### Encoding of polynomial codes + +The master choose $\omega_0,\omega_1,\ldots,\omega_{P-1}\in \mathbb{F}$. + +- Note that this requires $|\mathbb{F}|\geq P$. + +For every node $i\in [0,P-1]$, the master computes $\tilde{A}_i=p_A(\omega_i)$ + +- Equivalent to multiplying $[A_0^\top,A_1^\top,\ldots,A_{M-1}^\top]$ by Vandermonde matrix over $\omega_0,\omega_1,\ldots,\omega_{P-1}$. +- Can be speed up using FFT. + +Similarly, the master computes $\tilde{B}_i=p_B(\omega_i)$ for every node $i\in [0,P-1]$. + +Every node $i\in [0,P-1]$ computes and returns $c_i=p_A(\omega_i)p_B(\omega_i)$ to the master. + +$c_i$ is the evaluation of polynomial $h(x)=p_A(x)p_B(x)$ at $\omega_i$. + +Recall that $h(x)=\sum_{i=0}^{M-1}\sum_{j=0}^{M-1} A_i^\top B_j x^{i+jM}$. + +- Computing $C=A^\top B$ is equivalent to finding the coefficient representation of $h(x)$. + +Recall that a polynomial of degree $d$ can be uniquely defined by $d+1$ points. + +- With $MN$ evaluations of $h(x)$, we can recover the coefficient representation for polynomial $h(x)$. + +The recovery threshold $K=M^2$, independent of $P$, the number of worker nodes. + +Done. + +### MatDot Codes + +[link to paper](https://arxiv.org/pdf/1801.10292) + +Problem formulation: + +- We want to compute $C=A^\top B$. +- Unlike polynomial codes, we let $A=\begin{bmatrix} +A_0\\ +A_1\\ +\vdots\\ +A_{M-1} +\end{bmatrix}$ and $B=\begin{bmatrix} +B_0\\ +B_1\\ +\vdots\\ +B_{M-1} +\end{bmatrix}$. And $A,B\in \mathbb{F}^{L\times L}$. + +- In polynomial codes, $A=\begin{bmatrix} +A_0 A_1\ldots A_{M-1} +\end{bmatrix}$ and $B=\begin{bmatrix} +B_0 B_1\ldots B_{M-1} +\end{bmatrix}$. + +Key observation: + +$A_m^\top$ is an $L\times \frac{L}{M}$ matrix, and $B_m$ is an $\frac{L}{M}\times L$ matrix. Hence, $A_m^\top B_m$ is an $L\times L$ matrix. + +Let $C=A^\top B=\sum_{m=0}^{M-1} A_m^\top B_m$. + +Let $p_A(x)=\sum_{m=0}^{M-1} A_m x^m$, degree $M-1$. + +Let $p_B(x)=\sum_{m=0}^{M-1} B_m x^m$, degree $M-1$. + +Both have degree $M-1$. + +And $h(x)=p_A(x)p_B(x)$. + +$\deg h(x)\leq M-1+M-1=2M-2$ + +Key observation: + +- The coefficient of the term $x^{M-1}$ in $h(x)$ is $\sum_{m=0}^{M-1} A_m^\top B_m$. + +Recall that $C=A^\top B=\sum_{m=0}^{M-1} A_m^\top B_m$. + +Finding this coefficient is equivalent to finding the result of $A^\top B$. + +> Here we sacrifice the bandwidth of the network for the computational power. + +#### General Scheme for MatDot Codes + +The master choose $\omega_0,\omega_1,\ldots,\omega_{P-1}\in \mathbb{F}$. + +- Note that this requires $|\mathbb{F}|\geq P$. + +For every node $i\in [0,P-1]$, the master computes $\tilde{A}_i=p_A(\omega_i)$ and $\tilde{B}_i=p_B(\omega_i)$. + +- $p_A(x)=\sum_{m=0}^{M-1} A_m x^m$, degree $M-1$. +- $p_B(x)=\sum_{m=0}^{M-1} B_m x^m$, degree $M-1$. + +The master sends $\tilde{A}_i,\tilde{B}_i$ to node $i$. + +Every node $i\in [0,P-1]$ computes and returns $c_i=p_A(\omega_i)p_B(\omega_i)$ to the master. + +The master needs $\deg h(x)+1=2M-1$ evaluations to obtain $h(x)$. + +- The recovery threshold is $K=2M-1$ + +### Recap on Matrix-Matrix multiplication + +$A,B\in \mathbb{F}^{L\times L}$, we want to compute $C=A^\top B$ with $P$ nodes. + +Every node receives $\frac{1}{m}$ of $A$ and $\frac{1}{m}$ of $B$. + +|Code| Recovery threshold $K$| +|:--:|:--:| +|1D-MDS| $\Theta(P)$ | +|2D-MDS| $\leq \Theta(\sqrt{P})$ | +|Polynomial codes| $\Theta(M^2)$ | +|MatDot codes| $\Theta(M)$ | + +## Polynomial Evaluation + +Problem formulation: + +- We have $K$ datasets $X_1,X_2,\ldots,X_K$. +- Want to compute some polynomial function $f$ of degree $d$ on each dataset. + - Want $f(X_1),f(X_2),\ldots,f(X_K)$. +- Examples: + - $X_1,X_2,\ldots,X_K$ are points in $\mathbb{F}^{M\times M}$, and $f(X)=X^8+3X^2+1$. + - $X_k=(X_k^{(1)},X_k^{(2)})$, both in $\mathbb{F}^{M\times M}$, and $f(X)=X_k^{(1)}X_k^{(2)}$. + - Gradient computation. + +$P$ worker nodes: + +- Some are stragglers, i.e., not responsive. +- Some are adversaries, i.e., return erroneous results. +- Privacy: We do not want to expose datasets to worker nodes. + +### Replication code + +Suppose $P=(r+1)\cdot K$. + +- Partition the $P$ nodes to $K$ groups of size $r+1$ each. +- Node in group $i$ computes and returns $f(X_i)$ to the master. +- Replication tolerates $r$ stragglers, or $\lfloor \frac{r}{2} \rfloor$ adversaries. + +### Linear codes + +However, $f$ is a polynomial of degree $d$, not a linear transformation unless $d=1$. + +- $f(cX)\neq cf(X)$, where $c$ is a constant. +- $f(X_1+X_2)\neq f(X_1)+f(X_2)$. + +Our goal is to create an encoder/decode such that: + +- Linear encoding: is the codeword of $[X_1,X_2,\ldots,X_K]$ for some linear code. +- The $f(X_i)$ are decodable from some subset of $f(\tilde{X}_i)$'s. +- $X_i$'s are kept private. + +### Lagrange Coded Computing + +Let $\ell(z)$ be a polynomial whose evaluations at $\omega_1,\ldots,\omega_{K}$ are $X_1,\ldots,X_K$. + +Then every $f(X_i)=f(\ell(\omega_i))$ is an evaluation of polynomial $f\cicc \ell(z)$ at $\omega_i$. + +If the master obtains the composition $h=f\circ \ell$, it can obtain every $f(X_i)=h(\omega_i)$. + +Goal: The master wished to obtain the polynomial $h(z)=f(\ell(z))$. + +Intuition: + +- Encoding is performed by evaluating $\ell(z)$ at $\alpha_1,\ldots,\alpha_P\in \mathbb{F}$, and $P>K$ for redundancy. +- Nodes apply $f$ on an evaluation of $\ell$ and obtain an evaluation of $h$. +- The master receives some potentially noisy evaluations, and finds $h$. +- The master evaluates $h$ at $\omega_1,\ldots,\omega_K$ to obtain $f(X_1),\ldots,f(X_K)$. + +### Encoding for Lagrange coded computing + +Need polynomial $\ell(z)$ such that: + +- $X_k=\ell(\omega_k)$ for every $k\in [K]$. + +Having obtained such $\ell$ we let $\tilde{X}_i=\ell(\alpha_i)$ for every $i\in [P]$. + +$\span{\tilde{X}_1,\tilde{X}_2,\ldots,\tilde{X}_P}=\span{\ell_1(x),\ell_2(x),\ldots,\ell_P(x)}$. + +Want $X_k=\ell(\omega_k)$ for every $k\in [K]$. + +Tool: Lagrange interpolation. + +- $\ell_k(z)=\prod_{i\neq k} \frac{z-\omega_j}{\omega_k-\omega_j}$. +- $\ell(z)=1$ and $\ell_k(\omega_k)=0$ for every $j\neq k$. +- $\deg \ell(z)=K-1$. + +Let $\ell(z)=\sum_{k=1}^K X_k\ell_k(z)$. + +- $\deg \ell=K-1$. +- $\ell(\omega_k)=X_k$ for every $k\in [K]$. + +Let $\tilde{X}_i=\ell(\alpha_i)=\sum_{k=1}^K X_k\ell_k(\alpha_i)$. + +Every $\tilde{X}_i$ is a **linear combination** of $X_1,\ldots,X_K$. + +$$ +(\tilde{X}_1,\tilde{X}_2,\ldots,\tilde{X}_P)=(X_1,\ldots,X_K)\cdot G=(X_1,\ldots,X_K)\begin{bmatrix} +\ell_1(\alpha_1) & \ell_1(\alpha_2) & \cdots & \ell_1(\alpha_P) \\ +\ell_2(\alpha_1) & \ell_2(\alpha_2) & \cdots & \ell_2(\alpha_P) \\ +\vdots & \vdots & \ddots & \vdots \\ +\ell_P(\alpha_1) & \ell_P(\alpha_2) & \cdots & \ell_P(\alpha_P) +\end{bmatrix} +$$ + +This $G$ is called a **Lagrange matrix** with respect to + +- $\omega_1,\ldots,\omega_K$. (interpolation points) +- $\alpha_1,\ldots,\alpha_P$. (evaluation points) + +> Continue next lecture. \ No newline at end of file diff --git a/content/CSE5313/_meta.js b/content/CSE5313/_meta.js index 0bd94ea..8976e73 100644 --- a/content/CSE5313/_meta.js +++ b/content/CSE5313/_meta.js @@ -27,4 +27,5 @@ export default { CSE5313_L21: "CSE5313 Coding and information theory for data science (Lecture 21)", CSE5313_L22: "CSE5313 Coding and information theory for data science (Lecture 22)", CSE5313_L23: "CSE5313 Coding and information theory for data science (Lecture 23)", + CSE5313_L24: "CSE5313 Coding and information theory for data science (Lecture 24)", } \ No newline at end of file diff --git a/public/CSE5313/Coded_computing_scheme.png b/public/CSE5313/Coded_computing_scheme.png new file mode 100644 index 0000000000000000000000000000000000000000..0da044bde022d9a1692d7513812dea3919ad1aef GIT binary patch literal 52532 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%0Dh2(&-2i#+i0@ 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