信号与系统中的机器学习相关的算法的进展和理解(期末作业)

机器学习是一门多学科交叉专业,涵盖概率论知识,统计学知识,近似理论知识和复杂算法知识,使用计算机作为工具并致力于真实实时的模拟人类学习方式, 并将现有内容进行知识结构划分来有效提高学习效率。

机器学习有下面几种定义:

(1) 机器学习是一门人工智能的科学,该领域的主要研究对象是人工智能,特别是如何在经验学习中改善具体算法的性能。

(2) 机器学习是对能通过经验自动改进的计算机算法的研究。

(3) 机器学习是用数据或以往的经验,以此优化计算机程序的性能标准。  

发展历程:机器学习实际上已经存在了几十年或者也可以认为存在了几个世纪。追溯到17世纪,贝叶斯、拉普拉斯关于最小二乘法的推导和马尔可夫链,这些构成了机器学 习广泛使用的工具和基础。1950年(艾伦.图灵提议建立一个学习机器)到2000年初 (有深度学习的实际应用以及最近的进展,比如2012年的AlexNet),机器学习有了很大的进展。

从20世纪50年代研究机器学习以来,不同时期的研究途径和目标并不相同,可以划分为四个阶段。

第一阶段是20世纪50年代中叶到60年代中叶,这个时期主要研究“有无知识的学习”。这类方法主要是研究系统的执行能力。这个时期,主要通过对机器的环境及其相应性能参数的改变来检测系统所反馈的数据,就好比给系统一个程序,通过改变它们的自由空间作用,系统将会受到程序的影响而改变自身的组织,最后这个系统将会选择一个最优的环境生存。在这个时期最具有代表性的研究就是Samuet的下棋程序。但这种机器学习的方法还远远不能满足人类的需要。

第二阶段从20世纪60年代中叶到70年代中叶,这个时期主要研究将各个领域的知识植入到系统里,在本阶段的目的是通过机器模拟人类学习的过程。同时还采用了图结构及其逻辑结构方面的知识进行系统描述,在这一研究阶段,主要是用各种符号来表示机器语言,研究人员在进行实验时意识到学习是一个长期的过程,从这种系统环境中无法学到更加深入的知识,因此研究人员将各专家学者的知识加入到系统里,经过实践证明这种方法取得了一定的成效。在这一阶段具有代表性的工作有Hayes-Roth和Winson的对结构学习系统方法。  

第三阶段从20世纪70年代中叶到80年代中叶,称为复兴时期。在此期间,人们从学习单个概念扩展到学习多个概念,探索不同的学习策略和学习方法,且在本阶段已开始把学习系统与各种应用结合起来,并取得很大的成功。同时,专家系统在知识获取方面的需求也极大地刺激了机器学习的研究和发展。在出现第一个专家学习系统之后,示例归纳学习系统成为研究的主流,自动知识获取成为机器学习应用的研究目标。1980 年,在美国的卡内基梅隆(CMU)召开了第一届机器学习国际研讨会,标志着机器学习研究已在全世界兴起。此后,机器学习开始得到了大量的应用。1984 年,Simon等20多位人工智能专家共同撰文编写的Machine Learning文集第二卷出版,国际性杂志Machine Learning创刊,更加显示出机器学习突飞猛进的发展趋势。这一阶段代表性的工作有Mostow的指导式学习、Lenat的数学概念发现程序、Langley的BACON程序及其改进程序。  

第四阶段20世纪80年代中叶,是机器学习的最新阶段。这个时期的机器学习具有如下特点:

(1) 机器学习已成为新的学科,它综合应用了心理学、生物学、神经生理学、数学、自动化和计算机科学等形成了机器学习理论基础。

(2) 融合了各种学习方法,且形式多样的集成学习系统研究正在兴起。

(3) 机器学习与人工智能各种基础问题的统一性观点正在形成。

