特征工程算法
良好特征的特色:api
- 避免使用不多使用的离散特征值,良好的特征值应该出现5次以上
- 最好具备清晰明确的含义
- 不要将”神奇“的值域实际数据混为一谈,即不包含超出范围的异常值
- 考虑上游不稳定,即特征的定义不随时间变化
数据缩放:缓存
- [min,max]
- (value-mean)/stddev
处理离群值:服务器
数据清理:网络
奥卡姆剃刀:如无必要,勿增实体,切勿浪费较多东西去作,用较少的东西,一样能够作好的事情机器学习
机器学习领域:能够经过下降复杂模型的复杂度来防止过拟合,称之为正则化ide
结构风险最小化函数
执行 L2 正则化对模型具备如下影响学习
形成预测误差的可能缘由包括:
- 特征集不完整
- 数据集混乱
- 模型实现流水线中有错误?
- 训练样本有误差
- 正则化过强
L1 和 L2 正则化。
L2 和 L1 采用不一样的方式下降权重:
所以,L2 和 L1 具备不一样的导数:
- L2 的导数为 2 * 权重。
- L1 的导数为 k(一个常数,其值与权重无关)。
神经网络是更复杂版本的特征组合。实质上,神经网络会学习适合您的相应特征组合。
经常用于解决非线性分类问题,经过线性隐藏层加上非线性的激活函数,多层非线性模型的叠加建模
反向传播算法是最多见的一种神经网络训练算法。借助这种算法,梯度降低法在多层神经网络中将成为可行方法。
失败案例
不少常见状况都会致使反向传播算法出错。
梯度消失
较低层(更接近输入)的梯度可能会变得很是小。在深度网络中,计算这些梯度时,可能涉及许多小项的乘积。
当较低层的梯度逐渐消失到 0 时,这些层的训练速度会很是缓慢,甚至再也不训练。
ReLU 激活函数有助于防止梯度消失。
梯度爆炸
若是网络中的权重过大,则较低层的梯度会涉及许多大项的乘积。在这种状况下,梯度就会爆炸:梯度过大致使难以收敛。
批标准化能够下降学习速率,于是有助于防止梯度爆炸。
ReLU 单元消失
一旦 ReLU 单元的加权和低于 0,ReLU 单元就可能会停滞。它会输出对网络输出没有任何贡献的 0 激活,而梯度在反向传播算法期间将没法再从中流过。因为梯度的来源被切断,ReLU 的输入可能没法做出足够的改变来使加权和恢复到 0 以上。
下降学习速率有助于防止 ReLU 单元消失。
丢弃正则化
这是称为丢弃的另外一种形式的正则化,可用于神经网络。其工做原理是,在梯度降低法的每一步中随机丢弃一些网络单元。丢弃得越多,正则化效果就越强:
- 0.0 = 无丢弃正则化。
- 1.0 = 丢弃全部内容。模型学不到任何规律。
- 0.0 和 1.0 之间的值更有用。
多类别神经网络
Softmax 将这一想法延伸到多类别领域。也就是说,在多类别问题中,Softmax 会为每一个类别分配一个用小数表示的几率。这些用小数表示的几率相加之和必须是 1.0。与其余方式相比,这种附加限制有助于让训练过程更快速地收敛。
Softmax 选项
请查看如下 Softmax 变体:
类别数量较少时,完整 Softmax 代价很小,但随着类别数量的增长,它的代价会变得极其高昂。候选采样能够提升处理具备大量类别的问题的效率。
一个标签与多个标签
Softmax 假设每一个样本只是一个类别的成员。可是,一些样本能够同时是多个类别的成员。对于此类示例:
- 您不能使用 Softmax。
- 您必须依赖多个逻辑回归。
例如,假设您的样本是只包含一项内容(一块水果)的图片。Softmax 能够肯定该内容是梨、橙子、苹果等的几率。若是您的样本是包含各类各样内容(几碗不一样种类的水果)的图片,您必须改用多个逻辑回归。
嵌套是一种相对低维的空间,您能够将高维矢量映射到这种低维空间里。经过使用嵌套,可让在大型输入(好比表明字词的稀疏矢量)上进行机器学习变得更加容易。在理想状况下,嵌套能够将语义上类似的不一样输入映射到嵌套空间里的邻近处,以此来捕获输入的语义。一个模型学习到的嵌套,也能够被其余模型重用。
嵌套的应用:协同过滤,分类
Embedding在数学上表示一个maping: , 也就是一个function。
其中该函数知足两个性质:
- injective (单射的):就是咱们所说的单射函数,每一个Y只有惟一的X对应;
- structure-preserving(结构保存):好比在X所属的空间上 ,那么映射后在Y所属空间上同理 。
那么对于word embedding, 就是找到一个映射(函数)将单词(word)映射到另一个空间(其中这个映射具备injective和structure-preserving的特色), 生成在一个新的空间上的表达,该表达就是word representation.
PCA主成分分析是一种标准的降维技术
从广义上讲,训练模型的方式有两种:
- 静态模型采用离线训练方式。也就是说,咱们只训练模型一次,而后使用训练后的模型一段时间。
- 动态模型采用在线训练方式。也就是说,数据会不断进入系统,咱们经过不断地更新系统将这些数据整合到模型中。
您能够选择如下任一推理策略:
- 离线推理,指的是使用 MapReduce 或相似方法批量进行全部可能的预测。而后,将预测记录到 SSTable 或 Bigtable 中,并将它们提供给一个缓存/查询表。
- 在线推理,指的是使用服务器根据须要进行预测。
静态推理与动态推理 (Static vs. Dynamic Inference)
您能够选择如下任一推理策略:
- 离线推理,指的是使用 MapReduce 或相似方法批量进行全部可能的预测。而后,将预测记录到 SSTable 或 Bigtable 中,并将它们提供给一个缓存/查询表。
- 在线推理,指的是使用服务器根据须要进行预测。
视频讲座总结
如下是离线推理的优缺点:
- 优势:不须要过多担忧推理成本。
- 优势:可使用批量方法或某些巨型 MapReduce 方法。
- 优势:能够在推送以前对预测执行后期验证。
- 缺点:只能对咱们知晓的数据进行预测,不适用于存在长尾的状况。
- 缺点:更新可能延迟数小时或数天。
如下是在线推理的优缺点:
- 优势:可在新项目加入时对其进行预测,很是适合存在长尾的状况。
- 缺点:计算量很是大,对延迟较为敏感,可能会限制模型的复杂度。
- 缺点:监控需求更多。
下面简要说明了有效的机器学习准则:
- 确保第一个模型简单易用。
- 着重确保数据管道的正确性。
- 使用简单且可观察的指标进行训练和评估。
- 拥有并监控您的输入特征。
- 将您的模型配置视为代码:进行审核并记录在案。
- 记下全部实验的结果,尤为是“失败”的结果。
https://developers.google.cn/machine-learning/rules-of-ml/