
深度学习
以tensorflow2.0为主
奋斗在阿尔卑斯的皮卡丘
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
多分类问题
课前回顾逻辑回归:二分类问题多分类问题:把输入样本划分为多个类别在前面的课程中我们介绍了逻辑回归。逻辑回归能够很好地解决二分类的问题,但是在现实生活中存在着大量的多分类问题,例如手写数字识别,图片分类等,都需要把输入的样本划分为多个类别。下面,我们就以鸢尾花数据集为例来学习如何实现多分类的任务。多分类问题自然顺序码在鸢尾花数据集中一共有三种鸢尾花,分别被标记为0,1,2,这种编码方式成为自然顺序码。使用自然顺序码会出现一个奇怪的现象,山鸢尾和维多利亚鸢尾的平均值又是变色鸢尾,而且它们之间原创 2020-12-22 14:50:26 · 5896 阅读 · 0 评论 -
绘制分类图
逻辑回归:鸢尾花二分类在上节课中我们编程实现了逻辑回归,通过它能够识别出鸢尾花的种类。线性分类器决策边界逻辑回归是一种线性分类器,能够把线性可分的数据集划分为两类,这条绿色的直线称为决策边界。也可以通过这种分区图更加清晰的展现分类的结果。绘制这个图的方法很简单,把这个平面分成很多小的网格。分类直线上面的网格都使用粉色填充,直线下面的网格使用绿色填充就可以得到这样的图。绘制分类图生成网格坐标矩阵plt.meshgrid()填充网格plt.pcolormesh()生成网格坐标矩阵,可原创 2020-12-22 11:06:27 · 2269 阅读 · 0 评论 -
实现多元逻辑回归
课程回顾逻辑回归:线性分类器,二分类决策边界通过前面的学习,我们知道逻辑回归是一个线性分类器,能够把线性可分的数据集分成两类,二维空间的数据都在一个平面上,可以被一条直线分成两类,这条直线就是决策边界。在三维空间中线性分类器的决策边界是一个平面。在高维空间中是一个超平面。Iris数据集在这节课中,我们就使用逻辑回归实现对鸢尾花的分类。鸢尾花数据集中一共有150个样本,每个样本中有4个属性,分别是花萼的长度和宽度,花瓣的长度和宽度。一共包括三个品种,分别是山鸢尾,变色鸢尾和维基尼亚鸢尾。原创 2020-12-17 10:35:36 · 6103 阅读 · 3 评论 -
线性分类器
线性分类器在前面的课程中我们学习了逻辑回归,通过它可以把样本分为两类。这是二维空间中的一个数据集。如果它正好能够被一条直线分成两类,那么我们称它为线性可分数以及这条直线就是一个线性分类器。假设这是这条直线的方程w1x1+w2x2+b=0w_1x_1+w_2x_2+b=0w1x1+w2x2+b=0,那么满足这个方程的点都在这条直线上。设等号左边的表达式为f(x1,x2)f(x_1,x_2)f(x1,x2),那么满足f(x1,x2)>0f(x_1,x_2)>0f(x1,x2原创 2020-12-16 11:36:37 · 3437 阅读 · 0 评论 -
实现一元线性回归
课程回顾逻辑回归在上一节课中我们介绍了逻辑回归,逻辑回归是在线性模型的基础上,再增加一个sigmoid的函数来实现的。y=σ(wx+b)=11+e−(wx+b)y=\sigma(wx+b)=\frac{1}{1+e^{-(wx+b)}}y=σ(wx+b)=1+e−(wx+b)1输入样本特征,经过线性组合之后得到的是一个连续值。经过sigmoid函数把它转化为一个0~1之间的概率。通过设置合理的阈值就可以实现二分类问题。分类器的目标是希望正确分类的比例尽可能高。在模型训练好之后,可以使原创 2020-12-16 10:00:31 · 900 阅读 · 0 评论 -
交叉熵损失函数
课程回顾逻辑回归在上节课中我们介绍了逻辑,回归线性回归模型产生的预测值是连续的实数值不适合直接处理分类任务,为了实现分类,可以利用广义线性回归的思想,在线性模型之上再增加一个sigmoid函数,把线性模型的输出映射到0~1之间,输出一个概率值,并根据这个概率值实现分类。平方损失函数为了衡量模型的优劣,需要使用损失函数,在线性回归模型中通常使用平方损失函数,这是逻辑回归的平方损失函数。采用梯度下降法来更新W和B时需要计算损失函数对W和B的偏导数,这分别是损失函数对W和B的偏导数。可以看到原创 2020-12-14 16:10:18 · 1580 阅读 · 0 评论 -
逻辑回归
广义线性回归在上节课中,我们介绍了广义线性回归广义线性回归,通过联系函数对线性模型的结果进行一次非线性变换,使它能够描述更加复杂的数据关系,这个连续函数可以是任何一个单调可微函数。分类问题除了回归问题,现实世界中还有另外一类非常常见的任务分类问题,例如垃圾邮件识别,图片分类,疾病判断等都属于分类问题。分类器分类器能够自动对输入的数据进行分类,它的输入是样本的特征,输出是离散的值表示输入样本属于哪个类别?例如在鸢尾花分类中分类器的输入就是鸢尾花的花萼尺寸和花瓣尺寸,经过计算后,输出0,1,2分别表原创 2020-12-14 14:55:30 · 275 阅读 · 0 评论 -
广义多元线性回归
线性回归在前面的课程中,我们介绍了线性回归,它将自变量和因变量之间的关系用线性模型来表示从而能够根据已知的样本数据对未来的或者未知的数据进行估计,这种线性关系在二维空间中是一条直线,在三维空间中是一个平面,在高维空间中是一个超平面线性模型只能够应用于自变量和因变量是线性或者接近线性的情况,在现实生活中,数据之间存在着大量非线性的关系,为了解决这类问题,我们就需要对线性模型进行改进。在这个预测商品房房价的例子中,我们假设这些数据之间符合线性关系,就可以得到一元线性回归模型,那么能否假设为其他模型呢?原创 2020-10-29 16:54:16 · 1169 阅读 · 0 评论 -
波士顿房价预测
波士顿房价预测在这节课中,我们使用波士顿房价数据集来实现一个更加完整的例子,关于波士顿房价数据集,我们在第6讲中进行了详细的介绍,这是对它可视化的结果其中的每一个子图是数据集中的一个属性,和房价之间的关系,可以看到平均房间数和低收入人口的比例,这两个属性和房价之间的关系是比较接近于线性分布的,我们可以选取其中的一个属性做一元线性回归建立它和房价之间的关系模型,例如我们举出房间数这个属性和房价做一元线性回归第1步导入需要的库加载波士顿房价数据集...原创 2020-10-22 18:00:41 · 3380 阅读 · 1 评论 -
模型评估
公共数据集在前面的课程中,我们学习过一些常用的公共数据集,例如波士顿房价数据集鸢尾花数据集手写数字数据集这些数据集都被划分成了训练集和测试集。训练集,就是用来训练模型的样本,那么测试集的作用是什么呢?模型评估当我们训练好了一个模型之后,需要去评价这个模型的好坏。最直接的办法就是拿着这个模型去做实际的判断,比如垃圾邮件过滤,就看看能否把垃圾邮件都筛选出来。如果没有识别出垃圾邮件,或者把正常的邮件错认成垃圾邮件过滤掉了,那么都是出现了误判或者说是错误。出现错误过多的模型,显然就不是好的模型。原创 2020-10-22 17:01:00 · 304 阅读 · 0 评论 -
TensorFlow实现梯度下降法
TensorFlow实现一元线性回归第1步导入需要的库、加载数据样本import tensorflow as tfimport numpy as np# 第1步导入需要的库、加载数据样本x = np.array([137.97, 104.50, 100.00, 124.32, 79.20, 99.00, 124.00, 114.00, 106.69, 138.05, 53.75, 46.91, 68.00, 63.02, 81.26, 86.21])y = np.原创 2020-10-22 15:43:31 · 1894 阅读 · 0 评论 -
自动求导机制
自动求导–GradientTapeTensorFlow提供了一个专门用来求导的类GradientTape,可以形象的理解为记录梯度数据的磁带,通过它可以实现对变量的自动求导和监视。GradientTape类实现了上下文管理器,它能够监视with语句块中所有的变量和计算过程,并把它们自动记录在梯度带中。with GradientTape() as tape: 函数表达式grad = tape.gradient(函数,自变量)GradientTape()是GradientTape类的构造函数首先原创 2020-10-21 17:58:13 · 1026 阅读 · 1 评论 -
可训练变量
TensorFlow的自动求导机制tensorflow提供了强大的自动求导机制,在编程时,不用再一步一步的去写如何计算偏导数的代码了,即使你不会求偏导数,也可以使用tensorflow轻松实现梯度下降法。我们知道在tensorflow中所有的运算都是在张量中完成的,张量由tensor对象来实现。除此之外,tensorflow还提供了Variable对象。它是对tensor对象的进一步封装它能够在模型训练的过程中自动记录梯度信息,并且由算法自动调整和优化它的取值是一种能够被自动训练的变量因此.原创 2020-10-21 17:33:38 · 614 阅读 · 1 评论 -
梯度下降法求解多元线性回归--Numpy实现
梯度下降法求解多元线性回归我们来用编程实现一个多元线性回归问题。这是样本数据其中的属性包括房屋面积和房间数。可以看到面积和房间数的取值范围相差很大,如果直接使用这样的数据来训练模型,这个面积的贡献就会远远大于房间数的影响,在学习过程中占主导甚至是决定性的地位,这显然是不合理的,这时候应该首先对属性的值进行归一化处理。归一化/标准化归一化又称为标准化,就是将数据的大小限制在一定的范围之内。在机器学习中对所有属性进行归一化处理,就是让他们处于同一个范围,同一个数量级下,这样才能更加的具有可比性。原创 2020-10-21 15:34:13 · 3484 阅读 · 5 评论 -
梯度下降法求解线性回归--Numpy实现
梯度下降法求解一元线性回归依然是这个房价预测的任务,这是一个一元线性回归问题,这次我们采用梯度下降法来求解它可以分为5步第1步加载样本数据x,y第2步设置超参数,在这个例子中,超参数包括学习率和迭代次数第3步设置模型参数的初值w0w_0w0,b0b_0b0,这个初值可以是任意的第4步训练模型使用迭代公式更新模型,参数迭代完成之后,以可视化的形式输出结果这是程序流程图,因为有迭代运算,所以需要通过循环来实现。这部分是梯度下降法的实现,首先设置w0w_0w0,b0b_0b0,设置原创 2020-10-21 11:09:55 · 3051 阅读 · 2 评论 -
梯度下降法求解线性回归
梯度下降法求解一元线性回归问题这是一元线性回归的平方损失函数Loss=12∑i=1n(yi−yi^)2=12∑i=1n(yi−(wxi+b))2Loss=\frac{1}{2}\sum^n_{i=1}(y_i-\hat{y_i})^2=\frac{1}{2}\sum^n_{i=1}(y_i-(wx_i+b))^2Loss=21∑i=1n(yi−yi^)2=21∑i=1n(yi−(wxi+b))2这里的样本点x和y都是已知的,变量是w和b。我们的目标是找到使损失函数达到最小值的w和b原创 2020-10-20 17:58:04 · 1982 阅读 · 0 评论 -
梯度下降法基本原理
求解线性回归模型–函数求极值解析解根据严格的推导和计算得到,是方程的精确解能够在任意精度下满足方程但是在很多情况下,无法直接通过严格的公式推导,得到方程或者方程组的解析解,这时候只能够采用数值分析的方法得到近似解,这样的解也成为数值解数值解通过某种近似计算得到的解能够在给定的精度条件下满足方程我们就都介绍一种常用的求数值解的方法,梯度下降法。为了便于理解,我们先从最简单的一元凸函数开始介绍梯度下降法的求解过程。一元凸函数求极值这是一元函数fx=x平方+2的函数曲线,原创 2020-10-20 15:28:01 · 7593 阅读 · 1 评论 -
一元线性回归
一元线性回归回归主要用于预测数值型数据,根据观测到的数据设计一种模型,描述数据之间蕴含的关系。回归的典型例子,就是通过给定的数据点拟合出最优的曲线,在这个例子中面积和房价之间的关系可以近似地表示成一根直线,因此这种模型被称为线性回归,在这个模型中只包含一个自变量x,因此这种线性回归模型被称为一元线性回归。在一元线性回归模型y=wx+b中,x称为模型变量,w和b称为模型参数,其中w为权重,b为偏置值。我们要解决的问题就是如何根据样本数据来确定模型参数,w和b呢,假设有n组样本(x1x_1x1,原创 2020-10-20 10:47:49 · 2906 阅读 · 0 评论 -
机器学习基础
我们人类总是不断地从过去的经验中学习。例如看云识天气,就是人们通过长期的观察和经验的积累,根据云彩云朵的形状,厚度,颜色,移动方向等的变化,总结出他们和天气之间的关系,并且把这些经验编成谚语和口诀来预测以后的天气。我们去看病的时候,也总是更加信任那些老大夫,这也是因为我们认为他们有更多的经验。其实在日常的生活学习和工作中,我们对待很多事情的看法,做事情的方式方法,很多也都是基于之前的经验做出的反应,那么计算机是否也能够基于经验作出判断呢?答案是肯定的。机器学习机器学习:通过算法,使机器能够从大量原创 2020-10-19 17:47:30 · 458 阅读 · 0 评论 -
部分采样
索引和切片索引几乎和numpy一样手写数字图像数据集MNIST:(60000, 28, 28)mnist[0]:取第1张图片中的数据mnist[0][1]:取第1张图片中的第2行mnist[0][1][2]:取第1张图片中的第2行的第3列切片如果要提取张量中的一段数据,那么使用切片起始位置:结束位置:前闭后开的起始位置、结束位置、步长都可以省略步长也可以是负数二维张量切片:维度之间用逗号隔开例如鸢尾花数据集三维张量切片手写数字数据集MNIST(60000, 28原创 2020-10-19 15:53:06 · 242 阅读 · 0 评论 -
维度变换
张量的存储和视图我们有4个班级的同学,每个班又分为5个小组,每个小组内有10个人,按照从1~10进行编号,这就是逻辑组织。如果我们把所有的同学们都排成一队,虽然在物理上看起来是一维的,但是在逻辑上仍然是按照班级小组来组织管理的,我们可以通过班级号.组号.组内序号的方式来唯一指定任何一位同学,例如这是2班3组的第6位同学。现在,如果我们将这4个班合并成两个班,每个班10组,那么我们只需要修改学生的班级号和组号就可以了,也就是说逻辑上的形状发生了改变,但是同学们的物理位置保持不变。同样,当多维张量进原创 2020-10-19 14:30:31 · 661 阅读 · 0 评论 -
创建张量
创建张量1TensorFlow中的Tensor表示张量,其实就是多维数组。在此之前,我们还学习过python中的列表listNumpy中的数组对象ndarray它们也都可以作为数据的载体,那么它们有何区别呢?Python列表(list)元素可以使用不同的数据类型,可以嵌套在内存中不连续存放,是一个动态的指针数据读写效率低,占用内存空间大不适合做数值计算Numpy数组(ndarray)元素数据类型相同每个元素在内存中占用的空间相同,存储在一个连续的内存区域中存储原创 2020-10-16 18:01:42 · 2232 阅读 · 0 评论 -
TensorFlow2.0新特性
An end-to-end open sorce machine learning platformend-to-end:端到端open source:开放源代码,开放设计和实现框架machine learning:机器学习生态系统TensorFlow的发展历程2011:DistBelief2015.11:TensorFlow 0.5.02017.2:TensorFlow 1.0高层APi,将Keras库整合进其中Eager Execution、TensorFlow Lite、Te原创 2020-10-15 16:07:14 · 826 阅读 · 0 评论 -
手写数字数据集MNIST
文章目录一、 简介二、下载MNIST数据集训练集和测试集的长度输出图像数据和标记数据的形状显示手写数字图片输出数据集中的第1个样本显示图片一、 简介MNIST是一个非常有名的手写体数字识别数据集(手写数字灰度图像数据集),在很多资料中,这个数据集都会被用作深度学习的入门样例。MNIST数据集是由0到9的数字图像构成的。训练图像有6万张,测试图像有1万张。MNIST数据集是NIST数据集的一个子集,它包含了60000张图片作为训练数据,10000张图片作为测试数据。由250个不同的人手写而成。每一张图原创 2020-10-14 17:22:24 · 18242 阅读 · 0 评论 -
Pillow图像处理库
图像处理库matplotlib.image仅支持导入PNG格式的图像,且功能有限PIL(Python Imaging Library)功能丰富,简单应用仅支持python2.x版本,且已经停止更新Pillow在PIL的基础上发展而成支持python3安装和导入包/模块PIllow的安装使用Anaconda使用pip命令安装pip install pillow导入PIL.image模块通过image类的函数、方法和属性,完成对图像的读取、显示和简单的操作原创 2020-09-30 16:49:14 · 655 阅读 · 0 评论 -
数字图像的基本概念
数字图像的基础图像的离散化连续图像:人眼直接感受到的图像数字图像:把连续的图像数字化、离散化之后的图像,它是对连续图像的一种近似像素(Pixel):试图想中的一个最小单位位图(bitmap):通过记录每一个像素值来存储和表达的图像在当前的显示和打印技术中,这些像素点已经可以做的非常小,而且排列紧凑,因此能够精确地表现出线条的变化和色彩的细微过度产生逼真的效果。色彩深度/位深度:保存位图时,需要记录每一个像素的颜色值,位图中每个像素点要用到多少二进制位来表示BMP格式:原创 2020-09-25 17:00:05 · 3412 阅读 · 0 评论 -
tensorflow入门(二)鸢尾花数据集
目录鸢尾花数据集下载鸢尾花数据集iriscsv文件下载数据集Pandas访问csv数据集Pandas库Pandas二维数据基本操作读取csv数据集文件设置列标题names参数访问数据显示统计信息DataFrame的常用属性:ndim、size、shape鸢尾花数据集鸢尾花数据集是在加拿大的加斯帕半岛,在同一时间的同一个时段,在相同的牧场上由同一个人使用相同的测量仪器测量出来的。包括三种鸢尾花类别,每个类别有50个样本,每个样本中包括4种鸢尾花的属性特征,和鸢尾花的品种。这4种属性特征分别是花萼的长原创 2020-09-24 18:00:08 · 7326 阅读 · 0 评论 -
tensorflow入门(一)波士顿房价数据集
KerasKeras 是基于 Theano 或 TensorFlow 的一个深度学习框架,它的设计参考了 Torch,用 Python 语言编写,是一个高度模块化的神经网络库,支持 GPU 和 CPU。它可以快速搭建神经网络模型,非常易于调试和扩展。TensorFlow的官方API内置了一些常用的公共数据集,可以通过keras.datasets模块加载和访问。Keras中集成的数据集序号名称说明1boston_housing波士顿房价数据集2CIFAR1010种类原创 2020-09-17 17:20:39 · 9951 阅读 · 2 评论