计算学习理论
开了机器学习课,觉得上课有些吃不消,其中有一小节讲了计算学习理论。没懂,之后用了两天时间看视频和机器学习西瓜书来学习一下。
深度的公式推导,还不会,但是对于推导出来的公式的含义还是能理解出代表的意义。
1 PAC学习
PAC学习,其实主要的就是PAC可学习和不可知PAC可学习,这两者都是证明的是机器学习的可行性,用我自己的话来说就是证明了机器学习的算法说得出的结果,不是莫名其妙“猜”出来的,是能通过证明证明出来该算法是对于这个问题切实可行的。PAC可学习,不可知PAC可学习都是证明一样的事情,只不过后者是用于更困难的学习问题,前者是要求算法的误差达标( ≤ ϵ \leq\epsilon ≤ϵ)的概率要满足置信度要求,后者是条件放宽了一步,即算法泛化误差和经验误差的差值达标( ≤ ϵ \leq\epsilon ≤ϵ)的概率要满足置信度要求。
2 VC维
PAC学习证明的是某个算法是否能够运用于某个问题上,VC维反映的是算法的学习能力,VC维越大就说明算法的学习能力越强。可以用实数域中的区间和二维实平面上的线性划分理解。
其中比较重要的有三个概念,增长函数,对分和打散。
VC维是指能被打散的最大示例集的大小,且任何VC维有限的假设空间都是不可知PAC可学习的。
3 Rademacher复杂度
Rademacher复杂度解决的问题就是VC维没有考虑数据自身,所以得到的泛化误差界比较“松”,Rademacher复杂度考虑到了数据的分布。基于Rademacher复杂度的泛化误差界依赖于具体学习问题上的数据分布。
4 稳定性
VC维和Rademacher复杂度推导的泛化误差界是对所有学习算法都适用的,稳定性是基于算法来进行分析的。通过稳定性也同样可以推导出可学习性。