AI笔记(1)

2023-11-12

回归与分类

回归:在数学表示,数值是一个连续性的,要预测的一个值。回归分析是一种预测性的建模技术,它研究的是因变量和自变量之家的关系,这种技术通常用于预测分析,通过使用直线或曲线来拟合数据点,目标是使曲线到数据点的距离差异最小。

分类:分类模型可以将回归模型的输出离散化,数值是离散型的

总结:定量输出为回归,即连续的变量预测,可以输出任意实数;定性输出为分类,即离散的变量预测,只能输出离散的值。

举例:预测明天的气温是多少度,这是一个回归问题;预测明天是阴天,晴天还是雨天,这是一个分类问题。

一、线性回归

定义:

线性回归是回归分析问题中的一种,线性回归假设自变量和因变量之间线性相关,即满足一个一元或多元一次方程,通过构建损失函数,来求解损失函数的参数。

能够用一个直线较为准确地描述数据之间的关系,这样当出现新的数据的时候,就能够预测出一个简单的值。

举例:

小王想要在商场开一家咖啡店,首先需要预测一下开这家店,是否可以赚钱呢?最后的应收取决于投入的成本,以及最后的收入。于是小王开始计算成本(包括:房屋费,设备费,装修费,人工费等等),而这些成本费是可以量化的。那么计算收入的时候,应该如何计算呢?这个时候就需要前提调研,统计数据,这份数据指的是商场的日均人流量和商场中同类型的咖啡店日均销售收入之间的关系。

这份数据不够直观,将人流量与销售收入之间的关系,以散点图的形式表示出来:

这个散点图看起来像一条直线,思考:可否采用线性回归模型来表示人流量与销售收入之间的这种关系!

线性回归:用一条直线表示两个变量之间的关系,当有了这个关系,再知道某一个变量的情况下,就能很容易得推算出另一个变量的数值,在我们这个例子中,这两个变量就是日均人流量和日均销售收入。

这里涉及到几个概念:第一个就是自变量,这里指的是商场的日均人流量,一般用x表示,第二个就是因变量,被预测的变量称为因变量,一般用y表示,这里指的是日均销售收入,还有一个就是线性方程,一条直线可以用y=kx+b来表示。

现在引入线性回归的概念:一个自变量和一个因变量,两者之间的关系可以用一条直线近似表示,这种回归被称为简单线性回归。

问题:

如何得到更合适的线性方程(如何得到这条直线)----->这条直线有多个画法,怎么找到最合适的呢,最能体现自变量和因变量之间的关系呢?

求解:

方法一:最小二乘法

方法二:梯度下降法,梯度下降法的核心内容是对自变量进行不断的更新(针对两个参数求偏导),使得目标函数不断逼近最小值的过程。这里主要讲述第一种方法。

(1)由线性回归可以估计y=kx+b

估计出来的值日均销售收入,用y冒来表示。而实际日均销售收入,用y来表示。我们希望y冒和y越相近越好,代表我们估计的值越准确。

这就是所谓的最小二乘法,这个平方和越大,代表预测值和实际值之间的差距越大,相反,这个平方和越小,代表预测值和实际值之间的差距越小。当这个平方和为0时,显然,估计值和实际值完全相同。

问题:

如何求解最小二乘法?

求解:

数学家已经推导出计算公式,即损失函数分别对两个参数求导,令导数等于0,即最小值。

扩展:

(1)使用python的sklearn这个库来求解简单的线性回归方程或者使用matlab求解线性回归模型或者spss求解线性回归方程

视频教程:https://www.bilibili.com/video/BV1sJ411z7zJ

(2)多维线性回归

同样的操作,只不过损失函数的最小值,需要涉及到矩阵运算

 

二、逻辑回归

逻辑回归是做什么的?

逻辑回归是数据挖掘中的一种算法,用来解决二分类问题。

分类问题:

