1,训练集中包含样本不均衡的多类数据,对于数量多的一类进行下采样,会导致数据分布和测试的真实情况不同,会对结果有什么影响?
答:首先,在构建训练集和测试集的时候,训练集和测试集的数据分布都应该与样本的真实分布情况一致,才能有效训练并对模型进行测试。所以,当数据不均衡的时候,更要注意数据采样的重要性。针对医疗数据,假设分为正常和异常两类,一般来说,正常样本占绝大多数,所以需要对正常样本进行”下采样“,所以必定存在一些正常细胞的特征未被学习到,并且很可能会被误分,但是这对异常细胞的召回率是没有影响的,另外,正常细胞更多的是重复性的样本,样本间存在极大的相似性,而不同于异常细胞的多样的,所以进行合适的采样之后,影响的微弱的。
2,数据训练、验证和测试集的归一化方式?
归一化方式可以:均值方差归一化,最大最小归一化等。后者的处理可能出现的问题是:训练集里的最大值/最小值并不一定是这个字段的实际边界,会使得数据变化很大。所以均值方差归一化是更推荐的一般处理方式。下面对此展开:
均值方差归一化,处理后的数据将符合标准正太分布。使得数据的每一个维度具有零均值(三维图像则(a,b,c))和单位方差(也可以只是减去均值)。这是归一化中最常见的方法并被广泛地使用,之后在每一个维度上都减去该均值。下一步便是在数据的每一维度上除以该维度上数据的标准差。
另外,在处理自然图像时,我们获得的像素值在 [0,255] 区间中,常用的处理是将这些像素值除以 255,使它们缩放到 [0,1] 中,再取均值为0,方差为1,使得缩放到【-1,1】。
min-max 归一化,不会对数据分布产生影响。当数据的最大最小值不稳定,结果可能因此变得不稳定。min-max 归一化在图像处理上非常常用,因为大部分的像素值范围是 [0, 255]。
测试集的任何信息都不能出现在训练或验证集中,也就是不能将测试和训练、验证数据共同进行任何操作,测试数据是新出现的数据,具有不完全清楚的数据分布和数值。但当实际训练和测试数据很类似的时候,同等看待也是可以考虑的情况。
在数据集的划分足够合理,训练集可以代表测试集的真实分布的前提下,一般对训练集求其均值和方差,并将该方差应用到测试集合,对训练和验证集单独求其对应的均值和方差。
另:训练集做数据扩充是为了增加样本,并提升样本的丰富性,但测试和验证集不能做数据扩充,否则就没有意义了。
3,超参数?以及调节方式?(基于keras)
超参数:学习速率,迭代次数(epoch),batch size,每层神经元的个数,层数,模型;
对于keras 而言,
学习速率:
lrate = ReduceLROnPlateau(monitor='val_loss', factor=0.1, patience=5, verbose=0, mode='auto', epsilon=0.0001, cooldown=0, min_lr=0.00001)
以验证集的损失函数为目标,忍耐损失上升打到五次,就以0.1*学习率下降学习率,最低学习率为min_lr。
迭代次数:
early_stopping =EarlyStopping(monitor='val_loss', patience=5,mode='min')
4,训练集,验证集和测试集
三者应与原始数据具有相同的分布,才能体现出对应的价值。
训练集:在对应的数据集之下,训练出合适的模型参数,用来学习的样本集,用于分类器参数的拟合;
验证集:调整模型(分类器)的超参数,评估模型的能力,如在神经网络中选择隐藏层神经元的数量;
测试集:评估最终完整的模型的性能(进行无偏估计(模型评估应该在未用于模型构建或微调的样本上进行,这样才能对模型效率进行无偏评估));(保持测试集完全独立的重要性。以任何形式使用测试集中的信息都是一种「窥探」(peeking),因此建议封存测试集,直到模型调整全部完成再作为最后的评估。如果你对评估结果不满意,想返回寻找更好的模型假设,那么你必须获取并封存一组全新的测试集。)
参考文章“http://cj.sina.com.cn/article/detail/3996876140/330058?column=tech&ch=5&sudaref=www.baidu.com&display=0&retcode=0”
3,opencv和cv2的像素是BGR顺序,然而matplotlib所遵循的是RGB顺序
4,避免过拟合的方法有很多:early stopping、数据集扩增(Data augmentation)、正则化(Regularization)包括L1、L2(L2 regularization也叫weight decay),dropout。
5,在数字病理切片中,在 40 倍的放大下一个像素大概长 0.243 微米。微转移一般定义为一组癌细胞最大直径超过 200 微米,也就是大概 823 像素。
6,多尺度的基本框架
a对输入直接多尺度,b类似于编码解码的结构,c是空洞卷积,d是空间金字塔池化,
6,图像分割策略
u-net中取蓝色区域输入,目的是求黄色区域的分割,因此可以输入大的重叠的区域,使得不重叠之处为分割的输出,使得不重叠之处遍历整张图。
2,若预测2048的图,可以crop为512的图做训练,最后预测用2048的输入,可以使得细节更清晰;
3,可以在预测的时候将预测的图多次旋转,并输出结果之后再旋转回原来的角度,最后将多个角度的预测图合并(TTA)
7,test time augmentation(TTA)
测试时的数据增强,可以将单个测试样本进行数据扩增,将扩增之后的result求平均得到该样本最终的result.
8,多分类交叉熵
可参考“https://www.cnblogs.com/jclian91/p/9376117.html”
9,BN层的训练和预测所采用的原理公式:
网络训练过程中参数不断改变导致后续每一层输入的分布也发生变化,而学习的过程又要使每一层适应输入的分布,因此我们不得不降低学习率、小心地初始化。
BN论文作者将分布发生变化称之为 internal covariate shift,为了减弱这种现象,每层加入BN层,也即归一化层,(正如输入数据归一化能加快收敛速度,更容易达到最优解)
实际操作用,运用参数共享原理,某一层卷积层有6个特征图,每个特征图的大小是100*100,,则有6个参数γ、β。(而不是6*100*100).
持续更新ing