HeYStRanGeR
article thumbnail

(23.11.27)

 

학습

- train data 로 부터 weight, bias (가중치 매개변수) 의 최적값을 얻는 것이다.

===> 신경망이 학습할 수 있도록 하는 지표를 loss function 이라고 한다.

- 학습의 목표: loss function의 결과값을 가장 작게 만드는 weight, bias 를 찾는 것

 

데이터 주도 학습

- 신경망은 end-to-end machine learning 이라고도 한다.

==> 입력부터 출력까지 사람의 개입이 없다는 의미.

 

 

데이터의 구분

: train + test

- train data 를 통해 학습하고, 최적의 weight, bias 를 찾는다.

- test data 를 통해 학습한 모델의 성능을 평가한다.

 

- 하나의 data 로 학습하고, 해당 data 로 평가하면, 그 성능은 당연히 높게 나온다.

==> 새로운 data 가 주어졌을 때에도 모델의 성능이 좋아야한다.

==> train data 에 대해서만 지나치게 최적화된 상태 : overfitting (과적합)

==> train data 에 대해서도 성능이 좋지 못한 상태 : underfitting (과소적합)

 

 

loss function

- 신경망 학습에서 loss function 은 학습 지표이다.

- loss function 의 값이 가장 작아지도록 하는 weight 와 bias 를 찾는다.

- 예시: 오차제곱합, 교차 엔트로피 오차

 

오차제곱합을 loss function 으로 사용했을 때의 loss 값
교차 엔트로피합을 loss function 으로 사용했을 때의 loss 값

 

 

 

mini-batch 학습

- 전체 train data set 에서 일부분만 무작위로 골라서 학습할 때, 골라낸 data set을 mini-batch 라고 한다.

- 이 학습법을 mini-batch 학습이라고 한다.

- mini-batch 학습에 따른 loss function 수식

 

 

 

왜 학습지표로 손실함수를 설정하는가?

- 신경망을 학습할 때, loss function 의 값을 작게 하는 최적의 weight 와 bias 를 찾는다.

- loss function 의 기울기 (미분값) 를 계산해서 loss function 값이 최솟값을 갖도록 기울기의 반대 방향으로 향하게 weight와 bias 를 업데이트 한다.

===> 만약 기울기가 0이면, weight 와 bias 를 업데이트할 수 없게 된다.

- 정확도를 학습지표로 사용하지 않는 이유는 정확도의 기울기가 대부분 0 이기 때문이다.

- 마찬가지로 활성화 함수로 계단함수를 사용하지 않는 이유도 계단 함수의 대부분의 지점이 기울기가 0이기 때문에 weight와 bias 를 업데이트할 수 없기 때문이다.

 

 

 

미분과 경사하강법

- 미분: 어느 시점에서의 변화량

- 편미분: 변수가 여러 개인 함수에 대한 미분 -> 다른 변수는 상수로 취급하여 미분한다.

 

 

경사하강법 - gradient descent

- 기울기를 통해 function의 최솟값을 찾는 방법

- 신경망 (딥러닝) 분야에서는 기울기를 통해 loss function의 최솟값을 구하는 경사하강법을 사용하여 최적의 가중치 매개변수를 찾는다.

 

 

 

신경망에서의 기울기

- 가중치 매개변수 (weight, bias) 에 대한 loss function의 기울기

- 손실함수에 대한 모든 가중치 매개변수의 편미분을 벡터로 모아놓은 것

 

 

 

신경망 학습과정

1. train data 중에서 batch size 만큼만 무작위로 data 를 뽑는다. (mini-batch)

2. mini-batch 의 loss function 을 줄이기 위해 loss function 에 대한 weight, bias 의 기울기 (편미분) 를 구한다.

3. 구한 기울기를 바탕으로 loss function 값이 작아지는 방향으로 weight, bias 를 업데이트한다.

4. 1 ~ 3 단계를 반복한다.

 

===> 확률적으로 무작위로 골라낸 데이터에 대한 학습을 수행한다고 해서 확률적 경사 하강법 (stochastic gradient descent) 라고 부른다.

===> train data 50,000 개 중에서 100개의 mini-batch 를 골라 학습한다면, 1 epoch 은 50,000 / 100 = 500 회 이다.

 

 

 

728x90
profile

HeYStRanGeR

@HeYStRanGeR

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!