Обучение нейронной сети на Python
Vložit
- čas přidán 14. 08. 2021
- Настало время написать свою собственную нейронную сеть и алгоритм её обучения. С нуля. На чистом питоне. Чтобы раз и навсегда разобраться, как именно всё это работает.
В этом видео мы будем использовать информацию о том, как устроена простая полносвязная нейросеть (многослойный перцептрон), как обучить нейронную сеть с помощью стохастического градиентного спуска, как написать на Python инференс для нейросети и как вычислить градиент с помощью обратного распространения ошибки. Для ознакомления с этими темами рекомендую посмотреть предыдущие видео:
1. Знакомство с нейронными сетями: • Нейронные сети за 10 м...
2. Как обучить нейронную сеть: • Как обучить нейронную ...
3. Инференс нейронной сети на Python: • Нейронная сеть на Pyth...
4. Обратное распространение ошибки: • Обратное распространен...
Обучать будем модель для классификации цветка ириса (по четырем скалярным признакам). В качестве обучающей выборки будем использовать набор данных - Ирисы Фишера.
После создания первого минимального цикла обучения я кратко покажу, как можно улучшить алгоритм обучения за счёт различных фишек: как можно настраивать гиперпараметры, как можно менять начальную инициализацию весов нейросети, и т.д. А также покажу как реализовать батч (batch) - подход, позволяющий стабилизировать стохастический градиентный спуск.
Код из видео: github.com/dkorobchenko-nv/nn...
Меня зовут Дмитрий Коробченко, и на моём канале будет много чего интересного, так что подписывайтесь и нажимайте на колокольчик, чтобы ничего не пропустить: / @user-uy8zl7qd2e
#Нейросети #ГлубокоеОбучение #ДмитрийКоробченко #НейронныеСети #МашинноеОбучение #ИскусственныйИнтеллект #ОбучениеНейросети #ГрадиентныйСпуск #Python #Numpy
Рекомендуемый порядок просмотра:
1. Нейронные сети за 10 минут: czcams.com/video/GT6imQDxqko/video.html
2. Как обучить нейронную сеть: czcams.com/video/uWd9nyn0ql8/video.html
3. Нейронная сеть на Python с нуля: czcams.com/video/xMz7XSaqdRA/video.html
4. Обратное распространение ошибки: czcams.com/video/bW4dKxtUFpg/video.html
5. Обучение нейронной сети на Python: czcams.com/video/bXGBeRzM87g/video.html
@Алан Ав залей на пастебин)
Благополучие приходит, герой vpn, с нетерпением ждем сотрудничества с вами!
Программа сотрудничества:
Подарите своим поклонникам бесплатно на месяц дольше, и если поклонники довольны, и начиная с февраля, есть принадлежащие вам пополнения фан - взносов, мы вернем их вам из расчета 100 рублей на человека в месяц с единым расчетом 5 - го числа месяца.
2.Все поклонники платят напрямую, точно так же мы будем возвращать вам по 100 рублей на человека в месяц с единым расчетом 5 числа месяца.
3.Искренне сотрудничать, вы приходите, чтобы установить программу.
Отличная работа! И очень жаль, что автор забросил канал.. Очень хотелось бы послушать про выбор гиперпараметров.
Содержание, визуализация, оформление -- всё просто огонь. Удачи каналу.
Большое спасибо, Дмитрий. На одном дыхании просмотрел весь плейлист и разобрался в теме. Такой потрясающей подачи я нигде не видел.
Много роликов смотрел про нейронные сети, поверьте на градиенте мозг закипел у меня. Но когда переложили на код, все стало на столько понятно, что элементарнее некуда.
Спасибо за доходчивое объяснение!!!
Ураа, новое видео. Ожидание того стоило)
это невообразимо круто. теория, практическое применение, качественная картинка и даже сквозной сюжет между роликами. поражён, рад, что открыл этот канал для себя
Спасибо за видео! С линалом всё более или менее ясно, но надо самому написать, что бы точно разобраться. Было бы интересно узнать об алгоритмах конвертации изображений во входные параметры нейросети
можно же в тупую представить изображение как значения цветов(RGB) и подавать их, конечно у такой нейросетки будет миллион входных нейронов, но можно использовать сверточную и будет всё не так плохо
как же он хорош.
Наткнулся на канал, за раз всё посмотрел, что-то потом пересмотрю). Жаль, что год видосов не было, но наверняка эта вкуснота продолжит появляться
Благодаря вашим видеороликам, я написал свою нейронную сеть в качестве дипломного проекта и окончил университет
Очень вам благодарен ❤
@@aligatorpe классифицировал предметы одежды 5 категорий к различным поголным условиям. На вход подавались:
1) температура в градусах Цельсия
2) скорость ветра в м/с
3) погодные условия (ясно, облачно, дождь, снег, туман)
4) пол человека
На выходе определнный предмет одежды
Было 5 отдельных моделей:
1)головные уборы
2) обувь
3) аксессуары (шарфы и перчатки)
4) торс
5) ноги
Данные о погоде брались с опреденного источника
На выходе моделей были идентификаторы одежды из базы данных
Точность для разных моделей разная
Для головных уборов, обуви и аксессуаров точность была близка к 100%, так как было немного вариантов одежды
Для торса и ног точность была в пределах 80-90% из-за большого количества вариантов одежды
@@aligatorpe да
По итогу эти 5 моделей были включены в модуль рекомендаций телеграм бота. Пользователь бота при регистрации указывает свой пол и город. По кнопке Получить рекомендацию от Нейросети пользователь получает 2 сообщения
В первом указаны погодные условия в его городе, во втором - предлагаемая одежда
спасибо братишка, отличный видос, не пропадайте)
Отличная серия видео, в ру сегменте найти чтото похожего качества нетривиальное занятие. Очень рад что объясняете с математикой, есть примеры реализации, которые пишете с нуля и которые опираются на теор материал, качественная картинка, звук и подача, все на высшем уровне, огромное спасиьо за труд
Отличное видео, буду рекомендовать всем родственникам и соседям =). А еще очень интересно Ваше мнение по поводу литературы для начинающих data scientist-ов, хотелось бы видео с разбором книг по нейронным сетям (плюсы и минусы) и собственными рекомендациями. Ну а если снимать подобный контент нет желания, напишите пожалуйста комментарием, заранее спасибо!)
Дмитрий! Очень хорошо и доступно объясняете!
Хотелось бы увидеть видео с построением отдельного def, с помощью которого можно задавать отдельные слои с указанием количество нейронов и определенной функции активации, а также использовать функцию активации RELU c утечкой.
Какой же фантастический материал... Спасибо большое!
Спасибо за такое подробное и понятное объяснение по обучению и созданию нейронной сети. Потратил больше 2х недель на то, чтобы разобраться с этой задачей, пересмотрел кучу видеолекций и книг, но только благодаря вашим коротким роликам смог собрать всю информацию в целостную картину. Успехов вам.
Круто!)
Офигенно, не забрасывай канал плиз!
Браво👍👍👍всё разложил по полочкам 👍👍👍
Хоспаде, Дмитрий спасибо. Разбирался по вашим видео и нескольким статьям 1.5 недели, чтобы не в тупую повторить , а прям разобраться и адаптировать под свою задачу. Получилось. Моя сеть вместо ирисов считает логическое И
Если дунуть уроки заходят на ура) Крутая подача, спасибо за объяснение) Стало более понятно 🎉🎉🎉
Топ, очень доходчиво, жду еще видео)
Спасибо за видео
Огромное спасибо!
очень подробно и грамотно все объясняете. правда иногда нужно по 2-3 раза переслушать. лайк и ждем новых роликов. От себя прошу разобрать сверточные сети с 0. также как и этот пример
Как всегда все на высоте
Видео просто супер!
Классная и понятная подача материала
Дмитрий, обалденный курс!!!
Наверно, лучший из существующих.
И уж точно лучший из тех, что я видел
Очень интересный материал. Спасибо вам за работу. Ждем ваших новых работ!!! Научите научить нейросеть восполнять пробелы в картинках...
Все круто!!!!Мне этот ролик помог за один вечер разобраться с нейронными сетями. До этого ролика я просил мне объяснить, что это такое и никто не смог. Причем я обращался к людям которые уже работали с нейронными сетями (как то работали).
Нужно про магию питона отдельное видео )
Спасибо вас за ваш труд, у вас очень талантливо и наглядно получается!
Будь первым на ру сегменте (как минимум) , кто расскажет популярно, о гиперпараметрах больше, чем "метод тыка"!
Хотелось бы урок по zip и магии питона! Очень хорошо обьясняете, давно не видел таких классных уроков на ютуб)
a = ["mama", "papa"]
b = [33,45]
zip(a, b) == [("mama",33), ("papa",45)] магия 🙂
ну и или в обратную сторону работает.
хорошая подача информации. куда пропал? ждем продолжения
круто!
Дмитрий,вопрос: как вы относитесь к применению алгоритмов машинного обучения в интерфейсах "мозг-компьютер" наподобие neuralink Илона Маска?
Здравствуйте, Дмитрий. Буду очень рад, если Вы снимете видео по магии питона.
Спасибо! Продолжай в том же духе!! Как тебе такая идея, рассказать на пальцах про обучение с подкреплением? Должно быть не менее интересно, а если ещё и простой пример на основе тенсорфлов, то вообще будет супер!? Удачи и не пропадай!
Очень приятная подача, подписался. Есть ли у вас возможность выпускать ролики почаще ?
Блин, чел, круто получалось! Жаль забросил(
Cool, man
Дмитрий а будет ли следующий урок? Интересует в деталях как повысить точность нейросети. Проверка модели на адекватность. Про Batch больше рассказать. Да и вообще посмотреть хороший и качественный контент от Вас. Поделитесь Вашими знаниями... Нам полезно - а Вам приятно!
Спасибо большое! Что у вас за тема в visual studio?
а как вытащить веса
Нужно !!!
Мне понравилось
Отдельное видео про вычисление количества нейронов в скрытых слоях определённо нужно!
Ну ладно, на батче я всё же поплыл )
На такой скорости и с такой плотностью информации ролик нужно пересматривать несколько раз, причём конспектируя.
Но видео очень полезно, хотя бы как видеоконспект. Если вдруг возникнет необходимость погрузиться в кроличью нору, чтобы понять и запомнить всю математику под капотом работы с батчами - то всегда можно разобрать данный видос с литком и ручкой.
Редкий "Информационный брилиант!"
Я не чего не смыслю в этой теме так как от её далёк, но у меня возник один вопрос, а можно ли прописать получение входных данных с других ресурсов и как это сделать?
не пойму как соединить код на предсказание и код с обучением))
Класс, когда будет продолжение? Сейчас самое актуальное время продолжить развивать канал :)
9:03 жесть, это было неожиданно. Вы куда пропали, ребята, отличный потенциальный канал, вроде
Хотим видео про магию python!!!
Спасибо за видео, но как теперь отправить всё это на видеокарту, чтоб там формировать батчи и вычислять, а не гонять данные из опративы в видеопамять, там считать одну матрицу, а потом гнать резултат обратно из видеопамяти в оперативу при вычисление каждой матрицы отдельно?
👍👍👍
Бро, ты куда пропал на 9 месяцев? Не забрасывай ютуб. Твой монтаж топовый, продолжай в том же духе и ты станешь популярным как Onigiri, Vectozavr, foo52ru
какие программы вы используете чтобы создавать такие красивые анимации?
Клёвое видео, но для гуманитария сложновато) Поищу другие, потом, когда немного вникну, вернусь)
Спасибо. Попробую переписать и посмотреть как будет работать в отладчике. Просто вобще не понимаю математику((
а как записать веса? скажите пожалуйста
Здравствуйте можете помочь разобраться? в общем я считаю что придумал улучшенную формулу вычисления весов одного нейрона позволяющую найти веса в один такт, я не программист и не математик и формулу по понятным причинам разглашать я не могу, так как же мне разобраться и возможно извлечь из этого пользу? я не знаю. По пробую показать примерный процесс моей работы на эту тему может это даст вам возможность лучше разобраться с чем и кем вы имеете дело:
Пример обученного нейрона к которому должен прийти мой:
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 и привести их к таковым.
Видео отличное, но я совсем не понял как можно обучить нейросеть при другом датасете. точность обучения во всех случаях на одном значении застревает. Буду очень благодарен помощи
Можно пожалуйста видео про дпльнейшее изменение гиперпараметров
Добрый день ,Дмитрий,а можете записать серию видеороликов по созданию нейронной сети с предсказанием данных а не классификацией!
Последний видос год назад, канал мертв
Теперь тоже самое хорошо бы на Keras или PyTorch)))
Пожалуйста можно отдельное видео по магии питона
Все еще жду видео...
Как настроить чтоб писать нейронве сети
А как сделать нейронку, которая картинки делает по запросу ?
а на с++ будут уроки?
Дмитрий, спасибо за урок! Чтобы лучше понять все нюансы, воспроизвел этот урок на C++: czcams.com/video/ty6lNZ1mF9Y/video.html
Дмитрий, жаль что вы перестали новые видео делать(((
Дмитрий кое-что не рассказал. Ребята , для тех кто пытается повторить или сделать свою сеть, ловите мои грабли, чтобы самим не наступать: мы обучаем нейросеть не давать сам правильный ответ, а лишь выдать 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 да это вообще неважно в данном случае. Даже если персептрон будет один, мой совет будет актуальным. А этот кейс я использовал для примера.
ого такой классный контент и так мало подписчиков
Нужно похлопать чтобы автор вернулся. Автор возвращайся.
На х2 - ваще чума))
Хорош прожарил мой мозг) Пожалуй буду дальше деградировать в своих c# думая максимум об ООП..
Где видео? давно небыло
а как веса достать то?
Нужно видео по магии питона
Дмитрий, вернитесь на Ютуб, пожалуйста
16:00 не самое очевидное равенство. Автор опустил такие рассуждения: dE_dt_j = dsum(E_j)_dt_j = dE_j_dt_j, так как E_k при k !=j не зависит от t_j, следовательно все слагаемые, кроме i-го равны нулю. Остаётся только одно слагаемое
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])
Всё работает!!!
Больщое спасибо за уроки!!!
Удачи и вдохновения!!!
А для чего если есть chatgpt?
Это очень жестко, очень сильно хотел во все это вникнуть, но через минут пять все слова превращаются шум из-за наплыва такого количества инфы
Спросил у нейронке, странно что прорывов уже нету.😮
возможно нейросеть обучить так чтобы она выдавала новые прорывы в науке?
ChatGPT & Midjourney | AI bot:
Да, нейросети могут быть обучены для создания новых научных открытий. Например, исследователи могут использовать нейронные сети для анализа больших объемов данных, поиска скрытых закономерностей и предсказания новых тенденций в научных исследованиях. Такие нейросети могут помочь ускорить процесс открытия новых знаний и способствовать развитию науки. Однако важно помнить, что нейросети должны быть обучены на правильных данных и с правильными методами, чтобы избежать искажений или ошибок в результатах исследования.
Очень хорошая рвбота. Жаль что закончилась как говоритса на самом интересном месте :(
да вы батенька шутник "если чтото осталось непонятным". я понял,что ничего не понял и одновременно понял все. т.е. каша в голове удалась славная и знатная
Я хочу видео про гиперпараметры
Релоцировался ? Не забрасывай канал.
И всё-таки не очень понятен хинт с инициацией весов.
Ну сдвиг (-0.5) и умножение на 2 - ещё как-то понятно, но зачем на корень дроби умножать - не понятно
жду разбор сверхточных (и/или) рекуррентных нейронных сетей пролайкате! кто тоже_)
чел хорош)
я должен по хорошему раз 10 посмотреть на x0.25 но мне лень и я просто скопирую код из github
Жесть какая то. Почему такие люди ни в министерствах и советах директоров сидят. Я 15 лет объясняю руководству что такое среднеквадратичное отклонение и чем оно лучше чем отклонение факта от плана😂
А это вообще космос. Между реальной экономикой и такими ребятами пропасть в квадрате.
Когда уже кто нибудь придет и заставит капиталистов и госорганы использовать стохастические методы управления. Наверное никто. Это сделают нейросети.
Конечно я мог бы признаться в том, что я тупой, но легче сказать, что автор генерирует случайные и бессмысленные фразы/формулы, чтобы самоутвердиться на фоне таких, как я ))
ничиво не понимаю в этой математике :< какие то формулы преподносят так, словно я их с детства знаю. Какие-то буквы большие, какие то маленькие, ничего не понял.
Ни..на не понял но интересно
К информации в видео претензий нету, как и к знаниям автора, но зачем столько математической терминологии если видео позиционируется как видео для новичков? Из-за сложных выражений порой сложно понять простые вещи.