Меню

Почему не бывает бесплатный обед

Бесплатных обедов не бывает

Бесплатных обедов не бывает

Конечно, жизнь инициатора осложняется тем, что он может ошибаться. Вы сделаете неправильный выбор, потеряете время, вас будут обвинять.

Вот почему инициативность так ценна.

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

Инициатива – редкое явление.

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

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

Похожие главы из других книг

Как это бывает

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

Как это бывает…

Как это бывает… Господи, как вовремя у нее появились командировки! Сначала, когда шеф, вызвав ее к себе, сказал, что интересы фирмы требуют от нее жертв, Вера подумала, что это продолжение старой, давно забытой истории. Дело в том, что, придя на фирму десять лет назад, она

6. Не бывает поражений — бывает только обратная связь

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

Как это бывает в природе

Как еще бывает. Детский сад с морем

Как еще бывает. Детский сад с морем Елена Саяпина несколько лет назад работала аналитиком телекоммуникационной сферы. Она переехала в Москву из Питера, куда в свою очередь когда-то переехала из Краснодара. Елена сделала образцовую карьеру, перспективы который были

Как еще бывает. Театральные акции

Как еще бывает. Театральные акции Проблема с крысиными гонками в том, что, даже если вы выигрываете, вы все еще крыса. Приписывается актрисе Лили Томлин Эдуард Бояков, журналист по первому образованию, в начале девяностых переехал в Москву. Здесь он получил диплом

Любовь – как оно бывает

Любовь – как оно бывает Я считаю, что величайшая задача в отношениях двух людей заключается в том, что каждому из них следует охранять одиночество другого. Рильке Р.М. С самим механизмом любви достаточно всё понятно. Однако теперь можно оценить все те последствия, которые

Любовь — как оно бывает

Любовь — как оно бывает Я считаю, что величайшая задача в отношениях двух людей заключается в том, что каждому из них следует охранять одиночество другого. Рильке Р.М. С самим механизмом любви достаточно всё понятно. Однако теперь можно оценить все те последствия, которые

Подъема не бывает без падений

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

Что бывает от улыбки…

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

О пользе семейных обедов

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

Какой бывает любовь?

