目录
学习目标:
- 如何使用pytorch来实现一个学习系统。
- 理解最基本的神经网络和深度学习的概念。
要求:
- 线性代数。
- 概率论和数理统计。
- Python语法。
监督学习和无监督学习:
监督学习: 监督学习是指在输入数据和输出数据之间建立映射关系,并利用已有的标注数据进行训练。具体而言,就是通过输入特征和相应的标签数据进行建模和训练,以便在模型中预测新的数据。监督学习可以应用于分类和回归等问题。
无监督学习: 无监督学习是指在输入数据中寻求一些结构,并从这些结构中提取相关信息和特征,而不需要额外的标签数据。换句话说,无监督学习是在没有先验知识的情况下自动发现数据中的模式和规律。无监督学习可以应用于聚类、异常检测和特征提取等问题。
总的来说,监督学习需要有标注数据,可以明确地给出输入和输出之间的映射关系;而无监督学习则不需要标注数据,通过对数据本身的分析和挖掘来发现数据的内在结构及规律。
机器学习中的算法与常规概念中的算法产生方式不同:常规算法是人为设计出来的,包含:穷举法,贪心法,分治法,动态规划法。而机器学习里面的算法是使用数据集找出想要的算法。具体实现是提出模型,用数据进行训练,训练完之后进行验证,好用的话就部署它。(基于统计的方法)。
深度学习基本方法:
经典的机器学习方法:
- 数据输入
- 手工特征提取特征,转化为向量,或称为张量
- 获得的向量和输出之间要建立映射关系(Mapping)
表示学习的改进:
第二步对特征的提取也能通过学习得出,避免了人工提取特征的麻烦。
为什么要进行特征提取:
机器学习里面有一个话题叫做维度诅咒,输入(input)的每一个数据样本的特征(feature)的数量越多,对样本数量的需求量就越多。
假设我们的数据只有一个feature,我们想在这里面进行采样,由大数定律可知,采样越多,和数据真实的分布就越贴近。假设十个样本密度就已经足够达到要求。如果是在两个feature中进行采样,两个特征x1,x2,就构成一个平面,在里面进行采样的话,需要行和列都采取十个样本,即需要一百个样本才能使密度达到要求。同理,三个特征对应三维空间,需要一千个数据样本,n个feature需要10的n次方个样本。采样数量随着特征数量指数递增。收集数据本身就是一个很大的工作量。在很多时候,我们没有办法获得这么多的数据样本,但是我们有足够多的维度,这时候我们就想办法,看能不能降低维度,即将多维空间,压缩成相对低维空间,但是尽量保持高维空间里面的度量信息,需要做映射(线性代数表示就是将样本转化为张量表示,与矩阵相乘进行降维),这个过程称为表示学习。
深度学习的改进:
在表示学习里面我们要训练专门的特征提取器,但是在深度学习里面,使用非常简单的特征,将特征作为原始性特征,并在拿到特征后用额外的层进行特征的提取。在机器学习里面,特征的训练和学习器的训练是分开的,传统的机器学习的特征是没有标签的,而学习器(映射器)是有标签的。而深度学习里面,是统一训练的,深度学习里面特征是有标签的。
机器学习方法会受到一些限制:手工提取特征不可避免会遗漏某些关键特征(部分有用的特征是很难想到的)。越来越多的结构需要处理无结构的数据。
深度学习的发展:
人类的错误率是5%,而在15年,深度学习算法就已经超过人类智能了。
神经网络的简单介绍:
神经网络最初来源于神经科学,而深度学习来自于数学和工程学。目前的神经网络主要用于数学和工程学。
神经元对于人工神经网络的发展有极其重要的参考价值。
能让神经网络工作起来的重要方法是反向传播,其实就是求导数。不是使用解析式求导数,而是使用反馈。先正向求取结果,然后反向梯度求导数。
深度学习算法的三大支撑:
算法,数据和算力(显卡)。
安装pytorch网址:https://pytorch.org。
详细内容请看:深度学习overview