×

Фреймворк для нейронных сетей

Усі статті, обговорення, новини про AI — в одному місці. Підписуйтеся на DOU | AI!

Здравствуйте.
Я хочу рассказать Вам о фремвёрке для создания нейронных сети, который я разрабатываю.

Введение.
Здесь будет абзац про историю и концепции.
Когда я учился в университете, я узнал, что алгоритмы нейронных сетей появились как абстракция от новых знаний(на то время) в области нейробиологии в 1970-х годах.
Это было отсительно простые алгоритмы, но даже такой алгоритм позволял распознавать объекты на картинке. Я решил создать инструмент, позволяющий разрабатывать более сложные и приближенные к реальным алгоритмам нейронных сети.

Особенности.
Основное отличие моего инструмента от других заключается в том, что нейрон может обрабатывать сигналы различного типа. Эта функция позволяет реализовать обучения посредством обмена сигналами сигналов, сложную логику обработки и так далее.

Цель.
Цель довольно понятна, дать сообществу возможность создавать настоящий ИИ.

Как вы думаете, это может быть интересно?
Вы можете загрузить рабочую концепцию отсюда github.com/...​uronnet/tree/scope/phase1.
Описание проекта github.com/...​ob/scope/phase1/README.md
Как запустить github.com/...​/phase1/TestPlanPhase1.md

Благодарю за Ваше внимание.

👍ПодобаєтьсяСподобалось0
До обраногоВ обраному0
LinkedIn
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Я хочу рассказать Вам о фремвёрке для создания нейронных сети, который я разрабатываю.

Если оно не использует GPU(CUDA/OpenCL) то можно закапывать так как не имеет ни малейшего практического смысла. Времена CPU вычислений для нейронок прошли.

Вот вам биндинги на OpenCL, работает везде но хорошо только на AMD, Intel, мобильном оборудовании. На Nvidia работает, но плохо. Просколить до Java
streamhpc.com/...​velopers/opencl-wrappers

вроде в нейронных сетях понятие сигнала достаточно абстрактное...В общем случае подразумеваются скорее входные и выходные. Я так понимаю, что речь идет о распознавании сигналов.Распознавание сигналов можно использовать в радиолокации для идентификации объектов, для задач принятия решений, медицине и во многих других областях.Исходя из всего вышеописанного

Аналоговые и цифровые.

это лишь частный случай для конкретной предметной области.

Попробуй стучать по бороде. У меня иногда от чтения полетов мысли дарований даже ку получается.

Отличный пример аналогового сигнала

Попробуй стучать по бороде.

Отличный пример аналогового сигнала.

Хлопці как по мне лучше математику на языке Це писать, а потом прикручивать, например на жабу. Есть один недостаток пальцы можно поломать когда будеш реализовывать. Еще вариант писать на языке R или Rust, не пробовал, если кто пробовал отпишитесь...Но будет гораздо быстрее чем на жабе реализации, особенно циклические операции по перебору различных сценариев ...

Тоже удивили...Вы это сначала попробуйте, потом будете говорить!Штука называется С++ AMP. В MSDN найдете. Позволяет перекинуть часть (или все) вычисления на процессор видеокарты. Посмотрите, потом другим расскажите...Чувак с Microsoft посоветовал для реализации подобных вещей...Я только думаю, что на Rust по круче получится...Но это надо пробовать...

Гля, еще ктот помнит это заклинание )

С вот этим вот перекидыванием части вычислений на процессор видеокарты иногда на мобильных девайсах встречается проблемка. Если в фоне кодится/декодится видеопоток то внезапно оказывается, что енкодер/декодер очень так себе ничего именно ее родимую и использует. И возникают внезапно интересные сайдэффекты.

Так на этой кривизне и зарабатываем жеж. Добавляя свою )

и в енкодерах с декодерами тож.

Це може бути корисно лише вам, щоб зрозуміти, як це працює.
А взагалі вже повно перевірених часом фреймворків, які дозволяють реалізувати величезну кількість типів нейронів, багатошарових моделей та масштабуються і оптимізовані для роботи з багатьма GPU.
Шукайте Tensorflow, PyTorch, Keras.
Вони дозволяють створювати нові типи нейронів та шарів нейронних мереж без створення своїх фреймворків кожним початківцем.
Але повно і більш спеціалізованих, більш заточених під нейробіологічні аналоги (типу Spiking Neural Networks).
АПД: Почитав далі коменти і зрозумів, що автор поки ще не зкотився з холму Данінга не тільки в нейронних мережах, а і взагалі в Computer science.

Ваша точка зора неоціненна(безцінна).

так вроде есть уже...http://neuroph.sourceforge.net/
Круто будет если напишешь круче!!

так вроде есть уже...http://neuroph.sourceforge.net/

Там нейроны могут возвращать только значение дабл neuroph.sourceforge.net/...​/neuroph/core/Neuron.html . Такой вот дизайн.
И масштабируемость там не предусмотрена/(ну или не реализованна).

Круто будет если напишешь круче!!

мне пожалуйста метрики по которым Вы измереяте крутость предоставьте.

Чем одна нейросеть, обрабатывающая разные виды сигналов, лучше, чем отдельная нейросеть на каждый вид сигнала?
Вероятно, одна общая еще и медленнее работать будет, чем раздельные.

Я планирую реализацию поддержки cuda, а также думаю иделать имплементацию под запуск отдельно нейронов на амазон лямбдах(о чем кстати написанно в доках). но это потом.

под запуск отдельно нейронов на амазон лямбда

ну ну. Амазон тебе за это отдельную премию выпишет, с условием мин времени выполнения лямбдочки и того сколько тебе их надоть будеть.

Можно даже в клауде GPU заюзать для вычисления активационной функции и умножению векторов, а потом по http результат вытащить)

Дядь, а ты че тут терминами раскидался, будь как все, изменяй коеф и кол слоев и смори чтоб корреляция норм стояла

Чем одна нейросеть, обрабатывающая разные виды сигналов, лучше, чем отдельная нейросеть на каждый вид сигнала?

Предположим у нас есть сеть которая обрабатывает звуковые сигналы и она получает как результат элемент одного множества(Типа), есть нейронная сеть которая обрабатывает картинку и она получает как результат елемент другого множества(Типа). Нам нужно получить результат который будет основываться на результатах работы одновременно двух нейронок.

А на практике как?
Если на видео котик, а в звуковой дорожке залаяла соседская собака — то что будет?

Что на входе в твою нейронку, картинки со звуками или просто результаты работы предыдущих нейросетей? Во втором случае никаких разных типов нет, есть просто новое множество являющееся декартовым произведением двух множеств.

Предположим одна нейронка возвращает результат являющийся матрицей, а вторая строку. Как Вы собираетесь обрабатывать декартово произвведение матриц и строк?

Но ведь и операции над членами этих множеств могут быть заданы разные. Например сложение строк это не одно и тоже что сложение матриц(разная логика работы операций).

Не мешай воспарять на крыльях мечты приземляя на нехорошую практику и теорию. Вечно ты поток мысли молодого дарования сведешь к незнанию источников. И не хорошо мешать другим любоваться. Фу таким быть.

Строка это матрица из одной строки

рекурсия однако

Думаю, для принятия решений исходя из противоречивых данных придумывали fuzzy logic.
Вряд ли там будет настолько 100500 вариантов выхлопа из нейронки (после обучения) что поверх этих выхлопов нужно навернуть еще одну нейронку для принятия решений. Если да — нужно было сразу делать многоуровневую, чтобы на выход она давала семантически осмысленные данные, а не матрицу.

нейронка

А внутре у нея — неонка, надо понимать? :)

С синей изолентой. И парой примотаных ею костылей. А самый жир начинается, когда это все сводится в прикладной задаче, и результат надо оптимизировать по времени выполнения.

Стесняюсь поинтересоваться, это вы переоткрыли Многослойный перцептрон?

вы правы это самый простой вариант реализации многослойной архитектуры...

У меня договр с инженерами databricks. Они не сотрудничают с компаниями на украинском рынке, а я не конкурирую с ними на рынке опенсорс в нишах которые они уже заняли.

Слушай, дядя Витя, а не хочешь ли ты разразится серией статей «Обработка сигналов для самых маленьких»?

А про вот это, можешь что-то сказать?
www.dspguide.com/pdfbook.htm
P.S. Я не очень маленький, и что такое FFT представляю.

Ты не понял. Я не для себя.

Нет, это для местных детей :)

Я решил создать инструмент, позволяющий разрабатывать более сложные и приближенные к реальным алгоритмам нейронных сети.

Так ведь современные многослойные нейронные сети могут аппроксимировать практически любой алгоритм.
Проблема только в:
* Данных для обучения
* Времени для обучения и экспериментами с различными архитектурами нейронных сетей.

Основное отличие моего инструмента от других заключается в том, что нейрон может обрабатывать сигналы различного типа. Эта функция позволяет реализовать обучения посредством обмена сигналами сигналов, сложную логику обработки и так далее.

Я так понял вы хотите что бы можно было распознавать типа данных не зависимо от типа: звук, картинка.

Как вы думаете, это может быть интересно?
Вы можете загрузить рабочую концепцию отсюда github.com/...​uronnet/tree/scope/phase1.
Описание проекта github.com/...​ob/scope/phase1/README.md
Как запустить github.com/...​/phase1/TestPlanPhase1.md

Я чуть посмотрел код. Вы пытаетесь использовать термины с биологии: Аксон и прочее.
Но этому всему не хватает нормального описания.
Если вас не затруднит сделайте описание, по-лучше отформатируйте текст. Может пару слайдов.
Может даже нагерерируйте хотя бы автоматически визуализации зависимостей между классами.
Что бы было понятно как это сейчас использовать.
Я к примеру не Java Enterprise разработчик, но запустил бы. Я не прошу от вас реализации на Python.

