Aprendizado de máquina

Origem: Wikipédia, a enciclopédia livre.
(Redirecionado de Aprendizagem de máquina)
Ir para: navegação, pesquisa
Question book.svg
Esta página ou secção não cita fontes confiáveis e independentes, o que compromete sua credibilidade (desde junho de 2010). Por favor, adicione referências e insira-as corretamente no texto ou no rodapé. Conteúdo sem fontes poderá ser removido.
Encontre fontes: Google (notícias, livros e acadêmico)

aprendizagem automática ou aprendizado de máquina (em inglês: "machine learning") é um sub-campo da ciência da computação[1] que evoluiu do estudo de reconhecimento de padrões e da teoria da aprendizagem computacional em inteligência artificial[1]. Em 1959, Arthur Samuel definiu aprendizado de máquina como o "campo de estudo que dá aos computadores a habilidade de aprender sem serem explicitamente programados"[2](livre tradução). A aprendizagem automática explora o estudo e construção de algoritmos que podem aprender de seus erros e fazer previsões sobre dados[3]. Tais algoritmos operam construindo um modelo a partir de inputs amostrais a fim de fazer previsões ou decisões guiadas pelos dados ao invés de simplesmente seguindo inflexíveis e estáticas instruções programadas. Enquanto que na inteligência artificial existem dois tipos de raciocínio - o indutivo, que extrai regras e padrões de grandes conjuntos de dados, e o dedutivo - o aprendizado de máquina só se preocupa com o indutivo.

Algumas partes da aprendizagem automática estão intimamente ligadas (e muitas vezes sobrepostas) à estatística computacional; uma disciplina que foca em como fazer previsões através do uso de computadores, com pesquisas focando nas propriedades dos métodos estatísticos e sua complexidade computacional. Ela tem fortes laços com a otimização matemática, que produz métodos, teoria e domínios de aplicação para este campo. A aprendizagem automática é usada em uma variedade de tarefas computacionais onde criar e programar algoritmos explícitos é impraticável. Exemplos de aplicações incluem filtragem de spam, reconhecimento ótico de caracteres (OCR)[4], processamento de linguagem naturalmotores de buscadiagnósticos médicosbioinformáticareconhecimento de falareconhecimento de escritavisão computacional e locomoção de robôs. O aprendizado de máquinas é às vezes confundido com mineração de dados[5], que é um sub-campo que foca mais em análise exploratória de dados e é conhecido como aprendizado não supervisionado[6]. No campo da análise de dados, o aprendizado de máquinas é um método usado para planejar modelos complexos e algoritmos que prestam-se para fazer predições- no uso comercial, isso é conhecido como análise preditiva. Esses modelos analíticos permitem que pesquisadores, cientistas de dados, engenheiros, e analistas possam "produzir decisões e resultados confiáveis e repetíveis" e descobrir os "insights escondidos" através do aprendizado das relações e tendências históricas nos dados.[7]

Resumo[editar | editar código-fonte]

Tom M. Mitchell forneceu uma definição mais formal amplamente citada: "Se diz que um programa de computador aprende pela experiência E com respeito a algum tipo de tarefa T e performance P se sua performance P nas tarefas em T, como medidas por P, melhoram com a experiência E."[8] Esta definição é notável pois define aprendizado de máquina em termos fundamentalmente operacionais ao invés de cognitivos, de forma a seguir a proposta de Alan Turing em seu artigo "Computadores e inteligência" de que a pergunta "Podem as máquinas pensar?" seja substituída pela pergunta "Podem as máquinas fazer o que (nós como entidade pensantes) podemos fazer?"[9]

Tipos de problemas e tarefas[editar | editar código-fonte]

