Aprendizado de máquina e redes neurais - página 42

 

Aula 9 -- Monte Carlo -- Philipp Hennig



Numéricos de ML 9 -- Monte Carlo -- Philipp Hennig

Neste vídeo sobre Monte Carlo, Philipp Hennig explica como a integração é um problema fundamental no aprendizado de máquina quando se trata de inferência Bayesiana usando o Teorema de Bayes. Ele apresenta o algoritmo de Monte Carlo como uma forma específica de fazer integração e fornece um breve histórico do método. Ele também discute as propriedades dos algoritmos de Monte Carlo, como estimativa imparcial e redução de variância com o aumento do número de amostras. Além disso, Hennig investiga o algoritmo Metropolis-Hastings, Markov Chain Monte Carlo e Hamiltonian Monte Carlo, fornecendo uma visão geral das propriedades de cada algoritmo e como eles funcionam ao amostrar de uma distribuição de probabilidade. Por fim, Hennig observa a importância de entender por que os algoritmos são usados, em vez de aplicá-los cegamente, para obter resultados ideais e eficientes.

Na segunda parte do vídeo, Philipp Hennig discute os métodos de Monte Carlo para distribuições de alta dimensão, especificamente o algoritmo No U-turn Sampler (NUTS) que supera o problema com a ideia de U-turn de quebrar o equilíbrio detalhado. Hennig enfatiza que, embora esses algoritmos sejam complexos e complicados de implementar, entendê-los é crucial para usá-los com eficiência. Ele também questiona a abordagem instintiva para calcular valores esperados usando métodos de Monte Carlo e sugere que pode haver outras maneiras de aproximar sem aleatoriedade. Hennig discute o conceito e as limitações da aleatoriedade, a falta de taxas de convergência para os métodos de Monte Carlo e propõe a necessidade de considerar outros métodos para aprendizado de máquina em vez de confiar na aleatoriedade determinística.

  • 00:00:00 Nesta seção, o instrutor apresenta o tópico de integração, que é um problema fundamental no aprendizado de máquina ao fazer inferência Bayesiana para calcular distribuições condicionais posteriores usando o Teorema de Bayes. Ele explica que esse processo contém uma integral, que representa o marginal que é calculado como um valor esperado de alguma distribuição condicional. O instrutor enfatiza a importância de saber como fazer a integração corretamente e apresenta o algoritmo de Monte Carlo como uma forma específica de fazer a integração. Ele dá uma breve história de Monte Carlo e reflete sobre por que é importante entender por que os algoritmos são usados, em vez de apenas aplicá-los cegamente.

  • 00:05:00 Nesta seção, Philipp Hennig discute a história de como as simulações de Monte Carlo foram desenvolvidas para auxiliar no projeto de uma bomba nuclear na década de 1940. O problema estava em otimizar a geometria para conseguir uma explosão, e a solução foi usar simulações de Monte Carlo para aproximar integrais com somas. Para isso foi inventado o computador analógico de Fermi, que consiste em duas rodas e uma caneta para simular a trajetória de um nêutron por meio de números aleatórios retirados de um dado. Embora este processo pareça simples, este método foi o primeiro passo para desenvolver simulações de Monte Carlo para vários campos.

  • 00:10:00 Nesta seção, o conceito de simulações de Monte Carlo é explicado como uma forma de estimar um valor esperado substituindo a integral por uma soma sobre as avaliações de uma função em pontos extraídos de uma distribuição. Este é um estimador imparcial com uma variância que diminui à medida que o número de amostras aumenta, resultando em um erro que cai como um sobre a raiz quadrada do número de amostras. Enquanto os estatísticos argumentam que esta é a taxa ideal para estimadores imparciais, os matemáticos numéricos consideram esta taxa bastante lenta, sendo preferidas as taxas polinomiais. No entanto, esse método tem suas vantagens, como ser livre de dimensionalidade, pois a variância não depende da dimensionalidade da distribuição subjacente.

  • 00:15:00 Nesta seção, Philipp Hennig aborda o debate em torno da dimensionalidade do problema de Monte Carlo. Embora haja uma variação de f sob p, que pode estar relacionada à dimensionalidade do problema, o argumento é que ela não depende da dimensionalidade. No entanto, em certos problemas estruturados, a variância pode explodir exponencialmente rápido em função da dimensionalidade. No entanto, as aplicações mais interessantes da amostragem de Monte Carlo são insensíveis à dimensionalidade do problema, permitindo o cálculo de problemas de alta dimensão. Hennig também discute o exemplo clássico de computação Pi usando amostragem de Monte Carlo, onde converge para a verdade com uma taxa dada pela raiz quadrada inversa do número de amostras.

  • 00:20:00 Nesta seção, Philipp Hennig discute os métodos de Monte Carlo para aproximar integrais. Ele explica como esse método funciona extraindo um grande número de amostras de uma distribuição e calculando o valor esperado nessas simulações. Esta pode ser uma boa solução quando uma estimativa aproximada é necessária, mas não é prática para respostas altamente precisas. Hennig também fala sobre maneiras de construir amostras de distribuições que são difíceis de trabalhar, como amostragem de rejeição e amostragem importante, mas observa que esses métodos não escalam bem em dimensões altas.

  • 00:25:00 Nesta seção, é discutida a ideia de gerar variáveis aleatórias com base na distribuição de alta dimensão. O método padrão para isso é chamado de cadeia de Markov Monte Carlo, que se baseia em uma estrutura que avança iterativamente com uma memória finita. Um método desse tipo é o algoritmo Metropolis Hastings, que envolve a construção de uma cadeia de Markov e ir para um novo local usando uma distribuição de proposta e uma razão entre a distribuição que está sendo extraída e a distribuição proposta. Este algoritmo foi inventado por um grupo de físicos nucleares na década de 1950, que trabalhavam na otimização das geometrias de armas nucleares, e ainda é amplamente utilizado hoje.

  • 00:30:00 Nesta seção, Philipp Hennig discute o algoritmo Metropolis-Hastings, que é um tipo de algoritmo de Monte Carlo da cadeia de Markov usado para amostrar de uma distribuição de probabilidade. Ele demonstra como o algoritmo gera pontos extraindo de uma distribuição proposta e aceitando-os ou rejeitando-os com base em sua densidade de probabilidade. Hennig também destaca a importância de usar uma distribuição de proposta adequadamente adaptada para explorar efetivamente a distribuição que está sendo amostrada. O algoritmo Metropolis-Hastings possui duas propriedades importantes, balanceamento detalhado e ergodicidade, que garantem que o processo de execução do algoritmo por um longo tempo produza uma distribuição estacionária dada pela distribuição que está sendo amostrada.

  • 00:35:00 Nesta seção, Philipp Hennig discute as propriedades de algoritmos que têm pelo menos uma distribuição estacionária, que é uma sequência aperiódica e com recorrência positiva, o que significa que há uma probabilidade diferente de zero de voltar a esse ponto em um ponto futuro. O algoritmo não deve ter nenhuma estrutura que possa fazer com que ele fique preso em outra distribuição estacionária. Metropolis Hastings, por exemplo, é um algoritmo que preenche essas duas propriedades. No entanto, tem uma taxa pior em comparação com Monte Carlo simples e pode ter comportamentos de trabalho aleatórios locais. O número de amostras efetivas desenhadas pelo algoritmo tem algo a ver com o comprimento do passo livre da via livre ou o comprimento do tempo livre entre duas amostras em extremidades completamente opostas da distribuição.

  • 00:40:00 Nesta seção, o palestrante discute os métodos de Monte Carlo e como avaliá-los. Ele explica que, para ir de uma ponta a outra da distribuição, deve-se usar um grande número de passos que são proporcionais ao quadrado da razão entre as escalas de comprimento longo e pequeno, resultando em taxas de convergência que ainda são o da raiz quadrada de t, mas com um enorme múltiplo na frente. Ele afirma que um desafio com Monte Carlo é que, se você estiver apenas olhando para as estatísticas desses pontos azuis, sem saber qual é a forma da distribuição e sem ter os pontos vermelhos como referência, não é totalmente óbvio como você perceberia que isso é o caso. Finalmente, ele fala sobre o Monte Carlo hamiltoniano, que ele afirma ser o "átomo" da Cadeia de Markov Monte Carlo, e é o algoritmo comum usado para extrair da distribuição de probabilidade P de x.

  • 00:45:00 Nesta seção, Philipp Hennig explica o conceito de Hamiltoniano Monte Carlo (HMC), um método usado para extrair amostras de uma distribuição de probabilidade. No HMC, a quantidade de variáveis é dobrada, com uma nova variável representando o momento da variável existente. A variável momentum é então desenvolvida de acordo com uma função que define uma equação diferencial ordinária, com H representando a energia e K representando a energia cinética. A derivada temporal de X é dada pela derivada parcial de H em relação a P, e a derivada temporal de P é dada por menos a derivada parcial de H em relação a X. Se o algoritmo conseguir extrair amostras da distribuição conjunta sobre X e P, extrai marginalmente da distribuição sobre X.

  • 00:50:00 Nesta seção, Philipp Hennig discute a implementação de um solucionador de equação diferencial ordinária (ODE) para a derivada da probabilidade de um determinado estado usando o método de Hoyn, que tem taxas de convergência de ordem dois. Ele então compara isso com o uso de uma biblioteca de software e mostra como o solucionador simula a dinâmica de um sistema hamiltoniano, que é uma partícula de massa 1 movendo-se em um potencial dado pelo logaritmo de uma forma, produzindo boas amostras. Embora exija um número um tanto constante de etapas para simular, Hennig observa que o esquema Metropolis-Hastings sempre aceita e o algoritmo faz etapas que não se movem a uma distância dada por escalas de comprimento longo sobre escalas de comprimento curto ao quadrado, mas sem uma raiz quadrada, tornando-o um algoritmo mais eficiente.

  • 00:55:00 Nesta seção, Philipp Hennig explica como funciona o algoritmo hamiltoniano de Monte Carlo. Este algoritmo extrai de uma distribuição conjunta sobre X e P em uma linha de potencial constante. A linha de potencial é escolhida pelo momento inicial e, a cada passo, o momento é alterado para se mover para uma linha de potencial diferente. Hennig compara o algoritmo a um problema de otimização e observa que ele possui dois parâmetros chamados LeapFrog steps e delta T, que devem ser escolhidos adequadamente para que o algoritmo funcione de maneira eficaz. Se os parâmetros forem definidos incorretamente, a simulação pode desperdiçar recursos computacionais, movendo-se para frente e para trás sem realmente viajar para qualquer lugar.

  • 01:00:00 Nesta seção, Philipp Hennig discute a ideia de uma inversão de marcha e o algoritmo No U-turn Sampler (NUTS) nos métodos de Monte Carlo para distribuições de alta dimensão. O problema com a ideia de inversão de marcha é que ela quebra o equilíbrio detalhado e faz com que o algoritmo se afaste e não volte. O algoritmo NUTS supera isso iniciando duas cadeias de Markov em direções opostas e esperando até que uma comece a girar, então escolhendo aleatoriamente uma. Isso satisfaz o equilíbrio detalhado e é um componente chave de muitos algoritmos de Monte Carlo da cadeia de Markov. Hennig enfatiza que, embora esses algoritmos sejam complexos e complicados de implementar, entendê-los é crucial para usá-los com eficácia.

  • 01:05:00 Nesta seção, o palestrante discute a abordagem instintiva para calcular valores esperados na inferência bayesiana usando métodos de Monte Carlo e destaca a baixa taxa de convergência e a necessidade de estimadores imparciais. No entanto, o palestrante questiona a necessidade de estimadores imparciais e aleatoriedade em primeiro lugar e sugere que pode haver outras maneiras de aproximar a quantidade de interesse sem aleatoriedade. O palestrante também aborda o conceito de aleatoriedade e sua relação com sequências e sequências finitas computadas em uma máquina de Turing.

  • 01:10:00 Nesta seção, Philipp Hennig discute o conceito de aleatoriedade por meio de diferentes sequências de números. Ele argumenta que algumas sequências, como as produzidas por dados, foram culturalmente aceitas como aleatórias, embora não sejam verdadeiramente aleatórias. Por outro lado, números irracionais como pi não são aleatórios, mas também carecem de estrutura. Além disso, Hennig explica como uma semente pode alterar a aleatoriedade de uma sequência produzida por um gerador de números aleatórios. Finalmente, ele discute como as máquinas físicas que produziram números aleatórios foram testadas quanto à aleatoriedade, mas acabaram falhando nos testes Die Hard de aleatoriedade.

  • 01:15:00 Nesta seção, Philipp Hennig discute a aleatoriedade e como ela se relaciona com o aprendizado de máquina, especificamente os métodos de Monte Carlo. Ele explica que a aleatoriedade tem a ver com a falta de informação, por isso é aplicável em áreas como a criptografia, onde alguém saber algo é importante. Para os tipos de números aleatórios usados no aprendizado de máquina contemporâneo, é um equívoco falar sobre essa falta de informação. Ao usar um método de Monte Carlo, os escritores de artigos científicos que dependem dos métodos de Monte Carlo geralmente ocultam informações de seus leitores. Eles o usam porque é fácil de usar e implementar, não porque é tendencioso.

  • 01:20:00 Nesta seção, Philipp Hennig explica como a cadeia de Markov Monte Carlo (MCMC) funciona, e que ela funciona relativamente bem para problemas de alta dimensionalidade, embora não conheçamos as taxas de convergência para ela. O MCMC é o único algoritmo para o qual temos garantias teóricas que dependem do uso de números aleatórios, mas aceita-se que as amostras produzidas por essa abordagem sejam úteis na ausência de outros métodos para comparação. Hennig também discute que o MCMC é fundamentalmente muito lento e trabalhoso e que pode haver maneiras melhores de aproximar integrais. Ele adverte que os algoritmos que eles examinarão na próxima semana normalmente funcionarão apenas para problemas de baixa dimensão e propõe a necessidade de considerar outros métodos para aprendizado de máquina, em vez de confiar na aleatoriedade determinística.
 

