중국어로 쓰인 수학책을 직접 읽고 번역해 보고 싶어 시작한 공부 기록이다. 이번 글에서는 고차원 데이터가 왜 문제가 되는지, 그리고 데이터 차원 축소가 어떤 생각에서 출발하는지를 살펴본다.
데이터는 벡터와 행렬로 표현된다
在诸多机器学习任务中,需要处理的数据通常可以表示为:
x₁, x₂, …, xₙ ∈ ℝᵈ
其中每个数据点 xᵢ(i=1,2,…,n)是一个 d 维列向量。这里的 d 称作数据的维度,而 n 是数据点的数量。
여러 머신러닝 문제에서 처리해야 할 데이터는 x₁, x₂, …, xₙ ∈ ℝᵈ로 나타낼 수 있다. 각 데이터 점 xᵢ는 d차원 열벡터이고, d는 데이터의 차원, n은 데이터 점의 개수이다.
사람 한 명을 키, 몸무게, 나이로 표현한다면 데이터 하나는 다음과 같은 3차원 벡터가 된다.
[ 키 ]
xᵢ = [ 몸무게 ] ∈ ℝ³
[ 나이 ]
여기서 차원은 데이터의 개수가 아니라 데이터 하나를 설명하는 특징의 개수이다. 학생이 100명이라도 각 학생을 세 가지 특징으로 표현한다면 d=3, n=100이다.
为方便处理,可将这些数据点按列排成一个矩阵:
X = [x₁ x₂ … xₙ] ∈ ℝ^(d×n)
계산하기 쉽도록 데이터 점들을 열 방향으로 배열하면 X=[x₁ x₂ … xₙ]이라는 데이터 행렬을 만들 수 있다. 이 행렬은 d개의 행과 n개의 열을 가지므로 X∈ℝ^(d×n)이다.
이 책에서는 데이터 하나를 열벡터로 표현하므로 행렬의 열 하나가 표본 하나에 해당한다. 머신러닝 책이나 프로그램에 따라 표본을 행 방향으로 놓기도 하므로, 수식을 읽을 때는 데이터 행렬의 모양을 먼저 확인하는 습관이 필요하다.
d = 데이터 하나가 가진 특징의 수
n = 전체 데이터 점의 수
xᵢ = i번째 데이터 벡터
X = 모든 데이터 벡터를 모은 행렬
현실의 데이터는 매우 높은 차원을 가진다
在处理源于真实世界的数据(如语音、图像、文本等)时,数据的维度 d 往往非常高。例如,一张分辨率仅为 640×480 的三通道彩色图像,其维度就高达:
d = 640 × 480 × 3 = 921,600
음성, 이미지, 텍스트처럼 현실 세계에서 얻은 데이터를 처리할 때는 데이터의 차원 d가 매우 높은 경우가 많다. 예를 들어 해상도가 640×480인 3채널 컬러 이미지 한 장은 921,600차원의 데이터가 된다.
컬러 이미지는 각 픽셀마다 빨강, 초록, 파랑을 나타내는 RGB 값 세 개를 가진다. 사진 한 장이 컴퓨터에는 921,600개의 수로 구성된 하나의 점으로 들어가는 셈이다.
고차원에서 시작되는 차원의 저주
过高的维度会引发一系列问题,这些问题统称为“维度灾难”。
- 引发 (yǐnfā): 어떤 현상이나 문제를 일으키다
- 统称 (tǒngchēng): 여러 대상을 하나의 이름으로 총칭하다
지나치게 높은 차원은 여러 가지 문제를 일으키며, 이러한 문제를 통틀어 차원의 저주라고 한다.
차원이 커지면 더 많은 정보를 표현할 수 있지만, 그 대가로 계산량이 증가하고 데이터가 희소해지며 거리의 의미도 약해진다. 저차원 공간에서 자연스럽게 통하던 우리의 기하학적 직관이 고차원에서는 제대로 작동하지 않는 것이다.
许多机器学习算法的计算复杂度是数据维度 d 的高次多项式。因此,随着维度的增加,算法的计算开销和时间成本会急剧上升,使得模型训练和数据分析变得异常困难。
- 急剧 (jíjù): 변화가 매우 빠르고 급격하다
많은 머신러닝 알고리즘의 계산 복잡도는 데이터 차원 d에 대한 고차 다항식이다. 따라서 차원이 증가하면 연산 비용과 시간이 급격하게 늘어나 모델 학습과 데이터 분석이 매우 어려워진다.
예를 들어 계산량이 O(d²)인 알고리즘에서 차원이 100에서 1,000으로 10배 증가하면 계산량은 약 100배 증가한다. 계산량이 O(d³)이라면 약 1,000배 증가한다. 저장해야 할 값과 중간 계산 결과도 많아지므로 메모리 사용량까지 함께 커진다.
공간은 넓어지고 데이터는 희소해진다
高维空间具有巨大的体积。要在这样的空间中有效地进行学习,例如准确估计数据分布,就需要海量的数据点来覆盖其中所有可能的取值区域。然而,在现实应用中,数据集的规模往往是有限的。
- 覆盖 (fùgài): 일정한 범위나 영역을 덮다
고차원 공간은 매우 큰 부피를 가진다. 이러한 공간에서 데이터 분포를 정확히 추정하려면 가능한 값의 영역을 덮을 수 있을 만큼 엄청난 수의 데이터 점이 필요하지만, 현실의 데이터 수는 대개 한정되어 있다.
각 차원을 10개의 구간으로만 나눈다고 해도 전체 공간을 채우는 데 필요한 칸의 수는 10ᵈ개가 된다.
1차원 → 10개
2차원 → 100개
3차원 → 1,000개
10차원 → 10,000,000,000개
차원이 하나씩 늘어날 때마다 가능한 영역의 수는 곱셈으로 증가한다. 데이터의 개수가 같은 속도로 증가하지 않으면 넓어진 공간에 데이터 점이 드문드문 놓이게 된다. 이것이 고차원 데이터의 희소성이다.
假设我们希望数据点的间距不超过 0.02。在半径为 0.5 的一维空间(单位区间)中,仅需约 50 个均匀分布的点即可满足要求。但在半径为 0.5 的二维空间(圆盘)中,则至少需要 2,500 个点才能达到相似的覆盖密度。如果依然只用 50 个点采样,数据将变得极其稀疏,无法有效反映圆盘的结构特征。
- 稀疏 (xīshū): 분포가 성기고 드물다
데이터 점 사이의 간격을 0.02 이하로 유지한다고 하자. 길이가 1인 1차원 구간에서는 약 50개의 점을 균일하게 놓으면 되지만, 반지름이 0.5인 2차원 원판에서 비슷한 밀도를 유지하려면 적어도 약 2,500개의 점이 필요하다. 2차원에서도 50개의 점만 사용한다면 데이터가 지나치게 희소해져 원판의 구조를 제대로 보여 주지 못한다.
원문의 계산은 큰 원판의 넓이를 각 데이터 점이 담당하는 작은 영역의 넓이로 나누어 필요한 점의 수를 직관적으로 추정한 것이다.
πR² / πr² = (R/r)² = 2,500
정확한 원 채우기 문제에서는 경계와 배치 방식까지 고려해야 하지만, 여기서 중요한 것은 구체적인 숫자가 아니다. 한 차원에서 약 50개의 점이 필요했다면 2차원에서는 약 50², 3차원에서는 약 50³개의 점이 필요하다는 식으로 표본 수가 폭발적으로 증가한다는 사실이 핵심이다.
고차원에서는 거리의 의미가 흐려진다
作为数据稀疏性的直接后果,许多依赖距离度量的算法,如 k-近邻、支持向量机等,在高维空间中的性能会显著下降。这是因为随着维度的增加,任意两点之间的距离会变得越来越接近并趋于一致。
- 趋于 (qūyú): 점차 어떤 상태로 향하다
데이터 희소성의 직접적인 결과로, k-최근접 이웃이나 서포트 벡터 머신처럼 거리와 공간의 기하학적 관계를 이용하는 알고리즘은 고차원에서 성능이 크게 떨어질 수 있다. 차원이 증가하면 임의의 두 점 사이의 거리가 점점 비슷해지는 경향이 있기 때문이다.
저차원에서는 가장 가까운 점과 가장 먼 점의 차이가 비교적 분명하다. 하지만 고차원에서는 최근접 거리와 최장 거리의 상대적인 차이가 작아질 수 있다. 이를 거리 집중이라고 한다. 모든 데이터가 서로 비슷한 거리에 있다면 “이 점과 가까운 이웃”이라는 표현의 구별력이 약해진다.
高维空间中的点倾向于分布在空间的“表面”或“边界”上,而表面或边界上的数据点之间的距离相对接近,导致基于距离的“远近”概念失去区分度。因此,这些算法难以捕捉数据内在的局部结构和规律。
- 捕捉 (bǔzhuō): 보이지 않는 특징이나 규칙을 포착하다
고차원 공간의 점들은 공간의 내부보다 표면이나 경계 부근에 분포하는 경향이 있다. 경계 부근의 데이터 점 사이에서는 거리가 서로 비슷해지므로, 거리에 기반한 “가깝다”와 “멀다”의 구분이 약해진다. 그 결과 알고리즘은 데이터에 숨어 있는 국소 구조와 규칙을 포착하기 어려워진다.
반지름이 1인 d차원 구에서 반지름이 1−ε인 안쪽 구가 차지하는 부피의 비율은 (1−ε)ᵈ이다. d가 커질수록 이 값은 빠르게 0에 가까워진다. 다시 말해 고차원에서는 전체 부피의 대부분이 바깥쪽의 얇은 껍질에 몰린다.
0.9¹⁰ ≈ 0.349
0.9¹⁰⁰ ≈ 0.0000266
100차원에서는 반지름 0.9 안쪽의 부피가 전체의 약 0.00266%에 불과하다. 고차원 공간이 우리가 익숙한 2차원이나 3차원 공간과 얼마나 다른지를 보여 주는 예다.
고차원 데이터 안에는 저차원 구조가 숨어 있다
值得注意的是,尽管真实世界的数据以高维形式存在,但其内在结构往往由少数几个潜在因素决定。
주목할 점은 현실 세계의 데이터가 고차원의 형태로 존재하더라도, 그 내재 구조는 흔히 소수의 잠재 요인에 의해 결정된다는 것이다.
얼굴 이미지를 생각해 보자. 이미지 한 장은 수십만 개의 픽셀 값으로 표현되지만, 실제 모습의 변화는 사람의 표정, 얼굴 방향, 조명의 밝기와 방향, 카메라와의 거리 같은 비교적 적은 수의 요인으로 설명할 수 있다.
관측된 데이터: 수십만 개의 픽셀 값
잠재 요인: 표정, 자세, 조명, 거리 등
즉, 데이터가 놓여 있는 공간의 차원은 매우 높지만 그 데이터를 만들어 내는 원인은 훨씬 적을 수 있다. 이러한 숨은 원인을 중국어로 潜在因素, 한국어로 잠재 요인이라고 한다.
这意味着数据点实际上大致分布在一个嵌入高维空间的低维流形上,这在机器学习中被称为流形假设。这个低维流形的维度被称为数据的内在维度。
- 嵌入 (qiànrù): 어떤 공간이나 구조 안에 들어가다
이는 데이터 점이 실제로는 고차원 공간에 들어 있는 저차원 다양체 위에 대략적으로 분포한다는 뜻이다. 머신러닝에서는 이를 다양체 가설이라고 하며, 이 저차원 다양체의 차원을 데이터의 내재 차원이라고 한다.
고차원 공간 전체에 데이터가 아무렇게나 흩어져 있는 것이 아니라, 특정한 제약을 만족하는 얇고 구부러진 저차원 구조 위에 모여 있다는 생각이다. 관측 공간의 차원이 d이고 실제 구조의 차원이 k라면 보통 k≪d라고 기대한다.
관측 차원 d
내재 차원 k
k ≪ d
다양체는 무엇인가?
流形是指一个在每个点附近都局部地近似于欧几里得空间,如平面或直线的几何对象。例如球面,其整体是一个嵌入三维空间的二维曲面,但在任何一个足够小的区域内,它都近似于一个平坦的二维平面。
다양체는 각 점의 주변을 아주 작게 보았을 때 직선이나 평면 같은 유클리드 공간으로 근사할 수 있는 기하학적 대상이다. 구면은 전체적으로 3차원 공간 안에 들어 있는 휘어진 2차원 곡면이지만, 충분히 작은 영역만 보면 평평한 2차원 평면과 비슷하다.
지구 표면을 떠올리면 이해하기 쉽다. 지구 전체는 둥글지만 우리가 서 있는 좁은 지역은 거의 평면처럼 느껴진다. 지구 표면 위의 위치는 위도와 경도라는 두 좌표로 나타낼 수 있으므로, 지구 표면은 3차원 공간에 들어 있는 2차원 다양체의 한 예다.
在机器学习中,这意味着尽管数据点位于高维空间,但它们并非任意分布,而是“附着”在一个低维度的、可能弯曲或折叠的“曲面”上,这个“曲面”就是数据所在的流形。
- 附着 (fùzhuó): 어떤 표면이나 대상에 붙어 있다
- 折叠 (zhédié): 접히다
머신러닝에서 이는 데이터 점이 고차원 공간에 있더라도 아무렇게나 분포하는 것이 아니라, 휘거나 접혀 있을 수 있는 저차원의 곡면에 붙어 있다는 뜻이다. 이 곡면이 바로 데이터가 놓여 있는 다양체이다.
대표적인 예가 회전하는 물체의 이미지다. 이미지 자체는 수많은 픽셀로 이루어진 고차원 벡터이지만, 물체가 회전하는 각도 하나만 변한다면 모든 이미지는 사실상 하나의 변수로 설명할 수 있다. 이때 이미지들은 고차원 공간 속에 놓인 1차원 곡선에 가까운 구조를 형성한다.
다만 다양체 가설은 모든 데이터에 무조건 성립하는 법칙이 아니라, 데이터를 설명하기 위해 두는 가정이다. 데이터가 정말로 저차원 구조를 가진다면 차원 축소가 잘 작동하지만, 그렇지 않다면 차원을 줄이는 과정에서 중요한 정보가 사라질 수 있다.
데이터 차원 축소의 정의
基于流形假设,我们考虑构造一个映射,将数据从高维空间映射到这个低维流形上,这称为数据降维。
다양체 가설을 바탕으로 고차원 공간의 데이터를 저차원 다양체로 보내는 사상을 생각할 수 있는데, 이를 데이터 차원 축소라고 한다.
수학에서 사상은 한 공간의 원소를 다른 공간의 원소로 대응시키는 규칙이다. 여기서는 d차원 데이터 x를 더 낮은 k차원 표현 z로 바꾸는 함수가 된다.
x ∈ ℝᵈ ──f──▶ z = f(x) ∈ ℝᵏ
k < d
通过数据降维,我们可以在最大限度保留关键信息的前提下,将数据从原始的高维空间映射到一个更低维度的空间。
데이터 차원 축소를 이용하면 핵심 정보를 최대한 보존하면서 데이터를 원래의 고차원 공간에서 더 낮은 차원의 공간으로 옮길 수 있다.
차원 축소는 무조건 차원을 작게 만드는 일이 아니다. 데이터의 모든 수치를 그대로 보존할 수는 없으므로, 어떤 정보가 중요하고 어떤 변화가 중복되거나 잡음에 해당하는지를 판단해야 한다. 좋은 저차원 표현은 원본 데이터의 주요 패턴을 유지하면서 계산과 분석은 더 쉽게 만든다.
这不仅能有效揭示数据生成过程中所依赖的低维潜在结构或约束,还能显著缓解“维度灾难”带来的种种困难。
- 揭示 (jiēshì): 감춰진 사실이나 구조를 드러내다
- 缓解 (huǎnjiě): 문제나 어려움의 정도를 완화하다
이는 데이터 생성 과정이 의존하는 저차원의 잠재 구조나 제약을 효과적으로 드러낼 뿐만 아니라, 차원의 저주가 일으키는 여러 어려움도 크게 완화한다.
차원을 줄이면 연산해야 할 수가 감소하고, 같은 수의 데이터가 더 작은 공간에 표현되므로 희소성도 줄어든다. 불필요한 특징과 잡음을 제거하면 데이터 사이의 유사성이나 군집 구조가 더 뚜렷해질 수도 있다. 또한 2차원이나 3차원으로 축소하면 사람이 직접 데이터를 시각화해 살펴볼 수 있다.
降维是指将高维数据映射到一个较低维度空间——理想情况下,该空间的维度应接近数据的内在维度——的过程,旨在使低维表示能够最大程度地保留原始数据的主要信息、结构或模式。
- 旨在 (zhǐzài): 어떤 목표를 이루는 데 목적을 두다
차원 축소란 고차원 데이터를 더 낮은 차원의 공간으로 보내는 과정이다. 이상적으로는 그 공간의 차원이 데이터의 내재 차원에 가까워야 하며, 저차원 표현이 원본 데이터의 주요 정보, 구조 또는 패턴을 최대한 보존하는 것을 목표로 한다.
차원을 너무 조금 줄이면 계산상의 이득이 작고, 너무 많이 줄이면 중요한 정보까지 잃을 수 있다. 따라서 적절한 목표 차원 k를 선택하는 문제도 차원 축소에서 중요하다.
形式上,该过程可以看作一个函数:
f: ℝᵈ → ℝᵏ, k < d
형식적으로 차원 축소는 d차원 실수 공간에서 k차원 실수 공간으로 가는 함수 f로 볼 수 있으며, 이때 k는 d보다 작다.
f가 선형 함수라면 행렬 곱을 이용하여 z=Wᵀx처럼 나타낼 수 있다. 반대로 f가 곡선이나 복잡한 변형을 표현한다면 비선형 차원 축소가 된다. 어떤 함수를 선택하느냐에 따라 보존되는 데이터 구조도 달라진다.
차원 축소는 데이터 구조에 대한 가정에서 시작한다
实现数据降维的核心在于对数据内在结构做出合理的“假设(或限定)”。
데이터 차원 축소를 구현하는 핵심은 데이터의 내재 구조에 대해 합리적인 가정 또는 제한을 두는 데 있다.
아무런 가정 없이 고차원 데이터를 저차원으로 완벽하게 옮길 수는 없다. 차원을 줄이면 원본의 일부 정보가 사라질 수밖에 없기 때문이다. 따라서 차원 축소 알고리즘은 “이 데이터에서 보존해야 할 구조는 무엇인가?”라는 질문에 각기 다른 방식으로 답한다.
这些假设旨在捕捉高维数据中存在的相关性模式,而这些模式正是数据由少数潜在因素驱动的具体体现。
- 驱动 (qūdòng): 어떤 현상이나 변화를 일으켜 움직이게 하다
이러한 가정은 고차원 데이터 안에 존재하는 상관관계의 패턴을 포착하기 위한 것이며, 그 패턴은 데이터가 소수의 잠재 요인에 의해 만들어진다는 사실이 구체적으로 드러난 것이다.
예를 들어 이미지에서 인접한 픽셀은 완전히 독립적으로 변하지 않는다. 같은 물체에 속한 픽셀은 밝기, 색, 윤곽 같은 공통 요인의 영향을 받는다. 이런 상관관계가 있기 때문에 수십만 개의 픽셀 값을 더 적은 수의 특징으로 압축할 가능성이 생긴다.
因此,任何降维方法的有效性,根本上取决于其所依赖的假设是否与数据的真实结构相契合。这些假设不仅指导着算法的设计,也决定了其性能的上限。
- 契合 (qìhé): 서로 잘 들어맞거나 부합하다
따라서 어떤 차원 축소 방법이 효과적인지는 그 방법이 의존하는 가정이 데이터의 실제 구조와 맞는지에 근본적으로 달려 있다. 이러한 가정은 알고리즘의 설계 방향을 정할 뿐만 아니라 성능의 한계도 결정한다.
데이터가 거의 평면에 가깝게 놓여 있다면 선형 차원 축소가 잘 작동할 수 있다. 하지만 데이터가 심하게 휘거나 접힌 곡면 위에 있다면 하나의 평면으로 펼치는 선형 방법만으로는 구조를 충분히 보존하기 어렵다. 결국 모든 데이터에 항상 가장 좋은 차원 축소 방법은 없으며, 데이터의 구조와 목적에 맞는 방법을 선택해야 한다.
비선형 방법과 선형 방법
尽管许多现代机器学习方法允许我们对高维数据的相关性模式进行非线性假设,例如核主成分分析和自编码器等,但在许多实际应用中,线性假设往往足以揭示数据的主要特征,并且具有更好的可解释性。
커널 주성분 분석과 오토인코더 같은 현대 머신러닝 방법은 고차원 데이터의 상관관계 패턴에 비선형 가정을 적용할 수 있다. 그러나 많은 실제 문제에서는 선형 가정만으로도 데이터의 주요 특징을 충분히 드러낼 수 있으며, 해석 가능성도 더 좋다.
비선형 방법은 휘어지고 접힌 복잡한 데이터 구조를 표현할 수 있다는 장점이 있다. 하지만 모델이 복잡해질수록 어떤 원리로 저차원 표현이 만들어졌는지 설명하기 어려워질 수 있다.
선형 방법은 데이터를 어떤 방향으로 투영했는지 행렬과 벡터로 명확히 나타낼 수 있다. 각 축이 원래 특징과 어떻게 연결되는지 살펴보기도 비교적 쉽다. 데이터의 주요 변화가 선형적인 상관관계로 충분히 설명된다면 복잡한 비선형 모델을 사용하지 않아도 좋은 결과를 얻을 수 있다.
此外,基于线性假设的相关算法通常具有更低的计算复杂度。
또한 선형 가정에 기반한 알고리즘은 일반적으로 계산 복잡도가 더 낮다.
행렬 곱, 고유값 분해, 특이값 분해처럼 잘 연구된 선형대수 도구를 이용할 수 있기 때문이다. 계산이 비교적 단순하고 결과를 설명하기도 쉬워서, 선형 차원 축소는 데이터 분석의 출발점으로 널리 사용된다.
이제 다음 단계에서는 데이터가 저차원의 선형 부분공간에 가깝게 놓여 있다고 가정하고, 이를 저랭크 근사와 주성분 분석으로 어떻게 찾는지 살펴보게 된다.
글에 나온 중국어 수학 용어
- 数据点 (shùjùdiǎn): 데이터 점, 표본 — 벡터로 표현된 데이터 하나
- 数据矩阵 (shùjù jǔzhèn): 데이터 행렬 — 데이터 벡터들을 모은 행렬
- 维度 (wéidù): 차원 — 데이터 하나가 가진 특징의 수
- 列向量 (liè xiàngliàng): 열벡터 — 성분을 세로로 배열한 벡터
- 高维空间 (gāowéi kōngjiān): 고차원 공간
- 维度灾难 (wéidù zāinàn): 차원의 저주
- 数据稀疏性 (shùjù xīshūxìng): 데이터 희소성
- 距离度量 (jùlí dùliàng): 거리 측정
- 潜在因素 (qiánzài yīnsù): 잠재 요인 — 관측 데이터를 만들어 내는 숨은 요인
- 流形 (liúxíng): 다양체 — 국소적으로 직선이나 평면과 비슷한 공간
- 流形假设 (liúxíng jiǎshè): 다양체 가설
- 内在维度 (nèizài wéidù): 내재 차원
- 映射 (yìngshè): 사상, 매핑
- 数据降维 (shùjù jiàngwéi): 데이터 차원 축소
- 相关性模式 (xiāngguānxìng móshì): 상관관계 패턴
- 线性假设 (xiànxìng jiǎshè): 선형 가정
- 非线性假设 (fēixiànxìng jiǎshè): 비선형 가정
- 核主成分分析 (hé zhǔchéngfèn fēnxī): 커널 주성분 분석
- 自编码器 (zì biānmǎqì): 오토인코더
- 低秩近似 (dī zhì jìnsì): 저랭크 근사
- 主成分分析 (zhǔchéngfèn fēnxī): 주성분 분석
'人工智能数学方法 > 1. 数据降维的线性方法 데이터 차원 축소의 선형 방법' 카테고리의 다른 글
| 1.3 分布语义学与潜在语义分析,1.4 协同过滤与低秩矩阵补全 분포 의미론과 LSA, 협업 필터링과 행렬 보관 (0) | 2026.08.30 |
|---|