Pull to refresh
40
0
Юрий Бабуров @buriy

Web, AI, Deep Learning, Python

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

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

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

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

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

Становясь учителем, вы берёте на себя ответственность за формирование правильного понимания материала у студентов (или пытаетесь брать). Чтобы потом над этими студентами не смеялись, когда они начитаются ваших статей и будут пересказывать ваши ошибки.
А если писать статьи в духе «и так сойдёт», то как раз и происходит детский сад.
И да, таких статей на хабре уже и так с десяток.
Для ML есть mlcourse.ai :) Но вы наверное всё же говорите про DL, а не весь ML, раз упоминаете нейросети.
Да. И всё правильно написано про классическую работу: «Веса S—A связей могут иметь значения −1, +1 или 0 (то есть отсутствие связи)». Не было вещественных значений связей на первом скрытом слое, и, соответственно, не могло быть и полноценного алгоритма backprop с learning rate не равным 1.
Вы решили пойти на курсы. Там ещё хуже. Курс занимал 4-12 месяцев. А стоил как крыло самолета: 100-200 тыс руб.

Ну что же вы так, есть бесплатные курсы по нейросетям, например, dlcourse.ai
Да и платные курсы вполне себе вменяемые, но туда идут вовсе не за мотивацией, а в основном за экспертизой в предметной области: чтобы студент научился решать типичные рабочие задачи, и потом выпускника сразу смогли принять на работу решать эти самые задачи.
Так что не надо принижать все остальные варианты, кроме чтения вашей книжки.
Запомните: В технических вещах русская википедия — не авторитетный источник. Смотрите ссылки с википедии на оригинальные статьи и исследования, их читайте.
Персептрон Розенблатта имел пороговую функцию активации. Знаете, что это такое?
Сейчас разные исследователи не пришли к консенсусу: считать ли «персептроном» полносвязную нейросеть с любой функцией активацией или нет. Дело в том, что с пороговой функцией активации алгоритм обучения упрощается, и класс решаемых таким алгоритмом обучения задач меняется.
Аналогично и отличается класс задач, решаемых нейросетями с одним скрытым слоем, и нейросетями с большим количеством скрытых слоёв. Поэтому многие склонны модель «персептрона», для которой были сделаны определённые выводы о классе решаемых задач, считать чем-то отдельным от нейросетей.
А, кстати, торрент или веб-сайт не может объявить себя библиотекой или архивом?
А скажите ещё, на CPU так всё плохо и будет? Там можно как-то хотя бы 30 FPS с батчами по 4 выбить? А то я тут у ZlodeiBaal спрашивал, не лучше ли комбинировать на CPU оптический трекер с yolo, т.к. что-то крайне мало FPS в детекторе получается. Может, действительно, INT8 в OpenCV/OpenVino улучшит ситуацию? Или просто архитектура не оптимизирована под CPU и лучше брать что-то другое?
А вот автор этой статьи с вами не согласен: он считает, что Julia — лучше C / Ruby / whatever. И ещё и быстрее. Но сравнение идёт почему-то лишь с питоном! :) А на вопрос «Да чем лучше-то?» автор отвечает, как в анекдоте, «чем Питон»…
(быстрее C, говорите? benchmarksgame-team.pages.debian.net/benchmarksgame/fastest/julia-gcc.html, отставание от C на 20% в среднем. Что интересно, у Julia, насколько я помню, тот же LLVM что и у clang, так что или gcc немного быстрее код генерирует, чем clang, или Julia почему-то всё медленнее делает… непонятно...)

Но, в общем-то понятно, почему язык нишевый:
1) всё ещё нет нормальных библиотек. Тут проблема курицы и яйца, но с годами она почему-то плохо решается. Посмотрим на ситуацию ещё через пару лет.
2) некоторые странные решения, типа нумерации массивов с единицы по-умолчанию, глобальных неймспейсов для перегрузки функций.
3) мало полезных абстракций для системного программирования, например, нельзя отключить garbage collector.
4) раньше, когда я им пользовался, постоянно менялось API, но после 1.0 вроде бы перестали так делать. Но есть Fluxml, где опять непонятки: то ли использовать cuarrays.jl, то ли cuda.jl — в общем, напишите мне кто-нибудь, когда сделают нормальный DL на Julia, и веб-фреймворк, на котором удобно можно будет потом засервить модельки. И починят векторизацию на CPU (или починили уже?), потому что в 2017м у меня numpy обгонял julia, местами в несколько раз, а всё потому, что numpy лучше использовал векторизацию.
В общем, если кто разбирается, расскажите лучше, есть ли где-то такое сравнение, где Julia лучше C/Go/Rust/Nim. И расскажите, когда же доделают уже библиотеки для Julia.
Вот посмотрите видео, там описана примерно такая же схематичная модель, как у вас, но включающая и другие области мозга:

