강화(reinforcement)라는 개념은 행동심리학자 Burrhus Skinner(1904~1990)가 제시한 것으로 행동심리학에서는 널리 알려진 개념이다. 강화는 동물이 시행착오를 통해 학습을 하는 방법의 하나를 가리킨다. 스키너는 이를 조작적 조건화 이론이라고 하여 상자속에서 우연히 발판을 밟아 먹이가 나오는 것을 여러번 경험하자 쥐가 점점 발판을 자주 밟게되어 이 과정을 통해 쥐가 발판을 밟는 행동과 먹이와의 관계를 학습하게 되는 것을 관찰했다. 이는 학습과 학교 교육에 적용되고 행동수정이론으로 발전하게 된다.

 

어떤 환경 안에서 정의된 에이전트가 현재의 상태를 인식하여 선택 가능한 행동들 중 보상을 최대화하는 행동 혹은 행동 순서를 선택하는 방법이다. 이러한 문제는 매우 포괄적이기 때문에 게임이론, 제어이론, 운용 과학, 정보이론, 시뮬레이션 기반 최적화, 다중 에이전트시스템, 떼 지능, 통계학, 유전알고리즘 등의 분야에서도 연구된다.

아래는 강화학습의 전형적인 사례들이다.

(a)의 격자 세상에서는 2차원 공간이 일정크기의 격자 모양으로 분할되어 있고, 각 격자에는 장애물 또는 보물이 놓을 수 있다. 여기에서 문제는 격자 세상에서 로봇이 격자를  이동해가면서 보물을 찾도록 하는 효과적인 정책을 찾는것. (a)에서 회색으로 칠해진 격자들은 좌측 상단의 격자에서 시작하여 가운데 보물이 있는 곳으로 이동하게 하는 이동 행동들의 궤적을 나타내는데, 이러한 일련의 행동과 이에 따른 보상을 에피소드(episode)라고 한다.

(b)는 cart-pole 문제인데, 검은색 사각형은 직선상을 움직이는 카트를 나타내고, 좁고 긴 사각형은 카트 위에는 핀으로 연결되어 있어 자유롭게 회전할 수있는 막대를 나타낸다. 여기에서 문제는 일정한 힘으로 외쪽 또는 오른쪽으로 카트를 움직여서 막대를 수직으로 세우는 정책을 찾는 것

(c)는 벽돌깨기(breakout)라는 아타리(Atari)사에서 출시했던 게임인데, 공을 잘 튕겨서 벽돌을 깨면 점수를 얻는데 뒤에 있는 벽돌일수록 점수가 높다. 여기에서는 많은 점수를  딸 수 있도록 하는 정책을 찾는 것이 문제이다.

                      (a) 격자 세상의 로봇                                   (b) cart-pole                                        (c) breakout game

 

강화학습이 적용되는 문제는 일반적으로 markov decision process로 표현할 수 있다. 강화학습 문제는 다음과 같은 마코브 결정과정의 요소를 사용하여 표현한다.

 `환경이 가질 수 있는 상태의 집합 S =

 `에이전트가 할 수 있는 행동의 집합 A =

 

 `상태전이를 결정하는 규칙 :  t 시점의 상태 St 에서 행동 at 를 취할 때 도달하는 다음 상태 St+1 를 결정하는 것 으로, 다음 상태 St+1 이 확률적으로 결정될 수 도 있다. 이때의 확률은 로 표현한다

`상태전이가 일어날 때 즉시 보상값을 결정하는 함수 :

 

에이전트가 현재 상태를 명확히 알 수 있으면 마코브 결정과정에 해당되고, 그렇지 않으면 부분 관측 마코브 결정과정에 해당한다. 여기에서는 마코브 결정과정으로 표현되는 강화학습에 대해서만 고려한다.

 

1) 기대보상

강화학습은 에이전트가 행동하는 동안 받을 기대보상이 최대가 되는 정책을 찾는 것을 목표로함. 기대보상 R은 특정 정책에 따라 행동을 하게 될 때 얻게 되는 보상을 누적한 것으로, 종료 상태가 존재하는 경우에는 다음과 같이 계산할 수 있다.

종료상태가 없이 에이전트가 끝없이 계속 행동하는 경우, 위와같이 단순 누적합을 하면 누적 보상이 무한대로 가까이 갈수 있다. 그래서 일반적으로 기대보상을 계산할 때는 미래의 보상에 대해서 할인을 하는 할인 누적합을 사용한다.

*할인 누적합 : 현재와 10년후의 100만원은 10년동안의 이자가 합쳐져서 만들어진 것으로, 현재의 가치는 백만원에 미치지 못함.

 

2) 가치함수

강화학습에서는 각 상태에서 기대보상 R값이 최대가 되도록 해주는 정책을 결정해야 한다. 에이전트가 어떤 행동을 하는 것이 좋은지 결정하기 위해, 상태 가치함수와 행동 가치함수라는 개념을 사용한다

강화학습은 일반적으로 미리 주어진 데이터(상태-행동-보상)를 사용해 학습하는 것이 아니라 에이전트가 행동을 통해 결험하는 것을 바탕으로 정책을 학습한다.

 

3) 벨만 방정식

강화학습에서 가치함수를 관계식으로 표현한 식들을 벨만 방정식이라고 한다. 이러한 것들로 벨만 기대 방정식과 벨만 최적 방정식이 있다. 벨만 기대 방정식은 가치함수를 즉시 보상과 다음상태에서의 할인 기대보상으로 표현한다.

종료상태가 없이 에이전트가 끝없이 계속 행동하는 경우, 위와 같이 단순 누적합을 하면 누적보상이 무한대로 가까이 갈 수 있다.

 

그외 동적 계획법 기반 정책 결정과 모테카를로 예측을 포함하는 예측과 제어, DQN알고리즘, Actor-Critic 방법등이 있다

 

 

 

아래 사이트는 구글에서 머신러닝 사내교육을 공개한 것이다. 인공지능에 의한 해석이 더빙되어 있어 Machine Learning 기초를 공부하기에는 좋은것같아 공유한다

 

https://developers.google.com/machine-learning/crash-course/


 

 

'2. 인공지능 > 2-3. 기계학습' 카테고리의 다른 글

2-3-17.강화학습  (0) 2018.03.11
2-3-15. 신경망(RBF)  (0) 2018.03.03
2-3-13. 신경망(서포트 벡터 머신)  (0) 2018.02.25
2-3-11. 신경망(다층 퍼셉트론)  (0) 2018.02.18
2-3-10. 신경망(퍼셉트론)  (0) 2018.02.15