Какой бывает любовь? Любовь к соседу – нечто другое, чем любовь к соседке. Томас Гоббс Клайд Хендрик различает 6 стилей, или «цветов», любви:Эрос – страстная, исключительная любовь-увлечение, стремящаяся к полному физическому обладанию («Мы созданы друг для друга!»; «Я

«Случайного» опыта не бывает

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

Ошибок не бывает

Ошибок не бывает [71]Если бы в момент принятия решения вы знали, что совершаете ошибку, приняли бы вы то решение? Задумайтесь об этом.Звучит нелогично. Верно? Мы не стремимся делать ошибки сознательно. Разве что в силу вредной привычки, такой как курение. Тогда мы

Случайного не бывает

Случайного не бывает Недавно звонили три женщины, жаловались на свою жизнь и здоровье, все трое словно одной плеткой побиты: сами своим страхом «меня не любят» замуровали дорогу своей энергии любви, а обвиняют мужа, близких и т. д.Почему у меня возникла злость = гнев? Ко мне

11. Ошибок не бывает

11. Ошибок не бывает Как легко наказывать себя за совершенные ошибки. Слишком многие из нас живут прошлым, вместо того чтобы любить настоящее и строить ослепительно яркое будущее. Некоторые годами цепляются за какие-то поступки или пережитые неудачи. Печально. Ужасно

источник

Почему не бывает бесплатный обед

Войти

Записки на полях

Октябрь 2019

1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31

В аспирантуре я занимался проблемами нелинейной оптимизации. Самый общий и простой метод оптимизации (или поиска экстремума целевой функции, что одно и то же) в нелинейных задачах — это метод Монте-Карло или просто случайный поиск. К нему можно добавить некоторый статистический аппарат, чтобы оценивать точность оптимизации. Был соблазн попробовать генетические алгоритмы (ГА), в то время они были новы и довольно популярны. Я накупил кучу книжек, которые рассказывали, как здорово некоторые задачи решались при помощи ГА. Реализовал алгоритм, который работал, но не давал каких-то выдающихся результатов по сравнению со случайным поиском. А потом, рецензируя статьи по этой тематике, наткнулся на теорему, осознание которой полностью отвратило меня от всякий экспериментов с ГА, во всяком случае для тех задач, которые тогда ставились. Речь идет о теореме “Бесплатного обеда не бывает” — No Free Lunch Theorem (NFL). Может быть, на русский это лучше перевести, как “бесплатного сыра не бывает”, но название теоремы пришло из одного конкретного примера.

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

Интересно, что NFL оказывается тесно связана с Колмогоровской сложностью.

Результат интересный, но, в общем, довольно логичный.

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

Ну и т.к. на “всём множестве задач” мы можем встретиться с совсем любыми функциями, то и метода, который одинаково хорошо работает со всеми ними не существует.

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

Я далёк от подобных задач, так что может быть глупый вопрос задам.

А можно в процессе работы понять, что наша функция — плохая, и перейти на Монте-Карло? Или это слишком долго получится?

Ну, т.е., если общего подхода нет, возможно мы можем как-то [автоматически] классифицировать функции и интеллектуально выбирать способ оптимизации.

В общем случае — нельзя. Что на самом деле можно делать — это комбинировать случайный поиск и другие алгоритмы.

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

Читайте также:  Божья коровка зачем отчего почему

как думаете, насколько сложная функция должна быть, что бы сделать жизнь (белковую)? Думаю это ОЧЕНЬ сложная функция (и, подозреваю, ученые обычными методами не смогут повторить еще долго).

К чему это я? А к тому, что самые сложные организмы получены не случайным поиском, а методами ГА. Случайным способом созданы вирусы, бактерии – те, что не используют половое размножение и развиваются (почти исключительно) мутациям. Хотя, как выясняется, и у бактерий и у вирусов есть возможность обмена генетической информацией между разными особями. Так что можно сказать, что всё живое, что мы видим – результат ГА.

Это что касается задач “вообще”, “про жизнь”.

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

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

Методы ГА — это лишь попытка сэмулировать мутации и скрещивания генов, и попытка довольно далекая от реальности. Например, сейчас уже известно, что ДНК достаточно устойчива к мутациям. Большие изменения приводят как правило к гибели организмов, а не их изменению, а малые “лечатся” за счет избыточности информации и некоторых не совсем еще понятных механизмов самовосстановления. Несколько лет назад я читал очень интересную статью на тему эволюции, которая избавляет от “наивного” школьного взгляда на этот процесс: http://elementy.ru/lib/430413 Так что ответ на вопрос о роли мутаций в эволюции далеко не однозначен.

Насчет эволюции идей — не совсем понял Вашу мысль. Конечно же эволюция знаний — это эволюция. Спорить тут не о чем. Эволюция в широком смысле — это плавное изменение. Но никакой аналогии с ГА я тут не вижу. ГА — это хорошо формализуемый алгоритм, в котором есть четкие формальные определения: что есть популяция, как кодируется “ген”, каковы правила скрещивания и мутации, и, главное, какая целевая функция. Науку формализовать таким способом невозможно.

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

Про мутации при делении сказано тут http://www.natural-selection.ru/?p=8 “Это означает, что на геном человека, состоящий приблизительно из 3 • 10^12 пар нуклеотидов, при каждом делении клеток происходит примерно три мутации.” Из этого нужно сказать: “мутаций мало, но они есть”. (Кстати, число мутаций, по моему, занижено и последнее число следует повысить на несколько порядков.) Я ведь не спорю, что при большом числе мутаций организм будет нежизнеспособный. Но без мутаций не будет материала для улучшения приспособленности. Кстати опыты селекционеров подтверждают – при облучении (т.е. при увеличении уровня мутаций) семян из них могут появиться новые, с новыми интересными свойствами, растения. “В Японии при помощи радиации создан весьма устойчивый к неблагоприятным воздействиям сорт риса «Реи Меи» — самый высокоурожайный из выращиваемых здесь. Мутант сои «Райден», также полученный в Японии, созревает на 25 дней быстрее, чем сорт «Жемаси-рацу», из которого он выведен; новый сорт более стоек и дает такие же урожаи”.

> “ГА — это хорошо формализуемый алгоритм”
на самом деле это группа алгоритмов. Есть разные виды отбора родителей, разные механизмы кодирования генов, разные механизмы мутации. Т.е. “ГА” это не какой-то один алгоритм (типа стандарта, который описывает сжатие фильмов на DVD), а группа, которая может расширяться.

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

К чему это я веду: аналоги ГА работают в нашем мире не только на компьютерах. И они доказали право на существование.

Что касается “Бесплатного обеда не бывает” – да, алгоритм (не важно как полученный и каких затрат стоивший) специально разработанный для какой-то задачи будет справляться с задачей быстрее и лучше, чем некий “универсальный алгоритм”. В этом случае ГА (как “универсальный алгоритм”) проигрывают сильно.

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

Поскольку я почти ни с чем из Вами написанного не согласен, буду отвечать по частям 🙂

создание жизни – это создание такого организма (функции), которая наиболее приспособлена к размножению (максимум жизнеспособности функции).

Это почему Вы так решили?
Во-первых, буду придираться. Если Вы пишете “создание”, то это слово предполагает, что есть кто-то, кто создает. Бог?

Во-вторых, и создание, и возникновение, никак не объясняется и не может быть объяснено приспособленностью к размножению. Возникновению жизни предшествовало появление аминокислот, которые не обладают способностью к размножению.

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

Поэтому Ваша функция “Жизни” не подходит.

(Кстати, число мутаций, по моему, занижено и последнее число следует повысить на несколько порядков.

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

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

“ГА — это хорошо формализуемый алгоритм”
на самом деле это группа алгоритмов.

Принимаю уточнение, хотя я как раз и указал, что свойства ГА зависят очень сильно от способов кодирования, скрещивания, мутации и т.п. Общий только принцип.

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

Процессы мышления человека при решении какой-то задачи — это вообще темный лес. Часто решение приходит во сне 🙂

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

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

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

Нет ничего проще случайного поиска (Монте-Карло), о чем Вы? И таки Вы не верите, что бесплатного обеда не бывает? 🙂

что касается мутаций, то они пусть редко, но всё-таки двигают человечество вперед.

К примеру 10 тысяч лет назад взрослые люди не могли усваивать молоко. Однако позже в геноме людей (в разных племенах в разное время) произошли мутации, которые позволили взрослым усваивать молоко. http://www.membrana.ru/print.html?1166028720 С тех пор эти мутированные гены встречаются часто, потому что закрепились в геноме как полезные.

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

Читайте также:  Почему на кончике члена болит

> Нет ничего проще случайного поиска
Я не о простоте, а о скорости нахождения минимума (пусть и не глобального, а просто “хорошего”).

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

Какой твой прогноз – кто выиграет? 1. Любитель Монте-карло. 2. Любитель ГА. 3. Любитель аналитических решений.

отдельно упомянем вариант “Программист, выбравший симбиоз методов A и B”.

Мой прогноз:
a) при высокой сложности задачи аналитик почти не имеет шанса;
б) Монте-карло получит среднее(посредственное) решение, которое можно будет легко улучшить градиентным спуском
в) ГА получит хорошее решение
в случае, если программист сможет быстро(!) аналитически решить хоть часть задачи, то (вместе с ГА) он может получить отличное решение.

