一、深度学习模型入门
1,什么是机器学习?
Study of algorithms
that improve their performance P
at some task T
with experience E
.
研究在某个任务T上用经验E提高其性能P的算法。
well-defined learning task:<P,T,E>
明确的学习任务:<P,T,E>
大致机器学习流程思路:
首先定义模型modeling,得分函数score function
其次确定推理方法inference,这里选择argmax函数
最后通过学习learning,得到得分score最高的参数ω
2,什么是深度学习?
举例:一个单层的神经网络,神经网络其本质就是一些线性回归的东西,对每个神经元加权平均传递给下一层,最终看哪个得分score最高,最终就可确定结果
神经网络符合人脑的一些特点,激活函数activate function,常见的激活函数可参考该篇博文:八、神经网络
这里使用的是sigmoid函函数,看通过逻辑回归之后的得分score,值最高的即为最终的评定结果
下面是一个典型的前向传播神经网络,下一层的神经元都是所有上一层神经元的加权平均,再通过激活层,激活函数都是非线性的,为了使得结果不再过于线性化,从而使得函数的拟合效果更优,最终得到一个神经元,即可作一个二分类问题,或者回归问题进行解决
下面是常见的激活函数类型,红色圆圈区域为激活函数,详细的激活函数介绍可参考该篇博文:十、非线性激活函数
3,常见的神经网络(neural network,简称NN)
Ⅰ、前向神经网络
下一层的神经元都是上一层神经元的加权平均,最后通过一个激活函数确定输出结果类型即可
Ⅱ、卷积神经网络Convolution Neural Network
可以提取每个局域的重点特征,然后进行汇总
Ⅲ、循环神经网络Recurrent Neural Network
可循环不停的读入输入的信息,最终产生一系列的结果,在自然语言处理中运用的比较多
Ⅳ、Seq2Seq with Attention
该模型出自论文《Effective Approaches to Attention-based Neural Machine Translation》
二、用PyTorch构建深度学习模型
1,常见深度学习模型框架
①Google家的TensorFlow
②Facebook家的PyTorch
③亚马逊(Amazon)家的mXnet
④伯克利人工智能研究小组和伯克利视觉和学习中心开发的Caffe,目前几乎已经和PyTorch合并了
⑤Keras的主要开发者是谷歌工程师François Chollet,此外其GitHub项目页面包含6名主要维护者和超过800名直接贡献者。目前已经几乎和TensorFlow合并了
目前主流的也就是TensorFlow和PyTorch这两大框架
2,PyTroch与其他框架的对比
①PyTorch更适合新手,与Python相融
PyTorch: 动态计算图 Dynamic Computation Graph
Tensorflow: 静态计算图 Static Computation Graph
②PyTorch代码通俗易懂,非常接近Python原生代码,不会让人感觉是完全在学习一门新的语言
③拥有Facebook支持,社区活跃
3,PyTorch应用场景
上述modeling、inference和learning中,PyTorch主要负责modeling部分
Model = Architecture + Parameters
其中Parameters需要使用自己的训练数据进行优化该参数
三、PyTorch精彩项目介绍
1,图像分类(ResNet)
数据集采用ImageNet,使用的是何凯明大佬的ResNet模型,项目所在Github链接
2,Object Detection目标检测
对目标对象进行识别分类,并标出不同物体所在的位置,项目所在GitHub链接
3,Image Style Transfer图像风格转换
将图像转换成不同风格,项目所在GitHub链接
4,CycleGAN
把一张图片转换成其他风格,使用GAN对抗网络进行生成,项目所在GitHub链接
5,Image Captioning
给一张图,返回一段描述这张图片的话,项目所在GitHub链接
6,情感分析
一般运用于自然语言处理方面,给一段话,分析这段话是积极还是消极,项目所在GitHub链接
7,Question Answering
提出一个问题,可以通过文章中找到并给出答案,类似一个模式匹配问题,问答系统,项目所在GitHub链接
8,Translation: OpenNMT-py
翻译模型,项目所在GitHub链接
9,ChatBot
聊天机器人,一般都是偏问答的机器人,项目所在GitHub链接
10,Deep Reinforcement Learning
AlphaGo就是经典应用
移动挡板接小球小游戏项目
PyTorch官网API
11,预训练语言模型GPT2
果然,2023年的ChatGPT诞生了!!!OpenAI已经开始冲击到Google的搜索服务行业了。
12,NLP预训练模型
四、学习途径
PyTorch论坛
PyTorch官方documentation
多阅读文献paper
多跑通本人的开源PyTorch项目
反正多练就完事儿了
Don't repeat yourself.
五、课程安排
PyTorch框架与autograd入门,简单前向神经网络
词向量
图像分类,CNN,迁移学习
语言模型,情感分类,RNN,LSTM,GRU
翻译模型,Seq2Seq, Attention
阅读理解,ElMo, BERT, GPT-2
聊天机器人
GAN, Face generation, Style Transfer