Aula 10 -- Quadratura Bayesiana -- Philipp Hennig



Numéricos de ML 10 -- Quadratura Bayesiana -- Philipp Hennig

Neste vídeo, Philipp Hennig discute a Quadratura Bayesiana como um método eficiente para o problema computacional de integração em aprendizado de máquina. Ele explica como uma função de valor real pode ser identificada de forma única, mas difícil de responder a perguntas diretamente. Quadratura bayesiana é um método de inferência que trata o problema de encontrar uma integral como um problema de inferência, colocando um prior sobre o objeto desconhecido e as quantidades que podem ser calculadas e, em seguida, executa a inferência bayesiana. Hennig também compara essa abordagem à rejeição de Monte Carlo e à amostragem de importância, mostrando como a quadratura bayesiana pode superar as regras de quadratura clássicas. A palestra aborda o algoritmo de filtro de Kalman para Quadratura Bayesiana e sua conexão com algoritmos clássicos de integração, com uma discussão sobre o uso de estimativas de incerteza em métodos numéricos. Por fim, Hennig explora como a estrutura social da computação numérica afeta o design de algoritmos, discute um método para projetar métodos computacionais para problemas específicos e como o aprendizado de máquina probabilístico pode estimar o erro em tempo real.

Na segunda parte do vídeo, Philipp Hennig discute a quadratura bayesiana, que envolve colocar distribuições anteriores sobre as quantidades que nos interessam, como integrais e valores de algoritmo, para calcular algo de maneira bayesiana. O método atribui uma estimativa posterior e uma estimativa de incerteza em torno das estimativas, que podem ser identificadas com métodos clássicos. Hennig explica como o algoritmo se adapta à função observada e usa um procedimento de aprendizado ativo para determinar onde avaliar a seguir. Este algoritmo pode trabalhar em dimensões maiores e tem algumas taxas de convergência inteligentes não triviais. Ele também discute as limitações de algoritmos clássicos e regras de quadratura e propõe uma solução alternativa por meio do raciocínio adaptativo.

  • 00:00:00 Nesta seção, Philipp Hennig discute o problema computacional de integração em aprendizado de máquina com foco na Quadratura Bayesiana como um método eficiente. Ele descreve uma função de valor real, f de x, que é um produto de duas funções, X menos seno ao quadrado 3x e X menos x ao quadrado, e pode ser identificada exclusivamente escrevendo um conjunto de caracteres. Hennig explica que, embora saibamos tudo sobre essa função, é difícil responder diretamente a todas as perguntas sobre ela, como o valor da integral definida para menos três a mais três sobre essa função, que não pode ser encontrada em livros cheios de integrais ou a nova biblioteca C.

  • 00:05:00 Nesta seção, Philipp Hennig discute a Quadratura Bayesiana, um método de inferência que trata o problema de encontrar uma integral como um problema de inferência, colocando um prior sobre o objeto desconhecido e as quantidades que podem ser calculadas e, em seguida, executa Bayesian inferência. Ao colocar um prior, começamos com uma incerteza finita, o que leva a uma faixa estreita de resultados possíveis da computação, tornando-a típica para computações. A abordagem é contrastada com a rejeição de Monte Carlo e amostragem de importância, que são menos eficientes. A função estimada pode ser plotada em função do número, sugerindo que a Quadratura Bayesiana é uma opção viável para resolver integrais.

  • 00:10:00 Nesta seção da palestra de Philipp Hennig, ele discute a quadratura bayesiana como uma forma de estimar a integral de uma função usando aprendizado de máquina probabilístico. Ele compara essa abordagem com o método de Monte Carlo e explica que um processo Gaussiano é usado como prior da função. Ao avaliar a função em valores x específicos, podemos estimar a variável latente, que é a integral da função. Hennig também mostra como essa abordagem pode superar as regras clássicas de quadratura.

  • 00:15:00 Nesta seção, Philipp Hennig explica como calcular integrais sobre o kernel para aproximar integrais sobre qualquer função que estamos tentando aprender. Ao escolher uma função de média anterior e uma função de covariância anterior, podemos incorporar o problema de calcular uma integral na reprodução do espaço de Hilbert do kernel. Por meio de cálculos envolvendo avaliações da função em vários pontos, acabamos com a incorporação da média do kernel, que envolve o cálculo de integrais sobre o kernel. Portanto, devemos escolher kernels para os quais podemos calcular integrais na forma fechada, e Hennig escolhe o kernel do processo de Weiner como exemplo.

  • 00:20:00 Nesta seção, Philipp Hennig discute o processo de Quadratura Bayesiana. O processo envolve o uso de um processo Vino prior, um processo gaussiano que é assimétrico e não estacionário e o condicionamento de um conjunto de valores de função para obter um processo gaussiano positivo. Com esse processo, é possível obter um resultado muito melhor do que a integração de Monte Carlo. Por exemplo, para atingir um erro relativo de 10^-7, a Quadratura Bayesiana precisaria de menos de 200 avaliações, enquanto a integração de Monte Carlo exigiria mais de 10^11 avaliações.

  • 00:25:00 Nesta seção, o palestrante discute a velocidade da Quadratura Bayesiana em comparação com as simulações de Monte Carlo. Enquanto as simulações de Monte Carlo são baratas e fáceis de implementar, a Quadratura Bayesiana também é relativamente rápida e pode ser implementada como um filtro de Kalman, tornando-a viável para uso em modelos de aprendizado de máquina. O palestrante explica o mapa linear entre os dois estados do processo e como ele pode codificar a integração, tornando possível discretizar a equação diferencial estocástica e calcular atualizações para a integral. A palestra então passa a discutir as propriedades da Quadratura Bayesiana com mais detalhes.

  • 00:30:00 Nesta seção, o palestrante apresenta um algoritmo de filtro de Kalman para quadratura bayesiana para avaliar integrais de uma função. O algoritmo envolve a definição das matrizes A e Q para representar as partes determinísticas e estocásticas do sistema linear invariante no tempo, e H e R para representar o modelo de observação. A média posterior é uma soma ponderada de funções kernel, e o filtro de Kalman atualiza a estimativa da integral, com a incerteza da integral aumentando com o comprimento do passo cúbico. O algoritmo é executado em tempo linear e a média posterior é uma função linear por partes que interpola os valores da função. A estimativa para a integral é a soma dos valores médios em cada bloco.

  • 00:35:00 Nesta seção, Hennig explica o conceito de quadratura bayesiana e sua conexão com a regra do trapézio, que é um algoritmo de integração clássico. Ele observa que a regra do trapézio pode ser vista como a média posterior de um esquema de inferência de processo gaussiano complexo e que esse insight particular é um resultado essencial e comum. Hennig discute ainda como vários algoritmos clássicos, seja para computação numérica, otimização, álgebra linear ou resolução de equações diferenciais, todos têm conexões com estimativas bayesianas posteriores. Além disso, ele enfatiza que a computação numérica deve ser considerada como inferência gaussiana, pois envolve estimativas de mínimos quadrados para quantidades numéricas com incerteza e sugere que o uso de estimativas de incerteza pode ser vantajoso ao lidar com métodos numéricos.

  • 00:40:00 Nesta seção, Philipp Hennig discute o aspecto de tomada de decisão dos algoritmos numéricos e como eles se assemelham a um algoritmo de IA porque decide quais cálculos realizar. Uma questão que surge é onde colocar os pontos de avaliação e a resposta para isso pode ser encontrada em problemas de inferência bayesiana. Ao definir uma distribuição de probabilidade para convergir para a certeza, podemos encontrar uma quantidade que descreve certeza ou incerteza e manipulá-la. Para a variância da distribuição possível sobre a integral, o objetivo é minimizá-la, o que pode ser feito igualando todos os Delta J's ao Delta n menos um, indicando uma grade regular de nós de integração. Além disso, é discutida a necessidade de ter nós de integração em ambas as extremidades do domínio de integração.

  • 00:45:00 Nesta seção, o palestrante explica como o algoritmo Bayesian Quadrature pode ser usado para obter um design para onde colocar nós de avaliação com base em um processo gaussiano anterior. O algoritmo pode fornecer diferentes designs dependendo do anterior utilizado, e os nós de avaliação podem ser escolhidos de acordo com uma política simples de Maximum Information Gain. A regra do trapézio pode ser considerada uma estimativa Bayesiana, onde a média posterior é uma estimativa paciente que surge de um processo Gaussiano específico anterior ao integrando. O algoritmo fornece uma estimativa de erro, mas a estimativa não é precisa e há uma lacuna significativa entre o erro real e o estimado. No entanto, a regra do trapézio existe há centenas de anos e o algoritmo não é necessariamente falho. A regra do trapézio pode ter algumas propriedades que precisam ser questionadas.

  • 00:50:00 Nesta seção, Philipp Hennig discute as estimativas de variância e sua relação com a quadratura bayesiana. Ele explica que a estimativa de erro é o desvio padrão, que é a raiz quadrada do erro quadrado esperado. O uso de um tamanho de etapa constante facilita o cálculo da soma, pois não há "i" dentro da soma. O teorema afirma que a taxa de convergência para esta regra trapezoidal é O de 1 sobre N ao quadrado. No entanto, existem suposições ocultas na matemática. Os caminhos de amostra desenhados a partir de um processo de Wiener têm comportamentos extremamente grosseiros, pois são não diferenciáveis em quase todos os lugares, tornando inválida a suposição do anterior.

  • 00:55:00 Nesta seção, Philipp Hennig discute o problema de integrar funções aproximadas e não diferenciáveis usando algoritmos numéricos. Ele explica que os algoritmos projetados para operar em funções superásperas, como a regra do trapézio, podem não ser tão eficientes quanto poderiam ser se a função que estão integrando for muito mais suave. Hennig sugere que a estrutura social da computação numérica, onde os algoritmos são projetados para funcionar em uma grande classe de problemas, pode levar a métodos excessivamente gerais que não funcionam particularmente bem em nenhum deles individualmente. No entanto, ele observa que é possível projetar um método computacional para um determinado problema se ele for suficientemente importante, desde que você entenda como esses algoritmos funcionam. Ele também discute como a escala do erro no algoritmo pode ser estimada durante sua execução, usando ideias de aprendizado de máquina probabilístico.

  • 01:00:00 Nesta seção, Philipp Hennig discute como estimar a escala de uma constante desconhecida na matriz de covariância com base em alguns dados e apresenta o conceito de prioris conjugados. Ele explica que, para distribuições exponenciais de probabilidade familiar, há sempre uma priori conjugada, como a priori gama, que pode ser usada para estimar a variância de uma distribuição gaussiana. Hennig conta a história de William C Lee Gossett, que criou esse método enquanto trabalhava como cervejeiro para a Guinness, e teve que estimar a distribuição de amostras de um barril de cerveja. Este método envolve multiplicar o a priori e a probabilidade juntos e normalizar os resultados para obter a mesma forma algébrica da distribuição gama, com novos parâmetros baseados nas observações ou valores de função.

  • 01:05:00 Nesta seção, Philipp Hennig explica como estimar a concentração posterior de um parâmetro e a distribuição T de Student. O método é chamado de Quadratura Bayesiana, onde a escala começa ampla e se torna mais concentrada à medida que mais observações são coletadas. Os resultados são apresentados em um gráfico, onde inicialmente a distribuição se contrai seguindo o aumento das observações. Hennig aponta que as suposições anteriores sobre essa função suave são muito conservadoras para esse problema, e há algoritmos muito mais inteligentes para integração, como a quadratura gaussiana com conjuntos de recursos que se expandem com polinômios de Legendre, que funcionam muito bem.

  • 01:10:00 Nesta seção, Hennig discute a quadratura bayesiana, que é uma maneira clássica de fazer integrais em domínios limitados, como nosso domínio de -1 a 1. Ele explica que existem regras de quadratura correspondentes que convergem extremamente rápido, com um super peso polinomial de convergência, mas isso só funciona para funções que são realmente suaves. A linha verde vista no gráfico à direita também pode corresponder a alguma estimativa média posterior sob certos tipos de suposições gaussianas anteriores. Embora o resultado deste artigo seja principalmente para interesse teórico em esclarecer a relação entre as duas abordagens diferentes de integração numérica, existem algoritmos clássicos que são muito bons para esse tipo de problema e vêm com muita estrutura com diferentes bases para diferentes tipos de problemas de integração. Essas regras de quadratura aproximam a integral assumindo que ela pode ser escrita em uma forma particular usando polinômios ortogonais e uma função de ponderação, e há escolhas específicas para Phi dependendo de W e do domínio de integração.

  • 01:15:00 Nesta seção, o palestrante discute os diferentes tipos de polinômios de Chebyshev e seu uso no cálculo de integrais numéricos para funções univariadas. O palestrante também explica por que é importante considerar o domínio de integração, a forma da função e a priori ao especificar uma priori para uma regra de inferência do paciente. O palestrante observa que os algoritmos clássicos de integração e as regras de quadratura podem ser considerados como alguma forma de estimativa da média posterior gaussiana, e as escolhas feitas por esses algoritmos podem ser motivadas por argumentos da teoria da informação. O palestrante conclui afirmando que, embora as regras clássicas de quadratura funcionem bem para integrais unidimensionais, problemas de dimensão superior exigem abordagens mais complicadas, como os algoritmos de Monte Carlo.

  • 01:20:00 Nesta seção, o palestrante discute as limitações dos métodos mostrados na seção anterior quando se trata de escalar em dimensionalidade. Esses métodos tendem a ter uma queda de desempenho exponencial em dimensionalidade porque uma malha de avaliações deve ser produzida, o que significa que eles devem cobrir o domínio com pontos. Isso é problemático porque os processos Gaussianos estão sendo usados como prioritários, e sua incerteza posterior não depende dos números vistos, apenas onde as avaliações foram feitas. Como resultado, esses métodos de integração não são adaptativos, limitando sua escalabilidade em dimensões superiores. Para superar esse problema, são necessários novos algoritmos que possam raciocinar sobre o fato de que alguns pontos são mais informativos do que outros por meio do raciocínio adaptativo.

  • 01:25:00 Nesta seção, Philipp Hennig discute as limitações dos processos gaussianos para codificar valores não negativos e propõe uma solução alternativa definindo uma nova função que eleva ao quadrado a função real. A distribuição resultante não é Gaussiana e é aproximada por um processo estocástico que pode ser aproximado por um processo Gaussiano. O algoritmo resultante é chamado Wasabi, que significa integração bayesiana ativa sequencial de dobra. É uma formulação probabilística que adiciona incerteza de forma adaptativa onde grandes valores de função são esperados, permitindo a construção de algoritmos numéricos aproximados. A função de utilidade em azul representa a incerteza posterior sobre os valores da função.

  • 01:30:00 Nesta seção, Philipp Hennig discute o conceito de Bayesian Quadrature, um algoritmo para integração numérica. Hennig explica como o algoritmo se adapta à função observada e usa um procedimento de aprendizado ativo para determinar onde avaliar a seguir. Este algoritmo pode trabalhar em dimensões maiores e tem algumas taxas de convergência inteligentes não triviais. Hennig também compara esse algoritmo aos algoritmos de Monte Carlo e argumenta que o conhecimento prévio pode melhorar o desempenho do algoritmo. Além disso, ele sugere a possibilidade de um algoritmo ainda melhor além de Monte Carlo, que será discutido depois do Natal.

  • 01:35:00 Nesta seção, Philipp Hennig discute a quadratura bayesiana, que envolve a distribuição a priori das quantidades que nos interessam, como integrais e valores de algoritmo, para calcular algo de maneira bayesiana. O método atribui uma estimativa posterior e uma estimativa de incerteza em torno das estimativas, que podem ser identificadas com métodos clássicos. Se as estimativas de erro forem ruins, isso não significa necessariamente que a visão probabilística da computação esteja errada, mas sim que o conjunto de suposições anteriores é ruim. Usando mais conhecimento prévio e tratando os algoritmos numéricos como agentes autônomos, podemos extrair mais informações e tornar os algoritmos mais rápidos e funcionar melhor.
 

Aula 11 -- Otimização para Deep Learning -- Frank Schneider



Numéricos de ML 11 -- Otimização para Deep Learning -- Frank Schneider

Frank Schneider discute os desafios da otimização para aprendizado profundo, enfatizando a complexidade do treinamento de redes neurais e a importância de selecionar os métodos e algoritmos de otimização corretos. Ele observa o número esmagador de métodos disponíveis e a dificuldade em comparar e fazer benchmarking de diferentes algoritmos. Schneider fornece exemplos do mundo real de treinamento bem-sucedido de grandes modelos de linguagem e a necessidade de cronogramas de taxa de aprendizado não padrão e alterações no meio do voo para que o modelo seja treinado com sucesso. Schneider destaca a importância de fornecer aos usuários mais informações sobre como usar esses métodos e como os hiperparâmetros afetam o processo de treinamento, bem como a criação de exercícios de benchmarking para ajudar os profissionais a selecionar o melhor método para seu caso de uso específico. Ele também discute métodos mais recentes, como o Alpha, e como ele pode ser aproveitado para orientar o processo de treinamento de uma rede neural.

Na segunda parte do vídeo sobre os números de otimização para deep learning, Frank Schneider apresenta a ferramenta Cockpit "Deep Debugger", que fornece instrumentos adicionais para detectar e corrigir problemas no processo de treinamento, como bugs de dados e blocos de modelo. Ele explica a importância de normalizar dados para hiperparâmetros ideais, a relação entre as taxas de aprendizado e a precisão do teste e os desafios de treinar redes neurais com estocasticidade. Schneider incentiva os alunos a trabalhar para melhorar o treinamento de redes neurais, considerando o gradiente como uma distribuição e desenvolvendo melhores métodos autônomos no longo prazo.

  • 00:00:00 Nesta seção, Frank Schneider apresenta o tópico de otimização de aprendizado profundo e fornece uma visão geral dos desafios envolvidos no treinamento de redes neurais. Ele explica que, embora possa parecer uma questão simples de como treinar redes neurais, na verdade existem várias maneiras de respondê-la, incluindo considerações de hardware e software. O foco principal da palestra, no entanto, está nos métodos e algoritmos usados para treinar redes neurais, e Schneider enfatiza que não há uma solução única para todos. Ele fornece um exemplo do mundo real de um grupo em Midi treinando um grande modelo de linguagem, mostrando que uma programação de taxa de aprendizado não padrão e mudanças intermediárias na taxa de aprendizado eram necessárias para que o modelo fosse treinado com sucesso. No geral, a palestra de Schneider destaca a complexidade do treinamento de redes neurais e a importância de selecionar cuidadosamente os métodos e algoritmos de otimização corretos.

  • 00:05:00 Nesta seção, o palestrante discute os desafios de treinar uma rede neural de forma eficiente, citando o exemplo do logbook fornecido pela OpenAI dedicado à luta de treinar um grande modelo de linguagem. O palestrante menciona que atualmente não existem métodos eficientes para treinar redes neurais, embora existam algumas diretrizes e intuições disponíveis. A palestra terá como foco entender por que treinar uma rede neural é tão desafiador e o que pode ser feito para melhorar a situação. O palestrante observa que isso será diferente de sua estrutura de aula usual, pois existem vários métodos atuais de última geração e não está claro qual desses métodos é o mais eficiente.

  • 00:10:00 Nesta seção, o palestrante discute os equívocos sobre o fato de o aprendizado de máquina ser principalmente otimização. Embora a otimização envolva a busca de um mínimo em um cenário de perda, o objetivo do aprendizado de máquina é encontrar uma função que melhor se ajuste aos dados de treinamento e generalize bem para novos dados. Isso é feito por meio do uso de uma função de perda que quantifica a diferença entre as previsões do modelo e os resultados reais. Como a verdadeira distribuição de dados geralmente é desconhecida, o modelo é treinado em uma amostra finita de dados e o processo de otimização opera na perda empírica. O palestrante enfatiza que o aprendizado profundo envolve mais complexidade devido a paisagens dimensionais superiores e hipóteses expressivas.

  • 00:15:00 Nesta seção, Frank Schneider explica que o aprendizado de máquina não é apenas otimização, pois a quantidade que está sendo otimizada (perda empírica) não é a mesma quantidade com a qual o algoritmo realmente se preocupa (perda real). O overfitting e a generalização são, na verdade, mais complicados do que apenas ir de treinamento para teste, como em tarefas de tradução, onde os modelos são treinados em perda de entropia cruzada, mas avaliados na qualidade da tradução. Como resultado, as pessoas desenvolveram vários métodos, como descida de gradiente estocástico, variação de momento, RMS prop e átomo, para levar em conta gradientes anteriores e entender como eles devem se comportar no futuro. No total, existem mais de 150 métodos disponíveis para otimizar e treinar algoritmos para aprendizado profundo.

  • 00:20:00 Nesta seção, o palestrante discute o grande número de métodos de otimização disponíveis para treinamento de redes neurais, com mais de 100 métodos para escolher. A questão não é apenas escolher um método, mas também como usá-lo de forma eficaz. Por exemplo, mesmo se escolhermos um método de otimização como SGD ou Adam, ainda precisamos decidir sobre hiperparâmetros como taxa de aprendizado e epsilon, que podem ser difíceis de ajustar. O palestrante sugere que precisamos de benchmarks adequados para entender quais métodos são necessários e aprimorados, e que o desafio atual é definir o que significa "melhor" no contexto do aprendizado profundo. No geral, o foco deve ser fornecer aos usuários mais informações sobre como usar esses métodos e como os hiperparâmetros afetam o processo de treinamento.

  • 00:25:00 Nesta seção, Frank Schneider discute os desafios que surgem ao comparar algoritmos de treinamento de aprendizado profundo, como otimização para problemas de reforço, GANs e grandes modelos de linguagem. Torna-se difícil determinar se as diferenças de desempenho são significativas, pois pode ser necessário executar esses métodos várias vezes para contabilizar a estocasticidade. Testar todos os casos pode ser caro e demorado, pois o treinamento deve ser repetido várias vezes para todos os métodos de uso geral. O método usado para treinar deve ser analisado ao testar problemas múltiplos, exigindo alterações nos hiperparâmetros, o que o torna ainda mais caro. Além disso, Schneider enfatiza que SGD e Adam são famílias de algoritmos que não podem ser comparados diretamente sem especificar o conjunto exato de parâmetros.

  • 00:30:00 Nesta seção, Frank Schneider discute o processo de identificação dos métodos de treinamento de última geração para aprendizado profundo. Devido ao grande número de métodos de otimização disponíveis, eles tiveram que se limitar a testar apenas 15 métodos de otimização em 8 tipos diferentes de problemas, desde problemas quadráticos simples até classificação de imagens em larga escala e modelos de redes neurais recorrentes. Para simular vários cenários, eles testaram esses métodos de otimização em quatro configurações diferentes com orçamentos diferentes para ajuste de hiperparâmetros, desde ajuste único com os parâmetros altos padrão até orçamentos maiores para profissionais da indústria que têm mais recursos disponíveis. O objetivo era determinar quais métodos de otimização tiveram o melhor desempenho em diferentes cenários para ajudar os profissionais a selecionar o melhor método para seu caso de uso específico.

  • 00:35:00 Nesta seção, Frank Schneider discute o processo de otimização para modelos de aprendizado profundo. Ele explica que, para encontrar o melhor método de otimização, eles tiveram que realizar mais de 50.000 execuções individuais, pois havia 15 métodos de otimização e quatro cronogramas de taxa de aprendizado. Schneider observa que não havia um método claro de treinamento de última geração para aprendizado profundo, pois vários métodos funcionaram bem em diferentes problemas de teste. No entanto, Adam mostrou resultados consistentemente bons e outros métodos derivados de Adam não melhoraram significativamente o desempenho. No geral, o exercício de benchmarking mostrou que, atualmente, não há um método de otimização claro que funcione para todos os modelos de aprendizado profundo.

  • 00:40:00 Nesta seção, o palestrante discute as dificuldades de determinar o método mais eficaz para treinar uma rede neural devido aos vários métodos disponíveis e à falta de um protocolo de treinamento claro. O palestrante discute a criação do ml Commons Benchmark de seu grupo de trabalho de algoritmos, que é uma competição para medir acelerações de treinamento de rede neural exclusivamente devido a mudanças algorítmicas. O objetivo é construir algoritmos mais eficientes para acelerar o treinamento da rede neural. O palestrante também discute a falta de informações disponíveis sobre como usar esses métodos e sugere que informações adicionais possam ser usadas para criar ferramentas de depuração para ajudar os usuários nesse meio tempo, na esperança de eventualmente construir um método melhor que possa fazer tudo automaticamente.

  • 00:45:00 Nesta seção, o palestrante discute como a maioria dos modelos de aprendizado de máquina aproxima o gradiente empírico escolhendo uma amostra individual do conjunto de dados de treinamento antes de dar uma etapa. O gradiente de minilote ou o gradiente empírico é uma amostra do gradiente verdadeiro, e a média dos gradientes individuais fornece uma estimativa do gradiente verdadeiro, embora a variância do estimador não esteja disponível no PyTorch. No entanto, usando pacotes como mochila, os usuários podem acessar os gradientes individuais e sua variação. Essas informações adicionais podem ser aproveitadas para orientar o processo de treinamento de uma rede neural, como determinar se deve aumentar ou diminuir a taxa de aprendizado. O palestrante fornece um exemplo em que duas curvas de perda podem parecer iguais, mas a otimização no cenário de perda mostra duas coisas completamente diferentes acontecendo.

  • 00:50:00 Nesta seção, o palestrante discute como a curva de perda pode mostrar se uma rede neural está treinando ou não, mas não explica por que ou o que fazer para melhorá-la. O cenário de perda tem dezenas de milhões de dimensões, tornando quase impossível olhar para ele. No entanto, o locutor introduz uma quantidade que ajuda a caracterizar o procedimento de otimização da rede neural, chamada alpha. O valor alfa determina se a rede está diminuindo, minimizando ou ultrapassando, observando a inclinação na direção em que a rede está avançando, o que mostra se o cenário de perda está subindo ou descendo.

  • 00:55:00 Nesta seção, Frank Schneider explica como o Alpha é calculado ao otimizar a rede neural. Alpha é um valor escalar que foi explicado na seção anterior como a direção em que o modelo se move para otimizar a rede neural. Schneider explica que a quantidade escalar Alfa é baseada no tamanho do degrau em comparação com a perda observada naquela direção. Os valores alfa negativos implicam em subestação, enquanto os valores positivos implicam em ultrapassagem, e um significa mudar diretamente para o outro lado do vale. Schneider também explica como, ao condensar informações em relatórios significativos, os desenvolvedores podem criar ferramentas de depuração para aprendizado profundo semelhantes às da programação clássica.

  • 01:00:00 Nesta seção, Frank Schneider apresenta o conceito de "Deep Debugger" com a ferramenta "Cockpit", que aumenta o processo de treinamento do espectador com instrumentos adicionais, como um piloto em um avião. Schneider mostra como o Cockpit pode fornecer novos pontos de vista no treinamento de uma rede neural, como tamanho do passo, distância, norma de gradiente e testes de gradiente, que podem ajudar a detectar e corrigir problemas como bugs de dados no processo de treinamento. Com os instrumentos adicionais, o Cockpit pode fornecer aos usuários informações relevantes e complementar o gráfico de desempenho essencial.

  • 01:05:00 Nesta seção, o palestrante discute como o uso de dados normalizados versus dados brutos no aprendizado profundo afeta o desempenho da rede neural e os hiperparâmetros ideais. Dados brutos, com valores de pixel variando de 0 a 255, podem levar a um histograma de elemento de gradiente menos comportado e, portanto, a hiperparâmetros menos otimizados. No entanto, a normalização dos dados pode ser facilmente perdida porque, visualmente, os dados terão a mesma aparência. Outro problema que pode afetar o treinamento é um bloco de modelo no qual uma rede treina bem enquanto outra não, mesmo que tenham histogramas de elemento de gradiente semelhantes. Ao usar o Cockpit, pode-se observar o histograma de cada camada da rede, revelando quaisquer degenerações em todo o modelo. Isso ajuda a identificar erros de modelo que são difíceis de encontrar por meio de tentativa e erro. Por fim, o uso do Cockpit para ajuste de hiperparâmetros pode levar a novas pesquisas e melhor compreensão dos métodos.

  • 01:10:00 Nesta seção, Frank Schneider discute a otimização para aprendizado profundo e a relação entre taxas de aprendizado, valores alfa e precisão do teste. Ele explica que, embora taxas de aprendizado maiores tendam a resultar em valores de Alfa maiores, o que significa ultrapassagem e, potencialmente, dar passos muito grandes, as execuções de melhor desempenho geralmente estão na região de Alfa positivo. Isso nos diz que, no treinamento da rede neural, nem sempre é melhor minimizar a cada etapa e que o overshooting é necessário para obter o melhor desempenho. Schneider também compartilha exemplos de artigos da Universidade de Toronto que ilustram a importância de encontrar um equilíbrio entre tomar medidas locais e globais para alcançar os melhores resultados.

  • 01:15:00 Nesta seção, Frank Schneider reconhece que o treinamento de redes neurais é uma tarefa desafiadora que carece de um protocolo claro a ser seguido. Além disso, ele acredita que a estocasticidade no aprendizado profundo é uma fonte primária desse desafio, o que faz com que treinamento e otimização sejam duas coisas diferentes. No entanto, ele sugere que pensar no gradiente como uma distribuição, levando em conta o desvio padrão, as variâncias e as confianças, pode permitir a construção de melhores ferramentas e o desenvolvimento de melhores métodos autônomos a longo prazo. A Schneider incentiva os alunos interessados a ajudar no aprimoramento do treinamento de redes neurais.
 

