Пределы применимости байесовского подхода

Автор Тема: Пределы применимости байесовского подхода  (Прочитано 13768 раз)

mentalgopher

  • Пользователь
  • **
  • Сообщений: 20
  • +0/-2
    • Просмотр профиля
То есть все замечания относительно​ того, что рациональность - еще не наука, с примером, тепленькие.

Мне напомнить в деталях, что результаты теории игр, самые первые же, этим не покрываются?

Конечно, я за то, чтобы  разбавить конкретными примерами эту мутную философскую дискуссию.

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

мне не хватило воображения представить референт такой сферы: "некоторая сфера познания лежит вне законов логики".

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

Вполне возможно. А можно построить и так, чтобы абсурдные утверждения не становились правдоподобными.
Не вижу смысла обсуждать это вне конкретных примеров.


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

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

  Данная проблема, например, возникает, когда на третьем шаге был сформирован набор убеждений в котором остальные шаги не смогут разобраться. На других шагах могут быть иные сложности. Это - несколько формальный комплекс возражений, но на него достаточно просто указать.
Сложности и недочеты будут всегда, но такие формальные возражения бессодержательны без конкретных примеров.

Onery

  • Пользователь
  • **
  • Сообщений: 22
  • +5/-1
    • Просмотр профиля
То, что называется основной теоремой матричных игр, гласит: ели двое сядут играть друг против друга в игру с конечными множествами стратегий, то можно назвать (существует) образ действий одного и другого и число v такое, что при применении этого образа действий ты (вооще говоря, в среднем) выиграешь не меньше (проиграешь не больше) указанного числа; а если будешь действовать иначе, то у соперника будет способ не дать тебе выиграть столько (заставить проиграть больше).

Где тут хоть слово про алгоритмы игроков, про то, куда скатится игра (есть и на эту тему результаты, но я не про них) и вероятности чего тут предлагается оценивать по наблюдениям?

kuuff

  • Старожил
  • *****
  • Сообщений: 2 133
  • +220/-52
    • Просмотр профиля
В рамках мат.модели это называется проблемой переобучения - были N чисел и мы их преобразовали в N коэффициентов интерполяционного многочлена. По сути дела нашли способ запомнить исходные числа в преобразованном виде. Решается разбиением выборки на однородные части, где обучение(=построение модели) происходит по одним данным, а проверка предсказательной силы - по другим.

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

Переформулирую - я не вижу как в мат.модели, оперирующей правдоподобностью утверждений, возникают причинно-следственные связи.
Потому что если возникают - то на каком из 6ти шагов?
Я не буду утверждать, что там говорит байесианство об этом, но матстатистика говорит, что вывод о наличии причинно-следственной связи делается при наличии корреляции, последовательности во времени и... я не помню как это последнее условие формулируется кратко, но суть в том, что надо убедиться что изменение X влияет на Y, надо взять под контроль X и проверить, что если мы произвольно задаём X, то Y меняется соответственно. Исключив таким образом возможность того, что существует третья переменная Z, которая влияет и на X и на Y.

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

Ну, сначала неплохо бы определить "непойми что" как пространственную фигуру (или другой формализованный математический объект). Иначе ваше утверждение звучит как заявление вида "существует сложная физическая реальность, которая не описывается грубыми математическими формулами".
Никто не будет заморачиваться определять "непойми что" как пространственную фигуру: на практике часто выходит так, что овчинка выделки не стоит. Если надо померять площадь огорода, то никто не будет заморачиваться описывать с достаточной точностью ту поверхность земли, на которой огород расположен. Измерят ширину, длину, перемножат их и скажут, что результат и есть площадь. И я заверяю вас, на практике происходит именно так. Заморачиваться на более сложные модели люди будут только в том случае, если погрешности окажутся слишком дорогими,
И не надо думать, что иметь достаточно точную модель мешает лень человеческая. Дело не сводится к лени, можно придумать много разных ситуаций, в которых нехватку информации либо вообще не устранить в силу нехватки ресурсов, либо действительно дешевле, проще и быстрее устранять только ту нехватку информации, объехать которую на кривой козе не удаётся. То есть вот попытались сделать, поняли что не пошло, выяснили почему, провели дополнительные исследования, попытались сделать ещё раз. Это нормальный цикл исследования проблемы, по-крайней мере, на ранних этапах.

Тогда я не понял, из какой предметной области вы взяли слово "допущение".
Когда я занимаюсь рассчётом многофазных потоков - там есть "физическая модель", которая задаёт перечисление физических сущностей и важных для моделирования физ.эффектов.
Да, я тоже подумал, что я слишком вольно обращаюсь со словами. Давайте я попробую зайти с другой стороны. Поделим все задачи на конкретные и обобщённые. Конкретная задача -- это когда у нас есть вполне реальная практическая проблема, и мы её решаем. Померять площадь конкретного огорода, с тем чтобы выяснить конкретно сколько семенного материала надо покупать -- это вполне себе пример конкретной задачи. И есть обобщённые задачи, то есть задачи которые исходно в своей постановки уже являются абстракцией. Задачки из задачника по геометрии -- это как раз такие задачи.
Когда мы решаем конкретную задачу, мы создаём конкретную модель, которая учитывает то, что важно в данной конкретной ситуации. Когда же мы решаем обобщённую задачу, мы учитываем какой-то компромиссный набор факторов: обобщённая задача соответствует какому-то классу конкретных задач, если мы соберём все сколь-нибудь существенные факторы со всех конкретных задач этого класса, то мы получим такой список того, что надо учесть, что обобщённая задача окажется нерешаемой. Поэтому... Что делает математика? Она создаёт абстрактную ситуацию, которая по задумке должна отображать наиболее существенные факторы. И потом под эту абстрактную ситуацию строится какая-то теория. Теория прорабатывается в деталях, создаются удобные и мощные инструменты, а потом конкретные задачи подгоняются под абстракции этой теории, а если они не лезут, то мы тем или иным образом выкручиваемся, но не меняем теории.

Я выше называл математической моделью тот конструкт, который возникает при решении конкретной задачи. А абстрактную математическую теорию, живущую в виртуальной реальности заданной аксиомами, я призывал не называть моделью и отличать от модели. И это было не совсем правильно: общеупотребительный смысл слов "математическая модель" и "математическая теория" не подразумевает такого разделения. Но тем не менее разделять их стоит, имеет смысл натаскать себя всегда держать в уме, с чем именно сейчас приходится иметь дело.
(если копнуть глубже, то можно увидеть, что тут нет деления на "чёрное и белое" и между конкретными задачами и обобщёнными задачами нет чёткой грани, они плавно перетекают друг в друга; но научиться видеть оттенки серого -- это более сложная задача, это следующий этап, сначала надо поделить понятие дихотомически).

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

mentalgopher

  • Пользователь
  • **
  • Сообщений: 20
  • +0/-2
    • Просмотр профиля
То, что называется основной теоремой матричных игр, гласит: ели двое сядут играть друг против друга в игру с конечными множествами стратегий, то можно назвать (существует) образ действий одного и другого и число v такое, что при применении этого образа действий ты (вооще говоря, в среднем) выиграешь не меньше (проиграешь не больше) указанного числа; а если будешь действовать иначе, то у соперника будет способ не дать тебе выиграть столько (заставить проиграть больше).

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

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

Например, применение в лоб байесовского подхода к задачам типа "оценить правдоподобность того, что теорема Х верна" приводит к парадоксам, в отличии от применения к задачам типа "оценить правдоподобность того, что яблоко красное или зелёное".

Вы пишите о неприменимости байесовского подхода, но почему-то примеров не приводите. Не надо так.

Потому что предложенный метод преодоления проблемы никак не отражён в том понимании байесианства, которое вы изложили выше.
Я не буду утверждать, что там говорит байесианство об этом, но матстатистика говорит, что вывод о наличии причинно-следственной связи делается при наличии корреляции, последовательности во времени и... я не помню как это последнее условие формулируется кратко, но суть в том, что надо убедиться что изменение X влияет на Y, надо взять под контроль X и проверить, что если мы произвольно задаём X, то Y меняется соответственно. Исключив таким образом возможность того, что существует третья переменная Z, которая влияет и на X и на Y.

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

