Search
Write a publication
Pull to refresh
22
0.6
Даниил Солопов @dan_sw

Software Engineer, Bachelor of Computer Science

Send message

Стохастическая волатильность: как её моделируют? На примере опционов на эфир

Level of difficultyMedium
Reading time7 min
Views2.7K

Волатильность является одним из важнейших параметров в оценке опционов, управлении рисками и построении торговых стратегий. Классическая модель Блэка-Шоулза-Мертона, предполагающая постоянную волатильность, не способна отразить динамику рынка, где наблюдаются эффекты «улыбки волатильности» и кластеризации. Для более точного описания рыночных процессов разработаны модели стохастической волатильности, среди которых наиболее известными являются модель Хестона и модель SABR. Эти подходы учитывают случайный характер изменений волатильности и позволяют более адекватно оценивать деривативы.

Читать далее

Материалы продвинутого уровня по Питону

Reading time5 min
Views46K
PythonВ мире все примерно распределяется в соответствии с принципом Паретто. Меньшая часть — богатые, большая часть — бедные (читающий, ты входишь в золотой миллиард). Тоже касается и материалов о программировании. Порой очень сложно найти хоть что-нибудь не начального уровня.

После прочтения Dive into Python или подобной ей и ознакомления с документацией возникает вопрос, а что читать дальше? Можно обратиться к списку книг на python.org. Там есть раздел Advanced Books, но в нем всего лишь 6 книг (седьмая не выходила), и только одну я бы назвал по-настоящему стоящей.

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

Ниже собраны сложные материлы про Питон, его устройство и возможности. Все на английском (грех, не знать технический английский). Про Dive into Python я слукавил. Большинство приведенных материалов требуют хорошее знание Питона и наличие опыта программирования на нем.

Подробнее

Как отличаются СДВГ люди от обычных людей? И зумеры — это СДВГшники или просто ленивые инфантилы?

Level of difficultyEasy
Reading time20 min
Views92K

Последнее время происходит какая-то невообразимая атака на сам термин СДВГ, на СДВГ людей, поэтому в статье я постарался описать и (!главное) визуально показать отличие СДВГ людей от обычных (нейротипичных). И попытался проанализировать и также визуально показать, действительно ли много СДВГшников среди поколения зумеров.

Предупреждение: Данная статья написана не квалифицированным врачом-психиатром, а пациентом с СДВГ. И есть основания полагать, что понимаю я в этой теме больше, чем многие психиатры на территории бывшего СССР.

Читать далее

Сетевые технологии с нуля [или почти с нуля]: подборка книг

Level of difficultyEasy
Reading time4 min
Views16K

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

Читать далее

Путеводитель C++ программиста по неопределённому поведению

Level of difficultyHard
Reading time3 min
Views13K

Путеводитель C\+\+\ программиста по неопределённому поведению


Вашему вниманию предлагается полный список разделов электронной книги (12 из 11 :)), посвящённой неопределённому поведению. Книга не является учебным пособием и рассчитана на тех, кто уже хорошо знаком с программированием на C++. Это своего рода путеводитель C++ программиста по неопределённому поведению, причём по самым его тайным и экзотическим местам. Автор книги — Дмитрий Свиридкин, редактор — Андрей Карпов.

Читать дальше →

PL/V8: JavaScript в PostgreSQL

Level of difficultyEasy
Reading time4 min
Views1.3K

Привет, Хабр!

Сегодня рассмотрим PL/V8. Это расширение PostgreSQL, которое позволяет использовать JavaScript через движок V8 (тот самый, который стоит за Node.js). Это открывает массу возможностей:

- Писать хранимые процедуры на JavaScript.
- Выполнять сложную бизнес-логику прямо в базе данных.
- Создавать триггеры, которые обрабатывают данные.

Читать далее

Разработка интерфейсных классов на С++

Reading time24 min
Views95K

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



Читать дальше →

Константные ссылки — не всегда ваши друзья

Reading time8 min
Views16K

Когда мы преподаем современный C++, в самом начале мы учим, что все, что не подпадает под критерии малых данных (small data)1, по умолчанию должно передаваться через константные ссылки:

Читать далее

30 команд Git, необходимых для освоения интерфейса командной строки Git

Reading time9 min
Views516K

Git — самая популярная в мире распределённая система контроля версий. Линус Торвальдс, разработчик ядра ОС Linux, создал этот инструмент ещё в 2005 году, а сегодня Git активно поддерживается как проект с открытым исходным кодом. Огромное количество открытых и коммерческих проектов используют Git для контроля версий.

В данной статье перечисляются самые основные команды, которые следует знать разработчику, чтобы освоить управление репозиториями GitHub на высоком уровне. Ознакомиться с ними будет полезно как новичкам, так и опытным разработчикам.
Читать дальше →

Пишем легаси с нуля на С++, не вызывая подозрение у санитаров. 03 — Начинаем разрабатывать фреймворк

