Какую роль глупость играет в науке

Прокомментировать Просмотры: 6

Вместо вступления

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

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

Что же такое глупость?

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

Начну с собственного опыта на SE7ENе. За последние пару недель моя карма пополнилась несколькими «минусами». Почти все они прилетели сразу после того, как я изрекал очередную глупость. Порывшись в Интернете, я без труда находил, в чем она заключалась. Но слово не воробей: сказанного не воротишь. Конкретный пример я приведу чуть позже.

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

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

1. Я знаю, что я это знаю.

2. Я знаю, что я этого не знаю.

3. Я не знаю, что я это знаю.

4. Я не знаю, что я этого не знаю.

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

А вот в четвертом «секторе» как раз и обитает глупость. «Я не знаю, что я этого не знаю». Раз о собственном незнании я не догадываюсь, то и говорю обо всем без малейшего смущения. Но собеседники вполне могут видеть, в чем дело, и реагируют соответственно. Итог – см. выше.

Иначе говоря, глупость – это «незнание», выдаваемое за «знание». Под «незнанием» здесь понимается то, что эксперты воспринимают как заведомо ложное утверждение, порожденное, скорее всего, нехваткой знаний о предмете.

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

В мире всё относительно. Глупость – порой тоже

Если глупость – это то, что знатоки считают очевидной ложью (или чепухой), то необходимо сразу сделать оговорку: восприятие знатоков не всегда объективно. Ходит, например, известная легенда о том, как Наполеон Бонапарт выпроводил изобретателя парохода Роберта Фултона словами: «Вы хотите заставить корабль плыть против ветра и течения, разведя костер под его палубой? У меня нет времени слушать эту чушь!» Но это именно легенда. У императора, как утверждают, имелись куда более весомые причины отказаться от этой идеи: свое решение он принял не по наитию, а опираясь на заключение подчиненных ему ученых, сделанное по итогам реальных опытов. И всё же Трафальгар он проиграл, причем одной из причин стала как раз недооценка возможностей паровых судов.

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

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

Это (не)знание не универсально, а контекстно, с множеством «если», и однозначного ответа на тот момент всё равно не было. Утверждение вроде «вот это конкретное устройство (подлодка «Наутилус») принесет нам победу в бою» было заведомо ошибочным и глупым. А утверждение «вот эта идея…» – нет. Французские ученые пытались оценить именно идею, а не образец, но справились с этим неважно: прогноз оказался неверным.

Сразу оговорюсь: в деталях я вполне могу ошибаться, поскольку не специалист в этой области. Заинтересованным читателям рекомендую книгу William Barclay Parsons. «Robert Fulton and the Submarine» (1922) и другие исторические труды. Для меня же здесь главное вот что: при решении реальной научной проблемы точный вердикт заранее вынести непросто. Нехватка знаний легко оборачивается той самой глупостью, и те, кто постоянно решает сложные научные задачи, хотя бы изредка, но попадают в эту ловушку.

Одна из моих недавних глупостей на SE7ENе

Теперь, как и обещал, приведу пример из личного опыта. В недавней статье я рассказал, как автоматизировал преобразование формул из LaTeX в MathType внутри файла Word. И у меня, и у комментаторов нашлось немало утверждений, с которыми можно поспорить. Но в одном из комментариев я написал откровенную глупость: «Вы пробовали в Латексе скомпоновать таблицы и рисунки так, чтобы они были читабельными вместе с довольно большим текстом?» За это я, полагаю, справедливо получил свой «минус»: написанное мной, мягко говоря, не соответствует действительности.

Тем не менее у меня здесь есть вполне реальная проблема. В моих статьях и отчетах самая трудоемкая часть подготовки – это не текст, не формулы и не таблицы, а графики. Их обычно много: как правило, десятки, а иногда и больше сотни, с бесчисленными a, b, c. Графики бывают «хитрыми»: данные из разных источников, расчетные кривые, формулы, аппроксимации и так далее. Само по себе всё это не проблема. Сложность в том, что графики время от времени приходится править, добавлять и удалять, и при этом хочется (а) сразу видеть готовый результат и (б) не запутаться.

