Entwickler-Perspektive: Hochauflösende neuronale zelluläre Automaten

Kunst und Mathematik treffen in Machine Learning aufeinander.

Zelluläre Automaten nutzen ein Gitter aus Zellen. Jede Zelle ändert ihren Zustand basierend auf festen Regeln. Conways „Game of Life“ ist ein berühmtes Beispiel. Man folgt einfachen Regeln, um komplexe Muster zu erzeugen.

Neuronale zelluläre Automaten (NCA) ändern dies. Anstatt fester Regeln lernt ein neuronales Netz die Regeln aus Daten. Das Netzwerk sagt den nächsten Zustand einer Zelle voraus, indem es ihre Nachbarn betrachtet. Dies erzeugt komplexe und surreale Visualisierungen.

Das Erzeugen hochauflösender Bilder ist schwierig. Wenn das Gitter wächst, wird die Mathematik für das Netzwerk zu komplex.

Ich verwende eine Technik namens Pixel Shuffle, um dies zu beheben.

Dies lässt sich mit PyTorch implementieren. Hier ist eine einfache Möglichkeit, ein NCA-Modell zu strukturieren:

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

NCA ermöglicht es Ihnen, die Lücke zwischen Code und digitaler Kunst zu schließen. Es ist ein aktives Feld für wissenschaftliche Visualisierung und kreatives Design.

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

Optionale Lern-Community: https://t.me/GyaanSetuAi