Обучение нейронной сети на Python
ฝัง
- เผยแพร่เมื่อ 14 ส.ค. 2021
- Настало время написать свою собственную нейронную сеть и алгоритм её обучения. С нуля. На чистом питоне. Чтобы раз и навсегда разобраться, как именно всё это работает.
В этом видео мы будем использовать информацию о том, как устроена простая полносвязная нейросеть (многослойный перцептрон), как обучить нейронную сеть с помощью стохастического градиентного спуска, как написать на Python инференс для нейросети и как вычислить градиент с помощью обратного распространения ошибки. Для ознакомления с этими темами рекомендую посмотреть предыдущие видео:
1. Знакомство с нейронными сетями: • Нейронные сети за 10 м...
2. Как обучить нейронную сеть: • Как обучить нейронную ...
3. Инференс нейронной сети на Python: • Нейронная сеть на Pyth...
4. Обратное распространение ошибки: • Обратное распространен...
Обучать будем модель для классификации цветка ириса (по четырем скалярным признакам). В качестве обучающей выборки будем использовать набор данных - Ирисы Фишера.
После создания первого минимального цикла обучения я кратко покажу, как можно улучшить алгоритм обучения за счёт различных фишек: как можно настраивать гиперпараметры, как можно менять начальную инициализацию весов нейросети, и т.д. А также покажу как реализовать батч (batch) - подход, позволяющий стабилизировать стохастический градиентный спуск.
Код из видео: github.com/dkorobchenko-nv/nn...
Меня зовут Дмитрий Коробченко, и на моём канале будет много чего интересного, так что подписывайтесь и нажимайте на колокольчик, чтобы ничего не пропустить: / @user-uy8zl7qd2e
#Нейросети #ГлубокоеОбучение #ДмитрийКоробченко #НейронныеСети #МашинноеОбучение #ИскусственныйИнтеллект #ОбучениеНейросети #ГрадиентныйСпуск #Python #Numpy
Рекомендуемый порядок просмотра:
1. Нейронные сети за 10 минут: th-cam.com/video/GT6imQDxqko/w-d-xo.html
2. Как обучить нейронную сеть: th-cam.com/video/uWd9nyn0ql8/w-d-xo.html
3. Нейронная сеть на Python с нуля: th-cam.com/video/xMz7XSaqdRA/w-d-xo.html
4. Обратное распространение ошибки: th-cam.com/video/bW4dKxtUFpg/w-d-xo.html
5. Обучение нейронной сети на Python: th-cam.com/video/bXGBeRzM87g/w-d-xo.html
@Алан Ав залей на пастебин)
Отличная работа! И очень жаль, что автор забросил канал.. Очень хотелось бы послушать про выбор гиперпараметров.
Содержание, визуализация, оформление -- всё просто огонь. Удачи каналу.
Большое спасибо, Дмитрий. На одном дыхании просмотрел весь плейлист и разобрался в теме. Такой потрясающей подачи я нигде не видел.
Много роликов смотрел про нейронные сети, поверьте на градиенте мозг закипел у меня. Но когда переложили на код, все стало на столько понятно, что элементарнее некуда.
Спасибо за доходчивое объяснение!!!
это невообразимо круто. теория, практическое применение, качественная картинка и даже сквозной сюжет между роликами. поражён, рад, что открыл этот канал для себя
Ураа, новое видео. Ожидание того стоило)
как же он хорош.
Наткнулся на канал, за раз всё посмотрел, что-то потом пересмотрю). Жаль, что год видосов не было, но наверняка эта вкуснота продолжит появляться
Дмитрий! Очень хорошо и доступно объясняете!
Хотелось бы увидеть видео с построением отдельного def, с помощью которого можно задавать отдельные слои с указанием количество нейронов и определенной функции активации, а также использовать функцию активации RELU c утечкой.
Отличное видео, буду рекомендовать всем родственникам и соседям =). А еще очень интересно Ваше мнение по поводу литературы для начинающих data scientist-ов, хотелось бы видео с разбором книг по нейронным сетям (плюсы и минусы) и собственными рекомендациями. Ну а если снимать подобный контент нет желания, напишите пожалуйста комментарием, заранее спасибо!)
Какой же фантастический материал... Спасибо большое!
спасибо братишка, отличный видос, не пропадайте)
Спасибо за такое подробное и понятное объяснение по обучению и созданию нейронной сети. Потратил больше 2х недель на то, чтобы разобраться с этой задачей, пересмотрел кучу видеолекций и книг, но только благодаря вашим коротким роликам смог собрать всю информацию в целостную картину. Успехов вам.
Спасибо за видео! С линалом всё более или менее ясно, но надо самому написать, что бы точно разобраться. Было бы интересно узнать об алгоритмах конвертации изображений во входные параметры нейросети
можно же в тупую представить изображение как значения цветов(RGB) и подавать их, конечно у такой нейросетки будет миллион входных нейронов, но можно использовать сверточную и будет всё не так плохо
Если дунуть уроки заходят на ура) Крутая подача, спасибо за объяснение) Стало более понятно 🎉🎉🎉
Офигенно, не забрасывай канал плиз!
Дмитрий, обалденный курс!!!
Наверно, лучший из существующих.
И уж точно лучший из тех, что я видел
Хоспаде, Дмитрий спасибо. Разбирался по вашим видео и нескольким статьям 1.5 недели, чтобы не в тупую повторить , а прям разобраться и адаптировать под свою задачу. Получилось. Моя сеть вместо ирисов считает логическое И
Браво👍👍👍всё разложил по полочкам 👍👍👍
очень подробно и грамотно все объясняете. правда иногда нужно по 2-3 раза переслушать. лайк и ждем новых роликов. От себя прошу разобрать сверточные сети с 0. также как и этот пример
Очень интересный материал. Спасибо вам за работу. Ждем ваших новых работ!!! Научите научить нейросеть восполнять пробелы в картинках...
Классная и понятная подача материала
Нужно про магию питона отдельное видео )
Спасибо вас за ваш труд, у вас очень талантливо и наглядно получается!
Все круто!!!!Мне этот ролик помог за один вечер разобраться с нейронными сетями. До этого ролика я просил мне объяснить, что это такое и никто не смог. Причем я обращался к людям которые уже работали с нейронными сетями (как то работали).
Будь первым на ру сегменте (как минимум) , кто расскажет популярно, о гиперпараметрах больше, чем "метод тыка"!
Благодаря вашим видеороликам, я написал свою нейронную сеть в качестве дипломного проекта и окончил университет
Очень вам благодарен ❤
@@aligatorpe классифицировал предметы одежды 5 категорий к различным поголным условиям. На вход подавались:
1) температура в градусах Цельсия
2) скорость ветра в м/с
3) погодные условия (ясно, облачно, дождь, снег, туман)
4) пол человека
На выходе определнный предмет одежды
Было 5 отдельных моделей:
1)головные уборы
2) обувь
3) аксессуары (шарфы и перчатки)
4) торс
5) ноги
Данные о погоде брались с опреденного источника
На выходе моделей были идентификаторы одежды из базы данных
Точность для разных моделей разная
Для головных уборов, обуви и аксессуаров точность была близка к 100%, так как было немного вариантов одежды
Для торса и ног точность была в пределах 80-90% из-за большого количества вариантов одежды
@@aligatorpe да
По итогу эти 5 моделей были включены в модуль рекомендаций телеграм бота. Пользователь бота при регистрации указывает свой пол и город. По кнопке Получить рекомендацию от Нейросети пользователь получает 2 сообщения
В первом указаны погодные условия в его городе, во втором - предлагаемая одежда
Топ, очень доходчиво, жду еще видео)
Дмитрий,вопрос: как вы относитесь к применению алгоритмов машинного обучения в интерфейсах "мозг-компьютер" наподобие neuralink Илона Маска?
Спасибо! Продолжай в том же духе!! Как тебе такая идея, рассказать на пальцах про обучение с подкреплением? Должно быть не менее интересно, а если ещё и простой пример на основе тенсорфлов, то вообще будет супер!? Удачи и не пропадай!
Видео просто супер!
Как всегда все на высоте
Хотелось бы урок по zip и магии питона! Очень хорошо обьясняете, давно не видел таких классных уроков на ютуб)
a = ["mama", "papa"]
b = [33,45]
zip(a, b) == [("mama",33), ("papa",45)] магия 🙂
ну и или в обратную сторону работает.
Здравствуйте, Дмитрий. Буду очень рад, если Вы снимете видео по магии питона.
Огромное спасибо!
Круто!)
хорошая подача информации. куда пропал? ждем продолжения
Дмитрий а будет ли следующий урок? Интересует в деталях как повысить точность нейросети. Проверка модели на адекватность. Про Batch больше рассказать. Да и вообще посмотреть хороший и качественный контент от Вас. Поделитесь Вашими знаниями... Нам полезно - а Вам приятно!
Очень приятная подача, подписался. Есть ли у вас возможность выпускать ролики почаще ?
Спасибо за видео
Отдельное видео про вычисление количества нейронов в скрытых слоях определённо нужно!
Блин, чел, круто получалось! Жаль забросил(
Я не чего не смыслю в этой теме так как от её далёк, но у меня возник один вопрос, а можно ли прописать получение входных данных с других ресурсов и как это сделать?
какие программы вы используете чтобы создавать такие красивые анимации?
Хотим видео про магию python!!!
Редкий "Информационный брилиант!"
Ну ладно, на батче я всё же поплыл )
На такой скорости и с такой плотностью информации ролик нужно пересматривать несколько раз, причём конспектируя.
Но видео очень полезно, хотя бы как видеоконспект. Если вдруг возникнет необходимость погрузиться в кроличью нору, чтобы понять и запомнить всю математику под капотом работы с батчами - то всегда можно разобрать данный видос с литком и ручкой.
Спасибо за видео, но как теперь отправить всё это на видеокарту, чтоб там формировать батчи и вычислять, а не гонять данные из опративы в видеопамять, там считать одну матрицу, а потом гнать резултат обратно из видеопамяти в оперативу при вычисление каждой матрицы отдельно?
круто!
Спасибо. Попробую переписать и посмотреть как будет работать в отладчике. Просто вобще не понимаю математику((
Бро, ты куда пропал на 9 месяцев? Не забрасывай ютуб. Твой монтаж топовый, продолжай в том же духе и ты станешь популярным как Onigiri, Vectozavr, foo52ru
Класс, когда будет продолжение? Сейчас самое актуальное время продолжить развивать канал :)
Видео отличное, но я совсем не понял как можно обучить нейросеть при другом датасете. точность обучения во всех случаях на одном значении застревает. Буду очень благодарен помощи
Теперь тоже самое хорошо бы на Keras или PyTorch)))
Здравствуйте можете помочь разобраться? в общем я считаю что придумал улучшенную формулу вычисления весов одного нейрона позволяющую найти веса в один такт, я не программист и не математик и формулу по понятным причинам разглашать я не могу, так как же мне разобраться и возможно извлечь из этого пользу? я не знаю. По пробую показать примерный процесс моей работы на эту тему может это даст вам возможность лучше разобраться с чем и кем вы имеете дело:
Пример обученного нейрона к которому должен прийти мой:
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 и привести их к таковым.
9:03 жесть, это было неожиданно. Вы куда пропали, ребята, отличный потенциальный канал, вроде
Добрый день ,Дмитрий,а можете записать серию видеороликов по созданию нейронной сети с предсказанием данных а не классификацией!
Последний видос год назад, канал мертв
Cool, man
Можно пожалуйста видео про дпльнейшее изменение гиперпараметров
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 да это вообще неважно в данном случае. Даже если персептрон будет один, мой совет будет актуальным. А этот кейс я использовал для примера.
Спросил у нейронке, странно что прорывов уже нету.😮
возможно нейросеть обучить так чтобы она выдавала новые прорывы в науке?
ChatGPT & Midjourney | AI bot:
Да, нейросети могут быть обучены для создания новых научных открытий. Например, исследователи могут использовать нейронные сети для анализа больших объемов данных, поиска скрытых закономерностей и предсказания новых тенденций в научных исследованиях. Такие нейросети могут помочь ускорить процесс открытия новых знаний и способствовать развитию науки. Однако важно помнить, что нейросети должны быть обучены на правильных данных и с правильными методами, чтобы избежать искажений или ошибок в результатах исследования.
Где видео? давно небыло
Нужно видео по магии питона
Хорош прожарил мой мозг) Пожалуй буду дальше деградировать в своих c# думая максимум об ООП..
Очень хорошая рвбота. Жаль что закончилась как говоритса на самом интересном месте :(
жду разбор сверхточных (и/или) рекуррентных нейронных сетей пролайкате! кто тоже_)
Дмитрий, спасибо за урок! Чтобы лучше понять все нюансы, воспроизвел этот урок на C++: th-cam.com/video/ty6lNZ1mF9Y/w-d-xo.html
На х2 - ваще чума))
а как веса достать то?
да вы батенька шутник "если чтото осталось непонятным". я понял,что ничего не понял и одновременно понял все. т.е. каша в голове удалась славная и знатная
Я хочу видео про гиперпараметры
А для чего если есть chatgpt?
ого такой классный контент и так мало подписчиков
Нужно похлопать чтобы автор вернулся. Автор возвращайся.
И всё-таки не очень понятен хинт с инициацией весов.
Ну сдвиг (-0.5) и умножение на 2 - ещё как-то понятно, но зачем на корень дроби умножать - не понятно
Релоцировался ? Не забрасывай канал.
Конечно я мог бы признаться в том, что я тупой, но легче сказать, что автор генерирует случайные и бессмысленные фразы/формулы, чтобы самоутвердиться на фоне таких, как я ))
batch_x, batch_y = zip(dataset[i * BATCH_SIZE : i * BATCH_SIZE + BATCH_SIZE])
ValueError: too many values to unpack (expected 2)
Разобрался - моя ошибка: batch_x, batch_y = zip(*dataset[i*BATCH_SIZE : i*BATCH_SIZE+BATCH_SIZE])
Всё работает!!!
Больщое спасибо за уроки!!!
Удачи и вдохновения!!!
чел хорош)
я должен по хорошему раз 10 посмотреть на x0.25 но мне лень и я просто скопирую код из github
Жесть какая то. Почему такие люди ни в министерствах и советах директоров сидят. Я 15 лет объясняю руководству что такое среднеквадратичное отклонение и чем оно лучше чем отклонение факта от плана😂
А это вообще космос. Между реальной экономикой и такими ребятами пропасть в квадрате.
Когда уже кто нибудь придет и заставит капиталистов и госорганы использовать стохастические методы управления. Наверное никто. Это сделают нейросети.
Ни..на не понял но интересно
Автор вернись пожалуйста!!!
ничиво не понимаю в этой математике :< какие то формулы преподносят так, словно я их с детства знаю. Какие-то буквы большие, какие то маленькие, ничего не понял.
жаль, что канал заброшен(((
здравствуйте программисты из мгсу
Включите это th-cam.com/video/Z8INzXR0J_8/w-d-xo.html вместе с этим роликом одновременно, получатся крутые тайминги