Твой прогноз, скорее всего, будет другой.

Что касается метода симуляции отжига, то я его пробовал. На сложных задачах он хуже.

Ты так и не сказал, на каких задачах получил лучший результат у Монте-Карло и более плохой у ГА.

Какой метод ты предпочитаешь, когда аналитически не можешь разобрать (решить) функцию?

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

Какой твой прогноз – кто выиграет? 1. Любитель Монте-карло. 2. Любитель ГА. 3. Любитель аналитических решений.

Аналитические решения не рассматриваем. Реальные нелинейные задачи с десятками, а то и сотнями размерностей аналитически не решаются.

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

И это не прогноз, а научно доказанный факт. О чем и был мой пост.

источник

Почему не бывает бесплатный обед

Войти

Записки на полях

Октябрь 2019

1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31

В аспирантуре я занимался проблемами нелинейной оптимизации. Самый общий и простой метод оптимизации (или поиска экстремума целевой функции, что одно и то же) в нелинейных задачах — это метод Монте-Карло или просто случайный поиск. К нему можно добавить некоторый статистический аппарат, чтобы оценивать точность оптимизации. Был соблазн попробовать генетические алгоритмы (ГА), в то время они были новы и довольно популярны. Я накупил кучу книжек, которые рассказывали, как здорово некоторые задачи решались при помощи ГА. Реализовал алгоритм, который работал, но не давал каких-то выдающихся результатов по сравнению со случайным поиском. А потом, рецензируя статьи по этой тематике, наткнулся на теорему, осознание которой полностью отвратило меня от всякий экспериментов с ГА, во всяком случае для тех задач, которые тогда ставились. Речь идет о теореме “Бесплатного обеда не бывает” — No Free Lunch Theorem (NFL). Может быть, на русский это лучше перевести, как “бесплатного сыра не бывает”, но название теоремы пришло из одного конкретного примера.

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

