Machine Learning

O Que É Aprendizado de Máquina?
Aprendizado de máquina (em inglês, machine learning) é um método de análise de dados que automatiza uma construção de modelos analíticos. A uma vertente da inteligência artificial, que se baseia na ideia de que os sistemas podem aprender com dados, adotar padrões e tomar decisões com o mínimo de intervenção humana.

De forma bem simples, Aprendizado de Máquina é um conjunto de regras e procedimentos, que permite que os sistemas de controle e a tomada de dados sejam executados de forma compartilhada.

Programas de Aprendizagem de Máquinas também são desenvolvidos para aprender e melhorar ao longo do tempo quando expostos a novos dados. O aprendizado de uma máquina tem estado no centro de muitos projetos tecnológicos nos últimos anos, como os dirigentes, visão computacional e sistemas de reconhecimento de voz.

Sem aprendizado de máquina, uma incerteza vem dos mais impressos: é uma previsão do futuro para alguns dados do passado? Qual é o melhor modelo para se integrar alguns dados? Que medida devo tomar para fazer o próximo? A abordagem probabilística da aprendizagem da máquina está intimamente relacionada no campo das estatísticas, mas diferiu em termos de ênfase e terminologia. Cientistas descrevem uma ampla variedade de probabilidades, habilidades para uma variedade de dados e tarefas. Also uma grande variedade de algoritmos para aprender e usar tais modelos.

No entanto, o não toma exactamente o mesmo, o deve ser adoptado, visto que cada vez é diferente e os tamanhos garantidos são diferentes.

Conceitos sobre Machine Learning
Aprendizagem Supervisionada (Aprendizagem Supervisionada)

É termo usado sempre que o programa é treinado sobre um conjunto de dados pré-definidos. Based the training with the data-ready, the programme a tomar atitudes precisas quando os novos dados. Exemplo: Pode-se usar um conjunto de dados de recursos humanos para o treinamento da Máquina de Aprendizagem, Que Receber Comentários como Ativos, Negativos e Neutros sobre Atuação de Filmes e assim Treinar um Classificador de Análise.

O aprendizado de jogos pode ser usado como um recurso de recompensa ou um feedback para o treinamento da aprendizagem de um jogo, ou seja, quando você recebe uma punição ou feedback negativo.

Aprendizagem Não Supervisionada (Aprendizagem Não Supervisionada)

Termo usado quando ele tem uma vez que o padrão e as informações de um conjunto de dados. Exemplo: Análise de um conjunto de dados de e-mails e agrupamento automático de e-mails relacionados ao tema, sem que o programa possua qualquer conhecimento prévio sobre os dados. O programa não tem uma biblioteca ou tags prévia.

Classificação (Classificação)

A classificação é uma sub-categoria de aprendizagem supervisionada. Classificação é o processo de embarque de um tipo de entrada e de um rótulo (tag) a ela. Sistemas de classificação são utilizados quando se trata de uma mensagem de natureza distinta, ou seja, um simples “sim ou não”. Exemplo: Mapeamento de uma imagem de uma pessoa e uma questão como homem ou mulher.

Regressão (Regressão)

Outra sub-categoria de aprendizagem supervisionada quando se trata de um valor que está sendo exibido em um “sim ou não” e que se segue num espectro contínuo. Sistemas de regressão será usado, por exemplo, para responder às perguntas: “Quanto custa?” Ou “quantos existem?”.

Árvores de decisão (árvores de decisão)

Uma árvore de referência é uma ferramenta de apoio que usa um gráfico de árvore ou modelo de processo e as suas consequências. Uma árvore de avaliação é também uma maneira de representar visualmente um algoritmo.

Modelo Gerador (Modelo Generativo)

Em potencial e estatística, um Modelo é um modelo usado para gerar alguns pontos de controle quando alguns são desconhecidos. Modelos geradores são usados ​​em Aprendizado de Máquina para qualquer modelagem de dados como um passo intermediário para a formação de uma função de densidade de acomodações adicionais. Em outras palavras, podemos modelar P (x, y), um fim de fazer previsões (que podem ser convertidos para p (x | y) aplicando uma regra de Bayes),, y), o que foi amplamente utilizado na Aprendizagem não supervisionada. Modelos de Modelos Geradores naive Bayes, Latent Alocação de Dirichlet e Modelo Gaussiano de Misturas.

Modelos Condicionais (Modelo Discriminativo)

Modelo Discriminativo ou Modelos Condicionais, são uma classe de modelos usados ​​em Aprendizado de Máquina para modelar um dependência de uma variável e em uma variável x. Como estes modelos tentam calcular probabilidades condicionais, isto é, p (y | x) são frequentemente utilizados em aprendizado supervisionado. Exemplos gerais regressão logística, SVMs e Redes Neurais.

Aprendizagem Profunda (Deep Learning)

Este tem sido um tema muito discutido recentemente. Basicamente, uma aprendizagem profunda refere-se a uma categoria de algoritmos de aprendizado de máquina, que por muitas vezes utilizam redes neurais artificiais para gerar modelos. Técnicas de Aprendizagem Profunda, por exemplo, foram muito bem sucedidas na resolução de problemas de reconhecimento de imagem devido à sua capacidade de escolha como melhores características, bem como expressões de representação. Inspirado por redes neurais biológicas, redes neurais artificiais são uma rede de nós interconectados que compõem um modelo. As séries podem ser representadas como modelos de aprendizagem que são usadas para calcular ou aproximar as funções de um número grande de entradas.

Exemplo Utilizando o algoritmo de Q-Learning na Unity
No exemplo o agente foi construído no Unity para obter um aprendizado para o cumprimento de uma meta. O agente representado pelo cubo com um desenho de cachorro recebe uma recompensa positiva de 50 pontos por cada vez que ele chega ao cubo com um desenho de osso, também é descontado -1 ponto por cada movimento executado (simulando o gasto de energia do agente) para força-lo a sempre escolher um caminho mais curto. Em alguns ambientes, há também um cubo com o desenho da carrocinha do qual o agente recebe uma recompensa negativa de -50 pontos.

Ele só possui 2 estados: vagando aleatoriamente(que se refere ao momento em que ele inicia o movimento) ou buscando, que é quando ele já utiliza as coordenadas X e Y de localização do cubo de recompensa apos a primeira iteração, e pode fazer 4 movimentos: para cima, para baixo, para a esquerda, para a direita. Assim que ele chega a recompensa, seja positiva ou negativa, o agente volta a posição original(S =0) e deve iniciar a nova tentativa (atualizar S=1), aproximando-se cada vez mais do caminho ideal.

Uma fórmula é utilizada para esse algoritmo: Q(s, a) <-- Q(s, a) + alpha [r + y MAXa'Q(s', a) - Q(s, a)]

Essa formula é aplicada ao ambiente em conjunto com demais scripts como esta explicado no vídeo de cada cena, os ambientes servem para simular o aprendizado de forma variada,pois o agente não pode "ver" os cubos nem de recompensa positiva e nem negativa, ele apenas tem ciência das coordenadas que deve seguir, pois como dito no inicio da explicação a meta é encontrar o menor caminho ate a recompensa.

Os parâmetros utilizados para atualização do valor de Q são:

s= estado do agente sendo 0 o estado inicial(vagando) e 1 buscando(farejando)

a= ação a ser tomada. A ação deverá ser tomada com base na politica de greedy. Politica de Greedy significa que na maioria das vezes a ação tomada será a com maior recompensa estimada, chamada de ação gananciosa, de vez em quando com uma pequena probabilidade representada pelo epsilon, uma ação aleatória será tomada.

* Para maior entendimento da politica de greedy leia o artigo completo no link:http://www.cse.unsw.edu.au/~cs9417ml/RL1/tdlearning.html#aselection

Alpha: que se refere a taxa de aprendizado do agente, ela é sempre definida entre 0 e 1, sendo que definindo como 0 o valor de Q nunca será atualizado e portanto nunca haverá aprendizado, se definir um valor alto como 0,9 significa que o aprendizado ocorrerá rapidamente.

Y= se refere ao fator de desconto que utiliza valor de -1. Isso modela o fato de que recompensas imediatas valem mais que as recompensas futuras para assim fazer o agente aprender a utilizar o caminho mais curto.

R= se refere a recompensa.

MAXa= recompensa máxima atingida no estado seguinte ao atual.

Link para baixar o projeto da Unity: https://drive.google.com/open?id=1VQkv1TKs14CVlrxoFUlHR2rZwp_RYfMW

Esse link se refere a base Bibliográfica da Pesquisa:

http://www.cse.unsw.edu.au/~cs9417ml/RL1/algorithms.html

Abaixo os vídeos demonstrando o funcionamento na Unity.

Para cada cena foi utilizado o seguinte procedimento:

Cena 1: o agente tem acesso apenas ao cubo com a recompensa, ele não pode "ver" o cubo mas apos a primeira iteração ele passar a saber o valor das suas coordenadas X e Y. Inicia a tabela Q, Q(s,a) com o estado atual de S valendo 0 assim ele estará vagando aleatoriamente ate que encontre o cubo e tenha acesso a suas coordenadas, apos isso ele retorna ao ponto de partida e inicia a busca, o estado S passa a ser 1 que é buscando(farejando), nesse estado R valerá 50, pois terá acesso apenas a recompensa positiva e o Y de desconto será de -1 e a taxa de aprendizado Alpha será de 0,5. A função utilizada será Q(s, a) <-- Q(s, a) + alpha+rCena 2: o agente terá acesso ao cubo de recompensa negativa, lembrando que o agente precisa otimizar seu caminho para que ao receber a recompensa não fique negativo devido a quantidade de energia/passos. Aplica-se a função Q(s, a) <-- Q(s, a) + alpha [r + y MAXa'Q(s', a) - Q(s, a)] que esta escrita acima na explicação, e repete o mesmo procedimento da cena 1 porém ele terá agora o valor de MAXa que se refere ao maior valor de recompensa, pois terá também a recompensa negativa do cubo da carrocinha.

Cena 3: agora o agente também deverá aprender a desviar de obstáculos, mantendo a mesma lógica de otimizar seu caminho ate a recompensa positiva. Iremos repetir o passo da cena 2 e a mesma função será utilizada, a unica diferença é que há um script de colisão aplicado aos obstáculos que impede o agente de atravessar entre os cubos terá uma função que faz desviar dos colisores, sendo assim ele aprende o caminho mais curto entre as recompensas.