Как обучить нейронную сеть?

Поделиться
HTML-код
  • Опубликовано: 17 янв 2020
  • Как обучить нейронную сеть? Что такое Loss, Градиентный Спуск и Backpropagation? Узнайте в этом видео!
    Нейронные сети обучаются с помощью метода обучения с учителем (обучение на прецедентах, Supervised Learning). Для обучения нейросети нам понадобится обучающая выборка (набор данных, датасет), состоящая из пар [входной объект, известный правильный ответ].
    Неявная задача нейронной сети - научиться обобщать, искать закономерности в данных. В противном случае будет переобучение (overfitting).
    У сети есть обучаемые параметры (веса) и гиперпараметры, которые не обучаются (например, количество слоёв, количество нейронов и т. д.).
    Введём понятие функция потерь (функция ошибок, Loss функция), которая характеризует то, как сильно нейронная сеть ошибается. Задача обучения - найти такие параметры (веса) нейронной сети, при которых функция ошибок минимальна. Другими словами, необходимо решить задачу оптимизации (минимизации ошибки относительно весов).
    Для регрессии можно использовать Mean Squared Error (MSE), а для классификации (где используются распределения вероятностей) - кросс-энтропию (Cross Entropy).
    Для поиска минимума функции можно использовать градиентный спуск. В этом методе итерационно вычисляется вектор градиента ошибки (частные производные ошибки по всем параметрам) и корректируются параметры по направлению антиградиента. Коэффициент при антиградиенте называется скорость обучения (Learning Rate).
    Для обучения нейронных сетей используется стохастический градиентный спуск (SGD) и его модификации. Ошибка в нём вычисляется не по всей выборке, а по батчу (batch) - небольшой группе обучающих образцов.
    Для вычисления градиента (частных производных) используется правило дифференцирования сложной функции (цепное правило, chain rule). При вычислении производной ошибки по весам нейросети мы движемся от ошибки назад (используя chain rule), поэтому такой алгоритм называется Обратное Распространение Ошибки (Backpropagation).
    Меня зовут Дмитрий Коробченко, и на моём канале будет много чего интересного, так что подписывайтесь и нажимайте на колокольчик, чтобы ничего не пропустить: / @user-uy8zl7qd2e
    #Нейросети #ГлубокоеОбучение #ДмитрийКоробченко #НейронныеСети #МашинноеОбучение #ИскусственныйИнтеллект #ОбучениеНейросетей #ГрадиентныйСпуск #Backpropagation

Комментарии • 112

  • @user-uy8zl7qd2e
    @user-uy8zl7qd2e  4 года назад +20

    Рекомендуемый порядок просмотра:
    1. Нейронные сети за 10 минут: ruclips.net/video/GT6imQDxqko/видео.html
    2. Как обучить нейронную сеть: ruclips.net/video/uWd9nyn0ql8/видео.html
    3. Нейронная сеть на Python с нуля: ruclips.net/video/xMz7XSaqdRA/видео.html
    4. Обратное распространение ошибки: ruclips.net/video/bW4dKxtUFpg/видео.html
    5. Обучение нейронной сети на Python: ruclips.net/video/bXGBeRzM87g/видео.html

    • @sciences6705
      @sciences6705 3 года назад

      а когда будет следующие видео?) а то хорошего контента по нейронным сетям в русскоязычном интернете мало! Очень хорошие видео!

    • @God_Programmer
      @God_Programmer 2 года назад

      На С# можно простой пример...

    • @Veyron104
      @Veyron104 4 месяца назад

      Интересно пощупать нейронки, но пока не понятно на сколько производительнее писать всё на пайтоне по сравнению с c#. Я так понял, что если писать в пайтоне, то там всё будет работать через действия с матрицами, которые можно перемножать на видюхе, а если всё делать через ООП в шарпе, тогда всё будет считать процессор?

  • @sladge17
    @sladge17 4 года назад +71

    Информативные видео, с хорошей инфографикой, жаль выходят не часто.

  • @kotikvacia9970
    @kotikvacia9970 4 года назад +17

    Качественное видео ! Огромное вам спасибо !)

  • @user-oo7ri3ov2d
    @user-oo7ri3ov2d 4 года назад +23

    Очень интересно смотреть. Нужно больше видео!

  • @BatterBean
    @BatterBean 4 года назад +3

    Спасибо, все понятно и не скучно👍

  • @nikolaygertsog5702
    @nikolaygertsog5702 2 года назад

    Супер, спасибо!

  • @user-kw4kp7eq9m
    @user-kw4kp7eq9m 10 месяцев назад

    Большое спасибо!

  • @New-vk6ks
    @New-vk6ks 2 года назад +9

    очень подробно и грамотно все объясняете. правда иногда нужно по 2-3 раза переслушать. лайк и ждем новых роликов. От себя прошу разобрать сверточные сети с 0. также как и этот пример

  • @koshergamer9093
    @koshergamer9093 Год назад

    Чел, огромное тебе спасибо.

  • @gruam1982
    @gruam1982 Год назад

    Очень интересно. 😮

  • @daniil8150
    @daniil8150 Год назад

    Спасибо!

  • @mary_folk
    @mary_folk 4 года назад +6

    Так держать,у тебя очень хорошо получается!

  • @hello_world_zz
    @hello_world_zz 2 года назад

    Thanks!

  • @georgyandreev7469
    @georgyandreev7469 4 года назад +16

    Спасибо большое за работу! Отсутствие хотя бы 1 дислайка говорит само за себя.
    Интересует вопрос касающийся функций активаций. Можете привести наглядные примеры того, как влияет та или иная функция на обучаемость модели? Например, объяснить геометрический (математический) смысл применения синусоиды, Relu, г. тангенса и в то же время не применения линейных и других функций.
    Опять же, я новичок, и возможно мое утверждение будет некорректное, но градиент же можно вычислить от любых функций.
    Просто принципы и методы благодаря вашему видео стали еще более понятными, но если спуститься на уровень самих вычислений, то появляются вопросы.

    • @user-uy8zl7qd2e
      @user-uy8zl7qd2e  3 года назад +6

      Есть некий сформировавшийся список функций активации, которые применяются в современных нейросетях. Получен он был эмпирическим путём. Не всегда у этих функций есть глубокий физический смысл. Часто это просто "улучшение" ранее использовавшейся более простой функции. За какими характеристиками функции можно следить: нелинейность (главное), дифференцируемость, простота вычисления функции и простота вычисления её производной, область определения (в какой диапазон функция отображает входные значения). Большинство таких функций активации это модификации сигмоидильных функций и функции ReLU. В разных задачах разные функции могут давать различный эффект. Если какая-то вычислительно сложная функция даёт лишь незначительный прирост в качестве, имеет смысл взять более простоую и быструю (напрмиер, обычный ReLU)

  • @Petro_Bandera
    @Petro_Bandera 3 года назад

    Ну спасибо. Объяснил...

  • @user-no7kz5er5v
    @user-no7kz5er5v 2 года назад +2

    Невероятно качественно. Хочу больше, пожалуйста

  • @vikaivanova543
    @vikaivanova543 2 года назад

    спасибо!

  • @DINOCOP3000
    @DINOCOP3000 3 года назад +11

    Хорошая пара видео про нейронные сети. Но, скорее всего вы столкнулись с проблемой, что их могут понять люди с хотя бы минимальными знаниями в этой области. Поэтому так мало просмотров... ну что ж тут поделать. Если вдруг ваша работа непосредственно связана со сферой Data Science - вы бы могли делиться своим опытом и знаниями, что привлекло бы больше аудитории)
    В любом случае удачи вам!

  • @Saplat
    @Saplat 2 года назад +1

    Полезные ролики, после плотного изучения материала, помогают всё структурировать.

  • @mrx8312
    @mrx8312 4 года назад +2

    Дмитрий, Спасибо за урок! Хорошо объясняете!
    Понятно, что значит градиентный спуск и понятна логика функции обновления весов w1 = w0 - α * ∂E/∂w * w0. Но пока четко не понятно как рассчитать градиент, получить конечную формулу и потом записать в коде (Python). Разобрать на простом примере бы для ясности. А также разобрать, CROSS ENTROPY чем лучше MSE.

    • @user-uy8zl7qd2e
      @user-uy8zl7qd2e  4 года назад +4

      Одно из следующих видео будет в точности на эту тему. Уже в разработке.

    • @user-uy8zl7qd2e
      @user-uy8zl7qd2e  3 года назад +3

      Вычисление градиента: Обратное распространение ошибки --> ruclips.net/video/bW4dKxtUFpg/видео.html

    • @mrx8312
      @mrx8312 2 года назад

      @@user-uy8zl7qd2e Супер!)

  • @theodoretryman4289
    @theodoretryman4289 2 года назад +2

    Контент просто бомба!!!! 👍👍Дмитрий я снимаю шляпу за такое видео. Спасибо вам большое и успехов вам 👏👏👏👏

  • @user-ns5ci8jl7k
    @user-ns5ci8jl7k Год назад

    Очень крутой контент

  • @arlask3373
    @arlask3373 4 года назад +4

    Спасибо за видео. Какие книги наиболее понятны для новичков в CV?

  • @zargerion7399
    @zargerion7399 Год назад

    Лучшее

  • @ZaharAbramovich
    @ZaharAbramovich 4 года назад

    Очень непростая математика. Спасибо, что общий принцип хорошо разъяснил.
    С таким пониманием мне сильно проще в подробности углубляться.
    Для чего нужно в один batch добавлять сразу несколько значений?
    До сих пор я думал, что на каждом шаге обучения - один набор данных для сетки.
    Как это работает в случае нескольких наборов в batch ?
    По каким критериям выбирают (подбирают наборы) их количество в batch ?

    • @user-uy8zl7qd2e
      @user-uy8zl7qd2e  4 года назад +3

      Спасибо за вопрос, более подробно всё это покажу на практике, когда будем обучать свою нейросеть на Python.
      Использование более одного образца в батче (на одном шаге) позволяет улучшить сходимость (и стабильность обучения) и ускорить процесс (из-за большего потенциала для распараллеливания). По поводу стабильности: если на каждом шаге будет только один образец, то вектор градиента будет сильно «колбасить» от итерации к итерации, а соответственно и весь процесс обучения. А если в батче несколько образцов, и градиент вычисляется по всем ним (ошибки суммируются), то поведение градиента будет более плавным (по аналогии со сглаживанием).
      Как выбирать элементы в батч? Делать это нужно случайным образом. Например, сначала мы перемешиваем все образцы в обучающей выборке, а потом уже в перемешанном списке набираем последовательно группы образцов.
      Чему должен быть равен размер батча? Это гиперпараметр, то есть его надо выбирать вручную экспериментально. Обычно используются значения в районе 64 (плюс минус степень двойки), но бывают и более экстремальные значения - зависит от финального качества и от возможности распараллелить (и уместить батч в памяти GPU).

  • @vitalica74
    @vitalica74 4 года назад

    Хорошее видео для общего ознакомления тех, кто не знает. Но судя по формулам, есть некоторая информация для специалистов. А для большей части слушателей нужна практика. Иначе, нету смысла снимать такие видео.

  • @user-ub9wv4vo9x
    @user-ub9wv4vo9x 3 года назад +1

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

    • @JenyNiigga
      @JenyNiigga 2 года назад +1

      After effects скорее всего

    • @user-ub9wv4vo9x
      @user-ub9wv4vo9x 2 года назад

      @@JenyNiigga спасибо, буду смотреть👍

  • @DM_Phoenix
    @DM_Phoenix Год назад +2

    Отличное объяснение. Правда мне придется помучиться чуток, так как высшую математику я явно в шарашке своей мимо ушей пропускал.

  • @ALEXCAPITAL666
    @ALEXCAPITAL666 3 года назад +1

    Хороший формат обучения

  • @murshig5370
    @murshig5370 2 года назад

    чеееееееел...... Лучшее объяснение на ютубе , легче только мозг себе другой имплантировать.Спасибо

  • @yatochka2609
    @yatochka2609 Год назад +1

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

  • @vk9948
    @vk9948 4 года назад

    Приятно удивлен вашей оперативностью. Большое спасибо за ответ.
    Имеется немало вопросов:
    Предназначение функции SOFTMAX - масштабирование выходных данных?
    Самостоятельно нашел материал о нормализации входных параметров нейросети.
    Почему в выходном слое можем не применять функцию активации, а суммарный сигнал сразу подаем на SOFTMAX? Избыточная нелинейность?
    Если функция активации сигмоида, стартовые случайные значения весовых коэффициентов должны располагаться в диапазоне [ -A, A] , где А - небольшое число ?
    Нулевые случайные значения весовых коэффициентов нежелательны?
    Каким рекомендуется выбирать небольшое число А, если все входные значения нормированы в диапазоне [0, 1]?
    Каковы рекомендации по выбору стартовых случайных значений смещений (диапазон, величина)?
    Напрмер, на входе нейросети 10 нормированных значений. Нейросеть должна классифицировать входной сигнал на три различных взаимоисключающих класса. Какое оптимальное количество слоев и по сколько нейронов рекомендуется для этого случая?

  • @sergeyv7164
    @sergeyv7164 6 месяцев назад

    Видео очень полезное и хорошо преподнесенное. Много просмотрел материала по обучению нейронных сетей, но нигде не сказано, почему делается всего лишь один (!) шаг при градиентном спуске? Почему не определить оптимальное значение параметров сети для конкретного примера, а а затем выставить новые значения для обучение и опять найти оптимум и.д.? Наверно, в продвижении по одному шагу градиентного спуска для каждого нового обучаемого примера и есть необъяснимая загадка настройки сети для разных вариантах входных значений!

  • @user-hl3ox1bb9v
    @user-hl3ox1bb9v 2 года назад

    А метод покоординатного спуска используется? А другие методы оптимизации?

  • @DanielTukanov
    @DanielTukanov Год назад

    очень хорошо рассказываете, спасибо вам!

  • @KOKERzeroZEROseven
    @KOKERzeroZEROseven 3 года назад

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

  • @VladKochetov
    @VladKochetov 4 года назад

    гиперпараметры можно подобрать при помощи Keras-tuner

  • @1f7f2b9
    @1f7f2b9 3 года назад +2

    презентация в монтаже 10/10

  • @Holme4
    @Holme4 Месяц назад

    То-есть, у меня 16 примеров для обучения, я прогоняю все 16 через нейросеть, записываю значения выхода в список, использую формулу MSE, и после этого корректирую веса?
    Меня учили иначе, прогоняем пример, вычисляем ошибку, распространяем ошибку, корректируем веса. повторяем все для 16 примеров.
    Какой метод правильный и что будет работать быстрее и точнее?

  • @NutsBeast
    @NutsBeast 3 года назад

    Вот бы новые видео по данной теме

  • @vk9948
    @vk9948 4 года назад +1

    Описанный Вами метод обратного распространения ошибки был предложен Д.Румельхартом с соавторами в 1986 году.
    Пример простой сети: 2 входных сигнала, 2 скрытых слоя по 2 нейрона плюс нейрон смещения для каждого скрытого слоя, выходной слой из 2 нейронов плюс нейрон смещения, все функции активации - сигмоиды.
    Вы могли бы для такой сети привести КОНКРЕТНЫЕ ПРАВИЛЬНЫЕ формулы ( которые можно закодировать в виде программы ) :
    - рекуррентного пересчета ошибки из выходного слоя сети на выход предыдущих скрытых слоев, вплоть до первого слоя;
    - формулы подстройки весовых коэффициентов и смещений для выходного слоя;
    - формулы подстройки весовых коэффициентов и смещений для предыдущих скрытых слоев (хотя бы одного) через пересчитанную ошибку выходного слоя.
    Много различных вариантов встречается, есть отличия.
    Для правильного понимания мне нужно самому все написать с нуля, без библиотек и движков.
    Буду очень признателен за список хороших, конкретных, понятных первоисточников, литературы по проектированию и обучению нейросетей прямого распространения.

    • @user-uy8zl7qd2e
      @user-uy8zl7qd2e  3 года назад

      "нужно самому все написать с нуля, без библиотек и движков" -- сейчас мы именно этим на канале и занимаемся. Два вышедших видео (ruclips.net/video/xMz7XSaqdRA/видео.html и ruclips.net/video/bW4dKxtUFpg/видео.html), а также следующее, которое на подходе, как раз про это. Надеюсь, Вы найдёте в них часть ответов.

  • @spiritmoon3457
    @spiritmoon3457 Год назад

    2:30 индекс i показывает вариант ответа или номер наблюдения? Если номер наблюдения, то что тогда такое zi и yi? Вектора предсказанных вероятностей и правильного ответа для наблюдения i? Но на 2:53 появляется индекс j. Это опечатка или тут другой уже индекс?

  • @ms_Mar
    @ms_Mar Год назад

    Привет! Планируешь дальше выпуски по нейросетям? У тебя очень хорошо получается! Может просто ушел куда-то на другую площадку?

  • @user-ws2gg2jh2z
    @user-ws2gg2jh2z 3 года назад +2

    В этом видео понял больше в курсе 70 часов про нейронные сети

  • @user-om5ry3vs1s
    @user-om5ry3vs1s 2 года назад

    Видео очень информативные, спасибо автору за них с:

  • @kuaranir2440
    @kuaranir2440 2 года назад

    Выходит, что обратное распространение ошибки - это когда сеть сама себя проверяет при подборе весов?
    MSE - для регрессии, Cross-enthropy - для классификации?

  • @Saber_Toothed_Rus
    @Saber_Toothed_Rus 4 года назад +2

    Рассказывй еще про железо, особенно то что могут собрать простые смертные как я.

  • @buzok512buz6
    @buzok512buz6 4 года назад +1

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

    • @hackerman5984
      @hackerman5984 3 года назад

      Да,мне тоже интересно.

    • @user-uy8zl7qd2e
      @user-uy8zl7qd2e  3 года назад +1

      Есть множество вариантов. Если мы реализуем нейросеть на Python и в таком же виде её отправляем в продакшн (для инференса), то либо мы храним веса (а иногда и модель) в формате того фреймворка, на котором мы обучали (Pytorch, TensorFlow), либо в формате numpy. "На другом компе" нейросеть загружется в память с помощью соответствующих Python скрптов (Ваших). Если вы всё же хотите получить на выходе EXE (скомпилированный бинарный файл), то скорее всего Ваша нейросеть (а точнее программа её загрузки и выполнения) будет написана на языке типа C++. В таком случае и формат данных (веса нейросети) и процедуру их загрузки скоере всего придётся реализовать самостоятельно. Или использовать некий нейросетевой фоеймворк, поддерживающий C++. Таких тоже достаточно много. Тогда дополнително может потребоваться конвертация весов нейросети из формата, который использовался при обучении в формат, используемый при инференсе. Сейчас зачастую всё крутится вокруг формата ONNX (там можно хранить и модель и веса к ней).

    • @buzok512buz6
      @buzok512buz6 3 года назад

      @@user-uy8zl7qd2e Спасибо за обширный ответ. Я делал в jupyter notebook, все заработало. Но при попытке запустить на другом компе вылезли ошибки которые не удалось устранить. По этому и возник вопрос как то сохранить для возможности запуска на любом компе. Написание нейронки на си не рассматриваю, ведь для новичка на питоне больше примеров.

  • @user-tw5nh3xb6k
    @user-tw5nh3xb6k 6 месяцев назад

    Привет, Дмитрий! Как можно вставить в мягкую игрушку нейронную сеть и начать её обучать человеку, который не умеет пользоваться компьютером? Предполагается что обучение будет проходить только через диалог, и если нужно подтвердить правильность выбора, то тоже через диалог или на крайний вариант две кнопки на мягкой игрушке "Да" или "Нет". Может такая игрушка уже создана и недорого состоит? Сколько будут стоить недорогие компоненты что бы мягкую игрушку снабдить всем необходимым?

  • @arslanhanchayev1365
    @arslanhanchayev1365 6 месяцев назад

    Здравствуйте. Помогите пожалуйста создать и перевести оборудование электроподстанции через нейросеть

  • @lavashut
    @lavashut Год назад +3

    Жаль что я алгебру не учил)

  • @lipinr6280
    @lipinr6280 4 года назад +4

    Ставлю класс

  • @user-rd2qz6px8w
    @user-rd2qz6px8w 3 года назад

    Дмитрий,как с вами связаться?имеется коммерческое предложение

  • @generalinvest8968
    @generalinvest8968 3 года назад +1

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

  • @warwithworld11
    @warwithworld11 Год назад

    А при каком значение производной можно заканчивать обучение?

  • @user-qq2kd7ey7j
    @user-qq2kd7ey7j Год назад

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

  • @vvoooov
    @vvoooov Год назад

    Не понимаю откуда берется функция ошибки. Ее же потом нужно дифференцировать? Значит она должна быть гладкой?

  • @user-br4gt7xu2j
    @user-br4gt7xu2j 4 года назад +2

    Отличные видеоролики!..Дети, вот светофор, он прямоугольный, устанавливается на вертикальностоящих столбах и навесных креплениях, у светофора есть три лампочки, к которым подходят провода, по которым идет переменный электрический ток, поверх каждой лампочки установлено плотное матовое стекло, каждое стекло своего цвета, расположение цветов следующее: снизу- зеленый, посередине - желтый, сверху - красный, цветные стекла помогают передать свет определенной длины волны, светофор устанавливается зачастую на неподвижных конструкциях, обращенных в определенную сторону, а его огни загораются поочередно... вам все понятно, дети?.. очень лаконично и красочно выглядит, но только непонятно ничего толком - (зачем все это нужно и самое главное как этим пользоваться на практике вообще не ясно).

  • @natekaen311
    @natekaen311 Год назад

    Дмитрий, что означает б(только наоборот)?

    • @user-sp7kj9ho6y
      @user-sp7kj9ho6y Год назад

      Изменение того, что после б

  • @firerun8599
    @firerun8599 3 года назад

    ОоО,вот это уже сложнее тема

  • @eugenesamrinov5771
    @eugenesamrinov5771 Месяц назад

    По-моему mse это не совсем евклидово расстояния. Евклидово расстояние с корнём, а у Вас с 1/n

  • @nabievYTMCPvP
    @nabievYTMCPvP Год назад +1

    Качество видео супер, но не для новичков к сожалению :(
    Слишком много непонятных терминов из линейной алгебры, из-за чего смысл некоторых моментов перестаёт быть понятен

  • @vk9948
    @vk9948 4 года назад

    Нейросеть c 3 нейронами на выходе должна классифицировать входной сигнал на три различных взаимоисключающих класса.
    Для правильной коррекции весов и смещений нейросети методом обратного распространения необходимо:
    А) использовать в качестве сигнала ошибки ОДНО (ОДИНАКОВОЕ) значение среднеквадратического отклонения полученного результата и правильного результата для всех выходных нейронов ??? ИЛИ
    Б) использовать в качестве сигнала ошибки для каждого нейрона его собственную разность реального и правильного сигнала ( 3 разных разности, для каждого нейрона - своя) ???
    Очень много хорошего пишут о генетических методах обучения нейросетей.

  • @user-fx8oh9pb8r
    @user-fx8oh9pb8r Год назад

    да

  • @vk9948
    @vk9948 4 года назад +1

    Большое спасибо за качественное, содержательное видео. Ждем продолжения.
    Любителям очень полезны и интересны подробные, конкретные примеры реализации и обучения простейших нейросетей, позволяющие правильно понять и сформулировать ПРИНЦИПЫ и АЛГОРИТМЫ.
    Например, довольно симпатичное видео на эту тему:
    ruclips.net/video/t-Jpm1axBko/видео.html
    МНОГОСЛОЙНЫЕ НЕЙРОННЫЕ СЕТИ. ОБУЧЕНИЕ. Backpropogation: ОБРАТНОЕ РАСПРОСТРАНЕНИЕ ОШИБКИ
    К его недостаткам примера следует отнести отсутствие смещения на входах нейронов, нет алгоритма коррекции значений смещения.
    Сделайте круче! У Вас получится!

    • @user-uy8zl7qd2e
      @user-uy8zl7qd2e  4 года назад

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

    • @vk9948
      @vk9948 4 года назад

      @@user-uy8zl7qd2e Добрый день, Дмитрий!
      Не могу до конца понять алгоритм обучения нейросети на стохастической выборке.
      Пропустив всю выборку в прямом направлении, получим массивы ошибок на нейронах выходного слоя от каждого входного сигнала.
      Можем вычислить суммарную ошибку, среднюю, среднеквадратическую и т.д.
      Для пересчета ошибки на предыдущие слои, для коррекции весов и смещений необходимы ИНДИВИДУАЛЬНЫЕ значения входов, выходов нейронов, значения производной функции активации от суммирования (вход*вес - смещение).
      Ошибка у нас «коллективная».
      Какие значения input, output, derivative (sum) брать из всего доступного множества брать для последующих расчетов?
      Прошу у Вас помощи и пояснений. Заранее благодарю. Владимир

  • @sergey7331
    @sergey7331 10 месяцев назад +1

    Отличные ролики! А отсутствие фоновой музыки дает +1000 в карму.

  • @user-zs8hg5dy7f
    @user-zs8hg5dy7f Год назад +1

    Судя по комментариям я один понимаю из сказанного только союзы и предлоги... Особенно порадовало на 3:42 "А теперь влючаем Матан" Он всегда у вас влючён!
    или "Самое простое можно просто посчитать евклидово расстояние или функцию MSE от этих двух векторов"...... Где тут просто? Никакого пояснения о чём речь вообще... ролик просто продолжается как будто я должен быть в курсе что это... Просто смотрите... я когда хочу НАЧАТЬ в чём-то разбираться... я топаю на ютюб... просто чтобы понять хоть какие-то основы.. но тут я по ощущениями роликов 100 до этого случайно не посмотрел чтобы просто понять о чём вы вообще... и да я смотрел первый ролик "Нейронные сети за 10 минут" та же история... я где-то курс по вышмату пропустил на него ссылки нет?

  • @vladimirsergeevich9788
    @vladimirsergeevich9788 2 года назад

    сразу практику бы видеть

  • @IvanBlueFire
    @IvanBlueFire 11 месяцев назад

    Блин а можешь пж в конце видео делать вывод и все что говорил в этом видео говорить в кратче и очень коротко чтобы вывод был и остался

  • @Ganna1712
    @Ganna1712 2 года назад

    Всё сложно.😀

  • @MrAdAmGaMeS
    @MrAdAmGaMeS Год назад

    Котелок начал закипать к концу

  • @saurontheblack6566
    @saurontheblack6566 11 месяцев назад

    усвоено 0 данных информации, я знаю как устроен персептрон, знаю про выборки и прочее, но как происходит обучение прям на самом дне с примерами мне не понятно

  • @buguhan
    @buguhan 2 года назад +1

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

    • @mark7854
      @mark7854 Месяц назад

      Если вы не можете понять нейросети, значит вам либо недостаточно математики, либо недостаточно концентрации и внимания

  • @user-gc8xq6yo7j
    @user-gc8xq6yo7j 3 месяца назад

    батч)))) batch - партия, пакет, серия, группа. туземцы forever))))))

  • @Andrey_Rychkov
    @Andrey_Rychkov 4 года назад

    Откуда взялась "б" наоборот?

    • @user-qq2jf7vr4b
      @user-qq2jf7vr4b 3 года назад +2

      Это знак частной производной

  • @user-zy7ui3ix1z
    @user-zy7ui3ix1z Год назад

    Но ошибка это просто число. Как Вы от неё берёте производную? Непонятно...

    • @user-sp7kj9ho6y
      @user-sp7kj9ho6y 11 месяцев назад

      Число - это для конкретного входа и конкретной матрицы весов. Ошибка - функция от входа ( аргумент Х) и матрицы весов (аргумент W).

  • @sytyluipes
    @sytyluipes Год назад

    здравствуйте программисты из мгсу

  • @alexshu1609
    @alexshu1609 3 года назад +1

    Тема сисег не раскрыта. Увы....

  • @nate_arrow
    @nate_arrow 2 года назад

    осталось непонятным как реализовать в коде

  • @DudeFromDust
    @DudeFromDust 11 месяцев назад

    После 1:25 уже ничего не понял))

  • @nouaksomtac6782
    @nouaksomtac6782 3 года назад

    а где такоизе но для питона???

  • @Sovereign_of_World
    @Sovereign_of_World 2 года назад +1

    Хорошие видео, но гипержестикуляция отвлекает

  • @kpacccavchik
    @kpacccavchik 3 года назад

    бессмысленное бла бла бла

    • @hackerman5984
      @hackerman5984 3 года назад

      Ну да,что ждать от человека без мозгов вроде тебя.

    • @user-om5ry3vs1s
      @user-om5ry3vs1s 2 года назад

      А что именно тебя не устраивает? Сделай тогда сам объяснение получше\