Learning Map总结:
- Supervised Learning:
需要大量的包含input/output的training data,output=label,需要大量的人工标注的label
Regression —> Linear Model —> Non-linear model: Classification Task - Deep learning SVM, decision tree, KNN —> Structured Learning: beyond classification, 输出有结构的output,比如machine translation - Semi-supervised Learning
有少量的labelled data,大量Unlabeled data - Transfer learning
有少量的labelled data,大量的不知道Unlabeled/labelled状态的data - Unsupervised learning
不需要labelled data - Reinforcement learning
比如:阿尔法go
Supervised learning会告诉机器正确答案,有手把手教的老师
Reinforcement learning没有正确答案,有打分机制,告诉机器做的好还是不好,也就是learning from critics。
回归模型总结:
有以下几个步骤:
- 模型训练,在training和testing数据上都要训练。回归模型y=b + w*Xcp有两个参数b和w,b不影响回归,主要是w。
- 模型评价,通常是loss function。也就是预测值和真实值的差值。
- 模型择优,除了穷举可用梯度下降法,梯度下降曲线的决定因子包括斜率和学习率。
- 模型优化,包括引入复杂模型,合并简单模型,引入更多特征,如果引起过拟合(也就是训练集表现优测试集表现差),可以试着在步骤2也就是在loss function中加入正则化,也就是使w值越小,function越好,正则化参数lamda越大function越平滑,但不是越大越好。
模型误差总结:
由偏差和方差引起
1.偏差大-欠拟合
重新设计redesign模型:将更多的特征加进去。 或者考虑更多次幂、更复杂的模型。
2.方差大-过拟合
2.1 更多的数据:收集更多的数据。data augmentation
2.2 正则化:平滑化曲线,但是可能伤害bias。
梯度下降总结:
梯度下降就是找一组参数使损失函数最小,梯度下降有几种调整学习率的方法:自适应、Adagrad,还有随机梯度下降法SGD。
深度学习总结:
深度学习有3步,神经网络,模型评估,梯度下降选择最优函数
神经网络就是一个由单个回归的神经元构成的回归网络,每一个神经元有自己的回归和权重和bias,神经元之间的连接叫激活函数。模型评估就是训练数据使loss最小,方法就是梯度下降,梯度下降主要是算∂L/∂W,计算方法就是反向传播。
Optimization总结:
Optimization失败主要是遇到critical point,有两种情况:local minima和saddle point,如果遇到saddle point是可以通过Hessian判断调参方法。
Optimization就是在Gradient Desent的基础上考虑过去所有gradients的大小(RMSProp)和方向(Momentum),同时考虑learning rate随着时间的变化(Scheduling)。Batch和Normalization有助于提升表现。最常用Optimization算法是Adam: RMSPro+ Momentum。
Classification总结:
一般用softmax作为激活函数,loss of classification的计算一般用cross-entropy。特征标准化可以让loss function收敛更快一点。Batch normalization应用于深度学习的层间标准化
网格技巧总结:
Optimization就是在Gradient Desent的基础上考虑过去所有gradients的大小(RMSProp)和方向(Momentum),同时考虑learning rate随着时间的变化(Scheduling)。Batch和Normalization有助于提升表现。
CNN总结:
CNN输入三维数据比如图片,1. 有些pattern不需要看整张图;2. 有些pattern出现在图片不同位置;3. Subsampling对判断影像没有影响。CNN构建Convolution和Max pooling处理第1、2和第3个特性,这两层处理可以循环多次,实现更少的参数,然后Flatten后再去跑fully connected的神经网络。Convolution有一组filter,它们的作用是寻找pattern,每个filter是一个channel(个人理解是一个feature)。CNN学的事情是找image使filter的activation最大。CNN可以下棋,Alpha Go没有用max pooling。CNN处理语音只在frequency上移动,不在time上移动;CNN处理文本,先embedding处理输入语句,就是每个word用一个vector来表示,这些vector排一起就像一个image。filter只在time上移动,不在embedding dimension上移动。