Artificial.Intelligence 13

[AI-13] 단순하지만 강력하게 평균으로 모으기 : K-means Clustering

통계에서 means는 의미가 아닌 '평균'을 의미하는 말로, K-means의 means 역시 이름을 보면 평균을 활용하는 군집분석(Clustering)일 것임을 알 수 있다. 그렇다면 K-는 무엇일까? 일반적으로 K-라는 말이 상징하는 수많은 단어들이 떠오르지만, 사실 여기에서 K는 큰 의미가 없이 단지 미지수 x나 정해지지 않은 숫자를 표현할 때 주로 사용되는 n과 같은 의미이다, 일상에서는 이러한 경우에 n이 더 많이 사용되지만, 수학이나 알고리즘에서는 k가 많이 사용되는 것이 그 이유라고 할 수 있다.즉 이 방법의 이름을 정리하면 K개의 평균으로 군집화하는 분석이라고 설명할 수 있다.그래서 K-means Clustering의 가장 첫 번째 절차는 몇 개(k)의 군집을 만들 것인지를 정하는 것이다. ..

[AI-12] 최적의 분류 평면 찾기, 서포트 벡터 머신(SVM)

회귀 등의 방법을 통해 일반적으로 데이터를 분류하는 방법들은, 각 데이터의 분류를 확률적으로 계산하여 그 소속 여부를 결정한다. 즉, 확률에 대한 어떤 특정한 임계값을 넘는지 못넘는지에 따라 분류 여부를 판단하는 방식으로, 각 데이터가 특정 클래스에 속할 확률을 계산함으로써 분류가 실패할 확률(에러율)을 줄이는 쪽으로 학습을 진행한다. 이는 처음부터 분류 자체를 목적으로 한다기보다는, 데이터가 가까운 쪽의 클래스로 분류됨으로써 자연스럽게 분류가 완성되는 것이다.서포트 벡터 머신(Suppor Vector Machine)은 이러한 방법들과 다르게 분류 자체를 목적으로 두고 데이터 간의 거리를 계산하여 그 사이의 가장 여백(margin)이 큰 경계를 찾는 방식으로 데이터 간에 경계를 나누면서 학습을 진행한다...

[AI-11] 유에서 무로, 다시 유로 : Diffusion Model

확산(Diffusion)이란, 자연 현상에서 무언가 다른 두 물질이 만나 서로 동화되며 섞여가는 과정을 의미한다. 이 때 원래 각각의 물질로서 높은 순도를 가지고 있던 두 물질은 순도가 낮아지고 동화된다. 예를 들어 커피에 우유를 섞으면 처음에는 각각 높은 순도의 커피와 우유였던 두 물질이 점차 서로에게 동화되며 커피와 우유로서의 순도는 낮아지게 된다. 커피가 우유로, 우유가 커피로 확산되면서 높은 엔트로피에서 낮은 엔트로피로 흐르는 것이다.인공지능에서 말하는 '확산 모델'도 이러한 과학에서의 확산 개념과 무관하지 않은데, 학습 과정에서 마치 확산을 시키듯 데이터를 자연 속에 확산시키면 잘 정돈되어있던(High Entrophy) 생성물의 순도는 낮아지게 될 것(Low Entrophy)이다. 즉, 풍화나 ..

[AI-10] 데이터에 따라 스스로를 조직하다: Self Organizing Map

이전 글에서 인공신경망(ANN; Artificial Neural Network)을 공부하면서 입력받은 데이터에 따라 은닉층(Hidden layer)의 가중치를 조정하여 학습하는 인공지능 학습에 대해 살펴본 바 있다. 자기 조직화 지도(SOM; Self Organizing Map) 역시 이와 같이 데이터에 맞춰 각 노드가 가중치를 조정하는 한 방법인데, 오늘은 이에 대해서 공부해보았다.여러 방법론을 공부하다 보면 '지도(Map)'라는 단어를 만나는 경우가 꽤 많은데, 보통 방법론에서 지도라는 단어를 말할 때는 X축과 Y축의 2차원 도식으로 표현이 가능한 경우가 많다. '사용자 여정 지도'나 '사용자 행동 지도'와 같은 경우가 그러하다. 이 '자기 조직화 지도' 역시도 마찬가지인데, 매우 고차원적인 특징(F..

[AI-09] 데이터에서 자라난 무작위의 숲, Random Forest

의사결정나무(Decision Tree)는 원본 데이터로부터 필터링을 거쳐 순도가 높은 데이터 그룹을 추출해가는 과정이다. 원본 데이터는 다양한 성질(불순도; Impurity)을 가지고 있기 때문에 목적에 맞게 사용하려면 적절한 분류와 그룹화가 필요한데, 이 과정을 시각화하면서 정리하는 방법이 의사결정나무이다.의사결정나무는 뿌리마디로부터 줄기마디(중간마디), 잎마디(끝마디)의 순으로 '성장'하는데, 이 과정을 가지치기(pruning)라고 한다. 이 도식은 실제 나무와는 달리 위에서부터 아래로 자라는 형태로 표현되는데, 상위노드는 '부모마디'가 되며 하위노드는 '자식마디'가 된다. 그리고 뿌리마디를 제외한 잎마디까지의 전체 마디수가 '깊이(Depth)'가 된다.좋은 의사결정나무는 좋은 분할(가지치기)로부터 ..

[AI-08] 진흙 속에서 진주 찾기 : KDD

데이터는 일반적으로는 거의 맹목적일 정도로 가치 있는 재화처럼 여겨지지만 사실 의미가 부여될 수 없다면 그 자체로서는 객관적인 현상적 지표에 불과하다. 다만 당장은 가치가 없어보여도 데이터의 특성 상 어떤 것이 가치를 가지게 될 지 모르기 때문에 잠재적인 가치를 보는 것인데, 실제로는 데이터의 군집(Cluster), 상관관계(Correlation), 분류(Classification) 등을 통해 의미를 찾는 것이 중요하다. 이는 마치 흙 속에서 보물을 찾는 것과 비슷하며, 비유적으로 채굴(Mining)이라고 부른다. 우리가 흔하게 말하는 데이터 마이닝(Data Mining)이 그것이다. 그 중에서도 가장 전통적인 방법이 데이터 속에서 지식 찾기(KDD; Knowledge Discovery in Databa..

[AI-07] 어떻게 학습시킬까? : 레이블과 강화

인공지능의 학습 방법은 크게 지도학습(Supervised Learning)과 비지도학습(Unsupervised Learning), 그리고 강화학습(Reinforcement Learning)으로 분류된다. 이들은 레이블의 유무에 따른 지도학습과 비지도학습, 그리고 레이블이 아닌 강화를 통해 학습을 유도하는 강화학습의 두 가지로 먼저 나눠볼 수 있다. 먼저 레이블(Label)에 대해 살펴보면, 레이블은 문자 그대로 데이터에 정의를 입혀 학습시키는 것을 의미한다. 즉, 문제에 대해 정답이 존재하는 데이터인데, 예를 들어 OCR(Optical Chracter Recognition)과 같은 기술이 이에 해당한다. 이미지 속의 숫자 또는 문자는 일련의 배치를 가지고 일정 수준 이상 대비도가 차이나는 이미지 픽셀 데..

[AI-06] 신경망의 활동을 표현하다 : 시그모이드 함수

이제까지의 공부를 통해, 데이터를 수치화해 수학적 / 통계적으로 해석함으로써 각 신경망 유닛이 데이터에 부합하는 최적의 식을 찾는 것이 기계학습의 전반적인 원리임을 알아보았다. 이전글에서는 이 식을 간단하게 H(x)=Wx+b와 같이 기본적인 1차함수로만 다루면서 공부하였지만, [AI-04]에서 공부한 내용에서처럼 신경망은 여러 개의 입력값과 복잡한 노드로 연결되기 때문에 이렇게 간단한 식으로 해결되지는 않는다. 예를 들어, 3개의 입력을 처리하는 신경망 노드의 경우, 아래와 같은 식이 필요할 것이다.W₁x₁+W₂x₂+W₃x₃-θ 즉, 3개의 각각의 입력값에 대해 서로 다른 가중치를 적용한 값이 각 노드의 편향(임계값,  θ)보다 높은지 낮은지에 따라 신경망이 1 (반응) 또는 0 (미반응)으로 다음 노드..

[AI-05] 수치화하여 방향성 찾기: 벡터와 텐서

이전에 공부한 내용들을 종합하면, 기계가 학습을 위한 기본 이론과 로직, 그리고 그 학습이 일어나는 환경인 신경망까지 준비되었다. 이제 학습할 데이터를 입력층을 통해 입력해야 하는데, 앞서 공부한 회귀분석을 하려면 먼저 데이터를 분석할 수 있는 숫자로 만들어야 한다. 이 때 사용되는 개념이 벡터(Vector), 나아가 텐서(Tensor)의 개념이다.  이들을 이해하기 위해서 먼저 가장 기본이 되는 스칼라(Scalar)부터 살펴보면, 스칼라는 영어의 'Scale'과 같은 말로, 어떤 개체의 변하지 않는 물리량을 의미한다. 온도나 질량과 같은 값은 개체 고유의 값으로 외부의 특별한 조작 없이는 어떠한 환경에서도 일정하게 유지되며, 방향성을 가지지 않는다. 때문에 이들은 1차원적으로 표현되며, 기본적인 사칙연..

[AI-04] 학습이 일어나는 곳 : 인공신경망

기계가 학습을 하는 방법에 대해 이제까지 살펴보았는데, 물론 이러한 논리적인 측면도 중요하지만 결국에는 이 모든 논리가 일어나는 실질적인 주체가 필수적일 것이다. 이러한 학습이 일어나는 곳이 바로 인공신경망(人工神經網; Artificial Neural Network)인데, 이번 글에서는 이에 대해 다루고자 한다. 인공 신경망은 인체의 정보 처리를 모방하여 만든 소프트웨어 알고리즘으로, 우리 몸의 신경 조직인 뉴런(Neuron)과 그 주변 조직의 움직임을 본딴 형태로 구성되어 있다. 즉, 뉴런과 비슷한 역할을 하는 노드(Node)로 연결된 망(Net)을 만들어 동작하도록 함으로써, 인간과 유사하게 정보를 처리할 수 있도록 한 것이다. 각 노드는 작업의 여러 요인 중 각 하나에 대해 가설 H(x)=Wx+b에..

반응형