"Google ๊ณต์ธ! ํ ์ํ๋ก(TensorFlow) ๊ฐ๋ฐ์ ์๊ฒฉ์ฆ ์ทจ๋" ๋ด์ฉ์ ์ธ์ฉํ์ต๋๋ค.
Google Colab ์ฌ์ฉํ๊ธฐ
: GPU ์ง์(๋ฅ๋ฌ๋ ์ค์ต ํ๊ฒฝ ์ง์)
1. Tool
- ํ ์ํ๋ก์ฐ(Tensorflow): ์ค๋ฌด์์ ๋ง์ด ์ฌ์ฉ
- ํ์ดํ ์น(pytorch): Tensorflow์ ํ์ ๋๋-๊น์ ๋ด์ฉ, numpy์ ๋น์ท
- ์ผ๋ผ์ค(Keras): Google์ด ์ธ์ ํ ์ฌ์ฉ ๊ฑฐ์ ์ ํ๋ ์ถ์ธ์
2. ๋ฅ๋ฌ๋(Deep Learning) ํ์ต
- ์ง๋ํ์ต: input, label
- ๋น์ง๋ ํ์ต:input
- input: X, fature, input๋ฐ์ดํฐ
- output: Y. label, output๋ฐ์ดํฐ
(๋ณธ ๊ฐ์์์๋ ์ง๋ํ์ต๋ง ์งํํ ์์ ์)
2.1 ๋ฅ๋ฌ๋ ํ์ต(์คํ) ์์
1. import: ํ์ํ ๋ชจ๋(๋ผ์ด๋ธ๋ฌ๋ฆฌ)๋ฅผ import
2.์ ์ฒ๋ฆฌ: ํ์ต์ ํ์ํ ๋ฐ์ดํฐ ์ ์ฒ๋ฆฌ๋ฅผ ์ํํฉ๋๋ค
3. ๋ชจ๋ธ๋ง(modeling): ๋ชจ๋ธ์ ์ ์ํ๋ค.
4. ์ปดํ์ผ(complie): ๋ชจ๋ธ์ ์์ฑํ๋ค.
5. ํ์ต(fit): ๋ชจ๋ธ์ ํ์ต์ํจ๋ค -optimizer, loss, ..
6.์์ธก(predict): (๊ตฌ๊ธ์ด ์ฑ์ ํด์ ์ด ๊ณผ์ ์ ํ์ ์๊ธด ํ๋ค)
2.2 ์ ํ ํจ์์ ์ค์ฐจ
- ๋์ ์์ธก(๋ชจ๋ธ): y= w * x + b
- loss: Y์์ธก๊ฐ - Y์ค์ ๊ฐ
๊ฐ input์ ์ค์ฐจ๋ฅผ ๊ตฌํ๋๋ฐ, ์ ์ฒด ์ค์ฐจ๋ ์ด ์ค์ฐจ๋ค์ ํฉ์ ๊ตฌํด ๊ณ์ฐํ๋ค.
- loss: -2, 2, 4, 5, -4, -5
- loss์ ํฉ: 0
๊ทธ๋ฐ๋ฐ ์ค์ฐจ๋ฅผ ๊ทธ๋ฅ ๋ค ํฉํด๋ฒ๋ฆฌ๋ฉด 0์ด ๋์ฌ ์ ์๋ค. 0์ด ๋์ค๋ ๊ฒ์ ์ค์ฐจ๊ฐ ์๋ค๋ ๋ป์ด๋๊น 0์ด ๋์ค๋ฉด ์ ๋๋ค.
๋ฐ๋ผ์ ๊ทธ๋ฅ loss์ ํฉ์ ๊ตฌํ๋ฉด ์ ๋๋ค.
- MAE(ํ๊ท ์ ๋๊ฐ ์ค์ฐจ)
- MSE(ํ๊ท ์ ๊ณฑ ์ค์ฐจ)
๋ฅผ ํตํด์ ์ค์ฐจ์ ํฉ์ ๊ตฌํ๋ค.
3. Basic ๋ชจ๋ธ: Dense Layer(Fully Connected Layer)
์์ ํ๊ฒ ์ฐ๊ฒฐ๋ Dense layer๋ (input, hidden, output) 3๊ฐ์ layer๋ก ๊ตฌ์ฑ๋จ
- ๋ ผ๋ฌธ์์๋ Fully Connected Layer๋ผ๊ณ ๋ง์ด ๋ถ๋ฅด์ง๋ง, Tensorflow์์๋ Dense layer๋ผ๊ณ ๋ถ๋ฆ
- hidden layer์ ๊ฒฝ์ฐ black box์๋ ๊ฐ์
- newron(node)์ wight, bias๋ก ๊ตฌ์ฑ๋จ
3.1 Dense Layer ๊ตฌ์ฑ
model = Sequential([
Dense(3, input_shape=[1]),
Dense(4),
Dense(4),
Dense(1),
)]
- Dense layer(์ฒซ ๋ฒ์งธ ์ธต:input layer)๋ถํฐ ์ญ ๋ด๋ ค์ค๋ ํํ์ด๋ค
- input layer์์๋ input _shape๋ฅผ ์ง์ ํด ์ค์ผํ๋ฉฐ, ์ด๋ฅผ ํตํด output๋ฅผ ๋์ถํ๋ค
- Sequential()์ ๋ธ๋ก์ ์๋ฏ์ด layer์ ์์๋๋ก ์์์ฃผ๋ ๊ฒ์ด๋ค
- ๋ง์ง๋ง " , "์ ๊ฒฝ์ฐ ์ ํด๋ ์๊ด ์๋ค
4. Dense Layer ์ค์ต
import numpy as np
import tensorflow as tf
from tensorflow.keras.layers import Dense
from tensorflow.keras.models import Sequential
xs = np.array([-1.0, 0.0, 1.0, 2.0, 3.0, 4.0], dtype=float)
ys = np.array([5.0, 6.0, 7.0, 8.0, 9.0, 10.0], dtype=float)
# ๋ฐ์ดํฐ์ ๋ณต์ก๋๊ฐ ๋จ์ํ ๋, Dense์ unit์ 1๋ก ์ง์
model = Sequential([
Dense(1, input_shape=[1]),
])
4.1 input_shape
listํํ๋ tupleํํ๋ง๊ฐ๋ฅํ๋ค.
- input_shape = [1]
- input_shape = (1, )
input_shape = (1)
ํ๋์ฉ ๋ค์ด๊ฐ๊ธฐ ๋๋ฌธ์ 1์ด๋ค.
- xs = np.array([-1.0, 0.0, 1.0, 2.0, 3.0, 4.0], dtype=float)
- ys = np.array([5.0, 6.0, 7.0, 8.0, 9.0, 10.0], dtype=float)
- ๋ง์ฝ์ 4๊ฐ์ฉ ๋ค์ด๊ฐ๋ค๋ฉด input_shape = [4] ๊ฐ ๋๋ค.
4.2 ์ปดํ์ผ(compile)
: ์ ์ ํ optimizer์ loss ์ ์ ํ๊ธฐ
- regression(ํ๊ท) ์์ธก์ ์ํด์๋ loss=mse๋ฅผ ์ ํ
- optimizer๋ 'sgd'(Stochastic Gradient Descent)
model.compile(optimizer='sgd', loss='mse')
4.3 ํ์ต (fit)
feature, label, epochs ์ง์
- verbose= 0, epochs ํ์ ์ ํจ
- verbose=1, epochs ํ์
model.fit(xs, ys, epochs=1200, verbose=0)
4.4 ์์ธก (Predict)
Predict๋ก ์ ํ์ต์ด ๋์ด์๋์ง ๊ฒ์ฆ
- ์ค์ ์ํ์์๋ ํ์ต๊น์ง๋ง ํ๊ณ ์ ์ถ ์์ธก์ ๊ฒ์ฆํ๋๋ฐ ๋์์ด ๋ง์ด ๋๋ ๊ฒ์ผ ๋ฟ
# output
# 16.000046
model.predict([10.0])
'๐ AI & Bigdata > AI & ML & DL' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[DL] CNN ๋ถ๋ฅ ์ฑ๋ฅ ๋์ด๊ธฐ/ ๋ฐ์ดํฐ ์ฆ๊ฐ, Mix Image (0) | 2022.08.09 |
---|---|
[DL] YOLO- ๋ผ์ฆ๋ฒ ๋ฆฌ ํ์ด๋ฅผ ์ด์ฉํ Object Recognition, Text Recognition -๋ฅ๋ฌ๋ ๊ธฐ์ YOLO ํ์ฉ (0) | 2022.08.09 |
[DL] Faster R-CNN (0) | 2022.08.02 |
[DL] TensorFlow- CNN ์ด๋ฏธ์ง ๋ถ๋ฅ ๋ชจ๋ธ(3) (0) | 2022.08.01 |
[DL] TensorFlow- ์ด๋ฏธ์ง ๋ถ๋ฅ ๋ชจ๋ธ, ์ฌ์ธต์ ๊ฒฝ๋ง ๋ชจ๋ธ(2) (0) | 2022.07.28 |