As tarefas de aprendizado de máquina são tipicamente classificadas em três amplas categorias, dependendo da natureza do "sinal" ou "feedback" de aprendizado disponível para um sistema de aprendizado. Estes são:[10]

  • Aprendizagem supervisionada: É apresentado ao computador exemplos de inputs e outputs desejados, dados por um "professor", e o objetivo é aprender uma regra geral que mapea os inputs aos outputs.
  • Aprendizagem não supervisionada (clusteringestatística): Nenhum tipo de etiqueta é dado ao algoritmo de aprendizado, deixando-o sozinho para encontrar estrutura em seus inputs. A aprendizagem não supervisionada pode ser um objetivo em si mesma (descobrir novos padrões nos dados) ou um meio com um fim.
  • Aprendizagem por reforço: Um programa de computador interage com um ambiente dinâmico no qual ele deve desempenhar um determinado objetivo (como por exemplo, dirigir um veículo), sem um professor lhe dizer explicitamente se ele chega perto de seu objetivo ou não. Outro exemplo é aprender a jogar um determinado jogo justamente jogando contra um oponente.

Entre a aprendizagem supervisionada e não supervisionada está a aprendizagem semi-supervisionada, na qual o professor dá um sinal de treinamento incompleto: um conjunto de treinamentos com alguns (muitas vezes vários) dos outputs desejados ausentes. Transdução é um caso especial deste princípio onde o conjunto inteiro das instâncias do problema é conhecido no momento do aprendizado, exceto que parte dos objetivos está ausente.

Entre outras categorias de problemas de aprendizado de máquina, o meta aprendizado aprende seu próprio viés indutivo baseado em experiência prévias. A robótica epigenética, elaborada para a aprendizagem de robôs, gera suas próprias sequências (também chamadas de currículo) de situações de aprendizado para adquirir cumulativamente repertórios de novas habilidades através de uma exploração autônoma de si e da interação social com professores humanos, fazendo uso de mecanismo guias tais como aprendizagem ativa, maturação, sinergias motoras e imitação.

Outra categorização de tarefas de aprendizado de máquina surge quando se considera o output desejado em um sistema de aprendizado de máquina:

  • Em classificação, inputs são divididos em duas ou mais classes, e o que aprende deve produzir um modelo que designa inputs não vistos à uma ou mais (classificação multi-etiquetada) dessas classes. Isto é tipicamente abordado de forma supervisionada. Filtragem de spam é um exemplo de classificação, onde o input são as mensagens de emails (ou outros) e as classes são "spam" ou "não spam".
  • Em regressão, também um problema supervisionado, os outputs são contínuos ou invés de discretos.
  • Em clustering, um conjunto de inputs será dividido em grupos. Diferente da classificação, os grupos não são conhecidos previamente, fazendo do clustering uma tarefa tipicamente não supervisionada.
  • Estimação de densidade encontra a distribuição de inputs em algum espaço.
  • Redução dimensional simplifica os inputs ao mapea-los em um espaço de menor dimensão. O modelo tópico é um problema relacionado, onde se dá uma lista de documentos em linguagem humana ao programa pedindo a ele, como tarefa ,encontrar quais documentos tratam de temas similares.

História e relação com outros campos[editar | editar código-fonte]

Como um esforço científico, o aprendizado de máquina cresceu a partir da busca pela inteligência artificial. Ainda nos princípios da IA como disciplina acadêmica, alguns pesquisadores já se interessavam em fazer máquinas aprenderem a partir de dados. Eles tentaram abordar o problema desde vários métodos simbólicos, assim como com o que foi então nomeado de "rede neural artificial"; estes eram majoritariamente perceptrons e outros modelos que mais tardes foram entendidos como reinvenções de modelos linear generalizados de estatística. A lógica probabilística também foi usada, especialmente em diagnósticos médicos automatizados.[10]:488

No entanto, uma crescente ênfase na abordagem lógica, baseada em conhecimento, causou uma brecha entre a IA e o aprendizado de máquina. Sistemas probabilísticos eram atormentados por problemas teoréticos e práticos de aquisição e representação de dados.[10]:488 Em 1980, sistemas especialistas haviam dominado a IA, e a estatística estava fora de uso.[11] Trabalhos em aprendizado baseado em conhecimento/simbólico continuaram com a IA, levando até a programação lógica indutiva, mas agora as pesquisas mais voltadas para a estatística estavam fora do campo da IA, em reconhecimento de padrões e recuperação de informação.[10]:708–710; 755 Pesquisas em redes neuronais haviam sido abandonadas pela IA e ciência computacional em torno do mesmo período. Essa linha, também, foi continuada forma dos campos da IA e da ciência da computação, como "conexionismos", por pesquisadores de outras disciplinas incluindo Hopfield, Rumelhart e Hinton. Seu sucesso principal veio em meados dos anos 80 com a reinvenção da propagação para trás.[10]:25

O aprendizado de máquina, reorganizado como um campo separado, começou a florescer nos anos 90. O campo mudou seu objetivo de alcançar a inteligência artificial para abordar problemas solucionáveis de natureza prática. Ele abandonou o foco em abordagens simbólicas que havia herdado da IA para métodos e modelos emprestados da estatística e da teoria da probabilidade.[11] Ele também se beneficiou do crescente número de informação digitalizada disponível e a possibilidade de distribuir ela via internet.

O aprendizado de máquina e a mineração de dados com freqüência fazem uso dos mesmos métodos e se sobrepões significantemente, mas enquanto o aprendizado de máquina foca em fazer previsões, baseado em propriedades conhecidas aprendidas pelo dados de treinamento, a mineração de dados foca em descobrir as propriedades (previamente) desconhecidas nos dados (este é o passo dado na análise de extração de conhecimento na base de dados). A mineração de dados usa muitas métodos do aprendizado de máquina, mas com objetivos diferentes; por outro lado, o aprendizado de máquina também faz uso de métodos da mineração de dados como "aprendizado não supervisionado" ou como um passo de processamento para melhorar a precisão do aprendiz. Muita da confusão entre essas duas comunidades de pesquisa (que com freqüência tem conferências e periódicos separados, ECML PKDD sendo a grande excessão) vem da suposição básica com que eles trabalham: em aprendizado de máquina, a performance é normalmente avaliada com respeito a habilidade de reproduzir conhecimento conhecido, enquanto que com a extração de conhecimento e mineração de dados (KDD) a tarefa chave é o descobrimento de conhecimento previamente desconhecido. Avaliado com respeito ao conhecimento conhecido, um método uniforme (não supervisionado) será facilmente superado por outros métodos supervisionados, enquanto que em uma tarefa KDD típica, métodos supervisionados não podem ser usados devido a não disponibilidade de dados de treinamento.

O aprendizado de máquina também tem laços íntimos com a otimização: muitos dos problemas de aprendizado são formulados como minimização de algumas funções de perda em um conjunto exemplo de treinamentos. Funções de perda expressam a discrepância entre as previsões do modelo sendo treinado e as verdadeiras instâncias do problema (por exemplo, em classificação, o objetivo é designar etiquetas para instâncias, e modelos são treinados para predizer corretamente as etiquetas previamente designadas de um conjunto exemplo). A diferença entre os dois campos surge do objetivo da generalização: enquanto que o algoritmo de otimização pode minimizar a perda em um conjunto de treinamento, o aprendizado de máquina está preocupado com a minimização da perda de amostras não vistas.[12]

Relação com estatística[editar | editar código-fonte]

O aprendizado de máquina e a estatística são campos intimamente relacionados. De acordo com Michael I. Jordam, as ideias do aprendizado de máquina, dos princípios metodológicos às ferramentas teóricas, tem uma longa pré-história na estatística.[13] Ele também sugeriu o termo ciência de dados como um substituto para chamar o campo como um todo.[13]

Leo Breiman distinguiu dois paradigmas da modelagem estatística: modelo de dados e modelo algorítmico,[14] onde "modelo algorítmico" significa mais ou menos os algoritmos do aprendizado de máquina como a Floresta aleatória.

Alguns estatísticos tem adotado métodos do aprendizado de máquinas, levando ao campo combinado que eles chamam de aprendizado estatístico.[15]

Teoria[editar | editar código-fonte]

Um dos objetivos centrais de um aprendiz é generalizar a partir de suas experiências.[16][17] Generalização neste contexto é a habilidade de uma máquina aprendiz de desempenhar com precisão em novos, não vistos, exemplos/tarefas depois de ter experimentado um conjunto de dados de aprendizado. Os exemplos de treinamento vem de algumas, geralmente desconhecidas, distribuições de probabilidade (consideradas representativas do espaço de ocorrência) e o aprendiz tem de construir um modelo geral sobre este espaço que o permita produzir previsões o suficientemente precisas em novos casos.

A análise computacional de algoritmos de aprendizado de máquina e sua performance é um ramo da ciência da computação teórica conhecida como teoria da aprendizagem computacional. Porque os conjuntos de treinamento são finitos e o futuro é incerto, a teoria de aprendizado normalmente não guarda garantias para a performance dos algoritmos. Em vez disso,previsões probabilísticas para a performance são bastante comuns. O tarde-off entre variância e viés é uma forma de qualificar o erro de generalização.

Para uma melhor performance no contexto de generalização, a complexidade da hipótese deveria combinar com a complexidade da função subjacente aos dados. Se a hipótese é menos complexa que a função, então o modelo sub-ajustou (underfitting) os dados. Se a complexidade do modelo é aumentada em resposta, então o erro de treinamento diminui. Mas se a hipótese é muito complexa, então o modelo foi sobreajustado (overfitting), e a generalização será mais pobre.[18]

Em adição aos limites da performance, teóricos da aprendizagem computacional estudam a complexidade do tempo e a viabilidade do aprendizado. Na teoria da aprendizagem computacional, uma computação é considerada viável se puder ser feita em tempo polinomial. Há dois tipos de resultados de complexidade temporal. Resultados positivos mostram que uma certa classe de funções pode ser aprendida em tempo polinomial. Resultados negativos mostram que certas classes não podem ser aprendidas em tempo polinomial.

Abordagens[editar | editar código-fonte]

Aprendizado baseado em árvores de decisão[editar | editar código-fonte]

Aprendizado baseado em árvores de decisão usa a árvore de decisão como um modelo de previsão, o qual mapea observações sobre um item à conclusões sobre o valor do objetivo desse item.

Aprendizado por regras de associação[editar | editar código-fonte]

Ver artigo principal: Regras de associação

Aprendizado por regras de associação é um método para descobrir relações interessantes entre variáveis em base de dados grandes.

Rede neural artificial[editar | editar código-fonte]

Ver artigo principal: Rede neural artificial

Um algoritmo de aprendizado de rede neural artificial, normalmente chamado de "rede neural" (RN), é um algoritmo de aprendizado que é inspirado na estrutura e aspectos funcionais das redes neurais biológicas. Computações são estruturadas em termos de um grupo interconectado de neurônios artificias, processando informação usando uma abordagem de conexionismo na computação. Redes neuronais modernas são ferramentas de modelagem de dados estatísticos não lineares. Normalmente eles são usados para modelar relações complexas entre inputs e outputs, para encontrar padrões nos dados, ou para capturar a estrutura estatística em uma distribuição de probabilidade conjunta desconhecida entre variáveis observáveis.

Aprendizado profundo[editar | editar código-fonte]

Ver artigo principal: Aprendizado profundo

Os preços mais baixos dos hardwares e o desenvolvimento de GPUs para uso pessoal nos últimos anos contribuiu para o desenvolvimento do conceito de aprendizado profundo, que consiste em múltiplas camadas escondidas em uma rede neural artificial. Esta abordagem tenta modelar a forma com que o cérebro humano processa luz e som na visão e escuta. Alguns aplicações úteis do aprendizado profundo são visão computacional e reconhecimento de fala.[19]

Lógica de programação indutiva[editar | editar código-fonte]

Lógica de programação indutiva (LPI) é uma abordagem que regra o aprendizado fazendo uso de programação lógica como uma representação uniforme para exemplos de inputs, conhecimento de pano de fundo, e hipóteses. Dada uma codificação do pano de fundo conhecido do conhecimento e um conjunto de exemplos representados como uma base de dados lógica de fatos, um sistema LPI derivará uma lógica hipotética que envolve todos os exemplos positivos e não negativos. A programação indutiva é um campo relacionado que considera qualquer tipo de linguagem de programação para representar hipóteses (e não apenas programações lógicas), tais como as programações funcionais.

Máquinas de vetores de suporte[editar | editar código-fonte]

Ver artigo principal: Máquina de vetores de suporte

Máquinas de vetores de suporte (MVSs) são um conjunto relacionado de métodos de aprendizado supervisionado usados para classificação e regressão. Dado um conjunto de exemplos d treinamento, cada um marcado como pertencente de uma ou duas categorias, um algoritmo de treino SVM constrói um modelo que prediz se um novo exemplo cai dentro de uma categoria ou outra.

Clustering[editar | editar código-fonte]

Ver artigo principal: Clustering

Análise de clusters é a atribuição de um conjunto de observações à subconjuntos (chamados clusters) de forma que as observações dentro de um mesmo cluster são similares de acordo com algum critério ou critérios pré-designados, enquanto que observações feitas em clusters diferentes não são similares. Diferentes técnicas de clustering fazem diferentes suposições sobre a estrutura dos dados, freqüentemente definida por algumas métricas de similaridade e avaliados, por exemplo, por compacidade interna (similaridade entre membros de um mesmo cluster) e separação entre clusters diferentes. Outros métodos são baseado em estimações de densidade e gráficos de conectividade. Clustering é um método de aprendizado não supervisionado e uma técnica comum em análise de dados estatísticos.

Redes Bayesianas[editar | editar código-fonte]

Ver artigo principal: Rede bayesiana

Uma rede bayesiana, rede de opinião ou um modelo gráfico acíclico dirigido é um modelo gráfico probabilístico que representa um conjunto de variáveis aleatórias e suas independências condicionais via um grafo acíclico dirigido (GAD). Por exemplo, uma rede bayesiana poderia representar as relações probabilísticas entre doenças e sintomas. Dado um sintoma, a rede pode ser usada para computar as probabilidades da presença de várias doenças. Existem algoritmos eficientes que desempenham inferência e aprendizado.

Aprendizado por reforço[editar | editar código-fonte]

O aprendizado por reforço se preocupa com o como um agente deve agir em um ambiente de forma que maximize alguma noção de recompensa a longo tempo. Os algoritmos de aprendizado por reforço tentam encontrar a política que mapea os estados do mundo às ações que o agente deve ter nesses estados. Aprendizado por reforço se distingue do problema do aprendizado supervisionado no sentindo em que pares de input/output corretos nunca são apresentados, nem as ações sub-ótimas são explicitamente corrigidas.

Aprendizado por representação[editar | editar código-fonte]

Vários algoritmos de aprendizado, a maioria algoritmos de aprendizado não supervisionado, tem como objetivo descobrir melhores representações dos inputs que são dados durante o treinamento. Exemplos clássicos incluem análise de componentes principais e análise de clusters. Os algoritmos de aprendizagem por representação com freqüência tentam preservar a informação e seu input mas transformando-a de forma que a torne útil, frequentemente como um passo pré-processamento antes de desempenhar classificações ou previsões, permitindo a reconstrução dos inputs vindos de dados geradores de distribuição desconhecidos, enquanto não sendo necessariamente fiel à configurações que são implausíveis sob essa distribuição.

Algoritmos de aprendizagem múltipla tentam fazer isso sob a restrição de que a representação aprendida é de baixa dimensão. Algoritmos de código esparso tentam fazer isso sob a restrição de que a representação aprendida é espersa (tem muitos zeros). O algoritmo de aprendizagem em subespac ̧o multilinear tem como objetivo aprender representações de baixa dimensão diretamente das representações de tensores para dados multidimensionais, sem os transformas em vetores de alta dimensão.[20] Algoritmos do aprendizado profundo descobrem múltiplos níveis de representação, ou uma hierarquia de características, com um nível mais alto, características mais abstratas definidas em termos de (ou geradas a partir de) características de nível mais baixo. Tem sido argumentado que uma máquina inteligente é aquela que aprende uma representação que desembaraça os fatores subjacentes de variação que explicam os dados observados.[21]

Aprendizado por similaridade e métrica[editar | editar código-fonte]

Neste problema, se dá a máquina aprendiz pares de exemplos que são considerados similares e pares de objetos menos similares. Então ela precisa aprender uma função de similaridade (ou uma função de distancia métrica) que possa predizer se novos objetos são similares. Isso é as vezes usado em sistemas de recomendação.

Aprendizado por dicionário esparso[editar | editar código-fonte]

Neste método, um dado é representado como uma combinação ligar de funções bases, e os coeficientes são assumidos como esparsos. Deixe x ser uma dado d-dimensional, D ser um d por n matrizes, onde cada coluna de D representa uma função base. r é o coeficiente para representar x usando D. Matematicamente, aprendizado por dicionário esparso significa resolver onde r é esparso. Falando genericamente, se assume que n é maior que d para permitir a liberdade para uma representação esparsa.

Aprender um dicionário junto com representações esparsas é fortemente NP-completo e também difícil de resolver aproximadamente.[22] Um método heurístico popular para aprendizado por dicionário esparso é o K-SVD.

Aprendizado por dicionário esparso tem sido aplicado a vários contextos. Em classificação, o problema é determinar a quais classes um dado previamente não visto pertence. Suponha que um dicionário para cada classe já tenha sido construído. Então um novo dado é associado com a classe de forma que esteja o melhor esparcialmente representado pelo dicionário correspondente. Aprendizado por dicionário esparso também tem sido aplicado a suavização de imagem. A ideia chave é que um pedaço de imagem limpa pode ser representado esparcialmente por um dicionário de imagem, mas o ruído não.[23]

Algoritmos genéticos[editar | editar código-fonte]

Ver artigo principal: Algoritmo genético

Um algoritmo genético (AG) é uma busca heurística que imita o processo de seleção natural e usa métodos com mutação e recombinação para gerar novos genotipos na esperança de encontrar boas soluções para um dado problema. Em aprendizado de máquinas, algoritmos genéticos encontraram alguma utilidade me 1980 e 1990.[24] [25] Vice versa, técnicas do aprendizado de máquina tem sido usadas para melhorar a performance de algoritmos genéticos e evolutivos.[26]

Aplicações[editar | editar código-fonte]

Aplicações para o aprendizado de máquina incluem:

Em 2006, a companhia de filmes online Netflix fez a primeira competição "Netflix Prize" para encontrar um programa que melhor prediria as performances dos usuários e melhoraria a precisão do algoritmo de recomendação Cinematch existente em ao menos 10%. Um time composto por pesquisadores da AT&T Labs em colaboração com o time Big Chaos e Pragmatic Theory construíram um modelo conjunto para ganhar o grande prêmio em 2009 de 1 milhão de dólares. Logo após os prêmio ser concedido, a Netflix se deu conta que as avaliações dos usuários não eram as melhores indicações de seus padrões de filmes e séries vistos ("tudo é recomendação") e mudaram seu motor de recomendação. [27]

Em 2010 o Periódico do Wall Street escreveu sobre a firma de gestão de dinheiro Rebellion Research que usava o aprendizado de máquina para predizer os movimentos econômicos. O artigo descrevia a previsão da Rebellion Research sobre a crise financeira e a recuperação econômica.[28]

Em 2014 foi relatado que um algoritmo de aprendizado de máquina foi aplicado em Historia da Arte para estudar as pinturas de arte e que ele pode ter revelado influencias entre artistas previamente não reconhecidas.[29]

Avaliação de modelos[editar | editar código-fonte]

Modelos de classificação de aprendizado de máquina podem ser validados por técnicas como validação cruzada, onde os dados são divididos em conjuntos de teste e treinamento e medidas apropriadas como precisão são calculadas para ambos os conjuntos de dados e comparadas. Para além da precisão, sensibilidade (Avaliação Positiva Verdadeira) e especificidade (Avaliação Negativa Verdadeira) podem prover modos de modelos de avaliação. De forma similar, Avaliações Positivas Faslas assim como Avaliações Negativas Faslas poder ser computadas. Curvas Receptoras de Operação (CRO) em conjunto com a Área em baixo da CRO (AUC) oferecem ferramentas adicionais para a classificação de modelos de avaliação. Graus maiores de AUC estão associados a um modelo de melhor performance. [30]

Software[editar | editar código-fonte]

Software suites contendo uma variedade de algoritmos de aprendizado de máquina incluem os seguintes:

Software de fonte aberta e gratuita[editar | editar código-fonte]

  • dlib
  • ELKI
  • Encog
  • GNU Octave
  • H2O
  • Mahout
  • Mallet (software project)
  • mlpy
  • MLPACK
  • MOA (Massive Online Analysis)
  • ND4J with Deeplearning4j
  • NuPIC
  • OpenAI
  • OpenCV
  • OpenNN
  • Orange
  • R
  • scikit-learn
  • scikit-image
  • Shogun
  • TensorFlow
  • Torch
  • Spark
  • Yooreeka
  • Weka

Software particular com edições de fonte aberta e gratuita[editar | editar código-fonte]

  • KNIME
  • RapidMiner

Proprietary software[editar | editar código-fonte]

  • Amazon Machine Learning
  • Angoss KnowledgeSTUDIO
  • Ayasdi
  • Databricks
  • Google APIs|Google Prediction API
  • IBM SPSS Modeler
  • KXEN Modeler
  • LIONsolve
  • Mathematica
  • MATLAB
  • Microsoft Azure Machine Learning
  • Neural Designer
  • NeuroSolutions
  • Oracle Data Mining
  • RCASE
  • SAS Enterprise Miner
  • Splunk
  • STATISTICA Data Miner

Veja também esta lista de pacotes em muitas linguagens de programação: Awesome Machine Learning.

Periódicos[editar | editar código-fonte]

Conferências[editar | editar código-fonte]

  • Conference on Neural Information Processing Systems
  • International Conference on Machine Learning

Ver também[editar | editar código-fonte]

Ligações externas[editar | editar código-fonte]

