Theano入门——Logistic回归

Theano入门——Logistic回归

1.Logistic回归介绍

参考链接(1)。


2.参数设置

(1)输入权重w
输入权重矩阵的维度需要设置,行图像的大小,列为标签one-hot编码后的大小,cifar-10共有10类,所以为10;mnist标签为0~9,也是10。
(2)学习率learning_rate
这里为固定学习率。学习率越大收敛越快,但接近结果时可能会跳过最优解,逼近曲线锯齿化明显;学习率越小则相反。
(3)块大小batch_size

batch_size越小收敛越慢,引入的随机性越大,效果会更好。batch_size越大则相反。


3.代码实现

注释部分为mnist数据集的内容和设置,有效部分为cifar-10数据集的内容和设置。
(1)加载数据集
mnist函数加载mnist数据集,one-hot设置编码格式;cifar10设置cifar-10数据集,dtype设置输出数据的数据类型。
(2)模型初始化
先产生32*32行10列的权重,随机数产生的例子如下:

(3)Logistic回归模型
假设有X和Y矩阵,X为模型输入,Y为模型输出。model函数先让X和w相乘,X维度为(样本数*32*32),w维度为(32*32,10),相乘且经过softmax回归后的py_x的维度为(样本数*10)。y_pred为py_x按列寻找出最大值,即每个样本的最大的概率按行顺序组成y_pred。
学习率设置为0.01。
categorical_crossentropy函数计算的近似概率密度分布py_x和实际概率密度分布Y的交叉熵。交叉熵为py_x和Y每一位的交叉熵,共10个数。这里用求平均表示的整体交叉熵作为损失cost。熵越大,结果的不确定性越大。
grad函数计算损失的梯度,以固定的学习率learning_rate来更新权重。update为更新值的格式。
(4)交叉熵
同一事件集合上的两个不同的概率分布间的交叉熵计算事件产生的位的平均值(这里是指整个数据集标签经过one-hot编码后的标签每位的平均值)。假设计算得到的概率密度分布为q,实际概率密度分布为p,则交叉熵为:H(p,q)=H(p)+DKL(p||q),其中H(p)为p的熵,DKL(p||q)为q相对于p的KL散度。离散的交叉熵为p(x)logq(x)的和的负值。
(5)Theano的function函数说明
function函数包含输入inputs,输出outputs,更新updates和allow_input_downcast等。输入和输出不难理解,allow_input_downcast是允许数据精度降低。以代码中的w为例,update表示函数每更新一次,权重w就会被w - gradient * learning_rate替换一次。
function左侧的变量train和predict理解为函数名。
(6)模型训练
模型训练以块为单位进行。batch_size决定了块大小。start为块的起始索引,end为块的结束索引。所以train执行的次数小于等于块的个数。外层执行100次,每次执行一次epoch时权重更新块的个数次。
(7)模型预测

predict函数输入为X,输出为y_pred。此时比较teX的输出的y_pred的预测索引和teY中的实际索引,计算相同索引的均值表示准确率accuracy。


4.实验结果

Logistic回归对于mnist数据集的准确率大约有91%,而对于cifar-10数据集的准确率大约只有28%(如下图),cifar-100数据集准确率更小。



5.参考链接

(1)Logistic回归原理:http://www.cnblogs.com/jerrylead/archive/2011/03/05/1971867.html
(2)交叉熵:https://en.wikipedia.org/wiki/Cross_entropy
(3)batch_size讨论:http://www.zhihu.com/question/32673260

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值