Давайте все таки строго формализуем вопрос.
"в коде обучения нейронной сети или математической модели этого самого обучения" - как то совсем нечетко. Предположим, вы имели ввиду
"математическая модель обучения" =="алгоритм обучения сети"
"код обучения" == "программная реализация этого самого алгоритма".
Тогда задача получает строгую формулировку: "Мы запрограммировали некоторый процесс обучения. Результат не такой, как мы ожидаем. Где ошибка - в алгоритме или в коде".
И если это так, то в такой постановке задача хоть и не может быть решена с абсолютной точностью, но понятно что надо делать, что-бы дать ответ. По большому счету, она теперь ничем не отличается от обычной задачи, решаемой на этапе тестирования при разработке любого программного продукта - от игрушек до веб-сайтов.
Вариантов решения два.
Аналитический:
1. Глубинный анализ алгоритма (т.е. еще раз изучаем, что написано в той книжке, откуда мы его взяли, ведь и в книжках бывают ошибки).
1. Традиционный код-ревью.
(Ну, как тут уже пошутили - можно взвалить обе эти задачи на преподавателя :-). ).
Экспериментальный:
1. Находим и четко записываем алгоритм.
2. Даем его запрограммировать двум, трем.... чем больше-тем лучше... программистам. Получаем множество реализаций одного и того-же алгоритма.
3. Прогоняем процесс обучения сети через каждую реализацию. Сравниваем результаты с ожидаемыми.
4. Если реализации дали результаты, отличные от ожидаемых, но совпадающие между собой - ищи ошибки в алгоритме. Если реализации дали результаты, отличные от ожидаемых, но различные между собой - ищи ошибки в коде.
Но простых, "книжных" решений этой задачи - нет.