Pull to refresh

Comments 19

Мне интересно мнение на счет ИДЕИ, именно от этого будет зависеть дальнейшая судьба проекта.
Идея сделать что-то лучше, чем было — всегда хорошо, особенно если оно будет бесплатно и общедоступно.
Если оно чем-то кончится, то будет интересная статья, а сейчас это больше похоже на набросок в блокноте на тему как оно будет. С нетерпением жду итога.
Сейчас проект в форме пустого каркаса который правильно добавляет/изменяет/удаляет любой из элементов сети, но сами элементы логической нагрузки не несут :), жду мнения на счет 3-х необходимых условий, их внедрить дело 5-10 минут…
3 самых главных условия для ИИ уже высказывал Айзек Азимов, остальное на твой вкус. Если же по сути, то логичнее было бы пойти в q&a и просить совета там.
Кстати последняя статья в источниках имеет теоретическое описание, которое я собираюсь проверить на практике, хоть это и кажеться безумием (:
По какому условию создается новая связь и/или как выбирается от какого нейрона до какого она будет вести

ИМХО, связи должны строиться по кратчайшему пути. Представим, что нейроны в одном слое — это как тетрадный лист в клетку. Перекрестие каждой линии клетки — нейрон. Т.е. потенциально он может иметь связь с одним из 8 окружающих его нейронов (с учетом диагональных соединений).
Например мы имеем сетку-слой из 3х3 нейрона и надо построить маршрут: левый верхний -> правый нижний. Если все нейроны свободны, то лучший путь: левый верхний -> центральный -> правый нижний. А вот если бы центральный уже имел связь с нижним средним, то лучший путь будет такой: левый верхний -> центральный -> средний нижний -> правый нижний.
Т.о. выбор до какого нейрона строить делается в два этапа:
1. Путь от начальной точки до конечной без учета существующих связей — напрямую, так сказать.
2. Корректировка построенного в п.1 пути с учетом уже существующих связей.
На сколько я знаю, вы правы, но самое главное это — «Например мы имеем сетку-слой из 3х3 нейрона и надо построить маршрут» вот как определить, что его НАДО построить? (: вот в чем вся соль.
ЗЫЖ Есть некоторые соображения по поводу создания-
Допустим есть нейрон к которому ведет целая куча связей +по ним идут различные данные и нейрон все время выдает различную инфу значение отличаеться, скажем, ~на 40%, для его разгрузки создаем дополнительный нейрон рядом с ним и половину связей(приходящих с 1-ого слоя) с 1-ого перекидываем на 2-ой, а выход будет тот же, что и у первого.
Жду независимого мнения.
Появится забота с балансировкой нагрузки между этими двумя нейронами. Но! Есть вариант обхода:
Например один нейрон перегружен, и мы создали его клон — т.е. разбили нагрузку на два одинаковых нейрона. Допустим мы умеем балансировать нагрузку между ними. Наступает момент когда нагрузка на этих двух будет снова предельна — создаем третий клон.
Вот тут я предлагаю хитрость: объединим эти 2 (или 3 или N) нейрона в «опухоль» :) — т.е. для построения путей будет использоваться не на первый нейрон, а «опухоль» внутри которой нагрузка балансируется между нейронами в ней.
Так ответ в моем первом пункте — сначала мы считаем, что никаких связей не существует и прокладываем маршрут максимально короткий — напрямую. Т.е. определяем какие нейроны будут в нем участвовать, а вот вторым этапом корректируем наш путь исходя из уже существующих связей, и если нужной связи нет — строим. Так и понимаем какие связи надо построить для осуществления всего пути.
Как побочный эффект: сначала путь будет строится долго — надо построить связи между всеми нейронами на нашем пути, а вот чем большей связей тем быстрее строится очередной путь — ведь часть пути уже существует
простите, промахнулся веткой комментариев.
И опять же, как определить, что связь НУЖНА, строить кратчайший маршрут можно без проблем и дополнять его кратчайшим маршрутом от одного до другого это тоже просто, но как узнать, что это нужно сделать (вопрос скорее логический, нежели технический)
Связь нужна если:
1. Кратчайший путь проходит через эту пару нейронов
И
2. У этой пары нейронов еще нет связи ни с кем.

И всё.

Если у (например) конечного нейрона уже есть связь с другим нейроном, что маршрут который мы сейчас строим конечную точку поменяет на тот с которым уже есть связь у конечного нейрона и снова повторяемся — если у нового конечного нейрона уже есть связь — конечный нейрон нашего пути меняется на тот с кем эта связь… и так пока не доберемся до того с кем связи нет и тогда смотрим какой сосед (без связей) подходит для построения кратчайшего пути — с именно с ним строим связь.
И кстати, я бы сделал у нейронов одну горизонтальную связь — к нейрону в своем слое, и одну вертикальную связь — к нейрону верхнего/нижнего слоя. Тогда пути могли бы строится еще и по слоям.
Т.е. если мы имеем два слоя 3*3 и верхний левый имеет связь со вторым слоем и правый нижний имеет связь со вторым слоем, а путь в своем слое из-за существующих связей гораздо длинее, чем путь через второй слой — можно и так пути строить.
Я изначально тоже так же хотел сделать, но с появлением потоков и неограниченным колличеством слоев это крайне затруднительно…
1 выходных слоев может быть несколько так же как и входных +слои могут распологаться крест-накрест между собой и значения выходного слоя могут зависеть как от входного слоя расположенного по диагонали, так и от входного слоя расположенного над выходным и проходящего через центральный…
Както так…
Sign up to leave a comment.

Articles