А те шесть шагов, я думаю, вообще не описывают всех этих проблем и сложностей. И неясно как они различают причины и следствия? Ну, вот если мы видим, что чем больше пожарных на пожаре, тем выше ущерб, причинённый пожаром, что мы должны делать для мининимизации ущерба? Может запретить пожарным появляться на пожаре? Методы матстатистики предлагают исследовать направленность причинно-следственных связей, выяснить в процессе, что есть третья переменная -- сила пожара, и от этой третьей переменной зависит и количество пожарных на пожаре, и причинённый ущерб. Соответственно, для того чтобы выяснить как зависит ущерб от количества пожарных, нам придётся как-то взять под контроль переменную "сила пожара",... ну и далее по тексту. В тех шести шагах, которые вы привели, я не вижу не малейшего намёка на то, что подобная процедура познания реальности может оказаться необходимой. И совершенно неясно как разруливать эту ситуацию, отказавшись от идеи причинно-следственной связи.
Никто не будет заморачиваться определять "непойми что" как пространственную фигуру: на практике часто выходит так, что овчинка выделки не стоит. Если надо померять площадь огорода, то никто не будет заморачиваться описывать с достаточной точностью ту поверхность земли, на которой огород расположен. Измерят ширину, длину, перемножат их и скажут, что результат и есть площадь. И я заверяю вас, на практике происходит именно так. Заморачиваться на более сложные модели люди будут только в том случае, если погрешности окажутся слишком дорогими,
И не надо думать, что иметь достаточно точную модель мешает лень человеческая. Дело не сводится к лени, можно придумать много разных ситуаций, в которых нехватку информации либо вообще не устранить в силу нехватки ресурсов, либо действительно дешевле, проще и быстрее устранять только ту нехватку информации, объехать которую на кривой козе не удаётся. То есть вот попытались сделать, поняли что не пошло, выяснили почему, провели дополнительные исследования, попытались сделать ещё раз. Это нормальный цикл исследования проблемы, по-крайней мере, на ранних этапах.
Да, я тоже подумал, что я слишком вольно обращаюсь со словами. Давайте я попробую зайти с другой стороны. Поделим все задачи на конкретные и обобщённые. Конкретная задача -- это когда у нас есть вполне реальная практическая проблема, и мы её решаем. Померять площадь конкретного огорода, с тем чтобы выяснить конкретно сколько семенного материала надо покупать -- это вполне себе пример конкретной задачи. И есть обобщённые задачи, то есть задачи которые исходно в своей постановки уже являются абстракцией. Задачки из задачника по геометрии -- это как раз такие задачи.
Когда мы решаем конкретную задачу, мы создаём конкретную модель, которая учитывает то, что важно в данной конкретной ситуации. Когда же мы решаем обобщённую задачу, мы учитываем какой-то компромиссный набор факторов: обобщённая задача соответствует какому-то классу конкретных задач, если мы соберём все сколь-нибудь существенные факторы со всех конкретных задач этого класса, то мы получим такой список того, что надо учесть, что обобщённая задача окажется нерешаемой. Поэтому... Что делает математика? Она создаёт абстрактную ситуацию, которая по задумке должна отображать наиболее существенные факторы. И потом под эту абстрактную ситуацию строится какая-то теория. Теория прорабатывается в деталях, создаются удобные и мощные инструменты, а потом конкретные задачи подгоняются под абстракции этой теории, а если они не лезут, то мы тем или иным образом выкручиваемся, но не меняем теории.

Вы говорите о конкретных и обобщённых задачах.
Я вижу такой подход неэффективным, потому что он приводит к разрыву между тем, чтобы что-то делать и думать об этом.

Я предпочитаю междисциплинарный подход, в котором единая система/объект дробится на много дисциплинарных предметов со своими описаниями. В моих исследовательских проектах таких предметов - десятки. Чтоб далеко не ходить, набросаю предметные области в моделировании месторождений:

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

За каждой такой предметной областью стоят дисциплина в голове и технологическая оснастка для действия в реальных условиях.
Задачи подгонки под теорию не стоит, стоит задача согласования предметов из разных дисциплин.
Если вы выбрали в качестве метода нефтедобычи закачку газа в скважину, у вас физическая модель может быть изотермической - потому что газ начинает выдавливать нефть на поверхность только после того, как сам сжимается почти до жидкого состояния, а давление при котором достигается фазовый переход сильно зависит от температуры. Поменялась физическая модель - поменялись диффуры. Поменялись диффуры - прежние вычметоды могут стать неэффективными. Нужно переписывать программный код. Всё очень практично получается :)

Я выше называл математической моделью тот конструкт, который возникает при решении конкретной задачи. А абстрактную математическую теорию, живущую в виртуальной реальности заданной аксиомами, я призывал не называть моделью и отличать от модели. И это было не совсем правильно: общеупотребительный смысл слов "математическая модель" и "математическая теория" не подразумевает такого разделения. Но тем не менее разделять их стоит, имеет смысл натаскать себя всегда держать в уме, с чем именно сейчас приходится иметь дело.
(если копнуть глубже, то можно увидеть, что тут нет деления на "чёрное и белое" и между конкретными задачами и обобщёнными задачами нет чёткой грани, они плавно перетекают друг в друга; но научиться видеть оттенки серого -- это более сложная задача, это следующий этап, сначала надо поделить понятие дихотомически).

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

Я ожидаю, что трёх предметных областей - "абстрактной математической теории", байесовской теории вероятностей и теории эксперимента вам не хватит для, чтобы эффективно решать проблемы. Мир более сложный :)

Onery

  • Пользователь
  • **
  • Сообщений: 22
  • +5/-1
    • Просмотр профиля
Согласен, основная теорема матричных игр говорит о существовании оптимальных (возможно, смешанных) стратегий игроков.

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

Например, применение в лоб байесовского подхода к задачам типа "оценить правдоподобность того, что теорема Х верна" приводит к парадоксам, в отличии от применения к задачам типа "оценить правдоподобность того, что яблоко красное или зелёное".

Вы пишите о неприменимости байесовского подхода, но почему-то примеров не приводите. Не надо так.

Потому что понятие "границы применимости" понимаю неправильно, по всей видимости.
По простоте душевной (а предметно я эту область не читала) я полагала, что "вообще неспособна дать результат" попадает под неприменимость.

Впрочем, если этот результат она дать неспособна, а какой-то даст, следствием будет результат неверный?

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

В матричной игре, что у нас должно быть событиями, что гипотезами, что априорными и апостериорными вероятностями, чтобы дать ответ на вопрос о множестве возможных исходов игры? Или хоть на какой-то из вопросов теории игр?

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

Добавлено 01 Апрель 2017, 21:49:
Кстати, а как здесь с континуальными пространствами гипотез? Работают?
« Последнее редактирование: 01 Апрель 2017, 21:49 от Onery »

kuuff

  • Старожил
  • *****
  • Сообщений: 2 133
  • +220/-52
    • Просмотр профиля
Я потерял предмет обсуждения. Предложенная матмодель из 6 шагов оценивает правдоподобность утверждений (ну и в один шаг после этого можно получить оценки на параметры). Вы явно говорите о какой-то другой матмодели, в которой исследуются зависимости случайных величин и к этому пристёгивается интерпретация причинно-следственных связей.
Эмм... Если байесианство не решает проблем типа сравнения двух карт, содержащих в себе кучу корреляционных и причинно-следственных связей, с целью выявить из них лучшую, то, значит, оно содержит в себе гораздо больше проблем. Если байесианство не может предложить хотя бы непрактичного и теоретического способа построения карты-модели, то оно содержит в себе гораздо больше проблем, чем описано выше. Оно вообще оказывается неприменимым. Нам придётся расчехлять обычную матстатистику, построенную на частотной вероятности, которая имеет методы проверки гипотез о наличии причинно-следственных связей.
И в таком варианте встаёт вопрос: зачем говорить о байесианстве? Теорема байеса вполне может быть применена (и применяется!) в рамках частотной матстатистики.

Вы говорите о конкретных и обобщённых задачах.
Я вижу такой подход неэффективным, потому что он приводит к разрыву между тем, чтобы что-то делать и думать об этом.
Для чего именно он неэффективен? Вам шашечки или ехать? Я объясняю вам то, что я имею в виду, вы критикуете. Критика, сама по себе -- это окей, я люблю критику. Но я люблю, когда критика идёт по сути, когда критикуется то, что я имею в виду, а не выбранный мною способ объяснения. Если объяснение неудачно -- вы просто скажите об этом, я попробую как-то перефразировать, может быть зайду с другой стороны.
Если мой подход к объяснению кажется неэффективным, то вы попробуйте объяснить чем этот подход неудачен для объяснения. Вам скорее всего не удастся это, потому что для этого придётся сначала понять, что именно я пытаюсь объяснить, но если подход к объяснению неудачен, то и понимания не возникнет. Но может быть в этой попытке возникнет что-то, что подскажет мне, чем именно неудачен подход, и как его можно улучшить, сделать понятнее?
Задачи подгонки под теорию не стоит, стоит задача согласования предметов из разных дисциплин.
Если вы выбрали в качестве метода нефтедобычи закачку газа в скважину, у вас физическая модель может быть изотермической - потому что газ начинает выдавливать нефть на поверхность только после того, как сам сжимается почти до жидкого состояния, а давление при котором достигается фазовый переход сильно зависит от температуры. Поменялась физическая модель - поменялись диффуры. Поменялись диффуры - прежние вычметоды могут стать неэффективными. Нужно переписывать программный код. Всё очень практично получается :)
Вы настаиваете на том, чтобы я изложил бы своё видение проблемы с позиций моделирования месторождений? Вас не устраивает более простой пример с планиметрией? Окей, давайте попробуем так. Почему бы и нет? Может быть более сложный пример -- это как раз то, что нужно.
Отлично, что вы упомянули программный код. Это ведь как раз очень неплохой пример. У нас есть теория, которая породила дифуры, а есть программа, которая обсчитывает эти дифуры. Можно ли поставить знак равенства между теорией и программой? Можно ли поставить знак равенства между дифурами и программой?
Нет ведь! Например, потому, что дифура, вообще-то, работает на континууме, а программа обязательно дискретизирует пространство и работает на этом дискретном пространстве. Которое, вообще-то, с точки зрения математики скорее похоже на граф, где есть вершины и связи между ними.
В дифуре вещественные числа, в программе числа с плавающей запятой: вы ведь знакомы с математикой, так? Вы в достаточной мере знакомы с информатикой, чтобы понимать, что числа с плавающей запятой и вещественные числа различны математически? Это неизоморфные множества. Там даже гомоморфизма, по-моему, нет. В информатике (в смысле computer science) есть отдельная целая специальная олимпиада на предмет того, как реализовать вычисления, не прибегая к делению, потому что деление чисел с плавающей запятой -- это боль, это необходимость постоянно засовывать в программу всё новые и новые допущения. Каждая операция деления в программе требует ещё одного допущения. И если программист не делает этого допущения явно, то он делает его неявно каждый раз, когда делит.

Так вот, в первом приближении, теория -- это решение общей, абстрактной задачи. Дифура -- это решение конкретной задачи. Подумайте эту мысль немного. Я вас умоляю только, не делайте этой ошибки, которую делают практически все: не надо спорить с новой для вас мыслью, попробуйте понять её и принять. Время споров будет позже: спорить можно с тем, что понятно, с тем же что непонятно спорить невозможно. Подумайте мысль, которую я вам предложил.

А теперь я её разовью чуть дальше: программа -- это тоже решение общей задачи. Точнее так: программа -- это решение более частной задачи, чем система дифур, которая легла в её основу, но при этом, всё-таки, программа не является решением конкретной задачи, потому что эта программа создана таким образом, чтобы обсчитывать много разных месторождений. Не одно конкретное, а много разных. Чтобы сделать из программы частное решение, нам придётся вогнать в код этой программы все начальные/краевые условия.

Я могу двинутся ещё дальше, и объяснить, что даже это "частное решение", на самом деле, не является решением конкретной задачи, потому что для того, чтобы указать в программе начальные и краевые условия, надо сначала провести кучу измерений, сделать кучу выводов, рассуждений, допущений. Если к программе пристегнуть ещё и эту всю деятельность, то тогда, быть может, в результате будет решение самой что ни на есть конкретной задачи.

Но на самом деле эту цепочку перехода к более и более частному случаю можно продолжать и дальше. И, таким образом, мы получим одно огромное, сложное, дорогущее аппаратное решение, которое собрерёт все данные о месторождении, обсчитет его и пойдёт на свалку: потому что как только всё обсчитано, это решение стало не нужным. Собственно примерно об этом вы ведь и говорите, когда рассказываете о том, что вы сторонник междисциплинарного подхода, так ведь?

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

Я ожидаю, что трёх предметных областей - "абстрактной математической теории", байесовской теории вероятностей и теории эксперимента вам не хватит для, чтобы эффективно решать проблемы. Мир более сложный :)
Я тоже не жду, что мне их хватит. Но я не считаю это поводом не пытаться смотреть на процесс принятия рациональных решения с этой точки зрения. Более того, я считаю очень полезным смотреть на него именно с этой точки зрения, потому что с этой точки зрения видно всю систему в целом. Не отдельные шестерёнки системы -- хы, как прикольно они крутятся! -- а всю систему в целом, видя не только вращение отдельной шестерёнки, но и те функции, которые выполняет это вращение шестерёнки в системе.
Полгода, год или полтора года назад мы тут до хрипоты спорили о том, правильно ли или нет говорить слова "эмерджентные свойства"... Я тогда был резко против, а сейчас мне очень любопытно найти то обсуждение и вспомнить почему же. Мне кажется, что это было в тот период, когда я слишком глубоко погрузился в редукционизм. Но с тех пор я столкнулся с критикой редукционизма, которая была очень похожа на ту критику "эмерджеонизма" которую я сам, IIRC, излагал. Много думал. Сегодня (вот буквально сегодня) я второй раз в жизни выслушал рекомендацию не заниматься изобретением велосипедов, не создавать диалектику заново, а просто почитать Гегеля. Сегодня я вижу эмерджентность везде и не бунтую против неё, но принимаю это как естественный и единственно возможный порядок вещей.
И я это к тому, что системные функции шестерёнки, эмерджентные свойства шестерёнки, существуют только тогда, когда шестерёнка является частью механизма. Или, говоря иначе и проще: увидеть и действительно понять шестерёнку можно только если рассматривать её как часть механизма. И именно поэтому я так увлечён тем, чтобы для такой местности как "процесс познания" построить карту достаточного масштаба, куда влезет всё. Именно поэтому я пытаюсь увидеть полную картинку принятия решений, которая будет включать в себя всё, начиная с физических процессов, которые посылают физические же сигналы, которые пересекают психофизиологический барьер, оказываются в психике в виде ощущений, которые проходят через сложнейшую обработку, порождают восприятие, и там дальше какие-то прелюбопытнейшие процессы порождают идеи причинно-следственных связей, делают на основании этого какие-то выводы, принимают решения, и отправляют их на эффекторы. Любой из упомянутых процессв бессмысленен в отрыве от остальных. Бессмысленен и бесполезен.

И да, отвлекаясь от всех этих высоких материй, я лично смотрю на байесианство как на байесианскую теорию принятия решений в неопределённых условиях. Это математическая теория, которая очень даже неплохо имеет дело с графами причинно-следственных связей и умеет сравнивать два разных графа на предмет того, какой из них лучше описывает ситуацию. Это не просто теорема Байеса. Уметь сравнивать два графа -- это, на практике, неравноценно умению построить граф причинно-следственных связей. Но с точки зрения математики разница невелика, математика может позволить себе сказать что-то в стиле: рассмотрим множество всех возможных графов и выберем из него такой, на котором максимизируется такая-то функция.
Теория принятия решений в неопределённых условиях -- это, в пределе её развития, полноценная теория познания. Просто потому что ей не удастся от этого отвертеться, потому что принятие решений в отрыве от построения карты, на основании которой принимается решение -- это ничто. Текущий бум AI технологий построен на том, что эти AI технологии совершили прорыв в построении карты. Гуглобот, играющий в аркадные игры, играет так круто не столько потому, что он круто принимает решения, сколько потому, что он обладает "восприятием", то есть он познаёт ту "реальность" в которой ему приходится функционировать. И как к этому сверху пристегнуть теорию принятия решений -- это отдельная проблема, которую исследователям ещё предстоит решить.
Теория эксперимента -- это частный случай применения теории принятия решений (в некотором смысле: это следует понимать как "возможно спроецировать теорию эксперимента на теорию принятия решений и проекция будет не бессмысленной, но очень даже говорящей"). Абстрактная математическая теория, в некотором смысле, тоже, но это гораздо сложнее объяснить, потому что сама по себе теория принятия решений тоже абстрактная математическая теория. Эта взаимная включённость понятий друг в друга будет сильно сбивать с толку, если я попытаюсь тут что-то объяснить. У меня не хватит ни скилла, ни терпения, чтобы разложить всё это по полочкам.

mentalgopher

  • Пользователь
  • **
  • Сообщений: 20
  • +0/-2
    • Просмотр профиля
Потому что понятие "границы применимости" понимаю неправильно, по всей видимости.
По простоте душевной (а предметно я эту область не читала) я полагала, что "вообще неспособна дать результат" попадает под неприменимость.

Впрочем, если этот результат она дать неспособна, а какой-то даст, следствием будет результат неверный?

К сожалению, я не понимаю, как отличить "вообще не способна дать результат" от собственного незнания.
Поэтому не вижу, что тут можно обсуждать.

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

В матричной игре, что у нас должно быть событиями, что гипотезами, что априорными и апостериорными вероятностями, чтобы дать ответ на вопрос о множестве возможных исходов игры? Или хоть на какой-то из вопросов теории игр?

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

