NeuroPro | нейронные сети |
|
Начало Новости Услуги Нейронные сети Программы Статьи Заметки Ссылки Вопросы и ответы Об авторе / контакты |
Мифы нашего городка. Об одном "методе" коррекции классификационной моделиПоскольку люди продолжают читать книгу [1], обсудим "технологию", приведенную на первых страницах книги. Так как начало книги написано оптимистическим языком лозунгов, то читатели, следуя за эмоциями авторов, не акцентируют внимания на вещах, к которым стоит отнестись критически. На страницах 15-16 читаем:
...мы обучали нейросеть
ставить диагноз вторичного иммунодефицита... Однако нейросеть упорно не
обучалась, причем наблюдалась любопытная закономерность: нейросеть хорошо
распознавала все до единого примеры здоровых людей, тогда как
часть примеров больных путала со здоровыми. В итоге обучение прекращалось
(т.е. нейросеть не могла научиться безошибочно распознавать все
примеры обучающей выборки - комментарий мой). Тогда был сделан следующий
шаг: каждый раз, когда сеть останавливала работу (процесс обучения заходил в
локальный минимум - комментарий
мой), из обучающей выборки автоматически убирали пример, на данный момент
самый трудный для распознавания, и после этого вновь запускался процесс обучения.
Постепенно из обучающей выборки исключилась примерно треть больных (при этом ни
одного здорового!), и только тогда сеть обучилась полностью.
Итак, пусть - соответственно класс "здоровых" и класс "больных", и последний является объединением двух непересекающихся множеств "оставшихся" и "исключенных" больных. Если классы отделяются друг от друга при обучении нейросети откорректированной классификационной модели (при классификации на три класса), то это значит, что точки множеств (здоровых и исключенных больных) имеют разные координаты в пространстве независимых признаков, и, соответственно, наличествует разделимость исходных множеств (разделимость множеств была показана нейронной сетью после исключения примеров ). Соответственно, если нейросеть не может обучиться разделять исходные классы , то надо либо структуру нейронной сети менять, либо нейросетевую программу с алгоритмами - что и можно посоветовать авторам книги.
Т.е. если классы являются разделимыми после описанной в книге процедуры коррекции классификационной модели, то они были разделимыми и исходно! Полезен ли раскритикованный метод даже при его ошибках? Думаю, нет - разделение любого класса на два подкласса всегда можно выполнить так, что эти два подкласса будут статистически достоверно отличаться друг от друга по значениям независимых признаков, поэтому значительна вероятность получить искусственное разбиение. Для получения действительно строгих статистических выводов о возможности разделения класса на подклассы надо явно использовать алгоритмы и методы кластерного анализа, а не отдавать решение в руки нейронной сети (поскольку нейрорешение будет сильно зависеть от структуры и размера нейросети). Поэтому, если сеть не обучается полному правильному распознаванию обучающей выборки, то лучше попробовать обучить нейросеть увеличенного размера (чем учить сеть с описанной процедурой исключения примеров). И если с увеличением размера сети никакого увеличения точности обучения не наблюдается, то надо явно проверить конфликтность примеров разных классов (хотя я наличие конфликтов проверяю до обучения - вычислительная сложность N2 позволяет делать это относительно быстро для баз данных менее чем с сотней тысяч примеров, а более объемные задачи встречаются гораздо реже).
Литература
|