基于图像patch的CNN分类算法
该算法是描述一类图像分类问题,它有如下特点:
如图,主动脉弓和心脏,绿色部分相同,而黄色部分不同。传统的CNN算法,区分效果不佳。在Multi-Instance Multi-Stage Deep Learning for Medical Image Recognition这篇文章中,作者针对这种场景提出了解决方法。
训练:将整张片子切分成patches,每个patch的label与整片的label相同,将这些patches放入CNN分类器训练,在反向传播时,通过修改损失函数:每个片子中对自己类别相应最高的patch才会贡献。如下L1是标准CNN的损失函数,L2是PCNN的损失函数:
这样训练出的网络,就会对有区分度的patch敏感,而对无区分度的无感。
在该人造数据集上,PCNN取得了完美的效果
在CT数据集上,也取得了很大提高。
我体会作者设计这个算法的流程是:
一、通用算法在特定数据集上效果不完美,作者思考其中的痛点,并尝试提出新算法来针对性解决。
二、设计一个人造数据集,验证新算法能完美解决这个痛点。
三、最终虽然对实际数据集有较大提升,但依然不能像人造数据集一样达到完美,是因为实际数据集还有别的痛点。