𝗗𝗲𝘃𝗲𝗹𝗼𝗽𝗲𝗿 𝗧𝗮𝗸𝗲 𝗢𝗻: 𝗛𝗶𝗴𝗵-𝗥𝗲𝘀𝗼𝗹𝘂𝘁𝗶𝗼𝗻 𝗡𝗲𝘂𝗿𝗮𝗹 𝗖𝗲𝗹𝗹𝘂𝗹𝗮𝗿 𝗔𝘂𝘁𝗼𝗺𝗮𝘁𝗮

Nghệ thuật và toán học giao thoa trong học máy.

Cellular automata sử dụng một lưới các ô. Mỗi ô thay đổi trạng thái dựa trên các quy tắc cố định. Conway's Game of Life là một ví dụ nổi tiếng. Bạn tuân theo các quy tắc đơn giản để tạo ra các mô hình phức tạp.

Neural Cellular Automata (NCA) thay đổi điều này. Thay vì các quy tắc cố định, một mạng thần kinh sẽ học các quy tắc từ dữ liệu. Mạng này dự đoán trạng thái tiếp theo của một ô bằng cách quan sát các ô lân cận của nó. Điều này tạo ra những hình ảnh phức tạp và siêu thực.

Việc tạo ra các hình ảnh độ phân giải cao là một thách thức. Khi lưới lớn dần, các phép toán trở nên quá phức tạp đối với mạng thần kinh.

Tôi sử dụng một kỹ thuật gọi là pixel shuffle để khắc phục điều này.

Bạn có thể triển khai điều này bằng PyTorch. Dưới đây là một cách đơn giản để cấu trúc một mô hình 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

NCA cho phép bạn thu hẹp khoảng cách giữa mã nguồn và nghệ thuật kỹ thuật số. Đây là một lĩnh vực đang phát triển mạnh mẽ cho việc trực quan hóa khoa học và thiết kế sáng tạo.

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

Optional learning community: https://t.me/GyaanSetuAi