Обучение нейронной сети на Python
Настало время написать свою собственную нейронную сеть и алгоритм её обучения. С нуля. На чистом питоне. Чтобы раз и навсегда разобраться, как именно всё это работает.
В этом видео мы будем использовать информацию о том, как устроена простая полносвязная нейросеть (многослойный перцептрон), как обучить нейронную сеть с помощью стохастического градиентного спуска, как написать на Python инференс для нейросети и как вычислить градиент с помощью обратного распространения ошибки. Для ознакомления с этими темами рекомендую посмотреть предыдущие видео:
1. Знакомство с нейронными сетями: • Нейронные сети за 10 м...
2. Как обучить нейронную сеть: • Как обучить нейронную ...
3. Инференс нейронной сети на Python: • Нейронная сеть на Pyth...
4. Обратное распространение ошибки: • Обратное распространен...
Обучать будем модель для классификации цветка ириса (по четырем скалярным признакам). В качестве обучающей выборки будем использовать набор данных - Ирисы Фишера.
После создания первого минимального цикла обучения я кратко покажу, как можно улучшить алгоритм обучения за счёт различных фишек: как можно настраивать гиперпараметры, как можно менять начальную инициализацию весов нейросети, и т.д. А также покажу как реализовать батч (batch) - подход, позволяющий стабилизировать стохастический градиентный спуск.
Код из видео: github.com/dkorobchenko-nv/nn...
Меня зовут Дмитрий Коробченко, и на моём канале будет много чего интересного, так что подписывайтесь и нажимайте на колокольчик, чтобы ничего не пропустить: / @user-uy8zl7qd2e
#Нейросети #ГлубокоеОбучение #ДмитрийКоробченко #НейронныеСети #МашинноеОбучение #ИскусственныйИнтеллект #ОбучениеНейросети #ГрадиентныйСпуск #Python #Numpy
Пікірлер: 140
Рекомендуемый порядок просмотра: 1. Нейронные сети за 10 минут: kzread.info/dash/bejne/eYhqy8-KdNvXm9I.html 2. Как обучить нейронную сеть: kzread.info/dash/bejne/p4uYm9CynpPXnJs.html 3. Нейронная сеть на Python с нуля: kzread.info/dash/bejne/qoGumbqMkdTKgqQ.html 4. Обратное распространение ошибки: kzread.info/dash/bejne/lItoxq2xpLisoMo.html 5. Обучение нейронной сети на Python: kzread.info/dash/bejne/lIx7pMeLqrCeZ8o.html
@sosun4lena453
Жыл бұрын
@Алан Ав залей на пастебин)
@yiyi52031
12 күн бұрын
Благополучие приходит, герой vpn, с нетерпением ждем сотрудничества с вами! Программа сотрудничества: Подарите своим поклонникам бесплатно на месяц дольше, и если поклонники довольны, и начиная с февраля, есть принадлежащие вам пополнения фан - взносов, мы вернем их вам из расчета 100 рублей на человека в месяц с единым расчетом 5 - го числа месяца. 2.Все поклонники платят напрямую, точно так же мы будем возвращать вам по 100 рублей на человека в месяц с единым расчетом 5 числа месяца. 3.Искренне сотрудничать, вы приходите, чтобы установить программу.
Отличная работа! И очень жаль, что автор забросил канал.. Очень хотелось бы послушать про выбор гиперпараметров.
Содержание, визуализация, оформление -- всё просто огонь. Удачи каналу.
Большое спасибо, Дмитрий. На одном дыхании просмотрел весь плейлист и разобрался в теме. Такой потрясающей подачи я нигде не видел.
Много роликов смотрел про нейронные сети, поверьте на градиенте мозг закипел у меня. Но когда переложили на код, все стало на столько понятно, что элементарнее некуда. Спасибо за доходчивое объяснение!!!
это невообразимо круто. теория, практическое применение, качественная картинка и даже сквозной сюжет между роликами. поражён, рад, что открыл этот канал для себя
Ураа, новое видео. Ожидание того стоило)
Благодаря вашим видеороликам, я написал свою нейронную сеть в качестве дипломного проекта и окончил университет Очень вам благодарен ❤
@t0shiik244
10 ай бұрын
@@aligatorpe классифицировал предметы одежды 5 категорий к различным поголным условиям. На вход подавались: 1) температура в градусах Цельсия 2) скорость ветра в м/с 3) погодные условия (ясно, облачно, дождь, снег, туман) 4) пол человека На выходе определнный предмет одежды Было 5 отдельных моделей: 1)головные уборы 2) обувь 3) аксессуары (шарфы и перчатки) 4) торс 5) ноги Данные о погоде брались с опреденного источника На выходе моделей были идентификаторы одежды из базы данных Точность для разных моделей разная Для головных уборов, обуви и аксессуаров точность была близка к 100%, так как было немного вариантов одежды Для торса и ног точность была в пределах 80-90% из-за большого количества вариантов одежды
@t0shiik244
10 ай бұрын
@@aligatorpe да По итогу эти 5 моделей были включены в модуль рекомендаций телеграм бота. Пользователь бота при регистрации указывает свой пол и город. По кнопке Получить рекомендацию от Нейросети пользователь получает 2 сообщения В первом указаны погодные условия в его городе, во втором - предлагаемая одежда
как же он хорош. Наткнулся на канал, за раз всё посмотрел, что-то потом пересмотрю). Жаль, что год видосов не было, но наверняка эта вкуснота продолжит появляться
Какой же фантастический материал... Спасибо большое!
спасибо братишка, отличный видос, не пропадайте)
Спасибо за такое подробное и понятное объяснение по обучению и созданию нейронной сети. Потратил больше 2х недель на то, чтобы разобраться с этой задачей, пересмотрел кучу видеолекций и книг, но только благодаря вашим коротким роликам смог собрать всю информацию в целостную картину. Успехов вам.
Дмитрий, обалденный курс!!! Наверно, лучший из существующих. И уж точно лучший из тех, что я видел
Если дунуть уроки заходят на ура) Крутая подача, спасибо за объяснение) Стало более понятно 🎉🎉🎉
Офигенно, не забрасывай канал плиз!
Хоспаде, Дмитрий спасибо. Разбирался по вашим видео и нескольким статьям 1.5 недели, чтобы не в тупую повторить , а прям разобраться и адаптировать под свою задачу. Получилось. Моя сеть вместо ирисов считает логическое И
Браво👍👍👍всё разложил по полочкам 👍👍👍
Спасибо вас за ваш труд, у вас очень талантливо и наглядно получается!
Дмитрий! Очень хорошо и доступно объясняете! Хотелось бы увидеть видео с построением отдельного def, с помощью которого можно задавать отдельные слои с указанием количество нейронов и определенной функции активации, а также использовать функцию активации RELU c утечкой.
Все круто!!!!Мне этот ролик помог за один вечер разобраться с нейронными сетями. До этого ролика я просил мне объяснить, что это такое и никто не смог. Причем я обращался к людям которые уже работали с нейронными сетями (как то работали).
Спасибо за видео! С линалом всё более или менее ясно, но надо самому написать, что бы точно разобраться. Было бы интересно узнать об алгоритмах конвертации изображений во входные параметры нейросети
@HaleraVirus
Жыл бұрын
можно же в тупую представить изображение как значения цветов(RGB) и подавать их, конечно у такой нейросетки будет миллион входных нейронов, но можно использовать сверточную и будет всё не так плохо
Видео просто супер!
Отличное видео, буду рекомендовать всем родственникам и соседям =). А еще очень интересно Ваше мнение по поводу литературы для начинающих data scientist-ов, хотелось бы видео с разбором книг по нейронным сетям (плюсы и минусы) и собственными рекомендациями. Ну а если снимать подобный контент нет желания, напишите пожалуйста комментарием, заранее спасибо!)
Круто!)
очень подробно и грамотно все объясняете. правда иногда нужно по 2-3 раза переслушать. лайк и ждем новых роликов. От себя прошу разобрать сверточные сети с 0. также как и этот пример
Классная и понятная подача материала
Нужно про магию питона отдельное видео )
Топ, очень доходчиво, жду еще видео)
Как всегда все на высоте
Будь первым на ру сегменте (как минимум) , кто расскажет популярно, о гиперпараметрах больше, чем "метод тыка"!
Очень интересный материал. Спасибо вам за работу. Ждем ваших новых работ!!! Научите научить нейросеть восполнять пробелы в картинках...
Огромное спасибо!
Спасибо за видео
Хотелось бы урок по zip и магии питона! Очень хорошо обьясняете, давно не видел таких классных уроков на ютуб)
@taraatonealy
Жыл бұрын
a = ["mama", "papa"] b = [33,45] zip(a, b) == [("mama",33), ("papa",45)] магия 🙂 ну и или в обратную сторону работает.
Отдельное видео про вычисление количества нейронов в скрытых слоях определённо нужно!
Очень приятная подача, подписался. Есть ли у вас возможность выпускать ролики почаще ?
Здравствуйте, Дмитрий. Буду очень рад, если Вы снимете видео по магии питона.
Спасибо! Продолжай в том же духе!! Как тебе такая идея, рассказать на пальцах про обучение с подкреплением? Должно быть не менее интересно, а если ещё и простой пример на основе тенсорфлов, то вообще будет супер!? Удачи и не пропадай!
хорошая подача информации. куда пропал? ждем продолжения
Спасибо большое! Что у вас за тема в visual studio?
Блин, чел, круто получалось! Жаль забросил(
Дмитрий,вопрос: как вы относитесь к применению алгоритмов машинного обучения в интерфейсах "мозг-компьютер" наподобие neuralink Илона Маска?
круто!
Редкий "Информационный брилиант!"
Хотим видео про магию python!!!
Дмитрий а будет ли следующий урок? Интересует в деталях как повысить точность нейросети. Проверка модели на адекватность. Про Batch больше рассказать. Да и вообще посмотреть хороший и качественный контент от Вас. Поделитесь Вашими знаниями... Нам полезно - а Вам приятно!
Нужно !!!
Класс, когда будет продолжение? Сейчас самое актуальное время продолжить развивать канал :)
Cool, man
👍👍👍
а как вытащить веса
Ну ладно, на батче я всё же поплыл ) На такой скорости и с такой плотностью информации ролик нужно пересматривать несколько раз, причём конспектируя. Но видео очень полезно, хотя бы как видеоконспект. Если вдруг возникнет необходимость погрузиться в кроличью нору, чтобы понять и запомнить всю математику под капотом работы с батчами - то всегда можно разобрать данный видос с литком и ручкой.
9:03 жесть, это было неожиданно. Вы куда пропали, ребята, отличный потенциальный канал, вроде
Мне понравилось
Все еще жду видео...
какие программы вы используете чтобы создавать такие красивые анимации?
Я не чего не смыслю в этой теме так как от её далёк, но у меня возник один вопрос, а можно ли прописать получение входных данных с других ресурсов и как это сделать?
Теперь тоже самое хорошо бы на Keras или PyTorch)))
Спасибо. Попробую переписать и посмотреть как будет работать в отладчике. Просто вобще не понимаю математику((
Бро, ты куда пропал на 9 месяцев? Не забрасывай ютуб. Твой монтаж топовый, продолжай в том же духе и ты станешь популярным как Onigiri, Vectozavr, foo52ru
Пожалуйста можно отдельное видео по магии питона
не пойму как соединить код на предсказание и код с обучением))
Можно пожалуйста видео про дпльнейшее изменение гиперпараметров
Спасибо за видео, но как теперь отправить всё это на видеокарту, чтоб там формировать батчи и вычислять, а не гонять данные из опративы в видеопамять, там считать одну матрицу, а потом гнать резултат обратно из видеопамяти в оперативу при вычисление каждой матрицы отдельно?
Добрый день ,Дмитрий,а можете записать серию видеороликов по созданию нейронной сети с предсказанием данных а не классификацией!
@bigsiege7684
Жыл бұрын
Последний видос год назад, канал мертв
а как записать веса? скажите пожалуйста
Здравствуйте можете помочь разобраться? в общем я считаю что придумал улучшенную формулу вычисления весов одного нейрона позволяющую найти веса в один такт, я не программист и не математик и формулу по понятным причинам разглашать я не могу, так как же мне разобраться и возможно извлечь из этого пользу? я не знаю. По пробую показать примерный процесс моей работы на эту тему может это даст вам возможность лучше разобраться с чем и кем вы имеете дело: Пример обученного нейрона к которому должен прийти мой: X1*W1=S1 + = E1 = Это выход нейрона без смещения и без функции активации просто число X2*W2=S2 После нахождения весов в один такт мой нейрон похож на: X1*W3=S3 + = E1 X2*W4=S4 веса НЕ те же но итог совпадает без ошибки, как то так. но если изменить X сы после обучения то будет расхождение в итогах, в общем W3 и W4 превратить в W1 и в W2 у меня так и не вышло конечно если не манипулировать X ми так что один из них превращается в 0 или в огромное число. Так было месяц назад, теперь я уже могу найти веса с помощью проверки сразу на двух вариантов X1,2,3,4 и E1,2 где теоретически W1,2 = W3,4 и привести их к таковым.
Видео отличное, но я совсем не понял как можно обучить нейросеть при другом датасете. точность обучения во всех случаях на одном значении застревает. Буду очень благодарен помощи
Дмитрий, спасибо за урок! Чтобы лучше понять все нюансы, воспроизвел этот урок на C++: kzread.info/dash/bejne/pq1qzrCTYdCsabw.html
Дмитрий, жаль что вы перестали новые видео делать(((
Как настроить чтоб писать нейронве сети
Нужно видео по магии питона
А как сделать нейронку, которая картинки делает по запросу ?
На х2 - ваще чума))
Хорош прожарил мой мозг) Пожалуй буду дальше деградировать в своих c# думая максимум об ООП..
16:00 не самое очевидное равенство. Автор опустил такие рассуждения: dE_dt_j = dsum(E_j)_dt_j = dE_j_dt_j, так как E_k при k !=j не зависит от t_j, следовательно все слагаемые, кроме i-го равны нулю. Остаётся только одно слагаемое
Дмитрий, вернитесь на Ютуб, пожалуйста
а на с++ будут уроки?
Дмитрий кое-что не рассказал. Ребята , для тех кто пытается повторить или сделать свою сеть, ловите мои грабли, чтобы самим не наступать: мы обучаем нейросеть не давать сам правильный ответ, а лишь выдать 100%ю вероятность того, что правильный ответ лежит в той или иной ячейке массива правильных ответов. Объясню на примере: Я учил свою сеть логическому И. a&b=c 1) 0&0=0 2) 1&0=0 3) 0&1=0 4) 1&1=1 И во время обучения я делал сначала неправильно: При подаче например двух нулей на вход говорил сети , что нужно получить 0. Для остальных комбинаций так же. Но на самом деле сесть должна выдать не результат 0 или 1 , а НОМЕР результата. То есть если подать на вход например 1ю комбинацию на вход из списка выше : 0 и 0, то сеть должна выдать номер ответа -1. Тогда вектор правильных ответов будет выглядеть как [1 0 0 0] . Индекс этой единственной в векторе ответов единице 1. Значит мы будем смотреть правильной ответ в 1й ячейке столбца ответов. Если подать вторую комбинацию 1&0 на вход , то вектор ответов сети будет выглядеть [ 0 1 0 0] , индекс этой единицы - 2. Следовательно правильный ответ лежит в ячейке 2 в векторе наших готовых правильных ответов. Для 1&1 - [ 0 0 0 1] -ячейка 4. То есть сеть не считает сам ответ, а только указывает индекс правильного ответа среди наших заготовленных. Собственно функция np.argmax(z) и выдаёт номер ячейки , в которой лежит максимальное значение из всей таблицы. Я неделю доходил до этого. Надеюсь кому-то поможет. Удачи.
@JohnWickMovie
Жыл бұрын
Зачем тебе так сложно? Для твоего кейса достаточно одного перцептрона. И достаточно одного выхода, используй другую фунцию ошибки и активации
@user-cr1hc9cj6t
Жыл бұрын
@@JohnWickMovie да это вообще неважно в данном случае. Даже если персептрон будет один, мой совет будет актуальным. А этот кейс я использовал для примера.
ого такой классный контент и так мало подписчиков
@Rumbur7388
9 ай бұрын
Нужно похлопать чтобы автор вернулся. Автор возвращайся.
Это очень жестко, очень сильно хотел во все это вникнуть, но через минут пять все слова превращаются шум из-за наплыва такого количества инфы
Где видео? давно небыло
Спросил у нейронке, странно что прорывов уже нету.😮 возможно нейросеть обучить так чтобы она выдавала новые прорывы в науке? ChatGPT & Midjourney | AI bot: Да, нейросети могут быть обучены для создания новых научных открытий. Например, исследователи могут использовать нейронные сети для анализа больших объемов данных, поиска скрытых закономерностей и предсказания новых тенденций в научных исследованиях. Такие нейросети могут помочь ускорить процесс открытия новых знаний и способствовать развитию науки. Однако важно помнить, что нейросети должны быть обучены на правильных данных и с правильными методами, чтобы избежать искажений или ошибок в результатах исследования.
Я хочу видео про гиперпараметры
Включите это kzread.info/dash/bejne/jGx9sNyRgpOwj5s.html вместе с этим роликом одновременно, получатся крутые тайминги
Очень хорошая рвбота. Жаль что закончилась как говоритса на самом интересном месте :(
а как веса достать то?
жду разбор сверхточных (и/или) рекуррентных нейронных сетей пролайкате! кто тоже_)
batch_x, batch_y = zip(dataset[i * BATCH_SIZE : i * BATCH_SIZE + BATCH_SIZE]) ValueError: too many values to unpack (expected 2)
@alexkayful
2 жыл бұрын
Разобрался - моя ошибка: batch_x, batch_y = zip(*dataset[i*BATCH_SIZE : i*BATCH_SIZE+BATCH_SIZE]) Всё работает!!! Больщое спасибо за уроки!!! Удачи и вдохновения!!!
Релоцировался ? Не забрасывай канал.
да вы батенька шутник "если чтото осталось непонятным". я понял,что ничего не понял и одновременно понял все. т.е. каша в голове удалась славная и знатная
А для чего если есть chatgpt?
Ни..на не понял но интересно
Конечно я мог бы признаться в том, что я тупой, но легче сказать, что автор генерирует случайные и бессмысленные фразы/формулы, чтобы самоутвердиться на фоне таких, как я ))
И всё-таки не очень понятен хинт с инициацией весов. Ну сдвиг (-0.5) и умножение на 2 - ещё как-то понятно, но зачем на корень дроби умножать - не понятно
чел хорош) я должен по хорошему раз 10 посмотреть на x0.25 но мне лень и я просто скопирую код из github
Жесть какая то. Почему такие люди ни в министерствах и советах директоров сидят. Я 15 лет объясняю руководству что такое среднеквадратичное отклонение и чем оно лучше чем отклонение факта от плана😂 А это вообще космос. Между реальной экономикой и такими ребятами пропасть в квадрате. Когда уже кто нибудь придет и заставит капиталистов и госорганы использовать стохастические методы управления. Наверное никто. Это сделают нейросети.
здравствуйте программисты из мгсу
Автор вернись пожалуйста!!!
жаль, что канал заброшен(((