机器/深度学习captcha-12306、CapsNet、ATM-Auto Tune Models介绍

以下为你介绍的机器学习/深度学习软件都可用在Linux系统上:captcha-12306(基于深度学习的 12306 验证码识别程序)、CapsNet(深度学习系统)、ATM-Auto Tune Models(自动化机器学习系统)。

1、captcha-12306(基于深度学习的 12306 验证码识别程序)

基于深度学习的12306验证码识别程序。

1.1、准备工作

下载caffe并编译,具体可参考官方文档,此处不再赘述。

修改src/config.py中的caffe根目录和项目根目录。

pip安装easydict,skimage等。

1.2、数据

通过运行src/tools/download_image.py,会将12306验证码下载至data/download/all目录。

下载完成后,通过运行src/tools/cut_image.py,会将其裁剪为图片和文字两部分,分别放在data/download/image目录和data/download/words目录。

修改src/image/scripts/words.py文件main方法中cut方法的参数(其参数为data/download/words中子目录的words_*中的数字),它的目的是处理data/download/words中的所有子文件,对多个词语进行分割并调整大小为固定值。

然后手工对其进行分类,分别放至data/image和data/words目录。可以将其分为两部分,分别放在对应的train和test目录。比如,一个示例目录如下:

-image

--test

---蜡烛

----1-1.jpg

---沙漠

----2-1.jpg

--train

---蜡烛

----1-2.jpg

---沙漠

----2-2.jpg

图片部分:

运行src/image/scripts/create_data.py,将会生成图片部分对应的train.txt和test.txt,里面包含着训练和测试文件及其类别列表。

运行src/image/scripts/create_lmdb.sh,将会生成图片部分对应的lmdb文件。

文字部分:

运行src/words/scripts/create_data.py,将会生成文字部分对应的train.txt和test.txt,里面包含着训练和测试文件及其类别列表。

运行src/words/scripts/create_lmdb.sh,将会生成文字部分对应的lmdb文件。

1.3、参数

可以根据实际情况对src/image/model/image_solver.prototxt和src/words/model/words_solver.prototxt文件进行修改,具体修改方法可参考其他模型。

1.4、开始训练

src/image/scripts/image_train.sh和src/image/scripts/image_finetune_train.sh脚本分别用来进行从头训练/微调训练,训练方法可参考caffe模型训练方法。

同理:

src/words/scripts/words_train.sh和src/words/scripts/words_finetune_train.sh脚本分别用来进行从头训练/微调训练,训练方法可参考caffe模型训练方法。

测试:

src/web提供了一个web测试界面,运行index.py即可。运行前,可以更改对应的模型文件名称,一个简单示例如下:

机器/深度学习captcha-12306、CapsNet、ATM-Auto Tune Models介绍

其他:

1]、在实际应用中,会使用从百度/搜狗/谷歌等图片搜索引擎中爬取图片并做处理的方式来完成图片分类收集工作,比如爬取关键词为档案袋的图片,再进一步做处理,以解决从12306下载并裁剪-手工分类效率太低及样本量不足的问题,提升效率。

2]、此外,项目里对文字部分的分割也不是很完美,对图片的分类也是裁剪并逐个进行的,这样的响应效率不会很高,可以使用目标检测的方式,对整个验证码图片做目标检测,同时检测8个图片及文字部分,以加快检测速度。

下载地址:https://github.com/aaronshan/12306-captcha

2、CapsNet(深度学习系统)

酝酿许久,深度学习之父Geoffrey Hinton终于发表了备受瞩目的Capsule Networks(CapsNet)。 Hinton本次挟CapsNet而来,大有要用它取代CNN的气势。那么,CapsNet相比CNN到底有哪些优势?它又是否能为AI界带来革命性转折呢?

首先,这位被誉为深度学习之父Geoffrey Hinto究竟是何许人也呢?在上世界50年代,深度神经网络的概念就已出现,从理论上来讲可以解决众多问题,但是一直以来却没有人知道该如何训练它,渐渐的也就被放弃。直至1986年,Hinton想到了通过反向传播来训练深度网络,标志了深度学习发展的一大转机。然而,受限于当时的计算机运算能力,直到2012年,Hinton的发明才得以一显神通。这一突破也为近年来人工智能的发展奠定了基础。

Capsule Networks在以下数据集上也获得了更高的识别准确度。这个数据集经过了精心设计,是一个纯粹的形状识别任务,即从不同的角度来看也能识别物体。CapsNet在该数据集上打败了最先进的CNN,将错误数量减少了45%。

要想使用胶囊网络,首先你得训练它——于是,我根据Hinton 的论文建立了一个Repo(非常感谢naturomics)。

以下指南将为你提供在MNIST数据集上训练的模型。(MNIST是手写数字的数据集,很适合用作测试机器学习算法的基准线)。

1].复制Repo

git clone https://github.com/bourdakos1/capsule-networks.git

2].安装 requirements文件

pip install -r requirements.txt

3].开始训练

python main.py

MNIST数据集包含6万个训练图像。默认情况下,该模型每次批处理的大小是128个,训练50次。每一次训练都是数据集的一次完整运行过程。由于每次批量大小是128,所以每次训练大约有468个批处理(60,000 / 128 ≈468)。

下载地址:https://gitee.com/mirrors/CapsNet

3、ATM-Auto Tune Models(自动化机器学习系统)

机器/深度学习captcha-12306、CapsNet、ATM-Auto Tune Models介绍

ATM - Auto Tune Models:一种分布式、协作式、可扩展的自动化机器学习系统。

传统上,针对给定的预测问题找出最佳可能模型需要优化整个参数空间,甚至实施这一步骤涉及在多种不同方法之间进行选择。

麻省理工学院(MIT)和密歇根州立大学的研究人员发表了一篇题为《ATM:一种分布式、协作式、可扩展的自动化机器学习系统》的论文。他们介绍了一种新系统,新系统可以使模型选择这一步实现自动化,甚至提升人类的表现。

该系统名为自动调优模型 (Auto Tune Models),它充分利用基于云的计算资源,快速搜寻建模方案,并找到最适合某个特定问题的建模技术。它还调整优化模型的超参数(优化算法的一种方法),这有望大幅提升性能。

ATM 现在是一种开源平台,可供企业使用。

安装要求:

ATM已在Python 2.7、3.5和3.6上开发和测试。

另外,尽管不是严格要求,但强烈建议使用virtualenv,以避免干扰运行ATM的系统中安装的其他软件。

这些是使用python3.6 for ATM创建virtualenv所需的最少命令:

pip install virtualenv

virtualenv -p $(which python3.6) atm-venv

之后,您必须执行以下命令来激活virtualenv:

source atm-venv/bin/activate

记住每次启动新的控制台在ATM上运行时都要执行它。

1]、用pip安装

创建并激活virtualenv之后,建议使用pip来安装ATM:

pip install atm

这将从PyPi中提取并安装最新的稳定版本。

2]、从源安装

另外,在激活virtualenv的情况下,您可以克隆存储库并通过在稳定分支上运行make install从源安装它:

git clone git@github.com:HDI-Project/ATM.git

cd ATM

git checkout stable

make install

下载地址:https://github.com/HDI-Project/ATM

注明

以上就是机器/深度学习captcha-12306、CapsNet、ATM-Auto Tune Models的介绍内容,这些机器学习/深度学习软件都能使用在Linux操作系统中。

栏目相关文章