No video

Простая нейросеть. Алгоритм обратного распространения ошибки | Нейросеть на пальцах

Здесь подробно расписан алгоритм обратного распространения ошибки (backpropagation) с демонстрацией материала в Excel. Сергей Фриз (Sergey Freeze) на простом примере (функции XOR) разворачивает нейросеть и максимально простым языком объясняет как произвести ее обучение.
Исходный архив .xlsm можно скачать здесь: disk.yandex.ru/d/2AakqZOzva4QCw пароль: «Домашка» (на латинице - «Ljvfirf»)
В файле два макроса на VBA: (turbo Ctrl-t и медленный Ctrl-r (ограничен 10 эпохами))
Предыдущее видео: • Как работает нейросеть...
Смотреть курс «Python - это просто»: • Python - это просто!
Смотреть плейлист «Нейросети и искусственный интеллект»: • Нейросети и искусствен...
Наша группа ВК: domajka
✅ Поддержать канал: www.donationalerts.com/r/domajka
Тайминги видео:
00:00 intro
00:46 Постановка задачи
04:00 Расчет нейросети в Excel
08:04 Алгоритм обратного распространения ошибки (backpropagation)
12:46 Создание макросов VBA
16:03 Проверка обученной нейросети
16:40 Расчет суммарной ошибки в больших нейросетях
17:14 Заключительное слово
#Нейросеть

