Aprendizado de máquina

Aprendizado de máquina (ML) é um campo de inteligência artificial que usa técnicas estatísticas para dar aos sistemas de computador a capacidade de “aprender” (por exemplo, melhorar progressivamente o desempenho de uma tarefa específica) a partir de dados, sem ser explicitamente programado.

O aprendizado de máquinas foi cunhado em 1959 por Arthur Samuel. O aprendizado de máquina explora o estudo e a construção de algoritmos que podem aprender e fazer predições em dados – tais algoritmos superam as instruções estritamente estáticas do programa, fazendo previsões ou decisões baseadas em dados, através da construção de um modelo a partir de entradas de amostra. O aprendizado de máquina é empregado em uma variedade de tarefas de computação, nas quais o design e a programação de algoritmos explícitos com bom desempenho são difíceis ou inviáveis; aplicativos de exemplo incluem filtragem de e-mail, detecção de intrusos de rede e visão de computador.

O aprendizado de máquina está intimamente relacionado com (e frequentemente se sobrepõe a) estatísticas computacionais, que também se concentram na criação de previsões através do uso de computadores. Tem fortes laços com a otimização matemática, que fornece métodos, teoria e domínios de aplicação para o campo. O aprendizado de máquina é, às vezes, confundido com a mineração de dados, onde o último subcampo se concentra mais na análise exploratória de dados e é conhecido como aprendizado não supervisionado.

No campo da análise de dados, o aprendizado de máquina é um método usado para conceber modelos e algoritmos complexos que se prestam à previsão; em uso comercial, isso é conhecido como análise preditiva. Esses modelos analíticos permitem que pesquisadores, cientistas de dados, engenheiros e analistas “produzam decisões e resultados confiáveis ​​e repetíveis” e revelem “insights ocultos” por meio do aprendizado de relações e tendências históricas nos dados.

visão global
Tom M. Mitchell forneceu uma definição mais formalizada e amplamente citada dos algoritmos estudados no campo de aprendizado de máquina: “Um programa de computador aprende com a experiência E em relação a alguma classe de tarefas T e medida de desempenho P se seu desempenho em tarefas em T, medida por P, melhora com a experiência E. ” Esta definição das tarefas em que a aprendizagem de máquina está em causa oferece uma definição fundamentalmente operacional em vez de definir o campo em termos cognitivos. Isso segue a proposta de Alan Turing em seu artigo “Computing Machinery and Intelligence”, no qual a pergunta “As máquinas podem pensar?” é substituído pela pergunta “As máquinas podem fazer o que nós (como entidades pensantes) podemos fazer?”. Na proposta de Turing, as várias características que podem ser possuídas por uma máquina pensante e as várias implicações na construção de uma estão expostas.

Tarefas de aprendizado de máquina

As tarefas de aprendizado de máquina geralmente são classificadas em várias categorias amplas:

Aprendizado supervisionado: O computador é apresentado com entradas de exemplo e seus resultados desejados, fornecidos por um “professor”, e o objetivo é aprender uma regra geral que mapeia entradas para saídas. Como casos especiais, o sinal de entrada pode estar apenas parcialmente disponível ou restrito a um feedback especial.
Aprendizado semi-supervisionado: O computador recebe apenas um sinal de treinamento incompleto: um conjunto de treinamento com algumas (muitas vezes muitas) saídas de destino faltando.
Aprendizado ativo: o computador só pode obter rótulos de treinamento para um conjunto limitado de instâncias (com base em um orçamento) e também precisa otimizar sua escolha de objetos para adquirir rótulos. Quando usados ​​interativamente, eles podem ser apresentados ao usuário para rotulagem.
Aprendizado não supervisionado: nenhum rótulo é dado ao algoritmo de aprendizado, deixando-o sozinho para encontrar a estrutura em sua entrada. O aprendizado não supervisionado pode ser um objetivo em si (descobrir padrões ocultos nos dados) ou um meio para um fim (aprendizado de recursos).
Aprendizado por reforço: Os dados (em forma de recompensas e punições) são dados apenas como feedback para as ações do programa em um ambiente dinâmico, como dirigir um veículo ou jogar um jogo contra um adversário.

