Нашёл ошибку. Тайминг = 10:59. !!! Т.е. не -0.47284736 как у автора, а -0.047284736. Ноль пропущен после запятой. Но что интересно, дальше в таблице данные по сумматорам и функции активации занесены правильно. Значит автор пропустил ноль просто при создании презентации, но не при расчётах. Т.о. для первой комбинации (2,1,3 на входе и 1 на выходе) на последнем нейроне функция активации действительно вернёт 0.495983613 . ЗЫ. Спасибо за видео, достаточно доходчиво. Многие уроки в сети страдают тем, что нет примеров с наглядными расчётами - лишь голая теория...
Прекрасное видео! Очень понятное объяснение принципа работы персептрона)) Жду следующий урок! Давай быстрее)) Тоже хочу запрограммировать нейронную сеть. Хочу попробовать научить сеть распознавать объект на изображении, но я в этом новичок и мне нужен пример..((
Спасибо за видео. Два вопроса. 1. Зачем в примере выполняется forward propagation для обучающих примеров 2-4 с использованием изначальных значений весовых коэффициентов (11:58-13:09)? Если я правильно понял, перед тем, как проводить обратное распространение ошибки для второго и следующих за ним обучающих примеров (начиная с 15:57) проводится повторный расчёт выходов нейронов с использованией скорректированных весовых кожффициентов. А результаты первых вычисления значений нейронов для этих примеров нигде не используются. Я что-то пропустил? 2. Почему в нижней формуле на 7:02 для значения дельты (то есть абослютной ошибки значения S) разница y-d умножается, а не делится на производную y по s? Я встречал эту формулу в нескольких источниках именно в таком виде, но никак не могу отделаться от мысли, что правильно будет [дельта * (производная y по s) = y-d], а не [дельта = (y-d)*(производная y по s)]. Может быть я неправильно понимаю физический смысл дельты?
Вы в следующем видео (по реализации mlp на js) привели 2 рекомендации: 1) В первом слое должно быть нейронов в 2 раза больше количества входов 2) Общее количество нейронов не должно быть равно или больше количества примеров в обучающей выборке - иначе сеть переучится. А у вас нет таких же полезных рекомендаций отдельно для задач классификации, отдельно для задач прогнозирования? Например, сколько должно быть выходных нейронов в том и другом случае, какие лучше алгоритмы обучения использовать (наискорейший спуск, наискорейший спуск с моментами, Левенберга-Марквардта, эвристические)?
На самом деле это все индивидуальные случаи. Но к примеру с классификацией можно на выходе иметь количество нейронов равное количеству классов. Но все же это больше индивидуальный подход к решению конкретной задачи.
@@mortaele2494 В данном видео нет никакой связи между входным вектором и требуемым выходом, я писал их произвольно, просто для учебного примера. В этом и заключается основная суть обучения нейронных сетей с учителем. Мы в нейронных сетях обучения с учителем, заставляем их находить взаимосвязи во входном воздействии так, как это необходимо нам. По этой причине я могу позволить себе поставить произвольные значения. А вот в сетях с обучением без учителя, они самостоятельно находят закономерности во входных воздействиях и мы туда влезть не можем .
@@nicknick4167 Да, я понял в чем вопрос. Нет там все в порядке. Вы даже можете пересчитать (0.495983613−1)^2+(0.496019059−0.5)^2+(0.495941273−1)^2+(0.496047431−0.5)^2 будет равно 0.508139189 и если умножить это число на 0.508139189×(1÷2) тогда получится ответ 0.254069595. Я не стал выносить эту операцию в расчеты потому, что пришлось бы переносить на новую строчку, либо уменьшать шрифт. Но ни того, ни другого я делать не хотел потому, что и так мелкий шрифт и много строк. Слева представлена формула, в которой есть данное умножение и я посчитал этого достаточным для восприятия информации. Но если вдруг, у кого-то возникнет вопрос касательно этого повода, тогда они увидят Ваш комментарий и все поймут. :)
Спасибо за видео. Но по мне здесь:ruclips.net/video/t-Jpm1axBko/видео.html более наглядно и проще показано, возможно там ошибки. Если есть то рад узнать критику, дабы узнать истину. Я так понял что способы расчётов выражениях у вас отличаются. И теперь думаю кто из вас прав в итоге). Но всё равно спасибо. =)
Спасибо за комментарий! Принципы алгоритма обратного распространения ошибки едины, просто при некоторых случаях их можно представлять по разному. Данное видео я делал с позиции того, чтобы показать, в простой и наглядной форме как работает данный алгоритм. По этому считаю, что критика чужого труда будет является не совсем корректной с моей стороны. Если то видео нагляднее и понятнее, значит, к сожалению, мне не удалось достичь поставленной цели.
@@RomanMamedov333 Думаю достичь поставленной цели в принципе удалось. Просто нужна хоть какая та мат подготовка перед просмотром(но это не точно =)). А касательно того видео, почему там было проще понять, может быть расчёты разбиты на более мелкие итерации. Различие в расчётах которое я заметил(надеюсь не ошибся) при нахождении ошибок весов сети, вы сразу домножили производную функции активации, а он это делал только при пересчёте весов. Но я это понял не сразу, только после того как пересмотрел несколько раз ваше и его видео. Поэтому может мне показалось сложнее, но всё равно спасибо. Но вот не касаемо даже вашего видео а вообще темы, то единственно что я до сих пор не понял это про нейроны сдвига, и про константный вход нейрона со своим весом который равен как правило 1. Надеюсь оно у вас есть в других видео, я просто только недавно попал на ваш канал. Ещё раз спасибо.
@@vyacheslavs_z3572 Данное видео я делал с позиции того, чтобы математическую базу свести к арифметической. Ну, возможно, только экспонента может немного выбиваться из данного русла, но все же знание этого не обязательно для реализации, т.к. в языках программирования все уже реализовано(экспонента), достаточно передать аргументы. Касательно вопроса о производной, Вы ее еще встретите в следующем видео. Также читайте комментарии, там возникали вопросы, я давал развернутый ответ.
Господи что вы употребляете нейронщики - не можете по человечески обьяснить такую простую вещь - показываете миллион значений и формул - вы как будто сговарились
Жизнь - это череда интеллектуальных препятствий, которые необходимо преодолеть. Так уж сложилось, что сегодня вашим препятствием является понимание нейроных сетей. Успокойтесь, переварите информацию и продолжайте просматривать, пока не перейдете планку понимания. Затем все эти нейросети будут казаться не сложнее чем школьная арифметика.
Спасибо за видео, очень полезно и интересно
Нашёл ошибку. Тайминг = 10:59.
!!!
Т.е. не -0.47284736 как у автора, а -0.047284736. Ноль пропущен после запятой.
Но что интересно, дальше в таблице данные по сумматорам и функции активации занесены правильно. Значит автор пропустил ноль просто при создании презентации, но не при расчётах.
Т.о. для первой комбинации (2,1,3 на входе и 1 на выходе) на последнем нейроне функция активации действительно вернёт 0.495983613 .
ЗЫ. Спасибо за видео, достаточно доходчиво. Многие уроки в сети страдают тем, что нет примеров с наглядными расчётами - лишь голая теория...
Прекрасное видео! Очень понятное объяснение принципа работы персептрона))
Жду следующий урок! Давай быстрее))
Тоже хочу запрограммировать нейронную сеть. Хочу попробовать научить сеть распознавать объект на изображении, но я в этом новичок и мне нужен пример..((
Спасибо, Андрей! Уже готовлю материал по следующему уроку, скоро выпущу.
@@RomanMamedov333 Ждем, ждем....
Шел восьмой месяц....
Спасибо за видео. Два вопроса.
1. Зачем в примере выполняется forward propagation для обучающих примеров 2-4 с использованием изначальных значений весовых коэффициентов (11:58-13:09)? Если я правильно понял, перед тем, как проводить обратное распространение ошибки для второго и следующих за ним обучающих примеров (начиная с 15:57) проводится повторный расчёт выходов нейронов с использованией скорректированных весовых кожффициентов. А результаты первых вычисления значений нейронов для этих примеров нигде не используются. Я что-то пропустил?
2. Почему в нижней формуле на 7:02 для значения дельты (то есть абослютной ошибки значения S) разница y-d умножается, а не делится на производную y по s? Я встречал эту формулу в нескольких источниках именно в таком виде, но никак не могу отделаться от мысли, что правильно будет [дельта * (производная y по s) = y-d], а не [дельта = (y-d)*(производная y по s)]. Может быть я неправильно понимаю физический смысл дельты?
почему при расчете функции потерь вы делите сумму разности квадратов на 2 а не на количество в обучающей выборке равное 4?
Вы в следующем видео (по реализации mlp на js) привели 2 рекомендации:
1) В первом слое должно быть нейронов в 2 раза больше количества входов
2) Общее количество нейронов не должно быть равно или больше количества примеров в обучающей выборке - иначе сеть переучится.
А у вас
нет таких же полезных рекомендаций отдельно для задач классификации, отдельно для задач прогнозирования? Например, сколько должно быть выходных нейронов в том и другом случае, какие лучше алгоритмы обучения использовать (наискорейший спуск, наискорейший спуск с моментами, Левенберга-Марквардта, эвристические)?
На самом деле это все индивидуальные случаи. Но к примеру с классификацией можно на выходе иметь количество нейронов равное количеству классов. Но все же это больше индивидуальный подход к решению конкретной задачи.
Подскажите пожалуйста,а в чем закономерность входных и выходных данных в обучающей выборке?
В данном видео или в целом при обучении?
В данном видео
@@mortaele2494 В данном видео нет никакой связи между входным вектором и требуемым выходом, я писал их произвольно, просто для учебного примера. В этом и заключается основная суть обучения нейронных сетей с учителем. Мы в нейронных сетях обучения с учителем, заставляем их находить взаимосвязи во входном воздействии так, как это необходимо нам. По этой причине я могу позволить себе поставить произвольные значения. А вот в сетях с обучением без учителя, они самостоятельно находят закономерности во входных воздействиях и мы туда влезть не можем .
В s1,0 пропущен 0 после запятой
Спасибо за видео!
ruclips.net/video/dDDLyxWuZvA/видео.html
Не пропущено ли здесь в расчетах умножение на 1/2?
Спасибо за комментарий! Укажите пожалуйста тайм-код предполагаемой ошибки.
@@RomanMamedov333 13:20
@@nicknick4167 Да, я понял в чем вопрос. Нет там все в порядке. Вы даже можете пересчитать (0.495983613−1)^2+(0.496019059−0.5)^2+(0.495941273−1)^2+(0.496047431−0.5)^2 будет равно 0.508139189 и если умножить это число на 0.508139189×(1÷2) тогда получится ответ 0.254069595. Я не стал выносить эту операцию в расчеты потому, что пришлось бы переносить на новую строчку, либо уменьшать шрифт. Но ни того, ни другого я делать не хотел потому, что и так мелкий шрифт и много строк. Слева представлена формула, в которой есть данное умножение и я посчитал этого достаточным для восприятия информации. Но если вдруг, у кого-то возникнет вопрос касательно этого повода, тогда они увидят Ваш комментарий и все поймут. :)
Сложна, сильна многа цифар
но всё равно смотреть интересно))
:)
Мой мозг умер.
Спасибо за видео. Но по мне здесь:ruclips.net/video/t-Jpm1axBko/видео.html более наглядно и проще показано, возможно там ошибки. Если есть то рад узнать критику, дабы узнать истину. Я так понял что способы расчётов выражениях у вас отличаются. И теперь думаю кто из вас прав в итоге). Но всё равно спасибо. =)
Спасибо за комментарий! Принципы алгоритма обратного распространения ошибки едины, просто при некоторых случаях их можно представлять по разному. Данное видео я делал с позиции того, чтобы показать, в простой и наглядной форме как работает данный алгоритм. По этому считаю, что критика чужого труда будет является не совсем корректной с моей стороны. Если то видео нагляднее и понятнее, значит, к сожалению, мне не удалось достичь поставленной цели.
@@RomanMamedov333 Думаю достичь поставленной цели в принципе удалось. Просто нужна хоть какая та мат подготовка перед просмотром(но это не точно =)). А касательно того видео, почему там было проще понять, может быть расчёты разбиты на более мелкие итерации. Различие в расчётах которое я заметил(надеюсь не ошибся) при нахождении ошибок весов сети, вы сразу домножили производную функции активации, а он это делал только при пересчёте весов. Но я это понял не сразу, только после того как пересмотрел несколько раз ваше и его видео. Поэтому может мне показалось сложнее, но всё равно спасибо. Но вот не касаемо даже вашего видео а вообще темы, то единственно что я до сих пор не понял это про нейроны сдвига, и про константный вход нейрона со своим весом который равен как правило 1. Надеюсь оно у вас есть в других видео, я просто только недавно попал на ваш канал. Ещё раз спасибо.
@@vyacheslavs_z3572 Данное видео я делал с позиции того, чтобы математическую базу свести к арифметической. Ну, возможно, только экспонента может немного выбиваться из данного русла, но все же знание этого не обязательно для реализации, т.к. в языках программирования все уже реализовано(экспонента), достаточно передать аргументы.
Касательно вопроса о производной, Вы ее еще встретите в следующем видео. Также читайте комментарии, там возникали вопросы, я давал развернутый ответ.
Господи что вы употребляете нейронщики - не можете по человечески обьяснить такую простую вещь - показываете миллион значений и формул - вы как будто сговарились
Жизнь - это череда интеллектуальных препятствий, которые необходимо преодолеть. Так уж сложилось, что сегодня вашим препятствием является понимание нейроных сетей. Успокойтесь, переварите информацию и продолжайте просматривать, пока не перейдете планку понимания. Затем все эти нейросети будут казаться не сложнее чем школьная арифметика.