zoukankan      html  css  js  c++  java
  • 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一样慢
    在极值点附近(满足上图的边界条件),呈现二次收敛的速度
     
    牛顿法的问题是计算量特别大。
    牛顿法的适用情况:
  • 相关阅读:
    Sublime2 Text编辑器使用技巧
    PHP实现一个简单url路由功能
    jQuery extend函数详解
    Memcached常用命令及使用说明
    根据一张表去更新另一张表
    npm ERR! Error: socket hang up
    Oracle中group by 1,order by 1的理解
    Oracle中的next_day(date,char)函数的理解
    WebService入门
    OCupload、POI、PinYin4j的简单入门
  • 原文地址:https://www.cnblogs.com/chenhuanfa/p/3050913.html
Copyright © 2011-2022 走看看