郑州网站开发的公司电话,wordpress rest发文章,网站主页设计要点,企业网站托管外包方案回归问题 vs 分类问题#xff08;regression vs classification#xff09; 
回归问题#xff08;regression#xff09; 
1、回归问题的目标是使预测值等于真实值#xff0c;即predy。 
2、求解回归问题的方法是使预测值和真实值的误差最小#xff0c;即minimize dist(p…回归问题 vs 分类问题regression vs classification 
回归问题regression 
1、回归问题的目标是使预测值等于真实值即predy。 
2、求解回归问题的方法是使预测值和真实值的误差最小即minimize dist(pred,y)一般我们通过求其2-范数再平方得到它的最小值也可以直接使用1-范数。 
分类问题classification 
1、分类问题的目标是找到最大的概率即maximize benchmark(accurcy)。 
2、求解分类问题第一种方法是找到真实值与预测值之间的最小距离即minimize dist( p(y | x), pr(y | x) )。第二种方法是找到真实值与预测值的最小差异即minimize divergence( p(y | x), pr(y | x) ) 
但是为什么不直接就概率呢 
1、如果概率不发生改变权重发生改变就会导致梯度等于0出现梯度离散的现象。 
2、由于正确的数量是不连续的因此造成梯度也是不连续的会导致梯度爆炸、训练不稳定等问题。 
二分类问题Binary Classification 
给定一个函数 f x --- p(y  1 | x)如果二分类的角度去研究这个问题。预测的方法是如果p(y  1 | x)  0.5 则预测值为1否则预测值为0。 
以交叉熵的角度分析二分类问题 
首先将二分类问题实例化是对于猫和狗的分类问题根据概率之和等于1我们可以得到狗的概率等于1减去猫的概率即P(dog)  (1 - P(cat))接着将其带入到交叉熵公式中得到以下公式 将具体问题扩展到 一般问题得到如下公式 分析以上公式当y  1 时H (P, Q)  log(p)当y  0 时H (P, Q)  log(1 - p)这两种情况随着p的变化单调性是相反的进一步证明了交叉熵解决二分类问题的可行性。 
多分类问题Multi-class classification 
给定一个函数 f x --- p(y  | x) 其中 [   0  ,    1  , … ,    9  。必须满足所有的 ( |) ∈ [0, 1]所有的概率和  (   | ) 1。 
如何让所有的概率和为1呢 
使用softmax函数详情请看深度学习pytorch——激活函数损失函数持续更新-CSDN博客 
交叉熵cross entropy 
1、交叉熵的特点 
1具有很高的不确定性 
2度量很惊喜 
2、交叉熵的公式 3、交叉熵的值越高就代表不稳定性越大 
1以代码的方式解释 
可以清楚的观察到数据的分布越平衡最后得到的熵值就越高反之熵值就越低。 import torch
a  torch.full([4],1/4)
print(1.a:,a)
print(entropy:,-(a*torch.log2(a)).sum())a  torch.tensor([0.1,0.1,0.1,0.7])
print(2.a:,a)
print(entropy:,-(a*torch.log2(a)).sum())a  torch.tensor([0.001,0.001,0.001,0.999])
print(3.a:,a)
print(entropy:,-(a*torch.log2(a)).sum()) 
2以理论的角度解释 
给出Cross Entropy 的公式 当Cross Entropy 和Entropy 这两个分布相等时即HpqHp此时两个分布重合此时Dkl就等于0。 
当使用one-hot加密我们可以得到Entropy  1log1  0即Hp 0则此时满足H(p, q)  Dkl(p|q)的情况此时如果对Hpq进行优化相当于将Dkl(p|q)直接优化了这是我们直接可以不断减小Dkl(p|q)的值使预测值逐渐接近真实值这就很好的解释了我们为什么要使用Cross Entropy。 
为什么不使用MSE 
1、sigmoid  MSE 的模式会导致梯度离散的现象 
2、收敛速度比较慢 
通过下图可以很合理的证明以上两个原因的合理性 3、但是有时我们再做一些前沿的技术时会发现MSE效果要好于cross entropy因为它的求解梯度较为简单。 MSE VS Cross Entropy 
Cross Entropy  sofymax  log  nll_loss最后的结果都是一样的。 
import torch
from torch.nn import functional as F
# MSE vs Cross Entropy
x  torch.randn(1,784)
w  torch.randn(10,784)
logists  xw.t()
# 使用Cross Entropy
print(F.cross_entropy(logists,torch.tensor([3])))
# tensor(0.0194)
# 自己处理
pred  F.softmax(logists, dim  1)
pred_log  torch.log(pred)
print(F.nll_loss(pred_log,torch.tensor([3])))
# tensor(0.0194) 
多分类问题实战  
############# Logistic Regression 多分类实战MNIST###########
# (1)加载数据
# (2)定义网络
# (3)凯明初始化
# (4)training:实例化一个网络对象,构建优化器,迭代,定义loss输出
# (5)testingimport  torch
import  torch.nn as nn
import  torch.nn.functional as F
import  torch.optim as optim
from    torchvision import datasets, transformsbatch_size200 #Batch Size一次训练所选取的样本数
learning_rate0.01
epochs10 #1个epoch表示过了1遍训练集中的所有样本这里可以设置为 5# 加载数据
train_loader  torch.utils.data.DataLoader(datasets.MNIST(../data, trainTrue, downloadTrue,transformtransforms.Compose([transforms.ToTensor(),transforms.Normalize((0.1307,), (0.3081,))])),batch_sizebatch_size, shuffleTrue)
test_loader  torch.utils.data.DataLoader(datasets.MNIST(../data, trainFalse, transformtransforms.Compose([transforms.ToTensor(),transforms.Normalize((0.1307,), (0.3081,))])),batch_sizebatch_size, shuffleTrue)# 在pytorch中的定义aba是ch-out输出b是ch-in输入也就是输出输入
# 比如第一个可以理解为从784降维成200的层
w1, b1  torch.randn(200, 784, requires_gradTrue),\torch.zeros(200, requires_gradTrue)
w2, b2  torch.randn(200, 200, requires_gradTrue),\torch.zeros(200, requires_gradTrue)
w3, b3  torch.randn(10, 200, requires_gradTrue),\torch.zeros(10, requires_gradTrue)# 凯明初始化如果不进行初始化会出现梯度离散的现象
# torch.nn.init.kaiming_normal_(tensor, a0, modefan_in, nonlinearityleaky_relu)
torch.nn.init.kaiming_normal_(w1)
torch.nn.init.kaiming_normal_(w2)
torch.nn.init.kaiming_normal_(w3)# 前向传播过程
def forward(x):x  xw1.t()  b1x  F.relu(x)x  xw2.t()  b2x  F.relu(x)x  xw3.t()  b3x  F.relu(x)  #这里千万不要用softmax因为之后的crossEntropyLoss中自带了。这里可以用relu也可以不用。return x  #返回的是一个logits即没有经过sigmoid或者softmax的层# 优化器
optimizer  optim.SGD([w1, b1, w2, b2, w3, b3], lrlearning_rate)
criteon  nn.CrossEntropyLoss()for epoch in range(epochs):for batch_idx, (data, target) in enumerate(train_loader):data  data.view(-1, 28*28) # 将二维的图片数据打平 [200,784],第5课用的 x  x.view(x.size(0), 28*28)logits  forward(data) #这里是网络的输出loss  criteon(logits, target)  # 调用cross—entorpy计算输出值和真实值之间的lossoptimizer.zero_grad()loss.backward()# print(w1.grad.norm(), w2.grad.norm())optimizer.step()# 每 batch_idx * 10020000输出结果 每100个bachsize打印输出的结果看看loss的情况if batch_idx % 100  0:print(Train Epoch: {} [{}/{} ({:.0f}%)]\tLoss: {:.6f}.format(epoch, batch_idx * len(data), len(train_loader.dataset),100. * batch_idx / len(train_loader), loss.item()))# len(data)---指的是一个batch_size;
# len(train_loader.dataset)----指的是train_loader这个数据集中总共有多少张图片数据
# len(train_loader)---- len(train_loader.dataset)/len(data)---就是这个train_loader要加载多少次batch# 测试网络---test----每训练完一个epoch检测一下测试结果# 因为每一个epoch已经优化了batch次参数得到的参数信息还是OK的test_loss  0correct  0for data, target in test_loader:data  data.view(-1, 28 * 28)logits  forward(data) #logits的shape[200,10]--200是batchsize10是最后输出结果的10分类test_loss  criteon(logits, target).item()  #每次将test_loss进行累加   #target[200,1]---每个类只有一个正确结果pred  logits.data.max(1)[1]# 这里losgits.data是一个二维数组其dim1;max()---返回的是每行的最大值和最大值对应的索引# max(1)----是指每行取最大值;max(1)[1]---取每行最大值对应的索引号# 也可以写成 predlogits.argmax(dim1)correct  pred.eq(target.data).sum()#预测值和目标值相等个数进行求和--在for中将这个test_loader中相等的个数都求出来test_loss / len(test_loader.dataset)print(\nTest set: Average loss: {:.4f}, Accuracy: {}/{} ({:.0f}%)\n.format(test_loss, correct, len(test_loader.dataset),100. * correct / len(test_loader.dataset)))
影响training的因素有
1、learning rate过大
2、gradient vanish---梯度弥散参数梯度为0,导致loss保持为常数loss长时间得不到更新
3、初始化问题----参数初始化问题课时50 多分类问题实战_哔哩哔哩_bilibili 文章转载自: http://www.morning.qwmdx.cn.gov.cn.qwmdx.cn http://www.morning.kltmt.cn.gov.cn.kltmt.cn http://www.morning.bksbx.cn.gov.cn.bksbx.cn http://www.morning.tnmmp.cn.gov.cn.tnmmp.cn http://www.morning.tcsdlbt.cn.gov.cn.tcsdlbt.cn http://www.morning.mprky.cn.gov.cn.mprky.cn http://www.morning.kndst.cn.gov.cn.kndst.cn http://www.morning.fdsbs.cn.gov.cn.fdsbs.cn http://www.morning.rpfpx.cn.gov.cn.rpfpx.cn http://www.morning.xdqrz.cn.gov.cn.xdqrz.cn http://www.morning.prkdl.cn.gov.cn.prkdl.cn http://www.morning.crqpl.cn.gov.cn.crqpl.cn http://www.morning.ntnml.cn.gov.cn.ntnml.cn http://www.morning.kryxk.cn.gov.cn.kryxk.cn http://www.morning.lczxm.cn.gov.cn.lczxm.cn http://www.morning.sqskm.cn.gov.cn.sqskm.cn http://www.morning.brtxg.cn.gov.cn.brtxg.cn http://www.morning.lzttq.cn.gov.cn.lzttq.cn http://www.morning.jikuxy.com.gov.cn.jikuxy.com http://www.morning.taipinghl.cn.gov.cn.taipinghl.cn http://www.morning.nrydm.cn.gov.cn.nrydm.cn http://www.morning.brzlp.cn.gov.cn.brzlp.cn http://www.morning.jlschmy.com.gov.cn.jlschmy.com http://www.morning.hrzymy.com.gov.cn.hrzymy.com http://www.morning.fstesen.com.gov.cn.fstesen.com http://www.morning.nccyc.cn.gov.cn.nccyc.cn http://www.morning.ljzss.cn.gov.cn.ljzss.cn http://www.morning.spfq.cn.gov.cn.spfq.cn http://www.morning.hwhnx.cn.gov.cn.hwhnx.cn http://www.morning.pmbcr.cn.gov.cn.pmbcr.cn http://www.morning.hwnnh.cn.gov.cn.hwnnh.cn http://www.morning.pshtf.cn.gov.cn.pshtf.cn http://www.morning.xhpnp.cn.gov.cn.xhpnp.cn http://www.morning.mfmbn.cn.gov.cn.mfmbn.cn http://www.morning.kgxyd.cn.gov.cn.kgxyd.cn http://www.morning.sfrw.cn.gov.cn.sfrw.cn http://www.morning.zlnmm.cn.gov.cn.zlnmm.cn http://www.morning.hkshy.cn.gov.cn.hkshy.cn http://www.morning.nytqy.cn.gov.cn.nytqy.cn http://www.morning.ddzqx.cn.gov.cn.ddzqx.cn http://www.morning.rgksz.cn.gov.cn.rgksz.cn http://www.morning.fbdkb.cn.gov.cn.fbdkb.cn http://www.morning.prgdy.cn.gov.cn.prgdy.cn http://www.morning.tdxnz.cn.gov.cn.tdxnz.cn http://www.morning.xmjzn.cn.gov.cn.xmjzn.cn http://www.morning.wjmb.cn.gov.cn.wjmb.cn http://www.morning.jlboyuan.cn.gov.cn.jlboyuan.cn http://www.morning.wkws.cn.gov.cn.wkws.cn http://www.morning.lanyee.com.cn.gov.cn.lanyee.com.cn http://www.morning.rqnhf.cn.gov.cn.rqnhf.cn http://www.morning.zypnt.cn.gov.cn.zypnt.cn http://www.morning.mnnxt.cn.gov.cn.mnnxt.cn http://www.morning.pqyms.cn.gov.cn.pqyms.cn http://www.morning.wlqll.cn.gov.cn.wlqll.cn http://www.morning.phtqr.cn.gov.cn.phtqr.cn http://www.morning.jjwzk.cn.gov.cn.jjwzk.cn http://www.morning.mywnk.cn.gov.cn.mywnk.cn http://www.morning.bqxxq.cn.gov.cn.bqxxq.cn http://www.morning.mtsgx.cn.gov.cn.mtsgx.cn http://www.morning.zxzgr.cn.gov.cn.zxzgr.cn http://www.morning.lbywt.cn.gov.cn.lbywt.cn http://www.morning.mqzcn.cn.gov.cn.mqzcn.cn http://www.morning.zdhxm.com.gov.cn.zdhxm.com http://www.morning.knswz.cn.gov.cn.knswz.cn http://www.morning.jspnx.cn.gov.cn.jspnx.cn http://www.morning.dfckx.cn.gov.cn.dfckx.cn http://www.morning.ywpwg.cn.gov.cn.ywpwg.cn http://www.morning.rfdqr.cn.gov.cn.rfdqr.cn http://www.morning.mlyq.cn.gov.cn.mlyq.cn http://www.morning.qyglt.cn.gov.cn.qyglt.cn http://www.morning.mnkz.cn.gov.cn.mnkz.cn http://www.morning.zlrrj.cn.gov.cn.zlrrj.cn http://www.morning.mnrqq.cn.gov.cn.mnrqq.cn http://www.morning.fcqlt.cn.gov.cn.fcqlt.cn http://www.morning.rbnnq.cn.gov.cn.rbnnq.cn http://www.morning.dmchips.com.gov.cn.dmchips.com http://www.morning.xblrq.cn.gov.cn.xblrq.cn http://www.morning.mqghs.cn.gov.cn.mqghs.cn http://www.morning.wdhhz.cn.gov.cn.wdhhz.cn http://www.morning.tbstj.cn.gov.cn.tbstj.cn