심층신경망

위키원
Sg03098 (토론 | 기여)님의 2019년 9월 19일 (목) 11:38 판
이동: 둘러보기, 검색

심층신경망(DNN : Deep Neural Network)은 입력층(input layer)과 출력층(output layer) 사이에 다중의 은닉층(hidden layer)을 포함하는 인공 신경망(ANN: Artificial Neural Network)을 말한다.

개요

심층신경망은 일정 수준의 복잡성을 가진 신경망, 즉 두 개 이상의 층을 가진 신경망이다. 심층신경망은 복잡한 방법으로 데이터를 처리하기 위해 정교한 수학 모델링을 사용하게 된다. 인공신경망은 인간의 뇌가 패턴을 인식하는 방식을 모사한 알고리즘으로, 이를통해 다양한 입력 데이터를 분류, 군집을 해석하고, 데이터에서 특정패턴을 인식하는 것이다. 심층신경망은 이러한 신경망이 다수의 층의 깊이로 구성된 개념이다. 입력 계층, 출력 계층, 그리고 그 사이에 하나 이상의 숨겨진 계층이 있는 네트워크이다. 각 계층은 일부에서 '기능 계층' 이라고 부르는 프로세스에서 특정 유형의 정렬 및 순서를 수행한다. 이러한 정교한 신경 네트워크의 주요 용도 중 하나는 라벨이 없거나 구조화되지 않은 데이터를 처리하는 것이다. 전통적인 기계학습 알고리즘은 하나의 입력과 출력층으로 이루어져 있지만, 심층신경망은 다수의 깊이로써 층마다 다른 층위의 특징이 학습이가능하다. 따라서 심층신경망은 데이터의 잠재적인 구조를 파악 할 수 있다는 장점이 있다. 심층신경망은 다중의 은닉층을 포함하여 다양한 비선형적 관계를 학습할 수 있지만, 학습을 위한 많은 연산량과 과하게 학습하여 실제 데이터에 대해 오차가 증가하는 과적합(overfitting)이나 기울기 값의 소실 문제(vanishing gradient problem) 등의 문제가 발생할 수 있다.


특징

심층 신뢰 신경망

심층 신뢰 신경망(DBN: Deep Belief Network)은 알고리즘에 따라 비지도 학습 방법(unsupervised learning)을 기반으로 하는 심층신경망이다. 기계학습에서 사용되는 그래프 생성 모형(generative graphical model)으로, 딥 러닝에서는 잠재변수(latent variable)의 다중계층으로 이루어진 심층 신경망을 의미한다. 계층 간에는 연결이 있지만 계층 내의 유닛 간에는 연결이 없다는 특징이 있다. 심층 신뢰 신경망은 생성 모형이라는 특성상 선행학습에 사용될 수 있고, 선행학습을 통해 초기 가중치를 학습한 후 역전파 혹은 다른 판별 알고리즘을 통해 가중치의 미조정을 할 수 있다. 이러한 특성은 훈련용 데이터가 적을 때 굉장히 유용한데, 이는 훈련용 데이터가 적을수록 가중치의 초기값이 결과적인 모델에 끼치는 영향이 세지기 때문이다. 선행학습된 가중치 초기값은 임의로 설정된 가중치 초기값에 비해 최적의 가중치에 가깝게 되고 이는 미조정 단계의 성능과 속도향상을 가능하게 한다. 심층 신뢰 싱경망의 각각의 계층은 보통 RBM의 형태를 띄고 있다.

전망

강력한 딥러닝 알고리즘 중 하나가 심층 신경망(DNN)이다. 이는 서로 교차하는 선형, 비선형 처리 단위들로 구성된 수많은 계층에 기반을 두고 있으며 대형 알고리즘과 수많은 데이터로 훈련하는 신경망이다. 심층 신경망에 숨겨진 계층 10~20개가 존재할 수 있지만 보통 신경망에는 2~3개만 존재한다. 네트워크 계층이 많을수록 인식할 수 있는 특징이 늘어난다. 하지만 네트워크의 계층이 더 많을수록 계산에 더 많은 시간이 걸리고, 교육도 어려워진다. 심층 신경망을 구현할 수 있는 패키지로는 카페, 마이크로소프트 코그너티브 툴킷(Microsoft Cognitive Toolkit), 믹스넷(MXNet), 네온(Neon), 텐서플로(TensorFlow), 테아노(Theano), 토치(Torch) 등이 있다.

각주

참고자료