Aplicações de aprendizado de máquina
Outra categorização de tarefas de aprendizado de máquina surge quando se considera a saída desejada de um sistema aprendido por máquina:
Na classificação, as entradas são divididas em duas ou mais classes, e o aprendiz deve produzir um modelo que atribua entradas não vistas a uma ou mais (classificação multi-label) dessas classes.Isso geralmente é abordado de maneira supervisionada. A filtragem de spam é um exemplo de classificação, em que as entradas são mensagens de e-mail (ou outras) e as classes são “spam” e “não são spam”.
Na regressão, também um problema supervisionado, as saídas são contínuas e não discretas.
No agrupamento, um conjunto de entradas deve ser dividido em grupos. Ao contrário da classificação, os grupos não são conhecidos de antemão, fazendo com que isso seja tipicamente uma tarefa não supervisionada.
A estimativa de densidade encontra a distribuição de entradas em algum espaço.
A redução de dimensionalidade simplifica as entradas, mapeando-as em um espaço de menor dimensão. A modelagem de tópicos é um problema relacionado, em que um programa recebe uma lista de documentos em linguagem humana e é encarregado de descobrir quais documentos abordam tópicos semelhantes.

Entre outras categorias de problemas de aprendizado de máquina, aprender a aprender aprende seu próprio viés indutivo com base na experiência anterior. A aprendizagem desenvolvimentista, elaborada para a aprendizagem de robôs, gera suas próprias seqüências (também chamadas de currículo) de situações de aprendizado para adquirir cumulativamente repertórios de novas habilidades através da auto-exploração autônoma e interação social com professores humanos e usando mecanismos de orientação como aprendizagem ativa, maturação, sinergias e imitação.

História e relações com outros campos
Arthur Samuel, um pioneiro americano no campo dos jogos de computador e inteligência artificial, cunhou o termo “Machine Learning” em 1959, enquanto na IBM. Como um esforço científico, o aprendizado de máquina surgiu da busca pela inteligência artificial. Já nos primórdios da IA ​​como disciplina acadêmica, alguns pesquisadores estavam interessados ​​em fazer com que as máquinas aprendessem com os dados. Eles tentaram abordar o problema com vários métodos simbólicos, bem como o que foram então denominados “redes neurais”; Estes eram, na sua maioria, perceptrons e outros modelos que mais tarde foram considerados reinvenções dos modelos lineares generalizados da estatística. O raciocínio probabilístico também foi empregado, especialmente no diagnóstico médico automatizado.

No entanto, uma ênfase crescente na abordagem lógica baseada no conhecimento causou um racha entre a IA e o aprendizado de máquina. Sistemas probabilísticos foram atormentados por problemas teóricos e práticos de aquisição e representação de dados. Em 1980, sistemas especialistas passaram a dominar a IA, e as estatísticas estavam em desuso. O trabalho sobre aprendizado simbólico / baseado em conhecimento continuou dentro da AI, levando à programação lógica indutiva, mas a linha de pesquisa mais estatística estava agora fora do campo da IA ​​apropriada, no reconhecimento de padrões e na recuperação de informações. A pesquisa de redes neurais foi abandonada pela IA e pela ciência da computação na mesma época. Esta linha também foi continuada fora do campo da AI / CS, como “conexionismo”, por pesquisadores de outras disciplinas, incluindo Hopfield, Rumelhart e Hinton. Seu principal sucesso veio em meados da década de 1980, com a reinvenção da retropropagação.

O aprendizado de máquina, reorganizado como um campo separado, começou a florescer nos anos 90. O campo mudou seu objetivo de obter inteligência artificial para enfrentar problemas solucionáveis ​​de natureza prática. Ele desviou o foco das abordagens simbólicas herdadas da IA ​​e de métodos e modelos emprestados da estatística e da teoria da probabilidade. Também se beneficiou da crescente disponibilidade de informações digitalizadas e da capacidade de distribuí-las pela Internet.

