심층 NN의 기본 개념은 2012 년 이후로 변하지 않았다는 점에 맞습니다. 그러나 심층 NN의 교육 방식이 질적으로 강력 해 지도록 다양한 개선이 이루어졌습니다. 오늘날에는 다양한 아키텍처가 제공됩니다. 교육 개선 및 아키텍처 개선으로 그룹화 한 2012 년 이후 몇 가지 개발을 나열했습니다.
하드웨어 : 가장 명백한 변화는 무어의 법칙의 끝없는 진보입니다. 오늘날에는 더 많은 컴퓨팅 성능이 있습니다. 또한 클라우드 컴퓨팅을 통해 사람들은 거대한 장비를 구입할 필요없이 대규모 NN을 쉽게 교육 할 수 있습니다.
소프트웨어 : 딥 러닝을위한 오픈 소스 소프트웨어는 2012 년부터 엄청나게 향상되었습니다. 2012 년에는 Theano, 아마도 Caffe도있었습니다. 나는 다른 사람들도 있다고 확신합니다. 그러나 오늘날에는 TensorFlow, Torch, Paddle 및 CNTK도 있으며이 두 가지 모두 대기업이 지원합니다. 이는 많은 플랫폼에서 GPU를 쉽게 학습 할 수있게하므로 하드웨어 시간과 밀접한 관련이 있으므로 교육 시간이 크게 단축됩니다.
활성화 기능 : 요즘 ReLU 활성화 기능의 사용이 더 널리 퍼져있어 매우 딥 네트워크를 쉽게 훈련 할 수 있습니다. 연구 측면에서는 누출 ReLU , 파라 메트릭 ReLU 및 maxout 단위를 포함하여 더 광범위한 활성화 기능이 연구되고 있습니다.
최적화 알고리즘 : 오늘날에는 더 많은 최적화 알고리즘이 있습니다. Adagrad 와 Adadelta 는 2011 년과 2012 년에 각각 소개되었습니다. 그러나 이제 우리는 Adam 옵티마이 저도 가지고 있으며 매우 인기있는 선택이되었습니다.
중퇴 : 지난 몇 년 동안 중퇴 는 신경망을 훈련 할 때 정규화를위한 표준 도구가되었습니다. Dropout은 NN을위한 계산 비용이 저렴한 형식입니다. 일반적으로 데이터 집합의 임의 샘플에 대해 훈련 된 모델 집합은 전체 데이터 집합에 대해 훈련 된 단일 모델보다 성능이 우수합니다. 훈련하기에는 비용이 많이 들기 때문에 NN에 대해 명시 적으로하기가 어렵습니다. 그러나 각 단계에서 뉴런을 무작위로 "끄기"만해도 비슷한 효과를 얻을 수 있습니다. NN의 다른 하위 그래프는 다른 데이터 세트에 대해 훈련을 받아 다른 것을 배우게됩니다. 조립과 마찬가지로, 이것은 전체 NN을 오버 피팅에보다 견고하게 만드는 경향이 있습니다. 드롭 아웃은 거의 모든 경우에 성능을 향상시키는 간단한 기술이므로
배치 정규화 : NN이 정규화 된 데이터에 대해 가장 잘 훈련하는 것으로 알려져 있습니다. 즉, 평균 및 단위 분산이 없습니다. 매우 깊은 네트워크에서 데이터가 각 계층을 통과함에 따라 입력이 변환되고 일반적으로이 정상화 속성이 부족한 분포로 이동합니다. 이는 입력에서 평균 및 단위 분산이 제로가 아니기 때문에 이러한 더 깊은 계층에서의 학습이 더 어려워집니다. 평균은 매우 클 수 있고 분산은 매우 작을 수 있습니다. 배치 정규화 는 입력을 레이어로 변환하여 평균 및 단위 분산이 0이되도록하여이 문제를 해결합니다. 이것은 매우 깊은 NN을 훈련시키는 데 엄청난 효과가있는 것으로 보입니다.
이론 : 아주 최근까지, NN이 훈련하기 어려운 이유는 최적화 알고리즘이 로컬 최소값에 갇히고 글로벌 최소값을 찾는 데 어려움이 있기 때문입니다. 지난 4 년 동안이 직관이 잘못되었음을 나타내는 많은 연구가있었습니다 (예 : Goodfellow et al. 2014).). 깊은 NN의 매우 높은 차원의 파라미터 공간에서, 로컬 최소값은 글로벌 최소값보다 그리 나쁘지 않은 경향이 있습니다. 문제는 실제로 훈련 할 때 NN이 길고 넓은 고원에서 찾을 수 있다는 것입니다. 또한이 고원은 가파른 절벽에서 갑자기 끝날 수 있습니다. NN이 작은 단계를 밟으면 배우는 데 시간이 오래 걸립니다. 그러나 계단이 너무 크면 절벽으로 뛰어들 때 거대한 구배를 만나므로 모든 이전 작업이 취소됩니다. (이는 2012 년 이후의 또 다른 혁신 인 그라디언트 클리핑으로 피할 수 있습니다.)