반응형
히든레이어와 멀티레이어의 구조를 이해하고,
히든레이어를 추가한 멀티레이어 인공신경망 모델을 완성
기존에는 퍼셉트론 하나로만 구성되어 있었으나
이제는 퍼셉트론이 깊게 연결된 딥러닝 모델을 제작해본다.
퍼셉트론을 깊게 연결하는 방법은 간단하다.
기존 퍼셉트론을 여러개 연결하면 된다.
입력과 출력 사이에 퍼셉트론을 추가하면 된다.
현재 입력과 출력 사이에 하나의 층을 쌓아서 모델을 구성했다.
추가한 레이어는 5개의 노드를 가졌다.
결과를 만들기 위해선 히든레이어의 모든 값을 입력으로 하는 하나의 퍼셉트론이 필요하다.
히든레이어의 첫번째 결과를 만들기 위해서는 하나의 퍼셉트론이 필요하다.
총 5개의 노드가 있기에 5개의 퍼셉트론이 필요하다.
Boston house price Data
관측치 : 506
독립변수칼럼 : 13
종속변수칼럼 : 1
각각의 모델을 연속적으로 연결하여 하나의 거대한 신경망을 만드는 것이 딥러닝,인공신경망이다.
텐서플로우는 이 구조를 쉽게 만들 수 있게 해준다.
히든레이어를 2개 더 쌓아보자
각 히든레이어는 3개의 노드를 가지고 있다.
실습하기
import tensorflow as tf
import pandas as pd
file_path = 'https://raw.githubusercontent.com/blackdew/tensorflow1/master/csv/boston.csv'
보스턴 = pd.read_csv(file_path)
# 종속변수, 독립변수
독립 = 보스턴[['crim', 'zn', 'indus', 'chas', 'nox',
'rm', 'age', 'dis', 'rad', 'tax',
'ptratio', 'b', 'lstat']]
종속 = 보스턴[['medv']]
print(독립.shape, 종속.shape)
X = tf.keras.layers.Input(shape=[13])
# 10개의 노드를 가진 1개의 인공신경망을 추가.
H = tf.keras.layers.Dense(10,activation='swish')(X)
y = tf.keras.layers.Dense(1)(H)
model = tf.keras.models.Model(X,y)
model.compile(loss='mse')
# Checking Model
model.summary()
model.fit(독립,종속,epochs=1000, verbose=0)
model.fit(독립,종속,epochs=10)
# Using Model
print(model.predict(독립[:5]))
print(종속[:5])
# 아이리스 품종 '분류'
파일경로 = 'https://raw.githubusercontent.com/blackdew/tensorflow1/master/csv/iris.csv'
아이리스 = pd.read_csv(파일경로)
# 원핫인코딩
아이리스 = pd.get_dummies(아이리스)
# 종속변수, 독립변수
독립 = 아이리스[['꽃잎길이', '꽃잎폭', '꽃받침길이', '꽃받침폭']]
종속 = 아이리스[['품종_setosa', '품종_versicolor', '품종_virginica']]
print(독립.shape, 종속.shape)
# Make Model Structure
X = tf.keras.layers.Input(shape=[4])
# Hiden Layer 3, Each Node 8
H = tf.keras.layers.Dense(8, activation="swish")(X)
H = tf.keras.layers.Dense(8, activation="swish")(H)
H = tf.keras.layers.Dense(8, activation='swish')(H)
y = tf.keras.layers.Dense(3,activation='softmax')(H)
model = tf.keras.models.Model(X,y)
model.compile(loss='categorical_crossentropy',
metrics='accuracy')
# Checking Model
model.summary()
# 3.데이터로 모델을 학습(FIT)합니다.
model.fit(독립, 종속, epochs=100)
# 4. Using Model
print(model.predict(독립[:5]))
print(종속[:5])
반응형
'● 인공지능, 분석 > 20.08 생코_머신러닝' 카테고리의 다른 글
생활코딩_Tensorflow_부록2_BatchNormalization layer (0) | 2020.08.21 |
---|---|
생활코딩_Tensorflow_Err (0) | 2020.08.20 |
생활코딩_머신러닝개념_비지도학습/강화학습 (0) | 2020.08.20 |
생활코딩_Tensorflow_Iris_범주형(분류),분류 VS 회귀 (0) | 2020.08.18 |
생활코딩_머신러신개념_분류_지도학습_회귀/분류 (0) | 2020.08.18 |