O aprendizado de máquina e a mineração de dados geralmente empregam os mesmos métodos e se sobrepõem significativamente, mas enquanto o aprendizado de máquina foca na previsão, com base nas propriedades conhecidas aprendidas dos dados de treinamento, a mineração de dados se concentra na descoberta de propriedades (previamente) desconhecidas nos dados a etapa de análise da descoberta de conhecimento em bancos de dados). A mineração de dados usa muitos métodos de aprendizado de máquina, mas com objetivos diferentes; Por outro lado, o aprendizado de máquina também emprega métodos de mineração de dados como “aprendizado não supervisionado” ou como uma etapa de pré-processamento para melhorar a precisão do aluno.Grande parte da confusão entre essas duas comunidades de pesquisa (que geralmente têm conferências separadas e periódicos separados, sendo a ECML PKDD uma grande exceção) vem das suposições básicas com as quais trabalham: na aprendizagem automática, o desempenho é geralmente avaliado com relação à capacidade de reproduzir conhecimento conhecido, enquanto na descoberta de conhecimento e mineração de dados (KDD) a tarefa chave é a descoberta de conhecimento previamente desconhecido. Avaliado com relação ao conhecimento conhecido, um método desinformado (não supervisionado) será facilmente superado por outros métodos supervisionados, enquanto que em uma tarefa típica de KDD, os métodos supervisionados não podem ser usados ​​devido à indisponibilidade de dados de treinamento.

O aprendizado de máquina também tem laços íntimos com a otimização: muitos problemas de aprendizado são formulados como a minimização de alguma função de perda em um conjunto de exemplos de treinamento. As funções de perda expressam a discrepância entre as previsões do modelo que está sendo treinado e as instâncias reais do problema (por exemplo, na classificação, deseja-se atribuir um rótulo a instâncias e os modelos são treinados para prever corretamente os rótulos pré-atribuídos de um conjunto de exemplos). A diferença entre os dois campos surge do objetivo da generalização: enquanto os algoritmos de otimização podem minimizar a perda em um conjunto de treinamento, o aprendizado de máquina preocupa-se em minimizar a perda em amostras não vistas.

Relação com estatísticas
O aprendizado de máquina e as estatísticas são campos intimamente relacionados. De acordo com Michael I. Jordan, as idéias de aprendizado de máquina, desde princípios metodológicos até ferramentas teóricas, tiveram uma longa pré-história na estatística. Ele também sugeriu o termo ciência de dados como um espaço reservado para chamar o campo global.

Leo Breiman distinguiu dois paradigmas de modelagem estatística: modelo de dados e modelo algorítmico, em que “modelo algorítmico” significa mais ou menos os algoritmos de aprendizado de máquina como floresta aleatória.

Alguns estatísticos adotaram métodos de aprendizado de máquina, levando a um campo combinado que eles chamam de aprendizado estatístico.

Teoria
Um objetivo central de um aprendiz é generalizar a partir de sua experiência. A generalização nesse contexto é a capacidade de uma máquina de aprendizagem executar com precisão novos / desconhecidos exemplos / tarefas após ter experimentado um conjunto de dados de aprendizado.Os exemplos de treinamento provêm de uma distribuição de probabilidade geralmente desconhecida (considerada representativa do espaço de ocorrências) e o aprendiz precisa construir um modelo geral sobre esse espaço que permita produzir previsões suficientemente precisas em novos casos.

A análise computacional de algoritmos de aprendizado de máquina e seu desempenho é um ramo da ciência da computação teórica conhecida como teoria da aprendizagem computacional. Como os conjuntos de treinamento são finitos e o futuro é incerto, a teoria de aprendizado geralmente não fornece garantias do desempenho dos algoritmos. Em vez disso, limites probabilísticos no desempenho são bastante comuns. A decomposição de viés-variância é uma maneira de quantificar o erro de generalização.

Para o melhor desempenho no contexto de generalização, a complexidade da hipótese deve corresponder à complexidade da função subjacente aos dados. Se a hipótese é menos complexa do que a função, então o modelo tem subjacente os dados. Se a complexidade do modelo for aumentada em resposta, o erro de treinamento diminui. Mas se a hipótese é muito complexa, então o modelo está sujeito a overfitting e a generalização será mais pobre.

Além dos limites de desempenho, os teóricos da aprendizagem computacional estudam a complexidade do tempo e a viabilidade da aprendizagem. Na teoria da aprendizagem computacional, uma computação é considerada viável se puder ser feita em tempo polinomial.Existem dois tipos de resultados de complexidade de tempo. Resultados positivos mostram que 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

