Функции активации, критерии качества работы НС | #6 нейросети на Python

  Рет қаралды 45,495

selfedu

selfedu

Күн бұрын

Пікірлер: 92
@qiweenice8874
@qiweenice8874 8 күн бұрын
Эти все видео были сделаны нейросетью 100% схазххсза, это слишком круто
@СарматПересветов
@СарматПересветов 2 ай бұрын
за исключение описанных недочетов, урок Вы очень хорошо обьясняете, большое спасибо!
@zealot4325
@zealot4325 3 ай бұрын
Очень толковый и хорошо подготовленный урок. Спасибо Вам!
@kvarze
@kvarze 4 жыл бұрын
У вас явно талант преподавания. Еще раз огромное спасибо за возможность бесплатно смотреть ваши уроки. А вам желаю, чтобы ваши труды окупились)
@selfedu_rus
@selfedu_rus 4 жыл бұрын
Спасибо большое! )
@danielchsh8054
@danielchsh8054 4 жыл бұрын
@@selfedu_rus Сколько я различных материалов пересмотрел... Вы объяснили все просто и понятно! Спасибо огромное! Надо добавить вам номер карты, куда на кофе присылать))
@selfedu_rus
@selfedu_rus 4 жыл бұрын
@@danielchsh8054 Спасибо, смотрите в описании канала )) Кофе люблю )
@andreyfedorenko191
@andreyfedorenko191 2 жыл бұрын
@@selfedu_rus извините, а какие книги посоветуете по нейронной сети не для начинающих. Ну то есть для людей, которые понимают принцип работы и создавали свои нейронные сети, например распознание цифр
@andreyfedorenko191
@andreyfedorenko191 2 жыл бұрын
И есть ли у вас собственный курс по нейронным сетям
@АнастасияМ-ф2п9м
@АнастасияМ-ф2п9м 3 жыл бұрын
Очень ясная и четкая речь, без слов "паразитов". Слушается великолепно!
@ПриманкаТВ-о6ш
@ПриманкаТВ-о6ш 3 жыл бұрын
Это нереально ценная информация доступная для любого . Спасибо большое!!
@dubinin_s
@dubinin_s 4 жыл бұрын
Огромное спасибо за видео. Отдельное спасибо за подкрепление материала математическими формулами. Пересмотрел десятки часов видео, везде достаточно абстрактно объясняли почему применяют функцию активации ReLu или softmax, а чаще всего вообще не объясняли. Благодаря Вам стало намного понятнее.
@АндрейМельников-р7ч
@АндрейМельников-р7ч 2 жыл бұрын
Контент огонь. Очень понравилось, что помимо стандартного набора информации, детальнее рассказываешь, что где используется и почему так.
@sugarsugar9701
@sugarsugar9701 3 жыл бұрын
Благодаря вашим видео учёба превратилась в отдых !
@Dmitrii-Zhinzhilov
@Dmitrii-Zhinzhilov Жыл бұрын
Большое благодарю! С вами учёба становится увлекательным путешествием в мир знаний. 🔥👍
@АлексейБаринов-ь5н
@АлексейБаринов-ь5н 2 жыл бұрын
Спасибо большое! Качество роликов 10/10
@352556
@352556 3 жыл бұрын
Я долго искал курс по НС как на русском, так и на английском и этот курс лучший! Огромное спасибо автору
@maksutaatuskam860
@maksutaatuskam860 3 жыл бұрын
Классный курс ! Так держать.
@pboffic
@pboffic 2 жыл бұрын
Спасибо за уроки !
@rpuropu
@rpuropu 3 жыл бұрын
И вот, прошло две недели моего обучения, и я снова возращаюсь к вашим видео, как к мантре) Право, хорошая отправная точка. Хочу уточнить одно обстоятельство: бинарная кроссэнтропия не подходит для определения двух классов. Тут логическая ошибка - она подходит для определения наличия или отсутствия одного класса, если так можно выразиться. А если нам нужно проклассифицирновать кошку или собаку, то это уже будет категорилаьная кроссэнтропия и уже как раз с активацией софтмакс. Для бинарной выбирают сигмоид. Делюсь опытом, так сказать) Кстати, модель даже не скомпилируется, если захотеть получить на выходе два класса Dense(2) (кошки и собаки) с бинарной кроссэнтропией. PS осмелюсь предложить идею продолжения этого курса в областьв отдельный - Transfer Learning. Как состыковывать между собой различные предобученные модели различными слоями. С сохранением эпох на всевозможных этапах обучения. А так же: заморозки слоёв, собственные модели предобучения, существующие модели предобучения (например VGG), тонкая настройка - двумя словами.
@Dreig
@Dreig Жыл бұрын
Простите за ответ спустя год, но правильно ли я понял, что, если задача стоит, например, распознать, кошка на картинке, или нет, то это бинарная кроссэнтропия, а если задача определить, является ли это кошкой, или же собакой, то это уже категориальная кроссэнтропия? Т.е для бинарной кроссэнтропии (кошка или нет || собака или нет) нужен 1 выходной нейрон с функцией активации сигмоид?
@rpuropu
@rpuropu Жыл бұрын
@@Dreig, офигеть.. я сам себя прочитал сейчас и удивляюсь, где я таких слов нахватался) я сейчас дата инженер и занимаюсь ЕТЛ, это всё я уже почти не помню, сорри. Но вот свой вывод я помню по этому вопросу, что там именно бинарная кроссэнтропия должна быть).. а сколько там нейронов - извините, не вспомню
@АртурЗарипов-ю9п
@АртурЗарипов-ю9п Жыл бұрын
Большое спасибо!
@КостянтинБєсєдін
@КостянтинБєсєдін 3 жыл бұрын
Супер !!!
@rpuropu
@rpuropu 3 жыл бұрын
и действительно "+6" по возрасту подходит)
@АртиКалмыков
@АртиКалмыков Жыл бұрын
не особо, мне 16, но без знаний о производных и первообразных я с трудом понимаю что-то
@DANFLIPPER
@DANFLIPPER Жыл бұрын
​@@АртиКалмыковмне 5 лет все наизи панимаю с первово праасмотра
@boost_456
@boost_456 11 ай бұрын
@@АртиКалмыков в Keras все функции уже реализованы. Не обязательно досконально понимать как они работают, достаточно разобраться в каких случаях их можно применять
@zoryana7603
@zoryana7603 3 ай бұрын
@@АртиКалмыков не переживайте думаю +6 это просто подбадривающее будьте уверены этот материал рассчитан на людей которые не первый раз высшую математику и пайтон видят поэтому в вашем юном возрасте нормально иметь вопросы но могу точно сказать что после курса вышмата все прийдет в норму
@krasnokutsky-denis
@krasnokutsky-denis 3 жыл бұрын
спасибо большое
@TechRizzard
@TechRizzard Жыл бұрын
🔥🔥🔥🔥🔥🔥
@rpuropu
@rpuropu 3 жыл бұрын
я тут комментирую, может повлияю на индекс вовлечённости)
@ВикторЧеботарь-з2в
@ВикторЧеботарь-з2в Жыл бұрын
спасибо за урок
@user-oy7vn6mk1t
@user-oy7vn6mk1t 3 жыл бұрын
Не ну это очень жостко. Первые три урока я делал похожие задачи для практики и все понял, автор очень классно объясняет, но как только пошли формулы я всё. Сам в 10-ом классе учусь и ничерта не понимаю.
@selfedu_rus
@selfedu_rus 3 жыл бұрын
Да, нейросети - это серьезная математика. Если хотите детально в этом разбираться, то математику нужно знать хорошо, а школьную - просто отлично. Без этого тут никак )
@alicenNorwood
@alicenNorwood 2 жыл бұрын
Ну вот и готов мой диплом можно сказать...
@YbisZX
@YbisZX 8 ай бұрын
@selfedu_rus 16:32 Поясните про функцию потерь hinge. Ее производная просто -yi. Она не становится нулевой при di=yi. Она вообще не показывает направление градиента в отличие от остальных... Например при di=yi=-1 ответ правильный, градиент должен быть 0й, а по производной получается -1
@YbisZX
@YbisZX 8 ай бұрын
Сам разобрался. :) Это как hinge loss в линейном классификаторе. Он обрубается по совпадению классов (di*yi) дальше +1. Производная кусочная: (di*yi
@СарматПересветов
@СарматПересветов 2 ай бұрын
я еще не совсем разобрался, на 16.34, по логике критерий качества ХИНДЖ можно использовать для задач только бинарной классификации а не многоклассовой классификации..... а иначе получается какаято ерунда. так как di*yi в функции max(1 - di*yi ; 0) может принимать только два занчения 0 и 2 только если у нас есть всего два класса +1 и -1. А если у нас много классов, например 3, то данная логика не подойдет. CatGPT говорит примерно тоже что и я.
@СарматПересветов
@СарматПересветов 2 ай бұрын
Напрашивается хороший вопрос, а как нам найти локальный градиент для функции softmax?? Конечно же по логике мы будем искать локальный градиент даже для последнего слоя по линейной функции, но всеже хотелосьбы уточнить этот момент.
@selfedu_rus
@selfedu_rus Ай бұрын
берется производная по каждому выходу и далее они распространяются обратно по сети
@Dreamcatcher_Lvl_
@Dreamcatcher_Lvl_ Жыл бұрын
Здравствуйте, спасибо большое за все эти видео. Наверное это лучший курс во всём ютуб по нейросетям. Не хватает разве что более полного курса по эволюционным сетям и обучение с подключением. Конечно это можно найти в ютуб, но хотелось бы пройти именно ваш курс. Но очень сильно не хватает одного, я не нашел видео про Bias, как его имплементровать, в каких случаях, как корректировать биас и т.д. а если в двух словах по сути можно воспринимать Bias как нейрон с 1 на входе и весом, значением самого биас, и корректировать также через delta*weight*1 ?
@virn_17
@virn_17 Жыл бұрын
Здравствуйте! Этого курса хватит что бы знать все основные понятия нейросетей как они работают. Или это капля в море?
@selfedu_rus
@selfedu_rus Жыл бұрын
капля в море )
@dubinin_s
@dubinin_s 2 жыл бұрын
Подскажите, о чем говорит следующая ситуация. При обучении сверточной НС на выходе почти сразу получаешь [0.33, 0.33, 0,34], val_loss снижается, метрика "accuracy" замерзает на 0.3220, изменение опримизатора и функции потерь никчему не приводит. Мне интересно как это можно объяснить и побороть.
@selfedu_rus
@selfedu_rus 2 жыл бұрын
accuracy 0,33 = 1/3 и у вас три выхода, т.е. все они оказываются равновероятными при подаче на вход какого-либо образа, т.е. сеть вообще не обучена, скорее всего идет несоответствие входных образов и выходных целевых переменных
@dubinin_s
@dubinin_s 2 жыл бұрын
@@selfedu_rus Вы правы, сменил классификацию на регрессию и все получилось)) А, вообще, такой эффект может наблюдатся если сеть маленькая и ей просто не удается выявить нужные признаки и поэтому не находит ничего лучшего как сойтись к такому результату?
@selfedu_rus
@selfedu_rus 2 жыл бұрын
@@dubinin_s ну это если совсем маленькая, все же здесь всего три выходных класса и даже небольшая сеть должна показывать хоть что то разумное, чем простое угадывание
@vitalyvistovsky8661
@vitalyvistovsky8661 2 жыл бұрын
16:54 Почему произведение dy равно 1, если они равны и -1 если не равны?
@DubrovinAlexander
@DubrovinAlexander 2 жыл бұрын
Добрый вечер! Время 3:21. Почему значение градиента для n-го слоя будет равен 1/2*n? Ведь максимальное значения градиента для одного слоя равно 1/4, для двух слоев их произведение 1/4*1/4=1/16 и это не равно 1/2*n
@texadmin4749
@texadmin4749 2 жыл бұрын
У меня вопрос, нейронная сеть при обучении просто минимизирует ошибку, или минимизирует ошибку выбранного критерия качества, т.е. будет ли нейронная сеть обучена по другому при равных начальных условиях, но разном выбранном критерии качества? Спасибо
@selfedu_rus
@selfedu_rus 2 жыл бұрын
если начальные условия одни и те же, но показатель качества разный, то и ход обучения пойдет по другому треку
@pasha5584
@pasha5584 2 жыл бұрын
Вопрос к автору. Я правильно понимаю, что при алгоритме обучения rprop не требуется дифференцируемость активационной функции и можно использовать просто пороговую?
@selfedu_rus
@selfedu_rus 2 жыл бұрын
нет, метод back propagation лишь показывает как эффективно вычислять градиенты для пересчета весов, но градиенты (производные) считать все равно нужно (если правильно понял вопрос)
@pasha5584
@pasha5584 2 жыл бұрын
@@selfedu_rus С backprop всё понятно. Но насколько помню ещё с лекций начала 2000х для ускорения сходимости обучения используют либо добавление 'моментов инерции' для обратного распространения либо использования алгоритма rprop. Если правильно понимаю суть этого алгоритма, то там используется только знак производной.
@selfedu_rus
@selfedu_rus 2 жыл бұрын
@@pasha5584 я знаю только rmsprop созвучный с тем, что пишете, но там тоже производные
@pasha5584
@pasha5584 2 жыл бұрын
@@selfedu_rus Вот тут англоязычный объясняет kzbin.info/www/bejne/eaqVmGyVnbdga7s&ab_channel=RyanHarris Как я понял от производной берут только знак, а приращение фиксированное пока уменьшается ошибка. Когда проскочили минимум, то приращение делят пополам
@selfedu_rus
@selfedu_rus 2 жыл бұрын
@@pasha5584 ну это очень грубый градиент и все, в общем случае лучше производную брать
@user-oz9rf6fm1w
@user-oz9rf6fm1w 3 жыл бұрын
Спасибо большое за видео, но можно вопрос, почему при использовании ReLu в больших полносвязных сетях не происходит переполнения весов на начальных слоях? Ведь градиент каждого нейрона равен сумме градиентов следующего слоя * на веса * производную, отсюда следует, что с каждым последующим слоем градиент должен расти и привести в результате к переполнению весов. Но когда я пробую смоделировать это, то получаю совсем небольшие веса на первых слоях. Ничего не понимаю, как это работает.
@selfedu_rus
@selfedu_rus 3 жыл бұрын
Вопрос очень хороший! Нужно иметь в виду, что мы берем производную не по функциям активации, а по функции потерь. И здесь у нас будет получаться формула, в которой фигурируют положительные и отрицательные значения в сумме. Подробная хорошая математика приведена в книге "Саймон Хайкин. Нейронные сети (полный курс) 2-е издание, страница 225 - начало алгоритма back propagation.
@Abobya228
@Abobya228 Жыл бұрын
Здравствуйте, вопрос такой: есть формула Σ и над ней и сзади неё (1/N) есть буква N. Скажите пожалуйста, откуда брать N и что это.
@selfedu_rus
@selfedu_rus Жыл бұрын
Это число выходов НС
@Abobya228
@Abobya228 Жыл бұрын
@@selfedu_rus спасибо :D
@Abobya228
@Abobya228 Жыл бұрын
@@selfedu_rus получается, для всех выходов вычисляется 1 ошибка?
@PhyzmatClass
@PhyzmatClass 6 ай бұрын
Не совсем понял чем страшны большие ошибки? чем они хуже маленьких?
@AxwelHD
@AxwelHD 3 жыл бұрын
Здравствуйте, хотел уточнить, чтобы представлять целостную картину. E - это значение полученной ошибки, так? В 5 уроке мы затрагивали зависимость показателя качества Q от итераций по эпохам. При увеличении эпох уменьшалось Q. Вопрос: Q и E это одно и то же или между ними есть какая-то разница? Если есть объясните, пожалуйста, в чем же.
@selfedu_rus
@selfedu_rus 3 жыл бұрын
Это одно и то же: Q=E
@RikiNaxx
@RikiNaxx 4 жыл бұрын
продолжай пожалуйста
@zerotohero26
@zerotohero26 6 ай бұрын
11:10 насколько я понимаю, должен быть множитель 1/N вместо 1/2
@KulibinNeDaVinci
@KulibinNeDaVinci 6 ай бұрын
Зачем в softmax экспоненты? Просто каждое на сумму делить нельзя? Тоже ведь будет от 0 до 1.
@zoepetrovskaya1772
@zoepetrovskaya1772 4 жыл бұрын
в формуле среднего абсолютного процента ошибок max(|yi|, эпсилон) , эпсилон - это погрешность?
@selfedu_rus
@selfedu_rus 4 жыл бұрын
нет, это очень маленькая положительная величина, исключающая деление на ноль
@zoepetrovskaya1772
@zoepetrovskaya1772 4 жыл бұрын
@@selfedu_rus , спасибо, понятно.
@PhyzmatClass
@PhyzmatClass 6 ай бұрын
А нельзя логистическую функцию подправить так чтобы её производная стала близка к единице? Например простым домножением на постоянный коэффициент.
@TheAlexaed
@TheAlexaed 3 жыл бұрын
На 11 минуте может нужно умножение на 1/N?
@selfedu_rus
@selfedu_rus 3 жыл бұрын
нет, 1/2 - этот множитель сокращает двойку при вычислении производной, а вообще он не имеет большого значения, можно и просто 1 записать - это все для удобства расчетов и не более
@olegkomlev
@olegkomlev Жыл бұрын
Думаю да, нужно именно 1/N , а не 1/2, тогда и получится "Средняя квадратичная ошибка (Mean Squared Error, MSE)". Например, если di и yi в диапазоне [0,1], то MSE будет в диапазоне от 0 (совсем нет ошибок), до 1 (сплошные ошибки). Т.е. Е - это доля ошибок. И этот критерий не зависит от N. Но именно, если делим на N, а если делим на 2, то получается, что критерий зависит от числа выходов.
@ДаниилГригорьев-о6ы
@ДаниилГригорьев-о6ы 4 жыл бұрын
Я правильно понимаю, если у меня классификация тех же цифр от 0 до 9, но 90% ответов это 0, то такая сеть неспособна научиться распознавать?
@selfedu_rus
@selfedu_rus 4 жыл бұрын
она обучится, но скорее всего плохо, так как будет перекос в сторону нулей. Она заведомо будет делать меньше ошибок, если хорошо распознает нули, а другие цифры не очень ))
@ДаниилГригорьев-о6ы
@ДаниилГригорьев-о6ы 4 жыл бұрын
@@selfedu_rus ну вот у меня такое распределение результат, количество 0 3191 2 132 4 82 1 41 3 38 в качестве критерия качества используется категориальная кросс энтропия. меняю batch от 1 до 500, альфа коефицент от 10 до 1e-08, но обучения всегда останавливается на train_error: 293/ 3484. 293 - это все ответы отличные от 0 Даже запоминания данных не происходит. Про цифры это была аналогия)
@selfedu_rus
@selfedu_rus 4 жыл бұрын
@@ДаниилГригорьев-о6ы размер батча должен быть кратен всей длине выборки, остальные параметры здесь не влияют на ошибку, ну а детальнее - это уже надо смотреть...
@ДаниилГригорьев-о6ы
@ДаниилГригорьев-о6ы 4 жыл бұрын
@@selfedu_rus спасибо!)
@ПриманкаТВ-о6ш
@ПриманкаТВ-о6ш 3 жыл бұрын
А сама нейронная сеть не может сказать , какой алгоритм лучше? )
@selfedu_rus
@selfedu_rus 3 жыл бұрын
Пока еще нет качественных НС, которые создают другие НС
@torbokovsanat
@torbokovsanat 3 жыл бұрын
+
@ОльгаКириленко-р2ж
@ОльгаКириленко-р2ж 3 жыл бұрын
В формулах N это что?
@selfedu_rus
@selfedu_rus 3 жыл бұрын
число входов на нейроне
@YbisZX
@YbisZX 8 ай бұрын
@@selfedu_rusНет же! N - это число объектов выборки. И кстати, в формулах показателей качества должна быть сумма функций потерь по выходным нейронам, а уже потом среднее по выборке (минибатчу).
@YbisZX
@YbisZX 8 ай бұрын
@@selfedu_rusИ кстати, на 17:35 как в бинарная кросс-энтропия может применяться к классам {+1-1}. Как логарифм от -1 брать?
@dmitrymitrofanov3920
@dmitrymitrofanov3920 4 жыл бұрын
продолжай пожалуйста
@selfedu_rus
@selfedu_rus 4 жыл бұрын
уже ) см. новое видео )
Twin Telepathy Challenge!
00:23
Stokes Twins
Рет қаралды 133 МЛН
Do you love Blackpink?🖤🩷
00:23
Karina
Рет қаралды 23 МЛН
Самое простое объяснение нейросети
16:30
Программный Кот
Рет қаралды 130 М.
Функции активации
12:43
Центр digital профессий ITtensive
Рет қаралды 4 М.
[DeepLearning | видео 1] Что же такое нейронная сеть?
19:00
3Blue1Brown translated by Sciberia
Рет қаралды 807 М.
Twin Telepathy Challenge!
00:23
Stokes Twins
Рет қаралды 133 МЛН