Slow Feature Analysis
람다는항의 강도를 결정하는 하이퍼파라미터,
t 는 시간,
f는 특징추출기(feature extractor)
L은 거리를 측정하는 Loss function (흔히 MSE를 활용한다)
느림 원리(slowness principle) 적용을 위해 원 모델의 비용함수에 다음항을 추가
Slow Feature Analysis
컴퓨터에게자연경관을 담은 동영상으로 훈련한 결과와
쥐의 뇌에서 뉴런들이 대표하는 특징들이 공통점이 높게 나타나는것으로 보아
생물학적으로도 어느정도 그럴듯한 모형인 것으로 보임.
하지만 최고수준의 응용에서 활용되지 못하는데,
성과를 제한하는 요인이 어떤것인지 아직 알려지지 않음
#3 파트 3에 들어왔다. 이후로 다룰 내용은 이 전까지 내용과 매우 다르다. 지금까지 배운 방법들은 보통 지도학습의 문제를 푸는 방법들이었다. 라벨링이 된 견본들이 충분히 주어졌을때, 학습모형이 그것을 배우게 했던것. 하지만 실제 세계에서는 결측값을 처리하거나, 라벨링이 없는데이터를 다루어야 할 때도있다. 현재까지 딥러닝기술의 한계로 지적되는 것은 대량의 학습자료가 필요하다는 것인데 그런 목표들을 위해 비지도, 준지도 학습이 어느정도 필요하다. 또, 과도한 계산적 부담을 경감시키고자 처리불가능하거나 너무 어려운 계산들을 통계적으로 근사하는 여러 방식들에 대해 배운다.
뭐 대부분의 인공지능 전문가들이 미래의 인공지능 기술은 지도학습이 아닌, 비지도학습이 선도하게 될 것이라고 전망하고 있다고 한다.
#4 이 책에서 다루는 비지도 학습은 원 데이터가 가지고 있는 확률분포를 추정하도록 하고,
인공신경망이 그 분포를 만들어 낼 수 있도록 한다는 점에서 단순한 군집화 기반의 비지도학습과 차이가 있습니다.
일단, GM을 이해하기 위해서는 확률분포의 개념을 확실히 알고 넘어가야 하는데, 그 이유는 우리가 GM에서 다루고자 하는 모든 데이터는 확률분포를 가지고 있는 랜덤변수(Random Variable)이기 때문입니다. 가령 2차 방정식에서 미지 수 X를 변수라 부르고, 이를 대입해 방정식을 풀면 미지수 X는 특정한 수가 됩니다. 그러나, 랜덤변수는 측정할 때마다 다른 값이 나옵니다. 하지만, 특정한 확률분포를 따르는 숫자를 생성하므로, 랜덤변수에 대한 확률분포를 안다는 이야기는 랜덤변수 즉 데이터에 대한 전부를 이해하고 있다는 것과 같습니다.
예를 들어, 확률분포를 알면 그 데이터의 예측 기댓값, 데이터의 분산을 즉각 알아낼 수 있어 데이터의 통계적 특성을 바로 분석할 수 있으며, 주어진 확률분포를 따르도록 데이터를 임의 생성하면 그 데이터는 확률분포를 구할 때 사용한 원 데이터와 유사한 값을 가집니다. 즉, 비지도학습이 가능한 머신러닝 알고리즘으로 데이터에 대한 확률분포를 모델링 할 수 있게 되면, 원 데이터와 확률분포를 정확히 공유하는 무한히 많은 새로운 데이터를 새로 생성할 수 있음을 의미합니다.
#5 GAN은 2014년 NIPS에서 Ian Goodfellow가 발표한 회귀생성 모델로서 분류를 담당하는 모델(판별자 D)과 회귀생성을 담당하는 두 개의 모델(생성자 G)로 구성되어 있습니다. 두 모델은 GAN이란 이름에서 쉽게 알 수 있듯이, 생성자 G와 판별자 D가 서로의 성능을 개선해 적대적으로 경쟁해 나가는 모델입니다. 쉽게 말해 경찰과 지폐 위조범의 대립과 같은 방식으로 이해할 수 있습니다.
지폐 위조범(생성자 G)은 경찰(분류자 D)을 최대한 열심히 속이려고 하고, 다른 한편에서는 경찰은 이렇게 위조된 지폐와 진짜 지폐를 두고 분류하기 위해 노력합니다. 이러한 경쟁이 지속적으로 학습되면 결과적으로는 진짜 지폐와 위조지폐를 구별할 수 없을 정도의 상태가 되며, 진짜와 거의 차이가 없는 가짜 지폐를 만들어 낼 수 있습니다. 수학적으로 생성자 G는 앞에서 말한 원 데이터의 확률분포를 알아내려고 노력하며, 학습이 종료된 후에는 원 데이터의 확률분포를 따르는 새로운 데이터를 만들어 내게 됩니다.
위의 (a)~(d) 그래프에서 원 데이터의 확률분포가 학습이 거듭 진행됨에 따라 GAN이 만들어 내는 확률분포와 거의 동일해 짐을 볼 수 있습니다. 이렇게 되면 파란색 점선인 분류자 D는 더 이상 분류를 해도 의미가 없는 0.5라는 확률 값을 뱉어내게 되죠. 이것은 동전을 던져서 앞면을 진실, 뒷면을 거짓이라고 했을 때, 진실을 맞출 확률이 0.5가 되는 것처럼 GAN에 의해 만들어진 데이터가 진짜 인지 가짜인지 맞출 확률이 0.5가 되면서 분류자가 의미 없게 되는 겁니다. 결론적으로 생성자 G가 실제 데이터와 거의 유사한 데이터를 만들어 낼 수 있는 상황이 되었음을 의미하죠.
#6 기존에는 x와 y들을 관찰하고 새로운 x가 들어왔을때 새로운 y를 예측. Latent variable은 직접 관찰하는것이 아니라 데이터를 통해서 유추하는것!
이전까지 배운내용은 데이터가 있고, 이미지에서 어떤 정보를 추출하거나, 문장에서 정보를 추출하거나 이런것이었는데,
이제는 이 데이터가 어떻게 생성되었는지에 대해 질문을 하는것.
“이 문장은 어떻게 생성된 것일까?” -에 대해 잠재변수가 작용한다고 가정하는것(언제나 그런것은 아니지만)
#7 이 잠재변수 개념은 방대한 영역에서 활용되고 있는데 이해를 돕기위해 간단한 예시를 들자면
경제학연구에서 행복의 정도를 측정하고싶다. 근데 직접적으로 점수를 줘라 해서 처리해버리면 수많은 노이즈가 중간에 가미되거나 다른 혼동요인들이 추가될것.
그래서 최근의 연구들은 행복에 영향을 줄 요소들을 조사해서 이 측정된 데이터를 가지고 행복의 정도를 추론하게 된다.
이 경우 행복을 잠재변수로 볼 수 있을것. 직접 측정할수는 없지만 측정된 데이터를 통해서 추론가능하다.
#8 이런 잠재변수들을 활용하는 수많은 확률적생성모형들이 있으며 linear Factor Model은 가장 기초적인 예.
모든 데이터 x 가 잠재변수 h의 선형변환으로 이루어졌다는 가정을 기반으로 한다.
결국 이 잠재변수들을 어떻게 찾아낼것인가가 근본적인 목적
#9 이제부터 딥러닝의 unsupervised model을 본격적으로 공부하게 되는데
다양한 Linear Factor model 있지만 여기 세션에서는 이렇게 세가지를 알아볼것이다. 이 모델들의 차이를 간단하게 설명하자면 각각 노이즈와, 잠재변수의 사전분포를 어떻게 가정하느냐이다. 다른 가정은 다른 결과로 귀결된다.
#20 EM 알고리즘은 모수에 관한 추정값으로 로그가능도(log likelihood)의 기댓값을 계산하는 기댓값 (E) 단계와 이 기댓값을 최대화하는 모수 추정값들을 구하는 최대화 (M) 단계를 번갈아가면서 적용한다. 최대화 단계에서 계산한 변수값은 다음 기댓값 단계의 추정값으로 쓰인다.
#22 대부분의 경우 차원 축소를 활용하여 줄이고자 하는 목표차원 K가 데이터의 갯수 N보다 작기때문에 훨씬 적은 계산으로 구하는게 가능
#23 시그마제곱의 정규분포를 따르는 노이즈 항을 도입해서 EM알고리즘을 활용할수 있도록 식을 고치고,
EM알고리즘을 활용하여 최대한 계산량을 줄이고 근사한 답을 찾을수 있도록 하는것
#24 다차원(Multi-dimension)으로 이루어진 데이터의 경우 그대로 사용할 수도 있지만 데이터를 어떤 축으로 투영(projection)시켜 데이터의 속성을 바꿀 수 있다. 이 때 투영시키는 축의 수를 원래의 데이터 차원수와 일치시켜 투영 이후에 만들어지는 데이터의 차원이 투영 전의 데이터와 같게 할 수 있고 더 적게 하여 압축의 효과를 볼 수도 있다. 다차원 데이터가 투영될 때 투영된 결과 수치들이 의미 있는 속성을 지니도록 축을 결정하는 방법으로서 Projection Pursuit이 있다.
Projection Pursuit에서 의미 있는 속성이란 투영된 수치들이 가우시안(Gaussian) 분포로부터 가능한 멀리 떨어진 분포를 이루는 것을 말한다. 즉 non-gaussianity가 높게 나타나는 방향으로 축을 정하는 것이다. 주요성분분석(Principal Component Analysis : PCA)은 단위 크기이고 서로 직교(orthogonal) 관계에 있는 아이겐 벡터(eigen vector)들을 아이겐 값(eigen value)의 크기 순으로 일부를 선택하여 데이터를 본래보다 더 적은 차원으로 압축할 수 있다.
데이터의 상관관계뿐만 아니라 더 높은 차수의 상관관계까지도 없앨 수 있으며 결국 차원들간의 관계를 독립(independent)으로 변환시키는 방법을 독립성분분석(Independent Component Analysis : ICA)이라고 한다.
본래 독립성분분석은 cocktail-party problem라는 문제와 연관되어 있다. 파티장에서 여러 사람, 음악, 물체 등의 소리를 동시에 듣게 되지만 대화를 하기 위해서는 대화 상대의 목소를 제대로 인식해야 하는 것이다. 여기서 각각의 독립적인 소리가 독립성분분석에서의 소스(source)에 해당된다. 이때 원래의 소스와 소스들이 섞이게(mixing) 되는 과정에 대한 정보를 모른 채 단지 섞인 신호(mixture)만을 가지고 원래의 소스를 밝혀내게 되는데 이를 Blind Source Separation(BBS)라 부른다.
//
섞여있는 관측된 신호들을 독립된 각각의 신호들로 분리해낸다.
#25 애초에 원래 신호들이 완벽하게 독립이라고 가정한다 (cocktail party 같은 상황에 매우 적합)
관측된 mix 데이터에서 독립인 신호들로 분리해내는것
#26 ICA는 PCA랑 연관지어서 생각해보면 이해하기가 가장 쉽습니다. PCA는 위에서 보이는 것처럼 factor들이 uncorrelated되는 축을 찾는 건데, 여기서 uncorrelated라는 것이 statistically independent를 보장해주지 않습니다 (즉, X와 Y가 독립이면 cov(X,Y)=0이지만 일반적으로 역은 성립하지 않습니다. X, Y가 gaussian이면 성립하구요). ICA는 이름 그대로 statistically independent인 component를 찾는게 목적인 알고리즘입니다.
#27 독립성분분석이 사용되는 분야 중의 하나로서 뇌 표면의 신호를 전극을 이용하여 측정한 전위인 신호에서의 적용을 들 수 EEG(electroencephalogram) 있다.
뇌활동에 의해 발생되는 신호와 그 EEG 외의 다른 부위에서 발생되는 신호 즉, 노이즈(noise) 들이 섞인 상태로 측정이 되므로 독립성분분석을 적용 하면 원하는 뇌파를 얻을 수 있다
#28 얼룩말이 영상을 지나가게되면 각각의 픽셀들의 값은 흰색검은색 굉장히 빠르게 변하지만 화면내에 얼룩말이 존재함을 표현하는 특징은 비교적 오래 나타나게 될 것.
즉, 어떤 고차원의 특징은 비교적 느리게 변화한다고 할 수 있다.
#29 이번엔 사전분포를 가정하지는 않지만 사전적으로 “가장 느리게 변하는것이 중요한정보”라는 사전적인 원칙을 기반으로 시작한다.
#34 파트 3에 들어왔다. 이후로 다룰 내용은 이 전까지 내용과 매우 다르다. 지금까지 배운 방법들은 보통 지도학습의 문제를 푸는 방법들이었다. 라벨링이 된 견본들이 충분히 주어졌을때, 학습모형이 그것을 배우게 했던것. 하지만 실제 세계에서는 결측값을 처리하거나, 라벨링이 없는데이터를 다루어야 할 때도있다. 현재까지 딥러닝기술의 한계로 지적되는 것은 대량의 학습자료가 필요하다는 것인데 그런 목표들을 위해 비지도, 준지도 학습이 어느정도 필요하다. 또, 과도한 계산적 부담을 경감시키고자 처리불가능하거나 너무 어려운 계산들을 통계적으로 근사하는 여러 방식들에 대해 배운다.
이제는 이 데이터가 어떻게 생성되었는지에 대해 질문을 하는것.
“이 문장은 어떻게 생성된 것일까?” -에 대해 잠재변수가 작용한다고 가정하는것(언제나 그런것은 아니지만)