Aprendizagem da árvore de decisão
O aprendizado da árvore de decisão usa uma árvore de decisão como um modelo preditivo, que mapeia observações sobre um item para conclusões sobre o valor alvo do item.

Aprendizagem de regras de associação
O aprendizado de regras de associação é um método para descobrir relações interessantes entre variáveis ​​em grandes bancos de dados.

Redes neurais artificiais
Um algoritmo de aprendizagem da rede neural artificial (RNA), geralmente chamado de “rede neural” (NN), é um algoritmo de aprendizagem que é vagamente inspirado por redes neurais biológicas. As computações são estruturadas em termos de um grupo interconectado de neurônios artificiais, processando informações usando uma abordagem conexionista à computação. As redes neurais modernas são ferramentas de modelagem de dados estatísticos não lineares. Eles geralmente são usados ​​para modelar relações complexas entre entradas e saídas, para encontrar padrões em dados ou para capturar a estrutura estatística em uma distribuição de probabilidade conjunta desconhecida entre as variáveis ​​observadas.

Aprendizagem profunda
A queda dos preços de hardware e o desenvolvimento de GPUs para uso pessoal nos últimos anos contribuíram para o desenvolvimento do conceito de aprendizagem profunda, que consiste em múltiplas camadas ocultas em uma rede neural artificial. Essa abordagem tenta modelar a maneira como o cérebro humano processa a luz e o som em visão e audição. Algumas aplicações bem-sucedidas de aprendizado profundo são visão computacional e reconhecimento de fala.

Programação lógica indutiva
A programação lógica indutiva (ILP) é uma abordagem para a aprendizagem de regras usando a programação lógica como uma representação uniforme para exemplos de entrada, conhecimento de fundo e hipóteses. Dada uma codificação do conhecimento de segundo plano conhecido e um conjunto de exemplos representados como um banco de dados lógico de fatos, um sistema ILP derivará um programa lógico hipotético que envolve todos os exemplos positivos e 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ção lógica), como programas funcionais.

Máquinas de vetores de suporte
As máquinas de vetores de suporte (SVMs) são um conjunto de métodos de aprendizado supervisionados relacionados usados ​​para classificação e regressão. Dado um conjunto de exemplos de treinamento, cada um marcado como pertencente a uma das duas categorias, um algoritmo de treinamento de SVM constrói um modelo que prevê se um novo exemplo se enquadra em uma ou outra categoria.

Clustering
A análise de cluster é a atribuição de um conjunto de observações em subconjuntos (chamados clusters), de modo que as observações dentro do mesmo cluster sejam semelhantes de acordo com alguns critérios ou critérios pré-assinalados, enquanto observações feitas a partir de clusters diferentes são diferentes. Diferentes técnicas de agrupamento fazem diferentes suposições sobre a estrutura dos dados, geralmente definidas por alguma métrica de similaridade e avaliadas, por exemplo, pela compactação interna (similaridade entre membros do mesmo cluster) e separação entre diferentes agrupamentos. Outros métodos são baseados em densidade estimada e conectividade gráfica. Clustering é um método de aprendizado não supervisionado e uma técnica comum para análise de dados estatísticos.

Redes Bayesianas
Uma rede Bayesiana, rede de crenças ou modelo gráfico acíclico direcionado é um modelo gráfico probabilístico que representa um conjunto de variáveis ​​aleatórias e suas independências condicionais por meio de um gráfico acíclico direcionado (DAG). Por exemplo, uma rede bayesiana poderia representar as relações probabilísticas entre doenças e sintomas. Dados sintomas, a rede pode ser usada para calcular as probabilidades da presença de várias doenças. Existem algoritmos eficientes que realizam inferência e aprendizado.

Aprendizagem de representação
Diversos algoritmos de aprendizado, na maioria algoritmos de aprendizado não supervisionados, visam descobrir melhores representações das entradas fornecidas durante o treinamento. Exemplos clássicos incluem análise de componentes principais e análise de cluster. Os algoritmos de aprendizagem de representação geralmente tentam preservar a informação em sua entrada, mas a transformam de uma maneira que a torna útil, geralmente como uma etapa de pré-processamento antes de realizar classificações ou previsões, permitindo a reconstrução de entradas provenientes da distribuição geradora de dados desconhecidos. não sendo necessariamente fiel para configurações que são implausíveis sob essa distribuição.

