FNN 활용

유전자 분석을 통한 암 진단

신경망 구조

  • 4층 짜리 FNN
  • 입력층의 사이즈도 커지기에 2층과 3층에는 드롭아웃을 적용한다.
  • 4개의 암 카테고리를 분류하기 위해 4로 지정 및 소프트맥스를 적용
층수종류크기활성화 함수
1층FNN20000-
2층FNN2048ReLu
-Dropoutrate=0.5-
3층FNN256ReLu
-Dropoutrate=0.5-
4층FNN4Softmax

딥러닝 모델 코딩

"""
Author : Byunghyun Ban
"""
from tensorflow import keras
import data_reader

# 몇 에포크 만큼 학습을 시킬 것인지 결정합니다.
EPOCHS = 20  # 예제 기본값은 20입니다.

# 데이터를 읽어옵니다.
dr = data_reader.DataReader()

# 인공신경망을 제작합니다.
model = keras.Sequential([
    keras.layers.Dense(20000),
    keras.layers.Dense(2048, activation="relu"),
    keras.layers.Dropout(rate=0.5),
    keras.layers.Dense(256, activation="relu"),
    keras.layers.Dropout(rate=0.5),
    keras.layers.Dense(4, activation='softmax')
])

# 인공신경망을 컴파일합니다.
model.compile(optimizer="adam", metrics=["accuracy"],
              loss="sparse_categorical_crossentropy")

# 인공신경망을 학습시킵니다.
print("\n\n************ TRAINING START ************ ")
early_stop = keras.callbacks.EarlyStopping(monitor='val_loss', patience=10)
history = model.fit(dr.train_X, dr.train_Y, epochs=EPOCHS,
                    validation_data=(dr.test_X, dr.test_Y),
                    callbacks=[early_stop])

# 학습 결과를 그래프로 출력합니다.
data_reader.draw_graph(history)

BMI분석을 위한 키,체중 추론

신경망 구조

  • 4층 짜리 FNN
  • 입력층의 사이즈도 커지기에 2층과 3층에는 드롭아웃을 적용한다.
  • 4개의 암 카테고리를 분류하기 위해 4로 지정 및 소프트맥스를 적용
층수종류크기활성화 함수
1층FNN6없음
2층FNN256ReLu
3층FNN256ReLu
4층FNN256ReLu
5층FNN256ReLu
6층FNN2sigmoid

딥러닝 모델 코딩

"""
Author : Byunghyun Ban
"""
from tensorflow import keras
import data_reader

# 몇 에포크 만큼 학습을 시킬 것인지 결정합니다.
EPOCHS = 50  # 예제 기본값은 50입니다.

# 데이터를 읽어옵니다.
dr = data_reader.DataReader()

# 인공신경망을 제작합니다.
model = keras.Sequential([
    keras.layers.Dense(6),
    keras.layers.Dense(256, activation="relu"),
    keras.layers.Dense(256, activation="relu"),
    keras.layers.Dense(256, activation="relu"),
    keras.layers.Dense(256, activation="relu"),
    keras.layers.Dense(2, activation='sigmoid')
])

# 인공신경망을 컴파일합니다.
model.compile(optimizer="adam", loss="mse", metrics=['mae'])

# 인공신경망을 학습시킵니다.
print("\n\n************ TRAINING START ************ ")
early_stop = keras.callbacks.EarlyStopping(monitor='val_loss', patience=10)
history = model.fit(dr.train_X, dr.train_Y, epochs=EPOCHS,
                    validation_data=(dr.test_X, dr.test_Y),
                    callbacks=[early_stop])

# 학습 결과를 그래프로 출력합니다.
data_reader.draw_graph(model(dr.test_X), dr.test_Y, history)

좋은 웹페이지 즐겨찾기