Wireless Communications

간단한 Semantic 통신 시뮬레이션

은최 2025. 11. 21. 15:48

Colab 링크:

 

semmantic 시뮬레이션

Colab notebook

colab.research.google.com

 

 

 

Semantic vs Syntatic

1. 실험 환경 

  • 난수 시드 설정: np.random.seed(SEED)
  • Semantic SNR 리스트 설정: SNR_LIST = [=5, 0, 5, 10, 15, 20]
  • Syntactic 에러 확률 설정: CHAR_ERR_PROBS = [0.70, 0.55, 0.40, 0.25, 0.10
  • 각 조건당 반복 횟수: NUM_TRIALS = 400

2. Semantic 임베딩 모델

  • SentenceTransformer: "all-MiniLM-L6-v2" 로드
  • 4개의 semantic class 정의: GO_HOME, TIRED, RAIN, STUDY
  • 각 class마다 3개의 문장 생성, 총 12개의 문장 embedding 계산
     
    "GO_HOME": [
            "I am going home now.",
            "I am going home soon.",
            "I am on my way home.",
        ]
  • 총 12개 문장 embedding 계산
  • 모든 embedding을 정규화하여 노이즈 영향 동일하게 받도록, “신호 파워 = 1”로 정규화


3. 채널 모델 설계

A) Semantic Channel 

  • 입력: 정규화된 문장 embedding (1×D)
  • 잡음: awgn_channel()
  • 출력: noisy embedding (noise 추가)
  • Decoder: 수신 임베딩과의 cosine similarity → 가장 가까운 문장 선택

 

B) Syntactic Channel 

  • 입력: 문장 string 
  • 잡음: 치환 / 삽입/ 삭제 랜덤 적용
  • 출력: 원본에서 손상된  문자열
  • Decoder: 틀린 문자 개수가 가장 다른 문장 선택

노이즈로 깨진 문장:  "It is r&ning a lot todaq"

원래 문장 후보들:

  1. It is raining outside.
  2. It is raining a lot today.
  3. The weather is very rainy today.

문자 단위 거리(Hamming-like distance)를 비교하면:

  • dist(noisy, #1) = 15
  • dist(noisy, #2) = 4 ← 가장 작음
  • dist(noisy, #3) = 12

따라서 Syntactic Decoder 출력: "It is raining a lot today."


4. 실험 루틴

설정한 SNR과 문자 에러 확률을 각각 대응시켜 실험 진행:

각 SNR/에러 확률에 대해 400회 반복:

Semantic channel 성능 측정:

  • semantic-level 정확도: label이 맞는지
  • exact-level 정확도: 문장 자체가 동일함

Syntactic channel 성능 측정:

  • semantic-level 정확도
  • exact-level 정확도

각 채널/정확도 결과를 딕셔너리에 저장:

sem_sem_acc, sem_exact_acc,
syn_sem_acc, syn_exact_acc

 

4개의 성능곡선 그리기:

  • Semantic channel – Semantic accuracy
  • Semantic channel – Exact accuracy
  • Syntactic channel – Semantic accuracy
  • Syntactic channel – Exact accuracy

  • semantic 통신이 노이즈에 더 강인한 것을 확인할 수 있다
  • 정확한 정보보다 의미 정보를 복원하는 것이 정확도가 더 높다
  • semantic 채널에서도 정확한 문장 복원은 SNR이 높아야 가능하다

t-SNE 시각화

Target index: 9
Target sentence: I am studying for the exam.
Target label: STUDY
Noisy embeddings shape: (120, 384)

t-SNE 시각화의 의미

이 실험은 문장을 임베딩한 뒤, AWGN 잡음을 여러 SNR 조건에서 추가하여
“노이즈가 임베딩 공간에서 어떻게 나타나는지"를 시각화한 것이다.

t-SNE 결과에서 다음이 관찰된다:

  1. 원래 문장들(semantic class)끼리는 명확한 클러스터를 형성한다.
    → 임베딩이 의미 구조를 잘 반영한다는 뜻.
  2. 특정 문장의 noisy embedding들은 같은 semantic cluster 내부에서만 흔들린다.
    → 노이즈가 커도 의미 공간에서 벗어나지 않음
    → semantic decoder가 의미를 정확히 복구할 수 있는 이유
  3. 이는 논문에서 말하는 “semantic robustness”를 직관적으로 증명한다.
    Syntactic 채널과 달리, semantic channel은 잡음이 있어도 의미 정보를 안정적으로 보존한다.