(4) 各种学习方法的应用范围不断扩大,部分应用研究成果已转化为产品。

(5) 与机器学习有关的学术活动空前活跃。

机器学习是人工智能及模式识别领域的共同研究热点,其理论和方法已被广泛应用于解决工程应用和科学领域的复杂问题。2010 年的图灵奖获得者为哈佛大学的Leslie vlliant 教授,其获奖工作之一是建立了概率近似正确(Probably Approximate Correct,PAC)学习理论;2011年的图灵奖获得者为加州大学洛杉矶分校的Judea Pearll教授,其主要贡献为建立了以概率统计为理论基础的人工智能方法。这些研究成果都促进了机器学习的发展和繁荣。

机器学习是研究怎样使用计算机模拟或实现人类学习活动的科学,是人工智能中最具智能特征,最前沿的研究领域之一。自 20世纪80年代以来,机器学习作为实现人工智能的途径,在人工智能界引起了广泛的兴趣,特别是近十几年来,机器学习领域的研究工作发展很快,它已成为人工智能的重要课题之一。机器学习不仅在基于知识的系统中得到应用,而且在自然语言理解、非单调推理、机器视觉、模式识别等许多领域也得到了广泛应用。一个系统是否具有学习能力已成为是否具有“智能”的一个标志。机器学习的研究主要分为两类研究方向:第一类是传统机器学习的研究,该类研究主要是研究学习机制,注重探索模拟人的学习机制;第二类是大数据环境下机器学习的研究,该类研究主要是研究如何有效利用信息,注重从巨量数据中获取隐藏的、有效的、可理解的知识。

机器学习历经70年的曲折发展 ,以深度学习为代表借鉴人脑的多分层结构、神经元的连接交互信息的逐层分析处理机制,自适应、自学习的强大并行信息处理能力,在很多方面收获了突破性进展,其中最有代表性的是图像识别领域。

传统机器学习的研究方向主要包括决策树、随机森林、人工神经网络、贝叶斯学习等方面的研究。

决策树是机器学习常见的一种方法。20 世纪末期,机器学习研究者J. Ross Quinlan将Shannon的信息论引入到了决策树算法中,提出了ID3算法。1984年I.Kononenko、E. Roskar和I. Bratko在ID3算法的基础上提出了AS-SISTANT Algorithm,这种算法允许类别的取值之间有交集。同年,A. Hart提出了Chi- Squa统计算法,该算法采用了一种基于属性与类别关联程度的统计量。1984年L. Breiman、C.Ttone、R.Olshen和J.Freidman提出了决策树剪枝概念,极大地改善了决策树的性能。1993年,Quinlan在ID3算法的基础上提出了一种改进算法,即C4.5算法。C4.5 算法克服了ID3算法属性偏向的问题增加了对连续属性的处理通过剪枝,在一定程度上避免了“过度适合”现象。但是该算法将连续属性离散化时,需要遍历该属性的所有值,降低了效率,并且要求训练样本集驻留在内存,不适合处理大规模数据集。2010年Xie提出一种CART算法,该算法是描述给定预测向量X条件分布变量Y的一个灵活方法,已经在许多领域得到了应用。CART算法可以处理无序的数据,采用基尼系数作为测试属性的选择标准。CART算法生成的决策树精确度较高,但是当其生成的决策树复杂度超过一定程度后,随着复杂度的提高,分类精确度会降低,所以该算法建立的决策树不宜太复杂。2007年房祥飞表述了一种叫SLIQ(决策树分类)算法,这种算法的分类精度与其他决策树算法不相上下,但其执行的速度比其他决策树算法快,它对训练样本集的样本数量以及属性的数量没有限制。SLIQ算法能够处理大规模的训练样本集,具有较好的伸缩性;执行速度快而且能生成较小的二叉决策树。SLIQ算法允许多个处理器同时处理属性表,从而实现了并行性。但是SLIQ算法依然不能摆脱主存容量的限制。2000年RajeevRaSto等提出了PUBLIC算法,该算法是对尚未完全生成的决策树进行剪枝,因而提高了效率。近几年模糊决策树也得到了蓬勃发展。研究者考虑到属性间的相关性提出了分层回归算法、约束分层归纳算法和功能树算法,这三种算法都是基于多分类器组合的决策树算法,它们对属性间可能存在的相关性进行了部分实验和研究,但是这些研究并没有从总体上阐述属性间的相关性是如何影响决策树性能。此外,还有很多其他的算法,如Zhang.J于2014年提出的一种基于粗糙集的优化算法、Wang.R在2015年提出的基于极端学习树的算法模型等。

随机森林(RF)作为机器学习重要算法之一,是一种利用多个树分类器进行分类和预测的方法。近年来,随机森林算法研究的发展十分迅速,已经在生物信息学、生态学、医学、遗传学、遥感地理学等多领域开展的应用性研究。 [2]

人工神经网络(Artificial Neural Networks,ANN)是一种具有非线性适应性信息处理能力的算法,可克服传统人工智能方法对于直觉,如模式、语音识别、非结构化信息处理方面的缺陷。早在20世纪40年代人工神经网络已经受到关注,并随后得到迅速发展。

贝叶斯学习是机器学习较早的研究方向,其方法最早起源于英国数学家托马斯,贝叶斯在1763年所证明的一个关于贝叶斯定理的一个特例。经过多位统计学家的共同努力,贝叶斯统计在20世纪50年代之后逐步建立起来,成为统计学中一个重要的组成部分。

大数据的价值体现主要集中在数据的转向以及数据的信息处理能力等等。在产业发展的今天,大数据时代的到来,对数据的转换,数据的处理数据的存储等带来了更好的技术支持,产业升级和新产业诞生形成了一种推动力量,让大数据能够针对可发现事物的程序进行自动规划,实现人类用户以计算机信息之间的协调。 另外现有的许多机器学习方法是建立在内存理论基础上的。大数据还无法装载进计算机内存的情况下,是无法进行诸多算法的处理的,因此应提出新的机器学习算法,以适应大数据处理的需要。大数据环境下的机器学习算法,依据一定的性能标准,对学习结果的重要程度可以予以忽视。 采用分布式和并行计算的方式进行分治策略的实施,可以规避掉噪音数据和冗余带来的干扰,降低存储耗费,同时提高学习算法的运行效率。

随着大数据时代各行业对数据分析需求的持续增加,通过机器学习高效地获取知识,已逐渐成为当今机器学习技术发展的主要推动力。大数据时代的机器学习更强调“学习本身是手段"机器学习成为一 种支持和服务技术。如何基于机器学习对复杂多样的数据进行深层次的分析,更高效地利用信息成为当前大数据环境下机器学习研究的主要方向。所以,机器学习越来越朝着智能数据分析的方向发展,并已成为智能数据分析技术的一个重要源泉。另外,在大数据时代,随着数据产生速度的持续加快,数据的体量有了前所未有的增长,而需要分析的新的数据种类也在不断涌现,如文本的理解、文本情感的分析、图像的检索和理解、图形和网络数据的分析等。使得大数据机器学习和数据挖掘等智能计算技术在大数据智能化分析处理应用中具有极其重要的作用。在2014年12月中国计算机学会(CCF)大数据专家委员会上通过数百位大数据相关领域学者和技术专家投票推选出的“2015年大数据十大热点技术与发展趋势”中,结合机器学习等智能计算技术的大数据分析技术被推选为大数据领域第一大研究热点和发展趋势。

机器学习的分类

几十年来,研究发表的机器学习的方法种类很多,根据强调侧面的不同可以有多种分类方法。

基于学习策略的分类

(1) 模拟人脑的机器学习

