5.1 整合學習方法
在機器學習中的整合學習可以在一定程度上提高**精度,常見的整合學習方法有stacking、bagging和boosting,同時這些整合學習方法與具體驗證集劃分聯絡緊密。
下面假設構建了10折交叉驗證,訓練得到10個cnn模型。
那麼在10個cnn模型可以使用如下方式進行整合:
加入dropout後的網路結構如下:
# 定義模型
class
svhn_model1
(nn.module)
:def
__init__
(self)
:super
(svhn_model1, self)
.__init__(
)# cnn提取特徵模組
self.cnn = nn.sequential(
nn.conv2d(3,
16, kernel_size=(3
,3), stride=(2
,2))
, nn.relu(),
nn.dropout(
0.25),
nn.maxpool2d(2)
, nn.conv2d(16,
32, kernel_size=(3
,3), stride=(2
,2))
, nn.relu(),
nn.dropout(
0.25),
nn.maxpool2d(2)
,)# self.fc1 = nn.linear(32*
3*7,
11)self.fc2 = nn.linear(32*
3*7,
11)self.fc3 = nn.linear(32*
3*7,
11)self.fc4 = nn.linear(32*
3*7,
11)self.fc5 = nn.linear(32*
3*7,
11)self.fc6 = nn.linear(32*
3*7,
11)defforward
(self, img)
:
feat = self.cnn(img)
feat = feat.view(feat.shape[0]
,-1)
c1 = self.fc1(feat)
c2 = self.fc2(feat)
c3 = self.fc3(feat)
c4 = self.fc4(feat)
c5 = self.fc5(feat)
c6 = self.fc6(feat)
return c1, c2, c3, c4, c5, c6
5.2.2 tta
測試集資料擴增(test time augmentation,簡稱tta)也是常用的整合學習技巧,資料擴增不僅可以在訓練時候用,而且可以同樣在**時候進行資料擴增,對同乙個樣本**三次,然後對三次結果進行平均。
def
predict
(test_loader, model, tta=10)
: model.
eval()
test_pred_tta =
none
# tta 次數
for _ in
range
(tta)
: test_pred =
with torch.no_grad():
for i,
(input
, target)
inenumerate
(test_loader)
: c0, c1, c2, c3, c4, c5 = model(data[0]
) output = np.concatenate(
[c0.data.numpy(
), c1.data.numpy(),
c2.data.numpy(
), c3.data.numpy(),
c4.data.numpy(
), c5.data.numpy()]
, axis=1)
test_pred = np.vstack(test_pred)
if test_pred_tta is
none
: test_pred_tta = test_pred
else
: test_pred_tta += test_pred
return test_pred_tta
在本章中我們講解了深度學習模型做整合學習的各種方法,並以此次賽題為例講解了部分**。以下幾點需要同學們注意:
整合學習只能在一定程度上提高精度,並需要耗費較大的訓練時間,因此建議先使用提高單個模型的精度,再考慮整合學習過程;
具體的整合學習方法需要與驗證集劃分方法結合,dropout和tta在所有場景有可以起作用。
Task5 模型整合
1.整合學習方法 假設你有許多基礎分類器 簡單的分類規則 則組合 這些分類規則可能是乙個好主意,可能會比單個規則獲得 更高的精度 選擇基礎分類器時候往往主要考慮的是其簡單性,而非精 度 基礎分類器應該對總體中的一部分不同個體是精確的,他 們組合起來可以有效處理所有個體 即互為補充 基礎分類器之間的差...
Task5 模型整合
在機器學習中的整合學習可以在一定程度上提高 精度,常見的整合學習方法有stacking bagging和boosting,同時這些整合學習方法與具體驗證集劃分聯絡緊密。由於深度學習模型一般需要較長的訓練週期,如果硬體裝置不允許建議選取留出法,如果需要追求精度可以使用交叉驗證的方法。下面假設構建了10...
Task5 模型整合
整合學習方法 假設你有許多基礎分類器 簡單的分類規則 則組合 這些分類規則可能是乙個好主意,可能會比單個規則獲得 更高的精度 選擇基礎分類器時候往往主要考慮的是其簡單性,而非精 度 基礎分類器應該對總體中的一部分不同個體是精確的,他 們組合起來可以有效處理所有個體 即互為補充 基礎分類器之間的差異 ...