modelo de aprendizado profundo em python com keras

Conteúdo

Este artigo foi publicado como parte do Data Science Blogathon

Introdução

Uma rede neural artificial é um subcampo da inteligência artificial compilado em redes neurais de aprendizado profundo que tenta imitar a rede de neurônios que o cérebro humano produz, permitindo que eles entendam e respondam como um humano.

44394first20keras20model20feature20img-2377445

Tabela de conteúdo

  • Visão geral da rede neural
  • Introdução a Keras
  • Implementação passo a passo do seu primeiro modelo Keras
  • Combinando todo o código
  • EndNote

Breve descrição da rede neural

A rede neural consiste em um conjunto maior de neurônios, chamadas unidades em camadas. Em palavras simples, A Rede Neural é projetada para realizar uma tarefa mais complexa, onde algoritmos de Aprendizado de Máquina não encontram seu uso e não alcançam o desempenho necessário.

As redes neurais são usadas para realizar muitas tarefas complexas, incluindo classificação de imagem, detecção de objeto, identificação de rosto, o resumo do texto, reconhecimento de voz e a lista é infinita.

Como as redes neurais aprendem características complexas? Uma rede neural tem muitas camadas e cada camada executa uma função específica e complexa da rede. Quanto mais camadas são, mais desempenho é recebido. É por isso que a rede neural também é chamada de perceptron multicamadas..

Introdução à Biblioteca Kears

Keras é uma biblioteca de rede neural rápida, Código aberto e fácil de usar, escrito em Python que roda sobre Theano ou Tensorflow. O Tensorflow fornece APIs de baixo e alto nível; de fato, Keras fornece apenas API de alto nível.

Como um iniciante, é recomendado trabalhar primeiro com Keras e depois mover para TensorFlow. O motivo é que usar as funções do Tensorflow como um iniciante é um pouco complexo de entender e interpretar, mas a funcionalidade do Keras é simples.

Crie seu primeiro modelo de rede neural com Keras

Construiremos uma rede neural artificial simples usando Keras passo a passo que o ajudará a criar seu próprio modelo no futuro.

Paso 1) Carregar dados

Usaremos os dados de diabetes dos índios Pima, que você pode baixar em aqui. É um conjunto de dados simples fornecido pelo conjunto de dados UCI Machine Learning, contendo um registro médico de pacientes indianos. Temos que prever se o paciente tem um aparecimento de diabetes dentro do 5 anos.

import pandas as pd
data = pd.read_csv('diabetes.csv')
x = data.drop("Resultado", eixo = 1)
y = dados["Resultado"]
25441diabetes_dataset_img-8297579

É um problema de classificação binária onde temos que dizer se o seu início de diabetes é 1 ou não como 0. Todas as colunas são numéricas, o que facilita a criação direta de uma rede neural em cima dela. Portanto, separamos os dados independentes e dependentes.

Paso 2) Defina o modelo Keras

O modelo em Keras é sempre definido como uma sequência de camadas. Significa que inicializamos o modelo de sequência e adicionamos as camadas uma após a outra, que são executadas como a sequência da lista. Praticamente temos que experimentar o processo de adição e remoção de camadas até estarmos satisfeitos com nossa arquitetura..

O que você precisa cuidar é que a primeira camada tenha o número correto de características de entrada que são especificadas usando o input_dim parâmetro. podemos especificar o número de neurônios como o primeiro argumento de uma camada. para definir a função de ativação use o argumento de ativação.

Neste exemplo, vamos definir uma rede totalmente conectada com três camadas. Para definir a camada totalmente conectada, usar a classe Keras Dense.

  • A primeira camada tem 12 neurônios e ativação funcionam como relu
  • A segunda camada oculta tem 8 neurônios e ativação funcionam como relu
  • Finalmente, na camada de saída, nós usamos 1 unidade e ativação como sigmóide porque é um problema de classificação binária.
de keras.models import Sequential
de keras.layers import Dense
modelo = Sequencial()
model.add(Denso(12, input_dim = 8, ativação ="retomar"))
model.add(Denso(12, ativação ="retomar"))
model.add(Denso(1, ativação ="sigmóide"))