Algoritmos de aprendizado do Manifold tentam fazer isso sob a restrição de que a representação aprendida é de baixa dimensionalidade. Algoritmos de codificação esparsa tentam fazer isso sob a restrição de que a representação aprendida é esparsa (tem muitos zeros). Os algoritmos de aprendizado de subespaços multilineares visam aprender representações de baixa dimensão diretamente de representações tensoras para dados multidimensionais, sem reformulá-las em vetores (de alta dimensão). Algoritmos de aprendizado profundo descobrem vários níveis de representação, ou uma hierarquia de recursos, com recursos mais abstratos e mais abstratos definidos em termos de (ou gerando) recursos de nível inferior. Argumentou-se que uma máquina inteligente é aquela que aprende uma representação que desemaranha os fatores de variação subjacentes que explicam os dados observados.

Semelhança e aprendizado métrico
Nesse problema, a máquina de aprendizado recebe pares de exemplos que são considerados semelhantes e pares de objetos menos semelhantes. Em seguida, ele precisa aprender uma função de similaridade (ou uma função métrica de distância) que pode prever se novos objetos são semelhantes. Às vezes é usado em sistemas de recomendação.

Aprendizagem de dicionário escassa
Nesse método, um dado é representado como uma combinação linear de funções de base, e os coeficientes são considerados esparsos. Seja x um dado d-dimensional, D seja ad por n matriz, onde cada coluna de D representa uma função de base. r é o coeficiente para representar x usando D. Matematicamente, o aprendizado de dicionário escasso significa resolver  onde r é esparso. De um modo geral, assume-se que n é maior que d para permitir a liberdade de uma representação esparsa.

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

O aprendizado esparso do dicionário foi aplicado em vários contextos. Na classificação, o problema é determinar a quais classes um dado não visto pertence. Suponha que um dicionário para cada classe já tenha sido construído. Então, um novo dado é associado à classe, de modo que seja melhor representado esparsamente pelo dicionário correspondente. O aprendizado esparso do dicionário também foi aplicado na falta de reconhecimento de imagens. A idéia-chave é que um patch de imagem limpa pode ser esparsamente representado por um dicionário de imagens, mas o ruído não pode.

Algorítmos genéticos
Um algoritmo genético (GA) é uma heurística de busca que imita o processo de seleção natural e usa métodos como mutação e crossover para gerar um novo genótipo na esperança de encontrar boas soluções para um dado problema. No aprendizado de máquina, os algoritmos genéticos encontraram alguns usos nas décadas de 1980 e 1990. Por outro lado, técnicas de aprendizado de máquina têm sido usadas para melhorar o desempenho de algoritmos genéticos e evolutivos.

Aprendizado de máquina baseado em regras
Aprendizado de máquina baseado em regras é um termo geral para qualquer método de aprendizado de máquina que identifica, aprende ou desenvolve “regras” para armazenar, manipular ou aplicar conhecimento. A característica definidora de um aprendiz de máquina baseado em regras é a identificação e utilização de um conjunto de regras relacionais que representam coletivamente o conhecimento capturado pelo sistema. Isto está em contraste com outros aprendizes de máquinas que comumente identificam um modelo singular que pode ser universalmente aplicado a qualquer instância para fazer uma predição. Abordagens de aprendizado de máquina baseadas em regras incluem sistemas classificadores de aprendizagem, aprendizado de regras de associação e sistemas imunológicos artificiais.

Sistemas de classificadores de aprendizagem
Os sistemas de classificação de aprendizado (LCS) são uma família de algoritmos de aprendizado de máquina baseados em regras que combinam um componente de descoberta (por exemplo, um algoritmo genético) com um componente de aprendizado (realizando aprendizado supervisionado, aprendizado por reforço ou aprendizado não supervisionado). Eles buscam identificar um conjunto de regras dependentes do contexto que coletivamente armazenem e apliquem o conhecimento de maneira indireta, a fim de fazer previsões.

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

