Важно

  •  

Thursday, December 06, 2018

Введение в Машинное обучение

https://www.youtube.com/watch?v=TFIfMxyfARo&t=2m12s до примерно 5 минуты






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

Для нетерпеливых быстрый переход к сути статьи тут.

Ниже есть продолжение.

***
Вся наука и техника XX века была построена на "древнегреческим" подходе. Фундаментальная наука делала открытие - чаше всего, находила математическое описание ("теорию" в виде "мат. модели") некого явления. К примеру, уравнения Максвелла для электромагнитного поля, на его базе был затем построен телеграф.

***
Преподавание физики и математики в школе и в ВУЗе также было построено на "древнегреческим" подходе. Рассказывалась "теория", а затем решались задачки. В скобках замечу, что студенты для подготовки к экзамену нашли другой подход. Они решают задачи "похожие" на те, что будут на экзамене, это могут задачи с домашних заданий, работ или контрольных или, с экзаменов прошлых лет. Затем на экзамене они вспоминали решение похожей задачи, решённой ими (или кем-то другим, но они разобрали это решение и поняли), и воспроизводили его на экзамене, заменяя числа на другие и делая вычисление самостоятельно. Для меня такой подход стал реальным лайфхаком. Хотя я знаю и таких, для которых такой подход является естественным. 2.

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

***
Как известно, "школьная геометрия" является, по-сути, Евклидовой геометрией. Несколько упрощая, можно сказать, что школьный курс геометрии является (попыткой 3.) пересказа избранных мест "Начал" Евклида. Изложение в "Началах" ведётся строго дедуктивно 4.. Каждая книга начинается с определений. В первой книге за определениями идут аксиомы и постулаты. Затем следуют предложения, которые делятся на задачи (в которых нужно что-то построить) и теоремы (в которых нужно что-то доказать). "Начала" оказали огромное влияние на развитие математики вплоть до Новейшего времени, высокий интеллектуальный уровень произведения и его фундаментальная значимость для науки в целом отмечается ключевыми учёными современности. Для своего времени и вплоть до (примерно) XIX века "Начала" считались образцом логического изложения математической теории. Структура трудов Декарта, Ньютона и даже Спинозы строилась по образцу "Начал". Однако уже в античные времена были критически отмечены некоторые недостатки евклидовского труда — например, Архимед обосновал необходимость добавить аксиому Архимеда-Евдокса" 3.

Т.е., опять-таки, сначала "теория"/, потом её применение на практике. Другой пример такого подхода - астрономия. В Древней Греции5. была птолемеевская теория эпициклов в сочетании с теорией вложенных сфер. На основании этой терии, вплоть до эпохи Возрождения, рассчитывали движение планет, Луны и Солнца. Это то, что я выше назвал "древнегреческим подходом". При этом, уже в Средние века чувствовалась необходимость усовершенствования приведенных Птолемеем таблиц движения планет, потому что всякое новое наблюдение свидетельствовало о недостаточности теории эпициклов: вместо того чтобы служить подкреплением теории, оно противоречило ей. Но у астрономов даже не зарождалось мысли о необходимости отказаться от теории, и поэтому они придумывали только некоторые поправки к ней, пытаясь добавлять новые эпициклы к прежним. 6.

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

Из примеров "плохих" "теорий" я могу привести флогистон (см. также тут) и теплород. Теория теплорода объясняла на тот момент многие известные в то время тепловые явления и была признана большинством ученых. С точки зрения принципа "бритвы Оккама", в отсутствие теории теплового движения молекул, теория теплорода, при всей её наивности, являлась вполне научной и полноценной. В частности, была вполне опровержима (что является обязательным свойством научных теорий), что, собственно, с ней и произошло.

***
"Вавилонский подход" обучения был принят в некоторых физ.мат. школах в СССР. Не преподавали никакой теории. Давали сразу решать задачки. Если ученик не мог решить, ему давали подсказку, затем ещё и ещё, если и это не помогало, показывали решение задачи. "Набив руку", перерешав много разнотипных задач, ученик "улавливал суть" теории. Она не была сформулирована в явном виде. Ученик просто понимал как решать задачи. Естественно ему давали сложные задачи, для решения которых нужно было очень глубокое понимание материала, но ученик, с помощью учителя "открывал" теорию сам в процессе решения задач. Т.е. он занимался обобщением (или индукцией 4.) по конкретных примерам-задачам он строил "модель". В Древнем Вавилоне обучение было похожим. Там, однако, не строили "теории", а просто было множество разных "рецептов" для решение задач. К примеру, не смотря на то, что в Древнем Вавилоне умели решать квадратные уравнения (и даже отдельные типы кубических) общей "формулы" или, хотя бы, её словесного описания, у них, по всей видимости, не было.

***


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

Стандартным подходом будет написать программу, в котором прописать явным образом некоторый алгоритм для решения этой задачи. Подобно тому, как существует алгоритм, к примеру, сортировки массива. Были попытки написать нечто вроде такого: у кота есть некий набор характерных его признаков. Например, усы, уши, хвост. Мы будем их искать. Т.е. сначала мы выделим набор признаков (feature), которые будут указывать, что это кот. Чтобы сказать, есть ли на картинке, к примеру, уши, мы будем искать одно из нескольких комбинаций линий, соединение которых нам укажет на наличие уха кота на картинке. По-мимо признаков (feature) мы зашьём некоторый набор правил (rule-based), выполнение которых нам скажет есть кот на картинке или нет.

Небольшое лирическое отступление, ещё в начале 2010-ых не было ясно какой подход перспективней вообще для работы с Big Data. Программа, основанная на rule-based engine (по-сути, набора if-ов) или подход, основанный на статистике (машинное обучение). Сегодня, консенсусное мнение состоит в том, что rule-based engine является тупиком.

