未加星标

Logistic回归、softmax回归以及tensorflow实现MNIST识别

字体大小 | |
[数据库(综合) 所属分类 数据库(综合) | 发布者 店小二03 | 时间 2016 | 作者 红领巾 ] 0人收藏点击收藏

一、Logistic回归

Logistic回归为概率型非线性回归模型,是研究二分类结果
Logistic回归、softmax回归以及tensorflow实现MNIST识别
与一些影响因素
Logistic回归、softmax回归以及tensorflow实现MNIST识别
之间关系的一种多变量分析方法。通常是用来研究某些因素条件下某个结果是否发生。
在讲解Logistic回归理论之前,我们先从LR分类器说起。LR分类器,即Logistic Regression Classifier。在分类情形下,经过学习后的LR分类器是一组权值
Logistic回归、softmax回归以及tensorflow实现MNIST识别
,当测试样本的数据输入时,这组权值与测试数据按照线性加和得到:
Logistic回归、softmax回归以及tensorflow实现MNIST识别
这里
Logistic回归、softmax回归以及tensorflow实现MNIST识别
是每个样本的
Logistic回归、softmax回归以及tensorflow实现MNIST识别
个特征。之后按照Sigmoid函数的形式求出:
Logistic回归、softmax回归以及tensorflow实现MNIST识别
由于Sigmoid函数的定义域为
Logistic回归、softmax回归以及tensorflow实现MNIST识别
,值域
Logistic回归、softmax回归以及tensorflow实现MNIST识别
,因此最基本的LR分类器适合对两类目标进行分类。综上,Logistic回归最关键的问题就是研究如何求得
Logistic回归、softmax回归以及tensorflow实现MNIST识别
这组权值。

下面正式讲Logistic回归模型。

考虑具有
Logistic回归、softmax回归以及tensorflow实现MNIST识别
个独立变量的向量
Logistic回归、softmax回归以及tensorflow实现MNIST识别
,设条件概率
Logistic回归、softmax回归以及tensorflow实现MNIST识别
为根据观测量相对于某事件
Logistic回归、softmax回归以及tensorflow实现MNIST识别
发生的概率。那么Logistic回归模型可以表示为:
Logistic回归、softmax回归以及tensorflow实现MNIST识别
其中
Logistic回归、softmax回归以及tensorflow实现MNIST识别
,那么在
Logistic回归、softmax回归以及tensorflow实现MNIST识别
条件下
Logistic回归、softmax回归以及tensorflow实现MNIST识别
不发生的概率为
Logistic回归、softmax回归以及tensorflow实现MNIST识别

所以事件发生与不发生的概率之比为:


Logistic回归、softmax回归以及tensorflow实现MNIST识别

这个比值称为事件的发生比(the odds of experiencing an event),简记为odds。

可以看出Logistic回归都是围绕一个Sigmoid函数来展开的。接下来就讲如何用极大似然估计求分类器的参数。

假设有
Logistic回归、softmax回归以及tensorflow实现MNIST识别
个观测样本,观测值分别为
Logistic回归、softmax回归以及tensorflow实现MNIST识别
,设
Logistic回归、softmax回归以及tensorflow实现MNIST识别
为给定条件下得到
Logistic回归、softmax回归以及tensorflow实现MNIST识别
的概率,同样地,
Logistic回归、softmax回归以及tensorflow实现MNIST识别
的概率为
Logistic回归、softmax回归以及tensorflow实现MNIST识别
,所以得到一个观测值的概率为
Logistic回归、softmax回归以及tensorflow实现MNIST识别

因为各个观测样本之间相互独立,那么它们的联合分布为各边缘分布的乘积。得到似然函数为


Logistic回归、softmax回归以及tensorflow实现MNIST识别
然后我们的目标是求出是这一似然函数的值最大的参数估计,最大似然估计就是求出参数
Logistic回归、softmax回归以及tensorflow实现MNIST识别
,使得
Logistic回归、softmax回归以及tensorflow实现MNIST识别
取得最大值,对函数
Logistic回归、softmax回归以及tensorflow实现MNIST识别
取对数得到
Logistic回归、softmax回归以及tensorflow实现MNIST识别
现在求向量
Logistic回归、softmax回归以及tensorflow实现MNIST识别
,使得
Logistic回归、softmax回归以及tensorflow实现MNIST识别
最大,其中
Logistic回归、softmax回归以及tensorflow实现MNIST识别

这里介绍一种方法,叫做梯度下降法(求局部极小值),当然相对还有梯度上升法(求局部极大值)。对上述的似然函数求偏导后得到


Logistic回归、softmax回归以及tensorflow实现MNIST识别

由于是求局部极大值,所以跟据梯度上升法,有


Logistic回归、softmax回归以及tensorflow实现MNIST识别
根据上述公式,只需初始化向量
Logistic回归、softmax回归以及tensorflow实现MNIST识别
全为零或者随机值,迭代到指定精度为止。

二、softmax回归

softmax回归可以看成是Logistic回归的扩展。我们知道Logistic回归用于二分类,那么如果我们面对多分类问题怎么办?最常见的例子就是MNIST手写数字分类,今天要讲的softmax回归能用于解决这类问题。

在Logistic回归中,样本数据的值
Logistic回归、softmax回归以及tensorflow实现MNIST识别
,而在softmax回归中
Logistic回归、softmax回归以及tensorflow实现MNIST识别
,其中
Logistic回归、softmax回归以及tensorflow实现MNIST识别
是类别种数,比如在MNIST手写识别中
Logistic回归、softmax回归以及tensorflow实现MNIST识别
,表示要识别10个数字。设
Logistic回归、softmax回归以及tensorflow实现MNIST识别

那么


Logistic回归、softmax回归以及tensorflow实现MNIST识别

而且有


Logistic回归、softmax回归以及tensorflow实现MNIST识别
为了将多项式模型表述成指数分布族,先引入
Logistic回归、softmax回归以及tensorflow实现MNIST识别
,它是一个
Logistic回归、softmax回归以及tensorflow实现MNIST识别
维的向量,那么
Logistic回归、softmax回归以及tensorflow实现MNIST识别
应用于一般线性模型,
Logistic回归、softmax回归以及tensorflow实现MNIST识别
必然是属于
Logistic回归、softmax回归以及tensorflow实现MNIST识别
个类中的一种。用
Logistic回归、softmax回归以及tensorflow实现MNIST识别
表示
Logistic回归、softmax回归以及tensorflow实现MNIST识别
为真,同样当
Logistic回归、softmax回归以及tensorflow实现MNIST识别
为假时,有
Logistic回归、softmax回归以及tensorflow实现MNIST识别
,那么进一步得到联合分布的概率密度函数为
Logistic回归、softmax回归以及tensorflow实现MNIST识别

对比一下,可以得到


Logistic回归、softmax回归以及tensorflow实现MNIST识别

由于


Logistic回归、softmax回归以及tensorflow实现MNIST识别

那么最终得到


Logistic回归、softmax回归以及tensorflow实现MNIST识别

可以得到期望值为


Logistic回归、softmax回归以及tensorflow实现MNIST识别

接下来得到对数似然函数为


Logistic回归、softmax回归以及tensorflow实现MNIST识别
其中
Logistic回归、softmax回归以及tensorflow实现MNIST识别
是一个
Logistic回归、softmax回归以及tensorflow实现MNIST识别
的矩阵,代表这
Logistic回归、softmax回归以及tensorflow实现MNIST识别
个类的所有训练参数,每个类的参数是一个
Logistic回归、softmax回归以及tensorflow实现MNIST识别
维的向量。所以在softmax回归中将
Logistic回归、softmax回归以及tensorflow实现MNIST识别
分类为类别
Logistic回归、softmax回归以及tensorflow实现MNIST识别
的概率为
Logistic回归、softmax回归以及tensorflow实现MNIST识别

跟Logistic回归一样,softmax也可以用梯度下降法或者牛顿迭代法求解,对对数似然函数求偏导数,得到


Logistic回归、softmax回归以及tensorflow实现MNIST识别

然后我们可以通过梯度上升法来更新参数


Logistic回归、softmax回归以及tensorflow实现MNIST识别
注意这里
Logistic回归、softmax回归以及tensorflow实现MNIST识别
是第
Logistic回归、softmax回归以及tensorflow实现MNIST识别
个类的所有参数,它是一个向量。

在softmax回归中直接用上述对数似然函数是不能更新参数的,因为它存在冗余的参数,通常用牛顿方法中的Hessian矩阵也不可逆,是一个非凸函数,那么可以通过添加一个权重衰减项来修改代价函数,使得代价函数是凸函数,并且得到的Hessian矩阵可逆。

三、TensorFlow实现MNIST手写数字识别(利用到softmax回归)

#!/usr/bin/env python
import tensorflow as tf
import numpy as np
import tensorflow.examples.tutorials.mnist.input_data as input_data
# read MNIST data set
mnist = input_data.read_data_sets("MNIST_data/", one_hot=True)
#trX, trY, teX, teY = mnist.train.images, mnist.train.labels, mnist.test.images, mnist.test.labels
# create symbolic variables
X = tf.placeholder(tf.float32, [None, 784])
Y = tf.placeholder(tf.float32, [None, 10])
# create variables: weights and biases
W = tf.Variable(tf.zeros([784, 10]))
b = tf.Variable(tf.zeros([10]))
# define model
y = tf.nn.softmax(tf.matmul(X, W) + b)
# cross entropy
cross_entropy = -tf.reduce_sum(Y * tf.log(y))
# train step
train_step = tf.train.GradientDescentOptimizer(0.01).minimize(cross_entropy)
# init step
init = tf.initialize_all_variables()
with tf.Session() as sess:
# run the init op
sess.run(init)
# then train
for i in range(1000):
batch_trX, batch_trY = mnist.train.next_batch(128)
sess.run(train_step, feed_dict={X: batch_trX, Y: batch_trY})
# test and evaluate our model
correct_prediction = tf.equal(tf.argmax(y, 1), tf.argmax(Y, 1))
accuracy = tf.reduce_mean(tf.cast(correct_prediction, "float"))
print sess.run(accuracy, feed_dict={X: mnist.test.images, Y: mnist.test.labels})

本文数据库(综合)相关术语:系统安全软件

分页:12
转载请注明
本文标题:Logistic回归、softmax回归以及tensorflow实现MNIST识别
本站链接:http://www.codesec.net/view/480250.html
分享请点击:


1.凡CodeSecTeam转载的文章,均出自其它媒体或其他官网介绍,目的在于传递更多的信息,并不代表本站赞同其观点和其真实性负责;
2.转载的文章仅代表原创作者观点,与本站无关。其原创性以及文中陈述文字和内容未经本站证实,本站对该文以及其中全部或者部分内容、文字的真实性、完整性、及时性,不作出任何保证或承若;
3.如本站转载稿涉及版权等问题,请作者及时联系本站,我们会及时处理。
登录后可拥有收藏文章、关注作者等权限...
技术大类 技术大类 | 数据库(综合) | 评论(0) | 阅读(38)