로지스틱 회귀의 기울기 하강 [초보자를 위한 설명]

게시 됨: 2021-01-08

이 기사에서는 Logistic Regression에서 매우 인기 있는 Gradient Descent Algorithm에 대해 논의할 것입니다. Logistic Regression이 무엇인지 살펴보고 점차적으로 Equation for Logistic Regression, Cost Function, 그리고 마지막으로 Gradient Descent Algorithm으로 넘어갈 것입니다.

목차

로지스틱 회귀란 무엇입니까?

로지스틱 회귀는 메일이 '스팸'인지 '스팸 아님'인지 예측하는 것과 같이 개별 범주를 예측하는 데 사용되는 분류 알고리즘입니다. 주어진 숫자가 '9'인지 또는 '9가 아님'인지 예측하는 것 등. 이제 이름을 보고 생각해야 합니다. 이름이 회귀인 이유는 무엇입니까?

그 이유는 로지스틱 회귀의 아이디어가 회귀 문제에 사용되는 기본 선형 회귀 알고리즘의 몇 가지 요소를 조정하여 개발되었기 때문입니다.

로지스틱 회귀는 다중 클래스(2개 이상의 클래스) 분류 문제에도 적용할 수 있습니다. 그러나 이 알고리즘은 이진 분류 문제에만 사용하는 것이 좋습니다.

시그모이드 함수

분류 문제는 선형 함수 문제가 아닙니다. 출력은 특정 이산 값(예: 이진 분류 문제의 경우 0 및 1)으로 제한됩니다. 선형 함수가 출력 값을 1보다 크거나 0보다 작게 예측하는 것은 의미가 없습니다. 따라서 출력 값을 나타내는 적절한 함수가 필요합니다.

Sigmoid 함수는 우리의 문제를 해결합니다. 로지스틱 함수라고도 하는 이 함수는 실수 값을 (0,1) 간격에 매핑하는 S자형 함수로 임의의 함수를 분류 기반 함수로 변환하는 데 매우 유용합니다. 시그모이드 함수는 다음과 같습니다.

시그모이드 함수

원천

이제 매개변수화된 벡터 및 입력 벡터 X에 대한 시그모이드 함수의 수학적 형식은 다음과 같습니다.

(z) = 11+exp(-z) 여기서 z = TX

(z)는 출력이 1일 확률을 제공합니다. 우리 모두 알다시피 확률 값의 범위는 0에서 1입니다. 이제 이것은 이산 기반(0 및 1만) 분류 문제에 대해 원하는 출력이 아닙니다. . 이제 예측된 확률을 0.5와 비교할 수 있습니다. 확률 > 0.5이면 y=1입니다. 마찬가지로 확률이 < 0.5이면 y=0이 됩니다.

비용 함수

이제 불연속적인 예측이 있으므로 예측이 실제로 정확한지 여부를 확인할 차례입니다. 이를 위해 비용 함수가 있습니다. 비용 함수는 전체 데이터 세트에서 예측에서 발생한 모든 오류의 합계일 뿐입니다. 물론 Linear Regression에서 사용하는 Cost Function은 사용할 수 없습니다. 따라서 로지스틱 회귀에 대한 새로운 비용 함수는 다음과 같습니다.

원천

방정식을 두려워하지 마십시오. 매우 간단합니다. 각 반복 i 에 대해 예측에서 만든 오류를 계산한 다음 모든 오류를 더하여 비용 함수 J()를 정의합니다.

대괄호 안의 두 용어는 실제로 y=0 및 y=1의 두 가지 경우에 대한 것입니다. y=0일 때 첫 번째 항은 사라지고 두 번째 항만 남게 됩니다. 마찬가지로 y=1일 때 두 번째 항은 사라지고 첫 번째 항만 남게 됩니다.

경사하강법 알고리즘

비용 함수를 성공적으로 계산했습니다. 그러나 좋은 예측 알고리즘을 만들기 위해서는 손실을 최소화해야 합니다. 이를 위해 Gradient Descent Algorithm이 있습니다.

