机器学习 | 深入理解并掌握核心概念

news2024/11/26 21:15:53

        在如今数字化时代的浪潮下,机器学习已经成为人工智能领域的璀璨明星。它像一面魔镜,赋予计算机系统学习和改进的能力,让机器能够从海量数据中提取规律、预测未来,甚至做出智能决策。本 专栏 将带您踏上机器学习的奇妙之旅,探索其原理、方法和应用。我们将揭开机器学习背后的神秘面纱,解释监督学习、无监督学习、强化学习等不同类型的机器学习算法。

目录

初识人工智能

机器学习概述

机器学习算法分类

模型评估

深度学习概述

Jupyter Notebook使用 


初识人工智能

人工智能概述:人工智能发展必备的三要素是:数据、算法、计算力,数据和算法大家可以理解是什么意思,但是计算力是什么呢?计算力与我们电脑的显卡有关,如:CPU、GPU、TPU:

我们个人常用的CPU主要适合I\O密集型任务,以下是适合GPU运行的程序:

1)计算密集型的程序:其大部分运行时间花在了寄存器运算上,寄存器的速度和处理器的速度相当,从寄存器读写数据几乎没有延时。可以做一下对比,读内存的延迟大概是几百个时钟周期;读硬盘的速度就不说了,即便是SSD,也实在是太慢了。

2)易于并行的程序:GPU其实是一种SIMD(Single Instruction Multiple Data)架构,他有成百上千个核,每一个核在同一时间最好能做同样的事情。

以下是人工智能、机器学习与深度学习三者之间的关系(机器学习是人工智能的一个实现途径而深度学习是机器学习的一个方法发展而来):

深度学习作为机器学习的一个分支,更是引起了广泛的关注和热议。它基于多层次神经网络的模型,通过层层非线性变换,实现对数据的高效建模和特征提取。深度学习在计算机视觉、自然语言处理、语音识别等领域的取得的突破,让人们对于机器学习的潜力有了更加深刻的认识。

人工智能的发展阶段:人工智能充满未知的探索道路曲折起伏。如何描述人工智能自1956年以来60余年的发展历程,学术界可谓仁者见仁、智者见智。我们将人工智能的发展历程划分为以下6个阶段:

人工智能主要分支:通讯、感知与行动是现代人工智能的三个关键能力,在这里我们将根据这些能力/应用对这三个技术领域进行介绍:

计算机视觉(CV)

指机器感知环境的能力。这一技术类别中的经典任务有图像形成、图像处理、图像提取和图像的三维推理。物体检测和人脸识别是其比较成功的研究领域。

当前阶段

计算机视觉现已有很多应用,这表明了这类技术的成就,也让我们将其归入到应用阶段。随着深度学习的发展,机器甚至能在特定的案例中实现超越人类的表现。但是,这项技术离社会影响阶段还有一定距离,那要等到机器能在所有场景中都达到人类的同等水平才行(感知其环境的所有相关方面)。

计算机视觉的发展历史如下,总体处于一个不错的态势:

其应用场景如下图所示:

语音识别

指识别语音(说出的语言)并将其转换成对应文本的技术。相反的任务(文本转语音/TTS)也是这一领域内一个类似的研究主题。

当前阶段

语音识别已经处于应用阶段很长时间了。最近几年,随着大数据和深度学习技术的发展,语音识别进展颇丰,现在已经非常接近社会影响阶段了。但语音识别领域目前仍面临着声纹识别和“鸡尾酒会效应”等一些特殊情况的难题。现代语音识别系统严重依赖于云,在离线时可能就无法取得理想的工作效果。

语音识别的发展历史如下,总体也是处于一个不错的态势:

文本挖掘/分类

指文本分类,该技术可用于理解、组织和分类结构化或非结构化文本文档。其涵盖的主要任务有句法分析、情绪分析和垃圾信息检测。

当前阶段

我们将这项技术归类到应用阶段,因为现在有很多应用都已经集成了基于文本挖掘的情绪分析或垃圾信息检测技术。文本挖掘技术也在智能投顾的开发中有所应用,并且提升了用户体验。当然文本挖掘和分类领域的一个瓶颈出现在歧义和有偏差的数据上。

文本挖掘/分类的发展历史如下:

机器翻译(MT)

是利用机器的力量自动将一种自然语言(源语言)的文本翻译成另一种语言(目标语言)。

当前阶段

