Categorias
Bolsas Ciência de Dados Inteligência Artificial Não categorizado

Vagas no projeto Anamnese Assistida por Inteligência Artificial para bolsistas de mestrado e doutorado da UFC

O Insight está com inscrições abertas para bolsistas de mestrado e doutorado para o projeto de pesquisa Anamnese Assistida por Inteligência Artificial. Venha fazer parte do nosso time e contribuir com o desenvolvimento de tecnologias de ponta aplicadas aos problemas da sociedade e das organizações. 

Os bolsistas serão  selecionados por mérito acadêmico, tendo em vista o perfil esperado e os requisitos necessários para realização da pesquisa.

 

Projeto Anamnese Assistida por Inleligência Artificial do Centro de Referência em Inteligência Artificial (CEREIA).

O objetivo do centro é desenvolver pesquisas voltadas ao uso da inteligência artificial para a resolução de problemas na área da saúde, bem como promover a formação de profissionais para atender esse mercado. O CEREIA foi inaugurado no dia 20 de março pela FAPESP e o Grupo Hapvida NotreDame Intermédica e ocupará uma área de 380 metros quadrados no quinto andar do Condomínio de Empreendedorismo e Inovação da UFC.

No Brasil são realizadas mais de um bilhão de consultas médicas por ano. Neste contexto, anamnese é uma atividade essencial no atendimento médico. Nela são investigados e documentados episódios e fatos relacionados ao paciente, resumindo suas queixas e provendo um ponto inicial para um diagnóstico e por conseguinte um tratamento. Na maioria dos ambientes de atendimento ao paciente, a anamnese é feita de maneira rudimentar: a investigação depende exclusivamente da habilidade do profissional, a documentação é feita através de textos livres e desestruturados e o possível diagnóstico é também manual e dependente do conhecimento do profissional.

As informações da anamnese e exames complementares são importantes para possíveis diagnósticos. O reconhecimento de padrões (pattern recognition) e de critérios de diagnóstico (combinação de sintomas, sinais e resultados de exames) é usado na determinação de um diagnóstico correto. Dessa forma, é essencial a concepção e o desenvolvimento de soluções baseadas em inteligência artificial para auxiliar os profissionais da área da saúde com o objetivo de melhorar o atendimento e a segurança do paciente, assim como reduzir custos.

Saiba mais sobre o projeto nos portais: FAPESP, UFC e revista Veja Saúde.

Sediado na Universidade Federal do Ceará, grupo pretende desenvolver projetos voltados à aplicação de internet das coisas, big data, transformação digital e tecnologias de ponta na prevenção, diagnóstico e terapias de baixo custo (foto: divulgação/Hapvida NotreDame Intermédica)

Número de Vagas
  • 2 bolsas para Mestrado;
  • 1 bolsa para Doutorado;

 

Período de duração da bolsa

Até 24 meses para bolsa de mestrado e até 48 meses para bolsa de doutorado

 

Modalidade de Contratação

Os valores das bolsas concedidas pela FAPESP estão disponíveis em https://fapesp.br/valores/bolsasnopais;

 

Requisitos:
  • Estar regularmente matriculado no Programa de Mestrado e Doutorado em Ciência da Computação (MDCC) da UFC; 
  • Não ter nenhuma outra bolsa de instituições de fomento, uma vez que não é permitido o acúmulo de bolsas.
  • As bolsas da FAPESP são concedidas em regime de dedicação integral à pesquisa, ficando o Bolsista impedido de:
    • Exercer profissionalmente qualquer outra atividade, remunerada ou não, que não esteja relacionada à execução do projeto de pesquisa aprovado;
    • Ser sócio-gerente ou participar da administração de sociedade privada.

 

Etapas da seleção
Envio do formulário, até: 28/05
Resultado da análise de currículo e histórico 30/05
Resultado final 31/05

 

Inscrição

Acesse o  ➡️ formulário de inscrição para registrar seus dados, enviar seu currículo e histórico escolar. Fique atento às datas e ao seu e-mail.

Categorias
Big Data Ciência de Dados Destaque

Cientista-chefe da Transformação Digital do Governo do Ceará palestra no AWS Public Sector Symposium

Rubem Paulo Saldanha e José Antonio Fernandes de Macêdo integraram o evento “AWS Public Sector Symposium”

 

No dia 09 de maio de 2023 teve lugar no Centro de Eventos Brasil 21, em Brasília, o “AWS Public Sector Symposium”.

Este evento buscou promover a capacitação de agentes, líderes e arquitetos da transformação digital do setor público, a partir de recursos novos e insights com a utilização da tecnologia em nuvem.

“AWS Public Sector Symposium” contou com sessões temáticas em quatro áreas principais: educação, governo e justiça, setor de serviços financeiros e saúde, bem como contribuiu no diálogo de assuntos diretamente relacionados em ajudar organizações do setor público voltadas para serviços governamentais, educacionais, sem fins lucrativos, de saúde e financeiros a explorar o cenário tecnológico.

O Prof. Dr. José Antonio Fernandes de Macêdo (Cientista-chefe da Transformação Digital do Governo do Ceará) foi convidado para participar do referido evento e em sua fala, salientou o papel desafiador em aproximar a discussão acerca dos resultados e impactos alcançados no uso da computação em nuvem na construção da Plataforma Big Data Social, detalhando o Programa Cientista Chefe do Ceará, que contempla a relevante união entre a academia e a gestão pública.

O Programa Cientista Chefe está disponível no site da Fundação Cearense de Apoio ao Desenvolvimento Científico e Tecnológico (Funcap): https://www.funcap.ce.gov.br/programas-de-auxilio/cientista-chefe-geral/

 

Categorias
Ceará Ciência de Dados Webinar

I Congresso Internacional sobre Violência de Gênero: ações estratégicas, políticas públicas e tecnologias

No dia 26 de janeiro de 2023 acontecerá o “I Congresso Internacional sobre Violência de Gênero: ações estratégicas, políticas públicas e tecnologias (I CIVIGE)” com o objetivo de fomentar a promoção da igualdade de gênero, o acesso à informação e a cooperação para o desenvolvimento de uma cultura de paz. Além disso, esse será um momento para capacitar e qualificar o público-alvo mediante o aperfeiçoamento do conhecimento e o debate amplo a respeito de temas atuais.

Na primeira parte do evento, período da manhã, acontecerá o lançamento do livro “Feminicídio: mapeamento, prevenção e tecnologia”, dos autores José Antonio Fernandes de Macêdo, Sílvia Rebeca Sabóia Quezado e Tiago Dias da Silva. No período da tarde, dedicaremos espaço para os debates.

O I CIVIGE é um projeto científico idealizado pela Universidade Federal do Ceará – UFC (Brasil), o Departamento de Computação da UFC (Brasil), o Insight Data Science Lab da UFC (Brasil) e o Laboratório ÍRIS de Inovação e Dados da Casa Civil do Governo do Ceará (Brasil), em parceria com a Universidade Católica Portuguesa | Porto (Portugal) e apoiado pelo Sistema Fecomércio Ceará (Fecomércio/CE), Serviço Nacional de Aprendizagem Comercial (SENAC/CE), Federação das Indústrias do Estado do Ceará (FIEC), Serviço Nacional de Aprendizagem Industrial (SENAI/CE), a Associação Nacional dos Magistrados da Justiça do Trabalho (Anamatra), entre outras instituições nacionais e internacionais.

Neste congresso traremos grandes nomes do pensamento jurídico para o centro dos debates, como: a Vice-Governadora do Ceará, Jade Afonso Romero, o Conselheiro Marcio Luiz Coelho de Freitas, Supervisor da Política Judiciária de Enfrentamento à Violência Contra as Mulheres do Conselho Nacional de Justiça e o Ministro do Tribunal Superior do Trabalho e Coordenador Nacional do Programa Trabalho Seguro da Justiça do Trabalho, Alberto Bastos Balazeiro.

 

 

Conheça os profissionais que participarão do I CIVIGE:

PROGRAMAÇÃO:

09h – Credenciamento

09h30 – Cerimônia de abertura
Jade Afonso Romero (Vice-governadora do Ceará).

10h – Palestra Magna: Política Judiciária Nacional de Enfrentamento Contra a Mulher
Presidente de mesa: Hermano Queiroz Júnior (Presidente da Associação dos Magistrados do Trabalho da 7ª Região – (ANAMATRA VII).
Marcio Luiz Coelho de Freitas (Conselheiro do Conselho Nacional de Justiça, supervisor da Política Judiciária Nacional de Enfrentamento à Violência Contra as Mulheres do CNJ).

10h30 – Lançamento do livro “Feminicídio: mapeamento, prevenção e tecnologia”, dos autores José Antonio Fernandes de Macêdo, Sílvia Rebeca Sabóia Quezado e Tiago Dias da Silva.
Apresentação do livro – Maria Elisabete Ferreira (Professora Auxiliar da Escola do Porto Da Faculdade de Direito da Universidade Católica Portuguesa, Coordenadora da Qualidade da Escola de Direito da Universidade Católica Portuguesa, Investigadora do Católica Research Centre for the Future of Law).

12h às 14h – Intervalo para o almoço

14h – Painel 1: Brasil e Portugal: os reflexos da violência de gênero
Presidente de mesa: Jessika Moreira (Coordenadora-geral do Íris).
Luciana Paula Conforti (Vice-presidente da ANAMATRA e Presidente da Comissão ANAMATRA  Mulheres).
Sandra Tavares (Professora Auxiliar da Escola do Porto da Faculdade de Direito da Universidade Católica Portuguesa).
Ricardo Gleidson de Vasconcelos (Coordenador de Inteligência de Dados do Tribunal de Justiça do Estado do Ceará).

15h20 – Painel 2: A violência de gênero em dados
Presidente de mesa: Rosa Mendonça (Juíza de Direito do Tribunal de Justiça do Estado do Ceará).
José Antonio Fernandes de Macêdo (Cientista-chefe do Governo do Ceará e Professor da Universidade Federal do Ceará).
Sílvia Rebeca Sabóia Quezado (Pesquisadora da Universidade Federal do Ceará).
Tiago Dias da Silva (Juiz de Direito do Tribunal de Justiça do Estado do Ceará).

16h20 – Encerramento
Presidente de mesa: Fábio Zech Sylvestre (Advogado – RZA ADVOGADOS- e Professor Universitário).
Alberto Bastos Balazeiro (Ministro do Tribunal Superior do Trabalho e Coordenador Nacional do Programa Trabalho Seguro da Justiça do Trabalho).

 

Você pode acompanhar o I CIVIGE ao vivo pelo canal Insight Lab no YouTube:
Primeira parte do evento (manhã): https://youtu.be/CT4npyhEu84 

Segunda parte do evento: (tarde): https://youtu.be/XZRGfTGHR34

 

Mais informações:

Data: 26 de janeiro de 2023 (quinta-feira)

Início: 09h 

Público-alvo: comunidade jurídica, sociedade civil, universitários e demais interessados nas temáticas do I CIVIGE.

Carga horária: 08 h/a.

Com emissão de certificado.

Modalidade presencial: auditório do SENAC REFERENCE (Endereço: Av.Desembargador Moreira, 1301, Aldeota, CEP: 60170-001, Fortaleza/CE);

Modalidade à distância: Transmissão Ao Vivo no YouTube no canal Insight Data Science Lab.

 

 

Categorias
Big Data Ciência de Dados Cientista-chefe

Plataforma Big Data Social é Apresentada no I Encontro de Tecnologia para o Desenvolvimento Social

A Secretaria do Planejamento e Gestão do Ceará (Seplag-CE), por meio da sua secretaria executiva do Planejamento e Orçamento, realizou, no dia 30 de maio, o I Encontro de Ciência e Tecnologia para o Desenvolvimento Social. O evento realizado em  parceria com a Fundação Cearense de Apoio ao Desenvolvimento Científico e Tecnológico (Funcap), vinculada à Secretaria da Ciência, Tecnologia e Educação Superior do Estado do Ceará (Secitece), aconteceu no auditório da Seplag.

Apresentação da Plataforma Big Data Social

Na ocasião, José Macêdo, cientista-chefe da Transformação Digital e coordenador do Insight Lab, apresentou a plataforma Big Data Social do Governo do Ceará e sua equipe de trabalho. Estavam presentes também os cientistas-chefes: Flávio Ataliba (Economia), Márcia Machado (Proteção Social) e Jorge Lira (Educação).

 

Imagem: Apresentação Big Data Social

Imagem: Apresentação Big Data Social

No evento foram apresentados os temas aplicados por meio da gestão pública que causaram impactos e estão contribuindo para o progresso social aliado ao advento da tecnologia e a popularização da ciência, e a formação de cidadãos sociais e culturais no contexto tecnológico.

Segundo Flávio Ataliba, secretário executivo do Planejamento e Orçamento da Seplag, o evento surgiu  para apresentar os resultados das pesquisas realizadas nas áreas citadas, além de servir como um momento rico para o compartilhamento de conhecimentos e de novas ideias.

Assista aqui a apresentação do professor Macêdo sobre a plataforma Big Data Social.

Apoiadores

O encontro também teve o apoio da Escola de Gestão Pública do Estado do Ceará (EGPCE) a Universidade Federal do Ceará (UFC), a Fundação Cearense de Apoio ao Desenvolvimento Científico e Tecnológico (Funcap), o Laboratório de Inovação de Dados (ÍRIS), os Programas Cientistas Chefes, o Instituto de Pesquisa e Estratégia Econômica do Ceará (Ipece), a Secretaria da Proteção Social, Justiça Cidadania, Mulheres e Direitos Humanos, a Secretaria da Educação e a Vice-Governadoria do Ceará.

Fonte: Seplag CE

Categorias
Bolsas Ciência de Dados Vagas Abertas

Vagas Para Bolsistas Cientistas de Dados

Está aberta a seleção para Bolsista Desenvolvedor ou Pesquisador – Cientista de Dados para os laboratórios  Insight Lab ÍRIS

O Insight Lab é um laboratório de pesquisa aplicada em Ciência de Dados e Inteligência Artificial da Universidade Federal do Ceará, envolvendo mais de 100 pessoas, entre pesquisadores, alunos de graduação, mestrado, doutorado e especialistas associados. O ÍRIS é um Laboratório de Inovação e Dados na Casa Civil do Governo do Estado do Ceará, que visa acelerar soluções inovadoras para Transformação Digital do estado.

Você será responsável por

  • Atuar no desenvolvimento de pesquisas relacionadas à descoberta de conhecimento usando ciência de dados e algoritmos de aprendizagem de máquina.
  • Integrar dados de bases heterogêneas identificando possíveis inconsistências.
  • Escrever artigos científicos e experimentar diferentes algoritmos de ciência de dados.

Procuramos por pessoas

  • Altamente criativas e curiosas sobre os assuntos, produtos, serviços e pesquisas científicas do Insight Lab;
  • Que tenham habilidades interpessoais e de comunicação;
  • Que saibam trabalhar bem em equipe e com uma gama de pessoas criativas;
  • Que saibam gerenciar demandas de trabalho de forma eficaz e organizada;
  • Com paixão por criar, aprender e testar novas tecnologias;

Você deve possuir conhecimentos nas seguintes áreas

  • Ciência de Dados;
  • Aprendizado de Máquina;
  • Banco de Dados.

Carga-horária das atividades

  • Parcial: 20 horas semanais;
  • Integral: 40 horas semanais.

Etapas da seleção

  • Primeira fase: análise do histórico e currículo.
  • Segunda fase: entrevista via videoconferência para os classificados na primeira fase.

Após a análise do histórico e currículo, os candidatos selecionados para a segunda fase deverão participar da entrevista em dia e horário a definir. Os candidatos aprovados para a segunda fase receberão um e-mail informando o dia e horário da entrevista.

Modalidade de Contratação

Contrato de bolsista para graduandos, graduados, mestrandos ou doutorandos da Universidade Federal do Ceará.

Etapas da seleção

  • Preenchimento do formulário até: 26/04; 
  • Data de divulgação dos resultados da análise de currículo e histórico: 27/04;
  • Data das Entrevistas: 28/04;
  • Data do Resultado final: 29/04.

Clique aqui para acessar o formulário de inscrição.

Inscreva-se e ajude a divulgar esta seleção!

Categorias
Algoritmo Ciência de Dados Dados Machine Learning

Principais algoritmos de Machine Learning para você conhecer em 2022

Algoritmos de aprendizado de máquina utilizam parâmetros baseados em dados de treinamento – um subconjunto de dados que representa o conjunto maior. À medida que os dados de treinamento se expandem para representar o mundo de modo mais realista, o algoritmo calcula resultados mais precisos.

Diferentes algoritmos analisam dados de maneiras diferentes. Geralmente, eles são agrupados pelas técnicas de aprendizado de máquina para as quais são usados: aprendizado supervisionado, aprendizado não supervisionado e aprendizado de reforço. Os algoritmos usados com mais frequência usam a regressão e a classificação para prever categorias de destino, encontrar pontos de dados incomuns, prever valores e descobrir semelhanças.

Tendo isso em mente, vamos conhecer os 5 algoritmos de aprendizado de máquina mais importantes:

  1. Algoritmos de Ensemble Learning;
  2. Algoritmos explicativos;
  3. Algoritmos de agrupamento;
  4. Algoritmos de Redução de Dimensionalidade;
  5. Algoritmos de semelhança.

1. Algoritmos de Ensemble Learning (Random Forests, XGBoost, LightGBM, CatBoost)

O que são algoritmos de Ensemble Learning?

Para entender o que eles são, primeiro você precisa saber o que é o Método Ensemble. Esse método consiste no uso simultâneo de  vários modelos ​​para obter melhor desempenho do que um único modelo em si.

Conceitualmente, considere a seguinte analogia:

Imagem Terence Shin

Imagine a seguinte situação: em uma sala de aula é dado o mesmo problema de matemática para um único aluno e para um grupo de alunos. Nessa situação, o grupo de alunos pode resolver o problema de forma colaborativa, verificando as respostas uns dos outros e decidindo por unanimidade sobre uma única resposta. Por outro lado, um aluno, sozinho, não tem esse privilégio – ninguém mais está lá para colaborar ou questionar sua resposta.

E assim, a sala de aula com vários alunos é semelhante a um algoritmo de Ensemble com vários algoritmos menores trabalhando juntos para formular uma resposta final.

 

Saiba mais sobre o Ensemble Learning neste artigo.

Quando são úteis?

Os algoritmos de Ensemble Learning são mais úteis para problemas de regressão e classificação ou problemas de aprendizado supervisionado. Devido à sua natureza inerente, eles superam todos os algoritmos tradicionais de Machine Learning, como Naïve Bayes, máquinas vetoriais de suporte e árvores de decisão.

Algoritmos

2. Algoritmos Explicativos (Regressão Linear, Regressão Logística, SHAP, LIME)

O que são algoritmos explicativos?

Algoritmos explicativos permitem identificar e compreender variáveis ​​que possuem relação estatisticamente significativa com o resultado. Portanto, em vez de criar um modelo para prever valores da variável de resposta, podemos criar modelos explicativos para entender as relações entre as variáveis ​​no modelo.

Do ponto de vista da regressão, há muita ênfase nas variáveis estatisticamente significativas. Por quê? Quase sempre, você estará trabalhando com uma amostra de dados, que é um subconjunto de toda a população. Para tirar conclusões sobre uma população, dada uma amostra, é importante garantir que haja significância suficiente para fazer uma suposição confiável.

Imagem Terence Shin

Recentemente, também houve o surgimento de duas técnicas populares, SHAP e LIME, que são usadas para interpretar modelos de Machine Learning.

Quando são úteis?

Modelos explicativos são úteis quando você quer entender “por que” uma decisão foi tomada ou quando você quer entender “como” duas ou mais variáveis ​​estão relacionadas entre si.

Na prática, a capacidade de explicar o que seu modelo de Machine Learning faz é tão importante quanto o desempenho do próprio modelo. Se você não puder explicar como um modelo funciona, ninguém confiará nele e ninguém o usará.

Tipos de Algoritmos

Modelos explicativos tradicionais baseados em testes de hipóteses:

  • Regressão linear
  • Regressão Logística

Algoritmos para explicar modelos de Machine Learning:

3. Algoritmos de Agrupamento (k-Means, Agrupamento Hierárquico)

Imagem Terence Shin

O que são algoritmos de agrupamento?

Esses algoritmos são usados ​​para realizar análises de agrupamento, que é uma tarefa de aprendizado não supervisionada que envolve o agrupamento de dados. Ao contrário do aprendizado supervisionado, no qual a variável de destino é conhecida, não há variável de destino nas análises de agrupamento.

Quando são úteis?

O clustering é particularmente útil quando você deseja descobrir padrões e tendências naturais em seus dados. É muito comum que as análises de cluster sejam realizadas na fase de EDA, para descobrir mais informações sobre os dados.

Da mesma forma, o agrupamento permite identificar diferentes segmentos dentro de um dataset com base em diferentes variáveis. Um dos tipos mais comuns de segmentação por cluster é a segmentação de usuários/clientes.

 

Tipos de Algoritmos

Os dois algoritmos de agrupamento mais comuns são agrupamento k-means e agrupamento hierárquico, embora existam muitos mais:

4. Algoritmos de Redução de Dimensionalidade (PCA, LDA)

O que são algoritmos de redução de dimensionalidade?

Os algoritmos de redução de dimensionalidade referem-se a técnicas que reduzem o número de variáveis ​​de entrada (ou variáveis ​​de recursos) em um dataset. A redução de dimensionalidade é essencialmente usada para lidar com a maldição da dimensionalidade, um fenômeno que afirma, “à medida que a dimensionalidade (o número de variáveis ​​de entrada) aumenta, o volume do espaço cresce exponencialmente resultando em dados esparsos.

Quando são úteis?

As técnicas de redução de dimensionalidade são úteis em muitos casos:

  1. Eles são extremamente úteis quando você tem centenas ou até milhares de recursos em um dataset e precisa selecionar alguns.
  2. Eles são úteis quando seus modelos de ML estão super ajustando os dados, o que implica que você precisa reduzir o número de recursos de entrada.

Tipos de Algoritmos

Abaixo estão os dois algoritmos de redução de dimensionalidade mais comuns:

5. Algoritmos de similaridade (KNN, Distância Euclidiana, Cosseno, Levenshtein, Jaro-Winkler, SVD, etc…)

O que são algoritmos de similaridade?

Algoritmos de similaridade são aqueles que computam a similaridade de pares de registros/nós/pontos de dados/texto. Existem algoritmos de similaridade que comparam a distância entre dois pontos de dados, como a distância euclidiana, e também existem algoritmos de similaridade que calculam a similaridade de texto, como o Algoritmo Levenshtein.

Quando são úteis?

Esses algoritmos podem ser usados ​​em uma variedade de aplicações, mas são particularmente úteis para recomendação.

  • Quais artigos o Medium deve recomendar a você com base no que você leu anteriormente?
  • Qual música o Spotify deve recomendar com base nas músicas que você já gostou?
  • Quais produtos a Amazon deve recomendar com base no seu histórico de pedidos?

Estes são apenas alguns dos muitos exemplos em que algoritmos de similaridade e recomendação são usados ​​em nossas vidas cotidianas.

Tipos de Algoritmos

Abaixo está uma lista não exaustiva de alguns algoritmos de similaridade. Se você quiser ler sobre mais algoritmos de distância, confira este artigo. E se você também se interessar por algoritmos de similaridade de strings, leia este artigo.

Se você gostou desse conteúdo, acompanhe as próximas postagens do Insight Lab aqui e também nas redes sociais!

Fontes: Terence Shin e Azure.

 

 

Categorias
Biblioteca Ciência de Dados Machine Learning Python

Tutorial PyTorch: um guia rápido para você entender agora os fundamentos do PyTorch

O Python está bem estabelecido como a linguagem ideal para ciência de dados e aprendizado de máquina, e isso se deve em parte à biblioteca de ML de código aberto PyTorch.

A combinação do PyTorch com ferramentas poderosas de construção de rede neural profunda e fáceis de uso, torna-o uma escolha popular entre cientistas de dados. À medida que sua popularidade cresce, mais e mais empresas estão mudando do TensorFlow para o PyTorch, tornando-se agora o melhor momento para começar a usar o PyTorch.

Hoje, vamos te ajudar a entender o que torna o PyTorch tão popular, alguns fundamentos do uso dessa biblioteca e ajudá-lo a fazer seus primeiros modelos computacionais.

 

O que é o PyTorch?

O PyTorch é uma biblioteca Python de aprendizado de máquina de código aberto usada para implementações de aprendizado profundo, como visão computacional (usando TorchVision) e processamento de linguagem natural. Essa biblioteca foi desenvolvida pelo laboratório de pesquisa de IA do Facebook (FAIR) em 2016 e, desde então, é adotada nos campos da ciência de dados e ML.

O PyTorch torna o aprendizado de máquina intuitivo para aqueles que já estão familiarizados com Python e tem ótimos recursos como suporte OOP e gráficos de computação dinâmica.

Junto com a construção de redes neurais profundas, o PyTorch também é ótimo para cálculos matemáticos complexos por causa de sua aceleração de GPU. Esse recurso permite que o PyTorch use a GPU do seu computador para acelerar enormemente os cálculos.

Essa combinação de recursos exclusivos e a simplicidade incomparável do PyTorch o torna uma das bibliotecas de aprendizado profundo mais populares, competindo apenas com o TensorFlow pelo primeiro lugar.

 

Por que usar o PyTorch?

Antes do PyTorch, os desenvolvedores usavam cálculos avançados para encontrar as relações entre erros retro-propagados e peso do nó. Redes neurais mais profundas exigiam operações cada vez mais complicadas, o que restringia o aprendizado de máquina em escala e acessibilidade.

Agora, podemos usar bibliotecas de ML para completar automaticamente todo esse cálculo! As bibliotecas de ML podem computar redes de qualquer tamanho ou formato em questão de segundos, permitindo que mais desenvolvedores criem redes maiores e melhores.

O PyTorch leva essa acessibilidade um passo adiante, comportando-se como o Python padrão. Em vez de aprender uma nova sintaxe, você pode usar o conhecimento existente de Python para começar rapidamente. Além disso, você pode usar bibliotecas Python adicionais com PyTorch, como depuradores populares como o PyCharm.

 

PyTorch vs. TensorFlow

A principal diferença entre PyTorch e TensorFlow é a escolha entre simplicidade e desempenho: o PyTorch é mais fácil de aprender (especialmente para programadores Python), enquanto o TensorFlow tem uma curva de aprendizado, mas tem um desempenho melhor e é mais usado.

  • Popularidade: Atualmente, o TensorFlow é a ferramenta ideal para profissionais e pesquisadores do setor porque foi lançado 1 ano antes do PyTorch. No entanto, a taxa de usuários do PyTorch está crescendo mais rápido do que a do TensorFlow, sugerindo que o PyTorch pode em breve ser o mais popular.

  • Paralelismo de dados: O PyTorch inclui paralelismo de dados declarativo, em outras palavras, ele distribui automaticamente a carga de trabalho do processamento de dados em diferentes GPUs para acelerar o desempenho. O TensorFlow tem paralelismo, mas exige que você atribua o trabalho manualmente, o que costuma ser demorado e menos eficiente.

  • Gráficos dinâmicos vs. estáticos: PyTorch tem gráficos dinâmicos por padrão que respondem a novos dados imediatamente. O TensorFlow tem suporte limitado para gráficos dinâmicos usando o TensorFlow Fold, mas usa principalmente gráficos estáticos.

  • Integrações: PyTorch é bom para usar em projetos na AWS por causa de sua estreita conexão por meio do TorchServe. O TensorFlow está bem integrado com o Google Cloud e é adequado para aplicativos móveis devido ao uso da API Swift.

  • Visualização: O TensorFlow tem ferramentas de visualização mais robustas e oferece um controle mais preciso sobre as configurações do gráfico. A ferramenta de visualização Visdom da PyTorch ou outras bibliotecas de plotagem padrão, como matplotlib, não são tão completas quanto o TensorFlow, mas são mais fáceis de aprender.

 

Fundamentos do PyTorch

Tensores

Os tensores PyTorch são variáveis indexadas (arrays) multidimensionais usadas como base para todas as operações avançadas. Ao contrário dos tipos numéricos padrão, os tensores podem ser atribuídos para usar sua CPU ou GPU para acelerar as operações.

Eles são semelhantes a uma matriz NumPy n-dimensional e podem até ser convertidos em uma matriz NumPy em apenas uma única linha.

Tensores vêm em 5 tipos:

  • FloatTensor: 32-bit float
  • DoubleTensor: 64-bit float
  • HalfTensor: 16-bit float
  • IntTensor: 32-bit int
  • LongTensor: 64-bit int

Como acontece com todos os tipos numéricos, você deseja usar o menor tipo que atenda às suas necessidades para economizar memória. O PyTorch usa  FloatTensor como o tipo padrão para todos os tensores, mas você pode mudar isso usando:

torch.set_default_tensor_type(t)                           

Para inicializar dois FloatTensors:

import torch
# initializing tensors
a = torch.tensor(2)
b = torch.tensor(1)

Os tensores podem ser usados como outros tipos numéricos em operações matemáticas simples.    

# addition
    print(a+b)
    # subtraction
    print(b-a)
    # multiplication
    print(a*b)
    # division
    print(a/b)

Você também pode mover tensores para serem manipulados pela GPU usando cuda.

if torch.cuda.is_available():
x = x.cuda()
y = y.cuda()
x + y

Como tensores são matrizes em PyTorch, você pode definir tensores para representar uma tabela de números:

ones_tensor = torch.ones((2, 2)) # tensor containing all ones
rand_tensor = torch.rand((2, 2)) # tensor containing random values

 

Aqui, estamos especificando que nosso tensor deve ser um quadrado 2×2. O quadrado é preenchido com todos os 1 ao usar a função ones() ou números aleatórios ao usar a função rand().

Redes neurais

PyTorch é comumente usado para construir redes neurais devido aos seus modelos de classificação excepcionais, como classificação de imagem ou redes neurais convolucionais (CNN).

As redes neurais são camadas de nós de dados conectados e ponderados. Cada camada permite que o modelo identifique a qual classificação os dados de entrada correspondem.

As redes neurais são tão boas quanto seu treinamento e, portanto, precisam de grandes conjuntos de dados e estruturas GAN, que geram dados de treinamento mais desafiadores com base naqueles já dominados pelo modelo.

O PyTorch define redes neurais usando o pacote torch.nn, que contém um conjunto de módulos para representar cada camada de uma rede.

Cada módulo recebe tensores de entrada e calcula os tensores de saída, que trabalham juntos para criar a rede. O pacote torch.nn também define funções de perda que usamos para treinar redes neurais.

As etapas para construir uma rede neural são:

  • Construção: Crie camadas de rede neural, configure parâmetros, estabeleça pesos e tendências.
  • Propagação direta: Calcule a saída prevista usando seus parâmetros. Meça o erro comparando a saída prevista e a real.
  • Retropropagação: Depois de encontrar o erro, tire a derivada da função de erro em termos dos parâmetros de nossa rede neural. A propagação para trás nos permite atualizar nossos parâmetros de peso.
  • Otimização iterativa: Minimize erros usando otimizadores que atualizam parâmetros por meio de iteração usando gradiente descendente.

Aqui está um exemplo de uma rede neural em PyTorch:

import torch
import torch.nn as nn
import torch.nn.functional as F
class Net(nn.Module):
def __init__(self):
super(Net, self).__init__()
# 1 input image channel, 6 output channels, 3x3 square convolution
# kernel
self.conv1 = nn.Conv2d(1, 6, 3)
self.conv2 = nn.Conv2d(6, 16, 3)
# an affine operation: y = Wx + b
self.fc1 = nn.Linear(16 * 6 * 6, 120) # 6*6 from image dimension
self.fc2 = nn.Linear(120, 84)
self.fc3 = nn.Linear(84, 10)
def forward(self, x):
# Max pooling over a (2, 2) window
x = F.max_pool2d(F.relu(self.conv1(x)), (2, 2))
# If the size is a square you can only specify a single number
x = F.max_pool2d(F.relu(self.conv2(x)), 2)
x = x.view(-1, self.num_flat_features(x))

x = F.relu(self.fc1(x))
x = F.relu(self.fc2(x))
x = self.fc3(x)
return x
def num_flat_features(self, x):
size = x.size()[1:] # all dimensions except the batch dimension
num_features = 1
for s in size:
num_features *= s
return num_features

net = Net()
print(net)

O nn.module designa que esta será uma rede neural e então a definimos com duas camadas conv2d, que realizam uma convolução 2D, e 3 camadas lineares, que realizam transformações lineares.

A seguir, definimos um método direto para descrever como fazer a propagação direta. Não precisamos definir um método de propagação para trás porque PyTorch inclui uma função backwards() por padrão.

Não se preocupe se isso parece confuso agora, depois vamos cobrir implementações mais simples do PyTorch neste tutorial.

Autograd

Autograd é um pacote PyTorch usado para calcular derivadas essenciais para operações de rede neural. Essas derivadas são chamadas de gradientes. Durante uma passagem para frente, o autograd registra todas as operações em um tensor habilitado para gradiente e cria um gráfico acíclico para encontrar a relação entre o tensor e todas as operações. Essa coleção de operações é chamada de diferenciação automática.

As folhas deste gráfico são tensores de entrada e as raízes são tensores de saída. O Autograd calcula o gradiente traçando o gráfico da raiz à folha e multiplicando cada gradiente usando a regra da cadeia.

Depois de calcular o gradiente, o valor da derivada é preenchido automaticamente como um atributo grad do tensor.

import torch
# pytorch tensor
x = torch.tensor(3.5, requires_grad=True)
# y is defined as a function of x

y = (x-1) * (x-2) * (x-3)
# work out gradients
y.backward()

Por padrão, requires_grad é definido como false e o PyTorch não rastreia gradientes. Especificar requires_grad como True durante a inicialização fará o PyTorch rastrear gradientes para este tensor em particular sempre que realizarmos alguma operação nele.

Este código olha para y e vê que ele veio de (x-1) * (x-2) * (x-3) e calcula automaticamente o gradiente dy / dx, 3x^2 – 12x + 11.

A instrução também calcula o valor numérico desse gradiente e o coloca dentro do tensor x ao lado do valor real de x, 3.5.

Juntos, o gradiente é 3 * (3.5 * 3.5) – 12 * (3.5) + 11 = 5.75.

                                                 Figura 01

 

 

 

 

 

 

 

 

 

Os gradientes se acumulam por padrão, o que pode influenciar o resultado se não for redefinido. Use model.zero_grad() para zerar novamente seu gráfico após cada gradiente.

 

Otimizadores

Os otimizadores permitem que você atualize os pesos e tendências dentro de um modelo para reduzir o erro. Isso permite que você edite como seu modelo funciona sem ter que refazer tudo.

Todos os otimizadores PyTorch estão contidos no pacote torch.optim, com cada esquema de otimização projetado para ser útil em situações específicas. O módulo torch.optim permite que você construa um esquema de otimização abstrato apenas passando uma lista de parâmetros. O PyTorch tem muitos otimizadores para escolher, o que significa que quase sempre há um que melhor se adapta às suas necessidades.

Por exemplo, podemos implementar o algoritmo de otimização comum, SGD (Stochastic Gradient Descent), para suavizar nossos dados.

import torch.optim as optim
params = torch.tensor([1.0, 0.0], requires_grad=True)
learning_rate = 1e-3
## SGD
optimizer = optim.SGD([params], lr=learning_rate)

Depois de atualizar o modelo, use optimizer.step() para dizer ao PyTorch para recalcular o modelo.

Sem usar otimizadores, precisaríamos atualizar manualmente os parâmetros do modelo, um por um, usando um loop:

for params in model.parameters():
params -= params.grad * learning_rate

No geral, os otimizadores economizam muito tempo, permitindo que você otimize a ponderação dos dados e altere o modelo sem refazê-lo.

 

Gráficos de computação com PyTorch

Para entender melhor o PyTorch e as redes neurais, é importante praticar com gráficos de computação. Esses gráficos são essencialmente uma versão simplificada de redes neurais com uma sequência de operações usadas para ver como a saída de um sistema é afetada pela entrada.

Em outras palavras, a entrada x é usada para encontrar y, que então é usada para encontrar a saída z.

                                                            Figura 02

 

 

 

 

 

 

 

Imagine que  y e z são calculados assim:

y = x^2

z = 2y + 3

No entanto, estamos interessados em como a saída z muda com a entrada x, então precisaremos fazer alguns cálculos:

dz/dx = (dz/dy) * (dy/dx)

dz/dx = 2.2x

dz/dx = 4x

Usando isso, podemos ver que a entrada x = 3,5 fará com que z = 14.

Saber definir cada tensor em termos dos outros (y e z em termos de x, z em termos de y, etc.) permite que o PyTorch construa uma imagem de como esses tensores estão conectados.

                                                          Figura 03

 

 

 

 

 

 

 

 

 

Esta imagem é chamada de gráfico computacional e pode nos ajudar a entender como o PyTorch funciona nos bastidores.

Usando esse gráfico, podemos ver como cada tensor será afetado por uma mudança em qualquer outro tensor. Esses relacionamentos são gradientes e são usados para atualizar uma rede neural durante o treinamento.

Esses gráficos são muito mais fáceis de fazer usando o PyTorch do que manualmente. Então, agora que entendemos o que está acontecendo nos bastidores, vamos tentar fazer esse gráfico.

import torch
# set up simple graph relating x, y and z
x = torch.tensor(3.5, requires_grad=True)
y = x*x
z = 2*y + 3
print("x: ", x)
print("y = x*x: ", y)
print("z= 2*y + 3: ", z)
# work out gradients
z.backward()
print("Working out gradients dz/dx")

# what is gradient at x = 3.5
print("Gradient at x = 3.5: ", x.grad)

Isso mostra que z = 14, exatamente como encontramos manualmente acima!

 

Mãos à obra com PyTorch: gráfico computacional de vários caminhos

Agora que você viu um gráfico computacional com um único conjunto relacional, vamos tentar um exemplo mais complexo.

Primeiro, defina dois tensores, a e b, para funcionar como nossas entradas. Certifique-se de definir requires_grad=True para que possamos fazer gradientes na linha.

import torch
# set up simple graph relating x, y and z
a = torch.tensor(3.0, requires_grad=True)
b = torch.tensor(2.0, requires_grad=True)

Em seguida, configure as relações entre nossa entrada e cada camada de nossa rede neural, x, y e z. Observe que z é definido em termos de x e y, enquanto x e y são definidos usando nossos valores de entrada a e b.

import torch
# set up simple graph relating x, y and z
a = torch.tensor(3.0, requires_grad=True)
b = torch.tensor(2.0, requires_grad=True)

x = 2*a + 3*b
y = 5*a*a + 3*b*b*b
z = 2*x + 3*y

Isso cria uma cadeia de relacionamentos que o PyTorch pode seguir para entender todos os relacionamentos entre os dados.

Agora podemos calcular o gradiente dz/da​​ seguindo o caminho de volta de z para  a.

Existem dois caminhos, um passando por x e outro por y. Você deve seguir os dois e adicionar as expressões de ambos os caminhos. Isso faz sentido porque ambos os caminhos de a a z contribuem para o valor de z.

Teríamos encontrado o mesmo resultado se tivéssemos calculado dz/da usando a regra da cadeia do cálculo.

                                               Figura 04

 

 

 

 

 

 

 

 

 

 

O primeiro caminho por x nos dá 2 * 2 e o segundo caminho por y nos dá 3 * 10a. Assim, a taxa na qual z varia com a é 4 + 30a.

Se a é 22, então dz/da​​ é 4+30∗2=64.

Podemos confirmar isso no PyTorch adicionando uma propagação para trás de z e pedindo o gradiente (ou derivado) de a.

import torch
# set up simple graph relating x, y and z
a = torch.tensor(2.0, requires_grad=True)
b = torch.tensor(1.0, requires_grad=True)
x = 2*a + 3*b
y = 5*a*a + 3*b*b*b
z = 2*x + 3*y
print("a: ", a)
print("b: ", b)
print("x: ", x)
print("y: ", y)
print("z: ", z)
# work out gradients
z.backward()
print("Working out gradient dz/da")
# what is gradient at a = 2.0
print("Gradient at a=2.0:", a.grad)

Próximos passos para o seu aprendizado

Parabéns, você concluiu seu início rápido de PyTorch e Redes Neurais! A conclusão de um gráfico computacional é uma parte essencial da compreensão de redes de aprendizado profundo.

À medida que você aprender habilidades e aplicativos avançados de aprendizado profundo, você desejará explorar:

  • Redes neurais complexas com otimização
  • Design de visualização
  • Treinamento com GANs

Vamos continuar aprendendo juntos!

Fonte: PyTorch tutorial: a quick guide for new learners

 

 

Categorias
Ciência de Dados GitHub Repositório

10 repositórios no GitHub que todo Cientistas de Dados precisa conhecer

O Insight preparou uma lista com 10 repositórios para ajudar você no desenvolvimento de suas tarefas em Ciência de Dados. O Github é uma plataforma gratuita que hospeda código fonte por meio do controle de versão (o Git) e disponibiliza diversos repositórios abertos feitos por interessados na área. 

A área de estudos em Ciência de Dados é muito ampla e no GitHub existem diversos repositórios com projetos muito úteis a quem se interessa por Ciência de Dados. E para tornar sua pesquisa mais fácil, nós separamos alguns para você. Confira:

 

1 –Graph4NLP 

Esta é uma biblioteca fácil de usar para P&D na interseção de Aprendizado Profundo em Gráficos e Processamento de Linguagem Natural. Ele fornece implementações completas de modelos de última geração para cientistas de dados e também interfaces flexíveis para construir modelos personalizados para pesquisadores e desenvolvedores com suporte de pipeline completo. 

Construído sobre bibliotecas com tempo de execução altamente otimizadas, incluindo DGL, esta biblioteca tem alta eficiência de execução e alta extensibilidade. Sua arquitetura é mostrada na figura a seguir, onde caixas com linhas tracejadas representam os recursos em desenvolvimento que consistem em quatro camadas diferentes: 

1) Camada de dados;

2) Camada de módulo; 

3) Camada de modelo;

4) Camada de aplicativo.

2 – Rasa 

Este é um framework de Machine Learning de código aberto para automatizar conversas baseadas em texto e voz. Com o Rasa, você pode criar assistentes contextuais para diversas plataformas:

  • Facebook Messenger;
  • Folga;
  • Hangouts do Google;
  • Equipes Webex;
  • Microsoft Bot Framework;
  • Rocket.Chat;
  • Mattermost;
  • Telegrama;
  • Twilio.

E também em assistentes de voz como: Alexa Skills e ações do Google Home.

Rasa ajuda a criar assistentes contextuais capazes de ter conversas em camadas com muitas idas e vindas. Para que um humano tenha uma troca significativa com um assistente virtual, este precisa ser capaz de usar o contexto para desenvolver coisas que foram discutidas anteriormente. O Rasa permite que você crie assistentes que podem fazer isso de uma forma escalonável.

 

3 Merlion 

Merlion é uma biblioteca Python para inteligência em séries temporais. Ela fornece uma estrutura de Machine Learning de ponta a ponta que inclui carregamento e transformação de dados, construção de modelos de treinamento, saídas de modelo de pós-processamento e avaliação de desempenho do modelo. Além disso, oferece suporte a várias tarefas de aprendizagem em séries temporais, incluindo previsão, detecção de anomalias e detecção de ponto de mudança para séries temporais univariadas e multivariadas. 

Esta biblioteca tem como objetivo fornecer aos engenheiros e pesquisadores uma solução completa para desenvolver rapidamente modelos para suas necessidades específicas em séries temporais e compará-los em vários datasets.

As principais características do Merlion são: carregamento e benchmarking de dados padronizados e facilidades extensíveis para uma ampla gama de datasets de previsão e detecção de anomalias.

 

4 – NitroFE

NitroFE é um mecanismo de engenharia de features do Python que fornece uma variedade de módulos projetados para salvar internamente valores com dependência do passado para fornecer cálculos contínuos.

Os atributos de indicadores, janelas e médias móveis dependem dos valores anteriores para cálculo. Por exemplo, uma janela móvel de tamanho 4 depende dos 4 valores anteriores. Embora a criação de tais atributos durante o treinamento seja bastante simples, levá-los para a produção se torna um desafio, pois exigiria que alguém salvasse externamente os valores anteriores e implementasse a lógica. A criação de indicadores torna-se ainda mais complexa, pois dependem de vários outros componentes de janela de tamanhos diferentes.

O NitroFE lida internamente com o salvamento de valores com dependência do passado e torna a criação de recursos descomplicada. Basta usar first_fit = True para seu ajuste inicial.

O NitroFe oferece uma rica variedade de atributos que são inspirados e traduzidos a partir de indicadores de mercado como oscilador de preço absoluto, oscilador de preço percentual, divergência de convergência da média móvel, entre outros.

Em estatística, uma média móvel é um cálculo para analisar pontos de dados criando uma série de médias de diferentes subconjuntos do dataset. O NitroFE oferece uma variedade de tipos de médias móveis para você utilizar.

 

5 – Aim

O Aim registra suas execuções de treinamento, possui uma bela interface para compará-los e uma API para consultá-los programaticamente. Essa é uma ferramenta de rastreamento de experimentos de IA auto-hospedada e de código aberto. Útil para inspecionar profundamente centenas de execuções de treinamento sensíveis a hiperparâmetros de uma só vez.

O SDK do Aim registra quantas métricas e parâmetros forem necessários para as execuções de treinamento e avaliação. Os usuários do Aim monitoram milhares de execuções de treinamento e, às vezes, mais de 100 métricas por execução com muitas etapas.

Integrado com as ferramentas:

 

6 – JupyterLab Desktop

O JupyterLab é a interface da próxima geração de usuários do Project Jupyter, oferecendo todos os blocos de construção familiares do Jupyter Notebook clássico (notebook, terminal, editor de texto, navegador de arquivos, saídas ricas, etc.) em uma interface de usuário flexível e poderosa. O JupyterLab eventualmente substituirá o Jupyter Notebook clássico.

Você pode organizar vários documentos e atividades lado a lado na área de trabalho usando guias e divisores. Documentos e atividades se integram, permitindo novos fluxos de trabalho para computação interativa, por exemplo:

  • Os consoles de código fornecem rascunhos temporários para a execução de código de forma interativa, com suporte total para uma saída valiosa. Um console de código pode ser vinculado a um kernel do notebook como um log de computação do notebook, por exemplo.
  • Documentos baseados em kernel permitem que o código em qualquer arquivo de texto (Markdown, Python, R, LaTeX, etc.) seja executado interativamente em qualquer kernel Jupyter.
  • As saídas das células do notebook podem ser espelhadas em sua própria guia, lado a lado com o notebook, permitindo painéis simples com controles interativos apoiados por um kernel.
  • Múltiplas visualizações de documentos com diferentes editores ou visualizadores permitem a edição ao vivo de documentos refletidos em outros visualizadores. Por exemplo, é fácil ter uma visualização ao vivo de Markdown, valores separados por delimitador ou documentos Vega / Vega-Lite.

A interface também oferece um modelo unificado para visualizar e manipular formatos de dados. O JupyterLab compreende muitos formatos de arquivo (imagens, CSV, JSON, Markdown, PDF, Vega, Vega-Lite, etc.) e também pode exibir uma saída rica do kernel nesses formatos. Consulte Arquivos e formatos de saída para obter mais informações.

 

7 – RIVER

River é uma biblioteca Python para Machine Learning (ML) on-line. É o resultado da fusão entre o creme e o scikit-multiflow. O objetivo do River é ser a biblioteca ideal para fazer ML em dados de streaming.

O Machine Learning geralmente é feito em uma configuração de batch, em que um modelo é ajustado a um dataset de uma só vez. Isso resulta em um modelo estático que precisa ser retreinado para aprender com os novos dados. Em muitos casos, isso não é eficiente e geralmente resulta em um problema técnico considerável. Na verdade, se você estiver usando um modelo em batch, precisará pensar em manter um conjunto de treinamento, monitorar o desempenho em tempo real, retreinar o modelo, etc.

Com o River, a abordagem é aprender continuamente com um fluxo de dados. Isso significa que o modelo processa uma observação por vez e pode, portanto, ser atualizado em tempo real. Permitindo assim, aprender com grandes datasets que não cabem na memória principal.

 

8 LIGHTNING FLASH 

Flash é uma coleção de tarefas para prototipagem rápida, definição de linha de base e ajuste fino de modelos de Deep Learning escaláveis, baseados no PyTorch Lightning.

Quer você seja novo no Deep Learning ou um pesquisador experiente, o Flash oferece uma experiência perfeita, desde experimentos básicos até pesquisas de ponta. Ele permite que você construa modelos sem ser sobrecarregado por todos os detalhes e, em seguida, substitua e experimente o Lightning para obter total flexibilidade.

Com o Flash, você pode criar sua própria imagem ou classificador de texto em algumas linhas de código, sem necessidade de matemática. Atualmente ele suporta: classificação Imagem, incorporação Imagem, classificação tabular, classificação de texto, sumarização, tradução entre outras.

As tarefas do Flash contêm todas as informações relevantes para resolver sua tarefa como: o número de rótulos de classe que você deseja prever, o número de colunas em seu dataset, bem como detalhes sobre a arquitetura do modelo usada, como função de perda, otimizadores, etc.

 

9 – PARLAI

ParlAI (pronuncia-se “par-lay”) é uma estrutura Python para compartilhar, treinar e testar modelos de diálogo, desde bate-papos de domínio aberto a diálogos orientados a tarefas e respostas visuais de perguntas.

Seu objetivo é fornecer aos pesquisadores: mais de 100 datasets populares disponíveis em um só lugar, com a mesma API, entre eles PersonaChat, DailyDialog, Assistente de Wikipedia, Empathetic Dialogues, SQuAD, MS MARCO, QuAC, HotpotQA, QACNN & QADailyMail, CBT, BookTest, bAbI Dialogue tasks, Ubuntu Dialoge, OpenSubtitles, Image Chat, VQA, VisDial e CLEVR.

ParlAI possui:

  • um amplo conjunto de modelos de referência de linhas de base de recuperação a transformadores.
  • uma gama de modelos pré-treinados prontos para usar;
  • integração perfeita do Amazon Mechanical Turk para coleta de dados e avaliação humana;
  • integração com o Facebook Messenger para conectar agentes com humanos em uma interface de bate-papo;
  • uma grande variedade de ajudantes para criar seus próprios agentes e treinar em várias tarefas com multitarefa;
  • multimodalidade, algumas tarefas usam texto e imagens.

 

10 – ZINGG

Os dados do mundo real contêm vários registros pertencentes ao mesmo cliente. Esses registros podem estar em um único sistema ou em vários e possuírem variações nos campos, o que torna difícil combiná-los, especialmente com volumes de dados crescentes. Isso prejudica a análise do cliente – estabelecer valor vitalício, programas de fidelidade ou canais de marketing é impossível quando os dados básicos não estão vinculados.

Nenhum algoritmo de IA para segmentação pode produzir resultados corretos quando há várias cópias do mesmo cliente escondidas nos dados. Nenhum data warehouse pode cumprir sua promessa se as tabelas de dimensão tiverem duplicatas.

Com uma pilha de dados e DataOps modernos, estabelecemos padrões para E e L em ELT para a construção de data warehouses, datalakes e deltalakes. No entanto, o T – preparar os dados para análises ainda precisa de muito esforço. Ferramentas modernas como DBT estão lidando com isso de forma ativa e bem-sucedida. O que também é necessário é uma maneira rápida e escalável de construir a única fonte de verdade das principais entidades de negócios pós-extração e pré ou pós-carregamento.

Com o Zingg, o engenheiro analítico e o cientista de dados podem integrar rapidamente silos de dados e construir visualizações unificadas em escala!

Obrigado por conferir nossa lista, esperamos que isso tenha contribuído para o conhecimento e crescimento com um cientista de dados!

Categorias
Ciência de Dados Dica de Leitura Python

10 artigos indispensáveis sobre Ciência de Dados para ler no Medium

A plataforma Medium é um dos melhores espaços na internet para estudantes de ciência de dados. Lá, existe uma diversidade enorme de profissionais compartilhando seus conhecimentos em artigos sobre programação, estatística, machine learning e outras áreas relacionadas ao data science.

São muitos os conteúdos para profissionais de dados no Medium, por isso, hoje destacamos 10 artigos dessa plataforma que trazem assuntos essenciais para qualquer cientista de dados. Esses conteúdos, como é próprio dos trabalhos com qualidade, contribuirão na sua carreira.

Mas antes de apresentarmos a lista, lembre que é possível ler todos os artigos no Medium de graça. Caso você não consiga acessar algum texto na plataforma porque atingiu o limite de conteúdos gratuitos, basta copiar o link do artigo e enviar como mensagem para você mesmo no Twitter. Pronto, agora é só clicar no link e ler.

Isso dito, vamos para os artigos!

 

01- Entendendo Rede Neural Convolucional (CNN) – Deep Learning          

As redes neurais convolucionais são amplamente usadas para, por exemplo, classificação de imagens, detecção de objetos e reconhecimento facial. Tendo essas como algumas de suas principais possibilidades de aplicação, fica entendido o porquê dos grandes esforços investidos no desenvolvimento da CNN.

E um artigo que te ajudará a entender como as máquinas decifram imagens é o “Compreensão da Rede Neural Convolucional (CNN) – Deep Learning”. Nele, o cientista de dados Prabhu Raghav explica alguns conceitos básicos de CNN e as etapas envolvidas neste processo.

Raghav organiza seu texto nestes seis tópicos, cada um deles dedicado a explicar uma das etapas envolvidas no processamento das redes neurais convolucionais: camada de convolução, strides, preenchimento, não linearidade (ReLU), camada de pooling e camada totalmente conectada. 

 

02- Entendendo self em Python – Código rápido

Depois de começar a usar o Python, não há como escapar da palavra “self “. Ela é vista nas definições de métodos e na inicialização de variáveis. Mas entender a ideia por trás disso parece um pouco problemático. E é nisto que este artigo te ajudará, a ter uma ideia intuitiva do que é o self e como você deve usá-lo.

Para isso, o autor, Ashan Priyadarshana, primeiro explora a criação de métodos de instância e classe em Python e, a partir deste quadro, aprofunda a explicação sobre o uso de self em Python.

Ao final do texto você terá conseguido entender por que deve sempre usar self como o primeiro parâmetro de métodos de instância em Python e o que realmente acontece nos bastidores quando chamamos um método de instância.

 

03- Aprendendo Python do zero

Um dos grandes motivos para aprender Python é certamente sua versatilidade; podemos usá-lo em diferentes áreas, como ciência de dados, desenvolvimento web e machine learning.

Diante disso, não é surpreendente a popularidade dessa linguagem de programação, que é adotada pelas também popularíssimas Google, Netflix, Quora, Pinterest e Spotify.

Se assim como essas gigantes, você também quer codificar em Python, o artigo “Aprendendo Python do zero” te ajudará. Nesse texto, por meio de exemplos de aplicação prática, você entenderá a teoria que estrutura o ambiente Python e também como se dão algumas de suas funções essenciais.

Veja o conteúdo básico sobre Python que você entenderá melhor com este artigo:

  • Como as variáveis em Python funcionam
  • Como funciona o controle de fluxo — condicionais
  • Como Python lida com loop, iteração, mais especificamente while e for
  • Como listas funcionam
  • Dicionários, uma estrutura de dados de chave-valor
  • Como iteramos sobre essas estruturas de dados
  • Objetos e Classes
  • Atributos como dados de um objeto
  • Métodos como comportamento de um objeto
  • Usando getters e setters em Python & decorator property
  • Encapsulamento: ocultando informações
  • Herança: herdando comportamentos e características.

 

04- Além do Pandas: Spark, Dask, Vaex e outras tecnologias de big data lutando frente a frente

Ao enfrentar um novo problema de ciência de dados, uma das primeiras perguntas a fazer é qual tecnologia usar. E foi pensando nisso que Jonathan Alexander, que acompanha intensamente o universo das ferramentas de big data, realizou testes para comparar a performance de tecnologias de conversão de dados e, assim, escolher a mais adequada para exploração, limpeza e conversão de dados tabulares. O objetivo é comparar as tecnologias em suas APIs, desempenho e facilidade de uso.

Alexander compartilhou os resultados e etapas desses testes em seu artigo no  Medium, “Beyond Pandas: Spark, Dask, Vaex and other big data technologies battling head to head”.

O conjunto de dados escolhidos para os testes foi o “Billion Row Taxi”, de 100 GB. As ferramentas selecionadas para comparação foram Dask DataFrame, PySpark, Koalas, Vaex, Turicreate e Datatable.

Acompanhe o artigo completo para entender como essas ferramentas se comportam em diferentes categorias, como complexidade de codificação e recursos. Conhecer as particularidades dessas tecnologias te ajudará a escolher a solução adequada para seus diferentes projetos de big data. 

 

05- Use o Docker e o Airflow para implantar seu fluxo de trabalho de Data Science

Este artigo busca ajudar cientistas de dados a aprimorar sua compreensão de como seu código seria executado em um ambiente de produção.

Assim, esta matéria é uma introdução, baseada no passo a passo para o uso do Airflow e do Docker, de como se pode articular a escrita de um código para o nível de produção. O autor explica os diferentes estágios em um fluxo de trabalho de data science e como projetar DAG e pipeline para um determinado problema. Além disso, também fornece uma visão geral de como usar a UI do Airflow.

 

06- Como analisar 100 GB de dados no seu laptop com Python

É cada vez mais comum os cientistas de dados enfrentarem conjuntos de dados de 50 GB ou mesmo 500 GB. Algo importante sobre trabalhar com esse tipo de conjunto de dados é que eles são pequenos o suficiente para caber no disco rígido de seu laptop comum, mas muito grandes para caber na RAM. Portanto, eles já são complicados de abrir e inspecionar, quanto mais de explorar ou analisar.

Neste artigo, Jovan Veljanoski apresenta uma nova abordagem para dados dessas dimensões: o Vaex. Essa é uma biblioteca de DataFrame de código aberto que permite a visualização, exploração e análise em conjuntos de dados tabulares que são tão grandes quanto seu disco rígido. Para fazer isso, o Vaex emprega conceitos como mapeamento de memória, algoritmos out-of-core eficientes e lazy evaluations.

Esta matéria de introdução ao Vaex te ajudará a aliviar alguns dos seus problemas com dados dessa proporção, pelo menos quando se trata de conjuntos de dados tabulares.

 

07- 5 operações em conjuntos Python que você precisa saber

Estruturas de dados são os blocos de construção para scripts Python. Eles mantêm ou contêm os dados de uma maneira específica para fazer com que os scripts funcionem com mais eficiência. Portanto, é crucial aprender a interagir com as estruturas de dados.

Os conjuntos (sets) são uma das principais estruturas de dados em Python. E neste artigo são apresentadas as características dos sets e examinadas cinco operações comumente usadas nos conjuntos.

 

08- Aprenda Ciência de Dados em 10 anos – 3 lições de Peter Norvig (diretor de aprendizado de máquina da Google)

A demanda industrial, acadêmica e governamental por profissionais de ciência de dados qualificados é enorme, e continua crescendo rapidamente. A contínua “corrida de dados” está, portanto, atraindo profissionais com diversas formações, como física, matemática, estatística, economia e engenharia.

O mercado tem urgência por mais cientistas de dados, mas a formação desses profissionais exige muito tempo e esforço.

Inspirado pelo texto de Peter Norving sobre quanto tempo leva para se tornar um especialista em programação, Benjamin Obi Tayo compartilha em “Teach Yourself Data Science in 10 Yearspassos essenciais para dominar os fundamentos da ciência de dados.

Ao longo dessa conversa, Benjamin Obi Tayo te ajudará a encontrar as respostas para duas perguntas que todos os iniciantes em data science devem se fazer:

  1. Quanto tempo leva para aprender os fundamentos da ciência de dados?
  2. Quais recursos usar para aprender ciência de dados?

De forma geral, este artigo vem para nos lembrar que para tornar-se um cientista de dados é preciso tempo, esforço, energia, paciência e comprometimento. Ou seja, cuidado com aquela conversa de “aprenda ciência de dados em quatro semanas”.

 

09- 6 práticas recomendadas para tornar suas funções Python mais legíveis

Você já olhou para uma função que escreveu um mês antes e achou difícil entendê-la em até 3 minutos? Se sim, é hora de refatorar seu código. Se você levar mais de 3 minutos para entender seu próprio código, imagine quanto tempo isto tomará de seus colegas.

Se você deseja que seu código seja reutilizável, ele deve ser legível.

E em seu artigo sobre como escrever código limpo em Python, a cientista de dados Khuyen Tran detalha seis práticas para tornar as funções mais legíveis e mais fáceis de detectar erros. Ela diz que as funções devem ser curtas, fazer uma única coisa, conter código com o mesmo nível de abstração, ter menos de quatro argumentos, não ter duplicação e usar nomes descritivos.

Acompanhe o texto completo para entender como utilizar essas práticas e escrever códigos python muito mais legíveis. 

 

10- Tipos de conjuntos de dados em ciência de dados, mineração de dados e aprendizado de máquina

Para tomar qualquer decisão sobre como lidar com um conjunto de dados, é preciso entender com qual tipo de dados você está trabalhando. E nisso Tarun Gupta te ajudará com seu artigo “Types of Data Sets in Data Science, Data Mining & Machine Learning”.

Antes de tratar especificamente de cada tipo de dataset, Gupta explica dimensionalidade, esparsidade e resolução, que são características gerais dos datasets. A partir disso, ele destrincha os três tipos de conjuntos de dados: dados de registro (record data), dados baseados em gráficos (graph-based data) e dados ordenados (ordered data).  

 

Esses foram os 10 artigos selecionados para nossa lista de hoje, mas não faltam excelentes conteúdos de data science no Medium, como é o caso das publicações que fazemos lá. Então, Acompanhe o Insight Lab no Medium.

E quais outros artigos te ajudaram a ser um cientista de dados melhor? Compartilha aqui nos comentários com a gente e nossos leitores. 

 

Categorias
Bolsas Ciência de Dados Front End Pesquisa Resultado

Resultado: Bolsistas Desenvolvedores Back End e Pesquisadores em Ciência de Dados

O Insight e o laboratório ÍRIS anunciam aqui os nomes de seus novos bolsistas desenvolvedores e pesquisadores:

Pesquisador em Ciência de Dados – Graduado
  • Daniel Jean Rodrigues Vasconcelos;
  • João Victor Barros da Silva.
Pesquisador em Ciência de Dados – Graduando
  • Ítalo Lima Dantas;
  • Guilherme Sales Fernandes.
Desenvolvedor Back End – Graduando
  • Matheus Henrique Rodrigues Barbosa;
  • Francisco Lucas Soares Batista.

Parabéns aos selecionados e obrigado a todos que participaram desta seleção, continuem acompanhando os próximos editais.

Sair da versão mobile