Categorias
Deep Learning Inteligência Artificial Keras Python

5 Passos para criar seu 1º Projeto de Deep Learning com Python e Keras

Keras é uma biblioteca aberta de Deep Learning implementada utilizando TensorFlow para diversas linguagens/plataformas, como Python e R, como foco na sua facilidade para utilização. Ela permite modelar e treinar modelos de redes neurais com poucas linhas de código, como você verá no tutorial a seguir.

Nesse tutorial, vamos utilizar o Keras para criar um modelo capaz de classificar se membros de uma população indígena possuem ou não diabetes.

Preparações

Para seguir esse projeto, você precisará ter instalados:

  • Python 3;
  • Bibliotecas SciPy e Numpy;
  • Bibliotecas TensorFlow e Keras;
  • Jupyter Notebook;

Alternativamente, você pode realizar este tutorial na plataforma Google Colab, que já possui todas as dependências instaladas e prontas para que você execute o tutorial no seu navegador.

Após isso, basta criar um novo notebook com o título “projeto_deep_learning” (ou qualquer outro nome), e iniciar o tutorial.

 

1. Carregando os dados

Em uma célula, importe as seguintes bibliotecas Python: 

from numpy import loadtxt
import numpy as np
from keras.models import Sequential
from keras.layers import Dense

Na célula seguinte, carregue os dados da base Pima Indians Diabetes. Essa base possui inicialmente 9 colunas, sendo as 8 primeiras as entradas e a última o resultado esperado. Todas as entradas dessa base são numéricas, assim como as saídas, o que facilita a computação dos dados por modelos de Deep Learning.

 # carregue a base de dados
dataset = loadtxt('https://raw.githubusercontent.com/jbrownlee/Datasets/master/pima-indians-diabetes.data.csv', delimiter=',')

 

Em seguida, utilizando a funcionalidade de slice do Python, separe o conjunto de dados entre “Entradas” (X) e “Saídas” (y).

# separe os dados entre entradas (X) e saídas (y)
X = dataset[:,0:8]
y = dataset[:,8]

 

2. Criar o modelo utilizando Keras

Agora que nossos dados foram carregados e ajustados entre entradas e saídas, podemos definir nosso modelo utilizando a biblioteca Keras.

Modelos Keras são definidos como uma sequência de camadas. Nesse tutorial, vamos criar um modelo sequencial e adicionar uma camada de cada.

Primeiramente, precisamos garantir que a camada de entrada tem a quantidade correta de inputs de entrada. Isso pode ser especificado no Keras utilizando o argumento input_dim e o ajustando para 8, nosso número de entradas.

Para esse tutorial, vamos utilizar camadas completamente conectadas, que são definidas no Keras pela classe Dense. Esse projeto utilizará 3 camadas, as quais as duas primeiras utilizarão a função de ativação ReLU e a função Sigmoid na última. Podemos especificar o número de neurônios no primeiro argumento, e a função de ativação com o parâmetro activation.

# definir o modelo com keras
# inicializar o modelo sequencial
model = Sequential()
# inicializar a primeira camada, com 12 neurônios, 8 entradas utilizando a função ReLU
model.add(Dense(12, input_dim=8, activation='relu'))
# inicializar a segunda camada com 8 neurônios e a função ReLU
model.add(Dense(8, activation='relu'))
# inicializar a última camada (camada de saída) com um neurônio e a função Sigmoid
model.add(Dense(1, activation='sigmoid'))

 

3. Compilando o modelo

Com nosso modelo definido, precisamos compilá-lo. A compilação ocorre utilizando bibliotecas como Theano ou TensorFlow, onde a melhor forma de representar a rede para treinar e fazer predições utilizando o hardware disponível é selecionada.

Ao compilar, precisamos especificar algumas propriedades, como a função de perda, otimizador e a métrica que será utilizada para avaliar o modelo. Foge ao escopo do tutorial apresentar esses conceitos, mas vamos utilizar a função de perda de Entropia Cruzada Binária, o otimizador Adam (que utiliza o gradiente descendente) e acurácia como métrica.