Aula 12 -- Otimização de Segunda Ordem para Deep Learning -- Lukas Tatzel



Numéricos de ML 12 -- Otimização de Segunda Ordem para Deep Learning -- Lukas Tatzel

Neste vídeo, Lukas Tatzel explica os métodos de otimização de segunda ordem para aprendizado profundo e seus possíveis benefícios. Ele compara as trajetórias e taxas de convergência de três métodos de otimização - SGD, Adam e LBFGS - usando o exemplo da função de Rosenberg em 2D. Tatzel observa que o comportamento saltitante do SGD torna a convergência mais lenta em comparação com os passos bem informados do LBFGS. Ele apresenta o passo de Newton como um método mais rápido de otimização e discute suas limitações, como a dependência do número de condição. Tatzel também explica o conceito da matriz Generalized Gauss-Newton (GGN) como uma aproximação ao Hessian para lidar com problemas mal condicionados. Além disso, ele discute o problema da região de confiança, como lidar com funções objetivas não convexas e a abordagem livre de Hessian que usa CG para minimizar funções quadráticas.

Esta segunda parte do vídeo explora técnicas de otimização de segunda ordem para aprendizado profundo, incluindo BFGS e LBFGS, otimização sem Hessian e KFC. O palestrante explica que a abordagem Hessian-free lineariza o modelo usando o produto Jacobiano Vector, enquanto o KFC é uma curvatura aproximada baseada em métricas de informações oficiais. No entanto, estocasticidade e vieses podem ocorrer com esses métodos, e o amortecimento é recomendado para resolver esses problemas. O palestrante propõe o uso de algoritmos especializados que podem usar quantidades mais ricas como distribuições para fazer atualizações e observa que o problema fundamental da estocasticidade permanece sem solução. No geral, os métodos de otimização de segunda ordem oferecem uma solução parcial para os desafios do aprendizado profundo.

  • 00:00:00 Nesta seção, Lukas Tatzel apresenta métodos de otimização de segunda ordem como uma solução potencial para o caro e tedioso processo de otimização de aprendizado profundo. Ele usa o exemplo da função de Rosenberg em 2D para comparar as trajetórias e taxas de convergência de três otimizadores - SGD, Adam e LBFGS. Ele observa que o comportamento saltitante do SGD torna a convergência mais lenta em comparação com os passos bem informados do LBFGS, que requer menos de 10 passos para atingir a tolerância de 10^-8, tornando-o não apenas mais rápido em termos de passos, mas também em tempo de execução. em comparação com Adam e SGD. Tatzel levanta a questão de saber se esses métodos podem ser aplicados ao aprendizado profundo e explora como eles funcionam e seu potencial.

  • 00:05:00 Nesta seção, Lukas Tatzel explica os fundamentos da otimização de aprendizado profundo, que envolve prever um vetor de dimensão C e compará-lo com o rótulo real para calcular a função de perda. O objetivo do aprendizado profundo é encontrar uma configuração do vetor de parâmetros de rede Theta que minimize o risco empírico. Os métodos numéricos usados para isso incluem a descida do gradiente estocástico (SGD), que calcula uma estimativa do gradiente em dados finitos usando um estimador de Monte Carlo. No entanto, os métodos baseados em gradiente são sensíveis ao número de condição, que é a razão entre a curvatura direcional máxima e mínima.

  • 00:10:00 Nesta seção, Lukas Tatzel discute como os métodos baseados em gradiente são sensíveis a problemas de más condições no aprendizado profundo. Ele explica que o número de condição pode ser um problema para métodos baseados em gradiente se for grande, o que pode levar a conversões lentas. Para melhorar as atualizações nos métodos baseados em gradiente, Tatzel sugere redimensionar o gradiente nas direções de curvatura grande e pequena com suas respectivas curvaturas inversas. Ao fazer isso, métodos de segunda ordem podem ser introduzidos para reduzir ou eliminar a dependência do número de condição.

  • 00:15:00 Nesta seção, Lukas Tatzel discute a otimização de segunda ordem em aprendizado profundo e apresenta o conceito da etapa de Newton. Este método envolve aproximar a função de perda na iteração atual com uma função quadrática, onde o Hessiano é considerado positivo definido. Ao calcular seus gradientes e defini-los como zero, a etapa de Newton pode ser derivada e usada para fins de minimização. Este método pode ser muito mais rápido do que os métodos baseados em gradiente em certas situações, alcançando convergência quadrática local se a função alvo for duas vezes diferenciável e o Hessian for Lipschitz contínuo. Tatzel compara a convergência linear e quadrática visualmente, mostrando que os métodos de Newton podem ser muito rápidos em certas situações, pois são robustos contra problemas mal condicionados.

  • 00:20:00 Nesta seção, Lukas Tatzel discute métodos de otimização de segunda ordem para aprendizado profundo e os motivos pelos quais eles não são comumente usados. Os métodos de segunda ordem podem ser mais rápidos do que os métodos baseados em gradiente, mas requerem acesso à matriz Hessiana, que pode ser difícil de calcular e armazenar para problemas grandes e não convexos. Além disso, lidar com a estocasticidade no cálculo do Hessian pode afetar o desempenho desses métodos. Tatzel continua explicando como esses desafios podem ser enfrentados e dá uma visão geral dos conceitos por trás dos diferentes métodos.

  • 00:25:00 Nesta seção, Lukas Tatzel explica a otimização de segunda ordem para aprendizado profundo e as limitações do método de atualização de Newton. Ele demonstra o cálculo da derivada de segunda ordem da função em relação a Tau, que é uma função quadrática com curvatura constante Lambda. A curvatura ao longo de um autovetor é o autovalor e, se a curvatura for negativa, a quadrática é ilimitada por baixo, tornando o método de atualização de Newton sem sentido. Para resolver esse problema, Tatzel apresenta a matriz Generalized Gauss-Newton (GGN), que é uma aproximação positiva semidefinida do Hessian e pode servir como um substituto para ele. Ele deriva o GGN da função de perda aplicando a regra de mudança à divisão entre o vetor de parâmetros e os resultados do modelo.

  • 00:30:00 Nesta seção, Lukas Tatzel discute o conceito de otimização de segunda ordem para modelos de aprendizado profundo. Ele explica a regra do produto e como ela funciona, e como calcular a derivada de uma matriz ao aplicar a regra da cadeia. Tatzel então fala sobre o GGN, uma matriz definida positiva que negligencia a curvatura do modelo, e o Hessian, que contém as segundas derivadas do modelo em relação a Theta. Ele compara o GGN e o Hessian e mostra que o GGN é positivo definido e simétrico, tornando-o uma ferramenta útil para otimização em modelos de aprendizado profundo.

  • 00:35:00 Nesta seção, Lukas Tatzel discute o Hessian e como ele determina se o algoritmo GGN (Gauss-Newton generalizado) é semidefinido positivo ou não. Para todas as funções de perda relevantes, o Hessiano é semidefinido positivo. Nos casos em que a função de perda é tal que a perda é calculada como a norma ao quadrado entre as saídas do modelo e o rótulo verdadeiro, o Hessiano é um escalar vezes a matriz identidade, tornando-o positivo definido. Lukas também discute a matriz de informações de Fischer, que pode ser usada para definir uma etapa GGN bem definida. Nesse caso, o algoritmo GGN é a descida mais íngreme no espaço de distribuição, onde o espaço de parâmetros é medido pela distância entre duas distribuições.

  • 00:40:00 Nesta seção, Lukas Tatzel explica o problema da região de confiança na otimização de segunda ordem para aprendizado profundo. No caso convexo, ainda há um problema com modelos quadráticos sendo arbitrariamente ruins, levando à necessidade de amortecimento e restringindo a atualização da iteração para ficar dentro de algum raio de confiança. Ao adicionar identidade de tempos Delta à matriz de curvatura, uma etapa de Newton modificada é criada e, com o amortecimento, é possível controlar o quão conservadoras são as atualizações. Na hora de escolher o raio fica mais fácil trabalhar diretamente com o amortecimento usando a heurística L-BFGS baseada na relação de redução entre a queda de perda esperada e real.

  • 00:45:00 Nesta seção do vídeo, Lukas Tatzel discute como lidar com funções objetivas não convexas em aprendizado profundo computando matrizes de curvatura semidefinidas positivas, como ggn e fissura. É possível interpretar essas matrizes e fornecer estimadores imparciais sobre dados finitos. Heurísticas de amortecimento, como viver de volta Mark, podem ser usadas para controlar como as atualizações conservadoras devem ser. No entanto, inverter essas enormes matrizes de curvatura é um problema devido às limitações de armazenamento. Para resolver esse problema, ideias da álgebra numérica, como aproximações de baixo nível, métodos iterativos e aproximações estruturadas, podem ser emprestadas. Tatzel então discute a ideia central do BFGS, que gradualmente aprende uma aproximação ao Hessian inverso a partir de observações de gradiente, com o objetivo de deduzir a partir de observações de gradiente como será o Hessian inverso.

  • 00:50:00 Nesta seção, Lukas Tatzel explica a ideia de usar a otimização de segunda ordem para aprendizado profundo. A segunda derivada é obtida tomando uma aproximação de diferença para o gradiente, e isso é então transferido para o caso multidimensional usando a equação da secante. O objetivo é aproximar o Hessian inverso, de modo que as propriedades do Hessian inverso real sejam obtidas e necessárias para que a aproximação tenha as mesmas propriedades. A atualização envolve apenas a aproximação anterior e os vetores SK e yk. A aproximação é armazenada usando uma janela fixa de algum tamanho fixo l, e com isso, uma boa estimativa de curvatura ainda pode ser obtida.

  • 00:55:00 Nesta seção, Lukas Tatzel apresenta métodos de otimização de segunda ordem para aprendizado profundo, focando especificamente na abordagem livre de Hessian. Essa abordagem usa CG para minimizar funções quadráticas e requer apenas produtos de matriz-vetor, permitindo computação eficiente sem armazenar explicitamente a matriz de curvatura. O GGn é usado como a métrica de curvatura e, usando a estimativa de Monte Carlo, as matrizes podem ser calculadas para um determinado par de entrada-saída. Para multiplicar eficientemente o jacobiano por um vetor, a ideia central é substituir o produto jacobiano-vetor por uma derivada direcional. Isso permite uma maneira eficiente de calcular o produto sem construir explicitamente as matrizes.

  • 01:00:00 Nesta seção, o palestrante discute a otimização de segunda ordem para aprendizado profundo, especificamente a otimização Hessian-Free e as técnicas KFC. A otimização Hessian-Free envolve a linearização do modelo aproximando F em theta mais Delta Theta por F de theta mais o Jacobiano vezes Delta Theta e usando o produto do Vetor Jacobiano. No entanto, esta abordagem é numericamente instável, então uma aproximação para o produto do vetor jacobiano é usada em seu lugar. Por outro lado, KFC é uma curvatura aproximada baseada em métricas de informações oficiais que envolvem duas aproximações: a aproximação bloco-diagonal e trocando as operações de expectativa e produtos crônicos. A estrutura em blocos diagonais torna trivial a inversão da matriz, e a aproximação da expectativa é razoável porque é difícil calcular produtos crônicos sobre dois vetores.

  • 01:05:00 Nesta seção, Lukas Tatzel discute três abordagens para acessar e inverter a matriz de curvatura, que é usada na otimização de segunda ordem para aprendizado profundo. O primeiro método é BFGS e LBFGS, que usam uma aproximação de redução dinâmica do Hessian e são a escolha padrão para pequenos problemas determinísticos. O segundo método é o otimizador livre de Hessian, que é semelhante aos passos de Newton, mas requer pouca memória e mais trabalho sequencial. No entanto, ele tem problemas com tamanhos de minilote maiores que usam camadas de norma de lote. O último método é o KFC, que é uma representação leve das métricas de informação Hessiana e amplamente utilizado na quantificação de incertezas. O otimizador K-Fik é recomendado ao lidar com memória limitada, pois armazenar e inverter os componentes menores do bloco é mais fácil e rápido do que fazer o mesmo com a matriz inteira.

  • 01:10:00 Nesta seção, Lukas Tatzel discute a questão da estocasticidade ao calcular a etapa de Newton, que envolve inverter o Hessian e aplicá-lo ao gradiente. Por ter apenas estimativas do Hessian e do gradiente, mesmo que não sejam viesadas, o passo de Newton ainda será viesado. Tatzel fornece um exemplo intuitivo em 1D onde a expectativa sobre 1/H hat não é a mesma de 1/H, mostrando que mesmo com uma estimativa da curvatura, ainda há alguma incerteza ao mapeá-la através da função inversora. Isso destaca o desafio de lidar com a estocasticidade na otimização de segunda ordem para aprendizado profundo.

  • 01:15:00 Nesta seção, o palestrante discute os vieses e instabilidades que podem ocorrer na otimização de segunda ordem para aprendizado profundo. Ao estimar a curvatura inversa, é possível gerar caudas pesadas, que resultam em uma expectativa que se move para acima da média. Isso leva a um passo de Newton geral que é muito grande em expectativa. Além disso, vieses e instabilidades podem estar presentes devido a estimativas estocásticas ou ao acaso quando uma amostra é próxima de zero. Esses problemas podem ser resolvidos com a aplicação de amortecimento, que afasta a distribuição de zero e mitiga potenciais vieses e instabilidades.

  • 01:20:00 Nesta seção, Lukas Tatzel discute os desafios de usar o amortecimento como um processo de otimização de loop externo, que trata todas as direções igualmente e pode não ser uma maneira adequada de abordar a complexidade do processo de treinamento. Ele propõe o uso de algoritmos especializados que podem usar quantidades mais ricas como distribuições para fazer atualizações e observa que o problema fundamental da estocasticidade permanece sem solução. No geral, Tatzel sugere que métodos de otimização de segunda ordem como BFGS, LBFJS, otimizador livre de Heston e KFC oferecem uma solução parcial para os desafios do aprendizado profundo, incluindo a questão do condicionamento de Hill.
 

