Юрий Бабуров @buriy
Web, AI, Deep Learning, Python
Information
- Rating
- Does not participate
- Location
- Новосибирск, Новосибирская обл., Россия
- Date of birth
- Registered
- Activity
Specialization
Backend Developer, Chief Technology Officer (CTO)
Lead
Web, AI, Deep Learning, Python
Любой граф? Именно граф, удовлетворяющий условиям ниже? Или каким-то другим?
a -> s -> a -> o — это нейросеть?
a -> o -> s -> o — это нейросеть?
a -> o -> s -> o — это нейросеть?
a -> s -> s -> o -> o — это нейросеть?
a -> o — это нейросеть?
И может ли быть больше одного входного и выходного слоёв?
>Но в отличие от Монте-Кристо у него есть входной S-слой (сенсорный)
Так никто не называет входной слой уже лет 30.
>Туда мы подаем числа в промежутке [0..1].
Нет, туда мы обычно подаём любые вещественные числа. Но бывают нюансы, дополнительное преобразование входа.
И так далее, очень много ошибок, если уж подробно разбирать. Я-то понимаю, что вы хотели сказать и что сказали. Но вы-то пишете для людей, которые не поймут этого.
>> козни завистников-злопыхателей
>Ну прям детский сад. Критикуя — предлагай. Иначе ваши замечания это пустой треп.
Критикуя — предлагаем: убрать вашу поделку в черновики, или переписать целиком. Кажется, это было очевидно.
Становясь учителем, вы берёте на себя ответственность за формирование правильного понимания материала у студентов (или пытаетесь брать). Чтобы потом над этими студентами не смеялись, когда они начитаются ваших статей и будут пересказывать ваши ошибки.
А если писать статьи в духе «и так сойдёт», то как раз и происходит детский сад.
И да, таких статей на хабре уже и так с десяток.
Ну что же вы так, есть бесплатные курсы по нейросетям, например, dlcourse.ai
Да и платные курсы вполне себе вменяемые, но туда идут вовсе не за мотивацией, а в основном за экспертизой в предметной области: чтобы студент научился решать типичные рабочие задачи, и потом выпускника сразу смогли принять на работу решать эти самые задачи.
Так что не надо принижать все остальные варианты, кроме чтения вашей книжки.
Персептрон Розенблатта имел пороговую функцию активации. Знаете, что это такое?
Сейчас разные исследователи не пришли к консенсусу: считать ли «персептроном» полносвязную нейросеть с любой функцией активацией или нет. Дело в том, что с пороговой функцией активации алгоритм обучения упрощается, и класс решаемых таким алгоритмом обучения задач меняется.
Аналогично и отличается класс задач, решаемых нейросетями с одним скрытым слоем, и нейросетями с большим количеством скрытых слоёв. Поэтому многие склонны модель «персептрона», для которой были сделаны определённые выводы о классе решаемых задач, считать чем-то отдельным от нейросетей.
(быстрее 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.
Почему не рекомендуют её веб-программистам на php?
Или почему Julia не рекомендуют программистам на C, C++, go, java, rust, swift?
Представляете, как бы такая статья выглядела? «Ну, Julia — это язык, похожий на ваш, но похуже...».
Задумайтесь, ведь Julia — это же язык общего назначения, правда?
Или это JIT для python с кучей странных решений в дизайне языка и без библиотек? Так у нас тогда Cython и Numba есть.
Да и pytorch вы так и не написали для Julia, если уж хотите для AI / Machine Learning быстрый язык программирования придумать.
Если не брать проблемы развития в раннем детстве, то, скорее всего, даже человек с очень серьёзными сенсорными проблемами будет способен понимать почти все смыслы (или все, тут вопрос точной формулировки слова «понимать»).
"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 примерах прогоняли и делали выводы. Вы легко можете заблуждаться на небольшом числе примеров. Понимаете?
C ЭТАП тоже штука сложная: для более распространённых слов и фраз точность его очень неплохая, у него были проблемы с полнотой: чтобы на всех документах и незнакомых словах показывать более хорошие результаты, потому что это система на правилах.
И ещё, как вы думаете, сколько нужно проанализировать примеров парсинга, чтобы уверенно выдавать заключения наподобие «нарушение последовательности связей в сложных предложениях и числовых значениях» или «эта библиотека работает лучше вот этой»?
Я вообще не понимаю, как вы смогли получить какие-то разумные обоснования в вашей оценке качества. Правда, наверное, это я, зная, какая библиотека с каким качеством работает, могу их разумно проинтерпретировать…
Посмотрите на более хороший анализ: github.com/natasha/naeval
А вот здесь ещё датасетов для тестирования моделей подвезли: habr.com/ru/company/sberbank/blog/506058
Для выделения сущностей оно норм. А вот для классификации полученных сущностей не подходит, и без нейронки или любого другого ML-алгоритма классификация зачастую плохо работает.
Граница тут проходит по некоторму уровню сложности задачи: если правил мало, и исключений из них мало, то эвристики на правилах хорошо работают. Если же правил много, или есть частые исключения — то нужен ML-алгоритм.
Решать только простые задачи, и тратить на них от месяца до года — это нормальный путь. Просто теперь появился другой путь, вот и всё. Он не хуже, не лучше, он просто есть.
Аналогично касательно проблемы решения задач на 80%. Кого-то это устраивает, кого-то нет — в каждой задаче есть какой-то приемлемый уровень качества. И в некоторых случаях эти условные 80% могут дать только нейронки, иногда — оба типа алгоритмов, очень редко когда только правила. Но вот правила могут ещё и выиграть по скорости при сравнимом качестве, или же может не быть размеченных данных в достаточном количестве. Тогда люди возьмут алгоритм на правилах.
>надо сперва какую то доп. разметку сделать более расширенную
Ну вот этого бы очень хотелось мне как специалисту по работе с данными. Без тестовой разметки не сравнить решения, да и не понять, где у вашего решения ошибки, и насколько они серьёзные.
Хотя у вас разметка и была, но вот метрики в виде единой цифры я у вас не припомню.
>Смотрите детальные данные на github там все подробности как на ладони.
И вот этого бы как раз хотелось избежать, чтобы приходилось смотреть какие-то подробности, чтобы понять, что вообще происходит. Для этого придумывают какие-то стандартные метрики и способы сравнения разных решений.