Я новичок в машинном обучении и нейронных сетях. Я пытаюсь провести классификацию текста с помощью нейронной сети с нуля. В моем наборе данных 7500 документов, каждый из которых помечен одним из семи классов. Всего около 5800 уникальных слов. Я использую один скрытый слой с 4000 нейронами. Использование сигмоида для функции активации. Уровень обучения = 0,1, отсев нет.
Во время тренировки Примерно через 2–3 эпохи отображается предупреждение:
RuntimeWarning: в exp обнаружено переполнение. Результирующий выходной список выглядит следующим образом:
[ 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00
0.00000000e+00 0.00000000e+00 4.11701866e-10] for every input except 4.11701866e-10.
сигмовидная функция:
def sigmoid(x):
output = 1/(1+np.exp(-x))
return output
def sigmoid_output_to_derivative(output):
return output*(1-output)
Как это исправить? Могу ли я использовать другую функцию активации?
Вот мой полный код: https://gist.github.com/coding37/a5705142fe1943b93a8cef4988b3ba5f