Deep leaning 딥러닝 (from wikipedia. 17/06/23)
https://ko.wikipedia.org/wiki/%EB%94%A5_%EB%9F%AC%EB%8B%9D
알고리즘[편집]
다양한 종류의 심층 신경망 구조가 존재하지만, 대부분의 경우 대표적인 몇 가지 구조들에서 파생된 것이다. 그렇지만 여러 종류의 구조들의 성능을 동시에 비교하는 것이 항상 가능한 것은 아닌데, 그 이유는 특정 구조들의 경우 주어진 데이터 집합에 적합하도록 구현되지 않은 경우도 있기 때문이다.
심층 신경망(Deep Neural Network, DNN)[편집]
심층 신경망(Deep Neural Network, DNN)은 입력층(input layer)과 출력층(output layer) 사이에 여러 개의 은닉층(hidden layer)들로 이뤄진 인공신경망(Artificial Neural Network, ANN)이다.[15][16] 심층 신경망은 일반적인 인공신경망과 마찬가지로 복잡한 비선형 관계(non-linear relationship)들을 모델링할 수 있다. 예를 들어, 사물 식별 모델을 위한 심층 신경망 구조에서는 각 객체가 이미지 기본 요소들의 계층적 구성으로 표현될 수 있다.[17] 이때, 추가 계층들은 점진적으로 모여진 하위 계층들의 특징들을 규합시킬 수 있다. 심층 신경망의 이러한 특징은, 비슷하게 수행된 인공신경망에 비해 더 적은 수의 유닛(unit, node)들 만으로도 복잡한 데이터를 모델링할 수 있게 해준다.[15]
이전의 심층 신경망들은 보통 앞먹임 신경망으로 설계되어 왔지만, 최근의 연구들은 심층 학습 구조들을 순환 신경망(Recurrent Neural Network, RNN)에 성공적으로 적용했다. 일례로 언어 모델링(language modeling) 분야에 심층 신경망 구조를 적용한 사례 등이 있다.[18] 합성곱 신경망(Convolutional Neural Network, CNN)의 경우에는 컴퓨터 비전(computer vision) 분야에서 잘 적용되었을 뿐만 아니라, 각각의 성공적인 적용 사례에 대한 문서화 또한 잘 되어 있다.[19] 더욱 최근에는 합성곱 신경망이 자동 음성인식 서비스(Automatic Response Service, ARS)를 위한 음향 모델링(acoustic modeling) 분야에 적용되었으며, 기존의 모델들 보다 더욱 성공적으로 적용되었다는 평가를 받고 있다.[20]
심층 신경망은 표준 오류역전파 알고리즘으로 학습될 수 있다. 이때, 가중치(weight)들은 아래의 등식을 이용한 확률적 경사 하강법(stochastic gradient descent)을 통하여 갱신될 수 있다.
여기서, 는 학습률(learning rate)을 의미하며, 는 비용함수(cost function)를 의미한다. 비용함수의 선택은 학습의 형태(지도 학습, 자율 학습 (기계 학습), 강화 학습 등)와 활성화함수(activation function)같은 요인들에 의해서 결정된다. 예를 들면, 다중 클래스 분류 문제(multiclass classification problem)에 지도 학습을 수행할 때, 일반적으로 활성화함수와 비용함수는 각각 softmax 함수와 교차 엔트로피 함수(cross entropy function)로 결정된다. softmax 함수는 로 정의된다, 이때, 는 클래스 확률(class probability)을 나타내며, 와 는 각각 유닛 로의 전체 입력(total input)과 유닛 로의 전체 입력을 나타낸다. 교차 엔트로피는 로 정의된다, 이때, 는 출력 유닛 에 대한 목표 확률(target probability)을 나타내며, 는 해당 활성화함수를 적용한 이후의 에 대한 확률 출력(probability output)이다.[21]
심층 신경망의 문제점[편집]
기존의 인공신경망과 같이, 심층 신경망 또한 나이브(naive)한 방식으로 학습될 경우 많은 문제들이 발생할 수 있다. 그 중 과적합과 높은 시간 복잡도가 흔히 발생하는 문제들이다.
심층 신경망이 과적합에 취약한 이유는 추가된 계층들이 학습 데이터의 rare dependency의 모형화가 가능하도록 해주기 때문이다. 과적합을 극복하기 위해서 weight decay (–regularization) 또는 sparsity (–regularization) 와 같은 regularization 방법들이 사용될 수 있다.[22] 그리고 최근에 들어서는 심층 신경망에 적용되고 있는 정규화 방법 중 하나로 dropout 정규화가 등장했다. dropout 정규화에서는 학습 도중 은닉 계층들의 몇몇 유닛들이 임의로 생략된다. 이러한 방법은 학습 데이터(training data)에서 발생할 수 있는 rare dependency를 해결하는데 도움을 준다.[23]
오차역전파법과 경사 하강법은 구현의 용이함과 국지적 최적화(local optima)에 잘 도달한다는 특성으로 인해 다른 방법들에 비해 선호되어온 방법들이다. 그러나 이 방법들은 심층 신경망을 학습 시킬 때 시간 복잡도가 매우 높다. 심층 신경망을 학습시킬 때에는 크기(계층의 수 와 계층 당 유닛 수), 학습률, 초기 가중치 등 많은 매개변수(parameter)들이 고려되어야 한다. 하지만 최적의 매개변수들을 찾기 위해 매개변수 공간 전부를 확인하는 것은 계산에 필요한 시간과 자원의 제약으로 인해 불가능하다. 시간 복잡도를 해결하기 위해, mini-batching(여러 학습 예제들의 경사를 동시에 계산)과 같은 다양한 '묘책’들이 등장하였다.[24] 또한, 행렬 및 벡터 계산에 특화된 GPU는 많은 처리량을 바탕으로 두드러지는 학습 속도 향상을 보여주었다.[16]
합성곱 신경망(Convolutional Neural Network, CNN)[편집]
합성곱 신경망(Convolutional Neural Network, CNN)은 최소한의 전처리(preprocess)를 사용하도록 설계된 다계층 퍼셉트론(multilayer perceptrons)의 한 종류이다. CNN은 하나 또는 여러개의 합성곱 계층과 그 위에 올려진 일반적인 인공 신경망 계층들로 이루어져 있으며, 가중치와 통합 계층(pooling layer)들을 추가로 활용한다. 이러한 구조 덕분에 CNN은 2차원 구조의 입력 데이터를 충분히 활용할 수 있다. 다른 딥 러닝 구조들과 비교해서, CNN은 영상, 음성 분야 모두에서 좋은 성능을 보여준다. CNN은 또한 표준 역전달을 통해 훈련될 수 있다. CNN은 다른 피드포워드 인공신경망 기법들보다 쉽게 훈련되는 편이고 적은 수의 매개변수를 사용한다는 이점이 있다. 최근 딥 러닝에서는 합성곱 심층 신뢰 신경망 (Convolutional Deep Belief Network, CDBN) 가 개발되었는데, 기존 CNN과 구조적으로 매우 비슷해서, 그림의 2차원 구조를 잘 이용할 수 있으며 그와 동시에 심층 신뢰 신경망 (Deep Belief Network, DBN)에서의 선훈련에 의한 장점도 취할 수 있다. CDBN은 다양한 영상과 신호 처리 기법에 사용될 수 있는 일반적인 구조를 제공하며 CIFAR[25] 와 같은 표준 이미지 데이터에 대한 여러 벤치마크 결과에 사용되고 있다.
순환 신경망(Recurrent Neural Network, RNN)[편집]
순환 신경망은 인공신경망을 구성하는 유닛 사이의 연결이 Directed cycle을 구성하는 신경망을 말한다. 순환 신경망은 앞먹임 신경망과 달리, 임의의 입력을 처리하기 위해 신경망 내부의 메모리를 활용할 수 있다. 이러한 특성에 의해 순환 신경망은 필기체 인식(Handwriting recognition)과 같은 분야에 활용되고 있고, 높은 인식률을 나타낸다.[26] 순환 신경망을 구성할 수 있는 구조에는 여러가지 방식이 사용되고 있다. 완전 순환망(Fully Recurrent Network), Hopfield Network, Elman Network, Echo state network(ESN), Long short term memory network(LSTM), Bi-directional RNN, Continuous-time RNN(CTRNN), Hierarchical RNN, Second Order RNN 등이 대표적인 예이다. 순환 신경망을 훈련(Training)시키기 위해 대표적으로 경사 하강법, Hessian Free Optimization, Global Optimization Methods 방식이 쓰이고 있다. 하지만 순환 신경망은 많은 수의 뉴런 유닛이나 많은 수의 입력 유닛이 있는 경우에 훈련이 쉽지 않은 스케일링 이슈를 가지고있다.
제한 볼츠만 머신 (Restricted Boltzmann Machine, RBM)[편집]
볼츠만 머신에서, 층간 연결을 없앤 형태의 모델이다. 층간 연결을 없애면, 머신은 가시 유닛(Visible Unit)과 은닉 유닛(Hidden Unit)으로 이루어진 무방향 이분 그래프 형태의 모양이 된다. 결론적으로 모델의 층간 연결을 없앰으로써, 얻는 이점으로 뉴럴 네트워크는 깊어질 수 있었다. 가장 큰 이점은 가시 유닛이 관찰되고 고정(Clamped)되었을 때 은닉 유닛을 추론(Inference) 하는 MCMC 과정이 단 한 번에 끝난다는 것이다. RBM는 확률모델의 계산이 불가능하기 때문에, 학습시 근사법인 MCMC 나 또는 제프리 힌튼 교수가 발견한 CD(Contrastive Divergence) 를 사용하는데, RBM의 모델의 간단함에서 오는 추론에 대한 이점은 샘플링 근간의 학습법이 실용적인 문제에 적용되는데 기여했다. 자세한 학습 방법은 아래에 설명 되어 있다.
RBM은 DBN의 기본 뼈대가 된다, RBM을 쌓아올리면서(Stacking), Greedy하게 학습함으로써, DBN을 완성한다. DBN을 아는 사람은 기본적으로 RBM은 무방향이기에, RBM이 방향성 있는 모델인 DBN이 되는지 의아할 것이다. 이는 제프리 힌튼 의 제자인 Teh, Y. W 의 우연 발견적인 연구 성과인데, 원래 힌튼 교수는 Graphical Model 이 방향성을 가질 때 생기는 Explaining Away 효과 때문에 학습이 매우 어려워 연구를 무방향성 모델로 선회했다가, RBM을 쌓으면, 다층 RBM이 되는 것이 아니라, DBN과 비슷해진다는 사실을 발견하게 된다. 이 발견은 DBN학습을 단순히 여러 개의 RBM 학습으로 환원시킴으로써(앞서서 얘기했듯이 RBM은 학습이 어렵지 않다) 어려운 DBN 학습의 복잡도를 층의 갯수에 비례하는 복잡도로 낮추었다. 이는 선행학습(Pre-training) 과 미세조정(fine-tuning) 의 새로운 학습 패러다임으로 발전하게 된다.
RBM 훈련 과정에서의 가중치 갱신은, 다음의 식을 기반으로 경사 하강법을 통해 이루어진다. 여기서 는 다음의 식으로 주어지는 가시 벡터의 확률을 나타내고, 는 정규화를 위해 사용되는 분배함수(partition function)이며, 는 신경망의 상태(state)에 부여되는 에너지 함수이다. 에너지가 낮을수록 해당 신경망이 더 적합한 상태임을 의미한다. 기울기 는 좀 더 간단하게 로 표현이 되는데 이 때 는 분포 에 관한 평균을 의미한다. 을 샘플링 하려면 alternating Gibbs sampling을 매우 많이 반복해야 하기 때문에 CD에서는 alternating Gibbs sampling을 회만 반복한다.(실험을 통해 일 경우에도 충분한 성능이 나온다고 알려져 있다). 회 반복 후 샘플링 된 데이터가 를 대신한다. CD 수행 과정은 다음과 같다:
- 가시 유닛들을 훈련 벡터로 초기화 한다.
- 다음의 가시 유닛들이 주어지면 은닉 유닛들을 모두 동시에 갱신한다: . 는 시그모이드 함수(sigmoid function)를 의미하며, 는 의 편향이다.
- 다음의 은닉 유닛들이 주어지면 가시 유닛들을 모두 동시에 갱신한다: . 는 의 편향이다. 이 부분을 "복원(reconstruction)"이라고 부른다.
- 복원된 가시 유닛들이 주어지면 2 에서 쓰인 식을 이용하여 은닉 유닛들을 모두 동시에 다시 갱신한다.
- 다음과 같이 가중치를 갱신한다: .
심층 신뢰 신경망 (Deep Belief Network, DBN)[편집]
심층 신뢰 신경망(Deep Belief Network, DBN)이란 기계학습에서 사용되는 그래프 생성 모형(generative graphical model)으로, 딥 러닝에서는 잠재변수(latent variable)의 다중계층으로 이루어진 심층 신경망을 의미한다. 계층 간에는 연결이 있지만 계층 내의 유닛 간에는 연결이 없다는 특징이 있다.
DBN은 생성 모형이라는 특성상 선행학습에 사용될 수 있고, 선행학습을 통해 초기 가중치를 학습한 후 역전파 혹은 다른 판별 알고리즘을 통해 가중치의 미조정을 할 수 있다. 이러한 특성은 훈련용 데이터가 적을 때 굉장히 유용한데, 이는 훈련용 데이터가 적을수록 가중치의 초기값이 결과적인 모델에 끼치는 영향이 세지기 때문이다. 선행학습된 가중치 초기값은 임의로 설정된 가중치 초기값에 비해 최적의 가중치에 가깝게 되고 이는 미조정 단계의 성능과 속도향상을 가능케 한다.
DBN은 비지도 방식으로 계층마다 학습을 진행하는데 이때 각각의 계층은 보통 RBM의 형태를 띄고 있다. RBM들을 쌓아 올리면서 DBN을 훈련시키는 방법에 대한 설명은 아래에 제공 되어 있다. RBM은 에너지 기반의 생성 모형으로 가시 유닛과 은닉 유닛으로 이루어진 무방향 이분 그래프 형태이다. 가시 유닛들과 은닉 유닛들 사이에만 연결이 존재한다.
RBM이 훈련되고 나면 다른 RBM이 그 위에 쌓아 올려짐으로써 다중 계층 모형을 형성한다. RBM이 쌓아 올려질 때마다, 이미 훈련된 RBM의 최상위 계층이 새로 쌓이는 RBM의 입력으로 쓰인다. 이 입력을 이용하여 새 RBM이 훈련되고, 원하는 만큼의 계층이 쌓일 때까지 해당 과정이 반복된다.
실험결과에 따르면, CD의 최대가능도 근사가 굉장히 투박함에도 불구하고, 심층 신경망 구조를 학습하기에는 충분히 효과적인 방식이라고 한다.
댓글
댓글 쓰기