본 게시글은 학부 강의 'AI 데이터 표현과 모델링'을 기반으로 이해하고 학습한 내용을 정리하였습니다.

Sequence to Sequence Learning
Tesnor와 데이터의 본질
이제 데이터를 컴퓨터에 어떻게 넣을 것인가, 그리고 그 데이터를 어떻게 처리할 것인가에 대한 큰 틀을 잡아보려 합니다.
컴퓨터는 본질적으로 계산기에요.
숫자를 입력받아서 숫자를 내놓습니다. 따라서 현실 세계의 데이터를 컴퓨터에 넣으려면 반드시 Tensor 형태로 변환해야 합니다.
Tensor의 계층 구조
- Scalar: 하나의 숫자
- Vector: Scalar를 순서(order)가 있게 묶어놓은 것. 수학에서는 벡터, 일상에서는 배열(array) 또는 list라고 부릅니다.
- Matrix: 벡터가 2차원으로 묶여 있는 것. 한글로는 행렬.
- N-dimensional Array: Matrix가 여러 판 쌓여 있는 것. 컴퓨터 공학에서 n-dimensional 배열이라 부릅니다.
- Tensor: 위의 Scalar부터 N-dimensional Array까지를 관통해서 부르는 용어가 Tensor.
데이터를 다루는 기본 단위를 앞으로 Tensor라 부를꺼에요. 이미지든, 음성이든, 텍스트든 모든 데이터는 Tensor로 변환되어 컴퓨터에 입력됩니다.
What is Sequence to Sequence Learning?
Sequence to Sequence Learning(S2S)은 특정한 기술(technique)의 이름이 아니다. 세상의 문제를 바라보는 프레임워크(관점)이다.
입력되는 X(Sequence)와 출력되는 Y(Sequence) 사이에 어떤 모듈이 있어서, 그 모듈이 X와 Y 사이의 관계를 스스로 배워나갈 수 있다면, 그러한 방법은 모두 Sequence to Sequence Learning이라 합니다.
$Input X = (x_1, x_2, x_3, ... , x_n), N = 입력의 개수$
$Output Y = (y_1, y_2, y_3, ... , y_m), M = 출력의 개수$
어떤 기술(e.g. LSTM, CNN, Transformer etc.)이 중간 엔진으로 들어가든 상관없습니다. 입력 Sequence가 들어와서 출력 Sequence가 나가면 그것이 S2S입니다.
우리가 매일 쓰고 있는 ChatGPT도 정확히 Sequence to Sequence입니다. 입력을 넣어주면 답이 나오죠.
Running Time에서의 동작
학습이 끝난 S2S 모듈은 실제 서비스(Running Time) 때 다음과 같이 동작합니다.
Sequence Feeding: 입력 Sequence X가 모듈에 들어감
Sequence Generation: 출력 Sequence Y가 생성되어 나옴
S2S의 케이스 분류
N(입력 개수)과 M(출력 개수)의 관계에 따라 크게 분류할 수 있습니다.
Case 1: N = M(입력 수 = 출력 수)
가장 일반적인 경우에요. 들어오는 입력마다 출력이 하나씩 나가는 구조.
e.g.
귤 품질 검사: 컨베이어 벨트 위에서 카메라로 귤을 촬영하여, 각 귤마다 "불량 / 양품"을 판정하는 시스템. 귤이 N개 들어오면 판정결과도 N개가 나옵니다.
GPS 기반 위치 분류: 스마트폰의 GPS좌표(XYZ)가 실시간으로 들어올 때, 각 좌표마다 "오피스 / 식당 / 버스 정류장" 등의 위치 라벨을 부여하는 시스템입니다.
<슬라이드 예시 있으니 추가할 것>
POS Tagging(품사 분석)
"오늘 날씨가 참 좋습니다." → "명사 명사 조사 부사 동사".
입력 5개, 출력 5개 (N = M)
Movie Frame Labeling
동영상 각 프레임마다 "Swing, Swing, Hit, Bat_Broken" 등 이벤트 부여
Case 2: N ≠ M(입력 수 ≠ 출력 수)
특수 케이스: M = 1(N to 1 문제)
입력은 여러 개인데 출력이 하나인 경우, 이를 N to 1 문제라고 보통 부릅니다.
예시를 봐볼까요.
스팸 메일 분류
이메일의 각 단어(N개)를 보고, 결과는 스팸 메일 또는 정상 메일 하나만 나옵니다.
이는 N to 1 문제죠.
영화 평점 예측
N개의 영화평 리뷰를 보고, 별점 하나를 매기는 것
이것도 N to 1 문제라 볼 수 있습니다.
주식 종가 예측
N개의 뉴스 기사를 보고, 오늘의 종가(숫자 하나)를 예측
Regression 문제이면서 N to 1 테스크 입니다.
N to 1 문제를 좀 더 엘레강스하게 부른다고 하면 Classification(분류) 혹은 Regression(회귀) 가 되겠습니다. 예시만 보아도 일상생활에 굉장히 많이 녹아있네요.
일반 케이스 M > 1, N ≠ M
입력과 출력의 길이가 서로 다른 가변적인 경우입니다.
이번에도 예시를 봅시다.
Machine Traslation, 기계 번역
"서울역 근처 스타벅스로 가자" 5단어
이를 번역하면
"Let's go to Starbucks near Seoul station" 7 단어
이것이 N ≠ M 입니다.
ChatGPT, Gemini 같은 친구들은 전형적인 N ≠ M 케이스에 속하죠. Prompt는 몇 글자 안되지만 거의 문서를 만들어 주잖아요?
S2S의 다양한 응용사례를 봅시다.
Speech Recognition(음성 인식)
- Input: Speech Signal(시간축 상의 연속된 음향 데이터)
- Output: Text(인식된 문장)
음성 인식 기술이 어떤 역사를 가지고 있는지 짧게 알아봅시다.
옛날 방식의 음성 인식기는 한 카피당 천만 원에서 2천만 원 할 정도로 비싼 소프트웨어였어요. 왜냐하면 세 가지 별도의 전문 영역이 결합되어야 했기 때문입니다.
Signal Processing
전자과 영역
마이크로 들어오는 전자적 시그널을 처리하여 깔끔한 파형을 만들어냅니다.
Acoustic Modeling
음운학자 영역
특정 시그널 구간이 어떤 Phoneme(음소)에 대응되는지 매핑. 이 부분을 음운학 전문가들이 담당합니다.
Language Modeling
자연어 처리 영역
"간" 이라는 음소 다음에 "짜"가 올 확률이 높다는 식으로 확률적 연결을 수행합니다.
이 세 모듈이 엮어서 실시간성 소프트웨어로 작동했습니다. 음성이 끝나면 약 0.5 ~ 1.5초 내에 인식 결과가 나와야 했어요. 즉, Latency가 짧아야 합니다
본질만 보면
- 음성 = Sequence of 숫자(마이크의 디지털 샘플링 데이터, WAV 파일)
- 텍스트 = Sequence of 단어
따라서 음성 인식은 전형적인 S2S 문제로 볼 수 있습니다. 현재 모든 음성 인식기가 이 방식으로 구축되어 있어요.
OpenAI에서 만든 Whisper라는 오픈소스 음성 인식 모델이 성능이 가장 괜찮다고 알려져 있습니다.
Movie Frame Labeling
동영상 이벤트 라벨링
- Input: Video Frame(Sequences of Images)
- Output: Scene Labels(각 프레임에 대한 이벤트 라벨)
옛날 방식으로 야구 동영상에서 배트가 부러진 장면을 찾으려면, 첨단 비전 처리기로 타자의 골격을 따내고, 공의 위치와 배트의 위치를 실시간 모니터링하여 분석적으로 해석해야 했습니다.
S2S 방식에는
동영상 = Sequence of Image
라는 본질만 봅니다. 각 프레임마다 Swing, Hit, Bat_Broken 등의 이벤트 라벨을 달아주는 엔진을 학습시키면 됩니다. 유튜브 같은 시스템에서는 이런 엔진이 밤마다 모든 동영상에 대해 들어가고, 사용자의 검색 쿼리가 들어오면 미리 달아놓은 이벤트 라벨과 매칭시켜 찾아줍니다.
핵심적인 차이는
기존에는 세세한 것을 다 분석적으로 이해하려 했다면, S2S 방식에서는 "Sequence가 들어갈 때 라벨 하나만 나오면 되는 거 아닌가?" 라는 단순화된 접근을 취한다는 겁니다.
POS Tagging
품사 분석
- Input: Text "오늘 날씨가 참 좋습니다."
- Output: 품사 라벨("명사 명사 조사 부사 동사")
N = M인 전형적인 케이스죠.
품사 분석은 자연어 처리에서 수십 년간 해온 작업입니다. 영어 기본 8품사(주어, 동사, 부사, 목적어 etc.)처럼 언어를 다룰 수 있는 형태로 잘 쪼개는 것입니다. 이런 복잡한 작업도 "자연어 데이터가 들어올 때 라벨 데이터만 나가면 되는 거 아닌가?" 라는 S2S 관점으로 풀 수 있어요. 필요한 것은 오로지 원문 X와 품사 라벨 Y의 Pairwise 데이터가 어마어마하게 많으면 됩니다.
Arithemic Calculation
사칙 연산
- Input: Math Expression "3 4 2 + 2 1" 각 숫자 / 기호가 하나의 토큰
- Output: Numbers("3 6 3")
초등학교 수학 문제에서 19 + 3 * 2 = 25 를 보면, equal 기호 왼쪽을 X, 오른쪽을 Y로 모델링할 수 있어요. 숫자 하나 또는 연산 기호 하나를 하나의 심볼(캐릭터)로 보고 벡터화 시킵니다.
이러한 데이터는 무한대로 만들 수 있습니다. 컴퓨터에게 임의의 수식을 생성시키고 답을 계산하면 X, Y 쌍이 자동으로 만들어집니다. 실제로 이 방식으로 구현하면 덧셈, 뺄셈 계산기를 오로지 데이터에만 기반해서 만들 수 있고, 성능도 매우 잘나와요. 약 5,000개 정도의 데이터로 정답률 0.99까지 금방 올라갑니다.
"342 + 21" 은 363인 거 우리가 이미 알고 잇고 계산기도 있는데, 왜 저렇게 해야함?
알고리즘이 있는 것들은 기존 알고리즘 돌리면 돼요.
그런데 세상 대부분의 일들은 작동되는 메커니즘을 기호로 표현하려고 보면 표현 안 되는 게 너무 많습니다. 예를 들면 주식 주식시장에서 전문가의 Gut Feeling(동물적 감각)은 기호화, 규칙화가 안됩니다. 그러나 그 전문가가 수십 년간 경험한 것과 동일한 방식으로 데이터를 모아주면 Machine Learning이 가능하죠.
이것이 보여주는 큰 흐름은
기존에 알고리즘으로 분석하던 것들, 얼굴 인식, 음성 인식, 심지어 덧셈기까지 이 데이터 기반으로 넘어가고 있습니다.
Machine Translation
기계 번역
- Input: Korean Text "서울역 근처 스타벅스로 가자"
- Output: English Text "Let's go to Starbucks near Seoul station"
이제 딱봐도 보이죠. N ≠ M인 케이스 입니다.
애초에 S2S 기술 자체가 번역기를 잘 만들려고 하다가 나온 테크닉입니다.
Sentence Completion
문장 자동 완성
- Input: Partial Sentence "삼성동에서 스타"
- Output: Partial Sentence "벅스 한 번 보여줘"
T맵을 예로 들어 볼께요.
T맵에서 음성 인식 버튼을 누르고 "삼성동에서 스타벅스 가자" 등을 말하면 해당 장소를 찾아주는 서비스가 있죠.
이 데이터의 문장을 앞부분(X)과 뒷부분(Y)으로 찢어서 S2S로 학습시키면, 자동 완성기가 만들어집니다. 사용자가 "삼성동에서 스타"까지 입력하면, 한국인 운전자들의 과거 수년간의 사용 패턴을 기반으로 가장 그럴듯한 뒷부분 "벅스 한 번 보여줘" 를 완성해줍니다.
Conversation Modeling
대화 모델링
Input: Utterance "John Brownlee is my boss"
Output: Utterance "OK, do you want me to remember that..."
Apple Siri를 보면 알 수 있죠.
ChatGPT, Gemini and Claude
스케일의 문제
문장 자동 완성 → 문서 자동 완성 → LLM까지의 스케일 확장을 다음과 같이 설명할 수 있어요.
- T맵 자동 완성: 한국인 운전자 100만 건의 사용 로그로 문장의 뒷부분을 완성
- 문서 자동 완성: 한국인이 볼 법한 모든 책, 문서를 모아서 문서를 찢고(X, Y), 학습시키면 문서 자동 완성기가 됩니다.
- ChatGPT / Gemini / Claude: 인류가 태어난 이래 만들어진 모든 문서를 다 모아서, X를 넣으면 Y를 완성하도록 강제하는 시스템. 본질은 자동완성기.
수학적으로 표현하면
X가 들어갈 때 Y를 생성하는데, 이때 Likelihood(우도, 그럴듯함)가 가장 큰 방식으로 Y를 만들어내는 것이 S2S Learning입니다. $P(Y|X)$를 최대화하는 것.
여기서 비단 X와 Y가 둘 다 문장일 필요가 없습니다. 입력은 텍스트인데 출력은 동영상, PPT, 음악일 수도 있어요. 기계 입장에서는 다 숫자이기 때문이죠. 숫자를 화면에 뿌려줄 때 기호로 뿌려질지 이미지로 뿌려질지만 다를 뿐입니다.
S2S 엔진의 세대별 변천사
| 세대 | 시기 | 엔진 구성 | 비고 |
| 1세대 | 2010 - 2014 | RNN Encoder + RNN Decoder | 최초의 S2S 엔진 |
| 2세대 | 2014 - | Attention Encoder + RNN Decoder | 파파고(Papago)가 이 방식 |
| 3세대 | 현재 | Transformer | ChatGPT, Gemini, Claude의 엔진 |
Transformer라고 하는 용어는 알아둡시다! 3세대 엔진이면서 지금의 ChatGPT, Gemini, Claude 밑에 돌아가고 있는 엔진이죠. Transformer 안에서도 Encoder - Decoder를 다 쓸 거냐, Decoder만 쓸 거냐로 구분할 수 있지만 거기까지는 몰라도 된다.
4세대가 뭐가 나올지는 현재 맹렬히 연구 중입니다. 뭐가 나오든 핵심은 동일해요.
데이터 한쪽 End를 입력받아서 다른 쪽 End를 내놓는 것
End-to-End Learning
S2S 프레임워크의 실용적 시사점
우리에게 필요한 것은 세 가지에요.
어마어마하게 많은 데이터
S2S를 수행할 수 있는 중간 엔진(e.g. Transformer etc.)
학습시킬 수 있는 인프라 (GPU 서버 등 국가적으로 필요한)
우리는 아래의 두 가지를 연습해야 합니다.
- 엔진을 구동하는 법을 배우는 것
- 입력 디자인: X는 뭘로 디자인할 거고, Y는 뭘로 디자인할 거냐.
이 두 개를 여러 번 연습해보시면 그 다음부터는 웬만한 소프트웨어는 그냥 만들 수 있습니다. 옛날하고 비교할 수 없을 만큼 머신러닝이 쉬워졌어요. 뭐.. 바이브 코딩만 봐도.....
분석적 방법에서 데이터 기반으로
시대적 맥락에서 이야기 해볼께요.
2010년의 의미
2010년도는 인공신경망이 머신러닝 분야에서 다시 부활하기 시작한 해입니다. 그 전까지는 통계적 머신러닝(e.g. Hidden Markov Model, CRF etc.)이 주류였어요.
분석적 방법 vs 데이터 기반 방법
2010년 이전에는 각 분야마다 전용 테크닉이 달랐습니다.
- 음성 인식 전용 테크닉
- 비전 처리 전용 테크닉
- 자연어 처리 전용 테크닉
서로 만나도 접점이 별로 없었습니다. 그러나 2010년대부터 딥러닝이 등장함녀서 머신러닝이라는 하나의 테크닉으로 모든 애플리케이션이 처리되기 시작했습니다.
앞서 언급했던 얼굴 인식, 음성 인식, 덧셈기 등의 기존에 분석적으로 해왔던 것들이 모두 데이터 기반으로 넘어가고 있습니다. 데이터만 있으면 누구나 만들 수 있게 되었기 때문에, 과거 천만 원-2천만 원 하던 음성 인식기가 이제 공짜입니다.
End-to-End Learning
2010 - 2014년 사이에 등장한 핵심 개념. 어떤 모듈의 입력이 들어가면 중간 과정을 신경 쓰지 않고 출력이 나온다는 겁니다.
알파고 이후의 변화도 눈에 띄죠.
https://www.youtube.com/watch?v=sHzW9TlTbfM
한국이 인공지능의 임팩트를 가장 빨리 체감한 나라일 겁니다. 현재 프로바둑 기사들도 기계(데이터 기반 의사결정)에게 배우고 있다고 해요.
'CS & AI > Welcome to AI' 카테고리의 다른 글
| 우리도 딥러닝 만들 수 있어요 (0) | 2026.04.25 |
|---|---|
| 이제는 컴퓨터도 하는 자기주도학습 (0) | 2026.04.25 |
| 인공신경망 (0) | 2026.04.17 |
| 아날로그에서 디지털로 (0) | 2026.04.13 |
| 에이전트의 시대 (0) | 2026.04.10 |
나의 성장 드라마
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!