Visão do Desenvolvedor: Autômatos Celulares Neurais de Alta Resolução

A arte e a matemática se encontram no aprendizado de máquina.

Autômatos celulares utilizam uma grade de células. Cada célula muda de estado com base em regras fixas. O Jogo da Vida de Conway é um exemplo famoso. Você segue regras simples para criar padrões complexos.

Os Autômatos Celulares Neurais (NCA) mudam isso. Em vez de regras fixas, uma rede neural aprende as regras a partir de dados. A rede prevê o próximo estado de uma célula observando seus vizinhos. Isso produz visuais complexos e surreais.

Gerar imagens de alta resolução é difícil. À medida que a grade cresce, a matemática torna-se complexa demais para a rede.

Eu utilizo uma técnica chamada pixel shuffle para resolver isso.

Você pode implementar isso usando PyTorch. Aqui está uma maneira simples de estruturar um modelo NCA:

import torch
import torch.nn as nn
import torch.optim as optim

class NCA(nn.Module):
    def __init__(self):
        super(NCA, self).__init__()
        self.conv = nn.Conv2d(3, 64, kernel_size=3, padding=1)

    def forward(self, x):
        x = torch.relu(self.conv(x))
        x = torch.max_pool2d(x, 2)
        x = torch.relu(self.conv(x))
        x = torch.max_pool2d(x, 2)
        return x

O NCA permite que você preencha a lacuna entre o código e a arte digital. É um campo ativo para visualização científica e design criativo.

Fonte: https://dev.to/kelvin_kariuki_20f4bec616/developer-take-on-a-high-resolution-neural-cellular-automata-111g

Comunidade de aprendizado opcional: https://t.me/GyaanSetuAi