Проблемы построения классификатора структурированных данных

#python #tensorflow #machine-learning #keras #neural-network

Вопрос:

Я пытался построить базовый макет структурированного классификатора данных только с 1 сигмоидной единицей, так что, по-моему, в основном логистическая регрессия. Все работало хорошо, пока я не приступил к тренировкам, когда точность просто остановилась и осталась прежней.

 X = np.array([[1,3],[2,4],[3,5]])
Y = np.array([1,0,1])
Y = Y.reshape(3,1)

model = tf.keras.Sequential([
    tf.keras.layers.Dense(1, activation='sigmoid')
])

model.compile(optimizer='adam',
              loss=tf.keras.losses.BinaryCrossentropy(),
              metrics=['accuracy'])

model.fit(X, Y, epochs=10)

Epoch 1/10
1/1 [==============================] - 0s 364ms/step - loss: 2.6870 - accuracy: 0.3333
Epoch 2/10
1/1 [==============================] - 0s 4ms/step - loss: 2.6825 - accuracy: 0.3333
Epoch 3/10
1/1 [==============================] - 0s 4ms/step - loss: 2.6780 - accuracy: 0.3333
Epoch 4/10
1/1 [==============================] - 0s 5ms/step - loss: 2.6734 - accuracy: 0.3333
Epoch 5/10
1/1 [==============================] - 0s 4ms/step - loss: 2.6689 - accuracy: 0.3333
Epoch 6/10
1/1 [==============================] - 0s 9ms/step - loss: 2.6644 - accuracy: 0.3333
Epoch 7/10
1/1 [==============================] - 0s 4ms/step - loss: 2.6599 - accuracy: 0.3333
Epoch 8/10
1/1 [==============================] - 0s 5ms/step - loss: 2.6553 - accuracy: 0.3333
Epoch 9/10
1/1 [==============================] - 0s 7ms/step - loss: 2.6508 - accuracy: 0.3333
Epoch 10/10
1/1 [==============================] - 0s 5ms/step - loss: 2.6463 - accuracy: 0.3333
 

Ответ №1:

Ваша модель не способна соответствовать вашим данным
, ваши данные выглядят примерно так
График данных

Невозможно подогнать сигмовидную кривую к этим данным с точностью более 33,33%
. Вот почему ваша модель не способна достичь точности более 33,33%
. Поэтому, если вы увеличите размер модели, вы достигнете более высокой точности с помощью своей модели

Комментарии:

1. Да, но разве точность по-прежнему не будет немного колебаться и не сможет достичь локального минимума в первую эпоху ?

2. На самом деле, 33,33% — это не максимальная достигнутая точность. Попробуйте обучить модель большему количеству эпох (возможно, 200-300), и вы увидите, что точность действительно подскочит до 66,66%.