(【机械学习实验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 /