DeepLearning工具Theano学习记录(一) 逻辑斯蒂回归
来源:互联网 发布:最新网络歌手排行榜 编辑:程序博客网 时间:2024/04/29 12:26
什么是Theano?(以下内容摘自网络)
** Theano是一个python库,使得写深度学习模型更加容易,同时也给出了一些关于在GPU上训练它们的选项。
2015/3/26
参考博客:http://blog.csdn.net/u012162613/article/details/43225445
仍然报错:
头大了,只能一边求救于师兄,一边自己google。
可能相关的web pages:
http://stackoverflow.com/questions/24402213/theano-test-optimization-failure-due-to-constant-folding-on-ubuntu
// theano.test()就报错,定位错误在
import pycudaimport pycuda.autoini
pycuda:http://mathema.tician.de/software/pycuda/
安装完pycuda后,仍然有上述错误。运行OK。
2015/3/30
查看gpu的使用情况,参考博客:http://my.oschina.net/zhangxu0512/blog/262932 nvidia-smi
2015/4/2
在GPU上用Logistic Regression, Multilayer Perceptron(MLP)和CNN跑MNIST的结果。
Logistic Regression代码疑问:
Q. patience作用
A:minibatch SGD具体优化过程:
- 将training_set, validation_set, test_set 按照batch_size切分。
- 在training_set上以切分后training_batch一个batch一个batch的进行参数优化。每优化validation_frequency 次数时候(注意这个值受 patience变化可能变化 validation_frequency = min(n_train_batches, patience / 2)),学习出的参数在validation_set和test_set上进行测试。
- 如果在validation_set上的测试结果比以前测的validation最好测试结果有提高,就保存该次测试结果为validation最好测试结果。再进一步,如果提高的非常明显(this_validation_loss < best_validation_loss * improvement_threshold),那么就要对patient进行修正(patience = max(patience, iter * patience_increase))。
- 终止条件:1.达到了一定的迭代次数(由参数n_epochs指定,迭代次数上限为n_epochs * n_train_batches)或者 2. 迭代累加次数iter超过patience。
我自己对patience的理解:iter是累加的训练过的batch数量。n_epochs为迭代上限次数,而patience是理想迭代次数。也就是我们希望在patience的次数里看到发现不仅在training_set上表现好而且在validation_set表现好的参数的趋势。为什么说是趋势? 因为每次让我们看到希望(在validation_set上提高的非常明显),我们就开始修正patience值,让程序再多找一会。极端假设一下,后面优化出的参数在validation_set上的表现都不如第一次的,patience的值一直没有增加,累计迭代patience次数后,迭代终于。 相反如果在快到patience次数时候,发现了一组在validation_set上提高的非常明显参数,此时patience值会相应的增加,在不达到迭代上限次数(n_epochs * n_train_batches)的情况下,让程序继续进行迭代。
2015/4/3
在DeepLearning工具Theano学习记录(二) 多层感知机的实验中发现的确如此。Experiment 1 跑了1000个epoch,达到设置epoch的上限,迭代被终止了。但是Experiment 2 ,只跑了467个epoch迭代就终止了。Experiemnt 2中在epoch=234中找到最优参数组后,陷入了一个局部最优,一直没有发现更优的结果。累计迭代轮数iter达到patience后[机器感觉不到找到更优参数的希望],迭代结束。
程序中的n_epochs设置为1000, 在batch_size设置为600时候n_train_batches为83,此时迭代上限为83*1000。但是patience设置为5000。
在batch_size设置为600,迭代结束在epochs=74:
在batch_size设置为300,迭代也结束在epochs=74:
参考:
http://blog.csdn.net/u012162613/article/details/43225445
Logistic Regression : http://deeplearning.net/tutorial/logreg.html
MLP :http://deeplearning.net/tutorial/mlp.html#mlp
CNN: http://deeplearning.net/tutorial/lenet.html#lenet
- DeepLearning工具Theano学习记录(一) 逻辑斯蒂回归
- DeepLearning工具Theano学习记录(二) 多层感知机
- DeepLearning工具Theano学习记录(三) CNN卷积神经网络
- Theano深度学习(逻辑回归)
- DeepLearning学习笔记(一):Logistic 回归
- theano tutorial -- 用theano实现逻辑回归LR(一)theano基础知识
- 机器学习笔记(一) 逻辑斯蒂回归LR
- deep leaning学习笔记(一)线性回归和逻辑斯蒂回归区别与联系
- 机器学习之Logistic回归(逻辑蒂斯回归)
- 《机器学习实战》-- 逻辑斯蒂回归<一>
- 《机器学习》学习笔记(一):线性回归、逻辑回归
- 机器学习一(逻辑回归)
- 机器学习(一)线性回归、逻辑回归
- 逻辑回归(一)
- Theano学习笔记(二)——逻辑回归函数解析
- Theano学习笔记(二)——逻辑回归函数解析
- Theano学习笔记(二)——逻辑回归函数解析
- Theano深度学习笔记(二)逻辑回归对MNIST分类
- 随意写程序发现的一些细节问题一节思考
- 关于C++思考(三)
- Android Fragment 真正的完全解析(下)
- js面试题
- 基于安卓下的事件回调机制
- DeepLearning工具Theano学习记录(一) 逻辑斯蒂回归
- Microsoft ADO Data Control,version 6.0(OLEDB) 不支持此接口
- 解决uploadify在使用IE内核等浏览器无法使用
- HDU2841 Visible Trees【容斥原理】
- 刘宝庆老师<中层管理者技能提升>助理:林静文 电话:18818552408
- 修改java源码无需重启tomcat
- 忘记mysql的root密码
- ios动态获取UILabel的高度和宽度
- [Python]网络爬虫(三):异常的处理和HTTP状态码的分类