Lembre-se de especificar a forma correta dos dados na primeira camada conhecida como camada de entrada.

Paso 3) Compile o modelo Keras

Quando compilamos o modelo Keras, usar bibliotecas numéricas de back-end como TensorFlow ou Theano. Qualquer back-end que você está usando, escolhe automaticamente a melhor maneira de representar a rede em seu hardware, como CPU, GPU o TPU.

Quando compilamos o modelo, precisamos especificar alguns parâmetros adicionais para avaliar melhor o modelo e encontrar o melhor conjunto de pesos para atribuir entradas a saídas.

  1. Função de perda: a função de perda deve ser especificada para avaliar o conjunto de pesos aos quais o modelo será mapeado. Usaremos a entropia cruzada como uma função de perda que é atualmente conhecida como a entropia cruzada binária usada para classificação binária.
  2. Otimizador: o segundo é o otimizador para otimizar a perda. Usaremos adam, que é uma versão popular de gradiente descendente e oferece o melhor resultado na maioria dos problemas.
model.compile(perda ="binário_crossentropia", otimizador ="Adão", metrics =["precisão"])

Paso 4) Comece a treinar (ajustar o modelo)

Após a compilação bem-sucedida do modelo, estamos prontos para ajustar os dados ao modelo e começar a treinar a rede neural. Além de fornecer dados para modelar, precisamos definir uma série de épocas e um tamanho de lote em que o treinamento ocorre.

  • Época: passagem única por todas as linhas do conjunto de dados de treinamento
  • Tamanho do batch: número de amostras consideradas pelo modelo antes de atualizar os pesos.
model.fit(x,e, épocas = 150, batch_size = 10)

Uma época pode ser composta por mais de um lote. Esses parâmetros são finalmente decididos após o método de teste e calor.

Paso 5) Avalie o modelo

Depois de treinar o modelo, vamos saber o desempenho de uma rede neural. O modelo é sempre avaliado em um conjunto de teste. Neste exemplo, Pela simplicidade, nós treinamos em um conjunto de dados completo, mas ao trabalhar em qualquer projeto, basicamente divide os dados e treina a rede.

_, precisão = modelo.avaliar(x, e)
imprimir("Precisão do modelo: %.2f"% (precisão * 100))

Para avaliar o modelo, usar o método de avaliação e passar a entrada e saída para o modelo e verificar o desempenho.

Paso 6) Faça previsões

prever a saída de novos dados simplesmente usando o método de previsão. temos uma declaração de problema de classificação binária, de modo que a saída será simplesmente 0 o 1.

predictions = model.predict(x)
imprimir([volta(x[0]) para x em previsões])

alternativamente, você também pode usar o predecir_clases função para prever diretamente classes.

Isso está resolvido., nós facilmente criamos uma rede neural com 3 camadas usando apenas algumas linhas de código com Keras.

Compile todo o código em conjunto

modelo = Sequencial()  #define model
model.add(Denso(12, input_dim = 8, ativação ="retomar"))
model.add(Denso(8, ativação ="retomar"))
model.add(Denso(1, ativação ="sigmóide"))
model.compile(perda ="binário_crossentropia", otimizador ="Adão", metrics =["precisão"]) #compile model
model.fit(x,e, épocas = 150, batch_size = 10)  #training
_, precisão = modelo.avaliar(x,e)    #testing
print("Precisão do modelo: %.2f"% (precisão * 100))
predictions = model.predict(x)     #make predictions
#round the prediction
rounded = [volta(x[0]) para x em previsões]

EndNote

Uma rede neural constrói uma rede de camadas conectadas com múltiplos neurônios em cada camada. Conforme aumentamos o número de camadas, a rede é capaz de aprender características mais complexas.

Você criou facilmente seu primeiro modelo de rede neural com Keras. Espero que tenha sido fácil entender todas as coisas. Se você tem alguma dúvida, por favor coméntela. Ficarei feliz em te ajudar.

Se você gostou do artigo, Confira meus outros artigos. Ligação

Assine a nossa newsletter

Nós não enviaremos SPAM para você. Nós odiamos isso tanto quanto você.