모두를 위한 딥러닝 시즌2 - TensorFlow

Lab-07-1 application and tips

sososoy 2021. 11. 3. 02:15

<Lab 7에서 다룰 내용들>

  • Learning rate 값을 어떤 식으로 조정해야 하는가?
  • 학습 시킬 data에 대해 어떻게 preprocesssing 할 지? + 그 기법들
  • 학습 시에는 잘 되었지만, 새로운 데이터에서는 잘 안 될 때 = Overfitting

Learning rate = Gradient = 기울기

learningrate와 기울기의 연관 관계에 대하여 조절을 통해 최적의 cost를 지닌 모델을 찾는다.

 

텐서플로우에서 loss_value = cost

가설 값과 실제 값의 비교를 통해 도출

tape.gradient를 통해 업데이트한다.

어떤 learning rate 쓸 지 Optimizer 함수를 통해 설정.

 

gradient: 각 위치별로 기울기 값이 나옴

vs

learning rate: 한 번에 얼만큼 이동할 지 / 어떻게 설정하냐에 따라 학습할 때 다양한 결과 값이 나온다. 

이는 학습 성능까지 영향을 미친다. 

너무 클 시: Overshooting!

너무 작을 시: 너무 오래 걸림

Adam의 주장: 3e-4 값인 0.0003이 최적의 learning rate값

 

텐서플로우: optimizer 선언 후 learning rate를 0.01로 설정. 이때 Adam은 3e-4를 사용할 것.

 

Train Log를 살펴보면 Loss값이 점점 감소하는데, 이는 good learning rate -> learning rate를 잘 설정했다는 뜻이다. 

중간중간 learning rate 조절을 통해 더 이상 떨어지지 않을 때 decay를 시켜 cost를 최소화한다.

decay의 기법

(1) Step decay

(2) Exponential decay

(3) 1/t decay

 

exponential decay를 통해 50 literation마다 learning rate 값이 바뀌는 모습을 볼 수 있다.

 

Data preprocessing 데이터 전처리 기법 중 하나

Feature Scaling

데이터를 나타내기 위해 밀집된 데이터를 바탕으로 처리한다.

두 가지 기법

(1) 표준화 Standardization (Mean Distance - 평균에서 얼마나 떨어졌는가?)

(2) 정규화 Normalization (데이터를 0-1사이의 값으로 바꿈)

Noisy Data

- 지저분한 데이터를 없애는 것이 중요!

 

<수치형 데이터>

유치원의 기록 vs 어른의 기록 -> 이때 유치원 데이터만 필요할 때 어른의 기록은 Noisy data! 없애주어야 함!

=> 전처리를 통해 해결!

 

<자연어 데이터>

- 전처리: 최근 챗봇에서 자연어 처리 자주 사용함.

조동사, 조사, 특수문자: 머신러닝 모델을 만드는 데 있어 필요한 정보는 아님. -> Noisy Data!

 

<이미지 데이터>

- 얼굴 인식을 위한 이미지 분류 모델

머리스타일, 배경 등 -> Noisy Data!

 

 

 

 

 

 

 

출처: https://youtu.be/M6H3SGk2ddU

이미지 출처: http://bit.ly/2LQMKvk