计算机包括哪些方向?如何选择这些方向?

这里参考 CSRankings 对于计算机研究方向的分类,并不全面,而且很多都是我个人的理解,不一定准确,主要是帮助各位SCU的本科学弟学妹科普。并且由于我本人主要是研究System这一大块方向的,所以主要介绍System这一大类。

  • AI:人工智能(Artificial intelligence)得益于其“数据驱动”的特点,在近些年得到了广泛的研究与应用。

    • Machine learning & data mining:通常指经典的机器学习方法,包括分类(Classification)、回归(Regression)、聚类(Clustering)、降维(Dimensionality Reduction)等子领域,也包括算法的部署(分布式计算、联邦学习等)
    • Computer vision:因互联网中广泛的应用场景而备受重视的研究领域之一,主要任务是提取图像中的特征,将特征应用于分类、目标检测与追踪、分割、检索、补帧、超分辨率等任务;另外与计算机图形学、机器人学、自动驾驶等有紧密的联系
    • Natural language processing:另一备受重视的研究领域,主要处理以文本为主,有翻译、检索等传统研究方向,也有掩码语言模型(Masked Language Model)等新兴研究方向
    • Multimodal learning:“模态”(Modality)指一种信息的表现形式,如图像、文字、语音、动作等。多模态研究重点关注多个模态之间的表示(表示学习)、对齐(Cross-modal Retrival 等)、翻译(Image Captioning 等)、融合(情感分析等)、协同学习(多个模态共享知识)等问题
    • Content Generation:内容生成其实已经包括在之前的 entry 中,这里主要强调使用 AI 进行“创造性”的工作;包括单一模态,如文字续写、图像扩展、图像风格化,也包括多个模态,如从图像生成文字(Image Captioning)、从文字生成图像等
    • Reinforcement learning:不了解,笔者中没有研究该方向的
    • The Web & information retrieval:跟Deep Learning三大应用之一的搜广推密切相关,目前的细分方向主要有认知搜索(与脑机接口技术结合)、神经搜索(以跨模态检索为主,把不同种类的数据按照同样的结构做向量化存储,同时对已有不同数据库支持vector search和filter)以及搜索引擎中的公平性与隐私性(在Trustworthy ML研究范围之内),THUIR的work基本代表了国内最前沿的研究
  • System:着重介绍下System系统领域

    • Computer Architecture:顾名思义,计算机体系结构主要研究计算机本身的架构等,包括CPU和GPU等的架构,本身这个研究方向会比较偏向硬件;这一部分研究和Operating system的研究会有部分重合;但是更加偏底层一点
    • Computer Networks:计算机网络主要研究为当前的网络环境提出更合适的协议,优化网络协议,软件定义网络,以及对网络架构进行优化和加速等;网络领域的科研往往需要比较大规模的实验,现在的这个方向部分研究开始偏无线一点了(有线做到头了),该领域目前比较关注的热门课题:
      • MLSys:MLSys中的大规模网络优化问题,包括如何降低bubble time等
      • 卫星网络:研究卫星网络如何通信优化、卫星网络的路由算法等(大家可以理解为研究星链类似的东西)
      • Blockchain的网络:研究Blockchain的各种协议如何优化性能等
      • ...
    • Computer security:计算机安全主要研究系统安全、软件安全、网络安全等,现在的安全研究也扩展到了对一些新兴技术的安全研究,比如AI模型本身的安全性等。这里笔者列一些具体的研究方向:
      • ML安全:包括但不限于大语言模型的安全(Jailbreak、Prompt Injection等),FL学习的隐私安全,预训练模型中的数据泄露、数据窃取等
      • 软件漏洞:包括如何挖掘软件漏洞,如何自动化利用软件漏洞等
      • 隐私:包括但不限于用各种差分隐私算法对数据脱敏化,并且也包括各种privacy合规性检查等等(所有跟privacy能扯上边的)
      • ...
    • Databases:数据库当前前沿研究主要聚焦于如何优化数据库的存储速度等
    • Design automation:不了解,笔者中没有研究该方向的
    • Embedded & real time system:不了解,笔者中没有研究该方向的,理论上应该偏向于无线
    • High-performance computing:高性能计算主要是超算相关的技术等,包括一些分布式系统加速,主要就是优化当前的大型大规模计算系统的速度和效率
    • Mobile computing:移动计算相关研究主要关注边缘计算等,比如说边缘计算中的小型AI模型的加速、模型压缩等
    • Measurement & performance analysis:测量等主要关注对当前网络环境的一些测量,比如说测量不同的协议对于用户体验的影响等
    • Operating system:操作系统这个领域主要研究包括操作系统内核优化、内核安全,以及分布式系统优化,包括区块链等研究,特别硬核
    • Programming Languages:编程语言这方面研究属于真·计算机方向的研究,包括程序分析、程序安全和程序合成等,研究的东西很多会涉及到编译原理等,极端硬核
    • Software engineering:软件工程的研究主要包含软件架构、软件分析、软件安全等
  • Theory:理论领域主要研究计算机理论,这一部分很多都比较偏数学了

    • Algorithms & complexity:你可以理解为你在算法导论里面看到的那些算法等
    • Cryptography:密码学,主要研究加密解密算法那一块东西,现在主要研究同态、零知识证明等算法,基本都是数学,其实这部分有的时候也被归类为计算机安全的相关研究
    • Logic & verification:不了解,笔者中没有研究该方向的
  • Interdisciplinary Areas:主要研究计算机与其他领域之间的交叉,一般来说是计算机技术如何应用于其他领域

    • Comp. bio & bioinformatics:生物信息学,主要研究如何将计算机技术应用于生物学方面的研究,有人称之为AI for science
    • Computer graphics:计算机图形学,主要研究如何通过计算机模拟现实世界的图像,比如大家知道的Nvidia的一系列技术等,也属于这个范畴
    • Economics & computation:主要研究计算机如何应用于经济学和运筹学等的技术
    • Human-computer interaction:人机交互,这一部分主要是研究如何优化计算机与用户之间的交互,可以分成技术端和人文端,这一个研究领域除了计算机研究人员,还有很多学美术、心理、文学等领域的研究者进行研究
    • Robotics:研究机器人相关技术
    • Visualization:研究AR和VR等相关技术

results matching ""

    No results matching ""