반응형

분류 전체보기 823

[ISLR] 라쏘(Lasso)

라쏘(Lasso) 능형 회귀(Ridge regression)은 한가지 단점이 존재합니다. 일반적으로 변수의 부분 집합만을 포함하는 모델을 선택하는 best subset, forward stepwise, backward stepwise selection과 다르게 능형 회귀는 모든 p개의 변수를 포함합니다. 그리고 패널티 항은 모든 계수가 0이 되는 방향으로 수축합니다. 하지만 람다가 무한이 아닌 경우에 계수를 정확히 0으로 수축하지 않습니다. 모델의 정확도 관점에서는 문제가 되지 않지만, 모델을 해석해야 하는 경우에 문제점이 발생합니다. 라쏘는 능형회귀의 단점을 극복하기 위해 제안된 방법입니다. 능형회귀의 패널티 항은 L2 norm 이었던 반면에, 라쏘의 패널티 항은 L1 norm 입니다. 능형회귀와 라쏘..

[ISLR] 수축법(Shrinkage Methods), 능형 회귀(Ridge regression)

수축법(Shrinkage Methods) 계수 추정치를 0으로 수축(shrink)하는 기법을 사용하여 모든 설명 변수를 포함하고 있는 모델을 적합(fit)할 수 있습니다. 계수 추정치를 수축하는 것은 모델의 variance를 감소시킵니다. 모델의 variance를 감소시킨 다는 의미는 bias를 증가시켜 overfitting을 방지합니다. 회귀 계수를 0으로 수축하는 방법에 대해 가장 잘 알려진 ridge regression과 lasso를 알아보겠습니다. 능형 회귀(Ridge Regression) 능형 회귀는 RSS식에 다음과 같은 항이 추가된 것입니다. 람다는 조율 파라미터(tuning parameter)이며, 위 식을 최소화 하는 방향으로 모델을 학습합니다. 위 식을 수축 패널티(shrinkage p..

[벡터 미적분학] 평면의 방정식(Equations of Planes)

평면의 방정식(Equations of Planes) 공간 내에 평면이 존재하고, 평면 위에 한 점 P0 = (x0, y0, z0)이 존재한다고 가정하겠습니다. 평면과 직교하는 법선 벡터(normal vector) n = Ai + Bj + Ck가 주어진 경우에 평면의 방정식은 어떻게 구해야 할까요? 우선 평면 위의 두점 P = (x,y,z)와 P0를 잇는 벡터와 법선 벡터 n은 직교합니다. 두 벡터가 직교하면 내적이 0이므로 이 성질을 이용하여 평면의 방정식을 계산할 수 있습니다. A, B, C, D는 유일하지 않습니다. 법선 벡터가 평행한 경우에도 해당 법선 벡터는 평면과 직교하기 때문입니다. 점에서 평면에 이르는 거리(Distance from a Point to a Plane) 공간에서 한 점 E와 평..

[벡터 미적분학] 열린 집합(Open Sets), 열린 원판(Open Disk), x의 근방(Neighborhood of x)

열린 집합과 열린 원판(Open Set and Open Disk) 열린 집합은 극한의 개념을 이해하기 위해서 필요합니다. 열린 집합(open set)을 알아보기 전에 열린 원판(open dist)을 정의하겠습니다. (1) 열린 원판(Open Dist) 열린 원판은 양의 실수 r과 x_0에 대하여 llx-x_0ll < r을 만족하는 모든 점 x의 집합을 의미합니다. 열린 원판은 원의 중심이 x_0이고, 반지름이 r인 원의 안쪽에 존재하는 모든 점 x를 의미합니다. 정리하면, x_0으로부터 거리가 r보다 작은 모든 점 x를 의미합니다. 그리고 Dr(x_0)으로 표기합니다. (2) 열린 집합(Open Set) 열린 집합은 열린 원판 Dr(x_0)이 U에 존재하고, U가 R^n의 부분집합인 경우에 이 U를 열린..

[ISLR] Cp, AIC, BIC, Adjusted R2, 검증 및 교차검증(Validation and Cross-Validation)

최적의 모델 선택(Choosing the Optimal Model) 최상의 부분 집합 선택, 전진 선택, 후진 선택으로 모델의 집합을 생성합니다. 모델의 집합 중에 어느 모델이 최고의 성능을 갖고 있는지 판단해야 합니다. RSS가 가장 낮은 모델을 선택하거나, R2값이 가장 큰 모델을 선택하는 것은 training error와 연관되어 있으므로 부정확합니다. 따라서 test error가 낮은 모델을 선택해야 합니다. test error를 측정하는 방법은 (1) 과적합으로 인한 편상을 고려하도록 훈련오차를 조정하여 test error를 간접적으로 추정할 수 있습니다. (2) validation set approach 또는 cross-validation approach를 사용하여 test error를 직접 ..

[ISLR] 부분집합 선택(Subset Selection), 최상의 부분 집합, 전진 단계적, 후진 단계적, 하이브리드

부분집합 선택(Subset Selection) 부분집합 선택은 반응변수(response, Y)와 관련 없는 설명변수(predictor, X)를 식별하여 제거합니다. 반응변수와 관련 있는 설명변수의 집합에서 선형회귀를 진행하여 모델의 해석력을 높여줍니다. 이번 포스팅에서 (1) 최상의 부분집합 선택, (2) 전진 단계적 선택, (3) 후진 단계적 선택, (4) 하이브리드 방식을 살펴보겠습니다. 1. 최상의 부분집합 선택(Best Subset Selection) 작동원리 (1) 모든 가능한 predictor, p의 선형 결합에 대해 fitting을 진행합니다. (2) 총 2^p번의 fitting이 진행됩니다. (3) predictor을 1개 포함한 모델에서 RSS가 가장 낮은 모델이 M1로 선택합니다. (4..

[백터 미적분학] 직선의 방정식(Equations of Lines)

직선의 방정식(Equations of Lines) 평면과 직선은 방정식으로 표현될 수 있는 기하학적인 객체입니다. 여기서는 직선의 방정식을 벡터 덧셈, 스칼라 곱을 사용하여 알아보겠습니다. 벡터 a의 끝점을 통과하고 벡터 v의 방향인 직선의 방정식은 다음과 같이 표현합니다. t는 모든 실수이고, tv는 벡터 v의 모든 스칼라 곱입니다. 직선 l은 a와 tv를 변으로하는 평행사변형의 모든 대각 요소의 끝접이며, l = a + tv로 표현합니다. 즉, a의 끝점을 지나고 방향이 v인 직선의 방정식은 l = a + tv 입니다. 예제 문제를 한번 살펴보겠습니다. 동일한 직선은 여러가지 방정식으로 나타낼 수 있습니다. 주어진 선에서 a 대신에 다른 점을 선택하면 됩니다. 예를 들어, 직선의 방정식 l = a +..

[PyTorch] 가중치 초기화 함수 정의하고 모델에 적용하기

안녕하세요! 가중치 초기화 함수를 정의하고 모델에 적용해보도록 하겠습니다. 자꾸 까먹어서 작성합니다ㅎㅎ! 가중치 초기화 함수를 정의하는 방법은 (1) 모델 구현 코드 내에 가중치 초기화 함수 정의하여 사용하기, (2) 모델을 생성한 뒤에 가중치 초기화 함수 정의하여 사용하기. 두 가지 방법이 있습니다. 개인적으로 (2) 번 방법이 편하여 2번 방법을 작성하겠습니다. 우선 구현한 모델을 생성해야 합니다. 저는 현재 gan을 공부하는 중이므로 discriminator, generator 두 개를 구현했습니다 ㅎㅎ model_dis = Discriminator().to(device) model_gen = Generator(params).to(device) 가중치 초기화 함수를 정의합니다. 값은 제가 임의로 설..

[벡터 미적분학] 그래프(Graph), 레벨 집합(Level set), 단면(Section)

실함수의 기하학(The Geometry of Real-Valued Functions) 실함수를 graph, level curve, level surface로 시각화하여 이해해보도록 하겠습니다. 함수와 사상(Fuctions and Mappings) 함수는 정의역(domain)으로 R^n 공간에 있는 부분 집합 A을 갖고 있고, 이 부분 집합을 R^m 공간에 있는 공역(codomain)으로 전달합니다. 공역(codomain)의 차원에 따라 함수의 명칭이 달라집니다. m > 1 인 경우 함수 f를 벡터 함수(vector-valued function)이라고 부릅니다. m = 1 인 경우 함수 f를 스칼라 함수(scalar-valued function)이라고 합니다. 예를 들어, scalar-valued func..

[딥러닝] Batch Norm 관점에서 살펴보는 batch size 가이드 라인

안녕하세요! 모델을 학습하는 경우에 batch size에 대해 고민이 많으실 텐데요. 3개의 논문을 공부하고, 제가 생각하는 배치 사이즈 선택 가이드 라인을 정리해보았습니다 ㅎㅎ!! 많은 분들에게 도움이 되었으면 합니다. 해당 글은 computer vision 관점에서 작성하였습니다. NLP 등 다른 분야에서 활동하시는 분들에게는 이 포스팅이 도움 안될 수 있습니다. ㅎㅎ Batch normalization batch normalization은 입력값 x를 평균 0, 분산 1로 표준화하여 활성화 함수로 전달하고 활성화 함수 출력값을 분포를 고르게 합니다. x를 표준화 하는 과정에서 배치 사이즈 단위로 평균과 분산값을 계산하는데요. 어떤 배치 사이즈를 선택하느냐에 따라 평균과 분산값이 달라지므로 성능에 영..

반응형