随机算法的分析总结
做推荐算法实验时,测试集中用户数量庞大,能否从中随机抽取用户作为实验对象?
做推荐算法实验时,测试集中用户数量庞大,能否从中随机抽取用户作为实验对象?
可以随机采样,但是要保证采样以后数据集分布和原数据集分布相同
抱歉我看错了,测试集用户数量庞大吗。。?测试集测模型就好了,没必要随机抽。如果想随机抽一些,也保证和原有测试集分布相同就好了
你买一个商品的时候,价格过高,你就问,能不能分期付款,付一半或者付三分之一等等。就看商家愿意不愿意了。同理,要看需求方是不是认可,认可就行,不认可就不行,你要硬谈数据,数据肯定不准
优化算法和算法区别?
优化算法主要分为启发式算法和智能随机算法。
1.1 启发式算法
启发式方法指人在解决问题时所采取的一种根据经验规则进行发现的方法。或者说是一个基于直观或经验构造的算法,在可接受的花费(指计算时间和空间)下给出待解决组合优化问题每一个实例的一个可行解,该可行解与最优解的偏离程度一般不能被预计。启发式算法依赖对问题性质的认识,属于局部优化算法。
启发式算法的特点是在解决问题时,利用过去的经验,选择已经行之有效的方法,而不是系统地、以确定的步骤去寻求答案。启发式优化方法种类繁多,包括经典的模拟退火方法、遗传算法、蚁群算法以及粒子群算法等群智能算法。
算法比较灵活、书写很随意,没有语言界限。
随机梯度法的算法框架?
随机梯度算法是神经网络中最常见的一种优化算法。主要是依据的梯度下降原理
设置要预测的函数为:
损失函数为:
则要使损失函数最小,我们可以使损失函数按照它下降速度最快的地方减小,因此需要在此列出损失函数的求导公式:
同时由于选用这种方法,可能会陷入局部最小值的问题,同时收敛的速度可能较慢
所以选用SGD,每次更新的时候使用一个样本进行梯度下降,所谓的随机二字,就是说我们可以随机用一个样本来表示所有的样本,来调整超参数。
因为这个样本是随机的,所以每次迭代没有办法得到一个准确的梯度,这样一来虽然每一次迭代得到的损失函数不一定是朝着全局最优方向,但是大体的方向还是朝着全局最优解的方向靠近,直到最后,得到的结果通常就会在全局最优解的附近。这种算法相比普通的梯度下降算法,收敛的速度更快,所以在一般神经网络模型训练中,随机梯度下降算法 SGD 是一种非常常见的优化算法。