Mësimi i makinerisë është një nëngrup i inteligjencës artificiale që përfshin përdorimin e algoritmeve dhe modeleve statistikore për të mundësuar një sistem të mësojë nga të dhënat dhe të përmirësojë performancën e tij me kalimin e kohës. PyTorch është një kornizë e mësimit të makinerive me burim të hapur, e zhvilluar nga Facebook që lejon zhvilluesit të ndërtojnë dhe trajnojnë rrjete nervore.

Në këtë blog, ne do të mbulojmë bazat e mësimit të makinerive dhe do të ofrojmë kodin e mostrës për PyTorch.

Fillimi me Mësimin e Makinerisë

Mësimi i makinerisë përfshin tre komponentë kryesorë:

  1. Të dhënat — Algoritmet e mësimit të makinerive kërkojnë të dhëna për të mësuar. Të dhënat mund të jenë të strukturuara ose të pastrukturuara dhe mund të jenë në formate të ndryshme si tekst, imazhe ose vlera numerike.
  2. Model - Një model i mësimit të makinës është një paraqitje matematikore e të dhënave. Mund të jetë një model i thjeshtë regresioni linear ose një rrjet nervor i thellë kompleks.
  3. Trajnimi - Procesi i trajnimit të një modeli të mësimit të makinerive përfshin ushqyerjen e tij me të dhëna dhe rregullimin e parametrave të tij derisa të mund të parashikojë me saktësi rezultatet.

Hapat për të ndërtuar një model të Mësimit të Makinerisë:

  1. Përcaktoni problemin — Përcaktoni se çfarë dëshironi të arrini me mësimin e makinerive.
  2. Përgatitni të dhënat - Pastroni, përpunoni paraprakisht dhe formatoni të dhënat për trajnim.
  3. Zgjidhni algoritmin — Zgjidhni një algoritëm që i përshtatet problemit tuaj.
  4. Trajnoni modelin - Futni të dhënat në algoritëm dhe rregulloni parametrat e modelit për të minimizuar gabimin.
  5. Vlerësimi i modelit — Testoni modelin në një grup të ri të dhënash për të përcaktuar saktësinë e tij.
  6. Vendosni modelin — Përdorni modelin e trajnuar për të bërë parashikime mbi të dhënat e reja.

Shembull i kodit në PyTorch

Le të shohim se si mund të zbatojmë hapat e mësipërm duke përdorur PyTorch.

Hapi 1: Përcaktoni problemin

Në këtë shembull, ne do të ndërtojmë një rrjet të thjeshtë nervor për të klasifikuar imazhet e shifrave të shkruara me dorë.

Hapi 2: Përgatitni të dhënat

Ne do të përdorim grupin e të dhënave MNIST, i cili përmban 60,000 imazhe trajnimi dhe 10,000 imazhe testimi të shifrave të shkruara me dorë. Çdo imazh është 28x28 piksele.

import torch
import torchvision
import torchvision.transforms as transforms

transform = transforms.Compose(
    [transforms.ToTensor(),
     transforms.Normalize((0.5,), (0.5,))])

trainset = torchvision.datasets.MNIST(root='./data', train=True,
                                        download=True, transform=transform)
trainloader = torch.utils.data.DataLoader(trainset, batch_size=64,
                                          shuffle=True, num_workers=2)

testset = torchvision.datasets.MNIST(root='./data', train=False,
                                       download=True, transform=transform)
testloader = torch.utils.data.DataLoader(testset, batch_size=64,
                                         shuffle=False, num_workers=2)

Hapi 3: Zgjidhni algoritmin

Ne do të përdorim një rrjet të thjeshtë nervor me një shtresë të fshehur.

import torch.nn as nn
import torch.nn.functional as F

class Net(nn.Module):
    def __init__(self):
        super(Net, self).__init__()
        self.fc1 = nn.Linear(28*28, 128)
        self.fc2 = nn.Linear(128, 10)

    def forward(self, x):
        x = x.view(-1, 28*28)
        x = F.relu(self.fc1(x))
        x = self.fc2(x)
        return x

net = Net()

Hapi 4: Trajnoni modelin

import torch.optim as optim

criterion = nn.CrossEntropyLoss()
optimizer = optim.SGD(net.parameters(), lr=0.001, momentum=0.9)

for epoch in range(10):  # loop over the dataset multiple times

    running_loss = 0.0
    for i, data in enumerate(trainloader, 0):
        # get the inputs; data is a list of [inputs, labels]

Përmbledhje

Ai ofron një përmbledhje të bazave të mësimit të makinerive, duke përfshirë të dhënat, modelin dhe trajnimin, dhe përshkruan hapat për të ndërtuar një model të mësimit të makinës. Blogu më pas vazhdon të sigurojë kodin e mostrës në PyTorch për ndërtimin e një rrjeti të thjeshtë nervor për të klasifikuar imazhet e shifrave të shkruara me dorë duke përdorur grupin e të dhënave MNIST. Kodi mbulon përgatitjen e të dhënave, krijimin e modelit dhe trajnimin.