Top > Info > Data Mining > 2-6. 인공지능망(Artificial Neural Networks)
▷▶ 인공지능망(Artificial Neural Networks)
뉴럴 네트워크는 데이터 마이닝과 의사결정 지원에 있어 널리 활용되어지고 있다. 이는 매우 강력하고, 일반적인 용도의 툴로써 예측과 분류 및 군집분석에 적용된다. 뉴럴 네트워크는 재무에서부터 의학분야, 가치있는 고객의 군집화에서 신용카드 거래 오용방지에 이르기까지 광범위한 산업분야에 적용되어왔다.
사람들이 경험을 통해 일반화에 익숙한 반면, 컴퓨터는 일반적으로 지속적인 명령어를 처리하는데 뛰어나다고 할 수 있는데 뉴럴 네트워크는 이러한 컴퓨터와 인간과의 차이를 인간두뇌의 뉴럴 연결고리를 디지털 컴퓨터상에서 모델링함으로써 연결해주는 역할을 수행한다. 그러나 뉴럴 네트워크도 단점을 가진다. 뉴럴 네트워크의 훈련결과는 네트워크를 통하여 할당되는 내부적인 가중치라 할 수 있는데, 이러한 가중치들은 많은 전문가들에게 왜 특정한 의사결정이 올바른 결정인가를 묻는 것과 같이 왜 이러한 솔루션이 유효한지에 대해 어떠한 통찰력도 제공치 못한다는 점이다. 그러므로 뉴럴 네트워크는 인간의 의식세계와 같이 신비스러운 내부 작업을 가진 블랙박스로써 가장 잘 접근되어질 수 있다.
역사
뉴럴 네트워크는 컴퓨터 공학에 있어 흥미로운 역사를 가진다. “뉴론이 어떠한 역할을 수행하는가?” 라는 태초의 연구가 컴퓨터가 존재하지 않았던 1940년대에 시작되었고 1950년대에는 디지털 컴퓨터가 도입되어 컴퓨터 공학자들은 McCulloch와 Pits의 연구를 바탕으로 Perceptron이라는 모델을 구현하기에 이른다. 그러나 초기 뉴럴 네트워크는 오늘날 저렴한 데스크탑 컴퓨터보다도 강력하지 못했던 컴퓨터의 한계로 인해 그 연구가 제한될 수 밖에 없었으며, 단순한 네트워크 연구가 이론적으로 부족했다는 이유도 역시 뉴럴 네트워크의 발전을 방해했다. 이러한 이유들로 인해 컴퓨터상에서 뉴럴 네트워크를 구현하는 연구는 1970년대까지 급격히 쇠퇴하였으나 1982년John Hopfield가 초기 연구의 이론적 함정을 극복한 뉴럴 네트워크 훈련방식인 backpropagation을 개발하게 되었고, 1980년대를 통해 연구의 중심이 연구실에서 상업적인 분야로 이동하게 되었다. 즉, 산업 운영에 있어서의 문제점을 해결하기 위해 모든 산업에 적용되기 시작했다.
이와 동시에 뉴럴 네트워크는 생물학적 활동의 모델로 개발되어 왔으며, 통계학자들은 컴퓨터를 활용하여 통계모델의 기능으로 이를 확장시켰다. 로지스틱 회귀분석이라고 불리는 기법은 많은 변수들의 복잡한 기능들을 이해하는데 특히 가치있다고 판단되었으며, 선형 회귀분석과 같이 관찰된 데이터가 곡선의 형태를 취하도록 표현된다. 로지스틱 회귀분석과 선형 회귀분석은 뉴럴 네트워크의 특별한 경우라고 표현되어질 수 있을 것이다.
뉴럴 네트워크는 여러 요소들이 합쳐짐으로써 1980년대에 이르러 널리 활용되어질 수 있었는데 이러한 요소들로서
첫째, 컴퓨팅 능력을 이미 데이터를 이용할 수 있는 곳이라면 어디에서라도
활용할 수 있게 되었다는 점과
둘째, 분석가들이 이미 알려진 통계적 기법들에 밀접하게 관련되었음을 인식하여
뉴럴 네트워크에 좀 더 친숙해졌다는 점,
셋째, 대부분의 기업들의 운영계 시스템이 이미 자동화되었기 때문에 관련데이터가
존재한다는 점, 네번째로, 인공지능보다도 유용한 어플리케이션이 좀 더 중요하게
되었다는 점을 들 수 있다.
데이터 마이닝을 위한 뉴럴 네트워크
분류나 예측은 뉴럴 네트워크가 사용되는 가장 일반적인 예라 할 수 있다. 이러한 프로세스의 단계는 다음과 같다.
입력과 출력 특성을 파악하라.
입력과 출력의 범위가0과1사이에 있도록 조작하라.
훈련을 위한 예들중에서 대표적인 셋의 네트워크를 훈련시켜라.
훈련을 위한 예와는 별도로 테스트 셋상에서 네트워크를 테스트하라. 만약 필요하다면
훈련을 반복함으로써 훈련셋, 네트워크 구성, 파라미터를 조절하라. 수행정도를 평가하기
위해 평가를 위한 셋을 활용하여 네트워크를 평가하라.
알려지지 않은 입력을 위한 결과를 예측하기 위해 네트워크에 의해 생성되는 모델을
적용해라.
네트워크를 활용하여 성공으로 이끌기 위해서는 몇가지 핵심요소가 존재한다. 첫번째 요소는 올바른 훈련 셋을 선택하는 것이다. 두번째 요소는 내부에 존재하는 패턴을 인식하여 네트워크의 기능을 최대화하기 위한 방식으로 데이터를 표현하는 것을 들 수 있으며, 세번째로는 네트워크로부터 결과를 해석하는 것, 마지막으로 네트워크 형태, 파라미터 관리 훈련과 같은 네트워크의 내부사항에 대한 구체적인 사항들을 이해하는 것이 좋은 결과를 얻을 수 있도록 도와줄 것이다.
예측 혹은 분류의 모델에 있어 위험요소들중의 하나는 모델이 시간이 경과함에 따라 진부하게 된다는 것이다. 이렇게 뉴럴 네트워크 모델을 현실을 반영하는 모델로 유지하는 문제는 두가지 요소들에 의해 더욱 어려워질 수 있는데 첫번째로 모델이 규칙의 형태로 그 자신을 표현하지 못하기 때문에 진부하게 된 경우라도 그것이 확연히 드러나지 않는다는 점과 두번째로 뉴럴 네트워크 모델은 특히나 튼튼하게 만들어져있다는 점을 들 수 있다. 즉, 모델은 점차적으로 만료가 되고 언제 이것이 갱신되어야 하는지가 명확치 않다는 점이다.
이러한 문제점의 해결방안은 좀 더 최신의 데이터를 뉴럴 네트워크에 통합시키는 것이다. 한가지 방법으로 동일한 뉴럴 네트워크를 다시 훈련 모드로 되돌려 다시 새로운 값으로 훈련시키는 방법을 들 수 있는데 이는 만약 네트워크가 조금의 변경을 가진 결과를 필요로 할 때 유용할 수 있다. 또 다른 접근방법으로 훈련 셋에 새로운 예를 첨가함으로써 다시 한 번 시작해보는 방법을 들 수 있다. 이 방법은 시장상황이 매우 급격히 변화하고, 기존 훈련 셋을 더 이상 사용할 수 없을 때 적합하다.
뉴럴 네트워크란 무엇인가?
뉴럴 네트워크는 생물학적 뉴론상에서 모델화된 기본적인 단위들로 구성된다. 각각의 단위는 많은 입력을 가지며 이들은 하나의 출력값으로 통합된다.
Feed-forward 뉴럴 네트워크는 입력에서부터 출력을 통해 하나의 길로만 흐르는 네트워크를 의미하며, 네트워크의 순환은 존재하지 않는다. Feed-forward 네트워크는 네트워크에 있어 가장 단순하고 가장 유용한 네트워크로 다음에 오는 세가지 기본 질문이 존재한다.
단위(unit)란 무엇이며 어떻게 행동하는가? 즉, 활성화 함수(activation
function)란?
단위들이 어떻게 서로 연결되는가? 즉, 네트워크 구성(topology of network)이란?
어떻게 네트워크가 패턴을 인식하도록 학습하는가? 즉, backpropagation이란?
뉴럴 네트워크의 단위란 무엇인가?
뉴럴 네트워크는 생물학적 뉴론의 활동을 모델화하기 위해 설계된 기본적 단위들로 구성된다. 단위는 입력들을 하나의 출력값으로 통합하는데 이러한 결합을 단위의 활성화 함수라 한다.
활성화 함수는 두가지 부분으로 나뉜다. 첫번째 부분은 모든 입력을 하나의 값으로 통합하는 것이다. 즉 단위로의 각각의 입력은 자체적인 가중치를 가진다. 가장 일반적인 결합 함수는 가중치를 가지는 합계(weighted sum)로 각 입력은 가중치로 곱해지고 이러한 것들은 함께 더해진다. 다른 결합 함수들도 때때로 유용하며, 가중치를 가진 입력의 최대값, 최소값 혹은 논리적 and, or값을 포함한다.
활성화 함수의 두번째 부분은 이전함수(transfer function)로 결합함수로부터 단위의 출력으로 값이 이전된다는 사실에서 붙여진 이름이다. 이전 함수에는 지그모이드, 선형, 하이퍼볼릭 탄젠트 함수가 있다. 선형 이전 함수는 제한된 실질적인 값을 가지는데 선형 이전 함수를 가진 단위로만 구성된 Feed-forward 뉴럴 네트워크는 실제로 선형 회귀분석을 실행한다. 지그모이드와 하이퍼볼릭 탄젠트는 비선형 함수이며 비선형적인 행위를 취한다. 이들 줄의 가장 큰 차이는 지그모이드 함수가0과1사이의 출력범위를 가지는 반면, 하이퍼볼릭 탄젠트 함수는 ?1과1사이의 값을 가진다는 것이다.
가장 일반적인 이전 함수는 S자 모양의 지그모이드 함수이다. 모든 입력의 가중치가 작을 경우 결합 함수의 결과는 ?1과1사이에 있을 정도로 작다. 이러한 범위내에서 지그모이드 함수는 거의 선형이며 단위는 거의 선형행위를 보인다. 가중치가 더 커질수록 지그모이드는 점차로 ?1혹은1로 수렴하게 된다. 이러한 행위는 입력의 선형 모델로부터 비선형 모델로 점차 변함을 보여준다.
Feed-Forward 뉴럴 네트워크
단위들은 세개의 층으로 구성된다. 왼쪽의 층은 입력과 연결되어 있으며, 값들은0과1사이의 값을 갖도록 조작된다. 이러한 단위는 네트워크의 입력층이라 명명되고, 입력층의 각 단위는 정확히 하나의 소스로 연결된다.
다음은 숨겨진 층(hidden layer)이라 불리며, 이는 네트워크의 입력이나 출력에 연결되지 않았기 때문이다. 숨겨진 충의 각 단위는 입력 층의 모든 단위들에 완전히 연결되었다. 네트워크가 표준 단위들을 포함하므로 숨겨진 층의 단위들은 각 입력의 값을 곱함으로써, 가중치를 부여하고, 더하며, 지그모이드 함수에 적용함으로써 출력을 연산한다.
단위들 각각은 상위에 추가적인 입력값을 가지는데, 이는 상수값을 가진 입력으로 항상1에 고정되어있다. 다른 입력과 같이 가중치를 가지며, 결합 함수를 포함한다. 상수값을 가진 입력은 네트워크가 패턴을 더 쉽게 이해할 수 있도록 해준다. 훈련단계에서 네트워크에 대하여 다른 가중치와 마찬가지로 상수값을 가지는 입력에 가중치를 조절한다.
오른쪽의 마지막 단위로 출력층을 말할 수 있다. 이는 숨겨진 층과 모든 단위에서 연결되어 있으며, 대부분 뉴럴 네트워크는 하나의 값을 갖도록 연산되며, 출력층에는 하나의 단위만이 존재하고, 0과1사이의 값을 가진다.
경우에 따라 출력층은 하나 이상의 단위를 가질 수도 있다. 예를 들어 백화점은 고객들이 다양한 부문 예를 들면 여성 의류, 가구, 오락 등에 구매여부가 있는지를 예측하기 원할 것이다. 백화점은 이러한 정보를 활용하여 촉진활동을 계획하고, 직접 목표고객을 대상으로 한 메일링을 시도할 것이다.
Backpropagation을 활용한 뉴럴 네트워크가 어떻게 학습하는가?
뉴럴 네트워크를 훈련하는 것은 단위들의 각 입력들에 대해 가장 치적의 가중치를 부여하는 프로세스라 할 수 있다. 이러한 프로세스의 목적은 훈련 셋을 활용하여 가중치를 부여하고, 네트워크의 결과치가 훈련셋의 많은 예들에서와 마찬가지로 가능한 한 원하는 출력값에 근접하도록 하는 것이다. 현재까지 이러한 프로세스를 수행하는데 사용되었던 가장 일반적인 기술은 backpropagation이며, John Hopfield에 의해 개발되었다. Backpropagation의 핵심은 다음에 오는 세가지 단계를 가진다.
- 네트워크는 훈련 예를 가진다. 네트워크에서 가중치를
활용하여 출력값을 산출하거나, 예를 출력한다.
- 이후 연산된 결과와 기대했던 실제 결과의 차이를 취합하여 에러를 산출한다.
- 에러는 네트워크를 통해 전달되고 가중치는 에러를 최소화하도록 조절된다.
하나의 단위내에서 가중치를 조절하기 위해 에러 측정을 활용하는 것은 알고리즘에 있어 가장 중요한 부분이 된다. 에러가 주어지면 단위는 어떻게 가중치를 조절할까? 이것은 바로 출력이 얼마나 각각의 입력에 대해 얼마나 민감한지를 측정함으로써 시작된다. 이후 단위는 에러를 없애는 것이 아니라 줄이기 위해 각각의 가중치를 조절하게 되고 훈련 셋의 각 예들의 조절은 최적의 값을 갖도록 가중치를 천천히 근접시킨다. 한가지 기억해야 할 것은 이러한 프로세스가 훈련 셋에 정확히 맞추기 위함이 아니라 입력에 대한 패턴을 일반화하고, 파악하기 위함이라는 사실이다.
가중치를 조절하는 기술은 일반화된 델타 규칙(generalized delta rule)이라고 한다. 여기에는 두가지 중요한 파라미터가 존재하는데 첫번째가 타성(momentum)으로 가중치가 향하는 방향을 변경시키는 각 단위의 내부 가중치의 경향을 나타낸다. 두번째는 학습율(learning rate)로 얼마나 자주 가중치가 변경되는지를 관리하는 것이다. 학습율에 대한 가장 적합한 접근방식은 학습율을 크게 잡고, 네트워크가가 훈련됨에 따라 점차적으로 천천히 이를 줄이는 것이다.
훈련 기법에 있어 한가지 위험한 것은 부분 최적화(local optimum)라 불리는 것으로 빠져드는 것이다. 이것은 네트워크가 훈련 셋을 위해 올바른 결과를 생성시켰을 경우, 가중치를 조절하는 행위가 더 이상 네트워크의 성능을 향상시키지 못할 경우 발생된다.
유전자 알고리즘을 활용한 훈련
유전자 알고리즘을 활용하여 뉴럴 네트워크를 훈련시키는 것은 점차적으로 널리 확산되고 있는 추세이다. 유전자 알고리즘을 활용할 경우 첫번째 단계는 크로모좀(Chromosome)을 정의하는 것이다. 다음 단계는 크로모좀을 위한 적합함수를 결정하는 것이고, 주어진 훈련 예에서 크로모좀을 평가할 수 있으며, 그 예를 통해 에러를 결정할 수 있다. 적합 함수는 이후 훈련 셋의 모든 예에 대하여 에러의 합을 나타내며 유전자 알고리즘은 선택, 교차, 변경(selection, crossover, mutation)을 활용하여 적합도 함수를 최소화하는 행위를 줄인다.
유전자 알고리즘은 네트워크 구성을 정의하는 역할을 담당할 수도 있다. 예를 들어 가중치를 코딩화하는 대신, 크로모좀은 숨겨진 단위들, 타성 및 학습율의 수를 코딩화할 수 있다. 이러한 시나리오로 네트워크는 크로모좀에 있는 파라미터를 활용하여 테스트 셋의 부분에 대하여 훈련되어진다. 이후, 네트워크가 훈련되어졌을 때, 적합도 함수를 연산하기 위한 평가셋을 평가하게 된다.
훈련 셋 선택
훈련 셋은 예측 혹은 분류값이 이미 알려진 레코드들로 구성된다. 훌륭한 훈련 셋을 선택하는 것은 아주 중요한 일이라 할 수 있다. 이러한 고려사항들 중에서 가장 중요한 것은 훈련 셋이 네트워크가 접하게 되는 모든 특성을 지닌 값들의 모든 범위를 포함할 필요가 있다는 것이다.
특성들의 수
뉴럴 네트워크를 훈련시키기 위해 필요한 시간은 네트워크에 의해 사용될 입력 특성의 수와 직접적으로 관련된다. 하이브리드 접근방식은 어떠한 특성들이 예측적인 의도로 좀 더 중요하며, 네트워크를 훈련시키기에만 중요한 특성을 활용할 수 있는지를 결정하는 또 다른 기술을 활용한다. 통계적 상관관계는 중요성에 우선순위를 부여하는 하나의 방식이며, 다른 방법은 의사결정 나무를 활용하는 것이다.
입력값의 수
특성들의 수와 훈련 셋의 크기간의 관계를 표현하는 단순한 규칙은 존재하지 않는다. 그러나 일반적으로 최소 10에서 20개의 예들은 충분한 범위를 가진 각각의 특성을 지원할 필요가 있다.
출력값의 수
입력값에 대한 충분한 특성포함은 출력값에 대해서도 훌륭한 포함을 뜻한다. 네트워크로부터 모든 가능한 출력값에 대한 많은 예들이 존재한다는 사실은 중요하며, 각각의 가능한 출력값에 대한 훈련 예들의 수도 역시 동일하게 중요시된다. 이것은 훈련 셋으로 무엇을 사용할 것인지 언제 사용 할 것인지가 중요하게 될 수 있음을 뜻한다.
예를 들어 만약 뉴럴 네트워크가 발생하기 드문 일을 추적하는데 사용되어질 것이라면, 훈련 셋은 값비싼 행위들인 디젤 엔진의 실패율, 신용카드 오용 혹은 담보대출 등에서 충분한 수의 예들을 가지고 있어야 함을 확인해야 한다. 가용한 데이터에서 무작위 샘플은 불충분하다. 일반적인 예들이 발생율이 드문 예들을 희석시키기 때문에 이러한 문제를 해결하기 위해 훈련 셋은 샘플의 수보다 더 많은 샘플링(oversample)을 해야 한다.
이용가능한 컴퓨팅 능력
뉴럴 네트워크를 훈련시키기 위한 표준 알고리즘은 네트워크가 최적의 가중치를 갖기전까지 훈련 셋을 통해 수십번 혹은 수백번의 훈련을 요구한다.
데이터 준비
입력 데이터를 준비하는 것은 종종 뉴럴 네트워크를 사용하는데 가장 복잡한 부분이라 할 수 있다. 복잡하다는 것은 올바른 데이터 선정과 데이터 마이닝의 올바른 예를 선택하는 것이다. 또 다른 것은 데이터의 각 특성들이 0에서1까지의 값을 갖도록 조작하는 것이다.
연속값을 갖는 특성
몇몇 특성은 연속값을 가지며, 일반적으로 최대값과 최소값의 경계를 지닌다. 이러한 연속값에0에서부터1의 값을 부여하기 위해 다음과 같은 연산을 수행한다.
조작된 값 = (현재값 - 최소값) / (최대값 - 최소값)
이러한 작업은 적합하나 현실에 있어 몇 개의 추가적인 고려사항이 존재한다. 만약 최대값과 최소값이 알려지지 않았다면 어떻게 할 것인가? 이러한 질문에 몇가지 해결방안이 있다.
- 더 큰 범위를 설정하라
- 범위밖의 값은 거절하라
- 최소값보다 더 낮은 값을 최소값에 고정하고, 최대값보다 더 큰 값을 최대값에
고정하라.
- 최소값을 0대신 0.1로 최대값을1대신 0.9로 매핑하라.
조작된 값=(0.9-0.1)(현재값-최소값)/(최대값-최소값)=+0.1
또다른 문제는 연속형 특성을 가진 값이 왜도(Skewed distribution)를 가지는 것이다. 값이 왜곡되어 분포되어 있는 것은 네트워크가 효과적으로 중요한 분분을 활용하는 것을 막는다. 이를 해결하기 위해 여려 해결방안으로 가장 일반적으로 사용되는 방식은 수입과 같은 특성을 범위로 분리하는 것이다. 또 다른 방식은 분포값을 향상시키기 위해 값들을 여과시키는 것이다. 수입을 여과하기 위해 사용되는 함수는 log를 들 수 있다.
순서가 있는, 이산값을 가진 특성
카운트, 나이 등은 연속형 특성과 같이 최대값과 최소값을 가진다. 예를 들어 나이는 일반적으로0에서 약100까지 걸쳐 있으며, 정확한 범위는 활용하는 데이터에 의존하게 된다. 자녀의 수와 같은 경우0에서4까지4이상은4로 간주된다. 이러한 값들을 조작하는 것은 단순하다. 처음에 다른 값의 수를 센다. 자녀의 수와 같은 경우, 5개의 이산값을 가진다. 0, 1, 2, 3, 4. 지금 하려고 하는 것은 이러한 각각의 값들을0에서부터1로 할당하는 것인데, 0은0.00, 1은0.25, 2는0.50, 3은0.75, 4는1.00으로 매핑될 수 있다. 이산값과 순서를 가지는 값을 다루는 또다른 접근방식은 온도계 코드라고 불려지는 방식이다. 온도계 코드는 학점과 채권율과 같은 값에 유용하다. 예를 들어 D와 F간의 차이는 A와 B의 차이와는 다르다. 온도계 코드를 사용하여A, B, C, D, F는0.9375, 0.8750, 0.7500, 0,5000, 0,000으로 각각 할당될 수 있다.
이와 같이 온도계 코드와 스케일링의 활용은 범주형 특성을 가진 대부분의 응용분야에서 충분하며 백가지 혹은 그만큼의 값을 가진 경우, 연속형 값으로 순서를 가진 이산값을 다루는 작업에 적합하다.
범주형 값을 가진 특성
범주형을 가진 특성은 순서를 가지지 않는다. 이는 순서를 가진 리스트와는 다르며, 순서를 가질 필요가 없다. 예를 들어 우편번호는 숫자의 형태를 보이지만 순서를 가지고 이산형인 대신, 범주형이라 할 수 있다.
범주형 특성을 다루는데는 두가지 기본적인 방식이 존재한다. 첫번째는 코드를 이산값과 순서를 지닌 값으로 보고 이후 이전에 언급했던 방식으로 이들에게 값을 할당하는 것이다. 그러나 뉴럴 네트워크는 코드가 순서를 가지지 않음을 이해하지 못한다. 그러므로 만약 결혼상태에 대하여 코드를 조작하려고 한다면 “독신”, “이혼”, “결혼”, “과부”, “알지못함”은 0.00, 0.25, 0.50, 0.75, 1.00으로 각각 표현되어져야 할 것이다.
두번째의 방법은 범주를 각각의 값에 대해 하나의 플래그로 분할 하는 것이다. 예를 들어 성에 “여성”, “남성”, “알지 못함”이라는 세가지의 값이 있다면, 이를0.0000 또는1.000을 갖는 세가지의 플래그로 분할할 수 있다. 이러한 코딩은 값들사이의 순서를 제거하는 유일한 방법이며, 성과 같은 필드를 코딩하는 데는 세가지의 선택사항이 있다. 1-of-N코딩(세가지의 조작된 특성), 1-of_N-1코딩(두가지의 조작된 특성), 남성0.00, 알지못함0.50, 여성1.00으로 할당한 조작된 성이 그것이다.
결과 해석
근본적인 접근방식은0.5보다 이하 값은 하나의 값에0.5보다 이상의 값은 다른 값에 할당하는 것이다. 또 다른 접근방식은 간격을 세가지로 나누는 것으로0.33이하는 하나의 범주에0.67보다 큰 값은 다른 하나로 나머지는 “알지못함”으로 선언하는 것이다.
또 다른 방식은 값에 신뢰도를 할당하는 것이다. 예를 들어 장거리 전화회사가 세가지의 목표서비스를 가지고 새로운 고객을 목표로 한다고 하면 다음과 같이 나타낼 수 있다.
- 모든 국제전화 할인
- 국제전화가 아닌 모든 장거리 전화 할인
- 사전 정의된 고객에 대한 전화 할인
인센티브가 비싸기 때문에 장거리 전화회사는 캠페인이 수익을 얻을 수 있기 위해 적합한 고객에 적합한 서비스를 선정해야 할 필요를 느낄 것이다. 모든 세가지 제품을 모든 고객에게 제공하는 것은 비용이 많이 들고, 수혜자에게 혼란을 가져올 뿐 만 아니라 응답율을 줄일 수 있다. 장거리 전화회사는 고객들의 작은 샘플을 추출하여 시장을 테스트해보았다. 테스트 정보를 활용하여 제공되는 서비스의 반응율을 예측하는 모델을 구축하려 했으며, 마케팅 캠페인의 훈련 셋은 다음과 같이 코딩되었다. 무응답0.00, 국제전화0.33, 내부전화0.67, 특정 번호1.00. 이후 고객에 대한 정보를 가지고 뉴럴 네트워크를 훈련시킨 후, 장거리 전화회사는 모델을 적용하기 시작했다. 그러나 모델적용은 은 계획된대로 되지 않았고, 4개의 값주변의 많은 고객집단이 네트워크를 훈련시키는데 사용되었다. 이러한 결과에 대해 첫째, 전화회사가 출력값을 이해하기 위해 테스트 셋을 활용하여야 한다는 것과, 테스트 셋에 무슨 일이 일어나는가를 기반으로 네트워크의 결과를 해석함으로써 네트워크의 결과를 마케팅 세분화로 변형시키는데 사용될 수 있는 적합한 범위를 찾을 수 있다는 점을 말할 수 있다.
또 다른 관찰결과, 네트워크는 실제로 세가지 다른 서비스를 예측하기 위해 사용되었다는 것과 서비스를 받는 고객들은 각각의 캠페인에 반응할 것이라는 것이다.
시계열을 위한 뉴럴 네트워크
뉴럴 네트워크는 시계열 분석에 쉽게 적용할 수 있다. 네트워크는 시계열 데이터상에서 훈련되며, 데이터의 가장 오래된 지점에서 시작된다. 훈련은 이후 두번째로 오래된 지점으로 이동하고, 가장 오래된 지점은 입력층에서 다음 단위들의 셋으로 가게되는 절차를 거친다. Feed-forward, backpropagation네트워크와 같은 네트워크 형태는 각 단계에서 연속형의 다음 값을 예측하는데 사용된다. 시계열 네트워크는 단지 하나의 시계열 데이터에 제한을 가지지 않으며, 다중의 입력을 취한다. 예를 들어 스위스 프랑과 미국 달러 환율의 값을 예측하려고 한다면, 이전의 거래량, 미국 달러와 독일 마르크의 환율, 주식거래량 등의 다른 시계열 정보를 포함할 수 있다.
시계열단위의 수는 네트워크가 인식할 수 있는 패턴의 수를 관리한다. 예를 들어 네트워크상에서10개의 시계열 단위가 선호 주의 최종가격을 예측한다면, 이는 네트워크로 하여금2주일내에 발생하는 패턴을 인식할 수 있도록 해 줄 것이다.
Feed-forward, Backpropagation 네트워크를 활용한 휴리스틱
숨겨진 충의 단위 수를 결정하는 것은 가장 중요한 것이라 생각된다. 단위의 수가 많을수록 네트워크가 인식할 수 있는 패턴은 많아진다. 그러나 이것에도 단점이 존재한다. 즉, 네트워크가 훈련 셋으로부터 모델을 일반화하는 것이 아니라, 훈련 셋을 외워버리는 결과를 가져올 수 있다. 이러한 경우 더 많은 것이 오히려 더 나쁜 결과를 초래한다. 다행히도 네트워크가 지나치게 훈련되어있는지에 대해 추적할 수 있다. 만약 네트워크가 훈련 셋상에서 잘 수행되지만 테스트 셋에서는 잘 되지 않는다면, 이는 테스트 셋을 암기했다는 징후라 할 수 있다.
그렇다면 숨겨진 층은 얼만큼 커야하는가? 입력층보다 두배 이상이 되어서는 안된다는 것이 일반적인 관례이며, 시작하기에 적합한 것은 숨겨진 층을 입력층과 똑같은 크기로 만드는 것이다.
또 다른 결정사항은 훈련 셋의 크기를 결정하는 것이다. 훈련 셋은 각각의 특성을 가진 입력의 범위를 모두 포함할 수 있을 만큼 충분히 커야한다. 뿐만 아니라 네트워크 상에서 각각의 가중치에 대한 훈련 예들을 필요로 할 것이다. s입력 단위와, h숨겨진 계층, 1출력을 가진 네트워크는 네트워크에서n*(s+1)+h+1의 가중치가 존재한다.
마지막으로 학습율과 타성 파라미터는 네트워크의 훌륭한 결과를 내기 위해 매우 중요하다. 첫번째로 학습은 가중치에 대해 조절을 수행할 수 있도록 높게 설정되어야 하며, 훈련이 진행됨에 따라 학습율은 네트워크를 올바르게 튜닝하기 위해 감소되어야만 한다. 타성 파라미터는 네트워크가 해결방안으로 신속히 이동하도록 해주며, 유용치 않은 가중치에 동요되는 것을 막게 해준다.
뉴럴 네트워크 내부의 진행사항을 아는 법
뉴럴 네트워크는 분명치 않다. 네트워크를 통해 모든 단위들에 대한 가중치를 모두 알고있다하더라도 네트워크는 왜 네트워크가 수행되는지에 대한 통찰력을 주지 못한다.
다행히도 민감도 분석(sensitivity analysis)이라는 기술이 어떻게 불투명한 모델이 활동하는가를 이해하기 위해 사용되어진다. 민감도 분석은 명확한 규칙을 제공하지는 않지만, 네트워크의 결과에 대하여 입력의 상대적인 중요성을 나타낸다. 민감도 분석은 네트워크의 출력이 각 입력에 대해 얼마나 민감한지를 결정하기 위해 테스트 셋을 활용한다. 기본적인 단계는 다음과 같다.
각 입력의 평균값을 찾는다.
모든 입력이 평균값에 있을 때 네트워크의 출력을 측정하라.
각 입력이 수정될 때, 네트워크의 출력을 측정하라. 한번에 하나씩, 최소값과 최대값까지
Feed-forward, backpropagation 네트워크, 민감도 분석은 각각의 특성을 독립적으로 테스트하는 데신 학습단계동안 사용된 에러 측정을 이용할 수 있다. 테스트 셋은 네트워크로 적용되어 출력을 만들며 출력은 예상된 출력에 비교되어 에러를 산출한다. 네트워크는 이후 단위를 통해 에러를 증식시키며, 가중치를 조절하는 것이 아니라 각 입력의 미감도를 추적하게 된다.
의도치 않은 데이터 마이닝을 위한 뉴럴 네트워크 활용
뉴럴 네트워크는 의도치 않은 데이터 마이닝에도 역시 활용된다. Self-Organizing Maps(SOMs)는 Tuevo Kohonem박사에 의해 개발되었다. 원래 이미지와 소리를 위해 사용되었으나, 데이터의 클러스터도 역시 인식할 수 있다. 다른 네트워크 구성을 가지며, 학습의 backpropagation기법이 더 이상 적용되지 않는다.
Self-Organizing Map?
SOM은 데이터의 알려지지 않은 패턴을 인식할 수 있는 뉴럴 네트워크이다. 이미 보아왔던 네트워크와 같이 기본적인 SOM은 입력층과 출력층을 가지며, 입력층의 각 단위는 하나의 소스에 연결된다. 출력층은 많은 단위들로 구성되며, 출력층의 각 단위들은 입력층의 모든 단위들과 연결되어있다. 출력층은 그리드형태로 되어있어 마치 단위들이 체스판에 있는 것과 같이 할당되어있다.
훈련 셋이 네트워크에 표현되면, 네트워크를 통해 값들이 출력층의 단위로 흘러오게 된다. 출력층의 단위들은 서로 경쟁하여 가장 높은 값을 가진 단위가 승자가 된다. 이에 대한 보상은 입력 패턴에 맞게 가장 높은 값을 가진 단위에 힘을 실어 주도록 가중치를 조절하게 된다.
네트워크의 훈련에는 그 이상의 측면이 있다. 가장 높은 값을 가진 단위에 가중치가 조절되며, 가장 근접한 이웃 단위들이 또한 입력단위에 대한 반응에 더 강화되기 위해 가중치가 조절된다.
뉴럴 네트워크의 강점
뉴럴 네트워크의 강점은
- 광범위한 문제영역을 다룰 수 있다.
뉴럴 네트워크는 문제에 접근하는 방식이 매우 일반적이며, 네트워크의 출력이 연속적일 경우, 예측을 수행한다. 출력이 이산값을 가질 경우에는 분류를 수행하게 된다.
- 복잡한 영역에서도 훌륭한 결과를 도출할 수 있다.
많은 수의 산업과 적용을 통해 시계열 분석, 카드 오용방지와 같은 복잡한 영역에서도 좋은 결과를 도출해 낼 수 있음이 검증되었다.
- 범주 및 연속형 변수 모두 다룰 수 있다.
비록 데이터가 조작되어야 하지만, 뉴럴 네트워크는 이산 및 연속형 변수를 활용하여 입력과 출력을 생성할 수 있다. 범주형 데이터는 두 가지 다른 방식으로 다루어질 수 있다. 즉, 주어진 0과1사이의 범위를 가진 각 범주의 단일 단위를 활용하거나, 각 범주의 분리된 단위를 활용하는 방식이다. 연속형 데이터는 쉽게 필수적인 범위로 매핑되어진다.
- 많은 패키지형 형태로 사용될 수 있다.
벤더들 사이의 경쟁으로 패키지가 사용하기 쉽게 되었으며, 뉴럴 네트워크의 이론상 발전이 시장으로 확산되었다. 데스크탑 프로세서가 점점 더 빨라졌어도 데이터는 여전히 커다란 시스템에 존재하므로, 벤더들은 관계형 데이터베이스와 SAS와 같은 일반적인 분석 플랫폼내에 뉴럴 네트워크를 발표하고 있다.
뉴럴 네트워크의 약점
뉴럴 네트워크는 다음과 같은 약점을 지닌다.
- 모든 입력과 출력이0과1사이로 조작되어야 한다.
데이터 값과 범위에 대해 조사하기 위해 훈련 셋을 분석해야 하며, 데이터의 질이 데이터마이닝의 가장 큰 핵심이므로 추가적인 데이터의 조작은 추후 분석에 있어 문제점을 야기할 수도 있을 것이다.
- 뉴럴 네트워크는 결과를 설명할 수 없다.
결과에 대한 행동이 이해하는 것보다 더 중요시되는 선택의 툴로 간주된다.
- 뉴럴 네트워크가 하위 솔루션에 대하여 집중된다.
뉴럴 네트워크는 일반적으로 주어진 훈련 셋의 솔루션에 집중된다. 모델이 알려지지 않은 데이터에 활용될 수 있도록 훌륭한 성능을 보이기 위해 테스트 셋을 활용하여야 한다.
뉴럴 네트워크를 적용하여야 할 경우
뉴럴 네트워크는 모델이 어떻게 수행되는가를 이해하는 것보다는 모델의 결과가 보다 더 중시되므로 대부분의 분류와 예측에 있어 훌륭한 선택이 된다. 뉴럴 네트워크는 클러스터링과 같이 의도치 않은 데이터 마이닝에 대해서도 또한 활용되어질 수 있다.
뉴럴 네트워크가 잘 작동치 않을 때는 입력 특성이 수백 혹은 수천개 있을 경우이다. 많은 수의 특성들은 네트워크가 패턴을 찾고, 훌륭한 솔루션을 도출하지 못하게 한다. 여기에 뉴얼 네트워크는 의사결정 나무 기법과도 잘 연계되어진다. 의사결정나무는 가장 중요한 변수를 선택하는데 뛰어나며, 이는 네트워크를 훈련시키는데 있어 사용되어질 수 있다.
Top > Info > Data Mining > 2-6. 인공지능망(Artificial Neural Networks)