# Немного про принятие решений и нейросети

## Мотивация

Сейчас очень распространились нейросети различных форматов: для работы
с текстом, видео, аудио, для обработки и прогнозирования данных. В
твиттере ажиотаж вокруг новой возможности 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)
