Merge pull request #4 from rustbas/dev

ACH
This commit is contained in:
Basyrov Rustam
2025-04-23 19:13:48 +03:00
committed by GitHub
4 changed files with 222 additions and 0 deletions

1
.gitignore vendored
View File

@@ -1 +1,2 @@
venv/
*.bak

217
docs/common/ach.md Normal file
View File

@@ -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)

3
docs/common/index.md Normal file
View File

@@ -0,0 +1,3 @@
# Общие заметки
## 2025-04-23 [Немного о принятии решений и нейросетях](ach.md)

View File

@@ -13,6 +13,7 @@ nav:
# - "Обо мне": 'index.md'
- "Математика": 'maths/index.md'
- "Linux": 'linux/index.md'
- "Общее": 'common/index.md'
plugins:
- search: