本人希望从0开始,自己的Kaggle竞赛
- 12月拿到自己的第一块Kaggle奖牌
- 短期内读完Abhishek Thakur的Approaching (Almost) Any Machine Learning Problem并且发博客记录https://github.com/abhishekkrthakur/approachingalmost
- 12月至少发21篇博客
- 每天保持八小时的学习时间
Supervised vs unsupervised learning
本章节中,作者使用t-SEN对MNIST数据集进行可视化
t-SNE
1.算法期望解决的问题
将高维数据映射到低维,并且保持数据的相对关系不变。
2.算法的内核
算法是基于数据直接的相对距离的,希望高维和低维的相对距离尽可能的相等。
1、拥挤问题
对于某一个高位的点O,与其对应的点的集合Q,要被映射为点O‘,和集合Q',显然|Q'| << |Q|,这导致了对于同一个高 高纬点可能映射为相同的低纬点,造成拥挤问题。https://zhuanlan.zhihu.com/p/27488363
为了解决以上问题,我们需要在不同的维度上计算距离,并且计算两个距离的损失函数,进行梯度下降。
由于不同维度下的损失函数的量纲不同,所以我们使用概率分布:
高维:
低维:
我们使用 相对熵(Mutual entropy,也叫做KL散度,Kullback-Leibler divergences,KLD)来作为损失函数:
我们把高纬数据放在左侧和上方,这样会更好的保存高维数据的局部特征
二维平面上相对远的点,不一定就不相似,但二维平面上相对进的点,一定相似。
局部特征体现在如上。
例如我使用书中的例子对于MNIST进行T-SNE分类结果如下
对于图片来说,它更关注高纬度的局部信息,这导致距离近的更可能是同一类点,但是距离远的点不一定是不同类的点
例如绿色的点
Cross-validation
Over-Fitting
过拟合以下简称OF,对于OF的出现时间有一个有趣的讨论,例如下图的决策树的deep和acc之间的关系
大家认为OF是发生在14还是更早期?
文中又给出了这张图,但是实际情况中,Val的loss最小时,可能Train的loss和val的loss的差值已经非常大了。
所以实际应用中过拟合模型还是占据大部分。
stratified k-fold cross-validation 分层交叉验证
这是这节的关键内容,主要针对的是数据量较小的情况,当数据量较大时,可以进行随意分组,每个分组的数据分布将会非常接近。
而对于数据分布不均匀的分类问题时,要使用stratified k-fold cross-validation进行验证。
而对于回归问题,我们可以使用Num of bins来计算分层的指标。
被称为Sturge’s rule