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

제한 볼츠만 머신

해시넷
sosodam (토론 | 기여)님의 2020년 8월 6일 (목) 16:38 판
이동: 둘러보기, 검색
제한적 볼츠만 머신

제한 볼츠만 머신(RBM)은 가시층 노드와 은닉층 간에 간선이 없는 볼츠만 머신이다. 심층 신뢰 신경망(DBN)을 구성하는 요소로 쓰인다. 첫번째 층은 우리가 볼 수 있는 층인 가시층(visible layer), 혹은 데이터가 입력되는 입력층이고 두번째 층은 특징값이 학습되는 은닉층이다.

개요

제한 볼츠만 머신은 1986년 폴 스몰렌스키(Paul Smolensky)에 의해 하모니움이라는 이름으로 처음 발명되었고, 2000년 중반 제프리 힌튼(Geoffrey Hinton)과 협력자들이 그들을 위한 빠른 학습 알고리즘을 발명하면서 유명해졌다. 제한 볼츠만 머신은 차원성 감소, 분류, 협업, 필터링, 기능 학습, 주제 모델링 및 많은 신체 양자역학에서 응용 프로그램을 발견했다.[1] 제한 볼츠만 머신은 볼츠만 머신에서 층간 연결을 없앤 형태의 모델이다. 층간 연결을 없애면, 머신은 가시 유닛(Visible Unit)과 은닉 유닛(Hidden Unit)으로 이루어진 무방향 이분 그래프 형태의 모양이 된다. 결론적으로 모델의 층간 연결을 없앰으로써, 얻는 이점으로 뉴럴 네트워크는 깊어질 수 있었다. 가장 큰 이점은 가시 유닛이 관찰되고 고정(Clamped)되었을 때 은닉 유닛을 추론하는 마르코프 연쇄 몬테카를로 방법(MCMC; Markov chain Monte Carlo) 과정이 단 한 번에 끝난다는 것이다. 제한 볼츠만 머신은 확률모델의 계산이 불가능하기 때문에, 학습시 근사법인 마르코프 연쇄 몬테카를로 방법 또는 제프리 힌튼 교수가 발견한 CD를 사용하는데, 제한 볼츠만 머신의 모델의 간단함에서 오는 추론에 대한 이점은 샘플링 근간의 학습법이 실용적인 문제에 적용되는데 기여했다.

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

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

구조

제한 볼츠만 머신은 같은 층 내부의 연결이 전혀 없으며, 이 구조 때문에 ‘제한된’ 볼츠만 머신이라는 이름이 붙여졌다. 입력층의 노드는 데이터를 입력받으면 입력받은 데이터를 은닉층에 얼마나 전달할 것인지를 확률에 따라 결정(stochastic decision)한다. 즉 확률에 따라 입력을 전달할지 혹은 전달하지 않을지를 결정한다.

각 입력 노드는 데이터의 저수준 특징값 혹은 속성을 받아온다. 예를 들어 흑백 이미지가 입력 데이터라면 각 입력 노드는 이미지의 픽셀 값에 해당한다. 만일 MNIST 데이터베이스를 사용한다면 입력 노드의 개수는 데이터베이스의 이미지의 픽셀 수(784)와 같게 설정된다.

입력으로 를 넣으면 그 은닉층의 노드에 있는 가중치 와 곱해진다. 그리고 를 더한 값을 활성함수 에 넣은 것이 노드의 출력이 된다.

 

위의 식은 은닉 노드 하나에 들어오는 여러 개의 입력 중 하나만 고려한 식이다. 실제로는 여러 입력 노드의 값을 받아서 각자 다른 가중치 와 곱해진다. 그리고 그 총합에 바이어스를 더한 뒤 활성함수에 들어간다. 즉 가 은닉 노드의 출력이다. 이렇게 모든 가시층의 노드가 모든 은닉 노드로 전달되는 것 특징 때문에 제한 볼츠만 머신은 대칭 이분 그래프(symmetrical bipartite graph)라고 부른다. 즉, 두 층이 대칭적으로 모두 연결되어 있어 있는 그래프인 것이다. 4개의 입력 노드는 3개의 은닉 노드에 모두 연결되어 있다. 그리고 각 연결마다 각자 다른 가중치 값이 있다. 따라서 총 12개(4*3)의 가중치가 있다. 이런 경우에 일반적으로 이 가중치를 4x3 행렬로 나타낸다. 위에서 설명한 계산은 모든 은닉 노드에서 일어난다. 즉 각 은닉 노드마다 4개의 입력 값에 적당한 가중치를 곱해 그 값을 더한다. 그리고 거기에 바이어스를 더한 뒤 이를 활성 함수에 통과시킨다. 심층신경망이라면 계속 층을 쌓아서 전체 신경망 구조를 만든다. 그리고 최종적으로 출력층에서 데이터를 분류하는 등의 작업을 수행한다.[4]

특징

각주

  1. Restricted Boltzmann machine Wikipedia - https://en.wikipedia.org/wiki/Restricted_Boltzmann_machine
  2. 딥러닝에서 사용되는 알고리즘 TCP스쿨 - http://tcpschool.com/deeplearning/deep_algorithm3
  3. 딥러닝 위키백과 - https://ko.wikipedia.org/wiki/%EB%94%A5_%EB%9F%AC%EB%8B%9D
  4. Chris Nicholson, 〈[초보자용 RBM(Restricted Boltzmann Machines) 튜토리알 초보자용 RBM(Restricted Boltzmann Machines) 튜토리알]〉, 《pathmind》, 2012-02-25

참고자료

같이 보기


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