Aula 13 -- Incerteza em Deep Learning -- Agustinus Kristiadi



Numéricos de ML 13 -- Incerteza em Deep Learning -- Agustinus Kristiadi

O vídeo discute a incerteza no aprendizado profundo, particularmente nos pesos das redes neurais, e a importância de incorporar a incerteza devido ao problema de excesso de confiança assintótica, em que as redes neurais fornecem previsões de alta confiança para exemplos fora de distribuição que não devem ser classificados com certeza. O vídeo fornece informações sobre como usar quantidades de segunda ordem, especificamente estimativas de curvatura, para obter incerteza em redes neurais profundas, usando uma distribuição Gaussiana para aproximar os pesos da última camada e a matriz Hessiana para estimar a curvatura da rede neural. O vídeo também discute o formalismo bayesiano e as aproximações de LaPlace para selecionar modelos e parâmetros de redes neurais.

Na segunda parte da palestra, Agustinus Kristiadi discute várias maneiras de introduzir incerteza em modelos de aprendizado profundo neste vídeo. Uma técnica envolve o uso de aproximações linearizadas de Laplace para transformar uma rede neural em um modelo gaussiano. Outra abordagem é o treinamento fora da distribuição, onde a incerteza é adicionada em regiões que não são cobertas pelo conjunto de treinamento original. Kristiadi enfatiza a importância de adicionar incerteza para evitar o excesso de confiança no modelo e sugere o uso de medidas probabilísticas para evitar o custo de encontrar o posterior ideal. Essas técnicas serão exploradas em um próximo curso sobre aprendizado de máquina probabilístico.

  • 00:00:00 Nesta seção, o palestrante explica o tópico da palestra, que é sobre como obter incerteza no aprendizado de máquina e como fazer cálculos para conseguir isso. A palestra usa insights de aulas anteriores, particularmente na resolução de integrais e no uso de deep learning bayesiano para obter incertezas. O palestrante discute a importância das incertezas em redes neurais profundas e o problema do excesso de confiança assintótica, onde a rede neural fornece previsões de alta confiança para exemplos fora de distribuição que não devem ser classificados com tanta certeza. A palestra visa fornecer informações sobre como usar quantidades de segunda ordem, especificamente estimativas de curvatura, para obter incerteza em redes neurais profundas.

  • 00:05:00 Nesta seção, Agustinus Kristiadi discute a incerteza no aprendizado profundo, especificamente em redes de classificação que usam não linearidades ReLU. Ele apresenta uma propriedade fundamental dos classificadores reais: se a camada logit é uma combinação linear das camadas anteriores com não linearidades ReLU, a saída da rede ainda é uma função linear por partes, definida pela combinação das camadas anteriores. Afastar-se dos dados de treinamento neste espaço leva a uma região onde o classificador tem entrada linear para a saída softmax e, com probabilidade um, o ganho para cada função de saída linear difere. Como resultado, mover o suficiente nessas regiões levará a uma confiança arbitrariamente alta para uma classe, que pode ser observada visualmente no gráfico de três recursos de saída linear em vermelho.

  • 00:10:00 Nesta seção, Agustinus Kristiadi explica a propriedade fundamental dos classificadores reais que criam alta confiança em certas classes e por que isso não pode ser corrigido simplesmente retreinando os pesos. A solução é adicionar incerteza aos pesos da rede neural e, para isso, precisamos de uma interpretação bayesiana da rede neural, que pode ser obtida maximizando o exponencial da função que está sendo minimizada durante o treinamento. Isso significa que o aprendizado profundo já está fazendo inferência bayesiana, mas apenas o modo posterior está sendo calculado, o que pode ser problemático. Uma configuração comum para problemas supervisionados com saídas contínuas é o regularizador de perda quadrática e decaimento de peso, que é equivalente a colocar uma Gaussiana anterior nos pesos e uma probabilidade Gaussiana nos dados.

  • 00:15:00 Nesta seção, o palestrante discute a incerteza no aprendizado profundo e na interpretação bayesiana de redes neurais profundas. O palestrante observa que a distribuição posterior completa necessária para previsões é intratável. Embora as abordagens de Monte Carlo sejam teoricamente bem fundamentadas, elas consomem muito tempo e podem prejudicar aqueles que fazem inferências de pacientes. Assim, o palestrante defende a maneira mais barata possível de fazer integrais: diferenciação automática acoplada à álgebra linear. O palestrante compartilha o resultado surpreendente de que qualquer medida aproximada gaussiana, mesmo apenas nos pesos da última camada da rede, já resolve parcialmente o problema do excesso de confiança, conforme demonstrado em um teorema. O palestrante enfatiza que não importa se a distribuição de probabilidade nos pesos está correta, adicionar qualquer medida de probabilidade nos pesos pode resolver o problema de confiança.

  • 00:20:00 Nesta seção, o palestrante explica como uma distribuição gaussiana pode ser aplicada aos pesos da última camada na camada de classificação de uma rede neural profunda para resolver o problema de incerteza na classificação. O palestrante assume que qualquer covariância da distribuição gaussiana pode ser usada porque não importa, e a média da distribuição é dada pelos pesos treinados da rede neural profunda. O alto-falante então usa a distribuição gaussiana para resolver o problema do slide anterior, aproximando a integral do Max suave sobre F de theta na estrela X. A aproximação de David Makai é usada para calcular o Soft Max sobre a variável derivada que tem a previsão média da saída que a rede teria de outra forma. As linhas azuis na visualização que descrevem essa aproximação são limitadas por um, o que fornece uma solução para a incerteza na classificação.

  • 00:25:00 Nesta seção, Agustinus Kristiadi discute a importância da incerteza no aprendizado profundo, especificamente no que diz respeito aos pesos das redes neurais. Ele argumenta que é crucial levar em conta que não sabemos bem os pesos e evitar assumir que sabemos algo se não soubermos, pois isso pode criar problemas. Aproximações matemáticas, como linearizar e usar uma distribuição gaussiana nos pesos, podem ser feitas, e foi provado que, desde que tenhamos um pouco de incerteza, tudo bem. A escolha do Sigma pode ser feita com diferenciação automática com estimativas de curvatura, que é o método mais rápido e barato.

  • 00:30:00 Nesta seção, Agustinus Kristiadi explica como podemos usar a matriz Hessiana para formar uma aproximação gaussiana após encontrar o modo da função de perda por meio de aprendizado profundo. A matriz Hessiana, que contém a derivada de segunda ordem da função de perda, é usada para construir aproximações. Embora a aproximação gaussiana seja local e não perfeita, ela é totalmente analítica, tornando-a uma aproximação favorável. Para utilizar essa aproximação, precisamos de uma rede neural treinada e, uma vez treinada a rede, podemos obter o Hessian nesse ponto usando o AutoDiff, que é um processo de forma fechada que simplesmente funciona.

  • 00:35:00 Nesta seção, o palestrante discute o conceito de incerteza no aprendizado profundo e como avaliá-lo usando a matriz Hessiana. A matriz Hessiana pode ser calculada após o treinamento da rede neural profunda e fornece uma maneira de estimar a incerteza sem adicionar custos à negociação da rede. O palestrante também observa que essa abordagem permite manter a estimativa pontual, o que pode ser útil para aplicações práticas. No entanto, existem desvantagens, como o Hessian ser caro para calcular e aproximações são necessárias para torná-lo tratável. A Matriz Generalizada de Gauss-Newton é uma dessas aproximações que pode ser usada na prática.

  • 00:40:00 Nesta seção, Agustinus Kristiadi discute a incerteza no aprendizado profundo e como o Gauss-Newton Hessian (GNG) pode ser usado para estimar a curvatura de uma rede neural. Ele explica que o GNG é semidefinido positivo e tem uma boa conexão com a linearização, o que pode resultar em um modelo tratável quando combinado com a aproximação de Laplace. Este modelo pode ser usado para regressão e produz um processo gaussiano com sua função média dada pela saída da rede neural.

  • 00:45:00 Nesta seção, o palestrante discute a incerteza no aprendizado profundo, particularmente em redes neurais. Eles observam que a função de variância central é dada encontrando o modo da função de perda no jacobiano da rede, tomando o produto interno com o inverso do hessiano. O palestrante menciona que esse processo pode ser usado para classificação na forma de uma aproximação simples desenvolvida por David Pinkai. O processo envolve a definição da função de perda, calculando o Hessiano da função de perda e o Jacobiano da rede treinada em relação aos pesos. Finalmente, combinar os dois em um produto fornece uma função preditiva para f de x star que ainda é não linear em x, mas linear no espaço de peso. O palestrante destaca que esse processo pode ajudar a evitar o excesso de confiança, principalmente em casos de classificação.

  • 00:50:00 Nesta seção, Agustinus Kristiadi discute o formalismo bayesiano e como ele pode ser útil no aprendizado profundo. Ao linearizar a rede em seus pesos e usar a aproximação de Laplace, podemos reduzir a integral intratável sobre a posterior a uma forma simplificada da posterior e da função de perda. Esse processo pode nos fornecer uma medida de quão bem nosso modelo se ajusta aos dados, o que é útil na adaptação de parâmetros ou aspectos do modelo. Ao calcular a evidência para os dados, podemos escolher qualquer modelo que tenha a maior evidência e escolher aquele que está mais próximo dos dados.

  • 00:55:00 Nesta seção, o palestrante discute como usar as aproximações de LaPlace para selecionar modelos e parâmetros de uma rede neural. O palestrante explica que o Hessian depende da forma da função de perda e que, à medida que você adiciona mais camadas, a função de perda pode se tornar mais estreita, levando a um melhor ajuste. O palestrante mostra um gráfico que demonstra que cerca de duas a quatro camadas é provavelmente a melhor escolha. O palestrante também discute como o fator Occam não é tão direto quanto para os processos Gaussianos, uma vez que o Hessiano tem um efeito não trivial sobre o quão bem o modelo pode explicar os dados. O palestrante então mostra uma visualização de uma rede neural profunda com aproximação de LaPlace de linearização para um problema de classificação e explica como você pode usar um parâmetro de precisão anterior para afetar a confiança do modelo. Por fim, o palestrante discute como as aproximações de LaPlace podem ser usadas para selecionar escolhas discretas, como o número de camadas ou um parâmetro como a posição anterior usando a descida do gradiente.

  • 01:00:00 Nesta seção, o palestrante discute a incerteza no aprendizado profundo e como ela pode ser abordada usando aproximações de Laplace linearizadas. Este método envolve o uso de uma abordagem probabilística para determinar a posição anterior das camadas ao selecionar o número de camadas de uma rede. No entanto, embora esse processo funcione bem para selecionar uma posição anterior, pode não funcionar tão bem para outras tarefas, como escolher o número de camadas. O palestrante então discute a aproximação de Laplace linearizada e como ela pode ser usada como uma ferramenta de caixa preta para transformar uma rede neural profunda em um modelo gaussiano para lidar com a incerteza. Por fim, o palestrante discute uma maneira de corrigir o problema com modelos que não apresentam incerteza em seus pesos, o que envolve adicionar uma correção simples à rede.

  • 01:05:00 Nesta seção, Agustinus Kristiadi discute a questão de adicionar um número ilimitado de pesos para dar conta da infinita complexidade dos dados em redes neurais profundas. Ele explica que adicionar um número infinito de recursos resolveria o problema e mostra como acompanhar o número infinito de recursos não precisa ser uma tarefa cara. Assintoticamente, a incerteza torna-se a máxima entropia Thing 1 sobre C, sem adicionar mais complexidade ao modelo.

  • 01:10:00 Nesta seção, o palestrante explica como a incerteza pode ser adicionada ao aprendizado profundo para melhorar as previsões, principalmente em áreas onde há poucos dados de treinamento ou há entradas adversárias. A abordagem envolve treinar a média da rede e, em seguida, adicionar unidades que não alteram a previsão do ponto, mas adicionam incerteza, que pode ser movida e dimensionada. Essa técnica é chamada de treinamento fora da distribuição e pode ser obtida usando uma escala de comprimento baseada na amplitude dos dados para definir um processo Gaussiano aproximado. O custo de adicionar incerteza é insignificante e apenas adiciona um backstop que reduz a confiança se os dados estiverem longe dos dados de treinamento.

  • 01:15:00 Nesta seção, o palestrante discute como introduzir incerteza em um modelo de aprendizado profundo. Uma maneira de fazer isso é por meio do treinamento fora da distribuição, onde um novo conjunto de dados é criado com imagens que não contêm os objetos que foram usados no conjunto de treinamento original. A rede é então treinada para ser incerta nessas regiões. Ao definir uma função de perda que inclui a perda fora da distribuição, o Hessiano da estimativa de curvatura da função de perda onde o modo da perda é encontrado pode ser ajustado para produzir a quantidade desejada de incerteza. O palestrante também observa que a introdução de incerteza é importante no aprendizado profundo, pois pode ajudar a prevenir patologias e excesso de confiança no modelo.

  • 01:20:00 Nesta seção, o palestrante discute o conceito de adicionar incerteza a um classificador sem alterar sua estrutura fundamental. A linearização da rede no espaço de peso pode permitir que isso aconteça e, calculando o jacobiano e o hessiano da função de perda, podemos transformar uma rede neural profunda em um processo gaussiano. Adicionar funcionalidade à rede, como confiança calibrada assintótica, pode ser feito com esta técnica. O palestrante enfatiza a importância do treinamento probabilístico e do uso de medidas de probabilidade no aprendizado de máquina sem a necessidade de rastreamento posterior completo. Essa abordagem pode resolver problemas como excesso de confiança, evitando o custo de encontrar o posterior ideal. Por fim, o palestrante sugere que o uso dessas técnicas seja mais explorado no próximo curso sobre aprendizado de máquina probabilístico.
 