Вот меня всегда удивляют, почему Julia рекламируют Питонистам?
Почему не рекомендуют её веб-программистам на php?
Или почему Julia не рекомендуют программистам на C, C++, go, java, rust, swift?
Представляете, как бы такая статья выглядела? «Ну, Julia — это язык, похожий на ваш, но похуже...».
Задумайтесь, ведь Julia — это же язык общего назначения, правда?
Или это JIT для python с кучей странных решений в дизайне языка и без библиотек? Так у нас тогда Cython и Numba есть.
Да и pytorch вы так и не написали для Julia, если уж хотите для AI / Machine Learning быстрый язык программирования придумать.
Всё же даже слепые от рождения люди способны на понимание почти всех смыслов (как и люди, не чувствующие боли или вообще ничего кожей), а значит, процент потерь смысла вами посчитан неверно.
Если не брать проблемы развития в раннем детстве, то, скорее всего, даже человек с очень серьёзными сенсорными проблемами будет способен понимать почти все смыслы (или все, тут вопрос точной формулировки слова «понимать»).
Так вы читаете маркетинговую статью… Может, почитаете вместо этого техническую? https://arxiv.org/abs/2005.14165: Language Models are Few-Shot Learners
Нисколько нельзя загрузить, можно только спросить модель. Почитайте про few-shots learning в оригинальной научной работе ( https://arxiv.org/abs/2005.14165: Language Models are Few-Shot Learners ):
"Few-Shot (FS) is the term we will use in this work to refer to the setting where the model is given a few
demonstrations of the task at inference time as conditioning, but no weight updates are allowed.
"
Пример:
Подают на вход сети такую строчку:
Q: What is 15 plus 15? A: 30.\nQ: What is 92 plus 16? A: 118.\nQ: What is 18 plus 24?
А модель говорит в ответ: «A: 42». (Точность на именно таком сценарии с двухзначными числами достигает 100%, с числами подлиннее точность начинает резко падать)
Вот именно это API и даёт.
Идея хорошая, а кликбейт — фу.
Спасибо, это многое объясняет. Опубликовать не хотите?
>тестировать на общепринятых датасетах
Нет, моя позиция другая: вам нужно сделать юридический датасет, пусть даже на 500 предложений, и протестировать имеющиеся решения на нём автоматически. Вот можете прямо взять скрипты из naeval.
Потому что как раз ценность тестирования на 5 предложениях под предлогом «мы можем оценить практическую применимость существующих решений» мне непонятна. Нет, не можете, вы даже не знаете, получили ли вы хорошую оценку применимости этих библиотек, если вы на 5 примерах прогоняли и делали выводы. Вы легко можете заблуждаться на небольшом числе примеров. Понимаете?
Как я вижу, качественные модели для syntax analysis вы так и не взяли… Ну, может, взяли одну или две, но deeppavlov и stanford parser бывают разных версий… А сравнивать модели, выученные на GST/Taiga, которые в 10 раз меньше корпуса syntagrus — это вообще наивно.
C ЭТАП тоже штука сложная: для более распространённых слов и фраз точность его очень неплохая, у него были проблемы с полнотой: чтобы на всех документах и незнакомых словах показывать более хорошие результаты, потому что это система на правилах.
И ещё, как вы думаете, сколько нужно проанализировать примеров парсинга, чтобы уверенно выдавать заключения наподобие «нарушение последовательности связей в сложных предложениях и числовых значениях» или «эта библиотека работает лучше вот этой»?
Я вообще не понимаю, как вы смогли получить какие-то разумные обоснования в вашей оценке качества. Правда, наверное, это я, зная, какая библиотека с каким качеством работает, могу их разумно проинтерпретировать…
Посмотрите на более хороший анализ: github.com/natasha/naeval
А вот здесь ещё датасетов для тестирования моделей подвезли: habr.com/ru/company/sberbank/blog/506058
Я помню ваше решение, да.
Для выделения сущностей оно норм. А вот для классификации полученных сущностей не подходит, и без нейронки или любого другого ML-алгоритма классификация зачастую плохо работает.
Граница тут проходит по некоторму уровню сложности задачи: если правил мало, и исключений из них мало, то эвристики на правилах хорошо работают. Если же правил много, или есть частые исключения — то нужен ML-алгоритм.
Решать только простые задачи, и тратить на них от месяца до года — это нормальный путь. Просто теперь появился другой путь, вот и всё. Он не хуже, не лучше, он просто есть.
Аналогично касательно проблемы решения задач на 80%. Кого-то это устраивает, кого-то нет — в каждой задаче есть какой-то приемлемый уровень качества. И в некоторых случаях эти условные 80% могут дать только нейронки, иногда — оба типа алгоритмов, очень редко когда только правила. Но вот правила могут ещё и выиграть по скорости при сравнимом качестве, или же может не быть размеченных данных в достаточном количестве. Тогда люди возьмут алгоритм на правилах.
>надо сперва какую то доп. разметку сделать более расширенную
Ну вот этого бы очень хотелось мне как специалисту по работе с данными. Без тестовой разметки не сравнить решения, да и не понять, где у вашего решения ошибки, и насколько они серьёзные.
Хотя у вас разметка и была, но вот метрики в виде единой цифры я у вас не припомню.
>Смотрите детальные данные на github там все подробности как на ладони.
И вот этого бы как раз хотелось избежать, чтобы приходилось смотреть какие-то подробности, чтобы понять, что вообще происходит. Для этого придумывают какие-то стандартные метрики и способы сравнения разных решений.

Information

Rating
Does not participate
Location
Новосибирск, Новосибирская обл., Россия
Date of birth
Registered
Activity

Specialization

Backend Developer, Chief Technology Officer (CTO)
Lead