검수요청.png검수요청.png

심층신뢰신경망

위키원
이동: 둘러보기, 검색

심층신뢰신경망(Deep Belief Network, DFN)은 알고리즘에 따라 비지도학습 방법(unsupervised learning)을 기반으로 하는 심층신경망이다.

개요[편집]

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

특징[편집]

비지도학습[편집]

학습 훈련 데이터(training data)로 출력 없이 입력만 제공되는 상황을 문제(입력)의 답(출력)을 가르쳐 주지 않는 것에 비유해 비지도형 기계 학습, 비지도학습이라고 한다. 비지도학습은 사람의 해석을 통해 유용한 지식을 추출하는 데 활용되거나, 지도학습에서의 원래 입력보다 데이터 특징을 더 잘 표현하는 새로운 입력을 만드는 특징 추출기(feature extractor)로 활용된다. 비지도학습은 통계의 밀도 추정(Density Estimation)과 깊은 연관이 있으며, 데이터의 주요 특징을 요약하고 설명할 수 있다. 비지도학습의 예로는 클러스터링(Clustering), 독립 성분 분석(Independent Component Analysis)이 있다.[1]

클러스터링은 유사성 등의 개념에 기초하여 데이터를 몇몇의 그룹으로 분류하는 수법을 총칭하는 것으로, 문헌 검색, 패턴 인식, 경영 과학 등에 폭넓게 응용되고 있다. 클러스터 분석은 주어진 데이터들의 특성을 고려해 데이터 집단(클러스터)을 정의하고 데이터 집단의 대표할 수 있는 대표점을 찾는 것으로 데이터마이닝(data mining)의 한 방법이다. 클러스터는 비슷한 특성을 가진 데이터들의 집단을 의미한다. 반대로 데이터의 특성이 다르면 다른 클러스터에 속해야 하는 것이다. 클러스터 분석을 통해 수백만의 데이터를 직접 확인하지 않고 각각 클러스터의 대표값만 확인해 전체 데이터의 특성을 파악할 수 있다. 독립 성분 분석은 다변량의 신호를 통계적으로 독립적인 하부 성분으로 분리하는 계산 방법이다. 각 성분은 비가우스성(non gaussian characteristic) 신호로서 서로 통계적 독립을 이루는 성분으로 구성되어 블라인드 신호를 분리할 수 있다.

제한 볼츠만 머신[편집]

제한적 볼츠만 머신

제한 볼츠만 머신은 볼츠만 머신에서 층간 연결을 없앤 형태의 모델이다. 층간 연결을 없애면, 머신은 가시 유닛(Visible Unit)과 은닉 유닛(Hidden Unit)으로 이루어진 무방향 이분 그래프 형태의 모양이 된다. 결론적으로 모델의 층간 연결을 없앰으로써, 얻는 이점으로 뉴럴 네트워크는 깊어질 수 있었다. 가장 큰 이점은 가시 유닛이 관찰되고 고정(Clamped)되었을 때 은닉 유닛을 추론하는 마르코프 연쇄 몬테카를로 방법(MCMC; Markov chain Monte Carlo) 과정이 단 한 번에 끝난다는 것이다. 제한 볼츠만 머신은 확률모델의 계산이 불가능하기 때문에, 학습시 근사법인 마르코프 연쇄 몬테카를로 방법 또는 제프리 힌튼 교수가 발견한 CD를 사용하는데, 제한 볼츠만 머신의 모델의 간단함에서 오는 추론에 대한 이점은 샘플링 근간의 학습법이 실용적인 문제에 적용되는데 기여했다.

제한 볼츠만 머신은 심층신뢰신경망의 기본 뼈대가 된다, 제한 볼츠만 머신을 쌓아올리면서(Stacking), 그리디하게 학습함으로써 심층신뢰신경망을 완성한다. 심층신뢰신경망을 아는 사람은 기본적으로 제한 볼츠만 머신은 무방향이기에, 제한 볼츠만 머신이 방향성 있는 모델인 심층신뢰신경망이 되는지 의아할 것이다. 이는 제프리 힌튼(Jeffrey Hinton)의 제자의 우연 발견적인 연구 성과인데, 원래 힌튼 교수는 그래픽 모델이 방향성을 가질 때 생기는 익스플레이닝 어웨이(Explaining Away) 효과 때문에 학습이 매우 어려워 연구를 무방향성 모델로 선회했다가, 제한 볼츠만 머신을 쌓으면, 다층 제한 볼츠만 머신이 되는 것이 아니라, 심층신뢰신경망과 비슷해진다는 사실을 발견하게 된다. 이 발견은 심층신뢰신경망 학습을 단순히 여러 개의 제한 볼츠만 머신 학습으로 환원시킴으로써 어려운 심층신뢰신경망 학습의 복잡도를 층의 갯수에 비례하는 복잡도로 낮추었다. 이는 선행학습(Pre-training) 과 미세조정(fine-tuning) 의 새로운 학습 패러다임으로 발전하게 된다.[2]

