Deep imbalanced attribute classification using visual attention aggregation 2018

动机:现有的方法要么采用计算机视觉方法,但没有考虑到类的不平衡,要么探索机器学习解决方案,而忽略了图像中存在的空间和语义关系。

contributions:
1.the design and analysis of an end-to-end neural-network architecture that can be easily reproduced, is easy to trainand achieves state-of-the-art visual attribute classification results.
2.Multi-scale Visual Attention and Aggregation
3.establish a loss function for imbalanced attributes as well as hard or uncertain samples.

方法主要包括:
1.一个用于特征提取的预训练网络
2.针对属性特定信息的多尺度弱监督视觉注意机制
3.处理类不平衡、重点关注硬样本和不确定样本的损失函数。

结构:
在这里插入图片描述
在这里插入图片描述
这个分支的作用是根据标签的置信度为attention maps分配权重,避免在标签不存在时从attention masks中学习。

propose the weighted focal loss function to measure the difference between predicted attribute vectors and ground truth:
在这里插入图片描述
同时用:
在这里插入图片描述在这里插入图片描述
来计算对每个样本s进行属性级监督的注意图的损失
因此,用于训练该网络端到端的总损失是主网络和两个注意力模块的损失之和,即
在这里插入图片描述
实验:
在WIDER-Attribute和PETA数据集上,结果如下图
在这里插入图片描述
在这里插入图片描述
在两个数据集上做了两个消融实验,其中WIDER结果如下:
在这里插入图片描述

处理不平衡的皮肤病图像分类问题通常涉及数据增强技术和生成对抗网络(GANs)。下面是简单的代码流程概述: 1. **数据预处理**: - 导入必要的库(如TensorFlow、Keras等)。 - 加载不平衡的数据集,将其划分为训练集和验证集。 ```python from sklearn.model_selection import train_test_split dataset = load_skin_dataset() X_train, X_val, y_train, y_val = train_test_split(X, y, stratify=y, test_size=0.2) ``` 2. **数据增强**: - 使用ImageDataGenerator对训练集进行随机翻转、缩放、旋转等操作,增加样本多样性。 ```python from tensorflow.keras.preprocessing.image import ImageDataGenerator datagen = ImageDataGenerator( rotation_range=20, width_shift_range=0.15, height_shift_range=0.15, shear_range=0.1, zoom_range=0.15, horizontal_flip=True, fill_mode='nearest' ) datagen.fit(X_train) ``` 3. **GAN辅助数据生成**: - 创建一个GAN模型(例如CGAN或 Wasserstein GAN),训练它生成看起来像真实皮肤图像的新样本来平衡类别。 ```python generator = Generator(latent_dim) # 自定义生成器结构 discriminator = Discriminator() # 自定义判别器结构 gan = GAN(generator, discriminator) gan.train(dataset, epochs, batch_size) generated_images = gan.generate_samples() ``` 4. **合并原数据与生成的数据**: - 将原训练集和生成的合成数据混合,形成新的均衡训练集。 ```python augmented_data = np.concatenate((X_train, generated_images)) balanced_y = np.concatenate((y_train, y_train)) # 需要确保标签也均匀分布 ``` 5. **模型训练**: - 使用均衡后的数据训练分类器,如卷积神经网络(CNN)。 ```python model = create_cnn_model(input_shape) model.compile(optimizer, loss, metrics=['accuracy']) model.fit(augmented_data, balanced_y, validation_data=(X_val, y_val), epochs=num_epochs) ``` 6. **评估与优化**: - 测试模型在验证集和测试集上的性能,并根据需要调整参数和策略。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值