최적화
* 입력 데이터셋을 표준정규분포로 정규화
- 예를 들어 입력 데이터의 첫 번째 성분이 m 단위의 키고, 두 번째 성분이 kg 단위의 몸무게라면, 1.8m의 키와 1.5m의 키차이는 실제로는 매우 크나 값으로는 0.3밖에 차이나지 않는 반면, 60kg의 몸무게와 55kg의 몸무게 차이는 실제로는 아주 크다고는 할 수 없으나 값으로는 5나 차이가 나 이를 그대로 신경망에 학습을 시키면 학습이 느리게 일어나는 모습을 볼 수 있다. 이처럼 각 성분간에 scale의 차이를 줄여주기 위해 표준정규분포로 정규화를 한 후 신경망 학습을 진행할 필요가 있다.
* 명목변수 변환
- 예를 들어 입력 데이터에 ‘이 데이터에 해당하는 인물이 어느 도시 출신인지’ 같은 정보가 들어있는 경우, ‘도시’는 이산적인 값이 아니므로 도시에 1, 2, 3, 4 같은 값을 부여하여 신경망 학습을 진행할 수는 없다. 이 경우 각 도시마다 모든 도시의 개수와 크기가 같은 원핫코드(one-hot code, 여러 성분 중 한 값만 1이고 나머지는 0인 코드) 벡터를 할당하고 모든 입력 데이터에 대해 기존 명목변수를 이 원핫코드 벡터로 대체하여 신경망 학습을 진행할 수 있다.
* 가중치 초기화
- 초기 가중치가 모두 동일하면 신경망의 각 노드가 모두 같은 작업을 수행해 gradient를 계산해도 모두 같은 값이 나와서 훈련이 제대로 이루어지지 않는다. 이를 막기 위해 신경망의 초기 상태 가중치를 난수로 설정할 필요가 있다. 난수의 분포는 정규분포를 따르든지 균일분포를 따르든지 성능에 차이가 없으나, 너무 작으면 활성함수를 거친 결과값이 모두 0이 되고 너무 크면 활성함수를 거친 결과값이 모두 포화되어 훈련이 제대로 이뤄지지 않는 문제가 있어 적절한 크기로 설정할 필요가 있다.
- 표준정규분포로 잘 정규화하여 입력 데이터를 신경망에 입력하더라도, 그 데이터는 신경망의 각 층을 지나면서 각 층마다 나오는 결과는 정규분포와 다른 분포를 갖게 된다. 최근에는 이 문제를 배치 정규화를 통해 해결하나, 과거 가중치 초기화를 통해 이 문제를 해결하려는 시도가 있었다.
* 경사하강의 최적화
-
momentum
-
네스테로프 가속 경사
* learning rate
-
adaptive learning rates
-
AdaGrad, RMSProp, Adam
* 활성함수
-
sigmoid, tanh
-
ELU, ReLU, leaky ReLU
* 배치 정규화
- 훈련 시 입력 데이터를 정규화를 시켜 신경망을 훈련시킨다 하더라도, 입력 데이터가 신경망을 거친 그 결과가 갖는 분포는 표준정규분포와 아주 다른 평균, 분산을 가질 수 있다. 이 경우 훈련을 끝마친 신경망은 테스트 데이터에 대하여 제대로 된 결과를 내놓지 못하게 된다. 이러한 경우를 막기 위해, 한 배치를 신경망에 훈련시킬 때 각 Conv층마다 convolution 연산을 마친 후 입력 데이터를 정규화하는 작업을 추가하는 것을 배치 정규화(batch normalization)라 한다. (배치의 크기가 클수록 그 평균이 모집단의 평균에 근사하므로 배치의 크기는 클수록 좋으나, 배치 단위로 훈련시키는 의미를 잃지 않도록 배치 크기가 전체 훈련 데이터 집합보다는 충분히 작을 필요가 있다.)
- 배치 정규화를 함으로써 훈련에 있어 높은 학습률을 사용할 수 있게 되었으며, 초기화에 관한 여러 복잡한 알고리즘을 대체할 수 있게 되었다. 또 dropout의 필요성도 감소하게 되었다.
* regularization
- L1 norm은 sparsity가 있어 신경망에서 사용하면 특징을 선택하는 효과가 있다.
* early stopping
* data augmentation
-
이동, 회전, 반전
-
morphing
* dropout
* 앙상블
* hyperparameter 최적화
-
hidden layer의 개수
-
CNN의 커널 필터의 크기, stride 등
-
learning rate
* 2차미분
- 현재 신경망 학습 방법으로 널리 쓰이는 경사하강법은 1차미분을 활용한 방법인데 여러 모로 한계가 있기 때문에 2차미분을 통해 신경망 학습을 개선하는 방법이 연구되고 있으나, 아직 널리 사용되고 있는 방법은 아니다. 그러나 여러 면에서 가능성이 엿보이기에 계속 주목할 필요가 있다.
-
Newton’s method: Hessian matrix 이용
-
conjugate gradient method
-
quasi-Newton method