일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 데이터다루기
- 짧은생각
- KT에이블스쿨
- 프로젝트
- deeplearning
- 데이터분석기초
- 데이터
- DX컨설턴트
- 데이터분석가
- 구조
- 파이썬기초
- It
- 교육
- 자기개발
- 데이터프레임
- 인프라
- 데이터분석
- KT에이블스쿨5기
- 머신러닝
- IT인프라
- 딥러닝
- 파이썬
- 정보화
- 넘파이
- MachineLearning
- 아키텍처
- 미니프로젝트
- 데이터다듬기
- 오답노트
- 판다스
- Today
- Total
꾸준히 성장하기
[D+52] 교육 | 딥러닝 기초 개념 본문
오늘은 딥러닝의 기초에 대해 다뤄보고자 합니다.
딥러닝은 막연하게 어렵다고만 생각했던 분야인데,
실제로 코드를 작성하며 학습 절차를 따라가 보니 조금씩 이해가 되기 시작했습니다.
딥러닝과 머신러닝의 기본적인 데이터 처리와 모델링 과정의 차이점부터, 실제 코드를 작성하며 배운 내용들을 정리해보겠습니다.
1. 딥러닝 코드 순서
데이터 전처리: NAN 조치, 가변수화, 스케일링(필수)
모델링: 모델 구조 설정/검증, 학습/학습곡선, 예측 및 검증
이는 머신러닝과 비슷한 점이 많지만, 스케일링이 필수적이라는 점에서 차이가 있습니다.
특히 딥러닝에서는 데이터의 스케일이 모델 성능에 큰 영향을 미칠 수 있기 때문입니다.
2. 딥러닝 학습 절차
1) 초기 가중치 할당: 가중치에 랜덤한 초기값을 할당합니다.
2) 예측 결과 도출
3) 오차 계산: 오차(loss)를 줄이는 역할을 합니다.
4) 가중치 조정: optimizer가 피드백을 통해 오차를 줄이는 방향으로 가중치를 조정합니다.
5) 반복: 위의 단계를 반복합니다.
이 과정을 통해 모델은 점차 최적화되어 가며, 이상적인 예측을 할 수 있게 됩니다.
3-1. 딥러닝 전처리(스케일링)
1) 정규화: MinMaxScaler를 활용하여 데이터의 범위를 0과 1 사이로 변환합니다. 주로 거리기반 알고리즘에 사용됩니다. EX) min-max 스케일링 활용
2) 표준화: 데이터를 평균 0, 표준편차 1로 변환하여 정규분포를 따르도록 합니다.
# 스케일러 선언
scaler = MinMaxScaler()
# train 셋으로 fitting & 적용
x_train = scaler.fit_transform(x_train)
# validation 셋은 적용만
x_val = scaler.transform(x_val)
3-2. Dense
1) input_shape = ( , ): 분석단위에 대한 shape EX) 1차원 : (feature 수, )/ 2차원 : (rows, columns)
2) output: 예측 결과가 1개 변수(y가 1개 변수)
*딥러닝에서 모델을 구성하는 방법 중 하나인 Sequential 모델은 가장 기본적이면서 직관적인 구조입니다.
# 메모리 정리
clear_session()
# Sequential 타입 모델 선언
model = Sequential() model.add(Dense(1, input_shape=(nfeatures,)))
# 모델 요약
model.summary()
3-3. Compile
1) loss function을 선택합니다. 예를 들어, 회귀 모델에서는 주로 mse를 사용합니다.
2) optimizer를 설정합니다. 가중치 조절을 위해 adam이라는 optimizer를 사용할 수 있습니다. learning_rate은 보폭을 의미합니다.
model.compile(optimizer='adam', loss='mse')
3-4. 학습
1) epochs: 가중치 조정의 반복 횟수를 설정합니다. 학습 횟수로 생각하면 됩니다.
2) validation_split: 학습 데이터 중 일부를 검증 데이터로 분리합니다.
history = model.fit(x_train, y_train, epochs=20, validation_split=0.2).history
오늘의 학습을 통해 딥러닝의 기본적인 과정을 체계적으로 이해할 수 있었습니다.
내일은 히든 레이어 등 좀 더 복잡한 구조를 공부해보도록 하겠습니다.
'KT 에이블스쿨 5기 > 교육' 카테고리의 다른 글
[D+55] 교육 | 딥러닝: 이진 분류 모델 (0) | 2024.04.15 |
---|---|
[D+54] 교육 | 딥러닝의 히든 레이어와 회귀 모델의 이해 (0) | 2024.04.14 |
[D+51] 교육 | 머신러닝과 딥러닝 비교(with 지도학습, 비지도학습) (0) | 2024.04.11 |
[D+46] 교육 | 머신러닝: 비지도학습 (0) | 2024.04.06 |
[D+44] 교육 | 머신러닝: 앙상블(Voting, Bagging, Boosting, Stacking) (0) | 2024.04.04 |