Обучение нейронных сетей | Глубокие нейронные сети на Python

Поделиться
HTML-код
  • Опубликовано: 23 ноя 2024
  • НаукаНаука

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

  • @007Riga
    @007Riga 4 года назад +11

    К этому уроку надо 100% возвращаться после практики. Спасибо большое. Вашим студентам повезло. У Вас талант, к преподаванию, а это очень сложно!

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

      Спасибо за приятный отзыв!

    • @007Riga
      @007Riga 4 года назад

      @@AndreySozykin Да это правда. Спасибо Вам.

  • @АлексейСорокин-ъ8ф
    @АлексейСорокин-ъ8ф 6 лет назад +31

    Градиент - направление наискорейшего возрастания функции. Мы же хотим минимизировать значение функции ошибки. Поэтому двигаться при градиентном спуске будем не по градиенту, а по антиградиенту (т.е. в противоположном направлении).

    • @AndreySozykin
      @AndreySozykin  6 лет назад +18

      Да, именно так. В лекции ошибка. Скоро перезапишу.

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

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

    • @DDDD_D-u9xy
      @DDDD_D-u9xy Год назад

      градиенту всё равно, функция возрастает или убывает

  • @ГеоргийОрлов-г5в
    @ГеоргийОрлов-г5в 6 лет назад +3

    Афигенский курс!! За 8 минут объяснил то, что я 10 лет не понимал. Андрей, обязательно продолжайте!!!

    • @AndreySozykin
      @AndreySozykin  6 лет назад +2

      Спасибо за приятный отзыв! Буду продолжать обязательно!

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

    Спасибо вам за этот превосходный урок! Это великолепно!)
    Так доходчиво и понятно объяснили достаточно сложные для понимания темы)

  • @dmitriyzlobenets8365
    @dmitriyzlobenets8365 5 лет назад +2

    Спасибо Андрей. Благодаря вам и моему преподу по системному программированию стал интересоватся этой темой.

    • @AndreySozykin
      @AndreySozykin  5 лет назад

      Отличная новость, спасибо!

  • @yuriihalychanskyi8764
    @yuriihalychanskyi8764 6 лет назад +5

    Спасибо вам за курс, все ясно и доходчиво)

  • @dondublon1
    @dondublon1 7 лет назад +22

    Хорошо бы дублировать термины по-английски. Всё равно же придётся читать англичскую лит-ру, чтобы ориентироваться.

    • @AndreySozykin
      @AndreySozykin  7 лет назад +5

      Да, это полезно. Я стараюсь делать, но, видимо, не всегда получается.

    • @Jingotube
      @Jingotube 5 лет назад

      на русском литературы (+видео) нынче стало много, + оффлайн-курсов

  • @ВасилийПончиков
    @ВасилийПончиков 5 лет назад +2

    Очень крутые видео! Большое вам спасибо. И за обзор кагл, который еще предстоит рассмотреть.

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

    Андрей, скажите пожалуйста, уместна ли аналогия:
    Часто большой путь в разработку ЯП, вплоть до своей VM, начинается с Hello World средствами API одного из высокоуровневых языков.
    Также и в машинном обучении: сначала бы научиться пользоваться уже готовыми открытыми библиотеками а уже потом, по мере необходимости, писать свою "уникальную" реализацию.
    p.s. Не устаю благодарить вас за ваши Труды.

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

      Вопрос очень интересный. Если вкратце, есть два подхода к образованию:
      - Подход классических университетов, когда нужно сначала изучить основы и только потом переходить к практике. Нельзя ничего использовать, если ты не знаешь, как это работает. Такой подход наиболее предпочтителен, если хотим обучать ученых или прикладных исследователей.
      - Подход технических университетов, когда на первом месте стоит решение прикладных задач. приветствуется использование готовых инструментов, из которых собирается решение как из кирпичей. Если что-то не работает, тогда залезаем внутрь "кирпичей" и разбираемся, как они устроены. Можно и написать свою уникальную реализацию, если это нужно для решения прикладной проблемы, и стандартные инструменты не позволяют.
      У вас аналогия второго пути. Мне лично такой путь больше нравится, возможно, потому что у меня инженерное образование. Но первый путь нисколько не хуже второго, есть много людей, которые предпочитают именно его.

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

      @@AndreySozykin Спасибо

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

    Обучение нейронных сетей - это подбор весов. Замечательно. Ни тебе ЧТО ТАКОЕ нейронные сети, ни ЗАЧЕМ их нужно обучать, ни ЧТО такое веса и для чего они нужны. Всё просто, разведка боем, очень удобно, рекомендую!

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

      Это ведь не первое видео в курсе. Вот плей-лист, там в начале есть, что такое нейронные сети - ruclips.net/video/GX7qxV5nh5o/видео.html

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

      @@AndreySozykin да понял я уже понял всë, спасибо!

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

    Андрей, добрый день. Очень интересный курс. Скажите, есть ли готовые обученные модели (аналоги распознавания лиц) по распознаванию других объектов. Например - есть сто тысяч изображений произведений искусства. И по произвольной фотографии одного из них - определить какое из фото в базе данных максимально соответствует этому произвольному . И скажите как можно связаться с Вами в telegram например. Спасибо

  • @vasyapupkin9338
    @vasyapupkin9338 7 лет назад +3

    Спасибо Андрюха!

    • @AndreySozykin
      @AndreySozykin  7 лет назад +1

      +Vasya Pupkin, пожалуйста!

  • @itt1118
    @itt1118 7 лет назад +32

    о красавчик элез, не всю жизнь ведь игры стримить

    • @AndreySozykin
      @AndreySozykin  7 лет назад +6

      +I TT игры я, кстати, никогда не стримил :-)

    • @denislomanov155
      @denislomanov155 6 лет назад

      Просто вы на этого персонажа похожи (или он на вас) ruclips.net/user/ElezWarfacevideos

  • @polinalanina9045
    @polinalanina9045 7 лет назад +2

    А как вычислять количество скрытых слоёв? И как между ними распределяется ошибка?

    • @AndreySozykin
      @AndreySozykin  7 лет назад +6

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

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

    Изучаю нейронки 2 день, и возник вопрос. Результат на новых данных, обученной сетки зависит же только от настроенных весов? К примеру мы натренировали сеть на 3 выборках задачи XOR, и теперь при подачи новой выборки будем надеяться, что веса подойдут и под эту выборку и мы получим то что хотим. В некоторых статьях пишут, что сеть сама определяет сходство новых данных и старых и определяет, что мы хотим на выходе, но это же невозможно в прямом смысле?

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

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

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

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

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

      Да, в процессе работы сеть не знает, что получится. Ей без разницы.

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

      @@AndreySozykin Спасибо за ответ)

  • @ДмитрийАлександрович-п9т

    Просто супер!
    Очень доходчиво.

  • @ДинараБаймагамбетова-з5п

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

    • @АлександрМут-ф5у
      @АлександрМут-ф5у 4 года назад

      ruclips.net/video/HA-F6cZPvrg/видео.html

    • @АлександрМут-ф5у
      @АлександрМут-ф5у 4 года назад

      ruclips.net/video/AZG0j0pNY-4/видео.html это первое видео. Выше продолжение. Очень понятно про градиент.

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

    Сложновато. Видимо надо доказывать сходимость метода для разных типов сигнала. Ну и стоимость алгоритма непонятно какая. Буду дальше смотреть))

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

      Можно и нужно доказывать и стоимость оценивать. Но мой курс не об этом, а о практическом применении.

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

      @@AndreySozykin Возможно, когда досмотрю станет понятнее. Просто везде идут разговоры о необходимости ферм из видеокарт, для решения простейших задач. Если бы были какие-то заранее ориентиры, для какого рода задач какие вычислительные мощности требуются - было бы понятнее. Но курс Ваш, а не мой. У Вас уже и опыт огромный и талант лектора. Так что не смею критиковать. Прослушаю, почитаю литературу, будет ясно. Благодарю за Ваши Старания!!!

  • @sergeyufimtsev711
    @sergeyufimtsev711 8 лет назад +1

    Вы в конце лекции говорите об ошибках на выходах нейрона и рассчёте ошибки на входе. А разве не наоборот, у нейрона же один выход, а входов много?

    • @AndreySozykin
      @AndreySozykin  8 лет назад +5

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

    • @sergeyufimtsev711
      @sergeyufimtsev711 8 лет назад

      хорошо, понял, спасибо

  • @Avague
    @Avague 7 лет назад +1

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

    • @AndreySozykin
      @AndreySozykin  7 лет назад +1

      +Рустам Абасов, ошибка может уходить в бесконечность, так что ответ обратным не будет.

    • @Avague
      @Avague 7 лет назад

      а если остановится на большом значении ошибки,то может можно найти ту величину ошибки ,когда ответ всегда обратен?

    • @AndreySozykin
      @AndreySozykin  7 лет назад

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

    • @Avague
      @Avague 7 лет назад +1

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

  • @ИванЕлизаров-й5с
    @ИванЕлизаров-й5с 4 года назад +3

    Спасибо!

  • @sergeyradimashvili9309
    @sergeyradimashvili9309 7 лет назад

    Огромное спасибо за труд!!!Скажите,а планируется ли материал по "обучению с подкреплением"?Очень интересно именно эту сферу освоить.И если нет, то не могли бы вы посоветовать материал по этой теме?Просто в инете много теории,а практического материала по "обучению с подкреплением" практически нету. 😢 За ранее спасибо! 😁

    • @AndreySozykin
      @AndreySozykin  7 лет назад

      +Sergey Radimashvili, к сожалению, в обучении с подкреплением я не разбираюсь. Поэтому лекцию сделать не смогу. Готовых материалов тоже не знаю.

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

    Хотел спросить на сколько это информация актуальна в 2021?

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

      В видео рассказывается о математических основах обучения нейронных сетей, без привязки к инструментам. Эти основы не поменялись, так что видео актуально.
      Обновленная версия курса есть на платформе открытого образования - openedu.ru/course/urfu/PYDNN/. Пока курс закрыт, но запись на него начнется в феврале.

  • @isorport32
    @isorport32 7 лет назад +1

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

    • @AndreySozykin
      @AndreySozykin  7 лет назад

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

    • @isorport32
      @isorport32 7 лет назад +1

      А есть информация, как природа подбирает эти коэффициенты?

    • @AndreySozykin
      @AndreySozykin  7 лет назад

      У меня точно нет.

    • @ГеоргийОрлов-г5в
      @ГеоргийОрлов-г5в 6 лет назад

      Почитай про мемристоры. Синапсы автоматически подбирают эти веса, так же как и мемристоры.

  • @ncado2747
    @ncado2747 6 лет назад +21

    смотрю на 2х скорости

    • @AndreySozykin
      @AndreySozykin  6 лет назад +6

      Хорошо, что youtube позволяет смотреть на комфортной скорости.

    • @TheMRARSONES
      @TheMRARSONES 6 лет назад +2

      Похоже ты робот, если воспринимаешь смысл формул на двойной скорости!

    • @AndreySozykin
      @AndreySozykin  6 лет назад +2

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

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

    1.25-1.50 и норм

  • @sergeprog
    @sergeprog 5 лет назад

    Заболел мозг...

  • @НиколайКапитан-ф8л
    @НиколайКапитан-ф8л 4 года назад

    Теория без практики полная хрень.

  • @ilmakeyouone
    @ilmakeyouone 7 лет назад +2

    А зачем все эти формулы, если вы их не можете нормально объяснить? Я могу также взять и учебник по нейросетям прочитать. Вы с книги это надиктовываете? Урок ничем от тысячи других таких же "уроков" не отличается. Статьи на хабре и то лучше

    • @dydai
      @dydai 6 лет назад +1

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

    • @AndreySozykin
      @AndreySozykin  6 лет назад +5

      +Дюдя Усовский, не согласен, что нужно разбирать вещь. Вы автомобиль сначала разбирать и собирать научились, перед тем, как на нем ездить? То же самое с компьютером и смартфоном. Есть много вещей, которые мы используем без детального понимания их внутреннего устройства. Сейчас техника стала настолько сложной, что просто необходимы уровни абстракции, скрывающие эту сложность.
      Поэтому есть разные подходы к обучению: начинаем с основ и через 3-5 лет будем способны самостоятельно написать программу, которая распознает рукописные цифры. Или наоборот, берем готовые решения, применяем их для своих задач, и постепенно разбираемся во внутреннем устройстве. Мне больше нравится второй вариант. Но оба варианта жизнеспособны и подходят разным людям. Так что выбирайте сами, что вам нравится. В интернете есть много материалов, построенных совершенно по разному. Те же статьи на хабре с объяснением теории.

    • @dydai
      @dydai 6 лет назад

      Andrey Sozykin я в детстве очень много разобрал часов, самые простые - ходики, и механические. За всю жизнь ни разу так и не собрал, но привычка разбирать осталась)
      Конечно, если я хочу научится ездить на автомобиле мне не надо его разбирать, достаточно знать базовые знания о двигателе, коробке передач, пдд и т.д.(хотя отсутствие таковых знаний не мешает ездить многим личностям). Но если я захочу собрать свой, даже простой автомобиль, то придеться лезть под капот.
      Вот у меня с нейросетями так, уже как год пытаюсь понять и создать свое, но пока, что недавно, появился крохотный свет в конце тоннеля. С основами разобрался, у меня закипает на сверточных сетях, а они мне прям, ой как интересны. Был бы благодарен, если вы б ответили на пару вопросов

  • @MightyMindsDev
    @MightyMindsDev 6 лет назад +2

    Отвратительное объяснение
    Я кто ? Профессор математики ?
    Вы людям объясняете , а не Перельману

    • @DentArturDent
      @DentArturDent 6 лет назад +2

      Lucky_irishman _ школьных знаний математики для понимания того, о чем говориться в ролике, вполне достаточно

    • @ГеоргийОрлов-г5в
      @ГеоргийОрлов-г5в 6 лет назад +1

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

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

      @@DentArturDent , это в каких школах нынче высшую математику преподают? Раньше матанализ и линейную алгебру только в универах преподавали.
      Впрочем, немного гугления и пара лекций на ютубе могут прояснить все непонятные моменты. Но смотреть нужно вдумчиво.

  • @neocortexlab
    @neocortexlab 5 лет назад +1

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