지난 포스팅에선 CNN을 통해 통신 채널을 복원하려고 시도했다. 그러나 채널의 평균값은 0에 수렴했으며 이는 올바르게 추정된 것이 아니다. 즉 실험은 실패했다.
[딥러닝 기반 통신 채널 추정] (CNN)
💡딥러닝 채널 추정이란? 지난 포스팅에선 전통적인 채널 추정 방식인 LS (Least Squares), MMSE (Minimum Mean Square Error)에 대해 정리해봤다. 이번 포스팅에선 이 둘에 이어 딥러닝으로 채널을 추정하는
chateun.tistory.com

이러한 결과가 나타난 원인으론 채널의 복잡성이 큰 것을 들 수 있다. 또한 이렇게 복잡한 채널에서 딥러닝 모델만을 단독으로 사용한 것을 원인으로 들 수 있다. 기존의 다른 통신 채널 추정 방식들은 딥러닝과 파일럿 기반 보조 정보를 결합해 채널을 추정했다. 즉 딥러닝 모델 하나만으로는 통신 채널 추정을 하지 않았다.
이에 따라 기존에 존재하는 논문의 방식중 Residual Learning을 통해 채널 추정을 진행해보려한다. Residual learning은 LS나 보간으로 추정한 값과의 오차를 예측한다. 지난 실험에서 채널 전체를 예측했던 것 과는 다르다.
Residual Learning은...
- 채널 전체를 직접 예측하는 대신,
- 대충 맞춰놓은 값(Ls 추정, 보간 등) 에서의 오차(Residual) 만 예측한다.
- "정답 = 대충 추정한 값 + DNN이 복원한 잔차"
- 잔차는 전체 채널에 비해 그 값이 작기에 학습 또한 쉽고 빠르게 수렴한다.
$$
\hat{\mathbf{h}} = \mathbf{h}_{\text{LS}} + \text{DNN}(\mathbf{y})
$$
- \( \mathbf{h}_{\text{LS}} \): LS나 보간으로 대충 얻은 채널
- \( \text{DNN}(\mathbf{y}) \): "잔차"만 학습
- 입력: LS 추정 결과
- 출력: Residual (진짜 채널 - LS 추정값)
과 같은 상태에서 출력을 최소화하는 방식으로 학습을 진행한다.
Residual learning에 대한 이론을 공부하던 중 의문점이 생겼다. 진짜 채널을 알고 있다면 왜 이러한 학습 과정을 거칠까?이다.
Q. "진짜 채널을 이미 아는데 왜 Residual Learning이 필요한가?"
훈련할 때 vs 실전(운영)할 때를 구분해야 한다!
| 구분 | 훈련 (training) | 실전 (inference) |
| 상황 | 우리가 만든 Rayleigh 채널을 알고 있음 | 현실 채널은 모름 (숨겨져 있음) |
| 목적 | 신경망이 채널의 변형 패턴을 학습 | 수신 신호만 보고 채널을 복원 |
- 훈련할 때만 신경망은 정답을 보고 배운다.
- 진짜 채널을 모르는 상태에서
→ 학습된 모델이 수신 신호만 보고 채널을 복원한다. - 이게 바로 supervised learning(지도학습)의 기본 구조이다.
Residual Learning 기반 MATLAB 코드 설계
전체 흐름
- 랜덤 QPSK 심볼 생성
- Rayleigh 채널 통과
- 파일럿 기반 LS 추정
- LS 추정값과 진짜 채널의 차이(Residual)를 DNN이 학습
- 최종 복원: LS 추정 + DNN 예측 Residual
Matlab 파일:
실험 결과

( MSE Loss가 전체 epoch수에 비해 너무 빠르게 수렴했다. 그 값 또한 크게 나타났다)

(이전 실험의 채널 추정이 0 주위에 있었던 것에 비하면 고무적인 결과지만, 여전히 그 성능은 좋지 않은 것을 눈대중으로도 확인할 수 있다)
왜 이런 결과가 나타났을까?
이 문제의 원인
| 1. 데이터 난이도 | Rayleigh 채널이 여전히 난이도가 높아서, 신경망이 모든 변화를 다 따라가기 힘듦 |
| 2. 네트워크 한계 | 현재 네트워크가 너무 단순해서 복잡한 채널 패턴을 제대로 학습 못함 |
| 3. Loss 함수 한계 | 단순한 MSE만 최소화하려 하면 fine structure (세부 패턴)을 잘 못 잡음 |
그렇다면 이러한 문제 원인들을 해결하기 위해서는 어떠한 방법으로 현 실험을 수정해볼 수 있을까?
성능 향상을 위해 가능한 방법
더 깊은 / 복잡한 네트워크 사용하기
- 현재 네트워크는 hidden layer 2개짜리 단순한 구조
- 층을 4~6개로 늘리거나, 레이어당 neuron 수를 256, 512로 늘리면 복잡한 패턴을 학습할 가능성이 있다.
Residual 방식 더 강화하기 (Multi-residual idea)
- 지금은 단순히 하나의 residual만 예측하고 있는데,
- Residual을 여러 단계를 거치면서 refinement(점진적 개선)하도록 설계할 수 있어.
- 이걸 iterative residual learning이라고 부르기도한다.
첫 번째 residual로 복원
→ 두 번째 residual로 수정
→ 세 번째 residual로 추가 보정 ...
데이터 다양성 늘리기
- 지금은 항상 같은 파일럿 패턴/고정적인 Rayleigh 모델만 쓰고 있는데,
- 학습 데이터에 다양한 fading condition (예: fast fading, SNR 변화 등)을 넣으면
- 모델이 다양한 채널 환경에 더 강해진다.
- 이에 따라 실제 환경에서 모델의 복원 능력이 더 강해진다!
정리하면
| 방법 | 예상 효과 |
| 네트워크 복잡도 증가 | 더 정밀한 복원 가능 |
| Multi - Residual 반복 | 점진적 오차 감소 |
| 데이터 다양성 증가 | 채널 잡음에 대한 강건성(robustness) 증가 |
- 배치 크기 늘려서 더 많은 데이터를 한 번에 학습
- SNR을 높여서 더 깨끗한 환경에서 학습
또한 생각해볼 수 있다.
마무리
- Residual Learning방식으로 실험을 진행했다.
- CNN을 사용했던 것에 비해 더 좋은 결과가 나타났지만 그 효과는 미비했다.
- 정리한 성능 향상 방법을 통해 더 좋은 결과를 얻기 위해 다음 포스팅에서 실험을 진행해보겠다.
'Wireless Communications' 카테고리의 다른 글
| [논문 리뷰] A Survey on Semantic Communications for Intelligent Wireless Networks-2 (0) | 2025.11.21 |
|---|---|
| [논문 리뷰] A Survey on Semantic Communications for Intelligent Wireless Networks (0) | 2025.11.18 |
| 딥러닝 기반 통신 채널 추정-1 (CNN) (0) | 2025.04.30 |
| 통신 채널 추정 방식 - MMSE (0) | 2025.04.28 |
| 통신 채널 추정 방식 - LS (0) | 2025.04.25 |