Интересно, что NFL оказывается тесно связана с Колмогоровской сложностью.

Результат интересный, но, в общем, довольно логичный.

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

Ну и т.к. на “всём множестве задач” мы можем встретиться с совсем любыми функциями, то и метода, который одинаково хорошо работает со всеми ними не существует.

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

Я далёк от подобных задач, так что может быть глупый вопрос задам.

А можно в процессе работы понять, что наша функция — плохая, и перейти на Монте-Карло? Или это слишком долго получится?

Ну, т.е., если общего подхода нет, возможно мы можем как-то [автоматически] классифицировать функции и интеллектуально выбирать способ оптимизации.

В общем случае — нельзя. Что на самом деле можно делать — это комбинировать случайный поиск и другие алгоритмы.

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

как думаете, насколько сложная функция должна быть, что бы сделать жизнь (белковую)? Думаю это ОЧЕНЬ сложная функция (и, подозреваю, ученые обычными методами не смогут повторить еще долго).

К чему это я? А к тому, что самые сложные организмы получены не случайным поиском, а методами ГА. Случайным способом созданы вирусы, бактерии – те, что не используют половое размножение и развиваются (почти исключительно) мутациям. Хотя, как выясняется, и у бактерий и у вирусов есть возможность обмена генетической информацией между разными особями. Так что можно сказать, что всё живое, что мы видим – результат ГА.

Это что касается задач “вообще”, “про жизнь”.

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

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

Методы ГА — это лишь попытка сэмулировать мутации и скрещивания генов, и попытка довольно далекая от реальности. Например, сейчас уже известно, что ДНК достаточно устойчива к мутациям. Большие изменения приводят как правило к гибели организмов, а не их изменению, а малые “лечатся” за счет избыточности информации и некоторых не совсем еще понятных механизмов самовосстановления. Несколько лет назад я читал очень интересную статью на тему эволюции, которая избавляет от “наивного” школьного взгляда на этот процесс: http://elementy.ru/lib/430413 Так что ответ на вопрос о роли мутаций в эволюции далеко не однозначен.

Насчет эволюции идей — не совсем понял Вашу мысль. Конечно же эволюция знаний — это эволюция. Спорить тут не о чем. Эволюция в широком смысле — это плавное изменение. Но никакой аналогии с ГА я тут не вижу. ГА — это хорошо формализуемый алгоритм, в котором есть четкие формальные определения: что есть популяция, как кодируется “ген”, каковы правила скрещивания и мутации, и, главное, какая целевая функция. Науку формализовать таким способом невозможно.

Читайте также:  Дочку во сне почему снится

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

Про мутации при делении сказано тут http://www.natural-selection.ru/?p=8 “Это означает, что на геном человека, состоящий приблизительно из 3 • 10^12 пар нуклеотидов, при каждом делении клеток происходит примерно три мутации.” Из этого нужно сказать: “мутаций мало, но они есть”. (Кстати, число мутаций, по моему, занижено и последнее число следует повысить на несколько порядков.) Я ведь не спорю, что при большом числе мутаций организм будет нежизнеспособный. Но без мутаций не будет материала для улучшения приспособленности. Кстати опыты селекционеров подтверждают – при облучении (т.е. при увеличении уровня мутаций) семян из них могут появиться новые, с новыми интересными свойствами, растения. “В Японии при помощи радиации создан весьма устойчивый к неблагоприятным воздействиям сорт риса «Реи Меи» — самый высокоурожайный из выращиваемых здесь. Мутант сои «Райден», также полученный в Японии, созревает на 25 дней быстрее, чем сорт «Жемаси-рацу», из которого он выведен; новый сорт более стоек и дает такие же урожаи”.