Aula 14 -- Conclusão -- Philipp Hennig



Numéricos de ML 14 -- Conclusão -- Philipp Hennig

Philipp Hennig apresenta um resumo do curso "Numerics of Machine Learning", enfatizando a importância da resolução de problemas matemáticos no aprendizado de máquina relacionados à análise numérica, como integração, otimização, equações diferenciais e álgebra linear. Ele discute a complexidade de realizar álgebra linear em um conjunto de dados e como ela se relaciona com a unidade de processamento e o disco. Hennig também cobre tópicos como lidar com conjuntos de dados de tamanhos não triviais, algoritmos para resolver sistemas lineares, resolver equações diferenciais parciais e estimar integrais. Ele conclui reconhecendo a dificuldade em treinar redes neurais profundas e a necessidade de soluções para superar o problema de estocasticidade.

Na conclusão de sua série de palestras, Philipp Hennig enfatiza a importância de ir além de apenas treinar modelos de aprendizado de máquina e saber o quanto o modelo sabe e o que não sabe. Ele fala sobre estimar a curvatura da função de perda para construir estimativas de incerteza para redes neurais profundas e a importância de ser probabilístico, mas não necessariamente aplicar o teorema de Bayes em todos os casos devido à complexidade computacional. Hennig também enfatiza a importância da computação numérica no aprendizado de máquina e a necessidade de desenvolver novas formas de computação centradas em dados. Finalmente, ele pede feedback sobre o curso e discute o próximo exame.

  • 00:00:00 Nesta seção, Philipp Hennig fornece um resumo de todo o curso Numerics of Machine Learning, que ele acredita ser crucial devido à variação de conteúdo de vários palestrantes. Ele explica que o aprendizado de máquina envolve essencialmente a resolução de problemas matemáticos que não possuem soluções de forma fechada, em oposição à IA clássica, que envolve algoritmos. Os problemas no aprendizado de máquina estão relacionados à análise numérica e incluem integração, otimização, equações diferenciais e álgebra linear. Hennig enfatiza a importância de entender a complexidade de fazer álgebra linear em um conjunto de dados e como isso é relevante para a unidade de processamento e o disco.

  • 00:05:00 Nesta seção, Philipp Hennig discute o papel da álgebra linear no aprendizado de máquina e especificamente na regressão do processo gaussiano. Ele explica que para aprender uma distribuição preditiva, que tem média e covariância, precisamos resolver um sistema linear de equações envolvendo a inversão de uma matriz vezes um vetor. Existem muitos algoritmos para resolver esses sistemas lineares, incluindo o algoritmo clássico chamado decomposição de Cholesky, que pode ser visto como um procedimento iterativo construindo o inverso da matriz. Hennig observa que essa aproximação pode ser usada como estimativa para o inverso da matriz, mas sua qualidade pode variar dependendo da ordem dos dados.

  • 00:10:00 Nesta seção, Philipp Hennig explica como linearmente caro é passar por um conjunto de dados em alguma ordem aleatória e carregar bits dele do disco enquanto ignora o resto. Ele compara esse método com o que os alunos aprendem por meio de uma aula probabilística de aprendizado de máquina, que é resolver dois problemas de otimização linear diferentes para resolver uma equação. Ele também destaca que surgem incertezas finitas, que causam duas fontes de incerteza, incluindo o conjunto de dados finito e cálculos limitados, que não fornecem a solução completa.

  • 00:15:00 Nesta seção do vídeo, Philipp Hennig explica a complexidade de resolver problemas lineares na regressão do processo gaussiano de influência bayesiana. O nível de despesa no caso base é muito mais sutil do que a maioria das pessoas pode ter aprendido. As quatro principais conclusões disso são que você pode optar por não olhar para todo o conjunto de dados, você pode usar um algoritmo do tipo Cholesky que fornece uma estimativa de custo linear no conjunto de dados e quadraticamente no número de iterações, você pode usar um algoritmo mais eficiente que converge rapidamente, mas é quadraticamente caro em cada iteração, ou você pode optar por Cholesky, que gera uma despesa cúbica no número de pontos de dados.

  • 00:20:00 Nesta seção, Hennig discute a importância de lidar adequadamente com conjuntos de dados de tamanhos não triviais e a decisão de como operar com eficiência neles. Ele também explica como lidar com conjuntos de dados de dimensão infinita, especificamente no que diz respeito a sistemas que evoluem no tempo, bem como o algoritmo usado para problemas lineares dependentes do tempo e invariantes no tempo, conhecidos como filtragem e suavização de Kalman. Hennig destaca que esse tipo de algoritmo é facilmente escrito e linearmente caro no número de etapas de tempo. Ele também enfatiza a importância de entender os níveis baixos da hierarquia computacional, pois pode ser usado para acelerar o desempenho em algoritmos de nível superior.

  • 00:25:00 Nesta seção do vídeo, Philipp Hennig discute o algoritmo mais suave, que serve como um algoritmo de contabilidade que informa todas as variáveis anteriores na cadeia sobre as observações que fez no futuro. Ele também fala sobre a rapidez com que os algoritmos podem ser aplicados a configurações onde as observações não são uma transformação gaussiana linear do espaço de estado e para a dinâmica do filtro de Kalman estendido. Hennig também aborda as paisagens algorítmicas e a estrutura dessa estrutura, que é muito flexível e pode ser usada para construir um algoritmo poderoso para resolver equações diferenciais.

  • 00:30:00 Nesta seção, Philipp Hennig discute como equações algébricas implícitas, simetrias de grupos contínuos e equações diferenciais parciais podem ser incluídas na mesma linguagem algorítmica que as equações diferenciais comuns no aprendizado de máquina. Ele também menciona o valor de incorporar observações de um sistema, como medir o caminho percorrido ou saber onde começou e terminou, na determinação de valores desconhecidos em partes do espaço de estado. Hennig observa que, à medida que os pacotes de simulação se tornam mais diversificados, torna-se menos necessário ter um amplo conhecimento dos métodos de simulação, pois o método de simulação pode ser essencialmente visto como um filtro.

  • 00:35:00 Nesta seção do vídeo, Philipp Hennig discute como os métodos de aprendizado de máquina gerenciam as informações e afirma que não há realmente uma diferença entre as informações que vêm de um disco ou um sensor que está conectado ao computador, e informações que vêm do programador que as escreveu como uma equação algébrica. Ele também menciona que o operador de informação atua como uma interface entre o usuário e o projetista do algoritmo. Ele também explica como resolver equações diferenciais parciais, que é essencialmente a mesma coisa que filtrar métodos de simulação, usando regressão de processo gaussiano. No entanto, ele observa que, se a equação diferencial parcial não for linear, ela não poderá ser resolvida usando um filtro.

  • 00:40:00 Nesta seção, Philipp Hennig resume a conclusão da série "Numerics of ML", que aborda equações diferenciais e integração no aprendizado de máquina. Ele primeiro fala sobre a inferência de processos gaussianos com funções, que podem ser complexas devido à natureza dos espaços de funções. No entanto, observando funções não lineares e aplicando várias fontes de informação, como equações diferenciais parciais e valores de contorno, elas podem ser combinadas em um grande esquema de inferência de processo gaussiano, resultando em uma representação quantificada do sistema dinâmico. Hennig então passa para a integração na inferência probabilística, onde introduz o algoritmo de Monte Carlo, que é um estimador imparcial que converge lentamente, mas funciona em qualquer função integrável.

  • 00:45:00 Nesta seção, Philipp Hennig discute as melhores abordagens para estimar integrais para aprendizado de máquina. Ele sugere que a taxa na qual uma estimativa da integral converge para o valor verdadeiro da integral é 1 sobre a raiz quadrada do número de amostras, que depende do algoritmo usado. No entanto, a quadratura bayesiana, um algoritmo que gasta muito tempo modelando o integrando, pode funcionar muito bem, especialmente em problemas de baixa dimensão, e pode convergir muito mais rápido do que Monte Carlo, até mesmo polinomialmente rápido. Hennig sugere que a construção de algoritmos que funcionem bem apenas para uma pequena classe de problemas pode funcionar melhor para cada instância desse problema, mas pode falhar muito fora dessa classe. Em última análise, o melhor algoritmo dependerá da natureza do problema a ser resolvido.

  • 00:50:00 Nesta seção, Philipp Hennig explora os desafios dos problemas numéricos de aprendizado de máquina contemporâneos, especificamente a questão do treinamento de redes neurais profundas. Embora existam muitos otimizadores disponíveis, eles são fundamentalmente frustrantes e ineficientes, exigindo supervisão constante e ajuste de hiperparâmetros, e nem sempre funcionando. Enquanto a otimização costumava ser apertar um botão e observar o algoritmo funcionar perfeitamente, agora o aprendizado de máquina requer uma equipe de mais de 100 pessoas para gerenciar grandes modelos de linguagem, tornando-o um uso ineficiente de recursos. O principal problema é a estocasticidade, e ainda não há uma solução elegante conhecida para esse problema, embora esteja impulsionando toda a comunidade de aprendizado de máquina.

  • 00:55:00 Nesta seção, Philipp Hennig conclui o curso de palestras sobre incerteza na computação, enfatizando a dificuldade em treinar redes neurais profundas. Embora os gradientes de minilote sejam avaliados devido a dados e cálculos finitos, o ruído significativo introduzido por meio desse processo na verdade reduz o desempenho dos algoritmos de otimização. Hennig afirma que a solução para esse problema tornaria o treinamento de redes neurais profundas muito mais rápido e mudaria o futuro do aprendizado de máquina. Enquanto isso, ainda podemos usar os recursos disponíveis, como estimativas de curvatura, para construir novos algoritmos e técnicas.

  • 01:00:00 Nesta seção, Philipp Hennig discute a necessidade de fazer mais do que apenas treinar redes duplas em aprendizado de máquina e a importância de saber o quanto o modelo sabe e o que não sabe. Hennig explica que estimar a curvatura da função de perda pode ajudar a construir estimativas de incerteza para redes neurais profundas de maneira leve, usando a aproximação de Laplace. Isso pode ser usado para diferentes casos de uso e pode ser combinado com uma linearização do espaço de peso da rede para transformar qualquer rede neural profunda aproximadamente em um algoritmo de regressão gaussiana paramétrica de processo gaussiano. Hennig enfatiza que, embora seja importante ser probabilístico, não é necessário aplicar o teorema de Bayes em todos os casos, pois pode ser muito computacionalmente intensivo. Em vez disso, encontrar soluções rápidas que agregam valor sem serem muito caras computacionalmente é uma abordagem melhor.

  • 01:05:00 Nesta seção, Philipp Hennig enfatiza a importância da computação numérica no aprendizado de máquina. Ele explica que as computações numéricas são agentes ativos que interagem com uma fonte de dados e devem decidir ativamente como usar os dados que recebem. Ao levar essa conexão a sério, novas formas de computação centradas em dados podem ser desenvolvidas, que podem ser mais flexíveis, fáceis de usar e mais fáceis de generalizar para diferentes configurações. Hennig também destaca a importância de entender como os algoritmos numéricos funcionam para se tornar um melhor engenheiro de aprendizado de máquina. Finalmente, ele pede feedback sobre o curso e discute o próximo exame.
 

Suporta Vector Machine (SVM) em 7 minutos - Fun Machine Learning



Suporta Vector Machine (SVM) em 7 minutos - Fun Machine Learning

O vídeo explica o Support Vector Machines (SVM), um algoritmo de classificação usado para conjuntos de dados com duas classes que desenha um limite de decisão, ou hiperplano, com base nos extremos do conjunto de dados. Ele também discute como o SVM pode ser usado para conjuntos de dados não linearmente separáveis, transformando-os em espaços de recursos dimensionais superiores usando um truque do kernel. O vídeo identifica as vantagens do SVM, como eficácia em espaços de alta dimensão, eficiência de memória e capacidade de usar kernels diferentes para funções personalizadas. No entanto, o vídeo também identifica as desvantagens do algoritmo, como baixo desempenho quando o número de recursos é maior que o número de amostras e a falta de estimativas de probabilidade diretas, que exigem validação cruzada cara.

  • 00:00:00 Nesta seção, aprendemos sobre máquinas de vetores de suporte (SVM) e como elas podem ser usadas para classificar conjuntos de dados com duas classes. O algoritmo SVM examina os extremos dos conjuntos de dados e desenha um limite de decisão ou hiperplano próximo aos pontos extremos do conjunto de dados. Essencialmente, o algoritmo da máquina de vetores de suporte é a fronteira que separa melhor as duas classes. Em seguida, aprendemos sobre conjuntos de dados não linearmente separáveis e como as SVMs podem transformá-los em espaços de recursos dimensionais superiores com um truque do kernel. Tipos populares de kernel incluem kernel polinomial, kernel de função de base radial (RBF) e kernel sigmoide. No entanto, escolher o kernel correto não é uma tarefa trivial e pode depender da tarefa específica em questão.

  • 00:05:00 Nesta seção, são discutidas as vantagens e desvantagens das máquinas de vetores de suporte (SVM). O SVM é eficaz em espaços de alta dimensão e usa um subconjunto de pontos de treinamento na função de decisão, tornando-o eficiente em termos de memória. Diferentes kernels podem ser especificados para a função de decisão, incluindo kernels personalizados, e o SVM pode ser usado em vários aplicativos, como imagens médicas, setor financeiro e reconhecimento de padrões. No entanto, as desvantagens do SVM incluem desempenho ruim se o número de recursos for maior que o número de amostras e a falta de estimativas de probabilidade diretas, que exigem validação cruzada cara.
 

'A Revolução do Aprendizado Profundo' - Geoffrey Hinton - Palestra do Presidente da RSE 2019



'A Revolução do Aprendizado Profundo' - Geoffrey Hinton - Palestra do Presidente da RSE 2019

Geoffrey Hinton, conhecido como o "Padrinho do Aprendizado Profundo", discute a história e a evolução do aprendizado profundo e das redes neurais, os desafios e as possibilidades emocionantes de usar o aprendizado profundo para criar máquinas que podem aprender da mesma forma que os cérebros humanos e as truques e técnicas que tornaram a retropropagação mais eficaz. Ele também descreve o sucesso das redes neurais no reconhecimento de fala e visão computacional, a evolução das redes neurais para visão computacional e pré-treinamento não supervisionado e sua eficácia na modelagem de linguagem e tradução automática. Ele termina destacando o valor do raciocínio por analogia e discute sua teoria das "cápsulas" e da conexão do conhecimento em um modelo que prevê partes a partir do todo.

