진박사의 일상

Keras와 딥러닝에 대하여 본문

프로그래밍/딥러닝(Keras)

Keras와 딥러닝에 대하여

진박사. 2021. 4. 29. 17:13

졸프 관련해서 정리한 Keras와 딥러닝 학습 방법에 대한 개요를 정리해본다.

아직 학기중이라 정리하고 하는 것이 미숙하기도 하고 시간도 부족하지만 차근차근 정리해나가야지...

 

1. 목차

딥러닝과 Keras

딥러닝 모델을 짜는 순서

  •문제 정의 및 데이터세트 준비

  •평가 방법 선택

  •데이터 전처리

  •모델 구성하기

  •과대적합 최소화

 

2. 딥러닝과 Keras

딥러닝이란 머신러닝의 하위 분류로 신경망을 통해 주어진 훈련 데이터를 기반으로 모델을 학습시켜 실제 데이터의 예측을 하는 기법이다.

이를 위해 문제를 분석하여 알맞은 활성화함수, 손실함수 등을 선택하고, 입력 데이터를 알맞은 형태로 전처리, (Layer)을 조합하여 모델을 구성, 검증 결과를 분석하여 과대적합을 규제하는 과정 등이 필요하다.

Keras는 이 모델을 간편하게 만들고 훈련시키기 위한 파이썬 기반 딥러닝 프레임워크로 다음과 같은 특징이 있다.

  •동일 코드로 GPUCPU 호환 가능

  •저수준의 텐서 연산 대신 고수준의 구성 요소를 제공하여 모델 구성이 쉽고 Tensorflow 등 다양한 백엔드 엔진에 연동이 가능

  •CNN, RNN 등을 지원하고 자유롭게 조합할 수 있으며 GAN, NTM 등의 기법까지 확장 가능

 

3. 딥러닝 모델을 짜는 순서

- 문제 정의 및 데이터세트 준비

입력 데이터(훈련 데이터와 레이블 셋)을 수집

해결해야 하는 문제의 종류를 파악

  •이진 분류 – 0, 1로 구별이 되는 분류 문제 (ex. vs고양이 분류)

  •다중 분류 여러가지 레이블로 구별되는 분류 문제 (ex. MNIST)

  •회귀 과거 데이터를 토대로 미래 데이터를 예측

  •다중 레이블 다중 분류 하나의 입력 데이터에 여러 개의 레이블이 할당되는 분류 문제 (ex. 이미지 속 물체 판독)

  •군집같은 속성의 데이터끼리 군집화(Classification)

 

적합한 모델을 고른다.

  •DNN(Deep Neural Network)

    •Hidden Layer의 수를 늘려서 학습하는 신경망 모델

    •가장 기본적인 신경망 모델로 CNNRNN의 기본이 되는 모델

  •CNN(Convolution Neural Network)

    •ConvolutionPooling을 통해 데이터의 특징을 추출하는 모델

    •입력 데이터가 이미지인 문제에 효과적인 신경망 모델

  •RNN(Reccurent Neural Network) 

    •순차 데이터에 특화된 신경망 모델

    •대표적인 모델로 LSTM(Long Short-Term Memory)과 GRU(Gated Recurrent Unit) 등이 있다.

 

- 평가 방법 선택

모델의 유효성을 측정할 지표를 설정

  •일반적으로 정확도, 정밀도, 재현율 등이 있다.

평가방법 선택

  •샘플 수가 많을 경우 검증셋을 분리하여 학습

  •샘플 수가 적을 경우 K-겹 교차 검증을 고려(비용 +)

 

- 데이터 전처리

데이터 텐서(Tensor)& 정규화

  •데이터를 변형하여 모델에 맞는 크기의 텐서로 변환하고 각 특성의 스케일이 크게 차이날 경우 작은 값(0~1)으로 정규화한다.

특성공학을 통해 유용한 특성을 선택하고 불필요한 특성을 추출한다.

 

- 모델 구성하기

주어진 문제 유형에 맞는 활성화 함수(Activation Function), 손실 함수(Loss Function), 옵티마이저를 설정한다.

  •일반적으로 이진 분류의 경우 sigmoid, 다중 분류의 경우 softmax를 활성화 함수로 사용

검증 데이터에 과대 적합할 수 있는 모델을 구성

  •층수 추가, 층의 크기 증가, 에포크 수 증가 등

 

- 과대적합 최소화

검증 데이터에 과대 적합된 모델을 규제하여 실제 테스트 데이터에서 잘 적용될 수 있도록 하이퍼파라미터를 튜닝

  •다른 모델을 시도

  •드롭 아웃 레이어 추가

  •유닛수나 옵티마이저 학습률 등의 변경

  •특성공학

  •가중치 규제 (L1 규제, L2 규제) 추가

 

 

----------------------------------------------------------------

빠진 내용도 많고 정리되지 않은 부분도 많지만 전체적인 흐름과 맥락을 잡는 목적으로..