Aprendizagem da Máquina Androide

Kayvan Kaseb

Follow

26 de novembro, 2020 – 9 min ler

A imagem é fornecida por Unsplash

Como você sabe, um interesse crescente pela aprendizagem de máquinas forçou as empresas a concentrarem-se e a investirem nela. O Machine Learning (ML) é a maior parte da ciência computacional, que se concentra na análise e interpretação de padrões e estruturas em dados para permitir a aprendizagem, raciocínio e tomada de decisões fora da interação do ser humano. Além disso, Machine Learning é uma abordagem de programação que fornece aos seus aplicativos Android a capacidade de aprender e melhorar automaticamente a partir da experiência anterior. Como resultado, a Google concebeu e implementou uma série de funcionalidades e ferramentas avançadas para o Machine Learning do Android. Este artigo visa discutir alguns conceitos principais e recursos avançados que foram recomendados para desenvolvedores Android.

Introdução e Visão Geral

Basicamente, Machine Learning (ML) é uma abordagem de programação que fornece aos seus aplicativos Android a capacidade de aprender e melhorar automaticamente a partir da experiência sem ser explicitamente programado para isso. Recentemente, o Android tem uma ampla gama de ferramentas de Machine Learning que estão disponíveis para todos: designers, gerentes de produto para engenheiros, desenvolvedores móveis e especialistas em Machine Learning. Agora, o Android é uma plataforma, e uma das maneiras que você pode medir o sucesso de uma plataforma é através das grandes conquistas que você constrói sobre ela. Hoje, o Android roda em 2,5 bilhões de dispositivos, e vários deles já estão usando o ML no dispositivo. Além disso, o on-device Machine Learning não é mais uma tecnologia do futuro porque é acessível para uso agora mesmo. Por exemplo, foi mencionado que mais de 25.000 aplicações no Android e iOS fazem uso das funcionalidades do ML Kit.

Em outras palavras, os telemóveis modernos têm capacidade suficiente para processar tanto quanto os computadores tradicionais podem, e os nossos telefones e tablets são suficientemente poderosos para executar aplicações, que podem aprender e interagir em tempo real. Machine Learning(ML) está nos ajudando a construir aplicativos inteligentes. Por exemplo, a previsão do Google Apps para os próximos aplicativos que você provavelmente irá usar, e um aplicativo móvel, que resolve o maior problema do mundo para encontrar o emoji perfeito. Além disso, Smart Assistants, Snapchat Filters, Smart Reply e Google lens são alguns dos outros produtos de utilização do Machine Learning em dispositivos. Existem vários SDKs em telefones celulares que ajudam a executar a Aprendizagem Automática em dispositivos móveis. Alguns deles incluem kits de desenvolvimento de software desenvolvidos por empresas populares, como Amazon, Intel e Microsoft, e também o Google desenvolveu o ML Kit. As seções seguintes deste ensaio vão considerar alguns conceitos principais e novas funcionalidades que foram recomendadas pelo Google para o desenvolvimento do Android.

A definição de Machine Learning (ML)

Na verdade, a maior parte do Machine Learning está preocupada com a questão de como construir programas de computador que melhoram automaticamente com as experiências. Assim, a sua resposta está nos seus dados. Em suma, Machine Learning é considerado como um subconjunto de IA, que usa métodos estatísticos para permitir que as máquinas melhorem com a experiência. Ele permite que um sistema informático tome decisões para realizar uma determinada tarefa. Estes programas ou algoritmos são concebidos de tal forma que podem aprender e melhorar ao longo do tempo, observando novos dados. O principal objetivo da Aprendizagem de Máquina é derivar significado a partir de dados. Portanto, os dados são a chave para desbloquear a Aprendizagem Automática. Quanto mais qualificados os dados ML tem, mais preciso o algoritmo ML se torna.

Machine Learning (ML) é a ciência dos algoritmos de computador que melhoram automaticamente através de experiências passadas.

Para fazer previsões ou decisões sem ser explicitamente programado, os algoritmos de Aprendizagem de Máquinas constroem um modelo baseado em exemplos que é chamado de dados de treinamento.

Machine Learning é a extração de conhecimento de dados.

Adicionalmente, existem algumas diferenças entre Inteligência Artificial e Aprendizagem de Máquinas. O objetivo da Inteligência Artificial é criar uma máquina que possa imitar uma mente humana, e requer capacidades de aprendizagem também. No entanto, não se trata apenas de aprender; trata-se também de representação de conhecimento, raciocínio e pensamento abstrato. Em contraste, a Aprendizagem Mecânica está focada exclusivamente na escrita de software, que pode aprender a partir de experiências passadas. Além disso, Machine Learning está mais relacionado com Data Mining e Estatística do que com Inteligência Artificial.

Machine Learning permite-nos resolver certos tipos de problemas de forma muito elegante. O importante é que, na prática, usamos a Aprendizagem Automática. Por exemplo, você teve que escrever código para detectar se alguém estava andando. Além disso, se você tinha acesso à sua velocidade, você deve escrever um código bastante simples para especificar uma métrica de velocidade que mostre a caminhada na realidade. Estender esta situação para correr parece bastante simples. Além disso, se quisermos cobrir o ciclismo, só precisamos de adicionar outra condição de limite ao nosso código. Neste momento a questão é o que acontece com outros tipos de actividades, por exemplo, o golfe?

De facto, o golfe inclui muitas caminhadas, mas há também carregar e balançar um monte de tacos. Então, como explicar esta condição? É aqui que a Aprendizagem Automática nos pode ajudar eficazmente. Na programação tradicional, nós expressamos regras em linguagens, como Kotlin, Java. Depois, aplicamos essas regras a problemas de interesse. No Machine Learning, o paradigma é um pouco diferente. Em vez de escrever um monte de regras, nós tiramos muitos dados de etiquetas como fotos de pessoas envolvidas em diferentes tipos de atividades com etiquetas correspondentes para essas atividades. Além disso, se alimentarmos a nossa Rede Neural com esses dados, ela aprenderá as regras de negócio para nós sem a necessidade de defini-las. Em resumo, Machine Learning provou ser notavelmente eficaz na resolução de vários tipos de problemas como detecção de atividade.

Machine Learning in Android Development

Como você notou, Machine Learning é uma abordagem de programação que fornece aos seus aplicativos Android a capacidade de aprender e melhorar automaticamente a partir da experiência sem ser explicitamente programado para fazê-lo. Além disso, isso é adequado para aplicativos Android que utilizam dados não estruturados, como imagens e texto, ou problemas com um grande número de parâmetros, como a previsão da equipe esportiva vencedora. Atualmente, o Android fornece uma grande variedade de ferramentas e métodos de aprendizagem de máquinas: Os guias de design ML, o SDK ML Kit de aprendizagem de máquinas chave na mão do Google, TF Hub para encontrar modelos de ponta pré-construídos, TF Lite Model Maker para treinar um modelo existente com os seus próprios dados, e ML Kit modelos personalizados e Android Studio para integrar estes modelos na sua aplicação Android em um apropriado.

Para desenvolver aplicativos ML para Android, você enfrentará quatro tarefas principais:

  1. Design: identificando objetivos do produto e fornecendo padrões de design ML para alcançá-los.
  2. Build and Train: construindo o modelo ML, ou treinando o modelo pré-treinado do Google.
  3. Inference: o processo de usar um modelo de aprendizagem de máquina, que já foi treinado para realizar uma determinada tarefa.
  4. Deploy: Instalação e atualização de modelos ML para o seu aplicativo Android.

Guia para projetar aplicativos Android

Inicialmente, não há diferença em comparação com outras tecnologias avançadas. Seus designers de produto e engenharia todos combinados para decidir que tipo de problema estamos tentando resolver com o nosso produto. Portanto, não é um único esforço. É um processo extremamente iterativo quando você tem uma nova tecnologia. Você quer testar o limite, e quer colaborar. Além disso, você quer observar como o usuário realmente usa o seu produto. Isto significa que Design, Gerenciamento de Produto e Engenharia de Software desempenham papéis-chave neste processo. O Google produziu dois guias nesta área de estudo da seguinte forma:

  1. O Guia de Pessoas + AI : Neste guia, existem seis secções diferentes para o ajudar a estruturar a sua conversa com os seus designers e gestores de produto. Em geral, ele oferece melhores práticas para ajudar sua equipe a tomar decisões de produtos de IA centradas no ser humano.

2. As especificações do The Material Design for Machine Learning: este guia inclui as seguintes seções:

Primeiro, novas diretrizes de Design de Material para casos de uso de ML em celulares.

Segundo, permitindo grandes UX móveis ponta a ponta alimentados por ML.

Terceiro, código fonte disponível para detecção e rastreamento de objetos e leitura de código de barras.

A decisão chave no desenvolvimento do Android

Como uma questão de fato, uma decisão chave que você deve abordar no desenvolvimento do Android é inferir que será executado no dispositivo, ou usar um serviço de nuvem que seria acessado remotamente. Para tomar esta decisão com precisão, você deve considerar alguns parâmetros como vantagens ou desvantagens. Por exemplo, para a abordagem on-device você enfrentará alguns benefícios como:

  1. Privacidade: Em muitos casos, é mais apropriado simplesmente manter tudo no dispositivo. Portanto, não temos que nos preocupar como os dados são processados na nuvem.

2. Offline: On-device Machine Learning funciona quando não há conectividade, ou quando a rede está fragmentada. Por exemplo, se você passar algum tempo em trens subterrâneos, você saberá que isso pode ser útil.

3. Baixa latência: executando nosso processamento no dispositivo, podemos ser capazes de remover a latência da rede completamente fora da equação. Além disso, acoplando isto com os últimos avanços em aceleração de hardware, podemos dar aos usuários experiências verdadeiramente em tempo real em uma ampla gama de dispositivos Android.

ML Kit para desenvolvedores de aplicativos

Como um fato, ML Kit SDK é um novo produto do Google, que foi apresentado em 2018. O ML Kit é um kit de desenvolvimento de software que permite aos desenvolvedores simplificar a integração de modelos de aprendizagem de máquinas em suas aplicações móveis. Além disso, até mesmo um desenvolvedor júnior pode resolver essa tarefa facilmente. Outro ponto é que ele torna seus aplicativos iOS e Android muito mais envolventes, personalizados e úteis com soluções que são otimizadas para rodar no dispositivo. Como foi mencionado, mais de 25.000 aplicativos no Android e iOS fazem uso dos recursos do ML Kit.

Um novo SDK que traz a experiência de Machine Learning do Google para desenvolvedores móveis em um pacote poderoso e fácil de usar no Firebase.

ML Kit tem alguns recursos que podem ser categorizados em três seções:

  1. Vision: APIs de análise de vídeo e imagem para rotular imagens e detectar códigos de barras, texto, rostos e objetos.
  2. Linguagem Natural: APIs de processamento de linguagem natural para identificar e traduzir entre 58 idiomas e fornecer sugestões de resposta.
  3. Custom: Construa seus próprios modelos usando o AutoML Vision Edge, ou traga seus próprios modelos TensorFlow Lite, execute experimentos e os implante em produção com o ML Kit.
  4. >

>

>

>

A figura é fornecida pelo Google Documents

>

A cada categoria tem algumas características. Por exemplo, o Vision tem algumas características como APIs Base: Barcode Scanning, Face Detection, Image Labeling, Object Detection, Landmark Detection, and Text Detection.

TensorFlow Lite

Basicamente, TensorFlow Lite é um conjunto de ferramentas para ajudar os programadores a executar os modelos TensorFlow em dispositivos móveis, embutidos, e IoT apropriadamente. Na verdade, ele fornece inferência de aprendizagem no dispositivo com baixa latência e um pequeno tamanho binário. Em outras palavras, o TensorFlow Lite foi projetado para facilitar a aprendizagem de máquinas em dispositivos, na borda da rede, em vez de enviar dados de um servidor para frente e para trás. TensorFlow Lite inclui dois componentes principais:

  1. O interpretador TensorFlow Lite : ele roda (modelos otimizados) em muitos tipos diferentes de hardware, como telefones celulares e microcontroladores.

2 O conversor TensorFlow Lite : ele converte os modelos TensorFlow em uma forma produtiva para uso pelo interpretador, e pode ser capaz de introduzir otimizações para melhorar o tamanho e o desempenho binário.

Eventualmente, os passos para utilizar o TensorFlow Lite contêm brevemente os seguintes passos:

  1. Picking a model
  2. Convertendo o modelo
  3. Desenvolvendo para o seu dispositivo
  4. Optimizando o seu modelo

AutoML Vision Edge

Esta nova funcionalidade do Google pode construir modelos personalizados de classificação de imagens a partir dos seus próprios dados de treino. Na verdade, se você está planejando reconhecer o conteúdo de uma imagem, uma opção poderia usar a API de etiquetagem de imagens no dispositivo ML Kit. No entanto, se você precisar de um modelo de etiquetagem de imagem mais especializado, você pode utilizar o Firebase ML e o AutoML Vision Edge para treinar um modelo com suas próprias imagens e categorias. Por exemplo, um modelo para distinguir entre espécies de flores ou tipos de alimentos. O modelo personalizado é treinado no Google Cloud, e depois pode ser usado totalmente no dispositivo.

Em conclusão

Em resumo, Machine Learning é uma abordagem de programação que fornece às suas aplicações Android a capacidade de aprender e melhorar automaticamente a partir da experiência anterior. Como resultado, o Google concebeu e implementou uma série de funcionalidades e ferramentas avançadas para o desenvolvimento do Android. Este artigo considerou alguns conceitos principais e recursos avançados que foram sugeridos para desenvolvedores Android pelo Google.

.