[WIL] 20.07.4st week

우주먼지·2020년 7월 24일
0

TIL

목록 보기
10/28

베이즈 정리

A라는 일을 하고 있다고 가정할 경우 B라는 일을 할 확률. p(B|A)로 나타낸다.
P(B|A) = P(A|B) * P(B) = (P(A|B)P(B))/P(A)

단층 퍼셉트론 - 이진 판단

신경망의 학습 결과는 이진판단을 할 수 있는 값이 아니다. 따라서 우리는 이진판단을 위해 비선형 함수를 이용하여 출력값을 확률값의 성질에 맞게 바꿔준다.

먼저 신경망의 결과로 나온 값을 확률값인 로짓(logit)값으로 바꿔준다. 이 값은 상대적이므로 항상 비교대상이 필요하다.
구한 로짓값과 기대하는 값을 비교대상으로 두고 비선형 함수값을 구한다. 대표적인 비선형 함수의 예로 시그모이드 함수가 있다.

시그모이드 함수는 입력값이 음수일경우 0~0.5사이의 값을, 양수일 경우 0.5~1사이의 값을 출력한다.

하지만 이와 같은 함수의 문제점이 존재한다. 예를 들어 함수값이 0.51이 나왔을 경우와 0.99가 나왔을 경우 모두 참이라는 결과를 보인다. 하지만 만약 이 값의 기대값이 거짓이었다면 이는 파라미터 수정이 필요하다. 이 경우 0.51의 경우 약간의 수정이 필요하지만, 0.99의 경우 대폭 수정이 필요하다.

그렇기 때문에 확률 분포의 무질서도나 불확실성을 나타내는 정보 엔트로피 개념을 사용한다.

엔트로피는 불확실한 정보를 숫자로 정량화하려는 노력이다. 이는 어떠한 사건이 일어난 확률의 역수에 로그를 취한 값이다.

교차 엔트로피는 확률 분포 p 와 q를 구분하기 위해 필요한 평균 비트 수를 의미한다. 즉, 도출한 정답값과 예측 값 사이의 오차가 교차 엔트로피의 오차이고, 이의 평균이 교차 엔트로피이다.

따라서 딥러닝에서의 이진판단은

신경망을 통해 결과값을 구한 값과 학습데이터 즉, 예측값 사이의 교차 엔트로피를 구한다.

naive Bayes 분류기

베이즈 정리를 이용하여 단어가 특정 성분일 경우를 분류해주는 것이다.

이를 이용하여 영화리뷰의 긍정 부정 여부를 판단.
<순서도>
1. 데이터를 불러와 긍정, 부정 문장으로 분리
2. 분리된 문장의 stop words를 제거하고, token화를 진행해준다.
3. 단어들의 빈도수를 저장하는 Back Of Word를 진행한다.
4. 이를 이용하여 P(test_data|긍정), P(test_data|부정)을 구한다.
5. 베이즈 정리를 이용하여 P(긍정|test_data), P(부정|test_data)을 구한다.
6. 5에서 구한 값의 확률을 비교하여 결과를 추출.

P(test_data|긍정)을 구하는 방법은 학습데이터의 단어들 중 test_data의 특정 단어가 있을 경우 (특정 단어의 빈도수 / 학습데이터의 전체 단어수)를 구한다. 이를 test_data의 모든 단어들에 대하여 구한 후 모두 더해준다. (이 값이 매우 작을 것이므로 로그를 이용하여 구했다)

P(긍정|test_data)은 P(test_data|긍정) * P(긍정)으로, 베이즈 정리를 이용해서 구했다.

IDBM Dataset을 Kaggle에서 다운받아 사용했는데 정확도가 꽤나 높았다.

선형 회귀

데이터의 분포를 선으로 표현하고, 새로운 데이터가 들어왔을 경우의 결과값을 선을 통해 예측하는 방법이다.

선형 회귀는 단순 선형회귀, 다변수 선형회귀, 다항 회귀로 나뉜다. 단순 선형회귀는 변수가 하나인 경우 나머지 두개는 변수가 여러개인 경우이다. (즉, 입력값이 여러개)

선을 학습하기 위해서는 경사하강법과 평균제곱 오차를 사용한다. 가중치와 편향을 개선하면서 그래프를 따라 내려가면서 기울기가 0이 되는 지점을 찾는 방법이다. 선의 잘못여부를 판단하기 위해서는 평균제곱 오차를 사용한다. 이는 실제값과 예측값 사이의 차이를 분석하는 것으로 값이 클수록 선이 잘못 그어진 것이다.

다중 선형회귀의 경우 과대적합이 발생할 때가 종종 발생한다. 과대적합이란 학습데이터의 정확도는 높게 나오나, 테스트 데이터의 정확도가 낮게 나오는경우를 말한다. 이 경우는 규제를 주어 모델을 강제로 제한해준다.

규제를 주는 회귀의 방법에는 Ridge, Lasso, Elestic net Regression이 있다. Ridge가 Lasso보다 더 적은 규제를 받는 방법으로, Ridge를 먼저 사용해보고, 특성이 많거나, 값이 개선되지 않을 경우 Lasso를 사용하는 것을 추천한다.

규제는 alpha값으로 정해준다. Ridge의 경우 alpha값이 커질수록 데이터들이 흩어졌다. Lasso는 규제의 값이 작아질수록 사용하는 특성의 개수가 작아졌다.

이런식으로 규제를 주어 학습의 효율을 높이는 방법이다.

profile
안녕하세요 ㅎㅎ

0개의 댓글