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

  Рет қаралды 12,656

Записки электроника

Записки электроника

Күн бұрын

В этом видео я покажу как сделать с нуля нейросеть для распознавания графических образов Fashion MNIST. Расскажу о том как сделать многослойный перцептрон и запрограммировать метод обратного распространения ошибки. Писать проект буду в одной из последних версий Delphi XE10.
Проект на Boosty: boosty.to/tech...
Еще поддержать меня можно тут: www.donational....
Группа в ВК: public1...
музыка в видео:
------------------------------
Track: Back to 1981 - Iaio [Audio Library Release]
Music provided by Audio Library Plus
Watch: • Back to 1981 - Iaio | ...
Free Download / Stream: alplus.io/back...
------------------------------

Пікірлер: 51
@ФёдорПупкин-ю9х
@ФёдорПупкин-ю9х 9 ай бұрын
Мужик, ты куда пропал? Отличный контент, не забрасывай!
@Запискиэлектроника
@Запискиэлектроника 9 ай бұрын
Да над одним проектом работаю, не связанным с каналом, но позже может и о нем расскажу, а так не забрасываю, новые видео будут, может даже скоро
@intershull
@intershull 5 ай бұрын
Спасибо вам, что не забываете паскаль.
@ПарамоновАлександр
@ПарамоновАлександр Жыл бұрын
Давно хотел разобраться в этом вопросе. Супер!! Благодарю за видео.
@evgenysamarin
@evgenysamarin 10 ай бұрын
Ого Delphi ещё живой 😳
@alex_step_
@alex_step_ 20 күн бұрын
Жив и назвивается. Назло гробовщикам.
@ArmagPlay
@ArmagPlay 2 жыл бұрын
Спасибо за интересный материал и подробные объяснения!
@КириллКалита-ч3ж
@КириллКалита-ч3ж Жыл бұрын
Отличный ролик, спасибо!🎉
@nikolaydd6219
@nikolaydd6219 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. Видимо где-то надо делать какие-то ограничения, но где - не могу понять.
@Запискиэлектроника
@Запискиэлектроника Жыл бұрын
если значение производной оказывается нулевым, то обучение останавливается, для DefReLU должно быть Result:=0.001; про floating point overflow надо смотреть отдельно, обычно это случается при слишком больших значениях.
@Rabbit-with-an-ax.
@Rabbit-with-an-ax. 9 ай бұрын
Шикарно! Не знал что на делфи такое можна, ну хотя как бы я узнал если вместо учобы спал!
@alex_step_
@alex_step_ 20 күн бұрын
А с каго перепугу это было бы невозможно на любом высокоуровневом языке? Да под тормознутый Python написано миллион библиотек и такой код там займёт всего несколько строк. А на Delphi придётся весь алгоритм прописывать ручками. Я в своё время пытался использовать уже готовые библиотеки для нейронных сетей, но большинство из них не рабочие, одна заработала FANN, но её фунцционал не велик. Но в любом случае это работало в 300 раз быстрее распиариеого питона.
@Clementine_X
@Clementine_X 2 жыл бұрын
👍
@alexshine33
@alexshine33 Жыл бұрын
Почаще бы ролики
@Запискиэлектроника
@Запискиэлектроника Жыл бұрын
Я извиняюсь, год выдался тяжелым для меня, постараюсь исправится, поглядывайте за каналом постараюсь скоро ролик выложить.
@CrazyTVnet
@CrazyTVnet 2 жыл бұрын
🙏
@adeusexmachina
@adeusexmachina Жыл бұрын
правильно ли я понимаю, что эта нейросеть будет угадывать только среди этого набора графических ассетов? что если уже обученной нейросети начать скармливать изображения модифицированные но без искажения облика. Где-то штанины или рукава слегка укоротить, где-то дырки добавить или крестики площадью 1-3 кв пкс или цвет. Можно ли этот алгоритм из видео применить на массиве ключевых слов на разных языках, чтобы приводить их к английскому слову, например, для АИ ассистента?
@Запискиэлектроника
@Запискиэлектроника Жыл бұрын
В видео я говорил об этом, нейросеть получает оценку точности не на тех картинках на которых обучается. Для проверки там отдельный набор из 10 тысяч изображений. Для работы с текстом лучше применять технологии Word2Vec, например у Facebook есть технология FastText. Вот например демонстрация на стриме: kzbin.infojrR1VrY1i2s?feature=shares&t=1382
@adeusexmachina
@adeusexmachina Жыл бұрын
@@Запискиэлектроника спасибо за ответ. а что насчет распознавания слов из промпта для простенького ассистента? допустим в массиве для обучения слова и синонимы на разных языках которые упрощаем в термин. Типа: 1: [Домик-Дом-Домищще-Home-House] = house 2: [Девушка-Девочка-Женщина-Female-Women-Girl] = girl В итоге из промпта в свободной форме мы должны вычленить ключевые слова. Слова синонимы это как разные картинки одного вида одежды. А массив для теста - это слова из промпта разделенные запятой или пробелом
@kotsya1
@kotsya1 2 жыл бұрын
есть небольшой вопрос по поводу применимости нейросети при анализе совершенных сделок ботом на криптобирже. с нейросетями ни разу не имел дела, но разрозненная информация в сети наталкивает на мысль, что они могут немного упростить задачу в поиске верных настроек бота. из логов удалось получить огромную тучу разных параметров по сделкам. пока не могу понять, что и как использовать. можно ли как-то с Вами связаться? может натолкнёте на здравую мысль.... если возможно ;)
@Запискиэлектроника
@Запискиэлектроника 2 жыл бұрын
Пишите в группу в ВК, все расскажу )
@aijedi45
@aijedi45 2 жыл бұрын
Хз актуально ли но если правильно понял то тут хватит простого генетического алгоритма
@ЕвгенийЗырянов-э7й
@ЕвгенийЗырянов-э7й 8 ай бұрын
100500 лайков однозначно! У меня другой вопрос.. Почему в году 2010 подобного ни кто не показывал((( Ещё бы пример оптимизации, было бы вообще хорошо. Или может кто поделиться? что бы обучение было не на одном ядре.
@Запискиэлектроника
@Запискиэлектроника 8 ай бұрын
Потому что в 2010 я сам этого не знал ) В видео показана база, если нужна производительность то надо в сторону OpenCL смотреть чтобы считать нейросеть на сотнях и тысячах ядер видеокарты. Там уже вплоть до того что каждый нейрон на отдельном ядре посчитается.
@alex_step_
@alex_step_ 20 күн бұрын
Потому, что сейчас получить на правильно заданый вопро легче обращаясь к GPT. Да в коде для делфи он не редко допускает ошибки. Но никто не запрещает разбить задачу на более мелкие, их легче проверить и найти ошибку. Из книг по оптимизаторам я вообще ничего не понял, а с GPT разобрался за день. В коде он наделал ошибок, но самое главное стал понятен алгоритм, а там и выявить ошибки удалось. Как то так.
@MrAhinko
@MrAhinko 2 жыл бұрын
Еще можно сделать функции записи и чтения нейросетей в файл
@Запискиэлектроника
@Запискиэлектроника 2 жыл бұрын
ну это не сложно, там и рассказывать особо не о чем
@ZhansayaAmanzholova-wm4wp
@ZhansayaAmanzholova-wm4wp 6 ай бұрын
не понятно куда писать какой код( исправьте пожалуйстаа
@ИльяЕфремов-ы8ъ
@ИльяЕфремов-ы8ъ 2 жыл бұрын
Повторил, вроде все работает. Но чтобы разобраться как оно работает, решил упростить сеть до 1*1. И сделать элемент НЕ. То есть если на входе 0 то на входе 1, и наоборот. Инициализировал массив для тренировки нулями и единицами, а в ответах, соответственно наоборот. И вот такой упрощённый вариант не работает. Могли бы вы привести рабочий пример? Примеры разные в сети есть(2ине, 3или и тп) а вот самого поостого (1 вход и 1 НЕ выход)не могу найти.
@Запискиэлектроника
@Запискиэлектроника 2 жыл бұрын
Оно и не будет работать. Объясню по простому, чтобы из 0 сделать 1, надо где то эту 1 взять. Поэтому важно иметь дополнительный вход с постоянной единицей. Я во всех проектах так делаю. Для больших сетей это не так критично, а для 1х1 это прям принципиально.
@yellowknife4111
@yellowknife4111 8 ай бұрын
сделай для крестиков-ноликов, там элементарно
@gavnacraftproject2697
@gavnacraftproject2697 2 жыл бұрын
Like For "Magic"
@levkalive294
@levkalive294 Жыл бұрын
Приветствую! Очень интересный контент ты создаешь, узкое и нелегкое направление. Можно ли с тобой связаться, чтобы задать пару вопросов. Имеется конкретная задача с определенными данными, интересует, сможет ли машинное обучение справиться с ней или сделать неплохой результат. Информация нужна для проработки темы на конференцию (нефтяная промышленность)
@Запискиэлектроника
@Запискиэлектроника Жыл бұрын
Здравствуйте, пишите в группу в ВК
@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?
@Запискиэлектроника
@Запискиэлектроника 2 жыл бұрын
i have such plans to make videos in English
@imaginatecstv
@imaginatecstv 2 жыл бұрын
@@Запискиэлектроника Great! Thank you..
@eitan71
@eitan71 Жыл бұрын
@@Запискиэлектроника yes, please, make videos of AI written in Delphi - in english please. Thank you
@РишатМутафин
@РишатМутафин 2 жыл бұрын
А можешь обучить на конкретных примерах? Мне для задач надо.
@Запискиэлектроника
@Запискиэлектроника 2 жыл бұрын
а в видео не конкретный пример?
@КошкинКошкин
@КошкинКошкин Жыл бұрын
а почему на 0:22 картинки летают в каком то 3Д мире?? тут какой то смысл заложен или шо
@Запискиэлектроника
@Запискиэлектроника Жыл бұрын
можете про t-SNE, PCA, UMAP почитать, смысл там заложен ) А вообще данные взяты со странички на гите: github.com/zalandoresearch/fashion-mnist
@КошкинКошкин
@КошкинКошкин Жыл бұрын
@@Запискиэлектроника почитал про t-SNE, PCA, UMAP , но так и не понял, зачем картинки летают и вращаются
@Запискиэлектроника
@Запискиэлектроника Жыл бұрын
@@КошкинКошкин это пространственное представление набора, в видео это просто сделано для красоты.
@voron12051982
@voron12051982 2 жыл бұрын
Как расписать четыре строчки на питоне в дофига на дельфи...для понимания как работает из нутри полезно но не больше. Тем более пуловер он правильно отгадал а всеравно красный. Те надо еще учить и сколько надо нажать лерн чтобы не переучить
@Запискиэлектроника
@Запискиэлектроника 2 жыл бұрын
вы видимо не понимаете очень важной вещи - на питоне вы используете библиотеку Keras, Tensor Flow, PyTorch где внутри тоже дофига кода, который кстати на чистом питоне в добавок реализовать невозможно и он написан на С++. У меня на делфи есть библиотека, которая тоже позволяет строчек в пять эту задачу решить, но понятнее как все работает от этого не станет. Обучающие видео для понимания и создаются. Если написано красным - значит не правильно, значит это не Pullover а Coat (свитер и вроде как пиджак). Такая сеть конкретно под данную задачу не переучится и сохранит способность к обобщению. Проблемы могут быть в основном в задачах предсказания и генерации данных. В задачах классификации проблема переобучения не так существенна.
@alex_step_
@alex_step_ Жыл бұрын
Да. Было бы круто, если б Delphi Embarcadero написали бы TensorFlow и Keras для своей среды. Тоже можно было бы в два клика писать сетки. Но, правда они вроде написали модуль, который позволяет делать вставки на Python, но я его не пообовал.
@vlagavulvin3847
@vlagavulvin3847 5 ай бұрын
>> Как расписать четыре строчки на питоне в дофига на дельфи... Как спалить дата-саентологиста по единственному комментарию.
@Xbszidos
@Xbszidos Жыл бұрын
ничего не понятно
@Запискиэлектроника
@Запискиэлектроника Жыл бұрын
не надо расстраиваться
Разновидности архитектур нейросетей | НЕЙРОСЕТЬ ИЗНУТРИ
14:46
How to whistle ?? 😱😱
00:31
Tibo InShape
Рет қаралды 22 МЛН
兔子姐姐最终逃走了吗?#小丑#兔子警官#家庭
00:58
小蚂蚁和小宇宙
Рет қаралды 13 МЛН
What's in the clown's bag? #clown #angel #bunnypolice
00:19
超人夫妇
Рет қаралды 39 МЛН
Большой урок по программированию на Processing
1:00:53
Заметки Ардуинщика
Рет қаралды 203 М.
Эволюция нейросетей от Т9 до ChatGPT / Редакция.Наука
49:49
Сделал эволюцию цифровых деревьев в 3D!
6:34
Записки электроника
Рет қаралды 9 М.
Самое простое объяснение нейросети
16:30
Программный Кот
Рет қаралды 126 М.