符号学习:模拟人脑的宏现心理级学习过程,以认知心理学原理为基础,以符号数据为输入,以符号运算为方法,用推理过程在图或状态空间中搜索,学习的目标为概念或规则等。符号学习的典型方法有记忆学习、示例学习、演绎学习.类比学习、解释学习等。

神经网络学习(或连接学习):模拟人脑的微观生理级学习过程,以脑和神经科学原理为基础,以人工神经网络为函数结构模型,以数值数据为输人,以数值运算为方法,用迭代过程在系数向量空间中搜索,学习的目标为函数。典型的连接学习有权值修正学习、拓扑结构学习。

(2) 直接采用数学方法的机器学习

主要有统计机器学习。

统计机器学习是基于对数据的初步认识以及学习目的的分析,选择合适的数学模型,拟定超参数,并输入样本数据,依据一定的策略,运用合适的学习算法对模型进行训练,最后运用训练好的模型对数据进行分析预测。

统计机器学习三个要素:

模型(model):模型在未进行训练前,其可能的参数是多个甚至无穷的,故可能的模型也是多个甚至无穷的,这些模型构成的集合就是假设空间。

策略(strategy):即从假设空间中挑选出参数最优的模型的准则。模型的分类或预测结果与实际情况的误差(损失函数)越小,模型就越好。那么策略就是误差最小。

算法(algorithm):即从假设空间中挑选模型的方法(等同于求解最佳的模型参数)。机器学习的参数求解通常都会转化为最优化问题,故学习算法通常是最优化算法,例如最速梯度下降法、牛顿法以及拟牛顿法等。

基于学习方法的分类

(1) 归纳学习

符号归纳学习:典型的符号归纳学习有示例学习、决策树学习。

函数归纳学习(发现学习):典型的函数归纳学习有神经网络学习、示例学习、发现学习、统计学习。

(2) 演绎学习

(3) 类比学习:典型的类比学习有案例(范例)学习。

(4) 分析学习:典型的分析学习有解释学习、宏操作学习。

基于学习方式的分类

(1) 监督学习(有导师学习):输入数据中有导师信号,以概率函数、代数函数或人工神经网络为基函数模型,采用迭代计算方法,学习结果为函数。

(2) 无监督学习(无导师学习):输入数据中无导师信号,采用聚类方法,学习结果为类别。典型的无导师学习有发现学习、聚类、竞争学习等。

(3) 强化学习(增强学习):以环境反惯(奖/惩信号)作为输入,以统计和动态规划技术为指导的一种学习方法。

基于数据形式的分类

(1) 结构化学习:以结构化数据为输人,以数值计算或符号推演为方法。典型的结构化学习有神经网络学习、统计学习、决策树学习、规则学习。

(2) 非结构化学习:以非结构化数据为输人,典型的非结构化学习有类比学习案例学习、解释学习、文本挖掘、图像挖掘、Web挖掘等。

基于学习目标的分类

(1) 概念学习:学习的目标和结果为概念,或者说是为了获得概念的学习。典型的概念学习主要有示例学习。

(2) 规则学习:学习的目标和结果为规则,或者为了获得规则的学习。典型规则学习主要有决策树学习。

(3) 函数学习:学习的目标和结果为函数,或者说是为了获得函数的学习。典型函数学习主要有神经网络学习。

(4) 类别学习:学习的目标和结果为对象类,或者说是为了获得类别的学习。典型类别学习主要有聚类分析。

(5) 贝叶斯网络学习:学习的目标和结果是贝叶斯网络,或者说是为了获得贝叶斯网络的一种学习。其又可分为结构学习和多数学习。

梯度下降:

梯度下降(gradient descent)在机器学习中应用十分的广泛,不论是在线性回归还是Logistic回归中,它的主要目的是通过迭代找到目标函数的最小值,或者收敛到最小值。

梯度下降法的基本思想可以类比为一个下山的过程。

