[AIVLE SCHOOL] 딥러닝(1)

춤추는 머쉬룸·2024년 10월 30일

AIVLE SCHOOL 6기

목록 보기
58/80
post-thumbnail

10/30 1, 2, 3세션

A. 딥러닝이란

  • 뇌 세포 (뉴런) 은 다음 뉴런과 연결되는데, 학습을 통해 연결의 강도를 조정 (가중치)
  • 인공신경망 : 신경망을 인공적으로 구현
  • 보편 근사 정리 : 어떤 연속 함수든, 모두 뉴럴넷으로 구현할 수 있다
  • 생성형 AI의 기본은 Transformer 구조
  • 최근의 AI 연구는 대부분 딥러닝 기반
  • 파이썬 딥러닝 라이브러리로는 TensorFlow, Pytorch, keras(TensorFlow 라이트 버전) 등이 있다.

A-1. 딥러닝 개념

가중치

  • 평균은 모두 같은 가중치를 가지고 있다.
  • 최적의 모델은 오차가 가장 적은 모델
  • 조금씩 weight 를 조정하면서 오차가 줄어드는 지 확인
  • 학습 == 가중치를 찾는 것

학습 절차

  • model.fit()을 하면,
  1. 가중치에 초기값을 할당
  2. 예측 결과를 뽑음
  3. 오차 계산 (실제 값 - 예측 값)
  4. 오차를 줄이는 방향으로 가중치 조정
  5. 1~4를 반복

Optimizer : 가중치를 조절하는 역할 (adam, GD 등)

Hypter Parameter

  • epochs : 반복 횟수
  • learning rate : 보폭. 얼만큼 조절할 지

A-2. 딥러닝 구조

  • Input -> Task1 -> Task2 -> TaskN -> Output
  • Task 레이어는 Hidden Layer 라고 한다

Dense

  • Input : Input(shape=(, )) : 분석 단위에 대한 Shape
  • Output : Dense(n) : 예측 결과가 n개 변수 (y가 n개)
  • Param : 가중치 (= 파라미터). 커지면 모델이 커진(복잡해진)다.

컴파일

  • 선언된 모델에 대해 몇 가지 설정을 한 후, 컴퓨터가 이해할 수 있는 형태로 변환하는 작업
  • optimizer : 오차를 최소화하도록 가중치를 업데이트. adam 이 가장 좋음.
  • loss : 오차 함수 (회귀 : mse / 분류 : cross entropy)

Learning rate

  • 학습률
  • 가중치 조정 정도

학습

  • validation_split : 검증셋 분리

학습 곡선

  • 모델의 오차가 줄어드는 과정을 그린 그래프
  • 초기 epoch 에서는 오차가 크게 줄음
  • 오차 하락이 꺾이는 구간 존재. (elbow)
  • 점차 완만해짐

참고
모델을 처음 선언하면 가중치가 random 이지만 한 번 선언한 후 재학습시키면 이전 가중치에서 시작해서 계속해서 학습한다.


B. Hidden Layer

Input과 Output 사이의 Layer

model3 = Sequential([Input(shape=(nfeatures, )),
						Dense(2, activation = 'relu'),
						Dense(1)])
  • Input shape는 첫번째 layer 만 필요
  • Activation : 활성함수. 보통 relu를 많이 사용

B-1. Activation Function

= 활성화 함수

  • 현재 레이어의 결과값을 다음 레이어로 어떻게 전달할지 결정/변환하는 함수

B-2. 파라미터 개수 세기

1층 (Input)2층 (Hidden)3층 (output)
1221

이라고 할 때, 모든 층에는 절편 값 (bias) 가 하나 더 붙는다
그러므로, 1층의 결과는 (12+1) * 2 = 26
2층의 결과는 2+1 = 3이다.
모두 합하면 29이다.


기타) MAPE 가 크게 나오는 이유

MAPE는 오차율의 절대값들의 합을 개수로 나눈 것이다.
그런데 0은 나눌 수 없다. 실제값이 0이면 계산이 불가능한것.
대신에 분모가 0이면 0이 아닌 아주 작은 다른 값으로 나눈다.
그래서 MAPE가 아주 큰 수가 나온다.

0개의 댓글