【5】過擬合處理的一些技巧
Underfitting欠擬合的特點(diǎn):模型的復(fù)雜度<數(shù)據(jù)分布的復(fù)雜度1)訓(xùn)練集的準(zhǔn)確率不好,loss會比較高2)測試集的準(zhǔn)確率也不好,loss也會比較高
Overfitting過擬合的特點(diǎn):模型的復(fù)雜度>數(shù)據(jù)分布的復(fù)雜度1)訓(xùn)練集的準(zhǔn)確度比較高,但是測試集的準(zhǔn)確度比較低2)過分的準(zhǔn)確降低loss,導(dǎo)致效果不好
由于現(xiàn)在的網(wǎng)絡(luò)層數(shù)都比較大,所以出現(xiàn)過擬合的情況比較多,欠擬合的情況相對會少一點(diǎn)
1)提供更多的數(shù)據(jù)
2)降低模型的復(fù)雜度降低神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)的層數(shù)或者正則化方法
3)Dropout去掉一部分的神經(jīng)元
4)DataEnhancement數(shù)據(jù)增強(qiáng)
5)EarlyStopping對訓(xùn)練過程做一個提前的終結(jié)
2.交叉驗(yàn)證train-val-test交叉驗(yàn)證結(jié)構(gòu)的思路:由于datasets.MNIST函數(shù)可以將數(shù)據(jù)樣本劃分成數(shù)據(jù)集與測試集兩類,但是這是不夠的,可以引入第三類,也就是train-val-test交叉驗(yàn)證結(jié)構(gòu)。可以將樣本數(shù)量較多的訓(xùn)練集再度的劃分為train樣本集與val樣本集,這樣可以使用train樣本集來訓(xùn)練神經(jīng)網(wǎng)絡(luò),然后使用val樣本集來測試來選擇一個較好的參數(shù)值,最后test數(shù)據(jù)集是作為最后的樣本得出最終的結(jié)果
參考代碼
#導(dǎo)入需要的模塊importtorchimporttorch.nnasnnimporttorch.nn.functionalasFimporttorch.optimasoptimimporttorchvisionfromtorchvisionimporttransforms,datasets#參數(shù)的初始化batch_size=200learning_rate=0.01epochs=10#訓(xùn)練集下載train_db=datasets.MNIST('datasets/mnist_data',train=True,download=True,transform=transforms.Compose([transforms.ToTensor(),transforms.Normalize((0.1307,),(0.3081,))]))#測試集下載test_db=datasets.MNIST('datasets/mnist_data',train=False,download=True,transform=transforms.Compose([transforms.ToTensor(),transforms.Normalize((0.1307,),(0.3081,))]))#將訓(xùn)練集再度分成兩類,train數(shù)據(jù)集樣本數(shù)為50k,val數(shù)據(jù)集的樣本數(shù)為10ktrain_db,val_db=torch.utils.data.random_split(train_db,[50000,10000])#接下來進(jìn)行導(dǎo)入數(shù)據(jù)train_loader=torch.utils.data.DataLoader(train_db,batch_size=batch_size,shuffle=True)test_loader=torch.utils.data.DataLoader(test_db,batch_size=batch_size,shuffle=True)val_loader=torch.utils.data.DataLoader(val_db,batch_size=batch_size,shuffle=True)#打印三種數(shù)據(jù)集的樣本數(shù)量print('train:',len(train_db),'val:',len(val_db),'test:',len(test_db))#輸出為:train:50000val:10000test:10000#定義神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)classMLP(nn.Module):def__init__(self):super(MLP,self).__init__()self.model=nn.Sequential(nn.Linear(784,200),nn.LeakyReLU(inplace=True),nn.Linear(200,200),nn.LeakyReLU(inplace=True),nn.Linear(200,10),nn.LeakyReLU(inplace=True),)defforward(self,x):x=self.model(x)returnx#使用GPU來加速計(jì)算device=torch.device('cuda:0')net=MLP().to(device)#設(shè)置容器optimizer=optim.SGD(net.parameters(),lr=learning_rate)criteon=nn.CrossEntropyLoss().to(device)#一次epoch是直接訓(xùn)練全部的樣本forepochinrange(epochs):#對于train數(shù)據(jù)集,主要的功能是不斷的改進(jìn)神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)forbatch_idx,(data,target)inenumerate(train_loader):data=data.view(-1,28*28)data,target=data.to(device),target.cuda()logits=net(data)loss=criteon(logits,target)optimizer.zero_grad()loss.backward()optimizer.step()ifbatch_idx%100==0:print('TrainEpoch:{}[{}/{}({:.0f}%)]Loss:{:.6f}'.format(epoch,batch_idx*len(data),len(train_loader.dataset),100.*batch_idx/len(train_loader),loss.item()))#然后使用val數(shù)據(jù)集來挑選一個精度最高的參數(shù)值來進(jìn)行下一次的epoch訓(xùn)練,主要主要是監(jiān)視時(shí)候出現(xiàn)過擬合的情況#根據(jù)val樣本集輸出的情況,進(jìn)行人為的選擇最低loss指的參數(shù),來作為做好的參數(shù),來給最后的test樣本集來做驗(yàn)證test_loss=0correct=0fordata,targetinval_loader:data=data.view(-1,28*28)data,target=data.to(device),target.cuda()logits=net(data)test_loss+=criteon(logits,target).item()#data.shape,pred.shape輸出為:(torch.Size([200,784]),torch.Size([200]))#也就是data為200張28*28的圖片pred=logits.data.max(1)[1]#得出每一個數(shù)據(jù)的預(yù)測數(shù)字#輸出為:#tensor([3,2,7,0,2,9,3,5,0,1,8,8,1,8,5,0,8,0,5,9,1,9,4,8,#1,0,4,3,7,7,2,2,8,7,1,2,9,9,1,0,2,3,5,4,8,8,2,1,#3,8,2,6,3,2,1,1,7,9,2,1,2,9,9,3,0,0,1,9,7,5,6,4,#5,3,8,3,1,6,0,1,6,1,1,2,6,6,5,3,4,9,9,5,8,3,1,5,#7,9,6,1,2,5,3,4,3,1,7,2,0,3,0,3,1,4,1,6,6,5,3,1,#1,6,2,7,2,8,4,4,0,8,2,9,0,1,6,7,3,1,6,1,0,5,4,9,#9,3,3,0,9,8,9,7,8,1,7,6,4,0,1,8,4,2,4,2,1,1,3,4,#4,8,8,7,4,8,2,1,7,6,0,9,9,6,1,7,9,4,7,5,8,7,3,4,#4,0,0,5,8,3,2,1],device='cuda:0')correct+=pred.eq(target.data).sum()test_loss/=len(val_loader.dataset)print('VALset:Averageloss:{:.4f},Accuracy:{}/{}({:.0f}%)
'.format(test_loss,correct,len(val_loader.dataset),100.*correct/len(val_loader.dataset)))#測試集得出最后的結(jié)果,根據(jù)上述的輸出人為的選擇一個最好的參數(shù),去避免神經(jīng)網(wǎng)絡(luò)訓(xùn)練次數(shù)過多而導(dǎo)致過擬合的情況#這部分代碼與val數(shù)據(jù)集的樣本是完全一模一樣的test_loss=0correct=0fordata,targetintest_loader:data=data.view(-1,28*28)data,target=data.to(device),target.cuda()logits=net(data)test_loss+=criteon(logits,target).item()pred=logits.data.max(1)[1]correct+=pred.eq(target.data).sum()test_loss/=len(test_loader.dataset)#得出最后一個最終結(jié)果print('
Testset:Averageloss:{:.4f},Accuracy:{}/{}({:.0f}%)
'.format(test_loss,correct,len(test_loader.dataset),100.*correct/len(test_loader.dataset)))
結(jié)果輸出:
TrainEpoch:0[0/50000(0%)]Loss:2.306638TrainEpoch:0[20000/50000(40%)]Loss:2.004949TrainEpoch:0[40000/50000(80%)]Loss:1.304654VALset:Averageloss:0.0048,Accuracy:7999/10000(80%)TrainEpoch:1[0/50000(0%)]Loss:0.950421TrainEpoch:1[20000/50000(40%)]Loss:0.750856TrainEpoch:1[40000/50000(80%)]Loss:0.486089VALset:Averageloss:0.0024,Accuracy:8725/10000(87%)TrainEpoch:2[0/50000(0%)]Loss:0.551328TrainEpoch:2[20000/50000(40%)]Loss:0.393225TrainEpoch:2[40000/50000(80%)]Loss:0.364113VALset:Averageloss:0.0019,Accuracy:8911/10000(89%)TrainEpoch:3[0/50000(0%)]Loss:0.349589TrainEpoch:3[20000/50000(40%)]Loss:0.392292TrainEpoch:3[40000/50000(80%)]Loss:0.436958VALset:Averageloss:0.0017,Accuracy:9017/10000(90%)TrainEpoch:4[0/50000(0%)]Loss:0.258544TrainEpoch:4[20000/50000(40%)]Loss:0.338164TrainEpoch:4[40000/50000(80%)]Loss:0.359373VALset:Averageloss:0.0016,Accuracy:9062/10000(91%)TrainEpoch:5[0/50000(0%)]Loss:0.273114TrainEpoch:5[20000/50000(40%)]Loss:0.253162TrainEpoch:5[40000/50000(80%)]Loss:0.311780VALset:Averageloss:0.0015,Accuracy:9127/10000(91%)TrainEpoch:6[0/50000(0%)]Loss:0.250342TrainEpoch:6[20000/50000(40%)]Loss:0.315225TrainEpoch:6[40000/50000(80%)]Loss:0.349633VALset:Averageloss:0.0014,Accuracy:9168/10000(92%)TrainEpoch:7[0/50000(0%)]Loss:0.279099TrainEpoch:7[20000/50000(40%)]Loss:0.223900TrainEpoch:7[40000/50000(80%)]Loss:0.316459VALset:Averageloss:0.0014,Accuracy:9201/10000(92%)TrainEpoch:8[0/50000(0%)]Loss:0.349246TrainEpoch:8[20000/50000(40%)]Loss:0.241840TrainEpoch:8[40000/50000(80%)]Loss:0.193532VALset:Averageloss:0.0013,Accuracy:9231/10000(92%)TrainEpoch:9[0/50000(0%)]Loss:0.238849TrainEpoch:9[20000/50000(40%)]Loss:0.193404TrainEpoch:9[40000/50000(80%)]Loss:0.204639VALset:Averageloss:0.0013,Accuracy:9251/10000(93%)Testset:Averageloss:0.0012,Accuracy:9305/10000(93%)由于設(shè)置的epoch過小,神經(jīng)網(wǎng)絡(luò)沒有完全訓(xùn)練好,所以目前l(fā)oss還是不斷地在降低,還沒有出現(xiàn)過擬合的情況,所以目前還不需要人為的挑選參數(shù),來給最后的test樣本集來進(jìn)行訓(xùn)練。
3.regularization正則化問題:正則化的操作是為了使得參數(shù)分布減小,從而避免過擬合的情況,但是為什么參數(shù)范數(shù)接近于0的時(shí)候,其模型的復(fù)雜度會減少?
答案:因?yàn)閷⒁粋€高維函數(shù)的高維部分的參數(shù)下降為接近于0,所以正則化在另一方面也稱為WeightDecay
正則化分為兩類:劃分的依據(jù)是范數(shù)的不同1)L1-regularizationimage
2)L2-regularization(較常用)
對于L2-regularization來說,PyTorch有直接API接口可以直接使用,比較的方便,而L1-regularization需要人為進(jìn)行添加。
#L2-regularization的使用參考device=torch.device('cuda:0')net=MLP().to(device)#其實(shí)就是添加了一個參數(shù)weight_decay=0.01optimizer=optim.SGD(net.parameters(),lr=learning_rate,weight_decay=0.01)criteon=nn.CrossEntropyLoss().to(device)#weight_decay=0.01的含義:相當(dāng)于設(shè)置了L2-regularization公式中的λ為0.01#由于net.parameters()已經(jīng)得到了神經(jīng)網(wǎng)絡(luò)的全部參數(shù),w’=w-▽w,然后使得參數(shù)的二范數(shù)|w|——>0需要注意的是,正則化的操作是為了避免網(wǎng)絡(luò)結(jié)果過于的復(fù)雜所以需要約束其參數(shù)不能過大,也就是避免過擬合的情況,如果網(wǎng)絡(luò)并沒有出現(xiàn)過擬合的情況而使用正則化操作會使得訓(xùn)練的效果差很多
#L1-regularization的使用參考regulatization_loss=0#遍歷參數(shù)計(jì)算出參數(shù)的1范數(shù),根據(jù)公式也就是模的相加forparaminmodel.parameters():regulatization_loss+=torch.sum(torch.abs(param))#對參數(shù)取絕對值求和classify_loss=criteon(logits,target)#計(jì)算出結(jié)果的交叉熵#交叉熵+參數(shù)的1范數(shù)損失=總的loss,現(xiàn)在降低這個loss就可以改善網(wǎng)絡(luò)#根據(jù)上述的公式,0.01就是L1-regularization公式中的λ#以下這行代碼就是模仿公式的結(jié)果loss=classify_loss+0.01*regulatization_loss#基本的三部曲,向后傳播更新參數(shù)optimizer.zero_grad()loss.backward()optimizer.step()4.動量與學(xué)習(xí)量的衰減1)動量其中的zk可以理解為上一次梯度更新的方向,增加的動量的機(jī)制相當(dāng)于不僅僅考慮了當(dāng)前梯度的方向,還考慮了之前的梯度的方向,也就是綜合的結(jié)合了兩次梯度的變化信息來權(quán)衡。
Nomomentum
Withappr.momentum參考代碼:
#方法1#同樣的,pytorch中的SGD優(yōu)化器也提供的一個接口,使用起來還是比較的方便optimizer=torch.optim.SGD(model.parameters().args.lr,momentum=args.momentum,#僅僅是添加了了著一個參數(shù)weight_decay=args.weight_decay)方法20.8表示新一輪產(chǎn)生的數(shù)據(jù)與前一輪產(chǎn)生的數(shù)據(jù)之間的使用比例,也就是動量操作nn.BatchNorm2d(128,0.8),
所以在構(gòu)造神經(jīng)網(wǎng)絡(luò)的時(shí)候可以使用BN層來間接使用動量操作參考解釋:https://blog.csdn.net/t20134297/article/details/104960101/#####2)Learingratedecay![在這里插入圖片描述](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/577deba18a814fa787451689630eea42~tplv-k3u1fbpfcp-zoom-1.image)當(dāng)梯度的長時(shí)間保持不變的時(shí)候,也有可以是learningrate的問題,有時(shí)我們調(diào)整了一下學(xué)習(xí)率就可能讓loss跳轉(zhuǎn),所以可以動態(tài)的設(shè)置learningrate,訓(xùn)練過程一直保持同樣的learningrate有時(shí)進(jìn)行的會是非常的緩慢的![在這里插入圖片描述](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/41a2975b110942f8b60a8eb754ff7d8b~tplv-k3u1fbpfcp-zoom-1.image)![在這里插入圖片描述](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/e4ea417b6f5a4463a4d7027961331849~tplv-k3u1fbpfcp-zoom-1.image)參考代碼:```python#方法1#在SGD容器中設(shè)置了正則化操作與動量操作optimizer=torch.optim.SGD(model.parameters().args.lr,momentum=args.momentum,weight_decay=args.weight_decay)#ReduceLOonPlateau當(dāng)loss已經(jīng)平坦了很長時(shí)間之后,可以通過減小learningrate來進(jìn)一步減小loss#接口函數(shù)為:classReduceLROnPlateau(builtins.object)#|ReduceLROnPlateau(optimizer,mode='min',factor=0.1,patience=10,#threshold=0.0001,threshold_mode='rel',cooldown=0,#min_lr=0,eps=1e-08,verbose=False)scheduler=ReduceLOonPlateau(optimizer,'min')#mode='min':表示模式是減小lr#patience=10:表示如果10個epoch都沒有減小,則降低learingrate#factor=0.1:表示降低learingrate的倍數(shù),lr=factor*lr##訓(xùn)練過程forepochinxrange(args.start_epoch,args.epochs):train(train_loader,model,criterion,optimizer,epoch)result_avg,loss_val=validate(val_loader,model,criterion,epoch)#每調(diào)用一次就監(jiān)聽一次loss,若平淡10次就會做出改變scheduler.step(loss_val)#方法2:#此方法不需要監(jiān)聽,而是沒經(jīng)過一定數(shù)量的訓(xùn)練次數(shù)就直接降低learningrate#Assumingoptimizeruseslr=0.05forallgroups#lr=0.05ifepoch<30#lr=0.005if30<=epoch<60#lr=0.0005if60<=epoch<90#......scheduler=StepLR(optimizer,step_size=30,gamma=0.1)forepochinrange(100):scheduler.step()train(...)validate(...)5.EarlyStopping思想很簡單,就是使用val數(shù)據(jù)要進(jìn)行驗(yàn)證,如果其準(zhǔn)確度已經(jīng)開始下降時(shí),可以提前的終止訓(xùn)練,而使用當(dāng)前認(rèn)為最后的一組參數(shù),其實(shí)這個思想前面的推文也有涉及,其簡單的步驟歸結(jié)為:
1)Validationsettoselectparameters:val數(shù)據(jù)集驗(yàn)證來挑選參數(shù)
2)Monitorvalidationperforamce:人工監(jiān)視來查看性能
3)Stopatthehighestvalperf:在最高的準(zhǔn)確度時(shí)停止實(shí)驗(yàn)
6.DropoutDropout的思想是去除掉一部分是神經(jīng)元,也就是通過簡化神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)來避免過擬合的情況
Learninglesstolearnbetter
Eachconnectionhasp=(0,1)tolose
其與正則化的思想是有部分類似的,但是正則化的思想是使用2范數(shù)迫使參數(shù)的復(fù)雜度降低|w|->0,既使得參數(shù)的總范數(shù)接近于0而Dropout是想不需要使用全部的參數(shù),可以簡化一部分也就是斷了部分參數(shù)之間的輸入輸出練習(xí)∑w->0,既使得有效的參數(shù)越小越好Dropout可以是的loss函數(shù)變化的比較平和,因?yàn)槠涫沟糜行У膮?shù)量減少了,避免了網(wǎng)絡(luò)結(jié)構(gòu)學(xué)習(xí)了噪聲對最后的結(jié)果造成了干擾
#Dropout的使用方法如下:net_dropped=torch.nn.Sequential(torch.nn.Linear(784,200),#層(784,200)與層(200,200)之間的連線有一定幾率斷掉torch.nn消除誤差的方法有哪些
6. 正則化:引入正則項(xiàng)對模型的復(fù)雜度進(jìn)行懲罰,以防止過擬合。正則化有助于平衡模型的復(fù)雜性和泛化能力,從而減小誤差。7. 集成學(xué)習(xí):通過結(jié)合多個不同模型的預(yù)測結(jié)果(例如隨機(jī)森林、梯度提升樹等),集成學(xué)習(xí)可以提高整體的預(yù)測準(zhǔn)確性,并減小誤差。此外,還有一些減小誤差的技巧,包括:- 數(shù)據(jù)清洗:在...
如何處理數(shù)據(jù)不平衡問題
3)調(diào)整樣本權(quán)重:為不同樣本數(shù)量的類別分配不同的權(quán)重,通常設(shè)置為與樣本量成反比。4)應(yīng)用K-fold交叉驗(yàn)證:在解決不平衡問題時(shí),應(yīng)適當(dāng)使用交叉驗(yàn)證。過采樣可能會導(dǎo)致觀察到稀有樣本,并基于分布函數(shù)應(yīng)用自舉生成新的隨機(jī)數(shù)據(jù)。因此,在過采樣后應(yīng)用交叉驗(yàn)證,可以避免過擬合特定的人工引導(dǎo)結(jié)果。5)謹(jǐn)慎...
監(jiān)督學(xué)習(xí)的常見應(yīng)用
2、樣本不平衡:若某個類別的樣本數(shù)量相對較少,或者不同類別的樣本分布不均衡,會導(dǎo)致模型傾向于預(yù)測大多數(shù)樣本所屬的類別,而對于少數(shù)類別的預(yù)測性能較差。在這種情況下,可以采用一些技巧,如采樣策略、類別權(quán)重調(diào)整等來處理樣本不平衡問題。3、特征選擇和處理:選取合適的特征對監(jiān)督學(xué)習(xí)的性能至關(guān)重要。
機(jī)器學(xué)習(xí)中的dropout是如何防止過擬合的?
過擬合是機(jī)器學(xué)習(xí)中的一個常見問題,但在測試數(shù)據(jù)或新數(shù)據(jù)上表現(xiàn)不佳時(shí)。這是因?yàn)槟P瓦^于復(fù)雜,而沒有學(xué)到真正的、通用的規(guī)律。為了解決這個問題,我們可以使用一種叫做dropout的技術(shù)。Dropout是一種正則化技術(shù),它在訓(xùn)練過程中隨機(jī)地“丟棄”一部分神經(jīng)元(即,將它們的輸出設(shè)置為0)。這意味著在每次...
【圖文結(jié)合】一文詳解數(shù)據(jù)不平衡問題
實(shí)際應(yīng)用中,不平衡數(shù)據(jù)的處理是數(shù)據(jù)科學(xué)領(lǐng)域常見的挑戰(zhàn)。本文總結(jié)了幾種常見的處理不平衡數(shù)據(jù)的算法,旨在幫助理解如何平衡樣本類別分布,從而優(yōu)化模型性能。首先,要了解樣本類別分布不平衡可能帶來的問題,如特征提取不足、模型過擬合等。不平衡數(shù)據(jù)主要分為大數(shù)據(jù)分布不平衡和小數(shù)據(jù)分布不平衡,針對問題的...
AI從業(yè)人員需要掌握的10大算法(方法)
3. 學(xué)習(xí)率下降:優(yōu)化過程中,調(diào)整學(xué)習(xí)率的策略,如逐步降低,有助于在訓(xùn)練初期快速學(xué)習(xí),后期精細(xì)調(diào)整權(quán)重。4. Dropout:解決深度網(wǎng)絡(luò)過擬合問題的重要手段,通過訓(xùn)練時(shí)隨機(jī)丟棄神經(jīng)元,增強(qiáng)模型泛化能力。5. 最大池化:一種下采樣技術(shù),用于減少特征維數(shù),增強(qiáng)模型的平移不變性和泛化性。6. Batch ...
《機(jī)器學(xué)習(xí)》(西瓜書)·周志華·第5章 神經(jīng)網(wǎng)絡(luò)-學(xué)習(xí)筆記
神經(jīng)網(wǎng)絡(luò)的強(qiáng)大表示能力可能導(dǎo)致過擬合問題。為緩解此問題,常用策略包括“早停”和“正則化”。早停策略通過在訓(xùn)練集和驗(yàn)證集上監(jiān)控誤差,當(dāng)訓(xùn)練集誤差下降但驗(yàn)證集誤差上升時(shí)停止訓(xùn)練。正則化策略在誤差目標(biāo)函數(shù)中添加描述網(wǎng)絡(luò)復(fù)雜度的部分,如連接權(quán)和閾值的平方和,以減少過擬合。【5.4全局最小與局部極...
數(shù)據(jù)維度爆炸5大常用的特征選擇方法
此外,基于學(xué)習(xí)模型的特征排序,如使用機(jī)器學(xué)習(xí)算法(如隨機(jī)森林)針對每個特征和響應(yīng)變量建立預(yù)測模型,根據(jù)模型的預(yù)測效果對特征進(jìn)行排序。這種方法在大規(guī)模數(shù)據(jù)處理中效率較高,但需注意模型過擬合問題與特征間的非線性關(guān)系。線性模型與正則化是另一種特征選擇策略,基于回歸模型的系數(shù)來選擇特征。正則化模型...
機(jī)器學(xué)習(xí)中樣本不平衡的處理方法
過采樣法是對訓(xùn)練集內(nèi)的少數(shù)樣本進(jìn)行擴(kuò)充,增加少數(shù)樣本使得兩類數(shù)據(jù)數(shù)目接近,然后再進(jìn)行學(xué)習(xí)。過采樣法缺點(diǎn)是雖然引入了額外的訓(xùn)練數(shù)據(jù),但沒有給少數(shù)類樣本增加任何新的信息,非常容易造成過擬合。過采樣改進(jìn)方法1:通過抽樣方法在少數(shù)類樣本中加入白噪聲(比如高斯噪聲)變成新樣本一定程度上可以緩解這個...
CV模型消化與提煉
【AlexNet】2012 ImageNet 網(wǎng)絡(luò)更深:5個卷積層 + 3個全連接層 四個網(wǎng)絡(luò)重點(diǎn):1、使用非飽和神經(jīng)元relu,代替sigmoid,速度快 2、雙GPU 3、添加了歸一化LRN(local response normalization,局部相應(yīng)歸一化)層,提高泛化能力。4、pooling overlap 過擬合解決:增強(qiáng)數(shù)據(jù):反射,旋轉(zhuǎn) 加入dropout 將圖像分...
相關(guān)評說:
津市市模塊: ______ 這肯定是出現(xiàn)了過擬合了,你可以做一下改進(jìn).1.處理一下數(shù)據(jù)集,也就是說重新劃分訓(xùn)練集和測試集2.換一個誤差檢驗(yàn)函數(shù)3.調(diào)整一下隱節(jié)點(diǎn)個數(shù)4.控制學(xué)習(xí)次數(shù)
津市市模塊: ______ 給你用一個一元情況的吧; >>x=-1:0.2:1; >>y=[0.841470984807897 -0.717356090899523 -0.564642473395035 -0.3894183423086... -0.198669330795061 0 0.198669330795061 0.38941834230865 0.564642473395035 ... 0....
津市市模塊: ______ 一是列表法.列表法就是將一組實(shí)驗(yàn)數(shù)據(jù)和計(jì)算的中間數(shù)據(jù)依據(jù)一定的形式和順序列成表格.列表法可以簡單明確地表示出物理量之間的對應(yīng)關(guān)系,便于分析和發(fā)現(xiàn)資料的規(guī)律性,也有助于檢查和發(fā)現(xiàn)實(shí)驗(yàn)中的問題,這就是列表法的優(yōu)點(diǎn).設(shè)計(jì)...
津市市模塊: ______ 摘要:實(shí)驗(yàn)結(jié)果的表示,首先取決于實(shí)驗(yàn)的物理模式,通過被測量之間的相互關(guān)系,考慮實(shí)驗(yàn)結(jié)果的表示方法.常用到數(shù)據(jù)處理方法有作圖法,列表法,平均值法,最小二乘法等.在處理數(shù)據(jù)時(shí)可根據(jù)需要和方便選擇任何一種方法表示實(shí)驗(yàn)的最...