Deep Learning
이또한.. 여러곳에서 조사한 자료를 나름대로 정리해본 내용입니다
참고가 될수있길 바라며 공유 ~!
참고 사이트
1. 사람의 사고방식을 컴퓨터에게 가르치는 기계학습의 한 분야
2. 알고리즘 종류
가. DNN (Deep Neural Networks : 심층 신경망)
: 입력층과 출력층 사이에 복수개의 은닉 계층들로 이뤄진 인공신경망
: 복잡한 비선형 관계를 모델링 할 수 있다. (비선형관계의 예 : 사물식별)
: 학습결과후 발생한 오류(목표값과 의 오차)를 역전파를 통해 오차범위를 최소화 시킬 수 있는 가중치를 찾으며 학습
: 역전파 시 가중치를 갱신하면서 최적의 가중치를 찾아야하는데 이때 가중치를 갱신하는 방법이 경사하강법이다.
: 취약점 1 - Overfitting (과적응 / 사람에 비유하면 고정관념과 비슷) - http://sanghyukchun.github.io/59/
- 해결방법 : Regularization
: 취약점 2 - 높은 시간복잡도 (오차역전파, 경사하강법의 시간복잡도가 매우 높다)
- 심층신경망 학습 시 크기(계층수와 계층당 유닛 수), 학습률(Learning rate), 초기 가중치등 많은 매개변수가 고려되어야는데
최적의 매개변수를 찾기위해 매개변수 공간 전부를 확인하는 것은 계산에 필요한 시간과 자원의 제약으로 인해 불가능
나. CNN (Convolutional Neural Networks : 합성곱 신경망) ★
: 쉽게설명하자면 입력 백터를 일정한 크기와 스트라이드 값을 기준으로 샘플링하여 샘플링백터와 필터(W)의 곱을 구하고, 모든 곱의 결과를 인공신경망에 입력하여 결과물을 확인
: 전처리(preprocess)를 사용하도록 설계된 다계층 퍼셉트론의 한 종류이다. (퍼셉트론 : 최초의 가장 간단한 피드포워드 방식 신경망 모델이다, 신경망의 단위 개념으로도 쓰임)
: 여러개의 합성곱 게층과 그 위에 올려진 일반적인 인공 신경망 게층들로 이루어져 있으며, 가중치와 통합계층 들을 추가로 활용하다.
: 영상, 음성 분야에서 좋은 성능을 보인다.
: 표준 역전달을 통해 훈련될 수 있다.
: 다른 피드포워드 인공신경망 기법들보다 쉽게 훈련되는편이며, 적은수의 매개변수를 사용한다.
: CDBN(Convolutional Deep Belief Network : 합성곱 심층 신뢰 신경망)이 최근에 개발되었으며 CNN과 구조적으로 비슷하고,
DBN의 선훈련에 의한 장점을 취할 수 있다.
: CDBN은 다양한 영상과 신호 처리기법에 사용될 수 있는 일반적인 구조를 제공한다.
다. RNN (Recurrent Neural Network : 순환 신경망) ★
: 문장 인식, 필기체 인식
: 인공신경망을 구성하는 유닛 사이의 연결이 Directed cycle을 구성하는 신경망을 말한다.
: 임의의 입력을 처리하기 위해 신경망 내부의 메모리를 활용할 수 있다.
: 훈련을위해 경사하강법, Hessian Free Optimization, Global Optimization 방식이 쓰인다.
: 많은 수의 뉴런 유닛이나 많은 수의 입력 유닛이 있을경우 훈련이 쉽지 않다.
** LSTM (Long Short Term Memory networks)
: RNN에서 장기적으로 과거내용을 기억하지 못하는 단점을 극복하는 신경망
라. RBM (Restricted Boltzmann Machine : 제한 볼츠만 머신) : 비지도 학습
마. DBN (Deep Belief Networks : 심층 신뢰 신경망)
:
바. DQN (Deep Q-Networks : 심층 Q-네트워크)
1) 요약
- Deep Learning + Q-Learning(Reinforcement Learning : 강화학습)
- 구글 딥마인드에서 개발한 게임 플레이를 학습하는 인공지능 프로그램
3 용어 정리
1) Back Propagation (역전파)
: 신경망을 훈련시키기 위해 사용하는 기술 , 전방형(Feedforward networks)학습방식을 보완하기 위해 사용
: 입력 층 > 신경망 > 출력 층 순으로 진행된 학습에서 나온 결과값과 목표값의 오차를 계산하고, 오차를 출력층에서 입력층까지 거꾸로 전파하면서 가중치를 수정하는 과정
: 역전파 알고리즘에서 가중치 갱신을 위해 사용하는 방법으로 Gradient Descent가 있다.
2) Gradient Descent (경사하강)
: 기울기를 계산하고 낮은 기울기 방향으로 weight(가중치)를 갱신하면서 최적의 weight(가중치)를 찾아가는 알고리즘
: 파라미터 W에 대한 error를 계산하는 함수 ( = Loss function = Cost function )를 정의하고 함수의 결과값이 최소화 되는 방향을 찾아서 점점 나아가는것
3) Stochastic Gradient Descent
: Gradient Descent가 모든 데이터에 대해 기울기를 게산하는 단점을 개선하는것을 개선한 알고리즘
4) Minibatch
: stochastic gradient descent를 수행하는 단위 (데이터 N의 크기)
5) Momentum
: Local Minima에 덜 빠지기 위해 Learning Rate에게 관성을 부여하는 개념
6) Regularization
: 빠르게 Overfitting 하는 문제를 막기위해 얻은 Gradient에 일종에 패널티를 두어 조금만 반영시키는 방식,
: Overfitting는 Weight의 절대값이 매우 클 때 일어나므로 Weight의 증가 속도를 늦춘다.
: witght decay, sparsity, dropout 등의 Regularization 방법들이 있다.
7) Overfitting
: 과적응 이라고 표현하며 DNN(Deep Neural Network : 심층신경망)의 문제점중에 하나
: 이 과적응 현상을 극복하기 위해 Regularization(정규화) 로직이 도입된다.
8) Cost Function (비용함수)
가. Cross-Entropy
: 기대값과 실제 연산값의 차가 클수록 큰 결과가 나오고 항상 양수 이기때문에 비용함수로 사용가능
: MSE보다 빠른 속도로 학습 진행, 학습결과는 MSE와 비슷
나. MSE (Mean Square Error) - 평균제곱오차
: 활성함수로 Sigmoid함수 사용시 학습속도 저하를 발생시킴 (Cross-Entropy 사용을 통해 해결가능)
9) Activation Function (활성함수)
가. Sigmoid (시그모이드) 함수
: 대표적인 활성함수 ( 0 ~ 1 까지로 매핑), 미분 가능
: y = F(x) 로 결과값 y를 다음레이어로 보내는 함수 F를 의미한다.
: 시그모이드 함수를 쓸 경우 0 또는 1 만이 아니라 [0,1]의 범위로 나타낼 수 있다.
딥러닝 (히든레이어가 많은) 의경우 시그모이드를 사용시 1보다 작은 수가 계속 곱해지므로 레이어가 많을수록 역전파를 통한 가중치 조정이 어려워진다 이것에 대한 해결책은 렐루 이며 딥러닝 즉 히든레이어가 많아질경우 무조건 렐루를 쓰며 최종 레이어단에서는 시그모이드 또는 소프트맥스를 사용해서 출력범위를 축소한다
나. Tanh (하이퍼볼릭 탄젠트)
: -1 ~ 1 까지로 매핑, 시그모이드의 범위를 확장
다. Softmax
: 가설(wx+b)의 결과 값이 여러게 나올경우, 여러 값의 총합이 1로 떨어지도록 0 ~ 1사이 값으로 표현
: 나온 값중에 가장 높은 확률의값만 뽑아낼때는 argmax 사용
: DNN의 마지막 output 노드에서 Classification(분류)을 하고자 할 때 사용된다.
: 마지막 레이어에서 Softmax로 One of K coding을 함
(여러개의 시그모이드값들을 다 더한걸로 각각의 시그모이드값을 나누어 합치면 1이 되는 확률로 해석)
라. ReLU (Rectified Linear Unit) - 정류된 선형 유닛 ?
마. PReLu
바. Maxout
LSTM 사용
활성함수는 렐루
마지막엔 소프트맥스
렐루들 사이에 드랍아웃 도입해서 오버핏팅 예방
훈련이아닐때 드랍아웃값은 1로 지정 (아웃없이 전부 활용하도록)
이런 네트워크를 여러개 독립적으로 만들어서
각각의 결과를 총합해서 최종결과 도출하는 방식이 앙상블인데 2~5% 수준의 성능 향상 효과가 있다고함
댓글
댓글 쓰기