Lab
[Classification]
0과 1의 두 가지 케이스로 나눠 설명할 수 있다.
[Logistic vs Linear]
Logistic: 두 가지 케이스로 구분할 수 있는 데이터로 흩어져 있는 모양을 보이고, 셀 수 있다.
Linear: 수치형 데이터로 연속인 모양을 보이고, 측정할 수 있다.
[Hypothesis Representation]
Linear regression을 적용했을 때, 우리가 원하는 Logistic 형태의 데이터를 얻을 수 없다. 따라서 0과 1을 표현할 수 있는 새로운 수식이 필요하다. Y와 x를 토대로 나온 0과 1을 표현할 수 있는 모델을 Hypothesis라고 한다.
Hypothesis를 만드는 과정
1. x를 입력 값으로 넣고 Linear function을 적용해서 수치화 된 값으로 만든다.
2. Logistic function을 적용해서 Linear 한 값을 0과 1의 구간으로 표현한다.
3. 0과 1의 구간으로 표현한 값을 특정 Decision Boundary를 적용해서 값을 0과 1로 분류한다.
[Sigmoid (Logistic) function]
지수를 기하급수적으로 증가하는 지수 함수를 사용하고 있다.
-> Z의 값이 커질수록 무한에 가까워지게 되므로 e의 -Z승 값이 0으로 수렴한다.
-> 따라서 1/(1 + e의 -Z승) 값은 1로 수렴하고, 1/(1 + Z)의 값은 0으로 수렴한다.
[Decision Boundary]
1. g(Z) = 1/(1 + e의 -Z승) 함수 자체가 구부러지는 값으로 표현된다.
-> 수식을 대입했을 때 구부러지는 값으로 출력된다.
2. Decision Boundary를 적용해서 0.5 보다 클 경우 1, 작으면 0으로 분류한다.
-> 값을 0과 1로 구분할 수 있다.
[Cost Function]
세타 값인 즉, weight 값을 처음에 random하게 지정하는데 이 weight 값을 최적의 파라미터 값으로 만들어주는 것이 Cost Function이라 할 수 있다. Cost가 0일 때, weight 값이 최적의 파라미터 값이 된다.
우리가 원하는 Cost 값을 최소화하기 위한 과정은 가설을 통해 나온 값에서 실제 값을 뺀 차이 값이 0에 가까워야 한다.
이때, Cost Function을 구하기 위해서는 구불구불한 모양이 아니라 볼록한 모양의 convex 구조를 가져야 한다.
1. 가설을 통해 나온 구불구불한 모양의 값을 로그 함수에 대입함으로써 볼록한 모양의 값으로 변환된다.
2. 두 개의 로그 함수를 합쳐서 convex 구조를 가지는 최적의 Cost Function을 구할 수 있다.
[Optimization]
우리가 찾아낸 Cost Function을 어떻게 최소화할 수 있는가?
-> 각각의 위치에 대한 경사 값이 존재하는데 경사 값을 최소화하는 값을 구하여 Cost를 0에 가깝게 최소화할 수 있다.
1. Tensorflow에서 eager mode로 실행하기 위한 라이브러리를 불러온다.
2. tf.data를 통해서 우리가 원하는 x_train, y_train 값을 실제 x_train의 길이만큼 대치해서 dataset을 구성한다.
Linear 한 값에 Logistic function을 적용해서 0과 1의 구간으로 표현하여 hypothesis를 만든다.
hypothesis를 구했기에 Cost를 구해준다.
1. 학습을 위한 function으로 hypothesis과 labels 값이 나오면 loss_value 변수에 가설을 통해 나온 값에서 실제 값을 뺀 차이 값을 저장한다.
2. loss_value 값과 weight 값을 토대로 trap.gradient 과정을 통해 모델을 업데이트한다.
for 문을 통해 함수를 호출하면서 학습을 시키고 100번 실행마다 업데이트 된 모델 값을 출력한다.
최종적으로 모델이 만들어진 다음 만들어진 모델의 정확성을 확인하기 위해 새로운 데이터를 넣어서 확인하는데 이때, 사용되는 Decision Boundary의 값은 0.5이다.
[Summary]
x를 입력 값으로 넣어서 우리가 원하는 0과 1의 값을 구하는 과정을 인공 신경망 구현을 위한 하나의 Component라고 할 수 있다.
'인공지능 > 모두를 위한 딥러닝 시즌 2' 카테고리의 다른 글
application and tips (0) | 2023.08.06 |
---|---|
Softmax Classifier (0) | 2023.08.06 |
Multi variable linear regression (0) | 2023.07.30 |
Liner Regression and How to minimize cost (0) | 2023.07.30 |
Simple Liner Regression (0) | 2023.07.30 |