人工智能知识体系梳理

   日期:2024-12-27    作者:hjsensor68 移动:http://3jjewl.riyuangf.com/mobile/quote/73957.html

本文将从以下几个角度阐述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等大数据平台进行构建和整合。

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


特别提示:本信息由相关用户自行提供,真实性未证实,仅供参考。请谨慎采用,风险自负。


举报收藏 0评论 0
0相关评论
相关最新动态
推荐最新动态
点击排行
{
网站首页  |  关于我们  |  联系方式  |  使用协议  |  隐私政策  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报  |  鄂ICP备2020018471号