독서 리마인더/텐서플로 2와 케라스로 구현하는 딥러닝

[텐서플로 2와 케라스로 구현하는 딥러닝] 3장

hwijin97 2021. 5. 29. 00:27

3장 회귀regression

 

선형 회귀Linear regression

_Y = W.T * X + b (_Y : 예측값, X : 입력변수, W : 선형 계수, b : 편향bias)

error(i) = Y(i) - _Y(i)

error가 최소화되도록, W계수와 b 계수에 대한 최적의 추정치를 찾는것이 목표이다.

 

단순 선형 회귀simple linear regression

하나의 독립변수, 하나의 종속 변수만을 고려하는 경우.

_Y = A * W + b (ex A : 독립 변수-주택 면적,  Y : 종속 변수-주택 가격)

 

최소자승법least squares : 매개변수를 추정하는데 사용되는 표준방법인, 오차의 제곱의 합.

 

다중 선형 회귀multiple linear regression

많은 독립 입력 변수와 종속 출력 변수 사이의 선형 관계를 추정한다.

_Y = W.T * X + b ( '' )

loss = sigma(Y(i) - _Y(i) ** 2

n+1 개의 방정식을 풀기위해 estimator api를 사용한다.

 

다변량 선형 회귀multivariate

독립 변수가 둘 이상의 종속 변수에 영향을 주는경우.

_Y(i,j) = w(0,j) + sigma[k=1 to p](w(k,j) * x(i,k))

1 <= i <= n, 1<= j <= m , _Y(i,j) : i번째 입력표본에 해당되는 j번째 예측 출력, w는 회귀 계수, x(i,k) : i번째 입력의 k번째 특징을 나타낸다.

 

텐서플로 추정기

추정기는 계산 그래프생성, 변수 초기화, 모델 훈련, 체크 포인트 저장, 텐서보드 파일 로깅 등 막후 활동을 처리한다.

기성canned 추정기 : 미리 작성된 추정기, 입력 특징만 전달하면 바로 사용가능함.

맞춤형 추정기 : tf.keras에 구축한 모델에서 자신에게 맞는 추정기를 생성 가능하다.

특징 열feature_columns :

tf.feature_columns는 입력 데이터와 모델 간의 가교 역할을 한다.

categorical_column_with_identity : 각 카테고리가 원핫 인코딩되어 고유한 ID를 가질때.

categorical_column_with_vocabulary_file : 카테고리 입력이 문자열이고, 카테고리가 파일로 제공될때. 문자열은 숫자 값으로 변환되고 원핫 인코딩 된다.

categorical_column_with_vocabulary_list : 카테고리 입력이 문자열이고, 카테고리가 list로 명시적으로 정의될 때.

categorical_column_with_hash_bucket : 카테고리수가 매우 많아 원핫 인코딩이 불가능할 때 hash를 사용함.

crossed_column : 두 개의 열을 병합해 하나의 특징으로 사용할 때. ex) 경도와 위도를 합쳐 사용할 때.

numeric_column : 특징이 수치일 때, 단일 숫자 또는 행렬도 가능함.

indicator_column : 카테고리 컬럼이 제한되어 있고, 원핫 인코딩으로 표시될 수 있는 경우.

embedding_column : 카테고리 컬럼이 매우 많고, 원핫 인코딩으로 표시 불가능 한 경우.

bucketized_column : 특정 수치값 대신, 값에 따라 서로 다른 범주로 분류할 때.

 

입력함수 :

return : tf.data.Dataset 객체

객체 : feature, label을 포함하는 tuple을 반환

 

분류 과제와 결정 경계

분류와 회귀의 차이 :

분류 : class / category의 그룹화 (불연속)

회귀 : 주어진 데이터에 대한 연속 수치값

 

로지스틱 회귀 logistic 회귀 : event의 확률을 결정하는데 사용

P(Yhat = 1 | X = x) = 1 / (1 + exp(-(b + w.T * x))) (시그모이드 함수사용)

loss = sigma(i=1 to p)(Y[i] * log(Y[hat,i]) + (1 - Y[i]) log (1 - Y[hat,i])

다분류 로지스틱 회귀의 cross entropy loss :

loss = sigma(i=1 to p) sigma(j=1 to k) Y[i,j] log(Y[hat,i,j])