这堂课的内容主要是基于深度神经网络的小样本学习。
机器学习和深度学习的区别之一: 机器学习将特征提取和学习分为两部分进行, 但是深度学习将这两部分糅合在一起进行.
半监督学习: 少量的有标签样本和大量的无标签样本.
The training data set is composed of labeled data
Transductive Learning: 没有标签的数据充当 test data. 在上面的例子中, 先将所有的数据分为 3 个 cluster, 然后再通过 cluster 内的 labeled data 预测 unlabelled data.
Inductive Learning: 与 transductive learning 相反. 在上面的例子中, 直接使用kNN 根据有标签的五个点预测 unlabelled data.
首先是 supervised generative model, 给定有标签的训练数据集
对于 Semi-supervised Learning for Generative Model , 使用的是下面的算法:
初始化
计算 unlabelled data 的后验
用参数估计更新模型
In a high density area, if
神经网络中, 什么是 bias ?
梯度消失: 在反向传播过程中, 输入层的梯度很小, 导致学习特征的速度很慢, 甚至可能无法学到任何的东西, 直到现在也没有很好的解决方案.
Maxout is the special case of ReLU.
周一晚: SVM
周三晚: CNN, 矩阵分解, manifold learning, 主成分分析
t-SNE
在推荐系统中, 矩阵分解算法将
矩阵分解的目的就是通过分解之后的两矩阵内积,来填补缺失的数据,用来做预测评分。矩阵分解的核心是将矩阵分解为两个低秩的矩阵的乘积,分别以 k维的隐因子向量表示,用户向量和物品向量的内积则是用户对物品的偏好度,即预测评分。值得注意的是k的选取是通过实验和经验而来的,因此矩阵分解的可解释性不强。
Simon Funk SVD 的提出是为了解决 SVD 的两个问题:
Funk SVD 做如下分解:
Funk-SVD 的缺点其实也类似与 SVD, 由于要用迭代求解优化问题, 它也很耗时, 而且可解释性也不强.
GNN 的输入是一个图数据
主要思想是在结点之间传递信息.
Embedding way and GCNs
Pipeline for GCNs
GNNs with Attention
为什么不能直接用 CNN 直接处理 graph?
CNN 用来处理 grid, RNN 用来处理序列, 对应 graph 中的 link, graph 本身结构复杂得多.
如何让网络自动学习权重矩阵
最理想的方式: adaptively learn an optimal graph structure and the learning models.
通过数据分布学习
什么是特征选择 feature selection
特征选择是在机器学习中的一个重要步骤,它的目的是从给定的特征集合中选择出最具有预测能力的特征子集。简单来说,特征选择就是从众多特征中挑选出对目标变量有最大影响力的特征,以便用于构建高效的预测模型。
为什么要进行特征选择呢?原因有两个。首先,特征选择可以提高模型的性能。通过去除无关或冗余的特征,可以减少模型的复杂性,避免过拟合,提高模型的泛化能力。其次,特征选择可以降低模型的计算成本和存储需求。在大规模数据集中,特征选择可以减少特征的数量,从而减少计算和存储的负担。
特征选择的方法有很多,常见的包括过滤法、包装法和嵌入法。过滤法是根据特征与目标变量之间的相关性进行评估和排序,然后选择得分最高的特征。包装法是通过在特征子集上训练模型,并根据模型的性能来评估特征的重要性,然后选择最佳的特征子集。嵌入法是将特征选择嵌入到模型的训练过程中,通过优化模型的目标函数来选择特征。
总之,特征选择是一种重要的数据预处理技术,它可以提高模型的性能和效率。通过选择最具有预测能力的特征子集,可以构建更加准确和高效的机器学习模型。
什么是子空间学习 subspace learning
子空间学习是一种机器学习方法,它的目标是从高维数据中提取出具有特定结构的低维子空间。在高维数据中,存在着许多不相关的特征,而子空间学习旨在通过降维的方式,找到最能代表数据的低维子空间。通过这种方式,我们可以减少数据的维度,提高模型的效率,并且更好地理解和处理数据。
子空间学习的过程可以分为两个步骤。首先,我们需要选择一个合适的子空间模型,例如线性子空间模型或非线性子空间模型。然后,我们使用训练数据来学习这个子空间模型,即寻找最能代表数据的低维子空间。学习的过程通常涉及到优化算法,以最小化数据在低维子空间中的重构误差或者最大化数据在子空间中的可分性。
子空间学习在许多领域都有广泛的应用,例如图像处理、计算机视觉、模式识别等。通过子空间学习,我们可以发现数据的潜在结构和关系,从而提取出有用的特征,进行分类、聚类等任务。这样可以帮助我们更好地理解和利用高维数据,提高机器学习算法的性能。
估计网络和目标网络的结构是一样的.
反向传播更新估计网络, 每隔一段时间复制参数给目标网络.
DQN 算法的步骤:
1. 切换 GPU 模式. 在
Edit
-Notebook Settings
中可以找到. 运行查看
GPU信息
1 | !/opt/bin/nvidia-smi |
如下
1 | Tue Sep 12 09:40:40 2023 |
运行 Linux 命令需要加上 !
. 不跑代码建议 disconnect,
如果长时间不跑也会提示并且会自动断开连接, 多次长时间连接 GPU
并且不运行代码可能会限制使用.
下面的代码连接 Google Drive, 可以更方便地读数据存结果之类的:
1 | from google.colab import drive |