Я не понимаю, как работают нейросети. Надо изучить вопрос.
Но генетическое скрещивание сетей - это наверное тема.
Пусть не Нобелевка, но тема... Надо подумать.
Нейросети работают достаточно просто. Уже описывавшаяся вами теория отбора.
Основа любой машины - входящие и исходящие параметры.
Человек как машина, головной мозг, спинной мозг и узлы - как блок управления.
Входящие параметры - сигналы от нервных окончаний, соединенных с частями машины.
Исходящие параметры - сигналы от системы управления - нервным окончаниям и частям машины.
Есть два пути к созданию программы управления.
Первый - шаблонный или алгоритмический.
Программист создает интерфейс с листингом всех входящих и исходящих параметров. Потом разрабатывает алгоритмы-шаблоны для каждого интересующего его случая. "Если на канал 7 пришел сигнал а34, на канал 4 пришел сигнал д7, выполнить расчет такойто, выдать на канал 9 сигнал а4, на канал 1 - сигнал в54." То есть, любое действие записано в виде шаблона. Если пришла непонятная система сигналов, для которой нет шаблона и обработчика, система или проигнорирует эти сигналы, или выдаст сообщение об ошибке(обработчик ошибок). Дополнительно используются в некоторых случаях рандомные функции для усложнения предсказания поведения системы и прочих нужд.
Это - 99% текущего ПО. От Винды до ИИ в Сталкере. От тетриса до математической модели, рассчитывающей погоду.
Второй путь - нейросеть. Появилась в результате первых осмысленных изучений принципов работы человеческого мозга(и мозгов животных - принципы теже).
Нейросеть работает также, как и мозг человека. Есть базовый набор параметров вход-выход. Есть базовая логика обработки событий(люди называют это инстинктами).
Нейросеть не программируют. Ее обучают. Точно также, как детей учат ходить или разговаривать. И алгоритмы действий при приемы группы входящих параметров формируются системой самостоятельно. На простейшей основе - да/нет, удалось или неудалось. Системе дается задание - сделать какое либо действие. С итоговым резльтатом - да удалось, нет не удалось. Система самостоятельно присваивает каждому сигналу или группе "весовую категорию", проводит расчет на основании базовой логики, выдает результат. Если после приема группы сигналов, система выдала ответную группу, и это не привело к успешному действию - это неудача. Эта обработка сигналов(весовые категории) помечается как неудачные, и отбрасываются. Следующий цикл - неудача. Отброшены. После Н циклов получены 7757 наборов, приведших к удачному действию. Задачу меняют. Теперь среди удачных идет выбор - самого быстрого действия. После 7757 циклов получены 14 самых быстрых. Задачу меняют. Определить среди 14 самых быстрых - самых экономичных по расходу энергии. После 14 циклов - 1 результат.
Итак, машина самостоятельно, с помощью учителя, научилась делать действие максимально быстро и экономично.
Возможно обучение без учителя. То есть генерация оценочной логики должна проводиться самостоятельно. Это уже "генетика" или эволюционный подход. Неудачные - умирают, удачные - выживают и передают успешный алгоритм дальше следующим поколениям. Когда успешных алгоритмов накапливается много, начинается конкуренция среди успешных алгоритмов. Идет выбор самого эффективного. Менее эффективные передают свои коды следующему поколению, но ввиду меньшей эффективности их будущее поколение меньше. Соответственно процентный вес менее успешных алгоритмов в общей популяции убывает, эффективных же - растет. Это самая простая схема, без скрещиваний, и на основе 1го алогоритма.
Сравним классический компьютер и нейросеть. На основе одного задания.
Исходное задание - сделать шаг ногой. Введены критерии оценки итоговой программы - шаг должен быть быстрым, экономичным, не смещать баланс всей системы и тп.
Компьютер:
Петя-программист взял параметры приводов "ног" роботочасти. Посчитал, какие включения, и на какую мощность необходимы. Просчитал тайминги. Прикинул как лучше шагать.
Загрузил алгоритмы, нажал старт. Посмотрел, что нога криво как то сработала. Поправил тайминги и мощности, старт - о уже лучше... Прошел месяц... Еще поправил - о вот, шаг сделан.
Все, программа для робота готова.
Нейросеть:
Коля-программист описал базовую логику - ограничение и весовых категорий сигналов(чтобы не спалить приводы например). Ввел обработку контактных датчиков, которые показывают - согнуто ли колено, не касается ли подошва земли. Поставил задачу - сделать шаг, ввел критерии выполнения задачи - контакт на начальной и конечной части с землей, продвижение роботочасти на определенное растояние.
Дальше тыкнул Старт. Нейросеть начала перебор циклов, на основе назначенных на основе базовой логики весовых категорий(рандомно, или перебором значений, или еще как либо) и споиском Н удачных результатов. Нога начала выписывать такие кренделя, что хоть стой хоть падай. Через пару месяцев нога закончила выписывать кренделя, ибо собрала Н удачных ответов.
Снова старт - теперь среди Н удачных ответов надо выполнить задание - самый быстрый шаг. Еще 2 дня - Н2 ответов готово.
Еще пару циклов постановки задачи для улучшения шага, согласно критериев оценки итоговой программы - из удачных выбран самый лучший шаг.
Программа для робота готова.
Итог сравнения. И там и там оценка выполняется человеком. Но в первом случае человек сам говорит ноге что делать, сам считает и решает как сделать шаг эффективным и тп. Во втором - человек только оценивает результаты, а система сама предлагает ему наборы решений. И результат второго процесса выдаст самое лучшее движение. Результативность же первого будет зависеть только от человека, его прилежности, точности, решений и тп. И во многих случаях ответ второй системы превзойдет ответ первой.
З.Ы. Это наиболее упрощенное описание. Еще проще было когда то описано в одной познавательной нгаучно-популярной книге, про механизмы самообучения и выбор лучших. Там в качестве примера использовалась псевдо игра на поле 3 на 3 "в пешки". В качестве обучаемой машины - коробки от спичек и цветные фишки... Дома поищу, она у меня где то лежит.
Совсем забыл описать одну вещь.
В чем отличие собственно нейросети от обычного компа, и почему все компы еще не поголовно самообучаемые.
Нейросеть копирует работу человеческого мозга. Казалось бы странно - процессоры работают на частотах в гигагерцы, а человеческие нейроны обмениваются данными электрохимическим путем со смешными частотами в районе 20 герц. И при этом мы эффективнее. Причина - в разнице структур.
Нейросеть можно сравнить с сервером, состоящих из множеста процессоров, каждый со своим маленьким винтом, маленькой ОЗУ и собственной операционной системой. Человеческий мозг содержит до 10 миллиардов таких процессоров, именуемых нейронами.
Входящий сигнал с какого либо направления приходит по кабелю(нерву) в первый нейрон нейросети. на основе своей мини опреционки, нейрон проводит расчет . И, в зависимости от результата и базовой логики, отправляет переработанный сигнал по одному из выходных каналов. Следующий нейтрон обрабатывает сигнал и снова пересылает. И так до достижения выходного нейрона, который отправляет сигнал(который уже комманда к действию в кабель(нерв) на исполнение.
Базовая логика формируется в нейронах эволюционно(в машинах аналогах - закладывается пока руками людей). Удачная логика, приводящая к удачной цепи нейронов сохраняется, неудачная - удаляется.
Огромный вклад в наше быстродействие вкладывает мультизадачность. В системе нейросети параллельно обрабатываются огромное число сигналов, как и отдельных, так и взаимно связанных. Задействованы в паралельном режиме сотни тысяч цепей.
Если бы человеческий мозг не использовал ионные каналы и медиаторы, а как машина использовал только электрические сигналы... За недельку бы можно было выучить и понять всю квантовую физику...
I like PK. I like UO.