一定要记得summary 和review
现实生活中的问题 》》》 数学优化问题 》》》通过合适的工具解决
目录
算法复杂度
逻辑回归
正则问题
如何寻找一个很好的超参数?
//衡量算法的优劣
类型一:迭代算法的复杂度
for i :1 to length of A
if A[i] is equal to x
return True
return False
也取决于硬件问题 时间复杂度为O[n]
用O表示复杂度 //增长趋势的上界
类型2:递归类算法复杂度 //可以自己调用自己
如何计算这个时间复杂度? 拆成两个子问题再合并
先二分 2T(n) 再排序 O(n)//至少需要n次比较才能排序
Master Theorem
case1 主要比较logb^a 和 c 看取舍前半部分还是后半部分
重要的是f(n)= SITA(n^c)
T(N)= SITA(n^logb^a) 比较这两项 高阶吸收低阶
case2 同上 比较后做取舍 但这里的T(n)不同f(n)也不同
case3
斐波那契数列 时间复杂度 2^n
类型3:机器学习优化算法的复杂度
需要迭代多少步收敛
实际上解决分类问题
学习输入到输出的映射
从线性回归 到sigmoid函数 输出新条件概率 (0,1)
回归问题 预测一个连续的变量
逻辑回归问题 虽然有regression 但是实际解决分类问题 把条件概率的值进行了不同的解释
1. 凸函数:在函数的定义域里 凸函数的最优化问题已经被解决
2.最优化算法: 使用什么样的算法求最优值
梯度下降实例
最后收敛于wt 最接近于最低值 其中η为学习率lr
当n很大时 每次采样一批数据/minibatch 计算出梯度估计值 也叫sgd//随机梯度下降
实际应用中 定义一个机器学习算法优化目标时 会额外添加一个正则项 衡量模型复杂程度
模型越复杂 这一项就越大 我们添加这一项的目的 尽量惩罚这一模型 使他的规模不会太大
在数值分析领域 存在融合现象 用多项数函数拟合一部分观测数据 假设观测数据来自红色的线
如果多项数的阶数比较小的时候 大概率拟合的不太好 随着阶数增长 对于观察测数据的拟合程度越来越好 但是 会有代价 会在某些阶段为了拟合一个很好的结果会出现一个震荡现象
若非必要 勿增实体
加入正则项对w,b的更新毫无影响
L0范数解释:可以得到一个更稀疏的模型 尽量让模型中的参数接近于0但算起来很麻烦
L1范数:xi绝对值的和 使用L1范数之后的后果 会使模型参数变稀疏
L2范数:平方和再开根号 但L2范数不会稀疏
解释图如下:如果只考虑二维的情况 画出目标函数等值线 图中彩色线
把L1范数等值线画出来是一个方框的形式 不断往外阔 L2为一个圆
L1会落在坐标轴上 w1会等于0 但L2不会落在坐标轴上 w12都不等于0
只要不是圆 交点大概率会落在坐标轴上 可以实现稀疏
dropout就相当于添加了一个L1正则项
在优化的时候 正则项前面的λ//平衡系数 λ越大 正则项起的作用越大
λ为一个超参数 所谓超参数 是指在优化之前就要确定的参数 wb为模型参数
如模型层数 学习率等等 超参数取值直接决定优化模型行为 模型性能 所以就需要不断调参
两个等值线的交点意味着什么??
更详细的解释为
机器学习中的范数规则化之(一)L0、L1与L2范数
CRoss validation 交叉验证
如何很好利用训练数据? k-fold cross validation
绝对不能用测试数据集来引导模型的训练!!!
但在实际工程中 都存在很严重的过拟合情况 一旦试图过拟合所有情况 就不存在过拟合现象了
调参的方法论 grid search