FNN利用

12351 ワード

遺伝子分析で癌を診断する


ニューラルネットワーク構造

  • 四層FNN
  • 入力層のサイズも大きくなるので、2層と3層でプルダウンメニューを使います.
  • 4カテゴリを4に指定し、ソフトMaxを適用して
  • を分類します.
    層数タイプサイズ活性化関数1層FNN 2000-2層FN 2048 Relu-Droputrate=0.5-3層FN 256 Relu-Droputrate=0.5-4層FNN 4 Softmax

    深さ学習モデル符号化

    """
    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分析に用いられる


    ニューラルネットワーク構造

  • 四層FNN
  • 入力層のサイズも大きくなるので、2層と3層でプルダウンメニューを使います.
  • 4カテゴリを4に指定し、ソフトMaxを適用して
  • を分類します.
    層数タイプサイズ活性化関数1層FNN 6無2層FN 256 RELU 3層FN 256 RELU 4層FN 256 RELU 5層FN 256 RELU 6層FNN 22 sigmoid

    深さ学習モデル符号化

    """
    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)