Тёмный

Как сделать нейросеть в Delphi 

Просмотров 12 тыс.
% 751

В этом видео я покажу как сделать с нуля нейросеть для распознавания графических образов Fashion MNIST. Расскажу о том как сделать многослойный перцептрон и запрограммировать метод обратного распространения ошибки. Писать проект буду в одной из последних версий Delphi XE10.
Проект на Boosty: boosty.to/techniciannotes
Еще поддержать меня можно тут: www.donationalerts.com/r/tech...
Группа в ВК: public196473848
музыка в видео:
------------------------------
Track: Back to 1981 - Iaio [Audio Library Release]
Music provided by Audio Library Plus
Watch: ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-3MVRIfyWlnA.html
Free Download / Stream: alplus.io/back-1981
------------------------------

Наука

Опубликовано:

 

18 дек 2021

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 48   
@user-hg5sn7jb9b
@user-hg5sn7jb9b 6 месяцев назад
Мужик, ты куда пропал? Отличный контент, не забрасывай!
@user-ny5rt8sl4u
@user-ny5rt8sl4u 6 месяцев назад
Да над одним проектом работаю, не связанным с каналом, но позже может и о нем расскажу, а так не забрасываю, новые видео будут, может даже скоро
@intershull
@intershull 2 месяца назад
Спасибо вам, что не забываете паскаль.
@evgenysamarin
@evgenysamarin 7 месяцев назад
Ого Delphi ещё живой 😳
@user-ng4jm2ih1z
@user-ng4jm2ih1z Год назад
Давно хотел разобраться в этом вопросе. Супер!! Благодарю за видео.
@ArmagPlay
@ArmagPlay 2 года назад
Спасибо за интересный материал и подробные объяснения!
@user-sf9nn6dh2q
@user-sf9nn6dh2q 11 месяцев назад
Отличный ролик, спасибо!🎉
@Rabbit-with-an-ax.
@Rabbit-with-an-ax. 6 месяцев назад
Шикарно! Не знал что на делфи такое можна, ну хотя как бы я узнал если вместо учобы спал!
@nikolaydd6219
@nikolaydd6219 2 года назад
Класс! Очень качественный урок и лично мне нужный.
@Clementine_X
@Clementine_X 2 года назад
👍
@tadedi
@tadedi Год назад
Очень хорошее понятное объяснение. Скачал проект, повторил, всё ок! Но потом решил поменять функцию активации с сигмоида на ReLU, но обучение не происходит, и точность остаётся в районе 10%. Вот функции ReLU и DifReLU(для производной), которые я использовал: function ReLU(x: Single): Single; begin if x > 0 then Result := x else Result := 0; end; function DifReLU(x: Single): Single; begin if x > 0 then Result := 1 else Result := 0; end; Тогда я попробовал еще другую функцию активации, говорят крутую: function Swish(X: Single): Single; begin Result := X / (1 + Exp(-X)); end; function DifSwish(X: Single): Single;//для производной begin Result := Swish(X)+ (Swish(X) * (1 - Swish(X))); end; Но появилась ошибка floating point overflow. Видимо где-то надо делать какие-то ограничения, но где - не могу понять.
@user-ny5rt8sl4u
@user-ny5rt8sl4u Год назад
если значение производной оказывается нулевым, то обучение останавливается, для DefReLU должно быть Result:=0.001; про floating point overflow надо смотреть отдельно, обычно это случается при слишком больших значениях.
@CrazyTVnet
@CrazyTVnet 2 года назад
🙏
@alexshine33
@alexshine33 Год назад
Почаще бы ролики
@user-ny5rt8sl4u
@user-ny5rt8sl4u Год назад
Я извиняюсь, год выдался тяжелым для меня, постараюсь исправится, поглядывайте за каналом постараюсь скоро ролик выложить.
@MrAhinko
@MrAhinko 2 года назад
Еще можно сделать функции записи и чтения нейросетей в файл
@user-ny5rt8sl4u
@user-ny5rt8sl4u 2 года назад
ну это не сложно, там и рассказывать особо не о чем
@user-ju4jb1yi3s
@user-ju4jb1yi3s 5 месяцев назад
100500 лайков однозначно! У меня другой вопрос.. Почему в году 2010 подобного ни кто не показывал((( Ещё бы пример оптимизации, было бы вообще хорошо. Или может кто поделиться? что бы обучение было не на одном ядре.
@user-ny5rt8sl4u
@user-ny5rt8sl4u 5 месяцев назад
Потому что в 2010 я сам этого не знал ) В видео показана база, если нужна производительность то надо в сторону OpenCL смотреть чтобы считать нейросеть на сотнях и тысячах ядер видеокарты. Там уже вплоть до того что каждый нейрон на отдельном ядре посчитается.
@kotsya1
@kotsya1 2 года назад
есть небольшой вопрос по поводу применимости нейросети при анализе совершенных сделок ботом на криптобирже. с нейросетями ни разу не имел дела, но разрозненная информация в сети наталкивает на мысль, что они могут немного упростить задачу в поиске верных настроек бота. из логов удалось получить огромную тучу разных параметров по сделкам. пока не могу понять, что и как использовать. можно ли как-то с Вами связаться? может натолкнёте на здравую мысль.... если возможно ;)
@user-ny5rt8sl4u
@user-ny5rt8sl4u 2 года назад
Пишите в группу в ВК, все расскажу )
@aijedi45
@aijedi45 Год назад
Хз актуально ли но если правильно понял то тут хватит простого генетического алгоритма
@ZhansayaAmanzholova-wm4wp
@ZhansayaAmanzholova-wm4wp 3 месяца назад
не понятно куда писать какой код( исправьте пожалуйстаа
@user-bd6gx1cw2q
@user-bd6gx1cw2q 2 года назад
Повторил, вроде все работает. Но чтобы разобраться как оно работает, решил упростить сеть до 1*1. И сделать элемент НЕ. То есть если на входе 0 то на входе 1, и наоборот. Инициализировал массив для тренировки нулями и единицами, а в ответах, соответственно наоборот. И вот такой упрощённый вариант не работает. Могли бы вы привести рабочий пример? Примеры разные в сети есть(2ине, 3или и тп) а вот самого поостого (1 вход и 1 НЕ выход)не могу найти.
@user-ny5rt8sl4u
@user-ny5rt8sl4u 2 года назад
Оно и не будет работать. Объясню по простому, чтобы из 0 сделать 1, надо где то эту 1 взять. Поэтому важно иметь дополнительный вход с постоянной единицей. Я во всех проектах так делаю. Для больших сетей это не так критично, а для 1х1 это прям принципиально.
@yellowknife4111
@yellowknife4111 5 месяцев назад
сделай для крестиков-ноликов, там элементарно
@levkalive294
@levkalive294 Год назад
Приветствую! Очень интересный контент ты создаешь, узкое и нелегкое направление. Можно ли с тобой связаться, чтобы задать пару вопросов. Имеется конкретная задача с определенными данными, интересует, сможет ли машинное обучение справиться с ней или сделать неплохой результат. Информация нужна для проработки темы на конференцию (нефтяная промышленность)
@user-ny5rt8sl4u
@user-ny5rt8sl4u Год назад
Здравствуйте, пишите в группу в ВК
@gavnacraftproject2697
@gavnacraftproject2697 2 года назад
Like For "Magic"
@user-hg9sw8qc7n
@user-hg9sw8qc7n 2 года назад
А можешь обучить на конкретных примерах? Мне для задач надо.
@user-ny5rt8sl4u
@user-ny5rt8sl4u 2 года назад
а в видео не конкретный пример?
@imaginatecstv
@imaginatecstv 2 года назад
I want to learn them. Seems so cool.. But can't understand the russian language. Could you please make them in english?
@user-ny5rt8sl4u
@user-ny5rt8sl4u 2 года назад
i have such plans to make videos in English
@imaginatecstv
@imaginatecstv 2 года назад
@@user-ny5rt8sl4u Great! Thank you..
@eitan71
@eitan71 11 месяцев назад
@@user-ny5rt8sl4u yes, please, make videos of AI written in Delphi - in english please. Thank you
@user-nl4fq1oc7e
@user-nl4fq1oc7e Год назад
а почему на 0:22 картинки летают в каком то 3Д мире?? тут какой то смысл заложен или шо
@user-ny5rt8sl4u
@user-ny5rt8sl4u Год назад
можете про t-SNE, PCA, UMAP почитать, смысл там заложен ) А вообще данные взяты со странички на гите: github.com/zalandoresearch/fashion-mnist
@user-nl4fq1oc7e
@user-nl4fq1oc7e Год назад
@@user-ny5rt8sl4u почитал про t-SNE, PCA, UMAP , но так и не понял, зачем картинки летают и вращаются
@user-ny5rt8sl4u
@user-ny5rt8sl4u Год назад
@@user-nl4fq1oc7e это пространственное представление набора, в видео это просто сделано для красоты.
@voron12051982
@voron12051982 2 года назад
Как расписать четыре строчки на питоне в дофига на дельфи...для понимания как работает из нутри полезно но не больше. Тем более пуловер он правильно отгадал а всеравно красный. Те надо еще учить и сколько надо нажать лерн чтобы не переучить
@user-ny5rt8sl4u
@user-ny5rt8sl4u 2 года назад
вы видимо не понимаете очень важной вещи - на питоне вы используете библиотеку Keras, Tensor Flow, PyTorch где внутри тоже дофига кода, который кстати на чистом питоне в добавок реализовать невозможно и он написан на С++. У меня на делфи есть библиотека, которая тоже позволяет строчек в пять эту задачу решить, но понятнее как все работает от этого не станет. Обучающие видео для понимания и создаются. Если написано красным - значит не правильно, значит это не Pullover а Coat (свитер и вроде как пиджак). Такая сеть конкретно под данную задачу не переучится и сохранит способность к обобщению. Проблемы могут быть в основном в задачах предсказания и генерации данных. В задачах классификации проблема переобучения не так существенна.
@alex_step_
@alex_step_ Год назад
Да. Было бы круто, если б Delphi Embarcadero написали бы TensorFlow и Keras для своей среды. Тоже можно было бы в два клика писать сетки. Но, правда они вроде написали модуль, который позволяет делать вставки на Python, но я его не пообовал.
@vlagavulvin3847
@vlagavulvin3847 2 месяца назад
>> Как расписать четыре строчки на питоне в дофига на дельфи... Как спалить дата-саентологиста по единственному комментарию.
@Xbszidos
@Xbszidos Год назад
ничего не понятно
@user-ny5rt8sl4u
@user-ny5rt8sl4u Год назад
не надо расстраиваться
@adeusexmachina
@adeusexmachina Год назад
правильно ли я понимаю, что эта нейросеть будет угадывать только среди этого набора графических ассетов? что если уже обученной нейросети начать скармливать изображения модифицированные но без искажения облика. Где-то штанины или рукава слегка укоротить, где-то дырки добавить или крестики площадью 1-3 кв пкс или цвет. Можно ли этот алгоритм из видео применить на массиве ключевых слов на разных языках, чтобы приводить их к английскому слову, например, для АИ ассистента?
@user-ny5rt8sl4u
@user-ny5rt8sl4u Год назад
В видео я говорил об этом, нейросеть получает оценку точности не на тех картинках на которых обучается. Для проверки там отдельный набор из 10 тысяч изображений. Для работы с текстом лучше применять технологии Word2Vec, например у Facebook есть технология FastText. Вот например демонстрация на стриме: ru-vid.comjrR1VrY1i2s?feature=shares&t=1382
@adeusexmachina
@adeusexmachina Год назад
@@user-ny5rt8sl4u спасибо за ответ. а что насчет распознавания слов из промпта для простенького ассистента? допустим в массиве для обучения слова и синонимы на разных языках которые упрощаем в термин. Типа: 1: [Домик-Дом-Домищще-Home-House] = house 2: [Девушка-Девочка-Женщина-Female-Women-Girl] = girl В итоге из промпта в свободной форме мы должны вычленить ключевые слова. Слова синонимы это как разные картинки одного вида одежды. А массив для теста - это слова из промпта разделенные запятой или пробелом