参考资料:
有空可以翻译下这个的pdf
-
交叉验证
不要用public测试数据去调模型,这样在private测试数据真正测验的时候,结果才不会相差那么大。
如果怕validation set选出来可能也是怪怪的数据,那么做多次、
-
learning rate调整
由于一开始离终点比较远,后面比较近,所以lr最好是越来越小。
lr = 常数/((t+1)^1/2)
另外最好每个参数的lr也是不同的
Adagrad
变化部分是衡量反差
最好的step要考虑多二次微分
SGD有什么好的?快
-
Feature Scaling
下图为什么是横向的?因为x2的幅度比较大,所以w2对结果的影响也比较大,也可以从w2的导数是x2,x2比较大这点可以看出来。这样我们更新loss的时候当然是更新w2比较好,可以调整得快一点,所以下图可以看到w2只要一点点变化就跟w1一样了。
下图可以看到有scaling之后直接走的线路是直线
怎么做
-
gradient descent成立的条件
lr足够小
-
linear regression为什么用cross entropy,而不是square?
square在远处梯度有点平
最后一行,目标是1,计算出来是0,但是梯度为0!!
-
Discriminative vs Generative
通常discriminative的模型会更好,为什么?
下图分类就出现错误,为什么会出错,因为朴素贝叶斯认为特征之间是独立的,两个红还是有可能出现在Class2中,加上Class2出现的频率高,所以就搞错了。Generative会自己假设,脑补。
-
多个分类
-
Logistic Regression限制
线性,可以进行Feature transformation
Feature transformation可以画成下图,其实就是Deep learning啦!!!
-
深度学习带来新的问题
深度学习虽然解决了特征抽取的作用,但是又带来新的问题,设计模型,训练起这个模型。李宏毅说,图像和语音对人类来说比较难,无法意识到怎么做,但是NLP没有那么显著,人类可能更擅长。
为什么一个hidden layer的神经网络可以模拟任何函数,为什么还要deep?
-
为什么用minibatch而不是SGD?
minibatch是每次n个采样
SGD是每次一个采样
epoch是将所有的采样都计算一遍
因为minibatch可以用矩阵进行优化计算