原创万字总结人工智能技术栈与学习路线 下集 进阶篇
先见上一篇 基础篇
https://xie.infoq.cn/article/bae1966789ef99a76bfbeb711
七 深度学习经典算法(必学)
1:学习 Tensorflow 框架/Pytorch/Paddle 框架
2:将上述机器学习算法使用这些框架复现
3:实现简单的回归预测与分类
4:BP 神经网络
5:卷积神经网络
6 学习激活函数,参数初始化方法,归一化方法 池化 最优化方法 学习率策略 正则化方法
7 浅层卷积神经网络:LeNet, Neocognitron 网络, TDNN ,Cresceptron 网络
8:经典网络的深度设计:AlexNet VGGNet
9:残差学习
10:分组卷积,卷积拆分,移动短高效模型
11:多尺度网络与非正常卷积,更丰富的感受野与不变性
12:多输入网络:Siamese 网络,Triplet
13:时序神经网络,RNN,双向 RNN, LSTM
14:三维卷积
15:注意力机制
16:生成对抗网络
基于深度学习 GAN 的 Ai 换装(比赛记录)
8 计算机视觉经典算法(与 9 二选一或皆学)
1:计算机视觉的常用图像处理技术
2:其他计算机视觉经典算法
3:基于传统计算机视觉的应用,例如:
基于 OpenCv 的 SVM 实现车牌检测与识别(一)
【实战】基于 OpenCv 的 SVM 实现车牌检测与识别(二)
4:基于深度学习与计算机视觉
5:影像分类,目标检测,语义分割,实例分割等
6:基于深度学习与计算机视觉的项目
由浅入深:
视觉识别入门之人脸识别——基于 FACENET 的高精度人脸识别
视觉识别入门之识别 ——口罩识别
【项目实战】基于 PeLee 的多目标实时检测
基于深度学习的医学图像分割(一)
基于深度学习的语义分割与实例分割(一)
【项目实战】YOLOV5 +实时吸烟目标检测+手把手教学+开源全部
【你只需看一次】YOLO 全系列目标检测算法
Cv 要从基础视觉到图像处理都熟悉,能用传统视觉做数据与处理,数据增强等。
九 自然语言处理与语音识别(与 8 二选一或皆学)
NLP
1:NLP 从入门到实战(一)
2:NLP 入门到实战(二)时间提取
3:词袋模型与句子相似度计算
4: NLP 入门到实战(四)关键词权重计算算法
5:文本分类器
6:分析句子情感
7:主题建模识别文本
8 词法分析
9 句法分析
10 语义分析
11 NLP 实战 文本分类,文本生成与问答与情感分析
12:【项目实战全解】基于深度学习与自然语言处理的 AI 文本生成(自动写作)
13:实体命名识别
学 language model, 然后依次学 POS tagging, 语法分析 PCFG,接着接触 NLP 的第一个实际应用,学习机器翻译(机器翻译真是融合了各种 NLP 知识到里面),先从基于统计的机器翻译开始学,IBM model1, IBM model 2,再到 phrase based machine translation,然后再学 log linear model。 再往后就可以学习各种应用啦,情感分析,文本分类等,这个可以上斯坦福的那门 NLP 课程,也是非常棒的课程。
其他介绍
我们平常说地自然语言处理究竟能做些什么呢?NLP 是计算机以一种聪明而有用的方式分析,理解和从人类语言中获取意义的一种方式。通过利用 NLP,开发者可以组织和构建知识来执行自动摘要,翻译,命名实体识别,关系提取,情感分析,语音识别和话题分割等任务。NLP 用于分析文本,使机器了解人的说话方式。这种人机交互使现实世界的应用,如自动文摘,情感分析,主题提取,命名实体识别,零部件,词性标注,关系提取,词干,等等。NLP 通常用于文本挖掘,机器翻译和自动问答。
早期的 NLP 方法涉及更基于规则的方法,在这种方法中,简单的机器学习算法被告知要在文本中查找哪些单词和短语,并在这些短语出现时给出特定的响应。但深度学习是一个更灵活,直观的方法,在这个方法中,算法学会从许多例子中识别说话者的意图,就像孩子如何学习人类语言一样。
常用技术盘点
1.分词 Word Segmentation
chqiwang/convseg ,基于 CNN 做中文分词,提供数据和代码。(python2.7 )
对应的论文 Convolutional Neural Network with Word Embeddings for Chinese Word Segmentation IJCNLP2017.
2.词预测 Word Prediction
Kyubyong/word_prediction ,基于 CNN 做词预测,提供数据和代码。代码的准确对比的是 Iphone7 的键盘输入,最新跟新是 2019 年 7 月。
文本蕴涵 Textual Entailment
Steven-Hewitt/Entailment-with-Tensorflow,基于 Tensorflow 做文本蕴涵,提供数据和代码。 "Textual entailment with TensorFlow: Using neural networks to explore natural language,"的作者开发,但是代码很久没更新了,文章发表于 2017 年。
语音识别 Automatic Speech Recognition
buriburisuri/speech-to-text-wavenet,基于 DeepMind WaveNet 和 Tensorflow 1.0 做句子级语音识别。17 年的代码
自动摘要 Automatic Summarisation
PKULCWM/PKUSUMSUM,北大万小军老师团队的自动摘要方法汇总,包含了他们大量 paper 的实现,支持单文档摘要、多文档摘要、topic-focused 多文档摘要。
文本纠错 Text Correct
atpaino/deep-text-corrector,基于深度学习做文本纠错,提供数据和代码。
7.字音转换 Grapheme to Phoneme
cmusphinx/g2p-seq2seq,基于网红 transformer 做, 提供数据和代码。
复述检测 Paraphrase Detection 和 问答 Question Answering
Paraphrase-Driven Learning for Open Question Answering, 基于复述驱动学习的开放域问答。
音汉互译 Pinyin-To-Chinese
Kyubyong/neural_chinese_transliterator,基于 CNN 做音汉互译。
情感分析 Sentiment Analysis
情感分析包括的内容太多了,目前没发现比较全的。推荐两个适合练手的吧:Deeply Moving: Deep Learning for Sentiment Analysis,http://sentic.net/about/。
手语识别 Sign Language Recognition
Home - SignAll, 该项目在手语识别做的非常成熟。
词性标注(POS)、 命名实体识别(NER)、 句法分析(parser)、 语义角色标注(SRL) 等。
HIT-SCIR/ltp, 语言技术平台(Language Technology Platform,LTP)是哈工大社会计算与信息检索研究中心历时十年开发的一整套中文语言处理系统。LTP 制定了基于 XML 的语言处理结果表示,并在此基础上提供了一整套自底向上的丰富而且高效的中文语言处理模块(包括词法、句法、语义等 6 项中文处理核心技术),以及基于动态链接库(Dynamic Link Library, DLL)的应用程序接口、可视化工具,并且能够以网络服务(Web Service)的形式进行使用。
官方网站:http://ltp.ai
词干 Word Stemming
snowballstem/snowball, C 语言版本。
snowballstem/pystemmer,Python 版本,代码较新。
还有 go 语言实现的,这里不列举了。
语言识别 Language Identification
(https://github.com/saffsd/langid.py),语言识别比较好的开源工具。
机器翻译 Machine Translation
OpenNMT/OpenNMT-py, 基于 PyTorch 的神经机器翻译,很适合练手。代码较新,持续有更新。
复述生成 Paraphrase Generation
vsuthichai/paraphraser,基于 Tensorflow 的句子级复述生成,适合练手。
关系抽取 Relationship Extraction
ankitp94/relationship-extraction,基于核方法的关系抽取。
句子边界消歧 Sentence Boundary Disambiguation
https://github.com/Orekhov/SentenceBreaking,很有意思。
19.事件抽取 Event Extraction
liuhuanyong/ComplexEventExtraction, 中文复合事件抽取,包括条件事件、因果事件、顺承事件、反转事件等事件抽取,并形成事理图谱。
词义消歧 Word Sense Disambiguation
alvations/pywsd,代码不多,方法简单,适合练手。
命名实体消歧 Named Entity Disambiguation
dice-group/AGDISTIS,实体消歧是很重要的,尤其对于实体融合(比如知识图谱中多源数据融合)、实体链接。
幽默检测 Humor Detection
pln-fing-udelar/pghumor 针对西班牙推文做的,一般用不上,不过可以参考学习一下。
讽刺检测 Sarcasm Detection
AniSkywalker/SarcasmDetection,基于神经网络的讽刺检测。最新更新是 2019 年 9 月份
https://www.aclweb.org/anthology/W16-0425.pdf
1
实体链接 Entity Linking
hasibi/EntityLinkingRetrieval-ELR, 参考的 ACM 论文 Exploiting Entity Linking in Queries for Entity Retrieval,实体链接用途非常广,非常适合练手。
指代消歧 Coreference Resolution
huggingface/neuralcoref,基于神经网络的指代消歧。持续有更新维护。
NeuralCoref 是 spaCy 2.1+的管道扩展,它使用神经网络注释和解析指代消歧。 NeuralCoref 已投入生产,已集成到 spaCy 的 NLP 管道中,并可扩展到新的培训数据集。
关键词/短语抽取和社会标签推荐
Keyphrase Extraction and Social Tag Suggestion
thunlp/THUTag, 用多种方法 实现了多种关键词/短语抽取和社会标签推荐。
以上整理的库和链接并不一定是最经典的和最新的,请在学习和使用时注意区分是否是自己需要学习的库。
语音识别
1 读取和绘制音频数据
2:将音频信号转化为频阈
3:自定义参数生成音频信号
4:合成音乐
5:提取频阈特征
6:创建隐马尔科夫模型
7:创建一个语音识别器
8:语音识别实战项目
十 推荐系统
1:学习基本知识:【详解】多元的智能推荐系统
2:学习 NLP
3:学习分类算法等,KNN 等
5:距离计算算法,欧式距离,皮尔逊相关系数
6:相似用户寻找
7:协同过滤算法:
协同过滤(Collaborative Filtering)作为推荐算法中最经典的类型,包括在线的协同和离线的过滤两部分。所谓在线协同,就是通过在线数据找到用户可能喜欢的物品,而离线过滤,则是过滤掉一些不值得推荐的数据,比如推荐值评分低的数据,或者虽然推荐值高但是用户已经购买的数据。
协同过滤的模型一般为 m 个物品,m 个用户的数据,只有部分用户和部分数据之间是有评分数据的,其它部分评分是空白,此时我们要用已有的部分稀疏数据来预测那些空白的物品和数据之间的评分关系,找到最高评分的物品推荐给用户。
一般来说,协同过滤推荐分为三种类型。第一种是基于用户(user-based)的协同过滤,第二种是基于项目(item-based)的协同过滤,第三种是基于模型(model based)的协同过滤。
8 基于内容,基于物体,基于模型算法
9 项目实战
十一 模型优化
Openvino 模型优化
OpenVINO 是英特尔基于自身现有的硬件平台开发的一种可以加快高性能计算机视觉和深度学习视觉应用开发速度工具套件,支持各种英特尔平台的硬件加速器上进行深度学习,并且允许直接异构执行。 支持在 Windows 与 Linux 系统,Python/C++语言。优化工具包 OpenVINO 让不懂电脑视觉和深度学习原理的小白可以在很短的时间上手,不必担心如何建置开发平台、选择深度学习框架、训练及优化模型和硬体加速等问题,只需利用预先训练及优化过的语义分割模型,很快就可以做出一组看起来很专业的自驾车视觉分析系统。
主要特点
1:在 Intel 平台上提升计算机视觉相关深度学习性能达 19 倍以上
2: 解除 CNN-based 的网络在边缘设备的性能瓶颈
3: 对 OpenCV,OpenXV*视觉库的传统 API 实现加速与优化
4: 基于通用 API 接口在 CPU、GPU、FPGA 等设备上运行加上
OpenVINO 有 2 个大模块,第一个是 OR 他是用于把深度学习训练好的模型转换成 engine 可识别的文件(xml 和 bin) ,另一个是 inference engine 是 OpenVINO 具体实施单元,利用一个智能引擎完成相应的应用 。
一般流程:
1:根据自己的训练模型需要配置 Mode Optimizer.
2: 根据设置的模型参数运行 Model Optimizer,生成相对应的 IR(主要是 xml 和 bin)
xml-主要用来描述网络拓扑结构
bin-包括生成的 weights and biases 二进制数据
3: 在实际应用场景种使用 Inference Engine 测试生成的 IR
4: 在应用程序种调用 Inference Engine 相应接口,将生成的模型 IR 部署到实际环境中。
Model Optimizer
Model Optimizer 是一个跨平台命令行工具,用于促进训练与具体实施平台中的过渡,主要是进行静态模型分析 以及根据配置参照自动调整深度模型
Model Optimizer 被用来设计成支持常用的框架(Caffe, TensofFlow, MXNet, Kaldi, ONNX 等),相当于封装了一层,便于进行开发。
Model Optimizer 主要工作流程:
1:根据需要所用到的框架,配置 Model Optimizer
2: 提供训练模型作为输入,包括网络拓扑以及参数
3:运行 Model Optimizer(根据选择的网络拓扑进行训练)
4:IR 作为 Model Optimizer 输出
Inference Engine:
Inference Engine 是主要运行单元,并提供相应 API
将 IR 作为输入
在目标硬件优化执行
提供嵌入式平台最佳执行性能方案
1:入门:仁兄,可曾听闻 OpenVINO
2:配置:【OpenVino】从入门到实战篇(二)Ubuntu18.04+Windows 10 双系统环境配置与坑解决
3:【Openvino】从入门到实战(三)人脸识别+表情检测+行人检测+人脸关键点检测
4:推理优化与部署步骤,见官方网站
评论