IT/빅데이터분석기사

[3과목] 인공신경망(ANN : Artificial Neural Network)

김비서 2021. 9. 10. 00:12
728x90

1. 인공신경망(ANN : Artificial Neural Network)

(1) 인공신경망의 특징

- 인공신경망은 인간의 두뇌 신경세포인 뉴런을 기본으로 한 기계학습기법으로 하나의 뉴런이 다른 뉴런들과 연결되어 신호를 전달, 처리하는 구조를 본떴다.

- 입력 데이터가 들어가면서 신호의 강도에 따라 가중치 처리되고 활성화 함수를 통해 출력이 계산되는데 학습을 거쳐 원하는 결과가 나오게끔 가중치가 조정된다는 점이 주요 특징이다.

- 신경망 모형은 높은 복잡성으로 입력 자료의 선택에 민감하다.

- 범주형 변수 일정 빈도 이상의 값으로 비슷하고 범주가 일정한 구간이어야 한다. 연속형 변수 입력변수 값들의 범위가 큰 차이가 없어 표준화가 가능한 경우에 보다 적합하다.

 

범주형 변수 일정 빈도 이상의 값으로 비슷하고 범주가 일정한 구간이어야 한다.
연속형 변수 입력변수 값들의 범위가 큰 차이가 없어 표준화가 가능한 경우에 보다 적합하다.

 

 

(2) 인공신경망의 발전

① 다층 퍼셉트론이 가진 문제

- 사라지는 경사도(Vanishing Gradient) : 신경망 층수를 늘릴 때 데이터가 사라져 학습이 잘 되지 않는 현상이다.

- 오버피팅(Overfitting) : 데이터가 많지 않은 경우 특정 학습데이터에만 학습이 잘 되어 신규 데이터에 대한 추론처리 성능이 낮아지는 문제이다.

 

 

(3) 인공신경망의 원리

지도학습의 경우 하나의 뉴런은 입력값(X)과 목표 출력값(Y)이 있을 때 다음 뉴런으로 전달하는데 적절한 출력 값을 생성하기 위해 가중치 W를 곱한 값에 편향(bias)을 더하여 이를 조정하면서 학습, 최적화 과정을 거치게 되며 최종적으로 활성화 함수를 활용한다.

또한 비지도학습, 강화학습 기반 다양한 인공신경망 모델들로 구현된다.

※ 인공신경망의 원리를 이해하고 넘어가자.

 

지도학습 학습데이터로 입력벡터와 함께 기대되는 출력벡터, 즉 답을 제시한다.
신경망에서 출력된 결과가 기대되는 출력과 다르면, 그 차이를 줄이는 방향으로 연결가중치를 조절한다.
비지도학습 학습 벡터에 목표가 없을 때, 학습 데이터의 관계를 추론하여 학습을 진행하는 방식으로 입력벡터들을 집단으로 그루핑하여 해당 집단을 대표하는 데이터를 선정한다.
강화학습 특정 환경 안에서 에이전트가 현재 상태를 인식하여 보상을 최대화하는 방향으로 동작을 선택하는 방법이다.

 

① 인공신경망의 주요 요소

- 노드 : 신경계 뉴런, 가중치와 입력값으로 활성함수를 통해 다음 노드로 전달

- 가중치 : 신경계 시냅스, 노드와의 연결계수

- 활성함수 : 임계값을 이용, 노드의 활성화 여부를 결정

- 입력층 : 학습 위한 데이터 입력

- 은닉층 : 다층 네트워크에서 입력층과 출력층 사이, 데이터를 전파학습

- 출력층 : 결과값 출력

 

② 뉴런 간의 연결 방법

- 층간 연결 : 서로 다른 층에 존재하는 뉴런과 연결

- 층내 연결 : 동일 층 내의 뉴런과의 연결

- 순환 연결 : 어떠한 뉴런의 출력이 자기 자신에게 연결되는 연결

 

 

(4) 학습

신경망에는 적응 가능한 가중치와 편향이 있으며 이를 훈련 데이터에 적응하도록 조정하는 과정을 학습이라고 정의한다.

 

① 손실 함수

- 신경망이 출력한 값과 실제 값과의 오차에 대한 함수이다.

