Как стать автором
Обновить

Комментарии 23

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

UPD. Сумма произведений весов нейронов на веса ребер?
вы правы, поправил текст
может запятую перед «умноженных»?
Строго говоря, значения во входных нейронах не обязаны быть [0, 1] хотя во многих случаях нормализация полезна. Также не все функции активации сводят значение в нейроне к этому диапазону. Например очень популярная нынче ReLU.
Вы правы, интервал может быть любым, не только [0,1] или [-1,+1]. Подробнее тут: ru.wikipedia.org/wiki/Функция_активации
указал ссылку в статье. В статье оставил про [0,1] т.к. в моих примерах используется логистическая функция с таким интервалом.
Чувак пишет «вот это перцептрон» и рисует не перцептрон
Запомните: В технических вещах русская википедия — не авторитетный источник. Смотрите ссылки с википедии на оригинальные статьи и исследования, их читайте.
Персептрон Розенблатта имел пороговую функцию активации. Знаете, что это такое?
Сейчас разные исследователи не пришли к консенсусу: считать ли «персептроном» полносвязную нейросеть с любой функцией активацией или нет. Дело в том, что с пороговой функцией активации алгоритм обучения упрощается, и класс решаемых таким алгоритмом обучения задач меняется.
Аналогично и отличается класс задач, решаемых нейросетями с одним скрытым слоем, и нейросетями с большим количеством скрытых слоёв. Поэтому многие склонны модель «персептрона», для которой были сделаны определённые выводы о классе решаемых задач, считать чем-то отдельным от нейросетей.
Про недостатки русской вики согласен.
Итого, на фото изображена «Логическая схема элементарного перцептрона» или что-то другое? ru.wikipedia.org/wiki/Перцептрон#/media/Файл:Simple_perceptron.svg
Да. И всё правильно написано про классическую работу: «Веса S—A связей могут иметь значения −1, +1 или 0 (то есть отсутствие связи)». Не было вещественных значений связей на первом скрытом слое, и, соответственно, не могло быть и полноценного алгоритма backprop с learning rate не равным 1.
Нисколько не пытаясь защитить исходную статью (которая по моему скромному мнению не просто пустая, но вредно пустая, т.к. искажает многие понятия), всё же не могу не заметить, что на практике мне ещё ни разу не удалось заметить в ML сообществе хоть кого-то заметного, кого бы парило использование термина «перцептрон» применительно к описанию любых неглубоких полносвязных НС. Точнее, более того, по меньшей мере некоторые (напр, из свежего H.Zhao et al arXiv:2004.13621) с удольствием используют именно этот термин, почему-то совершенно не волнуясь замшелыми вопросами, типа какая там в оригинале у Розенблатта была активация и т.д. и т.п, поскольку понимают, что отрасль давно уже ушла далеко вперёд и за неимением лучшего, можно использовать этот термин.
Arech, раз уж вы дали негативную оценку тексту, не мешало бы привести аргументы:
1) какие понятия были искажены и как их объяснить лучше
2) чем стоит дополнить текст
3) какие есть лучшие статьи, где объясняются основы DL максимально понятно для неподготовленного читателя
Сначала я не понимаю, а зачем вообще вашему «неподготовленному читателю» «вот это вот всё»? Чтобы что? Что он со всей этой информацией должен будет делать?
Ну и потом уже более мелкие вопросы, типа что значит «неподготовленный», кто это? Вот второкурсник мехмата, который ничего не знает про ML, но понимает линейную алгебру, — это неподготовленный? Или неподготовленный это обычный девятиклассник из обычной школы?..

Я согласен с вами, что я не предоставил аргументацию, хотя раз уж высказался, то стоило бы. Проблема в том, что пришлось бы слишком много всего говорить и слишком многое исправлять, чтобы привести всё это в какое-то согласие с парадигмой, используемой сообществом. У меня просто нет столько ни свободного времени, ни желания менторствовать… Ну, если утешит, можно просто отмахнуться от моих слов утверждением про козни завистников-злопыхателей.
> зачем вообще вашему «неподготовленному читателю» «вот это вот всё»?
Ну, например, чтобы узнать как это все устроено и понять, интересно ли это использовать в своей работе и стоит ли это изучить глубже

> что значит «неподготовленный»
Не готовый к работе (в DL), к чтению текстов о DL (не хватает знаний в математике и проч), к разбору примеров кода DL. Например, любой разраб закончивший универ более 5 лет назад и не работавший с DL раньше.

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

