Дорогие друзья! Небольшой квест. В этом видео я специально сделал небольшую арифметическую ошибку. Она не влияет на общее восприятие и понимание материала. И тот, кто обнаружит эту ошибку, тот красавчик! ))
@ValstanSav4 жыл бұрын
Хммм... хитрый ход ) Придется второй раз пересмотреть, и тут два плюса, увеличится число просмотров, и улучшится качество понимания и запоминания материала. Хорошая идея подстегивания слушателей курса к Deep learning )))
@ValstanSav4 жыл бұрын
11:26 - вот тут по-моему "ашипка", получится не 127 на 127, но 126 на 126 пикселов, так как и снизу и сверху и справа и слева теряется по пикселу. Смотрю дальше... может ишо чего замечу ) Переместил свой коммент сюда, чтобы в общей ветке другие не прочитали и не расстроились "ну вот, а я сам хотел бы поискать ашипку".
@selfedu_rus4 жыл бұрын
@@ValstanSav Красавчик! :))
@ywbc12174 жыл бұрын
@@selfedu_rus я написал и потом удалил свой комментарий про это -- посчитав неважным -- в почте у вас должен остаться этот комментарий ) спасибо за ваши видео
@selfedu_rus4 жыл бұрын
@@ywbc1217 Спасибо, значит, вы тоже красавчик! ))
@Maraniks4 жыл бұрын
Лучше всех (Из тех кого я уже просмотрел) объясняешь как устроенна нейронная сеть Спасибо теперь я больше понимаю как устроенно это все
@СарматПересветовАй бұрын
изучил видио до конца, какже хорошо и понятно вы обьясняете.
@Pingvinok4 ай бұрын
Как же круто! Очень интересно все и многообразно. Я рада, что начала изучать эту тему. Спасибо за ваш курс, он лучший из тех, что я видела :)
@СарматПересветовАй бұрын
Нашел ошибку до того как прочитал что здесь допущена преднамеренная ошибка). Хороший видео урок, спасибо!
@teastrum9 ай бұрын
Спасибо большое за очень понятное объяснение!
@LA-nc6nc2 жыл бұрын
Хороший добрый комментарий в поддержку автора канала и контента.
@elizabethgrant60183 жыл бұрын
Спасибо огромное за Ваши уроки!
@nickkhatkov85488 ай бұрын
Безусловно просто и ясно.
@86Blind3 жыл бұрын
Самое лучшие объяснения как работает нейронная сеть !!
@adrianchervinchuk56324 жыл бұрын
огромное спасибо за доходчивость и детальность
@ProStoStroyka Жыл бұрын
Учусь в GB, там рассказывал преподаватель много много много - часа три, понял, что я мягко говоря не способен учиться. здесь за 20 минут я понял, как это все работает. было бы неплохо еще рассказать, для чего делается укрупнение признаков, возможный ответ, для увеличения скорости нейронной сети, за счет экономии вычислительных мощностей?
@ДмитрийТюрин-й9ч4 жыл бұрын
Хороший канал, надеюсь он наберет популярность!!!)
@funreal87272 жыл бұрын
11:37 126x126 а не 127x127 потому, что пиксели обрезаються справа и слева
@Neo270016 ай бұрын
а я думал добавляется один байес
@likey_dikey235 Жыл бұрын
*Цепочка «элемент -> процесс -> элемент» (под изображением также понимаются и другие карты признаков (во 2-й цепи), MaxPool карты (в 1-й цепи, а вообще MaxPool карты - это те же карты признаков, но на прошлом шаге прошедшие обработку, операцию MaxPool)):* Изображение -> фильтр (весовая маска, где каждый вес между пикселем изображения и нейроном группы карты признаков настолько больше, насколько характернее нахождение на ожидаемом изображении точки, чтобы был составлен элемент. Таким образом, чем более изображение похоже на отбираемый фильтром элемент, тем больше будет значение нейрона, ответственного за этот отрабатываемый участок) -> Карта признаков Изображение -> операция MaxPool (выбор из каждой секции максимального значения в рамках данной секции) -> MaxPool карта *Суть в прилагательных:* Карта признаков - характерный MaxPool - наиболее выраженный ~~~ *Изменение геометрических размеров, параметров:* Новый слой карты признаков после фильтрации - увеличивается глубина ряда этого слоя. Т. к. из изображения (или из множества таких изображений, если речь идёт не о 1-м и 2-м слоях) извлекают больше 1-го признака -> фильтров и соответствующих карт признаков больше, чем их (MaxPool карт) было на предыдущем слое. Новый слой карты признаков (MaxPool карт) после операции Max Pool - уменьшается размер карты (ширина и высота). Т. к. сама операция MaxPool предполагает извлечение максимального значения из некоторых значений (а значение может называться максимальным только в сравнении с другим, а значит при их наличии). *Размерность в глаголах:* Карта признаков после фильтрации - глубина увеличивается, размерность сохраняется (но не всегда сохраняется, нужно установить соотвествующий падинг). Карта признаков после MaxPool - глубина сохраняется, размерность уменьшается (но не всегда уменьшается, однако по умолчанию падинг установлен так, что размерность уменьшается - если всё же нужно её сохранение, то можно установить соотвествующий падинг).
@АрраКуарра2 жыл бұрын
Спасибо. Какое большое спасибо... Помог. А то сидел тупил.
@meninnik5 ай бұрын
КАКОЙ ДОБРЯК!!!
@SmadyarovBerik3 ай бұрын
Хочу спросить: а как так применяя операцию свертки на входной тензор изображение, не получили тензор с меньшей размерности. Например как в конце видео: [32, 32, 3] -> [32, 32, 10] ? Если это так то это значит что мы применили свертку размером [1,1].
@VenatoresnamIgnotis3 жыл бұрын
Подскажите пожалуйста один момент. Как следует из начала урока, один фильтр соответствует одной группе нейронов. В конце видео в примере мы получаем после пуллинга 10 карт признаков размером 16х16. Дальше вы говорите, что этот набор из 10 анализируется целиком одной группой нейронов, т.е. для каждой карты признаков (квадрата 16х16) будет свой фильтр и потом они суммируются и получается одна из 30 следующих карт признаков. Что-то не сходится у меня в голове эта мысль, как может быть получена одна из 30 карт признаков с помощью разных фильтров, из предыдущего утверждения следует что эта группа нейронов соответствует одному фильтру. Тот же вопрос про обработку многоканального изображения: если мы говорим про одноканальное изображение, то там вроде все ясно, а потом вы говорите что если каналов 3, то каждый канал обрабатывается своим фильтров (т.е. своей группой нейронов) и потом результат суммируется. Тогда получается, что для обработки 3х канального изображения нужно 3 группы нейронов, т.е. 3 фильра. Может быть все таки имеется в виду, что мы изначально берем грубо говоря 10 фильтров, и каждый канал прогоняем через эти фильтры и уже после этого суммируем? Просто что-то в голове все это не укладывается в логическую цепочку
@БарсикКандиционер2 жыл бұрын
класныеи видео
@MrKim-pt2vm4 ай бұрын
А с аудио будет курс или видео уроки, в том про подготовку данных.
@andrey98soft9 ай бұрын
Подскажите не могу понять - начальные значения w0-w8 фильтра задаются случайным образом? То есть грубо говоря мы инициализируем n фильтров и дальше грубо говоря первым фильтром проходим по всему изображению получая значения первой группы нейронов. Потом вторым наугад инициализированным фильтром вторую группу нейронов и так далее? Второй вопрос - значения w0-w8 фильтра по окончанию прохождения всех слоев корректируются и все начинается заново? Таким образом случайно сгенерированный фильтр стремится к какому-то своему "правильному" состоянию? И третий вопрос - если я правильно понял - все наугад инициализированные фильтры - часть из них могут оказаться одинаковыми а мы просто будем тратить время на прогонку этих "относительно" одинаковых фильтров по нейросети?
@ИгорьПотапов-м2щ Жыл бұрын
Очень круто, спасибо! Хочу чуть-чуть поправить: не биос (BIOS), а байэс (bias).
@АнтонАлександрович-ф8п Жыл бұрын
Байэс это ученый, а это нейрон смещения биас
@MurzNN Жыл бұрын
Хочу уточнить, а не правильней ли будет при анализе и поиске объектов на изображении использовать всегда цветовую модель Lab а не RGB? Ведь она гораздо правильней представляет изображение с точки зрения содержимого - слой яркости показывает объекты, а a и b - их цветовые особенности. Что думаете по этому поводу?
@ДинараБаймагамбетова-з5п3 жыл бұрын
В конце видео как из 10 каналов получилось 30 каналов можете объяснить?
@selfedu_rus3 жыл бұрын
там на последних слоях всюду 30 каналов. Но даже если нужно из 30 получить 10, то значит, используется 10 фильтров размерностями w x w x 30 каждый, где w - размер карты признаков
@КоляВасильев-о5и3 жыл бұрын
Спасибо за урок! Только жаль не упомянули о том, как именно полученные на последнем слое карты активации отправлять на вход обычной полносвязной сети. Насколько мне известно, эти карты активации нужно "вытянуть" в одномерный вектор, и этот вектор уже должен подаваться на вход полносвязной сети. Причем если этот вектор получается большим, то это может привести например к долгому обучению т.к весов соответственно понадобится больше. Если размер "вытянутого" из карт активаций вектора получается большим, то его можно уменьшить, применив тот же max pooling но с более большим окном
@selfedu_rus3 жыл бұрын
Вытягивать можно произвольным образом, при обучении НС сама подстроится под данные. А в Keras есть для этого специальный слой Flatten.
@КоляВасильев-о5и3 жыл бұрын
@@selfedu_rus Про Flatten уже увидел в следующем видео про CNN в этом плейлисте ) Спасибо!
@Baron_Munghausen Жыл бұрын
Знать предмет и объяснить (передать) его несведущему совершенно разные вещи.
@kserocopy20 күн бұрын
18:20 правильно ли я понял, что в каждой из 30 групп нейронов у нас по 3 фильтра, то-есть по одному на каждый канал одного тензора, а во входном тензоре, в каждом элементе имеется 3 канала для тех 3х фильтров из каждой группы? Или же прогоняем через каждую группу нейронов все входные тензоры (то-есть через одну группу все тензоры, а потом суммируем) и в каждой группе по 3 фильтра на каждый канал, следовательно мы берем первый элемент тензора, прогоняем его через 3 фильтра первой группы нейронов, суммируем результат и так с каждым тензором и потом все суммируем и получаем 1ю карту признаков, и таким же образом делаем с остальными группами нейронов.
@selfedu_rus19 күн бұрын
да, если входной тензор содержит три канала, а на выходе слой дает 30 каналов, то каждый из 30 фильтров имеет размеры 3x3x3
@EgorlandiaxTsar5 ай бұрын
Большое спасибо за видео, очень всё понятно разъяснено! Хотел узнать Ваше мнение: сейчас разрабатываю неиронную сеть для предсказания курса криптовалют, столкнулся с тем что неиронка предсказывает следующию цену просто копируя предыдущую (по сути просто смотря в прошлое а не анализируя переданные данные); неиронная сеть использует LSTM блоки, хотел узнать может ли комбинация LSTM и Conv1D/Conv2D блоков решить эту проблему.
@selfedu_rus5 ай бұрын
Спасибо! Как именно сделать нейронку для прогноза курса валюты - без понятия. Если бы было такое решение был бы сказочно богат! )))
@EgorlandiaxTsar5 ай бұрын
@@selfedu_rus Спасибо за ответ! Я пока на пути создания :). Ну даже если не прогноз курса криптовалют а просто прогноз данных таких как погода, к примеру, для таких целей можно использовать Conv1D? Спрашиваю потому что читал что данный слой используется для аудио и не уверен что его можно использовать для предсказания. Мне просто 14 я пока только исследую неиронные сети.
@EgorlandiaxTsar5 ай бұрын
@@selfedu_rusСпасибо за ответ! Я пока на пути создания :). Ну даже если не прогноз курса криптовалют а просто прогноз данных таких как погода, к примеру, для таких целей можно использовать Conv1D? Спрашиваю потому что читал что данный слой используется для аудио и не уверен что его можно использовать для предсказания. Мне просто 14 я пока только исследую неиронные сети.
@selfedu_rus5 ай бұрын
вам лучше это обсудить в ТГ-канале по машинному обучению (ссылка под видео)
@EgorlandiaxTsar5 ай бұрын
@@selfedu_rus Большое спасибо за совет! Обязательно напишу туда, сразу ссылку не увидел.
@sergeyyatsuk47942 жыл бұрын
Здравствуйте, возник ряд вопросов, в ответ на которые я очень нуждаюсь. На 9:23 вы говорите, что каждая цветовая компонента обрабатывается своим отдельным фильтром, и для каждой цветовой компоненты отдельно образуется карта фильтров, затем они(карты фильтров) складываются между собой математически, по-элементно, и после того, как сума сформировалась к ней прибавляется смещение биос. В результате у нас получается числовое значение "Vk,m", оно пропускается через функцию активации и таким образом вычисляется выходное значение на выходном нейроне. Вопросы: 1) Получается, что при формировании карт признаков для цветовых компонент задействуется еще один слой нейронов? Ведь, исходя из информации, сказанной в видео-уроке, карта признаков состоит из выходных значений нейронов. То есть для формирования карт признаков для каждой цветовой компоненты используется дополнительный слой нейронов? 2) После сложения карт фильтров каждой из цветовых компонент и добавления биоса формируется "Vk,m" - матрица 3х3 (у вас в видео-уроке она имеет желтый окрас), которую вы именуете как "числовое значение", которое следовательно подается на вход активационной функции. Но ведь как матрица 3х3 может является "числовым значением Vk,m", если это так называемое "числовое значение" формируется с помощью последовательного по-элементного прибавления друг ко другу каждого элемента карт признаков цветовых компонент и в результате получается матрица 3х3, к которой в конце прибавляется смещение биос? Как такую матрицу можно именовать "числовым" значением?
@alexvincent35002 жыл бұрын
Здравствуйте, а что делать, если при свёртке значение нейрона на выходе будет больше 255, его стоит оставить таким или приравнять к 255 ?
@selfedu_rus2 жыл бұрын
выходное значение может быть любым, ограничение накладывает только функция активации
@nikgavrilov9932 жыл бұрын
Большое спасибо за видео! Вопрос - мне нужно найти слова в скане многострочного документа напечатанного на старой печатной машинке. Может ли нейронная сеть мне помочь в этом и какой Ваш урок мне в этом поможет? Заранее спасибо!
@selfedu_rus2 жыл бұрын
Если это разовая работа, то проще воспользоваться программой FineReader. Иначе, вам просто придется повторять его алгоритм, а он очень не простой (и неизвестный).
@sakhaknives55673 жыл бұрын
привет! очень хорошо объяснено, спасибо за видео :) возник такой вопрос - как определить количество скрытых слоев? на 17:20 у вас 2 слоя сверточной сети, 2 слоя макс пулинга - почему именно такая конфигурация? можно ли было использовать 1 слой сверточной сети и 1 слой пулинга?
@selfedu_rus3 жыл бұрын
Да, это просто пример, конфигурации придумывает сам разработчик НС, исходя из опыта и разума )
@КристинаФирсова-б7х2 жыл бұрын
Не совсем понятно как нейронная сеть будет подбирать веса для своих "ядер фильтров", по какому алгоритму она их будет подправлять ?
@selfedu_rus2 жыл бұрын
также, как и для полносвязной - градиентным алгоритмом
@spasterr3 жыл бұрын
Здравствуйте, спасибо за ваши уроки, но у меня возник вопрос. К примеру у меня есть нс, которая должна определять (с камеры) есть ли маска на человеке, или нет. Возникнут ли какие либо проблемы с распознаванием, так как обучающая выборка была стандартизирована, а изображение с камеры нет?
@selfedu_rus3 жыл бұрын
Да, могут возникнуть проблемы. Входные данные нужно стандартизировать также, как и при обучении НС.
@ДенисАгапитов-э6у3 жыл бұрын
А разве карта признаков не должна быть 30x30? Или у нас фильтр был 1 пиксель? 17:13
@selfedu_rus3 жыл бұрын
Не совсем понятен вопрос. У нас карта признаков 16x16x30, после mapooling размеры уменьшаются в 2 раза по первым 2-м коордианатм и становятся 8x8x30
@ДенисАгапитов-э6у3 жыл бұрын
@@selfedu_rus Ну на вход в нейронную сеть мы подали изображение 32х32, в первом скрытом слое пропускаем его через 10 групп нейронов, которые выполняют свертку изображения. На 11:00 вы говорили, что после прохождения маской по всему изображению, результат будет на 2 пикселя меньше (было 128х128, стало 126х126). То есть в примере на 17:00 после первого шага мы должны получить 10 карт признаков, каждая размером 30х30, или я не так понял?
@selfedu_rus3 жыл бұрын
@@ДенисАгапитов-э6у Это все разные вещи. Вначале я говорил, как обрабатывать границы изображений. А далее, как работает операция maxpooling.
@ДенисАгапитов-э6у3 жыл бұрын
@@selfedu_rus Хорошо, спасибо
@ЛёшаШатурный4 жыл бұрын
Привет, у меня два вопроса. Один по пониманию. 1)Каждая группа нейронов выделяет какой то признак в соответствии с ядром фильтра, и передаёт эту полученную свёртку(сумму отсканированный кусочков 3 на 3 умноженных на ядро фильтра) следующей группе нейронов, следующая группа нейронов получает свёртку с предыдущего этапа и делает тоже самое(выделает признаки и передаёт полученную свёртку дальше). Max polling я пока не рассматриваю. Сначала нужно со свёрткой разобраться. Правильно я понимаю как происходит свёртка? 2) Нейросеть обучается на картинках одинакового размера, допустим 128x128 пикселей, а что если у меня картинка 5000x2500 пикселей и я хочу её прогнать через нейросеть и получить предсказание? Спасибо.
@selfedu_rus4 жыл бұрын
1) в целом, да, верно; 2) изображения других размеров должны быть приведены к формату изображений обучающей выборки (в том числе размеру, цветовому представлению, стандартизации, если она была и т.п.)
@СарматПересветовАй бұрын
Здесь небольшая не точность, или ошибка на 9.42. Если посмотреть документацию Keras, то при обработке 3-канального (цветного) изображения, данные соответствующего цвета с пикселя, перемножаются на соответствующий ВЕС СВЯЗИ записаный в фильтре (для каждого цвета соответственно), и помешаются на вход нейрона. Таким образом на входе нейрона собираются данные с каждого цветового канала, с каждого пикселя. далее они просто суммируются, и к ним прибавляется bias умноженный на СВОЙ ВЕС СВЯЗИ. В процессе обучения Н.С. все эти веса связей "обучаются". Просто автор говорит о сложении матриц, и сложение матрицы с числом, которых по сути нету, и может сложится не правильное понимаение принцыпа работы.
@selfedu_rusАй бұрын
Да, в видео так по сути и говорится? Сначала каждый канал своим фильтром, а результат суммируется.
@СарматПересветовАй бұрын
@@selfedu_rusесли разобраться то да, но вообще, когда смотрел, то первое впечатление которое сложилось, что мы производим операцию поэлементного сложения матриц, а потом производим операцию прибавления к матрице скаляра (числа)(bias), а в этом случае число прибавляется к каждому элементу матрицы, в то время когда мы должны найти сначала сумму всех элементов в матрице, и только потом прибавить bias. Может просто именно у меня такая особенность восприятия. Извиняюсь что отвлекаю Вас.
@komissarovrodion3 жыл бұрын
Dislike: 17:40 размер тензора уменьшается в 4 раза, а не в 2 раза, как сказано в видео
@selfedu_rus3 жыл бұрын
в 2 раза по каждой координате имелось в виду )) но формально вы правы, это нужно было уточнить
@komissarovrodion3 жыл бұрын
@@selfedu_rus Like: ошибку признал
@alikaiyr63082 жыл бұрын
@@komissarovrodion ок
@rpuropu3 жыл бұрын
Так это получается, что фильтр позволяет хоть как-то проинициализировать вертикальные связи до построения входного вектора, в отличае от пулинга.. явная потеря вертикальных связей. Однако, пулинг интуитивно кажется перспективным методом. Обдумаю во сне.. А если при поиске искомого фрагмента картинки получаются разные по масштабу области - разное количество пикселей, сильно разное, то пулингом их допускается приводить к одной размерности?
@selfedu_rus3 жыл бұрын
MaxPooling выделяет максимальные значения на выходах каналов (сверточных слоев), то есть, сохраняет максимум информации, сокращая размерность вектора (матрицы).
@rpuropu3 жыл бұрын
@@selfedu_rus да, я пока спал - передумал).. т.е. конечно выражение связи по вертикали в пулинге слабее, чем у фильтра 3 на 3 с средней вертикалью единичек, но всё же он передаёт инфу.. из фильтров альтернативой ему тогда будет что-то типа: 1 0 1 0 0 0 1 0 1 Если так можно выразиться) PS посмотрел следующий ролик, осознал поочерёдный алгоритм применения - успокоился)
@andreybutryakov65414 жыл бұрын
Биос добавляется не к сумме а уже входит в нее (см. время показа 10.33)
@selfedu_rus3 жыл бұрын
Если несколько каналов, то сначала по всем каналам проходят свертки, а затем, один раз прибавляется смещение.
@КоляВасильев-о5и3 жыл бұрын
Спасибо за урок! Предположим, что мы подали на вход Conv2D слою трехканальное изображение и назначили слою 64 ядра (фильтра). Правильно ли я понимаю, что под каждый канал будет выделено 64 фильтра, и работать это будет так: первый фильтр первого канала, первый фильтр второго канала, и первый фильтр третьего канала будут применены каждый к своему каналу, и результаты будут сложены, далее к этой суммарной матрице будет применен bias, а затем функция активации, и так 64 раза?
@selfedu_rus3 жыл бұрын
Если на входе трехканальное изображение, то для получения одного выходного канала будут применяться три разных фильтра для входных данных, затем суммироваться, добавляться биас и так 64 раза (для формирования 64 каналов).
@КоляВасильев-о5и3 жыл бұрын
@@selfedu_rus Ясно,спасибо!
@vadimmbld3 жыл бұрын
Здравствуйте, а не подскажете как здесь будет работать обучение сети методом backpropagation. Т.е формула для корректировки весов содержит умножение на входящее значение, это значит, что фильтр должен проходить так же по исходной картинке меняя постепенно свои веса?
@selfedu_rus3 жыл бұрын
Сам не погружался в математику в случае со сверточными сетями, но как пишут в литературе, здесь принципиально ничего не меняется, также идет коррекция весовых коэффициентов фильтров (сверток) с помощью packpropagation
@nikolaydd62192 жыл бұрын
Как обучить нейросеть на картинках (символах) которые на 99% похожи друг на друга?
@selfedu_rus2 жыл бұрын
Если затем предполагаются заметно другие картинки (не похожие на те, что обучается сеть), то ничего хорошего не выйдет. Это как обучить человека немецкому языку и отправить его в Англию в надежде, что он будет что-то понимать ))
@nikolaydd62192 жыл бұрын
@@selfedu_rus Будет полезно посмотреть видео как распознать печатный текст. Я вот его пытаюсь сделать но нифига. В нете народ тоже ищет но везде только рукописный. А с печатным столько проблем оказалось) Я про случаи когда текст не сегментировать а распознавать строку с текстом, смещая выборку по X. Например символы 'но' распознаются как 100% 'ю'
@lapatun1980 Жыл бұрын
126 на 126 - вместо 127 на 127
@selfedu_rus Жыл бұрын
да, есть такое ))
@1233-s3w3 жыл бұрын
А как вычисляется градиент, как происходит распространение ошибки? Почему об этом толком никто не говорит? Говорят только о самом очевидном
@ИванВикторов-п7ц3 жыл бұрын
Про это есть отдельные уроки на этом канале
@MacTep-Mupa3 жыл бұрын
чтото огромные формулы в начале как "не пришей кобыле хвост" ... что дают для чего, никаких выводов по ним нет, просто математическую запись показать ... лучше бы пару лишних минут про котиков ... а то там количество карт активации с каждым разом множится а мотив неясен и никак не обозначается ...
@avemaria685426 күн бұрын
пиксэл 😄
@mangod2411 Жыл бұрын
Не пиксел, а пиксель!!!!!!!!! Пикселей, а не пикселов, пиксели, а не пикселы, и т.д.
@doifgoox8510 Жыл бұрын
Пиксел
@cold_heart_i2 жыл бұрын
Ну по правде говоря будет на 2 пикселя меньше чем исходное изображение 126*126