ПОДПИСЫВАЙТЕСЬ НА НАШ YouTube канал

ВСТУПАЙТЕ В НАШУ ГРУППУ ВКонтакте

ПОМОЩЬ ПРОЕКТУ

WebMoney:

R331786706209

Z100556122132

E101817937933

Яндекс Деньги:

Карта СБЕРБАНК

5336 6901 9753 0993

 Так же Вы можете ПОМОЧЬ НАМ, КЛИКНУВ ПО РЕКЛАМЕ, для Вас это абсолютно БЕЗОПАСНО и БЕСПЛАТНО!

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

Как создать нейросеть?

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

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

О нейронах и методах прямого распространения

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

Для наилучшего понимания давайте посмотрим на картинку ниже. Круг — это искусственный нейрон. Он получает 5, а возвращает 1. Под вводом понимается сумма трёх синапсов, соединённых с нейроном (это три стрелки слева).

Как создать нейросеть?

В левой части у нас находятся два входных значения (выделены зелёным цветом) и одно смещение (выделено коричневым цветом).

При этом входные данные могут быть численными представлениями 2-х различных свойств. К примеру, когда создаёшь спам-фильтр, они могут означать наличие больше чем одного слова, написанного прописными буквами, и наличие слова «Виагра».

Также следует понимать, что входные значения умножаются на собственные так называемые «веса» — в нашем случае это 7 и 3 (выделены синим).

Далее полученные значения складываются со смещением, и получается число 5, которое у нас выделено красным. Это и есть ввод искусственного нейрона.

Как создать нейросеть?

Идём дальше. Нейрон выполняет вычисление, выдавая выходное значение. Мы получили 1, так как именно единице равно округлённое значение сигмоиды в точке 5. Если, опять же, вспомнить про спам-фильтр, то факт вывода единицы означал бы, что текст был помечен нейроном в качестве спама.

Как создать нейросеть?

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

Сигмоида

Прежде чем приступить к следующему шагу, было бы неплохо ознакомиться с 4-й неделей курса по Machine Learning от Coursera — она как раз посвящена нейронным сетям и помогла бы вам разобраться в особенностях и принципах их работы. Да, этот курс слишком сильно углубляется в математику, плюс основан на Octave, хотя многие предпочитают Python. Но тем не менее там можно почерпнуть много полезных знаний.

Как создать нейросеть?

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

Если честно, это может занять целый день, причём результат будет далёк от идеального. Вот, к примеру, как с этим справился Per Harald Borgen, англоязычная статья которого стала основой материала, который вы сейчас читаете. Но главное здесь не в том, чтобы сделать всё идеально, а в том, чтобы разобраться, как всё работает. И понять, как устроена сигмоида.

О методе обратного распространения ошибки

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

Если говорить коротко, то вы оцениваете, насколько сильно ошиблась сеть, а потом изменяете вес входных значений (на первой картинке это синие числа).

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

Как создать нейросеть?

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

A Step by Step Backpropagation Example;

Hacker’s guide to Neural Networks;

Using neural nets to recognize handwritten digits.

Однако учтите, что читая первые 2 статьи, вам обязательно придётся кодить самому, что поможет в дальнейшем. Избегать этого не рекомендуется, ведь в нейронных сетях невозможно разобраться, не практикуя. Что касается 3-й статьи, то это материал размером с книгу, больше напоминающую энциклопедию. Зато в ней даны подробные разъяснения важнейших принципов работы нейронных сетей. В частности, вы изучите функцию стоимости, градиентный спуск и т. д.

Создание своей нейросети

Читая разные статьи и руководства, вы так или иначе будете создавать небольшие нейросети. И это очень эффективно для обучения в целом.

Пример очень полезной информации можно найти здесь. В этом материале удивительное количество знаний сжато до 11 строк кода.

Как создать нейросеть?

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

Что ещё? Ну, при реализации многих примеров используются векторные вычисления, поэтому понимание линейной алгебры тоже потребуется.

Как создать нейросеть?

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

ПОДПИСЫВАЙТЕСЬ НА НАШ YouTube канал

ВСТУПАЙТЕ В НАШУ ГРУППУ ВКонтакте

ПОМОЩЬ ПРОЕКТУ

WebMoney:

R331786706209

Z100556122132

E101817937933

Яндекс Деньги:

Карта СБЕРБАНК

5336 6901 9753 0993

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

Внимание!
- Спам, флуд и прочее будет удаляться! - Все сообщения, охарактеризованные как рекламные, будут удаляться, а пользователи, занимающиеся такой деятельностью, будут отправлены в бан без предупреждения!

О проекте www.o000o.ru

Проект www.o000o.ru - это площадка обмена актуальными академическими знаниями для русскоязычной аудитории, независимо от места проживания, географии, места работы или учебы, а также социально-экономического статуса.

Все, что Вам интересно! Новости, Лекции, Эзотерика, Космос, Здоровье, Люди, Технологии, Чтиво, Бизнес, Юмор, Политика.

 

 

Яндекс.Метрика

 

Последние новости

Наши друзья

Здесь Вы можете разместить ссылку на свой ресурс. Для размещения ссылки обратитесь к администратору.


 

ПОМОЩЬ ПРОЕКТУ

WebMoney:

R331786706209

Z100556122132

E101817937933

Яндекс Деньги:

Карта СБЕРБАНК

5336 6901 9753 0993