Как стать автором
Обновить
83
-0.6

разнорабочий

Отправить сообщение
Обновил слайды про нейрон с сигмоидой
speakerdeck.com/sadr0b0t/bol-shiie-dannyie-liektsiia11-loghistichieskaia-rieghriessiia-ghradiientnyi-spusk-s-sighmoidoi

и про обучение сети из 3-х нейронов (в этом году получилось ее обучить — в прошлом году была ошибка в коде)
speakerdeck.com/sadr0b0t/bol-shiie-dannyie-liektsiia12-mnoghosloinyi-piertsieptron-mnoghomiernyi-ghradiient-obratnoie-rasprostranieniie

И про TensorFlow есть вариант видео-лекция (слайды пока не выложил):
vk.com/video?z=video53223390_456239477%2Fpl_cat_updates

они, правда, теперь там старый АПИ прячут в обертку Keras в новых версиях, поэтому планирую дальше переходить на PyTorch
я бы и рад согласиться, но вот это

> Creators know their content best, and should set the designation themselves.
> We also use machine learning to help us identify this content,
> Many creators around the world have created quality kids content for their audiences, and these changes will have significant impact.
> We’re committed to helping creators navigate this new landscape and to supporting our ecosystem of family content.

совершенно не про то
а потом еще и женится… страшно представить, как его от этого огородить
спасибо, для взрослых тоже подойдет — добавляйте свои каналы в список, оно будет показывать их
Хороший проект, делайте дальше!
На то, чтобы разобраться, весной довольно плотно обложившись книгами потратил полтора-два месяца (перед этим еще года два эпизодически неплотно заходил на тему, не вникая в суть происходящего — например, запускал примеры из интернета с обучением сетки на MNIST). Тогда же подготовил слайды для лекций с основной канвой повествования. На статью сейчас потратил примерно месяц (не каждый день, по паре-тройке часов по вечерам), большая часть времени ушла на перерисовку картинок (вскрылось множество мелких неточностей или опечаток, что можно быстро пролистать на лекции, в статье уже оставлять нельзя), анимацию и на войну с MayAvi последнюю неделю. Когда картинки есть и стоят в нужном порядке, текст уже идет сам.

По производной сначала тоже хотел оттолкнуться от тангенса (это важно для понимания дальнейших телодвижений), предварительно дав ссылку, например, на этот ролик: www.youtube.com/watch?v=OniFjwZ3b00. Но когда все остальное было готово, решил, что гулять, так гулять, и сделал всё целиком.

Книги порекомендую две основные упомянутые: С. Николенко, Глубокое обучение, погружение в мир нейронных сетей и Себастьян Рашка, Python и машинное обучение.

Обе, в общем, маст хэв.

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

Вывод формул я почти полностью взял из Рашида, сверив с Николенко. Николенко для реализации первой сетки почти сразу после пояснений про ошибки и производные берет тензор-флоу.

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

В качестве продолжения рекомендую еще полистать мои слайды
Нейрон с сигмоидой (планирую конвертировать в такую же статью):
speakerdeck.com/sadr0b0t/bol-shiie-dannyie-liektsiia11-loghistichieskaia-rieghriessiia-ghradiientnyi-spusk-s-sighmoidoi

И, наконец, попытка объединить нейроны в сеть и обучить ее в таком же ручном режиме:
speakerdeck.com/sadr0b0t/bol-shiie-dannyie-liektsiia12-mnoghosloinyi-piertsieptron-mnoghomiernyi-ghradiient-obratnoie-rasprostranieniie

Последнее пока не получилось, там, похоже, включаются какие-то граничные условия, но зато стало понятно, почему у нейронов должна быть нелинейная активация и почему с линейной ничего не выдет.
Код здесь приведен в учебных целях для наглядности. Для практических применений лучше взять какую-нибудь готовую библиотеку с реализацией нейросетки, должно быть что-то и для JS.

Если хотите строить на JS такие же графики, то не знаю, возможно и для JS есть что-то подобное, но, вообще, именно за такие графики и манипулирование многомерными массивами многие любят как раз Пайтон.
Да, перцептроном Розенблатта обычно называют многослойную структуру с нелинейной активацией, но в литературе, когда начинают рассказывать про нейросетки, повсеместно говорят об однослойном перцептроне, который по сути есть единичный нейрон.
Не распарсил, в чем разница между картинками. Или это сарказм?
здесь восхищаться, здесь не восхищаться, а здесь рыбу заворачивали :)
здесь восхищаться, здесь не восхищаться, а здесь рыбу заворачивали, бгг :)
github.com/unwireddevices/RIOT/commits/loralan-public