▶ Radial Basis Function

- 방사형 구조를 기본으로 하는 네트웍으로서 1개의 은닉층에 확률 가우시안이 적용된다

 

 ▷확률 가우시안

샘플이 5개가 있으면 각 이벤트의 확률은 20%이고 두개의 샘플이 나오는 확률은 (1,2)(1,3)(1,4)(1,5)(2,1)(2,2)(2,3)~ 25개의 경우의 수가 나온다. 이러한 확률은 다양하게 발생되고 교집합과 합집합 확률, 조건부 확률 등이 있다.

여기서 좀 더 생각해야 할것은

1) Bayes' rule

두 사건 A와 B에 대해서 다음 식이 성립하며

 

 

두 사건이 서로 독립일때 아래 식이 성립한다

 

 

또한 확률분포는 균일분포와 정규분포로 표현할 수 있는 확률밀도함수(Probability Density Function : PDF)도 포함된다

 

 ▷방사형 구조의 RBF

 

 

1. 특징

- 다층 퍼셉트론의 은닉층에 해당되는 층은 비선형으로 방사형의 구조로서 이 층은 RBF 뉴런들을 포함, 전달함수로서 가우스 분포를 사용

- 은닉층이 1개이고, 유클리디안 거리와 역전파 알고리즘을 사용하며 안정성 판별이 가능

 

2. RBF 네트워크의 은닉층의 값

 

여기서 x는 입력, uj 는 채택 필드에 해당되는 영역 중심, 는 채택 필드의 폭, 는 j번째 뉴런의 출력

- 출력층은 전형적인 선형 뉴런들의 층으로 은닉 뉴런 출력의 선형 변환을 진행함

  :  이 층은 다층 퍼셉트론에서 선형 출력 층에 대응되고 최소제곱 알고리즘을 사용하여 전개함. 출력 층은 임계 값들을 사용할 수도 있고, 그렇지 않을 수

     도 있음

입력 벡터 x가 채택 필드의 중심의 근방에 있는 것이라면, 그것에 관련된 은닉 뉴런은 활성화되며 입력벡터가 두 개의 채택필드 중심 사이에 위치하면서

  채택 필드 폭 내에 속하는 것이라면, 은닉 층 뉴런들은 모두 부분 활성화됨

- 입력 벡터들이 모두 채택필드로부터 멀리 떨어져 있을 때 은닉 층의 활동은 없고, RBF 출력은 출력 층 임계 값들과 같음

- RBF는 지도 학습적인 방식으로 훈련되는 지역적인 네트워크

  `이것은 전역적 네트워크인 다층 퍼셉트론과 대조

  `지역적인 것과 전역적인 것의 구별은 함수 근사에 의해 수용되어진 입력 표면의 크기로 결정

 

3. 출력층의 값

여기서 C는 가중치, 가 비선형함수로 위의 은닉층의 값이고 b가 bias임

 

4. 훈련과정

훈련과정에서 역전파 알고리즘을 적용하고 있음

출력과정에서 가중치 c와 bias b는 다음층에 대해서 1:1 대응

 

 

가중치 C와 bias는 시냅스이다.

 

 

 

 

기계 학습의 분야 중 하나로 패턴 인식, 자료 회귀 분석을 위한 지도 학습 모델이며, 주로 분류와 분석에 사용된다. 두 카테고리 중 어느 하나에 속한 데이터의 집합이 주어졌을 때, SVM 알고리즘은 주어진 데이터 집합을 바탕으로 새로운 데이터가 어느 카테고리에 속할지 판단하는 비확률적 이진 선형 분류 모델을 만든다. 분류 용도의 신경망은 학습 데이터에 대한 오류를 최소화하는 가중치를 찾는 것이 학습 단계의 목표이다. 다층 퍼셉트론의 경우에 오차 함수 E를 최소화하는 가중치를 찾는다.

다시말하면 SVM은 원 훈련데이터를 비선형 매핑을 통해 고차원으로 변환한다. 이 새로운 차원에서 초평면을 최적으로 분리하는 선형 분리를 찾는다. 즉 최적의 Decision Boundary(의사결정 영역)을 찾는다.

왜 데이터를 고차원으로 보낼까?

2차원에서 비선형 분리가 있다면 이를 한 차원 높은 3차원으로 Mapping하게 되면 선형분리할수 있게 된다. 따라서 충분히 큰 차원으로 적절히 비선형 매핑을 사용하여 두개의 부류를 가진 데이터는 초평면에서 항상 분리될 수 있다..

SVM은 복잡한 비선형 의사결정 영역을 모형화 할 수 있기 때문에 매우 정확하며, 다른 모델들 보다 Over Fitting되는 경향이 적다.

아래 그림은 부류가 2개인 데이터를 분류하는 분류기의 결정 경계에 해당하는 직선들을 보인 것이다. 결정경계 h1은 회색점과 노란점들을 제대로 구별하지 못하기 때문에 바람직하지 않다. h2와 h3는 모두 두 부류를 젣로 분류하기 때문에 오차 함수 관점에서 두 결정 경계가 같은 정도로 우수한 것으로 판정된다. 학습에 사용되지 않은 데이터를 얼마나 잘 분류하는지를 의미하는 일반화 특성 관점에서 h2와 h3를 비교해 보자. h2는 결정 경계 바로 근처에 학습 데이터가 존재하지만, h3는 학습 데이터에서 멀리 떨어져 있다. 학습 데이터와 조금 차이가 있는 데이터가 발생할 때, h3가 h2보다 더 일관되게 판단을 할 수 있다. 결정 경계와 가장 가까이에 있는 학습 데이터까지의 거리를 여백(margin)이라고 한다. 여백 관점에서 보면 h3가 h2보다 우수하다고 할 수 있다.

SVM은 Vladimir Vapnik이 제안한 분류기로, 분류 오차를 줄이면서 동시에 여백을 최대로 하는 결정 경계를 찾는다. 이때 결정 경계로부터 가장 가까이에 있는 학습 데이터들을 서포트 벡터 라고 한다.

 

1) 초평면(Hyperplane)

데이터를 분류하는 선을 초평면이라하고 ' 데이터 embeding 공간에서 한 차원 낮은 부분 공간' 으로 정의 한다. 즉 n 차원의 공간에서의 hyperplane은 n-1차원의 subspace를 의미하는 것이며, 3차원의 경우 hyperplane은 2차원의 면이 되고, 2차원의 경우는 hyperplane은 1차원의 선이 된다.