机器翻译是一个见证了大量发展历程的应用领域。该领域最近由于神经机器翻译而取得了非常显著的进展,但仍然没有全面达到专业译者的水平;但是,我们相信在大数据、云计算和深度学习技术的帮助下,机器翻译很快就将进入社会影响阶段。在某些情况下,俚语和行话等内容的翻译会比较困难(受限词表问题)。专业领域的机器翻译(比如医疗领域)表现通常不好。

机器翻译的发展历史如下:

机器人(Robotics)

机器人学研究的是机器人的设计、制造、运作和应用,以及控制它们的计算机系统、传感反馈和信息处理。机器人可以分成两大类:固定机器人和移动机器人。固定机器人通常被用于工业生产(比如用于装配线)。常见的移动机器人应用有货运机器人、空中机器人和自动载具。机器人需要不同部件和系统的协作才能实现最优的作业。其中在硬件上包含传感器、反应器和控制器;另外还有能够实现感知能力的软件,比如定位、地图测绘和目标识别。

当前阶段

自上世纪「Robot」一词诞生以来,人们已经为工业制造业设计了很多机器人。工业机器人是增长最快的应用领域,它们在20世纪80年代将这一领域带入了应用阶段。在安川电机、Fanuc、ABB、库卡等公司的努力下,我们认为进入21世纪之后,机器人领域就已经进入了社会影响阶段,此时各种工业机器人已经主宰了装配生产线。此外,软体机器人在很多领域也有广泛的应用,比如在医疗行业协助手术或在金融行业自动执行承销过程。但是,法律法规和「机器人威胁论」可能会妨碍机器人领域的发展。还有设计和制造机器人需要相对较高的投资。

机器人的发展历史如下:

        总的来说,人工智能领域的研究前沿正逐渐从搜索、知识和推理领域转向机器学习、深度学习、计算机视觉和机器人领域。大多数早期技术至少已经处于应用阶段了,而且其中一些已经显现出了社会影响力。一些新开发的技术可能仍处于工程甚至研究阶段,但是我们可以看到不同阶段之间转移的速度变得越来越快。 

机器学习概述

机器学习是一门令人着迷的学科,它通过模仿人类的学习过程,赋予计算机自主学习的能力。与传统的编程方式不同,机器学习允许计算机通过大量的数据进行训练,从而自动发现其中的模式和规律。这种自主学习的能力使得机器能够应对复杂、高维度的问题,解决传统方法难以解决的挑战。

机器学习是从数据中自动分析获得模型,并利用模型对未知数据进行预测:

机器学习的工作流程大致如下:

总结流程就是(结果达到要求上线服务,结果没有达到要求重复下面流程):

1)获取数据 ——> 2)数据基本处理 ——> 3)特征工程 ——> 4)机器学习(模型训练) ——> 5)模型评估

接下来对流程中的五个步骤概念进行一个简单的讲解:

获取数据(数据集分析):下面我们就下面这张图片进行数据的分析,以及解释一下相关名词:

数据简介

在数据集当中一般:一行数据我们称为一个样本;一列数据我们称为一个特征。有些数据有目标值(标签值),有些数据没有目标值。

数据类型构成

数据类型一:征值+目标值(目标值是连续的和离散的)

数据类型二:只有特征值,没有目标值

数据分割

机器学习一般的数据集会划分为两个部分:

训练数据:用于训练,构建模型;测试数据:在模型检验时使用,用于评估模型是否有效。

划分比例:训练集:70% 80% 75%;测试集:30% 20% 25%

数据基本处理:即对数据进行缺失值、去除异常值等处理。

特征工程:特征工程是使用专业背景知识和技巧处理数据,使得特征能在机器学习算法上发挥更好的作用的过程。其意义会直接影响机器学习的效果。特征工程包含如下内容:

特征提取:任意数据(如文本或图像)转换为可用于机器学习的数字特征。

特征预处理:通过一些转换函数将特征数据转换成更加适合算法模型的特征数据过程。

特征降维:在某些限定条件下,降低随机变量(特征)个数,得到一组“不相关"主变量的过程。

机器学习:选择合适的算法对模型进行训练。

模型评估:对训练好的模型进行评估。

机器学习算法分类

根据数据集组成不同,可以把机器学习算法分为以下几种情况:

监督学习:输入数据是由输入特征值和目标值所组成。函数的输出可以是一个连续的值(称为回归)或是输出是有限个离散值(称作分类)。

回归问题,例如:预测房价,根据样本集拟合出一条连续曲线。

分类问题,例如:根据肿瘤特征判断良性还是恶性,得到的结果是”良性“或者”恶性“,是离散的。

无监督学习:输入数据是由输入特征值组成,没有目标值。输入数据没有被标记,也没有确定的结果。样本数据类别未知;需要根据样本间的相似性对样本集进行类别划分。

关于有监督和无监督学习之间的区别主要有以下情况:

半监督学习:训练集同时包含有标记样本数据和未标记样本数据。

监督学习的训练方式:

半监督学习的训练方式:

强化学习:实质是makedecisions问题,即自动进行决策,并且可以做连续决策。强化学习的目标就是获得最多的累计奖励。

例如:小孩想要走路,但在这之前,他需要先站起来,站起来之后还要保持平衡,接下来还要先迈出一条腿,是左腿还是右腿,迈出一步后还要迈出下一步。

小孩就是agent,他试图通过采取行动(即行走)来操纵环境(行走的表面),并且从一个状态转变到另一个状态(即他走的每一步),当他完成任务的子任务(即走了几步)时,孩子得到奖励(给巧克力吃),并且当他不能走路时,就不会给巧克力。主要包含五个元素:

agent、action、reward、environment、observation

监督学习和强化学习两者之间的对比如下:

描述监督学习强化学习
反馈映射输入的是之间的关系,可以告诉算法什么样的输入对应着什么样的输出。输出的是给机器的反馈 reward function,即用来判断这个行为是好是坏。
反馈时间做了比较坏的选择会立刻反馈给算法。结果反馈有延时,有时候可能需要走了很多步以后才知道以前的某一步的选择是好还是坏。
输入特征输入是独立同分布的。面对的输入总是在变化,每当算法做出一个行为,它影响下一次决策的输入。

对于上面着四种机器学习的算法分类,进行如下表格的总结:

描述InOut目的案例
监督学习有标签有反馈预测结果猫狗分类,房价预测
无监督学习无标签无反馈发现潜在结构物以类聚,人以群分
半监督学习部分有标签,部分无标签有反馈降低数据标记的难度
强化学习决策流程及激励系统一系列行动长期利益最大化学下棋

模型评估

模型评估是模型开发过程不可或缺的一部分。它有助于发现表达数据的最佳模型和所选模型将来工作的性能如何。按照数据集的目标值不同,可以把模型评估分为如下两种模型评估:

分类模型评估

准确率:预测正确的数占样本总数的比例。

其他评价指标:精确率、召回率、F1-score、AUC指标等。

回归模型评估

均方根误差(Root MeanSquaredError,RMSE):RMSE是一个衡量回归模型误差率的常用公式。不过,它仅能比较误差是相同单位的模型。

假设上面的房价预测,只有五个样本,对应的:

真实值为:100,120,125,230,400;预测值为:105,119,120,230,410

那么使用均方根误差求解得:

其他评价指标:

相对平方误差(RelativeSquaredError,RSE)

平均绝对误差(MeanAbsoluteError,MAE)

相对绝对误差(RelativeAbsoluteError,RAE)

拟合:模型评估用于评价训练好的的模型的表现效果,其表现效果大致可以分为两类:过拟合、欠拟合。在训练过程中,你可能会遇到如下问题:训练数据训练的很好啊,误差也不大,为什么在测试集上面有问题呢?当算法在某个数据集当中出现这种情况,可能就出现了拟合问题。

欠拟合(under-fitting):模型学习的太过粗糙,连训练集中的样本数据特征关系都没有学出来。

因为机器学习到的天鹅特征太少了,导致区分标准太粗糙,不能准确识别出天鹅。 

过拟合(over-fitting):所建的机器学习模型或者是深度学习模型在训练样本中表现得过于优越,导致在测试数据集中表现不佳。

机器已经基本能区别天鹅和其他动物了。然后,很不巧已有的天鹅图片全是白天鹅的,于是机器经过学习后,会认为天鹅的羽毛都是白的,以后看到羽毛是黑的天鹅就会认为那不是天鹅。 

深度学习概述

深度学习(DeepLearning)(也称为深度结构学习【DeepStructuredLearning】、层次学习【HierarchicalLearning】或者是深度机器学习【DeepMachineLearning】)是一类算法集合,是机器学习的一个分支。

深度学习方法近年来,在会话识别、图像识别和对象侦测等领域表现出了惊人的准确性。但是,“深度学习"这个词语很古老,它在1986年由Dechter在机器学习领域提出,然后在2000年有Aizenberg等人引入到人工神经网络中。而现在,由于AlexKrizhevsky在2012年使用卷积网络结构赢得了ImageNet比赛之后受到大家的瞩目。