Пікірлер: 59

  • @Bekchentaeva
    @Bekchentaeva2 ай бұрын

    Самое полезное видео что я видела, без воды и доступными языком!!!

  • @user-xz4ps5nh2c
    @user-xz4ps5nh2c2 жыл бұрын

    Всё гениальное просто, непонятно, почему так мало просмотров!? Автору спасибо за доступность изложения и качественно смонтированный ролик.

  • @user-uc1do9ch7c
    @user-uc1do9ch7c6 ай бұрын

    Это действительно самый понятный гайд на всем Ютубе. Большое спасибо автору!

  • @kataeff
    @kataeff Жыл бұрын

    Спасибо! Видео ОФИГЕННО полезно! Подобных видео на Ютуб полно, но все они копируют друг друга, при этом объясняют там так, что мои собственные нейроны сворачиваются в клубок. У Вас же всё понятно и доступно.

  • @cherkasA
    @cherkasA2 жыл бұрын

    не знаю сработает ли, но такого подробного объяснения я еще не находил спасибо!

  • @KlinovAS
    @KlinovAS2 жыл бұрын

    Самое самое толковое, подробное и понятно обьяснение, которое можно не только послушать и забыть а реально сделать любую свою конфигурацию и все будет работать. Большое спасибо. Я годами слушаю про эту нейросеть и меня волновал всегда вопрос. А как именно веса подбираются? Кто первый, кто второй? Как понять что поднимать или опускать и где именно, ведь есть много скрытых слоев... Также от себя отмечу (меня никто не понимает с моих знакомых), я считаю, что нейросеть вот эта "математическая" требует современной оптимизации. Здесь нет логики бинарной вообще. А должна быть логика как в шахматах, как в японской головоломке (с рисунком и цифрами). Я делал распознавание символов вообще по своему алгоритму не зная что придумали нейросеть. У меня работает обучение на много быстрей (за один проход выучил и применяем). И другой плюс в том, что я могу расширять аргументы, а нейросеть требует уже изменение в архитектуры (даже если один нейрон добавить), что приведет к полному длинному переобучению. Также моя модель если нет правильного результата то так и покажет что нет. А нейросеть угадывает дальше... Но у меня хуже обстановка если мы работаем с градиентом. Тут нейросеть покажет себя НАВЕРНОЕ лучше. Также свою модель я не усовершествовал. Сохраненные данные обучения занимают реально копейки и работает очень быстро. Другая моя программа распознает дубликаты музыки. Можна по разному поизвращаться - программа находит дубликат. Не может найти только если изменить темп. Третяя програмка должна была искать изображение, но я забросил. Единственное, что я искал по радиусу соседний пиксель, который отличался по контрасту и отрисововал грань. Тоже саме делает и нейросеть. В том отличии лишь, что ей нужно учиться, а у меня это уже фундамент. Вот по этому я уверен, что нейросеть та которая есть сейчас, это хайп из изобретения 80их годов. А реально никто ничего не хочет думать. По бинарным принятиям решения типа XOR/OR/AND... считаю что, легко можно было бы придумать специализируванную бинарнуйю "нейросеть", которая бы быстренько подобрала логику (не веса, а логику). Так как скрытый слой должен играет роль высшего приоритета. По вашему видео, я хоть понял что к чему в сети. Короче, если рандом на вход не подавать, то она не будет учиться. Раздолбит миллион машин сперва, а потом только научится рулить правильно влево/вправо. Считаю это абсурдно. Но если в симуляции, то пусть. Для кого-то главное результат. А из того что есть, результат впечетляет (в некоторых направлениях даже очень). НО, УВЕРЕН, могло бы быть в сотни раз лучше

  • @flamehowk
    @flamehowk2 жыл бұрын

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

  • @user-lc9jk4ww8o

    @user-lc9jk4ww8o

    2 жыл бұрын

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

  • @johnpolak229

    @johnpolak229

    3 ай бұрын

    Тоже ожидал, что автор скажет, что это типовая схема проходного выключателя.

  • @vladlmlrzadorozhnyy3164
    @vladlmlrzadorozhnyy31642 жыл бұрын

    Хорошее видео, продолжай, все понятно как и надо и без фраз типа ну дальше все ясно без объяснений. Попробу переложить на Си, почему то на Python у меня не все получается

  • @user-mr1dy1go8i
    @user-mr1dy1go8i6 ай бұрын

    Самое понятное объяснение

  • @atosvanner4900
    @atosvanner4900 Жыл бұрын

    Интересные и понятные видео, отличная работа!!! Почему не продолжаете?

  • @user-lc9jk4ww8o

    @user-lc9jk4ww8o

    Жыл бұрын

    К сожалению нет пока времени(((

  • @IncoStar
    @IncoStar Жыл бұрын

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

  • @DaOkay
    @DaOkay29 күн бұрын

    Просто лайк, спасибо большое

  • @velteck
    @velteck Жыл бұрын

    Очень долго искал нормальное объяснение обратного распространения и нашёл это видео. Незнаю почему другие не могут также понятно объяснять.

  • @skachat9000
    @skachat90004 ай бұрын

    Я был на конференции математиков, и пытался им объяснить, что такое нейросеть, и как раз таки backprogation. Занял 5 место, потому что люди зацепились за слова по типу градиента, ФУНКЦИИ активации, доказывали что ЭТО НЕ ФОРМУЛА ГРАДИЕНТА, хотя все было разжевано, но был допущен к участию в более крупной конференции. Смотря ваше видео, у меня сложилось ощущение, что на этот раз я буду им рассказывать как на пальцах считать... Потому что буду объяснять как вы на видео...

  • @Kkkooottt88
    @Kkkooottt88 Жыл бұрын

    Боже мой это наверное уже десятый "о ну вот этот мужик вроде понятно обьясняет" но только наконец-то благодаря этому видео у меня все получилось! Спасибо огромное! Просто хотел реализацию на Golang сделать гибкую. Спасибо огромное!

  • @metomarphoz
    @metomarphoz Жыл бұрын

    Лучшее объяснения я считаю.

  • @duri7954
    @duri7954 Жыл бұрын

    Долго интересовала тема нейросетей, но проблема заключалась в том что мой мозг ни в никакую не воспринимал объяснения на более популярных видеорядах, казалось что эта тема - что то недостижимое для меня. После просмотра вашего видео я моментально смог понять что из себя представляет нейросеть и с чем ее едят (грубо говоря я искал любой простой и наглядный пример). Пример нейросети что был показан просто шикарно подходит для введения и начального понимания, благодаря нему я смог сделать свой первый и самый сложный шаг - понять механизм на самом примитивном уровне. Благодаря этому меньше чем за день после просмотра видеоряда у меня уже получилось реализовать свою собственную нейросеть без библиотек с нуля. Хоть она и до жути примитивна (определение циферки нарисованной на холсте 3x5), это все равно огромный прорыв. Первый шаг пройден, теперь дальнейшее развитие зависит только от меня, выражаю огромную благодарность автору за такую возможность.

  • @RunBull
    @RunBull Жыл бұрын

    самый понятный гайд на всем ютубе

  • @oivanov520
    @oivanov52010 ай бұрын

    Спасибо за ваш труд!!! Отличная подача материала!

  • @andreiragozin103
    @andreiragozin1038 ай бұрын

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

  • @user-kz7jc2pf2f
    @user-kz7jc2pf2f2 жыл бұрын

    Первый раз вижу такой сложный проходной выключатель )))

  • @user-lc9jk4ww8o

    @user-lc9jk4ww8o

    2 жыл бұрын

    Простых путей не ищем)))

  • @ssaidahmed
    @ssaidahmed7 ай бұрын

    супер!

  • @makishimu25050
    @makishimu25050 Жыл бұрын

    Почему "с помощью проводов не решается" (01:45)?) Нужно лишь два 3 контактных выключателя. Это, по сути, исключающая или)) Спасибо за видео, было очень интересно!)

  • @flamehowk
    @flamehowk2 жыл бұрын

    И второе - эту задачу как раз элементарно можно решить не просто однослойным перцептроном, но даже всего ОДНИМ нейроном. Для этого достаточно в качестве функции активации поставить пороговую функцию с диапазоном, где 0 < x < 2.

  • @user-lc9jk4ww8o

    @user-lc9jk4ww8o

    2 жыл бұрын

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

  • @flamehowk

    @flamehowk

    2 жыл бұрын

    @@user-lc9jk4ww8o Я постоянно встречаю это утверждение, а значит, люди просто не понимают, что можно и по-другому. А то, что люди не понимают как это все работает, создает огромное количество трудностей. Но они и не пытаются понять - просто рисуют нейросети пошире, а в фермы для расчетов вкладывают побольше. Это не разумный путь... Вот Вы пытаетесь другим объяснить обратное распространение ошибки, а сами то до сих пор не знаете - почему же нейронная сеть работает и какие механизмы к этому приводят. Для Вас это до сих пор черный ящик. Так мы ни к чему не придем... А было бы неплохо, чтобы люди еще и старались понять - что они делают и почему.

  • @user-lc9jk4ww8o

    @user-lc9jk4ww8o

    2 жыл бұрын

    @@flamehowk Ну в одном же видео все не расскажешь! Этому видео так-то предшествовали ещё два других. А поскольку у людей нет особого интереса по данной теме, по крайней мере на моем канале, то пока взял паузу.

  • @flamehowk

    @flamehowk

    2 жыл бұрын

    @@user-lc9jk4ww8o Да никто этих знаний и не имеет. Все только копируют друг у друга структуру перцептрона и классический набор функций активации. Никому и в голову не приходит, что функция может быть пороговой, а не активирующей. Поэтому-то для мира глубокого обучения было открытием, что замена сигмоиды на ReLu, а вернее - просто удаление функции активации и добавление примитивного порога на нулевом значении, вдруг несказанно улучшило не только обучаемость нейронной сети, но и ее работу. Это называется - метод научного тыка. А понимания до сих пор ни у кого нет. Так что - было бы что рассказывать, давно бы рассказали. А что касается интереса к этой теме... дак что ж Вы удивляетесь, в нашем мире единицы думают, процента 2-3 тех, кто думает, что они думают, а в се остальные 97% - лучше умрут, чем будут думать. А Вы хотите у них вызвать интерес тонкостями обучения нейронных сетей. Вот слепить фигу из козьих отходов пищеварения или облить помоями какую-нибудь известную личность - вот это им зайдет... сотни тысяч просмотров гарантированы. А если сделать это еще и с талантом - то и миллионы. Так что если Вам нужна популярность или заработок, то Вы явно не о том снимаете ролики.

  • @alex_step_

    @alex_step_

    2 жыл бұрын

    @@user-lc9jk4ww8o Интерес у людей есть. А вот то, что людей таких не много с этим, конечно не поспоришь. Ты конечно, можешь считать, что это обычный ролик каких тысячи в сети. Но нет. У тебя всё доходчиво. Лайк. Подписка.

  • @rollocks9138
    @rollocks9138 Жыл бұрын

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

  • @limonello1964
    @limonello1964 Жыл бұрын

    Спасибо

  • @olegzorin3911
    @olegzorin3911 Жыл бұрын

    На подумать. Задача с выключателями решается только с помощью проводов. Схема очень простая.

  • @defix_gamedev
    @defix_gamedev5 ай бұрын

    лучший, у других слишком много вышмата

  • @zloibot3899
    @zloibot3899 Жыл бұрын

    Это же проходной выключатель. Легко решается посредством проводов) логика простая

  • @likey_dikey235
    @likey_dikey2352 жыл бұрын

    Понятно, вот только загвостка у меня долгое время с пониманием логики 3-х формул обратного распространения. Как их вообще получили?

  • @user-lc9jk4ww8o

    @user-lc9jk4ww8o

    2 жыл бұрын

    Локальный градиент - это ошибка умноженная на производную от той или иной функции (f`(x)=f(x)*(1-f(x)) - производная сигмоидной функции). На этот счет очень много скучного материала в интернете... Я специально не стал его приводить. Советую посмотреть книги: Тарик Рашид "Создаем нейронную сеть" и Л.Н. Ясницкий "Искусственный интеллект", в них доступно объясняется как была получена формула обратного распространения ошибки.

  • @user-oh9uf3ht3o

    @user-oh9uf3ht3o

    Жыл бұрын

    @@user-lc9jk4ww8o а как реализовать нейронную сеть для прогнозирования временных рядов в Excel, например температуру окружающей среды на завтра?

  • @user-sx3ji1eg5i
    @user-sx3ji1eg5i Жыл бұрын

    Полезно

  • @GennadiyBunin
    @GennadiyBunin Жыл бұрын

    Здравствуйте видео огонь, но есть один вопрос как рассчитать сумму ошибок на выходном нейроне, если их три на выходе?

  • @user-lc9jk4ww8o

    @user-lc9jk4ww8o

    Жыл бұрын

    Так на выходных нейронах не надо считать сумму ошибок! Ошибка e = y - d, где y - это то что выдал нейрон, а d - то что на нем ожидалось. Сумма ошибок считается только на скрытых слоях.

  • @GennadiyBunin

    @GennadiyBunin

    Жыл бұрын

    @@user-lc9jk4ww8o Получается на этих трех выходных будет своя ошибка?

  • @user-lc9jk4ww8o

    @user-lc9jk4ww8o

    Жыл бұрын

    @@GennadiyBunin ну да, см. 10:04

  • @L_A_B_
    @L_A_B_ Жыл бұрын

    Отличное объяснение принципа работы нейронных сетей!!! Спасибо за видео. Подскажите что за программа нейросимулятор и где её можно найти?

  • @user-lc9jk4ww8o

    @user-lc9jk4ww8o

    Жыл бұрын

    Это неросимулятор Ясницкого Л.Н и Черепанова Ф.М. Попробуйте поискать на www.lbai.ru/ в лабораторном практикуме Nsim5sc.zip

  • @L_A_B_

    @L_A_B_

    Жыл бұрын

    @@user-lc9jk4ww8o Благодарю!

  • @peters6007

    @peters6007

    11 ай бұрын

    Спасибо большое!@@user-lc9jk4ww8o

  • @nighthunter28
    @nighthunter2810 ай бұрын

    2-1 нейросеткой решается XOR

  • @IncoStar
    @IncoStar Жыл бұрын

    Будет продолжение?

  • @user-lc9jk4ww8o

    @user-lc9jk4ww8o

    Жыл бұрын

    Хотелось бы надеется, что да, но очень сильно занят(((

  • @user-zs4kv4ii7d
    @user-zs4kv4ii7d8 ай бұрын

    Материал хороший, качество видео ужасное, жаль.

  • @user-sd3fk3fj2i
    @user-sd3fk3fj2i Жыл бұрын

    Ниуя не какого устройства не надо нужен 5жильный кабель и два выключателя на два положения№

  • @romanpopov8836
    @romanpopov88362 жыл бұрын

    Вероятно автор не внимательно изучил источники, многие из которых сообщают что проходной выключатель это очень простая схема состоящая только из одних проводов - stroisovety.org/wp-content/uploads/2014/07/proxodnoj-vyklyuchatel-03.jpg 🙂

  • @user-lc9jk4ww8o

    @user-lc9jk4ww8o

    2 жыл бұрын

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

  • @user-oh9uf3ht3o

    @user-oh9uf3ht3o

    Жыл бұрын

    @@user-lc9jk4ww8o а как реализовать нейронную сеть для прогнозирования временных рядов в Excel, например температуру окружающей среды на завтра?

Келесі