> козни завистников-злопыхателей
Ну прям детский сад. Критикуя — предлагай. Иначе ваши замечания это пустой треп.
> Нейросеть — это граф.
Любой граф? Именно граф, удовлетворяющий условиям ниже? Или каким-то другим?
a -> s -> a -> o — это нейросеть?
a -> o -> s -> o — это нейросеть?
a -> o -> s -> o — это нейросеть?
a -> s -> s -> o -> o — это нейросеть?
a -> o — это нейросеть?
И может ли быть больше одного входного и выходного слоёв?

>Но в отличие от Монте-Кристо у него есть входной S-слой (сенсорный)
Так никто не называет входной слой уже лет 30.

>Туда мы подаем числа в промежутке [0..1].
Нет, туда мы обычно подаём любые вещественные числа. Но бывают нюансы, дополнительное преобразование входа.

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

>> козни завистников-злопыхателей
>Ну прям детский сад. Критикуя — предлагай. Иначе ваши замечания это пустой треп.
Критикуя — предлагаем: убрать вашу поделку в черновики, или переписать целиком. Кажется, это было очевидно.

Становясь учителем, вы берёте на себя ответственность за формирование правильного понимания материала у студентов (или пытаетесь брать). Чтобы потом над этими студентами не смеялись, когда они начитаются ваших статей и будут пересказывать ваши ошибки.
А если писать статьи в духе «и так сойдёт», то как раз и происходит детский сад.
И да, таких статей на хабре уже и так с десяток.
> Нейросеть — это граф.
Любой граф? Именно граф, удовлетворяющий условиям ниже? Или каким-то другим?

БК: Какой же вы зануда. Есть такая штука — абстракция. Сложное объяснить простыми понятиями. Вы же не будете при изучении эксперимента с котом Шрёдингера уточнять породу и пол кошки? Для непонимающих, что такое граф на слове есть ссылка: ru.wikipedia.org/wiki/Граф_(математика)
ru.wikipedia.org/wiki/Кот_Шрёдингера

a -> s -> a -> o — это нейросеть?
a -> o -> s -> o — это нейросеть?
a -> o -> s -> o — это нейросеть?
a -> s -> s -> o -> o — это нейросеть?
a -> o — это нейросеть?

БК: нет, но если очень надо, то да

> И может ли быть больше одного входного и выходного слоёв?

БК: обычно нет, но если очень надо, то можно сделать и так. Зачем ограничивать себя в архитектуре и т.п.?

>Но в отличие от Монте-Кристо у него есть входной S-слой (сенсорный)
Так никто не называет входной слой уже лет 30.

БК: Простейший гуглинг показал, что называют, в том числе и в англоязычных текстах. Например тут: «Typically, the multi-layer network consists of a set of sensory units called an input layer»
www.sciencedirect.com/topics/nursing-and-health-professions/perceptron

>Туда мы подаем числа в промежутке [0..1].
Нет, туда мы обычно подаём любые вещественные числа. Но бывают нюансы, дополнительное преобразование входа.

БК: Да, любые, но потом ОБЫЧНО преобразуем данные в [0..1], т.к. так удобнее работать. Или не преобразуем, если понимаем, что мы делаем и как работают функции активации и что будет взамен них.

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

БК: Не вижу конструктива для обсуждения.

>> козни завистников-злопыхателей
>Ну прям детский сад. Критикуя — предлагай. Иначе ваши замечания это пустой треп.
Критикуя — предлагаем: убрать вашу поделку в черновики, или переписать целиком. Кажется, это было очевидно.

БК: Нет, т.к. ваше мнение не репрезентативно. 47 человек добавили статью в закладки, т.к. посчитали ее полезной. Это тоже очевидно.

> Становясь учителем, вы берёте на себя ответственность за формирование правильного понимания материала у студентов (или пытаетесь брать). Чтобы потом над этими студентами не смеялись, когда они начитаются ваших статей и будут пересказывать ваши ошибки.
А если писать статьи в духе «и так сойдёт», то как раз и происходит детский сад.
И да, таких статей на хабре уже и так с десяток.

БК: Не вижу конструктива для обсуждения.
a -> s -> a -> o — это нейросеть?
a -> o -> s -> o — это нейросеть?
a -> s -> s -> o -> o — это нейросеть?
a -> o — это нейросеть?

БК: нет, но если очень надо, то да

:rofl:
И кому же и когда это надо?
Если ответ был бы «нет», то вам нужно было бы сказать «замкнутый ориентированный граф без циклов».
Но нет, тут всё сложнее. o -> o, a->o и a->a не имеют практического смысла, а вот рекуррентные связи в нейросети возможны и они будут именно так рисоваться в виде графа: s->s.
Так что любой ориентированный граф с одним компонентом связности — это нейросеть.
(Да, а сеть, собственно, потому оно и называется нейроСЕТЬ — это ориентированный граф с весами связей, это как раз наши рёбра в графе, но если брать схему из слоёв, а не из нейронов, то это конечно будет просто ориентированный граф.)
Есть такая штука, называется, «правильная абстракция в данном случае», а есть другая штука, называется «неправильная абстракция в данном случае». Вы их, кажется, не различаете!..

>>>Туда мы подаем числа в промежутке [0..1].
>>Нет, туда мы обычно подаём любые вещественные числа. Но бывают нюансы, дополнительное преобразование входа.

>БК: Да, любые, но потом ОБЫЧНО преобразуем данные в [0..1], т.к. так удобнее работать.
Да когда это стало для кого-то обычным? Откуда вы это взяли вообще?
Зачем вообще преобразовывать данные на входе в слой в 0..1? В чём это «удобнее»?
Нет. Например, сетки для зрения нормируют, чтобы матожидание на входе было 0 (считают среднее по датасету), т.к. это немного ускоряет обучение. Это не диапазон 0..1 и даже не -1..1, т.к. про дисперсию тут речи не было, она может быть любой, но часто просто делят на 256, и получают диапазон, скажем, -0.53...0.47 для красного цвета, -0.61..0.39 для зелёного, и ещё какой-то для синего цвета.
Вот именно про эту проблему я и говорю: вы по шкале Данинга-Крюгера сейчас на уровне «я считаю, что я всё знаю про нейросети.»

>БК: Нет, т.к. ваше мнение не репрезентативно. 47 человек добавили статью в закладки, т.к. посчитали ее полезной. Это тоже очевидно.
Так как не разбираются, полезна она или нет, но почитают потом.
Это известная проблема «рынка лимонов»: люди читают всё подряд, не проверяя качество информации. Но это не значит, что надо писать всё подряд для этих людей, т.к. мы тогда вернёмся к вопросу о вашей ответственности за ваши слова.

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

>БК: Не вижу конструктива для обсуждения.
Да конечно, обсуждать тут нечего, всем всё ясно, это вы начали брать на слабо и попросили подробных объяснений, что же у вас не так. А как только их вам предоставили — вместо признания своей неправоты, вы начали выдавать оправдания в духе «но по сути-то я прав, да и тут я не ошибся, это лишь вариант нормы». Не надо так, это лишь ещё раз показывает вашу безответственность. В мире программирования важны нюансы, особенно те, которые приводят потом к ошибкам, как у вас с диапазоном 0..1, когда вы просто не понимаете, зачем это нужно, и придумываете какую-то дичь.
Я не знаю, какой вы руководитель проектов, но показанная здесь грань вашего таланта просто поражает меня своей наглостью и беспринципностью.
В итоге, разговор перешел на личности. По-прежнему не вижу оснований считать ваше мнение важнее мнения остальных и как-либо учитывать его.
Вы решили пойти на курсы. Там ещё хуже. Курс занимал 4-12 месяцев. А стоил как крыло самолета: 100-200 тыс руб.

Ну что же вы так, есть бесплатные курсы по нейросетям, например, dlcourse.ai
Да и платные курсы вполне себе вменяемые, но туда идут вовсе не за мотивацией, а в основном за экспертизой в предметной области: чтобы студент научился решать типичные рабочие задачи, и потом выпускника сразу смогли принять на работу решать эти самые задачи.
Так что не надо принижать все остальные варианты, кроме чтения вашей книжки.
ОК, я описал свой кейс выбора курса для погружения в основы ML. Это, очевидно, не отменяет того, что есть курсы, которые, возможно, подойдут другим больше. Книга не является полноценным курсом и не задумывалась быть такой. Это мой опыт изучения основ ML. Т.е. если бы я захотел изучить ML заново, то я бы хотел, чтобы такой материал был, где простыми словами без матана, дифуров и питона на примере HelloWorld объясняют как сделать нейросеть.
Для ML есть mlcourse.ai :) Но вы наверное всё же говорите про DL, а не весь ML, раз упоминаете нейросети.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий