用 theano 求解 Logistic Regression (SGD 优化算法)
1. model
这里待求解的是一个 binary logistic regression,它是一个分类模型,参数是权值矩阵 WW 和偏置向量 bb。该模型所要估计的是概率 P(Y=1|x)P(Y=1|x),简记为 pp,表示样本 xx 属于类别 y=1y=1 的概率:
P(Y=1|x^{(i)})=p^{(i)}=\frac{e^{Wx^{(i)}+b}}{1+e^{Wx^{(i)}+b}}=\frac1{1+e^{-Wx^{(i)}-b}}
当然最终的目标是求解在整个样本集 D={(x(i),y(i)),0<i≤N}\mathcal D=\{(x^{(i)}, y^{(i)}), 0 的对数概率(关于 WW和 bb):
\ell(W,b)=-\frac1N\sum_{i}^N\mathrm y^{(i)}\log p^{(i)}+(1-\mathrm y^{(i)})\log(1-p^{(i)})
- 这里的取均值是为了解耦后续的正则化系数,以及 SGD 时的步长的选择;
当然也可对 WW 进行二范数约束(F范数约束,全部项的平方和):
E(W,b)=\ell(W,b)+0.01W_F^2
2. theano 的使用
实现 theano 下的最小化问题的求解,涉及如下的四个流程:
(1)声明符号变量;
import numpy import theano.tensor as T from theano import shared, functionx = T.matrix() y = T.lvector() w = shared(numpy.random.randn(100)) b = shared(numpy.zeros(())) print 'step 1, initial mode: ' print w.get_value(), b.get_value()
(2)使用这些变量构建符号表达式图(symbolic expression graph)
# hypothesisp_1 = 1/(1+T.exp(-T.dot(x, w)-b)) xent = -y*T.log(p_1)-(1-y)*T.log(1-p_1) cost = xent.mean() + 0.01*(w**2).sum() gw, gb = T.grad(cost, [w, b]); prediction = p_1 > .5
(3)编译 Theano functions;
train = function(inputs=[x, y], outputs=[predication, xent], updates={w:w-0.1*gw, b:b-0.1*gb})predict = function(inputs=[x], outputs=predication)
(4)调用编译好的函数来执行数值计算;
N = 4 feats = 100 D = (numpy.random.randn(N, feats), numpy.random.randi(low=0, high=2, size=(N,))) training_epochs = 10 for _ in range(training_epochs):pred, err = train(D[0], D[1]) print 'final model: ' print 'target values for D', D[1] print 'predication on D', predict(D[0])
用 theano 求解 Logistic Regression (SGD 优化算法)相关推荐
- 加速收敛_引入Powerball 与动量技术,新SGD优化算法收敛速度与泛化效果双提升 | IJCAI...
本文介绍的是 IJCAI-2020论文<pbSGD: Powered Stochastic Gradient Descent Methods for Accelerated Non-Convex ...
- 利用Theano理解深度学习——Logistic Regression
一.Logistic Regression 1.LR模型 Logistic回归是广义线性模型的一种,属于线性的分类模型,在其模型中主要有两个参数,即:权重矩阵 W W W和偏置向量 b b b.在Lo ...
- 单目标优化:飞狐优化算法(Flying Foxes Optimization,FFO)求解cec2017(提供Matlab代码)
一.飞狐优化算法简介 飞狐优化算法(Flying Foxes Optimization,FFO)由Konstantinos Zervoudakis与Stelios Tsafarakis于2022年提出 ...
- 单目标优化:猎豹优化算法(The Cheetah Optimizer,CO)求解cec2020(提供Matlab代码)
一.猎豹优化算法 猎豹优化算法(The Cheetah Optimizer,CO)由MohammadAminAkbari等人于2022年提出,该算法性能高效,思路新颖. 参考文献: Akbari, M ...
- 优化算法SGD/ASGD/AdaGrad/Adadelta/RMSprop/Adam/Adamax/SparseAdam/L-BFGS/Rprop
机器学习界有一群炼丹师,他们每天的日常是: 拿来药材(数据),架起八卦炉(模型),点着六味真火(优化算法),就摇着蒲扇等着丹药出炉了. 不过,当过厨子的都知道,同样的食材,同样的菜谱,但火候不一样了, ...
- CEC2017:斑马优化算法(Zebra Optimization Algorithm,ZOA)求解cec2017(提供MATLAB代码)
一.斑马优化算法 斑马优化算法(Zebra Optimization Algorithm,ZOA)Eva Trojovská等人于2022年提出,其模拟斑马的觅食和对捕食者攻击的防御行为. 斑马因身上 ...
- 单目标优化:海马优化算法(Sea Horse Optimizer,SHO)求解CEC2020(提供Matlab代码)
一.海马优化算法 海马优化算法(Sea Horse Optimizer,SHO)由Shijie Zhao等人于2022年提出,该算法性能高效,思路新颖. 参考文献:Zhao, S., Zhang, T ...
- 台湾大学林轩田机器学习技法课程学习笔记5 -- Kernel Logistic Regression
红色石头的个人网站:redstonewill.com 上节课我们主要介绍了Soft-Margin SVM,即如果允许有分类错误的点存在,那么在原来的Hard-Margin SVM中添加新的惩罚因子C, ...
- logistic regression识别真假币
介绍 本篇实现了使用 logistic logistic回归进行真假币的判断,有关 logistic regression logistic\ regression的详细讲解见这里.本篇使用随机梯度下 ...
最新文章
- SEO基础知识8大精华文章之第三篇 SEO的历史(连载)
- UML图大科普 :14种UML图图例详解
- js获取iframe里的元素
- maven 配置篇 之pom.xml
- android crash没有日志_Android开发必备神器CrashCanary
- 爬虫系列4:Requests+Xpath 爬取动态数据
- 计算机漏洞为什么无法避免,雷电3接口漏洞影响数百万计算机:5分钟解锁设备,无法修复...
- k-means 及其改进 数库
- abaqus2018安装教程win10_win10系统安装Abaqus2016全攻略
- 阿里巴巴最新区块链专利申请文件解读
- CS231n Assiganment#1-KNN 代码解析
- js通过base64编码显示图片
- Largest prime factor
- Android背景设置透明和半透明效果
- 半监督学习:semi-supervised learning 直推学习:transductive learning 主动学习:active learning
- 海南三亚游记2022-2023跨年
- 【数据结构实验】使用树结构存储医院楼房结构
- VRAR概念的定义和要素以及技术定义和应用
- 关于联通200M宽带升级后速度没有提升的坑
- 每日新闻:未来,电脑像手机一样?
热门文章
- send的内容ajax,Ajax中send方法的使用
- win10基于anaconda下的tensorflow2.0.0及cuda10.0、cudnn安装成功
- hive表存储格式的转化
- jqGrid中时间控件input的值赋给点开后的laydate控件
- 剑指offer面试题34. 二叉树中和为某一值的路径(先序遍历)(回溯)
- c++ class 类名 和 include 的区别
- 图像变换--灰度切割、位图切割
- 从数据库中导出数据库文档(新增了索引及表的描述信息)
- java gpu hash_比特币 GPU 挖矿 Sha256 Hash实现(OpenCL)
- 20155327结对编程练习