深度学习简介

1.人工智能

人工智能、机器学习和深度学习之间的关系,如下图:

1

人工智能有多种实现形式,机器学习只是其中的一种。在机器学习之外,早期实现方式主要是专家系统——某一领域内的专家将解决问题的方法编码进系统中,代替专家对问题进行决策。这一时期的AI也称为「符号人工智能」。

2.机器学习

通常的编程工作是,开发者将处理数据的逻辑写入程序,使程序可以按照此逻辑对输入的数据进行处理,并输出开发者所希望的答案。

机器学习所做的是,开发者提供原始数据和答案,由机器去从输入数据和答案之间学习处理逻辑,学习到输入数据和答案之间的联系。使用一张图来表示为:

2

我们使用输入数据和答案来训练计算机(模型),即下面的输入数据和期望输出数据。

说明

原始数据,可以理解为问题。

举个例子:我有华氏度和摄氏度的对应关系,但是我不知道他们的转换公式,我想通过机器学习的方式学习这个公式。那么,输入华氏度,计算机给出对应的摄氏度,则华氏度是输入数据,摄氏度是输出数据。

输出数据一般指计算机根据其学习情况,套用学习到的规律,依据输入数据得出的结果,即计算机计算得出的摄氏度。

期望的输出数据,是指正确答案,即正确的摄氏度。

3.深度学习

深度学习是一种从数据学习数据特征的数学框架,是机器学习的一种实现手段。深度学习的“深度”主要体现在框架的多层,每一层的输出作为下一层的输入。

3

4.神经网络

神经网络是深度学习的主要方式,神经网络的定义,来自维基百科:

人工神经网络(英语:Artificial Neural Network,ANN),简称神经网络(Neural Network,NN)或类神经网络,在机器学习和认知科学领域,是一种模仿生物神经网络(动物的中枢神经系统,特别是大脑)的结构和功能的数学模型或计算模型,用于对函数进行估计或近似。神经网络由大量的人工神经元联结进行计算。大多数情况下人工神经网络能在外界信息的基础上改变内部结构,是一种自适应系统,通俗地讲就是具备学习功能。现代神经网络是一种非线性统计性数据建模工具,神经网络通常是通过一个基于数学统计学类型的学习方法(Learning Method)得以优化,所以也是数学统计学方法的一种实际应用,通过统计学的标准数学方法我们能够得到大量的可以用函数来表达的局部结构空间,另一方面在人工智能学的人工感知领域,我们通过数学统计学的应用可以来做人工感知方面的决定问题(也就是说通过统计学的方法,人工神经网络能够类似人一样具有简单的决定能力和简单的判断能力),这种方法比起正式的逻辑学推理演算更具有优势。
和其他机器学习方法一样,神经网络已经被用于解决各种各样的问题,例如机器视觉和语音识别。这些问题都是很难被传统基于规则的编程所解决的。

神经网络由不同数量的层组成,层由不同数量的神经元组成,神经元是一个线性函数:

y=kx+b

其中 k 称为权重(weight),b 称为偏移(bias),这个函数构成一个神经元。

不同数量的神经元构成一个层(layer),而不同类型的神经元所组成的层,类型也不相同。如图。

4

图中每一列代表一个层,相邻的层之间的神经元进行连接,数据从上一层传递到下一层。每一个圆点表示一个神经元,即一个线性函数。

5.神经网络的学习过程

神经网络的学习过程就是:

通过不断地输入数据,并根据输出结果,对网络中神经元中地参数值进行自动调节,使得输入数据通过网络后的输出,可以与期望的输出尽可能地相似。调节参数的过程,称为神经网络的学习。

而这个学习过程是自动进行的,即,网络中参数的调节,是计算机自动完成的。大致基本过程为:

5

图中:

  • 这是一个两层模型,输入层和输出层,没有中间层。
  • Input X为输入数据,输入数据进入第一层(线性函数中的 x),经过计算后的输出,作为输入进入第二层,作为第二层的 x,经过计算后输出为 y’ ,作为整个模型的输出(预测结果)。
  • y’ 与真实正确的数据 y 使用指定的损失函数进行比较,得出损失值(Loss score)。
    • 注:损失函数,用于衡量预测结果和真实结果之间差距的函数,不是某一个具体的函数,对于不同的问题,使用不同的损失函数。
  • 优化器使用损失值来决定如何对模型中的参数进行更新,更新的目标是:使得损失值尽可能得小
    • 注:优化器,用于根据损失值来决定如何更新模型参数得算法。不是某一个具体的算法,对不不同问题,使用不同的优化器,一般在使用时,指定学习率(Learning rate),确定每一次优化中的优化幅度。
  • 更新参数后,进行下一次循环,不断循环直到达到指定的循环次数,这个次数称作训练轮次(epoch)。

6.机器学习的常用工具

机器学习框架:

  • Tensorflow(Google)
  • PyTorch(Facebook)

编程工具:

  • Anaconda(用于管理Python版本和工具包,数据科学的常用Python环境,集中管理虚拟环境)
  • JupyterLab(可交互式编程环境,可以分段运行代码,在代码中嵌入Markdown,实时显示代码运行结果,数据科学常用的工具,目前也被广泛运用在教育行业中)

常见依赖库:

  • CUDA(Nvidia提供的,让程序可以使用Nvidia显卡进行计算的库,AMD没有)
  • CuDNN(用于深度神经网络的GPU加速库)
  • NumPy(科学计算库,高性能矩阵运算)
  • Pandas(处理表格数据的常用工具库)
  • matplotlib(绘图工具库)

常见文件格式:

  • HDF5(用于保存大型数据集)
  • CSV
  • Excel

深度学习简介
https://maphical.cn/2021/05/ai-intro/
作者
MaphicalYng
发布于
2021年5月9日
许可协议