Autoencoder para anomalias

Marcado: 

Visualizando 3 posts - 1 até 3 (de 3 do total)
  • Autor
    Posts
  • #29006

    Boa noite.

    Para a criação de um autoencoder para detecção de anomalias, basicamente quais seriam as diferenças em relação aos vídeos disponíveis nesse curso?

    Obrigado.

    #29008

    Essa construção que fiz estaria correta para a detecção de anomalias com o autoencoder usando tensorflow/keras?

    ————————————————

    # Preparação para autoencoder

    tamanho = treino.shape[1]
    tamanho

    # Construção das camadas

    input = layers.Input(shape=(tamanho, ))

    encoder = layers.Dense(int(tamanho/2), activation=”relu”)(input)
    encoder = layers.Dense(int(tamanho/5), activation=”relu”)(encoder)
    encoder = layers.Dense(int(tamanho/9), activation=”relu”)(encoder)

    latent = layers.Dense(int(tamanho/12), activation=”relu”)(encoder)

    decoder = layers.Dense(int(tamanho/9), activation=”relu”)(latent)
    decoder = layers.Dense(int(tamanho/5), activation=”relu”)(decoder)
    decoder = layers.Dense(int(tamanho/2), activation=”relu”)(decoder)

    output = layers.Dense(int(tamanho), activation=”sigmoid”)(decoder)

     

    # Criação do modelo

    autoencoder = Model(input, output)
    autoencoder.compile(optimizer=”adam”, loss=”mse”)       ################# usar o MSE seria adequado?

     

    # Treinamento do modelo

    treinamento = autoencoder.fit(treino, treino, epochs=100, batch_size=256, verbose=False, validation_split=0.15)

     

    # Reconstrução da base

    reconstrucao = autoencoder.predict(treino)
    train_loss = tf.keras.losses.mse(reconstrucao, treino)
    plt.hist(train_loss, bins=50)

     

    # Determinação do threshold para identificação de anomalias

    threshold = np.mean(train_loss) + np.std(train_loss)
    threshold

     

    # Atribuição da perda MSE

    dados[“MSE”] = tf.keras.losses.mse(reconstrucao, treino)

     

    # Classificação do outlier

    dados[“Outlier”] = 0
    dados.loc[dados[“MSE”] > threshold, “Outlier”] = 1

    <hr />

     

    Obrigado !

    #29032
    Fábio Spak
    Moderador

    Olá bom dia, infelizmente não conseguimos dar suporte ou ajudar detalhadamente com implementações personalizadas 🙁 Como a demanda no fórum é muito grande, não nos sobra tempo para avaliar/implementar/testar códigos personalizados que fogem das implementações disponíveis no curso. O que podemos fazer é dar algumas dicas e direcionamento de implementações como mostram os links abaixo:

    https://towardsdatascience.com/anomaly-detection-using-autoencoders-5b032178a1ea

    https://keras.io/examples/timeseries/timeseries_anomaly_detection/

    https://www.kaggle.com/robinteuwens/anomaly-detection-with-auto-encoders

    Fabio

Visualizando 3 posts - 1 até 3 (de 3 do total)
  • Você deve fazer login para responder a este tópico.