1. Dense Layer (Fully Connected Layer)
: 완전히 연결된 레이어
각각의 노드들이 완전히 연결되어있는 레이어 = Dense Layer = Fully Connected Layer = FC
ㅇ 그림에서 보이는 하나의 동그라미는 = 노드 = 뉴런 이라고 한다.
ㅇ 그림에서 각각의 layer 마다 노드의 개수가 다르다. hidden layer1의 Dense는 4
ㅇ input layer로 데이터가 들어와서 output layer로 데이터가 나간다.
ㅇ input layer에서는 input_shape를 명시해 주어야한다.
ㅇ 분류문제의 경우) output layer에서는 분류 class의 개수와 output layer의 노드의 개수가 일치해야한다.
ex) 빨강/노랑/파랑 분류 문제시 output layer의 노드수는 3개
2. 위 그림의 모델을 코드화 해본다면 다음과 같다
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)
model = Sequential([
Dense(3, input_shape=[1]),
Dense(4),
Dense(4),
Dense(1),
])
3. 컴파일하기 (optimizer와 loss 반드시 지정)
optimizer : 알고리즘, 어떤 알고리즘을 사용하여서 오차를 줄여나갈 것인가?
ex) sgd : Stochastic Gradient Descent
loss : 오차값
ex) mse : mean squered error
model.compile(optimizer='sgd', loss='mse')
4. 학습하기
순서대로 input 데이터 / output 데이터 / 학습시킬 횟수 / 진행상황 안보여줌
model.fit(xs, ys, epochs=1200, verbose=0)
5. 예측하기
# output
# 16.000046
model.predict([10.0])
결과적으로 y=x+6 일차함수를 예측하는 모델이므로 10을 넣었을때 y값이 16으로 잘 나오는 것을 확인할 수 있다.
'AI' 카테고리의 다른 글
[Tensorflow 자격증 공부] 선형함수와 오차 (0) | 2022.01.06 |
---|---|
[Tensorflow 자격증 공부] 스케일링/원핫인코딩/relu/loss함수/compile/체크포인트 (0) | 2022.01.05 |
[AI] 머신러닝을 위한 데이터 준비 (0) | 2022.01.04 |
[AI] 머신러닝의 개념과 요소 (0) | 2022.01.04 |
[AI] 머신러닝을 위한 모델구축 및 평가과정 (0) | 2021.12.14 |