라벨이 machine learning인 게시물 표시

과대적합방지 방법

1. 과대적합 (over-fitting) 개념 - 모델이 train data set의 패턴에 지나치게 특화되어, 새로운 데이터에 대한 예측에서는 오차가 커지는 현상이다. - 모델의 매개변수가 많은 경우, train data set의 양이 부족한 경우 등의 상황에서 발생한다. 2. 과대적합 발생 원인 - Train data set은 실제 데이터의 부분집합이다. 따라서, tran data set은 실제 데이터의 모든 패턴을 가지고 있지 않을 수 있다. 예를 들어, train data set이 실제 데이터에서 편향된 부분만을 가지고 있을 수 있다. 또한 오류가 포함된 값을 가지고 있을 수도 있다. 이러한 상황은 과대적합의 원인이 된다. - 모델이 과도하게 복잡한 경우, 변수가 지나치게 많은 경우도 과대적합의 원인이 된다. 3. 과대적합 방지 방법 3-1. Data augmentation - Train data set의 절대적 양이 부족한 경우나 편향된 패턴만을 가질 때, 데이터를 적절히 변형하는 처리를 하여, 데이터의 양을 늘리거나, 노이즈를 추가하는 등의 방법을 통해 의도적으로 데이터가 더 다양한 패턴을 가지게 할 수 있다. 3-2. 모델의 복잡도 감소 - 인공신경망의 복잡도는 hidden layer의 개수나 모델의 trainable parameter의 개수 (capacity) 등에 비례하므로, over-fitting이 발생할 때, 이들의 사이즈를 줄여 볼 수 있다. 3-3. 가중치 규제 (weight regularization) 적용 - 개별 가중치 값의 범위를 제한하여 훈련되는 모델이 간단해지도록 유도하는 방법이다. - 가중치 규체하는 항을 손실함수에 포함하여 모델을 훈련한다. - 가중치 규제의 종류에는 아래와 같은 것들이 있다. 1) L1 norm regularization (LASSO) - 손실함수식에 모든 가중치 $$$w$$$들의 절대값의 합계 항을 추가하고, 손실함수가 최소가 되도록 가중치를 조정 (훈련) 한다. - 아래와 같은 식으로 표현할 수 있다....

로지스틱 회귀 모형 (logistic regression model)

이미지
1. 로지스틱 회귀 모형 1-1. 데이터 예시 성별(X1) 나이(X2) 체중(X3) 고혈압여부(Y) 1 65 55 1 2 27 62 0 ... ... ... ... 1 24 67 0 - 종속변수는 범주형 (주로 0 또는 1의 이진형태) 1-2. 로지스틱 회귀 모형 종류 - 종속변수가 0 또는 1, 성공 또는 실패와 같은 값을 가지는 이항분포를 따른다면, 이항 로지스틱 회귀 (binomial logistic regression) 이라고 할 수 있다. 일반적으로 가장 많이 사용되는 형태이기 때문에,  간단히 로지스틱 회귀 모형이라고 불린다. - 종속변수가 서울, 경기, 인천 처럼 3개 이상의 범주를 가져 다항분포를 따른다면, 다항 로지스틱 회귀 (multinomial logistic regression) 을 사용할 수 있다. 이 경우, 범주가 3개라면 종속변수를 주로 (3-1)개의 더미변수로 만들어 분석을 하게 된다. - 종속변수가 연령대1, 연령대2, 연령대3 처럼 3개 이상의 순서가 있는 범주를 가지는 경우, 서수 로지스틱 회귀 (ordinal logistic regression) 을 사용할 수 있다. 1-3. 로지스틱 회귀 모형 개념 - 종속변수가 두개의 범주를 가진 이항형인 경우에, 선형회귀 모형을 적용하면, 0 또는 1과는 다른 예측값 (0.3, 6 등) 이 나올 수 있다. 즉, 독립변수와 0과 1을 가지는 종속변수 사이의 관계를 선형회귀 모형은 적절히 모델링 할 수 없기때문에, 로지스틱 회귀라는 새로운 모델링 방법이 필요한 것이다. 2. 로지스틱 모형 정의 - 종속변수의 값으로서 $$$y_i=0$$$ 또는 $$$y_i=1$$$ 로 직접적으로 정확히 추정하기는 어렵다. - 따라서, 0 또...

선형 회귀 모형 (linear regression model)

이미지
1. 선형회귀 모형 overview 1-1. 단순 회귀 분석 (simple linear regression) - 데이터 예시 신장 (X) 체중 (Y) 170 71 175 75 163 61 ... ... - 독립변수1개, 종속변수1개로 이루어진다. - 종속변수는 연속형 (구간척도, 비율척도) 자료이다. - 단순 회귀 분석 모형의 방정식 형태 예시 $$$y = \beta_0 + \beta_1x_1 + \epsilon$$$ - 위 방정식은 실세계의 패턴을 모델링한다. 따라서, 우리가 어쩔수 없는 에러 $$$\epsilon$$$ 항이 방정식에 포함되어있다. - 위의 true 모형은 사실상 우리가 알 수 없는 것이고, 이것과 가장 근사하게, 즉, $$$\epsilon$$$ 을 최소화하면서 (최소 제곱 추정법 등 사용) , 회귀계수들 $$$\beta$$$ 를 추정된 회귀계수 $$$\hat{\beta}$$$ 로 추정한다. 그러면 $$$\epsilon$$$ 항이 없어진 아래의 추정된 선형회귀모형 방정식을 얻을 수 있다. $$$\hat{y} = \hat{\beta}_0 + \hat{\beta}_1x_1$$$ 1-2. 다중 회귀 분석 (multiple linear regression) - 데이터 예시 신장 (X1) 성별 (X2) 체중 (Y) 170 1 71 175 1 75 163 2 61 ... ... ... - 독립변수2개 이상, 종속변수1개로 이루어진다. - 다중 회귀 분석 모형의 방정식 형태 예시 $$$y = \beta_0 + \beta_1x_1+\beta_2x_2 + \epsil...

Object detection 에서 사용되는 IoU (Intersection over Union) 구하는 함수, 좌표상에서 계산 과정 그림 설명

이미지
Object detection 모델을 사용할 때는 정답 박스와 예측된 박스가 얼마나 일치하는지 평가하는 지표가 필요합니다. 이 때, IoU (Intersection over Union) 값이 사용될 수 있으며, 수식적으로 표현하면 아래와 같이 쓸 수 있습니다. $$$IoU = \dfrac{\text{두 박스의 교집합 부분 넓이값}}{\text{두 박스의 합집합 부분 넓이값}}$$$ 아래 함수는 두개의 박스를 입력으로 받아, 두 박스의 IoU 값을 계산 후 반환하는 함수입니다. 코드는 아래 Github 저장소에서 참고했습니다. https://github.com/1297rohit/RCNN/blob/master/RCNN.ipynb 함수 아래에는 실제 좌표상에서 IoU 를 구하기 위해 사용된 연산들을 참고사항으로 설명한 그림을 첨부했습니다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 def  get_iou(bb1, bb2):  # 박스1, 박스2 를 입력으로 받음     assert bb1[ 'x1' ]  <  bb1[ 'x2' ]     assert bb1[ 'y1' ]  <  bb1[ 'y2' ]     assert bb2[ 'x1' ]  <  bb2[ 'x2' ]     assert bb2[ 'y1' ]  <  bb2[ 'y2' ]           # intersection (교집합) 박스의 {(x1=x_left,y1=y_top),...