Какие основные трудности на этом пути? Во-первых, нужно вручную определить признаки. Если мы поменяем задачу и решим, скажем, находить собачек на картинке, нам нужно будет придумывать новые feature, такой подход плохо масштабируем (doesn't scale well). Во-вторых, сам алгоритм будет не устойчивым (not robust) к малым изменения на картинке, таким как освещению, повороту камеру и т.п. В-третьих, и это главный недостаток, высокая вариативность - коты на картинках бывают в разных, порой неожиданных, позах, иногда сливаются с фоном и т.п. Множество правил, которые бы покрывало все эти случаи до сих пор не было найдено, всегда находится новый случай, которые не распознается. Т.е. построить мат. описание того, что значит, на фотографии изображён кот ("объяснить что такое кот компьютеру") этим способом не удалось. "Древнегреческий подход" не сработал.

Как мы можем применить "древневавилонский подход" (или индуктивное умозаключение 4.)? Для этого нам надо, чтобы нас научили на конкретных примерах (data-driven approach) когда на картинке кот и когда нет. Мы же должны будем найти некоторую закономерность, "построить модель", когда в увиденных нами примерах кот или не кот. Используя найденную "модель", мы можем попытаться посмотрев на незнакомую картинку ответить есть там кот или нет.


Концептуально, мы делаем то же самое, что с выводом, что "все лебеди, которых мы видели белые, и, следовательно, все лебеди белые". Наблюдая за миром, нам попадались только белые лебеди. На основании этого наблюдение мы сделали обобщение (индуктивный вывод 4.), что все лебеди белые. При этом, как оказалось впоследствии, наше обобщение было не правомерно, существуют и чёрные лебеди. Вместе с тем, добавляя некоторые ограничения, например, где именно мы наблюдаем лебедя (его основной ареал обитания Австралия и Океания, в середине XIX в. был завезён в Новую Зеландия. В Европе и Северной Америке его иногда содержат в парках и заповедниках), мы можем сказать нечто вроде "вот этот лебедь находится в Европе на воле. С большой вероятностью, это белый лебедь".


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

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

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

Менее очевидным является следующие наблюдение: память, которая нужна для хранения нашей "модели" растёт линейно с ростом нашей модели, т.е. если нам покажут ещё $m$ картинок с котиками, нам надо будет ещё $cm+b$ (c и b - константы) памяти для хранения. Чем больше картинок нам покажут, тем больше памяти нам надо (в конце-концов, мы будем хранить её на диске и поэтому и работать наша "модель" будет всё медленнее и медленнее). Можем мы как-то хранить информацию о прецедентах в более сжатом виде? Можем ли мы, сделать такое "сжатие" пусть даже "с потерями"?

***

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

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

Допустим, наши данные лежат близко к прямой. Они не обязаны лежат идеально на прямой (в многомерном евклидовом пространстве), достаточно, что "разброс" их достаточно "хаотичный". В этом случае, мы можем использовать модель линейной регрессии. Произойдёт "сжатие с потерей" информации. Мы заменяем наши прецеденты прямой, так, что средний "разброс" был минимальный. Хранить прямую (в $n$-мерном пространстве) мы можем с помощью $n+1$ коэффициентов. Если наша граница является более сложной чем прямая мы можем использовать, к примеру логистическую регрессию.

***
Контритутивно, на первый взгляд, выглядит проблема переобучения (overfitting). Допустим, что наша граница между двумя классами "синим" и "красным" выглядит вот так:



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

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

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

***

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

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

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

***

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

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

Другая идея состоит в том, чтобы разделить наши данные на две части, на большей (скажем, 80%) мы тренируем наши "модель" с определёнными гиперпараметрами, а затем мы проверяем нашу "модель" на меньшей части. Здесь основная проблема в том, что у нас нет гарантии, что наша "тестовая" выборка репрезентативна. Более того, из-за того, её размер, обычно, маленький (мы хотим как можно больше данных использовать для тренировки "модели", в аналогии с экзаменами, мы хотим, как можно больше "набить руку" решая задачки) она скорее всего будет нерепрезантативна. Т.е. возможна ситуация, что на этой конретной выборке наша "модель" будет работать хорошо, но когда мы её будет реально применять, она будет работать плохо.

В классическом машинном обучении стандартым приёмом является использование перекрёстную проверку (cross-validation). Имеющиеся в наличии данные разбиваются на $k$ частей. Затем на $k−1$ частях данных производится обучение модели, а оставшаяся часть данных используется для тестирования. Процедура повторяется $k$ раз для одного и того же набора гиперпараметров; в итоге каждая из $k$ частей данных используется для тестирования. В результате получается оценка эффективности выбранной модели с наиболее равномерным использованием имеющихся данных. Таким образом, мы использовали $k$ разных "обучающих выборок" для оценки нашей модели с заданным набором гиперпараметров. Затем мы можем, к примеру, взять среднюю оценку для фиксированного набора гиперпараметров. Затем мы меняем гипепараметры и опять делаем проверку модели $k$ раз и берём, к примеру, среднее значение. Затем мы выбираем те гиперпараметры, где среднее значение было лучше (к примеру, точности (accuracy) модели выше). Замечание: вместо среднего значения по метрике качества можно также учитывать и дисперсию.

Другой идея, которая распространена в deep learning (глубокое обучение), состоит в том, что мы оставляем совсем малую часть данных в стороне и не трогаем до самого конца. Мы можем использовать перекрёстную проверку (cross-validation) на оставшихся данных (так, обычно, делают в классическом машинном обучении), а можем и просто делить на "обучающую" и "тестовую" выборку. На этих оставшихся данных мы выбираем гиперпарамметры (см. выше) и тренируем нашу модель. Когда мы убедились (с помощью выбранной метрики оценки качества обучения, например, точности (accuracy)), что мы получаем удовлетворяющие нас результат, мы запускаем один раз нашу модель на валидационных данных (то, что мы оставили в стороне). Оценка качества работы нашей модели именно на них будет считаться нашей оценкой качества. Идей в том, что мы предоставляем нашей модели абсолютные новые данные, которые она никогда не видела. Таким образом, мы избегаем как переобучения на "обучающей" выборке, так и на "тестовой" выборке. Хотя, наша "валидационная выборка" не является, почти никогда (из-за малых размеров), репрезентативной, она "симулирует" реальную работу нашей "модели". Мы, как бы, проводим, контролируемый эксперимент на "реальных" данных и оцениваем как хорошо наша модель работает. Важно, использовать "валидационные" данные ровно один раз. Иначе, наша оценка будет не объективной. Даже, если наша модель не "выучить" ничего нового (её внутренние парамерты не поменяются), достаточно, что мы увидим результат на "вылидационной выборке", мы будет подсознательно "подкручивать" гиперпараметры в нужную сторону.

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

***
В deep learning (глубокое обучение) архитектора нейронной сети позволяет нам определить наши признаки (feature). По-сути, во время обучения нашей нейронной сети, мы одновременно "учим" и признаки. Поэтому там, всё, что связано с определением признаков и их отсевом (dimension reduction), менее актуально.


***
Напоследок, пару слов про выбросы (outlier). Пример с "обучающей" выборки, который окружён примерами из других классов, называется выбросом (outlier). Причины возникновения выбросов:

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

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

Напоследок расскажу анекдот. Требуется доказать, что все нечетные числа, большие двух,-простые. Доказательство: 3, 5 и 7 - простые, 9 - ошибка эксперимента, 11 - простое и т.д.




Сноски:

1. В принципе, это верно для всего естествознания.

2. Некоторые даже, для того чтобы понять теорию составляют для себя задачи, и решая их разбираются в теории.

3. Я учил геометрию по учебнику Погорелова. Естественно, он не повторял "Начала..." Евклида. По крайней мере, вывод первых теорем был достаточно строгий. Это позволяло увидеть красоту математики. Из фундаментальных вещей, отличающихся в учебнике и у Евклида, навскидку, сразу, могу называть понятие площади.

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

...Принцип Архимеда, он же аксиома Евдокса гласит: Если имеются две величины, a и b, a меньше b, то, взяв a слагаемым достаточное количество раз, можно превзойти b:

$\underbrace{a + a + \ldots + a}_{n} > b$

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

Отметим, что аксиома Евдокса (или её эквивалент) лежит в основе любой теории действительного числа. Тем не менее, в школьном курсе она не упоминается.

Цитата из Википедии:

Аксиома Евдокса—Архимеда лежала в основе так называемого «метода исчерпывания», изобретённого Евдоксом, — метода нахождения площадей фигур, объёмов тел, длин дуг с помощью аналога современных сумм Римана и Дарбу. С помощью своего метода Евдокс строго доказал несколько теорем о вычислении площадей и объёмов. Однако наибольших результатов в этой области достиг Архимед. С помощью метода Евдокса он нашёл ряд новых площадей и объёмов. При этом, поскольку в Древней Греции не существовало понятия последовательности, предела последовательности, Архимеду приходилось в каждой конкретной задаче повторять рассуждения заново. Таким образом, в своих сочинениях Архимед формулировал и использовал аксиому Евдокса—Архимеда.
https://ru.wikipedia.org/wiki/%D0%90%D0%BA%D1%81%D0%B8%D0%BE%D0%BC%D0%B0_%D0%90%D1%80%D1%85%D0%B8%D0%BC%D0%B5%D0%B4%D0%B0

Таким образом, метод исчерпывания использовался "древневавилонским способом" и у Евклида, это некоторый "рецепт", который применяется в каждом конкретном случае. В каждом конкретном случае приводятся и все доказательства (например, существование предела).



4. Дедукция или детективное умозаключение - метод мышления, следствием которого является логический вывод, в котором частное заключение выводится из общего, т.е. от обшего к частному.

Цепь умозаключений (рассуждений), где звенья (высказывания) связаны между собой логическими выводами.

Началом (посылками) дедукции являются аксиомы или просто гипотезы, имеющие характер общих утверждений («общее»), а концом — следствия из посылок, теоремы («частное»). Если посылки дедукции истинны, то истинны и её следствия. Дедукция — основное средство логического доказательства. Противоположно индукции.

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

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

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

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

В XVIII в. Дэвидом Юм поставил под сомнение обоснованность индуктивного метода вывода умозаключения, выдвинув вопрос о том, ведет ли индуктивное рассуждение к знанию поскольку отсутствуют оснований для:

1. Обобщения о свойствах одного класса объектов на основе некоторого числа наблюдений отдельных экземпляров этого класса (например, вывод о том, что "все лебеди, которых мы видели белые, и, следовательно, все лебеди белые", до открытия чёрных лебедей);

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

Сам Юм давал отрицательный ответ на вопрос проблемы индукции.

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

5. В начале III века до н. э. Аристарх Самосский предложил гелиоцентрическую систему. Возможно, Архимед, по-крайней мере, не отвергал её. До примерно II в. до н.э., времени общего кризиса науки в Древней Греции, были известны обе модели, пока, в конечном счёте геоцентрическая модель не стала доминирующей.

6. Коперник с его гелиоцентрической системой, в принципе, "опроверг" Птолемея. Его усовершенствованная геоцентрическая система не точно описывает физический мир, тогда как система Коперника описывает, что происходит "на самом деле". Однако, как сказала Станислав Ежи Лец: "В жизни всё не так, как на самом деле".

Сокращённая цитата из Википедии:

Дальнейшие развитие науки, привело, однако, к отказу от абсолютного центра. Следствием однородности пространства и материи является то, что во Вселенной нет абсолютного центра. При наблюдении из любого мира Вселенная будет выглядеть примерно одинаково:

Нам кажется, что эта Земля находится в центре и середине Вселенной и что одна только она неподвижна и закреплена, а всё другое вращается вокруг неё… То же самое кажется тем, которые живут на Луне и на других звёздах — землях или солнцах, — которые находятся в этом же самом пространстве.
(с) Джордано Бруно, О бесконечности, Вселенной и мирах, Диалог третий.

Джордано Бруно (1548-1600) считал, что Вселенная не только бесконечна и безгранична, но и однородна: повсюду действуют одни и те же законы, повсюду находятся объекты одной и той же природы. По мнению Бруно, во Вселенной вообще нет неподвижных объектов, все тела должны совершать те или иные движения. В диалоге О бесконечности, Вселенной и мирах Бруно писал:

Если это тело движется, то движение его не может быть для нас заметно, ибо, как это заметили древние и современные истинные наблюдатели природы и как это показывает тысячью способов чувственный опыт, мы можем заметить движение только посредством известного сравнения и сопоставления с каким-либо неподвижным телом. Так, люди, находящиеся в середине моря на плывущем корабле, если они не знают, что вода течёт, и не видят берегов, не заметят движения корабля. Ввиду этого можно сомневаться относительно покоя и неподвижности Земли. Я могу считать, что если бы я находился на Солнце, Луне или на других звёздах, то мне всегда казалось бы, что я нахожусь в центре неподвижного мира, вокруг которого вращается всё окружающее, вокруг которого вращается этот окружающий меня мир, в центре которого я нахожусь.
(с) Джордано Бруно, О бесконечности, Вселенной и мирах, Диалог третий.

Эта формулировка Бруно является важнейшим шагом к принципу относительности.

Солнце, которое у Коперника считалось абсолютно неподвижным центральным телом Вселенной, также должно тем или иным образом двигаться. Во всяком случае, оно должно совершать вращение вокруг своей оси, подобно Земле. Также, Бруно допускал и поступательное движение Солнца.
https://ru.wikipedia.org/wiki/Космология Джордано Бруно#Отсутствие центра Вселенной. Относительность движения


См. также:
Пинхас Полонский: От Нила до Евфрата



No comments:

Post a Comment