SVM알고리즘은 서포트 벡터와 여유간격을 통해 두 클래스 데이터 사이를 분류하는 최적의 초평면을 구한다.

 

2) SVM의 학습

SVM은 2개의 부류가 있는 분류 문제에 적용되는 분류기이다. 긍정 결과는 +1, 부정 결과는 -1로서 하나의 값을 갖는다. 아래 그림은 2차원 데이터로서 선형적으로 분리가 가능하며 분리할 수 있는 직선은 무수히 많지만 분류 오류를 최소화하는 최적의 직선을 찾아야 하고 3차원 이상에서는 직선이 아닌 최적의 평면을 찾아야 한다. 최적의 초평면(Decision Boundary)을 찾아 분리하는 것이다

 

 

 아래 그림은 위 그림을 세분화하여 데이터를 분리하지만 직관적으로 볼때 오른쪽 그림의 초평면이 더 정확해 보인다

 

식으로 표현해보면 아래와 같다. 가중치 벡터위 그림에서 2차원이 두개의 속성값이 있을 것이다. 예를 들어 

는 속성 의 값이고 b와 w를 추가적으로 사용한다

초평면의 모든것은 위 식을 만족하는 서포트 벡터라고 한다. 아래 그림의 노란색이 그것이고 분류하기 가장 어렵지만 가장 중요한 정보를 준다 분리 초평면으로 부터 H1위의 점까지의 거리는 이고, 이며 w의 유클리드 norm이다. 최대 margin은 이다.

 

 

 

여기서 SVM은 최대 마진 초평면과 서포트벡터를 KKT(Karush-Kunh Tucker)조건과 라그랑지 방법을 이용하여 구한다.

이것은 SVM의 학습문제가 아래와 같은 제약조건 최적화 문제(Constrained Optimization Problem)가 되고

 

이것이 라그랑주 승수를 도입하여 단일 목적 함수인 라그랑주 함수(Lagrangian function) L( )을 최적화하는 문제로 변환될 수 있다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

MLPNN(다층퍼셉트론신경망)은 퍼셉트론이 여러층으로 이루어져 있는 형태로써, 초창기 신경망의 XOR문제를 해결하는데 중요한 자리를 차지했다.

* Backpropagation : 단층 퍼셉트론이 복잡하게 얽혀있는 다층 퍼셉트론 네트워크 구조로 되어있으며 이는 크게 입력층, 중간(은닉)층, 출력층으로 나누어진다. 입력층에 들어간 입력 signal은 각 연결강도(weight)와 곱해지고 각 노드(node)에서 더해진다. 출력층에서는 결과값과 실제값을 비교하여 오차가 작은 방향으로 노드간의 연결강도를 조절하는(delta rule)을 사용하여 학습이 이루어 진다.

 

하나의 퍼셉트론은 XOR 문제를 해결할 수 있는 결정 경계를 만들어 낼 수 없지만, 아래 그림과 같이 퍼셉트론을 3개 사용하면 XOR문제를 해결 할 수 있다. 아래 a에서 f1(x) 는 (0,0)에 대해서는 -1을 그리고 나머지에 대해서 +1에서 출력하는 퍼셉트론이고, f2(x)는 (1,1)에 대해서만 -1을 출력하고 나머지에 대해서는 +1을 출력하는 퍼셉트론이다. 그림 b는 이러한 결정 경계에 해당하는 가중치를 보여준다. 최종적으로 (1,0)과 (0,1)에 대해서 +1을 출력하려면, f3(x)와 같은 가중치를 부여하면 된다.

                                  [XOR 문제의 결정 경계]                                             [3개 퍼셉트론으로 구성된 2층의 퍼셉트론]

 

초창기 단일 퍼셉트론의 가중치를 결정하는 학습 알고리즘은 개발되었지만, (b)와 같이 여러개의 퍼셉트론이 층을 구성하는 경우에 대한 학습 알고리즘이 개발되지 못했다. 여러 개의 퍼셉트론을 층 구조로 구성한 신경망 모델을 다층 퍼셉트론(MLP)이라고 한다. XOR문제도 다층 퍼셉트론을 사용하면 해결할 수 있다는 것을 알고 있었지만, 가중치를 결정하는 학습 방법을 찾지 못해 1970년대부터 1980년대 초반까지는 신경망에 대한 연구가 침체된 시기이다. 다층 퍼셉트론을 학습시키지 못한 이유는 퍼셉트론의 전달 함수가 계단함수이기 때문에, 미분이 불가능하여 최대 경사볍과 같은 최적화 방법을 사용할 수 없었기 때문에, 미분이 불가능하여 최대 경사법과 같은 최적화 방법을 사용할 수 없었기 때문이다. 1980년대에 들어오면서 연구자들이 다층 퍼셉트론 학습에 대한 발상을 전환하였다. 미분 불가능한 계단 함수 대신, 이와 비슷하지만 미분 가능한 함수를 사용하는 간단한 아이디어를 도입한 것이다. 이러한 함수로 시그모이드함수와 쌍곡 탄젠트가 있다. 시그모이드 함수 Y(s)는 아래 1과 같이 정의되는 출력 구간(0,1)인 함수이고, 쌍곡 탄젠트 h(s)는 아래 2와 같이 정의 되는 출력 구간 (-1,1)인 함수이다.

아래 그림은 쌍곡 탄젠트 함수의 형태를 보여주는데, (b)와 같이 a값이 커지면 경사가 급해지고, 작아지면 경사가 완만해지는 특성이 있다. 시그모이드 함수와 쌍곡 탄젠트 함수를 미분하면, 아래 식과 같이 미분 함수가 원래 함수로 표현될 수 있다

 

1) 다층 퍼셉트론의 구성

입력이 주어지는 층을 입력층이라 하는데, 주어진입력을 다음 층으로 전달하는 역할을 한다. 여기에서 입력값들을 벡터(X1,X2, · · · ·,Xd)로 나타내고, 입력층의 노드를 나타내는 첨자로  i를 사용하고 다음층으로 연결되는 선의 가중치를 로 나타낸다. 출력을 내는 마지막 층을 출력층이라 하는데, 이노드들은 퍼셉트론이다. 출력값을 벡터(h0, h1, · · · · · · ·hm)으로 나타내고 첨자는 k를 사용한다.

입력층과 출력층 사이에 있는 층을 은닉층이라고 한다. 다층 퍼셉트론은 여러개의 은닉층을 가질 수도 있다. 여기에서 편의상 은닉층이 하나인 것을 대상으로 설명한다. 은닉층의 노드를 가리키는 첨자로 j를 사용하고 은닉층과 출력층 간의 가중치를 로 나타난다. 다중 퍼셉트론에서 연결선은 인접한 층 사이에서만 만들어진다. 다층 퍼셉트론은 (입력, 출력)쌍의 학습 데이터를 사용하여 학습한다. 입력이 주어질때 어떤 값이 출력되어야 하는지에 대한 정보가 있다. 출력층은 입력에 대한 기대하는 출력값에 대한 정보가 있는 반면에, 은닉층에 대해서는 어떤 값이 나와야 하는지에 대한 정보가 없다. 중간에 있는 층에는 어떤 값이 나와야 하는지에 대한 정보가 없기(숨겨져 있기)때문에 은닉층이라고 부른다

 

다층 퍼셉트론은 입력이 주어지면 전방향으로 계산해가면서 출력값을 만들어 낸다. 먼저 은닉층의 각 노드 J의 퍼셉트론은 다음과 같이 Zj를 출력한다

출력층의 각 노드 k의 퍼셉트론은 은닉층의 출력층을 사용하여 다음과 같이 ok를 출력한다

여기에서 퍼셉트론에 대한 전달 함수 f는 시그모이드 함수이다.

 

2) 다층 퍼셉트론의 학습

다층 퍼셉트론에서 학습은 학습 데이터 입력 (x1,x2,------xd)에 대응하는 학습 데이터 출력(t1,t2,----tm)이 나오도록 입력층과 은닉층 사이의 가중치 벡터 u와 은닉층과 출력층 사이의 가중치 벡터 v를 결정하는 것이다. 가중치를 결정할 때, 아래와 같은 제곱오차 E를 최소화하도록 가중치를 찾는다.

오차 함수 E를 최소화하는 가중치를 찾기 위해 일반적으로 다음과 같이 최대경사법(Gradient descent)을 사용한다. 여기에서 는 1보다 작은 양수값의 학습율(learning rate)이다

다층 퍼셉트론에서 오차 함수에 대한 편미분은 다음과 같이 계산된다.

위 식에서 마지막 부분은 모두 로 정리되는 항을 포함하고 있는데, 이 항은 오차와 관련이 있다. 학습할 때 각 학습 데이터의 입력을 다층 퍼셉트론에 집어넣어 출력을 계산하고, 출력값의 오차를 줄이도록 먼저 은닉층과 출력층 사이의 가중치 벡터 v를 수정한 다음, 입력층과 은닉층 사이의 가중치 벡터 u를 수정한다. 편미분식에 있는 오차 관련 항인 가 출력층에서부터 뒤로 전달되어가면서 가중치를 수정하기 때문에, 다층 퍼셉트론의 학습 알고리즘을 오차역전파(error backpropagation)알고리즘이라 한다. 최대 경사법을 사용할 때 학습 도중에 오차 함수의 모양이 평평한 부분을 만나게 되면 그레디언트가 영벡터가 되어 학습이 이루어지지 않는다. 또한 잡음 등으로 오차 함수에 지역적으로 잘못된 부분이 있을 수 있다. 이러한 상황에서는 직전 시점의 그레디언트를 어느 정도 고려하는 것이 바람직할 수 있다. 이때 가중치를 수정하는 식은 다음 식과 같이 되는데, 직전 시점의 이동 벡터에 대응하는 를 모멘텀항이라고 한다

위 식에서 는 모멘텀율(momentum rate)이라 하는데, 1보다 작은 양의 값이다.

 

3) 오차 함수

신경망 모델의 학습은 오차 함수를 최소화하도록 가중치를 결정하는 것이다. 오차 함수를 최소화 하기 위해 기본적으로 최대 경사법을 사용한다. 출력값이 실수값인 경우에는 오차 함수가 아래와같이 오차제곱합의 평균으로 정의된다. 이진 분류기의 경우에는 아래와 같이 하나의 출력 노드 t만 만들고, 이 노드가 특정 부류에 속할 활률 을 출력하도록 학습시킬 수 있다. 이때 출력 노드의 값 t는 다음과 같은 로지스틱 시그모이드를 활성함수로 사용한다.

 

 

여기에서 x는 입력 벡터를 나타내고, w는 가중치 벡터를 나타낸다.

두 개의 부류를 각각 C1과 C2라고 할 때, 출력 값 y(x,w)는 조건부 확률 에 해당하고, 1-y(x, w)는 조건부 확률 에 해당한다. 목표 출력 t값이 부류 c1일때는 1이고, 부류 c2일 때는 0으로 나타낸다고 하자. 이때 입력 x에 대한 목표 출력 t의 조건부 확률 는 다음과 같이 표현할 수 있다.

학습 데이터 집합이 로 주어질 경우, 학습의 목표는 신경망이 각 학습 데이터에 대한 확률 값을 크게 만들어 주도록 가중치를 결정하는 것이다. 가중치 벡터 w인 신경망이 주어진 학습 데이터 집합 D와 같은 결과를 만들어 낼 확률, 즉 가능도는 다음과 같이 표현할 수 있다.

이때 오차함수는 아래의 가능도에 로그함수를 적용한 후 -1을 곱한 음의 로그 가능도로 다음과 같이 정의한다.

 

                              [이진 분류기의 출력]                                                            [다중 분류기의 출력]

 

3개 이상의 부류가 있는 다중 분류기의 출력 노드의 값들이 각 부류별 확률이 되도록 만들 수 있다. 다중 분류 문제의 학습 데이터  집합은 입력 벡터 Xi와 출력 벡터 Ti의 쌍으로 구성된 학습 데이터들로 구성된다. 학습 데이터는 k개의 부류 중 하나에만 속한다. 만약 k번째 부류에 속하는 데이터라면 출력 벡터는 k번째만 1이고 나머지는 모두 0으로 표현한다. 이러한 표현 방식을 one-hot vector 또는 on-hot encoding 이라고 한다.

출력 노드의 값이 해당 부류에 속할 확률값인 분류기를 신경망으로 구현하려면 신경망의 출력 노드의 출력값이 0이상이면서 전체 출력값의 합은 1이 되도록 만들어 주어야 한다. 이를 위해 위의 그림 b와 같은 형태로 구성되는 softmax 층을 구성하는데, 각 노드 yk의 값은 다음과 같이 계산된다.

 

다중 분류 문제에서 학습 데이터 (xi, ti)의 조건부 확률은 위 식 (8)과 유사하게 다음과 같이 표현할 수 있다.

따라서 전체 데이터 D에 대한 가능도는 다음과 같이 표현할 수 있다.