Referências[editar | editar código-fonte]

  1. a b «Definição: machine learning». Enciclopedia Britannica (em inglês). 
  2. Simon, Phil (Março, 18, 2013). Too Big to Ignore: The Business Case for Big Data Wiley [S.l.] p. 89. ISBN 978-1-118-63817-0. 
  3. Kohavi, Ron; Provost, Foster (1998). «Glossary of terms». Machine Learning 30: 271–274. 
  4. Wernick, Yang, Brankov, Yourganov and Strother. (Julho, 2010). "Machine Learning in Medical Imaging". IEEE Signal Processing Magazine 27 (4): 25-38.
  5. Mannila, Heikki. (1996). "Data mining: machine learning, statistics, and databases". Int'l Conf. Scientific e Statistical Database Management. IEEE Computer Society.
  6. Friedman, Jerome H.. (1998). "Data Mining and Statistics: What's the connection?". Computing Science and Statistics 29 (1): 3–9.
  7. «Machine Learning: What it is and why it matters» (em inglês). SAS The Power to Know. Consultado em 10-10-2016. 
  8. M. Mitchell, Tom (1997). Machine Learning McGraw Hill [S.l.] p. 2. ISBN 0-07-042807-7. 
  9. Harnad, Steven (2008). The Annotation Game: On Turing (1950) on Computing, Machinery, and Intelligence. in Epstein, Robert; Peters, Grace: Parsing the Turing Test: Philosophical and Methodological Issues in the Quest for the Thinking Computer (em inglês) Springer [S.l.] pp. 23–66. Consultado em 10-10-2016. 
  10. a b c d e Russell, Stuart; Norvig, Peter (2003 [1995]). Artificial Intelligence: A Modern Approach (em inglês) 2 ed. Prentice Hall [S.l.] ISBN 978-0137903955. 
  11. a b Langley, Pat. (2011). "The changing science of machine learning" (em Inglês). Machine Learning 82 (3): 275–279. DOI:10.1007/s10994-011-5242-y. Visitado em 10-10-2016.
  12. Le Roux, Nicolas; Bengio, Yoshua; Fitzgibbon, Andrew (2012). Improving First and Second-Order Methods by Modeling Uncertainty In Sra, Suvrit; Nowozin, Sebastian; Wright, Stephen J. Optimization for Machine Learning (em inglês) MIT Press [S.l.] p. 404. 
  13. a b I. Jordan, Michael (09-10-2014). «Statistics and machine learning» (em inglês). Reddit. Consultado em 11-10-2016. 
  14. Breiman, Leo. (2001). "Statistical Modeling: The Two Cultures (with comments and a rejoinder by the author)" (em inglês). Statistical Science 16 (3): 199-231. The Institute of Mathematical Statistics.
  15. Gareth, James; Witten, Daniela; Hastie, Trevor; Tibshirani, Robert (2013). An Introduction to Statistical Learning (em inglês) Springer [S.l.] p. 7. 
  16. Bishop, Christopher (2006). Pattern Recognition and Machine Learning (em inglês) Springer [S.l.] ISBN 0-387-31073-8. 
  17. Mehryar, Mohri; Rostamizadeh, Afshin; Talwalkar, Ameet (2012). Foundations of Machine Learning (em inglês) MIT Press [S.l.] ISBN 978-0-262-01825-8. 
  18. Alpaydin, Ethem (2010). Introduction to Machine Learning (em inglês) MIT Press [S.l.] 
  19. Honglak Lee, Roger Grosse, Rajesh Ranganath, Andrew Y. Ng.. (2009). "Convolutional Deep Belief Networks for Scalable Unsupervised Learning of Hierarchical Representations" (em inglês).
  20. Lu, Haiping; Plataniotis, K.N.; Venetsanopoulos, A.N.. (2011). "A Survey of Multilinear Subspace Learning for Tensor Data" (em inglês). Pattern Recognition 44 (7): 1540–1551. DOI:10.1016/j.patcog.2011.01.004. Visitado em 17-10-2016.
  21. Bengio, Yoshua (2009). Learning Deep Architectures for AI Now Publishers Inc [S.l.] pp. 1–3. ISBN 978-1-60198-294-0. 
  22. Tillmann, Andreas M.. (2015). "On the Computational Intractability of Exact and Approximate Dictionary Learning". IEEE Signal Processing Letters 22 (1): 45-49.
  23. Aharon, Michael; M. Elad; A. Bruckstein. (2006). "K-SVD: An Algorithm for Designing Overcomplete Dictionaries for Sparse Representation". IEEE Transactions on Signal Processing 54 (11): 4311-4322.
  24. Goldberg, David E; Holland, John H.. (1988). "Genetic algorithms and machine learning" (em inglês). Machine Learning 3 (2): 95–99. DOI:10.1007/bf00113892.
  25. Michie, Donald; Spiegelhalter, David; C.C., Taylor (1994). Machine Learning, Neural and Statistical Classification (em inglês) Ellis Horwood [S.l.] 
  26. Zhang, Jun; Zhan, Zhi-hui; Lin, Ying; Chen, Ni; Gong, Yue-jiao; Zhong, Jing-hui; Chung, Henry S.H.; Li, Yun; Shi, Yu-hui. (2011). "Evolutionary Computation Meets Machine Learning: A Survey" (em inglês). Computational Intelligence Magazine 6 (4): 68-75. DOI:10.1109/mci.2011.942584.
  27. «The Netflix Tech Blog: Netflix Recommendations: Beyond the 5 stars (Part 1)». Consultado em 17-10-2016. 
  28. «Artificial Intelligence' Gains Fans Among Investors - WSJ» (em inglês). Consultado em 17-10-2016. 
  29. «When A Machine Learning Algorithm Studied Fine Art Paintings, It Saw Things Art Historians Had Never Noticed» (em inglês). Consultado em 17-10-2016. 
  30. Catal, Cagatay. (2012). "Performance Evaluation Metrics for Software Fault Prediction Studies" (em inglês). Acta Polytechnica Hungarica 9 (4).

Para mais leituras[editar | editar código-fonte]