假设这样一个场景:一个人被困在山上,需要从山上下来(找到山的最低点,也就是山谷)。但此时山上的浓雾很大,导致可视度很低;因此,下山的路径就无法确定,必须利用自己周围的信息一步一步地找到下山的路。这个时候,便可利用梯度下降算法来帮助自己下山。怎么做呢,首先以他当前的所处的位置为基准,寻找这个位置最陡峭的地方,然后朝着下降方向走一步,然后又继续以当前位置为基准,再找最陡峭的地方,再走直到最后到达最低处;同理上山也是如此,只是这时候就变成梯度上升算法了。梯度下降的基本过程就和下山的场景很类似。

首先,我们有一个可微分的函数。这个函数就代表着一座山。我们的目标就是找到这个函数的最小值,也就是山底。根据之前的场景假设,最快的下山的方式就是找到当前位置最陡峭的方向,然后沿着此方向向下走,对应到函数中,就是找到给定点的梯度 ,然后朝着梯度相反的方向,就能让函数值下降的最快!因为梯度的方向就是函数之变化最快的方向(在后面会详细解释)

所以,我们重复利用这个方法,反复求取梯度,最后就能到达局部的最小值,这就类似于我们下山的过程。而求取梯度就确定了最陡峭的方向,也就是场景中测量方向的手段。

代码:

#!/usr/bin/env python3

# -*- coding: utf-8 -*-

# @Time    : 2019/1/21 21:06

# @Author  : Arrow and Bullet

# @FileName: gradient_descent.py

# @Software: PyCharm

# @Blog    :https://blog.csdn.net/qq_41800366

from numpy import *

# 数据集大小 即20个数据点

m = 20

# x的坐标以及对应的矩阵

X0 = ones((m, 1))  # 生成一个m行1列的向量,也就是x0,全是1

X1 = arange(1, m+1).reshape(m, 1)  # 生成一个m行1列的向量,也就是x1,从1到m

X = hstack((X0, X1))  # 按照列堆叠形成数组,其实就是样本数据

# 对应的y坐标

Y = array([

    3, 4, 5, 5, 2, 4, 7, 8, 11, 8, 12,

    11, 13, 13, 16, 17, 18, 17, 19, 21

]).reshape(m, 1)

# 学习率

alpha = 0.01

# 定义代价函数

def cost_function(theta, X, Y):

    diff = dot(X, theta) - Y  # dot() 数组需要像矩阵那样相乘,就需要用到dot()

    return (1/(2*m)) * dot(diff.transpose(), diff)

# 定义代价函数对应的梯度函数

def gradient_function(theta, X, Y):

    diff = dot(X, theta) - Y

    return (1/m) * dot(X.transpose(), diff)

# 梯度下降迭代

def gradient_descent(X, Y, alpha):

    theta = array([1, 1]).reshape(2, 1)

    gradient = gradient_function(theta, X, Y)

    while not all(abs(gradient) <= 1e-5):

        theta = theta - alpha * gradient

        gradient = gradient_function(theta, X, Y)

    return theta

optimal = gradient_descent(X, Y, alpha)

print('optimal:', optimal)

print('cost function:', cost_function(optimal, X, Y)[0][0])

# 根据数据画出对应的图像

def plot(X, Y, theta):

    import matplotlib.pyplot as plt

    ax = plt.subplot(111)  # 这是我改的

    ax.scatter(X, Y, s=30, c="red", marker="s")

    plt.xlabel("X")

    plt.ylabel("Y")

    x = arange(0, 21, 0.2)  # x的范围

    y = theta[0] + theta[1]*x

    ax.plot(x, y)

    plt.show()

plot(X1, Y, optimal)

BP算法:

BP是 Back Propagation 的简写 ,意思是反向传播。bp算法是以网络误差平方目标函数、采用梯度下降法来计算目标函数的最小值。bp算法包括信号的前向传播和误差的反向传播俩个过程。

神经网络:

神经网络是一门重要的机器学习技术。它是目前最为火热的研究方向--深度学习的基础。学习神经网络不仅可以让你掌握一门强大的机器学习方法,同时也可以更好地帮助你理解深度学习技术。

神经网络是一种模拟人脑的神经网络以期能够实现类人工智能的机器学习技术。人脑中的神经网络是一个非常复杂的组织。成人的大脑中估计有1000亿个神经元之多。神经网络,听着高大上,其实就是一类相对复杂的计算网络。举个简单的例子来说明一下,什么是网络。

看这样一个问题,假如我手里有一笔钱,N个亿,我把它分别投给5个公司,分别占比 M1,M2,M3,M4,M5(M1到M5均为百分比 %)。而每个公司的回报率是不一样的,分别为 A1, A2, A3, A4, A5,(A1到A5也均为百分比 %)那么我的收益应该是多少?这个问题看起来应该是够简单了,你可能提笔就能搞定 收益 = NM1A1 + NM2A2+NM3A3+NM4A4+NM5A5 。这个完全没错,但是体现不出水平,我们可以把它转化成一个网络模型来进行说明。

神经网络的类别:

  神经网络其实是一个非常宽泛的称呼,它包括两类,一类是用计算机的方式去模拟人脑,这就是我们常说的ANN(人工神经网络),另一类是研究生物学上的神经网络,又叫生物神经网络。对于我们计算机人士而言,肯定是研究前者。

  在人工神经网络之中,又分为前馈神经网络和反馈神经网络这两种。那么它们两者的区别是什么呢?这个其实在于它们的结构图。我们可以把结构图看作是一个有向图。其中神经元代表顶点,连接代表有向边。对于前馈神经网络中,这个有向图是没有回路的。你可以仔细观察本文中出现的所有神经网络的结构图,确认一下。而对于反馈神经网络中,结构图的有向图是有回路的。反馈神经网络也是一类重要的神经网络。其中Hopfield网络就是反馈神经网络。深度学习中的RNN也属于一种反馈神经网络。

具体到前馈神经网络中,就有了本文中所分别描述的三个网络:单层神经网络,双层神经网络,以及多层神经网络。深度学习中的CNN属于一种特殊的多层神经网络。另外,在一些Blog中和文献中看到的BP神经网络是什么?其实它们就是使用了反向传播BP算法的两层前馈神经网络。也是最普遍的一种两层神经网络。

代码:

# --隐层输入

# -1: 代表的是隐层的阈值

net_in = np.array([0.0, 0, -1])

w_mid = np.random.rand(3, 4)  # 隐层权值阈值(-1x其中一个值:阈值)

# 输出层输入

# -1:代表输出层阈值

out_in = np.array([0.0, 0, 0, 0, -1])

w_out = np.random.rand(5)  # 输出层权值阈值(-1x其中一个值:阈值)

delta_w_out = np.zeros([5])  # 存放输出层权值阈值的逆向计算误差

delta_w_mid = np.zeros([3, 4])  # 存放因此能权值阈值的逆向计算误差

yita = 1.75  # η: 学习速率

Err = np.zeros([maxiter])  # 记录总体样本每迭代一次的错误率

# 1.样本总体训练的次数

for it in range(maxiter):

    # 衡量每一个样本的误差

    err = np.zeros([len(data_tr)])

    # 2.训练集训练一遍

    for j in range(len(data_tr)):

        net_in[:2] = data_tr[j, :2]  # 存储当前对象前两个属性值

        real = data_tr[j, 2]

        # 3.当前对象进行训练

        for i in range(4):

            out_in[i] = sigmoid(sum(net_in * w_mid[:, i]))  # 计算输出层输入

        res = sigmoid(sum(out_in * w_out))  # 获得训练结果

        err[j] = abs(real - res)

        # --先调节输出层的权值与阈值

        delta_w_out = yita * res * (1 - res) * (real - res) * out_in  # 权值调整

        delta_w_out[4] = -yita * res * (1 - res) * (real - res)  # 阈值调整

        w_out = w_out + delta_w_out

        # --隐层权值和阈值的调节

        for i in range(4):

            # 权值调整

            delta_w_mid[:, i] = yita * out_in[i] * (1 - out_in[i]) * w_out[i] * res * (1 - res) * (

                        real - res) * net_in

            # 阈值调整

            delta_w_mid[2, i] = -yita * out_in[i] * (1 - out_in[i]) * w_out[i] * res * (1 - res) * (real - res)

        w_mid = w_mid + delta_w_mid

    Err[it] = err.mean()