심층신뢰신경망은 비지도 방식으로 계층마다 학습을 진행하는데, 이때 각각의 계층은 보통 제한 볼츠만 머신(RBM)의 형태를 띄고 있다. 제한 볼츠만 머신은 에너지 기반의 생성 모형으로 가시 유닛과 은닉 유닛으로 이루어진 무방향 이분 그래프 형태이다. 가시 유닛들과 은닉 유닛들 사이에만 연결이 존재한다. 제한 볼츠만 머신이 훈련되고 나면 다른 제한 볼츠만 머신이 그 위에 쌓아 올려짐으로써 다중 계층 모형을 형성한다. 제한 볼츠만 머신이 쌓아 올려질 때마다, 이미 훈련된 제한 볼츠만 머신의 최상위 계층이 새로 쌓이는 제한 볼츠만 머신의 입력으로 쓰인다. 이 입력을 이용하여 새 제한 볼츠만 머신이 훈련되고, 원하는 만큼의 계층이 쌓일 때까지 해당 과정이 반복된다.[3]

훈련 과정

제한 볼츠만 머신 훈련 과정에서의 가중치 갱신은, 다음의 식을 기반으로 경사 하강법을 통해 이루어진다.

 

여기서 는 다음의 식으로 주어지는 가시 벡터의 확률을 나타낸다.

 

위 식은 정규화를 위해 사용되는 분배함수(partition function)이며, E(v, h) 는 신경망의 상태(state)에 부여되는 에너지 함수이다. 에너지가 낮을수록 해당 신경망이 더 적합한 상태임을 의미한다.

 

기울기는 좀 더 간단하게 표현된다.

 

이 때 는 분포 에 관한 평균을 의미한다. 을 샘플링 하려면 올터네이팅 깁스 샘플링(alternating Gibbs sampling)을 매우 많이 반복해야 하기 때문에 CD에서는 올터네이팅 깁스 샘플링을 n회만 반복한다. 실험을 통해 n = 1 일 경우에도 충분한 성능이 나온다고 알려져 있다. n회 반복 후 샘플링 된 데이터가 를 대신한다.

CD 수행과정

CD 수행 과정은 다음과 같다.

1. 가시 유닛들을 훈련 벡터로 초기화 한다.

2. 다음의 가시 유닛들이 주어지면 은닉 유닛들을 모두 동시에 갱신한다.

 σ σ

3. 다음의 은닉 유닛들이 주어지면 가시 유닛들을 모두 동시에 갱신한다.

 σ

위 식은 의 편향이다. 이 부분을 복원(reconstruction)이라고 부른다.

4. 복원된 가시 유닛들이 주어지면 (2)에서 쓰인 식을 이용하여 은닉 유닛들을 모두 동시에 다시 갱신한다.

5. 다음과 같이 가중치를 갱신한다.[4]

 

층별 선훈련[편집]

층별 선훈련

여러 층으로 이루어진 인공신경망 학습에서는 신경망의 레이어(layer)가 늘어날수록 오래 전 데이터에서 기울기가 사라지는 문제(vanishing gradient problem)가 발생한다. 이 문제를 해결하기 위해 심층신뢰신경망에서는 입력으로부터 가까운 층부터 차례대로 제한 볼츠만 머신을 이용한 일종의 비지도 학습인 사전 학습을 수행하며, 이것을 층별 선훈련(layer-wise pre-training)이라고 한다.

심층신뢰신경망에서 1단계 제한 볼츠만 머신의 사전 학습이 완료되면 그 결괏값이 2단계 제한 볼츠만 머신의 입력값으로 사용되며, 이때 1단계에서 사용된 가중치는 고정된다. 이와 같은 방법으로 마지막 은닉층까지 순서대로 반복되며, 이와 같은 층별 선훈련의 목적은 각 은닉층에 존재하는 가중치를 가능한 한 목푯값에 가깝도록 만드는 것이다. 심층신뢰신경망은 비지도 학습인 제한 볼츠만 머신을 기반으로 여러 번의 사전 학습을 통해 가중치를 어느 정도 보정하고, 역전파 및 피드포워드 알고리즘을 통해 최종 가중치를 계산하게 된다. 이러한 특성은 학습 데이터의 양이 적을 때 굉장히 유용하게 사용된다. 이러한 심층신뢰신경망은 입력 데이터와 같은 출력 데이터를 재생성함으로 오토인코더나 분류기 등에 활용될 수 있으며, 이미지에서 사람의 얼굴 방향 인식 문제나 문서의 코드화 작업 등에 사용되고 있다.[5]

각주[편집]

  1. 비지도형 기계학습 한국정보통신기술협회 - http://word.tta.or.kr/dictionary/dictionaryView.do?word_seq=168097-9
  2. 딥러닝에서 사용되는 알고리즘 TCP스쿨 - http://tcpschool.com/deeplearning/deep_algorithm3
  3. 딥러닝 위키백과 - https://ko.wikipedia.org/wiki/%EB%94%A5_%EB%9F%AC%EB%8B%9D
  4. 딥러닝에서 사용되는 알고리즘 TCP스쿨 - http://tcpschool.com/deeplearning/deep_algorithm3
  5. 딥러닝 알고리즘 TCP스쿨 - http://tcpschool.com/deep2018/deep2018_deeplearning_algorithm

참고자료[편집]

같이 보기[편집]


  검수요청.png검수요청.png 이 심층신뢰신경망 문서는 인공지능 기술에 관한 글로서 검토가 필요합니다. 위키 문서는 누구든지 자유롭게 편집할 수 있습니다. [편집]을 눌러 문서 내용을 검토·수정해 주세요.