Зачем делать нейронную сеть когда данные итак уже заранее сохранены в файл. Анализ можно делать и без нейронной сети…, банальным подсчетом и сравнении оригинала и сохранёнными данными…
@@God_Programmer Вся суть в ускорении распознавания, нейросеть делает предсказание за доли секунды. А ваше предложение: "банальным подсчетом и сравнении оригинала и сохранёнными данными" будет происходить отнюдь не быстро, хотя, определенно точность будет выше. Приходится чем-то жертвовать Либо скоростью работы, либо точностью)
@@hardmath9340 Вот у меня проблема, я не могу понять, как построить простую нейронную сеть по распознаванию типов по цвету к примеру, круглешков на плоскости, используя только входные данные X и Y, я думаю, что надо водит цвет этих кругляков, но, как и куда если только два входа? Можешь на с# сделать пример...
@@God_Programmer Если картинка RGB, то ее можно подать как трехмерный массив на вход в нейросеть (конечно предварительно преобразовать его в одномерный вектор). Для таких задач больше всего подходит сверточная нейронная сеть. За c# я не шарю)
Спасибо. Было интересно смотреть. Я не программист и мне это не понадобится скорее всего. Но ты очень круто объясняешь материал. Те, кто намерено искал материал точно должны быть довольны. Логику-то видно даже с моей нехваткой знаний в программировании.
Спасибо за видео. Мне 14 лет и я давно хотел понять как устроены нейросети, но мозг не мог осознать как работает обучение, долго искал информацию по нейросетям, потом купил книгу и понял, здесь ты тоже все довольно подробно объяснил. Я лично знал только про сигмоиду и не знал что существуют другие методы такие как тангенс так что спасибо за просвещение)
@@carnagic2944 школота 11 класс поймёт все моменты, кроме конечно гиперболического тангенса, хз почему автор его назвал обычным тангенсом, как ножом по стеклу.
Очень информативно и качественно изложен материал, отдельное спасибо за вывод формул) Есть ли возможность рассказать про различные алгоритмы оптимизации градиентного спуска? Хотя бы NAdam или алгоритм Нестерова
@@SofaSofa-fw2bz могу помочь с этим если все еще нужно. тоже искал как это сделать . через питон можно нормально всё преобразовать только вот займёт уйму времени ибо там файл в финале на 4гб будет
я посмотрел видео, поставил лайк, оставил на потом что бы еще раз посмотреть еще раз ибо возможно по этой идеи(нейросети) сделаю проект по информатике для конца школы (у нас такое в румынии есть, ы ) . прошло часов 10, я решил посмотреть еще раз но сначала решил пройтись по комментариям, у всех 0-1 лайк, посмотрел на кол-во подписчиков и удивился. я то думал тут 1-10к подписоты . видео мне попало рандомно ибо я ничего про программирование или про нейросети не искал в последнее время. что могу сказать, удачи в развитии канала , а я посмотрю еще видосики с твоего канала, ах да, еще и подпишусь update: посмотрел на видео с твоего канала и понял что ютюб мне подсунул единственное твоё длинное видео, мды что то страненько update2: посмотрел теги на этом видео и у меня вопрос, почему ты не используешь теги? это довольно сильно помогает в поиске первой аудитории
Я все не могу понять, почему пользователи ютуба постоянно удивляются алгоритмам рекомендаций? Вы что, реально думаете, что должно быть всё тупо? Смотришь кошечек и тебе кроме кошечек ничего не предлагают? Что ж вы такие ограниченные???
@@Vlad_4572 предложи он это видео человеку который никогда в жизни не занимался программированием человек бы проигнорировал видео. А я как человек который занимается этом но в то время ничего такого не искал не в Гугле не в Ютюбе удивился что подкинули такую годноту
Классное видео, прям которое я искал, не подскажешь только одну вещь, какие книги ты читал, я имею ввиду именно по нейронным сетям и искусственному интеллекту в целом
та же хрень, вид сбоку… только вместо весов на пикселы изображения, используются коэффициенты на различные фразы.. только вот нужно помимо еще семантику прикрутить и лексический анализатор и да.. это проще решить через графы, а не через нейронки. или ты про свое серое вещество в черепухе?!
Добрый день. Ну начну с того что реально классное видео. Сейчас начал сам постигать нейронные сети, не подскажете такой дилетантский вопрос, по сути эту нейронную сеть можно обучить на любых данных,, под любые цели. Короче разница только в обучающей выборке?
@@hardmath9340 Ну под архитектурой вы понимаете, сколько входных нейронов будет и сколько выходных? Если так, то спасибо и еще не бросайте канал, на ютубе и так мало осталось годного контента про программированию)))
привет. я попытался использовать твой код на codeblocks и у меня вопрос. ты использовал в ActivationFunction функцию exp() но библиотеку не использовал. по этому я добавил в кодблоксе библиотеку cmath но когда пытаюсь использовать thx у меня процент угадывания всегда идёт к 9.02778 и остаётся на этом числе. процент может начаться с 11 и идти к 9.02778 или же начать с 7 и идти к 9.02778. где я накосячил ? *update при изменении библиотеки с cmath на tgmath то число уже стремиться к 9.86378
@@hardmath9340 я просто скопировал весь код. и добавил source в main и остальные по классам раскидал.была ошибка в трёх файлах ибо были exp() и я добавил cmath , но спасибо, попробую просто math.h . а также была проблема с time() пришлось добавить библиотеку ctime(если не ошибаюсь) а так я ничего не менял
Вещь хорошая:) Жаль, что графики удобнее рисовать с помощью matplotlib, а в Qt для этого есть только QChart и QCustomPlot, но я бы не сказал, что они удобны и плюс непонятно как отрисовывать графики в 3D. Только наверное писать самому с OpenGL.
Почему пустое? Там все есть: Заходите в папку NetWorkForVideoOne и еще раз туда же там будут все h и cpp файлы. А вообще можно просто открыть сам проект NetWorkForVideoOne.sin, для этого я его и скинул целиком.
@@hardmath9340 я пишу нейронную сеть для распознания английских букв, для тренировки 88800 примеров, эпохи поставил 5, слоев 3, жду уже второй час, может что-то не то делаю, но логика как на вашем видео
Очень информативно, но для непросвещённых будет вообще непонятно, так как видео наполнено формулировками. А чего я прикопался, всё таки основная аудитория здесь ПРОСВЕЩЁННЫЕ в эту сферу люди
В видео все понятно. Но как чтобы понять книгу, ее нужно перечитать несколько раз. Можно анализировать видео несколько раз, в итоге все понятно станет.
Но память во время обучения не растет, значит это будет проблемой только, если вы будете куда-то ее интегрировать или создавать много нейросетей. Но очищать все же нужно
@@fedorlaputin9119 С контейнерами тоже нужно думать об очистке памяти плюс я их использовал раньше и обучение нейросети сети длилось где-то в 1,5 раза больше, чем напрямую работа с памятью, а вот умные указатели мне кажется здесь хорошую подойдут, правда я их никогда не использовал, нужно побольше о них почитать:)
@@hardmath9340 ну я говорю о тандеме умных указатей и готовых контейнеров, там много разных видов умных указателей, так что я думаю можно подобрать, чтобы обучение не шло в 1.5 раза дольше
Ну математика бэкпропогейшн тут так себе он показал и преподнес, те кто знают те поймут что это динамическое программирование по факту и дифференциалы тут считаются как раз эти дп, вот и все , реализовуется это все без матриц а просто формулами vectordif(this->size[n - 1]); for (int i = 0; i < this->size[n - 1]; ++i) { if (i != exp) { dif[i] = -this->neuron_pow[n - 1][i]; } else { dif[i] = 1 - this->neuron_pow[n - 1][i]; } dif[i] *= Function::use_Der_ReLu(s[1][i]); } vectordd(this->size[1], 0); for (int j = 0; j < this->size[1]; ++j) { for (int k = 0; k < this->size[n - 1]; ++k) { dd[j] += dif[k] * this->m[1][k][j]; } dd[j] *= Function::use_Der_ReLu(s[0][j]); }
for (int i = 0; i < this->size[1]; ++i) { b[0][i] = b[0][i] + 2.0 * lr * dd[i]; } for (int i = 0; i < this->size[0]; ++i) { for (int j = 0; j < this->size[1]; ++j) { this->m[0][j][i] = this->m[0][j][i] + 2.0 * lr * this->neuron_pow[0][i] * dd[j]; } } for (int i = 0; i < this->size[1]; ++i) { for (int j = 0; j < this->size[2]; ++j) { this->m[1][j][i] = this->m[1][j][i] + 2.0 * lr * this->neuron_pow[1][i] * dif[j]; } } for (int i = 0; i < this->size[2]; ++i) { b[1][i] = b[1][i] + 2.0 * lr * dif[i]; }
@@ОлегМихайлов-з3т примеры чего?! Питоновских библиотек запиленных на плюсах?! TensorFlow.. Питон интерпретируемая хрень, враппер над библиотеками написанными на нормальных языках! Этот скриптоязык нужен для быстрого вваливания в написание скриптов джунами. Я с умилением на собеседованиях наблюдаю за реакцией питонщиков, на вопрос - Что такое указатель?! Молчу уже про Кучу и стек функции, а уж критические секции, мутексы, семафоры в потоках, вообще вызывают у питонщика кровавые слезы из глаз! В такие моменты Клоунами выглядят они!
Это видео сверху и до низу пропитано абсолютной глупостью. Человек вставляет себе палки в колеса на ровном месте. Дружище, мнист решается за 4-7 минут включая обучения, ты это все упер в 42 минуты. Для того чтобы делать нейросети не нужно их писать с 0, тем более на С++. Я понимаю легко сделать нейросеть решающую мнист, но ты попробуй вот так с 0 напиши бертовскую модель или уже устаревший алекс нет? Сколько у тебя уйдет? Месяц - три? Я молчу про gpt-2 & gpt-3. Какой смысл себе усложнять жизнь и разрабатывать что то, что разработано и решено до тебя? Что за клоунада? Задача современных фреймворков и нейросетей которые по их средствам создаются в том, чтобы по кирпичкам строить свою модель, а не писать однотипный повторяющийся код из проекта в проект. Люди десятилетиями их пишут чтобы упростить себе и другим жизнь, чтобы ускорить разработку. Но всегда найдется уникум который решит что умнее всех и напишет нейросеть самую простую с 0, думая что умнее всех. Не глупо ли так попусту расходовать время и неуважить труд тысяч людей?
Какая глупость и о чем вообще речь? Видео растянулось на 42 минуты, потому что я объяснял структуру и работу нейронной сети, рассказывал о mnistе и т.д. Нейросеть может "решать" не только mnist, я взял этот датасет в качестве примера. В любых курсах по нейросетям всегда пишут нейросеть с нуля в основном на Python, чтобы показать как она устроена и работает, а после уже переходят к готовым решениям. Т.к на Pythone есть много роликов, то я решил взять C++. Время на написание кода я потратил максимум 3-4 дня, не считаю это попусту потраченным временем, для меня это было интересно и я лучше разобрался как работает и обучается нейросеть. А труд других людей я уважаю, поэтому в следующих роликах будет нейросеть с использованиям готовых библиотек.
Прежде чем что-то изучать, надо посмотреть и попробовать как это устроено изнутри, написать с нуля самому, тогда придет настоящее понимание и осознание...
@@VladisLove-tg5is с ним всё так, просто это элементарная задача. Решив её написав код с нуля, ничему полезному человек не научится. В ML надо бежать за прогрессом, изучая всё новое, а не воротить перцептрон изобретенный в 70-ые и mnist решенный вроде как в 98 - 2004
Это пример показывает, что речь идет отнюдь об интеллекте. Человеческий мозг не знанимается перемножением оптимизированных матриц, чтобы распознать цифру. Это совершенно тупиковый подход, позволительый только благодаря быстроте современных процессоров. Малыш в первом классе распозн'ает цифру безо всякого "обучения" на примерах из ста тысяч закорючек. И у этого малыша есть интеллект. И нет у него никаких "слоев", его мозг приспособлен к эвристикам. Его нейронная сеть действительно нейросеть со сложными связями, которые формируются динамически, а не этот примитив.😂 Это такая же нейросеть, как арифмометр "Феликс" - многоядерный процессор.😅
Ссылка на опрос на тему следующего ролика vk.cc/c7ocUm
Зачем делать нейронную сеть когда данные итак уже заранее сохранены в файл. Анализ можно делать и без нейронной сети…, банальным подсчетом и сравнении оригинала и сохранёнными данными…
@@God_Programmer Вся суть в ускорении распознавания, нейросеть делает предсказание за доли секунды. А ваше предложение: "банальным подсчетом и сравнении оригинала и сохранёнными данными" будет происходить отнюдь не быстро, хотя, определенно точность будет выше. Приходится чем-то жертвовать Либо скоростью работы, либо точностью)
@@hardmath9340 спасибо за разьяснение...
@@hardmath9340 Вот у меня проблема, я не могу понять, как построить простую нейронную сеть по распознаванию типов по цвету к примеру, круглешков на плоскости, используя только входные данные X и Y, я думаю, что надо водит цвет этих кругляков, но, как и куда если только два входа? Можешь на с# сделать пример...
@@God_Programmer Если картинка RGB, то ее можно подать как трехмерный массив на вход в нейросеть (конечно предварительно преобразовать его в одномерный вектор). Для таких задач больше всего подходит сверточная нейронная сеть. За c# я не шарю)
Удивительно как идея нейроной сети простая и как много в ней много математики.
Ну много да много много как много в ней много, в ней много математики
Нейросеть, это сплошная линейная алгебра
да нет там никакой математики
@@igorseledtsov7345, напиши код не используя формулы
К счастью там не так много математики, как .. в математике.
Топовый контент. Информативно и без "воды".
Лучшее видео по MLP, вся математика дана, весь код дан, шикарно!
Спасибо. Было интересно смотреть. Я не программист и мне это не понадобится скорее всего. Но ты очень круто объясняешь материал. Те, кто намерено искал материал точно должны быть довольны. Логику-то видно даже с моей нехваткой знаний в программировании.
Спасибо, рад, что понравилось:)
А я программист... И мне бы это понадобилось полгода назад, когда был курс нейронных сетей XD
А так очень круто и интересно
Пожалуйста. Был рад, что всё понятно☺
а здесь и ненадо быть программистом,достаточно быть нейрохирургом
Ты красавчик! Большое уважение к тебе:)
Желаю твоему каналу развития и процветания, не забрасывай это дело, у тебя очень хорошо выходит:D
Спасибо за видео. Мне 14 лет и я давно хотел понять как устроены нейросети, но мозг не мог осознать как работает обучение, долго искал информацию по нейросетям, потом купил книгу и понял, здесь ты тоже все довольно подробно объяснил. Я лично знал только про сигмоиду и не знал что существуют другие методы такие как тангенс так что спасибо за просвещение)
Если ты не разработчик, то ты тут ничего не поймёшь, но это все равно интересно
Школота 11 класс поймёт некие моменты
@@carnagic2944 школота 11 класс поймёт все моменты, кроме конечно гиперболического тангенса, хз почему автор его назвал обычным тангенсом, как ножом по стеклу.
-
@@glm8345 а че там в нем понимать то
Очень информативно и качественно изложен материал, отдельное спасибо за вывод формул) Есть ли возможность рассказать про различные алгоритмы оптимизации градиентного спуска? Хотя бы NAdam или алгоритм Нестерова
Спасибо, рад, что понравилось:) Думал над этим) Планирую как раз про это видео сделать.
@@hardmath9340 пожалуйста, покажи как ты преборазовал MNIST в txt? Хочу также с ELMNIST сделать
@@SofaSofa-fw2bz могу помочь с этим если все еще нужно. тоже искал как это сделать . через питон можно нормально всё преобразовать только вот займёт уйму времени ибо там файл в финале на 4гб будет
Прорыв в обходе капчи)
я посмотрел видео, поставил лайк, оставил на потом что бы еще раз посмотреть еще раз ибо возможно по этой идеи(нейросети) сделаю проект по информатике для конца школы (у нас такое в румынии есть, ы ) . прошло часов 10, я решил посмотреть еще раз но сначала решил пройтись по комментариям, у всех 0-1 лайк, посмотрел на кол-во подписчиков и удивился. я то думал тут 1-10к подписоты . видео мне попало рандомно ибо я ничего про программирование или про нейросети не искал в последнее время. что могу сказать, удачи в развитии канала , а я посмотрю еще видосики с твоего канала, ах да, еще и подпишусь
update:
посмотрел на видео с твоего канала и понял что ютюб мне подсунул единственное твоё длинное видео, мды что то страненько
update2:
посмотрел теги на этом видео и у меня вопрос, почему ты не используешь теги? это довольно сильно помогает в поиске первой аудитории
Спасибо, да про теги что-то я совсем забыл:) Удачи тебе в учебе!)
Я все не могу понять, почему пользователи ютуба постоянно удивляются алгоритмам рекомендаций? Вы что, реально думаете, что должно быть всё тупо? Смотришь кошечек и тебе кроме кошечек ничего не предлагают? Что ж вы такие ограниченные???
@@Vlad_4572 предложи он это видео человеку который никогда в жизни не занимался программированием человек бы проигнорировал видео. А я как человек который занимается этом но в то время ничего такого не искал не в Гугле не в Ютюбе удивился что подкинули такую годноту
Теперь я понял, что я ничего не понял)
Эх, дружище, где ж ты был 2 года назад, когда я исследовательскую по нейронкам писал?
Сори:)
спасибо автор, я прям в айти вкатился
обычно второй индекс отвечает за следующий слой, возможно вы оговорились) 1:19
Классное видео, прям которое я искал, не подскажешь только одну вещь, какие книги ты читал, я имею ввиду именно по нейронным сетям и искусственному интеллекту в целом
как выбрать количество ассоциативных слоев и количество нейронов в них?
все четко, но прошу, дай ссылку на исходники
Вот у вас нейросеть угадывает цифры, а моя нейронка может общаться с человеком если ее научить на примере диалогов
инновация
та же хрень, вид сбоку… только вместо весов на пикселы изображения, используются коэффициенты на различные фразы.. только вот нужно помимо еще семантику прикрутить и лексический анализатор и да.. это проще решить через графы, а не через нейронки. или ты про свое серое вещество в черепухе?!
Сделай пожалуйста еще таких крутых роликов на с++
теперь нейросеть умеет решать капчи
не умеет.
зачем я это смотрю в час ночи я же даже не интересуюсь С++
подскажите пожалуйста как привести данные mnist к такому виду как на видео (цифры от 0 до 1 в текстовом файле)
хоспаде, что я только что увидел....
Добрый день. Ну начну с того что реально классное видео. Сейчас начал сам постигать нейронные сети, не подскажете такой дилетантский вопрос, по сути эту нейронную сеть можно обучить на любых данных,, под любые цели. Короче разница только в обучающей выборке?
Добрый. Да, все верно, разница будет только в архитектуре, ну и конечно же в обучающих данных. Спасибо)
@@hardmath9340 Ну под архитектурой вы понимаете, сколько входных нейронов будет и сколько выходных? Если так, то спасибо и еще не бросайте канал, на ютубе и так мало осталось годного контента про программированию)))
@@unlimited-007 Да, количество скрытых слоев и число нейронов в них, на входном и на выходном слою. Да, пока мотивации нету снимать ничего)
@@hardmath9340 Спасибо, не знаю смогу заинтересовать но я сейчас ещё почитываю про DirectX 12 и Vulkan SDK, тоже много интересного))
Видос огонь, но меня все время напригало отсутвте строшки
using namespace std;
афигеть) умнеёший
привет. я попытался использовать твой код на codeblocks и у меня вопрос. ты использовал в ActivationFunction функцию exp() но библиотеку не использовал. по этому я добавил в кодблоксе библиотеку cmath но когда пытаюсь использовать thx у меня процент угадывания всегда идёт к 9.02778 и остаётся на этом числе. процент может начаться с 11 и идти к 9.02778 или же начать с 7 и идти к 9.02778. где я накосячил ?
*update при изменении библиотеки с cmath на tgmath то число уже стремиться к 9.86378
Попробуй подключить math.h. Но косяков в стандартных библиотеках быть не должно, скорее всего, ты что-то неправильно делаешь)
@@hardmath9340 я просто скопировал весь код. и добавил source в main и остальные по классам раскидал.была ошибка в трёх файлах ибо были exp() и я добавил cmath , но спасибо, попробую просто math.h . а также была проблема с time() пришлось добавить библиотеку ctime(если не ошибаюсь) а так я ничего не менял
@@hardmath9340 math.h также не помогло. даёт то же значение что и cmath
@@rekimchuk
Хмм, странноо)
Ребят, ссылка на исходники недоступна((( А можете как то ее скинуть?
как же я люблю qt
Вещь хорошая:) Жаль, что графики удобнее рисовать с помощью matplotlib, а в Qt для этого есть только QChart и QCustomPlot, но я бы не сказал, что они удобны и плюс непонятно как отрисовывать графики в 3D. Только наверное писать самому с OpenGL.
@@hardmath9340 Unity…
Где можно взять этот код и протестить? Интересно просто)
Может я ошибаюсь, но у тебя функции в double useDer() такие же как в use() ,а должны быть как в void useDer()(Спасибо за видео )
Что за коэффициент d на 20:28?
Тем временем создатели капчи…
Добрый день, подскажите, пожалуйста,в чем может быть ошибка.После выбора функции выскакивает runtime,abort() has been called
Добрый день, попробуйте пройтись откладчиком:) Так я не могу сказать.
спасибо
Шикарно
А покажи пожалуйста, как ты превратил MNIST в txt?
разобрался?
@@fromnothing3016 razobralis?
А как скачять файл с mnist
Круто😂😂😂
А как песня называется на 0:18?
можешь снять видео как интегрировать qt в Visual studio 2022?
Интегратора для VS 2022 еще нет, только до 19
Супер
Не чего не понял но интересно 😂
На таких как ты держится весь мир)
?)
@@hardmath9340 в хорошем смысле. Спасибо что рассказываешь о таких вещах!
@@mar_shevs Не за что) Рад, что помог.
Исходники пустые, h и source нет ничего, пожалуйста, исправь это, хочется посмотреть и разобраться
Почему пустое? Там все есть:
Заходите в папку NetWorkForVideoOne и еще раз туда же там будут все h и cpp файлы.
А вообще можно просто открыть сам проект NetWorkForVideoOne.sin, для этого я его и скинул целиком.
А сколько времени заняло обучение?
12 минут
@@hardmath9340 я пишу нейронную сеть для распознания английских букв, для тренировки 88800 примеров, эпохи поставил 5, слоев 3, жду уже второй час, может что-то не то делаю, но логика как на вашем видео
@@Luigiket Не знаю, это нужно на код смотреть...
@@Luigiketспроси у gpt 4 😅
сколько скрытых слоев в твоей проге?
Я использовал 1 скрытый слой, а так архитектура может быть любая.
Очень информативно, но для непросвещённых будет вообще непонятно, так как видео наполнено формулировками. А чего я прикопался, всё таки основная аудитория здесь ПРОСВЕЩЁННЫЕ в эту сферу люди
Теперь понятно как работают такие корпорации как Яндекс.
Я имею ввиду их распознавание по фото
Теперь даже почерки распознают их нейросети
Эх, а мой уровень на С++ это std::cout
Зато есть над чем работать)
Самое главное в коде это ";"
а го врач напишет там свою цифру!
очень странная формула для подсчета ошибки ответа, у нас же функция sum((d_i - y_i)^2) откуда у тебя там производные вылазят
Я типо понял что я не робот
Да уж, это уже сложновато
Простите а где тут перцеептрон то?
не любая нейтронная сеть это перцептрон...
ссылка на исходники не рабочая
На бусти напишите, могу скинуть
Расскажи как добавить SIMD инструкции
Пока таким не занимался)
Ето моя домашка
Скажите трек пожалуйста
В итоге, без знаний высшей математики хрен что поймёшь.
Можно код на Pythone 3.5?
Думаю, сделаю видео с нейросетью на Python.
@@hardmath9340 спс
Крутая идея на питоне сделать! Не знаю толком плюсы и лень среду разработки качать
видео с питоном уево туча. а также разных кодов в свободном доступе. не понимаю зачем еще одно видео. вот про с++ да, почти ничего нема
Я один нихера не понимаю?
Что было не понятно?
В видео все понятно. Но как чтобы понять книгу, ее нужно перечитать несколько раз. Можно анализировать видео несколько раз, в итоге все понятно станет.
А где вы очищаете память всех этих массивов?
Да, спасибо, что сказали, это нужно исправить:)
Но память во время обучения не растет, значит это будет проблемой только, если вы будете куда-то ее интегрировать или создавать много нейросетей. Но очищать все же нужно
@@hardmath9340а почему бы не использовать векторы и умные указатели?
@@fedorlaputin9119 С контейнерами тоже нужно думать об очистке памяти плюс я их использовал раньше и обучение нейросети сети длилось где-то в 1,5 раза больше, чем напрямую работа с памятью, а вот умные указатели мне кажется здесь хорошую подойдут, правда я их никогда не использовал, нужно побольше о них почитать:)
@@hardmath9340 ну я говорю о тандеме умных указатей и готовых контейнеров, там много разных видов умных указателей, так что я думаю можно подобрать, чтобы обучение не шло в 1.5 раза дольше
Ну математика бэкпропогейшн тут так себе он показал и преподнес, те кто знают те поймут что это динамическое программирование по факту и дифференциалы тут считаются как раз эти дп, вот и все , реализовуется это все без матриц а просто формулами
vectordif(this->size[n - 1]);
for (int i = 0; i < this->size[n - 1]; ++i) {
if (i != exp) {
dif[i] = -this->neuron_pow[n - 1][i];
}
else {
dif[i] = 1 - this->neuron_pow[n - 1][i];
}
dif[i] *= Function::use_Der_ReLu(s[1][i]);
}
vectordd(this->size[1], 0);
for (int j = 0; j < this->size[1]; ++j) {
for (int k = 0; k < this->size[n - 1]; ++k) {
dd[j] += dif[k] * this->m[1][k][j];
}
dd[j] *= Function::use_Der_ReLu(s[0][j]);
}
for (int i = 0; i < this->size[1]; ++i) {
b[0][i] = b[0][i] + 2.0 * lr * dd[i];
}
for (int i = 0; i < this->size[0]; ++i) {
for (int j = 0; j < this->size[1]; ++j) {
this->m[0][j][i] = this->m[0][j][i] + 2.0 * lr * this->neuron_pow[0][i] * dd[j];
}
}
for (int i = 0; i < this->size[1]; ++i) {
for (int j = 0; j < this->size[2]; ++j) {
this->m[1][j][i] = this->m[1][j][i] + 2.0 * lr * this->neuron_pow[1][i] * dif[j];
}
}
for (int i = 0; i < this->size[2]; ++i) {
b[1][i] = b[1][i] + 2.0 * lr * dif[i];
}
Воид это саааааамый костыльный метод-_- не осуждаю, но осуждаю
13:30 Нет это уже слишком(субтитры)
с научной точки зрения, реализовано норм, спасибо, но на питоне уже куча готовых библиотек, которые достаточно подключить и будет все работать быстрее
Нет. Не будет работать быстрее.
Все подключаемые к питону готовые сети как раз и написаны на c или c++.
Питон сам по себе медленный.
интерпретатор Питона использующий скомпилированные библиотеки Си++, быстрее?!)))) чувак, не позорься!
@@alexeykargojarvinen5273 чел ты конечно клоун, но тогда покажи мне примеры
@@ОлегМихайлов-з3т примеры чего?! Питоновских библиотек запиленных на плюсах?! TensorFlow.. Питон интерпретируемая хрень, враппер над библиотеками написанными на нормальных языках! Этот скриптоязык нужен для быстрого вваливания в написание скриптов джунами. Я с умилением на собеседованиях наблюдаю за реакцией питонщиков, на вопрос - Что такое указатель?! Молчу уже про Кучу и стек функции, а уж критические секции, мутексы, семафоры в потоках, вообще вызывают у питонщика кровавые слезы из глаз! В такие моменты Клоунами выглядят они!
Забыта, делай про другую прогу
이거 뭔데 계속 뜨는 거여??... 퍼셉트론인가? 인공신경망 같은디
Наркомания какая то)))
чё
Че
Скоро капча будет абсолютно бесполезна)))
Да уже давно, есть же rucaptcha:)
@@hardmath9340 скорее всего он про такие решения как xevil
@@hardmath9340 в бэке которой сидят индусы..))) нуда, нуда!
Нуууу нейросеть не угадывает а просто повторяет цыфры
именно угадывает
Это видео сверху и до низу пропитано абсолютной глупостью. Человек вставляет себе палки в колеса на ровном месте. Дружище, мнист решается за 4-7 минут включая обучения, ты это все упер в 42 минуты. Для того чтобы делать нейросети не нужно их писать с 0, тем более на С++. Я понимаю легко сделать нейросеть решающую мнист, но ты попробуй вот так с 0 напиши бертовскую модель или уже устаревший алекс нет? Сколько у тебя уйдет? Месяц - три? Я молчу про gpt-2 & gpt-3. Какой смысл себе усложнять жизнь и разрабатывать что то, что разработано и решено до тебя? Что за клоунада? Задача современных фреймворков и нейросетей которые по их средствам создаются в том, чтобы по кирпичкам строить свою модель, а не писать однотипный повторяющийся код из проекта в проект. Люди десятилетиями их пишут чтобы упростить себе и другим жизнь, чтобы ускорить разработку. Но всегда найдется уникум который решит что умнее всех и напишет нейросеть самую простую с 0, думая что умнее всех. Не глупо ли так попусту расходовать время и неуважить труд тысяч людей?
Какая глупость и о чем вообще речь? Видео растянулось на 42 минуты, потому что я объяснял структуру и работу нейронной сети, рассказывал о mnistе и т.д. Нейросеть может "решать" не только mnist, я взял этот датасет в качестве примера.
В любых курсах по нейросетям всегда пишут нейросеть с нуля в основном на Python, чтобы показать как она устроена и работает, а после уже переходят к готовым решениям. Т.к на Pythone есть много роликов, то я решил взять C++.
Время на написание кода я потратил максимум 3-4 дня, не считаю это попусту потраченным временем, для меня это было интересно и я лучше разобрался как работает и обучается нейросеть. А труд других людей я уважаю, поэтому в следующих роликах будет нейросеть с использованиям готовых библиотек.
Прежде чем что-то изучать, надо посмотреть и попробовать как это устроено изнутри, написать с нуля самому, тогда придет настоящее понимание и осознание...
@@VladisLove-tg5is написав перцептрон решающий мнист ты ничему не научишься, тем более в ML
@@archyt88 а что не так с мнист?
@@VladisLove-tg5is с ним всё так, просто это элементарная задача. Решив её написав код с нуля, ничему полезному человек не научится. В ML надо бежать за прогрессом, изучая всё новое, а не воротить перцептрон изобретенный в 70-ые и mnist решенный вроде как в 98 - 2004
Это пример показывает, что речь идет отнюдь об интеллекте. Человеческий мозг не знанимается перемножением оптимизированных матриц, чтобы распознать цифру. Это совершенно тупиковый подход, позволительый только благодаря быстроте современных процессоров. Малыш в первом классе распозн'ает цифру безо всякого "обучения" на примерах из ста тысяч закорючек. И у этого малыша есть интеллект. И нет у него никаких "слоев", его мозг приспособлен к эвристикам. Его нейронная сеть действительно нейросеть со сложными связями, которые формируются динамически, а не этот примитив.😂 Это такая же нейросеть, как арифмометр "Феликс" - многоядерный процессор.😅
чё