Нейросеть как пользоваться программой

Пару лет назад мы выпустили две статьи про нейросети, которые помогали с картинками и текстами:

  • Сгенерируй это — про создание текстов, фото, и музыки;
  • Как сгенерировать нейросетью любые картинки — запускали нейросеть у себя на компьютере и задавали текстовое описание, что должно получиться в итоге.

За два года всё ушло вперёд: картинки стали красивее, тексты — осмысленнее, а музыка — лучше. Мы собрали 10 лучших нейросетей 2022 года, которые могут помочь в работе и сделают нашу жизнь проще или интереснее.

DALL·E 2

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

Например, можно попросить её нарисовать технобуйвола, огромного медведя, сидящего на Земле или космонавта, скачущего на лошади среди звёзд — и она это сделает. Единственный минус — лимиты на создание картинок однажды заканчиваются и нужно будет заплатить, чтобы получить новые изображения.

MidJourney — Как Пользоваться Бесплатно и Без Ограничений ?! | Нейросеть Stable Diffusion

ChatGPT

Сервис недоступен в России

Эту нейросеть сделала та же команда, что и Dall-e, поэтому работает она так же круто. Это текстовый чат, который можно вести с нейронкой, но её отличие от всех остальных в том, что она может понимать контекст.

Например, ей можно сказать: «Представь, что ты получаешь Нобелевскую премию по химии и тебе нужно написать вступительную речь, а в ней указать на потепление климата». И ChatGPT это сделает — напишет связный текст и упомянет в нём нужные факты.

У неё можно спросить даже, как починить код, или попросить её написать алгоритм сокращения строк на Python — и на выходе получится готовый код. Насколько он рабочий — вопрос открытый.

Нейросеть понимает пока только английский язык, поэтому пример тоже на английском — в нём нейронку спросили, как лучше всего рассказать соседям о себе. Пелевинские фантазии о креативном доводчике уже в буквальном смысле воплощены в жизнь:

Балабоба

Текстовая нейросеть Яндекса, которая продолжает написанный вами текст. Работает не так всесторонне, как GPT, но и алгоритм в ней совсем другой. Задача Балабобы — быстро накреативить текст на разные темы. Мы использовали её в своих робоновостях, получилось неплохо:

RemoveBg

Этот сервис решает только одну задачу — он убирает фон с картинок. Раньше он умел это делать только с фотографиями людей, сейчас уже справляется просто с объектами на переднем плане.

Читайте также:
Функции программы 1с предприятие

Можно пользоваться бесплатно, но размер итоговой картинки маловат. Чтобы скачивать оригиналы без фона, придётся заплатить.

Источник: dzen.ru

Нейросети для чайников. Начало

Так получилось, что в университете тема нейросетей успешно прошла мимо моей специальности, несмотря на огромный интерес с моей стороны. Попытки самообразования несколько раз разбивались невежественным челом о несокрушимые стены цитадели науки в облике непонятных «с наскока» терминов и путанных объяснений сухим языком вузовских учебников.

НЕЙРОСЕТЬ MIDJOURNEY ТВОРИТ ЧУДЕСА! | Как пользоваться бесплатно?

В данной статье (цикле статей?) я попытаюсь осветить тему нейросетей с точки зрения человека непосвященного, простым языком, на простых примерах, раскладывая все по полочкам, а не «массив нейронов образует перцептрон, работающий по известной, зарекомендовавшей себя схеме».

Заинтересовавшихся прошу под кат.

Цели

Для чего же нужны нейросети?
Нейросеть – это обучаемая система. Она действует не только в соответствии с заданным алгоритмом и формулами, но и на основании прошлого опыта. Этакий ребенок, который с каждым разом складывает пазл, делая все меньше ошибок.

И, как принято писать у модных авторов – нейросеть состоит из нейронов.
Тут нужно сделать остановку и разобраться.

Договоримся, что нейрон – это просто некая воображаемая чёрная коробка, у которой кучка входных отверстий и одно выходное.
Причем как входящая, так и исходящая информация может быть аналоговой (чаще всего так и будет).

Как выходной сигнал формируется из кучи входных – определяет внутренний алгоритм нейрона.

Для примера напишем небольшую программу, которая будет распознавать простые изображения, скажем, буквы русского языка на растровых изображениях.
Условимся, что в исходном состоянии наша система будет иметь «пустую» память, т.е. этакий новорожденный мозг, готовый к бою.
Для того чтобы заставить его корректно работать, нам нужно будет потратить время на обучение.

Уворачиваясь от летящих в меня помидоров, скажу, что писать будем на Delphi (на момент написания статьи была под рукой). Если возникнет необходимость – помогу перевести пример на другие языки.

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

Итак, исходя из поставленной задачи — сколько вариантов выхода может быть? Правильно, столько, сколько букв мы будем уметь определять. В алфавите их пока только 33, на том и остановимся.

Далее, определимся со входными данными.Чтобы слишком не заморачиватсья – будем подавать на вход битовый массив 30х30 в виде растрового изображения:

Читайте также:
Какие есть программы для создания сайтов

В итоге – нужно создать 33 нейрона, у каждого из которых будет 30х30=900 входов.
Создадим класс для нашего нейрона:

type Neuron = class name: string; // Тут название нейрона – буква, с которой он ассоциируется input: array[0..29,0..29] of integer; // Тут входной массив 30х30 output:integer; // Сюда он будет говорить, что решил memory:array[0..29,0..29] of integer; // Тут он будет хранить опыт о предыдущем опыте end;

