모든 AI 엔지니어가 알아야 할 딥 러닝의 최적화 유형

게시 됨: 2020-12-01

목차

소개

딥 러닝은 산업 응용 분야에서 유연성, 더 높은 정확도 및 광범위한 가능성 측면에서 머신 러닝에 비해 크게 발전한 것입니다. 채팅 응용 프로그램, 문법 자동 수정, 다른 언어 간 번역, 가짜 뉴스 감지 또는 일부 초기 단어를 기반으로 한 자동 스토리 작성 등 딥 러닝은 거의 모든 분야에서 사용됩니다.

이렇게 많이 사용하면 반복되는 비용을 줄이고 더 짧은 시간에 효율적인 결과를 제공할 수 있도록 이러한 알고리즘을 최소 리소스에서 실행하는 것이 중요해집니다. 옵티마이저는 훨씬 적은 노력으로 손실을 줄일 수 있는 다양한 매개변수를 업데이트하는 방법 또는 알고리즘입니다. 수용 가능한 결과를 제공하는 인기 있는 딥 러닝 최적화 프로그램을 살펴보겠습니다.

세계 최고의 대학에서 AI ML 과정배우십시오 . 석사, 이그 제 큐 티브 PGP 또는 고급 인증 프로그램을 획득하여 경력을 빠르게 추적하십시오.

경사하강법(GD)

손실 함수와 학습률의 미분을 직접 사용하여 손실을 줄이고 최소값을 달성하는 가장 기본적인 옵티마이저입니다. 이 접근 방식은 최소 손실이 달성되는 시점에 따라 업데이트된 매개변수가 서로 다른 계층 간에 공유되는 신경망의 역전파에도 채택됩니다. 결과를 구현하고 해석하는 것은 쉽지만 다양한 문제가 있습니다.

전체 데이터 세트 기울기가 계산될 때 가중치가 업데이트되어 프로세스가 느려집니다. 또한 이 임시 데이터를 저장하는 데 많은 양의 메모리가 필요하므로 리소스가 많이 소모되는 프로세스입니다. 이 알고리즘의 이면에 있는 아이디어는 매우 적합하지만 조정해야 합니다.

확률적 경사하강법

이것은 모델 매개변수가 모든 반복에서 업데이트되는 GD 방법의 변경된 버전입니다. 이는 모든 훈련 샘플 후에 손실 함수가 테스트되고 모델이 업데이트됨을 의미합니다. 이러한 빈번한 업데이트로 인해 더 짧은 시간에 최소값으로 수렴되지만 모델이 필요한 위치를 초과하게 만들 수 있는 증가된 분산의 비용이 발생합니다.

그러나 이 기법의 장점은 손실 함수의 이전 값을 저장할 필요가 없기 때문에 이전 기법에 비해 메모리 요구량이 낮다는 것입니다.

미니 배치 경사하강법

이 GD 접근 방식의 또 다른 변형은 모델 매개변수가 작은 배치 크기로 업데이트되는 미니 배치입니다. 이는 매 n 배치 후에 모델 매개변수가 업데이트되고 이는 모델이 자주 탈선하지 않고 더 적은 단계로 최소값으로 진행된다는 것을 의미합니다. 그 결과 메모리 사용량이 줄어들고 모델의 변동이 줄어듭니다.

읽기: 기계 학습 프로젝트 아이디어

운동량 기반 경사 하강법

매개변수를 업데이트하는 데 사용하는 방법을 다시 살펴보겠습니다. 손실 함수의 1차 도함수를 기반으로 기울기를 역전파합니다. 업데이트 빈도는 모든 반복, 배치 또는 마지막에 있을 수 있지만 매개변수에 얼마나 많은 업데이트가 있는지는 고려하지 않습니다.

