SlideShare a Scribd company logo
1 of 38
Download to read offline
대칭 가중치와
심층 신뢰 네트워크
아꿈사 송성곤
Hebbian Learning/Rule
● 1949 Donald Hebb에 의해 뉴런의 시냅스에 기반한 학습의 법칙을
발표
● 신경회로망이 정답을 내도록 기여한 뉴런들간의 연결은 강화시키고,
반대의 경우는 연결을 약화시키는 과정을 반복하는 것이다.
● W = old_W + alpha * a * b
○ Alpha = learning rate
● Wij = Wji 가중치 행렬이 대칭
홉필드 네트워크 (HOPFIELD NETWORK)
● 물리학적 스핀 모델로부터 Hopfield network 를 착안하였으며 에너지
개념을 신경망에 처음으로 도입
● 안정상태 도달을 위한 제약
○ 노드간 연결 가중치가 대칭적, (Wij = Wji)
○ 완전히 비동기적으로 (asynchronously) 동작할 때만 안정된 상태에 도달
● 입력값이 임계값을 넘으면 흥분하고 그 이하이면 억제됨:
홉필드 네트워크 (HOPFIELD NETWORK)
● Hopfield network 는 뉴런의 작용을 단지 임계값의 작용으로 보고,
훈련에 의한 정보가 연결강도(Weight)에 의해 표현된다는 간단한
이론에 기초하고 있으며, 연상기억 (associative memory) 이나
순회판매원 문제 (Traveling Salesman Problem) 와 같은 최적화
(optimization) 문제를 해결하는데 있어 매우 유용하다.
● Hopfield network 는 전역적, 지역적 최적화를 수행할 뿐만 아니라
연상 기억장치 (associative memory) 로서도 효과적으로 작동한다.
홉필드 네트워크
● 연상기억
● 연상기억 만들기
● 에너지 함수
● 홉필드 네트워크의 수용력
● 연속 홉필드 네트워크
홉필드 네트워크 - associative memory
● 연상 기억(associative memory)
○ 문맥 지정성 기억 (context-addressable memory)이라고 하며, 패턴들의 집합에서
학습하고 한번 본 패턴을 기억하고 가장 비슷한 패턴을 인식
● 적용분야
○ 이미지 노이즈 제거
○ 부분적인 이미지로 부터 원본 전체 이미지 다시 생성
McCulloch-Pitts Model
● 1943년 Warren McCulloch과 Walter
Pitts 에 의해 제안된 신경 시스템 모델
○ 인간의 두뇌를 논리적 서술을 구현하는 이진
원소들의 결합으로 추측했는데, 이진 원소인
뉴런은 on이나 off 상태를 나타낸다.
■ 뉴런의 활동은 'All or nothing'의 과정이다.
■ 어떤 뉴런을 흥분되게 (excited) 하려면 2개 이상의 고정된
수의 시냅스가 일정한 시간내에 활성화 (activated) 되어야
한다.
■ 신경 시스템에서 유일하게 의미있는 시간지연 (delay) 은
시냅스에서의 지연 (synaptic delay) 이다.
■ 어떠한 억제적인 (inhibitory) 시냅스는 그 시각의 뉴런의
활성화(activation)를 절대적으로 방지한다.
■ 네트워크의 연결 구조는 시간에 따라 바뀌지 않는다.
홉필드 네트워크
● Hopfield network의 유니트들은 그림에서
보는 바와 같이 fully connected되어
있어서 각 유니트는 다른 모든 유니트들과
서로 직접적인 연결 경로를 갖는다.
● 이 연결선들에는 유니트들 상호간에
대칭적인 가중치(Weight)가 존재한다.
● Hopfield network는 자신을 제외한 모든
유니트들간의 양방향으로 상호연결된
network
홉필드 네트워크 - 연상 기억 장치 만들기
: 활성화 함수
: 가중치, N=학습패턴 수, Si(n)=입력패턴 n에 대한 뉴런 i의 활성화, 1/N=학습률
● 2진 이미지 재 생성 예제
○ 각 그림의 픽셀에 대해서 하나의 뉴런을 갖고, Si= 1은 검은 픽셀값, Si=-1은 흰
픽셀값을 위해 사용한다.
○ 하나의 입력 패턴에 대해서 홉필드 네트워크는 이미지를 수정한다.
○ 이미지를 바탕으로 가중치 값을 설정
홉필드 네트워크 - 연상 기억 장치 만들기
트레이닝한 이미지
■ 네트워크에 손상된
이미지를 입력
■ 각각의 뉴런들은 모든
다른 뉴런값을
바탕으로 활성화를
갱신한다.
■ 마지막에 수렴하는
최종 상태는
네트워크가 학습한
패턴 이 됨
홉필드 네트워크 알고리즘
홉필드 네트워크 알고리즘
홉필드 네트워크 - 에너지 함수
○ 물리학에서 에너지 함수를 통해 시스템이 얼마의
에너지를 갖고 있는지를 계산하고, 시스템은 낮은 에너지
상태로 완화한다는 아이디어로 사용
○ 네트워크가 안정되면 가중치와 뉴런의 활성화는
같아지는데 이때 에너지는 최소화
○ 지역 최소값에서 네트워크 안정상태
○ 전체 최적값에 도달한다는 보장은 없음
홉필드 네트워크의 한계
● 첫째는 저장되어 있는 패턴의 수와 정확히 회상될 (recall)수 있는
수가 매우 제한적이라는 것이다.
○ 즉, 너무 많은 패턴을 저장하고 있으면 수렴할 때 잘못된 패턴으로 도달할 수 있다.
Hopfield network 는 대표 (exemplar) 패턴이 임의적으로 생성될 때 클래스의
수가 유니트의 수 (N) 나 입력요소 수의 0.15 배 이상일 때 문제가 되며,
○ 일반적으로 클래스의 수가 0.15 N 이하일 때 잘 작동한다.
● 두 번째는 대표패턴이 다른 대표패턴과 유사하여 많은 비트들을
공유한다면 network 가 불안정해진다는 것이다.
○ 즉 하나의 견본이 시각 0일 때 불안정하게 작용될 경우 network 는 다른 패턴으로
수렴하게 된다.
홉필드 네트워크의 수용력
20 * 16 이미지들에 대해서 학습된 320개의 뉴런들은 대략
0.138*320=44개의 이미지를 저장할 수 있다.
● 비트 i가 변경될 확률
● 1% 확률로 이를 수용한다면 N은 약 0.138d의
패턴들을 저장할 수 있음
연속 홉필드 네트워크
● 연속 홉필드의 차이점은 뉴런들이 -1에서 1사이의 값에 대해서
실행되는 활성화 함수를 사용해야 함
○ 활성화 함수로 np.tanh(Hyperbolic tangent)를 사용
○ MLP에서 수행한것과 같은 종류의 변경 수행
○ 2진 역치 값 대신 연속 활성화 함수 사용
● 네트워크 함수에 대한 변화
○ 에너지 함수 최소화 대신에 에너지 함수와 매칭되는 확률 분포에 대한 근사치
○ 뉴런의 활성화에 대한 확률로 0값은 뉴런 비활성화, 1값은 활성화 의미로 사용
광학적인 연상 기억 장치
미국의 휴즈 연구소의 버나드 소퍼 (Bernard H. Soffer) 등에 의해 실험
● 제일 왼쪽의 영상은 본래의 영상
● 중간의 것은 반쪽을 가린 것
● 제일 오른쪽의 것은 회상된 영상
시뮬레이티드 어닐링 (Simulated Annealing)
● 비용 함수 (cost function) 와 자유 에너지 사이의 관계, 그리고
해답과 물리적인 상태의 관계를 정립함으로써 물리적인 담금질 과정의
시뮬레이션에 의거한 조합 최적화 문제의 해결 방안
● 특징은 폭넓은 응용 가능성과 최상에 가까운 해답을 얻을 수 있다는
점이다. 단, 상당히 좋은 해답을 얻는데 걸리는 계산 시간이 엄청나게
길다는 점이다. 그러나 시뮬레이티드 어닐링 알고리즘의 구현시 필요한
시간은 대규모 병렬처리를 기반으로 하는 계산 모델을 사용함으로써
상당히 줄일 수 있는데 그러한 모델 중의 하나가 볼츠만 머신
(Bolzmann machine)
볼츠만 머신(BOLTZMAN MACHINE)
● 신경망과 시뮬레이티드 어닐링으로부터의
흥미로운 성질들을 결합시킨 모델인데 대규모
병렬처리를 이용하는 강력한 계산 장치
● Fully connected되어 있음
● Stochastic model
● Visible neuron(입력 값이 명시될수 있음)
+ Invisible neuron으로 구성
○ 개별 유니트들의 상태를 그들 이웃들의 상태를
조정하기 위하여 시뮬레이티드 어닐링 알고리즘에
의한 확률적인 상태전이 메카니즘이 쓰임
볼츠만 머신 vs 홉필드 네트워크
● 공통점
○ 각 프로세싱 유니트는 +1, -1의 값만 가지며 대칭적 연결
○ 각 유니트는 임의로 선택되며 한 순간에 하나의 유니트만 변화.(No self-feedback)
● 차이점
○
볼츠만 홉필드
Stochastic neuron Deterministic model
unsupervised learning Supervised learning of a probabilistic form
에너지가 증가하는 상태의 전이에 대해서도
허용하는 동작규칙 적용
홉필드는 에너지 감소방향으로만 변화
볼츠만 머신 - 전역 최소값
● 여러 신경망 모델들이 지역 최소점(local minima) 에 빠져서 전역적
최소점 (global minima)을 구할 수 없는 경우도 있는데 비하여
볼츠만 머신에서는 에너지가 증가하는 방향으로의 전이도 가능하므로
전역적 최소값을 구할 수 있음
볼츠만 머신 - 볼츠만 머신을 학습하는 중요한 이유
● 우선 이 모델은 탐사, 표현 및 학습 등에 응용될 수 있는 일반적인
접근 방법을 제시해 줌
● 또한 이 모델은 엄밀한 수학적인 바탕을 통하여 네트워크의 수렴 성질을
제공하며 지도학습이건 자율학습이건 간에 간단한 학습 알고리즘들을
형성할 수 있게 해 준다.
● 마지막으로, 이 모델의 단순성으로 인하여 실리콘 칩에 넣는 하드웨어의
구현이 비교적 쉽다는 것이다.
볼츠만 머신 - 출력값이 1이 될 확률
볼츠만 머신에서는 연결강도의 합 ui(t) 로 부터 다음 시각의 출력
vi(t+1) 을 결정하는 이론에 계단함수 (step function) 대신 확률에
의한 판정이론을 도입했다. 즉 유니트 I 의 다음 시각에서의 출력값
vi(t+1) 이 1 이 될 확률 P 는 (식 1) 에 의해 결정된다.
볼츠만 머신의 학습
● 가시(visible)유니트와 은닉(hidden)유니트로나누어 가시 유니트들의
상태의 평형분포를 원하는 확률분포로 일치하도록 학습
○ (a)자기 상기형:
■ 학습시 제시되는 목표 분포를 그대로
따라서 학습하는 방법
○ (b)상호 상기형:
■ 입력 유니트들의 상태를 고정했을
때의 출력 유니트들의 평형분포를
원하는 확률분포와 일치하도록
학습하는 형태
확률 뉴런 - 볼츠만 머신
● 제한 볼츠만 머신
● CD 알고리즘 유도
● 지도학습
● 유향 신뢰 네트워크
제한 볼츠만 머신 (Restricted Boltzmann machine)
● 볼츠만과 달리 같은 층 내부 노드간의 연결은 없고 층과 층 사이와의
연결만이 있다. 이런 점에서 제한적(Restricted)라고 불리운다.
● 차원 감소, 분류, 선형 회귀 분석, 협업 필터링(collaborative
filtering), 특징값 학습(feature learning) 및 주제 모델링
(topic modelling)에 사용할 수 있는 알고리즘
● RBM은 자체적으로도 사용할 수 있지만 다른 심층 신경망의 학습을 돕기
위해 쓰이기도 함
제한 볼츠만 머신
입력의 가중치합을 계산하여 이를 시그모이드
함수를 통해서 변환 => 확률값으로 해석
, j번째 은닉 뉴런은 0과 1의 값을 출력한다.
σ(net)는 인공신경망에서 활성화 함수로
사용되는 시그모이드 함수
입력 벡터 x가 주어질 때 각각의 뉴런은 서로
독립이라고 가정하면, 은닉벡터 h의 확률
은닉벡터h가 주어지면 입력 뉴런들은 서로
독립이라고 가정
P(x,h)확률과 에너지는
반비례 관계.
RBM 학습방법
● RBM의 학습 방법은
○ 입력층 노드값에 Weight를 곱하고 더하고 확률을 구하고
○ 확률에 근거하여 샘플링하여 은닉층의 노드값을 결정
○ 은닉층의 노드값이 결정되면 또 다시 입력층의 노드값들을 같은 방식으로 결정
○ 그러면서 에너지를 최소화하는 방향으로 Weight를 학습하는 것이다.
Gibbs sampling
● 두개 이상의 확률 변수의 결합 확률 분포로부터 일련의 표본을 생성하는
확률적 알고리즘으로, 결합 확률 분포나 그에 관련된 확률 계산을
근사하기 위해 사용된다.
● Gibbs sampling은 메트로폴리스-해스팅스 알고리즘의 특별한 예이며,
마르코프 연쇄 몬테 카를로 알고리즘의 한 예이다.
○ 메트로폴리스-해스팅스 알고리즘(Metropolis-Hastings algorithm)
■ 직접적으로 표본을 얻기 어려운 확률 분포로부터 표본의 수열을 생성하는 데
사용하는 기각 표본 추출 알고리즘
■ 제안된 밀도와 제안된 이동을 거부하는 방법을 이용하여 무작위 행보를 생성
○ 마르코프 연쇄 몬테 카를로 알고리즘
■ 마르코프 연쇄의 구성에 기반한 확률 분포로부터 원하는 분포의 정적 분포를
갖는 표본을 추출하는 알고리즘의 한 부류
MCMC
● MCMC는 원하는 stationary distribution을 가지는 MC를
design하여 목표로하는 distribution을 만들어내는 알고리즘
family를 일컫는다.
Contrastive Divergence
● RBM을 트레이닝하기 위해 사용되는 알고리즘으로 Wake-sleep알고리즘
● 네트워크의 weight, gradient를 구하는 알고리즘
● CD 알고리즘을 요약하면:
○ p(v,h)를 계산하는 MCMC (Gibbs Sampling)의 step을 converge할 때 까지
돌리는 것이 아니라,
○ 한 번만 돌려서 p(v,h)를 approximate하고, 그 값을 사용하여 을
계산해 weight, gradient의 approximation 값을 구한다.
역전파 신경망 vs RBM
● 비슷한점
○ 역전파와 비슷하게 RBM도 입력노드에 Weight를 곱한 다음 시그노이드 함수를 적용해
은닉층의 값을 구하는 방법은 비슷하다.
● 차이점
○ 다만 확률적으로 샘플링해서 구한다. 역전파 신경망에서는 시그모이드(Sigmoid)
결과값이 바로 노드의 출력값이 되지만, RBM에서는 노드의 값을 결정짓기 위한
확률값이다.
○ 역전파 신경망을 생각하면 목표치가 있기에 오류치를 계산하고 오류치 만큼
역전파시켜 학습을 시키는 데 RBM은 단층이기에 목표치가 없다. 그래서 다른 방식의
개념이 필요한데 바로 에너지라는 개념이다. 에너지(E)는 마이너스(-) 부호를 가지고
Weight가 0보다 큰 수 이기에 입력과 출력이 양의 상관 관계에 있을수록 에너지가
작아진다.
가시층 i번째 노드가 1일 때의 확률 분포
RBM - 지도학습
● RBM도 홉필드 네트워크와 같이 패턴완성을 수행할수 있음
○ RBM을 발전시켜서 추가적인 소프트맥스층을 사용하면 대칭가중치를 통해 분류를
수행할 수 있음
○ 노드들에는 로지스틱 대신에 소프트 맥스를 활성화 함수로 사용해서 하나의 뉴런만
활성화
○
RBM - 심층구조
○ RBM의 은닉층의 학습이 끝나고 나면 이 데이터는 다시 다음 층으로 연결됩니다. 이
두번째 연결에서는 은닉층이 가시층의 역할을 하고, 새로운 추가한 층이 은닉층이
됩니다. 즉, 첫번째 연결에서 은닉층이 학습한 내용을 가지고 다시 새로운 RBM을
학습하는 것입니다.
○ 이런 과정을 층별 탐욕 비지도 선행학습(layerwise, greedy unsupervised
pre-training)이라고 합니다.
○ 이렇게 선행학습이 된 가중치는 데이터의 분포를 이미 알고있기 때문에 이 값으로
초기화한 심층 신뢰 신경망은 더 좋은 성능을 보여줍니다.
○ RBM의 광범위한 활용 사례중에서도 특히 이 선행학습이 아주 유용합니다. 선행학습은
가중치를 학습시킨다는 의미에서 역방향전파(backpropagation)와 유사한 역할을
합니다.
심층 신뢰 네트워크(Deep Belief Networks)
● DBN은 제한 볼쯔만 머신을 빌딩블록으로 해서 여러층을
쌓은 딥러닝 아키텍쳐
○ 심층의 신경망을 학습하는데 있어서 오차 소멸(vanishing
gradient) 문제가 있다. Vanishing gradient 문제를 해결하기
위해서 DBN은 아래층(입력에 가까운 층)에서부터 위층으로 가면서
순차적으로 선행학습을 진행한다. 즉 아래층에 대해서 가중치를
먼저 학습한 후 이 가중치를 고정한 다음 그 다음 층의 가중치를
학습한다. 이 기술은 층별 선행학습 (layerwise pre-training)
이라고 함
○ DBN는 크게 두 가지로 구분된다. 하나는 입력과 같은 출력을 재
생성하도록 하는 오토인코더이고 다른 하나는 분류기로 사용하는
것이다.
DBN
● 층별 선훈련 방법
딥빌리프네트워크 - 지도학습
● 딥빌리프네트워크는 기본적으로 무감독
학습 구조이다
● 그러나 분류 문제를 풀기 위한
감독학습으로도 사용할 수 있다.
마지막 층의 은닉층을 입력으로 하고
출력층을 추가하여 감독학습을
시킴으로써 분류 문제를 풀 수 있다.
참고자료
● 알고리즘 중심의 머신러닝 가이드 파이썬 코드 기반 (제이펍의 인공지능 시리즈 2 | 2판 ) 17장
● 5 장: 딥빌리프네트워크 (서울대학교) https://bi.snu.ac.kr/Courses/ML2016/LectureNote/LectureNote_ch5.pdf
● Deep Learning for Java https://deeplearning4j.org/kr/restrictedboltzmannmachine