Level of difficultyEasy
Reading time5 min
Views4.3K

Приветствую, Хабравчане!

В данной статье я начну реализацию кроссплатформенной библиотеки LDL. Опишу её исходный код, архитектуру. Пока библиотека умеет только рисовать несколько примитивов, но я только в начале реализации. Если интересно заходите.

Loading, please wait

МРТ для DataScience. Часть 1

Reading time8 min
Views1.6K

За полтора года работы с сегментацией МРТ-данных у меня накопилось множество прочитанных статей, а также своих заметок, мыслей и почеркушек. После их сборки получился вполне объемный материал, который я буду здесь постепенно выкладывать. Планирую по вторникам и четвергам. Сегодня - содержание всего цикла, список литературы, на который я ссылаюсь по ходу и первый обзорный кусок.

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

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

Весь текст - это максимально сжатая информация, которая помогла мне разобраться в специфике этих данных. Без понимания, как именно МРТ-снимки создаются, мне не удалось в свое время решить ряд задач, поэтому в начале я так много внимания уделяю физике процесса. Но это - самый минимум, без формул и прочей глубокой теории.

И в то же время, это - только вершина айсберга. В данную тему можно закопаться еще на пару лет минимум. Мой черновик пестрит пометками "TODO: разобраться глубже!" Поэтому скажу огромное спасибо за любые комментарии, особенно от тех, кто уже имел дело с медицинскими изображениями!

Читать далее

Просто и на C++. Основы userver — фреймворка для написания асинхронных микросервисов

Reading time6 min
Views44K
В Яндекс.Такси придерживаются микросервисной архитектуры. С ростом количества микросервисов мы заметили, что разработчики много времени тратят на boilerplate и типичные проблемы, при этом решения не всегда получаются оптимальные.

Мы решили сделать свой фреймворк, с C++17 и корутинами. Вот так теперь выглядит типичный код микросервиса:

Response View::Handle(Request&& request, const Dependencies& dependencies) {
  auto cluster = dependencies.pg->GetCluster();
  auto trx = cluster->Begin(storages::postgres::ClusterHostType::kMaster);

  const char* statement = "SELECT ok, baz FROM some WHERE id = $1 LIMIT 1";
  auto row = psql::Execute(trx, statement, request.id)[0];
  if (!row["ok"].As<bool>()) {
    LOG_DEBUG() << request.id << " is not OK of " << GetSomeInfoFromDb();
    return Response400();
  }

  psql::Execute(trx, queries::kUpdateRules, request.foo, request.bar);
  trx.Commit();

  return Response200{row["baz"].As<std::string>()};
}

А вот почему это крайне эффективно и быстро — мы расскажем под катом.
Читать дальше →

C++ MythBusters. Миф о подставляемых функциях

Reading time5 min
Views37K
Здравствуйте.

Благодаря вот этому голосованию выяснилось, что на Хабре не хватает статей по такому мощному, но всё менее используемому языку C++. Профессионалам высокого уровня, гуру, магам и волшебникам языка C++, а также тем, кто уже успел оставить этот язык «позади» можно дальше не читать. Сегодня я хочу начать цикл статей, призванных помочь именно новичкам, относительно недавно начавшим изучать этот язык, либо же тем, кто (упаси Боже) читает мало книг, а пытается познавать всё исключительно на практике.

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

Читать дальше

Gameplay Ability System в Unreal Engine и с чем его едят

Level of difficultyMedium
Reading time22 min
Views6.1K

Рано или поздно разработчик на Unreal Engine почти наверняка сталкивается с необходимостью использовать плагин Gameplay Ability System. И если он не был знаком с этим плагином, то он также столкнется с необходимостью освоить огромное количеством информации, требуемой для работы с ним, на изучение которой может уйти не одна неделя. Эта статья для таких людей, а также для тех, кто работает с Unreal Engine и до сих пор с этой системой не знаком, но хочет познакомиться.

Ознакомившись с ней вы узнаете что вообще за Gameplay Ability System. Где, как и, главное, зачем его использовать. Познакомитесь с основными сущностями, которые необходимы для работы с плагином. А также получите возможность пронаблюдать его использование на небольшом примере. Приятного чтения!

Читать далее

С++ — это настоящий кайфǃ

Level of difficultyEasy
Reading time18 min
Views49K

Я хочу, чтобы вы задали себе один вопрос и честно на него ответили. Когда в последний раз вы получали настоящее удовольствие от программирования? Оглядываясь назад, я понимаю, что не испытывал подобных ощущений, наверное… уже лет десять. Удовольствия у меня не было ни от JavaScript, ни от Python, ни от Ruby или C — ни от чего. Когда я говорю «удовольствие» — я имею в виду ощущения человека, которого во время работы над неким проектом переполняет искренний восторг. Этот человек постоянно ловит себя на такой мысли: «Ох, ну какая ж круть. Поверить не могу, что моя безумная идея и правда сработала!».

Например, я писал маленькую игру-«рогалик». У меня была такая идея: «Готов поспорить, что у меня получиться воспользоваться этим вашим алгоритмом Дейкстры для соединения комнат при генерировании карты, сначала инвертируя карту, а потом его запуская. Вероятно, мне удастся прокопать отличнейшие туннели между комнатами». То было благословенное время, когда я пытался справиться с этой задачей, и при этом не чувствовал, что C++ мне мешает. Мне тогда удалось решить эту задачу, попутно многому научившись. Потом у меня появилась такая мысль: «Интересно, получится мне взять пользовательский интерфейс, сделанный на FTXUI, и просто напрямую его отрендерить в окно визуализации SFML?». Как и следовало ожидать, у меня всё отлично получилось. И хотя это было не так уж и сложно, я по ходу дела много узнал о том, как в C++ обрабатывается юникод. Ни одна из этих задач лёгкой не была, но все их, в принципе, можно было решить, и я не могу напридумывать себе достаточно много «подводных камней», которыми C++ мог бы помешать мне сделать то, что я хочу. Это — то, что я называю «удовольствием».

Читать далее

GPT для чайников: от токенизации до файнтюнинга

Reading time13 min
Views122K

К моему удивлению, в открытом доступе оказалось не так уж много подробных и понятных объяснений того как работает модель GPT от OpenAI. Поэтому я решил всё взять в свои руки и написать этот туториал.

Читать далее

Алгоритм, сделавший ChatGPT таким «человечным» — Reinforcement Learning from Human Feedback

Reading time8 min
Views18K

ChatGPT генерирует разнообразный и привлекательный для человека текст. Но что делает текст «хорошим»? Это субъективно и зависит от контекста. Например, если вы попросите сочинить историю, нужен творческий подход. Если вы запрашиваете информацию, то хотите, чтобы она была правдивой. А если вы просите написать код, то ожидаете, что он будет исполняемым.

Вы наверняка слышали о том, что OpenAI привлекали сотрудников из Африки для помощи в разметке токсичности их ассистента. Менее известен факт найма реальных разработчиков, чтобы подготовить данные с пояснениями к коду на человечском языке.

Именно данные с фидбеком от людей позволили дообучить их языковую модель и сделать продукт таким «человечным».

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

Читать далее

Начинаем работу с PyTorch 2.0 и Hugging Face Transformers

Reading time6 min
Views17K

В этом посте разберем работу с PyTorch 2.0 и Hugging Face Transformers на примере fine‑tune модели BERT для классификации текста.

PyTorch 2.0 лучше по производительности, скорости работы, более удобный для Python, но при этом остается таким же динамическим, как и ранее.

1. Настройка окружения и установка PyTorch 2.0.

2. Загрузка и подготовка датасета.

3. Fine‑tune и оценка модели BERT с помощью Hugging Face Trainer.

4. Запуск инференса и тестирование модели.

Читать далее

Transformer в картинках

Reading time14 min
Views151K

В прошлой статье мы рассматривали механизм внимания (attention) – чрезвычайно распространенный метод в современных моделях глубокого обучения, позволяющий улучшить показатели эффективности приложений нейронного машинного перевода. В данной статье мы рассмотрим Трансформер (Transformer) – модель, которая использует механизм внимания для повышения скорости обучения. Более того, для ряда задач Трансформеры превосходят модель нейронного машинного перевода от Google. Однако самое большое преимущество Трансформеров заключается в их высокой эффективности в условиях параллелизации (parallelization). Даже Google Cloud рекомендует использовать Трансформер в качестве модели при работе на Cloud TPU. Попробуем разобраться, из чего состоит модель и какие функции выполняет.


Впервые модель Трансформера была предложена в статье Attention is All You Need. Реализация на TensorFlow доступна как часть пакета Tensor2Tensor, кроме того, группа NLP-исследователей из Гарварда создали гид-аннотацию статьи с реализацией на PyTorch. В данном же руководстве мы попробуем максимально просто и последовательно изложить основные идеи и понятия, что, надеемся, поможет людям, не обладающим глубоким знанием предметной области, понять данную модель.

Читать дальше →

Пользовательские атрибуты в Python

Reading time11 min
Views192K
Вы когда нибудь задумывались о том, что происходит, когда вы ставите точку в python? Что скрывает за собой символ str(“\u002E”)? Какие тайны он хранит? Если без мистики, вы знаете как происходит поиск и установка значений пользовательских атрибутов в python? Хотели бы узнать? Тогда… добро пожаловать!
Читать дальше →

Information

Rating
3,273-rd
Location
Иркутск, Иркутская обл., Россия
Date of birth
Registered
Activity

Specialization

Software Engineer, ML Engineer
Middle
C++
Python
TENSORFLOW
Pytorch
Cmake
Linux
Deep Learning
Cuda
Computer Science
Keras