多种不同的动物以及它们的特征,比如青蛙,鸽子,猪,蝙蝠,鲸鱼等动物,特征有体温,胎生,水生,飞行,有腿等,那么每种动物属于不同的种类,有一条新的数据,知道它的一些特征,预测其属于哪一种类。这个问题就是一种分类问题。

这种判断每条数据所属类别的问题就叫做分类问题。

二分类问题:

目标列只有两种情况时,就是二分类问题

定义:

逻辑回归=线性回归+sigmoid函数

如何把回归变成分类呢?

依然回归上述咖啡店的场景,假如这家咖啡店的销售收入y小于130的时候,这家咖啡店是亏钱的,当销售收入y大于130的时候,这家咖啡店是赚钱的。从图中可以看出,红色这部分是亏钱,蓝色这部分是赚钱,那么映射到x轴,x小于等于14是亏钱的,x大于14是赚钱的,所以就将回归问题转换为分类问题。

sigmoid函数

回到前面的问题:逻辑回归=线性回归+sigmoid函数,其实就是上面例子中,通过某种转换方式,把回归问题转换为分类问题。直接理解sigmoid函数,就是下面这幅图:

这条函数图,定义域的取值范围是任意实数,而值域的取值范围是0-1之间的任意实数,当自变量趋于负无穷的时候,函数值趋于0,当自变量趋于正无穷的时,函数趋于1.

sigmoid函数是怎么起作用的?

线性回归模型的预测结果y=wx+b,该预测值可能是负无穷到正无穷之间的任意值。将该结果作为sigmoid函数的输入,经过sigmoid函数的转变,可以将最后的结果轻易的转换为0-1之间的某个数。

经过sigmoid函数后,我们还做这样一个操作,当函数的值小于0.5的时候,我们将其预测为0;当函数的值大于0.5的时候,我们将其预测为1------>这样我们就得到一个二分类的结果了。

逻辑回归公式推导

梯度下降法:

梯度:在微积分中,对多元函数的参数求偏导数,求得的各个参数的偏导数以向量的形式表示出来,就是梯度。

梯度的几何意义就是:函数变化增加最快的地方。沿着梯度向量的方向,梯度增加最快,更加容易找到函数的最大值,沿着梯度向量的反方向,梯度减少最快,更容易找到函数的最小值。

应用:在机器学习中,在最小化损失函数的时候,可以采用梯度下降法来一步步的迭代,得到最小化的损失函数和模型参数值。

直观解释:

比如我们位于大山上的某处位置,此时我们不知道如何下山,于是决定走一步算一步,也就是没走到一个位置的时候,就求解当前位置的梯度,沿着梯度的反方向,也就是最陡峭的位置向下走一步,然后继续求解当前位置的梯度,这样一步步的走下去,一直走到觉得我们已经到了山脚,其实,这样走下去,有可能我们不能走到山脚,而是走到了某一个局部的山峰低处。即梯度下降不一定能够找到局部的最优解,也可能是一个局部的最优解,但是,当我们的损失函数时凸函数,梯度下降法得到的解一定是全局最优解。

梯度下降算法:

  • 批量梯度下降法(BGD)
  • 随机梯度下降法(SGD)
  • 小批量梯度下降法(MBGD)

参考链接:https://www.cnblogs.com/pinard/p/5970503.html

 

三、神经网络

用简单通俗的方式讲一下神经网络,简单来说,神经网络是一种模仿生物神经网络的结构和功能的数学模型,神经网络不仅仅是用来识别图片中的动物是猫还是狗,他现在也被应用于非常广泛的领域,比如我们熟知的自动驾驶,人脸识别,AI换脸等等,这些都是基于神经网络实现的。

通常我们在看论文或者一些学术报告中,看到的神经网络可能非常复杂,但是不要被它的高深外表所吓到。

我们知道大脑是由神经元组成的,几百亿个神经元组合起来构成了可以感知复杂世界并知道我们行动的大脑,但这其中的每一个神经元都只是决定要不要给下一个神经元发射信号而已。神经网络也是一样的,我们先从最简单的神经元说起,其实这其中的每一个神经元都可以理解成一个简单的逻辑回归算法。

