오토인코더 임베딩 —
압축하면 본질만 남는다
20개 숫자를 4개로 줄였는데 검색이 더 정확해질 수 있는 이유는 무엇인가. 좁은 병목과 복원 목표라는 설계만으로 잡음이 걸러지는 원리, 선형 오토인코더의 최적해가 PCA와 만나 신경망 훈련이 통째로 생략되는 반전, 그리고 이론의 기대와 다른 실측을 그대로 기록하는 연구 태도까지. 재구성 오차가 최소가 되는 사영 축을 직접 찾아보는 실습이 들어 있다.
784개의 숫자가 2개로 줄었는데, 오히려 더 잘 보였다
압축은 정보를 잃는 일이다. 그런데 잘 설계된 압축은 잡음을 잃고 본질을 남긴다. 이 모듈은 그 압축 기계를 금융 시계열에 적용한다.
몽타주 수준으로 줄여도 누구인지 알아본다
2006년 7월, 과학 저널 사이언스에 낯선 그림 하나가 실렸다. 0부터 9까지의 손글씨 숫자 이미지들이 2차원 평면 위에 숫자별로 가지런히 무리 지어 있는 그림이었다. 원본 이미지는 픽셀 784개, 즉 784차원의 데이터다. 그것을 신경망이 스스로 2개의 숫자로 압축했는데, 압축본이 오히려 "어떤 숫자인지"를 더 선명하게 드러냈다.
제프리 힌턴과 루슬란 살라쿠트디노프의 이 논문은 입력을 좁은 통로로 짜냈다가 다시 펼치는 신경망, 곧 오토인코더를 깊게 쌓는 방법을 보였고, 딥러닝 부활의 신호탄 중 하나로 지목되기도 한다. 핵심 발상은 단순하다 — 정보를 다 가지고 갈 수 없게 만들면, 무엇을 버릴지는 기계가 스스로 배운다. 그리고 버려지는 쪽은 대개 잡음이다.
이 발상을 우리 문제로 가져온다. k-NN 아날로그 모듈은 20일 수익률 조각을 그대로 비교해 닮은 과거를 찾았다. 이번 모듈은 그 검색기의 입력을 손질한다. 20개 숫자를 그대로 쓰는 대신, 잡음을 짜내고 본질만 남긴 4개 숫자의 요약본으로 바꾼 뒤 검색한다. 도구는 오토인코더라는 신경망인데, 놀랍게도 이 모듈에서는 신경망 훈련이 한 줄도 필요 없다. 그 이유가 이 모듈의 백미다.
"압축하면 본질만 남는다"는 직관은 일상에도 널려 있다. 고해상도 사진을 몽타주 수준으로 줄여도 누구인지 알아볼 수 있고, 긴 회의를 세 줄로 요약해도 결론은 살아남는다. 요약이라는 행위 자체가 "무엇이 중요한가"에 대한 판단을 강제하기 때문이다. 오토인코더가 특별한 것은 그 판단 기준을 사람이 정하지 않는다는 점이다. 복원이 잘 되게 하라는 목표 하나만 주면, 무엇을 남길지는 데이터가 결정한다.
생각해 볼 질문
20일 수익률 조각에서 "본질"이라 부를 만한 것은 무엇이고 "잡음"은 무엇일까. 이 모듈이 끝나면, 그 구분을 사람이 아니라 병목이 하게 만드는 방법을 답할 수 있어야 한다.
출처 Hinton, G. & Salakhutdinov, R. (2006). "Reducing the Dimensionality of Data with Neural Networks." Science 313(5786), 504–507. doi.org/10.1126/science.1127647
잡음이 거리를 지배한다
유클리드 거리는 20개 좌표의 차이를 전부 더한다. 좌표마다 낀 사소한 잡음이 쌓이면, 패턴이 아니라 잡음이 이웃을 고른다.
"진짜 닮은 조각" 대신 "잡음까지 우연히 닮은 조각"
k-NN 아날로그 모듈의 검색기는 20개 숫자(20일 수익률)로 이웃을 찾았다. 그런데 그 20개 숫자의 상당 부분은 의미 없는 잡음이다. 잡음이 낀 채로 거리를 재면, 정말 닮은 조각이 아니라 잡음까지 우연히 닮은 조각이 뽑히기도 한다.
잡음이 거리를 망가뜨리는 구조는 유클리드 거리의 정의 자체에 있다. 거리는 20개 좌표의 차이 제곱을 모두 더해서 만들어진다. 각 좌표에 낀 잡음은 하나하나는 사소해도, 20개가 쌓이면 거리의 상당 부분을 차지해 버린다. 진짜 패턴의 차이가 만드는 거리보다 잡음이 만드는 거리가 커지는 순간, k-NN은 패턴이 아니라 잡음을 보고 이웃을 고른다. 차원이 높을수록 이 문제는 심해진다 — 잡음이 낄 자리가 그만큼 많아지기 때문이다.
이것은 고차원 데이터의 일반적 병리인 차원의 저주의 한 단면이다. 차원이 커질수록 점들 사이의 거리는 "가장 가까운 이웃"과 "가장 먼 점"의 차이가 상대적으로 줄어드는 방향으로 뭉개진다. 좌표 하나하나가 조금씩 보태는 무의미한 변동이 합산되면서 거리라는 신호 자체가 흐려지는 것이다. 해법의 방향도 자연히 정해진다 — 거리를 재기 전에 의미 있는 좌표만 남기는 것. 이 모듈 전체가 그 "재기 전 손질"에 대한 이야기다.
잡음이 이웃 순위를 뒤집는 계산
조각 세 개로 확인한다. A와 B는 진짜 패턴이 완전히 같고 잡음의 차이만 좌표마다 0.5씩 있다. C는 A와 패턴 자체가 좌표마다 0.4씩 다르지만 잡음이 없다.
| 비교 쌍 | 차이의 정체 | 20차원 유클리드 거리 | 진짜 닮음 |
|---|---|---|---|
| A ↔ B | 패턴 동일, 잡음 차이만 좌표당 0.5 | \( \sqrt{20\times0.5^2}=\sqrt{5}\approx \) 2.24 | 완전히 닮음 |
| A ↔ C | 패턴 차이 좌표당 0.4, 잡음 없음 | \( \sqrt{20\times0.4^2}=\sqrt{3.2}\approx \) 1.79 | 덜 닮음 |
결과는 역전이다. 정말 닮은 B(거리 2.24)보다 덜 닮은 C(거리 1.79)가 더 가까운 이웃으로 뽑힌다. k-NN은 거리 순으로 이웃을 고르므로, 이 역전은 곧바로 잘못된 검색 결과가 된다. 잡음을 먼저 제거할 수 있다면 A–B 거리는 0에 가까워져 순위가 제자리를 찾는다. 문제는 "어느 부분이 잡음인지"를 미리 알 수 없다는 것 — 다음 절의 기계가 그 판별을 대신한다.
이 손계산의 요점은 잡음의 누적이다. 좌표 하나의 잡음 차이 0.5는 패턴 차이 0.4보다 조금 클 뿐이지만, 제곱해서 20번 더하면 5.0 대 3.2로 격차가 벌어진다. 반대로 차원을 20에서 4로 줄이면 잡음이 쌓일 자리도 5분의 1로 줄어든다. 압축이 검색을 돕는 산술적 이유가 여기에 있다. 물론 압축이 패턴 쪽 정보도 함께 깎는다면 이야기가 달라지는데, 그 손익계산은 §4에서 실측으로 확인한다.
모래시계 기계, 오토인코더
누구도 "잡음을 버려라"라고 가르치지 않는다. 병목의 자리가 부족하다는 설계 하나가 잡음을 자연히 버리게 만든다.
입력 20 → 병목 4 → 복원 20
오토인코더(autoencoder)는 입력을 압축했다가 복원하도록 훈련하는 신경망이다. 구조는 모래시계 모양 — 입력(20개 숫자)이 좁은 병목(4개 숫자)을 지나 다시 20개로 복원된다. 학습 목표는 단 하나, "복원이 입력과 최대한 같아지게 하라"이다.
병목이 잡음을 거르는 이유를 한 번 더 뜯어 보자. 잡음은 조각마다 제멋대로라서 여러 조각에 공통되는 규칙이 없다. 병목의 자리는 4칸뿐이므로, 전체 재구성 오차를 줄이려면 그 4칸에 "많은 조각에 두루 통하는 공통 구조"(추세, 굴곡, 반전 같은 패턴)를 담는 편이 남는 장사다. 어느 한 조각에만 있는 잡음을 담아 봐야 다른 조각의 복원에는 아무 도움이 안 되기 때문이다. 즉 누구도 "잡음을 버려라"라고 명시하지 않았는데, 좁은 병목 + 복원 목표라는 설계만으로 잡음이 자연히 버려진다.
비유하면 이렇다. 학급 전체의 시험 대비 요약 노트를 네 페이지로 제한하면, 특정 학생 한 명만 틀리는 문제의 풀이보다 모두에게 나오는 핵심 유형이 실리게 된다. 지면 제한이 곧 중요도 필터다.
이 모듈의 네 단어
네 용어가 이 모듈의 전부다. 구조(오토인코더·병목), 출력(임베딩), 목표(재구성 오차).
"병목은 좁을수록 좋다?"
압축을 많이 할수록 잡음이 더 잘 걸러진다는 생각은 절반만 맞다. 지나친 압축은 잡음과 함께 신호까지 깎아 낸다.
"압축을 많이 할수록 잡음이 더 잘 걸러지니, 병목은 좁을수록 좋다."
병목이 지나치게 좁으면(예: 20차원 → 1차원) 잡음뿐 아니라 신호까지 깎여 나간다. 반대로 병목이 거의 안 좁으면(20차원 → 19차원) 잡음이 그대로 통과해 압축의 의미가 없다. 병목 폭은 "신호는 살리고 잡음은 버리는" 중간 지점을 찾는 조율 대상이다.
실무에서는 병목 폭을 고를 때 PCA의 설명분산 비율(예: 누적 80~90%)을 참고하는 경우가 많다. "몇 차원까지가 신호이고 어디부터가 잡음인가"에 대한 데이터 자신의 답을 먼저 들어 보는 셈이다. 다음 절에서 보듯 선형 오토인코더와 PCA는 같은 문제를 풀고 있으므로, 이 참고는 우연이 아니라 필연이다.
선형 오토인코더 = PCA
굽은 길(경사하강법 훈련)로 가나 곧은 길(고유벡터 계산)로 가나 도착지가 같다. 그렇다면 빠르고 정확한 곧은 길을 택한다.
신경망 훈련이 한 줄도 필요 없는 이유
반가운 수학적 사실 하나. 비선형 활성화가 없는 가장 단순한 형태, 즉 선형 오토인코더의 최적해는 PCA가 찾는 주성분 부분공간과 일치한다(Baldi & Hornik, 1989). PCA 잔차 반전 모듈에서 만난 PCA를 그대로 다시 쓰면, 신경망 훈련 없이도 오토인코더의 효과를 얻을 수 있다는 뜻이다.
직관적으로 보면 당연한 결과이기도 하다. 선형 오토인코더의 과제는 "20차원 점들을 4차원 평면에 사영했다가 되돌렸을 때 오차가 최소가 되는 평면을 찾아라"인데, 이것은 분산을 가장 많이 보존하는 저차원 평면을 찾는다는 PCA의 정의와 같은 문제이기 때문이다. 문제가 같으면 답도 같다.
- 20일 수익률 조각들을 모은다 — k-NN 아날로그 모듈과 동일한 재료
- PCA로 4차원으로 압축한다(차원 80% 감축). 이것이 곧 선형 오토인코더의 최적 임베딩이다
- 그 4차원 공간에서 이전과 같은 k-NN 검색을 돌린다 — 바뀐 것은 모델이 아니라 입력뿐이다
Baldi와 Hornik의 1989년 결과를 정확히 말하면 이렇다. 선형 오토인코더의 재구성 오차 함수에는 나쁜 국소 최솟값이 없고, 전역 최적해에서 병목이 하는 일은 상위 주성분들이 펼치는 부분공간으로의 사영과 일치한다. 병목의 각 유닛이 각 주성분과 하나씩 정렬된다는 뜻은 아니고(부분공간 안에서의 회전은 자유다), "어느 4차원 평면에 담는가"가 PCA와 같다는 뜻이다. k-NN처럼 그 공간 안의 거리만 쓰는 용도라면 이 차이는 결과에 영향을 주지 않는다.
이 정리는 "은닉층에 비선형 활성화가 없는" 경우에 한한다. ReLU 같은 활성화를 넣은 비선형 오토인코더는 굽은 곡면 위에 놓인 데이터도 압축할 수 있어 PCA보다 표현력이 크다. 여기서 여러 변형이 갈라져 나왔다. 입력에 일부러 잡음을 넣고 원본을 복원하게 하는 잡음제거 오토인코더(denoising autoencoder), 병목을 확률분포로 만든 변분 오토인코더(VAE)가 대표적이며, 후자는 생성 모델의 뿌리 중 하나가 되었다.
금융 응용도 이 갈래에서 나온다. 수익률 곡면의 비선형 구조 압축, 그리고 이상거래 탐지 — 정상 거래만으로 학습한 오토인코더는 이상 거래를 잘 복원하지 못하므로, 재구성 오차가 큰 거래를 이상 후보로 걸러 낼 수 있다. 다만 표현력이 커질수록 과적합 위험도 커진다는 팩터 랭킹 모듈의 교훈은 여기서도 그대로 적용된다.
출처 Baldi, P. & Hornik, K. (1989). "Neural networks and principal component analysis: Learning from examples without local minima." Neural Networks 2(1), 53–58. doi.org/10.1016/0893-6080(89)90014-2 · Kingma, D. & Welling, M. (2014). "Auto-Encoding Variational Bayes." arXiv:1312.6114
병목 실험실
2차원 점들을 1차원 축에 사영했다가 복원한다. 재구성 오차가 최소가 되는 축이 어디인지 직접 찾는다 — 그곳이 주성분 방향이다.
오차가 최소가 되는 축 = 주성분 방향
축을 돌려 재구성 오차를 최소로 만들어라
목표 — 2차원 데이터(장축이 30° 방향으로 기울어진 타원 배치, 점 24개)를 1차원 축으로 사영·복원할 때, 재구성 오차가 최소가 되는 축의 각도가 데이터가 길게 퍼진 방향(주성분)과 일치함을 확인한다. 이것이 축소판 선형 오토인코더이고, 그 최적해가 곧 PCA다.
조작 안내 — 슬라이더로 축을 0°에서 180°까지 돌리며 브릭색 오차 선분의 총량과 아래 오차 곡선을 본다. 관찰 포인트 — ① 오차는 30°에서 최소(오차제곱합 12.0, 분산의 90% 보존)가 된다. 30°는 타원이 길게 퍼진 장축 방향, 즉 제1주성분이다. ② 최악은 그 직교 방향 120°(오차제곱합 108.0, 보존 10%) — 같은 1차원 병목이라도 어느 축에 담는가에 따라 보존되는 정보가 9배 차이 난다. ③ 오차 곡선은 30° 근방에서 완만하다 — 축이 몇 도 어긋나도 손실은 완만하게 늘 뿐이며, 경사하강법 훈련이 이 최소점에 안착할 수 있는 이유(나쁜 국소 최솟값이 없는 매끈한 그릇 모양)를 눈으로 보는 셈이다.
이 데모의 숫자는 손으로 검산할 수 있다. 점들은 장축 반지름 3, 단축 반지름 1인 타원 위에 등간격으로 놓여 있다. 축이 장축과 각도 δ만큼 어긋날 때 오차제곱합은 \( E(\delta)=12\,(1+8\sin^2\delta) \)가 되어, δ=0(축 각도 30°)에서 최소 12.0, δ=90°에서 최대 108.0이다. 전체 분산(제곱합)은 120이므로 보존 비율은 각각 90%와 10% — 화면의 readout과 정확히 일치한다.
본편의 20차원 → 4차원 압축은 이 그림의 고차원판일 뿐이다. 축 하나를 고르는 대신 서로 직교하는 축 4개를 고르고, "오차 최소"라는 같은 기준이 그 4개를 상위 주성분으로 결정한다. 슬라이더를 돌려 최소점을 찾는 행위가 바로 선형 오토인코더의 훈련이 하는 일이고, PCA는 그 답을 계산 한 번으로 내놓는다.
결과와 정직한 비교
임베딩 검색도 심은 패턴을 잘 수확했다. 그런데 같은 데이터에서 원시 공간 k-NN이 약간 더 좋았다 — 이 실측을 그대로 기록한다.
압축이 진 날 — 5.44 대 6.98
이 플랫폼의 합성데이터 실험에서, 사이클 패턴을 심은 양성 대조군의 OOS 샤프는 임베딩 공간 검색이 5.44로 높은 수준을 유지했다. 그런데 같은 데이터에서 원시 공간 k-NN의 6.98이 약간 더 좋았다. 이론상 압축이 잡음을 걸러 주는데, 왜 원시가 이겼을까.
| 검색 공간 | 차원 | OOS 샤프 (합성 사이클 대조군) | 해석 |
|---|---|---|---|
| 원시 공간 (20일 수익률 그대로) | 20 | 6.98 | 심은 패턴을 그대로 수확 |
| 임베딩 공간 (PCA 4차원) | 4 | 5.44 | 패턴 수확은 유지, 압축 손실만큼 소폭 열세 |
답은 데이터의 성질에 있다. 이 대조군의 사이클은 신호가 강하고 잡음이 약하다. 걸러 낼 잡음이 별로 없으니 압축의 이득은 작고, 압축하며 버린 정보의 손실이 상대적으로 커진 것이다. 압축의 진가는 잡음이 지배하는 실제 데이터에서 발휘될 것으로 기대되지만, 그것은 실데이터로 검증할 몫이다. 이론적 기대와 실측이 다를 때 실측을 있는 그대로 기록하는 것 — 그것이 이 강의가 가르치려는 연구 태도의 핵심이다.
압축의 손익은 "버린 잡음의 이득 − 깎인 신호의 손실"로 어림할 수 있다. 이 대조군처럼 신호와 잡음의 비가 9:1인 데이터에서는 20→4 압축이 잡음의 대부분을 버려도 이득의 원천 자체가 10%뿐이고, 압축 과정에서 신호가 조금이라도 깎이면 곧장 적자가 난다. 반대로 실제 시장처럼 신호 대 잡음 비가 1:9에 가까운 데이터라면 버릴 잡음이 90%나 되므로, 신호를 다소 잃더라도 압축이 흑자가 될 여지가 크다. 같은 기법이라도 데이터의 신호 대 잡음 비에 따라 성패가 갈린다는 것이 이 어림셈의 요점이다.
이 결과 앞에서 빠지기 쉬운 두 가지
"임베딩이 졌다"는 한 줄에서 정반대 방향의 잘못된 결론 두 개가 나올 수 있다. 둘 다 피해야 한다.
올바른 태도는 세 단계다. 두 숫자를 모두 보고하고, 차이가 난 이유에 대한 가설(신호 대 잡음 비)을 세우고, 그 가설을 검증할 다음 실험(실데이터)을 설계하는 것. 결과가 기대와 다를 때야말로 연구가 시작되는 지점이다.
표현학습 — 모델 대신 입력을 좋게 만든다
예측 모델을 갈아치우지 않고 입력의 표현만 바꿔도 성능이 달라진다. 현대 딥러닝 성공의 절반이 이 발상에서 나왔다.
재료 손질을 잘하면 요리가 쉬워진다
표현학습(representation learning)은 원시 데이터를 과제에 유리한 형태(표현)로 바꾸는 법 자체를 학습하는 것이다. 예측 모델을 더 좋게 만드는 대신, 모델에 들어가는 입력의 표현을 더 좋게 만드는 전략이다.
- 언어 모델은 단어를 문자 그대로가 아니라 수백 차원의 임베딩 벡터로 바꿔 다룬다. 그 공간에서 "왕 − 남자 + 여자 ≈ 여왕" 같은 의미 연산이 성립한다는 것이 널리 알려져 있다
- 이미지 인식 모델의 앞부분 층들도 결국 "픽셀을 과제에 유리한 표현으로 바꾸는" 인코더다
- 이 모듈이 한 일도 같은 구조다 — 20일 수익률이라는 원시 표현을, 유사도 검색이라는 과제에 (원리상) 더 유리한 4차원 표현으로 바꿨다
모델을 갈아치우지 않고 표현만 바꿔도 성능이 달라진다는 사실 자체가, "무엇을 입력할 것인가"가 "어떤 모델을 쓸 것인가" 못지않게 중요하다는 증거다. 다음 모듈(CNN 차트패턴)에서는 표현을 사람이 설계하는 대신 신경망의 층들이 단계적으로 만들어 가는 모습을 본다.
"좋은 표현이란 무엇인가"를 정면으로 다룬 개관 논문(Bengio, Courville & Vincent, 2013)은 좋은 표현의 조건으로 설명 요인의 분리, 위계적 구성, 과제 간 재사용성 등을 꼽는다. 금융 데이터에 대입하면 이런 질문이 된다 — 수익률 조각의 "설명 요인"은 무엇인가? 추세, 변동성 수준, 반전 성향 같은 것들이 후보다. PCA 임베딩의 각 성분이 그런 요인과 정확히 일치한다는 보장은 없지만, 방향은 같다. 원시 숫자의 나열이 아니라 요인의 좌표로 데이터를 다루려는 시도다.
주의할 균형 한 줄. 표현학습이 만능은 아니다 — §4의 실측이 보여 주듯, 표현을 바꾸는 비용(정보 손실)이 이득(잡음 제거)을 넘는 데이터도 있다. "항상 임베딩부터"가 아니라 "원시와 임베딩을 같은 시험대에 올려 비교"가 이 강의의 방식이다.
출처 Bengio, Y., Courville, A. & Vincent, P. (2013). "Representation Learning: A Review and New Perspectives." IEEE TPAMI 35(8). arXiv:1206.5538 · Mikolov, T. et al. (2013). "Efficient Estimation of Word Representations in Vector Space." arXiv:1301.3781
퀴즈와 정리
답을 보기 전에 먼저 스스로 답해 본다. 전부 이 모듈 안에서 다룬 내용이다.
병목이 넓으면(예: 20차원 → 19차원) 왜 잡음 제거 효과가 없는가?
이 모듈의 구현이 신경망 훈련 없이 가능했던 이유는?
오토인코더에게 "잡음을 버려라"라고 명시적으로 가르치지 않았는데도 잡음이 걸러지는 이유는?
합성 대조군 실험에서 원시 k-NN(샤프 6.98)이 임베딩 k-NN(5.44)을 이긴 결과의 올바른 해석은?
임베딩이 이길 때까지 병목 폭과 k를 계속 바꿔 가장 좋은 결과만 보고하면 무엇이 문제인가?
정상 거래만으로 학습한 오토인코더가 이상거래 탐지에 쓰일 수 있는 원리는?
① 병목을 통과시키면 본질만 남는다 — 좁은 자리와 복원 목표라는 설계만으로 압축이 곧 잡음 제거가 된다.
② 선형 오토인코더 = PCA. 이론이 구현을 공짜로 준다 — 훈련 대신 계산으로 최적 임베딩을 얻는다.
③ 압축의 이득은 잡음이 많을수록 크다. 깨끗한 데이터에서는 원시 공간이 이길 수도 있고, 실측이 그렇게 나오면 그대로 기록한다.
④ 병목 폭은 조율 대상 — 너무 좁으면 신호까지 깎이고, 너무 넓으면 잡음이 통과한다.
⑤ 큰 그림은 표현학습이다. 모델이 아니라 입력의 표현을 좋게 만드는 전략이 현대 딥러닝 성공의 절반을 설명한다.
참고문헌
수치와 정리는 아래 원문 기준으로 서술했다. 링크는 공개 원문이 확실한 것만 달았다.
원리 · 고전
- Baldi, P. & Hornik, K. (1989). "Neural networks and principal component analysis: Learning from examples without local minima." Neural Networks 2(1), 53–58. doi.org/10.1016/0893-6080(89)90014-2 — 선형 오토인코더의 최적해가 주성분 부분공간 사영과 일치하며 나쁜 국소 최솟값이 없다는 증명.
- Hinton, G. & Salakhutdinov, R. (2006). "Reducing the Dimensionality of Data with Neural Networks." Science 313(5786), 504–507. doi.org/10.1126/science.1127647 — 깊은 오토인코더의 차원 축소, 도입부 장면의 논문.
- Bengio, Y., Courville, A. & Vincent, P. (2013). "Representation Learning: A Review and New Perspectives." IEEE Transactions on Pattern Analysis and Machine Intelligence 35(8). arXiv:1206.5538 — 표현학습 개관.
변형 · 응용
- Vincent, P., Larochelle, H., Bengio, Y. & Manzagol, P.-A. (2008). "Extracting and Composing Robust Features with Denoising Autoencoders." Proceedings of ICML 2008. — 잡음제거 오토인코더.
- Kingma, D. & Welling, M. (2014). "Auto-Encoding Variational Bayes." arXiv:1312.6114 — 변분 오토인코더(VAE).
- Mikolov, T., Chen, K., Corrado, G. & Dean, J. (2013). "Efficient Estimation of Word Representations in Vector Space." arXiv:1301.3781 — 단어 임베딩의 의미 연산("왕 − 남자 + 여자 ≈ 여왕") 관찰.
이 자료의 백테스트 수치(OOS 샤프 6.98 · 5.44)는 강의용 실험 플랫폼의 합성데이터(사이클 양성 대조군) 실측이며, 실제 투자 성과를 시사하지 않는다. 실습의 재구성 오차 수치는 해석적으로 검산된 값이다. 인용 원칙: 연도는 발표 기준, 1차 자료 확인이 어려운 서술은 "~로 알려져 있다"로, 해석은 "~로 지목되기도 한다"로 구분했다.