机器学习
文章平均质量分 73
xuechanba
你可以有过去,但你不能永远活在过去。
展开
-
实现多层神经网络
在前面,我们使用了单层神经网络实现了对鸢尾花数据集的分类,下面,将使用多层神经网络来实现对鸢尾花数据集的分类。第一层是输入层到隐含层,相应的权值矩阵为 W1 ,隐含层中的阈值是 B1 ,隐含层的输出是:假设增加的隐含层中有 16 个神经元(结点),那么 B1 的形状就是 (16,),因为输入层中有四个结点,因此, W1 的形状是 (4,16),第二层是隐含层到输出层,从隐含层到输出层的权值矩阵为 W2 ,输出层中的阈值是 B2 ,因为输出层中有三个节点,所以B2 的形状是(3,),W2原创 2022-05-16 20:28:47 · 483 阅读 · 0 评论 -
神经网络 — 激活函数
生物神经网络是一个复杂的网络结构,人工神经网络是借鉴生物神经网络的最基本特征,利用神经元和神经元之间的连接,从而构成的一种数学模型。生物神经元能够接收其他多个神经元的输入,当这些输入累计超过一定的阈值时,这个神经元就会被激活,产生输出,在设计人工神经网络时,需要使用函数来模拟这个过程,如果使用线性函数,也就是说神经网络中的每一层输出都是接收来自上一层的输入后进行线性组合,那么无论有多少层隐含层,输出层都是输入特征的线性组合。无法完成复杂的任务。例如,下面是隐含层的输出,下面是输出层的原创 2022-05-16 18:00:21 · 4236 阅读 · 1 评论 -
误差反向传播算法
通过单个感知机或者单层神经网络只能够实现线性分类的问题,而多层神经网络可以解决非线性分类问题。神经网络中的模型参数,是神经元模型中的连接权重以及每个功能神经元的阈值,这些模型参数并不是我们人工设计或者指定的,而是通过算法自动学习到的。和其他机器学习算法一样,神经网络的训练,就是给定训练集,通过学习算法,确定学习参数的过程。可以直接使用梯度下降法需要计算损失函数的梯度,在没有隐含层的单层神经网络中,可以通过计算直接得到梯度。在多层神经网络中,上一层的输出是下一层的输入,要在网络中的每一层计算损失函原创 2022-05-15 22:11:45 · 10859 阅读 · 11 评论 -
超参数和验证集
感知机是神经网络的基础,对于形式上完全相同的感知机,模型参数不同,可以实现不同的运算,因此,可以通过训练学习模型参数来形成不同的功能。这也是人工神经网络具有强大学习能力的基础。例如下图这个简单得感知机来说,模型参数取不同的值,就实现了不同的线性分类器。下图分别是它们的分类边界。另外我们也可以把这个分类器看成是一个与运算。而把这个分类器看成是一个或非运算。把多个这样的感知机组合起来,就构成了人工神经网络,也就可以实现各种复杂的运算,在前馈型神经网络中,只要有一个隐含层,并且这个隐含层原创 2022-05-13 15:11:22 · 637 阅读 · 0 评论 -
多层神经网络
为了解决线性不可分的问题,可以在输入层和输出层之间增加隐含层。隐含层和输出层一样,也是具有计算能力的功能神经元。这种增加了隐含层的神经网络就被称为多层神经网络。在前面说过,与或非运算的结果都是线性可分的。可以通过下图第四个小图所示的感知机来实现。给出合适的权值向量 W ,就可以实现与运算、或运算、非运算。而异或运算则是非线性可分的。至少需要两条直线采可以将其分开。为了实现对异或结果的分类,可以构建如下图所示的含有隐藏层的神经网络。它其实是由这样的两个感知机组合在一起构成的神经网络。原创 2022-05-13 12:19:14 · 7033 阅读 · 2 评论 -
实现单层神经网络
在前面,我们分别使用逻辑回归和softmax回归实现了对鸢尾花数据集的分类,逻辑回归能够实现线性二分类的任务,他其实就是最简单的神经网络——感知机。而softmax回归则实现的是多分类任务,它也可以看做是输出层有多个神经元的单层神经网络。下面,使用神经网络的思想来实现对鸢尾花数据集的分类,这个程序的实现过程和 softmax 回归几乎是完全一样的。在使用神经网络来解决分类问题时,首先,要设计神经网络的结构(也就是说确定神经网络有几层,每一层中有几个结点,结点之间又是如何连接的,使用什么激活函数,原创 2022-05-12 21:02:29 · 744 阅读 · 0 评论 -
实现多分类
课程回顾:我们知道,可以采用softmax回归来实现多分类问题。例如,输入鸢尾花的花瓣长度和宽度。首先经过线性运算后,再使用 softmax 函数作为激活函数,就可以得到这个样本属于每种类别鸢尾花的概率。此外,在机器学习中,通常采用独热编码的方式来表示类别标签,使用多分类交叉熵损失函数计算预测值和标签值之间的误差。以上这些也是编程实现多分类问题时,需要注意的与二分类程序的不同之处,另外,在多分类任务中,计算模型的分类准确率也比二分类更复杂一些。首先,我们使用 TensorFlow 来实现以上原创 2022-05-11 14:47:36 · 536 阅读 · 0 评论 -
波士顿房价(只依据一个特征的)预测
波士顿房价数据集波士顿房价数据集中一共有506条数据,涵盖506个不同郊区的房屋数据。在机器学习中,通常要把数据集划分为训练数据集和测试数据集,在波士顿数据库中,默认其中404条是训练数据集,102条作为测试数据集。其中,每条数据有14个字段,包含13个属性和1个房价的平均值。在使用数据集之前,首先要加载数据集,可以直接使用datasets模块访问数据集。这个数据集完整的前缀是tensorflow.keras,是Keras API在tensorflow中的实现。下面使用代码来演示下如何加载波士顿房价原创 2022-04-29 20:40:38 · 3363 阅读 · 2 评论 -
公共数据集
对于个人学习者和小型创业公司,应该如何获取数据呢?Keras是一个高层的神经网络和深度学习库。它由Python编写,通过它可以快速的搭建神经网络模型,非常易于调试和扩展。在TensorFlow1.4版本以后,Keras已经成为TensorFlow的官方API,TensorFlow2.0更是将Keras作为构建和训练模型的核心API。Keras中内置了一些常用的公共数据集,通过Keras中的datasets模块可以方便的加载和使用这些数据集,而完全不需要考虑它们在格式上的不同。数据下载、保存、解析这些细节全原创 2022-04-29 16:51:45 · 1915 阅读 · 0 评论 -
训练集和测试集 — 模型评估
模型评估训练集和测试集训练集就是训练模型的样本,测试集就是在我们训练好一个模型后,需要去评价这个模型的好坏。最直接的方法就是拿着这个模型去做实际的判断。例如,垃圾邮件过滤,就看看能否把垃圾邮件都筛选出来,如果没有识别出垃圾邮件,或者把正常的邮件错认为是垃圾邮件而过滤掉,那么都是出现了误判,或者说是错误。出现错误过多的模型显然就不是好的模型。模型评估误差(error)学习器的预测输出和样本的真实标记之间的差异成为误差。误差(error)学习器的预测输出和样本的真实标记之间的差异成为误差。训练原创 2022-04-29 16:42:54 · 4940 阅读 · 0 评论 -
TensorFlow实现梯度下降法求解一元和多元线性回归问题
使用TensorFlow求解一元线性回归问题import tensorflow as tfimport numpy as npimport matplotlib.pyplot as plt# 设置字体plt.rcParams['font.sans-serif'] = ['SimHei']# 第一步:加载数据# x 是商品房面积x = np.array([137.97, 104.50, 100.00, 124.32, 79.20, 99.00, 124.00, 114.00,原创 2022-04-28 22:35:06 · 2113 阅读 · 0 评论 -
梯度下降法求解多元线性回归 — NumPy
梯度下降法求解多元线性回归问题使用梯度下降法求解一元线性回归的方法也可以被推广到求解多元线性回归问题。这是多元线性回归的模型:其中的 X 和 W 都是 m+1 维的向量。下图为它的损失函数:它也是一个高维空间中的凸函数,因此也可以使用梯度下降法来求解。下图为它的权值更新算法:代入偏导数,可以得到最终的迭代公式:问题描述依然是房价预测的问题,这是一个二元线性回归问题。需要注意的是,如果直接使用上图中的数据 x1 和 x2 来训练模型,就会因为面积(x1)值远远大于房间(x2原创 2022-04-27 20:08:44 · 6165 阅读 · 2 评论 -
梯度下降法实现求解一元线性回归问题
梯度下降法求解一元线性回归问题课程回顾图下面就使用均方差损失函数来编写程序。问题描述依然是房价预测的问题,这是一个一元线性回归问题。图梯度下降法求解求解过程可以分为五步。步骤一加载样本数据 x 和 y步骤二设置超参数 学习率 和 迭代次数步骤三设置模型参数初值 w0,b0步骤四训练模型,使用迭代公式更新模型参数 w ,b步骤五结果可视化程序流程图下图为程序流程图:因为有迭代运算,所以需要通过循环来实现,红框中的内容即为梯度下降法的实现。首先,设置 w 和 b 的初值原创 2022-04-26 22:34:59 · 1945 阅读 · 0 评论 -
梯度下降法实现线性回归问题的理论
知识回顾梯度下降法求解一元线性回归问题这是一元线性回归的平方损失函数,这里的样本点 x 和 y 都是已知的,变量是 w 和 b ,我们的目标是找到使损失函数达到最小值的 w 和 b。如果我们能够确定这个损失函数是一个凸函数,那么就可以使用梯度下降法来求解。验证一元线性回归的平方损失函数是凸函数把损失函数中的平方项展开,可以得到下图:再把 ∑ 求和这一部分展开,并对 w2、w和b这些变量进行合并整理,分别提取公因式,系数用 A、B 、C、D、E 来表示,并将所有的常数项合并得到F,得到结果原创 2022-04-26 16:36:16 · 616 阅读 · 0 评论 -
梯度下降法的基本原理
求解线性回归模型的过程本质上是一个函数求极值的过程。解析解通过严格的公式推导和计算,给出了解的具体形式,能够在任意精度下满足方程,但是,在很多情况下,无法直接通过严格的公式推导得到方程或者方程组的解析解,这个时候只能采用数值分析的方法,得到近似解,这样的解也称为数值解。数值解是在一定条件下,通过某种近似计算得到的解,能够在给定的精度条件下满足方程。这里就来介绍一种求数值解的常用方法 — 梯度下降法1、一元凸函数求极值这种形状的曲线函数称为凸函数。它一定存在唯一的一个极小值点。这个点在一个斜率正好为原创 2022-04-26 13:08:24 · 4072 阅读 · 1 评论 -
多元线性回归模型可视化
绘制平面图绘制 房价 与 房价面积 及 房间数量 之间关系的散点图import numpy as npimport matplotlib.pyplot as pltfrom mpl_toolkits.mplot3d import Axes3D# 设置字体plt.rcParams['font.sans-serif'] = ['SimHei']# 第一步:加载样本数据# x1 是商品房面积x1 = np.array([137.97, 104.50, 100.00, 124.32, 79.原创 2022-04-25 20:18:09 · 4376 阅读 · 0 评论 -
解析法实现多元线性回归的实例
前期知识回顾演示实例 – 二元线性回归实例:房价由面积和房间数两个因素共同来决定。多元线性回归函数的实现分为四步。第一步:加载样本数据。第二步:数据处理,将加载的样本构造为计算解析解所需要的形式。第三步:求解模型参数。使用解析解公式,计算参数向量 W 的值,得到多元回归模型。第四步:预测房价,使用得到的模型来估计房价。与一元线性回归的例子相比,这里增加了第二步。这也是大多数学习任务中都必须的一步,因为原始的数据集中的数据可能和模型需要的输入数据模型不太一致,因此需要进行数据处理。原创 2022-04-24 19:41:54 · 2833 阅读 · 1 评论 -
多元线性回归
多元线性回归的概念多元回归:回归分析中包含 两个或两个以上的自变量。多元线性回归:因变量和自变量之间是 线性 关系。多元线性回归模型的几何意义一元线性回归模型的几何意义在平面直角坐标系中,一元线性模型表示二维空间中的一条直线。二元线性回归模型的几何意义在空间直角坐标系中,二元线性模型表示三维空间中的一个平面。多元线性回归模型的几何意义多元线性回归模型:多元线性回归模型表示多维空间中的一个超平面。超平面是直线在高维空间中的推广,是纯粹的数学概念。多元线性回归模型的向量表示下原创 2022-04-24 18:19:29 · 16537 阅读 · 0 评论 -
机器学习基础
机器学习1、建立模型: 如:y=wx+b(房价模型)2、学习模型: 如:确定 w,b3、预测: 如:使用模型预测房价学习算法: 从数据中产生模型的算法。机器学习就是通过学习算法从数据中学习模型的过程。数据集(data set)/样本集(sample set)样本(sample)、属性(attribute)/特征(feature)、标记/标签(label)学习模型/假设(hypothesis)/学习器(learner):估计函数真相/真实(ground truth)标记/标签(la原创 2022-04-23 15:27:32 · 722 阅读 · 0 评论