A inteligência artificial está desempenhando uma função cada vez maior na vida das nações civilizadas, embora a maioria dos cidadãos provavelmente não o reconheça. Agora é comum falar com um computador ao chamar um negócio. O Facebook está acabando sendo preciso assustador em reconhecer rostos em fotos enviadas. A interação física com telefones sábios está acabando sendo uma coisa do passado … Com o Siri da Apple, assim como o Discurso do Google, está lentamente, certamente acabar sendo mais fácil de falar com o seu telefone, bem como dizer o que fazer do que digitar ou tocar um ícone. Tente isso se você não tiver antes – se você tiver um telefone Android, estale “OK google”, cumprido por “lumos”. É Magica!
Anúncios de produtos que estamos pensando em aparecer em nossas contas de rede social como se algo esteja lendo nossas mentes. A realidade é, algo está lendo nossas mentes … embora seja difícil definir precisamente o que é que algo é. Um anúncio pode aparecer por algo que queremos, apesar de nunca percebemos que desejamos até que vejamos. Isso não é coincidente, no entanto, é de um algoritmo AI.
No coração de muitas dessas aplicações AI, encontra-se um processo entendido como aprendizado profundo. Houve uma grande conversa sobre a descoberta profunda ultimamente, não apenas aqui em Hackaday, no entanto, ao redor dos interwebs. Bem como a maioria das coisas associadas ao AI, pode ser um pouco desafiador, bem como difícil de compreender sem um fundo forte na ciência da computação.
Se você está familiarizado com os artigos da teoria quântica, você entenderá que gosto de assuntos desafiadores, tire a complicação o melhor que posso, bem como explicá-lo em um método que qualquer um possa entender. É o objetivo deste artigo aplicar uma abordagem semelhante a este conceito de aprendizado profundo. Se as redes neurais fizerem você com os olhos cruzados, bem como a descoberta de máquina, proporcionam pesadelos, check-out. Você verá que “Aprendizagem profunda” parece ser um assunto assustador, no entanto, é verdadeiramente apenas um termo de US $ 20 utilizados para explicar algo cujos underpinnings são bastante simples.
Aprendizagem de máquina
Quando programamos uma máquina para executar uma tarefa, compõemos as instruções, bem como a máquina. Por exemplo, LED em … LED OFF … Não há necessidade para a máquina entender o resultado esperado depois que ele completou as instruções. Não há razão para a máquina entender se o LED estiver ligado ou desligado. Isso só faz o que você disse para fazer. Com a aprendizagem da máquina, este processo é virado. Dizemos a máquina o resultado que queremos, assim como a máquina ‘aprende’ as instruções para chegar lá. Há uma série de métodos para fazer isso, no entanto, vamos nos concentrar em um exemplo simples:
Rede neural antecipada do mit
Se eu pedir para você fazer um pouco robô que pode se orientar a um alvo, um método simples para fazer isso seria colocar o robô, bem como alvo em um plano xy cartesiano, bem como então programar o robô para ir Tantas unidades no eixo X, bem como então muitas unidades no eixo y. Esta técnica simples tem o robô apenas trazer instruções, sem realmente entender onde o alvo é. Funciona apenas quando você entende as coordenadas para o ponto de partida, bem como o alvo. Se for alterado, essa abordagem não funcionaria.
A descoberta da máquina nos permite oferecer com as coordenadas de alteração. Dizemos nosso robô para descobrir o alvo, bem como deixá-lo descobrir ou aprender, suas próprias direções para chegar lá. Um método para fazer isso é que o robô descubra a distância até o alvo, bem como depois mover uma direção aleatória. Recalcular a distância, volte para onde começou, além de registrar a medição de distância. Repetir este processo nos fornecerá uma série de medições de distância após a mudança de uma coordenada fixa. Após x quantidade de medições são tiradas, o robô se moverá na direção em que a distância até o destino é menor, além de repetir a sequência. Isso acabará por atingir o alvo. Em suma, o robô está apenas utilizando tentativa e erro para ‘aprender’ exatamente como chegar ao alvo. Veja, esta coisa não é tão difícil depois de tudo!
Este conceito de “aprender por tentativa e erro” pode ser representado abstratamente em algo que todos nós já ouvimos falar – uma rede neural.
Redes neurais para manequins
As redes neurais recebem seu nome da massa de neurônios em seu Noggin. Embora a rede geral seja absurdamente complexa, a operação de um único neurônio é simples. É uma célula com várias entradas, bem como uma única saída, com sinais químicos-elétricos que fornecem o IO. A especificação da saída é determinada pelo número de entradas ativas, bem como a resistência dessas entradas. Se houver insumos ativos suficientes, um limite será cruzado, bem como a saída terminará estar ativo. Cada saída de um neurônio atua como a entrada para mais um neurônio, produzindo a rede.
Diagrama de Perceptron via exatamente como treinar um neuarl neTwork em Python por Prateek Joshi
Recriando um neurônio (e, portanto, uma rede neural) em silício também deve ser simples. Você tem uma série de insumos em uma soma. Adicione as entradas para cima, bem como se eles ultrapassarem um limite específico, produza um. Mais saída um zero. Bingo! Enquanto isso nos permite imitar um neurônio, infelizmente, não é extremamente útil. Para tornar o nosso bits silicone neurônio vale a pena armazenar na memória flash, nós exigimos fazer as entradas, bem como as saídas menos binárias … Nós requisitos para fornecer os pontos fortes, ou o título mais comumente compreendido: pesos.
No final dos anos 1940, um cara com o nome de Frank Rosenblatt inventou essa coisa chamada Perceptron. O perceptron é como o nosso neurônio de silício que explicamos no parágrafo anterior, com algumas exceções. O mais importante é que os insumos têm pesos. Com a introdução de pesos, bem como um feedback de um pouco, ganhamos uma capacidade mais fascinante … a capacidade de aprender.
Fonte via kdnuggets.
Rebobine de volta ao nosso robô que aprende exatamente como chegar ao alvo. Nós fornecemos o robô um resultado, assim como ele compora suas próprias direções para descobrir exatamente como realizar esse resultado por um processo de teste e erro de movimentos aleatórios, bem como medições de distância em um sistema de coordenadas xy. O conceito de um perceptron é uma abstração desse processo. A saída do neurônio artificial é o nosso resultado. Queremos que o neurônio nos forneça um resultado esperado para um conjunto específico de insumos. Realizamos isso por ter o neurônio alterar os pesos das entradas até conseguir o resultado que queremos.
Ajustar os pesos é feito por um processo chamado de propagação de volta, que é um tipo de feedback. Então você tem um conjunto de insumos, um conjunto de pesos, bem como um resultado. Determinamos exatamente até que ponto o resultado é de onde queremos, bem como utilizar a diferença (conhecido como erro) para alterar os pesos que utilizam uma ideia matemática entendida como decente gradiente. Este processo de “ajuste de peso” é freqüentemente chamado de treinamento, no entanto, nada mais é do que um processo de teste e erro, assim como com nosso robô de bits.
Aprendizado profundo
A descoberta profunda parece ter mais definições do que nos dias de hoje. No entanto, o mais simples, mais diretamente à frente, posso descobrir é uma rede neural com uma ou mais camadas entre a entrada, bem como a saída, bem como utilizada para resolver problemas complexos. Basicamente, a descoberta profunda é apenas uma rede neural complexa utilizada para fazer coisas que são verdadeiramente difíceis para os computadores tradicionais fazerem.
Profundo diagrama de descoberta através de um guia de manequim para descobrir profundamente por Kun Chen
As camadas entre a entrada, bem como a saída são chamadas de camadas ocultas, bem como aumentar significativamente a complexidade da rede neural. Cada camada tem um propósito específico, bem como são organizados em uma hierarquia. Por exemplo, se tivéssemos uma web neural de descoberta profunda treinada para determinar um felino em uma imagem, a primeira camada pode procurar segmentos de linha específicos, bem como arcos. Outras camadas superiores na hierarquia analisarão a saída da primeira camada, bem como tentar determinar formas mais complexas, como círculos ou triângulos. Mesmo camadas mais altas procurarão objetos, como olhos ou bigodes. Para uma explicação mais detalhada das técnicas de classificação hierárquica, certifique-se de inspecionar meus artigos sobre representações invariantes.
A saída real de uma camada não é compreendida com precisão, uma vez que é treinada através de um processo de teste e erro. Duas redes neurais de descoberta profundas semelhantes treinadas com exatamente a mesma imagem criarão diferentes saídas de suas camadas ocultas. Isso traz algumas questões desconfortáveis, pois o MIT está descobrindo.
Agora, quando você ouve alguém falar sobre aprendizado de máquina, redes neurais, bem como aprendizado profundo, você deve ter pelo menos um vago conceito do que é e, mais importante, exatamente como funciona. As redes neurais parecem ser a próxima grande coisa, embora tenham sido por muito tempo agora. Inspecione o artigo [Steven Dufresne’s] sobre o que foi alterado ao longo dos anos, bem como saltar em seu tutorial sobre a utilização de Tensorflow para tentar sua mão no aprendizado de máquina.