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

  Рет қаралды 6,923

Домашка

Домашка

Күн бұрын

Здесь подробно расписан алгоритм обратного распространения ошибки (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 Заключительное слово
#Нейросеть

Пікірлер: 57
@user-xz4ps5nh2c
@user-xz4ps5nh2c 2 жыл бұрын
Всё гениальное просто, непонятно, почему так мало просмотров!? Автору спасибо за доступность изложения и качественно смонтированный ролик.
@user-uc1do9ch7c
@user-uc1do9ch7c 4 ай бұрын
Это действительно самый понятный гайд на всем Ютубе. Большое спасибо автору!
@cherkasA
@cherkasA 2 жыл бұрын
не знаю сработает ли, но такого подробного объяснения я еще не находил спасибо!
@kataeff
@kataeff Жыл бұрын
Спасибо! Видео ОФИГЕННО полезно! Подобных видео на Ютуб полно, но все они копируют друг друга, при этом объясняют там так, что мои собственные нейроны сворачиваются в клубок. У Вас же всё понятно и доступно.
@velteck
@velteck Жыл бұрын
Очень долго искал нормальное объяснение обратного распространения и нашёл это видео. Незнаю почему другие не могут также понятно объяснять.
@user-mr1dy1go8i
@user-mr1dy1go8i 3 ай бұрын
Самое понятное объяснение
@flamehowk
@flamehowk Жыл бұрын
Ну вот я "хотя бы немного разбираюсь в электротехнике" и прекрасно понимаю, что такую задачу как раз элементарно решить с помощью только проводов - два дублирующих контура, которые на выключателях подключены в асимметричной логике. И не нужно никакого хитроумного устройства на микроконтроллерах.
@user-lc9jk4ww8o
@user-lc9jk4ww8o Жыл бұрын
Согласен, нужно было в условиях задачи отметить, что в примере используются обычные выключатели.
@johnpolak229
@johnpolak229 21 күн бұрын
Тоже ожидал, что автор скажет, что это типовая схема проходного выключателя.
@andreiragozin103
@andreiragozin103 6 ай бұрын
Проходной выключатель решается только с помощью проводов, но мы не ищем легких путей🤣
@vladlmlrzadorozhnyy3164
@vladlmlrzadorozhnyy3164 2 жыл бұрын
Хорошее видео, продолжай, все понятно как и надо и без фраз типа ну дальше все ясно без объяснений. Попробу переложить на Си, почему то на Python у меня не все получается
@skachat9000
@skachat9000 2 ай бұрын
Я был на конференции математиков, и пытался им объяснить, что такое нейросеть, и как раз таки backprogation. Занял 5 место, потому что люди зацепились за слова по типу градиента, ФУНКЦИИ активации, доказывали что ЭТО НЕ ФОРМУЛА ГРАДИЕНТА, хотя все было разжевано, но был допущен к участию в более крупной конференции. Смотря ваше видео, у меня сложилось ощущение, что на этот раз я буду им рассказывать как на пальцах считать... Потому что буду объяснять как вы на видео...
@Kkkooottt88
@Kkkooottt88 Жыл бұрын
Боже мой это наверное уже десятый "о ну вот этот мужик вроде понятно обьясняет" но только наконец-то благодаря этому видео у меня все получилось! Спасибо огромное! Просто хотел реализацию на Golang сделать гибкую. Спасибо огромное!
@KlinovAS
@KlinovAS Жыл бұрын
Самое самое толковое, подробное и понятно обьяснение, которое можно не только послушать и забыть а реально сделать любую свою конфигурацию и все будет работать. Большое спасибо. Я годами слушаю про эту нейросеть и меня волновал всегда вопрос. А как именно веса подбираются? Кто первый, кто второй? Как понять что поднимать или опускать и где именно, ведь есть много скрытых слоев... Также от себя отмечу (меня никто не понимает с моих знакомых), я считаю, что нейросеть вот эта "математическая" требует современной оптимизации. Здесь нет логики бинарной вообще. А должна быть логика как в шахматах, как в японской головоломке (с рисунком и цифрами). Я делал распознавание символов вообще по своему алгоритму не зная что придумали нейросеть. У меня работает обучение на много быстрей (за один проход выучил и применяем). И другой плюс в том, что я могу расширять аргументы, а нейросеть требует уже изменение в архитектуры (даже если один нейрон добавить), что приведет к полному длинному переобучению. Также моя модель если нет правильного результата то так и покажет что нет. А нейросеть угадывает дальше... Но у меня хуже обстановка если мы работаем с градиентом. Тут нейросеть покажет себя НАВЕРНОЕ лучше. Также свою модель я не усовершествовал. Сохраненные данные обучения занимают реально копейки и работает очень быстро. Другая моя программа распознает дубликаты музыки. Можна по разному поизвращаться - программа находит дубликат. Не может найти только если изменить темп. Третяя програмка должна была искать изображение, но я забросил. Единственное, что я искал по радиусу соседний пиксель, который отличался по контрасту и отрисововал грань. Тоже саме делает и нейросеть. В том отличии лишь, что ей нужно учиться, а у меня это уже фундамент. Вот по этому я уверен, что нейросеть та которая есть сейчас, это хайп из изобретения 80их годов. А реально никто ничего не хочет думать. По бинарным принятиям решения типа XOR/OR/AND... считаю что, легко можно было бы придумать специализируванную бинарнуйю "нейросеть", которая бы быстренько подобрала логику (не веса, а логику). Так как скрытый слой должен играет роль высшего приоритета. По вашему видео, я хоть понял что к чему в сети. Короче, если рандом на вход не подавать, то она не будет учиться. Раздолбит миллион машин сперва, а потом только научится рулить правильно влево/вправо. Считаю это абсурдно. Но если в симуляции, то пусть. Для кого-то главное результат. А из того что есть, результат впечетляет (в некоторых направлениях даже очень). НО, УВЕРЕН, могло бы быть в сотни раз лучше
@IncoStar
@IncoStar Жыл бұрын
Очень интересно!!! Так же было бы очень интересно как реализован многослойный перцептрон с двумя выходами и несколькими слоями. Очень признателен за проделанную работу.
@atosvanner4900
@atosvanner4900 Жыл бұрын
Интересные и понятные видео, отличная работа!!! Почему не продолжаете?
@user-lc9jk4ww8o
@user-lc9jk4ww8o Жыл бұрын
К сожалению нет пока времени(((
@metomarphoz
@metomarphoz Жыл бұрын
Лучшее объяснения я считаю.
@user-kz7jc2pf2f
@user-kz7jc2pf2f Жыл бұрын
Первый раз вижу такой сложный проходной выключатель )))
@user-lc9jk4ww8o
@user-lc9jk4ww8o Жыл бұрын
Простых путей не ищем)))
@oivanov520
@oivanov520 8 ай бұрын
Спасибо за ваш труд!!! Отличная подача материала!
@RunBull
@RunBull Жыл бұрын
самый понятный гайд на всем ютубе
@ssaidahmed
@ssaidahmed 5 ай бұрын
супер!
@makishimu25050
@makishimu25050 Жыл бұрын
Почему "с помощью проводов не решается" (01:45)?) Нужно лишь два 3 контактных выключателя. Это, по сути, исключающая или)) Спасибо за видео, было очень интересно!)
@duri7954
@duri7954 Жыл бұрын
Долго интересовала тема нейросетей, но проблема заключалась в том что мой мозг ни в никакую не воспринимал объяснения на более популярных видеорядах, казалось что эта тема - что то недостижимое для меня. После просмотра вашего видео я моментально смог понять что из себя представляет нейросеть и с чем ее едят (грубо говоря я искал любой простой и наглядный пример). Пример нейросети что был показан просто шикарно подходит для введения и начального понимания, благодаря нему я смог сделать свой первый и самый сложный шаг - понять механизм на самом примитивном уровне. Благодаря этому меньше чем за день после просмотра видеоряда у меня уже получилось реализовать свою собственную нейросеть без библиотек с нуля. Хоть она и до жути примитивна (определение циферки нарисованной на холсте 3x5), это все равно огромный прорыв. Первый шаг пройден, теперь дальнейшее развитие зависит только от меня, выражаю огромную благодарность автору за такую возможность.
@defix_gamedev
@defix_gamedev 3 ай бұрын
лучший, у других слишком много вышмата
@user-sx3ji1eg5i
@user-sx3ji1eg5i Жыл бұрын
Полезно
@limonello1964
@limonello1964 Жыл бұрын
Спасибо
@olegzorin3911
@olegzorin3911 Жыл бұрын
На подумать. Задача с выключателями решается только с помощью проводов. Схема очень простая.
@zloibot3899
@zloibot3899 Жыл бұрын
Это же проходной выключатель. Легко решается посредством проводов) логика простая
@flamehowk
@flamehowk Жыл бұрын
И второе - эту задачу как раз элементарно можно решить не просто однослойным перцептроном, но даже всего ОДНИМ нейроном. Для этого достаточно в качестве функции активации поставить пороговую функцию с диапазоном, где 0 < x < 2.
@user-lc9jk4ww8o
@user-lc9jk4ww8o Жыл бұрын
Да можно, но такой нейрон будет служить для узкоспециализированных задач, а ведь видео не об этом, а об алгоритме обратного распространения ошибки.
@flamehowk
@flamehowk Жыл бұрын
@@user-lc9jk4ww8o Я постоянно встречаю это утверждение, а значит, люди просто не понимают, что можно и по-другому. А то, что люди не понимают как это все работает, создает огромное количество трудностей. Но они и не пытаются понять - просто рисуют нейросети пошире, а в фермы для расчетов вкладывают побольше. Это не разумный путь... Вот Вы пытаетесь другим объяснить обратное распространение ошибки, а сами то до сих пор не знаете - почему же нейронная сеть работает и какие механизмы к этому приводят. Для Вас это до сих пор черный ящик. Так мы ни к чему не придем... А было бы неплохо, чтобы люди еще и старались понять - что они делают и почему.
@user-lc9jk4ww8o
@user-lc9jk4ww8o Жыл бұрын
@@flamehowk Ну в одном же видео все не расскажешь! Этому видео так-то предшествовали ещё два других. А поскольку у людей нет особого интереса по данной теме, по крайней мере на моем канале, то пока взял паузу.
@flamehowk
@flamehowk Жыл бұрын
@@user-lc9jk4ww8o Да никто этих знаний и не имеет. Все только копируют друг у друга структуру перцептрона и классический набор функций активации. Никому и в голову не приходит, что функция может быть пороговой, а не активирующей. Поэтому-то для мира глубокого обучения было открытием, что замена сигмоиды на ReLu, а вернее - просто удаление функции активации и добавление примитивного порога на нулевом значении, вдруг несказанно улучшило не только обучаемость нейронной сети, но и ее работу. Это называется - метод научного тыка. А понимания до сих пор ни у кого нет. Так что - было бы что рассказывать, давно бы рассказали. А что касается интереса к этой теме... дак что ж Вы удивляетесь, в нашем мире единицы думают, процента 2-3 тех, кто думает, что они думают, а в се остальные 97% - лучше умрут, чем будут думать. А Вы хотите у них вызвать интерес тонкостями обучения нейронных сетей. Вот слепить фигу из козьих отходов пищеварения или облить помоями какую-нибудь известную личность - вот это им зайдет... сотни тысяч просмотров гарантированы. А если сделать это еще и с талантом - то и миллионы. Так что если Вам нужна популярность или заработок, то Вы явно не о том снимаете ролики.
@alex_step_
@alex_step_ Жыл бұрын
@@user-lc9jk4ww8o Интерес у людей есть. А вот то, что людей таких не много с этим, конечно не поспоришь. Ты конечно, можешь считать, что это обычный ролик каких тысячи в сети. Но нет. У тебя всё доходчиво. Лайк. Подписка.
@rollocks9138
@rollocks9138 Жыл бұрын
Если кто-то делал нейросеть для распознавания рукописных цифр, то напишите, пожалуйста, ваши гиперпараметры (батчи и мини-батчи тоже), метод активации нейрона и количество эпох, через которое вы получили более менее обученную нейросеть. Я для диплома делаю почти такую же нейросеть (там ещё латинские буквы) с нуля на C#, и мне бы хотелось с чем-то сравнить результаты обучения, что бы понять - обучение сделано правильно или нет.
@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 9 ай бұрын
Спасибо большое!@@user-lc9jk4ww8o
@IncoStar
@IncoStar Жыл бұрын
Будет продолжение?
@user-lc9jk4ww8o
@user-lc9jk4ww8o Жыл бұрын
Хотелось бы надеется, что да, но очень сильно занят(((
@GennadiyBunin
@GennadiyBunin Жыл бұрын
Здравствуйте видео огонь, но есть один вопрос как рассчитать сумму ошибок на выходном нейроне, если их три на выходе?
@user-lc9jk4ww8o
@user-lc9jk4ww8o Жыл бұрын
Так на выходных нейронах не надо считать сумму ошибок! Ошибка e = y - d, где y - это то что выдал нейрон, а d - то что на нем ожидалось. Сумма ошибок считается только на скрытых слоях.
@GennadiyBunin
@GennadiyBunin Жыл бұрын
@@user-lc9jk4ww8o Получается на этих трех выходных будет своя ошибка?
@user-lc9jk4ww8o
@user-lc9jk4ww8o Жыл бұрын
@@GennadiyBunin ну да, см. 10:04
@nighthunter28
@nighthunter28 8 ай бұрын
2-1 нейросеткой решается XOR
@likey_dikey235
@likey_dikey235 2 жыл бұрын
Понятно, вот только загвостка у меня долгое время с пониманием логики 3-х формул обратного распространения. Как их вообще получили?
@user-lc9jk4ww8o
@user-lc9jk4ww8o 2 жыл бұрын
Локальный градиент - это ошибка умноженная на производную от той или иной функции (f`(x)=f(x)*(1-f(x)) - производная сигмоидной функции). На этот счет очень много скучного материала в интернете... Я специально не стал его приводить. Советую посмотреть книги: Тарик Рашид "Создаем нейронную сеть" и Л.Н. Ясницкий "Искусственный интеллект", в них доступно объясняется как была получена формула обратного распространения ошибки.
@user-oh9uf3ht3o
@user-oh9uf3ht3o Жыл бұрын
@@user-lc9jk4ww8o а как реализовать нейронную сеть для прогнозирования временных рядов в Excel, например температуру окружающей среды на завтра?
@user-zs4kv4ii7d
@user-zs4kv4ii7d 5 ай бұрын
Материал хороший, качество видео ужасное, жаль.
@user-sd3fk3fj2i
@user-sd3fk3fj2i Жыл бұрын
Ниуя не какого устройства не надо нужен 5жильный кабель и два выключателя на два положения№
@romanpopov8836
@romanpopov8836 Жыл бұрын
Вероятно автор не внимательно изучил источники, многие из которых сообщают что проходной выключатель это очень простая схема состоящая только из одних проводов - stroisovety.org/wp-content/uploads/2014/07/proxodnoj-vyklyuchatel-03.jpg 🙂
@user-lc9jk4ww8o
@user-lc9jk4ww8o Жыл бұрын
Мое упущение, нужно было в условиях задачи отметить, что в примере используются обычные выключатели.
@user-oh9uf3ht3o
@user-oh9uf3ht3o Жыл бұрын
@@user-lc9jk4ww8o а как реализовать нейронную сеть для прогнозирования временных рядов в Excel, например температуру окружающей среды на завтра?
Final increíble 😱
00:39
Juan De Dios Pantoja 2
Рет қаралды 27 МЛН
Can you beat this impossible game?
00:13
LOL
Рет қаралды 53 МЛН
WHY IS A CAR MORE EXPENSIVE THAN A GIRL?
00:37
Levsob
Рет қаралды 17 МЛН
Тестовое Лебедева
24:39
Andrey Lov
Рет қаралды 238
Обратное распространение ошибки
21:53
Дмитрий Коробченко
Рет қаралды 53 М.
Практика обратного распространения ошибки
13:33
Центр digital профессий ITtensive
Рет қаралды 7 М.
Самое простое объяснение нейросети
16:30
Программный Кот
Рет қаралды 107 М.
Обратное распространение ошибки
10:46
Центр digital профессий ITtensive
Рет қаралды 6 М.
В чем смысл Linux?
11:30
Домашка
Рет қаралды 98 М.
Final increíble 😱
00:39
Juan De Dios Pantoja 2
Рет қаралды 27 МЛН