More Related Content

What's hot

What's hot (18)

텐서플로우로 배우는 딥러닝
텐서플로우로 배우는 딥러닝텐서플로우로 배우는 딥러닝
텐서플로우로 배우는 딥러닝
 
The fastalgorithmfordeepbeliefnets
The fastalgorithmfordeepbeliefnetsThe fastalgorithmfordeepbeliefnets
The fastalgorithmfordeepbeliefnets
 
A Beginner's guide to understanding Autoencoder
A Beginner's guide to understanding AutoencoderA Beginner's guide to understanding Autoencoder
A Beginner's guide to understanding Autoencoder
 
딥러닝 기본 원리의 이해
딥러닝 기본 원리의 이해딥러닝 기본 원리의 이해
딥러닝 기본 원리의 이해
 
KOOC Ch8. k-means & GMM
KOOC Ch8. k-means & GMMKOOC Ch8. k-means & GMM
KOOC Ch8. k-means & GMM
 
Normalization 방법
Normalization 방법 Normalization 방법
Normalization 방법
 
알기쉬운 Variational autoencoder
알기쉬운 Variational autoencoder알기쉬운 Variational autoencoder
알기쉬운 Variational autoencoder
 
Knowing when to look : Adaptive Attention via A Visual Sentinel for Image Cap...
Knowing when to look : Adaptive Attention via A Visual Sentinel for Image Cap...Knowing when to look : Adaptive Attention via A Visual Sentinel for Image Cap...
Knowing when to look : Adaptive Attention via A Visual Sentinel for Image Cap...
 
keras 빨리 훑어보기(intro)
keras 빨리 훑어보기(intro)keras 빨리 훑어보기(intro)
keras 빨리 훑어보기(intro)
 
[컴퓨터비전과 인공지능] 8. 합성곱 신경망 아키텍처 5 - Others
 [컴퓨터비전과 인공지능] 8. 합성곱 신경망 아키텍처 5 - Others [컴퓨터비전과 인공지능] 8. 합성곱 신경망 아키텍처 5 - Others
[컴퓨터비전과 인공지능] 8. 합성곱 신경망 아키텍처 5 - Others
 
Boosting_suman
Boosting_sumanBoosting_suman
Boosting_suman
 
알아두면 쓸데있는 신비한 딥러닝 이야기
알아두면 쓸데있는 신비한 딥러닝 이야기알아두면 쓸데있는 신비한 딥러닝 이야기
알아두면 쓸데있는 신비한 딥러닝 이야기
 
[컴퓨터비전과 인공지능] 8. 합성곱 신경망 아키텍처 3 - GoogLeNet
[컴퓨터비전과 인공지능] 8. 합성곱 신경망 아키텍처 3 - GoogLeNet[컴퓨터비전과 인공지능] 8. 합성곱 신경망 아키텍처 3 - GoogLeNet
[컴퓨터비전과 인공지능] 8. 합성곱 신경망 아키텍처 3 - GoogLeNet
 