举例说明

小王在商场开咖啡店的例子,必须要做的一件事就是预测一下咖啡店每天会有多少人进店,以此来判断咖啡店是否盈利。

假如他知道开在其他商场的同类咖啡店,每日进店人数和商场日均人流量的关系,那他就可以根据商场人流量来预测咖啡店的进店人数,只需要一个简单的线性回归就可以了,就是这样一条直线

一元线性回归就是输入特征只有一个,比如在这个例子中就只有商场人流量,那多元线性回归就是指输入的特征有多个,这种通过几个特征来预测结果的方式可以类比为一个神经元。稍有不同的是,神经网络里的神经元的线性回归还要经过一层激活函数(sigmoid函数),即逻辑回归里的两个函数嵌套关系,这样就避免了多个神经元连接之后,由于线性关系导致的深层无效了,其实每个神经元就只做了这么一点事情

                 

咖啡店这个例子再丰富一点是这样的,小王想要预测他的咖啡店是否能盈利,他现在已经取得了一些数据,包括商场的人流量,人均消费水平,消费类型,性别比例,年龄分布等等信息。根据不同的数据,他能推测出不同的信息,比如通过人流量,消费类型和年龄分布可以推测出进店人数,根据人均消费,消费类型和性别比例,可以预测出人均购买咖啡的单价,再根据一些其他信息可以推测出买甜品的价格。这其中每一个源泉都是线性回归加上激活函数(sigmoid函数)的一个组合,当获得了进店人数,人均购买咖啡价格,人均购买甜品价格之后,又可以以这三种数据为输入,进一步进行预测,来推断出咖啡店是否盈利

小王根据最原始的特征,通过这样两层的预测就得到了他想要的结果,这样一个模型就是一个简单的神经网络了。在神经网络中最左侧这一层是一些输入的特征值,我们称为输入层。中间这一层是隐藏层,最右侧是输出结果,称之为输出层.

中间层之所以被称之为隐藏层,是因为在实际的神经网络中并不像前面例子中介绍的这样简单,目前还没有办法很好的解释中间各个节点所代表的含义,通过增加隐藏层的成熟和神经元的数量,可以构造出更加复杂的神经网络,在数据量大的情况下,层数的增加可以解决更复杂的问题,网址:https://playground.tensorflow.org/

学习神经网络非常有用的网站,可视化地展示了一些数据,展示了神经网络的构造,以及学习率,激活函数等


2013年纽约大学发表了一篇论文,这篇论文可视化了用于图像识别领域的卷积神经网络的不同层,第一层能识别出一些线条,第二层可以识别出简单的形状,第三层能识别出一些局部的信息,到第四层和第五层的时候,已经能识别出一些完整的图像了。

当然神经网路还是有一些相对复杂的结构的。比如卷积神经网络,加入了卷积层和池化层,使其在图像识别领域拥有了一席之地。再比如循环神经网络引入了记忆单元,使其在解决语音识别这种前后关联的问题中更有优势。

强烈推荐这个网站(https://playground.tensorflow.org/),可以动手搭建一个简单的神经网络体验一下,如果你想深入学习神经网络,那么吴恩达的课程绝对是不二选择,在推荐一本书deep learning界的“圣经”:Deep Learning

b站up主:等等很简单

 

 

四、深度学习

深度学习,按照我的个人理解就是多层神经网络。

深度学习的特点:

  • 自动提取特征
  • 通用的网络结构

传统上,识别一只猫需要提取特征,提取特征就有很多人工设计的环节,比如识别眼睛,眼睛下面有鼻子,鼻子下面有嘴巴等等,但是深度学习可以自动提取特征(只管告诉他这就是猫,进行训练即可),训练完成以后,就可以得到想要的结果。第二个特点就是深度学习是一个通过的网络结构,比如今天识别猫,明天识别狗,还是给他这样的网络结构,唯一的区别就是输入数据的时候是不同的,这就是深度学习使用的一些优点。

如何使用深度学习:

第一部分:数据预处理,需要消耗人工成本,在CV领域,包括三部分:分类,分割,检测

第二部分:训练

迁移学习:数据量不够,拿人的照片,狗的照片训练,训练完以后有基础的黑箱模型,在这个黑箱模型的基础上,再把猫的照片拿去训练,可以弥补没有足够多猫的照片数据的缺陷。

第三部分:测试及部署

 

 

 

 

 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

AI笔记(1) 的相关文章

  • 图像分类比赛

    cp data wanghd s4 data car data data wanghd whd 使用该命令报错 添加 r 可以实现正常复制 速度非常快 参考博客得到解决 Linux常见错误 cp omitting directory 解决办
  • 输出一个单链表&&反向输出一个单链表(最后有原链接)

    输出一个单链表 假设我们有一个单链表 let list value 1 next value 2 next value 3 next value 4 next null 编写一个可以逐个输出链表元素的函数 printList list 使用
  • arcgis for landsat 8处理

    landsat8的详细数据处理http vdisk weibo com s zrSeGYf9hMRAH http blog sina com cn s blog 764b1e9d01018z6j html http blog sina co

随机推荐

  • osgEarth的Rex引擎原理分析(五十五)Rex引擎如何给shader文件中的uniform变量赋值

    目标 五十四 中的问题128 有几个地方 RexEngine SDK vert glsl中的 uniform sampler2D oe tile elevationTex osgEarthDrivers engine rex RexTerr
  • 全桥逆变电路部分分析

    首先来看单相逆变不间断电源设计电路中的全桥逆变电路部分 它是由两个IR2101驱动和4个MOS管构成的全桥逆变电路 有人会说了 IR2101不是半桥驱动芯片吗 没错 的确是半桥驱动芯片 和IR2104一样的 常被用在三相逆变电路中做三个半桥
  • RCE漏洞详解及绕过总结(全面)

    作者 永不落的梦想 作者主页 传送 座右铭 过去属于死神 未来属于自己 本文专栏 Web漏洞篇 今日鸡汤 只有承担起旅途风雨 最终才能守得住彩虹满天 目录 一 rce漏洞概述 二 常见RCE漏洞函数 1 系统命令执行函数 2 代码执行函数
  • 华为OD机试真题-工作安排【2023Q1】【JAVA、Python、C++】

    题目描述 小明每周上班都会拿到自己的工作清单 工作清单内包含n项工作 每项工作都有对应的耗时时长 单位h 和报酬 工作的总报酬为所有已完成工作的报酬之和 那么请你帮小明安排一下工作 保证小明在指定的工作时间内工作收入最大化 输入描述 输入的
  • 手动安装xapk

    xpak文件实际是一个压缩包 用解压软件可查看其内容 情况1 obb 多见于游戏 apk主包文件很小 用户能安装并启动 要解锁游戏全部内容 则需要下载obb文件 obb文件一般位于 sd卡的根目录下 路径大概是 sdcard Android
  • vue admin-template 添加动态路由

    store getters js const getters sidebar state gt state app sidebar device state gt state app device token state gt state
  • MATLAB实现最大类间方差算法

    Otsu算法 大律法或最大类间方差法 最大类间方差法是由日本学者大津 Nobuyuki Otsu 于1979年提出的 是一种自适应的阈值确定的方法 又叫大津法 简称OTSU 它是按图像的灰度特性 将图像分成背景和目标2部分 背景和目标之间的
  • Pycharm破解方法

    3 破解补丁激活 优点 到期时间为2099年 基本为永久啦 缺点 相对服务器激活麻烦些 但是一共只需要3个步骤 其实并不麻烦 下载 https pan baidu com s 1mcQM8CLUnweY02ahKEr4PQ 并将 Jetbr
  • win7设置右键+T 快捷键 快速新建文本文档

    1 win r 组合键呼出 运行 win就是键盘上和桌面 开始 有相同图标的按键 田 字 2 输入regedit 回车 出现 注册表编辑器 窗口 3 窗口下寻找这个位置 HKEY CLASSES ROOT Local Settings Mu
  • 【pygame学习_5】窗口设计

    1 引言 窗体是游戏的交互界面 一般我们会遇到窗口大小可调 窗口无边框 全屏显示 最小化设计 改名字 换图标等设计需求 屏幕绘制有如下重要函数 2 屏幕模式函数 pygame display set mode print pygame di
  • java解析蓝奏云直连(解析真正文件地址)

    使用htmlunit解析蓝奏云直连 前言 最近有个需求 客户端需要更新软件版本 我一直在用蓝奏云 觉得是个非常不错的网盘 可是如果用户自己打开连接选择下载方式很麻烦 用过蓝奏的朋友都知道 打开外链还要选择普通下载 电信下载 联通下载 很麻烦
  • 多系统UEFI启动项清理,windows、ubuntu,win10盘符隐藏

    文章目录 step1 推荐方法 step2 在window系统中启动cmd窗口 win10 隐藏不必要的盘符 如单机多系统情形 step1 推荐方法 参考 https blog csdn net mtllyb article details
  • sap服务器数据库配置文件,安装和配置 SAP 和数据库

    安装和配置 SAP 和数据库 使用本节中的过程可以执行以下任务 安装 SAP 和数据库 安装 SAP 和可缩放的应用程序服务器 使 SAP 能够在群集中运行 检验 SAP 和数据库安装是否适合于中央实例 检验 SAP 和数据库安装是否适合于
  • R语言排序函数sort(),rank(),order()

    转载地址 http blog sina com cn s blog 6caea8bf0100spe9 html 在R中 和排序相关的函数主要有三个 sort rank order sort x 是对向量x进行排序 返回值排序后的数值向量 r
  • c++智能指针

    C 智能指针详解 本文系转载 原文出处 诚然原博主总结的非常好 我只是加一些自己觉得需要补充的地方 并且在最后给出目前c 11在智能指针这方面的弥补 一 简介 由于 C 语言没有自动内存回收机制 程序员每次 new 出来的内存都要手动 de
  • 分布式系统实现幂等性的方式

    幂等性 接口的幂等性就是同样的数据 在实现方法的多次调用 得到的结果一致 对于查询接口 天然的保持幂等性 但是对于cud来说 如何保持幂等性 看法 从以下方式来看 要保证幂等性 必须要有一个标识 至始至终的保持不变的标识 只有这样 后来的操
  • 开源点云数据集整理汇总

    目录 一 ModelNet40 1 网址 2 模型 二 ShapeNet 1 网址 2 模型 三 S3DIS Dataset 1 网址 2 模型 四 ScanNet 1 网址 2 模型 五 RGB D Object Dataset 1 网址
  • 麻雀算法极限学习机SSA-ELM回归预测及其MATLAB代码实现

    作者简介 热爱科研的Matlab仿真开发者 修心和技术同步精进 matlab项目合作可私信 个人主页 Matlab科研工作室 个人信条 格物致知 更多Matlab仿真内容点击 智能优化算法 神经网络预测 雷达通信 无线传感器 信号处理 图像
  • 哈希 学习笔记

    Tips Hash 哈希 散列 Tips 哈希经常与哈希函数指一个意思 本文中哈希与哈希函数不做特殊区分 默认就是一个意思 什么是哈希 在记录的关键字与记录的存储地址之间建立的一种对应关系叫哈希函数 哈希函数就是一种映射 是从关键字到存储地
  • AI笔记(1)

    回归与分类 回归 在数学表示 数值是一个连续性的 要预测的一个值 回归分析是一种预测性的建模技术 它研究的是因变量和自变量之家的关系 这种技术通常用于预测分析 通过使用直线或曲线来拟合数据点 目标是使曲线到数据点的距离差异最小 分类 分类模