댓글 쓰기 권한이 없습니다. 로그인 하시겠습니까?
사이트 로그인
1. 기본개념
인공신경망은 분류와 수치예측을 할 때 사용하는 분석입니다. 인공신경망은 생물의 신경망의 형태를 토대로 만든 모형입니다. 위 그림은 뉴런 혹은 신경 세포라고 신경 시스템의 한 단위로써 전기적, 화학적 신호를 전달하고 받는 세포입니다. 자극이 들어오면 왼쪽의 수상돌기(Dendrite)에서 축색돌기(Axon) 방향으로 신호가 전달됩니다. 오른쪽 끝 부분에 시냅스라는 부분에서 화학물질이 나와서 다시 수상돌기로 신호가 가고 이 것이 뇌를 거쳐 반응이 나타나는 방식으로 신경 시스템이 이루어집니다.
인공신경망은 크게 입력층, 은닉층, 출력층이 있습니다. 아까 신경계와 비교를 하면 입력층은 자극, 은닉층은 신경계, 출력층은 반응입니다. 그리고 여기서의 원은 node라고 하며 신경계에 비유하면 하나의 뉴런이라고 할 수 있습니다. 특히 여기 은닉층은 저희가 직접 볼 수 없는 부분이라서 분석을 하면 어떤 식으로 분석이 되는지 알 수 없습니다.
다음으로 인공신경망의 모형에 대해 알아보겠습니다. 인공신경망의 기본 모형은 이러하며 여기서 f는 비선형 함수, X는 연속형 그리고 혹은 이산형 변수들의 벡터로 이루어져 있으며 input nodes라고 합니다. Y는 연속형 그리고 혹은 이산형 변수들의 벡터로 이루어져 있으며 output nodes라고 합니다. g는 x의 함수로 g(x)는 hidden nodes라고 합니다. 또한 w는 hidden node들의 가중치로 인공신경망의 핵심입니다. 가중치는 저희가 조정할 수 없는 부분이기 때문에 인공신경망 분석 내에서 추정을 하여 사용합니다. σ는 activation function으로 바로 뒤에서 설명하겠습니다.
activation function은 output Y를 만들기 위해 은닉된 부분을 가중하는 값입니다. σ에는 크게 두 종류가 있는데요. 하나는 sign function이고 다른 하나는 sigmoid function입니다. Sigmoid function에는 logistic function, Hyperbolic tangent function 등 여러 가지 함수들이 있는데요. 여기서는 대표적으로 logistic function을 보였습니다. Sigmoid function들을 s자형 곡선을 연속적으로 그리는 함수들입니다. 이 함수들의 역할은 선형결합인 값들을 S자형 곡면으로 바꿔주는 역할을 합니다. 다행히도 Activation function은 신경망 모형에서 대체적으로 큰 영향을 끼치지 않기 때문에 activation function을 잘 선택해야 하는 부담은 줄어듭니다.
2. 종류
다음은 신경망 모형의 종류입니다. FFN은 정보들이 input에서 hidden으로 hidden에서 output으로 쭉 한 방향으로 흐르는 신경망을 이야기합니다. 역전파의 경우 가중치의 에러를 줄이는 방향으로 저 과정을 계속 반복하는 신경망입니다. 역전파는 FFN에 비해 가중치가 잘 나오는 편이고 또 상대적으로 빠른 편이어서 인공신경망에서 자주 사용하는 종류입니다. 마지막으로 Recurrent Neural Network, 즉 RNN은 context unit이라는 부분을 통하여 hidden node들과의 교류를 통하여 output nodes를 만들어내는 과정입니다. 여기서 context unit은 input과 output node들에는 영향을 미치지 않습니다.
3. 장단점
다음으로 장점과 단점에 대해서 이야기하겠습니다. 인공신경망 분석의 장점은 질적 변수나 양적 변수에 관계없이 모두 분석이 가능하다는 점이고 activation function을 통해서 입력 변수들 간의 비선형 조합을 만들 수 있습니다. 또한 예측력도 우수하다는 장점을 가지고 있습니다. 단점은 신경망이 복잡할 경우 분석 시간이 오래 걸린다는 점과 어떤 방식으로 분석되었는지와 가중치의 의미를 정확히 해석하기 어렵기 때문에 결과 해석이 어렵고 분석 시 변수들을 일정한 순서나 방식으로 넣는 것이 아니기 때문에 결과가 일정하지 않다는 점입니다.
4. 활용 예시
일단 실제로 분석한 사례를 보면 위 패키지에 있는 spam이라는 자료를 사용하여 train, test, valid 자료로 각 총 자료의 50%, 30%, 20%로 층화추출합니다.
그리고 인공신경망 함수를 사용하기 위해서는 nnet이라는 패키지를 설치하여야 합니다. nnet은 분석할 기본 공식과 자료와 hidden node의 개수를 지정해야 합니다. 여기서는 hidden node수에 따른 test 자료의 오차를 알아보기 위한 그래프를 그렸습니다. nnet의 경우 한 번 모형을 만들 때마다 모형이 다르게 나오기 때문에 test 자료의 오차도 다르게 나옵니다. 그래서 여러 번 그려본 다음 공통되게 오차가 작게 나온 부분의 hidden node 개수를 파악합니다. 여기서는 3이 적합하다고 볼 수 있습니다.
다음으로 모형에 관한 해석입니다. 여기서 i□은 □번째 input node를 의미하고 h□는 □번째 hidden node, o□는 □번째 output node를 의미합니다. 57개의 input node가 첫 번째 hidden node로 향할 때는 i□→h1만큼의 가중치를 가지고 57개의 input값의 선형결합이 만들어집니다. 두 번째 hidden node로 갈 때에도 마찬가지로 input node각각의 가중치로 선형결합이 만들어 집니다. 그리고 세 개의 hidden node내에서는 Activation function을 통해 값이 변화되고 그 값들이 또 다시 가중치를 받아 선형결합을 이루어 output node로 나오게 됩니다 57개의 input node때문에 많은 가중치들이 존재하는데, 기준에 따라 다르겠지만 여기서는 가중치의 값이 20이 넘어가면 매우 크다고 보고 영향력이 큰 부분이라고 판단합니다. 빨간색 네모를 보시면 input node 7, 23, 27, 31, 41, 44에서 첫 번째 hidden node로 가는 시냅스 부분이 가중치가 20이상입니다. 따라서 7, 23, 27, 31, 41, 44 input node에 해당하는 이 변수들의 가중치가 크다는 것은 다른 변수들에 비해 영향력이 크다는 것입니다. hidden node에서 output node로 가는 가중치를 살펴보면 첫 번째 hidden node에서 첫 번째 output node로 갈 때의 가중치와, 세 번째 hidden node에서 두 번째 output node로 갈 때의 가중치는 음수이다. 또한, 첫 번째 hidden node에서 두 번째 output node로 갈 때의 가중치와, 세 번째 hidden node에서 첫 번째 output node로 갈 때의 가중치는 양수이다. 이 값은 최종 모형에서 sigmoid 함수의 계수 값으로 weighted sum을 대입한 activation function의 가중치를 나타낸다. 결국 첫 번째, 세 번째 hidden node의 값이 클 수록, 두 번째 hidden node의 값이 작을수록 1로 분류할 확률이 높아진다.(여기서 1은 spam)
다음으로 모형의 예측력을 알아보기 위해 validation 자료의 오분류율과 민감도, 특이도를 알아보는 단계입니다. 여기서 SDMTools라는 패키지가 있는데요. 이 패키지를 사용하면 table이라는 함수를 통하여 오분류표를 구할 수 있고 이 것으로 오분류율과 민감도, 특이도를 쉽게 구할 수 있습니다.
다음으로 해석력을 알아보기 위해 test 자료의 오분류율과 민감도, 특이도를 알아보는 단계입니다. 그리고 해석력과 예측력에 차이가 심하게 없는지 확인하기 위해서 validation 자료와 test자료의 오분류율, 민감도, 특이도를 비교합니다. 이 모형은 모든 오분류율과 민감도, 특이도가 모두 높고 양 값이 비슷하므로 모형이 잘 만들어졌다고 할 수 있습니다.
이상으로 인공신경망 분석에 대한 설명을 마치겠습니다.
Designed by sketchbooks.co.kr / sketchbook5 board skin
Sketchbook5, 스케치북5
Sketchbook5, 스케치북5
Sketchbook5, 스케치북5
Sketchbook5, 스케치북5