В Word это делается почти волшебно: дважды щелкнул по графику – он открылся в OriginPro (отличная программа, работаю с ней около тридцати лет). Отредактировал, пересчитал, перестроил, закрыл – и результат тут же на месте. Нужно перенести в другой документ – Ctrl+C здесь, Ctrl+V там. Все графики лежат в файле документа, все они всегда на виду, любые изменения делаются в один клик. Мне так очень удобно.

Спрашиваю у всезнающего Гугла: «из какого LaTeX редактора можно открыть график в OriginPro и отредактировать там, а потом закрыть, и он отобразится с изменениями?» Ответ (дословно): «Ни из какого LaTeX-редактора (включая LyX, Overleaf или TeXstudio) провернуть такой фокус с OriginPro напрямую не получится.» Далее следует объяснение, почему это невозможно: «LaTeX не хранит в себе картинки и объекты. Он хранит текстовый файл-код (.tex), в котором написана лишь ссылка на внешний файл изображения (например, \includegraphics{my_graph.pdf}). Ни один компилятор LaTeX не умеет упаковывать живую базу данных OriginPro внутрь текстового файла кода.»

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

«Глупый вопрос» к экспертам

Еще один случай из моей практики. Однажды мне понадобилось выполнить термодинамические расчеты. Я воспользовался одной из лучших в мире программ; ее название я здесь не назову, чтобы не делать рекламу, скажу лишь, что ей уже несколько десятилетий, а среди ее пользователей – по два десятка университетов только в США и множество компаний по всему миру. В целом программа превосходная: она «знает» и «умеет» массу полезных вещей.

Но вот беда: рассчитанная ею температура (неважно, какая именно) заметно разошлась с нашими данными – в среднем на 120–150 градусов, а временами и на все 300, хотя разработчики гарантировали точность 30, максимум 50, а экспериментальная погрешность составляла плюс-минус 15.

Я обратился с вопросом к разработчикам. Их вердикт был таков: скорее всего, ваши данные неверны, они получены не тем способом. Вообще-то, в науке такое случается нередко: чуть промахнулся в методике – и результат оказывается «слегка» иным.

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

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

Я спрашиваю: как быть с этими данными? Откуда такая зависимость расхождений от числа компонентов? Методика эксперимента ведь та же самая…

В ответ – всё та же песня: мы лучше вас знаем, какие данные верны, а какие нет. Я понял, что продолжать спор вряд ли имеет смысл…

Кроме того, выяснилось, что расхождения зависят и от сочетаний конкретных элементов: например, если кальций присутствует вместе с бором, ошибка в среднем около 150 градусов, а если по отдельности (при прочих равных) – всего 30–40. Это тоже вопрос методики эксперимента, или всё же господа разработчики что-то упустили в химии?

И еще одно наблюдение: в разных версиях этой же программы температура, рассчитанная строго для одних и тех же исходных данных, порой отличалась на 200–400 градусов. При этом каждая версия заявляла, что ошибка не превышает 50…

Оговорюсь: подобные вещи в научных расчетах сами по себе вовсе не редкость. Расчет действительно сложный, и обеспечить нужную точность удается далеко не всегда. Но главное не в этом, а в том, что разработчики этой в целом добротной программы, по-видимому, сами с подобным не сталкивались: надежно проверить собственный результат трудно не только в программировании, но и в науке. Им попросту не приходило в голову выяснить, например, различается ли точность расчетов для тройных и четверных систем. Для них число компонентов – формальный показатель, а значит, он не может влиять на точность. Что на нее способен влиять неучет конкретных, еще недостаточно изученных химических реакций, и что мера этой неполноты знаний, вообще говоря, коррелирует именно со сложностью системы, им, видимо, и в голову не приходило.

Результат всё тот же: я не знаю, что я этого не знаю, и «глупый вопрос» превращается в глупый ответ. Но предвидеть всё заранее в науке невозможно. В 99,9 процента случаев мнение эксперта верно и опирается на реальное знание. А вот в оставшейся десятой доле процента – нет. И понадобиться может как раз эта десятая.

«Математическое удобство»

Одна из самых известных в моей области математических моделей была впервые опубликована в 1940-х годах, затем ее неоднократно изменяли и дополняли, но это неважно. В те времена в научных лабораториях компьютеров еще не было, и расчеты велись при помощи бумаги и карандаша, арифмометра или логарифмической линейки. Решать таким способом систему дифференциальных уравнений, не берущихся аналитически, – то еще «удовольствие». Естественно, автор прибегнул к некоторым приближениям и упрощениям, в частности, в отношении температурной зависимости одного из ключевых параметров, которую он принял линейной.

