问题一: 深度学习中的损失函数和应用场景
回归任务:
均方误差函数(MSE)适用于回归任务,如预测房价、预测股票价格等。
import torch.nn as nn
loss_fn = nn.MSELoss()
分类任务:
交叉熵损失函数(Cross-Entropy Loss)适用于分类任务,如图像分类、文本分类等。对于多分类问题,该损失函数可与Softmax激活函数结合使用。
import torch.nn as nn
loss_fn = nn.CrossEntropyLoss()
二分类任务:
二元交叉熵损失函数(Binary Cross-Entropy Loss)适用于二分类问题,如预测是否为垃圾邮件、预测股票涨跌等。对于二分类问题,该损失函数可与Sigmoid激活函数结合使用。
import torch.nn as nn
loss_fn = nn.BCELoss()
问题二: 空洞卷积
灰色部分为卷积核权重
白色部分为空,值为0
dilation rate:空洞率
权重值的间隔为dilation rate - 1
例:m = 3, p = 0, s = 1时
(m表示卷积核大小,p 表示零填充大小(zero-padding), s 表示步长(stride),d表示空洞率(dilation))
若d=1:
若d=2:
优点:在不增加参数的情况下增大感受野,适用于图片size较大,或需要快速感受全局信息的情况。
通过设置不同的dilation rate捕获多尺度上下文信息,适用于需要捕获图片的多层次的情况,如语义分割等。
问题:存在网格效应,远距离点之间的信息可能不相关。
解决办法:HDC
一、叠加卷积的 dilation rate 不能有大于1的公约数。如 [2, 4, 6] 则不是一个好的三层卷积,依然会出现 gridding effect。解决网格效应
二、将 dilation rate 设计成锯齿状结构,例如 [1, 2, 5, 1, 2, 5] 循环结构。同时捕获远近信息
三、满足:
最常用:
问题三: 残差网络
反向传播路径太长,训练难度增加
问题:
若卷积后的结果与输入X的shape不同, 则不能直接相加
当步长不为1,图片大小发生变化
当通道数与输入通道不同,图片通道数 发生变化
解决:
使用一个1x1的卷积核来改变X的shape,使得其能与卷积后的结果shape相匹配(不知道^ ^
残差模型VS等深卷积: