机器学习有哪些模型结构?

2020-06-02 10:57发布

5条回答
东南偏南1
1楼 · 2020-06-02 14:12.采纳回答

线性模型

线性模型是最简单的,也是最基本的机器学习模型。其数学形式如下:g(X;W)=WTX。有时,我们还会在WTX的基础上额外加入一个偏置项b,不过只要把X扩展出一维常数分量,就可以把带偏置项的线性函数归并到WTX的形式之中。线性模型非常简单明了,参数的每一维对应了相应特征维度的重要性。但是很显然,线性模型也存在一定的局限性。

循环神经网络

循环神经网络(Recurrent Neural Network,RNN)[14]的设计也有很强的仿生学基础。我们可以联想一下自己如何读书看报。当我们阅读一个句子时,不会单纯地理解当前看到的那个字本身,相反我们之前读到的文字会在脑海里形成记忆,而这些记忆会帮助我们更好地理解当前看到的文字。这个过程是递归的,我们在看下一个文字时,当前文字和历史记忆又会共同成为我们新的记忆,并对我们理解下一个文字提供帮助。


白首有我共你
2楼 · 2022-09-08 15:00
传统数学建模是我们在学校里都学过的建模方法,该方法中,数学家们基于专家经验和对现实世界的理解进行建模。而机器学习建模则是另一种完全不同的建模方式,机器学习算法以一种更加隐蔽的方式来描述一些客观事实,尽管人类并不能够完全理解模型的描述过程,但在大多数情况下,机器学习模型要比人类专家构建的数学模型更加精确。当然,在更多应用领域(如医疗、金融、军事等),机器学习算法,尤其是深度学习模型并不能满足我们需要清晰且易于理解的决策。本文着重讨论传统数学建模和机器学习建模的优缺点,并介绍一个将两者相结合的方法 ―― 解耦表示学习 (Disentangled Representation Learning)。如果想在自己的数据集上尝试使用解耦表示学习的方法,可以参考 Github 上关于解耦学习的分享,以及 Google Research 提供的关于解耦学习的项目代码。1. 深度学习存在的问题由于深度学习技术的发展,我们在许多领域都对神经网络的应用进行了尝试。在一些重要的领域,使用神经网络确实是合理的,并且获得了较好的应用效果,包括计算机视觉、自然语言处理、语音分析和信号处理等。在上述应用中,深度学习方法都是利用使用线性和非线性转换对复杂的数据进行自动特征抽取,并将特征表示为“向量”(vector),这一过程一般也称为“嵌入”(embedding)。之后,神经网络对这些向量进行运算,并完成相应的分类或回归任务:从特征提取和准确度来看,这种 “嵌入”的方法非常有效,但在许多方面也存在不足:可解释性:嵌入所使用的N维向量无法对模型分析的原理和过程进行很好的解释,只有通过逆向工程才能找到输入数据中对分析影响更大的内容。数据需求量庞大:如果只有 10~100 个样本,深度学习无法使用。无监督学习:大多数深度学习模型都需要有标签的训练数据。零样本学习:这是一个很关键的问题,基于一个数据集所训练出的神经网络,若不经过重新训练,很难直接应用在另一个数据集上。对象生成:除了 GANs(生成对抗网络)以外,其他模型都很难生成一个真实的对象。对象操作:难以通过嵌入调整输入对象的具体属性。理论基础:虽然我们已经掌握了比较通用的逼近理论,但这还不够。这些问题很难用机器学习框架来解决,但在最近,我们取得了一些新的进展。2. 数学建模的优势在 20 年、50 年 甚至 100 年以前,大多数数学家都没有遇到过上述问题。其中原因在于,他们主要关注数学建模(mathematical modeling),并通过数学抽象来描述现实世界中的对象和过程,如使用分布、公式和各种各样的方程式。在这个过程中,数学家定义了我们在标题中提到的常微分方程(ordinary differential equations, ODE)。我们通过对比深度学习存在的问题,对数学建模的特点进行了分析。需要注意的是,在下面的分析中,“嵌入”代表数学模型的参数,如微分方程的自由度集合。可解释性:每个数学模型都是基于科学家对客观事物的描述而建立的,建模过程包含数据家对客观事物的描述动机和深入理解。例如,对于物理运动的描述, “嵌入” 包括物体质量、运动速率和坐标空间,不涉及到抽象的向量。数据需求量小:大多数数学建模上的突破并不需要基于巨大的数据集进行。无监督学习:对数学建模来说也不适用。零样本学习:一些随机微分方程(如几何布朗运动)可以应用于金融、生物或物理领域,只需要对参数进行重新命名。对象生成:不受限制,对参进行采样即可。对象操作:不受限制,对参数进行操作即可。理论基础:上百年的科学基础。我们没有使用微分方程解决所有问题的原因在于,对于大规模的复杂数据来说,微分方程的表现与深度学习模型相比要差得多,这也是深度学习得到飞速发展的原因。但是,我们仍然需要人工的数学建模。3. 将机器学习与基于人工的建模方法相结合如果在处理复杂数据时,我们能把表现较好的神经网络和人工建模方法结合起来,可解释性、生成和操作对象的能力、无监督特征学习和零样本学习的问题,都可以在一定程度上得到解决。对于微分方程和其他人工建模方法来说,图像处理很难进行,但通过和深度学习进行结合,上述模型允许我们进行对象的生成和操作、可解释性强,最重要的是,该模型可以在其他数据集上完成相同的工作。该模型唯一的问题是,建模过程不是完全无监督的。另外,对于对象的操作还有一个重要的改进,即当我改变 ”胡须“ 这一特征时,程序自动让整张脸变得更像男人了,也就是意味着,模型中的特征虽然具有可解释性,但特征之间是相关联的,换句话说,这些特征是耦合在一起的。下图展示了使用其中一个单一特征对心跳数据进行操作的过程,其中黑线代表心跳,使用的特征数据值从 -3 逐渐增大至 3。在这一过程中,其他特征始终保持不变。不难发现,第 5 个特征对心跳形式的影响很大,第 8 个代表了心脏病的情况(蓝色心电图代表有梗塞症状,而红色则相反),第 10 个特征可以轻微地影响脉博。图:对心电图的心跳进行解耦正如预期的一样,金融数据的实验效果没有这么明显。模型的训练参数设置与上一实验相似。使用的数据为 2017 年收集的比特币价格数据集,该数据集包含一个时间长度为 180 分钟的比特币价格变化数据。预期的实验效果为使用 beta-VAE 学习一些标准的金融时间序列模型,如均值回归的时间序列模型,但实际很难对所获得的表示进行解释。在实验结果中可以发现,第 5 个特征改变了输入的时间序列的趋势,第 2、4、6 个特征增加/减少了时间序列上不同阶段的波动,或者说使其更加趋于稳定或动荡。图:对比特币的收盘价格进行解耦多个对象的解耦假设在图像中包含多个对象,我们想要找出每一个对象的影响因素。下面的动图展示了模型的效果。上文的模型几乎具备了数学建模的全部优质特性,也具有深度学习在分析复杂数据时的高准确度。那么,如果能使用完全无监督的方式,从复杂数据中学习到如此好的表示结果,是不是意味着传统数学建模的终结?如果一个机器学习模型就可以对复杂模型进行构建,而我们只需要进行特征分析,那还需要基于人工的建模吗?这个问题还有待讨论。
屋顶上的小猫咪
3楼 · 2022-09-08 15:00
数学模型可分为逻辑模型与非逻模型(即非线性模型),它包含了运用一切数理知识体系做出来的模型,运用非常广泛。而算法也是通过统计出来得出的一种模型,简单点理解就是可以通过过去总结的经验就可以得出一个模型,任行业只要需要电脑制作产品都离不开它,好比工厂用的smt芯片贴片机,它就是用神经网络做出来的一个模型。数学模型包含了机器学习,机器学习其实也有逻辑思维与非逻辑思维的模型之分!机器学习也是通过大量的高精度深层次算法设计出来的!就可以解释为什么现在的算法工程师职位很吃香了。
蓝眼睛不忧郁
4楼 · 2022-09-08 15:00
机器学习是数学建模的自动化实现。虽然严格来讲并非如此。机器学习算法的目的,是为了寻找出输入和输出之间的数学表达关系,这种表达关系即为建模。但是机器学习的性能有限,它只能通过特定的算法寻找特定的表达形式,不能自由地选择表达式的组成。所以机器学习虽然算是数学建模过程,却和人类建模过程并不相似。另外一点,机器学习毕竟是靠数据说话的,所以可以通过复杂的网络结构,实现十分复杂的网络模型表达。这一点是人力所不能及的,光是那个参数的数量都会让人望而生畏。
只想待在家
5楼 · 2022-09-08 15:00
数学模型就是把一个系统用公式代替(如车辆运动),但建立的模型往往不是十分精准,因此需要反馈来不断修正现实中的系统;机器学习说白了就是“学习”,就是用相当多的数据,不断“训练”,本质上就是改变“权重”;二者的相同是有输入输出,不同是机器学习需要大量数据训练(黑箱),数学模型需要事先建立模型(有较强的理论基础);纯手打,来之不易呀

相关问题推荐

  • 回答 3

    换行。比如,print hello\nworld效果就是helloworld\n就是一个换行符。\是转义的意思,'\n'是换行,'\t'是tab,'\\'是,\ 是在编写程序中句子太长百,人为换行后加上\但print出来是一整行。...

  • 回答 42

    十种常见排序算法一般分为以下几种:(1)非线性时间比较类排序:a. 交换类排序(快速排序、冒泡排序)b. 插入类排序(简单插入排序、希尔排序)c. 选择类排序(简单选择排序、堆排序)d. 归并排序(二路归并排序、多路归并排序)(2)线性时间非比较类排序:...

  • 回答 70
    已采纳

    前景很好,中国正在产业升级,工业机器人和人工智能方面都会是强烈的热点,而且正好是在3~5年以后的时间。难度,肯定高,要求你有创新的思维能力,高数中的微积分、数列等等必须得非常好,软件编程(基础的应用最广泛的语言:C/C++)必须得很好,微电子(数字电...

  • 回答 28

    迭代器与生成器的区别:(1)生成器:生成器本质上就是一个函数,它记住了上一次返回时在函数体中的位置。对生成器函数的第二次(或第n次)调用,跳转到函数上一次挂起的位置。而且记录了程序执行的上下文。生成器不仅记住了它的数据状态,生成器还记住了程序...

  • 回答 9

    python中title( )属于python中字符串函数,返回’标题化‘的字符串,就是单词的开头为大写,其余为小写

  • 回答 6

    第一种解释:代码中的cnt是count的简称,一种电脑计算机内部的数学函数的名字,在Excel办公软件中计算参数列表中的数字项的个数;在数据库( sq| server或者access )中可以用来统计符合条件的数据条数。函数COUNT在计数时,将把数值型的数字计算进去;但是...

  • 回答 1

    head是方法,所以需要取小括号,即dataset.head()显示的则是前5行。data[:, :-1]和data[:, -1]。另外,如果想通过位置取数据,请使用iloc,即dataset.iloc[:, :-1]和dataset.iloc[:, -1],前者表示的是取所有行,但不包括最后一列的数据,结果是个DataFrame。...

  • Python入门简单吗2021-09-23 13:21
    回答 45

    挺简单的,其实课程内容没有我们想象的那么难、像我之前同学,完全零基础,培训了半年,直接出来就工作了,人家还在北京大公司上班,一个月15k,实力老厉害了

  • 回答 4

    Python针对众多的类型,提供了众多的内建函数来处理(内建是相对于导入import来说的,后面学习到包package时,将会介绍),这些内建函数功用在于其往往可对多种类型对象进行类似的操作,即多种类型对象的共有的操作;如果某种操作只对特殊的某一类对象可行,Pyt...

  • 回答 8

     相当于 ... 这里不是注释

  • 回答 4

    还有FIXME

  • 回答 3

    python的两个库:xlrd和xlutils。 xlrd打开excel,但是打开的excel并不能直接写入数据,需要用xlutils主要是复制一份出来,实现后续的写入功能。

  • 回答 8

    单行注释:Python中的单行注释一般是以#开头的,#右边的文字都会被当做解释说明的内容,不会被当做执行的程序。为了保证代码的可读性,一般会在#后面加一两个空格然后在编写解释内容。示例:#  单行注释print(hello world)注释可以放在代码上面也可以放在代...

  • 回答 2

    主要是按行读取,然后就是写出判断逻辑来勘测行是否为注视行,空行,编码行其他的:import linecachefile=open('3_2.txt','r')linecount=len(file.readlines())linecache.getline('3_2.txt',linecount)这样做的过程中发现一个问题,...

  • 回答 4

    或许是里面有没被注释的代码

  • 回答 26

    自学的话要看个人情况,可以先在B站找一下视频看一下

没有解决我的问题,去提问