首页 > 编程知识 正文

matlab用梯度法求最小值,随机梯度下降法原理

时间:2023-05-04 16:58:06 阅读:12000 作者:4027

(【机械学习实验1】batch gradient descent (批量梯度下降)和stochastic gradient descent (随机梯度下降) )。

3358 blog.csdn.net/pennyliang/article/details/6998517

上面是作者的blog,代码采用了c。 我这里采用比较简便的matlab方式。

批量坡度下降是累积和批量更新参数update的方法。 这是了解整个训练集时的训练方法,但不适用于大数据。

随机梯度下降是将参数配合样本训练一个个及时更新的方式。 常用于大规模训练集,往往容易收敛到局部最优解。

有关详细信息,请参见Andrew Ng的机械学习课件。 (参考1 ) )。

可能存在的改进

1 )样品可靠性、特征完整性的验证

例如,可能存在触发器,要么是测量误差,要么是未考虑样本特征。 例如,某件衣服的色彩评价为1分,面料为1分,确实能卖到10000万元。 原本有姚明的签名,但由于没有考虑这个特点,出现了训练误差,识别了样品中触发出局的产生原因。

2 )批量降坡方法的改进

并行执行批量降坡

3 )随机坡度下降方法的改进

找到合适的训练路径(学习顺序),尽可能找到全局最佳解

4 )假说的合理性验证

h(x )是否合理的检查

5 )扩维

维度扩展和拟合问题在维度与训练集非常匹配时会得到改善,对测试集的适用性会变差。 如果找到合理的方法呢?

接下来是我做的实验

假设有这样一个衣服评估的训练样本。 在代码中,矩阵表示第一列对颜色的评估,第二列表示面料的评估。 例如,第1、4列表示这件衣服的颜色是1分,面料是4分。 我们需要训练的是西塔,它在衣服的评价中,代表了颜色和面料的权重。 这个权重是未知的量,需要训练。 培训依据是这四个样品的实际价格已知,分别为19元、……20元。

用批量梯度下降和随机梯度下降的方法可以得到theta _ c={ 3,4 } t

/*

Matrix_A

1 4

2 5

5 1

4 2

theta_C

Matrix_A*theta_C

19

26

19

20

*/

批量坡度下降法:

随机梯度下降法:

参考文献:

【2】http://www.cn blogs.com/rocket fan/archive/2011/02/27/1966 325.html

【3】http://www.ds plog.com/2011/10/29/batch-gradient-descent /

【4】http://ygc.name/2011/03/22/machine-learning-ex2-linear-regression /

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。