一、加上軟閾值函數(Soft-thresholding)是因為 LISTA(以及它的前身 ISTA)本質上是在求解一個 帶 L1 正則化的稀疏優化問題:
min?x12∥y?Ax∥22+λ∥x∥1 \min_x \frac{1}{2} \|y - Ax\|_2^2 + \lambda \|x\|_1 xmin?21?∥y?Ax∥22?+λ∥x∥1?
1. 從數學角度看
-
λ∥x∥1\lambda \|x\|_1λ∥x∥1? 是稀疏約束項(L1 范數)
-
L1 正則化的解不是普通的線性解,而是一個 非線性收縮映射
-
在凸優化里,L1 正則化的**近端算子(Proximal Operator)**就是軟閾值函數:
Sθ(z)=sign(z)?max?(∣z∣?θ,0) S_{\theta}(z) = \mathrm{sign}(z) \cdot \max(|z| - \theta, 0) Sθ?(z)=sign(z)?max(∣z∣?θ,0)
-
這一步負責把小于閾值的系數“壓成 0”,讓解更稀疏。
如果沒有軟閾值:
- 迭代就變成純線性運算
- 得到的 xxx 不會強制稀疏化
- 無法實現稀疏編碼的本質目的
2. 從信號處理角度看
- 軟閾值 = 非線性去噪
對高頻的小系數(噪聲)直接歸零,對大系數(有用信號)略微收縮 - 在稀疏表示里,這個非線性就是用來剔除無關成分
- 類似小波去噪、壓縮感知恢復里的軟閾值
3. 在 LISTA 中的作用
-
LISTA 將 ISTA 的每一步迭代展開成一層網絡
-
每層的更新:
x(k+1)=Sθk(W(k)y+G(k)x(k)) x^{(k+1)} = S_{\theta_k} \left( W^{(k)} y + G^{(k)} x^{(k)} \right) x(k+1)=Sθk??(W(k)y+G(k)x(k))
- 線性部分 W(k)W^{(k)}W(k), G(k)G^{(k)}G(k):負責擬合梯度下降的方向
- 軟閾值 SθkS_{\theta_k}Sθk??:負責稀疏化
-
θk\theta_kθk? 也可以是可學習的參數,這樣每一層都能自動學到最優稀疏化強度
? 總結
- ISTA 里軟閾值是固定的數學推導結果
- LISTA 里軟閾值仍然必須存在(否則就不是稀疏編碼),但閾值大小可以學習,甚至可以每層不同
- 它是唯一能把“線性迭代”變成“稀疏解”的關鍵非線性
二、不一定,是否加其他激活函數取決于你問題的目標和約束類型。
1?? 為什么在 L1 正則化 問題中必須有軟閾值
- L1 正則化(稀疏約束) 對應的稀疏先驗是 拉普拉斯分布。
- 在 ISTA / LISTA 的迭代更新中,軟閾值(Soft Thresholding, shrinkage)就是 L1 正則項的解析近似解(proximal operator)。
- 如果去掉軟閾值,迭代就不再收縮系數,也就無法得到稀疏解。
- 因此,有 L1 正則化 ? 必須要有 soft-threshold 激活。
2?? 如果 沒有 L1 正則化
那就要看你的目標函數形式:
約束類型 / 先驗 | 對應激活函數(prox算子) |
---|---|
L1 范數稀疏約束 | 軟閾值 soft-threshold |
L0 范數稀疏約束 | 硬閾值 hard-threshold |
非負約束 | ReLU(max(0,·)) |
L2 范數正則化 | 縮放(不需要非線性激活) |
有界區間約束 | Clip(裁剪到區間) |
組稀疏 (group L1/L2) | group soft-threshold |
核范數正則化(低秩) | 奇異值軟閾值 (SVT) |
3?? 為什么不加激活函數可能出問題
如果完全沒有非線性(激活函數),LISTA 就退化成了 純線性迭代:
x(k+1)=W1y+W2x(k) x^{(k+1)} = W_1 y + W_2 x^{(k)} x(k+1)=W1?y+W2?x(k)
這樣:
- 無法施加先驗約束(如稀疏、非負)
- 網絡就只能擬合到最小二乘解(類似普通反卷積),欠約束時會過擬合
- 在欠定系統下甚至沒有穩定解
4?? 總結邏輯
- 有 L1 正則化 → 必須軟閾值(或變種)
- 無 L1 但有其他約束 → 激活函數要換成對應約束的 prox 算子
- 無任何約束 → 可以不加激活,但這時 LISTA 本質上就不是“稀疏重構”了,而只是個可學習的線性迭代器
如果你愿意,我可以畫一個 “ISTA/LISTA激活函數選擇決策圖”,讓不同正則化 → 對應的激活函數一目了然。
這樣你以后設計可學習迭代網絡時可以直接查表用。