이전 포스팅에서는 Pointwise Multiplication(점별 곱)이 무엇인지 기본 개념을 살펴봤습니다.
Pointwise Multiplication이란?
딥러닝이나 이미지 처리 분야를 공부하다 보면 Pointwise Multiplication이라는 용어를 자주 만나게 됩니다. 처음 들으면 이름이 조금 어렵게 느껴지지만, 사실 매우 단순한 개념입니다. 이번 글에서는
whitecode2718.tistory.com
이번 글에서는 조금 더 깊게 들어가서,
- 왜 이 연산이 딥러닝/신호처리에서 핵심인지
- Pointwise Multiplication이 실제로 어떤 효과를 내는지
- CNN·Attention·FFT에서 어떻게 쓰이는지
를 직관적으로 설명해드립니다.
Pointwise Multiplication, 다시 한 번 쉽게 정리
Pointwise Multiplication은 말 그대로 각 위치별로 값끼리 곱하는 연산입니다.
예를 들어,
A = [2, 4, 6] B = [3, 2, 1] A ⊙ B = [6, 8, 6]
벡터든 이미지든 텐서든, 같은 위치끼리만 곱한다는 게 핵심입니다.
어디에 쓰이길래 중요할까?
Pointwise는 여러 분야에서 핵심 연산입니다.
(1) CNN의 1×1 Convolution = Pointwise Conv
1×1 Convolution은 사실상 필터 크기가 1이므로
각 픽셀의 채널 벡터를 Pointwise하게 곱한 뒤 합산하는 연산입니다.
➡ 역할
- 채널 압축 (차원 축소)
- 채널 확장
- 정보 재조합
- 연산량 줄이기 (MobileNet, Inception 등)
즉, 이미지의 공간 정보는 유지하면서 특징 채널만 다시 섞어주는 핵심 도구입니다.
(2) Self-Attention에서의 “점별 스케일링”
Attention Score 계산에서 softmax(QKᵀ / √d)
이 결과인 Attention Map과 Value 벡터 V를 결합할 때, 각 값마다 가중치를 곱해주는 것 역시 Pointwise Multiplication입니다.
즉,
- Attention Map: “어떤 위치에 집중할지”
- Value: “그 위치의 정보”
둘을 곱해 조합해주는 것이 Attention의 핵심이며, 이 결합 자체가 Pointwise입니다.
(3) Fourier Transform에서의 Frequency Filtering
FFT에서 주파수 영역에서 곱하기 = 시간 영역에서 필터링 라는 아주 유명한 성질이 있습니다.
따라서
FFT(signal) ⊙ Filter(freq-domain)
이게 바로 디지털 신호처리에서 필터를 적용하는 핵심 단계입니다.
- 저역 필터 → 고주파 성분 커트
- 고역 필터 → 저주파 성분 제거
- 특정 주파수만 강화
➡ 이 모든 것이 Pointwise Multiplication으로 적용됨
직관적 비유
Pointwise Multiplication은 한 장의 지도에 특정 부분을 하이라이트 필터로 강조하는 과정처럼 보면 쉽습니다.
- 지도 값 = 원본 데이터
- 하이라이트 필터 = Pointwise 계수
예를 들어,
하이라이트 필터가 0~1 사이 값이라면:
- 1 → 이 영역을 강조
- 0 → 이 영역을 지움
- 0.5 → 반만 남김
이 방식이 바로 CNN, Attention, Fourier 필터링 모두에 적용됩니다.
실제 Python 예제로 보는 Pointwise Multiplication 효과
주파수 필터링 예제
import numpy as np
import matplotlib.pyplot as plt
# 샘플 신호 생성
t = np.linspace(0, 1, 1000)
signal = np.sin(2*np.pi*5*t) + 0.5*np.sin(2*np.pi*30*t) # 저주파 + 고주파
freq = np.fft.fft(signal)
# 고주파 제거 필터
filter_mask = np.abs(np.fft.fftfreq(len(t))) < 0.1
filtered_freq = freq * filter_mask # Pointwise Multiplication
filtered_signal = np.fft.ifft(filtered_freq)
plt.figure(figsize=(8,4))
plt.plot(t, signal, label='Original')
plt.plot(t, filtered_signal.real, label='Filtered')
plt.legend()
plt.show()
➡ 고주파 사인파가 깔끔하게 사라집니다.
이 전체 과정에서 필터 적용은 오직 Pointwise Multiplication으로 처리됩니다.
딥러닝에서의 실제 예시: 1×1 Conv 구현
import torch
import torch.nn as nn
x = torch.randn(1, 16, 32, 32) # (batch, channel, h, w)
conv = nn.Conv2d(16, 8, kernel_size=1)
y = conv(x)
print(y.shape) # torch.Size([1, 8, 32, 32])
➡ Spatial 크기는 유지하면서 채널 정보만 재조합됨
➡ 내부적으로는 Pointwise 곱이 반복적으로 일어남
결론: Pointwise Multiplication은 “데이터를 선택적으로 강조하는 기술”
| CNN | 채널 정보 재조합, 연산량 감소 |
| Attention | 위치별 가중치 적용 |
| FFT 필터링 | 주파수 성분 강조/제거 |
| 이미지 합성 | 마스크 기반 부분 강조 |
| ML 연산 최적화 | 병렬 연산에 최적화 |
Pointwise Multiplication은 단순한 연산처럼 보이지만, 딥러닝·신호처리·그래픽스에서 핵심 역할을 수행하는 기본 단위 연산입니다.
'Computer Science > 딥러닝' 카테고리의 다른 글
| 객체 탐지(Object Detection) 성능지표 - mAP (0) | 2025.12.10 |
|---|---|
| 딥러닝에서 LayerNorm vs BatchNorm: 직관적으로 이해하기 (0) | 2025.12.03 |
| Pointwise Multiplication이란? (0) | 2025.12.02 |
| Emergent Abilities란 (0) | 2025.11.30 |
| [객체 검출] Region proposal 기법 (0) | 2025.11.30 |