# compile the keras model
model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])

 

4. Treinando o modelo

Como nosso modelo definido e compilado, precisamos treiná-lo, ou seja, executar o modelo utilizando nossos dados. Para treinar o modelo, basta chamar a função fit() para o modelo.

O treinamento ocorre através de épocas, e cada época é dividida em lotes, onde uma época é uma passagem por todas as linhas do conjunto de testes, e um lote é composto de uma ou mais amostras (quantidade definida pelo usuário) consideradas pelo modelo antes que seja feita a atualização dos seus pesos.  Aqui, vamos executar 150 épocas com lotes de tamanho 10 (um número considerado pequeno). 

# treinar o modelo keras
model.fit(X, y, epochs=150, batch_size=10)

5. Avaliando o modelo

Agora que estamos com nosso modelo treinado, precisamos avaliá-lo. Essa avaliação vai dizer o quão bem o modelo foi construído utilizando o conjunto de dados de treinamento. Esse pequeno projeto foi construído para ser simples, mas você pode separar os dados entre dados de treinamento e de teste para avaliar o desempenho do modelo com novos dados.

Para avaliar como o modelo se comportou para os dados de treinamento, basta passar os mesmos dados de entrada e saída para a função evaluate() . Essa função retorna uma lista com a perda e a acurácia do modelo para o conjunto de dados.

# avaliando o modelo keras
_, accuracy = model.evaluate(X, y)
print('Acurácia: %.2f' % (accuracy*100))

Conclusão

Com esse tutorial, podemos acompanhar em 5 passos o ciclo de vida de um modelo de Deep Learning, da sua concepção até a sua avaliação. Você pode expandir o que foi feito neste tutorial para, por exemplo, ajustar o modelo (é possível obter uma acurácia maior do que a obtida?), salvar o modelo (para utilização em outros projetos), plotar a curva de aprendizado, entre outras ideias.

 

Para mais tutoriais, continue atento ao nosso Blog.

 

Este texto foi baseado no tutorial disponibilizado em: Your First Deep Learning Project in Python with Keras Step-By-Step

 

 

Categorias
Ciência de Dados

8 dicas para você ingressar na área de Data Science

Em muitos momentos de nossa carreira, e muito mais no início, o que mais queremos é poder conversar com profissionais presentes há mais tempo no mercado e conhecer suas experiências na área. O cientista de dados do Insight Lab, Valmiro Ribeiro, mestre em Sistemas e Computação, Inteligência Artificial e Processamento de Imagens pela UFRN, selecionou oito dicas fundamentais para quem quer se especializar na área de Ciência de Dados.

A partir daqui, a conversa é com Valmiro Ribeiro:

 

Uma pergunta bastante comum feita para um cientista de dados é: Como posso me tornar um cientista de dados? 

Uma resposta adequada para essa pergunta deve levar em consideração vários fatores, como a área de atuação, afinidade com matemática, afinidade com modelagem de problemas, etc. Contudo, apesar de não existir uma resposta definitiva, aqui vão algumas dicas que julgo essenciais tanto para quem está começando na área quanto para aqueles que já possuem experiência.

1 – Domine a base de conhecimentos da área

É comum na área de ciência de dados que os profissionais possuam backgrounds em diferentes áreas, mas independente de qual área eles tenham vindo, todos devem dominar os conhecimentos básicos da área. Conhecimentos de Programação, Algoritmos e Estruturas de Dados, Aprendizado de Máquinas, Estatística, Probabilidade, Álgebra Linear, Raciocínio Lógico e Banco de Dados são indispensáveis. 

2 – Crie um portfólio

