Rumah  >  Artikel  >  Peranti teknologi  >  Masalah ketidakseimbangan kelas dalam klasifikasi imej

Masalah ketidakseimbangan kelas dalam klasifikasi imej

WBOY
WBOYasal
2023-10-08 08:41:271486semak imbas

Masalah ketidakseimbangan kelas dalam klasifikasi imej

Masalah ketidakseimbangan kategori dalam pengelasan imej, contoh kod khusus diperlukan

Abstrak: Dalam tugas pengelasan imej, kategori dalam set data mungkin tidak seimbang, iaitu bilangan sampel dalam beberapa kategori adalah lebih banyak daripada yang lain. kategori . Ketidakseimbangan kelas ini boleh memberi kesan negatif kepada latihan dan prestasi model. Artikel ini akan menerangkan sebab dan kesan masalah ketidakseimbangan kelas dan menyediakan beberapa contoh kod konkrit untuk menyelesaikan masalah tersebut.

  1. Pengenalan
    Klasifikasi imej ialah tugas penting dalam bidang penglihatan komputer dan boleh digunakan pada berbilang senario aplikasi seperti pengecaman muka, pengesanan sasaran dan carian imej. Dalam tugas pengelasan imej, masalah biasa ialah ketidakseimbangan kelas dalam set data, di mana sesetengah kelas mempunyai sampel yang jauh lebih banyak daripada kelas lain. Sebagai contoh, dalam set data yang mengandungi 100 kategori, 10 kategori mempunyai saiz sampel 1,000, manakala 90 kategori lain mempunyai saiz sampel hanya 10. Ketidakseimbangan kelas ini boleh memberi kesan negatif kepada latihan dan prestasi model.
  2. Punca dan Kesan Masalah Ketidakseimbangan Kelas
    Masalah Ketidakseimbangan Kategori boleh disebabkan oleh pelbagai sebab. Pertama, sampel beberapa kategori mungkin lebih mudah untuk dikumpulkan, menghasilkan saiz sampel yang agak besar untuk mereka. Contohnya, dalam set data kategori haiwan, kucing dan anjing mungkin mempunyai lebih banyak sampel kerana mereka adalah haiwan peliharaan rumah dan lebih cenderung untuk diambil gambar oleh orang ramai. Di samping itu, beberapa kategori sampel mungkin lebih sukar diperoleh Contohnya, dalam tugas pengesanan anomali, bilangan sampel tidak normal mungkin jauh lebih kecil daripada bilangan sampel biasa. Tambahan pula, pengedaran set data mungkin tidak sekata, menyebabkan bilangan sampel yang lebih kecil untuk beberapa kategori.

Masalah ketidakseimbangan kelas mempunyai beberapa kesan negatif ke atas latihan dan prestasi model. Pertama, disebabkan bilangan sampel yang kecil dalam beberapa kategori, model mungkin salah menilai kategori ini. Sebagai contoh, dalam masalah dua klasifikasi, bilangan sampel dalam dua kategori masing-masing adalah 10 dan 1000 Jika model tidak melakukan sebarang pembelajaran dan secara langsung meramalkan semua sampel sebagai kategori dengan bilangan sampel yang lebih besar, ketepatannya akan menjadi. sangat tinggi, tetapi pada hakikatnya Sampel tidak dikelaskan dengan berkesan. Kedua, disebabkan pengedaran sampel yang tidak seimbang, model mungkin berat sebelah ke arah meramalkan kategori dengan bilangan sampel yang lebih besar, mengakibatkan prestasi pengelasan yang lemah untuk kategori lain. Akhir sekali, pengedaran kategori yang tidak seimbang boleh menyebabkan sampel latihan model yang tidak mencukupi untuk kategori minoriti, menjadikan model yang dipelajari mempunyai keupayaan generalisasi yang lemah untuk kategori minoriti.

  1. Kaedah untuk menyelesaikan masalah ketidakseimbangan kelas
    Untuk menangani masalah ketidakseimbangan kelas, beberapa kaedah boleh diambil untuk meningkatkan prestasi model. Kaedah biasa termasuk pensampelan kurang, pensampelan berlebihan dan pelarasan berat.

Undersampling merujuk kepada pemadaman secara rawak beberapa sampel daripada kategori dengan bilangan sampel yang lebih besar, supaya bilangan sampel dalam setiap kategori lebih dekat. Kaedah ini mudah dan mudah, tetapi mungkin mengakibatkan kehilangan maklumat kerana pemadaman sampel boleh menyebabkan beberapa ciri penting hilang.

Terlebih sampel merujuk kepada menyalin beberapa sampel daripada kategori dengan bilangan sampel yang lebih kecil untuk menjadikan bilangan sampel dalam setiap kategori lebih seimbang. Kaedah ini boleh meningkatkan bilangan sampel, tetapi mungkin membawa kepada masalah overfitting, kerana penyalinan sampel boleh menyebabkan model terlalu muat pada set latihan dan mempunyai keupayaan generalisasi yang lemah.

Pelarasan berat merujuk kepada pemberian berat yang berbeza kepada sampel kategori yang berbeza dalam fungsi kehilangan, supaya model memberi perhatian lebih kepada kategori dengan bilangan sampel yang lebih kecil. Kaedah ini boleh menyelesaikan masalah ketidakseimbangan kelas dengan berkesan tanpa memperkenalkan sampel tambahan. Pendekatan khusus adalah untuk melaraskan berat setiap kategori dalam fungsi kehilangan dengan menentukan vektor berat supaya kategori dengan bilangan sampel yang lebih kecil mempunyai pemberat yang lebih besar.

Berikut ialah contoh kod menggunakan rangka kerja PyTorch yang menunjukkan cara menggunakan kaedah pelarasan berat untuk menyelesaikan masalah ketidakseimbangan kelas:

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

# 定义分类网络
class Net(nn.Module):
    def __init__(self):
        super(Net, self).__init__()
        self.fc1 = nn.Linear(784, 100)
        self.fc2 = nn.Linear(100, 10)
    
    def forward(self, x):
        x = x.view(-1, 784)
        x = self.fc1(x)
        x = self.fc2(x)
        return x

# 定义损失函数和优化器
criterion = nn.CrossEntropyLoss(weight=torch.tensor([0.1, 0.9]))  # 根据样本数量设置权重
optimizer = optim.SGD(net.parameters(), lr=0.001, momentum=0.9)

# 训练模型
for epoch in range(10):
    running_loss = 0.0
    for i, data in enumerate(trainloader, 0):
        inputs, labels = data
        
        optimizer.zero_grad()
        
        outputs = net(inputs)
        
        loss = criterion(outputs, labels)
        loss.backward()
        optimizer.step()
        
        running_loss += loss.item()
        if i % 2000 == 1999:
            print('[%d, %5d] loss: %.3f' %
                  (epoch + 1, i + 1, running_loss / 2000))
            running_loss = 0.0

print('Finished Training')

Dalam kod di atas, pemberat dua kelas ditentukan oleh torch.tensor([0.1, 0.9]), kelas dengan yang lebih kecil bilangan sampel Berat ialah 0.1, dan berat kategori dengan bilangan sampel yang lebih besar ialah 0.9. Ini membolehkan model memberi lebih perhatian kepada kategori dengan bilangan sampel yang lebih kecil.

  1. Kesimpulan
    Ketidakseimbangan kategori ialah masalah biasa dalam tugas pengelasan imej dan boleh memberi kesan negatif terhadap latihan dan prestasi model. Untuk menyelesaikan masalah ini, kaedah seperti undersampling, oversampling, dan pelarasan berat boleh digunakan. Antaranya, kaedah pelarasan berat adalah kaedah mudah dan berkesan yang dapat menyelesaikan masalah ketidakseimbangan kelas tanpa memperkenalkan sampel tambahan. Artikel ini menunjukkan cara menggunakan kaedah pelarasan berat untuk menyelesaikan masalah ketidakseimbangan kelas melalui contoh kod tertentu. . , N. V., Bowyer, K. W., Hall, L. O., & Kegelmeyer, W. P. (2002: teknik pensampelan berlebihan minoriti sintetik, 16, 321-357.
  2. ).

Atas ialah kandungan terperinci Masalah ketidakseimbangan kelas dalam klasifikasi imej. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn