keras之父《python深度学习》笔记 第一章

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

《Python 深度学习》第一章 什么是深度学习

  • 前言
  • 一、人工智能、机器学习与深度学习
    • 1.人工智能
    • 2.机器学习
    • 3.从数据中学习表示
    • 4.深度学习之“深度”
    • 5.解析深度学习原理


前言

本书由 Keras 之父、现任 Google 人工智能研究员的弗朗索瓦 · 肖莱(Francois Chollet)执笔,详尽介绍了用 Python 和 Keras 进行深度学习的探索实践,包括计算机视觉、自然语言处理、产生式模型等应用。书中包含30多个代码示例,步骤讲解详细透彻。由于本书立足于人工智能的可达性和大众化,读者无须具备机器学习相关背景知识即可展开阅读。在学习完本书后,读者将具备搭建自己的深度学习环境、建立图像识别模型、生成图像和文字等能力。本书前四章为基础内容,后面五章为代码实战。


提示:以下是本篇文章正文内容,下面案例可供参考

一、人工智能、机器学习与深度学习

首先,在提到人工智能时,我们需要明确定义所讨论的内容。什么是人工智能、机器学习
与深度学习(见图1-1)?这三者之间有什么关系?

keras之父《python深度学习》笔记 第一章_第1张图片

1.人工智能

人工智能诞生于20世纪50年代,简洁的定义如下:努力将由人类完成的智力任务自动化。最开始的人工智能是由程序员精心编写足够多的明确规则来处理知识,这一方法被称为符号主义人工智能。
符号主义人工智能只能处理定义明确的逻辑问题,比如下国际象棋。但它难以解决复杂的、定义模糊的问题。比如图像分类、语音识别和语言翻译。在这些领域,一种新的方法效果更好,这就是机器学习。

2.机器学习

十九世纪三十年代,英国数学家、发明家查尔斯·巴贝奇设计了分析机。分析机采用的一些计算机思想延用至今。分析机包括的存储和碾磨,就非常类似于今天计算机中采用的内存和处理器。输入和输出都采用打孔卡(十九世纪Jacquard发明的一种卡片)进行。巴贝奇1834年开始进行分析机的研究工作。他把分析机制造成了由黄铜配件组成,用蒸汽驱动的机器。当时,分析机的出现并没有带来石破天惊的震撼,也没有被广泛的接受。1843年,艾弗莱斯伯爵夫人对这个发明做过评论:“分析机谈不上能创造什么东西。它只能完成我们命令它做的任何事情,它的指责是帮助我们去实现我们已知的事情。”
图灵在1950年发表的论文《计算机器和智能》中,将上述评论成为“艾弗莱斯伯爵夫人的异议”。图灵在论文中介绍了图灵测试以及很多人工智能的重要概念,而且他还提出了自己的观点:通用计算机是可以学习和创新的。
图灵提出了一种新的编程范式:利用机器学习,人们输入数据和这些数据的答案,系统输出规则。这些规则可以用在新的数据中,利用系统输出的规则得到答案。

keras之父《python深度学习》笔记 第一章_第2张图片

3.从数据中学习表示

为了给出深度学习的定义并搞清楚深度学习与其他机器学习方法的区别,我们首先需要知
道机器学习算法在做什么。前面说过,给定包含预期结果的示例,机器学习将会发现执行一项
数据处理任务的规则。因此,我们需要以下三个要素来进行机器学习。
输入数据点。例如,你的任务是语音识别,那么这些数据点可能是记录人们说话的声音
文件。如果你的任务是为图像添加标签,那么这些数据点可能是图像。
预期输出的示例。对于语音识别任务来说,这些示例可能是人们根据声音文件整理生成
的文本。对于图像标记任务来说,预期输出可能是“狗”“猫”之类的标签。
衡量算法效果好坏的方法。这一衡量方法是为了计算算法的当前输出与预期输出的差距。
衡量结果是一种反馈信号,用于调节算法的工作方式。这个调节步骤就是我们所说的学习。
机器学习模型将输入数据变换为有意义的输出,这是一个从已知的输入和输出示例中进行
“学习”的过程。因此,机器学习和深度学习的核心问题在于有意义地变换数据,换句话说,在
于学习输入数据的有用表示(representation)——这种表示可以让数据更接近预期输出。在进一
步讨论之前,我们需要先回答一个问题:什么是表示?这一概念的核心在于以一种不同的方式
来查看数据(即表征数据或将数据编码)。例如,彩色图像可以编码为RGB(红- 绿- 蓝)格
式或HSV(色相- 饱和度- 明度)格式,这是对相同数据的两种不同表示。在处理某些任务时,
使用某种表示可能会很困难,但换用另一种表示就会变得很简单。举个例子,对于“选择图像中所有红色像素”这个任务,使用RGB 格式会更简单,而对于“降
低图像饱和度”这个任务,使用HSV 格式则更简单。机器学习模型
都是为输入数据寻找合适的表示——对数据进行变换,使其更适合
手头的任务(比如分类任务)。

所有机器学习算法都包括自动寻找这样一种变换:这种变换可以根据任务将数据转化为更加
有用的表示。这些操作可能是前面提到的坐标变换,也可能是线性投影(可能会破坏信息)、平移、
非线性操作(比如“选择所有x>0 的点”),等等。机器学习算法在寻找这些变换时通常没有什么
创造性,而仅仅是遍历一组预先定义好的操作,这组操作叫作假设空间(hypothesis space)。
这就是机器学习的技术定义:在预先定义好的可能性空间中,利用反馈信号的指引来寻找
输入数据的有用表示。这个简单的想法可以解决相当多的智能任务,从语音识别到自动驾驶都
能解决。

4.深度学习之“深度”

数据模型中包含多少层,这被称为模型的深度。而深度学习,就是数据模型中有很多层。现代深度学习模型通常有几十上百个连续层,而其他机器学习方法可能只学习几层甚至一两层数据表示。所以传统机器学习也被称为浅层学习。
在深度学习中,这些分层表示几乎总是通过叫作神经网络(neural network)的模型来学习
得到的。神经网络的结构是逐层堆叠。神经网络这一术语来自于神经生物学,然而,虽然深度
学习的一些核心概念是从人们对大脑的理解中汲取部分灵感而形成的,但深度学习模型不是大
脑模型。没有证据表明大脑的学习机制与现代深度学习模型所使用的相同。就我们的目的而言,深度学习是从数据中学习表示的一种数学框架。
深度学习算法学到的表示是什么样的?我们来看一个多层网络(见图1-5)如何对数字图像
进行变换,以便识别图像中所包含的数字。

keras之父《python深度学习》笔记 第一章_第3张图片
如图1-6 所示,这个网络将数字图像转换成与原始图像差别越来越大的表示,而其中关于
最终结果的信息却越来越丰富。你可以将深度网络看作多级信息蒸馏操作:信息穿过连续的过
滤器,其纯度越来越高(即对任务的帮助越来越大)。
这就是深度学习的技术定义:学习数据表示的多级方法。这个想法很简单,但事实证明,非常简单的机制如果具有足够大的规模,将会产生非常好的效果。

keras之父《python深度学习》笔记 第一章_第4张图片

5.解析深度学习原理

机器学习是解析输入映射到目标的规则。而深度神经网络是通过很多层数据变换来得到输入到目标的映射的,那么这个过程中具体都有什么呢,通过下面的例子可以看到这个过程。

神经网络对每层输入的数据的具体操作是一系列参数,本质就是讲输入的数据用这一系列参数来做调整,使其一步步接近结果,这些参数也被称为权重。学习的意思是给神经网络的所有层找到恰当的权重值,这些权重值能够将输入每个示例都与目标一一正确对应。但是通常的神经网络包含几十上百层,可能包含海量的权重值,为海量的权重值寻找恰到数值是十分困难的。

在神经网络中,衡量神经网络真实结果值和预测值直接的距离,是通过损失函数计算的。损失函数的输入是预测值与真是结果值,结果是损失值。通常情况下,损失值越小说明效果越好。我们可能无法得到一个预测完全准确的神经网络,但是通过损失函数,我们可以寻找到预测偏差最小的神经网络。

深度学习中,主要是调节权重值来减小损失函数。这种调节是通过反向传播算法来实现的,在深度学习中执行这个操作的叫做优化器。一开始神经网络的初始值是随机生成的,通过优化器不断调节权重值,通过足够多的迭代之后,找到损失值最小的权重值,这就是深度学习的具体过程。

你可能感兴趣的:(深度学习)