반응형

전체 글 87

RNN이 오래 기억하지 못하는 이유: 기울기 소실과 LSTM·GRU

지난 글에서는 CNN이 이미지의 공간 구조를 어떻게 다루는지 살펴보았습니다. 커널을 이미지 위로 미끄러뜨리며 국소 패턴을 잡아내고, 같은 커널을 모든 위치에서 재사용해 파라미터를 아끼는 방식이었습니다.그런데 우리가 다루는 신호 중에는 이미지처럼 한눈에 펼쳐 놓을 수 없는 것들이 많습니다. 음성은 시간에 따라 흘러가고, 문장은 앞에서 뒤로 읽히며, 센서 데이터는 계속 쌓입니다. 이런 데이터에는 CNN이 곧바로 대응하기 어려운 두 가지 성질이 있습니다.첫째, 순서가 의미를 바꿉니다. "철수가 영희를 불렀다"와 "영희가 철수를 불렀다"는 완전히 같은 단어들로 이루어져 있지만 뜻이 정반대입니다. 단어들을 그저 모아서 평균을 내는 방식으로는 이 차이를 절대 구분할 수 없습니다.둘째, 길이가 제각각입니다. 어떤 문..

CNN: 학습되는 2차원 FIR 필터 — 컨볼루션 신경망의 커널과 텐서 Shape

이미지 인식 분야에서 딥러닝이 급격하게 발전할 수 있었던 배경에는 여러 가지 요소가 있지만, 그 중심에는 Convolutional Neural Network(CNN)가 있었습니다. CNN은 단순히 이미지에 Convolution 연산을 적용하는 신경망을 의미하지 않습니다. 핵심은 이미지가 가진 공간적 구조(Spatial Structure)를 신경망의 구조 자체에 반영하고, 동일한 필터를 이미지 전체에 공유하면서 필요한 특징을 계층적으로 학습한다는 데 있습니다.오늘날에는 Vision Transformer(ViT)와 같은 Transformer 기반 모델이 컴퓨터 비전의 중요한 축을 이루고 있지만, CNN이 만들어 놓은 구조적 아이디어는 여전히 중요합니다. 실제로 현대의 비전 모델에서도 Convolution은 ..

HSV 색공간의 다섯 가지 함정: RGB, XYZ, Lab, YCbCr과 비교

이전에 RGB, XYZ, Lab, YCbCr 네 가지 색공간을 비교하는 글을 통해 각 좌표계가 어떤 목적으로 설계되었는지 정리한 적이 있습니다. 그런데 그 비교표에는 정작 실무에서 가장 자주 눈에 띄는 색공간 하나가 빠져 있었습니다. 바로 HSV입니다. 포토샵의 색상 선택기, CSS의 hsl() 함수, OpenCV 튜토리얼의 색상 검출 예제까지, 우리가 "색을 고르는" 인터페이스는 거의 예외 없이 HSV 계열입니다.HSV가 이렇게 널리 쓰이는 이유는 명확합니다. 사람이 색을 말로 설명하는 방식과 축이 일치하기 때문입니다. "조금 더 붉은 쪽으로", "채도를 낮춰서", "더 어둡게"라는 표현은 각각 H, S, V 축을 따라 움직이는 조작입니다. 반면 같은 요구를 RGB로 옮기려면 세 채널을 동시에 손대야 ..

영상처리 2026.09.12

가우시안 혼합 모델(GMM)과 EM 알고리즘: 확률로 바라보는 군집화

이전 글들을 통해 우리는 데이터를 군집화하는 다양한 접근법을 살펴보았습니다. k-means는 각 군집을 하나의 중심 벡터로 대표하여 거리를 최소화하는 방식이었고, 계층적 군집화는 점들 사이의 연결 기준을 정해 병합의 역사를 남기는 방식이었습니다. 또한 DBSCAN을 통해 데이터의 밀도를 기반으로 기하학적 형태에 구애받지 않고 군집을 찾아내며 잡음을 걸러내는 방법도 다루었습니다.하지만 k-means와 DBSCAN 같은 알고리즘은 하나의 데이터가 반드시 특정 군집에 완벽히 속하거나 전혀 속하지 않는다는 결정론적 할당(Hard Assignment)을 전제로 합니다. 현실의 데이터는 경계가 모호하게 겹쳐 있는 경우가 훨씬 많습니다. 어떤 데이터가 A 군집일 확률 70%, B 군집일 확률 30%처럼 확률적으로 속..

[31] [마무리] DSP와 AI의 융합 그리고 미래 기술 전망

들어가며약 반년에 걸쳐 달려온 "Python으로 배우는 DSP" 시리즈가 드디어 오늘 대단원의 막을 내립니다. 돌이켜보면 우리는 오디오 파형이라는 가장 기본적인 1차원 데이터부터 시작하여, 2차원 이미지 행렬, 그리고 수천 개의 코어를 제어하는 하드웨어 가속 컴퓨팅에 이르기까지 참으로 긴 여정을 함께했습니다.지난 30편에서 우리는 주파수별 이득 $G(k,m)$를 통계적 규칙으로 손수 설계하여 16 ms의 시간 예산을 맞추는 실시간 노이즈 캔슬링 파이프라인을 성공적으로 구축했습니다. 그리고 그 끝에서, 이 수작업으로 깎아낸 이득 규칙을 데이터로부터 학습시키면 어떻게 될 것인가라는 질문을 던졌습니다. 오늘 이 마지막 시간에서는 그 질문에 대한 답을 찾아가며, 시리즈 전체를 관통하는 핵심 주제였던 "AI 시대..