확률값 출력을 하는 다중 분류기의 오차 함수 E(w)는 윗 식에 대한 음의 로그 가능도 함수로 다음과 같이 정의된다

위 식의 오차 함수는 전체 학습 데이터에 대해서 정의된 것인데, 하나의 학습 데이터(xi. ti)에 대한 오차 함수는 식 (9)에 대한 음의 로그 함수 가능도 함수로 다음과 같이 정의된다.

 

위 식은 확률 분포 에 대한 교차 엔트로피의 식과 같기 때문에 위 식의 오차 함수를 목표 분포 와 신경망 출력 분포 의 교차 엔트로피라고 부르기도 한다

 

다층 퍼셉트론은 대표적인 신경망 모델로서 패턴 인식, 컴퓨터 비전, 영상처리, 비즈니스 인텔리전스(BI:기업의 비즈니스 의사 결정을 위해 사용하는 데이터의 접근, 수집, 보관, 분석 애플리케이션과 기술) 분야에서 이용되고 있다. 다층 퍼셉트론 이외에도 SOM(Self-organizing feature map), 홈필드망, ART(Adaptive resonance theory), RBF(radial basis function) 망, 재귀신경망(recurrent network)과 같은 여러 신경망 모델이 있다.

학습된 다층 퍼셉트론은 새로운 데이터에 대한 예측이나 추정을 위해 사용된다. 학습된 다층 퍼셉트론은 학습데이터의 입력과 출력 관계를 나타내는 함수를 모델링한 것이다.

분류문제라면 입력된 데이터에 대해서 출력층의 어떤 노드가 가장 큰값을 가졌는지에 따라 부류가 결정된다. 회귀 문제라면 출력 노드의 값이 입력된 데이터에 대한 예측값이 된다. 새로운 입력에 대해서 출력을 계산하는 것은 앞에서 설명한 다층 퍼셉트론 동작 방법을 따른다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

'2. 인공지능 > 2-3. 기계학습' 카테고리의 다른 글

2-3-15. 신경망(RBF)  (0) 2018.03.03
2-3-13. 신경망(서포트 벡터 머신)  (0) 2018.02.25
2-3-10. 신경망(퍼셉트론)  (0) 2018.02.15
2-3-9. 군집화 알고리즘  (0) 2018.02.14
2-3-8. k-근접이웃 알고리즘  (0) 2018.01.24

1) 신경망

인간두뇌에 대한 계산적 모델을 통해 인공지능을 구현하려는 분야가 신경망.

뇌생리학의 연구에 따르면 인간 두뇌는 신경세포 개 정도이다. 신경세포의 축색돌기는 다른 신경세포의 수상돌기와 연결되는데, 이 연결부위를 신경연접이라한다. 신경연접을 통해 신경세포들은 전기화학적인 신호를 주고 받는데, 다른 신경세포에서 보내 온 신호를 증폭하거나 감쇄하여 받는다. 받아들인 신호는 세포체(cell body)에서 합성되어, 일정 임계값 이상이면, 신경세포는 축색돌기를 통해서 신호를 내보낸다. 신경연접은 신경세포의 기능을 결정하는 부분인데, 인간 두뇌에는 약 개의 신경연접이 있다고 한다. 이러한 단순한 신경세포들을 이용하여 인간 두뇌는 지능, 감정, 자율신경 조절과 같은 일을 해낸다.

 

2) 퍼셉트론

1958년 Frank Rosenblatt, 1928~1971)이 제안한 초창기 신경망 모델. Perceptron은 신경세포를 네트워크 형태의 계산모델로 표현한 것.

퍼셉트론은 다수의 신호(input)을 입력받아서 하나의 신호(output)를 출력한다 이는 뉴런이 전기신호를 내보내 정보를 전달하는 것과 비슷해 보인다. 그리고 뉴런의 수상돌기나 출색돌기처럼 신호를 전달하는 역할을 퍼셉트론에서는 weight가 그 역할을 한다. 가중치라고 부르는 이 weight가 그 역할을 한다. 가중치라고 부르는 이 weight는 각각의 입력신호에 부여되어 입력신호와의 계산을 하고 신호의 총합이 정해진 임계값을 넘었을 때 1을 출력한다. 넘지 못하면 0 또는 1을 출력한다

각 입력신호에는 고유한 weight가 부여되며 weight가 클수록 해당 신호가 중요하다고 볼 수 있다. 여기서 기계학습이 하는 일은 이 weight(입력을 조절하니 매개변수로도 볼 수 있음)의 값을 정하는 작업이라고 할 수 있다. 학습 알고리즘에 따라 방식이 다를 뿐 이 weight를 만들어내는 것이 학습이라는 차원에서는 모두 같다고 할 수 있다.

퍼셉트론의 출력 값은 앞에서 말했듯이 1 또는 0(or-1)이기 때문에 선형 분류 모형이라고도 볼 수 있다. 보통 실수형의 입력 벡터를 받아 이들의 선형 조합을 계산하는 것이며 다른 포스팅에서 다룬 벡터의 내적과도 유사하다. 

앞의 퍼셉트론 수식에서 나오는 세타θ를 -b로 치환하여 좌변으로 넘기면 

    b + w1x1 + w2x2 <0    => 0
    b + w1x1 + w2x2 >=0  => 1

과 같이 되며 여기에서 b를 편향(bias)라고 할 수 있다. 기계학습 분야에서는 모델이 학습 데이터에 과적합(overfitting)되는 것을 방지하는 것이 중요하다. 여기서 과적합이라 함은 모델이 엄청 유연해서 학습 데이터는 귀신같이 잘 분류하지만, 다른 데이터를 넣어봤을 때는 제대로 성능을 발휘하지 못하는 것을 말한다. 어느 데이터를 넣어도 일반적으로 잘 들어맞는 모델을 만드는 것이 중요하다.


따라서 앞에서 설명했듯이 편향은 θ(theta)로 학습 데이터(Input)이 가중치와 계산되어 넘어야 하는 임계점으로 이 값이 높으면 높을 수록 그만큼 분류의 기준이 엄격하다는 것을 의미한다. 그래서 편향이 높을 수록 모델이 간단해지는 경향이 있으며 (변수가 적고 더 일반화 되는 경우) 오히려 과소적합(underfitting)의 위험이 발생하게 된다. 반대로 편향이 낮을수록 한계점이 낮아 데이터의 허용범위가 넓어지는 만큼 학습 데이터에만 잘 들어맞는 모델이 만들어질 수 있으며 모델이 더욱 복잡해질 것이다. 허용범위가 넓어지는 만큼 필요 없는 노이즈가 포함될 가능성도 높다. 이를 편향과 분산의 트레이드오프 관계라고 보통 부르며 기회가 되면 이 부분을 더 다뤄보도록 하겠다. 

