上海涛德顾问学院

人工智能机器学习培训技术原创:简述:爬山算法 与 模拟退火算法 ... ... ... ...

摘要: 我们先从两个简单的优化算法,爬山算法,和模拟退火。在后续课程中我们将学习更复杂一点的梯度下降和其他基于2次求导的高级优化算法,已经优化算法本身的优化。 在机器学习中的优化往往是指,求成本最低,也就是模型 ...

作者:涛德原创

我们先从两个简单的优化算法,爬山算法,和模拟退火。在后续课程中我们将学习更复杂一点的梯度下降和其他基于2次求导的高级优化算法,已经优化算法本身的优化。

在机器学习中的优化往往是指,求成本最低,也就是模型预测的Y与真实的Y的误差最小情况下的参数W(也有些文章在不同的描述场景可能叫X,或者theta)。

 

 HILL-CLIMBING 爬山算法

 

从当前的节点开始,和周围的邻居节点的值进行比较。 如果当前节点是最大的,那么返回当前节点,作为最大值 (既山峰最高点);反之就用最高的邻居节点来,替换当前节点,从而实现向山峰的高处攀爬的目的。如此循环直到达到最高点。爬山法又称贪婪局部搜索,只是选择相邻状态中最好的一个。

下面例子中传入c(1,2,3,4,1,8,9) ,从第一个位置开始爬山,返回的是向量的第4个元素。

 

> hill <- function(x, i) {

+     stopifnot(is.numeric(x), 1 <= i, i <= length(x))

+     i1 <- i

+     i2 <- i

+     while (i1 < length(x))

+         if (x[i1 + 1] > x[i1]) i1 <- i1 + 1 else break

+     while (i2 > 1)

+         if (x[i2 - 1] > x[i2]) i2 <- i2 - 1 else break

+     # return

+     if (x[i1] >= x[i2]) i1 else i2

+ }

> hill(c(1,2,3,4,1,8,9) , 1)

[1] 4

 

 

Simulated Annealing 模拟退火算法

 

爬山算法主要缺点是会陷入局部最优解,模拟退火算法通过引入随机因素以一定的概率来接受一个比当前解要差的解,因此有可能会跳出这个局部的最优解,达到全局的最优解。

计算概率的公式为:
       if ( exp( dE/T ) > random( 0 , 1 ) )

           W(i+1) = W(i) ;  #接受从W(i)W(i+1)的更新

  }

dE表示:参数W更新前后对应的目标函数之差。T为用户设置的超参数

 


联系

上海涛德顾问学院 ( 沪ICP备14006824号 )  

GMT+8, 2018-12-11 11:38 , Processed in 0.132596 second(s), 14 queries , Gzip On.

Top Data World

回顶部