- 손실 함수값이 최소화되도록 하기 위해 가중치와 편향을 찾는 것을 인공신경망의 학습이라고 한다.

- 일반적인 손실 함수로는 평균제곱 오차 또는 교차엔트로피 오차를 활용한다.

 

② 평균제곱 오차(MSE: Mean Squared Error) : 인공신경망의 출력 값과 사용자가 원하는 출력 값 사이의 거리 차이를 오차로 사용하며 각 거리 차이를 제곱하여 합산한 후에 평균을 구한다.

 

③ 교차 엔트로피 오차(CEE : Cross Entropy Error) : 분류(Classification) 부문으로 t값이 원-핫 인코딩 벡터이며, 모델의 출력 값에 자연로그를 적용, 곱한다.

 

④ 학습 알고리즘

- 1단계 : 미니배치 

  훈련 데이터 중 일부를 무작위로 선택한 데이터를 미니배치라고 하며 이에 대한 손실함수를 줄이는 것으로 목표를 설정한다.

- 2단계 : 기울기 산출

- 3단계 : 매개변수 갱신

 

⑤ 오차역전파(Back Propagation)

가중치 매개변수 기울기를 미분을 통해 진행하는 것은 시간 소모가 크므로 오차를 출력층에서 입력층으로 전달, 연쇄법칙(Chain Rule: 합성함수의 미분은 각각의 미분의 곱으로 나타낼 수 있음)을 활용한 역전파를 통해 가중치와 편향을 계산, 업데이트한다.

 

⑥ 활성(활성화) 함수

입력 신호의 총합을 그대로 사용하지 않고 출력 신호로 변환하는 함수를 뜻하며 활성화를 일으킬지를 결정하게 된다. 대표적인 함수는 시그모이드(Sigmoid)와 렐루(Relu)가 있다.

 

⑦ 과적합(Overfitting)

학습데이터는 실제 데이터집합의 부분이므로 학습 시에는 오차가 감소하나 실제 적용 시에는 오차가 증가하는 경우가 발생하는데 이를 과적합이라고 하며 훈련 데이터가 적은 경우, 매개변수가 많고 표현력이 높은 모델인 경우 등에 발생한다.

- 해결방안 : 특징 개수 줄이기 또는 정규화, L2규제(L2 regularization)로 가중치가 클수록 큰 패널티 부과, 일정 비율 뉴런만 학습하는 드롭아웃(dropout), 하이퍼파라미터 최적화 방법 등이 있다.

 

 

(5) 딥러닝 모델 종류

① CNN(Convolutional Neural Network, 합성곱 신경망 모델)

신경네트워크(Neural Network)의 한 종류인 CNN은 사람의 시신경 구조를 모방한 구조로 인접하는 계층의 모든 뉴런과 결합된 완전 연결(fully connected, 전결합)을 구현한 Affine 계층으로 사용하여 모든 입력 데이터들을 동등한 뉴런으로 처리한다.

- CNN에서 특징을 추출하는 과정은 합성곱 계층(Convolution Layer)과 풀링 계층(Pooling Layer)으로 나뉘어지는데 입력된 데이터를 필터가 순회하며 합성곱을 계산한 뒤 특징지도(Feature Map)를 생성한다.

- 특징 지도는 서브샘플링(sub-sampling)을 통해 차원을 줄여주는 효과를 지니며 필터 크기, 스트라이드(stride), 패딩(padding) 적용여부, 최대 풀링(Max Pooling) 크기에 따라 출력 데이터의 구조(shape)가 결정된다.

 

※ 완전연결 신경망은 Affine 계층 뒤에 활성화 함수를 갖는 ReLU 또는 Sigmoid 계층이 이어지는데 CNN은 합성곱계층과 풀링 계층이 추가된 구조이다.

 

[합성곱 계층]

- 합성곱 연산은 2차원의 입력데이터가 들어오면 필터의 윈도우를 일정 간격으로 이동하면서 입력 데이터에 적용, 입력과 필터에서 대응하는 원소끼리 곱한 뒤 총합을 구하면 결과가 출력되고 이를 모든 영역에서 수행하면 합성곱의 연산 출력이 완성된다.

 

[풀링 계층]

