精华内容
下载资源
问答
  • 机器学习在解决非线性问题方面具有很大的优势潜力,结合机器学习算法的可见光通信技术必然具有巨大的研究价值。已有研究表明,传统的机器学习算法如K-means、DBSCAN以及支持向量机(SVM)等在预均衡、后均衡、抗系统...
  • EuclidesDB是一个多模型机器学习特征数据库,它与PyTorch紧密结合,并提供后端,用于在模型特征空间中包含查询数据。用C 编写的性能; 使用protobuf进行数据序列化; 使用gRPC进行通信; 用于数据库序列化的...
  • 在这个领域已经发表了很多的研究成果,这些研究成果从不同的角度入手,有的只利用网页本身的特征,有的还与其他技术相结合,使网页正文抽取的准确性完整性得到不断提高,但还没有一种方法能达到人们期望的程度,还...
  • 机器学习初识

    2018-02-09 22:17:12
    从知乎上了解了一大堆人工智能的相关知识后...希望同仁们可以一起探讨未来通信学科人工智能能够相结合的领域,希望大家们可以给与指点。 从所涉及的范围来说人工智能应该是比机器学习要宽泛的,或者说宽泛很多。...

        从知乎上了解了一大堆人工智能的相关知识后,基于目前的就业热度以及对未来行业发展的思考,决定从今天开始入门了解机器学习、人工智能。鄙人专业是信息与通信工程,相信未来通信学科中会有很多与人工智能相结合的研究方向,会形成一个交叉学科。希望同仁们可以一起探讨未来通信学科和人工智能能够相结合的领域,希望大家们可以给与指点。

        从所涉及的范围来说人工智能应该是比机器学习要宽泛的,或者说宽泛很多。

    展开全文
  • matlab机器学习20讲

    2016-04-01 13:24:18
    本书特别重视如何将视觉机器学习算法的理论实践有机地结合,解决视觉机器学习领域中的诸多基础问题,可应用于医学图像分析、工业自动化、机器人、无人车、人脸检测与识别、车辆信息识别、行为检测与识别、智能视频...
  • 上世纪80年代,日本曾经向世界宣告开始研制第五代计算机,即建造把信息采集、存储、处理、通信通人工智能结合在一起的智能计算机系统。由于硬件性能关键性技术方面的限制,加上八十年代后期计算机的发展趋势是由...
           上世纪80年代,日本曾经向世界宣告开始研制第五代计算机,即建造把信息采集、存储、处理、通信通人工智能结合在一起的智能计算机系统。由于硬件性能和关键性技术方面的限制,加上八十年代后期计算机的发展趋势是由大型机转向个人PC机,日本的第五代计算机计划事实上没有取得成功。然而,从计算机诞生之初,实现智能机系统实际上就就是图灵等计算机科学家的初衷。从发展路径上,计算机从大型化到个人机,再到互联网化、移动化,以及后面的物联化,都属于应用范围上的变革,属于横向变革,然后从计算机本身处理能力上,仍然是基于简单逻辑处理的编程模式,从纵深角度在智能化和自主化方面并没有本质变化。
    
            近十年,随着云技术和深度学习技术的迅速发展,人工智能学科在硬件限制和关键算法方面取得了非常明显的突破,特别是各大互联网巨头有充足的资金并且在nlp,图像语音识别等方面有足够的商业需求,推动机器学习和人工智能技术发生变革性推进。虽然从现状看,机器学习和人工智能仍然存在很多实用性方面的问题,主要处理问题也集中在输入识别和单次交互问题上,但是现阶段确实已经让大家看到非常明确的前景。
           如果对比来看,从个人从业角度,目前阶段的机器学习技术特别像八九十年代的PC编程技术:
    1. 在行业内普遍被看好。90年代很多人刚接触编程的时候认为计算机可以处理所有问题,现在接触机器学习的人也会发现,现在的编程不能解决的模糊性开放性问题基本上都可以用机器学习解决。
    2. 具有一定门槛,仅限于少数人。80年代PC机编程时代,受硬件基础、计算机语言基础限制,只有少数人能接触。在中国就更少了,很多还处在用卡片编程阶段。反观现在的机器学习技术,由于受数据来源、数学基础、云设备等限制,真正从业的人也仅限于少数人;
    3.从发展趋势上。目前计算机仅能处理程序化问题,下一步发展肯定是处理智能化问题。说机器学习将开启计算机2.0时代一点也不为过

    所以小伙伴们,如果你正好也想学习机器学习技术那还等什么,也许你就是机器学习时代的下一个大佬。
    欢迎关注微信公众号 智能互联时代 intetime
    展开全文
  • 引言 经常的时候我们要实现两个代码之间...首先是挑战杯审报的一个项目,即采用机器学习模型分类数据,结合Arduino的压力传感器模块,而机器学习大多采取python,数据无法做到实时传输,最后放弃了。 图1 压力传...

     引言

    经常的时候我们要实现两个代码之间的通信,比如说两个不同不同人写的代码要对接,例如将python指令控制Arduino控件的开关,此处使用串口通信是非常方便的,下面笔者将结合自己踩过的坑来讲述下自己的学习经历。

    首先是挑战杯审报的一个项目,即采用机器学习模型分类数据,结合Arduino的压力传感器模块,而机器学习大多采取python,数据无法做到实时传输,最后放弃了。

    图1 压力传感器模型

    然后是python需要通过Arduino的北斗模块获取位置数据,这个也需要做两个代码之间的通信。

    当时的我被这两个问题卡了好久也没有想到解决方案

    感觉像是很复杂又完全没有思路

    后来查阅大量资料终于得到解决

    此处大概有两个重要的环节:串口通信和上位机控制

    在说之前我们先要了解一下串行接口

    伟大的百度百科告诉我们:

    串行接口简称串口,也称串行通信接口或串行通讯接口(通常指COM接口),是采用串行通信方式的扩展接口。串行接口 (Serial Interface) 是指数据一位一位地顺序传送,其特点是通信线路简单,只要一对传输线就可以实现双向通信(可以直接利用电话线作为传输线),从而大大降低了成本,特别适用于远距离通信,但传送速度较慢。

    (传送速度较慢这个。。。)

    (反正我们就传个几KB的数据,慢就慢吧)

    (手动微笑)

    串口通信

    打开我们的Arduino编译器,可以看到有一个选择板子所在的端口的选项

    图2 Arduino编译器的端口

    像此处写的COM4就是指的是Arduino开发板所在的串口,如果需要通过Arudino来上传代码到开发板上所需要使用的就是这个串口来与Arduino开发板进行通信

     

    用过的人都知道Arduino有一个串口监视器(图右上角)和一个Serial.print()函数

    图3 串口监视器的位置

    如果我们使用Serial.print()函数的话,传过来的数据就能够成功的在串口监视器上显示出来

    图4 Serial.print()函数结合串口监视器的描述

    那么我们需要思考一个问题:

    既然传过来的数据能够用Arduino来看

    那么其他的软件如果能够打开的话效果就会非常好

    由此我们就需要做串口通信的问题啦

    --------------------------------------------------------------------------------------------------------------------------------------------------

    知识链接:其实Arduino主要起到的仅仅只有一个编译的作用,这个串口监视只是它的副业。。

    --------------------------------------------------------------------------------------------------------------------------------------------------

     

    一、设置串口

    此处我们采用python打开这个串口以实现串口通信

    编译器使用pyCharm

    首先安装pyserial

    图5 安装pyserial

    (万能的pip install真好用)

    pyserial的作用在于提供一个从串口读取信息的接口

    现在我们已经拥有串口通信的基础了

    赶紧把包导进来(注意使用import serial而不是import pyserial)

    这里介绍一个基本函数serial.Serial(a,b,c)来设置一个串口

    a为一个字符串代表串口的位置(如COM3)

    b为一个数字代表波特率

    (值得注意的是Arduino中Serial.begin()所设定的东西一定要求与你读到的波特率相同)

    c为超时的时间,单位为s

    初始化如图所示

    图6 串口设置与初始化

    此处的意义是打开一个名字叫COM1的串口,以9600波特率,0.5秒作为超时

    二、读取信息

    采用readline函数以读取一列数据

    由于此处我们定义的变量是ser

    所以下面也同样使用ser

    即ser.readline()函数

    下面贴出代码

    首先是python端代码

     

    图7 python端代码和运行结果(由于此处我是COM4串口就设置的是COM4)

     1 import serial
     2 
     3 
     4 serialPort = "COM4"  # 串口
     5 baudRate = 9600  # 波特率
     6 ser = serial.Serial(serialPort, baudRate, timeout=0.5)
     7 print("参数设置:串口=%s ,波特率=%d" % (serialPort, baudRate))
     8 
     9 
    10 while 1:
    11     str = ser.readline()
    12     print(str)
    13 
    14 ser.close()

    然后是Arduino端代码

    1 void setup(){
    2   Serial.begin(9600);
    3 }
    4 void loop(){
    5   Serial.print("Hello,World!\n");
    6 }

    至此

    Arduino端向python端传输数据已经完成

    上位机控制

    由于Arduino的控制很有可能需要其他代码传送运行结果给它

    所以上位机对于Arduino的控制也是十分有意义的

    利用上位机的控制

    我们能够实现代码直接控制开关的结果

    例如输入一个数然后开关打开灯亮

    此处我们就采用这个作为Model

    一、Arduino函数介绍

    此处要介绍三个新的函数Serial.read() Serial.available() pinMode()

    1.Serial.read()

    这个函数的作用在于从COM接口读取一个字节的数据

    2.Serial.available()

    这个函数的作用在于查看COM接口是否有数据读入

    3.pinMode((串口号),OUTPUT) 将一个端口设置为输出口

    有了这两个函数过后接下来会简单很多

    二、接口实现

    Arduino端口

     

    我们需要实现以下功能:

    1.灯原来亮

    2.按下0后灯灭

    3.按下1后灯亮

    首先我们需要向Arduino芯片内写入代码

    但有一点需要注意

    如果要将二极管LED直接接到接口上的话只能接13号接口

    因为13号接口自带正好适合LED的电阻

    有了上面的基础

    我就直接贴代码了

    附带详细注释哦

     1 void setup(){
     2   Serial.begin(9600);
     3   pinMode(13, OUTPUT);//设置13号端口作为输出端口
     4   digitalWrite(13,HIGH);//让灯开始时亮
     5 }
     6 char var;
     7 void loop(){
     8   while(Serial.available()>0)//当有信号的时候
     9   {
    10     var=Serial.read();
    11     if(var=='0')//传过来的是0
    12       digitalWrite(13,LOW);
    13     if(var=='1')//传过来的是1
    14      digitalWrite(13,HIGH);
    15   }
    16 }

     

     

    python端口

    此处python接口采用serial中的write函数来向串口中写入数据

    注意一下输入的一定要是ASCII字符

    否则Arduino接口无法读出的

     

     1 # -*- coding: utf-8 -*-
     2 import serial
     3 
     4 serialPort = "COM4"  # 串口
     5 baudRate = 9600  # 波特率
     6 ser = serial.Serial(serialPort, baudRate, timeout=0.5)
     7 print("参数设置:串口=%s ,波特率=%d" % (serialPort, baudRate))
     8 
     9 demo1=b"0"#将0转换为ASCII码方便发送
    10 demo2=b"1"#同理
    11 while 1:
    12     c=input('请输入指令:')
    13     c=ord(c)#将c转换为UTF-8标准数字
    14     if(c==48):
    15         ser.write(demo1)#ser.write在于向串口中写入数据
    16     if(c==49):
    17         ser.write(demo2)

     

    运行结果如下:

    图8 输入0时关闭

    图 9 输入1时打开

    ------------------------------------------------------------------------------------------------------------------------------------------------------

    几点注意事项:

    1.接口不一定统一

    2.其中函数笔者是依据自己理解来描述的,如果有问题的话希望各位大佬不要喷

    3.Arduino真是太好玩了

     

    如果各位大佬觉得笔者这篇写的还算可以的话欢迎打赏哦

    2018-12-31  01:26:53  Author:Lance Yu

    转载于:https://www.cnblogs.com/lanceyu/p/10201236.html

    展开全文
  • 无线通信人工智能

    2018-04-02 10:45:30
    无线通信和机器学习结合, 1
  • 感谢李师兄推荐Le Liang这位作者,通过查找可以看到他所著的许多将机器学习和通信结合起来的文章,从这篇博文开始的几篇博文内容将更偏向通信与机器学习的交叉,论文的阅读顺序根据引用次数 年份 标题暂时安排如下:...

    前言

    感谢李师兄推荐Le Liang这位作者,通过查找可以看到他所著的许多将机器学习和通信结合起来的文章,从这篇博文开始的几篇博文内容将更偏向通信与机器学习的交叉,论文的阅读顺序根据引用次数 年份 标题暂时安排如下:2018_用于车联网的机器学习方法:进展和用例;2019_面向智能车联网:一个机器学习框架;2018_基于图论的车联网通信资源分享方法。

    此外以后博客的内容大致按照:”需求--技术--别人的方法有什么缺陷--采用什么方法解决--这个方法在其他使用场景中和我的期望使用场景有什么区别/有什么没考虑到“的顺序进行。力求精简并突出文章所提出的新方法带来的贡献。

    [看完介绍词后]感觉这是一篇综述性文章

    [完成目录整理后]感觉可能会有很多关于机器学习的基础性知识,基础的要注意跳过,重点关注可以解决什么通信方面的问题以及如何解决。


    机器学习应用于无线网络时,主要是提供一种数据驱动的方法来解决传统通信的难题。本文的主要回顾了车联网中应用机器学习的最新进展。

    背景和动机

    随着车辆对环境感知能力的不断增强,其已经朝着完全自治的方向发展,因此改善它们之间的连接性是很必要的,由此导致了互联车辆概念的提出。互联车辆构成的车辆网络也是ITS和智慧城市发展的重要组成部分。它可以帮助提高道路安全性、优化交通效率、实现自动驾驶和车辆的泛在网络访问。对我们日常生活产生深远影响。

    但因为严苛而多样的QoS(服务质量要求)和车载环境中固有的动态特性(如速度很快),将传统无线通信系统用于车载网络存在很大挑战。如:时变性很强的无线信道和网络拓扑等。为应对挑战有两条路:IEEE 802.11和C-V2X。

    同时,借助高性能计算和存储以及先进的传感器,车辆可以生成、收集、存储、处理大量数据,这些数据可以给我们提供了新的改进机会。但是传统的通信策略对这些信息的利用是很缺乏的。

    机器学习可以找到一些人难以发现的模式特征和底层结构,它利用数据驱动但不对数据的分布进行明确假设,因此处理异构数据时鲁棒性更佳。机器学习可提供一套用于挖掘车辆网络中多个数据源的通用的工具,这将有助于形成更合理的决策并解决一些通信难题,但如何在车载网络中利用这些工具还是个挑战,并代表了一个有前途的研究方向。

    机器学习方法

    机器学习方法可粗略地分为有监督、无监督和强化学习三种,表1展示了三种方法的在无线网络的应用。

    监督学习、无监督学习、强化学习在无线网络的应用概况

    监督学习

    需要输入有label的数据集,用于执行分类和回归任务。

    分类需要每个输入样本都带label。无线网络中的分类可应用于 检测网络是否被入侵系统某些部分是否故障。分类的经典算法有贝叶斯分类器,K最近邻算法,决策树,SVM和神经网络等。

    回归算法的输出经常是离散的,这点和分类算法不同。其可以应用于:预测信道参数网络吞吐量等,经典算法有逻辑回归、支持向量回归和高斯回归等。

    无监督学习

    实践中,数据大多都是无label的,此时应使用无监督学习的算法,此类算法旨在找到数据样本的更有效地表示形式,其可能通过隐式的结构或变量进行解释,经常使用贝叶斯学习法对其进行表示和学习。

    聚类是无监督学习的代表问题,他根据样本的相似性将其分类。其输入特征可以是样本的绝对特征也可以是相对特征。在无线传感器网络中,分层协议的路由算法需要将附近节点聚类。经典的聚类算法有K均值、层次聚类、频谱聚类和Dirichlet过程。

    无监督学习的另一个重要类别是降维,其作用是在保证不丢失太多信息的前提下,将样本从高维空间投影到低维的空间。通常原始数据的维度都很大(每个特征都可张成一维,通常说维数大就是样本的特征太多了),这对算法来说是不理想的。比如在优化、聚类和分类问题中会带来以下危害:1.增加模型复杂度和所需样本数量;2.特征相关性变得更强;3.不必要的特征会引入噪声。降维通常应用在车辆采集数据之后,由车辆负责数据降维,从而降低车辆网络中的通信成本。一些典型的算法包括线性投影算法(如主成分分析)和非线性投影算法(如流形学习、局部线性嵌入和等距映射)。

    强化学习

    强化学习旨在学习具体的行为方式,如如何确定特定环境下采取什么行动,其通过反复与环境交互来最大程度的改进效用,此过程中不存在显式的监督动作。经典算法为引入动作和奖励的马尔可夫决策过程,学习型Q函数也是一种经典的无模型学习算法,其无需任何环境信息即可解决MDP(马尔科夫决策)问题。其原理为:当在一个给定环境下采取行动时,Q函数将会估计效用的总和,而最优Q函数可得到在特定行动准则下所能实现的最大效用和。强化学习在车载网络的应用中,可以处理无线环境的时变性带来的问题,这将在“智能无线资源管理”部分详细说明。

    深度学习

    深度学习旨在了解数据的表示,在监督、无监督、强化学习中都可使用。一些较新的典型的应用有:通过卷积神经网络在不同维度的特征之间共享权重,或通过递归神经网络(RNN)和LSTM在时间维度内共享权重。

    车载网络中数据驱动的决策方法

    为克服车载网络中的诸多挑战,有必要考虑有效利用传感器采集的和历史传输的丰富数据。而机器学习可提供这种数据分析的工具以提升车辆网络的性能,如本节的示例所示。

    交通流预测

    及时而准确的获取交通信息是ITS部署的关键,也是许多其他服务和应用的基础,比如可以应用于缓解拥堵、降低油耗和各种基于位置的服务。交通流预测的目的是从历史和实施交通数据中推断出各种应用需要的交通流信息。概率图模型、泊松回归树(PRT)已经可以用于预测LTE连接性和交通流量。PRT主要用于对计数数据建模,有关拥塞、通信系统性能参数和车辆交通信息的数据都可以用来提升预测准确度。文献[7]中提出了一种基于DL(Deep Learning)的交通流量预测方法,其基于堆叠式自动编码器模型,已有显著的性能提升。

    蜂窝网中局部区域(local)数据存储

    虽然行车中车辆的位置和连接性不断变化,但有些数据是描述特定区域的(比如道路状态和固定相机产生的数据),这些数据可以用于局部区域的信息获取和估计,进一步用于负载平衡和基于用户行为的架构调整。车联网中,数据存储在网络的不同单元之间,如路边单元和云端,但在[8]中已开发了一个框架,其可在无基础设施的支持下将局部区域数据存储在车辆中,并通过单播在车辆之间传输数据,从而使局部区域数据始终保留在这片区域中。选取下一个数据载体车辆时,先采用模糊逻辑进行即时评估,之后通过强化学习进一步完善,选择时主要考虑吞吐量、速度和带宽效率,并通过应用式Q学习保证长期的收益。强化学习在这个过程中可用于寻找将数据从源节点传输到载体节点的有效路由策略。

    网络拥塞控制

    传统拥塞控制方法有五种主要类别,即基于速率,基于功率,基于载波侦听的多路访问/冲突避免,基于优先级和调度的协议以及混合策略[70],它们可调整通信参数,例如 作为传输功率,传输速率,竞争窗口大小等,以满足拥塞控制的目的。

    文献[9]使用一种无监督学习方法:k-means聚类,从而提出一种集中控制交叉口拥堵的方法。该方法通过路测设施观察无线信道进而测量和控制信道拥堵,已经初步解决了红灯时路口的通信拥塞问题。基本原理是:通过K-means聚类将传输的信息分成不同的组,所使用的特征包括消息大小、类型、有效性,车与路测设施之间的距离和发信者的方向。每个群类都有独立的通信参数,从而消除冗余,包括传输速率、功率,竞争窗口(即最大退避时间)大小,仲裁帧间间隔(如最小时间)。只要传输之前信道不被占用,冲突就不会发生。

    无线资源管理

    如何正确地管理频谱、功率、存储和计算资源,对车辆网络的正常运行十分重要。目前资源管理的主要解决方法是将其建模成一个优化问题,然后根据性能复杂性的权衡获得方案。但是在实践中存在两个问题:1.车辆网络是高度时变的,尤其是信道和网络拓扑不断变化,因此每次系统变化时都需要重新计算优化问题,从而导致巨大的网络开销;2.异构的车辆链路的优化目标不同,无法对他们形成一个统一的目标函数,此外某些QoS公式在数学上难以解决也是的问题更加复杂。

    而强化学习因为可以与环境互动,进而使用环境并采取行动,所以他在这方面很有潜力!

    负载平衡和垂直控制

    以一天为研究对象,交通流在时空分布存在一定的模式和规律。强化学习可以利用这些信息来解决动态车辆环境中用户关联性的问题。[10]中提出了一种使用负载平衡的解决用户关联性的在线强化学习算法,首先仅基于目前已掌握的信息使用在线强化学习进行初始关联,同时基站不断积累这些信息并通过历史的关联性模式自适应地更新关联方案。沿着这个思路,[11]提出了一种基于模糊Q学习的异构车联网络垂直切换策略,该策略使用四个参数确定网络的连通性:接受信号强度、车速、数据量、与目标网络相关的用户的数量。这个策略可保证在不事先掌握切换行为的前提下无缝的移动性管理。

    虚拟资源分配

    虚拟车辆网络的图示

    如上图所示,受益于网络功能虚拟化(可参考这篇博文),ITS服务的处理、感知、存储、计算资源池由车载单元、路侧单元、远端云服务器提供。如何动态的分配资源,以达成更小的开销和更大的QoS(服务质量)一直是个大问题。文献[12]中,将资源分配问题建模成一个MDP(马尔可夫决策过程)并使用强化学习解决,其中的状态空间为已分配资源的所有可能的配置,动作被定义为从一个状态到另一个状态的转化行为。有人提出一种用于资源供应的强化学习框架,其可以在符合QoS需求的同时满足资源得动态需求。[13]中开发了一种延迟最优的动态虚拟化资源调度方案,其使用基于Bellman和随机逼近的在线分布式学习,算法分为两个阶段,分别适应长期的时间因素(如流量密度)和短期的时间因素(如信道和队列状态信息)。

    [14]中提出了一个用于网络、缓存和计算资源的联合管理算法,为了应对这个优化问题的高复杂性,提出了一种深度强化学习方法,经实验其性能很理想。将来可能会在虚拟网络中构建网络切片,以便通过调整逻辑网络功能和参数设置来满足特定服务的需要。如何根据已到达流量进行切片,将会对支持车辆网络中不同的用例至关重要。

    分布式资源控制

    目前已有许多集中式的D2D(设备到设备)车辆通信资源分配的方式,其由中央管理器收集信息并做出决策,之后将决策结果下发到所有车。然后集中式方案获取信息的开销非常大, 并随着链路的增多而剧增。[14]提出了一种基于深度强化学习的分布式资源分配机制,如图4所示,其查找车辆代理的部分观测值最佳分配方案之间的映射。具体来说,该方法可以满足V2V链路上严苛的时延要求,这对于现有的优化算法来说是很难解决的。

    假设V2I链路已经预先分配了正交资源,并且建议的分布式信道和功率分配的主要目标是满足V2V链路的延迟约束并最大程度减少对V2I链路的干扰。用于V2V通信的强化学习的结构如图4所示,每个V2V链路用一个代理表示,这个代理与环境进行交互,这里的环境是指V2V链路外的其他所有事物。这是因为其他V2V链路的行为并不由分布式设置控制,所以他们的行动(比如选择频谱或传输功率等)只能被视作环境的一部分。

    如图所示,在时间t,每个V2V链路是一个agent,其从状态空间\mathcal{S}观察到一个状态s_t,并从动作空间\mathcal{A}选择一个动作a_t,这个过程相当于依据策略\pi选择了自带和传输功率.这个策略\pi由Q函数决定,Q(s_t,a_t,\theta)中的\theta是其参数并可由深度学习得到。环境的状态根据这个动作将会改变到s_{t+1},并且根据V2I链路的容量和相对应的V2V时延计算得到一个回报r_t。本系统中,每个V2V链路观察到的用于表征环境状态的特征为:相应V2V链路的瞬时信道信息g_t,过去的对链路的干扰I_{t-1},V2I链路的信道信息(比如从V2V发涉及到基站的信道信息h_t,邻居在前一个slot选择的子带B_{T-1},车辆传输的剩余负载L_t,为达到实验约束的剩余时间U_t)。因此状态可以用s_t=[g_t,I_{t-1},h_t,B_{t-1},L_t,U_t]进行表征。这个过程中所用的训练和测试数据都是从一个基于3GPP信道模型的环境模拟器生成的。在训练阶段,我们使用深度Q学习并将生成的数据存储在内存中。用于更新Q网络的minibatch从内存中采样。通过这种方法可以抑制数据的相关性。对于策略\pi,最初是随机选择的,随着Q网络的更新而更新。

    图5将上述方法和随机资源分配法进行了比较,其中代理每次都随机选择一个子带进行传输。由图可知,之前的基于强化学习的方法对于V2V链路之所以能满足时延约束,有很大的可能性是因为它可以动态的调整功率和传输子带,所以哪些可能会违反实验约束的链路被分配了更多的资源。

    高能效的资源管理

    这一小节部分来自这篇文章,所以这一节的参考文献标号也与本博客的其他部分独立

    当RSU(路边设施)缺乏持续的电源连接时,能效就显得尤为重要。[78]通过强化学期解决了MDP问题,队放电期间RSU的下行链路调度性能进行了优化。RSU基于已收集到的信息(关于交通特征、基础设施电力预算、充电总时长等)在每个时隙开始时学习选择服务的车辆,奖励函数为放电周期内已完成的车辆请求数和每次已下载的比特数,通过Q学习得到最高的回报。[79]通过强化学习进一步扩展了该框架,该方案可以客服离散状态和动作的缺点,其首先使用随机调度,之后逐步学习自适应动态策略以延长电池寿命,最小化接受时延时并满足QoS要求。深度强化学习增强了RSU的能力,时期能过观察和分析环境并做出决策。

    开放式问题

    车载网络的动态性学习

    车载网络的许多方面都有很强的动态性,如无限传播信道、网络拓扑和流量等,他们的时变性都很强。如何基于传感器信息和历史的传输信息有效又鲁棒地预测这些量,是个还未解决的问题。传统上,某些贝叶斯模型(如隐马尔科夫模型)可用于表征时间关系并预测下一个时隙中的状态。而一些深度神经网络可通过时间前后的依赖性来改进预测(如RNN和LSTM)。

    一个可能的应用是根据接收到的信号和历史数据使用DNN(深度神经网络)预测无线信道,但因为用户的高移动性和MIMO等新技术肚饿使用,很难对高维且快速变化的信道进行预测。当将DL(深度学习)通过稀疏性来有效提取高维数据的特征,但尚不清楚DNN能否协助甚至取代现有的信道估计模块【这里可能需要实验证明了】(后者需要传输频繁的导频信号来跟踪信道变化)。另一个可能的应用时预测车辆轨迹,进而预测交通动态。这里可用DNN从历史数据中学习一些隐式的特征,如驾驶员的意图和道路结构等。

    方法复杂度

    DL通过隐式的提取特征在某些情境下可以得到很好的效果,而通过GPU已经可以构建更深的神经网络来使用更先进的训练方法(比如归一化batch和残差网络)对更大量的数据完成训练。但是车载网络的机载计算资源有限,并且端到端的时延要求限制了云服务器的大量使用。因此重要的是为车辆网络开发特殊的处理方法(例如模型简化或压缩),以减轻资源限制而不影响性能。

    分布式表示

    车载网络中,数据并非集中在一个设备上而实存储在网络中的不同单元之间(比如车载单元、路侧单元、远端云端等),这给大多数的机器学习算法的应用带来了挑战。所以车载网络需要分布式的学习方法,该方法需要可以在部分被观测到的数据上运作并可以从网络中其他实体获取信息。此外,应该考虑车在网络中各个单元之间用于分布式学习的信息共享导致的额外开销。

    多主体系统是此类问题的一个解决方案,主体间通过共享信息来实现合作,进而达到系统级的最佳性能,此时每个单独的agent都可以更了解环境并与其他agent共同优化性能。

    在传统的多主体系统中,没有考虑agent间消息共享的时间成本,但实际上通信时延和数据误差都是不可避免的,因此需要在此前提下改进多代理的协调和协作方案。

    以下两节同样来自这篇文章

    安全性

    虽然机器学习自身可以用来检测黑客,保障系统安全。但其系统本身也可以被经过设计的恶意数据所欺骗[86],强化学习的agent也可能会以不理想的方式该改进回报。因此在将其应用于车辆网络之前,应仔细研究其鲁棒性和安全性,防止灾难性后果。

    毫米波车辆网络的学习

    毫米波可提供高数据速率的通信,并且具有更高数量级的带宽[88][89],但出于毫米波的传播特性和车辆的移动性,将大量波束定向并指向正确的方向的开销是很大的,此外毫米波也容易受到障碍物的阻挡,因此可使用机器学习利用历史波束训练的结果[92]、情境感知[93]和其他通信环境的上下文信息解决此问题。如通过DNN或其他回归算法得到上下文信息(包括环境的几何形状、网络状态、用户位置等)与波束训练结果的映射,此外还可以尝试用RNN或LSTM结合实践相关性预测毫米波波束成形方向从而实现更好的性能。

     

    展开全文
  • Pulsar是具有自动协议学习和仿真功能的网络模糊器。 该工具允许通过机器学习技术为协议建模,例如聚类和隐马尔可夫模型。 由于语义正确的消息,这些模型可用于模拟Pulsar与真实客户端或服务器之间的通信,该消息与一...
  • 机器学习和KDD领域,事物的属性和属性取值反映了事物的本质和度量,为了描述一致,统称为模式特征。在传统文献中,模式特征一般分为物理特征、结构特征和数学特征[1-2]。 物理特征和结构特征容易被人类感官所接受...
  • 联邦学习的边缘末端计算

    千次阅读 2019-11-29 10:07:37
    联邦学习是一个协作的机器学习框架,它可以在不访问客户端私有数据的情况下训练深度学习模型。以前的工作假设一个中心参数服务器,要么在云中,要么在边缘。云服务器可以访问更多的数据,但是需要过多的通信开销较...
  • OFDM水声通信基础

    2020-11-30 18:52:09
    例如:第一章 Python 机器学习入门之pandas的使用 提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录系列文章目录前言1.OFDM基础-时域理解1.1 OFDM实现步骤参考博文文献 前言 自学习...
  • TensorFlow联合(TFF)是一个开源框架,用于机器学习和其他对分散数据的计算。 TFF的开发旨在促进开放式研究和实验,该方法是一种机器学习方法,其中在许多参与的客户中训练了共享的全局模型,并将其培训数据保留在...
  • 科研上,依然专注于机器学习和通信结合,据说这个领域是很难有研究和创新的成果的,因为通信方面的编码和调制都已经存在了数学上的严谨证明和完整的公式,所以再用机器学习反而是画蛇添足,但是在信号的拟合和建模...
  • 机器学习中常用作损失函数。本文主要参考《Visual Information Theory》,结合本科课程学习过的《通信原理》,希望能较为直观地初步理解交叉熵概念一、何为熵 熵可以理解为通信中的最短平均码长。作者假想了一个人...
  • 套接字(Socket)表示一个系统的IP地址端口号的结合,是两台机器通信的端点,用来处理两个流对象,通讯方式抽象成为流的方式。 通讯的两台计算机,一台担任服务器,一台担任客户机,服务器监听客户机是否连接。...
  • 卷2着重讨论如何让应用程序与在其他机器上的应用程序进行对话。良好的进程间通信(ipc)机制是提 高unix程序性能的关键。本书全面深入地讲解了各种进程间通信形式,包括消息传递、同步、共享内存及远程调用(rpc)...
  • 卷2着重讨论如何让应用程序与在其他机器上的应用程序进行对话。良好的进程间通信(ipc)机制是提高unix程序性能的关键。本书全面深入地讲解了各种进程间通信形式,包括消息传递、同步、共享内存及远程调用(rpc)。...
  • 3.Main进程Renderer进程通过ipcMainipcRenderer来进行通信。通过事件监听事件派发来实现两个进程通信,从而实现Main或者Renderer进程里不能实现的某些功能。 app - 生命周期钩子: will-finish-...
  • 信息量信息熵的理解

    千次阅读 2019-07-07 22:53:52
    如今,这些概念不仅仅是通信领域中的基础概念,也被广泛的应用到了其他的领域中,比如机器学习。如果跳出历史语境,跳出逻辑背景,那么这些概念是很抽象的,所以本文旨在结合历史语境,给这些概念提供一个相对直观的...
  • 这就将数据副本的考虑数据压缩结合在了一起,以适合低带宽的网络使用。因为我们的样式是由样式单驱动而不是嵌入在数据当中的,所以我们能够专门针对无线设备创建一种有效的显示格式。总而言之,我们的显示主线包括...
  • 重点结合在线仿真和机器学习技术,提出各群内部功率优化问题求解方法。最后将优化结果整定为机组参考有功功率参考偏航角,各机组据此运行。该方案计算开销小,无需额外增加风电场控制系统计算资源,对通信环境无特殊...
  • 国庆第一天 读论文

    2018-10-01 14:54:20
    目前主要研究机器学习和通信方面的结合。 必读的论文(被多次引用的论文)是:An Introduction to Deep Learning for the Physical Layer ,这篇文章阐述了很多深度学习在通信中的应用,如端对端学习,调制模式...

空空如也

空空如也

1 2 3 4 5 6
收藏数 116
精华内容 46
关键字:

机器学习和通信结合