Visie van de ontwikkelaar: Hoogresolutie neurale cellulaire automaten
Kunst en wiskunde komen samen in machine learning.
Cellulaire automaten maken gebruik van een raster van cellen. Elke cel verandert van staat op basis van vaste regels. Conway's Game of Life is een bekend voorbeeld. Je volgt eenvoudige regels om complexe patronen te creëren.
Neural Cellular Automata (NCA) verandert dit. In plaats van vaste regels leert een neuraal netwerk de regels van data. Het netwerk voorspelt de volgende staat van een cel door naar de buren te kijken. Dit produceert complexe en surrealistische beelden.
Het genereren van afbeeldingen met een hoge resolutie is lastig. Naarmate het raster groter wordt, wordt de wiskunde te complex voor het netwerk.
Ik gebruik een techniek genaamd pixel shuffle om dit op te lossen.
- Ik verlaag de resolutie van het raster (downsampling).
- Ik train het netwerk op dit kleinere raster.
- Ik verhoog de resolutie van de output (upsampling) om een afbeelding met een hoge resolutie te krijgen.
Je kunt dit implementeren met PyTorch. Hier is een eenvoudige manier om een NCA-model te structureren:
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 stelt je in staat om de kloof tussen code en digitale kunst te overbruggen. Het is een actief vakgebied voor wetenschappelijke visualisatie en creatief ontwerp.
Optionele leercommunity: https://t.me/GyaanSetuAi