时间这东西真的是过的好快啊,不知不觉又过去了半个月了,现在已经是五月中旬了。坚持是最好的证明。
那么我们回归,如何优化目标函数?其实AI问题有个等式,AI问题 = 模型+优化
整个流程是这样子的
拿到需要解决的问题,然后去选择合适的模型,比如逻辑回归还是深度学习等,然后进行模型的实例化,就是得到目标函数,然后根据目标函数进行选择优化算法(L-BFGS,SGD,Adam等)
对于任何一个优化问题(目标函数),都可以写成如下形式
Minimize f0(x)
s.t. fi(x)<=0 i = {1,..........,k}
gj(x)=0 j = {1,..........,k}
为什么我们如此关系优化呢?因为优化是机器学习的核心
优化是无处不在的
- 股票组合优化
目标就是想优化到=》最大化收益+最小化风险
优化的类别
我们知道,不是每个AI问题模型和模型实例化都是一样的,所以要针对不一样的目标函数去对应的优化方案,选择不同的优化算法。
- Smooth(平滑,可导)vs NON-Smooth(非平滑,不可导,类似lasso(L1正则))
- convex(凸函数,可求全局最优解)vs Non-convex(非凸函数,局部最优解)
- distance vs continous
- constrand vs non-constrand
下面来讲解一下凸函数
凸函数(convex)
判断目标函数是否是凸函数,首先要看定义域和值域
Convex Set (凸集)
假设对于任意, ∈ 并且任意参数, ∈ 0,1 , 我
们有 + 1 − ∈ , 则集合为凸集,其中C代表区域
也可以这样子理解,就是给定的函数内的任意两点连线,所有的点都在该区域内,则该集合称为凸集。
关于凸集的例子:
例子:
• 所有的^n ,
• 所有正数集合+^n,
• 范数|| ||≤ 1,
• Affine set: 线性⽅方程组是的所有解 = ,
• Halfspace: 不不等式的所有解: ≤
两个凸集的交集也是凸集(intersection of convex
set is convex)
凸函数(convex)的定义
函数的定义域dom为凸集,对于定义域⾥里里任意,,函数满足
凸函数定义 () + (1 − ) ≤ () + (1 − ) ()
常见的凸函数
• 线性函数为凸/凹函数
• exp,−log,log 是凸函数
• 范数为凸函数
•X^T.X/t为凸函数(x>0)
First Order Convexity Condition 一阶导数
假设: ^n , → 是可导的(differentiable),则 为凸函数,的当
且仅当:f(y)≥f(x)+▽(x)^T.(y-x)
对于任意, ∈
second Order Convexity Condition 二阶可导
设: , → 是两次可导的(twice differentiable),则 为凸
函数,当且仅当:▽^2f(x)≥0
对于任意, ∈