Простая нейросеть. Алгоритм обратного распространения ошибки | Нейросеть на пальцах
Здесь подробно расписан алгоритм обратного распространения ошибки (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
Самое полезное видео что я видела, без воды и доступными языком!!!
Всё гениальное просто, непонятно, почему так мало просмотров!? Автору спасибо за доступность изложения и качественно смонтированный ролик.
Это действительно самый понятный гайд на всем Ютубе. Большое спасибо автору!
Спасибо! Видео ОФИГЕННО полезно! Подобных видео на Ютуб полно, но все они копируют друг друга, при этом объясняют там так, что мои собственные нейроны сворачиваются в клубок. У Вас же всё понятно и доступно.
не знаю сработает ли, но такого подробного объяснения я еще не находил спасибо!
Самое самое толковое, подробное и понятно обьяснение, которое можно не только послушать и забыть а реально сделать любую свою конфигурацию и все будет работать. Большое спасибо. Я годами слушаю про эту нейросеть и меня волновал всегда вопрос. А как именно веса подбираются? Кто первый, кто второй? Как понять что поднимать или опускать и где именно, ведь есть много скрытых слоев... Также от себя отмечу (меня никто не понимает с моих знакомых), я считаю, что нейросеть вот эта "математическая" требует современной оптимизации. Здесь нет логики бинарной вообще. А должна быть логика как в шахматах, как в японской головоломке (с рисунком и цифрами). Я делал распознавание символов вообще по своему алгоритму не зная что придумали нейросеть. У меня работает обучение на много быстрей (за один проход выучил и применяем). И другой плюс в том, что я могу расширять аргументы, а нейросеть требует уже изменение в архитектуры (даже если один нейрон добавить), что приведет к полному длинному переобучению. Также моя модель если нет правильного результата то так и покажет что нет. А нейросеть угадывает дальше... Но у меня хуже обстановка если мы работаем с градиентом. Тут нейросеть покажет себя НАВЕРНОЕ лучше. Также свою модель я не усовершествовал. Сохраненные данные обучения занимают реально копейки и работает очень быстро. Другая моя программа распознает дубликаты музыки. Можна по разному поизвращаться - программа находит дубликат. Не может найти только если изменить темп. Третяя програмка должна была искать изображение, но я забросил. Единственное, что я искал по радиусу соседний пиксель, который отличался по контрасту и отрисововал грань. Тоже саме делает и нейросеть. В том отличии лишь, что ей нужно учиться, а у меня это уже фундамент. Вот по этому я уверен, что нейросеть та которая есть сейчас, это хайп из изобретения 80их годов. А реально никто ничего не хочет думать. По бинарным принятиям решения типа XOR/OR/AND... считаю что, легко можно было бы придумать специализируванную бинарнуйю "нейросеть", которая бы быстренько подобрала логику (не веса, а логику). Так как скрытый слой должен играет роль высшего приоритета. По вашему видео, я хоть понял что к чему в сети. Короче, если рандом на вход не подавать, то она не будет учиться. Раздолбит миллион машин сперва, а потом только научится рулить правильно влево/вправо. Считаю это абсурдно. Но если в симуляции, то пусть. Для кого-то главное результат. А из того что есть, результат впечетляет (в некоторых направлениях даже очень). НО, УВЕРЕН, могло бы быть в сотни раз лучше
Ну вот я "хотя бы немного разбираюсь в электротехнике" и прекрасно понимаю, что такую задачу как раз элементарно решить с помощью только проводов - два дублирующих контура, которые на выключателях подключены в асимметричной логике. И не нужно никакого хитроумного устройства на микроконтроллерах.
@user-lc9jk4ww8o
2 жыл бұрын
Согласен, нужно было в условиях задачи отметить, что в примере используются обычные выключатели.
@johnpolak229
3 ай бұрын
Тоже ожидал, что автор скажет, что это типовая схема проходного выключателя.
Хорошее видео, продолжай, все понятно как и надо и без фраз типа ну дальше все ясно без объяснений. Попробу переложить на Си, почему то на Python у меня не все получается
Самое понятное объяснение
Интересные и понятные видео, отличная работа!!! Почему не продолжаете?
@user-lc9jk4ww8o
Жыл бұрын
К сожалению нет пока времени(((
Очень интересно!!! Так же было бы очень интересно как реализован многослойный перцептрон с двумя выходами и несколькими слоями. Очень признателен за проделанную работу.
Просто лайк, спасибо большое
Очень долго искал нормальное объяснение обратного распространения и нашёл это видео. Незнаю почему другие не могут также понятно объяснять.
Я был на конференции математиков, и пытался им объяснить, что такое нейросеть, и как раз таки backprogation. Занял 5 место, потому что люди зацепились за слова по типу градиента, ФУНКЦИИ активации, доказывали что ЭТО НЕ ФОРМУЛА ГРАДИЕНТА, хотя все было разжевано, но был допущен к участию в более крупной конференции. Смотря ваше видео, у меня сложилось ощущение, что на этот раз я буду им рассказывать как на пальцах считать... Потому что буду объяснять как вы на видео...
Боже мой это наверное уже десятый "о ну вот этот мужик вроде понятно обьясняет" но только наконец-то благодаря этому видео у меня все получилось! Спасибо огромное! Просто хотел реализацию на Golang сделать гибкую. Спасибо огромное!
Лучшее объяснения я считаю.
Долго интересовала тема нейросетей, но проблема заключалась в том что мой мозг ни в никакую не воспринимал объяснения на более популярных видеорядах, казалось что эта тема - что то недостижимое для меня. После просмотра вашего видео я моментально смог понять что из себя представляет нейросеть и с чем ее едят (грубо говоря я искал любой простой и наглядный пример). Пример нейросети что был показан просто шикарно подходит для введения и начального понимания, благодаря нему я смог сделать свой первый и самый сложный шаг - понять механизм на самом примитивном уровне. Благодаря этому меньше чем за день после просмотра видеоряда у меня уже получилось реализовать свою собственную нейросеть без библиотек с нуля. Хоть она и до жути примитивна (определение циферки нарисованной на холсте 3x5), это все равно огромный прорыв. Первый шаг пройден, теперь дальнейшее развитие зависит только от меня, выражаю огромную благодарность автору за такую возможность.
самый понятный гайд на всем ютубе
Спасибо за ваш труд!!! Отличная подача материала!
Проходной выключатель решается только с помощью проводов, но мы не ищем легких путей🤣
Первый раз вижу такой сложный проходной выключатель )))
@user-lc9jk4ww8o
2 жыл бұрын
Простых путей не ищем)))
супер!
Почему "с помощью проводов не решается" (01:45)?) Нужно лишь два 3 контактных выключателя. Это, по сути, исключающая или)) Спасибо за видео, было очень интересно!)
И второе - эту задачу как раз элементарно можно решить не просто однослойным перцептроном, но даже всего ОДНИМ нейроном. Для этого достаточно в качестве функции активации поставить пороговую функцию с диапазоном, где 0 < x < 2.
@user-lc9jk4ww8o
2 жыл бұрын
Да можно, но такой нейрон будет служить для узкоспециализированных задач, а ведь видео не об этом, а об алгоритме обратного распространения ошибки.
@flamehowk
2 жыл бұрын
@@user-lc9jk4ww8o Я постоянно встречаю это утверждение, а значит, люди просто не понимают, что можно и по-другому. А то, что люди не понимают как это все работает, создает огромное количество трудностей. Но они и не пытаются понять - просто рисуют нейросети пошире, а в фермы для расчетов вкладывают побольше. Это не разумный путь... Вот Вы пытаетесь другим объяснить обратное распространение ошибки, а сами то до сих пор не знаете - почему же нейронная сеть работает и какие механизмы к этому приводят. Для Вас это до сих пор черный ящик. Так мы ни к чему не придем... А было бы неплохо, чтобы люди еще и старались понять - что они делают и почему.
@user-lc9jk4ww8o
2 жыл бұрын
@@flamehowk Ну в одном же видео все не расскажешь! Этому видео так-то предшествовали ещё два других. А поскольку у людей нет особого интереса по данной теме, по крайней мере на моем канале, то пока взял паузу.
@flamehowk
2 жыл бұрын
@@user-lc9jk4ww8o Да никто этих знаний и не имеет. Все только копируют друг у друга структуру перцептрона и классический набор функций активации. Никому и в голову не приходит, что функция может быть пороговой, а не активирующей. Поэтому-то для мира глубокого обучения было открытием, что замена сигмоиды на ReLu, а вернее - просто удаление функции активации и добавление примитивного порога на нулевом значении, вдруг несказанно улучшило не только обучаемость нейронной сети, но и ее работу. Это называется - метод научного тыка. А понимания до сих пор ни у кого нет. Так что - было бы что рассказывать, давно бы рассказали. А что касается интереса к этой теме... дак что ж Вы удивляетесь, в нашем мире единицы думают, процента 2-3 тех, кто думает, что они думают, а в се остальные 97% - лучше умрут, чем будут думать. А Вы хотите у них вызвать интерес тонкостями обучения нейронных сетей. Вот слепить фигу из козьих отходов пищеварения или облить помоями какую-нибудь известную личность - вот это им зайдет... сотни тысяч просмотров гарантированы. А если сделать это еще и с талантом - то и миллионы. Так что если Вам нужна популярность или заработок, то Вы явно не о том снимаете ролики.
@alex_step_
2 жыл бұрын
@@user-lc9jk4ww8o Интерес у людей есть. А вот то, что людей таких не много с этим, конечно не поспоришь. Ты конечно, можешь считать, что это обычный ролик каких тысячи в сети. Но нет. У тебя всё доходчиво. Лайк. Подписка.
Если кто-то делал нейросеть для распознавания рукописных цифр, то напишите, пожалуйста, ваши гиперпараметры (батчи и мини-батчи тоже), метод активации нейрона и количество эпох, через которое вы получили более менее обученную нейросеть. Я для диплома делаю почти такую же нейросеть (там ещё латинские буквы) с нуля на C#, и мне бы хотелось с чем-то сравнить результаты обучения, что бы понять - обучение сделано правильно или нет.
Спасибо
На подумать. Задача с выключателями решается только с помощью проводов. Схема очень простая.
лучший, у других слишком много вышмата
Это же проходной выключатель. Легко решается посредством проводов) логика простая
Понятно, вот только загвостка у меня долгое время с пониманием логики 3-х формул обратного распространения. Как их вообще получили?
@user-lc9jk4ww8o
2 жыл бұрын
Локальный градиент - это ошибка умноженная на производную от той или иной функции (f`(x)=f(x)*(1-f(x)) - производная сигмоидной функции). На этот счет очень много скучного материала в интернете... Я специально не стал его приводить. Советую посмотреть книги: Тарик Рашид "Создаем нейронную сеть" и Л.Н. Ясницкий "Искусственный интеллект", в них доступно объясняется как была получена формула обратного распространения ошибки.
@user-oh9uf3ht3o
Жыл бұрын
@@user-lc9jk4ww8o а как реализовать нейронную сеть для прогнозирования временных рядов в Excel, например температуру окружающей среды на завтра?
Полезно
Здравствуйте видео огонь, но есть один вопрос как рассчитать сумму ошибок на выходном нейроне, если их три на выходе?
@user-lc9jk4ww8o
Жыл бұрын
Так на выходных нейронах не надо считать сумму ошибок! Ошибка e = y - d, где y - это то что выдал нейрон, а d - то что на нем ожидалось. Сумма ошибок считается только на скрытых слоях.
@GennadiyBunin
Жыл бұрын
@@user-lc9jk4ww8o Получается на этих трех выходных будет своя ошибка?
@user-lc9jk4ww8o
Жыл бұрын
@@GennadiyBunin ну да, см. 10:04
Отличное объяснение принципа работы нейронных сетей!!! Спасибо за видео. Подскажите что за программа нейросимулятор и где её можно найти?
@user-lc9jk4ww8o
Жыл бұрын
Это неросимулятор Ясницкого Л.Н и Черепанова Ф.М. Попробуйте поискать на www.lbai.ru/ в лабораторном практикуме Nsim5sc.zip
@L_A_B_
Жыл бұрын
@@user-lc9jk4ww8o Благодарю!
@peters6007
11 ай бұрын
Спасибо большое!@@user-lc9jk4ww8o
2-1 нейросеткой решается XOR
Будет продолжение?
@user-lc9jk4ww8o
Жыл бұрын
Хотелось бы надеется, что да, но очень сильно занят(((
Материал хороший, качество видео ужасное, жаль.
Ниуя не какого устройства не надо нужен 5жильный кабель и два выключателя на два положения№
Вероятно автор не внимательно изучил источники, многие из которых сообщают что проходной выключатель это очень простая схема состоящая только из одних проводов - stroisovety.org/wp-content/uploads/2014/07/proxodnoj-vyklyuchatel-03.jpg 🙂
@user-lc9jk4ww8o
2 жыл бұрын
Мое упущение, нужно было в условиях задачи отметить, что в примере используются обычные выключатели.
@user-oh9uf3ht3o
Жыл бұрын
@@user-lc9jk4ww8o а как реализовать нейронную сеть для прогнозирования временных рядов в Excel, например температуру окружающей среды на завтра?