> “ГА — это хорошо формализуемый алгоритм”
на самом деле это группа алгоритмов. Есть разные виды отбора родителей, разные механизмы кодирования генов, разные механизмы мутации. Т.е. “ГА” это не какой-то один алгоритм (типа стандарта, который описывает сжатие фильмов на DVD), а группа, которая может расширяться.

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

К чему это я веду: аналоги ГА работают в нашем мире не только на компьютерах. И они доказали право на существование.

Что касается “Бесплатного обеда не бывает” – да, алгоритм (не важно как полученный и каких затрат стоивший) специально разработанный для какой-то задачи будет справляться с задачей быстрее и лучше, чем некий “универсальный алгоритм”. В этом случае ГА (как “универсальный алгоритм”) проигрывают сильно.

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

Поскольку я почти ни с чем из Вами написанного не согласен, буду отвечать по частям 🙂

создание жизни – это создание такого организма (функции), которая наиболее приспособлена к размножению (максимум жизнеспособности функции).

Это почему Вы так решили?
Во-первых, буду придираться. Если Вы пишете “создание”, то это слово предполагает, что есть кто-то, кто создает. Бог?

Во-вторых, и создание, и возникновение, никак не объясняется и не может быть объяснено приспособленностью к размножению. Возникновению жизни предшествовало появление аминокислот, которые не обладают способностью к размножению.

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

Поэтому Ваша функция “Жизни” не подходит.

(Кстати, число мутаций, по моему, занижено и последнее число следует повысить на несколько порядков.

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

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

“ГА — это хорошо формализуемый алгоритм”
на самом деле это группа алгоритмов.

Принимаю уточнение, хотя я как раз и указал, что свойства ГА зависят очень сильно от способов кодирования, скрещивания, мутации и т.п. Общий только принцип.

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

Процессы мышления человека при решении какой-то задачи — это вообще темный лес. Часто решение приходит во сне 🙂

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

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

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

Нет ничего проще случайного поиска (Монте-Карло), о чем Вы? И таки Вы не верите, что бесплатного обеда не бывает? 🙂

что касается мутаций, то они пусть редко, но всё-таки двигают человечество вперед.

К примеру 10 тысяч лет назад взрослые люди не могли усваивать молоко. Однако позже в геноме людей (в разных племенах в разное время) произошли мутации, которые позволили взрослым усваивать молоко. http://www.membrana.ru/print.html?1166028720 С тех пор эти мутированные гены встречаются часто, потому что закрепились в геноме как полезные.

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

> Нет ничего проще случайного поиска
Я не о простоте, а о скорости нахождения минимума (пусть и не глобального, а просто “хорошего”).

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

Какой твой прогноз – кто выиграет? 1. Любитель Монте-карло. 2. Любитель ГА. 3. Любитель аналитических решений.

отдельно упомянем вариант “Программист, выбравший симбиоз методов A и B”.

Мой прогноз:
a) при высокой сложности задачи аналитик почти не имеет шанса;
б) Монте-карло получит среднее(посредственное) решение, которое можно будет легко улучшить градиентным спуском
в) ГА получит хорошее решение
в случае, если программист сможет быстро(!) аналитически решить хоть часть задачи, то (вместе с ГА) он может получить отличное решение.

Твой прогноз, скорее всего, будет другой.

Что касается метода симуляции отжига, то я его пробовал. На сложных задачах он хуже.

Ты так и не сказал, на каких задачах получил лучший результат у Монте-Карло и более плохой у ГА.

Какой метод ты предпочитаешь, когда аналитически не можешь разобрать (решить) функцию?

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

Какой твой прогноз – кто выиграет? 1. Любитель Монте-карло. 2. Любитель ГА. 3. Любитель аналитических решений.

Аналитические решения не рассматриваем. Реальные нелинейные задачи с десятками, а то и сотнями размерностей аналитически не решаются.

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

И это не прогноз, а научно доказанный факт. О чем и был мой пост.

источник

Adblock
detector