plt.plot(Err)

plt.show()

# 存储预测误差

err_te = np.zeros([100])

# 预测样本100个

for j in range(100):

    net_in[:2] = data_te[j, :2]  # 存储数据

    real = data_te[j, 2]  # 真实结果

    # net_in和w_mid的相乘过程

    for i in range(4):

        # 输入层到隐层的传输过程

        out_in[i] = sigmoid(sum(net_in * w_mid[:, i]))

    res = sigmoid(sum(out_in * w_out))  # 网络预测结果输出

    err_te[j] = abs(real - res)  # 预测误差

    print('res:', res, ' real:', real)

plt.plot(err_te)

plt.show()

机器学习领域最新发展

由于每天都有新的创新出现,我们永远无法100%肯定地预测明年会有什么样的技术需求。但根据我们在2022年看到的情况,以下是2023年最有希望的机器学习趋势。

1.1 基石模型(Foundation models)

大型语言模型是一项重要的创新,最近很受欢迎,而且在之后较长的一段时间很可能会一直伴随着我们。基石模型是一种人工智能工具,即使与常规神经网络相比,也可以根据大量数据进行训练。

工程师们希望计算机不仅要通过搜索模式进行理解,还要积累知识来达到新的理解水平。基石模型在内容生成和摘要、编码和翻译以及客户支持方面非常有用。众所周知的基石模型案例有GPT-3和MidJourney。

基石模型的一个惊人之处在于,它们还可以快速扩展,并处理从未见过的数据,因此具有出色的生成能力。这些解决方案的领先供应商是NVIDIA和Open AI。

1.2 多模态机器学习

在计算机视觉或自然语言处理等涉及模型与现实世界交互的任务中,模型通常只能依赖一种类型的数据,图像或者文本。但在现实生活中,我们通过许多感官感知周围的世界:嗅觉、听觉、视觉和味道。

多模态机器学习通过多种方式(模态)来体验我们周围的世界的事实来构建更好的模型。“多模态(MML)”就意味着要构建可以像人类一样一次以多种模态感知事件的ML模型 。

建立MML可以通过组合不同类型的信息并在训练中使用它们来实现。例如,将图像与音频和文本标签相匹配,使其更易于识别。到目前为止,多模式机器学习是一个很新的领域,尚待2023年开发和发展,但许多人认为它可能是实现通用人工智能的关键。

1.3 Transformers

Transformers是一种人工智能架构,它使用编码器和解码器对输入数据序列进行转换,并将其变换为另一个序列。许多基石模型也建立在Transformers上。我们想单独提出它们,是因为它们用于许多其他应用程序。事实上,据报道,Transformers正在席卷AI世界。

Transformers也被称为Seq2Seq模型,广泛用于翻译和其他自然语言处理任务。因为Transformers可以分析单词序列而不是单个单词,所以它们通常显示出比普通人工神经网络更好的结果。

Transformers模型能够分配权重,以评估序列中每个单词的重要性。然后,该模型将其转换为不同语言的句子,并考虑到分配的权重。可以帮助您构建Transformers Pipeline的一些领先解决方案是 Hugging Face和Amazon Comprehend。

1.4 嵌入式机器学习

