当前位置:首页 > 旅游指南

keras 基于Keras的Deep Learning学习入门指南

《机器人圈》指南:关于深度学习现在在AI领域扮演重要角色。怎样才能学好深度学习?Piotr Migda拥有量子物理学博士学位,是一名数据科学自由职业者。他积极参与天才教育,开发量子游戏,并在deepsense.io上担任数据科学讲师。他在深度学习方面有着非凡的教学经验。让我们从机器人圈开始学习。

人做事情往往是有一定目的的。对于深度学习来说,无论你是开始创业,还是只是想探索(比如检测可疑物体),或者只是机器接管世界前的一个玩笑,都可以在这篇文章中找到你想要的答案。本文的目的不是提供神经网络教学本身的概述,而是指出有用的资源。

不要怕人工神经网络——启动容易!如果你真的想开始学习,你需要的只是真正的基础编程,非常简单的数学知识和几个机器学习概念的知识。接下来我就从这些要求开始逐一讲解。

在我看来,最好的办法是从高级交互模式(另见:高中生量子力学教材和光子量子游戏。所以我建议从Keras的图像识别任务开始,这是一个比较流行的Python神经网络库。当然,如果你想用比Keras更少的代码训练神经网络,唯一可行的选择就是用鸽子。是的,我是认真的:鸽子在识别癌症方面堪比人类科学家!

什么是深度学习?怎么这么爽?

深度学习是使用多层人工神经网络的机器学习技术的名称。人们经常使用人工智能这个术语,但除非你想听起来像科幻小说,否则它只适用于目前被认为“对机器来说太难了”的问题,这是一个快速发展的前沿领域。这是近几年爆炸式发展的一个领域,尤其是在视觉识别任务(包括很多其他任务)方面。参见:

电子前沿基金会对人工智能研究进展的衡量(2017)

与量子计算或核聚变不同,它是一种应用技术,而不是未来的某种可能性。有一个经验法则:

正常人一秒钟能完成的任何操作,现在都可以通过AI自动化来完成。吴恩达在推特上说。

有些人甚至更进一步,把这种说法延伸到科学家身上。谷歌和Facebook等公司如今处于领先地位并不奇怪。事实上,每隔几个月,我都会对超出我预期的事情感到惊讶,比如:

循环神经网络(RNN)在维基百科条目和LaTeX文章中生成虚假莎士比亚风格文章的不合理有效性。

艺术风格转移的神经算法(视频!)

实时人脸捕捉和再现

彩色图像着色

用于现实图像生成的即插即用生成网络

皮肤科医生对皮肤癌的分类和其他医学诊断工具

图像翻译(pix2pix)-从草图到照片

用机器人画猫、狗等动物的草图

看起来像是某种巫术。如果你好奇什么是神经网络,请观看以下系列视频,获得系统介绍:

斯蒂芬·韦尔奇揭示了神经网络

阿拉玛的视觉和互动神经网络基础指南

这些技术都是数据饥渴的。在希格斯数据集上查看逻辑回归、随机森林、深度学习的AUC评分曲线(数据点以百万计):

一般来说,即使有大量的数据,深度学习也比其他技术好,比如随机森林或者增强树。

让我们试一试!

我需要一些天网来运行吗?当然不是——像其他软件一样,你甚至可以在浏览器中完成:

TensorFlow游乐场用于点分离,并具有可视界面

ConvNetJS用于数字和图像识别

Keras.js演示—在浏览器中可视化和使用真实网络(例如,ResNet-50)

或者,如果你想在Python中使用Keras,请参考这个最小的例子——只是为了确保你可以在自己的电脑上使用。

Python与机器学习

我提到了基本的Python和机器学习作为需求。这些都包含在Python中的数据科学、统计学和机器学习的介绍中。

对于Python来说,如果你已经有了Anaconda发行版(覆盖了大部分数据科学软件包),你需要做的就是安装TensorFlow和Keras。

说到机器学习,在开始学习深度学习之前,不需要学习很多技能。然而,如果一个给定的问题可以用更简单的方法解决,这将是一个很好的做法。例如,随机森林通常可以被视为开锁工具,这在许多问题上是现成的。你需要知道的是我们为什么要训练然后测试分类器(验证其预测能力)。为了得到它的要点,从这个漂亮的基于树的动画开始:

斯蒂芬妮·易和托尼·朱的《机器学习的视觉介绍》

另外,了解logistic回归也是一个不错的选择,这是几乎任何神经网络分类的基础。

数学

深度学习(即多层次的神经网络)主要使用非常简单的数学运算。这里有几个例子,你几乎可以在任何网络上找到(看看这个列表,请不要害怕):

向量、矩阵、多维数组

加法,乘法

盘绕提取和处理本地模式

激活功能:sigmoid、tanh或relu添加非线性

Softmax将向量转换为概率

对数损失(交叉熵)聪明地惩罚错误的猜测(也见库尔巴克-莱布勒散度解释)

梯度和链式规则(反向传播)用于优化网络参数

随机梯度下降及其变体(如动量)。

如果你的专业背景是数学、统计、物理或者信号处理——很有可能你已经知道足够的知识可以开始学习了!

如果你最后一次接触数学是在高中,别担心。其实数学很简单,数字识别的卷积神经网络可以在电子表格中实现(不用宏)。请参考:带ExcelNet的深度电子表格。这只是一个原则性的解决方案——不仅效率低下,而且缺乏最关键的部分——培训新网络的能力。

向量运算的基础不仅对于深度学习很重要,对于很多其他的机器学习技术也很重要(比如我写的word2vec中)。要理解它,我建议从以下其中一个开始:

J·斯特罗姆、k·斯特罗姆和t·阿克宁-穆勒的沉浸式线性代数——一本具有完全交互式图形的线性代数书

应用数学和机器学习基础:深度学习书籍中的线性代数

布兰登·福瑟深度学习线性代数作弊表

既然书中很多地方都引用了NumPy,那么学习它的基础知识一定很有用:

尼古拉斯·罗杰尔《从Python到Numpy》

科学课:数字数组对象

同时,回忆一下其中包含的道理,就像数学家想的那样。从神奇的工作代码开始,绝对可以像乐高积木一样处理神经网络层。

结构

有几个深度学习库很受欢迎,包括TensorFlow,茶诺,Torch,Caffe。他们各有一个Python接口(当然现在Torch里也有pyTorch)。

那么,我们应该选择哪一个呢?第一,和往常一样,忘记所有细微的性能基准,因为过早的优化才是万恶之源。最重要的是从一个容易写(读)的开始,一个有很多在线资源的,一个可以安装在你电脑上没有太多bug的。

记住,核心框架是一个支持GPU的多维数组表达式编译器。当前的神经网络可以表示如下。但是,如果只是想用神经网络,通过最小功率规则,我建议从神经网络框架入手。例如...

Keras

如果你喜欢Python哲学(简洁,可读,首选方法),Keras就是为你量身定做的。它是一个先进的神经网络库,使用张量流或Anano作为后端。另外,如果你想有一个宣传屏,可能会有一个偏(或者说过分贴合)的排名:

深度学习框架状态(来自GitHub指标),2017年4月。——弗朗索瓦·乔克(Keras的创造者)

如果想咨询不同来源,基于arXiv文件而不是GitHub的活动,请参考Andrej Karpathy的机器学习动态。人气很重要,也就是说如果要搜索一个网络架构,搜索它(比如UNet Keras)可能会返回一个例子。那么应该从哪里开始学习呢?关于Keras的文档很好,它的博客是很有价值的资源。关于在Jupyter笔记本中使用Keras深度学习的完整交互介绍,真的推荐你去看看:

Valerio Maggio写的基于Keras和TensorFlow的深度学习

如果您想要更短的,请尝试以下方法之一:

埃里克·雷佩尔的书的一部分,使用喀拉斯和猫来可视化卷积神经网络

贝塔罗维奇作品《完全初学者的深度学习:基于Keras的卷积神经网络》

使用Python中复杂神经网络的手写数字识别

Keras有几个附件,对学习它特别有用。我为顺序模型创建了ASCII摘要来显示网络中的数据流(与

model.summary()

更好)。它显示层数、数据维度(x、y、通道)和空闲参数数量(待优化)。例如,对于用于数字识别的网络,它可能如下所示:

操作数据尺寸重量(N)重量(%)输入# # # # 32 32 3 Conv2D |/-896 0.1% relu # # # # 32 32 32 Conv2D |/-9248 0.7% relu # # # # # 30 32 max pool 2D Y max-0 0.0% # # # # # 15 15 32 drop | | |-0.0% # # # 15 15 32 Conv2D |/-18496 1.5% relu # # # # # # |/-36928 3.0% relu # # # # 13 13 64 maxpool 2d Y max-0 0.0% # # # # 6 6 64 drop | |-0 0.0% # # # # 6 64扁平化| | | | | | | | |-0 0.0% # # # # # 2304密集XXXXX-1180160 94.3% relu # # # # # 512 drop | | |-0.0% # # # # # 512密集XXXXX - 5130

你可能也有兴趣用keras-tqdm的更好的进度条,用颤探索每一层的激活功能,用keras-vis检测注意力映射或者把keras模型转换成Java,在Keras.js浏览器中运行。说语言,还有一个R接口给Keras。

张量流

如果不是Keras,那么我建议从单个TensorFlow开始。这是一个更低级更啰嗦的工具,但是可以直接优化各种多维数组(和张量)运算。以下是一些不错的资源:

官方的TensorFlow教程很不错

马丁·诺尔作品中的张量流和深度学习。

艾默里克·达米安的TensorFlow教程和初学者示例(使用Python 2.7)

内森·林茨使用谷歌张量流框架的简单教程

无论如何,TensorBoard都可以轻松跟踪培训过程。也可以通过回调和Keras一起使用。

其他的

antano和TensorFlow差不多,但是有点老,比较难上手。例如,您需要手动编写对变量的更新。典型的神经网络图层不包括在内,所以常用的是Lasagne之类的库。如果你想找个地方开始,我喜欢下面的介绍:

马雷克·赖作品的入门教程

同时,如果你在Torch或者PyTorch中看到一些好的代码,不要害怕安装运行!

数据集

每一个机器学习问题都需要数据。你不能只告诉它“检查这张照片里有没有猫”就指望电脑告诉你答案。你需要展示很多猫的例子和没有猫的图片,(希望)它会学会把它们推广到其他情况。所以,你需要一些数据来开始。这不是机器学习或者深度学习的缺点——这是任何学习的基本属性!

在潜入未知水域之前,先看看一些流行的数据集。其中最关键的部分就是很受欢迎。这意味着你可以找到很多例子。并保证这些问题可以通过神经网络解决。

手写数字识别

许多好的想法在MNIST是行不通的(比如批量规格)。相反,许多不好的想法可能会在MNIST身上奏效,而不会被转移到真正的[计算机视觉]上。

弗朗索瓦·乔莱特的推特

但是,我建议从keras.datasets中包含的MNIST数字识别数据集(60k灰度28x28图像)开始,你不需要掌握它,只是为了得到它的工作原理(或者在本地机器上测试keras的基础知识)。

不是清单

其实我曾经指出过,AI工作者面临的最大挑战就是回答这个问题:什么是“A”和“我”?

——道格拉斯·霍夫斯塔德(1995)

一个比较有趣的数据集,对于经典的机器学习算法来说比较难,就是notMNIST(字母A-j来自奇怪的字体)。如果你想从它开始,这里是我的代码,不是Keras中的MNIST加载和逻辑回归。

研究中心

如果对图像识别感兴趣,有CIFAR数据集和32x32照片数据集(也可以在keras.datasets中找到)。它有两个版本:10个简单的课程(包括猫、狗、青蛙和飞机)和100个更困难和微妙的课程(包括海狸、海豚、水獭、海豹和鲸鱼)。我强烈建议从CIFAR-10开始,一个简单的版本。小心,更复杂的网络可能要花相当长的时间(我7岁的时候在Macbook Pro的CPU上运行了12个小时)。

更多的

深度学习需要大量数据。如果您想从头开始训练网络,即使是在低分辨率(32x32)下,您也可能需要多达10k个图像。尤其是数据很少的情况下,并不能保证网络会学到什么。那么如何解决这个问题呢?

使用非常低的分辨率(如果你的眼睛可以看到,你不需要使用更高的分辨率)

获取大量数据(对于256x256这样的图像,可能有数百万个实例)

再培训已经看到了很多网络

生成更多数据(包括旋转、移动和变形)

通常,它是所有提到的东西的组合。

站在巨人的肩上

创建一个新的神经网络与烹饪有很多共同之处——典型的配料(层)和食谱(流行的网络架构)。最重要的烹饪比赛是ImageNet视觉识别挑战赛,它从50万张照片数据集中识别出数百个类别。看看这些神经网络架构,我们通常使用224x224x3输入(Eugenio Culurciello的图表):

圆的大小代表参数的个数(很多!)。但是没有提到SqueezeNet,这种架构大大减少了参数的数量(比如50倍)。

几个关键的图像分类网络可以很容易地从keras.applications模块加载:Xception,VGG16,VGG19,ResNet50,InceptionV3。其他的不是即插即用的,但是在网上还是很容易找到的——没错,Keras有SqueezeNet。这些网络有两个目的:

它们提供了有用的构件和架构

当使用具有预训练权重的架构时,它们是再训练(所谓的转移学习)的最佳候选

图像的其他重要网络架构:

用于生物医学图像分割的卷积网络

基于Keras的视网膜血管分割和卷积神经网络

Keras用于为Kaggle的超声神经细分比赛提供深入的学习指导

艺术风格的神经算法

在Keras中执行神经风格转移和神经涂鸦——Somshubra Majumdar

美国有线电视新闻网在图像分割中的简史——从“伪美国有线电视新闻网”到“屏蔽美国有线电视新闻网”—— DH Ruv Parthasarathy

另一组意见:

神经网络动物园

如何训练你的深层神经网络——多少层,参数等。

基础

对于非常小的问题(比如MNIST,notMNIST),你可以使用个人电脑——即使是笔记本电脑,计算也是在CPU上进行的。

对于小问题(比如CIFAR,不讲道理的RNN),你还是可以用PC的,但是需要更多的耐心和取舍。

对于中大型问题,基本上唯一的办法就是用一台图形处理器(GPU)功能强大的机器。例如,我们花了2天时间培训一个卫星图像处理模型,以便在Kaggle进行竞争。请参考:

基于图像分割的卫星图像深度学习

在一个强大的CPU上,需要几个星期,请看:

贾斯廷·约翰逊流行的卷积神经网络模型的基准

使用功能强大的GPU最简单最便宜的方法就是每小时租一台远程机。可以用亚马逊(不仅仅是书店!),这里有一些指导方针:

Keras和GPU——在亚马逊EC2上——一步一步的指南,由我的学生Mateusz Sieniawski完成

在AWS上的GPU上运行Jupyter笔记本电脑:弗朗索瓦·乔莱特入门指南

深造

我鼓励你与代码互动。例如,notMNIST或CIFAR-10可以是一个很好的起点。有时候,最好的开始方式是从别人的代码运行,然后看看参数修改后会发生什么。

为了学会操作,这一个是杰作:

CS231n:安德烈·卡帕斯写的卷积神经网络的视觉识别和语音视频

对于书籍,有一个很好的例子,从介绍数学和机器学习的学习环境开始(甚至用我最喜欢的方式覆盖对数损失和熵)!)

《深度学习》,麻省理工学院出版社出版,伊恩·古德费勒、约舒·本吉奥和亚伦·库维尔编辑。

或者,可以使用(可能有利于互动素材的介绍,但我觉得风格有点长):

神经网络和深度学习

其他材料

有很多深度学习应用(不只是图像识别!)。我收集了一些入门资料,涵盖了他们的方方面面(请注意:他们有各种各样的困难)。不要试图把它们都读完——我把它们列为灵感,而不是恐吓!

可读性:

循环神经网络的不合理有效性——安德烈·卡普西

卷积神经网络如何看待世界——Keras博客

当看到善良时,自愿神经网络会看什么——克拉辉博客(NSFW)

——Harish Nrayanan,艺术风格传递的卷积神经网络

梦、医学和康复——我的幻灯片(NSFW),我正在考虑把它变成一个基于常识错误VS人类学习的更长的机器后学习。

技术:

《是的,你应该明白反向传播》——安德烈·卡帕西

基于喀拉斯——普拉卡什·瓦纳帕利的迁移学习

“用50行代码生成对抗网络”(pytorch)

《最小和干净的强化学习示例》

梯度下降优化算法综述——塞巴斯蒂安·路德

风格转换的最佳选择——斯拉夫·伊万诺夫

“在喀拉斯建立自动编码器”——弗朗索瓦·乔莱特

理解长期和短期记忆网络模型(LSTM)-克里斯·奥拉

《RNN与》。《LSTMs》——罗汉·卡普

牛津深度自然语言处理2017课程

资源列表

如何开始学习深度学习-OFIR出版社

深度学习指南—— YN 2

最受欢迎的:

R/MachineLearning Reddit频道涵盖了大部分最新内容

stellet . pub——一个交互式的、可视化的、开放的机器学习研究期刊,附有解释性文章

我的链接在pinboard.in/u:pmigdal/t:deep-learning-although,只能保存,不能自动推荐

@fastml_extra Twitter频道

git XIV-提供文件和代码

不要害怕看学术论文。有些文章写得很好,见解很深刻(如果你有Kindle或者其他电子书阅读器,我推荐Dontprint)。

数据(通常具有挑战性)

Kaggle

根据单导联心电图记录进行房颤分类:2017年心理挑战中的生理网络/计算

2017年动物竞赛(675,000张图片,5000种),参见蘑菇人工智能

希望这篇文章能让你对深度学习有更深的理解。

1.《keras 基于Keras的Deep Learning学习入门指南》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。

2.《keras 基于Keras的Deep Learning学习入门指南》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。

3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/junshi/1254830.html

上一篇

岿然不动 你只要找到一个平衡点,就会安静下来而岿然不动

下一篇

如约而至下一句是什么 十句话|“如约而至”是个多么美好的词,等的辛苦,却从不辜负

ker 基于Keras的Deep Learning学习入门指南

  • ker 基于Keras的Deep Learning学习入门指南
  • ker 基于Keras的Deep Learning学习入门指南
  • ker 基于Keras的Deep Learning学习入门指南

成都房协网 同一栋楼不同单元房源价差1500元/㎡,成都人居然这样选择!附选房数据

本期与闽江音乐95.5联合推出“闽江新楼市”节目 音频可以戳: 成都新楼市正文|白杨 还记得上次我们讲的一个楼盘,同一栋楼有两个不同的单元,单价差1500元/㎡? 其实到现在也没人说清楚为什么会有这么大的差价。 选房结果出来了,很“冰与火”,最...

综合玄机解析历史记录 史上最深度解析财务报表分析实操的11种方法!(收藏!)

正式介绍 财务报表的分析主要是以财务报表的数据为基础,而以金额表示的会计信息除了本身不能说明更多的问题。因此,有必要根据需要,采用一定的方法,对这些会计数据进行适当的重组或匹配,分析它们之间的因果关系或关联程度,观察它们的发展趋势,推断出可能的...

数据酷客 赋能商家,酷客SCRM开启私域流量新风向

  • 数据酷客 赋能商家,酷客SCRM开启私域流量新风向
  • 数据酷客 赋能商家,酷客SCRM开启私域流量新风向
  • 数据酷客 赋能商家,酷客SCRM开启私域流量新风向

云南白药急救包 深度剖析云南白药,值得长拿

  • 云南白药急救包 深度剖析云南白药,值得长拿
  • 云南白药急救包 深度剖析云南白药,值得长拿
  • 云南白药急救包 深度剖析云南白药,值得长拿

数据保护怎么添加 大数据征信时代,如何加强个人信息保护?

目前,我国信用信息市场分为传统信用信息系统和大数据信用信息系统。前者是基于央行信用信息系统的金融信用信息基础数据库,后者是依托互联网金融的大数据信用信息系统。 信用信息领域的个人权益保护作为金融消费者权益保护的重要组成部分,是提高个人信用信息系...

存储空间清理 苹果存储空间深度清理的9种方法

  • 存储空间清理 苹果存储空间深度清理的9种方法
  • 存储空间清理 苹果存储空间深度清理的9种方法
  • 存储空间清理 苹果存储空间深度清理的9种方法

苹果的最简单储存方法 苹果存储空间深度清理的9种方法

  • 苹果的最简单储存方法 苹果存储空间深度清理的9种方法
  • 苹果的最简单储存方法 苹果存储空间深度清理的9种方法
  • 苹果的最简单储存方法 苹果存储空间深度清理的9种方法