반응형

전체 글 91

Transformer 학습 가이드: BPE와 워밍업부터 KV 캐시까지

Transformer 편에서는 Self-attention부터 인코더·디코더 블록까지 부품을 하나씩 뜯어봤습니다. 그런데 그 글에는 빠진 것이 하나 있습니다. 학습된 모델이 한 번도 등장하지 않았다는 점입니다. 어텐션 가중치를 손으로 계산해 보고, 스케일링을 빼면 분포가 어떻게 무너지는지 확인하고, 블록을 쌓았을 때 기울기가 어떻게 전달되는지까지 봤지만, 그 모든 실험의 가중치는 무작위였거나 초기화 직후 상태였습니다.부품을 다 만들었으니 이제 돌려 볼 차례입니다. 이 글에서는 실제로 동작하는 언어 모델 하나를 처음부터 끝까지 만들어 봅니다. 입력을 토큰으로 쪼개는 일에서 시작해, 학습이 무너지지 않게 붙잡아 주는 장치들을 살펴보고, 학습이 끝난 모델의 어텐션이 실제로 무엇을 보고 있는지 재 본 다음, 그 ..

패러다임을 바꾼 트랜스포머(Transformer): Self-Attention부터 인코더-디코더까지

지난 글에서 어텐션을 다루면서, 디코더가 매 시점 원문 전체를 훑어보고 필요한 곳에 가중치를 몰아주는 과정을 살펴보았습니다. 고정 길이 벡터 하나에 문장을 밀어 넣던 seq2seq의 병목이 사라졌고, 학습된 정렬 행렬도 눈으로 확인했습니다.그런데 그 구조에는 어색한 구석이 남아 있었습니다. 어텐션은 문장의 어느 위치든 한 번에 접근할 수 있는데, 정작 그 어텐션이 얹혀 있는 토대는 여전히 RNN이었습니다. RNN은 t번째 은닉 상태를 계산하려면 t-1번째를 먼저 알아야 합니다. 문장이 길어지면 그만큼 순서대로 기다려야 하고, GPU가 아무리 많은 연산을 동시에 처리할 수 있어도 이 사슬은 풀리지 않습니다. 어텐션이 성능을 끌어올릴수록 "그럼 밑에 깔린 순환은 왜 필요한가"라는 질문이 선명해졌습니다.201..

어텐션(Attention) 메커니즘의 원리: Query·Key·Value와 정렬 행렬

이전 강의들에서 우리는 CNN, RNN 그리고 Seq2Seq 모델에 이르기까지 딥러닝이 이미지와 시계열 데이터를 다루는 발전 과정을 순차적으로 살펴보았습니다. 특히 Seq2Seq 모델은 기계 번역과 같은 분야에서 훌륭한 성과를 보여주었습니다. 다만 지난 글 말미에 한 가지 질문을 남겨두었습니다. 인코더는 소스 문장을 끝까지 읽어 벡터 하나로 압축하고, 디코더는 그 벡터 하나만 보고 번역문을 만들어 냅니다. 그런데 문장이 열 단어일 때나 쉰 단어일 때나 그 벡터의 크기는 똑같습니다. 이래도 괜찮을까요.동시통역사를 떠올려 보면 이 설계가 얼마나 가혹한지 짐작할 수 있습니다. 연사가 긴 문장을 말하는 동안 통역사가 받아 적을 수 있는 것이 메모지 한 줄뿐이고, 말이 끝나는 순간 메모지를 덮은 뒤 그 한 줄에 ..

Seq2Seq: 인코더–디코더로 길이가 다른 시퀀스를 잇다

이전 포스팅에서 우리는 순차적인 데이터를 처리하는 데 특화된 신경망인 RNN에 대해 자세히 알아보았습니다. RNN은 시계열 데이터나 자연어 처리에서 훌륭한 성능을 보여주지만, 입력 시퀀스와 출력 시퀀스의 길이가 다를 때 적용하기 까다롭다는 구조적인 한계를 가지고 있습니다.영어 문장 "I read a book"은 네 단어이지만, 우리말로 옮기면 "나는 책을 읽었다"로 세 어절입니다. 입력 토큰 하나마다 출력 토큰 하나를 내놓는 구조로는 이 대응을 만들 수 없습니다. 길이만 문제인 것도 아닙니다. 영어의 동사 read는 두 번째 자리에 오지만 우리말의 '읽었다'는 문장 맨 끝에 옵니다. 어느 입력이 어느 출력에 대응하는지가 미리 정해져 있지 않고, 그 대응을 알아내는 일 자체가 번역의 일부입니다.2014년에..

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..

반응형