Alvaros
.
- Регистрация
- 14.05.16
- Сообщения
- 21.452
- Реакции
- 101
- Репутация
- 204
Всем привет! Меня зовут
Давайте сэкономим время и представим, что вы слышали о нейросетях, знаете о их преимуществах и хотите научиться их применять.
При этом вы потыкались в обучающие статьи. Всё было непонятно. С первых же страниц начали грузить интегралами и градиентными спусками. Вы решили пойти на курсы. Там ещё хуже. Курс занимал 4-12 месяцев. А стоил как крыло самолета: 100-200 тыс руб. Ну, небольшое такое крыло. Да и мотивация ниже плинтуса без волшебных пинков от учителя.
Всё что вы хотели — получить
Немного теории. Нейросеть — это
Но в отличие от Монте-Кристо у него есть входной S-слой (сенсорный). Туда мы подаем числа в промежутке [0..1]. Например, картинка с котиком. Берём каждую точку, преобразуем в градации серого и записываем во входной узел по правилу, где 0 — белый цвет, а чем ближе к 1, тем более тёмные мысли у нашей точки.
Далее промежуточные — A-ассоциативные слои. Они также содержат значения [0..1]. Они соединяются ребрами с предыдущими и последующими слоями. Веса рёбер находятся в пределах [0..1], задаваемые произвольно. Значение узла А-слоя — это сумма его входящих рёбер умноженных на связанные узлы предыдущего слоя. Полученная сумма может получиться больше 1, поэтому её «нормализуют», чтобы она попала в интервал [0..1]. Для этого используют
Наконец, последний, или как сказали бы моряки, «крайний» — R-реагирующий слой. Правила подсчёта у него такие же, как и для А-слоев.
Получился вот такой парень, а точнее,
Итак. Мы подаем на вход нейросети циферки. Далее от входа до выхода просчитываем значения с учетом поданных сигналов на узлы, веса рёбер и функции активации слоев. На выходе получаем значения. Допустим, у нас 1 выходной узел и его значение 0.5. А мы бы хотели, чтобы его значение было 1. Потому что мы условились, что 1 на узле означает, что на фото кошка. Как же изменить веса рёбер, чтобы на выходе получить 1?
Для этого используется особо сильное колдунство —
Вот, кстати, и она:
Ну и, в принципе, всё! Можете считать себя Junior Data Science и на зарплату, меньшую чем 300 тыс руб не соглашайтесь! Конечно, есть ещё много вещей, которые полезно знать:
Что же насчет обещанного HelloWorld? Их есть у меня!
Ну и, пожалуй, хватит. Ещё больше примеров
You must be registered for see links
, я фуллстек-разработчик в компании БКС. Недавно я самостоятельно изучал нейросети и по итогам
You must be registered for see links
. Ниже я расскажу как устроена простейшая нейросеть.
Давайте сэкономим время и представим, что вы слышали о нейросетях, знаете о их преимуществах и хотите научиться их применять.
При этом вы потыкались в обучающие статьи. Всё было непонятно. С первых же страниц начали грузить интегралами и градиентными спусками. Вы решили пойти на курсы. Там ещё хуже. Курс занимал 4-12 месяцев. А стоил как крыло самолета: 100-200 тыс руб. Ну, небольшое такое крыло. Да и мотивация ниже плинтуса без волшебных пинков от учителя.
Всё что вы хотели — получить
You must be registered for see links
, но для нейросетей. То бишь простейшее приложение демонстрирующее основные принципы работы. Вуаля! Вы на верном пути!Немного теории. Нейросеть — это
You must be registered for see links
.Но в отличие от Монте-Кристо у него есть входной S-слой (сенсорный). Туда мы подаем числа в промежутке [0..1]. Например, картинка с котиком. Берём каждую точку, преобразуем в градации серого и записываем во входной узел по правилу, где 0 — белый цвет, а чем ближе к 1, тем более тёмные мысли у нашей точки.
Далее промежуточные — A-ассоциативные слои. Они также содержат значения [0..1]. Они соединяются ребрами с предыдущими и последующими слоями. Веса рёбер находятся в пределах [0..1], задаваемые произвольно. Значение узла А-слоя — это сумма его входящих рёбер умноженных на связанные узлы предыдущего слоя. Полученная сумма может получиться больше 1, поэтому её «нормализуют», чтобы она попала в интервал [0..1]. Для этого используют
You must be registered for see links
.Наконец, последний, или как сказали бы моряки, «крайний» — R-реагирующий слой. Правила подсчёта у него такие же, как и для А-слоев.
Получился вот такой парень, а точнее,
You must be registered for see links
:
Итак. Мы подаем на вход нейросети циферки. Далее от входа до выхода просчитываем значения с учетом поданных сигналов на узлы, веса рёбер и функции активации слоев. На выходе получаем значения. Допустим, у нас 1 выходной узел и его значение 0.5. А мы бы хотели, чтобы его значение было 1. Потому что мы условились, что 1 на узле означает, что на фото кошка. Как же изменить веса рёбер, чтобы на выходе получить 1?
Для этого используется особо сильное колдунство —
You must be registered for see links
. Смысл в том, чтобы справа налево (от R-слоев к S-слоям) поменять веса рёбер так, чтобы на выходе получить нужные значения. Если проделать так много раз для разных картинок, то постепенно, нейросеть «научится» распознавать тот образ, который мы хотим. Подробнее
You must be registered for see links
и оригинальную статью
You must be registered for see links
. Кстати, картинку с примером реализации на вики выложил тоже я.Вот, кстати, и она:
Ну и, в принципе, всё! Можете считать себя Junior Data Science и на зарплату, меньшую чем 300 тыс руб не соглашайтесь! Конечно, есть ещё много вещей, которые полезно знать:
- Надо ли каждый раз писать с нуля такой граф? Конечно, нет! Есть множество библиотек, помогающих создать нейросеть в 1 клик:
You must be registered for see links,You must be registered for see links,You must be registered for see links,You must be registered for see linksВыберите исходя из функционала, популярности и знакомого языка программирования.
- Где брать датасеты для нейросетей? Ну, поищите их на
You must be registered for see links,You must be registered for see links,You must be registered for see links, соберите сами, в конце концов! Подсказка — смартфон собирает тучи данных о вас через мобильные приложения, включённый микрофон и GPS-сенсор.
- Как обрабатывать входные данные для нейросети? Да как угодно! На любом языке программирования — C#, Java, Javascript… Особо упоротые используют
You must be registered for see links.
- Как подобрать архитектуру графа — число слоёв, узлов, ребер, функции активации и ошибки, библиотеку для обработки? Арргх! В этом и
You must be registered for see linksработа датасаенса!
- Я сделаю ИИ-приложение и инвесторы дадут мне 100 лямов, заберут в долину, позвонит Цукерберг? Лол, нет! Нейросети — лишь инструмент для определенного класса задач. Решайте
You must be registered for see links, а не как в прошлый раз. Совсем огонь еслиYou must be registered for see links.
Что же насчет обещанного HelloWorld? Их есть у меня!
-
You must be registered for see links
-
You must be registered for see links
-
You must be registered for see links
-
You must be registered for see links
-
You must be registered for see links
Ну и, пожалуй, хватит. Ещё больше примеров
You must be registered for see links
. А в гугле вообще завались!



