Por que as comunidades de PNL e Machine Learning estão interessadas em aprendizado profundo?


24

Espero que você possa me ajudar, pois tenho algumas perguntas sobre este tópico. Sou novo no campo do aprendizado profundo e, embora tenha feito alguns tutoriais, não consigo relacionar ou distinguir conceitos um do outro.


8
Basicamente, porque eles fornecem resultados de ponta e eliminam a necessidade de engenharia de recursos.
Emre

2
Eu sugeriria não usar PNL e ML juntos nesse contexto, como se fossem entidades comparáveis. Eles são IMHO dois campos distintos. Apesar de a PNL usar muitas abordagens, métodos, algoritmos e ferramentas de ML, a PNL é um campo aplicado, enquanto o ML é (mais) genérico.
Aleksandr Blekh

Respostas:


27

Por que usar redes profundas?

Vamos primeiro tentar resolver uma tarefa de classificação muito simples. Digamos, você modera um fórum da web que às vezes é inundado com mensagens de spam. Essas mensagens são facilmente identificáveis ​​- geralmente contêm palavras específicas como "comprar", "pornografia" etc. e um URL para recursos externos. Você deseja criar um filtro que o alertará sobre essas mensagens suspeitas. Torna-se bastante fácil - você obtém uma lista de recursos (por exemplo, lista de palavras suspeitas e presença de uma URL) e treina uma regressão logística simples (também conhecida como perceptron), ou seja, modelo como:

g(w0 + w1*x1 + w2*x2 + ... + wnxn)

onde x1..xnestão os seus recursos (presença de palavra específica ou URL), w0..wn- coeficientes aprendidos e g()é uma função logística para fazer com que o resultado fique entre 0 e 1. É um classificador muito simples, mas, para esta tarefa simples, pode gerar resultados muito bons, criando limite de decisão linear. Supondo que você tenha usado apenas dois recursos, esse limite pode ser algo assim:

limite linear

Aqui, dois eixos representam recursos (por exemplo, número de ocorrências de palavras específicas em uma mensagem, normalizados em torno de zero), pontos vermelhos permanecem para spam e pontos azuis - para mensagens normais, enquanto a linha preta mostra a linha de separação.

Mas logo você perceberá que algumas boas mensagens contêm muitas ocorrências da palavra "comprar", mas nenhuma URL ou discussão prolongada sobre a detecção de pornografia , na verdade não se refere a filmes pornográficos. O limite de decisão linear simplesmente não pode lidar com essas situações. Em vez disso, você precisa de algo como isto:

limite não linear

Esse novo limite de decisão não linear é muito mais flexível , ou seja, pode ajustar os dados muito mais próximos. Existem várias maneiras de obter essa não linearidade - você pode usar recursos polinomiais (por exemplo x1^2) ou sua combinação (por exemplo x1*x2) ou projetá-los para uma dimensão mais alta, como nos métodos do kernel . Mas nas redes neurais é comum resolvê-lo combinando perceptrons ou, em outras palavras, construindo perceptron multicamada. A não linearidade aqui vem da função logística entre as camadas. Quanto mais camadas, os padrões mais sofisticados podem ser cobertos pelo MLP. A camada única (perceptron) pode lidar com a detecção simples de spam, a rede com 2-3 camadas pode captar combinações complicadas de recursos e as redes com 5-9 camadas, usadas por grandes laboratórios de pesquisa e empresas como o Google, podem modelar o idioma inteiro ou detectar gatos em imagens.

Esse é o motivo essencial para arquiteturas profundas - elas podem modelar padrões mais sofisticados .

Por que redes profundas são difíceis de treinar?

Com apenas um recurso e limite de decisão linear, na verdade, basta ter apenas dois exemplos de treinamento - um positivo e um negativo. Com vários recursos e / ou fronteira de decisão não-linear você precisa de várias ordens de mais exemplos para cobrir todos os casos possíveis (por exemplo, você não precisa encontrar apenas exemplos com word1, word2e word3, mas também com todos os possíveis suas combinações). E na vida real, você precisa lidar com centenas e milhares de recursos (por exemplo, palavras em um idioma ou pixels em uma imagem) e pelo menos várias camadas para ter não linearidade suficiente. O tamanho de um conjunto de dados, necessário para treinar completamente essas redes, excede facilmente 10 ^ 30 exemplos, tornando totalmente impossível obter dados suficientes. Em outras palavras, com muitos recursos e muitas camadas, nossa função de decisão se torna muito flexívelpara poder aprender com precisão .

Existem, no entanto, maneiras de aprender aproximadamente . Por exemplo, se estivéssemos trabalhando em ambientes probabilísticos, em vez de aprender frequências de todas as combinações de todos os recursos, poderíamos assumir que eles são independentes e aprendem apenas frequências individuais, reduzindo o classificador Bayes completo e irrestrito a um Naive Bayes e, portanto, exigindo muito, muito menos dados para aprender.

Nas redes neurais, houve várias tentativas de (significativamente) reduzir a complexidade (flexibilidade) da função de decisão. Por exemplo, redes convolucionais, amplamente usadas na classificação de imagens, assumem apenas conexões locais entre pixels próximos e, portanto, tentam aprender apenas combinações de pixels dentro de pequenas "janelas" (digamos, 16x16 pixels = 256 neurônios de entrada) em oposição a imagens completas (digamos, 100x100 pixels = 10000 neurônios de entrada). Outras abordagens incluem a engenharia de recursos, ou seja, a pesquisa de descritores específicos, descobertos pelo homem, de dados de entrada.

Os recursos descobertos manualmente são realmente muito promissores. No processamento de linguagem natural, por exemplo, às vezes é útil usar dicionários especiais (como aqueles que contêm palavras específicas de spam) ou capturar negação (por exemplo, " não é bom"). E, na visão computacional, coisas como descritores SURF ou recursos do tipo Haar são quase insubstituíveis.

Mas o problema com a engenharia manual de recursos é que leva literalmente anos para surgir bons descritores. Além disso, esses recursos geralmente são específicos

Pré-treinamento não supervisionado

Mas acontece que podemos obter bons recursos automaticamente a partir dos dados, usando algoritmos como auto - codificadores e máquinas Boltzmann restritas . Descrevi-os em detalhes em minha outra resposta , mas, em resumo, eles permitem encontrar padrões repetidos nos dados de entrada e transformá-los em recursos de nível superior. Por exemplo, considerando apenas os valores de pixel de linha como uma entrada, esses algoritmos podem identificar e passar arestas inteiras mais altas e, a partir dessas arestas, construir figuras e assim por diante, até que você obtenha descritores de alto nível, como variações nas faces.

aprendizagem profunda

Depois que essa rede de pré-treinamento (não supervisionada) é geralmente convertida em MLP e usada para treinamento supervisionado normal. Observe que esse pré-treinamento é feito em camadas. Isso reduz significativamente o espaço da solução para o algoritmo de aprendizado (e, portanto, o número de exemplos de treinamento necessários), pois ele só precisa aprender parâmetros dentro de cada camada sem levar em conta outras.

E além...

O pré-treinamento não supervisionado já existe há algum tempo, mas recentemente outros algoritmos foram encontrados para melhorar o aprendizado de ambos - junto com o pré-treinamento e sem ele. Um exemplo notável de tais algoritmos é o abandono - técnica simples, que aleatoriamente "elimina" alguns neurônios durante o treinamento, cria alguma distorção e impede redes de acompanhar os dados com muita atenção. Esse ainda é um tópico de pesquisa muito importante, então deixo isso para um leitor.


3
Uma explicação bonita é essa!
Dawny33

6

Primeiro, precisamos entender por que precisamos de aprendizado profundo. Para criar modelos ML, são necessários dados de teste com etiquetas (supervisionadas ou não supervisionadas). Em muitos domínios, à medida que os dados crescem, é difícil manter os dados com rótulos. As redes de aprendizado profundo não precisam de dados rotulados. Os algoritmos de aprendizado profundo podem descobrir os rótulos. Portanto, isso evita a necessidade de especialistas em domínio apresentarem rótulos para os dados, o que é muito importante nas áreas de reconhecimento de fala, visão por computador e entendimento de linguagem. O reconhecimento de imagens do Google Cat é um experimento muito interessante. Também é interessante conhecer "Geoffrey Hinton" o professor que foi contratado pelo Google.

http://www.wired.com/2014/01/geoffrey-hinton-deep-learning/

Você pode obter mais informações ao explorar nesta estrutura.


11
O aprendizado profundo não pode descobrir os rótulos (como poderia ser?), Mas apenas aprender recursos. Você ainda precisa de uma quantidade de dados rotulados e de aprendizado supervisionado para resolver tarefas como classificação ou regressão.
F1

0

O Deep Learning existe há muito tempo. CNN, RNN, Boltzmann Machines certamente parecem novas técnicas, mas foram desenvolvidas há muito tempo. Confira a história do aprendizado profundo

https://en.wikipedia.org/wiki/Deep_learning#History

O ressurgimento do Deep Learning se deve ao fato de que os poderes computacionais aumentaram exponencialmente a partir desse momento. Com um laptop equipado com GPUs, é possível treinar um modelo complexo de Deep Learning em um tempo muito pequeno em comparação com os dias anteriores. Modelos de aprendizado profundo também são muito eficientes empiricamente. O estado da arte atual em Imagens, Fala e muitos campos é o modelo de Aprendizado Profundo.

Creio que, devido a esses fatores, podemos ver que muita comunidade da PNL / ML mudou seu foco no Deep Learning.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.