원천

여기서 우리는 J()와 . 우리의 목표는 이 함수의 가장 깊은 지점(전역 최소값)을 찾는 것입니다. 이제 가장 깊은 지점은 J()가 최소인 곳입니다.

가장 깊은 지점을 찾으려면 두 가지가 필요합니다.

  • 도함수 - 다음 단계의 방향을 찾기 위해.
  • (학습률) – 다음 단계의 크기

아이디어는 먼저 함수에서 임의의 점을 선택하는 것입니다. 그런 다음 J()wrt 의 도함수를 계산해야 합니다. 이것은 지역 최소값의 방향을 가리킬 것입니다. 이제 결과 기울기에 학습률을 곱합니다. 학습률은 고정된 값이 없으며 문제에 따라 결정됩니다.

이제 에서 결과를 빼야 새로운 .

이 업데이트는 모든 (i) 에 대해 동시에 수행되어야 합니다 .

로컬 또는 글로벌 최소값에 도달할 때까지 이 단계를 반복적으로 수행하십시오. 전역 최소값에 도달하여 예측에서 가능한 가장 낮은 손실을 달성했습니다.

파생 상품을 복용하는 것은 간단합니다. 고등학교에서 했어야 하는 기초 미적분학만으로도 충분합니다. 주요 문제는 학습률( )입니다. 좋은 학습률을 취하는 것은 중요하지만 종종 어렵습니다.

아주 작은 학습률을 취하면 각 단계가 너무 작아서 로컬 최소값에 도달하는 데 많은 시간이 걸립니다.

이제 큰 학습률 값을 취하는 경향이 있으면 최소값을 초과하여 다시 수렴하지 않습니다. 완벽한 학습률에 대한 특별한 규칙은 없습니다.

최상의 모델을 준비하려면 미세 조정해야 합니다.

경사하강법 방정식은 다음과 같습니다.

수렴될 때까지 반복:

따라서 기울기 하강 알고리즘을 다음과 같이 요약할 수 있습니다.

  1. 무작위로 시작
  2. 수렴할 때까지 루프:
    1. 그라디언트 계산
    2. 업데이트
  3. 반품

확률적 기울기 하강 알고리즘

이제 Gradient Descent Algorithm은 특히 중소 데이터의 경우 Cost Function을 최소화하기 위한 훌륭한 알고리즘입니다. 그러나 더 큰 데이터 세트를 처리해야 할 때 Gradient Descent Algorithm은 계산 속도가 느립니다. 이유는 간단합니다. 기울기를 계산하고 모든 매개변수에 대해 동시에 값을 업데이트해야 하며 모든 교육 예제에서도 마찬가지입니다.

그래서 그 모든 계산에 대해 생각하십시오! 그것은 방대하기 때문에 약간 수정된 Gradient Descent Algorithm, 즉 Stochastic Gradient Descent Algorithm(SGD)이 필요했습니다.

SGD와 Normal Gradient Descent의 유일한 차이점은 SGD에서 전체 교육 인스턴스를 한 번에 처리하지 않는다는 것입니다. SGD에서는 각 반복에서 단 하나의 무작위 예에 대한 비용 함수의 기울기를 계산합니다.

이제 이렇게 하면 특히 대규모 데이터 세트의 경우 계산에 걸리는 시간이 크게 줄어듭니다. SGD가 취하는 경로는 매우 무질서하고 시끄럽습니다(시끄러운 경로가 우리에게 전역 최소값에 도달할 기회를 제공할 수 있지만).

그러나 우리는 선택한 경로에 대해 걱정할 필요가 없기 때문에 괜찮습니다.

더 빠른 시간에 최소 손실에 도달하기만 하면 됩니다.

따라서 기울기 하강 알고리즘을 다음과 같이 요약할 수 있습니다.

  1. 수렴할 때까지 루프:
    1. 단일 데이터 포인트 ' i' 선택
    2. 해당 단일 점에 대한 그라디언트 계산
    3. 업데이트
  2. 반품

미니 배치 경사하강법 알고리즘

Mini-Batch Gradient Descent는 Gradient Descent Algorithm을 약간 수정한 것입니다. Normal Gradient Descent와 Stochastic Gradient Descent의 중간 정도입니다.

Mini-Batch Gradient Descent는 전체 데이터 세트의 더 작은 배치를 가져온 다음 손실을 최소화하는 것입니다.

이 프로세스는 위의 두 가지 경사 하강 알고리즘보다 더 효율적입니다. 이제 배치 크기는 물론 원하는 모든 것이 될 수 있습니다.

그러나 연구원들은 1에서 100 사이로 유지하는 것이 더 낫다는 것을 보여주었습니다. 32가 가장 좋은 배치 크기입니다.

따라서 배치 크기 = 32는 대부분의 프레임워크에서 기본값으로 유지됩니다.

  1. 수렴할 때까지 루프:
    1. ' b ' 데이터 포인트 배치 선택
    2. 해당 배치에 대한 그라디언트 계산
    3. 업데이트
  2. 반품

결론

이제 로지스틱 회귀에 대한 이론적 이해가 생겼습니다. 로지스틱 함수를 수학적으로 표현하는 방법을 배웠습니다. 비용 함수를 사용하여 예측된 오류를 측정하는 방법을 알고 있습니다.

또한 Gradient Descent Algorithm을 사용하여 이 손실을 최소화하는 방법도 알고 있습니다.

마지막으로, 문제에 대해 선택해야 하는 Gradient Descent Algorithm의 변형을 알고 있습니다. upGrad는 기계 학습 및 AI 분야의 PG 디플로마와 기계 학습 및 AI 분야 석사 과정을 제공하여 경력을 쌓도록 안내합니다. 이 과정에서는 기계 학습의 필요성과 경사하강법 알고리즘 에서 신경망 에 이르는 다양한 개념을 다루는 이 영역에서 지식을 수집하기 위한 추가 단계를 설명합니다 .

경사하강법 알고리즘이란?

기울기 하강법은 함수의 최소값을 찾는 최적화 알고리즘입니다. y = f(x)의 그래프에서 두 점 (a, b)와 (c, d) 사이의 함수 f(x)의 최소값을 찾고 싶다고 가정합니다. 그런 다음 경사 하강법에는 세 단계가 포함됩니다. (1) 두 끝점 사이의 중간 지점 선택, (2) 기울기 ∇f(x) 계산 (3) 기울기의 반대 방향, 즉 (c, d)에서 (c, d)로 이동 (a, b). 이렇게 생각하면 알고리즘은 한 점에서 함수의 기울기를 알아내고 기울기와 반대 방향으로 움직인다.

시그모이드 함수란?

시그모이드 함수 또는 시그모이드 곡선은 비선형이며 모양이 문자 S(따라서 이름)와 매우 유사한 수학 함수 유형입니다. 운영 연구, 통계 및 기타 분야에서 특정 형태의 실제 가치 성장을 모델링하는 데 사용됩니다. 또한 컴퓨터 과학 및 엔지니어링의 광범위한 응용 프로그램, 특히 신경망 및 인공 지능과 관련된 영역에서 사용됩니다. 시그모이드 함수는 인공 신경망을 기반으로 하는 강화 학습 알고리즘에 대한 입력의 일부로 사용됩니다.

확률적 기울기 하강 알고리즘이란 무엇입니까?

확률적 경사 하강법(Stochastic Gradient Descent)은 함수의 극소값을 찾기 위한 고전적인 경사 하강법(Gradient Descent) 알고리즘의 인기 있는 변형 중 하나입니다. 알고리즘은 값을 최소화하기 위해 함수가 다음에 갈 방향을 무작위로 선택하고 국소 최소값에 도달할 때까지 방향을 반복합니다. 목표는 이 프로세스를 지속적으로 반복함으로써 알고리즘이 함수의 전역 또는 로컬 최소값으로 수렴하는 것입니다.