以下是深度学习演示的参考,网址为 playground.tensorflow.org/ 大家自行体验:

Jupyter Notebook使用 

Jupyter项目是一个非盈利的开源项目,源于2014年的ipython项目,因为它逐渐发展为支持跨所有编程语言的交互式数据科学和科学计算。pyterNotebook,原名IPythonNotbook,是IPython的加强网页版,一个开源Web应用程序。名字源自Julia、Python和R(数据科学的三种开源语言),是一款程序员和科学工作者的编程/文档/笔记/展示软件,ipynb文件格式是用于计算型叙述的JSON文档格式的正式规范。

为什么使用JupyterNotebook?

传统软件开发:工程/目标明确

需求分析,设计架构,开发模块,测试

数据挖掘:艺术/目标不明确。

目的是具体的洞察目标,而不是机械的完成任务。通过执行代码来理解问题。迭代式地改进代码来改进解决方法,实时运行的代码、叙事性的文本和可视化被整合在一起,方便使用代码和数据来讲述故事

对于Jupyter Notebook的使用可以参考我之前的文章:Jupyter Notebook安装使用教程 ,这里不再赘述。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1405054.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

什么是 Web3.0

什么是Web3.0 对于 Web3.0 的解释网上有很多,目前来说 Web3.0 是一个趋势,尚未有明确的定义。我们今天讨论下几个核心的点,就能很好的理解 Web3.0 要解决哪些问题 谁创造数据,这里的数据可以是一篇博客,一段视频&…

如何在容器内部进行抓包

//先获取POD 的容器ID号 //去pod容器所在节点进行解析id为pid号 //通过pid号进入这个容器的网络命名空间 docker inspect --format {{.State.Pid}} 05f38d2a61e29b5a9d24fc7a3906991ab92ecd58ff7e0eb4e339a4cc6b2c4fc4 //访问容器内部,Node01节点

微信小程序之WXSS模板样式、页面配置(.json)和网络数据请求

学习的最大理由是想摆脱平庸,早一天就多一份人生的精彩;迟一天就多一天平庸的困扰。各位小伙伴,如果您: 想系统/深入学习某技术知识点… 一个人摸索学习很难坚持,想组团高效学习… 想写博客但无从下手,急需…

Flutter 自定义AppBar实现滚动渐变

1、使用ListView实现上下滚动。 2、使用Stack:允许将其子部件放在彼此的顶部,第一个子部件将放置在底部。所以AppBar,写在ListView下面。 3、MediaQuery.removePadding:当使用ListView的时候发现,顶部有块默认的Padd…

【 CSS 】定位

不要因为小小的失败而放弃大大的梦想,每一次坚持都是通向成功的一步。- 马克吐温 1. 定位 1.1 为何使用定位 我们先来看一个效果,同时思考一下用标准流或浮动能否实现类似的效果? 场景1: 某个元素可以自由的在一个盒子内移动位置&#xff0c…

企业如何高效营销?CBTC储能展助力企业市场拓展,黄金展位告急!

不论一家公司的规模有多大,展会都为之提供了一个很好的拓展业务的机会。参展是一种高效的营销方式。主要表现在哪些方面呢? 1、低成本接触合作客户。公司要接触到合格的客户,参加展会是最有效的方式。展会调查研究表明,通过销售电…

Effective C++——绝不在构造和析构构成中使用虚函数

父类的构造函数中调用的虚函数不是“虚”的 class father { public:virtual void log() {cout << "father building." << endl;}father(){log();} };class son : public father { public:virtual void log() {cout << "son building." &…

【面试突击】性能优化面试实战

&#x1f308;&#x1f308;&#x1f308;&#x1f308;&#x1f308;&#x1f308;&#x1f308;&#x1f308; 欢迎关注公众号&#xff08;通过文章导读关注&#xff1a;【11来了】&#xff09;&#xff0c;及时收到 AI 前沿项目工具及新技术的推送&#xff01; 在我后台回复…

【博士每天一篇论文-综述】Deep Echo State Network (DeepESN)_ A Brief Survey

阅读时间&#xff1a;2023-11-22 1 介绍 年份&#xff1a;2017 作者&#xff1a;C. Gallicchio 比萨大学计算机科学系终身教授助理教授&#xff0c;A. Micheli&#xff0c;比萨大学计算机科学系 期刊&#xff1a; ArXiv 引用量&#xff1a;68 这是两个大牛的论文&#xff0c;…

仓储管理系统——软件工程报告(需求分析)②

需求分析 一、系统概况 仓库管理系统是一种基于互联网对实际仓库的管理平台&#xff0c;旨在提供一个方便、快捷、安全的存取货物和查询商品信息平台。该系统通过在线用户登录查询&#xff0c;可以线上操作线下具体出/入库操作、查询仓库商品信息、提高仓库运作效率&#xff…

年货节电视盒子哪个好?内行分享权威网络电视盒子排行榜

淘宝、京东等已经开始了年货节促销&#xff0c;很多消费者买电视盒子会选择在此时入手&#xff0c;我近来收到了很多关于电视盒子哪个好的咨询&#xff0c;考虑到大家在选购时会参考排行榜&#xff0c;我这次要分享的是网络电视盒子排行榜&#xff0c;目前业内公认最好的电视盒…

LeetCode.2788. 按分隔符拆分字符串

题目 题目链接 分析 题目的意思是给我们一个字符串数组和一个分隔符&#xff0c;让我们按照分隔符把字符串数组分割成新的字符串数组。 看到这个描述&#xff0c;这不就是直接就是利用 按照分隔符分割字符串的系统库函数split()&#xff0c;这个函数的意思就是 把一个字符串…

C++(14.5)——再谈拷贝构造与深浅拷贝

上篇文章中&#xff0c;通过模拟的方式完成了类对象中常用的函数。在本篇文章中&#xff0c;将通过一个例子来进一步说明拷贝构造与深浅拷贝。 目录 1.再谈深浅拷贝与拷贝构造&#xff1a; 2. 流插入与流提取&#xff1a; 2.1 流插入&#xff1a; 2.2 流提取&#xff1a; …

性能优化-OpenCL运行时API介绍

「发表于知乎专栏《移动端算法优化》」 本文首先给出 OpenCL 运行时 API 的整体编程流程图&#xff0c;然后针对每一步介绍使用的运行时 API&#xff0c;讲解 API 参数&#xff0c;并给出编程运行实例。总结运行时 API 使用的注意事项。最后展示基于 OpenCL 的图像转置代码。在…

matlab模型变量一般说明,标定和显示量,以及产生a2l文件,自动填充a2l地址,并使用标定工具ati进行标定(推荐重要)

注意我是用的是matlab2019b 1&#xff0c;输入标定量&#xff0c;使用constant&#xff0c;用cal函数包裹 2&#xff0c;输出显示量&#xff0c;在划线上标注&#xff0c;然后用display函数包裹&#xff0c; 第一步和第二步完成以后&#xff0c;生产标定量a2l 3&#xff0c;输入…

分类预测 | Matlab实现LSTM-Attention-Adaboost基于长短期记忆网络融合注意力机制的Adaboost数据分类预测/故障识别

分类预测 | Matlab实现LSTM-Attention-Adaboost基于长短期记忆网络融合注意力机制的Adaboost数据分类预测/故障识别 目录 分类预测 | Matlab实现LSTM-Attention-Adaboost基于长短期记忆网络融合注意力机制的Adaboost数据分类预测/故障识别分类效果基本描述程序设计参考资料 分类…

2024年【焊工(初级)】考试内容及焊工(初级)新版试题

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 焊工&#xff08;初级&#xff09;考试内容参考答案及焊工&#xff08;初级&#xff09;考试试题解析是安全生产模拟考试一点通题库老师及焊工&#xff08;初级&#xff09;操作证已考过的学员汇总&#xff0c;相对有…

Centos7 安装redis 详细步骤访问不了github和windows系统下载

windows系统下载 https://hellowindows.cn/ VMware虚拟机安装Windows Server 2016 VL https://blog.csdn.net/qq_37545849/article/details/134828341 VMware全屏时不显示上方命令栏的边缘 此时如果要返回&#xff0c;可以把鼠标移动至屏幕上方边缘短暂停留以呼出命令栏。或使…

MNIST 数据集详析:使用残差网络RESNET识别手写数字(文末送书)

MNIST 数据集已经是一个几乎每个初学者都会接触的数据集, 很多实验、很多模型都会以MNIST 数据集作为训练对象, 不过有些人可能对它还不是很了解, 那么今天我们一起来学习一下MNIST 数据集&#xff0c;同时构建残差网络来识别手写数字。 1.MNIST 介绍 MNIST手写数字数据库具有…

RabbitMQ数据隔离

1、新建用户 2、登录用户&#xff0c;设置虚拟主机 登录用户只能操作自己的虚拟主机&#xff0c;交换机等&#xff0c;不能操作其他人的&#xff01;&#xff01;&#xff01;