하지만 퍼셉트론이 인공지능 분야에서 센세이션을 불러일으켰고 연구 과제도 이쪽으로 몰렸으나 이것이 가지는 한계점이 밝혀지면서 한동안 소외 받는 이론이 되었다. 퍼셉트론을 제시한 로젠블랫은 자살 같은 사고로 세상을 떠났고 시간이 흐른 뒤에야 그의 업적이 재조명 받았다. 퍼셉트론의 한계는 선형으로 분류를 할 수 있지만 XOR와 같이 선형 분류만 가능하며 비선형 분류는 불가능하다는 점이다.


XOR 논리는 exclusive(배타적) 논리연산이다. 아래의 진리표를 보면, x1과 x2 중 어느 한쪽이 1일 때만 1을 출력한다.

 x1

x2 

 0

 1

 0

 0

 1

 1

 

아래 그림을 보면 XOR에서는 선형으로 (직선 하나로)분류가 불가능함을 알 수 있다

 

출처: http://ecee.colorado.edu/~ecen4831/lectures/NNet3.html

 

퍼셉트론의 한계를 간략히 말하면, 직선 하나로 나눈 영역만 표현할 수 있어 XOR과 같은 데이터 형태는 분류가 불가능하다는 한계가 있다.

 

 

-----------------------------------------------------------------------------------------------------------------------------------

 

 

다른 신경세포의 축색돌리로 부터 오는 입력 신호를 로 표현하고, 신경연접에서 신호의 감쇄 또는 증폭 정도를 가중치 벡터

로 나타낸다. 세포체 내에서의 신호의 합성은

여기서, W0는 바이어스 항이라 하고, W0 = W0*1 = W0*W0으로 놓을 수 있으므로 항상 X0 =1의 값을 갖는 특수한 0번째 입력을 추가하여 식을 간략하게 한것이다.  -W0 는 신호 출력의 임계값이다. 합성된 신호의 임계값 이상이면 신호를 출력하는데, 퍼셉트론은 sigmoid와 다른 step function을 사용하여 1 또는 -1 값을 출력한다. 계단함수와 같이 출력값의 형태를 결정하는 함수를 전달함수 또는 활성화 함수(Activation Function)라고 한다. 입력 x에 대한 퍼셉트론의 출력 y는 아래와 같이 표현 가능하다.

f는 퍼셉트론의 전달 함수를 나타내는데, 퍼셉트론은 계단 함수를 전달함수로 사용한다.

 

 

위와 같이 LTU로 된 단순 퍼셉트론의 학습 원리가 있다. 먼저 가중치를 임의의 값으로 초기화 한후 학습 패턴 x 를 입력하여 퍼셉트론 출력 f가 목표 출력  y와 같으면 가중치를 변경하지 않고, 다르면 가중치를 변경하는 방식으로 학습한다. 퍼셉트론 출력이 목표 출력과 일치하지 않는 경우는 다음과 같이 두 가지가 있으며 각각의 경우 가중치 변경 규칙을 다음과 같다.
• 목표 출력 y=1 인데인 f=-1 경우: 가중치 w를 w+x로 증가시킨다
• 목표 출력 y=-1인데인 f=1 경우: 가중치 w를 w-1로 감소시킨다
이와 같은 방식으로 학습예를 반복적으로 관측하면서 가중치를 변경하면 선형분리가 가능한 분류 문제의 경우 올바른 분류기를 학습해 낼 수 있음을 증명할 수 있다. 이를 퍼셉트론 학습 규칙이라고 한다.

 

학습에서 가중치 벡터 w 와 임계값 요소 b를 결정한다. 나중에 식을 간단하게 전개하기 위해, 항상 1값을 주는 입력 X0=1을 추가하고, 이에 대한 가중치를 b로 만들어주면, s를 벡터연산으로 표현 할 수 있다.

 

따라서, 로젠벨트의 퍼셉트론은 하나의 선형 임계뉴런(LTU, Linear Threshold Unit) 으로 구성된 신경망이다. 후에 나오는 다수의 뉴런으로 구성된 다층퍼셉트론과 명확히 구별하기 위하여 경우에 따라서는 퍼셉트론을 단순 퍼셉트론(Simple Perceptron)이라 부르기도 한다.

 

 

 

 

퍼셉트론은 초창기에 숫자 인식과 같은 흥미로운 결과들을 보여주며, 많은 관심을 끌었지만, XOR(exclusive OR)와 같은 단순한 문제도 해결할 수 없는 단점이 있다. 퍼셉트론은 기본적으로 선형으로 표현되는 결정 경계만을 설정하는데, XOR는 선형 경계로 부류들을 분리할 수 없는 문제이다. 이러한 문제를 선형 분리 불가(linearly inseparable problem)라고 한다. 결국, 퍼셉트론은 선형 분리불가 문제에는 적용할 수 없다는 것이다.

 

단일 퍼셉트론으로는 XOR을 분류할 수 없지만, 다층 퍼셉트론을 만들면 이를 극복할 수 있습니다. 다층(multi-layer)이라는 말은 하나의 퍼셉트론에 또 다른 퍼셉트론을 덧붙인다는 의미로 볼 수 있다. 단층 퍼셉트론이 비선형 영역을 분리할 수 없다는 것이 문제이며 다층으로 할 경우 비선형으로 이를 해결할 수 있다.

 

 

 

 

 

 

 

 

 

 

 

 

군집화는 자동으로 데이터를 군집으로 나누거나 유사한 것끼리 연결하는 기계학습 분야이며 우리가 찾고 있는 것이 무엇인지 모르기 때문에 군집화는 예측보다 지식의 발견에 사용된다. 인공지능의 군집화는 인간의 오랜 인식이 잘못되어 있는 것을 찾아 내기도 하는 의외의 연관성을 찾기도 하는 통찰을 보이기도 한다

구성상태에 따라 계층적 군집화와 분할 군집화로 나눌 수 있다.

1) 계층적 군집화(hierarchical clustering)

-군집화의 결과가 계층적으로 나타나는 것인데, 가까운 것끼리 작은 군집을 형성하고, 가까이에 있는 작은 군집이 결합해서 더 큰 군집을 형성하는 형태임.  클러스터를 미리 정할 필요가 없다는 것. 계층적 군집은 각 개체를 하나의 군집으로 보고 가까운 군집끼리 합해 나가는 응집분석과 개체전체를 하나의 군집으로 보고 각 군집을 두 개의 군집으로 계속 나누는 분할 분석으로 구분.

그러나 한 계층에서 어떤 군집에 할당되면 그 계층 아래에서는 다른 위 계층에서 나뉘 다른 군집으로 할당 될 수 없다는 특징이 있다. 따라서 계층적 군집화는 종종 탐색적인 의미로 사용되고 있으며, 최종적 군집화는 비계층적 군집화를 통하여 이루어지는 경우가 많다

--응집분석의 알고리즘

 `각 개체를 하나의 군집으로 하여 전체 n개의 군집을 형성한다

 `각 군집 간의 거리를 계산하여 가장 가까운 두 개의 군집을 합친다.

 `전 개체가 하나의 군집이 될 때까지 군집을 계속 합친다

방법으로는 단일연결법, 완전 연결법, 평균 연결법이 있다.

 

계층적 군집화와 덴드로그램. 덴드로그램의 y축은 군집내부의 유사도를 나타내는 값

 

2) 분할 군집화(partitioning clustering)

계층적 구조를 만들지 않고 전체 데이터를 유사한 것들끼리 나누어서 묶는 것이다. 분할군집화의 대표적인 알고리즘이 k-means 알고리즘.

k-평균 알고리즘(k-mean)알고리즘

주어진 데이터를  k개의 클러스터로 묶는 알고리즘으로, 각 클러스터와 거리 차이의 분산을 최소화하는 방식으로 동작.

--절차

1. 전체 데이터 중에서 무작위로 k개의 데이터를 선택해서 각각을 군집의 초기 중심으로 정함

2. 각 데이터와 각 군집 중심 간의 거리를 계산

3. 각각의 점들을 방금 구한 무게중심 가운데 제일 가까운 것에 연결지음으로써 새로이 집합을 나눌 수 있음.

4. 각 군집에 대해 배정된 모든 데이터의 평균을 구해서, 이것을 새로운 군집 중심으로 정함

5. 이전 상태와 비교하여 군집의 변화가 있다면, 단계2로 돌아감. 그렇지 않으면 종료.

 

알고리즘

i번째 클러스터의 중심을 , 클러스터에 속하는 점의 집합을 Si 라고 할때, 전체 분산은 다음과 같이 계산

이 값을 최소화하는 Si를 찾는 것이 알고리즘의 목표가 됨

알고리즘은 우선 초기의 를 임의로 설정하는 것으로 시작한다. 그 다음에는 다음의 두 단계를 반복함

----클러스터 설정 : 각 점에 대해, 그 점에서 가장 가까운 클러스터를 찾아 배당

----클러스터 중심 재조정 : Ui를 각 클럿터에 있는 점들의 평균값으로 재설정해 줌

 

만약 클러스터가 변하지 않는다면 반복을 중지.

 

 

 

데이터에 있는 군집의 갯수는 알 수 없지만 k-mean 알고리즘은 군집의 갯수 k를 스스로 제공한다

 

 

 

 

 

 

 

 

 

 

 

 

-대부분의 기계학습 방법은 학습 데이터로부터 주어진 문제를 해결하기 위한 모델을 먼저 학습한 다음, 이를 이용하여 질의(또는 입력)에 대한 답을 찾는데 미리 학습을 하지 않은 채 있다가, 질의 입력이 들어올 때야 학습데이터를 사용하여 출력(대답)을 결정하는 방법도 있음.

-k-nearest neighbor algorithm:KNN algorithm) 은 분류가 되어 있지 않은 데이터(Test data)들을 분류된 데이터(training data)들 중 가장 비슷한 속성을 가진 그룹으로 분류해주는 방식으로서 그룹의 항목들이 동질적인 경향을 보일 때 적합하지만 그룹 간 명확한 차이가 없으면 효과적이지 못함

-즉, 입력과 결과로 구성된 학습데이터들이 주어진 상황에서 새로운 입력이 들어오면, 입력에 가장 근접한 k개의 학습데이터를 찾고 이들 데이터의 결과 정보를 이용하여 결과를 추정함

 

토마토는 위 그림에서 어느 그룹에 속할것인가?

이런 질문에 속할 때, 어디에 더 가깝나에 따라서 어느 기준을 정해서 분류를 한다. 방법에는 여러가지가 있는데, 흔히 유클리드안 방법을 사용함.

 

-KNN을 사용하기 위해서는 질의와 학습 데이터간의 거리를 계산하는 방법이 있어야 함. 데이터의 속성이 모두 수치값인 경우에는, 데이터를 유클리드 공간(거리가 정의될 수 있는 공간으로 사람이 사는 3차원 공간이 대표적)상의 점으로 나타낼 수 있음. 질의와 학습 데이터의 입력이 모두 유클리드 공간상의 점으로 간주될 수 있으므로 유클리드 거리를 측정하는데 사용할수 있음. N차원 공간의 두 점

이 주어질때, 두 점 사이의 유클리드 거리 d(X, Y) 는 다음과 같이 정의 됨

 

-데이터가 범주형 속성을 갖는 경우 타당한 거리를 정의하는 것이 어려운 경우도 있음. 데이터 간의 타당한 거리를 정의할 수 없다면 KNN 적용

-주요 특징

   *Lazy Learning <- No abstraction, No generalization
   *Instead of instance-based Learning
   *Non-parametric Learning
   *너무 작은 k : Overfitting 우려
   *너무 큰 k : 데이터 구조 파악의 어려움

 

-카드신청자의 카드 사용 승인을 거절해야 하는 경우 그것의 결과를 설명할 수 없는 이 신경망구조분석보다 이유를 설명해줄 수 있는 의사결정나무 분석이 더 유용

-분류(classification) 기술 중 가장 일반적으로 사용되는 방법. 주어진 데이터를 분류하며 예측에는 사용할 수 없음. 즉 목표변수가 범주형인 경우 사용되며 목표 변수가 수치형인 경우에는 결정트리 알고리즘을 적용할 수 없음

 

-meet friend 데이터를 분석하여 만약 만나지 않았다면 결정트리에 의해 어떤 결정을 할 것인가를 나타낸 것. 여기서 사각형을 decision block, 타원형을 terminating block, 화살표를 branches라고 함. 단말노드를 여러개 가지고 있는 결정 트리는 여러 개이 규칙을 한꺼번에 표현하고 있음

-입력과 출력 정보가 있는 데이터로부터 결정 트리를 만들면, 결정 트리로 새로운 데이터에 대한 출력값을 예측할 수 있음. 이 경우 결정 트리는 분류기(Classifier) 역할을 함

-예시

createBranch function(  )

Check if every item in the dataset is in the same class:

    If so return the class label

    Else

        find the best feature to split the data

        split the dataset

        create a branch node

             for each split

                 call createBranch and add the result to the branch node

        return branch node
                                                         출처: http://seamless.tistory.com/20 [Mino's blog]

 

 

1. 결정트리 학습 알고리즘

 가, ID3( Iterative Dichotomiser 3) : Ross Quinlan

-범주형 속성값을 갖는 데이터로부터 엔트로피 개념을 사용하여 결정 트리를 구성

-이와 같은 결정트리 학습 알고리즘은 모든 데이터를 포함하는 하나의 노드에서 시작해 노드를 반복적으로 분할하여 결정트리를 만듬

-노드 분할 단계에서 노드를 분할할 기준이 될 분할 속성(spiltting attribute)을 선택하고, 속성값에 따라 자식 노드들을 만들어 데이터들을 해당하는 자식 노드에 나누어 넣음

-분할 속성을 결정할 때 어떤 속성을 선택하는 것이 효율적인가를 고려해야하는데 분할할때 분할된 각 데이터 집합이 동일한 부류가 되게 하는 속성을 선택하는 것이 좋다. 데이터 집합의 동질적인 정도를 측정하는 척도로 엔트로피(entropy, H)를 사용. 위에서 P(x)는 주어진 데이터 집합에서 부류 x에 속하는 데이터 비율을 나타냄

-엔트로피는 원래 정보량을 측정하기 위해 개발된 것인데, 데이터가 속하는 부류들이 고르게 섞여 있을수록 엔트로피가 커지는 특성이 있음

-ID3 알고리즘은 분할 속성을 결정할 때 엔트로피를 이용한 정보 이득(Information gain, IG)을 사용하며 데이터를 분할하기 전과 후의 변화를 말함

-어떤 속성을 선택함으로 인해서 데이터를 더 잘 구분하게 되는 것을 의미함. 예를 들어 학생 데이터에서 수능 등급을 분류하는데 있어 영어 점수가 수학 점수보다 변별력이 높다고 한다면 영어점수 속성이 수학점수 속성보다 정보 이득이 높다고 할 수 있음

-IG는 전체 데이터 집합의 엔트로피 H(s)에서 특정 속성으로 분할한 이후의 각 부분집합의 정보량의 가중 평균(P(t)H(t)을 뺀 값.

-여기서 H(s)는 상위노드의 엔트로피를 의미하며 정보이득의 계산 식은 상위 노드의 엔트로피에서 하위 노드의 엔트로피를 뺀 것임. IG는 속성 A를 선택했을대 정보이득을 계산하는 식으로, 원래 노드의 엔트로피를 구한 값을 I 라고 하면, 속성 A를 선택한 후의 x개의 하위노드로 나누어 진것에 대한 전체 엔트로피를 구한 후 그것을 J라고 할 때 I-J를 의미하는 것. 이때 이 결과의 값이 클수록 정보이득이 큰것이고 속성 A가 분류하기 가장 좋다는 의미

-그외 정보이득 비(Information gain ratio), 지니계수(Gini index) 등을 사용..

나. C4.5

-1993년 Quinlan에 의해 제안되었고 ID3 알고리즘의 몇가지 한계점을 보완한 알고리즘

-ID3의 문제점

  a. 수치형 속성 취급

  b. 무의미한 속성을 제외하는 문제

  c. 나무와 깊이 문제

  d. 결측치 처리

  e. 비용고려

  f. 효율성

 

2. 결정트리를 이용한 회귀

-단말노드가 부류가 아닌 수치값을 가지는데, 루트 노드에서 해당 단말 노드에 있는 조건들을 모두 만족하는 것들이 가지는 대표값에 해당. 회귀문제에 결정트리를 적용할 때에는, 단말에서 표준편차를 가장 크게 축소하는 속성을 선택.

-여기에서 SD는 표준편차를 나타내고 m은 전체 출력값의 평균을 나타냄. SD(A)는 속성 A를 기준으로 분할한 후에 부분 집합별 표준편차의 가중치 평균을 나타냄

 

 

 

  

 

 

 

-이상치(outlier)는 다른 데이터와 크게 달라서 다른 메커니즘에 의해 생성된 것이 아닌지 의심스러운 데이터를 말함.

-이상치는 잡음 데이터(noise data)와는 다르며 잡음은 관측을 잘못하거나 시스템에서 발생하는 무작위적 오류(random error)등에 의해 발생하는 것으로 이상치를 탐지할 때 제거되어야 할 요소

-잡음은 관심이 없어 제거할 대상이지만, 이상치는 관심 대상

-이상치 감지는 신규성 감지(novelty detection)와 관련된 개념인데, 두 용어를 같은 의미로 사용하기도 함

-이상치는 점 이상치, 상황적 이상치(contextual outlier), 집단적 이상치(collective outlier)로 구분할 수 있음

 

[ 점 이상치 ]                               [집단적 이상치]

 

-점 이상치는 다른 데이터와 비교하여 차이가 큰 데이터를 말함

-상황적 이상치는 상황에 따라 정상일 수도 있고 비정상일 수도 있는 데이터에 대해서 상황에 맞지 않는 데이터. 예를 들어, 현재 성인의 키가 175cm인 데이터는 정상이지만 300년전 175cm는 이상치임. 집단적 이상치는 개별 데이터는 정상처럼 보이지만 여러 데이터를 모아서 보면 비정상적으로 보이는 데이터 집단을 말함

-네트웍 트래픽 데이터에서 특정 웹서버에 대한 서비스 요청 메시지 각각은 정상이지만, 짧은 시간에 갑작스럽게 급증한 서비스 요청 메시지들은 denial-of-service attack, DOS attack 일 수 있음

-이상치 검출 방법 : 지도학습, 군집분석, 반지도학습 등

-사용 분야 : 카드 사용 패턴 분석, 시스템 에러 진단, 급격한 증가 패턴, 특이사건 등

□ 

 

 

 

'2. 인공지능 > 2-3. 기계학습' 카테고리의 다른 글

2-3-8. k-근접이웃 알고리즘  (0) 2018.01.24
2-3-7. 결정트리  (0) 2018.01.22
2-3-5. 기계학습 문제(차원축소)  (0) 2018.01.21
2-3-4. 기계학습 문제(회귀)  (0) 2018.01.13
2-3-3. 기계학습 문제(분류)  (0) 2018.01.09

+ Recent posts