Dev/딥러닝

[딥러닝] 개념 이해

#코딩 공부 2024. 10. 10. 13:39

ML vs DL 코드 구조 비교

가중치(weight)

*파라미터(parameter)라기도 함.

 

ex) 1,2,3월의 판매량으로 4월의 판매량 예측

1월 판매량 2월 판매량 3월 판매량  4월 판매량
110 120 125 ?

 

평균 -> 

 

 

가중치 조정

조금씩 weight를 조정해서 오차가 줄어드는지 확인!-> 반복

지정한 횟수만큼 or 더이상 오차가 줄지 않을 때까지

 

DL 학습 절차

1. 가중치 초기값 할당 (초기모델만듦)

2. (초기)모델로 예측

3. 오차를 계산 (loss function)

4. 가중치 조절 : 오차를 줄이기 (optimizer)

 - learning rate(lr): 얼만큼 조절할 지 결정하는 하이퍼파라미터

5. 다시 처음부터 반복

 - batch_size : 전체 데이터를 적절히 나눠서 (mini batch) 반복 

 - epoch: 전체 데이터를 몇번 반복 학습할 지 결정 

 

* feed forward (순전파) : 

  back propagation (역전파) : parameter update

 

DL 학습 절차 예시

ex) lstat(하위계층 비율)로 medv(집값) 예측

 

model.fit(x_train,y_train) 하면 

 

단계1 : 가중치에 (초기)값을 할당 *초기값은 랜덤 지정

단계2 : (예측) 결과를 뽑음

단계3 : 오차 계산 ( 실제 값 - 예측 값) 

단계4 : 오차를 줄이기 위해 가중치 조정

            *Optimizer: GD, Adam ... (조정 비율: learning rate)

단계5 : 다시 단계 1부터 반복

            *max iteration에 도달, 오차 변동이 (거의)없으면 끝

 

ep와 lr 의미

epochs 조절 : 몇번 반복할지 결정

 - ep =5, lr = 0.01

ep:1 -> ep:2 .... 5번 반복함

초기 값은 랜덤으로 할당됨 -> 실행할때마다 결과가 조금씩 달라짐

 

lr 조절 : 가중치 적절하게 조절 , 가중치를 업데이트할 때 영향을 주는 비율

lr를 작게 했더니 엄청 찔금 바뀜

lr 을 크게 했더니 듬성듬석 값이 확 바뀜

조정해가는 보폭이 적절함.