The best input is OUTPUT.

2017-09-01
机器学习算法实践-SVM中的SMO算法

机器学习算法实践-SVM中的SMO算法

前言

前两篇关于SVM的文章分别总结了SVM基本原理和核函数以及软间隔原理,本文我们就针对前面推导出的SVM对偶问题的一种高效的优化方法-序列最小优化算法(Sequential Minimal Optimization, SMO)的原理进行总结并进行相应的Python实现。

坐标上升算法(Coordiante Ascent)

在SMO算法之前,还是需要总结下坐标上升算法,因为SMO算法的思想与坐标上升算法的思想类似。

坐标上升算法每次通过更新多元函数中的一维,经过多次迭代直到收敛来达到优化函数的目的。简单的讲就是不断地选中一个变量做一维最优化直到函数达到局部最优点。

Read More

2017-08-30
机器学习算法实践-SVM核函数和软间隔

机器学习算法实践-SVM核函数和软间隔

前言

上文中简单总结了对于线性可分数据的SVM的算法原理,本文对于非线性可分以及有噪声存在的时候我们需要对基本SVM算法的改进进行下总结其中包括:

  1. 核函数在SVM算法中的使用
  2. 引入松弛变量和惩罚函数的软间隔分类器

SVM对偶问题

这里稍微回顾下SVM最终的对偶优化问题,因为后面的改进都是在对偶问题的形式上衍生的。

Read More

2017-08-15
机器学习算法实践-支持向量机(SVM)算法原理

机器学习算法实践-支持向量机(SVM)算法原理

前言

关于SVM的算法实践我打算分成多个部分进行总结。本文为第一部分主要介绍SVM的原理以及相关算法的简单推导,其中包括SVM原理,最初表达式,标准形式以及对偶形式(二次规划问题),形式变化过程中涉及到求解有约束优化问题的拉格朗日乘子法以及KKT条件等。

什么是支持向量机

对于线性可分两类数据,支持向量机就是条直线(对于高维数据点就是一个超平面), 两类数据点中的的分割线有无数条,SVM就是这无数条中最完美的一条,怎么样才算最完美呢?就是这条线距离两类数据点越远,则当有新的数据点的时候我们使用这条线将其分类的结果也就越可信。例如下图中的三条直线都可以将A中的数据分类,那条可以有最优的分类能力呢?

  1. 我们需要线找到数据点中距离分割超平面距离最近的点(找最小)
  2. 然后尽量使得距离超平面最近的点的距离的绝对值尽量的(求最大)
Read More

2017-08-12
150多个最好的与机器学习,自然语言处理和Python相关的教程

150多个最好的与机器学习,自然语言处理和Python相关的教程

本文翻译自Over 150 of the Best Machine Learning, NLP, and Python Tutorials I’ve Found, 首发于伯乐在线,未经许可禁止转载。

机器学习已经发展了很久, 它的历史可以追溯到1959年,但是如今此领域的发展速度可以说是空前的。在最近的几篇文章中, 我讨论了人工智能领域为何会在现在以及不久的将来持续蓬勃发展。如今很多对机器学习感兴趣的同学都普遍表示入门很难。

Read More

2017-08-11
递归式求解-代入法

递归式求解-代入法

放假没事继续看看算导,关于求解递归式一般使用三种方法:

  1. 代入法
  2. 递归树方法
  3. 主方法

本文主要总结一下在使用代入法求解递归式的方法以及需要注意的点和技巧。

Read More

2017-08-02
使用MPI并行化遗传算法框架GAFT

使用MPI并行化遗传算法框架GAFT

前言

本文中作者使用MPI的Python接口mpi4py来将自己的遗传算法框架GAFT进行多进程并行加速。并对加速效果进行了简单测试。

项目链接:

正文

我们在用遗传算法优化目标函数的时候,函数通常都是高维函数,其导数一般比较难求取。这样我们的适应度函数计算通常都是比较费时的计算。

例如在使用遗传算法寻找最优结构时候通常需要调用量化软件进行第一性原理计算结构的total energy,这是非常费时的过程; 例如我们优化力场参数的时候,以力场计算出的能量同基准能量之前的误差作为适应度,也需要调用相应的力场程序获取总能量来求取,同样这个过程也是相对耗时的。

Read More