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

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

目录

初识人工智能

机器学习概述

机器学习算法分类

模型评估

深度学习概述

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.mzph.cn/news/642521.shtml

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

相关文章

题解:CF1920E. Counting Binary Strings

题解:CF1920E. Counting Binary Strings 题意简述 题目链接:Problem - E - Codeforces。 洛谷翻译:Counting Binary Strings - 洛谷。 思路解析 假设我们有一个01串str(设里面有z个“1”),我们要求它里…

【MySQL进阶】视图_存储过程_存储函数_触发器

文章目录 视图基本介绍视图操作视图创建视图查询视图修改视图删除 存储过程基本介绍基本操作存储语法变量IF语句参数传递CASEWHILEREPEATLOOP游标 存储函数触发器基本介绍基本操作 总结 视图 基本介绍 视图概念:视图是一种虚拟存在的数据表,这个虚拟的表…

透明拼接屏在汽车领域的应用

随着科技的进步,透明拼接屏作为一种新型的显示技术,在汽车领域的应用越来越广泛。尼伽小编将围绕透明拼接屏在汽车本身、4S店、展会、工厂等方面的应用进行深入探讨,并展望未来的设计方向。 一、透明拼接屏在汽车本身的应用 车窗显示&#x…

Python入门(一)

anaconda安装 官网:https://www.anaconda.com下载 jupyter lab 简介: 包含了Jupyter Notebook所有功能。 JupyterLab作为一种基于web的集成开发环境,你可以使用它编写notebook,操作终端,编辑markdown文本&#xf…

Linux中文件属性的获取(stat、chmod、Istat、fstat函数的使用)

修改文件权限 函数如下&#xff1a; chmod/fchmod函数用来修改文件的访问权限: #include <sys/stat.h> int chmod(const char *path, mode_t mode); int fchmod(int fd, mode_t mode); 成功时返回0&#xff1b;出错时返回EOF 注意&#xff1a;在vmware和windows共享的文…

NetSuite 文心一言(Ernie)的AI应用

有个故事&#xff0c;松下幸之助小时候所处的年代是明治维新之后&#xff0c;大量引用西洋技术的时期。当时大家对“电”能干什么事&#xff0c;充满好奇。“电能干什么&#xff1f;它能帮我们开门么&#xff1f;” 松下幸之助的爷爷对电不屑&#xff0c;于是就问他。松下幸之助…

【新闻感想】谈一下PandoraNext的覆灭(潘多拉Next-国内可访问的免费开放GPT共享站将于2024年1月30日关闭)

文章目录 悲报&#xff1a;TIME TO SAY GOODBYE&#xff01;PandoraNext&#xff01;PandoraNext作者言&#xff1a;你们赢了&#xff0c;但我却没有输我如何了解到PandoraNext的合照留念于是开始逆向&#xff01; 悲报&#xff1a;TIME TO SAY GOODBYE&#xff01;PandoraNext…

Java入门高频考查基础知识5(扎实技术基础应变一切变化-45题4.2万字参考答案)

技术变革裁员影响的因素&#xff1a; 自动化替代简单重复性工作&#xff1a;随着技术的发展&#xff0c;一些简单、重复性的编码任务可能被自动化工具或者机器学习算法取代。这可能导致一些岗位的需求减少或者消失&#xff0c;从而可能导致部分人员裁员。 技能更新要求&#x…

大模型日报-20240122

清华、小米、华为、 vivo、理想等多机构联合综述&#xff0c;首提个人LLM智能体、划分5级智能水平 https://mp.weixin.qq.com/s/JYB4BzsXhWF8pEUUkvn_GQ 想必这些唤醒词中至少有一个曾被你的嘴发出并成功呼唤出了一个能给你导航、讲笑话、添加日程、设置闹钟、拨打电话的智能个…

【.NET Core】深入理解异步编程模型(APM)

【.NET Core】深入理解异步编程模型&#xff08;APM&#xff09; 文章目录 【.NET Core】深入理解异步编程模型&#xff08;APM&#xff09;一、APM概述二、IAsyncResult接口2.1 BeginInvoke2.2 EndInvoke2.3 IAsyncResult属性2.4 IAsyncResult异步演示 三、通过结束异步操作来…

系统架构演变

1.1系统架构的演变 2008年以后&#xff0c;国内互联网行业飞速发展&#xff0c;我们对软件系统的需求已经不再是过去”能用就行”这种很low的档次了&#xff0c;像抢红包、双十一这样的活动不断逼迫我们去突破软件系统的性能上限&#xff0c;传统的IT企业”能用就行”的开发思…

yum下载源,vim使用

文章目录 yum本地配置lzrsz命令行互传scp(远程拷贝)vim yum本地配置 [rootiZf8z3j2ckkap6ypn717msZ ~]# pwd /root [rootiZf8z3j2ckkap6ypn717msZ ~]# ls /etc/yum.repos.d CentOS-Base.repo epel.repo //本地配置源yum会根据/etc/yum.repo.d路径下的配置文件来构成自己的下载…

人类行为动作数据集大合集

最近收集了一大波关于人类行为动作的数据集&#xff0c;主要包括&#xff1a;动作识别、行为识别、活动预测、动作行为分类等数据集。废话不多说&#xff0c;接下来就给大家介绍这些数据集&#xff01;&#xff01; 1、用于自动视频编辑的视频Blooper数据集 用于自动视频编辑…

idea中debug Go程序报错error layer=debugger could not patch runtime.mallogc

一、问题场景 在idea中配置了Go编程环境&#xff0c;可以运行Go程序&#xff0c;但是无法debug&#xff0c;报错error layerdebugger could not patch runtime.mallogc: no type entry found, use ‘types’ for a list of valid types 二、解决方案 这是由于idea中使用的d…

SpringBoot统一返回和统一异常处理

Session 认证和 Token 认证 过滤器和拦截器 SpringBoot统一返回和统一异常处理 上篇文章我们学习了基于 Token 认证的登录功能实现&#xff0c;分别使用了过滤器和拦截器去实现登录功能&#xff0c;这篇文章我们来学习项目中常用的统一返回结果和统一异常处理。 一、统一返…

【LeetCode每日一题】670. 最大交换

2024-1-22 文章目录 [670. 最大交换](https://leetcode.cn/problems/maximum-swap/)思路&#xff1a; 670. 最大交换 思路&#xff1a; 从后往前遍历整数的字符数组&#xff0c;找到第一个比当前最大值小的数字&#xff0c;然后将该数字与最大值进行交换。 将给定的整数转换为…

数据库-分库分表初探

文章目录 分库策略垂直切分垂直分库&#xff08;专库专用&#xff09;垂直分表&#xff08;拆表&#xff09;优点缺点 水平(Sharding)切分水平分表库内分表分库分表优点缺点 分表策略hash取模方案range范围区间取值方案映射表方案 分库分表问题事务一致性问题跨节点关联查询跨节…

浅谈拨测在网络安全中的应用

在当今数字化时代&#xff0c;网络安全成为各个行业和组织关注的焦点。为了保障网络的稳定性和信息的安全&#xff0c;拨测安全性成为一种日益重要的工具。本文将介绍拨测在网络安全中的应用&#xff1a; 1.威胁模拟 通过威胁模拟&#xff0c;拨测安全性可以模拟各种网络攻击&a…

初谈C++:命名空间、输入输出

文章目录 前言C关键字命名空间命名空间的作用命名空间定义命名空间的使用 C的输入&输出 前言 什么是C&#xff1f; C语言是结构化和模块化的语言&#xff0c;适合处理较小规模的程序。对于复杂的问题&#xff0c;规模较大的程序&#xff0c;需要高度的抽象和建模时&#…

mockjs(3)

mockjs&#xff08;1&#xff09; mockjs&#xff08;2&#xff09; 这篇主要是Mock.random工具类&#xff0c;前段要用的话主要是在模版中的占位符。mockjs&#xff08;1&#xff09;里面的3.2 6 Mock.random Mock.Random 是一个工具类&#xff0c;用于生成各种随机数据。 …