Uma jornada intuitiva sobre esse termo e do motivo desse blog
Estes rostos foram produzidos por uma rede neural artificial. Estes algoritmos são “treinados” por um processo que fornece um grande conjunto de dados para a rede processar. Em cada passo desse processamento a rede salva em sua estrutura uma “memória” do que lhe foi passado. No caso de imagens essa memória envolve características (Features) como traços, cores, bordas e conjuntos de outras características. Após treinada, espera-se que a rede armazene dentro de sua estrutura uma representação das características de todo o conjunto de dados.
Cada característica armazenada é uma discretização (isto é, um ponto) de um espaço de possibilidades. Ao grande espaço de possibilidades chamamos de Espaço Latente (Latent space).
O espaço latente é multi-dimensional. As características referem a cada dimensão onde as variáveis residem. Ao nosso exemplo das faces, cada característica aprendida pela rede representa uma forma na imagem. Para a rede gerar um rosto humano, nós solicitamos que ela percorra as característica dentro desse espaço (ou busque nele) em alguma dimensão aleatória. Com esse processo ela agrega as característica e gera para nós um resultado que envolve todas estas.
Na verdade o espaço é multi-dimensional e o ponto é um vetor de características, ou seja, uma seleção de um valor em cada uma das dimensões do espaço latente.
\[[0.154,0.3,0.0854,0.98,1,0.321,0.684,...]\]Sendo assim,
O que acontece quando nós mudamos os valores dessas características e geramos imagens a cada novo valor?
Note que cada característica tem sua própria dimensão e ao pedir pra rede variar em umas dimensões, nós vemos todas características de uma face mudando.
Vamos diminuir nosso problema para uma face apenas. Veja essa criança, que não existe, abaixo e vamos fixar todas as características existentes a não ser as da boca do garoto. Para simplificar, assuma que a toda forma da boca é explicada apenas por uma dimensão de características. Percorrendo o espaço latente apenas nessa característica a rede consegue modificar apenas uma parte da imagem sem impactar o resto.
Então um espaço latente é uma representação intermediárias de informação quando processamos um conjunto de dados. Ele se refere a um espaço multidimensional abstrato contendo valores de variáveis latentes que, não mapeamos diretamente, mas codificam uma representação interna significativa do conjunto de dados.
Aqui a coisa fica um pouco filosófica.
Redes neurais artificiais foram modeladas para simular os processos cerebrais. Faz sentido inverter essa noção e perceber nosso cérebro como uma rede neural biologicamente construída. Nosso treinamento é feito com um grande conjunto de dados do mundo real. Nossos sentidos captam e nossa rede processa : grandezas físicas, iluminação, fala, leitura, etc…
Eu, em especial, sou amplamente curioso e passei grande parte da minha vida explorando, aprendendo sobre qualquer coisa que ativasse meu interesse. Fazendo um paralelo com deep learning : com o treinamento constante nossa mente identifica idéias compostas de um conjunto de características, nesse amplo espaço latente. Algumas idéias aparentemente dissasociadas podem estar próximas umas das outras, precisamos apenas percorrer esses espaço e explorá-lo.
O espaço latente é uma representaçao do conhecimento inexplorado.
Faz um tempo que tenho tido vontade de escrever mais do que artigos científicos. Esse blog é um experimento nessa direção. Em conectar idéias e explorar o espaço de possibilidades. Aqui vou principalmente falar sobre o que estou aprendendo e compartilhar as reflexões que considero úteis para mim. Agora valorizo o que Isaac Newthon disse: “Se eu vi mais longe, foi por estar sobre ombros de gigantes.”. Sinto que melhorar a comunicação de tudo que aprendi é uma forma de sedimentar o conhecimento e honrar a todos os gigantes que ajudaram a construí-lo.