Agricultura
Teorema automatizado provando
Sites adaptativos
Computação Afetiva
Bioinformática
Interfaces cérebro-máquina
Quimformática
Classificando seqüências de DNA
Anatomia computacional
Redes de Computadores
Telecomunicação
Visão computacional, incluindo reconhecimento de objetos
Detectando fraude de cartão de crédito
Jogo geral
Recuperação de informação
Detecção de fraudes na Internet
Lingüística Computacional
Marketing
Controle de aprendizado de máquina
Percepção da máquina
Diagnóstico Médico Automatizado
Economia computacional
Seguro
Processamento de linguagem natural
Compreensão da linguagem natural
Otimização e metaheurística
Publicidade on-line
Sistemas de recomendação
Locomoção do robô
Motores de busca
Análise de sentimentos (ou mineração de opinião)
Mineração de seqüência
Engenharia de software
Reconhecimento de fala e caligrafia
Análise do mercado financeiro
Monitoramento de integridade estrutural
Reconhecimento de padrões sintáticos
Previsão de séries temporais
Análise de comportamento do usuário
Maquina de tradução

Em 2006, a empresa de filmes on-line Netflix realizou o primeiro concurso “Netflix Prize” para encontrar um programa para melhor prever as preferências do usuário e melhorar a precisão do algoritmo existente de Cinematch em pelo menos 10%. Uma equipe conjunta formada por pesquisadores da AT & T Labs-Research, em colaboração com as equipes Big Chaos e Pragmatic Theory, construiu um modelo para ganhar o Grande Prêmio em 2009 por US $ 1 milhão. Logo após o prêmio ter sido concedido, a Netflix percebeu que as avaliações dos espectadores não eram os melhores indicadores de seus padrões de visualização (“tudo é uma recomendação”) e eles mudaram o mecanismo de recomendação de acordo.

Em 2010, o The Wall Street Journal escreveu sobre a empresa Rebellion Research e seu uso do Machine Learning para prever a crise financeira.

Em 2012, o co-fundador da Sun Microsystems, Vinod Khosla, previu que 80% dos empregos médicos seriam perdidos nas próximas duas décadas para o software de diagnóstico médico de aprendizado de máquina automatizado.

Em 2014, foi relatado que um algoritmo de aprendizado de máquina foi aplicado na História da Arte para estudar pinturas de belas artes, e que ele pode ter revelado influências não reconhecidas entre artistas.

Limitações
Embora o aprendizado de máquina tenha sido transformador em alguns campos, o aprendizado de máquina efetivo é difícil porque encontrar padrões é difícil e, muitas vezes, não há dados de treinamento suficientes disponíveis; Como resultado, muitos programas de aprendizado de máquina muitas vezes não conseguem entregar o valor esperado. As razões para isso são inúmeras: falta de dados (adequados), falta de acesso aos dados, viés de dados, problemas de privacidade, tarefas e algoritmos mal escolhidos, ferramentas e pessoas erradas, falta de recursos e problemas de avaliação.

Em 2018, um carro autônomo da Uber não conseguiu detectar um pedestre, que foi morto no acidente. As tentativas de usar o aprendizado de máquina na área de saúde com o sistema IBM Watson falharam, mesmo depois de anos e bilhões de investimentos.

Viés
As abordagens de aprendizado de máquina, em particular, podem sofrer de diferentes vieses de dados. Um sistema de aprendizado de máquina treinado apenas com seus clientes atuais pode não ser capaz de prever as necessidades de novos grupos de clientes que não estão representados nos dados de treinamento. Quando treinados em dados feitos pelo homem, o aprendizado de máquina provavelmente captará os mesmos preconceitos constitucionais e inconscientes já presentes na sociedade. Os modelos de linguagem aprendidos a partir de dados mostraram conter vieses semelhantes aos humanos. Sistemas de aprendizado de máquina usados ​​para avaliação de risco criminal foram considerados tendenciosos contra negros. Em 2015, as fotos do Google costumavam marcar os negros como gorilas, e em 2018 isso ainda não foi bem resolvido, mas o Google ainda estava usando a solução alternativa para remover todos os gorilas dos dados de treinamento e, portanto, não foi capaz de reconhecer gorilas reais todos. Problemas semelhantes com o reconhecimento de pessoas não brancas foram encontrados em muitos outros sistemas. Em 2016, a Microsoft testou um chatbot que aprendeu no Twitter, e rapidamente adquiriu uma linguagem racista e sexista. Devido a tais desafios, o uso efetivo do aprendizado de máquina pode levar mais tempo para ser adotado em outros domínios.