Примерно через четверть века его последователь (с ним я впоследствии имел удовольствие познакомиться) предложил изменение этой модели, которым научное сообщество пользуется до сих пор. Заодно он заменил то самое линейное уравнение на обратное, выведенное из теории: не y=a-bx, а y=a’+b’/x. Объясняя выбор предшественника, он заметил, что линейное уравнение было использовано «для математического удобства». Вполне логичное объяснение, не правда ли?

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

Однако самое интересное, опять же, не это. Первоначальный автор линейного уравнения работал не где-нибудь, а в Национальном бюро стандартов США. В этом учреждении «математическое удобство» никогда не было самоцелью: точность расчетов всегда ценилась выше. А сам автор был редкостным педантом даже по меркам этого заведения. В одной из своих работ, посвященных как раз этому уравнению, он прямо указал, что оно, причем даже не им придуманное, а позаимствованное из работы 1920-х годов, лучше других согласуется с известными ему данными. Именно это, по сути, и подтвердила упомянутая публикация 2026 года, хотя и на других данных.

Итог – 80 потерянных лет… неужели это не глупость?

Патентный поиск

Снова обращусь к собственному опыту и, опять же, к собственной глупости. Дело было в не столь уж далекие времена, когда ни одна из ведущих систем патентного поиска не умела толком искать «химические» патенты. К примеру, я задаю запрос вроде «найди материал такого-то типа, содержащий от 20 до 30 мольных процентов компонента А и от 18 до 26 мольных процентов компонента В». При этом я совершенно точно знаю, что как минимум в 18 патентах разных компаний и стран описано именно это. Результат поиска – пустота… В лучшем случае совпадает тип материала и компоненты, а проценты относятся к каким-то другим составляющим. Но это в лучшем случае и только если компонентов два… а если их пять, то ищи не ищи, по такому запросу найдешь мало. Сейчас нейросети способны искать подобные вещи (и то не все и не всегда)…

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

С результатами предварительных проб я пришел к патентоведам своей компании. Какой же это был наивный шаг… Дело было даже не в том, что в результатах парсинга встречались ошибки (они были, и хотя их было немного, в выдаче поиска они «всплывали» регулярно), а в том, что программа выдавала слишком длинный список патентов, из которых реально нужной оказывалась лишь малая часть, а то и вовсе ни одного. В итоге объем работы патентоведов вырастал, а качество почти не менялось…

Но ведь тот же Гугл, как я уже говорил, выдавал результаты вообще «мимо кассы»! И платные патентные базы от него недалеко ушли. Неужели «что-то» не лучше, чем «ничего»? Оказалось, что не лучше, а хуже. Причина не в качестве работы программы, а в том, что патентовед, получив сведения о потенциально подходящем патенте, обязан, в том числе по закону, тщательно его проверить. И если «зерен истины» там процентов 20–30, то он обязан проверить и остальные 70–80 процентов… а оно того стоит?

В итоге – лишняя работа без очевидной выгоды для результата… По сути, неверная постановка исходной задачи, и весь труд насмарку. И найдись человек, способный предвидеть такой исход заранее, для него эта затея с самого начала выглядела бы глупой. Только всегда ли такой человек оказывается в нужное время в нужном месте?

Экстраполяция полиномами

Полиномы (они же многочлены) в научной работе встречаются сплошь и рядом, в том числе когда нужно аппроксимировать не вполне понятную нелинейную функцию по набору точек. Эта «не-совсем-понятность» возникает либо потому, что фундаментальная наука знает не всё, либо потому, что нам не до конца известны все условия на производстве или в эксперименте. Например, показания платино-платинородиевой или хромель-алюмелевой термопары при заданной температуре зависят от наличия микропримесей в материале, фазового состава, состояния поверхности (степени ее окисления при прежних термообработках) и ряда других факторов, частью неизвестных нам, а частью и науке. А поскольку эти характеристики со временем слегка «дрейфуют», термопару приходится калибровать, как правило, по температурам плавления чистых металлов. Такие опыты обычно проводят для трех–пяти температур, затем вычисляют разность показаний и через полученные точки проводят линию, то есть полином наилучшего приближения. Сложив его с «собственным» полиномом термопары (полученным, в принципе, схожим способом, но по большему числу точек), получают калибровочную кривую, которая дает достаточно точную аппроксимацию для промежуточных температур. Аппроксимация полиномами чрезвычайно проста и универсальна, потому ее и применяют очень часто, где нужно и где не очень.

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

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

