深度学习:算法到实战——绪论与神经网络基础

本文最后更新于:2023年1月27日 凌晨

人工智能的定义:

人工智能是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门新的技术科学。
人工智能是计算机科学的一个分支,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器,该领域的研究包括机器人、语言识别、图像识别、自然语言处理和专家系统等。人工智能从诞生以来,理论和技术日益成熟,应用领域也不断扩大,可以设想,未来人工智能带来的科技产品,将会是人类智慧的“容器”。人工智能可以对人的意识、思维的信息过程的模拟。人工智能不是人的智能,但能像人那样思考、也可能超过人的智能。但是人工智能的创造力是十分低下的。

机器学习的定义

  1. 最常用定义:“计算机系统利用经验提高自身的性能”
  2. 可操作定义:“机器学习本质是一个基于经验数据的函数估计问题”
  3. 统计学定义:“提取重要模式、趋势,并理解数据,即从数据中学习”

总而言之——从数据中自动提取知识。

机器学习学什么?

问题规模/准则复杂度/数据/对机器学习有意义的模式/是否有解析解

去找到一个有意义的模式,解决一个没有解析解的问题。

  1. 模型——问题建模,确定假设空间
  2. 策略——确定目标函数
  3. 算法——求解模型参数

模型分类

  1. 数据标记维度:监督学习VS无监督学习(半监督学习、强化学习)

    监督和无监督是指是否有数据的标记

    强化学习使用未标记的数据,但可以知道离目标越来越近还是越来越远(奖励反馈)

  2. 数据分布维度:参数模型VS无参数模型

    参数模型:对数据分布进行假设,待求解的数据模式/映射可以用一组有限且固定数目的参数进行刻画(线性回归/逻辑回归/K均值聚类)

    非参数模型:不对数据分布进行假设,数据的所有统计特征都来源于数据本身(SVM/决策树/随机森林)

  3. 建模对象维度:判别VS生成模型

    生成模型:对输入X、Y的联合分布P(X,Y)建模

    判别模型:对已知的输入X条件下输出Y的条件分布P(X,Y)建模

人工智能——>机器学习——>深度学习

传统机器学习VS深度学习

传统的机器学习需要人去花时间标注数据并绞尽脑汁选择或设计一些特征(形状、纹理颜色等等),再用某种分类器训练和测试,若结果不好还需要找到更合适的特征。

深度学习需要花时间收集并标注特征,之后挑选一些深度模型,选几组模型超参数,交给机器绞尽脑汁优化学习模型中的数千万/数亿权重参数。

后深度学习时代,期望:花少量时间收集并标注少量数据,交给机器绞尽脑汁完成任务。

神经网络结构的发展

51344A8DF42E0C93B56715E75EF359BC

深度学习的“不能”与解释性

  1. 算法输出不稳定,容易被攻击
  2. 模型复杂度高,难以纠错和调试
  3. 模型层级复合度高,参数不透明
  4. 端到端的训练方式对数据依赖性强,模型增量性差
  5. 专注直观感知类问题,对开放性推理问题无能为力
  6. 人类知识无法有效引入进行监督,机器偏见难以避免

image-20230126233835983

神经网络基础

神经元

image-20230126234558851

多个输入,每个输入有权值和强度,输入和超过一个阈值时,神经元就会被激活,这模仿了生物学上的神经元。

为什么需要激活函数f

image-20230126234857831

激活函数举例:

image-20230126234958169

image-20230126235057131

感知器

感知器是生物神经细胞的简单抽象,神经细胞结构大致可分为:树突、突触、细胞体及轴突。单个神经细胞可被视为一种只有两种状态的机器——激动时为‘是’,而未激动时为‘否’。

神经细胞的状态取决于从其它的神经细胞收到的输入信号量,及突触的强度(抑制或加强)。当信号量总和超过了某个阈值时,细胞体就会激动,产生电脉冲。电脉冲沿着轴突并通过突触传递到其它神经元。为了模拟神经细胞行为,与之对应的感知机基础概念被提出,如权量(突触)、偏置(阈值)及激活函数(细胞体)。

人工神经网络领域中,感知器也被指为单层的人工神经网络,以区别于较复杂的多层感知器。 作为一种线性分类器,(单层)感知器可说是最简单的前向人工神经网络形式。尽管结构简单,感知器能够学习并解决相当复杂的问题。感知器主要的本质缺陷是它不能处理线性不可分问题。

万有逼近定理

image-20230127000354737

image-20230127000409283

看起来层数越多越好,但事实是如此吗?

神经网络每一层的作用

image-20230127000557491

可以将复杂问题转化为简单问题,比如将非线性问题变换为线性问题

image-20230127000715856

更宽或更深?

深度的贡献是指数级的,而宽度是线性级的,所以网络的深度更重要。

但是有的时候层数加的多了之后,反而训练效果更差了,这是为什么?

梯度消失问题

误差反向传播

image-20230127001624421

梯度的定义:是一个向量,方向是最大方向导数的方向,模为方向导数的最大值。

image-20230127001744520

image-20230127002346704

若初始点选的不好,则有可能最终得到的是局部的最优解,而非全局的最优解。

image-20230127003316764

梯度消失问题是因为误差通过梯度传播造成的,深度过高时,误差会无法传播,因为反向传播前面的乘项太多了。三层神经网络是主流。

逐层预训练(Pre-training)

可以解决局部最小值和梯度消失问题

image-20230127003908153

预训练是为了找到一个还不错的权重并作为初值

如何找到这个权值呢?

受限玻耳兹曼机和自编码器

image-20230127004314370

自编码器

image-20230127004500690

假设输出与输入相同

image-20230127004628332

受限玻耳兹曼机

image-20230127004833545

image-20230127004850968


深度学习:算法到实战——绪论与神经网络基础
https://jialiangz.github.io/2023/01/26/DL-week1/
作者
爱吃菠萝
发布于
2023年1月26日
更新于
2023年1月27日
许可协议