딥러닝/데이터분석

Tensorflow - softmax

SolartheNomad 2023. 5. 14. 17:01

1. softmax 함수

- 활성화함수의 일종 

- 어떤 값(score)을 입력했을 때, 그 값이 A, B,C 중 하나로 들어갈 때, 어떤 클래스로 들어가는지에 대한 확률 구하기 

 

2. 크로스 엔트로피

- 손실함수의 일종(cost function)

- 소프트맥스함수와 같이 묶여서 사용될 수 있는 함수이다. 

 

3. One hot Encoding

 

 

4. softmax_cross_entropy_with_logits 함수

 

기본적인 logits

일반적인 cross entropy loss function

softmax_cross_entropy_wity_logits

- 위의 cross entropy loss function을 간소화해서 사용하는 것을 의미한다. 

 

tf.one_hot and reshape

 

class 개수 : 7개 

 

 

Learning rate 조절하기

 

Learning rate 정하기 

-  손실 함수의 최소값을 향해 이동하면서 각 반복에서 단계 크기를 결정하는 최적화 알고리즘의 조정 매개변수

- Learning rate가 높으면 산출되는 결과 속도가 빨라지지만 오류 값을 제대로 산출해내지 못하거나 오버플로우가 발생할 수 있고, 반대로 Learning rate가 너무 낮으면 산출되는 결과 속도가 느려지고 오류 값이 너무 많아져 실행 과정 자체가 멈출 수 있음 

- 처음에 0.01로 시작하여, cost 함수의 값을 관찰한다. 

 

 

data preporcessing(데이터 전처리)

 

1. Standardlization

- 데이터 중심이 0으로 가도록 조정하는 것

 

 

- 어떤 값이 항상 정해진 범위 안에 들어가도록 조정하는 것 

 

 

Overfitting(과적합)

- 학습데이터를 과하게 잘 학습하는 것

- 알고리즘 중 인공신경망 (artificial neural network, ANN) 그리고 서포트 벡터 머신 (support vector machine, SVM)이 가장 과적합을 방지하는 데에 효과적임 

- 학습 데이터 양을 늘릴수록 과적합을 줄일 수 있음 

- 데이터 feature을 줄이기 

- Regularization(일반화시키기)

 

Regularization

- weight를 줄이기 위한 방법 

- cost 함수를 최소화시키는 것 

위의 것을 코드로 구현하면, 다음과 같다.

 

Training data와 Test data의 정의 

 

Trainig, validation, test dataset의 구성