O que é Deep Learning? Aplicação com MATLAB

O que é Deep Learning? Aplicação com MATLAB

O deep learning, ou aprendizagem profunda,  é uma técnica de machine learning que ensina os computadores a fazer o que é natural aos seres humanos: aprender, por exemplo. O deep learning é uma tecnologia-chave por trás dos carros sem motorista, o que lhes permite reconhecer um sinal de parada ou distinguir um pedestre de um poste de luz. É a chave para o controle de voz em dispositivos como telefones, tablets, TVs e alto-falantes. Deep learning está recebendo muita atenção ultimamente e por boas razões. Está alcançando resultados que não eram possíveis antes.

No deep learning, um modelo de computador aprende a executar tarefas de classificação diretamente de imagens, texto ou som. Os modelos de aprendizagem profunda podem atingir uma precisão de última geração, às vezes excedendo o desempenho em nível humano. Os modelos são treinados usando um grande conjunto de dados rotulados e arquiteturas de redes neurais que contêm várias camadas.

Por que Deep Learning importa?

Como o aprendizado profundo alcança resultados tão impressionantes?

Em uma palavra, precisão. O deep learning alcança a precisão de reconhecimento em níveis mais altos do que nunca. Isso ajuda os dispositivos eletrônicos a atender às expectativas dos usuários e é crucial para aplicativos críticos para a segurança, como carros sem motorista. Recentes avanços na aprendizagem profunda melhoraram ao ponto em que o deep learning supera os humanos em algumas tarefas, como classificar objetos em imagens.

Embora o deep learning tenha sido teorizada pela primeira vez na década de 1980, há dois motivos principais pelos quais ela recentemente se tornou útil:

O deep learning requer grandes quantidades de dados. Por exemplo, o desenvolvimento de carros sem motoristas requer milhões de imagens e milhares de horas de vídeo.

O deep learning requer um poder computacional substancial. As GPUs de alto desempenho têm uma arquitetura paralela que é eficiente para o deep learning. Quando combinado com clusters ou computação em nuvem, isso permite que as equipes de desenvolvimento reduzam o tempo de treinamento de uma rede de deep learning de semanas para horas ou menos.

Exemplos de Aprendizagem Profunda em Funcionamento

Aplicativos de aprendizagem profunda são usados ​​em indústrias, desde a condução automatizada até dispositivos médicos.

  1. Condução Automatizada: Pesquisadores automotivos estão usando o deep learning para detectar automaticamente objetos como sinais de parada e semáforos. Além disso, o deep learning é usado para detectar pedestres, o que ajuda a diminuir os acidentes.
  2. Aeroespacial e Defesa: O deep learning é usado para identificar objetos de satélites que localizam áreas de interesse e identificam zonas seguras ou inseguras para as tropas.
  3. Pesquisa Médica: Pesquisadores de câncer estão usando o deep learning para detectar automaticamente as células cancerígenas. Equipes da UCLA construíram um microscópio avançado que produz um conjunto de dados de alta dimensão usado para treinar uma aplicação de deep learning para identificar com precisão as células cancerígenas.
  4. Automação Industrial: Deep learning está ajudando a melhorar a segurança do trabalhador em torno de máquinas pesadas, detectando automaticamente quando pessoas ou objetos estão dentro de uma distância insegura de máquinas.
  5. Eletrônica: O deep learning está sendo usada na audição automatizada e na tradução da fala. Por exemplo, os dispositivos de assistência domiciliar que respondem à sua voz e conhecem suas preferências são alimentados por aplicativos de deep learning.

Como funciona o Deep Learning

A maioria dos métodos de deep learning usa arquiteturas de rede neural, e é por isso que os modelos de aprendizado profundo são geralmente chamados de redes neurais profundas.

O termo “profundo” geralmente se refere ao número de camadas ocultas na rede neural. As redes neurais tradicionais contêm apenas 2-3 camadas ocultas, enquanto as redes profundas podem ter até 150.

Modelos de deep learning são treinados usando grandes conjuntos de dados rotulados e arquiteturas de redes neurais que aprendem recursos diretamente dos dados sem a necessidade de extração manual de recursos.

Um dos tipos mais populares de redes neurais profundas é conhecido como redes neurais convolucionais (CNN ou ConvNet). Uma CNN envolve recursos aprendidos com dados de entrada e usa camadas convolucionais 2D, tornando essa arquitetura adequada ao processamento de dados 2D, como imagens.

As CNNs eliminam a necessidade de extração manual de recursos, portanto, você não precisa identificar os recursos usados para classificar as imagens. A CNN funciona extraindo recursos diretamente das imagens. As características relevantes não são pré-tratadas; eles são aprendidos enquanto a rede treina em uma coleção de imagens. Essa extração automatizada de recursos torna os modelos de deep learning altamente precisos para tarefas de visão computacional, como a classificação de objetos.

As CNNs aprendem a detectar diferentes características de uma imagem usando dezenas ou centenas de camadas ocultas. Cada camada oculta aumenta a complexidade dos recursos da imagem aprendida. Por exemplo, a primeira camada oculta pode aprender como detectar bordas e a última aprende como detectar formas mais complexas especificamente relacionadas à forma do objeto que estamos tentando reconhecer.

Qual é a diferença entre Machine Learning e Deep Leaning?

O aprendizado profundo é uma forma especializada de Machine Learning. Um fluxo de trabalho de aprendizado de máquina começa com recursos relevantes sendo extraídos manualmente das imagens. Os recursos são usados ​​para criar um modelo que classifica os objetos na imagem. Com um fluxo de trabalho de deep learning, os recursos relevantes são extraídos automaticamente das imagens. Além disso, o aprendizado profundo realiza o aprendizado de ponta a ponta, em que uma rede recebe dados brutos e uma tarefa a ser executada, como classificação, e aprende como fazer isso automaticamente.

Outra diferença fundamental é a escala de algoritmos de deep learning com dados, enquanto a aprendizagem superficial converge. Aprendizado superficial refere-se aos métodos de machine learning que estabilizam em um determinado nível de desempenho quando você adiciona mais exemplos e dados de treinamento à rede.

Uma das principais vantagens das redes de deep learning é que elas geralmente continuam melhorando à medida que o tamanho de seus dados aumenta.

No machine learning, você escolhe manualmente recursos e um classificador para classificar imagens. Com a aprendizagem profunda, as etapas de extração de recursos e modelagem são automáticas.

Escolhendo entre Machine Learning e Deep Learning

O machine learning oferece uma variedade de técnicas e modelos que você pode escolher com base no seu aplicativo, no tamanho dos dados que está processando e no tipo de problema que deseja resolver. Um aplicativo de deep learning bem-sucedido requer uma quantidade muito grande de dados (milhares de imagens) para treinar o modelo, bem como GPUs ou unidades de processamento gráfico, para processar rapidamente seus dados.

Ao escolher entre machine learning e deep learning, considere se você tem uma GPU de alto desempenho e muitos dados rotulados. Se você não tiver uma dessas coisas, poderá fazer mais sentido usar o machine learning em vez de deep learning. A aprendizagem profunda é geralmente mais complexa, pelo que necessitará de pelo menos alguns milhares de imagens para obter resultados fiáveis. Ter um GPU de alto desempenho significa que o modelo levará menos tempo para analisar todas essas imagens.

Como criar e treinar modelos de deep learning

As três maneiras mais comuns pelas quais as pessoas usam a aprendizagem profunda para realizar a classificação de objetos são:

Treinamento do zero

Para treinar uma rede profunda do zero, você reúne um conjunto de dados rotulados muito grande e projeta uma arquitetura de rede que aprenderá os recursos e o modelo. Isso é bom para novos aplicativos que terão um grande número de categorias de saída. Essa é uma abordagem menos comum, pois com a grande quantidade de dados e a taxa de aprendizado, essas redes geralmente levam dias ou semanas para serem treinadas.

Transferir Aprendizagem

A maioria dos aplicativos de aprendizagem profunda usa a abordagem de aprendizado por transferência, um processo que envolve o ajuste fino de um modelo pré-planejado. Você começa com uma rede existente, como a AlexNet ou a GoogLeNet, e alimenta novos dados contendo classes anteriormente desconhecidas. Depois de fazer alguns ajustes na rede, agora você pode executar uma nova tarefa, como categorizar apenas cães ou gatos em vez de 1.000 objetos diferentes. Isso também tem a vantagem de precisar de muito menos dados (processando milhares de imagens, em vez de milhões), para que o tempo de computação caia para minutos ou horas.

A transferência de aprendizado requer uma interface com os internos da rede pré-existente, para que possa ser modificada cirurgicamente e aprimorada para a nova tarefa.

Extração de recursos

Uma abordagem um pouco menos comum e mais especializada para o deep learning é usar a rede como um extrator de recursos. Como todas as camadas têm a tarefa de aprender certos recursos das imagens, podemos extrair esses recursos da rede a qualquer momento durante o processo de treinamento. Esses recursos podem ser usados ​​como entrada para um modelo de aprendizado de máquina, como máquinas de vetores de suporte (SVM).

Acelerando Modelos de Deep Learning com GPUs

Treinar um modelo de aprendizagem profunda  pode levar muito tempo, de dias a semanas. Usando aceleração de GPU pode acelerar o processo significativamente. Usar uma GPU reduz o tempo necessário para treinar uma rede e reduzir o tempo de treinamento para um problema de classificação de imagem de dias para horas. Ao treinar modelos de deep learning, o MATLAB usa GPUs (quando disponíveis) sem exigir que você entenda como programar GPUs explicitamente.

O que é Deep Learning
Neural Network Toolbox comandos para treinar sua própria CNN a partir do zero ou usando um modelo pré-treinado para aprendizagem de transferência.

Aplicações de Aprendizagem Profunda

Modelos de rede neural profunda pré-treinados podem ser usados para aplicar rapidamente a aprendizagem profunda aos seus problemas, realizando aprendizado de transferência ou extração de recursos. Para os usuários do MATLAB, alguns modelos disponíveis incluem o AlexNet, o VGG-16 e o VGG-19, bem como os modelos Caffe (por exemplo, do Caffe Model Zoo) importados usando o importCaffeNetwork.

Exemplo: detecção de objetos

Além do reconhecimento de objetos, que identifica um objeto específico em uma imagem ou vídeo, o deep learning também pode ser usado para detecção de objetos. A detecção de objetos significa reconhecer e localizar o objeto em uma cena e permite que vários objetos sejam localizados na imagem.

Arendizagem profunda com o MATLAB

O MATLAB facilita a aprendizagem profunda. Com ferramentas e funções para gerenciar grandes conjuntos de dados, o MATLAB também oferece caixas de ferramentas especializadas para trabalhar com machine learning, redes neurais, visão computacional e direção automatizada.

Com apenas algumas linhas de código, o MATLAB permite que você faça um deep learning sem ser um especialista. Comece rapidamente, crie e visualize modelos e implante modelos em servidores e dispositivos incorporados.

Como fazer um Deep Learning sem ser um Especialista.

Você pode usar o MATLAB para aprender e adquirir experiência na área de deep learning. A maioria de nós nunca fez um curso de aprendizagem profunda. Temos que aprender no trabalho. O MATLAB torna o aprendizado sobre este campo prático e acessível. Além disso, o MATLAB permite que os especialistas façam um deep learning – em vez de entregarem a tarefa aos cientistas de dados que talvez não conheçam seu setor ou aplicativo.

Automatize a Rotulagem de Imagens e Vídeo.

O MATLAB permite que os usuários rotulem os objetos de forma interativa nas imagens e possam automatizar a rotulagem de vídeos para treinamento e teste de modelos de deep learning. Essa abordagem interativa e automatizada pode levar a melhores resultados em menos tempo.

Integre Deep Learning em um único fluxo de trabalho.

O MATLAB pode unificar vários domínios em um único fluxo de trabalho. Com o MATLAB, você pode pensar e programar em um único ambiente. Ele oferece ferramentas e funções para deep learning e também para uma variedade de domínios que alimentam algoritmos de deep learning, como processamento de sinais, visão computacional e análise de dados.

Com o MATLAB, você pode integrar resultados em seus aplicativos existentes. O MATLAB automatiza a implantação de seus modelos de aprendizagem profunda em sistemas corporativos, clusters, nuvens e dispositivos incorporados.

[Total: 0    Média: 0/5]