- 선택적인 요소이며 독립적인 채널별 연산이다. 입력데이터의 채널수가 변화되지 않도록 2차원 데이터의 세로 및 가로 방향의 공간을 줄이는 연산으로 최대 풀링(Max Pooling), 평균 풀링(Average Pooling) 등이 있다.

 

- CNN은 보편적으로는 이미지 프로세싱에서 활용되는데 수치, 텍스트, 음성, 이미지들의 여러 유형의 데이터 들에서 많은 특징들을 자동으로 학습하여 추출, 분류, 인식 처리에 사용되고 있다.

 

 

② RNN(Recurrent Neural Network)

순서를 가진 데이터를 입력하여 단위 간 연결이 시퀀스를 따라 방향성 그래프를 형성하는 신경네트워크 모델로 내부 상태(메모리)를 이용하여 입력 시퀀스를 처리한다.

- CNN과는 달리 중간층(은닉층)이 순환구조로 동일한 가중치를 공유한다. 가중치(weights)와 편향(bias)에 대한 오차함수의 미분을 계산하기 위해 확률적 경사하강법(SGD : Stochastic Gradient Descent)을 이용한다.

※ 필기 인식이나 음성 인식과 같이 시변적 특징을 지니는 데이터를 처리하는데 적용할 수 있다.

 

③ LSTM(Long Short-Term Memory Network)

- LSTM은 RNN의 단점을 보완하기 위해 변형된 알고리즘으로 보통 신경망 대비 4배 이상 파라미터를 보유하여 많은 단계를 거치더라도 오랜 시간동안 데이터를 잘 기억한다. 

- LSTM은 다음 3가지 게이트로 보완된 구조를 통해 가중치를 곱한 후 활성화 함수를 거치지 않고 컨트롤 게이트를 통해 상황에 맞게 값을 조절함으로써 문제를 해결한다.

  * 입력 게이트(Input Gate)

  * 출력 게이트(Output Gate)

  * 망각 게이트(Forget Gage)

 

 

④ 오토인코더(Autoencoder)

대표적 비지도학습 모델로 다차원 데이터를 저차원으로 바꾸고 바꾼 저차원 데이터를 다시 고차원 데이터로 바꾸면서 특징점을 찾아낸다.

- 입력으로 들어온 다차원 데이터를 인코더(encoder)를 통해 차원을 줄이는 은닉층으로 보내고, 은닉층의 데이터를 디코더(decoder)를 통해 차원을 늘리는 출력층으로 내보낸 뒤, 출력값을 입력값과 비슷해지도록 만드는 가중치를 찾아낸다. 하나의 신경망을 두 개 붙여놓은 형태이며 출력 계층과 입력 계층의 차원은 같다.

 

오토인코더 세부 종류

디노이징 오토인코더
(Denoising Autoencoder)
손상이 있는 입력값을 받아도 손상을 제거하고 원본의 데이터를 출력값으로 만듦
희소 오토인코더
(Sparse Autoencoder)
은닉층 중 매번 일부 노드만 학습하여 과적합 문제를 해결
VAE
(Variational Autoencoder)
확률분포를 학습함으로써 데이터를 생성

 

 

⑤ GAN(Generative Adversarial Network)

학습 데이터 패턴과 유사하게 만드는 생성자(generator) 네트워크와 패턴의 진위 여부를 판별하는 판별자(discriminator) 네트워크로 구성되는데 두 네트워크가 서로의 목적을 달성하도록 학습을 반복한다.

- GAN은 기본적으로 두 모델간의 균형있는 경쟁이 필요하나 한쪽으로 역량이 치우치는 경우 성능이 제약되게 되는데 이를 개선한 모델이 DCGAN(Deep Convolutional GAN)이다.

 

* 판별자 네트워크 : 랜덤 노이즈 m개를 생성하여, 생성자 네트워크에 전달하고 변환된 데이터 m개와 진짜 데이터 m개를 획득한다. 2m 개의 데이터를 이용해 판별자 네트워크의 정확도를 최대화하는 방향으로 학습한다.

* 생성자 네트워크 : 랜덤 노이즈 m개를 재생성하여 생성자가 판별자의 정확도를 최소화하도록 학습한다.

 

※ 지도학습(판별자)과 비지도학습(생성자) 딥러닝 모델의 결합으로 서로 경쟁하며 패턴을 흉내내는 MinMax Game으로 접근한다.

반응형