Создадим массив нейронов, по количеству букв:

For i:=0 to 32 do begin neuro_web[i]:=Neuron.Create; neuro_web[i].output:=0; // Пусть пока молчит neuro_web[i].name:=chr(Ord(‘A’)+i); // Буквы от А до Я end;

Теперь вопрос – где мы будем хранить «память» нейросети, когда программа не работает?
Чтобы не углубляться в INI или, не дай бог, базы данных, я решил хранить их в тех же растровых изображениях 30х30.
Вот например, память нейрона «К» после прогона программы по разным шрифтам:

Как видно, самые насыщенные области соответствуют наиболее часто встречаемым пикселям.
Будем загружать «память» в каждый нейрон при его создании:

p:=TBitmap.Create; p.LoadFromFile(ExtractFilePath(Application.ExeName)+’res’+ neuro_web[i].name+’.bmp’)

В начале работы необученной программы, память каждого нейрона будет белым пятном 30х30.

Распознавать нейрон будет так:

— Берем 1й пиксель
— Сравниваем его с 1м пикселем в памяти (там лежит значение 0..255)
— Сравниваем разницу с неким порогом
— Если разница меньше порога – считаем, что в данной точке буква похожа на лежащую в памяти, добавляем +1 к весу нейрона.

И так по всем пикселям.

Вес нейрона – это некоторое число (в теории до 900), которое определяется степенью сходства обработанной информации с хранимой в памяти.
В конце распознавания у нас будет набор нейронов, каждый из которых считает, что он прав на сколько-то процентов. Эти проценты – и есть вес нейрона. Чем больше вес, тем вероятнее, что именно этот нейрон прав.

Теперь будем скармливать программе произвольное изображение и пробегать каждым нейроном по нему:

for x:=0 to 29 do for y:=0 to 29 do begin n:=neuro_web[i].memory[x,y]; m:=neuro_web[i].input[x,y]; if ((abs(m-n)<120)) then // Порог разницы цвета if m<250 then neuro_web[i].weight:=neuro_web[i].weight+1; // Кроме того, не будем учитывать белые пиксели, чтобы не получать лишних баллов в весах if m<>0 then begin if m0 then if m

Как только закончится цикл для последнего нейрона – будем выбирать из всех тот, у которого вес больше:

if neuro_web[i].weight>max then begin max:=neuro_web[i].weight; max_n:=i; end;

Именно по вот этому значению max_n, программа и скажет нам, что, по её мнению, мы ей подсунули.
По началу это будет не всегда верно, поэтому нужно сделать алгоритм обучения.

Читайте также:
В каких программах работают фотографы

s:=InputBox(‘Enter the letter’, ‘программа считает, что это буква ’+neuro_web[max_n].name, neuro_web[max_n].name); for i:=0 to 32 do begin //Пробегаем по нейронам if neuro_web[i].name=s then begin //В нужном нейроне обновляем память for x:=0 to 29 do begin for y:=0 to 29 do begin p.Canvas.Pixels[x,y]:=RGB(neuro_web[i].memory[x,y],neuro_web[i].memory[x,y], neuro_web[i].memory[x,y]); //Записываем новое значение пикселя памяти end; end; p.SaveToFile(ExtractFilePath(Application.ExeName)+’res’+ neuro_web[i].name+’.bmp’);

Само обновление памяти будем делать так:

n:=round(n+(n+m)/2);

Т.е. если данная точка в памяти нейрона отсутствует, но учитель говорит, что она есть в этой букве – мы её запоминаем, но не полностью, а только наполовину. С дальнейшим обучением, степень влияния данного урока будет увеличиваться.

Вот несколько итераций для буквы Г:

На этом наша программа готова.

Обучение

Начнем обучение.
Открываем изображения букв и терпеливо указываем программе на её ошибки:

Через некоторое время программа начнет стабильно определять даже не знакомые ей ранее буквы:

Программа представляет собой один сплошной недостаток – наша нейросеть очень глупа, она не защищена от ошибок пользователя при обучении и алгоритмы распознавания просты как палка.
Зато она дает базовые знания о функционировании нейросетей.

Если данная статья заинтересует уважаемых хабравчан, то я продолжу цикл, постепенно усложняя систему, вводя дополнительные связи и веса, рассмотрю какую-нибудь из популярных архитектур нейросетей и т.д.

Поиздеваться над нашим свежерожденный интеллектом вы можете, скачав программу вместе с исходниками тут.

За сим откланяюсь, спасибо за чтение.

UPD: У нас получилась заготовка для нейросети. Пока что это ещё ей не является, но в следующей статье мы постараемся сделать из неё полноценную нейросеть.
Спасибо Shultc за замечание.

  • нейронные сети
  • нейрон
  • программирование
  • Программирование
  • Алгоритмы

Источник: habr.com

Запускаем нейросеть на домашнем компьютере

Сегодня у нас нестандартный проект: будем устанавливать и запускать настоящую нейросеть у себя на компьютере.

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

И ещё: нейросети — это на самом деле скучно, медленно и не очень эффектно в настройке. Мы привыкли сразу видеть классный и красивый результат, а то, что было до этого, нам обычно не показывают. Эта статья работает наоборот: долго показывает весь процесс, а финальный результат получается за пару секунд.

В этом суть нейросетей: долгая и кропотливая работа ради эффектной концовки.

Что сделаем

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru