机器学习实践指南(五)—— GD/SGD/MSGD 伪代码演示
2016-05-18 22:22
411 查看
GD:梯度下降
while True: loss = f(params) d_loss_wrt_params = ... params -= eta * d_loss_wrt_params if <stopping condition met>: return params
SGD:随机梯度下降
逐样本训练:for x_i, y_i in training_data: loss = f(params, x_i, y_i) d_loss_wrt_params = ... params -= eta * d_loss_wrt_params if <stopping condition met>: return params
更进一步,如果外层还有一个 epochs:
for j in range(epochs): random.shuffle(training_data) for x_i, y_i in training_data: ...
MSGD(Minibatch SGD):块随机梯度下降
n = len(training_data) mini_batch_size = ... mini_batches = [training_data[k:k+mini_batch_size] for k in range(0, n, mini_batch_size)] for mini_batch in mini_batches: loss = f(params, mini_batch) d_loss_wrt_params = ... params -= eta * d_loss_wrt_params if <stopping condition met>: return params
相关文章推荐
- 关于java.util.Vector 或 java.util.Hashtable类过时的讨论
- PHP错误Warning: Cannot modify header information - headers already sent by解决方法
- java笔记之类和对象
- Django官方【实例】-简单的全方位例子
- Java接口和抽象类
- MyEclipse优化设置
- 面筋: 奇虎360 c++ 后台开发 实习生 面试
- imfilter()函数的用法
- Java使用quartz实现作业调度
- java中的Clone(深拷贝,浅拷贝)
- 镜花水月,过不留痕————铭记那些给我们带来进步的C语言小难题<2>
- Java&Python操作WebHDFS
- [原创]java WEB学习笔记10:GenericServlet
- ASP.NET MVC4入门到精通系列目录汇总(转)
- Struts2_Action记录在线人数实例
- JavaSE和JavaEE的起步学习路线
- 思维导图教你看懂----------Java IO流
- Python dictionary implementation
- python中join和split函数
- Java分页