이 히스토리 요소가 다음 업데이트에 포함되면 전체 프로세스의 속도를 높일 수 있으며 이것이 이 옵티마이저에서 추진력이 의미하는 것입니다. 이 역사 요소는 우리의 마음이 사물을 기억하는 방식과 같습니다. 거리를 걷고 있고 꽤 먼 거리를 이동하는 경우 목적지가 약간 앞에 있다는 것을 확신하고 속도를 높일 수 있습니다.

이 요소는 이전 값, 학습률 및 이 기록 업데이트를 제어하는 ​​감마라는 새 매개변수에 따라 달라집니다. 업데이트 규칙은 w = w – v와 같을 것입니다. 여기서 v는 히스토리 요소입니다.

네스테로프 가속 기울기(NAG)

모멘텀 기반의 GD는 초기에 최소값으로 수렴하여 현재 사용 중인 옵티마이저에 부스트를 주었지만 새로운 문제가 발생했습니다. 이 방법은 유턴이 많이 필요하고 최소 계곡에서 안팎으로 진동하므로 총 시간이 늘어납니다. 소요된 시간은 여전히 ​​일반 GD보다 너무 짧지만 이 문제도 수정이 필요하며 이는 NAG에서 수행됩니다.

여기에서 따랐던 접근 방식은 매개변수 업데이트가 먼저 history 요소를 사용하여 만들어진 다음 앞으로 또는 뒤로 이동할 수 있는 도함수만 계산된다는 것입니다. 이를 예측 접근 방식이라고 하며 곡선이 최소값에 가까워지면 도함수가 곡선을 천천히 움직여 진동을 줄여 더 많은 시간을 절약할 수 있기 때문에 더 합리적입니다.

더 읽어보기: 알아야 할 딥 러닝 기술

아다그라드

지금까지는 모델 매개변수가 훈련에 어떻게 영향을 미치는지에 초점을 맞추고 있지만 훈련 전반에 걸쳐 일정한 값이 할당되는 하이퍼 매개변수에 대해서는 이야기하지 않았습니다. 이러한 중요한 하이퍼 매개변수 중 하나는 학습률이며 이를 변경하면 학습 속도가 변경될 수 있습니다.

대부분의 값이 0인 희소 특징 입력의 경우 이러한 희소 특징으로 인해 죽어가는 기울기를 높일 더 높은 학습률을 제공할 수 있습니다. 조밀한 데이터가 있으면 학습 속도가 느려질 수 있습니다.

이에 대한 해결책은 제공된 입력에 따라 변경될 수 있는 적응형 학습률을 갖는 것입니다. Adagrad 옵티마이저는 업데이트된 그라디언트 기록에 비례하여 학습률을 감소시켜 이러한 적응성을 제공하려고 합니다.

즉, 더 큰 업데이트가 있을 때 history 요소가 누적되어 학습률이 감소하고 그 반대의 경우도 마찬가지입니다. 이 접근 방식의 한 가지 단점은 학습률이 급격히 감소하고 일정 시간이 지나면 0에 가까워진다는 것입니다.

RMSProp

Adagrad 옵티마이저를 개선한 것입니다. 이것은 제곱 그라디언트의 누적 합계 대신 그라디언트의 지수 평균을 취하여 학습률의 공격성을 줄이는 것을 목표로 합니다. 적응 학습률은 업데이트가 더 적고 업데이트 횟수가 많을수록 더 적은 비율이 있는 조건에서 지수 평균이 더 큰 학습률을 처벌하기 때문에 그대로 유지됩니다.

아담

적응형 모멘트 추정은 RMSProp(root-mean-square prop)과 운동량 기반 GD의 힘을 결합합니다. Adam 옵티마이저에서 업데이트 히스토리를 유지하는 모멘텀 GD의 힘과 RMSProp이 제공하는 적응형 학습률은 Adam 옵티마이저를 강력한 방법으로 만듭니다. 또한 일반적으로 약 0.9 및 0.99로 유지되지만 사용 사례에 따라 변경할 수 있는 두 개의 새로운 하이퍼 매개변수 beta1 및 beta2를 도입합니다.

반드시 읽어야 함: 딥 러닝의 정규화

결론

이 글에서는 8개의 딥 러닝 옵티마이저를 사용하기 쉬운 순서로 살펴보고 하나의 옵티마이저의 한계를 다음 옵티마이저로 극복하는 방법 등을 살펴보았습니다. 여기에 언급된 하나 또는 다른 최적화 프로그램에 대한 수정 사항이 더 있지만 복잡한 솔루션을 선택하기 전에 고려해야 할 기본적인 사항입니다.

이 중 승자를 선택하는 것은 사용 사례와 처리 중인 문제에 따라 매우 주관적이지만 모델 매개변수를 업데이트하고 변경 사항을 적용하는 방식을 변경한 모멘텀 개념과의 조합으로 인해 Adam Optimizer를 가장 높은 순위로 지정할 수 있습니다. 다양한 시나리오에 대한 학습률을 통해 모든 유형의 입력을 효율적으로 처리할 수 있습니다.

일반적인 경향은 동일한 손실에 대해 이러한 옵티마이저가 다른 로컬 최소값으로 수렴한다는 것을 보여줍니다. 적응 학습 옵티마이저는 더 선명한 최소값으로 수렴하지만 다른 유형의 기술은 일반화에 더 나은 평평한 최소값으로 수렴합니다. 이러한 기술은 심층 신경망이 점점 더 커지면서 좋은 결과를 얻으려면 더 효율적인 방법이 필요하기 때문에 어느 정도만 도움이 될 수 있습니다.

기계 학습 및 AI를 마스터하는 데 관심이 있다면 IIIT-B 및 리버풀 존 무어스 대학과 함께 기계 학습 및 AI 과학 석사 과정을 통해 경력을 향상시키십시오.

옵티마이저는 딥 러닝을 어떻게 작동합니까?

현재 신경망은 과대 광고이지만 최적화는 신경망 학습에 훨씬 더 기본적인 것입니다. 신경망은 사전 지식 없이 스스로 학습할 수 있지만 최적화 프로그램은 신경망과 함께 실행되며 훨씬 빠르게 학습할 수 있는 프로그램입니다. 간단히 말해서 신경망을 사용한 훈련을 훨씬 빠르고 쉽게 하는 방식으로 신경망의 매개변수를 변경하여 이를 수행합니다. 이러한 옵티마이저는 신경망이 실시간으로 작동하도록 하고 훈련은 몇 분 밖에 걸리지 않습니다. 그들 없이는 훈련에 쉽게 며칠이 걸릴 것입니다.

딥 러닝 알고리즘을 최적화하기 어려운 이유는 무엇입니까?

딥 러닝 시스템은 일반적으로 여러 계층과 비선형성을 포함하는 크고 복잡하기 때문에 최적화하기 어려운 것으로 간주됩니다. 옵티마이저는 이해하기 쉽지 않은 거대한 시스템을 다루어야 합니다. 일부 딥 러닝 도구는 조정할 수 있는 제한된 수의 매개변수만 제공하므로 유용성이 제한됩니다. 그러나 딥 러닝 모델을 최적화하고 일반화를 개선하는 몇 가지 효과적인 방법이 있습니다.

딥 러닝에서 다른 최적화 도구는 무엇입니까?

딥 러닝에서 옵티마이저는 모델의 매개변수를 조정하는 데 사용됩니다. 옵티마이저의 목적은 모델 가중치를 조정하여 손실 함수를 최대화하는 것입니다. 손실 함수는 모델이 얼마나 잘 수행되는지 측정하는 방법으로 사용됩니다. 신경망 모델을 훈련할 때는 옵티마이저를 사용해야 합니다. 딥 러닝 모델과 함께 사용할 수 있는 다양한 옵티마이저가 있습니다. 가장 인기 있는 옵티마이저는 RMSprop, Momentum 및 Adam입니다.