А то, я зашел к примеру в класс нейрона а там:
Веса, смещение, ф-я активации.

Я все это видел в других либах, ничего нового. Ну есть классы для соединений, есть методы для обновления весов.

Что здесь принципиально нового?

Я так понял вы хотите что бы можно было распознавать типа данных не зависимо от типа: звук, картинка.

Как один из вариантов, но скорее обрабатывать результаты распознавания(такими же нейронками) звука, картинки(хотя Ваш вариант тоже возможен). Дле генерицации какой нибудь более сложной структуры, например алгоритма действий. Но этот сценарий работы я рассматриваю только после(в результаете) реализации второй фазы разработки(реализация Вашим вариантом также возможно, но потребует порядком большего времени на обучение, а также может не вместится в локальную нейронку, а кластерный режим фича второй фазы также как синхронизация нейронок). Данная версия это просто рабочий прототип с очень урезанным функционалом о чем можно прочесть в доках.

Существующие фрейморки, такие как TensorFlow вполне себе хорошо решают подобные задачи. Зачем еще один?

настоящий ИИ

Что такое настоящий ИИ?

Main purpose of this framework is allow AI developers to build object oriented model of brain

Наивное заблуждение. Модель мозга по хорошему до сих пор не изучена, но точно известно что мат. модель которая оказалась довольно удачной для решения определенного и весьма узкого круга задач, и именуемая нейронной сетью не имеет ничего общего с работой мозга.

Существующие фрейморки, такие как TensorFlow вполне себе хорошо решают подобные задачи. Зачем еще один?
Основное отличие моего инструмента от других заключается в том, что нейрон может обрабатывать сигналы различного типа.

написанно. Благоларю за комментарий, Ваше мнение неоценимо.

может обрабатывать сигналы различного типа

И что конкретно это означает?

То что у нейрона есть разные обработчики с логикой специфичной для каждого типа сигнала, также есть порядок обработки сигналов. Это есть в джава доках если что. Так же обработчики подерживает концецию наследования сигналов.

Я пытаюсь выяснить какие задачи такое свойство помогает решить, которые не решаемы существующими инструментами. Пока что не получил ответа.

Я пытаюсь выяснить какие задачи такое свойство помогает решить, которые не решаемы существующими инструментами. Пока что не получил ответа.

Пытаетесь использовать предложенный иструмент для решения каких либо задач? Пытаетесь понят как он работает и каккими возможностями обладает или пытаетесь найти полное описание задач которые можно решить при помощь этого интрумента?

Пытаюсь понять чем описание тобой свойство делает его уникальным в контексте решения задач.

Что такое настоящий ИИ?

Разум — это свойство, которым обладает группа елементов, которые имеют некую общность и обмениваются сигналами для взаимодествия с внешними факторами.©

Непонятно к чему приведенная абсолютно некорректная формулировка. Есть множество вещей которые могут обмениваться сигналами, но при этом не являются разумом, начиная элементами электрических цепей и заканчивая клетками различных тканей организмов, которые вполне себе обемниваются сигналами и которые не имеют никакого отношения к высшей нервной деятельности.

С какой целью елктрические цепи обмениваются сигналами?( Могут ли приспосабливаться к изменяющимся внешним факторам/ приспосабливать внешние факторы к своим потребностям посредством обмена сигналами?)

С какой целью елктрические цепи обмениваются сигналами?

Потому что они так работают. С какой целью частицы обмениваются фотонами (сигналами) при электромагнитном взаимодействии?

Могут ли приспосабливаться к изменяющимся внешним факторам/ приспосабливать внешние факторы к своим потребностям посредством обмена сигналами?

Вполне, например преобразовывать переменный ток в постоянный, менять вольтаж, силу тока и т.п.

Вполне, например преобразовывать переменный ток в постоянный, менять вольтаж, силу тока и т.п.

Это помогает полуцчить больше тока в цепь или устоять от корозионного/ теплового воздействия внешних факторов на цепь?

Какое это отношение имеет к твоему начальному определению? Я лишь показал тебе что определение данное тобой несостоятельно и есть множество вещей в нашем мире которые могут под подпадать. Что касается ИИ этот термин имеет свое определение, разум (он же НИ) свое, а вот что такое настоящий ИИ ты так и не объяснил.

Какое это отношение имеет к твоему начальному определению?

Да.

Какое это отношение имеет к твоему начальному определению?

Прямое отношение.

Молодец, садись, 2. Учись лучше.

Молодец, садись, 2.

The right phrase is sit down and shut up © www.tv.com/...​s/sit-down-shut-up/watch Ну ничего подождём до 10ого.

Підписатись на коментарі