【机器学习】
文章平均质量分 86
李乾文
十年
展开
-
深度学习 GNN图神经网络(四)线性回归之ESOL数据集水溶性预测
本文旨在使用化合物分子的SMILES字符串进行数据模型训练,对其水溶性的值进行预测。之前的文章《深度学习 GNN图神经网络(三)模型思想及文献分类案例实战》引用的Cora数据集只有一张图,属于图神经网络的节点分类问题。本文介绍的是多图批量训练的线性回归问题,在文章最后也讨论了图分类问题。原创 2023-04-28 02:10:42 · 2784 阅读 · 1 评论 -
如何将化学分子SMILES字符串转化为Pytorch图数据结构——ESOL分子水溶性数据集解析
在用Pytorch图神经网络对化学分子进行数据分析的时候,经常使用现有的数据集。看到自动处理完毕的数据结构,里面的特征值让我们一脸懵逼,不知道代表的是什么含义。本文将带大家分析这些数据结构的来龙去脉。原创 2023-04-27 17:33:16 · 4233 阅读 · 1 评论 -
最新版TensorFlow的GPU版本不支持原生Windows系统(大坑预警)
首先需要说明,按照官方中文文档安装是无法正常检测到GPU的。因为2.10版是支持原生Window系统GPU环境的最后版本,默认安装的版本都比较高。中文文档没有说明,英文文档是有提到的(我在GitHub上找了半天都没找到中文文档的修改方法,翻译项目里没有这个页面 emmm,有参与相关流程的朋友烦请跟进下,大家可能会在这上面浪费了大量时间,而且系统环境也会弄得乱七八糟)所以,我们在安装的时候,需要指定低于2.11的TensorFlow版本。最方便的方法是使用conda进行安装。原创 2023-04-26 21:42:11 · 3580 阅读 · 2 评论 -
深度学习 GNN图神经网络(三)模型思想及文献分类案例实战
本文介绍GNN图神经网络的思想原理,然后使用Cora数据集对其中的2708篇文献进行分类。用普通的神经网络与GNN图神经网络分别实现,并对比两者之间的效果。原创 2023-01-21 01:39:33 · 3175 阅读 · 8 评论 -
深度学习 GNN图神经网络(二)PyTorch Geometric(PyG)安装
我们使用torch_geometric库来实现图神经网络的编码,因为它与PyTroch天然集成。本文介绍了PyTorch Geometric(PyG)的安装与测试。原创 2023-01-20 18:05:29 · 795 阅读 · 0 评论 -
深度学习 GNN图神经网络(一)图的基本知识
本文主要介绍图的一些基础知识,不会太深奥,够用就行。我们以民国最出名的七角恋人物关系图为例进行讲解。原创 2023-01-20 17:55:51 · 2062 阅读 · 0 评论 -
深度学习 GAN生成对抗网络-手写数字生成及改良
在前面一篇文章,我们使用GAN网络生成了1010格式的数字,接下来我们将使用GAN网络生成手写数字图像。本文不会一下给出最终方案,而是顺着思路一步步测试改良,加强大家的理解,最终达到我们想要的效果。原创 2023-01-19 00:36:59 · 2597 阅读 · 3 评论 -
深度学习 GAN生成对抗网络-1010格式数据生成简单案例
本文不花费大量的篇幅来推导数学公式,而是使用一个非常简单的案例来帮助我们了解GAN生成对抗网络。我们会创建一个GAN,生成器通过学习训练,来创建符合1010格式规律的值。这个任务比生成图像要简单。通过这个任务,我们可以了解GAN的基本代码框架,观察训练进程,进而帮助我们为接下来生成图像的任务做好准备。原创 2023-01-18 13:17:59 · 2822 阅读 · 7 评论 -
深度学习 自动编码器与生成模型
本文介绍自动编码器,目的在于了解自动编码器的工作原理,对两个神经网络协同工作有个初步印象,以便引入后续的GAN对抗神经网络。原创 2023-01-18 13:13:37 · 644 阅读 · 0 评论 -
深度学习 LSTM长短期记忆网络原理与Pytorch手写数字识别
一、前言二、网络结构三、可解释性四、记忆主线五、遗忘门六、输入门七、输出门八、手写数字识别实战8.1 引入依赖库8.2 加载数据8.3 迭代训练8.4 数据验证九、参考资料 基本的RNN存在梯度消失和梯度爆炸问题,会忘记它在较长序列中以前看到的内容,只具有短时记忆。得到比较广泛应用的是LSTM(Long Short Term Memory)——长短期记忆网络,它在一定程度上解决了这两个问题。原创 2022-12-05 11:36:37 · 2063 阅读 · 3 评论 -
深度学习 RNN循环神经网络原理与Pytorch正余弦值预测
一、前言二、序列模型三、不含序列关联的神经网络四、包含隐藏状态的卷积神经网络五、正余弦预测实战六、参考资料 前面我们学习了前馈神经网络、卷积神经网络,它们有一个特点,就是每次输出跟上一次结果没有关联。但在一个句子中,每个词的顺序搭配是存在一定联系的,这个时候我们就需要考虑上一次提取的特征对本次输出的影响。这就是我们今天要学的,也叫,RNN被广泛地应用于自然语言处理(NLP)等领域。原创 2022-12-05 11:31:56 · 630 阅读 · 0 评论 -
深度学习 卷积神经网络-Pytorch手写数字识别
一、前言 二、代码实现 2.1 引入依赖库 2.2 加载数据 2.3 数据分割 2.4 构造数据 2.5 迭代训练 三、测试数据 四、参考资料 现在我们使用卷积神经网络来实现手写数字识别。网上大部分Pytorch案例用的是MNIST数据集,不过本文为了与之前文章的试验结果作对比,还是采用的sklearn数据集,并且构造了数据加载器以适用Pytorch。原创 2022-10-31 10:03:19 · 825 阅读 · 0 评论 -
深度学习 卷积神经网络原理
本文分析了全连接层存在的局限性,然后引出卷积的思想方法,介绍了如何进行卷积、池化计算,提取特征。学习了卷积神经网络,就可以用神经网络高效地进行图像处理,比如说用于人脸识别、图片清晰化、风格迁移等。【目录】一、前言 二、全连接层的局限性 三、卷积层 3.1 如何进行卷积运算? 3.2 偏置 3.3 填充 3.4 步长 3.5 卷积运算是如何保留图片特征的? 3.6 三维卷积 3.7 多种特征提取 四、池化层 五、全连接层 六、参考资料原创 2022-10-30 19:06:13 · 2049 阅读 · 1 评论 -
深度学习 神经网络(6)逻辑回归多分类-Pytorch手写数字识别
本文主要介绍了Pytorch构造神经网络来实现手写数字识别。重在展示神经网络的多分类特性,此处虽然是有图片数据,但没用到卷积层。使用的是sklearn的手写数字图片数据集。输出层我们使用softmax激活函数。一、前言 二、代码实现 2.1 引入依赖库 2.2 加载并查看数据 2.3 数据预处理 2.3.1 数据归一化 2.3.2 数据分割 2.3.3 独热编码 2.4 迭代训练 2.5 保存模型 2.6 加载模型 2.7 测试数据原创 2022-10-29 18:31:50 · 1193 阅读 · 0 评论 -
深度学习 神经网络(5)逻辑回归二分类-Pytorch实现乳腺癌预测
本文主要介绍了pytorch构造神经网络来实现乳腺癌的预测。乳腺癌预测是神经网络应用于逻辑回归二分类问题的一个典型案例。跟线性回归的区别在于使用sigmoid激活函数输出。关于该函数可以参考另我的一篇文章《sigmoid函数及其图像绘制》。我们使用的是sklearn的乳腺癌数据集。该数据集有30个特征,输出0或1,表示是否患有乳腺癌。原创 2022-10-29 16:13:50 · 2841 阅读 · 0 评论 -
深度学习 神经网络(4)线性回归-Pytorch实现房价预测
波士顿房价预测是神经网络线性回归的一个典型应用案例。本文使用pytorch来的两种方式实现。一种是原生运算思想的矩阵运算,便于理解底层实现;一种是高度封装的更加方便的Sequential方式。原创 2022-10-29 14:51:40 · 5827 阅读 · 0 评论 -
深度学习 Pytorch安装和基本操作
PyTorch既可以看作加入了GPU支持的numpy,同时也可以看成一个拥有自动求导功能的强大的深度神经网络。本文介绍了Pytorch的安装和基本操作。如:初始化空矩阵 初始化矩阵为0 初始化矩阵为1 生成序列 生成均值0~1的随机矩阵 生成均值为0,方差为1的正态分布随机矩阵 获取矩阵大小 改变矩阵大小 tensor转化成numpy numpy转化成tensor 绝对值 加减乘除 三角函数 求和 张量转标量 均值 矩阵点乘原创 2022-10-29 09:26:09 · 722 阅读 · 0 评论 -
深度学习 神经网络(3)反向传播与计算图
前面我们实现了前馈神经网络的前向传播,即输入层开始,通过逐层传播计算,最终计算出输出层结果。这篇文章介绍的是怎么通过链式求导法则来进行反向传播更新权重参数,以及通过计算图来更加直观地求偏导原创 2022-10-28 20:59:03 · 827 阅读 · 0 评论 -
深度学习 神经网络(2)前向传播
前面介绍了感知器,类似于单个神经元细胞,现在我们用多个感知器组合成更加复杂的神经网络。本文介绍了多层神经网络通过前向传播方法,逐层计算出最终结果值的过程。原创 2022-10-27 21:02:43 · 1186 阅读 · 3 评论 -
深度学习 神经网络(1)感知器
人类大脑中大约有1000亿个神经元细胞,这些细胞通过突触之间的互相连接,形成庞大的神经网络结构。神经网络算法模拟了大脑中神经网络的神经元结构和信息传播机制,而感知器是最简单的神经网络算法,相当于大脑中的一个神经元细胞。后续我们将用多个感知器组成单层神经网络、多层神经网络。原创 2022-10-27 15:07:31 · 706 阅读 · 0 评论 -
机器学习 逻辑回归(2)softmax回归多类别分类-鸢尾花案例
PS:softmax回归损失函数梯度下降,求导部分没使用指示函数和向量,直接针对单变量进行推导。网上其他资料都比较抽象,找了很久没找到容易理解的,硬刚了几天终于整出来了。一、前言 二、假设函数 三、One-Hot 独热编码 四、代价函数 五、梯度下降 六、原生代码实现 6.1 加载并查看数据 6.2 添加前置与数据分割 6.3 迭代训练6.4 验证数据 七、sklearn代码实现 八、参考资料原创 2022-10-25 20:40:43 · 2357 阅读 · 0 评论 -
softmax函数及其代码实现
前面我们把sigmoid函数引入逻辑回归中,用于解决是或否的二分类问题。但存在局限性,如果预测结果有多种类别,那怎么处理呢?首先,我们很容易想到,如果计算结果是各种类别的概率,那就好了。比如说,总共有三个类别A、B、C,我们通过函数计算,类别A的概率为0.1、B的概率为0.6、C的概率为0.3,那么我们就大概率认定预测结果为B。这就是softmax函数要做的事。原创 2022-10-18 15:57:04 · 5462 阅读 · 0 评论 -
机器学习 逻辑回归(1)二分类
一、前言 二、sigmoid函数 三、假设函数 四、代价函数 五、梯度下降 六、二分类原生代码实现 6.1 生成模拟数据 6.2 添加前置与数据分割 6.3 迭代训练 6.4 验证数据 七、sklearn代码实现 逻辑回归用于解决分类问题,例如识别一张图片是否有猫,识别手写数字是几、判断一件商品是什么类型等,预测结果是逻辑值,0或1(2,3,...n),是或否。原创 2022-10-17 17:23:26 · 1139 阅读 · 0 评论 -
sigmoid函数及其图像绘制
sigmoid函数,它们在机器学习中经常用到。尤其是在神经网络中,经常用于作为隐藏层神经元的输出函数。原创 2022-10-16 12:09:00 · 10827 阅读 · 0 评论 -
sklearn 使用make_classification生成分类样本数据
sklearn的make_classification函数能生成分类样本数据。1. 介绍 2. 函数 3. 参数说明 4. 代码示例原创 2022-10-12 22:05:34 · 3340 阅读 · 0 评论 -
机器学习 多变量线性回归
一、前言 二、特征描述 三、假设函数 四、代价函数 五、梯度下降 六、原生代码实现 七、sklearn代码实现 通过上述方法,我们可以通过房子面积x、简单地预测房价y。但实际情况是,房价不仅仅是由面积决定,还有房间数、楼层、朝向等一系列因素变量决定。那么怎么解决呢?原创 2022-10-12 18:46:11 · 546 阅读 · 0 评论 -
线性代数 矩阵运算
一、加法 二、标量乘法 三、向量乘法 四、转置原创 2022-10-12 13:16:33 · 277 阅读 · 0 评论 -
机器学习 单变量线性回归 (3)代码实现
一、前言 由上一篇文章《机器学习 单变量线性回归 (2)梯度下降法》推导可以得出以下算法:接下来我们使用代码实现。 二、数据生成 我们使用sklearn来生成回归模拟数据,代码和模拟数据坐标如下 三、迭代训练原创 2022-10-12 10:58:08 · 451 阅读 · 0 评论 -
向量微积分——理解梯度
向量微积分:理解梯度1、简介2、梯度的性质3、例子4、讨论5、数学表达6、问题翻译自《Vector Calculus: Understanding the Gradient》1、简介梯度对于导数来说是个迷人的词,或者说是函数的变化率。这是个向量(移动方向),有以下特点:指向函数增长最快的方向在局部极大值或局部极小值处为0 (因为没有单一的增长方向)"梯度"这个术语一般用于多个输入和单个输出(标量)的函数。你可以说一条线有一个梯度(即它的斜率),但一般在单变量函数中没必要引入梯度概念,简单地认翻译 2021-09-26 01:05:11 · 4871 阅读 · 0 评论 -
梯度下降法解单元函数
一、前言为了更好地理解梯度下降,我们先使用该方法来求单元函数f(x)=θ2f(x)=θ^2f(x)=θ2的最小值。二、概念首先我们来看下概念:导数:是一个数;反映的是f(x,y)在P0点沿方向v的变化率。偏导数:是多个数(每元有一个);是指多元函数沿坐标轴方向的方向导数,因此二元函数就有两个偏导数。偏导函数:是一个函数;是一个关于点的偏导数的函数。梯度:是一个向量;每个元素为函数对一元变量的偏导数;它既有大小(其大小为最大方向导数),也有方向。三、数学计算按正常的结题思路是这样的:求关于原创 2021-09-05 02:34:34 · 378 阅读 · 0 评论 -
机器学习 单变量线性回归 (2)梯度下降法
根据上一篇文章《机器学习 单元线性回归》中的推理,单变量线性回归问题变成了求θ0、θ1两个变量的值,使得代价函数J(θ0,θ1)最小。梯度下降是一个用来求函数最小值的算法,我们将使用梯度下降算法来求出代价函数J(θ0,θ1)的最小值.........原创 2021-08-29 01:39:49 · 413 阅读 · 0 评论 -
机器学习 单变量线性回归 (1)背景介绍
文章目录0. 前言1. 背景描述3. 生成样本数据4. 代价函数0. 前言所谓"元",就是变量的意思,一元即一个变量。一元线性回归也叫单变量线性回归。回归指的是,根据之前的样本数据,预测出一个准确的输出值。与之相对应的,还有另一种常见的监督学习方式,叫做分类问题,例如想要确定肿瘤是良性的还是恶性的,这是 0/1 离散输出的问题。PS:回归与分类,有点像模拟电路与数字电路的区别。1. 背景描述以下是一些房子历史销售记录(房子的面积以及销售价格)。假设现在有个朋友想卖房子,面积是1250平方英尺,问原创 2021-08-22 15:51:34 · 589 阅读 · 2 评论 -
导数与偏导
1. 导数 2 基本导数与微分表 3 偏导数 3.1 多变量函数 3.2 偏导数 4 多变量函数的最小值条件 5 参考资料原创 2021-08-22 15:46:25 · 5635 阅读 · 0 评论 -
sklearn 使用make_regression生成回归样本数据及NumPy拟合
1. 介绍sklearn的make_regression函数能生成回归样本数据。 2. 函数语法3. 参数说明:n_samples:样本数n_features:特征数(自变量个数)n_informative:参与建模特征数n_targets:因变量个数noise:噪音bias:偏差(截距)coef:是否输出coef标识random_state:随机状态若为固定值则每次产生的数据都一样原创 2020-01-26 18:47:05 · 15262 阅读 · 0 评论 -
机器学习 朴素贝叶斯分类
1. 介绍朴素贝叶斯分类的思想是求出数据实例属于每个类型的概率,通过比较求出最大概率的类别。那么怎么求出数据实例属于某个类别的概率呢?这里就用到了贝叶斯公式及其变形:原创 2020-01-21 01:20:22 · 437 阅读 · 0 评论 -
机器学习 决策树
信息熵特征选择信息增益(ID3算法)信息增益比(C4.5算法)CART 决策树决策树停止生成条件总结原创 2020-01-15 22:27:28 · 1362 阅读 · 0 评论 -
NumPy常用操作
0.添加引用1.数据创建与初始化1.1 zeros和ones1.2 full1.3 arange1.4 reshape2. 运算2.1 四则运算2.2点乘原创 2020-01-08 18:49:54 · 332 阅读 · 0 评论 -
机器学习 K-均值聚类算法(K-Means)
1. 介绍聚类算法: 是一种典型的无监督学习算法,主要用于将相似的样本自动归到一个类别中。2. 算法思想3. 样本数据生成4. 原生代码实现5. sklearn代码实现原创 2020-01-08 15:24:20 · 3859 阅读 · 0 评论 -
sklearn 使用make_blobs生成聚类样本数据
我们先引入make_blobs并调用,参数请看注释:from sklearn.datasets import make_blobsX, y = make_blobs(n_samples=20, # 生成20个样本 n_features=2, # 每个样本2个特征 centers=3 # 3个中心 ...原创 2020-01-06 22:07:38 · 2163 阅读 · 0 评论 -
机器学习 K-近邻算法(KNN)
1.介绍K最近邻(k-Nearest Neighbor,KNN)分类算法,是一个理论上比较成熟的方法,也是最简单的机器学习算法之一。该方法的思路是:在特征空间中,如果一个样本附近的k个最近(即特征空间中最邻近)样本的大多数属于某一个类别,则该样本也属于这个类别。2.案例如下图所示,有两类...原创 2020-01-05 22:14:30 · 1629 阅读 · 0 评论