diff --git a/.gitignore b/.gitignore index f7275bb..e9f783b 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ venv/ +*.bak diff --git a/docs/common/ach.md b/docs/common/ach.md new file mode 100644 index 0000000..c2c702b --- /dev/null +++ b/docs/common/ach.md @@ -0,0 +1,217 @@ +# Немного о принятии решений и нейросетях + +## Мотивация + +Сейчас очень распространились нейросети различных форматов: для работы +с текстом, видео, аудио, для обработки и прогнозирования данных. В +твиттере ажиотаж вокруг новой возможности ChatGPT: обработка +изображений в стиле студии Ghibli, известной по фильмам "Мой сосед +Тоторо", "Унесенные призраками" и пр. + +Нейросети применяются не только для "развлечений", но и в весьма +ответственных областях, например, анализ снимков рентгена, разработке +программ. Для последнего даже был придуман термин [Vibe Coding](https://en.wikipedia.org/wiki/Vibe_coding). + +Я, в некоторой степени, являюсь луддитом по отношению к нейросетям, +которые генерируют тексты. Это обусловлено преимущественно тем, что +люди относятся к ним, как к некой "палочке-выручалочке", которая +представляет собой кнопку "сделать красиво". Такой подход не только +снижает *критичное отношение* к окружающему миру (зачем придумывать +решение, если нейросеть может сгенерировать его за меня, *даже если он +будет некорректный*), но уменьшает общее качество деятельности. + +Но даже так, я не являюсь противником нейросетей *просто по +существу*. У всего есть качественные области применения, иногда не +совсем очевидные. + +Здесь я хочу рассказать об **анализе конкурирующих гипотез**, +**мозговом штурме** и **попытке применения в них нейросетей**. + +## Большие языковые модели + +Должен признать, что у меня весьма смутное представление о работе +таких нейросетей *под капотом*. + +В моем понимании, суть их работы заключается в том, при анализе +запроса любого толка, они "понимают", какие слова будут уместны в +контексте этого запроса (получается такая очень сложная "китайская +комната"[2]). + +Результатом же работы нейросети является текст, который я воспринимаю +как *случайное число*, которое параметризовали запросом (*prompt*), +примерно как случайное число из нормального распределения +параметризуется математическим ожиданием и дисперсией. Хотя, есть и +[другое мнение](https://x.com/tsoding/status/1896205552415658463). + +А если есть случайность, то значит можно её можно использовать. + +## Суть анализа конкурирующих гипотез + +**Анализ конкурирующих гипотез** - методология, разработанная Ричардом +Хоером в 70-х годах. Целью создания метода было уменьшение влияния +когнитивных сдвигов (*bias*) на работу аналитиков при анализе и принятии +решений. + +Особенность метода заключается в том, что вместо сопоставления каждой +гипотезе всех доказательств, наоборот, каждое доказательство +противопоставляется всем гипотезам. + +Пошаговая инструкция к методу: + +1. Определить все **возможные** гипотезы. Лучше использовать *команду + аналитиков* с различным опытом, чтобы реализовать **мозговой + штурм**. +2. Создать список всех существенных доказательств, аргументов "за" и + "против, а также фактов, которые могут помочь в анализе гипотез. +3. Подготовить матрицу, где номер строки будет отвечать за номер + аргумента, а номер столбца за номер гипотезы. +4. Проверить матрицу: уточнить формулировку гипотез, удалить аргументы, + которые не имеют диагностической ценности. +5. Сопоставьте каждое доказательство каждой гипотезе. Двигайтесь + по столбцам. +6. Проанализируйте, как устойчивы ваши заключение к аргумента. + Посмотрите, как изменится вывод в случае, если какие-то аргументы + окажутся ложными. +7. Составьте отчет. Проверьте правдоподобность каждой гипотезы, *не + только самой приятной*. +8. Оцените дальнейшие шаги для улучшения оценки. + +Можно долго вдаваться в детали реализации метода. В нашем случае, нас +интересует часть, где необходимо придумать как можно большее число +вариантов, используя **мозговой штурм**. + +### Применение нейросетей + +Когда нет большой *команды аналитиков*, можно попробовать заменить их +нейросетью. В данном случае, нейросеть можно применить в двух местах: + +1. В п. 1 для определения всех **возможных** гипотез. Само собой, + качество этих гипотез определяет аналитик, но их генерацию можно + частично делегировать ИИ. +2. В п.2 можно попробовать определить области, где **искать + доказательства** за и против. Нужно помнить, что доказательства + также могут представлять собой *отсутствие* чего-либо. + +## Пример + +Приведу пример (полученный также с помощью ИИ): "Почему в городе +резко выросло число ДТП на конкретном перекрестке?". + +Полученный список гипотез: + +``` +- Инфраструктурные факторы + 1. **Изменение дорожной разметки или знаков**: Неправильно + нанесенная разметка, противоречивые знаки или их отсутствие. + 2. **Неисправность светофора**: Сбои в работе (например, мигающий + желтый сигнал), некорректные временные интервалы. + 3. **Сужение полос** из-за ремонтных работ, парковки или временных + ограждений. + 4. **Новые препятствия**: Установка рекламных щитов, столбов, + деревьев, ограничивающих обзор. + 5. **Плохое состояние дорожного покрытия**: Выбоины, ледяная + корка, отсутствие освещения в темное время суток. + 6. **Изменение типа перекрестка**: Например, переход от светофора + к круговому движению без должного информирования. + +- Транспортный поток + 7. **Рост трафика** из-за открытия новых ТЦ, офисов, жилых + комплексов. + 8. **Перенаправление движения** с других улиц из-за ремонта, + аварий или изменений в маршрутах. + 9. **Увеличение грузового транспорта**: Новые логистические + маршруты через перекресток. + 10. **Активность общественного транспорта**: Новые автобусные + остановки или троллейбусные линии. + +- Человеческий фактор + 11. **Нарушение ПДД водителями**: Частые проезды на красный свет, + превышение скорости, агрессивное вождение. + 12. **Низкая видимость пешеходов**: Отсутствие зебры, освещения + или знаков у пешеходного перехода. + 13. **Отвлекающие факторы**: Яркая реклама, использование + телефонов за рулем. + 14. **Новички на дороге**: Увеличение числа неопытных водителей + (например, из-за новой автошколы поблизости). + +- Внешние условия + 15. **Погодные аномалии**: Гололед, туман, дождь, слепящее солнце + в определенные часы. + 16. **Сезонные факторы**: Туристы, листопад, снежные заносы. + 17. **Животные на дороге**: Бродячие собаки, птицы или дикие + животные, вызывающие резкие торможения. + +- Технические причины + 18. **Неисправности автомобилей**: Массовые отзывы авто из-за + брака тормозных систем. + 19. **Сбои в системах помощи водителю**: Например, ошибки в + навигаторах, предлагающих опасные маневры. + 20. **Электромагнитные помехи**, влияющие на работу датчиков или + светофоров. + +- Организационные и социальные факторы + 21. **Снижение контроля со стороны ГИБДД**: Уменьшение числа + патрулей или камер фиксации нарушений. + 22. **Новые правила движения**, которые водители не успели + изучить. + 23. **Вандализм**: Повреждение знаков, светофоров или разметки. + 24. **Массовые мероприятия**: Концерты, митинги или фестивали, + создающие заторы и невнимательность. + +- Статистические аномалии + 25. **Случайная кластеризация**: Краткосрочный всплеск аварий без + системной причины. + 26. **Изменение методики учета ДТП**: Теперь фиксируются даже + мелкие столкновения, которые раньше игнорировались. + 27. **Ошибки в данных**: Технические сбои при сборе статистики. +``` + +Хочется обратить внимание, что гипотез очень много и часть из низ +можно отмести в зависимости от контекста исследования. Но эту задачу +**должен делать аналитик**. + +Ответ на вопрос: "где искать доказательства": + +``` +- Данные ГИБДД: Статистика нарушений, протоколы ДТП, видео с камер. +- Дорожные службы: Отчеты о ремонтах, изменениях разметки, проверках + светофоров. +- Метеорологические службы: Погодные сводки на даты аварий. +- Соцсети и СМИ: Жалобы водителей, репортажи о проблемах на + перекрестке. +- Технические данные: Логи навигаторов (Яндекс.Пробки, Google Maps), + отчеты автопроизводителей. +``` + +На основе полученных ответов можно пробовать строить анализ. + +## Выводы + +В заключении этого небольшого текста, хочу отметить несколько выводов: + +1. Данная заметка не является инструкцией в стиле "вы используете + языковые модели неправильно". Здесь я просто хочу высказать мнение + касательно ИИ и отметить, какое применение я вижу у этого + инструмента. +2. В моем понимании, нейросети подойдут в тех случаях, когда нужно + применить **мозговой штурм**: составление гипотез, поиск + доказательств, составление списка действия для решения задачи в + методологии *GTD*. +3. Не стоит отдавать под контроль ИИ принятие решений на _любом + уровне_. Все логические выкладки должен делать аналитик, который + использует языковую модель как инструмент. +4. Думаю, обращаться за помощью к нейросетям, нужно если не в + *последнюю очередь*, то хотя бы не сразу. Во-первых, стоит не + забывать про собственное *критичное отношение* к миру, а во-вторых, + цель **мозгового штурма** -- это сбор _всех_ возможных вариантов, + которые могут пройти ниже радаров нейросети, и про которые потом не + станет думать аналитик, будучи отвлеченный анализом результатов. + +По итогу, я убежден, что языковые модели -- это *инструмент*, который +можно применить во множестве областей, но это все же *инструмент*. Он +не решит все проблемы за вас, но поможет вам решить ваши проблемы. + +## Источники + +1. [Psychology of intelligence analysis](https://www.amazon.com/Psychology-Intelligence-Analysis-Richards-Heuer/dp/B0016OST3O) +2. [Китайская комната](https://ru.wikipedia.org/wiki/%D0%9A%D0%B8%D1%82%D0%B0%D0%B9%D1%81%D0%BA%D0%B0%D1%8F_%D0%BA%D0%BE%D0%BC%D0%BD%D0%B0%D1%82%D0%B0) diff --git a/docs/common/index.md b/docs/common/index.md new file mode 100644 index 0000000..ae6f6f2 --- /dev/null +++ b/docs/common/index.md @@ -0,0 +1,3 @@ +# Общие заметки + +## 2025-04-23 [Немного о принятии решений и нейросетях](ach.md) diff --git a/mkdocs.yml b/mkdocs.yml index e75b6d4..671b354 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -13,6 +13,7 @@ nav: # - "Обо мне": 'index.md' - "Математика": 'maths/index.md' - "Linux": 'linux/index.md' + - "Общее": 'common/index.md' plugins: - search: