今日听闻师姐说pytorch实现深度学习要比keras更好用一些,特此记录
Part 0. 机器学习 与 深度学习 的联系与区别
联系
深度学习是机器学习的分支,人工神经网络为基础,对数据的特征进行学习的方法
区别
特征抽取
机器学习 是 人工对数据的特征进行抽取
深度学习 是 计算机根据所有所给特征,对数据特征进行抽取
数据量 与 效果
机器学习 所需数据量少,拟合效果并不一定好,应用场景有限
深度学习 所需数据量大,拟合效果较好,应用场景广
一个理解深度学习的比喻
深度学习好像让一群盲人摸象,最后根据所有盲人获得的信息来推测出这是一个大象。
深度学习的应用场景
图像识别
物体识别、场景识别、人脸检测跟踪、人脸身份认证
自然语言处理技术
极其翻译、文本识别、聊天对话
语音技术
语音识别等
常见深度学习的python包
tensorflow (古典包)
Keras (基于tensorflow构建的语法框架,更实用)
PyTroch (目前主流)(和Keras比较相似)
Caffe2,Theano,Chainer,DyNet,MXNet, CNTK等等
Part 1. 常见激活函数
sigmoid:逻辑回归![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/bd24425ab2a30e03e69f09decce3a6f2.png)
tanh: 三角函数tan(x)
Relu: max(0,x)
Leaky Relu : max(0.1x,x)
maxout
【没看懂,待填】
ELU
Part 2. 常见损失函数
逻辑回归模型
sigmoid
常用于二分类问题
数学原理是计算对数自然损失
softmax
常用于多分类问题
数学原理是通过对数自然损失的多次计算
一般称为交叉熵损失
pytorch实现交叉熵损失的计算
方法一:
criterion = nn.CrossEntropyLoss()
#导入现成的损失函数
loss = citerion(input,target)
#根据输入值input和目标值target 计算损失loss
方法二:
output = F.log_softmax(x,dim=-1)
loss = F.nll_loss(output,target)
#效果同上