본문 바로가기
Learn Coding/스마트인재개발원(인공지능)

딥러닝(Deep learning) 이론 및 실습#1 - 스마트인재개발원

by 북극성매니아 2021. 12. 19.
반응형

deep learning image

 

스마트인재개발원 인공지능 서비스개발자과정의 핵심교육과정인 딥러닝(Deep learning)교육 내용을 공유해보려고 합니다. 딥러닝 교육과정 전에 먼저 머신러닝 교육을 한달정도 받으면서 머신러닝의 개념, 지도학습(분류, 회귀), KNN모델, 결정트리 모델, 랜덤포레스트, 로지스틱, 앙상블, 선형회귀모델, 텍스트마이닝 등 어려운 내용이었지만 분류문제와 회귀문제의 결과값 예측을 할때 어떤 모델을 사용하는게 효율적인지 그리고 예측 성능향상을 위해 하이퍼파라미터값의 조정을 배우며 예측의 정확도를 높이고 오차를 줄일수 있는 방법들을 배우면서 인공지능의 개념과 모델설계방법을 이해하는데 큰 도움을 받게 되었습니다.

 

1. 딥러닝의 학습과정

딥러닝도 머신러닝 학습과정도 동일하다고 보면 됩니다.

  1. 문제정의/요구사항 분석
  2. 데이터수집(공개데이터, 크롤링, 설문조사 등)
  3. 데이터 전처리(결측치처리, 특성공학)
  4. 데이터 분석(시각화, EDA)
  5. 모델 설계
  6. 모델 학습(Training)
  7. 모델 평가 (오차, R2, 정확도, F1, entropy 등)
  8. 예측/추론/인식 등

 

2. 딥러닝 실습

실습으로 사이킷런의 데이터셋에서 기본 제공하는 와인 데이터(레드와인 과 화이트와인 판별)를 사용하였습니다.

 

1. 문제정의

: 데이터를 분석하여 레드와인과 화이트와인 판별하기

 

2. 데이터 수집 

: sklearn dataset에서 wine 데이터 수집

 

from sklearn import datasets
wine = datasets.load_wine()
wine.keys()

 

 

# 분석에 사용할 데이터 확인
wine['data']

 

 

# 데이터의 특성(컬럼) 확인
wine['feature_names']

 

 

3. 데이터전처리

wine 데이터는 정제된 데이터로 구성되 있어서 특별한 전처리의 필요는 없으면 문제데이터와 정답데이터로 분리작업만 진행하면 됩니다.

import pandas as pd
X = pd.DataFrame(wine['data'], columns=wine['feature_names']
y = wine['target']

 

4. EDA 및 시각화 생략

 

5. 모델 설계

모델설계시 Dense는 뉴런(퍼셉트론)의 수(생각하는 가짓수)를 의미, input_dim은 입력하는 데이터의 특징, 컬럼의 수를 의미, activation은 생각하는 방법을 의미합니다.

 

from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense

# 모델 생성
model = Sequential()

model.add(Dense(30, input_dim=13, activation='relu'))
model.add(Dense(12, activation='relu'))
model.add(Dense(3, activation='softmax'))

 

위 코드를 풀어서 설명한다면 첫번째 층은 30개의 뉴런(퍼셉트론), 데이터의 특징 13개, 'relu' 방법으로 생각하고 두번째 층은 12개의 뉴런(퍼셉트론), 'relu'방법으로 생각하고, 세번째 층은 3개의 뉴런, 'softmax'방법으로 생각한다.

 

# 모델 컴파일 : 학습준비
model.compile(
	loss = 'sparse_categorical_crossentropy',
	optimizer = 'adam',
	metrics = ['accuracy']
    )

 

위 코드의 loss는 오차를 어떤 방식으로 계산할것인지를 의미(한번 신경망이 실행될 때마다 오차 값을 추적하는 함수)하고, optimizer는 오차를 어떻게 줄여 나갈지 정하는 함수이며, metircs는 평가방법(정확도)을 의미합니다.

 

6. 모델 학습
# 문제, 정답, 반복할 횟수
model.fit(X,y,epochs=100)

 

 

7. 모델 평가
# 모델 평가
model.evaluate(X,y)

 

최종적을 모델에 문제데이터와 정답데이터를 넣어 평가를 해보니 93%의 정확도와 20%의 오차값이 출력이 되었습니다.

 

첫 딥러닝 모델설계와 평가를 해보았는데 각 코드의 의미와 모델링 절차를 숙지하면서 공부를 해야겠습니다.

다음 포스팅땐 좀더 발전된 모델설계를 보여드릴수 있도록 노력하겠습니다.

 

 

 

스마트인재개발원 홈페이지 : https://www.smhrd.or.kr/

 

스마트인재개발원

4차산업혁명시대를 선도하는 빅데이터, 인공지능, 사물인터넷 전문 '0원' 취업연계교육기관

www.smhrd.or.kr

반응형

댓글