---
title: "稠密連接（Dense Connections）"
slug: dense-connections
language: zh-TW
source: https://aiterms.tw/terms/dense-connections
updated_at: 2026-07-30
tags: [深度學習, 機器學習, AI基礎]
ipas_term: false
---

# 稠密連接（Dense Connections）

使網路中的每一層都接收所有前面層的輸出作為輸入，通過特徵複用和梯度流通改善深層網路的訓練和性能。

## 完整說明

稠密連接（Dense Connections）是 DenseNet 的核心創新，與 ResNet 的跳躍連接不同，稠密連接使每一層都與其後所有層直接相連。層 i 的輸入包括其前所有層的輸出組合，通過連接（Concatenation）而非加法融合，實現最大化的特徵複用。

## 常見問題

### DenseNet 的稠密連接為什麼能減少參數量，與 ResNet 相比優勢在哪？

參數減少的原因是特徵複用效率提升。ResNet 中每層需要從零學習新特徵，因此需要許多通道；DenseNet 中每層可訪問所有早期層的特徵，因此新層只需學習「新增信息」，通道數（增長率 k）可設置很小（24-32）。例如，DenseNet-121 有 121 層，但整個網路只約 800 萬參數，因為大多層只有 32 個輸出通道。相比 ResNet-50（2500 萬參數），DenseNet-121 參數量低 70%，但精度相當。梯度流通方面，DenseNet 提供更多並行路徑讓梯度回傳，解決梯度消失的能力比 ResNet 更強，因此可訓練更深的網路且不需要極深層數（ResNet-152 才達到的精度 DenseNet-121 就能達到）。代價是內存使用較高（在前向傳播時需保留所有層的輸出用於反向傳播），但對參數和計算敏感的應用（移動、邊緣設備）DenseNet 更優。

### DenseNet 中的增長率（Growth Rate）k 應該如何選擇？

增長率 k 決定了每層增加的通道數。k 越小，模型越輕量級，參數和計算更少；k 越大，每層表達能力越強，但參數和計算增加。選擇 k 涉及精度-效率權衡。實驗顯示，k=32 是一個通用的好選擇，在多個數據集和任務上達到精度-效率最佳平衡。k=12 適合極輕量級應用（移動設備），參數量減少 60% 但精度下降 1-2%；k=64 適合計算充足且追求最高精度的場景。k 的最優值也取決於數據集大小：小數據集（如特定醫療數據）應使用較小 k 避免過擬合；大數據集（ImageNet）可使用較大 k 充分利用容量。選擇方法是在驗證集上測試 k=12, 24, 32, 48, 64，選擇精度和效率最符合應用需求的值。此外，k 與稠密塊的層數相互作用，深塊往往需要更小 k，淺塊可使用更大 k。

### DenseNet 為什麼內存使用比 ResNet 更高，如何在實踐中優化？

高內存使用的根本原因是稠密連接的實現方式。DenseNet 使用連接操作融合特徵，反向傳播時需要保留所有前驅層的輸出，用於計算梯度。而 ResNet 使用加法，無需保留所有層的輸出。例如，DenseNet 的一個稠密塊有 12 層，每層 k=32 輸出通道，輸入逐漸增加至 32×12=384 通道，反向傳播時需同時保留 12 個中間激活，內存占用顯著。優化方案包括：第一，使用檢查點（Checkpoint）技術，選擇性保存中間結果，減少內存占用，代價是計算量增加；第二，減小批大小，直接降低內存需求但可能影響訓練穩定性；第三，減少稠密塊的層數或增長率，如用 k=12 替代 32；第四，使用梯度累積，多個小批次梯度累加後更新，不增加內存；第五，模型量化或混合精度，降低激活值精度的內存占用；第六，考慮使用 ResNet 或其他架構（如 EfficientNet）作為替代。在配置有限 GPU 內存的設備上，DenseNet 訓練往往需要這些優化策略。

---

來源：https://aiterms.tw/terms/dense-connections
快查頁：https://aiterms.tw/terms/dense-connections
最後更新：2026/07/30
深度解說：https://aiterms.tw/learning/what-is-dense-connections