DBSCAN: 거리에서 밀도로, 임의 형태의 군집과 잡음을 동시에 잡는 법

앞선 글에서 우리는 두 가지 군집화 기법을 살펴보았습니다. k-means는 각 군집을 하나의 중심 벡터로 대표하고 제곱 오차의 합을 줄여 나가는 방식이었고, 계층적 군집화는 점들 사이의 거리와 연결 기준을 정한 뒤 병합의 역사를 덴드로그램으로 남기는 방식이었습니다. 그리고 그보다 앞서 다룬 벡터 양자화 이론에서는, 이러한 군집화가 결국 코드북 설계 문제와 같은 뿌리에서 자란다는 점도 확인하였습니다.그런데 이 두 기법은 겉으로 드러나지 않는 한계를 안고 있습니다. 가장 근본적인 것은 모든 점이 반드시 어딘가에 속해야 한다는 점입니다. 이 알고리즘들에는 "이 점은 어느 군집도 아닙니다"라고 말할 수 있는 문법 자체가 없습니다. 군집의 개수와 형태에 관해서는 두 기법 사이에 정도의 차이가 있습니다. k-mea..

[30] [Project] 실시간 노이즈 캔슬링 시스템 빌드: 파이프라인 구성 및 평가

들어가며지난 편까지 우리는 오디오 파형부터 2차원 이미지 행렬에 이르기까지 신호 처리의 근본적인 수학적 원리를 탐구하고, 다양한 알고리즘을 설계하며, 하드웨어 가속 컴퓨팅으로 시스템의 성능을 한계까지 끌어올리는 기나긴 여정을 달려왔습니다. 개별적으로 파편화되어 있던 이 소중한 지식들을 이제 하나의 실로 꿰어, 실제 세계에서 살아 숨 쉬는 시스템으로 완성할 시간이 다가왔습니다.이번 글의 목표는 명확합니다. 마이크로 들어오는 소리에서 배경 잡음을 걷어내어 스피커로 내보내는 실시간 시스템을 처음부터 끝까지 만들고, 그 성능을 숫자로 검증하는 것입니다.미리 말씀드리면, 이번 글에서 새로운 알고리즘을 배우는 것은 아닙니다. 이번 글의 핵심인 스펙트럴 차감법(Spectral Subtraction)은 이름만 새로울 ..

계층적 군집화: 연결법 선택부터 덴드로그램 해석까지

이전 글에서 우리는 연속적인 데이터를 이산적인 대표값으로 압축하는 벡터 양자화의 기초 이론을 살펴보고, 이를 구현하는 가장 대표적인 알고리즘인 k-means 군집화에 대해 깊이 있게 다루었습니다. k-means는 단순하며 효율적으로 동작하지만, 데이터를 군집화할 때 우리가 가장 먼저 마주치는 질문은 "몇 개의 군집으로 나눌 것인가"입니다. k-means는 이 질문에 대한 답을 알고리즘이 시작되기 전에 요구합니다. $K$를 정해야만 알고리즘이 돌아가기 때문입니다. 엘보우 방법이나 실루엣 계수로 $K$를 추정할 수 있지만, 이는 어디까지나 여러 $K$에 대해 알고리즘을 반복 실행한 뒤 사후적으로 고르는 방식입니다.그런데 현실의 데이터에는 애초에 "정답인 군집 개수"가 존재하지 않는 경우가 많습니다. 생물 분..

[29] GPU 가속 신호 처리: CuPy를 활용한 병렬 처리 전략

들어가며지난 27편과 28편에 걸쳐 우리는 NumPy의 벡터화 기법과 Numba JIT 컴파일러를 활용하여, 인터프리터 언어인 Python이 지닌 태생적인 속도 한계를 극복하고 CPU의 잠재력을 극한까지 끌어올리는 방법론을 학습했습니다. 순수 Python 코드가 C 언어 수준의 속도로 변환되는 과정은 공학적으로 매우 흥미로운 경험이었을 것입니다.그러나 우리가 현업에서 다루어야 할 데이터의 스케일은 끊임없이 팽창하고 있습니다. 초당 수십 프레임이 쏟아지는 4K 해상도의 영상 스트림, 자율주행 자동차에서 수집되는 수십 채널의 고주파 라이다(LiDAR) 및 레이더 배열 신호, 혹은 거대한 파라미터로 구성된 딥러닝 기반의 음성 합성 모델 앞에서는, 아무리 훌륭하게 최적화된 CPU 연산이라 하더라도 물리적인 실리..

딥러닝 코드북의 종착지: 정규화로 거대 어휘를 여는 구면 양자화 BSQ

지난 LFQ 글은 계산서 한 장을 남기며 끝났습니다. 부호 하나로 토큰을 만드는 LFQ는 비트를 더할 때마다 어휘를 두 배로 불리는 확장성을 얻었지만, 그 어휘가 실제로 고르게 쓰이도록 만드는 엔트로피 페널티는 위치 하나마다 $2^d$개 꼭짓점 전체와의 거리 계산을 요구했습니다. 512 어휘에서는 사실상 공짜였던 이 계산이 $2^{18}$ 어휘에서는 실질적인 부담이 된다는 점, 그리고 바로 이 지점을 비트 사이의 독립을 가정하는 것으로 회피하려 한 BSQ라는 후속 연구가 있다는 것까지 말씀드리고 글을 맺었습니다.오늘은 그 BSQ(Binary Spherical Quantization)를 다룹니다. BSQ는 UT Austin의 Zhao 등이 2024년 논문 "Image and Video Tokenizatio..

반응형