Victor Hugo Ovani Marchetti – Estudante de medicina – Centro Universitário do Espírito Santo
SUMÁRIO
Introdução......................................................................................................................................................1
diferença de Inteligência artificial e machine learning..............................................................................1
Conceito de inteligência artificial..........................................................................................................1
Conceito de machine learning...............................................................................................................1
Dados de treino e dados de teste..............................................................................................................1
Overfitting e underfitting.......................................................................................................................1
Etapas do machine learning.......................................................................................................................2
formas que o algorítmo aprende...............................................................................................................3
Aprendizado por reforço.......................................................................................................................3
Aprendizado não-supervisionado..........................................................................................................3
Aprendizado semi-supervisionado........................................................................................................3
Aprendizado Supervisionado.................................................................................................................3
Problemas de classificação ou de regressão.............................................................................................3
Linguagens de programação......................................................................................................................4
Pacotes mais utilizados em R.................................................................................................................4
Python:...................................................................................................................................................4
Tipos de algoritmo de machine learning:......................................................................................................4
Matemática para machine learning.............................................................................................................10
Limites e continuidade de funções..........................................................................................................10
Derivadas.................................................................................................................................................11
Funções de grau 2 ou superior............................................................................................................12
Derivadas parciais................................................................................................................................14
Pontos máximos e mínimos de uma função............................................................................................14
Distribuição normal – gaussiana..............................................................................................................15
Vetores.....................................................................................................................................................16
Normalização...........................................................................................................................................17
mae e mse................................................................................................................................................17
INTRODUÇÃO
EXEMPLO DA DEEPMIND
Algoritmo de xadrez sem registro de nenhuma estratégia de jogo criado e colocado para jogar
para si mesmo. Ele foi capaz de ganhar de todos os algoritmos sem aprendizado de máquina e fez
estratégias de jogo inexplicáveis por qualquer ser humano. As maquinas estão adquirindo
conhecimentos que nem o ser humano tem.
Dados de treino são aqueles utilizados para que o algoritmo aprenda padrões, por exemplo,
entender quais são os padrões dos pacientes que evoluem para determinada doença. Já dados de teste
são aqueles utilizados para testar o aprendizado do algoritmo no treino, ou seja, devem ser dados
totalmente novos em relação aos do teste, que a maquina ainda não conhece, para que assim possamos
avaliar sua capacidade de acerto.
OVERFITTING E UNDERFITTING
Esses conceitos dizem respeito à capacidade de nosso modelo compreender os padrões dos
dados de teste. Observe os três padrões abaixo:
É previsível que não nos é interessante um modelo que não seja capaz de aprender os padrões
de nossos dados de treino, ou seja, em linguagem matemática, que chegue a uma curva de distribuição
dos dados que seja muito divergente daquilo que nossos valores propõem. Isso é o que chamamos de
sub ajuste, sub treinado ou underfitting.
Por outro lado, por mais estranho que possa parecer, um modelo que se adapte muito bem aos
dados analisados também não é bom. Isto é, caso o modelo preditivo seja muito específico para nossos
dados de treino, terá problemas de variância e, portanto, ao extrapolá-lo para outros conjuntos de
dados, devido a sua alta especificidade para os dados em que foi treinado, perderá em capacidade
preditiva. Isso é um caso de sobre ajuste, sobre treinado ou overfitting.
Dessa forma, o modelo e machine learning ideal precisa aprender os padrões de treino,
entretanto, não deve ser extremamente complexo e ajustado a eles, mas afrouxado para que, a partir
de erros no treino, se aumente a taxa de acerto na extrapolação.
- Seleção/Exclusão das variáveis: Decidir quais variáveis são úteis para o estudo.
APERFEIÇOAMENTO
- Testar outro modelo? Alterar os parâmetros. Comparar resultados. Modificar o pré-processamento dos
dados e a seleção das variáveis? Tratar diferente os outliers? Fazer isso até ver que não está melhorando
tanto.
APRENDIZADO NÃO-SUPERVISIONADO
O algoritmo aprende os dados sem uma resposta certa. Geralmente para analisar e encontrar clusters,
grupos parecidos. Um conjunto de pacientes, sem que haja um marcador específico em cada um deles,
mas o algoritmo consegue observar características em comum e agrupa em categorias, o algoritmo
consegue identificar diferentes perfis de pacientes, por exemplo, sem uma resposta específica.
APRENDIZADO SEMI-SUPERVISIONADO
Presença de alguns dados com rótulo e outros sem. (Ex: Google fotos que agrupa as fotos e em algum
momento alguém vai lá e identifica).
APRENDIZADO SUPERVISIONADO
Quando os dados utilizados para treinar o algoritmo incluem a resposta certa, ou seja, existe um
“Rótulo” ou “Label” acerca dos dados bem estabelecidos. Por exemplo, imagine uma classificação de
imagens: Já está pré-estabelecido quais figuras representam uma geladeira, uma flor, um celular e com
base nessa informação prévia, o programa é treinado e consegue aprender. Um exemplo para a área da
saúde, seria um exemplo em que os dados já informam para o treino quais pacientes evoluíram com
determinada doença.
Os problemas de regressão desejam prever um dado numérico, por exemplo, o preço de um produto, a
altura de uma pessoa, o IMC, o peso. Já um problema de classificação envolve a busca por uma
categoria, ou seja, saber se a pessoa possui ou não determinada doença: “Em qual classe ela está?”.
Cabe destacar que é muito simplista classificar variáveis quantitativas como problemas de regressão ou
variáveis qualitativas como problemas de classificação. Por exemplo, por vezes, números de 1 a 4
podem representar diferentes categorias que não necessariamente tem relação ordinal entre elas, por
exemplo a origem de um paciente: cardiologia (1), pneumologia (2), oncologia (3) ou outro (4). Ao
mesmo tempo, variáveis qualitativas ordinais podem ser tratadas de maneira interessante como
variáveis de regressão. O ideal é pensar, meu grupo de número 5 é 5 vezes mais forte que meu grupo de
número 1? Se existir essa relação, é possível que seja válido considerar um problema de regressão.
LINGUAGENS DE PROGRAMAÇÃO
PYTHON:
Muito mais usado para deep learning.
Matplotlib: Gráficos
Aprendizado não-supervisionado
O algoritmo aprende os dados sem uma resposta certa. Geralmente para analisar e encontrar clusters,
grupos parecidos.
Aprendizado semi-supervisionado
Presença de alguns dados com rótulo e outros sem. (Ex: Google fotos que agrupa as fotos e em algum
momento alguém vai lá e identifica).
Aprendizado por reforço: Interação com um ambiente dinâmico com feedbacks em termos de
premiações e punições.
Aprendizado Supervisionado: Quando os dados utilizados para treinar o algoritmo incluem a resposta
certa (“Rótulo” ou “Label”).
- Sobreajuste
Pré-processamento dos dados: Lidar com outliers, correlações aleatórias e erros de medida – xgboost +
deep-learning.
- Seleção das variáveis: Incluir apenas variáveis que de forma razoável influenciem no desfecho.
- Vazamento dos dados: Data Leakage – Informação escondida nos dados de treino, ou seja, uma
variável preditiva tem o resultado certo. (Ex: pacientes com número de identificação de hospital de
câncer como preditivo para saber se tem câncer).
- Padronização: Variáveis com alta escala afetam a qualidade da predição e alguns algoritmos dão
preferência para escalas mais amplas, então é melhor usar escalas de tamanhos semelhantes na hora de
pré-processar (Geralmente por score z).
- Redução de dimensão: Análise de componentes principais, reduzir variáveis juntando elas preservando
a melhor correlação linear possível dos dados.
- Corrrelação alta: Um dos motivos do uso de componentes principais, cria modelos de menor
correlação, torna o modelo menos instável.
- Colinearidade: Excluir variáveis de correlação alta. Pode-se usar regra de correlação com outras
variáveis preditivas e eliminar muito semelhantes.
- Valores missing: Variável faltante – Pode ser útil, ajuda na predição futura, o fato de alguém não
conseguir responder a pergunta, pode ser preditivo. Pode usar machine learning para preencher as
variáveis missing também.
- One-hot encoding: Dificuldade de alguns algoritmos de entender variáveis com mais de uma categoria
e alguns algoritmos podem entender ela como variáveis contínuas – a alternativa é criar cada categoria
como uma nova variável. Regressão linear: dummies.
Sobreajuste: Modelos muito complexos de machine learning, funcionam muito bem para a amostra
atual e falha nas amostras futuras.
Variância: Quando pequenas mudanças nos dados levam a uma mudança muito grande nos parâmetros.
Avalia o sobreajuste testando em novos dados, dados que o algoritmo nunca viu – a solução mais
interessante é testar o algoritmo em dados futuros.
Alternativa: Faz uma seleção aleatória dos dados – 70-80% de treino e 20-30% de teste.
Hiperparâmetros do modelo: Feito pelo pesquisador – Segurar a complexidade do algoritmo, para ele
errar mais no treino e acertar mais no teste.
Validação cruzada: Divide os dados em 10 partes, treina em 9 e testa em 10, faz isso em cada uma das
10 partes e faz a média da performance preditiva e é assim que seleciona o melhor hiperparâmetro.
Teorema de não há almoço grátis: Dados infinitos conjuntos de dados não garante melhor performance
de nenhum algoritmo, a única forma de saber qual vai ter melhor performance é testar todos.
Problemas de classificação:
Curva ROC: Receiver Operator Characteristic – junta especificidade. Quanto maior a área abaixo da
curva melhor é. Threesold.
Análise da importância de cada variável preditora: depende do algoritmo, em geral permuta os valores
da variável e vê se o algoritmo muda muito o resultado.
Regressões:
São uma forma de predição muito usadas em estudos de inferência, tanto a regressão linear, tanto a
regressão logística. Não são predições muito boas e tem uma forte tendência de sobreajuste,
principalmente quando tem colinearidade.
Uma solução é adicionar hiperparâmetros regularizadores que pode melhorar o viés mas diminuir a
variância.
O objetivo é minimizar a soma dos erros quadráticos.
Adiciona uma penalização quadrática aos parâmetros, ou seja, diminui o valor a cada vez os parâmetros
ficarem muito alto. – Penalização de Ridge (L2), controlada pelo valor de lambda, penaliza B1, B2 e B3,
não penaliza o B0 (beta são os coeficientes), no geral reduz o valor quando os betas são muito altos, ou
seja, a medida que se aumenta o lambda, o beta vai encolhendo. Decide o valor do lambida pelo valor
cruzado.
Escolhe Lambda por validação cruzada e testa a regressão linear por ridge e lasso, escolhe o menor
RMSE.
Regressão logística: Mesmos critérios, mas não são estabelecidos por mínimos quadrados, mas por
máximo de verossimilhança.
Usa quando tem muitas variáveis preditoras -> Ou remove variáveis ou faz análise de componentes
principais.
Support Vector Machines: É usado para problemas de classificação e regressão e serve para criar uma
fronteira chamada de hiperplano que divida o espaço amostral em áreas similares.
Ele precisa identificar o hiperplano de margem máxima e para isso usa o conceito de vetores de suporte,
ou seja, os pontos mais próximos de cada hiperplano.
Caso os grupos não sejam linearmente separáveis, usa a margem fraca, ou seja, permite alguns erros,
mas torna o modelo mais penalizado nesses erros.
Hiperparâmetro é chamado de c, ou seja, quanto mais erros são gerados, maior é o valor de c e maior é
a penalização, maior é a variância do modelo.
MARS
Modelo de regressão flexível que modelo não-linearidades e interações, que divide o espaço amostral
em partes em nós de início e de fins, com retas diferentes em cada nó. É forçado que haja uma
continuidade entre os nós.
Árvores de decisão
Separar os dados em grupos cada vez mais homogêneos em relação ao desfecho, começa com o nó raiz
e vai passando para novos nós, até chegar a um fim, que se chama de folha, cada nó tem duas divisões,
mas há algoritmos que usam mais.
Fácil de implementar, lidam bem com qualquer preditor e fazem seleção de variáveis.
Solução Bagging (bootstrap agreggation): sorteio da amostra com reposição para cada árvore para tirar
o efeito que algumas observações podem ter nos resultados e depois fazer uma média dos resultados.
Definida sem regularização (Deixa ser complexa e no fim tira uma média de várias)
No caso de uma regressão, o resultado final é a média, no caso de classificação é a categoria mais
predita em cada árvore do estudo.
Técnicas:
CART: Classification and regression tree
Quando a árvore para: Número mínimo de amostra em cada nó, profundidade limite da arvore,
ausência de capacidade de diminuir mais impurezas.
Pode ter algum preditor muito importante que acaba sendo o primeiro selecionado em todas as árvores
e ele pode ser uma associação espúria.
Random forests: Bagging + Sorteio dos preditores em cada nó e usa um número menor de preditores,
normalmente a raiz quadrada dos preditores originas, gera um menor custo computacional.
Gradient boosted trees: Combina predições de modelos fracos para construir um comitê poderoso,
responsável pela predição final, treinar modelos sequenciais cada um tentando corrigir o anterior por
meio do ajuste dos resíduos, atualizar o valor predito de cada observação adicionando o valor predito
anterior.
Se baseia no cérebro pela formação de novas representações na camada oculta. Cada camada oculta é
uma combinação linear de todos os preditores (regressão logística).
Os parâmetros são iniciados em valores aleatórios e bem baixos, ajustados de frente para trás em back-
propagation.
Tem uma tendência muito grande a sobreajuste e faz Early stopping que é parar a atualização dos
parâmetros quando eles pioram.
Weight decay: Lembra a penalização de ridget, exerce um lambda via validação cruzada. Uma camada
oculta é a característica das redes neurais.
As redes neurais utilizam mais camadas entre os preditores e a resposta, chamada de camada de rede
profunda ou deep learning, composta por 5 a 100 neurônios. É comum adicionar um grande número de
unidade e treinar o modelo com regularização.
A deep learning tem mais do que uma camada oculta, muitas vezes amplamente conectadas e no final
tem uma predição final.
O erro de predição é medida na regressão pelo erro quadrático médio e na classificação pela entropia
cruzada por backpropagation.
Gradient descent (otimizador): vai mudando o gradiente da função de perda em relação aos pesos e
move o valor dos pesos na direção oposta do gradiente, diminuindo as perdas.
Função de ativação: Função não linear, como relu que elimina dados negativos.
Mais do que uma camada profunda, muitas vezes muito conectadas e tem uma função de ativação, uma
função de perda que orienta o aprendizado.
f(x) = x²
Lim x²
X -> 3
O infinito não é um número, já que ele não existe na natureza. Portanto não é possível fazer contas
algébricas com o infinito (A conta a seguir não existe, por exemplo: ∞ - ∞ = 0). O gráfico acima mostra o
exemplo do valor de y com x-> ∞, dessa forma, quanto mais eu aumento o valor de x, mais a função se
aproxima de 0, logo o limite tem como valor 0. Já ao contrário, se x->0 + , o valor da função tende a ∞.
DERIVADAS
As derivadas são o cálculo diferencial. Para entende-la, precisamos relembrar a equação geral de uma
reta:
Y = AX + B
São fatos que o coeficiente angular (a) diz respeito à inclinação da reta e o coeficiente linear (b) diz onde
ela cruza o eixo y. O coeficiente angular é igual à taxa de variação de y em função de x e também é igual
a tangente do ângulo da reta com o eixo x e a taxa de variação é constante para uma mesma reta.
A figura abaixo demonstra a dedução da inclinação da reta em qualquer ponto para a função de
segundo grau abaixo:
Um exemplo é que a fórmula verdadeira da velocidade na física é a razão das derivadas da distância e do
tempo.
Faz a derivada deixando a outra variável como uma constante e troca o símbolo, simulando como se a
função dependesse apenas de x. Depois deriva a outra variável mantendo a primeira como uma
constante. O plano onde a outra variável é constante vai ser então um plano e a derivada vai ser uma
linha nesse plano e isso permite trabalhar com funções de até mais de duas variáveis.
O ponto de máximo ou de mínimo são os pontos em que a reta tangente é horizontal, ou seja, a taxa de
variação é igual a 0. Logo, é possível encontra-los derivando a função e igualando a derivada a 0.
Em alguns casos, é possível haver máximos e mínimos locais. Não é possível, por esse método, descobrir
o ponto máximo global, apenas os locais em alguns casos.
DISTRIBUIÇÃO NORMAL – GAUSSIANA
Quanto mais eu aumento o tamanho da amostra, mais eu achato a curva e faz mais sentido eu
categorizar a amostra em faixas de valores. Se tiver muitos valores, faz mais sentido pensar o eixo
vertical como uma densidade de probabilidade e não como uma probabilidade exata e a probabilidade
pode ser calculada pela área abaixo da curva do gráfico. Em outras palavras, quando o n tende ao
infinito, a distribuição binomial em uma distribuição normal.
A distribuição normal é simétrica e seu meio corresponde à média. Quanto mais achatada a curva for,
maior é o seu desvio padrão, ou seja, mais distante os valores estão da média.
Qual a probabilidade de achar uma pessoa com altura entre 1,70 e 1,75? Calcula a área do gráfico entre
esses valores de x. Como isso seria muito difícil de fazer, foi criada uma curva de desvio padrão com
média 0 e desvio padrão igual a 1, com todos os valores tabelados. Com o valor z, é possível transformar
qualquer curva nessa curva e consequentemente calcular as probabilidades a partir dos cálculos já
tabelados. A fórmula no canto é a densidade de probabilidade que já está calculada na tabela do valor z.
VETORES
O vetor tem um comprimento (módulo – um tamanho específico, não é infinito), direção (ângulo) e
sentido (+/-), eles são muito úteis em machine learning e tem um algoritmo próprio, o SVM – support
vector machines.
O vetor pode ser representado como “A – 0”, ou seja, nesse caso, ele sai do ponto 0 e vai até o ponto A.
Também é possível decompor e somar vetores e essa soma não pode ser modular, é preciso aplicar a
regra do paralelograma, criando retas paralelas aos vetores existentes para encontrar o vetor final, o
encontro das linhas paralelas é a soma dos dois vetores. Para subtrair vetores, basta inverter o sentido.
NORMALIZAÇÃO
A normalização dos dados muitas vezes é importante para deixar os dados de diferentes variáveis na
mesma escala. Muitas vezes uma variável com escala muito pequena pode acabar tendo um peso muito
menor do que uma variável com escala muito grande e isso pode influenciar muito no resultado
(Exemplo: Altura em metros e peso em kg para avaliar porte físico, a variação da altura vai ter pouco
impacto). Uma forma interessante é calcular a média e dividir os valores pela sua média, assim
consegue-se uma proporção mais interessante entre todos os dados, deixando eles com o mesmo peso,
assim, agora, o que importa é a distância dos dados em relação à sua própria média.
MAE E MSE
O erro médio absoluto (MAE) e o erro médio quadrático (MSE) serve para comparar algoritmos e
identificar o que teve melhor resultado.