Inteligência Artificial - Resumão teórico para P2
AULA VII
O que são algorítmos evoluconários?
São algoritmos que usam uma grande variedade de modelos computacionais dos processos naturais de evolução como uma ferramenta para resolver problemas.
Processos em comum:
- Conceito de simulação da evolução das espécies.
- Uso de operadores de seleção, mutação e reprodução.
- Todos os processos dependem do “desempenho” dos indivíduos desta espécie dentro do “ambiente”.
Extremamente dependentes de fatores estocásticos (probabilísticos), tanto na fase de inicialização da população quanto na fase de evolução (durante a seleção dos pais, principalmente).
- Seus resultados raramente são perfeitamente reprodutíveis.
- Algoritmos evolucionários são heurísticas que não asseguram a obtenção do melhor resultado possível em todas as suas execuções.
Como os algoritmos evoluconários se comportam?
Comportam-se de forma semelhante à evolução das espécies.
Quando usar os algoritmos evolucionários?
Entram em cena para resolver aqueles problemas cujos algoritmos são extraordinariamente lentos (problemas NP-completos) ou incapazes de obter solução (como por exemplo, problemas de maximização de funções multi-modais).
O que é algoritmo genético (GA)?
São um ramo dos algoritmos evolucionários.
Podem ser definidos como uma técnica de busca baseada numa metáfora do processo biológico de evolução natural.
São técnicas heurísticas de otimização global e são algoritmos de busca baseados nos mecanismos de seleção natural e genética.
Explique o esquema de uma GA.
Visão de alto nível de nosso algoritmo.
Esconde é a complexidade do processo de obtenção de:
- Uma representação cromossomial que seja adequada ao problema.
- Uma função de avaliação que:
Penalize soluções não-plausíveis para nosso problema.
Avalie satisfatoriamente o grau de adequação de cada indivíduo como solução do problema em questão.
Altamente genérico e por isso vários de seus componentes são invariáveis de um problema para outro.
Favorece sua implementação em uma linguagem orientada a objeto (reaproveitamento de código).
Como é feita a representação cromossomial?
Fundamental para o algoritmo genético.
Maneira de traduzir a informação do nosso problema em uma maneira viável de ser tratada pelo computador.
- Pedaço indivisível desta representação é chamado de um gene.
-
Algumas regras gerais devem ser seguidas:
A representação deve ser a mais simples possível.
Se houver soluções proibidas ao problema, então elas não devem ter uma representação.
Se o problema impuser condições de algum tipo, estas devem estar implícitas dentro da nossa representação.representação em binário cada gene é somente um bit. um cromossomo nada mais é do que uma sequência de bits.
para representar números reais com números binários, temos primeiro que saber duas coisas: a faixa de operação de cada uma das variáveis. a precisão desejada. sabendo isto, convertemos bits para números: existe uma representação numérica direta!
Explique a função de avaliação.
Maneira utilizada pelos GAs para determinar a qualidade de um indivíduo como solução do problema em questão.
É uma nota dada ao indivíduo na resolução do problema e erá usada para a escolha dos indivíduos pelo módulo de seleção de pais (diferenciar bons dos ruins).
Única ligação verdadeira do programa com o problema real.
O mesmo GA pode ser usado para descobrir o máximo de toda e qualquer função de “n” variáveis sem nenhuma alteração das estruturas de dados e procedimentos adotados.
Explique a seleção de pais.
Simula o mecanismo de seleção natural:
Pais mais capazes geram mais filhos.
Pais menos aptos também podem gerar descendentes.
Os indivíduos com função de avaliação alta são privilegiados, sem desprezar completamente aqueles indivíduos com função de avaliação extremamente baixa.
Indivíduos com péssima avaliação podem ter características favoráveis à criação de indivíduo ótimo.
Qual é o método mais adotado e simples?
É o método da roleta viciada.
A roleta (virtual) na qual cada cromossomo recebe um pedaço proporcional à sua avaliação (a soma dos pedaços não pode superar 100%).
A roleta é rodada.
Seleciona-se o indivíduo sobre o qual a roleta parar.
Quais são os operadores genéticos?
Operador de crossover
- Conhecido também como operador de crossover de um ponto.
- Depois de dois pais serem selecionados pelo módulo de seleção de pais, um ponto de corte é selecionado.
- Um ponto de corte constitui uma posição entre dois genes de um cromossomo.
-
Cada indivíduo de ‘n’ genes contem ‘n - 1’ pontos de corte.
- Depois de sorteado o ponto de corte, nós separamos os pais em duas partes: uma à esquerda do ponto de corte e outra à direita.
- O primeiro filho é composto através da concatenação da parte esquerda do primeiro pai com a parte direita do segundo pai.
- O segundo filho é composto através da concatenação das partes que sobraram (a metade esquerda do segundo pai com a metade à direita do primeiro pai).
O que é mutação?
Pequenos erros podem ocorrer ao longo do tempo, gerando mutações dentro do código genético.
Estas mutações podem ser boas, ruins ou neutras.
Depois de compostos os filhos, entra em ação o operador de mutação.
- A mutação opera da seguinte forma:
É associada uma probabilidade extremamente baixa (da ordem de 0,5%).
Nós sorteamos um número entre 0 e 1.
Se ele for menor que a probabilidade pré-determinada então o operador atua sobre o gene em questão, alterando-lhe o valor aleatoriamente.
Repete-se então o processo para todos os genes componentes dos dois filhos.
Crie uma imagem com todos os passos.
Defina a população.
Por simplicidade, população não pode crescer: permite que armazenemos a população em um vetor de tamanho constante.
Pais têm que ser substituídos conforme os filhos vão nascendo.
Entretanto, simula bem ambientes de recursos limitados.
A cada atuação do nosso operador genético estamos criando dois filhos.
São armazenados em um espaço auxiliar até que o número de filhos criado seja igual ao tamanho da população.
Neste ponto o módulo de população entra em ação.
Todos os pais são então descartados e os filhos copiados para cima de suas posições de memória, indo tornar-se os pais da nova geração.
Dê um exemplo.
Resolva o problema usando uma GHA de maximizar a função abaixo, com x e y pertencentes ao intervalo [0,15].
- f(x, y) = xysen( (y*pi) /4)
Como é possível que esta função retorne um valor igual a zero, usaremos uma função de avaliação (evitar espaços na roleta).
- g(x, y) = 1 + f (x, y)
População:
- Dado intervalo dos valores, são necessários 4 bits para cada variável.
- Isso implica um cromossomo de 8 bits.
- Taxa de mutação de 1%
- População de 6 indivíduos.
Comente qual solução a evolução natural alcança?
A evolução natural não é um processo dirigido à obtenção da solução ótima.
O processo simplesmente consiste em fazer competir uma série de indivíduos e pelo processo de sobrevivência do mais apto, os melhores indivíduos tendem a sobreviver.
A competição entre os indivíduos é que determina as soluções obtidas.
Assim como na natureza, a informação deve ser codificada nos cromossomos (ou genomas).
A reprodução, que no caso dos GAs, é equivalente à reprodução sexuada, se encarregará de fazer com que a população evolua.
A mutação cria diversidade, mudando aleatoriamente genes dentro de indivíduos.
A reprodução e a mutação são aplicadas em indivíduos selecionados dentro da nossa população.
O que é MINIMAX?
MINIMAX é uma estratégia de contingência para MAX que especifica o movimento de MAX de modo a otimizar o valor de utilidade.
A estratégia ótima é determinada pelo exame do valor minimax de cada nó n: valor-minimax(n).
Idéia: escolher a melhor jogada com o melhor retorno possível supondo que o oponente vai fazer a melhor jogada possível.
Encontra uma estratégia ótima que, independentemente das escolhas de MIN, garanta que MAX fará sempre o melhor possível.
Qual seria a estratégia ótima?
No problema de busca normal, a solução ótima seria uma sequência de movimentos que levasse a um estado objetivo.
Em um jogo MAX deve:
- Maximizar sua chance de vitória.
- Considerar que MIN minimizará sua chance de vitória.
Onde o MINIMAX geralmente é usado?
Em jogos (xadrez, jogo da velha, …).
As metas dos agentes estão em conflito.
Os ambientes competitivos dão origem a problema de busca competitiva.
-
Busca competitiva em ambientes determinísticos e completamente observáveis:
2 jogados se revezam. A vitória de um significa a derrota do outro.Ex: xadrez.
A posição de um jogador num instante (estado) do jogo pode ser medida por uma função de utilidade.
Valores de utilidade iguais e opostos:
+1 (ganhou) ou -1 (perdeu).
Qual é o objetivo da busca competitiva?
Planejar a melhor jogada com antecedência num mundo em que outros agentes estão fazendo planos contra nós.
Quais são as características e os elementos dos jogos com adversários?
-
Características:
Jogadores adversários que se revezam (MAX e MIN).
MAX faz o primeiro movimento (planejamos para ele).
Vencedor (perdedor) recebe pontos (penalidades).
No final, a soma de pontos e penalidades é nula. -
Elementos:
Estado inicial: inclui a posição do tabuleiro e identifica o jogador que fará o movimento.
Função sucessor: retorna uma uma lista de pares (movimento, estado).
Teste de término: determina quando o jogo termina (estados terminais).
Função utilidade: retorna valor numérico aos estados terminais. (ex: +1, 0, -1).
Exemplo:
jogo da velha.
Estado inicial:
Tabuleiro 3x3, jogadores X ou O, começa com X ou Y.
Função sucessor:
Após a primeira jogada (ex: X), o próximo jogador (O) escolhe um dos 8 espaços restantes (vazio) e deixa sua marcação, e assim por diante.
Teste de término:
Três letras Xs ou Os na horizontal, vertical ou diagonal, apenas uma vez, independente da linha ou coluna.
quantidade de jogos vencedores q posso fazer a partir daquele ponto.
Função de utilidade:
Retorna “n (+1, X)” se a vitória for para X em “n” vezes.
Retorna “n (-1, O)” se a vitória for para O (derrota de X) em “n” vezes.
Retorna “n empates(0)” se o jogo empatar, vitória de nenhum dos dois.
Dê um exemplo MINIMAX para um jogo.
MINIMAX para um jogo de tabuleiro:
Para decidir sobre o próximo movimento:
1 - análise das posições do tabuleiro que resultam de cada jogada possível.
2 - decida qual posição é melhor**.
3 - faça o movimento que leva àquela posição.
4 - atribua a classificação daquele melhor movimento à posição atual.
O que o MINIMAX faz?
O algoritmo minimax calcula a decisão minimax a partir do estado corrente.
Utiliza a computação recursiva dos valores minimax de cada estado sucessor.
Percorre inicialmente todo o caminho até as folhas e depois propaga os valores minimax de volta pela árvore, à medida que a recursão retorna.
O algoritmo minimax executa uma exploração completa da árvore de jogo fazendo uma busca em profundidade.
Caso a profundidade máxima da árvore seja ‘m’ e existem ‘b’ movimentos válidos em cada ponto, a complexidade de tempo do algoritmo é O(bm).
Equivale a uma busca completa em profundidade na árvore do jogo.
O MINIMAX é ótimo e completo? Se sim, qual é o seu problema?
Completo? SIM - se a árvore é finita.
Ótimo? SIM - contra um oponente também ótimo.
Problema: O número de estados de jogo examinados é exponencial em relação ao número de movimentos.
O que é Poda Alfa-Beta? Qual a diferença e vantagem?
Calcula a decisão correta sem examinar todos os nós da árvore.
Retorna o mesmo que MINIMAX, porém a vantagem é retornar o resultado sem percorrer todos os estados.
Pode ser aplicada a árvores de qualquer tamanho.
Frequentemente poda subárvores inteiras ao invés de apenas folhas.
A efetividade da poda alfa-beta é altamente dependente da ordem em que os sucessores são examinados - examinar primeiro os nós mais promissores.
Efetua um exame antecipado a uma distância aproximadamente duas vezes maior que MINIMAX no mesmo período de tempo com a melhor ordem tempo O(bm/2).
Quais são as variáveis do Poda Alfa-Beta?
α: valor da melhor escolha (mais alto), até o momento, ao longo do caminho para MAX.
β: valor da melhor escolha (mais baixo), até o momento, ao longo do caminho para MIN.
α, β
[-∞, +∞]
α (MAX) inicia com menos infinito.
β (MIN) inicia com mais infinito.
Atualiza os valores de alfa e beta à medida que prossegue e poda as ramificações restantes em um nó tão logo caso saiba que o valor do nó corrente é pior que o valor corrente de alfa e beta para MAX e MIN, respectivamente.
Truque para fazer poda alfa-beta:
-
Se estiver no Min e ancestral for um Max maior ou igual Min:
poda o restante dos filhos. -
Se estiver no Max e ancestral for um Min menor ou igual Max:
poda o restante dos filhos.
Dê dois exemplos de árvore e resolva usando MINIMAX. Depois usando Poda Alfa-Beta.
Site usando para reproduzir os exemplos:
https://raphsilva.github.io/utilities/minimax_simulator/#
Exemplo 1:
MINIMAX:
Poda alfa-beta:
Exemplo 2:
MINIMAX:
Relembrando:
-
Se estiver no Min e ancestral for um Max maior ou igual Min:
poda o restante dos filhos. -
Se estiver no Max e ancestral for um Min menor ou igual Max:
poda o restante dos filhos.
Poda alfa-beta:
AULA VIII e XI
O que é aprendizado de máquina?
É o aprendizado da máquina com base nos dados disponíveis.
A capacidade de generalização do dado aprendido.
- Ao ser treinado com um modelo de pássaro, poderá reconhecer outros modelos e até mesmo criar outros modelos.
O que influencia neste aprendizado?
Tipo de dados :
O tipo do input.
Para cada tipo de dado coletado existe seu formato, e cada possui suas exigências.
Armazenamento de uma imagem (ordem não importa).
Armazenamento de um texto.
Uma série temporal (ordem importa neste caso).
Qualidade:
Se o dado coletado tem mto ruido ou apresenta dado faltando.
Isso tem grande impacto no treinamento e solução final.
Viés:
Armazenados dentro dos datasets.
Dado tem uma tendência para alguma coisa.
Dado enviesado é um dado com algum vício ou viés estático que compromete o resultado.
Ex: pele branca ou pele escura.
Quais são os principais tipos de aprendizado?
Aprendizagem supervisionada.
Aprendizagem não supervisionada.
Aprendizagem por reforço.
Explique cada um do tipos.
Aprendizado supervisionado
Existência do professor externo.
Fase de treinamento de um modelo.
Exemplos rotulados/em classes.
O modelo deve ser capaz de gerar saídas válidas para novas entradas não apresentadas previamente.
Objetivo de reduzir o erro.
Ex: filtro de spam em e-mails.
Aprendizado não supervisionado
Inexistência de exemplos em classes (treinamento).
Adoção de uma medida de qualidade.
Utilizados para encontrar padrões ou tendências.
Separados em grupos diferentes (clusters).
Agente vai analisar as imagens, tentar encontrar alguma característica diferente e separar nos grupos.
Ex: separação dos personagens da Disney.
Aprendizado por reforço
Grande interação com o ambiente.
Método de tentativa e erro.
Programação dinâmica.
Ex: programa precisa escolher água (+50) ou fogo (-50). Caso escolha fogo, perde e precisa repetir até que uma política ótima seja encontrada.
Comente as partes importantes do aprendizado supervisionado.
Treinamento
Onde eu vou fornecer dados para minha solução aprender (dou essa entrada e espero essa saída).
Combinação
Diferentes soluções q se combinam e tem uma resposta final
Comente as 2 sub áreas do aprendizado supervisionado.
Classificação:
Usar imagens para classificar e reconhecer.
Ex:
Treinar com imagem de cachorro, generalizar cachorro e o que não for cachorro vai dizer que não é Cachorro.
Resposta binária.
Aplicação:
Detecção de fraudes de identidade, classificação de imagens, fidelização de clientes, diagnósticos.
Classe positiva = é cachorro.
Classe negativa = não é cachorro.
Quanto mais classes, mais dificuldades.
Regressão:
Usar informações do passado (valores) para estimar um valor futuro.
Ex:
Adicionar caracteristicas de uma casa que vão me guiar p chegar em um valor X.
O modelo aprendeu q com aquelas caracteristicas naquele lugar tem aquele valor X.
Vai estimar o valor da casa.
Aplicação:
Previsão do tempo, precisão de mercado, estimando a expectativa de vida, previsão do crescimento populacional.
Comente as 2 sub áreas do aprendizado não supervisionado.
Clustering:
Passar conjunto de vários dados sem regra específica.
O agente deve analisar e criar clusters (grupos) para cada dependendo das características.
Detectar padrões diferentes em grupos.
Ex:
Entregar ao agente imagens de cães e gatos e esperar a geração dos clusters corretos.
Aplicação:
Sistemas de recomendação, marketing direcionado, segmentação de clientes.
Reduzir Dimensionalidade:
Alta dimensionalidade quer dizer input com muitas features (opções).
Objetivo é dividir a imagem em várias features.
Ex: filtros de bordas à esquerdas.
Encontrar espaços mais bem separados.
Ex 2:
Imagem de passaro, mtos similares
Aplicar algoritmo para separar as espécies
Tentar projetar essa imagem e criar outra imagem com uma melhor separação do tipos de passaro, tipo da pena, formato da pata, bico.
Solução que aprende a separar as features.
Aplicação:
Visualização de big data, compressão significativa, descoberta de estrutura e elicitação de recursos.
O que representa X e Y na matriz do aprendizado supervisionado?
X é a minha entrada (atributos ou features).
Os atributos precisam estar relacionados com pelo menos uma resposta.
Y é a resposta.
Amostra é o conjunto de atributos.
Tudo tem como base a função - o X tem q dar o Y corrteto.
Explique os 3 conceitos importantes.
Outliers:
Exemplos (amostras) muitos diferente do resto.
Features muito diferentes.
Ex: casa com 2 quartos e casa com 12 quartos 2 suítes.
Overfitting:
Modelo especializado apenas no dados utilizados para o treinamento.
Modelo viciado.
Ex: só reconhece cachorros q foram treinados.
Underfitting:
Quando os exemplos do treinamento são pouco representativos.
Mesmo com treinamento não aprende nada.
Geralmente a solução não faz sentido com o problema ou não está completa.
Ex: agente treina com imagens de flores, mas não consegue classificar nenhuma.
O que é aprendizado estático?
Estabelecem condições matemáticas que auxiliam na escolha de um classificador particular a partir de um conjunto de dados de treinamento.
Este classificador deve separar os dados em classes da forma mais eficiente possível.
-
Qual metodo de separação é melhor?
No contexto da imagem, a figura da direita separa melhor (linha de divisão quase igualando os dois lados). A figura da esquerda gera a reta mais próxima dos cubos (favorece). -
Figura esquerda:
Proximidade da amostra mais duvidosa. -
Figura direita:
As bolinhas têm a mesma distância dos quadrados.
Separar peto que garante um bom posicionamento e sucesso. -
Dever ser o mais longe possível das duas classes e bem centralizado!
A distancia entre as amostras deve ser igual e centralizada (se possível).
O mais longe das classes.
Isso ocorre para NÃO FAVORECER NENHUMA DELAS! -
Transformação dos dados
Resultado obtido pela função.
Função que deu amostras em partes não cartesianas do grafico.
O que é SVM?
Support Vector Machines ou Máquinas de Vetores de Suporte. Embasadas pela teoria de aprendizado estatístico.
Objetivo: obtenção de classificadores com boa generalização, definida como a sua capacidade de prever corretamente a classe de novos dados do mesmo domínio em que o aprendizado ocorreu.
Liste os tipos de SVM.
SVMs lineares com margens rígidas.
SVMs lineares com margens suaves.
SVMs não lineares - mais conhecido com kernel RBF.
SVMs lineares com margens rígidas.
Separação das classes é feita com margem máxima.
Não permite erro de classificação.
Pontos de dados de cada classe devem estar completamente separados por uma linha com a maior distância possível.
SVMs lineares com margens suaves.
Alguns erros de classificação são permitidos.
Uma penalidade é aplicada para cada erro, permitindo um balanço.
SVMs não lineares - mais conhecido com kernel RBF.
RBF = Radial Basis Function.
Cria uma separação não linear no espaço original dos dados.
Permite que a SVM encontre um limite de decisão mais complexo e adequado para dados não lineares.
A ideia do kernel é tentar fazer uma reta com função polinomial.
Kernels podem ser combinados.
Pode ajudar a capturar melhor as relações nos dados e potencialmente melhorar o desempenho do modelo.
MKL (Multiple Kernel Learning) é uma técnica mais avançada onde o modelo aprende automaticamente a melhor forma de combinar vários kernels durante o treinamento.
Ótimo ambiente para praticasr (site):
LIBSVM
https://www.csie.ntu.edu.tw/~cjlin/libsvm/
- Parâmetros:
C = coeficiente.
S = polinomio.
t = kernel.
c = custo.
O que é MNIST dataset?
Conjunto de dígitos escritos a mão.
28x28 pixels.
Não é RGB (ou seja, é preto e branco).
Apenas 1 matriz.
1 = preto e 0 = branco (também apresenta valores intermediários).
Aula XI
Datas importantes.
1943
Redes neurais artificiais (RNAs / ANNs) foram introduzidas pelo neurofisiologista Warren McCulloch e o matemática Wlater Pitss.
Primeiro neurônio - diferente do que existe hoje.
1960
Sucesso das ANNs levou à difusão da crença de que logo estaríamos interagindo máquinas verdadeiramente inteligentes. Como isso não aconteceu, os investimentos caíram.
1980
o interesse ressurgiu graças a novas arquiteturas e melhores técnicas de treinamento, como backpropagation.
Resolveu problemas de treinamento.
Algoritmo fundamental para sucessos da rede neural.
O que a ImageNet conseguiu?
2012 primera solução - abaixou acurácia.
Redes neurais convolucionais.
Compar o neurônio biológico e artificial.
Neurônio biológico
sinal entra pelo dendritos.
passa pelo corpo.
passa pelo axônio.
sai pelos terminais do axônio.
Neurônio artificial
Input: podem ser vários inputs.
Ex: x0, x1, x2.
Cada valor de entrada é passado (multipicado) por um peso (w).
Ex: w0x0, w1x1, w2x2.
O peso (w) é justamente o parâmetro q eu vou aprender.
O peso q vai dizer qual sinal é o mais importante entre todos.
Na inicialização, peso (w) qualquer é atribuído para cada entrada.
Durante o treinamento com backpropagation os valores dos pesos são aumentados para um melhor resultado.
Ajustes de valores até chegar no conjunto que faça com que minha rede toda funcione.
Descobrir este conjunto de valores é complicado (leva a maior dificuldade), justamente o q ocorre na etapa de treinamento.
O que acontece no corpo do neurônio?
Soma ponderada - somatória do valores
O “b” significa baias.
Do mesmo jeito que ter que descobrir o valor de “w”, tem q descobrir valor para “b”.
Depois tudo isso é passado para uma função de ativação.
Essa é a função que vai dar a saída.
Resuma a função do neurônio artificial.
No final da contas, vou ter uma função de ativação que recebe uma soma ponderada mais um baias (viés).
Explique Rede Neural Artificial (ANN).
Com uma ANN, eu consigo resolver uma função não linear (diferente do SVM q é apenas linear).
Explique a computação lógica com neurônios.
Primeiros neurônios de todos.
Possuem uma ou mais entrada biinárias (on/off) e uma saída binária.
O neurônio artificial ativa a saída quando mais de um certo número de entradas são ativos.
Cnjunto de algoritmos capazes de aproximar funções contínuas arbitrárias.
- ANNs são formadas por camadas (layers) de entrada (input), saída (output) e intermediárias (hidden).
- cada camada é formada por nós (ou neurônios) interconectados).
Explique a arquitetura de uma rede.
As Input Layer são as entradas de dados.
A Hidden Layer (1 ou mais camadas) é o que vai diferenciar de uma arquitetura para outra.
A arquitetura do meio geralmente é bem grande - várias camadas, camadas com covoluções, transformers.
As Output Layers são as saídas dos resultados.
Principais aspectos das ANNs.
Unidades de processamento: neurônios.
Conexões: como os neurônios estão conectados (excitatória, inibitória).
Topologia: cobertura (drpout) e arranjos (feedforward, recorrente).
Explique o Perceptron.
Criado por Frank Rosenblatt em 1957.
Baseado em Linear Threshold Unit (LTU):
- As entradas e a saída são números (ao invés de valores binários) e cada entrada é multiplicada por um peso.
- A LTU calcula a soma ponderada das entradas e aplica uma função que determina a saída.
A função de ativações aqui é a step function.
h(z) = saída da soma ponderada com baias.
Só pode dar -1, 0 ou 1 na saída.
Defina Modelo Neurônio: Unidade Logística.
Função de ativação um pouco diferente.
Função logística - sigmoide.
Demonstre a operação AND com um neurônio.
“E” lógico.
Inputs x1 e x2.
A linha vertical representa as possíveis respostas, ou seja, entre 0 e 1.
A linha horizontal representa o resultado h0(x) - (-30, -10 e 10).
Valor de baias (b) definido como +1 e peso -30.
x1 tem peso de +20.
x2 tem peso de +20 também.
Soma ponderada:
h0(x) = (-30)1 + 20x1 + 20*x2, x1 e x2 podem ser 0 e 1
Valores negativos longe de 0 vai dar próximo de 0.
Valores positivos longe de 0 vai dar próximo de 1.
Parte do meio = incerteza (valores entre 0 e 1).
Demonstre a operação OR com um neurônio.
“OU” lógico.
O que mudou desse para o anterior?
O peso do baias (b) - o resto está tudo igual.
Explique a combinação devárias camadas.
Cada um vai ter uma ligação e resposta com o próprio peso.
Resposta final - h0(x).
Combina a saída dos 3 neurônios anteriores.
Isso é feedforward neural network (forward propagation).
Demonstre a operação XOR com um neurônio.
Explique o treinamento.
A ideia é tentar descobrir os valores de pesos ideais para que eu chegue na saída que eu quero.
A rede perceptron é treinada por um algoritmo supervisionado de correção de erro e uma função de ativação limiar.
Ajuste de peso.
t = tempo (ajuste no tempo).
Entra t + 1 vai ser t + o ajuste.
Ajuste baseado na diferença entre o que era esperado (yi) e a resposta da função de ativação (f chápeu (xi).
isso é multiplicado por uma variável chamada taxa de aprendizado.
Liste os passos do treinamento.
- Definir uma arquitetura de rede
- Inicializa os parâmetros que devem ser aprendidos com valores aleatórios (várias técnicas de inicialização).
- minha rede não ta fazendo/sabendo o que eu quero.
- Vai entrar no processo de aprendizagem.
- Apresentar uma amostra à rede.
- A rede vai mandar uma resposta - a resposta ta errada.
- Medir o quão errada a resposta está.
- Vou fazer um backpropagation para tentar ajustar os valores do meu peso para que na próxima vez que eu dê uma entrada para ela, a resposta fique um pouquinho menos errada.
- Vou fazendo isso de forma iterativa com amostras (cem mil amostras) e vai ficando cada vez menos errada - vou diminuindo o erro com base no ajuste que vou fazendo, dos meus parâmetros.
lembrar do algoritmo genético onde os indivíduos iam evoluindo e ficando mais fit a cada geração.
Aqui é do mesmo jeito porém vou diminuindo o meu erro - chega no menor erro possível.
Como faço para ajustar os pesos? vou ajustar para mais ou para menos?
Antes do algoritmo backpropagation, os testes eram realizados por tentativa de erro.
Imagine com bilhões de parâmetros, ficaria impossível de fazer essa técnica (força bruta)!
Backpropagation
O algoritmo backpropagation permitiu o treinamento de redes com várias camadas para minimizar a função de custo.
- problema: tendo o erro da rede gerado na saída da última camada, como calcular o erro de cada neurònio nas camadas intermediárias? - calcular o quanto impacta.
- Solução: estimar o erro dos neurônios nas chamadas intermediárias utilizando os erros observados na camada superior.
Partindo da última camada onde eu tenho o meu erro final da classificação, eu vou propagando esse erro para as camadas intermediárias.
Como eu faço?
Utilizando o gradiente descendente da função de ativação.
Como eu calculo o gradiente?
Através da derivada parcial.
A derivada parcial mede a contribuição da cada peso no erro da rede.
Faço uma série de derivadas parciais para sair da última camada e chegar na primeira - para fazer isso, usa a regra da cadeia.
Derivada e o gradiente.
Queremos descobrir se devemos aumentar ou diminuir o valor de um peso.
Com o objetivo é minimizar a função de custo, devemos mover os pesos downhill.
Mas como saber qual direção é a direção descendente?
- se a derivada é positiva → função é crescente
- se a derivada é negativa → função é decrescente
Esse método é conhecido como descrida do gradiente ou gradiente descendente.
Stochastic Gradient Descent - SGD
De forma aleatória, vai escolher um ponto lá no alto e vai começar a descer (não linear) calculando cada vértice de amostra.
Vai para quando chegar no azul (mínimo da função).
Como que eu faço isso?
Descobrindo o gradiente eu consigo descobrir se eu vou ter aumentar ou diminuir os valores do meus pesos.
Mas quanto q eu aumento ou diminuo?
Através da taxa de aprendizado.
São os saltos da imagem acima.
Começo com saltos grandes (pois estou longe) e vou diminuindo para não acontecer de começar a subir de novo.
Vou caminhando e aprendendo menos - a cada época (passo) eu vou aprendendo menos.
Exemplo de backpropagation
Função de ativação sigmóide para cada neurônio.
2 neurônios para input, hidden e output layer.
1 para baias (b1 e b2).
Função min square error.
yo1 = o que eu esperava do neurônio o1.
ao1 = o que eu recebi do neurônio o1.
Processo para passar a primeira amostra
zh1 = soma ponderada de h1.
Primeiro eu calculo a função de ativação e dps passo para a função sigmoide.
resposta da função sigmóide de h1 vezes w5 e assim por diante…
Como é calculado o Custo?
Chegando na última camda, vou calcular o custo.
Agora eu preciso voltar e ajustar os pessos para que na próxima iteração eu erre menos.
backpropagation:
vai voltar par a função de ativação e a função de ativação vai voltar para cada camada de trás através de derivada.
O programa n enxerga a linha azul.
Essa conta vai falar se o peso tem q descer mais rápido ou mais devagar.
- Se for mto rápido → pode acabar subindo no outro lado.
- Se for mto lento → vai demorar bastante.
Deixe um comentário