Variational Autoencoder를 여러 가지 각도에서 이해하기 (Understanding Variational Autoencod...
Variational Autoencoder를 여러 가지 각도에서 이해하기 (Understanding Variational Autoencod...Variational Autoencoder를 여러 가지 각도에서 이해하기 (Understanding Variational Autoencod...
Variational Autoencoder를 여러 가지 각도에서 이해하기 (Understanding Variational Autoencod...
 
Learning by association
Learning by associationLearning by association
Learning by association
 
논문-정규분포변환
논문-정규분포변환논문-정규분포변환
논문-정규분포변환
 
Focal loss의 응용(Detection & Classification)
Focal loss의 응용(Detection & Classification)Focal loss의 응용(Detection & Classification)
Focal loss의 응용(Detection & Classification)
 
A neural image caption generator
A neural image caption generatorA neural image caption generator
A neural image caption generator
 

More from Sunggon Song

More from Sunggon Song (13)

K8s in action chap15
K8s in action chap15K8s in action chap15
K8s in action chap15
 
랜덤Walks, 몬테카를로 시뮬레이션
랜덤Walks, 몬테카를로 시뮬레이션랜덤Walks, 몬테카를로 시뮬레이션
랜덤Walks, 몬테카를로 시뮬레이션
 
K8s in action02
K8s in action02K8s in action02
K8s in action02
 
Function approximation as supervised learning
Function approximation as supervised learningFunction approximation as supervised learning
Function approximation as supervised learning
 
서포트 벡터머신
서포트 벡터머신서포트 벡터머신
서포트 벡터머신
 
데이터처리와 통계 기본 머신러닝
데이터처리와 통계 기본 머신러닝데이터처리와 통계 기본 머신러닝
데이터처리와 통계 기본 머신러닝
 
함수형사고 실용적사고
함수형사고 실용적사고함수형사고 실용적사고
함수형사고 실용적사고
 
함수형사고 3장 양도하라
함수형사고 3장 양도하라함수형사고 3장 양도하라
함수형사고 3장 양도하라
 
7가지 동시성 모델 람다아키텍처
7가지 동시성 모델  람다아키텍처7가지 동시성 모델  람다아키텍처
7가지 동시성 모델 람다아키텍처
 
7가지 동시성 모델-2장
7가지 동시성 모델-2장7가지 동시성 모델-2장
7가지 동시성 모델-2장
 
Ddd start 10장
Ddd start 10장Ddd start 10장
Ddd start 10장
 
DDD start 1장
DDD start 1장DDD start 1장
DDD start 1장
 
실무로 배우는 시스템 성능 최적화 8부 - 1,2,3장
실무로 배우는 시스템 성능 최적화 8부 - 1,2,3장실무로 배우는 시스템 성능 최적화 8부 - 1,2,3장
실무로 배우는 시스템 성능 최적화 8부 - 1,2,3장
 

대칭가중치와 심층신뢰네트워크

  • 1. 대칭 가중치와 심층 신뢰 네트워크 아꿈사 송성곤
  • 2. Hebbian Learning/Rule ● 1949 Donald Hebb에 의해 뉴런의 시냅스에 기반한 학습의 법칙을 발표 ● 신경회로망이 정답을 내도록 기여한 뉴런들간의 연결은 강화시키고, 반대의 경우는 연결을 약화시키는 과정을 반복하는 것이다. ● W = old_W + alpha * a * b ○ Alpha = learning rate ● Wij = Wji 가중치 행렬이 대칭
  • 3. 홉필드 네트워크 (HOPFIELD NETWORK) ● 물리학적 스핀 모델로부터 Hopfield network 를 착안하였으며 에너지 개념을 신경망에 처음으로 도입 ● 안정상태 도달을 위한 제약 ○ 노드간 연결 가중치가 대칭적, (Wij = Wji) ○ 완전히 비동기적으로 (asynchronously) 동작할 때만 안정된 상태에 도달 ● 입력값이 임계값을 넘으면 흥분하고 그 이하이면 억제됨:
  • 4. 홉필드 네트워크 (HOPFIELD NETWORK) ● Hopfield network 는 뉴런의 작용을 단지 임계값의 작용으로 보고, 훈련에 의한 정보가 연결강도(Weight)에 의해 표현된다는 간단한 이론에 기초하고 있으며, 연상기억 (associative memory) 이나 순회판매원 문제 (Traveling Salesman Problem) 와 같은 최적화 (optimization) 문제를 해결하는데 있어 매우 유용하다. ● Hopfield network 는 전역적, 지역적 최적화를 수행할 뿐만 아니라 연상 기억장치 (associative memory) 로서도 효과적으로 작동한다.
  • 5. 홉필드 네트워크 ● 연상기억 ● 연상기억 만들기 ● 에너지 함수 ● 홉필드 네트워크의 수용력 ● 연속 홉필드 네트워크
  • 6. 홉필드 네트워크 - associative memory ● 연상 기억(associative memory) ○ 문맥 지정성 기억 (context-addressable memory)이라고 하며, 패턴들의 집합에서 학습하고 한번 본 패턴을 기억하고 가장 비슷한 패턴을 인식 ● 적용분야 ○ 이미지 노이즈 제거 ○ 부분적인 이미지로 부터 원본 전체 이미지 다시 생성
  • 7. McCulloch-Pitts Model ● 1943년 Warren McCulloch과 Walter Pitts 에 의해 제안된 신경 시스템 모델 ○ 인간의 두뇌를 논리적 서술을 구현하는 이진 원소들의 결합으로 추측했는데, 이진 원소인 뉴런은 on이나 off 상태를 나타낸다. ■ 뉴런의 활동은 'All or nothing'의 과정이다. ■ 어떤 뉴런을 흥분되게 (excited) 하려면 2개 이상의 고정된 수의 시냅스가 일정한 시간내에 활성화 (activated) 되어야 한다. ■ 신경 시스템에서 유일하게 의미있는 시간지연 (delay) 은 시냅스에서의 지연 (synaptic delay) 이다. ■ 어떠한 억제적인 (inhibitory) 시냅스는 그 시각의 뉴런의 활성화(activation)를 절대적으로 방지한다. ■ 네트워크의 연결 구조는 시간에 따라 바뀌지 않는다.
  • 8. 홉필드 네트워크 ● Hopfield network의 유니트들은 그림에서 보는 바와 같이 fully connected되어 있어서 각 유니트는 다른 모든 유니트들과 서로 직접적인 연결 경로를 갖는다. ● 이 연결선들에는 유니트들 상호간에 대칭적인 가중치(Weight)가 존재한다. ● Hopfield network는 자신을 제외한 모든 유니트들간의 양방향으로 상호연결된 network
  • 9. 홉필드 네트워크 - 연상 기억 장치 만들기 : 활성화 함수 : 가중치, N=학습패턴 수, Si(n)=입력패턴 n에 대한 뉴런 i의 활성화, 1/N=학습률
  • 10. ● 2진 이미지 재 생성 예제 ○ 각 그림의 픽셀에 대해서 하나의 뉴런을 갖고, Si= 1은 검은 픽셀값, Si=-1은 흰 픽셀값을 위해 사용한다. ○ 하나의 입력 패턴에 대해서 홉필드 네트워크는 이미지를 수정한다. ○ 이미지를 바탕으로 가중치 값을 설정 홉필드 네트워크 - 연상 기억 장치 만들기 트레이닝한 이미지 ■ 네트워크에 손상된 이미지를 입력 ■ 각각의 뉴런들은 모든 다른 뉴런값을 바탕으로 활성화를 갱신한다. ■ 마지막에 수렴하는 최종 상태는 네트워크가 학습한 패턴 이 됨
  • 13. 홉필드 네트워크 - 에너지 함수 ○ 물리학에서 에너지 함수를 통해 시스템이 얼마의 에너지를 갖고 있는지를 계산하고, 시스템은 낮은 에너지 상태로 완화한다는 아이디어로 사용 ○ 네트워크가 안정되면 가중치와 뉴런의 활성화는 같아지는데 이때 에너지는 최소화 ○ 지역 최소값에서 네트워크 안정상태 ○ 전체 최적값에 도달한다는 보장은 없음
  • 14. 홉필드 네트워크의 한계 ● 첫째는 저장되어 있는 패턴의 수와 정확히 회상될 (recall)수 있는 수가 매우 제한적이라는 것이다. ○ 즉, 너무 많은 패턴을 저장하고 있으면 수렴할 때 잘못된 패턴으로 도달할 수 있다. Hopfield network 는 대표 (exemplar) 패턴이 임의적으로 생성될 때 클래스의 수가 유니트의 수 (N) 나 입력요소 수의 0.15 배 이상일 때 문제가 되며, ○ 일반적으로 클래스의 수가 0.15 N 이하일 때 잘 작동한다. ● 두 번째는 대표패턴이 다른 대표패턴과 유사하여 많은 비트들을 공유한다면 network 가 불안정해진다는 것이다. ○ 즉 하나의 견본이 시각 0일 때 불안정하게 작용될 경우 network 는 다른 패턴으로 수렴하게 된다.
  • 15. 홉필드 네트워크의 수용력 20 * 16 이미지들에 대해서 학습된 320개의 뉴런들은 대략 0.138*320=44개의 이미지를 저장할 수 있다. ● 비트 i가 변경될 확률 ● 1% 확률로 이를 수용한다면 N은 약 0.138d의 패턴들을 저장할 수 있음
  • 16. 연속 홉필드 네트워크 ● 연속 홉필드의 차이점은 뉴런들이 -1에서 1사이의 값에 대해서 실행되는 활성화 함수를 사용해야 함 ○ 활성화 함수로 np.tanh(Hyperbolic tangent)를 사용 ○ MLP에서 수행한것과 같은 종류의 변경 수행 ○ 2진 역치 값 대신 연속 활성화 함수 사용 ● 네트워크 함수에 대한 변화 ○ 에너지 함수 최소화 대신에 에너지 함수와 매칭되는 확률 분포에 대한 근사치 ○ 뉴런의 활성화에 대한 확률로 0값은 뉴런 비활성화, 1값은 활성화 의미로 사용
  • 17. 광학적인 연상 기억 장치 미국의 휴즈 연구소의 버나드 소퍼 (Bernard H. Soffer) 등에 의해 실험 ● 제일 왼쪽의 영상은 본래의 영상 ● 중간의 것은 반쪽을 가린 것 ● 제일 오른쪽의 것은 회상된 영상
  • 18. 시뮬레이티드 어닐링 (Simulated Annealing) ● 비용 함수 (cost function) 와 자유 에너지 사이의 관계, 그리고 해답과 물리적인 상태의 관계를 정립함으로써 물리적인 담금질 과정의 시뮬레이션에 의거한 조합 최적화 문제의 해결 방안 ● 특징은 폭넓은 응용 가능성과 최상에 가까운 해답을 얻을 수 있다는 점이다. 단, 상당히 좋은 해답을 얻는데 걸리는 계산 시간이 엄청나게 길다는 점이다. 그러나 시뮬레이티드 어닐링 알고리즘의 구현시 필요한 시간은 대규모 병렬처리를 기반으로 하는 계산 모델을 사용함으로써 상당히 줄일 수 있는데 그러한 모델 중의 하나가 볼츠만 머신 (Bolzmann machine)
  • 19. 볼츠만 머신(BOLTZMAN MACHINE) ● 신경망과 시뮬레이티드 어닐링으로부터의 흥미로운 성질들을 결합시킨 모델인데 대규모 병렬처리를 이용하는 강력한 계산 장치 ● Fully connected되어 있음 ● Stochastic model ● Visible neuron(입력 값이 명시될수 있음) + Invisible neuron으로 구성 ○ 개별 유니트들의 상태를 그들 이웃들의 상태를 조정하기 위하여 시뮬레이티드 어닐링 알고리즘에 의한 확률적인 상태전이 메카니즘이 쓰임
  • 20. 볼츠만 머신 vs 홉필드 네트워크 ● 공통점 ○ 각 프로세싱 유니트는 +1, -1의 값만 가지며 대칭적 연결 ○ 각 유니트는 임의로 선택되며 한 순간에 하나의 유니트만 변화.(No self-feedback) ● 차이점 ○ 볼츠만 홉필드 Stochastic neuron Deterministic model unsupervised learning Supervised learning of a probabilistic form 에너지가 증가하는 상태의 전이에 대해서도 허용하는 동작규칙 적용 홉필드는 에너지 감소방향으로만 변화
  • 21. 볼츠만 머신 - 전역 최소값 ● 여러 신경망 모델들이 지역 최소점(local minima) 에 빠져서 전역적 최소점 (global minima)을 구할 수 없는 경우도 있는데 비하여 볼츠만 머신에서는 에너지가 증가하는 방향으로의 전이도 가능하므로 전역적 최소값을 구할 수 있음
  • 22. 볼츠만 머신 - 볼츠만 머신을 학습하는 중요한 이유 ● 우선 이 모델은 탐사, 표현 및 학습 등에 응용될 수 있는 일반적인 접근 방법을 제시해 줌 ● 또한 이 모델은 엄밀한 수학적인 바탕을 통하여 네트워크의 수렴 성질을 제공하며 지도학습이건 자율학습이건 간에 간단한 학습 알고리즘들을 형성할 수 있게 해 준다. ● 마지막으로, 이 모델의 단순성으로 인하여 실리콘 칩에 넣는 하드웨어의 구현이 비교적 쉽다는 것이다.
  • 23. 볼츠만 머신 - 출력값이 1이 될 확률 볼츠만 머신에서는 연결강도의 합 ui(t) 로 부터 다음 시각의 출력 vi(t+1) 을 결정하는 이론에 계단함수 (step function) 대신 확률에 의한 판정이론을 도입했다. 즉 유니트 I 의 다음 시각에서의 출력값 vi(t+1) 이 1 이 될 확률 P 는 (식 1) 에 의해 결정된다.
  • 24. 볼츠만 머신의 학습 ● 가시(visible)유니트와 은닉(hidden)유니트로나누어 가시 유니트들의 상태의 평형분포를 원하는 확률분포로 일치하도록 학습 ○ (a)자기 상기형: ■ 학습시 제시되는 목표 분포를 그대로 따라서 학습하는 방법 ○ (b)상호 상기형: ■ 입력 유니트들의 상태를 고정했을 때의 출력 유니트들의 평형분포를 원하는 확률분포와 일치하도록 학습하는 형태
  • 25. 확률 뉴런 - 볼츠만 머신 ● 제한 볼츠만 머신 ● CD 알고리즘 유도 ● 지도학습 ● 유향 신뢰 네트워크
  • 26. 제한 볼츠만 머신 (Restricted Boltzmann machine) ● 볼츠만과 달리 같은 층 내부 노드간의 연결은 없고 층과 층 사이와의 연결만이 있다. 이런 점에서 제한적(Restricted)라고 불리운다. ● 차원 감소, 분류, 선형 회귀 분석, 협업 필터링(collaborative filtering), 특징값 학습(feature learning) 및 주제 모델링 (topic modelling)에 사용할 수 있는 알고리즘 ● RBM은 자체적으로도 사용할 수 있지만 다른 심층 신경망의 학습을 돕기 위해 쓰이기도 함
  • 27. 제한 볼츠만 머신 입력의 가중치합을 계산하여 이를 시그모이드 함수를 통해서 변환 => 확률값으로 해석 , j번째 은닉 뉴런은 0과 1의 값을 출력한다. σ(net)는 인공신경망에서 활성화 함수로 사용되는 시그모이드 함수 입력 벡터 x가 주어질 때 각각의 뉴런은 서로 독립이라고 가정하면, 은닉벡터 h의 확률 은닉벡터h가 주어지면 입력 뉴런들은 서로 독립이라고 가정 P(x,h)확률과 에너지는 반비례 관계.
  • 28. RBM 학습방법 ● RBM의 학습 방법은 ○ 입력층 노드값에 Weight를 곱하고 더하고 확률을 구하고 ○ 확률에 근거하여 샘플링하여 은닉층의 노드값을 결정 ○ 은닉층의 노드값이 결정되면 또 다시 입력층의 노드값들을 같은 방식으로 결정 ○ 그러면서 에너지를 최소화하는 방향으로 Weight를 학습하는 것이다.
  • 29. Gibbs sampling ● 두개 이상의 확률 변수의 결합 확률 분포로부터 일련의 표본을 생성하는 확률적 알고리즘으로, 결합 확률 분포나 그에 관련된 확률 계산을 근사하기 위해 사용된다. ● Gibbs sampling은 메트로폴리스-해스팅스 알고리즘의 특별한 예이며, 마르코프 연쇄 몬테 카를로 알고리즘의 한 예이다. ○ 메트로폴리스-해스팅스 알고리즘(Metropolis-Hastings algorithm) ■ 직접적으로 표본을 얻기 어려운 확률 분포로부터 표본의 수열을 생성하는 데 사용하는 기각 표본 추출 알고리즘 ■ 제안된 밀도와 제안된 이동을 거부하는 방법을 이용하여 무작위 행보를 생성 ○ 마르코프 연쇄 몬테 카를로 알고리즘 ■ 마르코프 연쇄의 구성에 기반한 확률 분포로부터 원하는 분포의 정적 분포를 갖는 표본을 추출하는 알고리즘의 한 부류
  • 30. MCMC ● MCMC는 원하는 stationary distribution을 가지는 MC를 design하여 목표로하는 distribution을 만들어내는 알고리즘 family를 일컫는다.
  • 31. Contrastive Divergence ● RBM을 트레이닝하기 위해 사용되는 알고리즘으로 Wake-sleep알고리즘 ● 네트워크의 weight, gradient를 구하는 알고리즘 ● CD 알고리즘을 요약하면: ○ p(v,h)를 계산하는 MCMC (Gibbs Sampling)의 step을 converge할 때 까지 돌리는 것이 아니라, ○ 한 번만 돌려서 p(v,h)를 approximate하고, 그 값을 사용하여 을 계산해 weight, gradient의 approximation 값을 구한다.
  • 32. 역전파 신경망 vs RBM ● 비슷한점 ○ 역전파와 비슷하게 RBM도 입력노드에 Weight를 곱한 다음 시그노이드 함수를 적용해 은닉층의 값을 구하는 방법은 비슷하다. ● 차이점 ○ 다만 확률적으로 샘플링해서 구한다. 역전파 신경망에서는 시그모이드(Sigmoid) 결과값이 바로 노드의 출력값이 되지만, RBM에서는 노드의 값을 결정짓기 위한 확률값이다. ○ 역전파 신경망을 생각하면 목표치가 있기에 오류치를 계산하고 오류치 만큼 역전파시켜 학습을 시키는 데 RBM은 단층이기에 목표치가 없다. 그래서 다른 방식의 개념이 필요한데 바로 에너지라는 개념이다. 에너지(E)는 마이너스(-) 부호를 가지고 Weight가 0보다 큰 수 이기에 입력과 출력이 양의 상관 관계에 있을수록 에너지가 작아진다. 가시층 i번째 노드가 1일 때의 확률 분포
  • 33. RBM - 지도학습 ● RBM도 홉필드 네트워크와 같이 패턴완성을 수행할수 있음 ○ RBM을 발전시켜서 추가적인 소프트맥스층을 사용하면 대칭가중치를 통해 분류를 수행할 수 있음 ○ 노드들에는 로지스틱 대신에 소프트 맥스를 활성화 함수로 사용해서 하나의 뉴런만 활성화 ○
  • 34. RBM - 심층구조 ○ RBM의 은닉층의 학습이 끝나고 나면 이 데이터는 다시 다음 층으로 연결됩니다. 이 두번째 연결에서는 은닉층이 가시층의 역할을 하고, 새로운 추가한 층이 은닉층이 됩니다. 즉, 첫번째 연결에서 은닉층이 학습한 내용을 가지고 다시 새로운 RBM을 학습하는 것입니다. ○ 이런 과정을 층별 탐욕 비지도 선행학습(layerwise, greedy unsupervised pre-training)이라고 합니다. ○ 이렇게 선행학습이 된 가중치는 데이터의 분포를 이미 알고있기 때문에 이 값으로 초기화한 심층 신뢰 신경망은 더 좋은 성능을 보여줍니다. ○ RBM의 광범위한 활용 사례중에서도 특히 이 선행학습이 아주 유용합니다. 선행학습은 가중치를 학습시킨다는 의미에서 역방향전파(backpropagation)와 유사한 역할을 합니다.
  • 35. 심층 신뢰 네트워크(Deep Belief Networks) ● DBN은 제한 볼쯔만 머신을 빌딩블록으로 해서 여러층을 쌓은 딥러닝 아키텍쳐 ○ 심층의 신경망을 학습하는데 있어서 오차 소멸(vanishing gradient) 문제가 있다. Vanishing gradient 문제를 해결하기 위해서 DBN은 아래층(입력에 가까운 층)에서부터 위층으로 가면서 순차적으로 선행학습을 진행한다. 즉 아래층에 대해서 가중치를 먼저 학습한 후 이 가중치를 고정한 다음 그 다음 층의 가중치를 학습한다. 이 기술은 층별 선행학습 (layerwise pre-training) 이라고 함 ○ DBN는 크게 두 가지로 구분된다. 하나는 입력과 같은 출력을 재 생성하도록 하는 오토인코더이고 다른 하나는 분류기로 사용하는 것이다.
  • 37. 딥빌리프네트워크 - 지도학습 ● 딥빌리프네트워크는 기본적으로 무감독 학습 구조이다 ● 그러나 분류 문제를 풀기 위한 감독학습으로도 사용할 수 있다. 마지막 층의 은닉층을 입력으로 하고 출력층을 추가하여 감독학습을 시킴으로써 분류 문제를 풀 수 있다.
  • 38. 참고자료 ● 알고리즘 중심의 머신러닝 가이드 파이썬 코드 기반 (제이펍의 인공지능 시리즈 2 | 2판 ) 17장 ● 5 장: 딥빌리프네트워크 (서울대학교) https://bi.snu.ac.kr/Courses/ML2016/LectureNote/LectureNote_ch5.pdf ● Deep Learning for Java https://deeplearning4j.org/kr/restrictedboltzmannmachine