머신러닝야학-Tensorflow (python) 핵심요약-1

머신러닝 이 머선말이고?

Deel Learning을 Tensorflow로 구현해보자

Tensorflow로 주로 사용하는 Deep Learning Algorithm은
지도 학습(회귀, 분류)을 위한 5가지가 주로 쓰인다.

  1. Decision Tree
  2. Random Forest
  3. KNN
  4. SVM
  5. Neural Network

이런 알고리즘을 구현하기 위한 라이브러리들도 여러가지가 있는데,
TensorFlow, PyTorch, Caffe2, theano 등이 있다.


머신러닝의 프로세스

  1. 과거의 데이터를 준비한다.
  2. 데이터로 모델을 학습(Fit)한다.
  3. 모델의 구조를 만든다.
  4. 모델을 이용한다.

Neural Net (인공 신경망)

사람의 두뇌를 동작하는 방법을 모방해서 기계가 학습할 수 있도록 고안된 Algorithm.


Pandas Library

Python에서 대표적으로 표를 다루는 도구인 pandas 라이브러리를 통해 실습을 진행한다.
pandas의 간단한 사용법을 통해 표를 불러오고, Shape를 확인하고, 원하는 칼럼을 선택하고, 칼럼의 대표 머릿값을 출력하는 등의 기능을 수행할 수 있다.

1
2
3
4
5
파일 읽어오기: read_csv('/경로/파일명.csv')
모양 확인하기: 데이터.shape
칼럼 선택하기: 데이터[['칼럼명1', '칼럼명2', '칼럼명3']]
칼럼 이름 출력하기: 데이터.columns
맨 위 5개 관측치 출력하기: 데이터.head()

모델을 학습시켜 보자.

생활코딩에서 제공하는 예제 코드는 다음과 같다.
각 주석 밑에 수업에서 제공하는 내용들을 첨가해서 설명을 각주로 달겠다.

머신러닝의 프로세스

머신러닝의 프로세스의 단계를 지켜 코드를 짠다.
tensorflow의 오픈소스 신경만 라이브러리 중 하나인 keras를 사용한다.
Keras는 유저가 손쉽게 딥 러닝을 구현할 수 있도록 도와주는 상위 레벨의 인터페이스 혹은 API이다.

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
###########################
# 기본 라이브러리를 불러온다.
import tensorflow as tf
import pandas as pd

###########################
# 데이터를 전처리한다.
파일경로 = 'https://raw.githubusercontent.com/blackdew/tensorflow1/master/csv/lemonade.csv'
레모네이드 = pd.read_csv(파일경로)
레모네이드.head()
# 데이터의 상위 5가지 관측치를 통해 잘 불러와지는지 확인한다


# 종속변수, 독립변수
독립 = 레모네이드[['온도']]
종속 = 레모네이드[['판매량']]
print(독립.shape, 종속.shape)

# 원인과 결과를 입력한다.

###########################
# 모델을 만듭니다.
X = tf.keras.layers.Input(shape=[1])
Y = tf.keras.layers.Dense(1)(X)
model = tf.keras.models.Model(X, Y)
model.compile(loss='mse')

# Tensorflow의 Keras 라이브러리의 Layer에 독립변수, 종속변수를 입력하는데 각각의 shape의 크기에 유의하여 입려개준다.


Loss란?

Epoch의 횟수에 따른 Loss 감소

Loss란 학습된 모델의 예측값과 실제 결과 사이의 차이점을 손쉽게 알아보기 위한 값으로,

Loss = (예측 - 결과)^2 의 평균

그래서 Loss 값이 0에 가까워 질 때, 학습이 잘 되고 있다는 증거이고, 학습을 반복해서 시킴으로써 Loss값을 줄일 수 있다.

1
2
3
4
5
6
7
8
9
10
11
12
###########################
# 모델을 학습시킵니다.
model.fit(독립, 종속, epochs=10)
model.fit(독립, 종속, epochs=1000, verbose=0)

#학습을 시킬때 epochs 값을 조절해가며 학습의 횟수를 설정할 수 있다. verbose = 0을 입력하지 않으면 epoch를 한 번 할때마다 출력값을 반환하지만, verbose=0을 입력해두면 최종 결과값 만을 출력하므로 학습 횟수가 많을 땐, verbose=0 값을 걸어 둔다.

###########################
# 모델을 이용합니다.
print(model.predict(독립))
print(model.predict([[15]]))

결과

실제로 예측을 굉장히 잘 하는 것을 볼 수 있다.

본 실습의 경우엔 독립변수가 하나, 종속변수가 하나이기 때문에 굉장히 단순한 모델이라, 예측값이 실제값과 꽤 많이 비슷한 모델을 학습하는 것을 알 수 있었다.


출처


생활코딩 Deep Learning Tensorflow (python) 강의

https://opentutorials.org/course/4570

생활코딩의 딥러닝 교육컨텐츠는 CCL 라이선스 BY를 따르고 있습니다.

댓글