AI - AutoKeras - 简介
前言
在数据集上训练神经网络时,主要有两个目标:
- 定义符合数据集特性的神经网络架构。
- 在许多试验中对一组超参数进行调优,从而使得模型具有较高的准确率并且能够泛化至训练集和测试集之外的数据。
针对不同的数据集和问题,往往需要进行几十至上百次的实验,花费几百到上千小时的计算时间,才能找到神经网络架构和超参数之间的平衡。
期间需要专业的深度学习人员全程参与,因此实现一个可用的深度学习模型,对于非专业人员难度很大。
1 - Google AutoML简介
HomePage: https://cloud.google.com/automl/
- 基于Google最新的图像识别技术神经架构搜索( Neural Architecture Search ,NAS)的一套机器学习工具。
- NAS会根据特定数据集搜索最佳神经网络架构,以在该数据集上执行特定任务,本质上来说,NAS就是用一套能够自动对模型进行调优的算法。
- 利用AutoML可以轻松训练高性能深度网络,而无需用户掌握深度学习或AI知识,所需要的只是处理和组织数据(标记数据)。
- 也就是说,使用AutoML的程序员或工程师无需定义其神经网络架构或对超参数调优,AutoML会自动完成这些工作。
- 但AutoML是收费的,价格昂贵。
在Google AutoML框架下,将如下的算法迭代:
- 在一个训练集上训练一个网络
- 在一个测试集上评估上一步训练出的网络
- 修正神经网络架构
- 对超参数调优
- 重复以上过程
2 - AutoKeras
- 可以认为是Google AutoML的开源替代方案, 是用于自动化机器学习的开源软件库,提供自动搜索深度学习模型的架构和超参数的功能。
- 基于非常易用的深度学习数据库 Keras,使用NAS的最新版本ENAS(Efficient Neural Architecture Search),因此具有高效、安装简单、参数可调、案例丰富、易于修改等特点。
- 使用Auto-Keras实现自动化深度学习,自动训练模型,几乎不需要干预,但通常是一个非常耗时的过程。
- 不仅能帮助开发人员快速准确地创建模型,而且允许研究人员深入研究架构搜索。
AutoKeras官网信息
- HomePage: https://autokeras.com/
- GitHub:https://github.com/keras-team/autokeras
- Getting Started: https://autokeras.com/start/
3 - AutoKeras安装与示例
安装
通过pip install autokeras
快速安装,然后就可以在准备好在的数据集上做自己专属的架构搜索。
注意:
- 截止当期时间(2019-06-25),AutoKeras还处于“Pre-release“阶段,在实际安装和使用中还有很多问题。
- 例如:https://github.com/keras-team/autokeras/issues/622
- 具体版本发布信息可查看Releases:https://github.com/keras-team/autokeras/releases
示例 - MNIST
from keras.datasets import mnist
from autokeras.image.image_supervised import ImageClassifier
if __name__ == '__main__':
(x_train, y_train), (x_test, y_test) = mnist.load_data()
x_train = x_train.reshape(x_train.shape + (1,))
x_test = x_test.reshape(x_test.shape + (1,))
clf = ImageClassifier(verbose=True)
clf.fit(x_train, y_train, time_limit=12 * 60 * 60)
clf.final_fit(x_train, y_train, x_test, y_test, retrain=True)
y = clf.evaluate(x_test, y_test)
print(y)
4 - 其他
一个合格的深度学习工程师,需要根据需求使用恰当的工具,这样可以事半功倍。
类似Google AutoML和Auto-Keras等自动机器学习技术和框架,实际上只是作为工具充实了工具箱,不应该也不能过度依赖。
更重要的是相关领域的专业知识,对于提高模型准确率非常关键。
AI - AutoKeras - 简介的更多相关文章
- MMORPG战斗系统随笔(三)、AI系统简介
在设计一款游戏的时候,如果我们是玩家,是希望自己能够操作角色畅玩游戏的.在一款MMORPG游戏中,大部分的实际游戏角色,是需要玩家来操作的,通过在游戏大世界相互完成游戏中的任务等等来体验游戏.在大世界 ...
- 【第5篇】AI语音简介
1.3 AI语音简介 AI语音既人工智能语音技术,以语音识别技术为开端,实现人机语言的通信,包括语音识别技术(ASR).自然语言处理技术(NLP)和语音合成技术(TTS).通俗点说就是通过语音这个媒 ...
- 游戏人工智能 读书笔记 (四) AI算法简介——Ad-Hoc 行为编程
本文内容包含以下章节: Chapter 2 AI Methods Chapter 2.1 General Notes 本书英文版: Artificial Intelligence and Games ...
- Open AI Gym简介
介绍 OpenAI Gym是一款用于研发和比较强化学习算法的工具包,它支持训练智能体(agent)做任何事——从行走到玩Pong或围棋之类的游戏都在范围中. OpenAI Gym 是一个用于开发和比较 ...
- 普通程序员如何转向AI方向
眼下,人工智能已经成为越来越火的一个方向.普通程序员,如何转向人工智能方向,是知乎上的一个问题.本文是我对此问题的一个回答的归档版.相比原回答有所内容增加. 一. 目的 本文的目的是给出一个简单的,平 ...
- AI方向
普通程序员如何转向AI方向 眼下,人工智能已经成为越来越火的一个方向.普通程序员,如何转向人工智能方向,是知乎上的一个问题.本文是我对此问题的一个回答的归档版.相比原回答有所内容增加. 一. 目的 ...
- 普通程序员如何转向AI方向(转)
普通程序员如何转向AI方向 眼下,人工智能已经成为越来越火的一个方向.普通程序员,如何转向人工智能方向,是知乎上的一个问题.本文是我对此问题的一个回答的归档版.相比原回答有所内容增加. 一. 目的 ...
- 分享 - 普通程序员如何转向AI方向
原作者:计算机的潜意识 原文链接,内容稍有改动,侵删 1. 目的2. AI领域简介3. 学习方法4. 学习路线 0) 领域了解1) 知识准备2) 机器学习3) 实践做项目4) 深度学习5) 继续机器学 ...
- 【转帖】普通程序员如何转向AI方向
普通程序员如何转向AI方向 https://www.cnblogs.com/subconscious/p/6240151.html 眼下,人工智能已经成为越来越火的一个方向.普通程序员,如何转向人工智 ...
随机推荐
- YAML_07 有报错信息,告诉你错误忽略,继续执行下面的命令
ansible]# vim user5.yml --- - hosts: cache remote_user: root vars: user: bb tasks: - sh ...
- 1.5 synchronized其他概念
synchronized锁重入: 关键字synchronized拥有锁重入的功能,也就是使用synchronized时,当一个线程得到了一个对象的锁后,再次请求此对象时是可以再次得到对象的锁. 输出结 ...
- qt加快编译速度
菜单栏->工具-> 选项->构建与运行->构建套件->点击自动检测内容->在同一页面找到 Environment ->点击change ->在弹出的窗口 ...
- GDB十分钟教程【转载于网络爱好者】
本文写给主要工作在Windows操作系统下而又需要开发一些跨平台软件的程序员朋友,以及程序爱好者. GDB是一个由GNU开源组织发布的.UNIX/LINUX操作系统下的.基于命令行的.功能强大的程序调 ...
- Problem 5 素数筛法+并查集
$des$ 给定一个长度为 $n$ 的正整数序列 ${a_i }$.将 ${1,2,...,n}$ 划分成两个非空集合 $S.T$,使得 $gcd(\prod_{i \in S} a_i, \prod ...
- UDP 区别于 TCP 的特点
TCP 我们了解得多了,所以今天我们站在 UDP 的角度,探讨一下 UDP 区别于 TCP 的特点. 1. 面向无连接 UDP 比 TCP 简单得多,不需要“三次握手”来建立连接,直接把内容发送出去. ...
- PHP is_numeric() 函数
is_numeric() 函数用于检测变量是否为数字或数字字符串. 例子 <?php $var_name1=; $var_name2="a678"; $var_name3=& ...
- C++2.0新特性(一)——<特性认知、__cplusplus宏开启、Variadic Templates 、左右值区分>
一.新特性介绍 2.0新特性包含了C++11和C++14的部分 1.2 启用测试c++11功能 C++ 标准特定版本的支持,/Zc:__cplusplus 编译器选项启用 __cplusplus 预处 ...
- C++标准库分析总结(九)——<HashFunction、Tuple>
一.HashFunction 当我们在使用hash table以及由它做底层的数据结构时,我们必不可少要讨论hash function,所谓的哈希函数就是产生一个数,这个数越乱越好,以至于达到避免碰撞 ...
- HDU 6208 The Dominator of Strings ——(青岛网络赛,AC自动机)
最长的才可能成为答案,那么除了最长的以外全部insert到自动机里,再拿最长的去match,如果match完以后cnt全被清空了,那么这个最长串就是答案.事实上方便起见这个最长串一起丢进去也无妨,而且 ...