• optimization


    最近几天看了一些优化理论方面的知识。但感觉把握还是不够深刻,看都看懂了,但是不清楚说的是什么,用在哪类问题上。

    参考了cmu机器学习课程的recitation of optimization

    optimization在机器学习中是用来干嘛的?

    • 找到最优化的系数?
    • 其他应用?

    1、convex set 和convex function的定义。

    什么是convex set?

    什么是convex function?

    两者的联系是什么?convex function的below-set是一个convex set

    2、unconstrained convex optimization

    unconstrained: 无约束就是什么约束都没有,dx可以是任意方向的

    基本算法:

    1) gradient descent

    分成batch 和stochastic 两种

    一般来说,learning_rate是利用一维搜索找到的(line search). line search中一个重要问题是step的大小确定(beta)。有什么方法可确定这个beta大小?

    batch就是每次用所有的点来调整系数。stochastic就是每次只用随机的一部分点。

    gradient descent优点是计算量小,存储变量少,初始变量要求不高。但是靠近极值点时收敛速度不够快。一般是作为优化问题的前期迭代。

    类比:可以不用迭代,直接用数学方法求出theta系数。参考http://blog.sina.com.cn/s/blog_698213630101576y.html

     

    (XT*X)^-1 *XT就是所谓的伪逆矩阵。如果X是可逆矩阵,则(XT*X)^-1 *XT=X^-1.

    但是直接计算的话,计算量太大。这也是为什么用迭代法的原因吧。

    2)newton's method

    不太理解牛顿法的过程。但是牛顿法是基于taylor展开的。

    在taylor expansion不给力的地方,牛顿法的收敛速度和gradient descent一样慢
    在极值点附近(满足上图的边界条件),呈现二次收敛的速度
     
    牛顿法的问题是计算量特别大。
    牛顿法的适用情况:
  • 相关阅读:
    数据结构HashMap(Android SparseArray 和ArrayMap)
    一篇文章教你读懂UI绘制流程
    死磕安卓前序:MVP架构探究之旅—基础篇
    我就死磕安卓了,怎么了?
    戏说移动江湖开发历程
    姿势摆好,一招学会android的布局优化!
    学习React Native必看的几个开源项目
    开发了几个小程序后,说说我对小程序的看法
    jQuery基础一
    JavaScript基础二
  • 原文地址:https://www.cnblogs.com/chenhuanfa/p/3050913.html
Copyright © 2020-2023  润新知