Avaliações de modelo
Os modelos de aprendizado de máquina de classificação podem ser validados por técnicas de estimativa de precisão como o método Holdout, que divide os dados em um conjunto de treinamento e teste (convencionalmente 2/3 conjunto de treinamento e 1/3 conjunto de teste) e avalia o desempenho do modelo de treinamento em o conjunto de teste. Em comparação, o método de validação N-fold-cross divide aleatoriamente os dados em k subconjuntos onde as instâncias k-1 dos dados são usadas para treinar o modelo, enquanto a instância k é usada para testar a capacidade preditiva do modelo de treinamento. Além dos métodos de validação cruzada e validação cruzada, o bootstrap, que coleta amostras de instâncias com substituição do conjunto de dados, pode ser usado para avaliar a precisão do modelo.

Além da precisão geral, os pesquisadores freqüentemente relatam sensibilidade e especificidade, ou seja, Taxa Positiva Verdadeira (TPR) e Taxa Negativa Verdadeira (TNR), respectivamente. Da mesma forma, os investigadores, por vezes, relatam a taxa de falso positivo (FPR), bem como a taxa de falso negativo (FNR). No entanto, essas taxas são proporções que não revelam seus numeradores e denominadores. A Total Operating Characteristic (TOC) é um método eficaz para expressar a capacidade de diagnóstico de um modelo. O TOC mostra os numeradores e denominadores das taxas mencionadas anteriormente, portanto, o TOC fornece mais informações do que a comumente usada Receiver Operating Characteristic (ROC) e a Área sob a curva (AUC) associada a ROC.

Ética
Aprendizado de máquina representa uma série de questões éticas. Sistemas que são treinados em conjuntos de dados coletados com vieses podem exibir esses vieses quando usados ​​(viés algorítmico), digitalizando assim preconceitos culturais. Por exemplo, usar dados de contratação de trabalho de uma empresa com políticas de contratação racistas pode levar a um sistema de aprendizado de máquina duplicando o viés, classificando os candidatos a emprego em relação à semelhança com os candidatos anteriores bem-sucedidos. A coleta responsável de dados e documentação de regras algorítmicas usadas por um sistema é, portanto, uma parte crítica do aprendizado de máquina.

Como a linguagem contém vieses, as máquinas treinadas em corpora de idiomas também necessariamente aprenderão o preconceito.

Outras formas de desafios éticos, não relacionados a vieses pessoais, são mais vistas nos cuidados de saúde. Existem preocupações entre os profissionais de saúde de que esses sistemas podem não ser projetados no interesse do público, mas como máquinas geradoras de renda. Isso é especialmente verdadeiro nos Estados Unidos, onde há um dilema ético perpétuo de melhorar a assistência médica, mas também aumentar os lucros. Por exemplo, os algoritmos podem ser projetados para fornecer aos pacientes testes desnecessários ou medicamentos nos quais os proprietários proprietários do algoritmo participam. Há um enorme potencial para o aprendizado de máquina na área de saúde para fornecer aos profissionais uma ótima ferramenta para diagnosticar, medicar e até planejar caminhos de recuperação para os pacientes, mas isso não acontecerá até os vieses pessoais mencionados anteriormente, e esses vieses de “ganância” são abordados.

Programas
Conjuntos de software contendo uma variedade de algoritmos de aprendizado de máquina incluem o seguinte:

Software gratuito e de código aberto
CNTK
Deeplearning4j
ELKI
H2O
Mahout
Malho
mlpack
MXNet
OpenNN
laranja
scikit-learn
Shogun
Spark MLlib
TensorFlow
Tocha / PyTorch
Weka / MOA
Yooreeka

Software proprietário com edições gratuitas e de código aberto
KNIME
RapidMiner

Software proprietário
Amazon Machine Learning
Angoss KnowledgeSTUDIO
Ayasdi
IBM Data Science Experience
Google Prediction API
IBM SPSS Modeler
KXEN Modeler
LIONsolver
Mathematica
MATLAB
Python
Aprendizado de Máquina do Microsoft Azure
Designer Neural
NeuroSolutions
Mineração de Dados Oracle
Serviço Oracle Cloud AI Platform
RCASE
SAS Enterprise Miner
SequênciaL
Splunk
STATISTICA Data Miner