Одно из следствий такого положения дел состоит в том, что нейросети слабо осведомлены об этой проблеме, зато прекрасно осведомлены о существовании множества научных публикаций, ее игнорирующих. Однажды я обсуждал эту тему с ChatGPT, попросив его проверить одну из моих статей на предмет возможных неточностей, неоднозначных формулировок, нерасшифрованных обозначений и тому подобного, что, в принципе, весьма полезная процедура. Среди прочих «дефектов» нейросеть указала на то, что я, по ее мнению, бездоказательно распространил один приведенный пример ошибочной экстраполяции на все остальные случаи, о которых, вообще говоря, заранее ничего не известно. Я попросил нейроколлегу поставить численный эксперимент и подсчитать, в каком проценте случаев (из нескольких, скажем, сотен или тысяч) результат получится хоть сколько-нибудь приемлемым по указанным критериям. Итог расчета: 0,025 процента, один случай из 4000, да и тот «на грани». Возражение было снято.

Для меня это возражение с самого начала было глупостью, но для кремниевого собрата таковым не являлось, ведь о наличии упомянутой «парной» проблемы в литературе говорится очень мало, а контрпримеров, повторюсь, публикуются многие тысячи…

А потом, уже не при «шлифовке» статьи, а в ходе реального исследования, мне понадобилось найти функцию, которая очень точно (минимум до пяти значащих цифр) описывала бы одну зависимость в очень широком диапазоне изменения переменной. Конкретно требовалось «инвертировать» функцию, то есть из y=f(x) получить универсальное выражение для x=f(y). Аналитически это сделать было невозможно. Методом половинного деления (или как-то иначе) можно, но мне хотелось получить именно формулу, а не алгоритм: например, подставить в SQL-запрос функцию, вычисляемую численным методом, хотя в теории и можно, но на практике ответа придется ждать часами или годами вместо секунд…

Для начала я, опять же, обратился к ChatGPT. Когда он заговорил о полиномах… что ж, вы легко представите мое отношение к этому. Я робко переспросил: неужели полиномы? До пятого знака, да еще с экстраполяциями? Он ответил в духе «рискну утверждать, что здесь это будет наилучшее решение». Я сказал: ну давай, посчитай ошибки, покажи результат и дай прогноз вот здесь на основе вот такого набора точек.

Он честно всё выполнил, и результат поверг меня в шок: пятый знак в порядке, экстраполяция вполне приличная. Оказалось, я не заметил одной маленькой детали: аппроксимация была не простой, а получена так называемым обобщенным методом Паде (по имени автора, Анри Паде, или Henri Padé; подробности обобщенного метода можно найти, погуглив фамилии Андрианов и Шатров). Там даже не один полином, а два, один в числителе, другой в знаменателе, а «под капотом» вместо икса стоит некая его функция, приближенно описывающая нелинейное поведение, включая обе асимптоты, а полиномам остается лишь точно описать сравнительно небольшие отклонения от этой функции в пределах измеренного диапазона или даже его части. Функция, предложенная нейросетью, оказалась вполне приемлемой, а после некоторой доводки нам совместными усилиями удалось повысить точность еще раз в пять, до пары единиц шестого знака, заодно улучшив и точность экстраполяций. Задача была решена с огромным запасом.

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

Подведем итоги

Если мое определение (глупость = незнание, выдаваемое за знание) верно хотя бы «в первом приближении», то из него вытекает вполне конкретное следствие: глупости, увы, неизбежны там, где в объективном научном знании есть серьезные пробелы или неопределенности. Просто потому, что граница между «знанием» и «незнанием» в этом случае тоже становится неопределенной и размытой. «Победить» глупость в принципе можно, но ценой станет ограничение предмета рассуждений лишь тем, что хорошо известно. Для того, кто стремится постоянно узнав

 

Источник

Похожие статьи

Поиск по играм, новостям и статьям…

Введите не менее двух символов

Введите не менее двух символов