嵌入式机器学习(或TinyML)是机器学习的一个子领域,它使机器学习技术能够在不同的设备上运行。

TinyML可用于家用电器、智能手机、笔记本电脑、智能家居系统等。正如ABI Research的AI&ML首席分析师Lian Jye Su所解释的:

人工智能的广泛应用和生活化推动了物联网(IoT)分析的发展。从物联网设备收集的数据用于训练机器学习(ML)模型,为物联网整体产生有价值的新思路。这些应用需要依赖复杂芯片组的强大且昂贵的解决方案。

嵌入式机器学习系统的日益普及是芯片制造业的主要推动力之一。如果说十年前,根据摩尔定律,芯片组上的晶体管数量每两年翻一番,这也让我们能够预测计算能力的增长,那么在过去几年中,我们已经看到了每年40-60%的飞跃。我们相信,这一趋势在未来几年也将持续下去。

随着物联网技术和机器人技术的广泛普及,嵌入式系统变得更加重要。Tiny ML领域有自己独特的挑战,这些挑战尚待2023年解决,因为它需要最大限度的优化和效率,同时节省资源。

1.5 Low-code和No-code解决方案

机器学习和人工智能几乎渗透到了从农业到营销到银行业的各个领域。使ML解决方案易于非技术员工使用通常被管理者认为是保持整个组织效率的关键。

然而,与其经历漫长而昂贵的编程学习过程,不如简单地选择需要零或接近零编码技能的应用程序。但这不是No-code解决方案可能要解决的唯一问题。

Gartner发现,市场上对高质量解决方案的需求比Deliver的可能性更大——“Deliver这些解决方案的速度至少比it能力快5倍”。(Gartner has found that the demand for high-quality solutions on the market is bigger than the possibilities to deliver – “it grows at least 5x faster than IT capacity to deliver them”.)

No-code和Low-code解决方案可以帮助弥补这一差距并满足需求。同样,Low-code解决方案使技术团队能够更快地提出并测试他们的假设,从而减少交付时间和开发成本。如果10年前,需要一整个团队来构建应用程序或启动网站,那么今天只要一个人就可以做到同样的事情,而且速度很快。

此外,82%的组织在吸引和保持软件工程师的质量和数量方面遇到困难,这些组织更愿意在No-code和Low-code技术的帮助下构建和维护他们的应用程序。

虽然近年来出现了许多Low-code和No-code解决方案,但总的趋势是,与常规开发相比,它们的质量仍然较差。能够改善现状的初创企业更能在人工智能市场中拔得头筹。

最后,值得一提的是,随着训练ML模型所需的计算能力的快速增长(特别是对于大型组织中运行的实时ML),云计算仍然是创新的一项重要技术支撑。据统计,全球约60%的企业数据存储在云端,这一数字可能会继续增长。2023年,我们将看到为了满足ML行业不断增长的需求,对云安全和恢复能力的投资将会持续增加。

Transformer


  Transformer 本质上是一个 Encoder-Decoder 架构。因此中间部分的 Transformer 可以分为两个部分:编码组件和解码组件。

其中,编码组件由多层编码器(Encoder)组成。解码组件也是由相同层数的解码器(Decoder)组成

 每个编码器由两个子层组成:Self-Attention 层(自注意力层)和 Position-wise Feed Forward Network(前馈网络,缩写为 FFN

 编码器的输入会先流入 Self-Attention 层。它可以让编码器在对特定词进行编码时使用输入句子中的其他词的信息(可以理解为:当我们翻译一个词时,不仅只关注当前的词,而且还会关注其他词的信息)。后面我们将会详细介绍 Self-Attention 的内部结构。然后,Self-Attention 层的输出会流入前馈网络。

 解码器也有编码器中这两层,但是它们之间还有一个注意力层(即 Encoder-Decoder Attention),其用来帮忙解码器关注输入句子的相关部分(类似于 seq2seq 模型中的注意力)。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值