CSDN 真是💊,经常性的不能访问,而且如果不用广告插件的话页面简直不能看,前段时间又挂了,发了个帖子吐槽了一下:CSDN 博客又挂了。。。 - V2EX。本来也考虑过自己做个,看了好久,但是由于自己对网站相关的不太懂,看着教程又复杂,就没弄了。CSDN 这次挂真让我铁了心弄自己的网站,然后用了一个下午搭起来了,随后又陆陆续续改了改主题配置之类的,弄这个还是我最近第一次一两点才睡,后来还感冒了 😞
阅读全文
由于我很早就在 GitHub 下载了 TensorFlow 的源码库没有更新,在运行 TensorFlow 官方的 CNN 例子的时候,总是报 ImportError
错误,找不到 cifar10
模块,后来发现是 TensorFlow 的源码库更新了,这些模型实现都被移到了一个新的源码库:models 。
但是呢,在我 clone
了 models
到本地后,按照 TensorFlow 官方的例子运行 python cifar10_train.py
的时候,问题又出现了……
前面 有篇博文讲了多层感知器,也就是一般的前馈神经网络,文章里使用 CIFAR10 数据集得到的测试准确率是 46.98%。今天我们使用更适合处理图像的卷积神经网络来处理相同的数据集 - CIFAR10,来看下准确率能达到多少。
本文代码基于 TensorFlow 的官方文档 做了些许修改,完整代码及结果图片可从 这里 下载。
这篇 文章是对本文的一个升级,增加了 TensorBoard 的实现,可以在浏览器中查看可视化结果,包括准确率、损失、计算图、训练时间和内存信息等。
阅读全文主成分分析(PCA)是一种常用的数据降维方法,可以将高维数据在二维或者三维可视化呈现。具体原理我在这里就不再详述,网上有很多教程都不错,可以参考 这里 或者 PCA 的维基百科页面。
阅读全文前面提到了使用 TensorFlow
进行线性回归以及学习率、迭代次数和初始化方式对准确率的影响,这次来谈一下如何使用 TensorFlow
进行 Logistics Regression(以下简称 LR)。关于LR的理论内容我就不再赘述了,网上有很多资料讲,这里我就写下 LR 所用的损失函数:
其实整个程序下来和线性回归差不多,只不过是损失函数的定义不一样了,当然数据也不一样了,一个是用于回归的,一个是用于分类的。
数据集
数据集不再是经典的MNIST
数据集,而是我在UCI上找的用于二分类的数据集,因为我觉得老用经典的数据集不能很好的理解整个程序。数据集可以从这里下载,数据集是关于房屋居住的,给出一些影响房屋居住的因素和是否居住(二分类),例如光照、温度等。数据集有3个txt文件,本篇使用的是datatraining.txt
,数据量是8143×7,删除日期数据,然后按照75:25
的比例拆分成训练集和测试集,然后做一些必要的reshape
。
数据集大致是这样子的:
代码
1 | from __future__ import print_function, division |
结果
1 | Epoch: 0001 cost= 0.402052676091 |
可以看到最终准确率达到了97%,这里注意标签要进行one-hot
编码。
与sklearn的比较
我用相同的数据集使用sklearn
实现了LR,
1 | clf = LogisticRegression() |
结果准确率是0.98624754420432215,而且训练时间大为缩短。
END
阅读全文想必学过机器学习的人都知道,学习率、训练迭代次数和模型参数的初始化方式都对模型最后的准确率有一定的影响,那么影响到底有多大呢?
我初步做了个实验,在 TensorFlow
框架下使用 Logistics Regression 对经典的 MNIST
数据集进行分类。