質問編集履歴

7

追記

2022/07/10 06:18

投稿

harug
harug

スコア28

test CHANGED
File without changes
test CHANGED
@@ -194,7 +194,14 @@
194
194
  jupyter lab 2.3.2
195
195
 
196
196
  ---
197
- ##### 追記
197
+ ##### 追記1
198
198
  バッチサイズを128に増やした結果です.
199
199
 
200
200
  ![バッチサイズ:128](https://ddjkaamml8q8x.cloudfront.net/questions/2022-07-07/fc52458c-9181-4d1e-a0ba-15c08308bb77.jpeg)
201
+
202
+ ---
203
+ ##### 追記2
204
+ バッチサイズを32にした結果です.
205
+ データ数は約7万にし,同じクラス・違うクラスでほぼ同じ割合でペアを作成しています.
206
+
207
+ ![バッチサイズ:32, データ数:約7万](https://ddjkaamml8q8x.cloudfront.net/questions/2022-07-10/38455d95-10ce-4290-926b-2dbf6994ca8c.png)

6

追記

2022/07/07 08:25

投稿

harug
harug

スコア28

test CHANGED
File without changes
test CHANGED
@@ -193,3 +193,8 @@
193
193
 
194
194
  jupyter lab 2.3.2
195
195
 
196
+ ---
197
+ ##### 追記
198
+ バッチサイズを128に増やした結果です.
199
+
200
+ ![バッチサイズ:128](https://ddjkaamml8q8x.cloudfront.net/questions/2022-07-07/fc52458c-9181-4d1e-a0ba-15c08308bb77.jpeg)

5

セクション名変更

2022/07/06 03:28

投稿

harug
harug

スコア28

test CHANGED
File without changes
test CHANGED
@@ -1,4 +1,4 @@
1
- ### 前提
1
+ ### 質問内容
2
2
  機械学習の学習精度が上がらず困っています.
3
3
 
4
4
  実験環境は以下の通りです.

4

追加

2022/07/06 03:27

投稿

harug
harug

スコア28

test CHANGED
File without changes
test CHANGED
@@ -3,7 +3,7 @@
3
3
 
4
4
  実験環境は以下の通りです.
5
5
 
6
- - モデル構造やその他関数:[こちら](https://cpp-learning.com/siamese-network/)を参考にしました.
6
+ - モデル構造やその他関数:[こちら](https://cpp-learning.com/siamese-network/)を参考にしました(ベースネットワークはCNNに変更↓).
7
7
  - 入力画像サイズ:128×64(縦×横)
8
8
  - 訓練データ数:約90万ペアの画像(MNISTではない)を使用.
9
9
  - 検証用データ数:約6万ペア
@@ -11,6 +11,70 @@
11
11
  - エポック:100
12
12
 
13
13
 
14
+ 変更したCNNのモデル構造です.
15
+ ```python
16
+ model = models.Sequential()
17
+
18
+ weight_decay = 1e-4
19
+
20
+ model.add(
21
+ layers.Conv2D(
22
+ filters=64,
23
+ kernel_size=(3, 3),
24
+ input_shape=(height, width, 1),
25
+ padding='same',
26
+ kernel_regularizer=regularizers.l2(
27
+ weight_decay),
28
+ activation='relu'
29
+ ))
30
+
31
+
32
+ model.add(
33
+ layers.Conv2D(
34
+ filters=32,
35
+ kernel_size=(3, 3),
36
+ padding='same',
37
+ kernel_regularizer=regularizers.l2(
38
+ weight_decay),
39
+ activation='relu'
40
+ ))
41
+
42
+
43
+ model.add(
44
+ layers.MaxPooling2D(
45
+ pool_size=(2, 2)))
46
+
47
+
48
+ model.add(
49
+ layers.Conv2D(
50
+ filters=16,
51
+ kernel_size=(3, 3),
52
+ padding='same',
53
+ kernel_regularizer=regularizers.l2(
54
+ weight_decay),
55
+ activation='relu'
56
+ ))
57
+
58
+
59
+ model.add(
60
+ layers.MaxPooling2D(
61
+ pool_size=(2, 2)))
62
+
63
+
64
+ model.add(layers.Dropout(0.4))
65
+
66
+
67
+ model.add(layers.Flatten())
68
+
69
+
70
+ model.add(
71
+ layers.Dense(
72
+ 128,
73
+ activation='relu'))
74
+
75
+ ```
76
+
77
+ ------------------------
14
78
  次に示すものが,60エポックまでを実行した結果になります.
15
79
  まだ,100エポックまでは学習できていないのですが,明らかにおかしな結果となっているため質問させていただきます.
16
80
 

3

省略

2022/07/06 03:14

投稿

harug
harug

スコア28

test CHANGED
File without changes
test CHANGED
@@ -104,32 +104,9 @@
104
104
  28203/28203 [==============================] - 922s 33ms/step - loss: 0.9586 - accuracy: 0.0410 - val_loss: 0.9604 - val_accuracy: 0.0393
105
105
  Epoch 44/100
106
106
  28203/28203 [==============================] - 939s 33ms/step - loss: 0.9586 - accuracy: 0.0410 - val_loss: 0.9604 - val_accuracy: 0.0393
107
+
107
- Epoch 45/100
108
+ (同じ結果なので省略)
108
- 28203/28203 [==============================] - 914s 32ms/step - loss: 0.9586 - accuracy: 0.0410 - val_loss: 0.9604 - val_accuracy: 0.0393
109
+
109
- Epoch 46/100
110
- 28203/28203 [==============================] - 933s 33ms/step - loss: 0.9586 - accuracy: 0.0410 - val_loss: 0.9604 - val_accuracy: 0.0393
111
- Epoch 47/100
112
- 28203/28203 [==============================] - 922s 33ms/step - loss: 0.9586 - accuracy: 0.0410 - val_loss: 0.9604 - val_accuracy: 0.0393
113
- Epoch 48/100
114
- 28203/28203 [==============================] - 927s 33ms/step - loss: 0.9586 - accuracy: 0.0410 - val_loss: 0.9604 - val_accuracy: 0.0393
115
- Epoch 49/100
116
- 28203/28203 [==============================] - 934s 33ms/step - loss: 0.9586 - accuracy: 0.0410 - val_loss: 0.9604 - val_accuracy: 0.0393
117
- Epoch 50/100
118
- 28203/28203 [==============================] - 922s 33ms/step - loss: 0.9586 - accuracy: 0.0410 - val_loss: 0.9604 - val_accuracy: 0.0393
119
- Epoch 51/100
120
- 28203/28203 [==============================] - 865s 31ms/step - loss: 0.9586 - accuracy: 0.0410 - val_loss: 0.9604 - val_accuracy: 0.0393
121
- Epoch 52/100
122
- 28203/28203 [==============================] - 935s 33ms/step - loss: 0.9586 - accuracy: 0.0410 - val_loss: 0.9604 - val_accuracy: 0.0393
123
- Epoch 53/100
124
- 28203/28203 [==============================] - 932s 33ms/step - loss: 0.9586 - accuracy: 0.0410 - val_loss: 0.9604 - val_accuracy: 0.0393
125
- Epoch 54/100
126
- 28203/28203 [==============================] - 919s 33ms/step - loss: 0.9586 - accuracy: 0.0410 - val_loss: 0.9604 - val_accuracy: 0.0393
127
- Epoch 55/100
128
- 28203/28203 [==============================] - 922s 33ms/step - loss: 0.9586 - accuracy: 0.0410 - val_loss: 0.9604 - val_accuracy: 0.0393
129
- Epoch 56/100
130
- 28203/28203 [==============================] - 934s 33ms/step - loss: 0.9586 - accuracy: 0.0410 - val_loss: 0.9604 - val_accuracy: 0.0393
131
- Epoch 57/100
132
- 28203/28203 [==============================] - 901s 32ms/step - loss: 0.9586 - accuracy: 0.0410 - val_loss: 0.9604 - val_accuracy: 0.0393
133
110
  Epoch 58/100
134
111
  28203/28203 [==============================] - 932s 33ms/step - loss: 0.9586 - accuracy: 0.0410 - val_loss: 0.9604 - val_accuracy: 0.0393
135
112
  Epoch 59/100

2

枚→ペア

2022/07/06 03:09

投稿

harug
harug

スコア28

test CHANGED
File without changes
test CHANGED
@@ -5,8 +5,8 @@
5
5
 
6
6
  - モデル構造やその他関数:[こちら](https://cpp-learning.com/siamese-network/)を参考にしました.
7
7
  - 入力画像サイズ:128×64(縦×横)
8
- - 訓練データ数:約90万の画像(MNISTではない)を使用.
8
+ - 訓練データ数:約90万ペアの画像(MNISTではない)を使用.
9
- - 検証用データ数:約6万
9
+ - 検証用データ数:約6万ペア
10
10
  - バッチサイズ:32
11
11
  - エポック:100
12
12
 

1

変更

2022/07/06 03:07

投稿

harug
harug

スコア28

test CHANGED
File without changes
test CHANGED
@@ -3,12 +3,12 @@
3
3
 
4
4
  実験環境は以下の通りです.
5
5
 
6
+ - モデル構造やその他関数:[こちら](https://cpp-learning.com/siamese-network/)を参考にしました.
6
7
  - 入力画像サイズ:128×64(縦×横)
7
8
  - 訓練データ数:約90万枚の画像(MNISTではない)を使用.
8
9
  - 検証用データ数:約6万枚
9
10
  - バッチサイズ:32
10
11
  - エポック:100
11
- - モデル構造やその他関数:[こちら](https://cpp-learning.com/siamese-network/)を参考にしました.
12
12
 
13
13
 
14
14
  次に示すものが,60エポックまでを実行した結果になります.