본문 바로가기
● 인공지능, 분석/20.08 생코_머신러닝

생활코딩_Tensorflow_DeepLearning_01

by 0ver-grow 2020. 8. 17.
반응형

이 문제를 해결하기 위해 사용하는 ML알고리즘은 다음과 같다

우리 수업에선 뉴럴네트워크를 사용한다.

불과 몇년 전만해도 사용할 수 없던 기능들

이제는 코드하나로 가능해졌다

바로 라이브러리를 통해서.


목표와 전략

원리, 수학, 코딩, 데이터를 알아야 딥러닝을 구현(코딩)할 수 있다.

딥러닝 입문 순서는 다음과 같다


지도학습의 빅픽쳐

1. 지도학습을 하려면 과거 데이터를 준비해

과거 데이터 속에서 원인(독립변수)과 결과(종속변수)를 인식할 것!

2. 예측하는 모델의 구조 만들기

종속변수, 독립변수의 개수에 따라 모델의 구조가 달라져

3. 데이터를 모델에 딱 맞게 해서 학습(FIT)시킨다.

학습을 통해 모델을 완성한다

예를들어, 온도에 2를 곱하면 매출이란 것을 학습시켜 모델을 만듦

4. 모델을 이용한다.


변수

 

달라질 수 있는 값, 변수

X = 1

X = 2

 

프로그램에서의 변수?

데이터를 담고 있다는 의미가 포함

Data = pd.read_csv(file_path)

 

표에서의 변수

칼럼을 변수라고 한다

관측치에 따라 값이 변한다

 

변수는 관측치에 따라 변수의 의미가 다르다.

대부분의 텍스트, 설명에서 변수라는 단어를 혼용하기에 데이터측면, 프로그램측면에서 사용한 것인지 맥락적으로 파악해야 이해가 가능하다.

 

 

지도학습은 이 2가지 변수(독립/종속)를 구분하는 것에서 시작한다.

Pandas는 Tensorflow와는 무관함

 

활용할 데이터

 

csv란 ,를 이용해서 칼럼들을 구분한 파일. 엑셀과 같은 테이블 프로그램으로 실행하면 표로 나타난다.


7. 레모네이드 판매 예측

 

 


8. 손실의 의미

LOSS를 구해보자

1. 독립,종속 변수 분리 후 모델 제작

2. 모델에 독립 변수 삽입하여 예측결과제작

3. 모델의 정확도를 평가하기 위해 종속변수와 예측결과를 비교

4. 종속변수와 예측결과의 차이를 제곱한 결과를 만들어준다

5. 이 제곱한 결과의 평균이 바로 LOSS

LOSS가 0에 가까울수록 학습이 잘 된 모델.

그래서 Epoch의 매학습진행도(정답정도)를 보며 LOSS가 0에 가까워지고 있는지를 확인하자

LOSS가 원하는 만큼 떨어지는지 확인할 것


9. tensorflow를 써서 레모네이드 판매 예측을 해보자

import tensorflow as tf
import pandas as pd

file_path = "https://raw.githubusercontent.com/blackdew/tensorflow1/master/csv/lemonade.csv"
df = pd.read_csv(file_path)
df.head()

# 종속변수, 독립변수
독립 = df[['온도']]
종속 = df[['판매량']]
print(독립.shape, 종속.shape)

(6, 1) (6, 1)

# model
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')
# verbose = 0를 통해 학습 과정 표시 X
model.fit(독립,종속,epochs=10000, verbose=0)

<tensorflow.python.keras.callbacks.History at 0x7f09d7282dd8>

# 10회 학습하기
model.fit(독립,종속,epochs=10)

loss를 보면 0.0001

 

# 독립변수를 넣어서 종속변수에 가까워졌는지 확인하자
model.predict(독립)

# 15도 일 때 몇 개의 레모네이드를 준비해야하나
model.predict([15])

array([[30.018724]], dtype=float32)

 


 

반응형