스마트인재개발원 인공지능 서비스개발자과정의 핵심교육과정인 딥러닝(Deep learning)교육 내용을 공유해보려고 합니다. 딥러닝 교육과정 전에 먼저 머신러닝 교육을 한달정도 받으면서 머신러닝의 개념, 지도학습(분류, 회귀), KNN모델, 결정트리 모델, 랜덤포레스트, 로지스틱, 앙상블, 선형회귀모델, 텍스트마이닝 등 어려운 내용이었지만 분류문제와 회귀문제의 결과값 예측을 할때 어떤 모델을 사용하는게 효율적인지 그리고 예측 성능향상을 위해 하이퍼파라미터값의 조정을 배우며 예측의 정확도를 높이고 오차를 줄일수 있는 방법들을 배우면서 인공지능의 개념과 모델설계방법을 이해하는데 큰 도움을 받게 되었습니다.
1. 딥러닝의 학습과정
딥러닝도 머신러닝 학습과정도 동일하다고 보면 됩니다.
- 문제정의/요구사항 분석
- 데이터수집(공개데이터, 크롤링, 설문조사 등)
- 데이터 전처리(결측치처리, 특성공학)
- 데이터 분석(시각화, EDA)
- 모델 설계
- 모델 학습(Training)
- 모델 평가 (오차, R2, 정확도, F1, entropy 등)
- 예측/추론/인식 등
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%의 오차값이 출력이 되었습니다.
첫 딥러닝 모델설계와 평가를 해보았는데 각 코드의 의미와 모델링 절차를 숙지하면서 공부를 해야겠습니다.
다음 포스팅땐 좀더 발전된 모델설계를 보여드릴수 있도록 노력하겠습니다.
'Learn Coding > 스마트인재개발원(인공지능)' 카테고리의 다른 글
딥러닝(Deep learning) 이론 및 실습#3 - 국비지원무료교육 (0) | 2022.01.02 |
---|---|
딥러닝(Deep learning) 이론 및 실습#2 - 스마트인재개발원 (0) | 2021.12.20 |
머신러닝(Machine Learning) 기초 (0) | 2021.11.18 |
머신러닝을 위한 기초통계 개념정리 (0) | 2021.11.18 |
스마트인재개발원 - 인공지능/빅데이터/IOT교육기관 (0) | 2021.11.16 |
댓글