반응형
250x250
Notice
Recent Posts
Recent Comments
Link
«   2024/10   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
Archives
Today
Total
관리 메뉴

블로그

[딥러닝] #1 회귀 모델링 본문

공부/DL

[딥러닝] #1 회귀 모델링

beenu 2024. 3. 21. 20:26
반응형

[복습]

- 모델의 성능은 오차(error)를 통해 계산됨

- 평가지표

 

- 선형 회귀 모델 : y햇 = w0 + w1x1 + w2x2 + ... + wnxn

- 모델링 코드 순서

 

 

1. 딥러닝 개념 이해

  • 학습 절차
    1. 가중치에 (초기)값을 할당 (초기값은 랜덤으로 할당)
    2. (예측)결과 뽑기
    3. 오차 계산
    4. 오차를 줄이는 방향으로 가중치를 조정
    5. 다시 1단계로 올라가 반복
      • (max iteration에 도달(오차의 변동이 (거의) 없으면 끝))
  • forward propagation, back propagation : 순전파, 역전파 : 오차 줄이는 방향

 

2. Regression

  • 딥러닝은 스케일링 필수
    • Normalization(정규화) : 모든 값의 범위를 0에서 1사이로 변환
    • Standardization(표준화) : 평균 0, 표준편차 1로 변환. 이상치 심할 때 사용
    • 보통 딥러닝에서는 정규화 사용함
  • Process
    • Input -> Task -> ... -> Task -> Output
    • 각 task는 이전 단계의 Output을 Input으로 받아 처리하고 다음 단계로 전달함

 

# 메모리 정리
clear_session()

# Sequential 타입
model = Sequential([Dense(OUTPUT, input_shape = (INPUT, ))])

# 히든 레이어 포함
model2 = Sequential([Dense(OUTPUT, input_shape=(INPUT,), activation='ACTIVATION'),
                     Dense(OUTPUT)])

# 모델 요약
model.summary()
  • 딥러닝 구조
    • Layer : 가중치를 가지고 연산이 이뤄지는 지점
      • Input은 Layer가 아님
      • 제일 마지막 Layer는 Output Layer
    • Hidden Layer
      • Layer를 리스트로 입력해줘야 함
      • input_shape는 첫 번째 Layer에만 지정
      • activation 지정해줘야 함
      • Hidden Layer의 노드 수는 보통 점차 줄여나가지만, 늘렸다가 줄여도 됨
  • 딥러닝 코드 
    •  Dense
      • input_shape : 분석 단위에 대한 shape
      • output : 예측 결과 개수
    • Compile
      • 컴파일(Compile) : 선언된 모델에 몇 가지 설정을 하고 컴퓨터가 이해할 수 있는 형태로 변환하는 작업
      • loss function(오차함수) : 오차 계산을 어떻게 할지 결정, 회귀모델은 보통 mse로 오차 계산
      • optimizer : 오차 최소화를 위해 가중치 조절, 보통 adam 사용
    •  Learning rate
      • 학습률, 가중치 조정 정도
      • 기본값은 0.001
      • 너무 작으면 loss 최솟값에 도달할 때까지 너무 많은 시간이 걸리며 아예 도달하지 못할수도 있음
      • 너무 크면 가중치가 너무 크게 조정되어 loss에 도달하지 못할수도 있음
    • 학습
      • epochs : 가중치 조정 반복 횟수, 전체 데이터를 몇 번 학습할 지 횟수 지정
      • validation_split : train 데이터에서 지정한 만큼을 검증셋으로 분리
    • 학습곡선
      • history : 가중치를 업데이트 할 때마다의 성능을 측정하고 계산된 오차를 기록
      • 바람직한 형태 : Epoch가 증가하면서 Loss가 큰 폭으로 축소하고 감소폭이 줄어들며 완만해지는 형태
      • Loss가 줄어들지만 들쑥날쑥 -> Learning rate 줄이기
      • Loss가 감소하다가 다시 증가 -> 과적합이므로 Epoch와 Learning rate 조정해야 함
  • 활성화 함수 (Activation Function)
    • 현재 레이어(각 노드)의 결과값을 다음 레이어로 어떻게 전달할지 결정/변환해주는 함수
    • 만약 활성화 함수 지정을 안하면 아무리 히든 레이어를 추가해도 그냥 선형모델임
      • 만약 3층 네트워크에 선형함수 h(x)=cx를 활성화 함수 사용하면 y(x) = f(f(f(x)))가 됨
      • 이는 그냥 y(x) = f(x) = ax와 같은 식이므로 a=c3고 은닉층이 없는 네트워크로 표현 가능함
    • Hidden Layer에서는 선형 함수를 비선형 함수로 변환
    • Output Layer에서는 결과값을 다른 값으로 변환해주는 역할
    • 주로 분류모델에서 필요로 함

 

[참고]

https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=handuelly&logNo=221824080339

 

딥러닝 - 활성화 함수(Activation) 종류 및 비교

# 활성화 함수 딥러닝 네트워크에서 노드에 입력된 값들을 비선형 함수에 통과시킨 후 다음 레이어로 전달...

blog.naver.com

 

728x90
반응형