A maneira mais fácil de provar para o mundo seus conhecimentos em Data Science é ter um bom portfólio, pois através dele você poderá demonstrar seu conhecimento prático na área. O Github é frequentemente utilizado por cientistas de dados como portfólio, onde são publicados projetos acadêmicos e pessoais, resoluções de desafios conhecidos  e soluções resultantes de competições de Data Science, como Hackathons e as competições do Kaggle. Existem outras práticas comuns, mas o principal ponto sempre deve ser mostrar seus conhecimentos para o mundo.

3 – Saiba quais são seus pontos fortes, e principalmente os fracos

Como dito antes, é comum na área de Data Science que as pessoas possuam backgrounds diferentes, e isso faz com que os pontos fortes e pontos fracos de cada um sejam diferentes entre si. Um estatístico pode não ter conhecimentos vastos sobre Banco de Dados, assim como um biotecnologista pode não ser tão bom com Estatística. Dito isso, conhecer suas qualidades e defeitos como cientista de dados é primordial, pois assim você poderá trabalhar em suprimir essas fraquezas e também saberá como pode contribuir melhor nos projetos que você se envolve. 

4 – Estude o domínio dos problemas

Um cientista de dados é responsável, entre outras coisas, por extrair informações, validar, descartar e criar hipóteses a respeito dos dados, e isso não é possível sem conhecer o domínio do problema que está sendo abordado. Conhecer o problema permite interpretar dados e resultados de maneira mais eficiente, melhorando todos os processos do ciclo de vida de um projeto de Data Science.

5 – Saiba se comunicar

Cientistas de Dados precisam ser bons contadores de história. Habilidades de comunicação são indispensáveis para quem deseja ingressar nessa carreira, afinal, você precisa traduzir suas descobertas para comunicá-las de forma clara para os outros envolvidos nos projetos. Aqui as competências técnicas e interpessoais andam de mãos dadas.  Você deve saber utilizar ferramentas de visualização de dados de maneira efetiva, criando gráficos e tabelas que possam comunicar as suas ideias, ao mesmo tempo que você precisa saber apresentar suas ideias, problemas e resultados para pessoas diferentes. 

6 – Participe de competições

Todos os pontos mencionados anteriormente se encontram aqui, pois provavelmente é participando de competições de Data Science que você terá suas primeiras experiências resolvendo problemas reais. Competições, como as do Kaggle e dos hackathons, permitem que você aplique e expanda seus conhecimentos além da teoria, incrementam seu portfólio, permitem que você estude problemas em contextos reais e requerem que você comunique seus resultados de forma clara com uma comunidade, além de permitir que você aprenda novas técnicas/ferramentas e realize uma autoavaliação no fim do processo.

7 – Faça Networking

Conhecer outras pessoas da área (ou de áreas correlacionadas) é fundamental porque te ajuda a conhecer novas ferramentas e pegar dicas com pessoas com experiências diferentes, além de ser uma boa forma de divulgar seu portfólio e compartilhar seus conhecimentos. Lembre-se que um cientista de dados dificilmente trabalhará sozinho, por isso, é importante participar de grupos de estudo, de meet-ups e de comunidades de Data Science para fazer networking.

8 – Continue aprendendo e tentando

Talvez a parte mais difícil de ingressar na área seja manter-se constantemente aprendendo e tentando coisas novas diante dos desafios. Para isso, é preciso ser resiliente e não desistir com o surgimento de novos obstáculos. Você vai começar sem entender muitas coisas, participará de competições sem obter resultados que você julgue satisfatórios, vai reprovar em seleções de emprego, mas tudo isso faz parte da jornada. O importante nessa etapa é usar essas experiências para organizar-se e cobrir seus pontos fracos e melhorar seus pontos fortes.

 

Creio que essas dicas tenham deixado claro que o caminho para se tornar um cientista de dados não envolve apenas competências técnicas, mas também várias habilidades interpessoais, as quais podem ser subestimadas inicialmente.

Finalmente, se você tem interesse de ingressar na área e/ou aprofundar seus conhecimentos, continue acompanhando nossas matérias! Bons estudos!

Sair da versão mobile