Мы снова недооцениваем сложность задач.
Перцептрон известен нам уже более полувека. И мы до сих пор используем его в том же виде, лишь наращивая вычислительные мощности.
Свёрточная нейронная сеть — математическая реализация зрительной подсистемы (палочки под разным углом и их иерархические комбинации в более сложные образы). В первом слое хватит и фильтра Собеля. Без обучения. Процесс упростится.
По мне, так это давно надо вынести на аппаратный уровень камер и систем техзрения.
В интернете можно найти много информации о нашей нейрофизиологии. Вот великолепная статья на хабре как раз в тему. Автор пишет, что не только нейрон является нелинейным сумматором, но и синапсы. То есть количество переменных уже вырастает на порядок. А ведь
Ключевое здесь — постоянно.
Миллиарды десятков нейронов и триллионы синапсов постоянно перестраивают свой потенциал и связи под текущую Задачу. Накапливают опыт. Формируют Личность.
А мы разделили этот процесс минимум на две части: обучение и исполнение, и жалуемся, что как-то много ошибок и в том и другом.
Постоянно, а не обучили CNN и используем ее в статике для классификации.
Еще и соревнования устраиваем на лучшую архитектуру нейросети. Но лучшая она лишь для определенного набора данных и постоянно эволюционирует.
Автопилот Тесла увидел частично заляпанный знак и всё — авария. Сразу шумиха в прессе: «Не работает DeepLearning!», «Роботы — зло».
Или вот еще интереснее сюжет про рекламу Burger King и Tesla.
Если нам попадается новый образ, мы обычно испытываем страх, выброс адреналина и экстренную перестройку мозга. Не всегда это ощущаем, потому что изменения зачастую незначительные. При попадании в незнакомую или неожиданную ситуацию мы, вероятнее всего, впадаем в ступор.
Наш мозг так поступает — почему так не должен поступать «силиконовый»?
Ведь есть интересные разработки по спайковым нейросетям. Обратите внимание на модель нейрона — как вам такой «персептрон»?
Забыли мы так же про SOINN, а ведь это очень оригинальный алгоритм, который совмещает в себе и обучение и исполнение, причем в динамике.
Возможно, у него есть продолжение где-то в секретных лабораториях японцев.
Мы пытаемся воспроизвести весь процесс на архитектуре (кремниевых полупроводниковых микросхемах), которая отличается от строения биологического мозга радикально. И мы снижаем количество переменных, чтобы уложиться в realtime на слабом процессоре. Подгоняем архитектуру нейросети не под её биологический аналог, а под наши технические средства и сетуем, что только классифицировать и можем. Что нет в машине мышления, моделирования, творчества.
Как бы и не надо.
Мы «затачивали» наши машины на расчет формул, а если быть точнее на базовые операции: сложение, вычитание, умножение и деление (взять и положить по адресу и другие инструкции пока не будем трогать).
Так пусть они этим и занимаются. И делают это они весьма эффективно.
Если задана формула, машина считает её со скоростью недостижимой человеку. Яркий пример: траектории полетов космических кораблей. А ведь начиналось все с таких приборов, но даже они превосходили в итоге людей в скорости расчетов.
Нет нужды заставлять C/G/TPU имитировать биологические нейроны.
Машина может оперировать более абстрактными ментальными блоками, чем нейрон. У нас есть множество наработок на эту тему. Причем нам не надо 20 лет обучать машину, чтобы она «понимала» абстракции уровня «логистика», «кулинария», «квантовая механика». Сервер включается в процесс сразу после загрузки данных, которых у нас уже масса.
Когда то, вдохновившись работами Boston Dynamics я экспериментировал с робототехникой.
Жаль, что у меня не было таких мощностей как сейчас, но это привело к очень интересным идеям.
Долго не получалось обучить что-то адекватное на стандарной полносвязной сети и сигмоиде. Решил попробовать функцию, более подходящую механике модели, основываясь на простой идее:
Функция cos в качестве активационной и ограничение значений входов и выходов [-1;1] повысила качество управления и скорость обучения в разы, снизила размер сети.
Да cos не самая быстрая функция — она вычисляется по таблице или разложением в ряд Тейлора, но она уже есть. Тем более если делать подобные функции как ядро ASIC, то будем иметь примерно 10-тикратный прирост в скорости вычислений.
Её не надо искать, вычислять, тратить время на обучение ИНС — уже всё давно сделано с помощью наших «нейросеток».
Есть множество функций еще более ресурсоемких, чем тригонометрия. Алгоритм тот же:
Эти функции могут быть очень высокого порядка. Вроде тех, что используются в программировании. А их параметры — ID объектов класса Товар, Марка, Цвет, Адрес и так далее.
Другими словами — передаем спайк (код объекта, ID) в нужное место, а не вектор из рациональных чисел, который обозначает непонятно что.
Возвращаясь к нейросети, как классификатору, получаем из потока образов классы объектов. Это, по сути, кодировщик образов к которому можно присоединить подобную систему и получим память и интуицию.
Есть множество схем в электронном виде, уже «обученных» и отлаженных. Их так же можно использовать как функции. Главное правильно подсоединить. Я говорю о BPMN и им подобных.
В итоге Data Scientist программируют… схемы — архитектуры нейросетей. Где-то интуитивно, где-то на основании литературно-технического опыта или после отбора AutoML.
«Танцы с бубном» — по другому не получается. Потому что DeepLearning красиво работает на учебных датасетах — реальность ставит всё на место.
Как реализовать «процесс мышления» схемами на программном уровне описано в этой статье, в которой идет нешуточная полемика.
Там, на простом прикладном примере, описан процесс оптимальных соединений функций — по сути обучения, подобному подбору весов в нейросети.
Область поиска значительно снижается не только этим, но и добавлением списка допустимых классов/значений каждого параметра функций.
Выбор функционального базиса и целевой функции для подобной системы — темы для отдельных статей. Надеюсь, у меня хватит вдохновения, чтобы написать их.
Искренне надеюсь на вашу поддержку.
Перцептрон известен нам уже более полувека. И мы до сих пор используем его в том же виде, лишь наращивая вычислительные мощности.
Свёрточная нейронная сеть — математическая реализация зрительной подсистемы (палочки под разным углом и их иерархические комбинации в более сложные образы). В первом слое хватит и фильтра Собеля. Без обучения. Процесс упростится.
По мне, так это давно надо вынести на аппаратный уровень камер и систем техзрения.
В интернете можно найти много информации о нашей нейрофизиологии. Вот великолепная статья на хабре как раз в тему. Автор пишет, что не только нейрон является нелинейным сумматором, но и синапсы. То есть количество переменных уже вырастает на порядок. А ведь
Нейрон это не статический аналоговый сумматор. Нейрон, а тем более мозг, это цифровой процессор, который постоянно обменивается импульсами с частотой до сотен герц.
Ключевое здесь — постоянно.
Миллиарды десятков нейронов и триллионы синапсов постоянно перестраивают свой потенциал и связи под текущую Задачу. Накапливают опыт. Формируют Личность.
А мы разделили этот процесс минимум на две части: обучение и исполнение, и жалуемся, что как-то много ошибок и в том и другом.
Постоянно, а не обучили CNN и используем ее в статике для классификации.
Еще и соревнования устраиваем на лучшую архитектуру нейросети. Но лучшая она лишь для определенного набора данных и постоянно эволюционирует.
Автопилот Тесла увидел частично заляпанный знак и всё — авария. Сразу шумиха в прессе: «Не работает DeepLearning!», «Роботы — зло».
Или вот еще интереснее сюжет про рекламу Burger King и Tesla.
Если нам попадается новый образ, мы обычно испытываем страх, выброс адреналина и экстренную перестройку мозга. Не всегда это ощущаем, потому что изменения зачастую незначительные. При попадании в незнакомую или неожиданную ситуацию мы, вероятнее всего, впадаем в ступор.
Наш мозг так поступает — почему так не должен поступать «силиконовый»?
Ведь есть интересные разработки по спайковым нейросетям. Обратите внимание на модель нейрона — как вам такой «персептрон»?
Забыли мы так же про SOINN, а ведь это очень оригинальный алгоритм, который совмещает в себе и обучение и исполнение, причем в динамике.
Возможно, у него есть продолжение где-то в секретных лабораториях японцев.
Мы пытаемся воспроизвести весь процесс на архитектуре (кремниевых полупроводниковых микросхемах), которая отличается от строения биологического мозга радикально. И мы снижаем количество переменных, чтобы уложиться в realtime на слабом процессоре. Подгоняем архитектуру нейросети не под её биологический аналог, а под наши технические средства и сетуем, что только классифицировать и можем. Что нет в машине мышления, моделирования, творчества.
Как бы и не надо.
Мы «затачивали» наши машины на расчет формул, а если быть точнее на базовые операции: сложение, вычитание, умножение и деление (взять и положить по адресу и другие инструкции пока не будем трогать).
Так пусть они этим и занимаются. И делают это они весьма эффективно.
Если задана формула, машина считает её со скоростью недостижимой человеку. Яркий пример: траектории полетов космических кораблей. А ведь начиналось все с таких приборов, но даже они превосходили в итоге людей в скорости расчетов.
Нет нужды заставлять C/G/TPU имитировать биологические нейроны.
Машина может оперировать более абстрактными ментальными блоками, чем нейрон. У нас есть множество наработок на эту тему. Причем нам не надо 20 лет обучать машину, чтобы она «понимала» абстракции уровня «логистика», «кулинария», «квантовая механика». Сервер включается в процесс сразу после загрузки данных, которых у нас уже масса.
Когда то, вдохновившись работами Boston Dynamics я экспериментировал с робототехникой.
Жаль, что у меня не было таких мощностей как сейчас, но это привело к очень интересным идеям.
Долго не получалось обучить что-то адекватное на стандарной полносвязной сети и сигмоиде. Решил попробовать функцию, более подходящую механике модели, основываясь на простой идее:
Вращение шарниров конечностей робота — это тригонометрия.
Функция cos в качестве активационной и ограничение значений входов и выходов [-1;1] повысила качество управления и скорость обучения в разы, снизила размер сети.
Да cos не самая быстрая функция — она вычисляется по таблице или разложением в ряд Тейлора, но она уже есть. Тем более если делать подобные функции как ядро ASIC, то будем иметь примерно 10-тикратный прирост в скорости вычислений.
Её не надо искать, вычислять, тратить время на обучение ИНС — уже всё давно сделано с помощью наших «нейросеток».
Есть множество функций еще более ресурсоемких, чем тригонометрия. Алгоритм тот же:
Берем функцию из базы — соединяем с нужными блоками входы и выходы.
Эти функции могут быть очень высокого порядка. Вроде тех, что используются в программировании. А их параметры — ID объектов класса Товар, Марка, Цвет, Адрес и так далее.
Другими словами — передаем спайк (код объекта, ID) в нужное место, а не вектор из рациональных чисел, который обозначает непонятно что.
Возвращаясь к нейросети, как классификатору, получаем из потока образов классы объектов. Это, по сути, кодировщик образов к которому можно присоединить подобную систему и получим память и интуицию.
Есть множество схем в электронном виде, уже «обученных» и отлаженных. Их так же можно использовать как функции. Главное правильно подсоединить. Я говорю о BPMN и им подобных.
BPMN схемы понятнее человеку, чем многослойная нейросеть.
В итоге Data Scientist программируют… схемы — архитектуры нейросетей. Где-то интуитивно, где-то на основании литературно-технического опыта или после отбора AutoML.
«Танцы с бубном» — по другому не получается. Потому что DeepLearning красиво работает на учебных датасетах — реальность ставит всё на место.
Как реализовать «процесс мышления» схемами на программном уровне описано в этой статье, в которой идет нешуточная полемика.
Там, на простом прикладном примере, описан процесс оптимальных соединений функций — по сути обучения, подобному подбору весов в нейросети.
Причем обучение (поиск) ведется не в области рациональных чисел, а в дискретном пространстве возможных состояний системы.
Область поиска значительно снижается не только этим, но и добавлением списка допустимых классов/значений каждого параметра функций.
Выбор функционального базиса и целевой функции для подобной системы — темы для отдельных статей. Надеюсь, у меня хватит вдохновения, чтобы написать их.
Искренне надеюсь на вашу поддержку.