Hidden Layer
- x->y 1층 구조가 아니라 x->y 사이에 hidden layer 를 추가하여 y를 가는과정이다
- 중간에 다른 데이터를 만들겠다는 과정
- 딥러닝이 스스로 히든 레이어를 유의미하게 만들었다
- 특징 자동 추출기
- 노드와 레이어 가 적을수록 좋다.
BatchNoramlization
- Batch Normalization을 사용시 backpropagation 할 때 parameter의 scale에 영향을 받지 않게 되며, 따라서, learning rate를 크게 잡을 수 있게 되고 이는 빠른 학습을 가능하게 함.
- Batch Normalization의 경우 자체적인 regularization 효과가 있음.
- Activation 함수 적용전에 사용.
- default = 32
Batch_size
- Batch 크기는 모델 학습 중 parameter를 업데이트할 때 사용할 데이터 개수를 의미합니다.
- 만약 데이터가 100 개고 20개씩 학습을 한다고 하면 batch size = 20 이다.
실습
데이터 준비
import pandas as pd
import tensorflow as tf
path = "https://raw.githubusercontent.com/blackdew/ml-tensorflow/master/data/csv/boston.csv"
data = pd.read_csv(path)
data.head()
x = data[['crim', 'zn', 'indus', 'chas', 'nox', 'rm', 'age', 'dis', 'rad', 'tax',
'ptratio', 'b', 'lstat']]
y = data[['medv']]
모델 준비
X = tf.keras.Input(shape = [13])
H = tf.keras.layers.Dense(5 , activation = "swish")(X)
Y = tf.keras.layers.Dense(1)(H)
model = tf.keras.Model(X,Y)
model.compile(loss = 'mse')
model.summary()
모델 학습
model.fit(x,y,epochs = 1000)
모델 평가
model.predict(x[:10])