독립 성분 분석
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.
1. 개요
독립 성분 분석(ICA)은 관측된 데이터를 통계적으로 독립적인 성분으로 분해하는 계산 방법이다. 1980년대에 처음 소개되었으며, 잡음 제거, 특징 추출, 블라인드 신호 분리 등 다양한 분야에 적용된다. ICA는 데이터의 독립성을 최대화하는 변환을 찾아내며, 상호 정보 최소화, 비가우시안성 최대화 등의 방법을 사용한다. 선형, 비선형 모델이 존재하며, 잡음의 유무에 따라 모델이 구분된다. ICA는 뇌파(EEG) 데이터 분석, 얼굴 인식, 금융 데이터 분석 등 다양한 분야에 응용되며, 한국 사회에서는 음성 인식, 의료 영상 처리, 보안 분야 등에서 그 중요성이 부각되고 있다. 바이너리 ICA는 바이너리 형태의 데이터를 분석하는 ICA의 변형이다.
더 읽어볼만한 페이지
- 신호 추정 - 칼만 필터
칼만 필터는 잡음이 있는 측정값들을 이용하여 선형 동적 시스템의 상태를 추정하는 재귀 필터로, 예측과 보정 단계를 반복하며 항법 시스템, 레이더 추적, 컴퓨터 비전 등 다양한 분야에 응용된다. - 신호 추정 - SAMV
SAMV는 균일 선형 배열이 협대역 신호를 수신하는 상황에서 신호원 위치 추정 등에 사용되는 신호 처리 알고리즘으로, 2차 통계량 기반 파라미터 추정 방식을 사용하며 Gridless SAMV-SML, SAMV-0 등의 파생 알고리즘이 연구되고 MATLAB 오픈 소스 코드로 활용 가능하다. - 다변량 통계 - 비음수 행렬 분해
비음수 행렬 분해(NMF)는 음수가 아닌 두 행렬의 곱으로 행렬을 분해하는 차원 축소 기법으로, 데이터의 잠재적 구조 파악, 해석 용이성, 객체 인식에 유용한 특징 추출 등의 장점으로 텍스트 마이닝, 스펙트럼 데이터 분석, 생물정보학 등 다양한 분야에서 활용된다. - 다변량 통계 - 마할라노비스 거리
마할라노비스 거리는 확률 분포와 점 사이의 거리를 나타내는 척도로, 평균과 공분산 행렬을 사용하여 계산하며, 클러스터 분석, 통계적 분류, 이상치 탐지 등 다양한 분야에서 활용된다. - 차원 축소 - 특징 선택
특징 선택은 머신러닝에서 모델 성능 향상과 해석력 증진을 위해 데이터에서 가장 관련성 높은 특징들의 부분 집합을 선택하는 과정으로, 통계적 방법에서 시작하여 필터 방법, 래퍼 방법, 임베디드 방법 등 다양한 알고리즘과 메타휴리스틱 알고리즘을 활용한다. - 차원 축소 - 자기조직화 지도
자기조직화 지도(SOM)는 고차원 데이터를 저차원 공간으로 시각화하고 특징을 추출하기 위해 뇌의 자기 조직화 방식을 모방한 인공 신경망의 한 종류이다.
독립 성분 분석 | |
---|---|
개요 | |
유형 | 신호 처리 계산 방법 |
분야 | 차원 축소 |
상세 정보 | |
독립 성분 분석 데모 | 독립 성분 분석: 데모 |
참고 문헌 | Hyvärinen, Aapo (2013). "Independent component analysis: recent advances". Philosophical Transactions: Mathematical, Physical and Engineering Sciences. 371 (1984): 20110534. ISSN 1364-503X. JSTOR 41739975. Bibcode:2012RSPTA.37110534H. doi:10.1098/rsta.2011.0534. PMID 23277597. PMC 3538438. |
2. 역사적 배경
독립 성분 분석(ICA)의 개념은 1980년대 중반에 처음으로 그 틀이 잡혔다. 1984년 Jeanny Hérault와 Bernard Ans가 초기 연구를 통해 일반적인 틀을 소개했고,[18] 이후 1985년과 1986년에 Christian Jutten에 의해 더욱 발전되었다.[19][20][21] 1991년에는 Pierre Comon이 이를 개선하였으며,[22] 1994년에 발표된 그의 논문을 통해 ICA 개념이 학계에 널리 알려지게 되었다.[23]
독립 성분 분석(ICA)은 관측된 다변량 신호를 통계적으로 독립적인 잠재 변수인 독립 성분(Independent Components)으로 분리하는 것을 목표로 수학적으로 정의된다. 이는 관측된 신호 벡터 가 독립 성분 벡터 와 혼합 과정(주로 선형 변환 행렬 )을 통해 생성되었다는 가정() 하에, 로부터 를 추정하는 문제로 볼 수 있다.[5][6]
ICA 연구의 중요한 전환점은 1995년에 마련되었다. Tony Bell과 테리 세이노스키는 정보 최대화(Infomax) 원리에 기반한 빠르고 효율적인 ICA 알고리즘을 개발했다.[24] 이 Infomax 원리는 1987년 Ralph Linsker에 의해 처음 소개된 개념으로, Bell과 Sejnowski의 알고리즘 개발은 ICA의 실용적인 활용 가능성을 크게 높이는 계기가 되었다. 최대 우도(Maximum Likelihood, ML) 추정 방식과 정보 최대화 방식 사이의 연관성도 연구되었다.[24] 1998년에는 Jean-François Cardoso가 최대 우도 접근법에 대한 포괄적인 해설을 발표하기도 했다.[25]
이후 ICA를 수행하기 위한 다양한 알고리즘들이 개발되었다. 그중 Hyvärinen과 Oja가 개발한 FastICA 알고리즘은 산업계를 포함하여 널리 사용되는 대표적인 알고리즘이다.[26] FastICA는 네겐트로피를 비용 함수로 사용하는데, 이는 이미 1994년 Pierre Comon이 제안했던 개념이다.[23] 다른 예로는 좀 더 일반적인 접근법을 사용하는 블라인드 소스 분리(Blind Source Separation, BSS) 연구가 있다. BSS는 ICA의 독립성 가정을 완화하여 서로 통계적으로 종속적인 신호를 분리하는 문제까지 다룬다. 1999년에는 Sepp Hochreiter와 위르겐 슈미트후버가 정규화 기법을 활용하여 비선형 ICA 또는 소스 분리를 수행하는 방법을 제시했으며,[27] 이 방법은 분리하려는 독립 소스의 개수를 미리 알 필요가 없다는 장점이 있다.
3. 수학적 정의
이 목표를 달성하기 위해, ICA는 추정된 성분들의 통계적 독립성을 최대화하는 분리 변환(unmixing transformation) 를 찾는다 (). 성분 간의 독립성을 측정하는 척도로는 주로 비가우시안성(Non-Gaussianity) 측정이나 상호 정보량(Mutual Information) 최소화가 사용된다.[41] 중심 극한 정리에 따라, 독립적인 변수들의 합은 가우시안 분포에 가까워지는 경향이 있으므로, 비가우시안성을 측정하는 것은 독립성을 평가하는 효과적인 방법 중 하나이다.
ICA 모델은 신호 혼합 과정의 가정에 따라 크게 선형 ICA와 비선형 독립 성분 분석으로 나뉜다. 선형 ICA는 다시 잡음(noise)의 유무에 따라 잡음 없는 모델과 잡음 있는 모델로 세분화될 수 있다. 잡음 없는 모델은 잡음 있는 모델의 특수한 경우로 볼 수 있으며, 비선형 ICA는 이들과는 다른 접근 방식을 사용한다. 각 모델의 구체적인 수학적 정의와 가정은 하위 섹션에서 자세히 다룬다.
3. 1. 일반적인 정의
독립 성분 분석(ICA)은 다변량 신호를 통계적으로 독립적인 하위 성분 신호로 분해하는 계산 방법이다.
수학적으로, 관측된 데이터는 확률 변수 벡터 로 표현되며, 분리하고자 하는 숨겨진 성분은 확률 변수 벡터 로 표현된다. 독립 성분 분석의 과제는 관측된 데이터 에 적절한 선형 변환 행렬 를 적용하여, 관계를 통해 얻어지는 벡터 의 성분들이 최대한 독립적이 되도록 하는 것이다. 이때 성분들의 독립성은 특정 독립성 함수 를 통해 측정되며, 이 함수의 값을 최대화하는 변환 를 찾는 것이 목표이다.
3. 2. 생성 모델
독립 성분 분석(ICA)은 관측된 다변량 신호 가 통계적으로 독립적인 내부 성분(소스 신호) 들로부터 어떻게 생성되었는지를 설명하는 모델에 기반한다. 이 생성 과정은 크게 선형 모델과 비선형 모델로 나눌 수 있다.
선형 ICA 모델은 관측 신호가 소스 신호들의 선형 결합으로 생성된다고 가정한다. 이 모델은 다시 잡음(noise)의 유무에 따라 두 가지로 구분된다.
반면, 비선형 독립 성분 분석 모델은 소스 신호들이 단순히 선형적으로 결합되는 것이 아니라, 비선형 함수 를 통해 혼합되어 관측 신호 가 생성된다고 가정한다. 잡음을 포함하는 경우, 모델은 형태로 표현된다. 이는 신호 혼합 과정이 더 복잡한 경우를 다루기 위한 모델이다.
각 생성 모델에 대한 자세한 설명과 수학적 정의는 해당 하위 섹션에서 다룬다.
3. 2. 1. 선형 잡음 없는 ICA
선형 독립 성분 분석(ICA)은 잡음(noise)이 없는 경우와 잡음이 있는 경우로 나눌 수 있다. 잡음이 없는 ICA는 잡음이 있는 ICA의 특별한 경우로 볼 수 있다.[5][6] 비선형 ICA는 이들과 다른 방식으로 다루어진다.
잡음 없는 선형 ICA 모델에서는 관측된 데이터를 랜덤 벡터 로, 원본 독립 성분들을 랜덤 벡터 로 표현한다. ICA의 목표 중 하나는 관측된 데이터 에 어떤 선형 변환 행렬 를 적용하여, 즉 를 계산하여, 통계적으로 최대한 독립적인 성분 벡터 를 얻는 것이다.
이 모델에서 관측된 랜덤 벡터 의 각 성분 는 알 수 없는 독립 성분 ()들의 선형 결합으로 생성된다고 가정한다. 각 독립 성분 는 혼합 가중치(mixing weight) 와 곱해져 더해진다. 이를 수식으로 나타내면 다음과 같다.
이 생성 모델은 벡터 형식으로도 표현할 수 있다. 관측된 랜덤 벡터 는 기저 벡터(basis vector) 들의 선형 결합으로 나타낼 수 있다.
여기서 기저 벡터 들은 혼합 행렬(mixing matrix) 의 열벡터를 구성한다. 따라서 전체 생성 과정은 행렬과 벡터의 곱으로 간결하게 표현할 수 있다.
여기서 는 독립 성분들로 이루어진 소스 벡터(source vector)이다.
실제 문제에서는 관측된 데이터 벡터들의 집합 만이 주어지며, 목표는 이 관측 데이터로부터 미지의 혼합 행렬 와 원본 소스 벡터 를 추정하는 것이다. 이는 주로 분리 행렬(unmixing matrix) (혼합 행렬 의 역행렬에 해당)를 반복적으로 조정하면서, 계산된 추정 소스 성분 (여기서 는 의 행벡터)들의 비가우시성(non-Gaussianity)을 최대화하거나 상호 정보량(mutual information)을 최소화하는 비용 함수(cost function)를 최적화함으로써 수행된다.[5][6] 경우에 따라서는 소스 신호의 확률 분포에 대한 사전 지식을 비용 함수에 활용하기도 한다.
혼합 행렬 가 정방 행렬()이고 역행렬이 존재한다고 가정하면, 추정된 분리 행렬 을 관측 신호 에 곱하여 원본 소스 를 복원할 수 있다.
3. 2. 2. 선형 잡음 있는 ICA
선형 독립 성분 분석(ICA)은 잡음(noise)이 없는 경우와 잡음이 있는 경우로 나눌 수 있다. 잡음이 없는 ICA는 잡음이 있는 ICA의 특별한 경우로 볼 수 있다.
잡음이 있는 선형 ICA 모델을 정의하기 위해, 평균이 0이고 서로 상관관계가 없는 가우시안 잡음 을 가정한다. 이 잡음은 수학적으로 와 같이 표현된다. 여기서 는 잡음의 분산을 나타내는 대각 행렬이다. 이 가정을 추가하면, 잡음이 있는 선형 ICA 모델은 다음과 같은 수식으로 표현된다.
여기서 각 기호는 다음을 의미한다.
이 모델은 관측된 신호 가 원 신호 의 선형 변환()에 잡음 이 더해진 형태로 구성된다고 가정한다.
3. 2. 3. 비선형 ICA
일반적인 독립 성분 분석(ICA)은 관찰된 신호가 원본 소스 신호들의 선형적인 조합이라고 가정하는 경우가 많다. 하지만 실제 소스 신호의 혼합은 반드시 선형적이지만은 않다. 이러한 비선형적인 혼합을 다루기 위한 방법이 비선형 독립 성분 분석이다.
비선형 ICA 모델에서는 소스 신호 가 파라미터 를 갖는 비선형 함수 를 통해 혼합되어 관찰 신호 가 생성된다고 가정한다. 여기에 잡음 이 더해질 수 있으며, 이를 수식으로 표현하면 다음과 같다.
이 모델은 소스 신호들이 보다 복잡한 방식으로 상호작용하며 섞이는 현실적인 상황을 분석하는 데 사용될 수 있다.
3. 3. 식별 가능성
독립 성분은 원래 신호의 순서(순열)나 크기(스케일링)가 바뀔 수 있다는 한계 내에서 식별 가능하다.[7] 이러한 식별 가능성을 확보하기 위해서는 다음 조건들이 필요하다.
4. 독립 성분 정의 방법
독립 성분 분석(ICA)은 다변량 신호를 통계적으로 독립적인 하부 성분으로 분리하는 것을 목표로 하며, 이때 추정된 성분들의 통계적 독립성을 최대화하는 방식으로 독립 성분을 찾는다.[23] 독립성을 정의하는 방식에 따라 ICA 알고리즘의 구체적인 형태가 결정되며, 주로 사용되는 두 가지 접근 방식은 다음과 같다.
- '''상호 정보 최소화''' (Minimization of Mutual Information, MMI): 성분들 간의 상호 정보량을 최소화하여 독립성을 높이는 방식이다. 이 접근법은 쿨백-라이블러 발산이나 최대 엔트로피 원리와 같은 정보 이론적 척도를 활용한다.[23]
- '''비가우시안성 최대화''' (Maximization of Non-Gaussianity): 중심 극한 정리에 따르면 독립적인 확률 변수들의 합은 정규 분포(가우시안 분포)에 가까워지는 경향이 있다. 반대로, 혼합 신호에서 분리된 개별 성분은 비가우시안 분포를 띨 가능성이 높다는 점에 착안하여, 분리된 성분의 비가우시안성을 최대화하는 방식이다. 비가우시안성의 척도로는 주로 첨도나 네겐트로피가 사용된다.[23]
이러한 독립성 정의 방법의 선택은 ICA 알고리즘의 구체적인 구현 방식과 성능에 영향을 미친다.
4. 1. 비가우시안성 최대화
독립 성분 분석(ICA)에서 추정된 성분들의 통계적 독립성을 최대화하는 방법 중 하나는 비가우시안성(Non-gaussianity) 최대화이다.[23] 이는 중심 극한 정리에 기반한 접근 방식으로, 신호 혼합물은 여러 독립적인 신호가 합쳐질수록 정규 분포(가우시안 분포)에 가까워지는 경향이 있지만, 개별 원본 신호(source signal)는 비가우시안 분포를 가질 가능성이 높다는 점에 착안한다. 따라서 혼합된 신호에서 분리된 성분이 최대한 비가우시안 분포를 띠도록 만들면 원본 신호에 가까워질 것이라고 가정한다. 비가우시안성을 측정하는 대표적인 척도로는 첨도(Kurtosis)와 네겐트로피(Negentropy)가 사용된다.신호 혼합물에서 각 원본 신호를 추출하는 한 가지 방법은 가중치 벡터(weight vector)와 신호 혼합물의 내적을 계산하여 신호 혼합물의 직교 투영을 구하는 것이다. 이때 적절한 가중치 벡터를 찾는 것이 중요하며, 투영 추구(Projection pursuit) 기법이 이를 위해 사용될 수 있다.[11][12] 투영 추구는 추출된 신호가 가능한 한 비가우시안성을 갖도록 투영 방향(가중치 벡터)을 한 번에 하나씩 찾아 나가는 방식이다. 이는 모든 신호에 대한 언믹싱 행렬(unmixing matrix)을 한 번에 추정하는 일반적인 ICA 방식과 대비된다. 투영 추구는 필요한 경우 전체 신호 개수보다 적은 수의 신호만 추출할 수 있다는 장점이 있다.
=== 첨도 (Kurtosis) ===
첨도는 확률 분포의 뾰족한 정도를 나타내는 척도로, 비가우시안성을 측정하는 데 사용될 수 있다. 추출된 신호 의 표본 첨도(sample kurtosis)는 다음과 같이 계산된다.
:
여기서 는 의 표본 평균이고, 는 기댓값을 의미한다. 분모는 의 분산으로, 첨도 계산 시 신호의 분산 크기 영향을 제거한다. 상수 3을 빼는 이유는 정규 분포의 첨도가 3이므로, 이를 0으로 맞춰 해석을 용이하게 하기 위함이다.
- 초가우시안(Super-gaussian) 신호: 첨도가 양수(+)이며, 정규 분포보다 더 뾰족한 분포를 가진다.
- 서브가우시안(Sub-gaussian) 신호: 첨도가 음수(-)이며, 정규 분포보다 더 평평한 분포를 가진다.
투영 추구의 목표는 추출된 신호 의 첨도 절대값을 최대화하여 가장 비가우시안적인 신호를 찾는 것이다. 여기서 는 ''M''개의 혼합 신호 벡터이고, 는 가중치 벡터이다. 일반적으로 원본 신호 가 초가우시안 분포를 따른다고 가정하면, 추출된 신호 가 원본 신호 와 일치할 때 첨도가 최대가 될 것으로 기대할 수 있다.
여러 개의 원본 신호를 복구하기 위해, 첫 번째 가중치 벡터 을 찾아 첫 번째 신호 을 추출한 후, 다음 신호를 찾을 때는 이미 찾은 신호 성분을 제거하는 방식을 사용한다. 그람-슈미트 직교화(Gram-Schmidt Orthogonalization, GSO) 과정을 통해 이전에 추출된 신호들과 직교하는 방향으로만 탐색하여 각 단계에서 독립적인 신호를 추출할 수 있다.
최적의 가중치 벡터 를 찾는 데는 경사 하강법(Gradient descent)과 같은 최적화 알고리즘이 사용된다. 계산을 단순화하기 위해 일반적으로 데이터를 전처리하는 과정을 거친다. 먼저 데이터의 평균을 0으로 만드는 중심화(centering)를 수행하고, 그 다음 백색화(whitening)를 통해 데이터의 각 성분들이 단위 분산을 갖고 서로 상관관계가 없도록 변환한다. 백색화는 주로 특이값 분해(SVD)를 이용하여 수행된다. 백색화된 데이터 에 대해 추출된 신호는 가 된다. 가중치 벡터 의 크기를 1로 제약하면(), 추출된 신호 의 분산도 1이 된다(). 이 경우 첨도는 다음과 같이 간단해진다.
:
첨도를 최대로 만드는 가중치 벡터 를 찾기 위한 경사 상승법(gradient ascent) 업데이트 규칙은 다음과 같다.
:
여기서 는 학습률(learning rate)로, 적절한 값으로 설정해야 수렴을 보장할 수 있다. 각 업데이트 단계 이후에는 의 크기를 다시 1로 정규화(