OLD-idmessage-102609

#1919698
Finder
Участник

Я понял, что Вы говорите о Хусаинове. Хороший дядька, главное умный но немного странный поэтому студенты его поначалу не понимают. А вообще в этой голове вертятся гениальные мысли. Если ему все вовремя сдавать и не хамить, то проблем не будет.Желание сделать самому – это похвально. ИНС это несложно, только не тривиально. Зато полная свобода действий. 1. Получение и нормирование выборок.2. Построение сети.3. Обучение.
1. Получение выборок зависит от того, что Вы делаете, думаю с этим вопросом не возникнте. Нормирование. Как хотите так и нормируйте. Главное, чтоб все выборки были одинаковой длинны, нормированы по амплитуде, поступали на большое количество входов ИНС, маленькая информационная нагрузка на один вход, чтоб небыло лишней инормации, желательно, чтоб значения в выборках не сдвигались относительно входов ИНС (сеть этого не любит, и плохо обучается), т.е. один вход должен все время обслуживать например один пиксель.
2. Построение сети. Определитесь со структурой (например слоистая – это классика а можно полносвязную). Мое личное мнение, что из полносвзяной сети, можно получить любую в роцессе обучения, только процесс обучения усложняется на порядки. Главное универсальность, если делаете слоистую, то предусмотрите возможность любого количества слоев, входов, нейронов, выходов, и произвольную активационную функцию с произвольными коэффициентами. Работа сети -помоему все просто, один нейрон работает совсем несложно, главное разобрать каким нейронам “разсылать” результат его работы. Лучше не заморачивайтесь с классом сеть->слой->нейрон->вес. Лучше делайте все в матричном виде, т.е. в виде нескольких массивов. Все эти красивые картинки нейронов, с синапсами, и аксонами для начинающих с целью понимания работы. Сама работа сети проста на примере 2 нейронов в двух слоях, а далее просто размножаем эту идею на 4 слоя и по 100 нейронов в каждом (например). Можно замутить трапецивидную, слоистую сеть.
3. Обучение. А вот тут начинается самое интересное! Нетривиальный головняк! Главное понять суть и смысл. Типа сеть это функция с милионом аргументов, нужно найти ее минимум, желательно глобальный. Это Ваша цель. Достигать ее можно любым способом. Если Вы придумаете свой новый и эффектинвый способ, то продвините ИНС вперед. Для слоистых сетей – метод обратного распостранения ошибки (Back Propagation) – классика. Агрессивный математический метод, частный случай метода градиентного спуска. Я начинал с него (успешно), но мне он не нравится, этон е естественно и не спортинво! (ни думаю, что у нас в голове работает Back Propagation) Есть еще гинетические алгоритмы, метод эмитации отжига, метод случайного тыка плюс угроза какой-то матерью и танцы с бубном вокруг (иногда помогает).Дерзайте.