Pytorch 深度学习实践 day01(背景)

  1. 准备
  • 线性代数,概率论与数理统计,Python
  • 理解随机变量和分布之间的关系
  1. 人类智能和人工智能
  • 人类智能分为推理和预测
    Pytorch 深度学习实践 day01(背景)_第1张图片
  • 推理:通过外界信息的输入,来进行的推测
    Pytorch 深度学习实践 day01(背景)_第2张图片
  • 预测:例如,看到一个真实世界的实体,把它和抽象概念联系起来
    Pytorch 深度学习实践 day01(背景)_第3张图片
  • 人工智能(机器学习):把以前我们用来做推理或预测的大脑,变成算法
  • 在机器学习和深度学习中,常用的是监督学习,即有标签的数据集
    Pytorch 深度学习实践 day01(背景)_第4张图片
  • 对于一般算法思维方式:我们遇到特定问题后,人工设置一套计算过程
  • 对于机器学习:我们首先有一个数据集,然后在数据集中把我们想要的算法给找出来。过程为:先提一个模型,然后拿数据做训练,训练完了再验证,如果好用就去部署
  1. 人工智能的发展
    Pytorch 深度学习实践 day01(背景)_第5张图片
  • 基于规则的系统(早期的人工智能),拿到输入,手动设计程序,再得到输出。很依赖于如何手动设计程序,即如何制定规则,需要有非常专业的背景知识,且很容易遗漏情况导致BUG,最终会导致规则越来越庞大,导致人类很难维护
  • 经典的机器学习:拿到输入,手动特征提取,接入学习器,再找到特征和输出之间的映射
  • 早期表示学习:拿到输入,在特别复杂的输入中,通过一些算法或学习器提取出一些特征,接入其他学习器,再找到特征和输出之间的映射。特征的学习器和模型映射学习器是分开训练的,特征的学习器的训练是无监督学习,模型映射学习器的训练是监督学习
    Pytorch 深度学习实践 day01(背景)_第6张图片
  • 机器学习的维度诅咒:对于数据库里的每一个字段都叫一个feature,feature越多,对数据集的样本数量就越多。通过大数定理,采样越多那么和真实数据的分布越贴近。只有一个feature,我们可以取10个样本,有两个feature,我们可以取1010个样本,有三个feature,我们可以取1010*10个样本,有N个feature,我们可以取10^N个样本。同时数据集的成本很高,特别是打了标签的数据集,而且我们有时无法获得这么多数据,那么就只能降低维数N,压缩特征,同时还要保持高维空间里的一些度量信息。降维最主要的目的是,因为学习器面对着维度诅咒。
  • 深度学习:拿到输入,直接输入原始特征,设计一组额外的层用来提取特征,接入学习器,再找到特征和输出之间的映射。提取特征的层是在模型映射学习器里的,所以它们的训练过程是统一的,这是深度学习和以前的差别。
  • 传统的机器学习策略图如上。
    Pytorch 深度学习实践 day01(背景)_第7张图片
  • SVM作为传统的机器学习算法有以上三个缺点:人工提取特征有很多限制,会遗漏很多。处理大数据集的效果不好。现在的数据更多的是无结构数据,SVM对此还需要先做特征提取器。
  1. 神经网络
    Pytorch 深度学习实践 day01(背景)_第8张图片

  • 生物学上的发现:大脑处理信息是分层的,浅层视觉神经元主要检测线条的移动,高层的视觉神经元再来检测是猫还是狗。
  • 通过仿生学的方法来构建一个神经元,为感知机。把很多神经元连起来就成为神经网络。
  1. 反向传播
  • 神经网络中最重要的算法是反向传播,反向传播实际上就是求偏导数,反向传播的核心是计算图。也可以用解析式来求偏导数,但因为随着网络层数的增多,解析式很难写出。同时反向传播的计算图很灵活,可以构造非常复杂的算法。
  • 计算图中,每一步的计算(每一个节点)都只能是原子计算 ,且在做前馈运算时,每一步的偏导数就可以求出来了。最终的偏导数可以根据链式法则求出,如果有多条路径,那么需要把所有路径的最终偏导数相加。

你可能感兴趣的:(深度学习,pytorch,人工智能)