回答編集履歴

7

一部修正

2021/10/10 00:27

投稿

toast-uz
toast-uz

スコア3266

test CHANGED
@@ -6,7 +6,7 @@
6
6
 
7
7
 
8
8
 
9
- - データを増やす。 *データ拡張を含む(画像解析ではデータ拡張は常識的な手法)
9
+ - データを増やす。 *データ拡張を含む(画像解析におけるデータ拡張は常識的な手法)
10
10
 
11
11
  - モデルを単純化する(与えられた問題やデータに対して、モデルが複雑すぎる)。
12
12
 

6

一部修正

2021/10/10 00:26

投稿

toast-uz
toast-uz

スコア3266

test CHANGED
@@ -6,7 +6,7 @@
6
6
 
7
7
 
8
8
 
9
- - データを増やす。 *データ拡張を含む
9
+ - データを増やす。 *データ拡張を含む(画像解析ではデータ拡張は常識的な手法)
10
10
 
11
11
  - モデルを単純化する(与えられた問題やデータに対して、モデルが複雑すぎる)。
12
12
 
@@ -14,7 +14,7 @@
14
14
 
15
15
  - 大量の類似分野のデータで学習済のモデルを元に、転移学習やファインチューニングをする。
16
16
 
17
- - BatchNormalizationを活用する。
17
+ - BatchNormalizationを活用する。 *簡単に効果を得やすい
18
18
 
19
19
  - Dropoutを活用する。 *BNに対して効果は低く、補完程度の役割
20
20
 

5

一部修正

2021/10/10 00:25

投稿

toast-uz
toast-uz

スコア3266

test CHANGED
@@ -10,7 +10,7 @@
10
10
 
11
11
  - モデルを単純化する(与えられた問題やデータに対して、モデルが複雑すぎる)。
12
12
 
13
- - データの汎用的な特徴を表現する特徴量選択を工夫したり、モデルを見直したりする。 *ResNetもその1つ
13
+ - データの汎用的な特徴を捉えられように、特徴量選択を工夫したり、モデルを見直したりする。 *ResNetもその1つ
14
14
 
15
15
  - 大量の類似分野のデータで学習済のモデルを元に、転移学習やファインチューニングをする。
16
16
 

4

一部修正

2021/10/10 00:23

投稿

toast-uz
toast-uz

スコア3266

test CHANGED
@@ -6,7 +6,7 @@
6
6
 
7
7
 
8
8
 
9
- - データを増やす。 *後述するデータ拡張など
9
+ - データを増やす。 *データ拡張を含む
10
10
 
11
11
  - モデルを単純化する(与えられた問題やデータに対して、モデルが複雑すぎる)。
12
12
 
@@ -46,16 +46,6 @@
46
46
 
47
47
 
48
48
 
49
- これでも十分な結果だと思いますが、さらに精度を上げるには、以下のような打ち手が一般的ですので、試してみてください。
50
-
51
-
52
-
53
- - データ拡張
54
-
55
- - ResNetモデルの転移学習やファインチューニング
56
-
57
-
58
-
59
49
  最後に試したコードを示します。Colabで実行していますが、TPUを利用しているため、質問者様のコードからだいぶ変わっていると思います。
60
50
 
61
51
 

3

補足追記

2021/10/10 00:21

投稿

toast-uz
toast-uz

スコア3266

test CHANGED
@@ -2,6 +2,26 @@
2
2
 
3
3
 
4
4
 
5
+ 過学習の対策としては、以下が推奨されます。
6
+
7
+
8
+
9
+ - データを増やす。 *後述するデータ拡張など
10
+
11
+ - モデルを単純化する(与えられた問題やデータに対して、モデルが複雑すぎる)。
12
+
13
+ - データの汎用的な特徴を表現する特徴量選択を工夫したり、モデルを見直したりする。 *ResNetもその1つ
14
+
15
+ - 大量の類似分野のデータで学習済のモデルを元に、転移学習やファインチューニングをする。
16
+
17
+ - BatchNormalizationを活用する。
18
+
19
+ - Dropoutを活用する。 *BNに対して効果は低く、補完程度の役割
20
+
21
+ - 正則化する。 *古い教科書には記述されているが、ほぼ絶滅した手法
22
+
23
+
24
+
5
25
  Cifar10のデータセットから5クラスを取り出して、質問者様のモデルを訓練してみました。
6
26
 
7
27
 

2

一部修正

2021/10/10 00:19

投稿

toast-uz
toast-uz

スコア3266

test CHANGED
@@ -1,3 +1,7 @@
1
+ 結論としては、BatchNormalizationを適用するとうまくいくと思います。
2
+
3
+
4
+
1
5
  Cifar10のデータセットから5クラスを取り出して、質問者様のモデルを訓練してみました。
2
6
 
3
7
 
@@ -10,7 +14,7 @@
10
14
 
11
15
 
12
16
 
13
- 結果はこちらです。
17
+ 結果はこちらです。質問者様と異なるデータセットを使っていますので、参考程度にしてください。
14
18
 
15
19
 
16
20
 

1

一部修正

2021/10/09 04:16

投稿

toast-uz
toast-uz

スコア3266

test CHANGED
@@ -58,17 +58,13 @@
58
58
 
59
59
  num = 5
60
60
 
61
- X_train = x_train[y_train[:,0] < num]
61
+ X_train = x_train[y_train[:,0] < num].astype('float32') / 255.0
62
62
 
63
63
  y_train = to_categorical(y_train[y_train[:,0] < num], num).astype('float32')
64
64
 
65
- X_test = x_test[y_test[:,0] < num]
65
+ X_test = x_test[y_test[:,0] < num].astype('float32') / 255.0
66
66
 
67
67
  y_test = to_categorical(y_test[y_test[:,0] < num], num).astype('float32')
68
-
69
- x_train = x_train.astype('float32') / 255.0
70
-
71
- x_test = x_test.astype('float32') / 255.0
72
68
 
73
69
 
74
70