Байесовский подход даст результат не лучший, чем минимаксная стратегия из теоремы фон Неймана.
Но как насчёт того, что она может дать и не сильно худший результат? У меня на 4ом курсе был курсач про это, что 2 робота, играющие в матричную игру друг с другом, быстро обучаются минимаксной стратегии при достаточно общих предположениях.


Добавлено 01 Апрель 2017, 21:49:
Кстати, а как здесь с континуальными пространствами гипотез? Работают?
Не знаю,не пользовал,  это у википедии спросить надо.

Сегодня (вот буквально сегодня) я второй раз в жизни выслушал рекомендацию не заниматься изобретением велосипедов, не создавать диалектику заново, а просто почитать Гегеля. Сегодня я вижу эмерджентность везде и не бунтую против неё, но принимаю это как естественный и единственно возможный порядок вещей.
И я это к тому, что системные функции шестерёнки, эмерджентные свойства шестерёнки, существуют только тогда, когда шестерёнка является частью механизма. Или, говоря иначе и проще: увидеть и действительно понять шестерёнку можно только если рассматривать её как часть механизма. И именно поэтому я так увлечён тем, чтобы для такой местности как "процесс познания" построить карту достаточного масштаба, куда влезет всё. Именно поэтому я пытаюсь увидеть полную картинку принятия решений, которая будет включать в себя всё, начиная с физических процессов, которые посылают физические же сигналы, которые пересекают психофизиологический барьер, оказываются в психике в виде ощущений, которые проходят через сложнейшую обработку, порождают восприятие, и там дальше какие-то прелюбопытнейшие процессы порождают идеи причинно-следственных связей, делают на основании этого какие-то выводы, принимают решения, и отправляют их на эффекторы. Любой из упомянутых процессв бессмысленен в отрыве от остальных. Бессмысленен и бесполезен.

После того, как вы рассказали о своём латентном гегельянстве, я понял, что же именно я не понимал.

Я считаю "эмерджентное видение" бесполезным, если только оно не поддерживает инкапсуляцию и не облегчает дальнейшую редукцию.
Гегель, конечно, много наворотил, но его подход можно назвать эффективным разве что в вопросе написания энциклопедии (насколько я знаю, именно такую задачу он и ставил перед собой - получить стройную философскую систему понятий, охватывающую все знания человечества на момент составления).

Если вы хотите пользы от эмерджентного видения, вы выделяете системный уровень, на котором появляется интересующее вас свойство (например, "отсчёт времени") и обнаруживаете подсистему часы, которая реализует это свойство в своём функционале. Дальше идёт вполне инженерный вопрос - какие требования предъявляются к "отсчёту времени", потому что если вам требуется устойчивость к кратковременным сбоя питания, перегрузкам в 10g и микросекундная точность, то такая подсистема часы будет очень отлична от того, что люди носят на руке.
Любого инженера интересует эмерджентность - только вот называется это функционально-модульным синтезом, как требуемое поведение изобразить из имеющегося набора деталек.

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

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

Гораздо продуктивней брать конкретные задачи, смотреть на них через абстрактные описания предметных областей и обсуждать их в соответствующих терминах. А потом согласовывать между собой кучу требований из разных описаний. Так конкретная ситуация будет рождать интересные и прагматически осмысленные абстрактные задачи. Я же выделил 9 предметных областей (и это очень грубое разбиение) не потому, что моя левая пятка так захотела, а потому что я по этим темам с людьми общаюсь. И мне критически важно общаться по тем темам, где у меня скилл низкий и я могу тупить. У вас же я вижу под разными соусами единственный рецепт "большей связей лучше, чем меньше, лучше быть здоровым и богатым, чем бедным и больным".

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

kuuff

  • Старожил
  • *****
  • Сообщений: 2 133
  • +220/-52
    • Просмотр профиля
Любого инженера интересует эмерджентность - только вот называется это функционально-модульным синтезом, как требуемое поведение изобразить из имеющегося набора деталек.
В чём разница? В названии? Стоит ли такого рода разница того, чтобы тратить усилия на её упоминание?

При этом задача стоит в снижении сложности рассмотрения - оставить только главные связи, и оперировать с ними. Затем поправки на неглавные связи осуществлять на уровне подсистем. Это и есть редукция - смотришь на систему, берёшь её модульное описание и говоришь из каких деталей это явление состоит. Потом смотришь на систему, берёшь её принципиальную схему и показываешь, что система в целом обладает поведением, которое не сводимо к поведению её частей.
Это очень хорошо звучит. Но ровно до тех пор, пока оно работает. Вы ведь делаете неявное допущение, что любая задача разрешима подобным подходом. Почему вы считаете, что это допущение уместно? Что позволяет вам думать, что вы не столкнётесь с ситуацией, когда ограничения этого подхода не позволят вам решить задачу?
Я знаю, когда это не сработает. Это не сработает если от инженерных задач вы перейдёте к обратным задачам, к ревёрс-инженирингу. Потому что при ревёрс-инжениринге не всегда есть то, что можно редуцировать. Прежде чем редуцировать, придётся создать какое-то высокоуровневое понимание, выраженное в терминах верхнего уровня.
Ещё хуже дело будет обстоять, если вы попытаетесь заняться ревёрс-инженирингом "естественной" реальности, то есть не человеческих поделок (в которые закладывается множество условностей, которые давно въелись в кровь всем инженеры, как "прямым", так и "обратным"), а каких-нибудь естественных сложностей, типа устройства живого организма или устройство психики.

Так что гегельянский подход - а давайте начнём с абстрактного и будем шаг за шагом спускаться к конкретному я вижу вредным. Недостаточно практичным. Недостаточно редукционистким. Не заслуживающим внимания рационалиста. Потому что шансы недойти до практики и застрять в абстракциях исключительно велики.
Вы впустую критикуете Гегеля. Ну или точнее, может кто-нибудь кроме меня среагирует на вашу критику, и тогда ваша критика не пройдёт совсем уж впустую, но вы напрасно адресуете эту критику мне, потому что я не читал Гегеля, и я не могу соотнести вашу критику Гегеля с Гегелем, поэтому эти ваши слова мне вообще непонятны. Единственное с чем я могу попытаться связать эту критику -- это с той проблемой, которую я пытался решить, когда мне порекомендовали почитать Гегеля. Я столкнулся с такой периодизаций развития человеческой личности, которая на каждой фазе развития выделяет объект и субъект. Говоря, при этом, что при переходе к новой фазе появляется новый субъект, а предыдущий становится объектом. Мне очень нравится это описание, потому что оно, с одной стороны, очень хорошо ложится на мой опыт интроспекции и рефлексии развития своей личности, а с другой стороны оно у меня вызывает устойчивые ассоциации с тем, как работает deep learning. Оно, потенциально, может быть связующим звеном между моим высокоуровневым, но неформализованным пониманием моего развития и низкоуровневым, редукционистским и очень формализованным. Это понимание может помочь мне построить что-то типа гомоморфизма из низкоуровневого понимания в высокоуровневое. А такой гомоморфизм может помочь мне формализовать высокоуровневое понимание. Когда я описывал другому человеку эту периодизацию, задавая ему вопросы и пытаясь узнать, что он думает об этом, я и напоролся на рекомендацию почитать Гегеля.
Как моя проблема связана с вашей критикой Гегеля мне абсолютно неясно.

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

mentalgopher

  • Пользователь
  • **
  • Сообщений: 20
  • +0/-2
    • Просмотр профиля
В чём разница? В названии? Стоит ли такого рода разница того, чтобы тратить усилия на её упоминание?
Разница в том, что если вы говорите о эмерджентности как "реализации принципа перехода в количество в качество" - то так неполезно говорить. Для дела неполезно. А говорить о функционально-модульном синтезе, который подразумевает разговор о методах типа DSM - полезно.

Это очень хорошо звучит. Но ровно до тех пор, пока оно работает. Вы ведь делаете неявное допущение, что любая задача разрешима подобным подходом. Почему вы считаете, что это допущение уместно? Что позволяет вам думать, что вы не столкнётесь с ситуацией, когда ограничения этого подхода не позволят вам решить задачу?

Инженерия не создаёт теоретических конструкций, в рамках которых обсуждается допустимость и недопустимость. Инженерия при помощи гаечного ключа создаёт продукты, воплощённые в "железе", и по сути является набором предписаний.
Если вы Гегель и пишете энциклопедию, инженерные практики вам, вероятно, не понадобятся.

Я знаю, когда это не сработает. Это не сработает если от инженерных задач вы перейдёте к обратным задачам, к ревёрс-инженирингу. Потому что при ревёрс-инжениринге не всегда есть то, что можно редуцировать. Прежде чем редуцировать, придётся создать какое-то высокоуровневое понимание, выраженное в терминах верхнего уровня.
Ещё хуже дело будет обстоять, если вы попытаетесь заняться ревёрс-инженирингом "естественной" реальности, то есть не человеческих поделок (в которые закладывается множество условностей, которые давно въелись в кровь всем инженеры, как "прямым", так и "обратным"), а каких-нибудь естественных сложностей, типа устройства живого организма или устройство психики.

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

Вы впустую критикуете Гегеля. Ну или точнее, может кто-нибудь кроме меня среагирует на вашу критику, и тогда ваша критика не пройдёт совсем уж впустую, но вы напрасно адресуете эту критику мне, потому что я не читал Гегеля, и я не могу соотнести вашу критику Гегеля с Гегелем, поэтому эти ваши слова мне вообще непонятны. Единственное с чем я могу попытаться связать эту критику -- это с той проблемой, которую я пытался решить, когда мне порекомендовали почитать Гегеля. Я столкнулся с такой периодизаций развития человеческой личности, которая на каждой фазе развития выделяет объект и субъект. Говоря, при этом, что при переходе к новой фазе появляется новый субъект, а предыдущий становится объектом. Мне очень нравится это описание, потому что оно, с одной стороны, очень хорошо ложится на мой опыт интроспекции и рефлексии развития своей личности, а с другой стороны оно у меня вызывает устойчивые ассоциации с тем, как работает deep learning. Оно, потенциально, может быть связующим звеном между моим высокоуровневым, но неформализованным пониманием моего развития и низкоуровневым, редукционистским и очень формализованным. Это понимание может помочь мне построить что-то типа гомоморфизма из низкоуровневого понимания в высокоуровневое. А такой гомоморфизм может помочь мне формализовать высокоуровневое понимание. Когда я описывал другому человеку эту периодизацию, задавая ему вопросы и пытаясь узнать, что он думает об этом, я и напоролся на рекомендацию почитать Гегеля.
Как моя проблема связана с вашей критикой Гегеля мне абсолютно неясно.
Я предостерегаю вас от превращения в Переслегина с его гомоморфизмом из низкоуровнего понимания в высокоуровневое в виде теории инфомационных объектов.

И в то же время я не понимаю как связаны ваши слова с моим пониманием "эмердженции" и редукции. Как по мне, это две операции обратные друг-другу. Редукция -- это отображение из одной матмодели в другую. Эмердженция -- это обратное отображение. Вероятно, это как-то можно более строго сформулировать в терминах теории категорий, заменив слово "модель" на слово "категория" и насыпав ещё десяток умных слов. Но я не копенгаген в этих вопросах. Мне -- увы, -- всё никак не удаётся оторваться от чтения психологической литературы, с целью расширить своё математическое образование.
В том-то и дело, что есть системное свойство - эмерджентность. А "эмердженции" как операции нет (или это тайное неизвестное мне знание).
Так что я вас не понял.

kuuff

  • Старожил
  • *****
  • Сообщений: 2 133
  • +220/-52
    • Просмотр профиля
В том-то и дело, что есть системное свойство - эмерджентность. А "эмердженции" как операции нет (или это тайное неизвестное мне знание).
Так что я вас не понял.
Вы понимаете слово "редукция"? Редукция -- это операция. Представьте себе обратную операцию, и вы поймёте, что я имею в виду.

mentalgopher

  • Пользователь
  • **
  • Сообщений: 20
  • +0/-2
    • Просмотр профиля
Вы понимаете слово "редукция"? Редукция -- это операция. Представьте себе обратную операцию, и вы поймёте, что я имею в виду.

Хорошо, я переформулирую.
Как осуществить редукцию по описанию и получить анализ системы - мне понятно в общем случае.
Как в общем случае провести "обратную операцию к редукции" и осуществить синтез системы из элементов (или сказать чего недостаточно) - мне в общем случае непонятно.

Более того, я ожидаю, что доопределить "обратную операцию к редукции" вам не удастся в силу сложности мира, его невычислимости в общем случае.
И в силу этого мне непонятно, зачем вы используете формальные термины в качестве "универсально приложимых метафор".

kuuff

  • Старожил
  • *****
  • Сообщений: 2 133
  • +220/-52
    • Просмотр профиля
Вы очень конкретно мыслите. Это хорошо в ряде ситуаций. Но это не позволяет вам мыслить о том, как вы мыслите. И мыслить о мышлении -- это не рефлексия имеющая исключительно теоретическое значение. Мышление -- это поиск, надо, выйдя из исходной точке, пройти многими путями в разные стороны, выискивая тот путь, который ведёт к цели. Эффективная организация этого поиска -- это самостоятельная задача, но чтобы решать эту задачу и пытаться соптимизировать решение, придётся думать о том, как идёт процесс мышления.

Редукция, в общем смысле -- это перевод неких утверждений из одних терминов в другие, из терминов более высокоуровневого описания, в термины низкоуровневого описания. Но в процессе поиска решений задач мы постоянно переводим утверждения не только "вниз", но и "наверх". Даже если речь идёт об инженерной задаче. Если я пытаюсь создать механические часы, то я начинаю редуцировать своё высокоуровневое представление о часах в низкоуровневое. Переводить с языка "циферблат, по которому движутся часовая и минутная стрелки, которые вращаются механизмом, который работает беря энергию от пружины, и дозируя расход этой энергии маятником", на язык конкретных шестерёнок, с конкретным количеством зубьев, формой зубьев, конкретным образом соединённых между собой, конкретным образом расположенными в пространстве относительно друг-друга. Это два разных языка описания задачи, и они оба являются инкапсуляцией. Высокоуровневый язык прячет от нас множество свойств системы, типа положения шестерёнок в пространстве. Низкоуровневый язык позволяет с этими свойствами работать, но при этом теряет какие-то высокоуровневые свойства и не позволяет о них говорить. Они оба нужны нам для того, чтобы разделять и властвовать. Чтобы не держать в голове одновременно всё, размышляя об устройстве часов.
Работая с этими языками мы постоянно переключаемся с одного на другой, потому что языки несовершенным образом приспособлены под устройство задачи, мы постоянно сталкиваемся с какими-то частными рассуждениями/подзадачами, в которых язык, который привёл нас к этой подзадаче, оказывается неприменим для решения этой задачи. Нам приходится переходить от одного языка к другому.
И вот тут вылезают редукция и "эмердженция". Мы на частных задачах редуцируем высокоуровневое описание ситуации в низкоуровневое, чтобы найти там какую-то конфигурацию шестерёнок, которая даст нам то, что нам нужно на высоком уровне. И получив это низкоуровневое описание, мы поднимаемся обратно наверх.
То есть, на самом деле, всё ещё сложнее: в таких ситуациях мышление идёт сразу на обоих уровнях, голова параллельно выстраивает рассуждения в двух разных моделях. Но в примере с часами всегда получается так хорошо, в силу простоты задачи.

То же самое можно продемонстрировать на примере задачи разработки программы. Пишется библиотека, которая инкапсулирует какое-то взаимодействие с системой, выставляя наружу какой-то API, который мы спроектировали таким образом, чтобы потом нам было бы удобно мысля в абстракциях этого API решать более сложную, более высокоуровневую задачу. При этом, поскольку в общей ситуации невозможно создать хороший API не создавая при этом ту часть программы, которая будет пользоваться этим API (или хотя бы не представляя как будет эта высокоуровневая часть работать), то при проектировании мы постоянно мечемся с языка низкоуровневых операций, которые должны быть спрятаны под API, к высокоуровневому представлению задачи, выраженному на языке абстракций предлагаемых этим API. Эта вся проблема, между прочим, в программировании имеет форму специальной олимпиады: top-down vs bottom-up approaches, написание программы сверху-вниз или снизу-вверх. Начать ли писать программу с написаня простых, низкоуровневых функций, постепенно переходя ко всё более и более высокоуровневым, или писать её сверху-вниз, начав с написания самых высокоуровневых, используя в них ещё вызовы ещё ненаписанных функций, затем писать эти ненаписанные функции, полагаясь на другие ненаписанные, и со временем добраться таким образом до простых низкоуровневых функций, написать их, и получить рабочий код.

Просто всё чуть сложнее, чем просто сверху-вниз или снизу-вверх. Разрабатывая систему мы постоянно выполняем переходы туда и обратно.

И понимание этого процесса может позволить оптимизировать процесс поиска решения общей задачи. Я опять же могу нарисовать аналогию. Если мне надо найти выход из лабиринта, то я могу использовать алгоритм, который будет принимать решения основываясь на локальных свойствах лабиринта, на тех свойствах которые я непосредственно наблюдаю находясь в какой-то точке лабиринта. Либо я могу в процессе поиска строить карту той части лабиринта, которую я обошёл, и через это рефлексировать свою деятельность, и находить менее очевидные ходы, которые позволят мне уменьшить время потраченное на обход лабиринта. Больше думать, меньше ходить.

