Regression은 통계나 딥 러닝 쪽에서는 데이터의 분포를 함수로 서술하는 걸 말하는데요.
먼저
이런 식으로 데이터가 있다고 하면, 이 데이터들의 분포를 잘 설명할 수 있는 함수를 찾아내는 것이 Regression이에요.
이러한 데이터들을 서술하기 위해 사용하는 게 Hypothesis인데요.
데이터 분포는... H(x) = Wx + b의 형태로 서술이 되요.
여기서 W는 데이터 x에 대한 가중치, b는 일반적으로는 bias라고 합니다.
Linear Regression
여기서 각각의 데이터의 분포를 선형 함수로 표현하는 게 linear regression(선형회귀)이구요. 이 차이를 줄이기 위해 일반적으로 사용되는 cost(비용 = 즉 데이터 분포와 함수간의 차이)는 MSE(Mean squared Error)입니다.
여기서 절댓값이 아닌 square를 사용하는 이유는, 차이가 클 수록 패널티를 주어서 에러를 빠르게 줄이기 위해 사용합니다.
Logistic Regression
Linear regression에는 결괏값이 Linear한 숫자이기에, 숫자 대신 0 - 1사이로 나타나는 확률 결과를 얻기 위해 사용하는 게 Logistic regression입니다.
여기서 주로 사용하는 함수가 Sigmoid 함수인데요.
Sigmoid 함수는 0 - 1 사이의 값을 가지므로 값을 손쉽게 변환할 수 있기에 주로 사용됩니다.
Logistic Regression의 경우에는 데이터를 2가지로 분류할 때 주로 사용되며
이러한 분류를 multinomial한 차원으로 행렬연산을 해서 적용한 게 softmax regression이에요.
Deep learning에서는 이 방식을 이용해 네트워크 학습에 이용하는데요.
생성한 data - original data의 차이를 계산하고 네트워크를 통해 이 오류를 줄여 정확도를 올리는 방식을 사용합니다.
다만 네트워크를 이용해 아주 정확한 최적값을 구하긴 어렵기에, cost function의 기울기가 제일 낮은 부분을 최적값이라고 가정하고 기울기를 줄여 가는데요. 이 이유로 인해 cost 함수에 미분을 해서 네트워크에 적용하는 것입니다.
요런 방식을 적용한 알고리즘을 Gradient Descent라고 하구요.
댓글 없음:
댓글 쓰기
글에 대한 의문점이나 요청점, 남기고 싶은 댓글이 있으시면 남겨 주세요. 단 악성 및 스팸성 댓글일 경우 삭제 및 차단될 수 있습니다.
모든 댓글은 검토 후 게시됩니다.