人工智能知识体系梳理

article/2025/10/22 14:18:12

本文将从以下几个角度阐述AI的知识体系:基础算法&模型,NLP,机器学习(深度学习),大数据(人工智能)平台核心架构,开发语言选择,主流第三方库(框架)。

简单来说,我们要开始人工智能的工作,基础设施有三个重要部分,1. 开发语言(python及其主流的类库和工具包);2. 数据计算引擎(spark及其基本算法类库,es,以及大数据存储);3. 机器学习(深度学习)框架的熟练运用Scikit-learn,TensorFlow。

更新记录

*2021年12月1日 对大数据(人工智能)整体架构图做了更新,请查阅“大数据(人工智能)平台核心架构”章节

更新原因:大型的互联网平台,大数据平台目前的趋势都是需要一个成熟和稳定基础设施层,目前的趋势是以容器化技术进行构建,以达到云原生的能力,并在上层依次搭建算法模型、技术和业务的基础设施,以及大数据主流分析计算框架,再辅以针对业务服务的规则引擎,报表引擎。以此形成数据中台,技术中台和业务中台,为大型企业构建自己的大数据产品平台打下坚实的基础。


基础算法

首先说说涉及到的基础知识,包括高等数学,线性代数,概率论以及统计学。基础算法有线性回归,逻辑回归,决策树,贝叶斯,神经网络等等。常用算法如下图:

注意算法与模型的关系:算法是指一系列解决问题的清晰指令,它代表着用系统的方法解决问题的策略机制。模型是一种相对抽象的概念,在机器学习领域特指通过各种算法对数据训练后得到的中间件,当有新的数据后会有相应的结果输出,这个中间件就是模型。模型会因算法和训练数据的不同而产生变化。

两个最常用的模型:逻辑回归和决策树。逻辑回归解决分类问题,对看似没有规律,聚合在一起的数据,进行二分化,找到最准确的分类线条是他的主要工作。逻辑回归可以理解为拟合,用一条直线对一些数据点进行拟合(该线称为最佳拟合直线),而拟合过程称作回归。通常都会每个特征上都乘以一个回归系数,而逻辑回归的主要工作就是求这个最佳的回归系数

逻辑回归参考:逻辑回归算法  逻辑回归原理及其python和sklearn实现

决策树参考:决策树算法原理

NLP(自然语言处理)

该领域分为以下三个部分:

1.语音识别:将口语翻译成文本。

2.自然语言理解:计算机理解人类的能力。

3.自然语言生成:计算机生成自然语言。

其中,声学模型,语言模型,语意分析,句法分析非常重要。

具体的搭建方式,参考基于深度学习的中文语音识别系统框架

机器学习与深度学习

1. 首先看看他们的关系与区别:机器学习就是机器通过一系列「任务」从「经验」(数据)中学习,并且评估「效果」如何,是人工智能传统且重要的应用方式,可替换大量人工重复的劳动。但是如果无法从数据中「学习到」更好的特征表达,也是徒劳。同样的数据,使用不同的表达方法,可能会极大影响问题的难度。一旦解决了数据表达和特征提取问题,很多人工智能任务也就迎刃而解。但是对机器学习来说,特征提取并不简单。特征工程往往需要人工投入大量时间去研究和调整,就好像原本应该机器解决的问题,却需要人一直在旁边搀扶。深度学习便是解决特征提取问题的一个机器学习分支。它可以自动学习特征和任务之间的关联,还能从简单特征中提取复杂的特征。简言之,深度学习是发现内在规律,总结重大特征的机器学习方式。让机器能够像人脑进行演变和进化。

参考机器学习与深度学习的区别

2. 机器学习(深度学习)算法与框架推荐:Scikit-Learn和Tensorflow, Keras(Keras 更适合作为接口来使用。它提供了更高级别,更直观的抽象集合,使得无论后端科学计算库如何,都可以轻松配置神经网络)

3. 深度学习框架选择要素

深度学习框架是一种界面、库或工具,它使我们在无需深入了解底层算法的细节的情况下,能够更容易、更快速地构建深度学习模型。深度学习框架利用预先构建和优化好的组件集合定义模型,为模型的实现提供了一种清晰而简洁的方法。
利用恰当的框架来快速构建模型,而无需编写数百行代码,一个良好的深度学习框架具备以下关键特征:

  • 优化的性能
  • 易于理解和编码
  • 良好的社区支持
  • 并行化的进程,以减少计算
  • 自动计算梯度

4. 深度学习高级开发框架Keras 与 TensorFlow的比较
Keras用Python编写,可以在TensorFlow(以及CNTK和Theano)之上运行。TensorFlow的接口具备挑战性,因为它是一个低级库,新用户可能会很难理解某些实现。而Keras是一个高层的API,它为快速实验而开发。因此,如果希望获得快速结果,Keras会自动处理核心任务并生成输出。Keras支持卷积神经网络和递归神经网络,可以在CPU和GPU上无缝运行。
 
可以将Keras中的模型大致分为两类:
 
4.1. 序列化
模型的层是按顺序定义的。这意味着当我们训练深度学习模型时,这些层次是按顺序实现的
4.2. Keras 函数API
用于定义复杂模型,例如多输出模型或具有共享层的模型。

大数据(人工智能)平台核心架构-数据挖掘(大数据处理)

人工智能离不开背后的数据平台,需要实时运算,实时处理的引擎。这里会涉及到大数据平台架构,如何做出更好的人工智能产品,搭建一个高效的数据平台至关重要。

如上图所示,我们可以看到Spark Storm,ES等大数据技术栈在其中所处的关键位置。除了能提供分布式高性能的流式处理以外,如Spark,已有强大的SparkMLlib机器学习库,旨在简化机器学习的工程实践工作,并方便扩展到更大规模。MLlib由一些通用的学习算法和工具组成,包括分类、回归、聚类、协同过滤、降维等,同时还包括底层的优化原语和高层的管道API。那么在数据处理平台(框架)中直接部署&应用需要的机器学习算法,变得非常高效和方便。

*上图中的模型盒子是数据平台锻造算法模型的关键流程,容器部署算法盒子,用数据锻造真实模型,通过模型挑战者等方式选出最优模型。

参考机器学习-数据处理技术栈

开发语言选择

了解了算法,基本概念,机器学习,数据处理之后。让我们回到日常工作中最使用频率最高的话题:开发语言的选择。开发语言的选择要从一下几个角度考虑:团队技术栈的掌握范围和集中度,主流第三方类库的丰富程度和稳定性。

目前的选择是Python和Java,主要的考虑是目前数据团队以Python为主要开发语言,而核心系统,大数据平台团队使用Java

Python作为开发语言的优势:

Python 中可用库的数量是其他语言所无法企及的。NumPy 已经变得如此普遍,以至于几乎成为了张量运算的标准 API,Pandas 将 R 的强大而灵活的数据帧带入 Python。对于自然语言处理(NLP),您可以使用久负盛名的 NLTK 和快如闪电的 SpaCy。对于机器学习,有经过实战检验的 Scikit-learn。当谈到深度学习时,当前所有的库(TensorFlow,PyTorch,Chainer,Apache MXNet,Theano 等)都是在 Python 上首先实现的项目。

推荐一个非常棒的在线开发手册
 

Java的优势:

Java的优势在于团队对他天然的亲近^_^,Anyway, JVM 系列语言(Java,Scala,Kotlin,Clojure 等)对 AI 应用开发的来说,也是非常棒的选择。自然语言处理(CoreNLP)、张量运算(ND4J)还是完整的 GPU 加速深度学习堆栈(DL4J),都可以使用大量的库来管理流水线的各个部分。最重要的是,Java体系里面的大数据技术栈,可以让人工智能平台轻松与Spark和Hadoop等大数据平台进行构建和整合。

参考:最适合的人工智能开发语言

总结:目前人工智能的框架已经非常成熟了,不要重复造轮子,我们是要重新定义一些计算模型和算法实现,来创新网络结构和训练方法,能够在众多普通的移动设备端进行分布式机器学习,甚至不需要多余的硬件支持或抑制内存开销,这样的深度学习算法会更加有效。


http://chatgpt.dhexx.cn/article/eGGfjjhe.shtml

相关文章

史上最全的人工智能知识体系大全图谱 中国人工智能发展现状与未来

人工智能是目前最火热的技术领域,也是一门极富挑战性的科学,从事这项工作的人必须懂得计算机知识,数学、心理学,甚至哲学。人工智能是包括十分广泛的科学,它由不同的领域组成,如机器学习,计算机…

java分布式事务的解决方案

1.什么是分布式事务 在分布式系统中一次操作由多个系统协同完成,这种一次事务操作涉及多个系统通过网络协同完成的过程称为分布式事务,(强调的是多个系统通过网络协议同时完成一个事务过程) 2.分布式事务的产生的原因 2.1 数据库分表分库 当数据库的…

java分布式系统架构图,2022吊打面试官系列

前言 如果你不能拼爹,或者不想拼爹,最好的方法是拼实力。 合抱之木,生于毫末;九层之台,起于垒土;千里之行,始于足下。 所以,你必须要从基层做起。当然,所谓的基层&#…

offer拿到手软,java分布式面试题及答案

前言 今天的分享主要是讲下这个 redis,什么是缓存雪崩、穿透和击穿。这三个技术问题是我们平时开发工作中和面试过程中,必须要会的知识点,因为目前的互联网系统没有几个不需要用到缓存的,只要用到缓存的话,就需要掌握…

java分布式应用设计核心技术

java分布式应用设计核心技术(1) 前言: CPA理论说:在分布式系统中数据强一致性和服务高可用只能二选一,所以在BASE理论中提出:服务基本可用,数据允许软状态存在,实现数据最终一致性。 在分布式…

Java分布式架构:应用+特点+架构模式

目前企业应用的架构其实有很多,如高并发架构、异地多活架构、容器化架构、微服务架构、高可用架构、弹性化架构等。和这些架构相关的管理型技术方法也有很多,如 DevOps、应用监控、自动化运维、SOA 服务治理、去 IOE 等等。为了方便大家加深学习印象,千锋小编汇总了一些关于…

Java分布式系统框架教程,架构设计

一.主流架构模型SOA架构和微服务架构 SOA架构 SOA全称(ServiceOrientedArchitecture)中文意思为面相服务的架构,他是一种设计方法,轻重包含多个服务,服务之间通过相互依赖最终提供一系列的功能,一个服务通常以独立的形式存在与操作系统进程中,各个服务之间通过网络调用…

java分布式事务框架_Java分布式事务,及解决方案

1、什么是分布式事务 分布式事务就是指事务的参与者、支持事务的服务器、资源服务器以及事务管理器分别位于不同的分布式系统的不同节点之上。以上是百度百科的解释,简单的说,就是一次大的操作由不同的小操作组成,这些小的操作分布在不同的服…

Java 分布式解决方案

文章目录 一、基础知识1. CAP理论2. BASE理论3. 分布式共识算法3.1 Raftleader electionLog Replication 二、 分布式锁1. Redis 分布式锁1.1 加锁1.2 解锁1.3 RedissonRLock 1.4 总结 2. ZooKeeper 分布式锁2.1 基本原理2.2 curator 实现 3. 两者的对比 三、 分布式事务1. 2PC…

Java分布式、微服务概念

1. 分布式 1.1 分布式是什么 分布式系统在《分布式系统原理与范型》一书中有如下定义:“分布式系统是若干独立计算机的集合,这些计算机对于用户来说就像单个相关系统”。 分布式系统是建立在网络之上的软件系统,是一组通过网络进行通信、为…

浅谈Java分布式与集群

在日常操作中,相信很多人在怎么理解Java分布式与集群问题上存在疑惑,今天就大概说说,不注意听,觉得两个可能是同一个东西,其实这个是两个概念。 一句话概括:分布式是以缩短单个任务的执行时间来提升效率的…

java分布式技术

分布式技术 1.软件架构的演进 (1)单体应用阶段 ​ 小型项目(体量比较小,用户比较少这种)LAMP linux操作系统 apache httpd mysql php ​ 把应用服务器数据库等部署到同一台服务器上 (2&#xff09…

JAVA分布式(一)——了解分布式

一年的时间,终于学到了分布式的时候 在进行实践前,要先了解什么是分布式?分布式的意义是什么?(面试大几率会问,如果你写了的话) 目录 一、什么是分布式?二、分布式的特点三、分布…

java分布式入门

分布式入门: 先理解为什么需要分布式,因为服务器处理的能力需要提升,这里有两个方面,第一是纵向 也就是增加cpu的能力,或者加内存;另一个方向就是 横向 ,就是分布式。将本来一台计算机的压力分给…

网站开发进阶(六十七)浅谈css中hsl()和hsla()设置颜色值的方法与应用

前言 HSL 是CSS3引进的一种将 RGB 色彩模型中的点在坐标系中的表示法。这两种表示法试图做到比基于笛卡尔坐标系的几何结构 RGB 更加直观。 定义与用法 hsl() 函数使用色相、饱和度、亮度来定义颜色。 HSL 即色相、饱和度、亮度(英语:Hue, Saturati…

CSS第二章:3.颜色单位(HSL值、HSLA值)

总览 1.HSL值 H - 色相,S - 饱和度,L - 亮度 2.HSLA值 A - 透明度 一、色相 - H 1.取值范围:0~360 二、饱和度 - S 1.取值范围:0~100% 三、亮度 - L 1.取值范围:0~100% 四、HSL值 实操 1.HTML代码&#xff…

CSS 的 hsl() 和 hsla() 函数(设置颜色的方式之一)

一:CSS中的 hsl()函数: 1、定义与用法:hsl() 函数使用色相、饱和度、亮度来定义颜色。 HSL 即:色相(Hue)、饱和度(Saturation)、亮度(Lightness)。 色相&a…

css rgba/hsla知识点讲解及半透明边框

一、RGBA(R,G,B,A) 参数: R:红色值。正整数 | |百分数 G:绿色值。正整数 | |百分数 B:蓝色值。正整数 | |百分数 A:Alpha透明度。取值0~1之间。 说明:此色彩模式与RGB相同,只是在RGB模式上新增了Alpha透明…

HSLA制作配色表

<!doctype html> <html lang"en"><head><meta charset"UTF-8"><title>HSLA制作配色表</title><style>.table-wrap {width: 400px;margin: 10px;float: left;}table {width: 400px;border: 1px solid #756c6c;bo…

css中hsla代表_hsla()函数以及CSS中的示例

css中hsla代表 Introduction: 介绍&#xff1a; The use of functions is very beneficial for web development and one must learn as many functions as they can, therefore keep learning functions for improving your knowledge and coding skills. Besides, you shoul…