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

Поделиться
HTML-код
  • Опубликовано: 13 сен 2024
  • В этом видео я покажу как сделать с нуля нейросеть для распознавания графических образов 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...
    ------------------------------

Комментарии • 48

  • @user-hg5sn7jb9b
    @user-hg5sn7jb9b 8 месяцев назад +6

    Мужик, ты куда пропал? Отличный контент, не забрасывай!

    • @user-ny5rt8sl4u
      @user-ny5rt8sl4u  8 месяцев назад +4

      Да над одним проектом работаю, не связанным с каналом, но позже может и о нем расскажу, а так не забрасываю, новые видео будут, может даже скоро

  • @intershull
    @intershull 3 месяца назад +1

    Спасибо вам, что не забываете паскаль.

  • @evgenysamarin
    @evgenysamarin 8 месяцев назад +2

    Ого Delphi ещё живой 😳

  • @ПарамоновАлександр

    Давно хотел разобраться в этом вопросе. Супер!! Благодарю за видео.

  • @ArmagPlay
    @ArmagPlay 2 года назад +1

    Спасибо за интересный материал и подробные объяснения!

  • @user-sf9nn6dh2q
    @user-sf9nn6dh2q Год назад

    Отличный ролик, спасибо!🎉

  • @Rabbit-with-an-ax.
    @Rabbit-with-an-ax. 8 месяцев назад

    Шикарно! Не знал что на делфи такое можна, ну хотя как бы я узнал если вместо учобы спал!

  • @nikolaydd6219
    @nikolaydd6219 2 года назад +2

    Класс! Очень качественный урок и лично мне нужный.

  • @Clementine_X
    @Clementine_X 2 года назад +3

    👍

  • @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 надо смотреть отдельно, обычно это случается при слишком больших значениях.

  • @alexshine33
    @alexshine33 Год назад +1

    Почаще бы ролики

    • @user-ny5rt8sl4u
      @user-ny5rt8sl4u  Год назад +1

      Я извиняюсь, год выдался тяжелым для меня, постараюсь исправится, поглядывайте за каналом постараюсь скоро ролик выложить.

  • @CrazyTVnet
    @CrazyTVnet 2 года назад +2

    🙏

  • @ЕвгенийЗырянов-э7й
    @ЕвгенийЗырянов-э7й 6 месяцев назад

    100500 лайков однозначно!
    У меня другой вопрос.. Почему в году 2010 подобного ни кто не показывал(((
    Ещё бы пример оптимизации, было бы вообще хорошо.
    Или может кто поделиться? что бы обучение было не на одном ядре.

    • @user-ny5rt8sl4u
      @user-ny5rt8sl4u  6 месяцев назад

      Потому что в 2010 я сам этого не знал )
      В видео показана база, если нужна производительность то надо в сторону OpenCL смотреть чтобы считать нейросеть на сотнях и тысячах ядер видеокарты. Там уже вплоть до того что каждый нейрон на отдельном ядре посчитается.

  • @MrAhinko
    @MrAhinko 2 года назад +1

    Еще можно сделать функции записи и чтения нейросетей в файл

    • @user-ny5rt8sl4u
      @user-ny5rt8sl4u  2 года назад

      ну это не сложно, там и рассказывать особо не о чем

  • @ZhansayaAmanzholova-wm4wp
    @ZhansayaAmanzholova-wm4wp 4 месяца назад

    не понятно куда писать какой код(
    исправьте пожалуйстаа

  • @gavnacraftproject2697
    @gavnacraftproject2697 2 года назад +2

    Like For "Magic"

  • @kotsya1
    @kotsya1 2 года назад +1

    есть небольшой вопрос по поводу применимости нейросети при анализе совершенных сделок ботом на криптобирже. с нейросетями ни разу не имел дела, но разрозненная информация в сети наталкивает на мысль, что они могут немного упростить задачу в поиске верных настроек бота. из логов удалось получить огромную тучу разных параметров по сделкам. пока не могу понять, что и как использовать. можно ли как-то с Вами связаться? может натолкнёте на здравую мысль.... если возможно ;)

    • @user-ny5rt8sl4u
      @user-ny5rt8sl4u  2 года назад

      Пишите в группу в ВК, все расскажу )

    • @aijedi45
      @aijedi45 2 года назад

      Хз актуально ли но если правильно понял то тут хватит простого генетического алгоритма

  • @user-bd6gx1cw2q
    @user-bd6gx1cw2q 2 года назад +1

    Повторил, вроде все работает. Но чтобы разобраться как оно работает, решил упростить сеть до 1*1. И сделать элемент НЕ. То есть если на входе 0 то на входе 1, и наоборот. Инициализировал массив для тренировки нулями и единицами, а в ответах, соответственно наоборот. И вот такой упрощённый вариант не работает. Могли бы вы привести рабочий пример? Примеры разные в сети есть(2ине, 3или и тп) а вот самого поостого (1 вход и 1 НЕ выход)не могу найти.

    • @user-ny5rt8sl4u
      @user-ny5rt8sl4u  2 года назад +1

      Оно и не будет работать. Объясню по простому, чтобы из 0 сделать 1, надо где то эту 1 взять. Поэтому важно иметь дополнительный вход с постоянной единицей. Я во всех проектах так делаю. Для больших сетей это не так критично, а для 1х1 это прям принципиально.

    • @yellowknife4111
      @yellowknife4111 7 месяцев назад

      сделай для крестиков-ноликов, там элементарно

  • @levkalive294
    @levkalive294 Год назад

    Приветствую! Очень интересный контент ты создаешь, узкое и нелегкое направление. Можно ли с тобой связаться, чтобы задать пару вопросов. Имеется конкретная задача с определенными данными, интересует, сможет ли машинное обучение справиться с ней или сделать неплохой результат. Информация нужна для проработки темы на конференцию (нефтяная промышленность)

    • @user-ny5rt8sl4u
      @user-ny5rt8sl4u  Год назад

      Здравствуйте, пишите в группу в ВК

  • @user-hg9sw8qc7n
    @user-hg9sw8qc7n 2 года назад +1

    А можешь обучить на конкретных примерах? Мне для задач надо.

    • @user-ny5rt8sl4u
      @user-ny5rt8sl4u  2 года назад +1

      а в видео не конкретный пример?

  • @imaginatecstv
    @imaginatecstv 2 года назад +1

    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 года назад +2

      i have such plans to make videos in English

    • @imaginatecstv
      @imaginatecstv 2 года назад +1

      @@user-ny5rt8sl4u Great! Thank you..

    • @eitan71
      @eitan71 Год назад

      @@user-ny5rt8sl4u
      yes, please, make videos of AI written in Delphi - in english please.
      Thank you

  • @КошкинКошкин
    @КошкинКошкин Год назад

    а почему на 0:22 картинки летают в каком то 3Д мире?? тут какой то смысл заложен или шо

    • @user-ny5rt8sl4u
      @user-ny5rt8sl4u  Год назад

      можете про t-SNE, PCA, UMAP почитать, смысл там заложен )
      А вообще данные взяты со странички на гите: github.com/zalandoresearch/fashion-mnist

    • @КошкинКошкин
      @КошкинКошкин Год назад

      @@user-ny5rt8sl4u почитал про t-SNE, PCA, UMAP , но так и не понял, зачем картинки летают и вращаются

    • @user-ny5rt8sl4u
      @user-ny5rt8sl4u  Год назад

      @@КошкинКошкин это пространственное представление набора, в видео это просто сделано для красоты.

  • @voron12051982
    @voron12051982 2 года назад

    Как расписать четыре строчки на питоне в дофига на дельфи...для понимания как работает из нутри полезно но не больше. Тем более пуловер он правильно отгадал а всеравно красный. Те надо еще учить и сколько надо нажать лерн чтобы не переучить

    • @user-ny5rt8sl4u
      @user-ny5rt8sl4u  2 года назад +12

      вы видимо не понимаете очень важной вещи - на питоне вы используете библиотеку Keras, Tensor Flow, PyTorch где внутри тоже дофига кода, который кстати на чистом питоне в добавок реализовать невозможно и он написан на С++. У меня на делфи есть библиотека, которая тоже позволяет строчек в пять эту задачу решить, но понятнее как все работает от этого не станет. Обучающие видео для понимания и создаются. Если написано красным - значит не правильно, значит это не Pullover а Coat (свитер и вроде как пиджак). Такая сеть конкретно под данную задачу не переучится и сохранит способность к обобщению. Проблемы могут быть в основном в задачах предсказания и генерации данных. В задачах классификации проблема переобучения не так существенна.

    • @alex_step_
      @alex_step_ Год назад

      Да. Было бы круто, если б Delphi Embarcadero написали бы TensorFlow и Keras для своей среды. Тоже можно было бы в два клика писать сетки. Но, правда они вроде написали модуль, который позволяет делать вставки на Python, но я его не пообовал.

    • @vlagavulvin3847
      @vlagavulvin3847 3 месяца назад

      >> Как расписать четыре строчки на питоне в дофига на дельфи...
      Как спалить дата-саентологиста по единственному комментарию.

  • @Xbszidos
    @Xbszidos Год назад

    ничего не понятно

  • @adeusexmachina
    @adeusexmachina Год назад

    правильно ли я понимаю, что эта нейросеть будет угадывать только среди этого набора графических ассетов? что если уже обученной нейросети начать скармливать изображения модифицированные но без искажения облика. Где-то штанины или рукава слегка укоротить, где-то дырки добавить или крестики площадью 1-3 кв пкс или цвет. Можно ли этот алгоритм из видео применить на массиве ключевых слов на разных языках, чтобы приводить их к английскому слову, например, для АИ ассистента?

    • @user-ny5rt8sl4u
      @user-ny5rt8sl4u  Год назад +1

      В видео я говорил об этом, нейросеть получает оценку точности не на тех картинках на которых обучается. Для проверки там отдельный набор из 10 тысяч изображений. Для работы с текстом лучше применять технологии Word2Vec, например у Facebook есть технология FastText.
      Вот например демонстрация на стриме:
      ruclips.net/user/livejrR1VrY1i2s?feature=shares&t=1382

    • @adeusexmachina
      @adeusexmachina Год назад

      @@user-ny5rt8sl4u спасибо за ответ. а что насчет распознавания слов из промпта для простенького ассистента? допустим в массиве для обучения слова и синонимы на разных языках которые упрощаем в термин. Типа:
      1: [Домик-Дом-Домищще-Home-House] = house
      2: [Девушка-Девочка-Женщина-Female-Women-Girl] = girl
      В итоге из промпта в свободной форме мы должны вычленить ключевые слова.
      Слова синонимы это как разные картинки одного вида одежды. А массив для теста - это слова из промпта разделенные запятой или пробелом