О, так вы все-таки соизволили форкнуть ртос, авторов которого поливаете у себя в фб, а теперь выдаете их работу за образчик профессионализма команды Unwired Devices? Спасибо, хоть исходники не зажали, бэгэгэ
вы правы, формально битность архитектуры определяют по битности регистров, которые в AVR 8 бит, хотя адреса, команды и арифметика у нее по большей части 16-битные. Подумаю, как лучше поправить, чтобы не вводить людей в заблуждение, но и не запутать при этом
8-битный микроконтроллер

да пишите сразу 4-битный, чего уж там

Каким из этих компонентов надо восхищаться? Или я что-то забыл?

Она умеет запускать код, написанный на Си/С++, скомпилированный с gcc, для меня этого достаточно
Скажем так, я знаю, что такое интегрированная среда разработки с автоформатированием, автодополнением, всплывающей документацией при наведенении мышки на вызов, переходом по клику к исходнику любой системной функции, деревьями проектов, автоматическим рефактором, отладчиком с условными точками останова, профайлером памяти в реальном времени и т.п. При разработке на Java этого добра хватает на разный вкус в не одном варианте. При этом видел разработчиков, которые, если у них выдернуть из-под ног всю эту красоту, начинают теряться, вставать в ступор и протестовать примерно, как офисные барышни, у которых в новом офисе все кнопочки не на своем месте (по моим наблюдениям это в большей степени относится к пользователям как раз МС Вижуалстудии, чем к жабщикам, возможно, потому, что жабщики привыкли от проекта к проекту прыгать между Эклипсом, Нетбинзом и Идеей, а у МС среда единственная и неповторимая на все времена).

Это я к тому, что если очень хочется, то можно и IDE настроить, не вижу в этом ничего плохого, а если нет под рукой IDE, то и текстовый редактор + make + gcc в консольке — нормальный инструмент, ничем не хуже, местами лучше (спросите емаксера или вимера, что он думает о редакторе вижуалстудии или эклипса). Можно обсуждать их удобства и преимущества для разных ситуаций, но никак не повод кичиться, тем более сводить целую платформу с развесистой экосистемой к убогому текстовому редактору.
Обсуждается Arduino IDE
Или программирование тестов на C/C++?

и то и другое

Arduino Create

не знаю, если туда можно загружать сторонние библиотеки, то может быть

Arduino UNO на ATMega168?

в меньшей степени, как один из примеров
Ардуино это аппаратная платформа с низким порогом вхождения в мир микроконтроллеров, а не микроконтроллер.

золотые слова!
вообще да, но по смыслу оба слова довольно близки, и то и другое можно перевести, как макет
www.multitran.ru/c/m.exe?CL=1&s=mockup
www.multitran.ru/c/m.exe?l1=1&l2=2&s=mock
есть ли реальный опыт применения такого подхода и примеры, где это было реализовано и использовано?


не претендуя на «реальность», есть более развернутый пример:
github.com/sadr0b0t/stepper_h/blob/master/stepper_test/stepper_test.cpp

это моя библиотечка для управления шаговыми моторами, основанная на подсчете шагов и отправке импульсов фоном из прерывания таймера. В общем, примерно то, что описано в примере, только для нескольких моторов и с более ветвистой логикой. Собственно, эти тесты я начал применять и обкатал подход именно в ней, т.к. в один момент там внутри начали происходить странные вещи, которые без потактового разбора за пределами железки было крайне сложно, если вообще возможно, отловить. Добавление тестов помогло отловить и исправить многие проблемы уровня «недосчитались шага на последнем такте, если время шага некратно частоте импульса таймера».

могут ли описанные тесты подойти для ситуации когда часть условий (внешние сигналы) влияют на ход выполнения кода и не могут быть имитированы тупым «элементарным ручным вызовом обработчика»?

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

Информация

В рейтинге
Не участвует
Откуда
Россия
Зарегистрирован
Активность