市三院皮肤科的张大夫有个用了二十年的老习惯:每颗痣都要举起皮肤镜,贴着皮肤看个仔细。这皮肤镜像一台会变魔术的放大镜,能让皮肤表层变得半透明,让恶性的黑色素瘤和普通色素痣当场现出原形。可全国皮肤科医生只有几万人,有皮肤问题的人却数以亿计,张大夫一天坐诊,满打满算也只看得完几十位病人。 于是他决定收一个“数字徒弟”——一个AI模型。这位徒弟不知疲倦,一天能读几万张皮肤镜照片。张大夫把ISIC挑战赛(国际皮肤成像协作组的“华山论剑”)攒下的上万张带诊断标签的照片一张张喂给它:先教它数据增强,也就是换着角度、光线反复端详同一颗痣;再教它应对类别不平衡,毕竟门诊里十个病人九个是普通痣,恶性只占零星几个;然后请来几位“会诊医生”一起投票(集成学习);最后还要通过敏感度和特异度的“出师考”,才能背着轻便的工具箱下乡义诊(部署优化)。 这篇内容,就是张大夫的带徒日记。读完你会明白,AI辅助诊断皮肤病变,没有魔法,也没有捷径,只有一套扎实的流水线功夫。
掌握皮肤镜图像分类的全链路,你就摸清了医学影像AI从论文走向诊室、再走向基层的完整路径——这是医疗AI落地中最成熟、需求也最旺盛的方向之一。
目录
可视化演示
本节配有交互动效(进入视口后自动加载,约 3KB)。
皮肤病变分类 CNN提取皮肤镜图像特征 多类病变概率输出 p_i = softmax(z_i) 黑色素瘤早期检出率95%+
皮肤镜与ISIC:老医生的放大镜
张大夫收徒第一天,没急着让小王看病,而是先递给他一把皮肤镜:“看痣,不能光用眼睛。这玩意儿一贴上去,表皮变得半透明,色素怎么分布、血管怎么走,看得一清二楚。”小王跟着师傅在门诊看了一周,发现皮肤镜下的世界远比肉眼丰富:有的痣颜色均匀、边界圆润,有的却坑坑洼洼,边缘像墨水泼洒在宣纸上。
这些照片就是皮肤镜图像。皮肤科医生凭它诊断,AI 也想学这门手艺。国际皮肤成像协作组(ISIC)办了 2018、2019 两届挑战赛,把全球上千家医院匿名贡献的照片整理成 HAM10000 数据集——一万多张图、7 大类病变,从最常见的色素痣(NV,6705 张)到最危险的黑色素瘤(MEL,584 张),堪称皮肤科的“十万个为什么”。
这 7 类分别是:黑色素瘤、色素痣、基底细胞癌、光化性角化病、良性角化病、皮肤纤维瘤、血管病变。训练时,把一张皮肤镜图像喂进网络,网络为 7 个类别各打一个“信心分”,再用 softmax 把分数变成“加起来等于 1”的概率,概率最高的类别就是最终答案。这就是分类任务最底层的数学骨架。
张大夫对小王说:“能一眼认出 7 种病变,你才算迈进了皮肤科的门槛。”对 AI 来说,把 softmax 的 7 分类输出学稳了,就是拿到了皮肤科的进门证——后面所有花哨功夫,都是在这张通行证上继续盖章。
- 网络打分皮肤镜图像 $x$ 经过神经网络的特征提取,得到 7 个类别的原始分值 $z_c$,相当于张大夫心里给每种病打的印象分
- 指数放大对每个分数取自然指数 $e^{z_c}$,让原本最高的分更突出,最低的分趋近于 0,拉开差距
- 归一化成概率每个类的指数值除以 7 个类的指数总和,保证所有概率加起来恰好为 1
数据预处理增强:换着角度反复看
小王看了一周后问师傅:这些痣我都记住了,可您为什么总让我换着角度、换着光线看同一颗痣?张大夫笑道:“病人不会把痣端端正正摆给你看。光线忽明忽暗,镜头忽远忽近,涂的耦合剂有多有少,照片都会变样。你要练就一副'无论怎么拍都是同一颗痣'的火眼金睛。”
让 AI 也这样练,就是数据增强。把训练图像随机水平翻转、小幅旋转、缩放、调亮调暗、改变对比度,相当于让数字徒弟在“千姿百态”中反复揣摩每一颗痣。训练前还有一个例行动作——标准化:把像素值缩放到统一范围,让网络一开局就站在同一起跑线上,数值上不至于忽大忽小。
但增强不是越猛越好。皮肤镜照片绝不会倒过来拍,因此一般不做竖直翻转;旋转角度也限制在 ±20° 左右。每次训练迭代时,模型都会“现场”随机生成一个新的变体,相当于花一份标注的钱,看到了上百种拍摄条件下的同一颗痣。
张大夫常念叨:没有哪种手艺是看一遍就会的。数据增强就是 AI 的“反复练习”,练的时候见过的姿势越多,见了真病人越不慌张。反之,如果只让模型看“标准证件照”,它一到真实世界就会露怯。
- 随机选招式每个训练批次按概率从增强池里随机选一种变换方式 $\theta$
- 施加变换把原图 $x$ 变成新样本 $x'$,像素位置或颜色随之改变
- 标签不变变换只改变“长相”,不改变“身份”——痣的类别标签 $y$ 原样保留
类别不平衡:门诊里的九十九与一
一个月后,小王开始整理病人登记本,发现一个奇怪现象:一百个病人里,九十九个是普通痣,只有一个可能不对劲。他偷偷打了个小算盘:“那我干脆把所有图都判成'痣',正确率岂不是高达 99%?”
这正是类别不平衡埋下的陷阱。HAM10000 数据集里,色素痣 NV 有 6705 张,黑色素瘤 MEL 只有 584 张,悬殊超过 11 倍。如果不做任何干预,模型会被“懒惰”带偏——它发现只要无脑预测多数类,损失就能压得很低,于是变成了一个“躺平派”:准确率报表好看,但对恶性病变的识别能力几乎为零。
破局有三招:第一是类别加权损失,给稀有类别更高的“犯错误代价”,让模型不敢轻视它们;第二是重采样,上采样少见类或下采样多见类,人为调整训练分布;第三是 Focal Loss,专门整治“模型觉得样本太简单就不认真学”的毛病,让黑色素瘤这类难以辨认的样本被反复加练。
张大夫把登记本拍在桌上:“你把九十九个普通痣都看对,不算本事;我要的是那一个恶性的,一个都不能漏。”加权损失的本质,就是把张大夫这句叮嘱翻译成模型能听懂的数学语言。
- 数人头统计第 $c$ 类病变在训练集里的样本数量 $n_c$,这是长尾分布的“尾巴长度”
- 算权重总样本数 $N$ 除以“类别数 $K$ 乘该类样本数 $n_c$”——样本越少的类,权重 $w_c$ 越大
- 加权交叉熵把权重乘进每个样本的损失里,稀有类出错被放大,模型被迫“偏心”照顾它们
神经网络架构:站在巨人的肩膀上
小王虽然聪明,但如果从零开始学“什么是痣”,得在医学院多待三年。张大夫却说,你不必从零起步——你在学校已经学过皮肤解剖、病理基础,现在只需要把这些本领“迁移”到皮肤科来。
这正是迁移学习的思路:用 ImageNet 上亿张自然图片预训练好的卷积网络(如 ResNet、EfficientNet)当“基础功”,只把最后一层分类头换成皮肤病变的 7 类输出,再用皮肤镜图像微调。皮肤镜数据少,但基础功扎实,模型学得又快又好。ISIC 2018 的优胜方案几乎清一色采用这条路线。
具体架构上,ResNet 的残差块让“深”变成了优势:它学习的是输入与输出的差值,而不是硬背整个映射,梯度还能抄近道回传,网络再深也不怕训练不动的“退化病”;EfficientNet 则在深度、宽度、分辨率三个维度上协同缩放,用更少的参数拿到更高的精度;注意力机制更像是给模型装了一双“会找重点的眼睛”,自动把目光聚焦在痣的不规则边缘和异常色素上。
张大夫说得直白:“好徒弟不是天生的,是站在好老师肩膀上练出来的。”ResNet 那条跳线,就是给 AI 搭的一部电梯,让它稳稳站在前人肩膀上,而不是在深层的楼梯间里累得爬不动。
- 学习残差网络只学习输入 $x$ 经过两层卷积后的变化量 $\mathcal{F}$,而不是完整的目标输出
- 捷径相加输入 $x$ 通过一条“跳线”直接加到 $\mathcal{F}$ 的结果上,得到输出 $y$
- 梯度保底求导后可以看到,无论 $\mathcal{F}$ 这条支路多深,梯度至少还有"1"这条保底通道,所以深层网络也能训练
集成学习:多学科会诊
张大夫有个雷打不动的习惯:遇到拿不准的痣,从不自己拍板,而是请隔壁皮肤病理科、影像科的两位老主任一起看,三个人意见一致才敢下结论。小王把这一招记在心里——模型也得搞“多学科会诊”。
这就是集成学习。ISIC 2019 挑战赛的顶尖方案几乎全是集成模型:有的模型擅长看颜色均匀度,有的擅长捕捉纹理走向,有的经过更强的数据增强,有的在重采样后的数据上训练——它们各自有各自的长处,也各有各的盲区。单个模型再优秀,也难免在某颗痣上“看走眼”;把多个模型凑在一起,错误互相抵消,决定就稳多了。
融合方式主要有三种:概率平均,把各模型的 7 类概率直接取平均;加权投票,给平时表现更好的模型更大的话语权;堆叠(Stacking),用一个元学习器学习如何综合各模型的意见。平均能压低单个模型的“极端自信”,大家意见越分散,最终结果越接近真实分布,这就是“三个臭皮匠”背后的数学。
张大夫说:“一个人再厉害也有盲区,三个人互相补台才稳当。”集成学习就是把诊室的会诊制度搬进模型工厂——代价是训练三倍的模型,换来的却是临床上弥足珍贵的“稳”。
- 各自诊断第 $m$ 个模型对输入 $x$ 输出自己的概率分布 $p_m(y=c\mid x)$,就像每位主任给出自己的判断
- 平均意见把 $M$ 个模型的概率逐类求平均,得到集体意见 $\hat{p}$
- 拍板在平均后的 7 个概率里挑最大的那一类作为最终诊断
临床评估:出师考的四格判卷
三个月后,张大夫决定给小王办一场出师考。判卷规则只有四格:诊断为恶性、且真是恶性,记“对”;恶性没揪出来,叫漏诊(FN);良性被吓成恶性,叫误报(FP);良性正确放行,记“对”。小王一看就明白,这张卷子不是按“总分”排名的。
这就是混淆矩阵的 TP、FN、FP、TN。临床上最怕漏诊——黑色素瘤一旦漏掉,可能从绿豆大小拖成致命病灶;也怕误报——白白让良性病人挨一刀活检,身心俱损。所以不能只看总体准确率,必须同时看敏感度(恶性病人里能揪出多少)和特异度(良性病人里能放行多少)。ROC 曲线与 AUC 则把这两个指标在不同判断阈值下的权衡画成一条曲线,曲线下面积越大,说明模型“既不漏、又不冤”的综合功力越强。
张大夫把判卷推到小王面前:“徒弟能不能出师,不看背了多少本书,只看漏诊了几个'恶性'。”医学影像 AI 的毕业证书,从来不是训练集准确率,而是一份敏感度与特异度双双及格的临床评估报告。
- 数四格把模型预测与真实标签交叉统计,得到 $TP$(恶性判恶性)、$FN$(恶性判良性)、$FP$(良性判恶性)、$TN$(良性判良性)
- 敏感度恶性样本中被正确抓出来的比例,分母是“所有真正的恶性”,漏诊一个都会拉低它
- 特异度良性样本中被正确放行的比例,分母是“所有真正的良性”,误报一个都会拉低它
部署与优化:把老经验装进行囊
小王终于出师了。可张大夫的最后一课还没上完:会诊室里的高手再厉害,也走不进千家万户。要让 AI 替自己下乡义诊,得把它装进一台不贵的平板甚至手机里,在信号不好的偏远地区,几秒钟就要出结果。
部署优化的三板斧由此登场。第一是量化:把模型里的 float32 权重换成 int8 整数,体积直接缩到四分之一,推理速度大幅提升,代价是精度轻微损失,需要用校准集微调补偿;第二是知识蒸馏:让大模型当“老师”,把自己的判断“浓缩”进一个轻量学生模型,学生模型虽然小,学到的却是老师的完整经验;第三是推理加速引擎(如 TensorRT、NCNN)做算子融合与内存优化,把每一毫秒都抠出来。上线也并非终点——要定期回收真实病例、用新数据微调重训,防止模型“越用越钝”。
量化的数学很直观:给每个浮点数找一个“缩放尺子”,把它挪到最近的整数刻度上。模型还是那个模型,只是从精装大部头换成了口袋本。
张大夫最后把用了二十年的随身工具箱递给小王:“手艺要能带下乡,才算真正救人。”AI 落地的最后一公里,就是把论文里的准确率,变成诊室里、手机上的每一秒等待——技术只有装进行囊,才谈得上普惠。
- 定尺子根据权重的取值范围确定缩放因子 $s$,把浮点范围映射到 0~255 的整数范围
- 取整搬家每个浮点权重 $r$ 除以 $s$ 后再四舍五入,得到整数 $q$,模型体积立刻缩小约四倍
- 近似还原推理时用 $s \cdot (q - z)$ 把整数近似还原成浮点,数值略有偏差但整体行为基本不变
AI 应用场景
远程皮肤病初筛平台
阶段:数据准备与模型部署阶段
解决的问题:偏远地区皮肤科医生稀缺,患者往往要辗转几百公里才能做一次皮肤镜检查;把基于 ISIC 数据训练的 7 类分类模型部署到云端后,乡医只需拍一张皮肤镜照片上传,几秒内就能拿到病变概率,疑似黑色素瘤的患者被自动标记并优先转诊,把有限的专家资源用在刀刃上。
具体案例:某省级互联网医院采用“先筛后诊”模式,上线 3 个月处理约 2 万张皮肤镜照片,将恶性病变的平均确诊等待时间从 21 天缩短到 5 天,同时用敏感度高阈值确保不漏掉任何一个疑似黑色素瘤。
门诊辅助医生决策
阶段:临床评估与上线运营阶段
解决的问题:肉眼判断痣的良恶性多少带点主观,年轻医生尤其缺乏经验;AI 在门诊平板上实时输出 7 类概率与建议,相当于张大夫这样的老专家随时陪诊,帮医生在繁忙门诊中多一双“不疲劳的眼睛”。
具体案例:一家三甲医院皮肤科在门诊平板运行量化后的集成模型,对 500 例门诊病人实时打分,医生参考 AI 提示后,黑色素瘤漏诊率下降约四成,同时通过特异度提示把不必要的活检减少了约两成。
基层医生继续教育
阶段:模型训练与特征可视化阶段
解决的问题:好医生难复制,但模型学到的“注意力”可以画出来。把卷积网络的注意力热力图叠加在皮肤镜照片上,相当于张大夫在图上圈出“为什么这颗痣不对劲”——这对基层医生是极好的教学素材。
具体案例:某医学教育平台利用模型的注意力热力图,制作了 500 个带讲解的皮肤镜教学案例,基层医生先看热力图猜诊断、再看标准答案,学习效率显著高于单纯看图背书。
Python 演示
import torchimport torch.nn as nnfrom torch.utils.data import Dataset, DataLoaderimport torchvision.transforms as T # 模拟 HAM10000:7 类病变的长尾样本数(单位:张)class_counts = torch.tensor([584, 6705, 327, 1153, 1099, 514, 142], dtype=torch.float)num_classes = len(class_counts) # 1. 类别加权损失:稀有恶性类别获得更高权重,防止模型只会发现普通痣weights = class_counts.sum() / (num_classes * class_counts)weights = weights / weights.mean()criterion = nn.CrossEntropyLoss(weight=weights) class SyntheticLesion(Dataset): def __init__(self, n=800): self.n = n self.labels = torch.multinomial(class_counts, n, replacement=True) def __len__(self): return self.n def __getitem__(self, i): return torch.randn(3, 16, 16), self.labels[i] # 2. 数据增强:张大夫让徒弟换角度、换光线反复看同一颗痣augment = T.Compose([ T.RandomHorizontalFlip(p=0.5), T.RandomRotation(15), T.ColorJitter(brightness=0.2, contrast=0.2),]) class TinyCNN(nn.Module): def __init__(self): super().__init__() self.features = nn.Sequential( nn.Conv2d(3, 16, 3, padding=1), nn.ReLU(), nn.MaxPool2d(2), nn.Conv2d(16, 32, 3, padding=1), nn.ReLU(), nn.AdaptiveAvgPool2d(1), ) self.head = nn.Linear(32, num_classes) def forward(self, x): return self.head(self.features(x).flatten(1)) def train_one(model, loader, epochs=2): opt = torch.optim.Adam(model.parameters(), lr=1e-3) for _ in range(epochs): for x, y in loader: loss = criterion(model(augment(x)), y) opt.zero_grad() loss.backward() opt.step() return loss.item() # 3. 集成学习:三位"会诊医生"各自训练,最后平均投票loader = DataLoader(SyntheticLesion(), batch_size=32, shuffle=True)models = [TinyCNN() for _ in range(3)]for m in models: m.eval() train_one(m, loader) def ensemble_predict(x): votes = torch.stack([torch.softmax(m(x), dim=1) for m in models]) return votes.mean(dim=0).argmax(dim=1).tolist() x, y = next(iter(loader))print("集成预测类别索引:", ensemble_predict(x))
weights = class_counts.sum() / (num_classes * class_counts)按样本数反比计算每类权重,稀有类(如黑色素瘤)拿到最大的“犯错代价”criterion = nn.CrossEntropyLoss(weight=weights)把权重注入交叉熵损失,让模型不敢忽略长尾里的稀有病变augment = T.Compose([定义数据增强流水线,每次迭代都对图像随机翻转、旋转、调色class TinyCNN(nn.Module):一个极简卷积网络,扮演“迁移学习的分类头”角色loss = criterion(model(augment(x)), y)核心训练一步:先增强、再前向、后算加权损失votes = torch.stack([torch.softmax(m(x), dim=1) for m in models])三位“会诊医生”各自输出概率return votes.mean(dim=0).argmax(dim=1).tolist()平均概率后取最大者,完成集成投票
常见误区
误区很多初学者认为数据增强就是把图片左右翻转、随机旋转几下,随便写几行代码就完事,反正都是碰运气,增强越狠模型越强。
正解张大夫提醒,增广要有“临床物理意义”。皮肤镜拍摄时角度、光线确实会变,所以翻转旋转合理;但把痣旋转 90 度、或者把颜色扭曲成绿色,就违背了皮肤镜成像规律,等于教徒弟认错特征。增强强度同样要在验证集上检验,不是越猛越好,过强的增广反而会让模型学不到真实病变的细节。
为何常见:传统图像分类的默认操作就是翻转旋转,大家照搬多年习惯,忽略了医学图像对“语义保真”的极高要求。
误区训练集和验证集准确率都高达 99%,于是觉得模型已经天下无敌,恨不得第二天就上线给病人用。
正解在类别高度不平衡的皮肤镜数据里,模型只要“全都报痣”,准确率就能轻松超过 90%,但对黑色素瘤的敏感度可能趋近于零。真正要看的指标是混淆矩阵、敏感度/特异度、各类别 AUC。张大夫那句“你考 99 分有什么用?你漏掉的那个病人,可能就没了”,值得每个 AI 从业者刻在工位上。
为何常见:日常分类竞赛的榜单总把准确率排第一,给人造成“准确率就是一切”的错觉,而临床场景的代价结构完全不同。
误区一看到恶性样本少,就想着“那我到处搜集恶性图片,直到两类一样多再说”,结果往往既搜集不到足够数据,又把项目拖黄了。
正解稀有病变的现实就是数据稀缺,硬凑数据既不现实也容易过拟合。正确做法是打组合拳:类别加权损失、重采样、Focal Loss、合成增强,同时用真实稀缺数据做验证。核心思路是让模型在训练时“更在意”稀有类,而不是天真地制造虚假平衡。
为何常见:直觉上“数据多一点总没错”,但忽略了医疗数据获取的成本、隐私壁垒,以及合成样本可能引入的分布偏差。
误区用同一份数据、同一个网络结构训练 5 个模型,然后平均概率,发现提升微乎其微,于是得出结论“集成学习没用”。
正解集成有效的前提是“多样性”,就像会诊要请不同科室的医生。同一份数据训出的同构模型,错误往往错在同一个地方,平均只是把同一份错误抄了三遍。真正有效的做法是制造差异:不同网络结构(ResNet/EfficientNet)、不同数据增强策略、不同随机种子、不同重采样方案,让模型的错误模式互相补充。
为何常见:单模型思维惯性让人把集成简单理解为“多跑几次实验”,忽略了集成背后是“风险对冲”的统计学思想。
面试题
Q1. ISIC 2018 皮肤病变挑战赛中,模型处理的主要图像模态是什么?
- A.胸部X光片
- B.皮肤镜图像← 正确答案
- C.眼底彩色照片
- D.病理组织切片
答案:B。ISIC 挑战赛的核心是皮肤镜图像分类,数据集由全球医院匿名贡献,目标是识别黑色素瘤等皮肤病变。X光片是放射科、眼底照片是眼科、病理切片是病理科,虽然同属医学影像,但都不是 ISIC 比赛的主战场。
Q2. HAM10000 数据集中,样本数量最多的病变类别是哪一个?
- A.黑色素瘤(MEL)
- B.色素痣(NV)← 正确答案
- C.脂溢性角化病(BKL)
- D.血管性病变(VASC)
答案:B。HAM10000 呈明显长尾分布,其中色素痣(NV)约 6705 张,而黑色素瘤(MEL)仅 584 张,相差超过 11 倍。这一不平衡正是正文中“类别不平衡处理”章节所针对的核心问题:模型稍不留意就会退化成“全报痣”的躺平派。
Q3. 当黑色素瘤样本仅占全部数据 5% 时,使用类别加权交叉熵损失的主要作用是什么?
- A.缩短模型训练总时长
- B.提升稀有类别的损失占比← 正确答案
- C.减少网络模型参数量
- D.提高输入图像分辨率
答案:B。加权交叉熵按样本数的反比给每类分配权重,稀有类样本少、权重高,分错一次要付出更大代价,模型因此不敢忽视恶性病变。它既不能缩短训练时间,也不改变参数量或图像分辨率,纯粹是“调整注意力”的手段。
Q4. 下列哪些属于皮肤镜图像分类中常用的数据增强手段?
- A.随机水平翻转← 正确答案
- B.随机旋转角度← 正确答案
- C.色彩抖动增强← 正确答案
- D.重复复制样本
答案:ABC。随机翻转、旋转、色彩抖动都是典型的在线数据增强,模拟真实拍摄中角度和光线的变化。重复复制样本属于过采样,是处理类别不平衡的手段而非数据增强。注意增强要符合皮肤镜物理规律,一般不做竖直翻转和过大旋转。
Q5. ResNet 残差块的核心设计思想是什么?
- A.网络越深性能一定越好
- B.学习输入与输出的残差映射← 正确答案
- C.用全连接层替代所有卷积层
- D.完全移除激活函数层
答案:B。残差块让网络只学习输出与输入的差值 F(x),再通过跳线把原始输入 x 直接相加,即 y = F(x) + x。这样梯度自带“保底通道”,深层网络也能稳定训练。网络越深不一定越好是原始问题,而全连接替代卷积、移除激活都违背了 CNN 的基本设计。
Q6. 关于模型集成的说法,正确的有哪些?
- A.对多个模型概率取平均← 正确答案
- B.对不同模型加权投票← 正确答案
- C.只取置信度最高模型的输出
- D.用元学习器做堆叠融合← 正确答案
答案:ABD。概率平均、加权投票、堆叠融合都是常见的集成策略,核心是融合多个模型的意见。只取单个高置信模型输出等于抛弃集成,且单模型的“高置信”往往并不可靠。集成真正的前提是模型间有足够的多样性,错误才能互相抵消。
Q7. 敏感度(Sensitivity)的正确计算公式是哪一个?
- A.TP / (TP + FP)
- B.TP / (TP + FN)← 正确答案
- C.TN / (TN + FP)
- D.TN / (TN + FN)
答案:B。敏感度 = 真恶性中抓出来的比例,分母是所有真正恶性(TP + FN),回答“漏诊多不多”。选项 A 是精确率,C 是特异度,D 的分母把良性与恶性混在一起,毫无临床意义。临床上对黑色素瘤最怕漏诊,因此敏感度是关键指标。
Q8. 在类别极度不平衡的皮肤镜数据集中,以下哪个指标最能反映模型对恶性病变的筛查能力?
- A.验证集总体分类准确率
- B.黑色素瘤类别的 AUC 值← 正确答案
- C.单张图片的推理耗时
- D.网络模型的参数量大小
答案:B。总体准确率会被多数类“带节奏”,恶性占比 5% 时全报良性也能拿 95% 准确率。AUC 独立于阈值,能综合评价模型把恶性排在良性前面的能力,是长尾分类的标准指标。推理耗时和参数量反映部署效率,与筛查能力无关。
Q9. 模型量化(如 INT8)后精度下降的常见根本原因是什么?
- A.模型的参数总量变得更大
- B.数值精度损失与分布偏移← 正确答案
- C.网络隐藏层数量被人为减少
- D.训练时的学习率设置过大
答案:B。量化的本质是把 float32 权重四舍五入到整数刻度,必然引入数值误差;同时各层激活值的动态范围不同,简单均匀量化会造成分布偏移。参数量不会变大、层数不会减少,学习率是训练阶段的问题。实践中需要用校准集统计分布、再微调补偿精度。
Q10. 关于皮肤镜分类模型的训练与落地,正确的说法有哪些?
- A.常基于 ImageNet 预训练做迁移学习← 正确答案
- B.无需关注类别不平衡问题
- C.集成学习能提升泛化能力← 正确答案
- D.部署需平衡敏感度与特异度← 正确答案
答案:ACD。ImageNet 预训练迁移是 ISIC 主流方案,能弥补皮肤镜数据量不足;集成通过多样性降低单一模型方差,提升泛化;临床部署必须在漏诊与误报之间权衡。类别不平衡是皮肤镜数据集的天然属性,恰恰需要精心处理,B 明显错误。