Выныривая из аналогии... Чтобы понимать как происходит процесс мышления, надо иметь какие-то слова, для описания основных операций, как идёт мышление. И я уверен, что редукционный переход и обратный ему "эмерджентный" переход -- это пара операций, для которых обязательно надо иметь в голове слова. Это пара операций, которые всегда надо видеть, и не только потому, что они могут подсказать новый и неочевидных кульбит мысли, но ещё и потому, что отслеживая их можно избавлять мышление от ряда ошибок, которые очень свойственны человеческому мышлению. Например, непродуктивная редукция. Скажем, вопрос "как работает память человека"? Биолог с удовольствием ответит на этот вопрос, начав произносить слова "нейроны, синапсы, образование новых синапсов, увеличение/уменьшение числа синаптических рецепторов,..." Это редукция. Но непродуктивная, потому что она не позволяет ответить на множество вопросов, которые у нас возникают в связи с памятью: почему человек помнит что-то, может узнать это, но не может вспомнить? Помнит ли человек вообще всё, но не всегда может вспомнить, или он помнит не всё? Как меняется содержимое памяти со временем? Меняется ли оно непрерывно, или только когда мы воспроизводим это содержимое? Все эти вопросы существуют на "высоком" уровне абстракции, но исчезают на низком. Это не значит, что надо отказываться от редукционного перехода -- нет, это значит, что для решения этих вопросов нужно уметь выполнять обратный переход. Но мышление человека очень склонно совершать ошибку: услышав объяснение биолога, оно помечает проблему памяти как решённую, а потом, сталкиваясь с вопросами на которые нет ответов, мышление впадает в когнитивный диссонанс (оно же "знает" что проблема решена, так?) и начинает сглаживать противоречие отрицая существование этих безответных вопросов. Говоря, например, "перечисленные проблемы байесианства -- это вовсе не проблемы". Сам по себе когнитивный диссонанс не плох и не хорош, так же как и сглаживание противоречий, но в данном случае это приводит человека к тому, что имея пробелы в своём понимании общей ситуации он не видит этих пробелов, не осознаёт их, избегает осознавать их. Имея белые пятна на карте, человек не видит их примерно так же, как он не видит гориллу, когда считает количество передач мяча (https://www.youtube.com/watch?v=IGQmdoK_ZfY).

И это сказывается также и при решении инженерных задач. В рамках того примера с программированием, это приводит к тому, что проектируя программу и её внутренние API, программист выпускает из рассмотрения какие-то проблемы. Эти проблемы вылезут потом, в процессе реализации проекта, и вот там они могут причинить существенную боль, потому что общая спроектированная структура программы не рассчитана на эти проблемы. И тогда приходится нарушать какие-то инварианты, нарушать инкапсуляцию, городить огород сложных телодвижений, разобраться в которых потом будет невозможно.

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

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

mentalgopher

  • Пользователь
  • **
  • Сообщений: 20
  • +0/-2
    • Просмотр профиля
Вы очень конкретно мыслите. Это хорошо в ряде ситуаций. Но это не позволяет вам мыслить о том, как вы мыслите. И мыслить о мышлении -- это не рефлексия имеющая исключительно теоретическое значение. Мышление -- это поиск, надо, выйдя из исходной точке, пройти многими путями в разные стороны, выискивая тот путь, который ведёт к цели. Эффективная организация этого поиска -- это самостоятельная задача, но чтобы решать эту задачу и пытаться соптимизировать решение, придётся думать о том, как идёт процесс мышления.

То, что вы описываете как мышление, для меня неотличимо от метода проб и ошибок, пусть и помещённого на вершину иерархии.
Я придерживаюсь подхода Аристотеля про то, что в основе мышления лежит логика, схема.
И меня ничуть не расстраивает, что я не способен мыслить о мышлении. Но если вы способны - предъявите схему.

И вы говорите об оптимизации, но почему-то не предъявляете оптимизируемые параметры. Не надо так, это превращает содержательные разговоры в "за всё хорошее против всего плохого". Keep focus.

Редукция, в общем смысле -- это перевод неких утверждений из одних терминов в другие, из терминов более высокоуровневого описания, в термины низкоуровневого описания. Но в процессе поиска решений задач мы постоянно переводим утверждения не только "вниз", но и "наверх". Даже если речь идёт об инженерной задаче. Если я пытаюсь создать механические часы, то я начинаю редуцировать своё высокоуровневое представление о часах в низкоуровневое. Переводить с языка "циферблат, по которому движутся часовая и минутная стрелки, которые вращаются механизмом, который работает беря энергию от пружины, и дозируя расход этой энергии маятником", на язык конкретных шестерёнок, с конкретным количеством зубьев, формой зубьев, конкретным образом соединённых между собой, конкретным образом расположенными в пространстве относительно друг-друга. Это два разных языка описания задачи, и они оба являются инкапсуляцией. Высокоуровневый язык прячет от нас множество свойств системы, типа положения шестерёнок в пространстве. Низкоуровневый язык позволяет с этими свойствами работать, но при этом теряет какие-то высокоуровневые свойства и не позволяет о них говорить. Они оба нужны нам для того, чтобы разделять и властвовать. Чтобы не держать в голове одновременно всё, размышляя об устройстве часов.
Работая с этими языками мы постоянно переключаемся с одного на другой, потому что языки несовершенным образом приспособлены под устройство задачи, мы постоянно сталкиваемся с какими-то частными рассуждениями/подзадачами, в которых язык, который привёл нас к этой подзадаче, оказывается неприменим для решения этой задачи. Нам приходится переходить от одного языка к другому.
И вот тут вылезают редукция и "эмердженция". Мы на частных задачах редуцируем высокоуровневое описание ситуации в низкоуровневое, чтобы найти там какую-то конфигурацию шестерёнок, которая даст нам то, что нам нужно на высоком уровне. И получив это низкоуровневое описание, мы поднимаемся обратно наверх.
То есть, на самом деле, всё ещё сложнее: в таких ситуациях мышление идёт сразу на обоих уровнях, голова параллельно выстраивает рассуждения в двух разных моделях. Но в примере с часами всегда получается так хорошо, в силу простоты задачи.

Мне всё ещё не ясно, откуда вы берёте иерархию - "высокоуровневое описание" и "низкоуровневое описание".
Скажем, я привёл 9 описаний, мне по работе нужно уметь хотя бы знать ключевые слова из каждой предметной области.
Как их соотнести по уровням:

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

В системной инженерии  отношение часть-целое является базовым.
Через него задаются уровни "подсистема" - "целевая система" - "использующая система". Но эти уровни вполне физичны, потому что системы нарезаются на 4D индивиды с явными пространственно-временными границами.
Ручка является частью кружки, потому что занимает часть того пространства-времени, которое занимает кружка.

При этом мне совершенно непонятно, как могут быть высокоуровневыми или низкоуровневыми термины.

То же самое можно продемонстрировать на примере задачи разработки программы. Пишется библиотека, которая инкапсулирует какое-то взаимодействие с системой, выставляя наружу какой-то API, который мы спроектировали таким образом, чтобы потом нам было бы удобно мысля в абстракциях этого API решать более сложную, более высокоуровневую задачу. При этом, поскольку в общей ситуации невозможно создать хороший API не создавая при этом ту часть программы, которая будет пользоваться этим API (или хотя бы не представляя как будет эта высокоуровневая часть работать), то при проектировании мы постоянно мечемся с языка низкоуровневых операций, которые должны быть спрятаны под API, к высокоуровневому представлению задачи, выраженному на языке абстракций предлагаемых этим API. Эта вся проблема, между прочим, в программировании имеет форму специальной олимпиады: top-down vs bottom-up approaches, написание программы сверху-вниз или снизу-вверх. Начать ли писать программу с написаня простых, низкоуровневых функций, постепенно переходя ко всё более и более высокоуровневым, или писать её сверху-вниз, начав с написания самых высокоуровневых, используя в них ещё вызовы ещё ненаписанных функций, затем писать эти ненаписанные функции, полагаясь на другие ненаписанные, и со временем добраться таким образом до простых низкоуровневых функций, написать их, и получить рабочий код.

Просто всё чуть сложнее, чем просто сверху-вниз или снизу-вверх. Разрабатывая систему мы постоянно выполняем переходы туда и обратно.

Если я вызываю большой сторонний модуль/библиотеку в одну строчку, это "простая низкоуровневая функция" или нет?

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



И понимание этого процесса может позволить оптимизировать процесс поиска решения общей задачи. Я опять же могу нарисовать аналогию. Если мне надо найти выход из лабиринта, то я могу использовать алгоритм, который будет принимать решения основываясь на локальных свойствах лабиринта, на тех свойствах которые я непосредственно наблюдаю находясь в какой-то точке лабиринта. Либо я могу в процессе поиска строить карту той части лабиринта, которую я обошёл, и через это рефлексировать свою деятельность, и находить менее очевидные ходы, которые позволят мне уменьшить время потраченное на обход лабиринта. Больше думать, меньше ходить.

Вы предлагаете увеличить временные затраты на обдумывание. А принесёт ли такой ход пользу? Если да, то какую?
Может, наоборот, имеет смысл меньше думать и больше ходить?

Выныривая из аналогии... Чтобы понимать как происходит процесс мышления, надо иметь какие-то слова, для описания основных операций, как идёт мышление. И я уверен, что редукционный переход и обратный ему "эмерджентный" переход -- это пара операций, для которых обязательно надо иметь в голове слова. Это пара операций, которые всегда надо видеть, и не только потому, что они могут подсказать новый и неочевидных кульбит мысли, но ещё и потому, что отслеживая их можно избавлять мышление от ряда ошибок, которые очень свойственны человеческому мышлению. Например, непродуктивная редукция. Скажем, вопрос "как работает память человека"? Биолог с удовольствием ответит на этот вопрос, начав произносить слова "нейроны, синапсы, образование новых синапсов, увеличение/уменьшение числа синаптических рецепторов,..." Это редукция. Но непродуктивная, потому что она не позволяет ответить на множество вопросов, которые у нас возникают в связи с памятью: почему человек помнит что-то, может узнать это, но не может вспомнить? Помнит ли человек вообще всё, но не всегда может вспомнить, или он помнит не всё? Как меняется содержимое памяти со временем? Меняется ли оно непрерывно, или только когда мы воспроизводим это содержимое? Все эти вопросы существуют на "высоком" уровне абстракции, но исчезают на низком. Это не значит, что надо отказываться от редукционного перехода -- нет, это значит, что для решения этих вопросов нужно уметь выполнять обратный переход. Но мышление человека очень склонно совершать ошибку: услышав объяснение биолога, оно помечает проблему памяти как решённую, а потом, сталкиваясь с вопросами на которые нет ответов, мышление впадает в когнитивный диссонанс (оно же "знает" что проблема решена, так?) и начинает сглаживать противоречие отрицая существование этих безответных вопросов. Говоря, например, "перечисленные проблемы байесианства -- это вовсе не проблемы". Сам по себе когнитивный диссонанс не плох и не хорош, так же как и сглаживание противоречий, но в данном случае это приводит человека к тому, что имея пробелы в своём понимании общей ситуации он не видит этих пробелов, не осознаёт их, избегает осознавать их. Имея белые пятна на карте, человек не видит их примерно так же, как он не видит гориллу, когда считает количество передач мяча (https://www.youtube.com/watch?v=IGQmdoK_ZfY).

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

Такое чувство, что вы предлагаете считать, что нижайший уровень - это квантовая теория поля, а высочайший - это астрономия.
И редуцировать для вас - это значит взять что-то сложное и разложить его на мельчайшие элементы (что обычно непродуктивно). Редуцировать явление можно в разные предметные области, будут возникать разные описания, имеющие разную значимость с т.з. конкретного исследователя. А ваша "анти-редукция" - это не мысленная операция, она подразумевает сборку машины по чертежу - и ещё непонятно, заработает ли та. Поэтому мне вообще непонятно, зачем об этом говорить, потому что получается очень непродуктивно.

И это сказывается также и при решении инженерных задач. В рамках того примера с программированием, это приводит к тому, что проектируя программу и её внутренние API, программист выпускает из рассмотрения какие-то проблемы. Эти проблемы вылезут потом, в процессе реализации проекта, и вот там они могут причинить существенную боль, потому что общая спроектированная структура программы не рассчитана на эти проблемы. И тогда приходится нарушать какие-то инварианты, нарушать инкапсуляцию, городить огород сложных телодвижений, разобраться в которых потом будет невозможно.

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

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

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

Помогает ли такой подход концентрировать вероятность для нахождения проблемных мест? Я не вижу как.
Позволяет ли он рассуждать в схемах, которые экономят ресурс внимания и могут явно проверяться/отлаживаться? Я не вижу как.
Предлагаете ли вы методы, которыми будут составляться "конкретные списки конкретных неточностей карты"? Я не вижу таких.

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

Добавлено 06 Апрель 2017, 12:36:
Если получив какое-то объяснение я отдаю себе отчёт на каком уровне абстракции находится это объяснение, то я вижу какие уровни абстракции при этом остались без объяснения. Мышление обычного человека успокаивается, когда получает хотя бы одно объяснение. Тренированное же мышление не должно успокаиваться до тех пор, пока оно не получит объяснений на всех уровнях абстракции, которые используются при решении задачи. Если вы порефлексируете своё мышление, вы увидите как те примеры, когда ваше мышление успокаивалось получив одно объяснение, так и примеры тому, когда одного объяснения почему-то оказывалось недостаточно, и мысль продолжала искать второе, на другом уровне абстракции. Но принятие этого решения, этот выбор "искать ещё, или успокоится" происходил неосознанно -- не обязательно неверен, но он исходил из каких-то неосознаваемых эвристик. В ваших силах заменить эти эвристики сознательным процессом, осознающим свои сильные и слабые стороны.

Ключевое моё возражение - что таким образом вы получите эрудированное гуманитарное мышление, которое разбирается в тонких оттенках объяснений. А зачем это нужно?

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

У вас же я перехода к действиям я вообще не заметил. Посидим, покумекаем, составим суперточную карту. А делать когда? Почему более длительная деятельность с менее точной картой не приведёт к большему успеху?
Основной урок из системного мышления, что я извлёк - он ровно про это - основная польза приходит от забарывания ошибок по ключевым направлениям. Важно уметь концентрироваться на этих ключевых направлениях, как минимум уметь их проговаривать, и важно, чтобы работа с ними влияла на итоговый результат (что тоже нужно уметь проговаривать и обосновывать). Всё остальное - рецепты как применить системный подход в деле.
« Последнее редактирование: 06 Апрель 2017, 12:36 от mentalgopher »

kuuff

  • Старожил
  • *****
  • Сообщений: 2 133
  • +220/-52
    • Просмотр профиля
То, что вы описываете как мышление, для меня неотличимо от метода проб и ошибок, пусть и помещённого на вершину иерархии.
Я придерживаюсь подхода Аристотеля про то, что в основе мышления лежит логика, схема.
Логика и схема -- это не мышление и не основа мышления, это результат мышления, это продукт. Точнее даже не продукт, а некий измерительный инструмент, позволяющий эвристически оценить качество продукта.

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

Самая сложная проблема, с которой приходилось связываться естественным наукам -- это биология. И за XX век им даже удалось сделать из биологии естественно-научную дисциплину. Сейчас очередь за психологией, которая ещё более сложная проблема, и пока естественно-научный подход буксует на этой проблеме. Уже лет 150 буксует.

Самые сложные проблемы, с которыми приходилось сталкиваться инженерам -- это написание программ: современные программы сложностью своею превышают то, что человек умеет создавать. И кстати в программировании тоже возникают идеи уровней. Начинаются выражения типа "стек ПО", "библиотека/клиентский код" и API между ними, много слоёв библиотек разделённых разными API, и тд. и тп. И споры о том, в каком именно слое надо решать ту или иную проблему.


Кстати я могу привести каноничный пример подобной иерархии с жёстким выделением границ по горизонтали между уровнями. Этот пример называется "модель и уровни OSI". Этим примером надоедают всем айтишникам в процессе обучения или даже на собеседованиях. Кстати, что самое смешное, эта модель с её уровнями так и осталась теоретической моделью, практические реализации, типа стека TCP/IP, всегда существенно отличаются от теоретической модели.
Суть модели в том, что один и тот же трафик, один и тот же поток информации может на разных уровнях модели выглядеть совершенно по разному. Электрические импульсы на самом нижнем уровне, или чёрт-его-знает что на самом верхнем уровне -- как там будет выглядеть трафик уже зависит от конкретного приложения. Нижние уровни занимаются передачей информации по кабелю, более верхние в пределах сегмента сети, ещё более верхние занимаются поиском маршрута и передачей пакетов по найденным маршрутам, ещё более верхние могут обеспечивать такие абстракции как "соединение", позволяя смотреть на трафик как на последовательность равнозначных байтов, а не на последовательность пакетов, которые занумерованы в одном порядке, а приходят в другом, при этом ещё некоторые теряются по пути.

Это очень удобная модель, которая делит одну большую и сложную задачу на много подзадач. Решение каждой подзадачи можно поменять без особых проблем. Собственно мы видим это каждый день, когда наш интернет может работать как через проводное соединение, причём через медный или оптоволоконный кабель, так и через беспроводное, типа wifi или 4G. Содержимое одного уровня меняется, но остальные остаются теми же и продолжают работать.

И это пример. Вообще всё человеческое знание огранизовано примерно схожим образом, но что замечательно в этом примере, как в примере инженерном, это то, что "реальность" (в смысле конкретные технологии) подстраивается под знания, а не знания под реальность. Есть общие знания "как отобразить сайт в браузере", но они делятся на много отдельных кусков, некоторые из которых друг относительно друга располагаются по вертикали (TCP и IP например), а некоторые по горизонтали и они взаимозаменяемы (IPv4 и IPv6, например).

Но реальность всё равно сложнее: я могу взять и поверх существующей TCP/IPv4 сетки построить VLAN, в котором будет крутится TCP/IPv6 сеть. То есть реальные примеры использования не укладываются в эту модель. Но тут уже никто не парится придумывать более сложную модель, которая справится со всеми use-case'ами. Я не уверен почему.

Финально же я добавлю, что любой системный администратор достаточного уровня знаком с OSI, и более того не примет на работу того, кто не знаком. И не потому, что он может объяснить какие конкретно задачи позволяет решать OSI, а потому, что если человек не понимает OSI, значит он недостаточно глубоко понимает устройство сети. Может быть он может собрать сеть и настроить её, но истинного понимания у него нет.

И редуцировать для вас - это значит взять что-то сложное и разложить его на мельчайшие элементы (что обычно непродуктивно).
Нет. Не на мельчайшие, а на более мелкие. Точнее, не на более мелкие, а на более простые. Причём эта простота/сложность вполне измерима. Теоретически, по-крайней мере.

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

Ключевое моё возражение - что таким образом вы получите эрудированное гуманитарное мышление, которое разбирается в тонких оттенках объяснений. А зачем это нужно?
Чтобы думать о действительно сложных проблемах. Чтобы думать о нерешённых проблемах, о тех проблемах, для которых нет готового алгортима решения. О проблемах, которые сложны настолько, что даже разработка понятийного аппарата является нерешённой проблемой. О проблемах, которые не удаётся даже чётко сформулировать из-за отсутствия законченного понятийного аппарата.

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

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

Я вот совсем недавно окончил курс системного мышления, опирающийся на системную инженерию и инженерный менеджмент. Вся системность упирается в постановку вопросов, внятный ответ на которые, будучи общим знанием команды, продвигает проект к успешному завершению.
Например, вопрос "где наша целевая система, что именно мы производим?" Мы выпускаем металлические чушки и целевая система - это партия товара или мы оказываем сервис по доставке чушек и целевая система поставка заказа с чушками? Ответ на этот вопрос сильно влияет на выбор ключевых показателей и предполагает разную специализацию компании на рынке. Выбор альтернативного ответа приводит к альтернативным действиям.
Нисколько не умаляя этого курса, я бы сказал, что его название несколько вводит в заблуждение. Это не курс системного мышления в общем, это курс системного мышления в рамках некоторого круга проблем. Я не возьмусь очерчивать этот круг и пытаться как-то определить его, но судя по вашему описанию -- это проблемы принятия решений в рамках уже готового понимания ситуации, в рамках готовой системы. Это проблемы где этап исследования либо отсутствует, либо сводится к применению готовых алгоритмов, которые не дают нового понимания ситуации, они не дают новой модели ситуации, новой системы, они лишь обеспечивают существующую модель числами, которые надо подставить в формулы, чтобы получить результат.
Легко думать системно, когда есть система. Попробуйте думать системно там, где нет системы.

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

UNIX был построен вокруг простой идеи "всё есть файл", но под этой идеей лежат огромные массивы кода, которые обеспечивают идею файла -- обычного в файловой системе, директории, которая тоже файл, FIFO, pipe, файлы устройств, сокеты, всякие специальные файловые системы в linux'е, типа procfs или udev. А если копнуть глубже, то там найдётся код, который работает с конкретными контроллерами накопителей информации, типа SSD или жёстких дисков. Там очень много кода. Кода организованного идеей "всё есть файл". Так вот, надо обладать очень широким видением ситуации, чтобы породить идею "всё есть файл", идею которая позволяет построить целую операционную систему.

mentalgopher

  • Пользователь
  • **
  • Сообщений: 20
  • +0/-2
    • Просмотр профиля
Логика и схема -- это не мышление и не основа мышления, это результат мышления, это продукт. Точнее даже не продукт, а некий измерительный инструмент, позволяющий эвристически оценить качество продукта.

Тогда я не понял, что вы называете мышлением.
Для меня наличие логики в "мыслительных ходах" означат наличие мышления. Нет логики (известного типа) - нет мышления (известного типа).

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

Самая сложная проблема, с которой приходилось связываться естественным наукам -- это биология. И за XX век им даже удалось сделать из биологии естественно-научную дисциплину. Сейчас очередь за психологией, которая ещё более сложная проблема, и пока естественно-научный подход буксует на этой проблеме. Уже лет 150 буксует.

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

Самые сложные проблемы, с которыми приходилось сталкиваться инженерам -- это написание программ: современные программы сложностью своею превышают то, что человек умеет создавать. И кстати в программировании тоже возникают идеи уровней. Начинаются выражения типа "стек ПО", "библиотека/клиентский код" и API между ними, много слоёв библиотек разделённых разными API, и тд. и тп. И споры о том, в каком именно слое надо решать ту или иную проблему.
Хмм, считаете ли вы, что система самолёт (с собственной ЛВС на борту) проще, чем софт для автопилота?

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

Научное сообщество. Но с некоторыми оговорками: то что творится в моей голове и то как я это излагаю может не совпадать с тем, что творится в головах у других. Точнее оно совершенно точно не совпадает: ведь именно из-за этих несовпадений мне и советуют читать философов. Но в общих чертах, я уверен, в моей голове примерно то же самое, что и у философов.
Как вы проверяете, что "содержимое" то же самое?
Как вы задаёте принадлежность к научному сообществу? Вот Талеб, например, принадлежит?

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

Мне неизвестны сообщества людей (уточняю - научные коллективы), которые ищут "объяснения на всех уровнях абстракции". Каждый копает в направлении своей предметной области, а потом, возможно, открытия из разных областей переплетаются. Отсылаю к "мегабитовой бомбе" Лема.

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

И как, получается? :troll_face:

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

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

Когда я читал этот рассказ, мне было скорее грустно - потому что персонажи показаны именно что шаблонно, 0 уровень интеллектуальности по Юдковскому. Естественно-научное мышление вполне умеет делать выводы из наблюдений. А в тексте персонаж не потрудился даже список гипотез набросать (что сделало бы рассказ более вовлекающим).

Так что очень неубедительно.

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

Где же байесианство так говорит про "субъективные и недостоверные" "свидетельства"? :)

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

Nope.
Половина труда системного инженера - это определение системы. Определить значит выявить предметные описания и связи между ними (и отразить всё это в документации).

И инженеры занимаются не исследованиями и формулировкой новых понятий (basic research), а разработками (НИОКР, R&D).
Новые модели тут как раз и возникают.

Легко думать системно, когда есть система. Попробуйте думать системно там, где нет системы.
Делать будут ремесленники, но кто-то должен думать, не так ли? Если пять программистов сидят и кодят то, что им сказал руководитель проекта, то они работают в рамках тех абстракций, которые выбрал руководитель проекта. Но руководителю пришлось подумать над выбором абстракций, чтобы этот выбор не привёл бы впоследствии к тому, что результаты трудов отдельных программистов оказались бы несочетаемыми друг с другом. А если этот проект является частью большего проекта, то руководитель тоже загнан в некоторые рамки продуктов интеллектуального труда, которые были порождены специалистами более высокого класса.

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

UNIX был построен вокруг простой идеи "всё есть файл", но под этой идеей лежат огромные массивы кода, которые обеспечивают идею файла -- обычного в файловой системе, директории, которая тоже файл, FIFO, pipe, файлы устройств, сокеты, всякие специальные файловые системы в linux'е, типа procfs или udev. А если копнуть глубже, то там найдётся код, который работает с конкретными контроллерами накопителей информации, типа SSD или жёстких дисков. Там очень много кода. Кода организованного идеей "всё есть файл". Так вот, надо обладать очень широким видением ситуации, чтобы породить идею "всё есть файл", идею которая позволяет построить целую операционную систему.

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

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