BT

Google Discorre Sobre a Dívida Técnica no Aprendizado de Máquina

| por Mikio Braun Seguir 0 Seguidores , traduzido por Roberto Pepato Seguir 31 Seguidores em 25 fev 2015. Tempo estimado de leitura: 2 minutos |

Pesquisadores e engenheiros do Google apresentaram sua visão sobre a dívida técnica utilizando aprendizado de máquina no workshop Engenharia de Software para Aprendizado de Máquina, que foi parte integrante da conferência anual NIPS, realizada em Montreal. Eles identificaram diferentes aspectos da dívida técnica e chegaram à conclusão que utilizar aprendizado de máquina ou análises de dados complexas em sua empresa sem o devido cuidado pode gerar novos tipos de dívidas técnicas, diferentes daquelas conhecidas na engenharia de software clássica.

No artigo, eles identificaram quatro diferentes áreas nas quais a dívida técnica ocorre: erosão de limites entre subsistemas, dependências de dados, anti-padrões em sistemas e problemas que surgem ao lidar com mudanças no mundo real.

Por exemplo, o estudo afirma que os métodos de aprendizado de máquina são definidos como sistemas que misturam insumos provenientes de diferentes partes com o objetivo de chegar a previsões de alta precisão. Entretanto, isto significa que utilizar estes métodos automaticamente nos leva a um emaranhado de módulos que antes estavam bem isolados. O resultado é que mudanças em um único módulo podem afetar significativamente o desempenho global das previsões.

Assim como a reutilização das bibliotecas leva à dependência de código, os métodos de aprendizado de máquina levam àdependência de dados. Um problema identificado pelo estudo é que as fontes de dados são frequentemente instáveis, gerando instabilidade no módulo de previsão.

Uma abordagem comum para aprendizado de máquina consiste em usar um grande conjunto de fontes de dados disponíveis e então deixar o algoritmo identificar as fontes relevantes. Consequentemente, utiliza-se mais fontes de dados que o estritamente necessário. Neste ponto, uma limpeza periódica pode ser útil.

Finalmente, o estudo diz que ferramentas para rastrear, documentar e resolver dependências de dados também são importantes, de forma similar às ferramentas para tratamento de dependência de código.

Da perspectiva de arquitetura de sistemas, utilizar métodos de aprendizado de máquina frequentemente nos leva a alguns anti-padrões de design de software conhecidos. Especialmente ao utilizar software de aprendizado de máquina de propósito geral, uma grande quantidade de código é necessária para integração de suas partes. Neste ponto, a reescrita a partir do zero pode ser útil.

Experimentar com diferentes alternativas de análise sem realizar uma limpeza periódica do código frequentemente leva a caminhos de "código morto" (i.e. código que nunca será executado).

O Google é conhecido por utilizar aprendizado de máquina e análises de dados complexas em vários de seus principais serviços. Por exemplo, eles estão usando modelos de previsão para otimizar o local de apresentação de um anúncio para o seu serviço. Serviços como a busca de imagens também são baseados em aprendizado de máquina. Recentemente, o Google investiu pesado nesta área adquirindo, por exemplo, as startups Deepmind e DNNresearch. Outras empresas estão seguindo caminhos similares. Por exemplo, o Facebook criou um laboratório de aprendizado de máquina em Nova York.

 

Avalie esse artigo

Relevância
Estilo/Redação

Olá visitante

Você precisa cadastrar-se no InfoQ Brasil ou para enviar comentários. Há muitas vantagens em se cadastrar.

Obtenha o máximo da experiência do InfoQ Brasil.

Dê sua opinião

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber mensagens dessa discussão
Comentários da comunidade

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber mensagens dessa discussão

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber mensagens dessa discussão

Dê sua opinião

Faça seu login para melhorar sua experiência com o InfoQ e ter acesso a funcionalidades exclusivas


Esqueci minha senha

Follow

Siga seus tópicos e editores favoritos

Acompanhe e seja notificados sobre as mais importantes novidades do mundo do desenvolvimento de software.

Like

Mais interação, mais personalização

Crie seu próprio feed de novidades escolhendo os tópicos e pessoas que você gostaria de acompanhar.

Notifications

Fique por dentro das novidades!

Configure as notificações e acompanhe as novidades relacionada a tópicos, conteúdos e pessoas de seu interesse

BT