Geoffrey Hinton, pioneiro em aprendizado profundo, apresenta uma palestra defendendo a integração de memórias associativas, memórias rápidas e múltiplas escalas de tempo em redes neurais para permitir conhecimento de longo prazo e armazenamento temporário, o que é necessário para o raciocínio real. Além disso, ele discute o ato de equilíbrio entre crenças anteriores e dados, o potencial de aprendizado não supervisionado, a eficiência das redes convolucionais no reconhecimento de objetos com a incorporação de conhecimento do ponto de vista e equivariância translacional, e a necessidade de combinar raciocínio simbólico com redes conexionistas, como transformadores redes. Ele também aborda a questão dos vieses inconscientes no aprendizado de máquina e acredita que eles podem ser corrigidos mais facilmente do que o viés humano, identificando e corrigindo os vieses. Por fim, ele enfatiza a necessidade de mais financiamento e apoio a jovens pesquisadores no campo da IA.

  • 00:00:00 Se você está familiarizado com o aprendizado profundo, deve muito ao professor Geoffrey Hinton, conhecido como o "Padrinho do Aprendizado Profundo", que obteve seu PhD em inteligência artificial em Edimburgo em 1978 e ganhou vários prêmios por seu contribuições para o aprendizado de máquina. Na primeira parte de sua palestra, ele discute a história do aprendizado profundo e das redes neurais e como elas evoluíram ao longo dos anos. Ele também fala sobre os desafios e possibilidades emocionantes de usar o aprendizado profundo para criar máquinas que podem aprender da mesma forma que os cérebros humanos.

  • 00:05:00 Nesta seção, Geoffrey Hinton fala sobre os dois paradigmas da inteligência artificial que existiam desde o início dos anos 1950. Uma delas era a abordagem inspirada na lógica, que via a inteligência como a manipulação de expressões simbólicas usando regras simbólicas. A outra abordagem, por outro lado, acreditava que a essência da inteligência era aprender os pontos fortes das conexões em uma rede neural. Essa abordagem se concentrou mais na aprendizagem e na percepção, em comparação com o foco da outra abordagem no raciocínio. Essas diferentes abordagens levaram a diferentes visões de representações internas e formas correspondentes de fazer um computador fazer o que você deseja. Hinton compara o método de design inteligente com a estratégia de treinamento ou aprendizado, que envolve mostrar a um computador muitos exemplos.

  • 00:10:00 Nesta seção do vídeo, Geoffrey Hinton explica como surgiu a revolução do aprendizado profundo, que começou com o treinamento de redes de neurônios para aprender recursos complexos por meio de várias camadas. São usados neurônios idealizados, que modelam funções lineares e não lineares. Enquanto isso, as redes de treinamento possuem métodos diferentes, incluindo treinamento supervisionado e não supervisionado, sendo a retropropagação o algoritmo mais eficiente deste último. Por fim, ele aponta como o aprendizado profundo envolve perturbar a rede para medir o efeito e, em seguida, alterar a rede quando necessário, o que é muito mais eficiente do que a abordagem evolutiva de perturbar em face de variáveis desconhecidas.

  • 00:15:00 Nesta seção da palestra, o Dr. Hinton discute a técnica de otimização de retropropagação, que calcula o gradiente de pesos com base na discrepância entre a resposta real e a resposta correta para um pequeno lote de exemplos de treinamento. Ele explica o processo de atualização dos pesos com base no gradiente e o uso da descida estocástica do gradiente para otimizar o processo. O Dr. Hinton continua a discutir os truques e técnicas que tornaram a retropropagação mais eficaz, incluindo o uso de impulso e taxas de aprendizado menores para os gradientes maiores, concluindo que usar esses truques é tão bom quanto qualquer coisa, apesar das centenas de artigos publicados em periódicos. em métodos mais sofisticados. Por fim, ele observa que, na década de 1990, a falta de técnicas de inicialização adequadas para redes neurais e conjuntos de dados menores levou ao abandono temporário das redes neurais na comunidade de aprendizado de máquina.

  • 00:20:00 Nesta seção, Geoffrey Hinton, uma figura importante em aprendizado profundo, discute a história da pesquisa em aprendizado profundo e os desafios enfrentados pelos pesquisadores no campo. Ele descreve como, nos primórdios da retropropagação, muitos artigos foram rejeitados ou criticados porque se concentravam no aprendizado não supervisionado, que não se encaixava no paradigma predominante da visão computacional. No entanto, Hinton argumenta que o aprendizado não supervisionado, em combinação com técnicas como abandono, foi um fator chave para fazer a propagação reversa funcionar para redes profundas e, desde então, ajudou a revolucionar o campo do aprendizado profundo.

  • 00:25:00 Nesta seção, Hinton explica o sucesso das redes neurais no reconhecimento de fala e visão computacional. A primeira grande aplicação do aprendizado profundo foi no reconhecimento de fala, no qual um front-end faz modelagem acústica pegando o quadro intermediário de um espectrograma e identificando qual fonema uma pessoa está tentando expressar. A primeira aplicação comercialmente relevante de aprendizado profundo em grande escala foi no reconhecimento de fala, onde uma rede neural front-end superou as técnicas altamente ajustadas da IBM e de outros lugares. Outro evento significativo foi a competição ImageNet em 2012, onde uma rede neural profunda alcançou taxas de erro significativamente mais baixas do que as técnicas tradicionais de visão computacional.

  • 00:30:00 Nesta seção, o professor Geoffrey Hinton discute a evolução das redes neurais para visão computacional, tradução automática e pré-treinamento não supervisionado, e como a comunidade de visão computacional estava inicialmente cética sobre o sucesso dessas redes neurais. Ele passa a discutir atenção suave e transformadores, e como o último é mais adequado para covariâncias, tornando-o mais sensível a coisas como olhos iguais entre si, e como o pré-treinamento não supervisionado pode forçar as redes neurais a capturar informações sobre o que as palavras em torno de uma palavra podem lhe dizer sobre o que essa palavra deve significar.

  • 00:35:00 Nesta seção, Hinton explica a diferença entre o uso de redes neurais convolucionais e transformadores para tarefas de processamento de linguagem natural, como desambiguar o significado de palavras com base no contexto. Enquanto as redes neurais convolucionais usam as palavras ao redor da palavra-alvo para alterar sua representação, os transformadores treinam uma rede por derivações de back-ravine para aprender a transformar um vetor de palavra em uma consulta, chave e valor, que é usado para atender a outras palavras e ativar a representação correspondente. Os transformadores provaram ser muito eficazes na modelagem de linguagem e na tradução automática e foram usados para desenvolver métodos como o Burt, que usa aprendizado não supervisionado para aprender a incorporação de palavras por meio da probabilidade do próximo fragmento de palavra.

  • 00:40:00 Nesta seção da palestra, Hinton discute um experimento chamado "GPT-2" que pode gerar um texto que parece ter sido escrito por um humano. O modelo GPT-2, que contém um bilhão e meio de parâmetros, foi treinado em bilhões de palavras de texto e pode produzir histórias coerentes e inteligíveis. Hinton especula que esse tipo de raciocínio não é um raciocínio lógico adequado, mas sim um raciocínio intuitivo. Ele também aponta que é difícil saber o quanto o modelo realmente entende e questiona se o modelo está apenas fazendo grandes quantidades de associação ou se entende um pouco mais do que isso.

  • 00:45:00 Nesta seção, Geoffrey Hinton destaca o valor do raciocínio por analogia e seu papel na melhoria das capacidades de raciocínio. Ele compara o raciocínio sequencial ao raciocínio por intuição no contexto do jogo AlphaGo, explicando que tanto a intuição quanto o raciocínio lógico são necessários para tomar decisões bem informadas. Hinton também discute como as redes neurais convolucionais melhoraram a eficiência, mas falham em reconhecer objetos da mesma forma que os humanos, levando à conclusão de que os humanos usam quadros de coordenadas e entendem as relações entre as partes e o todo de um objeto para reconhecê-lo. Isso destaca a necessidade de insights sobre a arquitetura da rede neural para melhorar a forma como eles reconhecem os objetos.

  • 00:50:00 Nesta seção, Hinton usa uma tarefa para ilustrar a dependência da compreensão espacial em quadros de coordenadas. Ele apresenta um cubo wireframe e pede ao observador que aponte para onde estão os cantos sem usar um quadro de coordenadas, revelando que as pessoas tendem a pensar em cubos em relação ao seu sistema de coordenadas. Hinton então discute sua teoria das "cápsulas", que agrupa neurônios que aprendem a representar fragmentos de formas e impõe um quadro de coordenadas em cada fragmento para capturar a geometria intrínseca. Ele planeja treinar essas cápsulas sem supervisão para capturar o conhecimento da forma.

  • 00:55:00 Nesta seção, Hinton discute a conexão do conhecimento em um modelo que prevê partes do todo. O modelo é treinado por um transformador que examina as partes já extraídas, pega essas partes e tenta prever quais conjuntos explicariam essas partes. O transformador é bom em encontrar correlações entre as coisas e pode prever quais objetos podem estar lá e quais são suas poses. Hinton dá um exemplo onde o modelo é ensinado sobre quadrados e triângulos e pode posteriormente reconhecê-los em novas imagens. O modelo também pode ser treinado para reconhecer os números das casas sem nunca ver os rótulos.

  • 01:00:00 Nesta seção, aprendemos sobre o potencial do aprendizado não supervisionado e os vários tipos de neurônios que podem funcionar melhor do que a não linearidade escalar atualmente em uso. O palestrante exorta os alunos a não acreditarem em tudo o que ouvem e incentiva o redirecionamento de 50 anos de conhecimento adquirido para descobrir como obter o substrato certo para fazer um processamento específico. A parte de perguntas e respostas discute a possibilidade de contar apenas com os sistemas mais rápidos para inteligência e a coerência da memória de um transformador.

  • 01:05:00 Nesta seção, Hinton responde a uma pergunta sobre vieses inconscientes no aprendizado de máquina e a compara com os vieses em humanos. Ele acredita que, embora o aprendizado de máquina possa ser tendencioso, é muito mais fácil corrigi-lo do que o viés humano, porque os vieses no aprendizado de máquina podem ser identificados e corrigidos congelando os pesos e medindo contra quem são os vieses. Além disso, ele fala sobre a explicabilidade no aprendizado de máquina e argumenta contra a legislação de que os sistemas devem ser explicáveis antes de serem usados, pois essas grandes redes neurais aprenderam bilhões de pesos que não podem ser explicados de forma sucinta. No entanto, ele admite que os pesquisadores querem entender melhor esses sistemas e incentiva os pesquisadores mais velhos a fornecer financiamento para os mais jovens.

  • 01:10:00 Nesta seção, Geoffrey Hinton discute a ideia de que se conectarmos equivariância translacional e mais conhecimento de ponto de vista em redes convolucionais, elas poderiam ser mais eficientes no reconhecimento e generalização de objetos. Além disso, ele fala sobre a necessidade de combinar o raciocínio simbólico com redes conexionistas, como as redes transformadoras. Hinton acredita que implementar memórias associativas, memórias rápidas e ter cada sinapse com várias escalas de tempo pode permitir conhecimento de longo prazo e armazenamento temporário, o que é necessário para o raciocínio real.

  • 01:15:00 Nesta seção, o palestrante responde a uma pergunta sobre como as redes neurais são atualizadas com base em experiências passadas ou atuais. Ele sugere o uso de uma memória associativa que é ativada pelo estado atual, em vez de se envolver na propagação de volta ao longo do tempo. Ele esclarece que toda sinapse deve ter várias escalas de tempo para armazenar os temporários. A discussão então se move para o tópico da alucinação em sistemas com crenças prévias. O palestrante acredita que obter o equilíbrio certo entre crenças e dados anteriores é fundamental para esses sistemas. Finalmente, ele discute sua ambivalência em relação à retropropagação, afirmando que, embora seja a coisa certa a fazer, ele fica surpreso que apenas um bilhão de pesos possam fazer uma tradução muito boa, com o cérebro humano contendo muito mais.

  • 01:20:00 Nesta seção do vídeo, o palestrante discute como nossa atual tecnologia de IA pode não ser tão inteligente quanto pensamos e que o foco deve estar na solução desse problema. Eles também abordam o Projeto Cérebro Humano, financiado por fundos europeus, e questionam se isso ajudará ou prejudicará o desenvolvimento da IA. O palestrante também elogia o palestrante por conseguir explicar conceitos complexos de forma fácil para não especialistas entenderem e por promover mais financiamento e apoio a jovens pesquisadores na área de IA.
 

Como o ChatGPT realmente funciona



Como o ChatGPT realmente funciona

O ChatGPT é um modelo de aprendizado de máquina capaz de identificar corretamente o conteúdo prejudicial em conversas de bate-papo. Sua arquitetura é baseada na entrada humana e suas deficiências são delineadas. Leituras recomendadas também são fornecidas.

  • 00:00:00 O ChatGPT é um chatbot projetado para mitigar os problemas de desalinhamento do modelo. Ele usa aprendizado por reforço a partir de feedback humano para ajustar um modelo pré-treinado.

  • 00:05:00 O ChatGPT é um modelo de aprendizado de máquina capaz de identificar corretamente o conteúdo prejudicial em conversas de bate-papo. Sua arquitetura é baseada na entrada humana e suas deficiências são delineadas. Leituras recomendadas também são fornecidas.
 

Curso completo de aprendizado de máquina do zero



Curso completo de aprendizado de máquina do zero

A implementação de modelos de aprendizado de máquina por conta própria é uma das melhores maneiras de dominá-los. Apesar de parecer uma tarefa desafiadora, geralmente é mais fácil do que você imagina para a maioria dos algoritmos. Nos próximos 10 dias, usaremos Python e, ocasionalmente, Numpy para cálculos específicos para implementar um algoritmo de aprendizado de máquina por dia.

Você pode encontrar o código em nosso repositório GitHub: https://github.com/AssemblyAI-Examples/Machine-Learning-From-Scratch

Razão: