Представьте, что вам понравилась компьютерная игра. И вы играли в неё несколько дней без перерыва. А потом пригласил в игру двоих друзей. Им игра тоже понравилась, но... возникла проблема!
Нет-нет, не такая. Мирная проблема. Вы-то уже достигли пятого уровня, а у друзей персонажи только первого уровня, слабенькие! Как им вас догнать, чтобы играть втроём?
Вы, конечно, можете удалить своего старого игрового персонажа, и начать игру заново. Или можете перестать играть и подождать, пока друзья доберутся до вашего уровня. Всё верно. Но... ску-у-учно! Однако есть и третий вариант – математический.
(В конце концов, любая компьютерная игра – это чистая математика. И если хотите научиться создавать видеоигры сами, то советуем с математикой подружиться заранее.)
Итак, чтобы перейти на следующий уровень, игроку в игре нужно набирать очки, то есть опыт, на тайном (непонятном родителям) игровом языке – «экспу». Скажем, за выполнение задания игрок получает сто очков опыта. А для прохода на второй уровень нужно набрать тысячу очков. На третий уровень – ещё тысячу, и так далее.
Такой рост уровня игрока в математике называется «линейным». Простая система, удобная и понятная – но! С ней товарища не догонишь, хоть ты тресни!
А теперь представим себе такой режим прохождения игры: для получения второго уровня игроку нужно набрать тысячу очков. А вот для получения второго – уже две тысячи! Для третьего – четыре тысячи. Для четвёртого – восемь и так далее.
Значит, чтобы перейти с пятого уровня на шестой, вам нужно набрать тридцать две тысячи очков. А друзьям, чтобы «докачаться» с первого уровня до пятого, понадобится 1+2+4+8+16 = тридцать одна тысяча очков! И они очень даже быстро (буквально за день) вас догонят, и дальше вы будете играть вместе на одном уровне!
Такой рост уровня игрока в математике называется (нетрудно догадаться) «нелинейным». Или – «логарифмическим».
Школьная линейка с её сантиметрами и миллиметрами – это линейная шкала:
1 сантиметр – 10 миллиметров. 2 сантиметра – 20 миллиметров. 3 сантиметра – 30 миллиметров. И так далее. А теперь представьте себе, что у нас вот какая причудливая шкала:
1 сантиметр – 20 миллиметров, 2 сантиметра – 40 миллиметров, 3 сантиметра – 80!.. Вот это и будет шкала «нелинейная», «логарифмическая».
Вы не представляете, насколько в науке и технике распространены такие вот «нелинейные линейки».
Скажем, «шкала Рихтера», по которой измеряют силу землетрясений – логарифмическая.
Шкала громкости звука в децибелах – логарифмическая.
Яркость звёзд в астрономии – тоже.
Время выдержки в фотоаппарате – тоже! И так далее, и так далее!
Название «логарифмическая» происходит от слова «логарифм». А что это за зверь? Сейчас расскажем!
Составим таблицу с двумя рядами чисел. В верхней строчке – просто числа от нуля до девяти. А вот во второй – числа «хитрые».
Что же в них хитрого? А то, что мы можем умножать их, не умножая !
Скажем, сколько будет восемь умножить на тридцать два, сможете быстро посчитать в уме? А теперь смотрите: в нашей таблице число 8 во второй строке стоит под цифрой 3 в первой строке, а число 32 во второй строке – под цифрой 5 в первой строке, так? Сложим 3 и 5 – сколько получается? Восемь! А теперь – какое число в нашей таблице во второй строке стоит под цифрой 8 в первой строке? Число 256! Всё, вот вам и ответ!
Может, это случайное совпадение? Нет, не совпадение. Повторим опыт – умножим по нашей таблице 16 на 64.
Число 16 – под цифрой 4, число 64 – под цифрой 6. Складываем 4+6, получаем 10. А какое число у нас во второй строке под цифрой 10? Число 1024. Проверяем на калькуляторе – и правда 1024!
Так что это совсем не совпадение, а наоборот – самый настоящий математический закон. Открыли его, кстати, давным давно. И догадались, что с помощью такой вот таблицы (только более подробной, конечно) можно вместо умножения чисел использовать сложение.
«А можно вместо деления по такой волшебной таблице использовать вычитание?» – спросят самые догадливые.
А вы попробуйте. Скажем, разделить 2048 на 128 – сколько будет? 2048 стоит под цифрой 11, а 128 – под цифрой 7.
Сколько будет из одиннадцати вычесть семь? Четыре. Находим число 4 в первой строке, а под ним видим число 16. И это на самом деле правильный ответ!
Понятно, что складывать и вычитать намного проще, чем умножать и делить. Особенно если числа большие и длинные! Причём не только людям – но и компьютерам! (Да-да, бывают такие задачи в математике, физике, технике и вообще в науке, которые даже для решения на самом супербыстром компьютере желательно «упрощать».) А уж как страдали учёные в те времена, когда вообще никаких компьютеров не было! Некоторые вычисления приходилось делать недели и месяцы! Горы исписанной бумаги, вёдра чернил!
Так что же такое «логарифм»? А это как раз число из первой строчки нашей чудо-таблицы!
Мы с вами как говорили? «Число 128 в таблице стоит под номером 7». А математик скажет так: «Число 7 – это логарифм числа 128 по основанию 2».
Английский математик Джон Непер первым в мире составил такие «волшебные таблицы» в 1614 году, в книге, которая так и называлась: «Описание удивительной таблицы логарифмов», по-латыни «Мирифици логаритморум канонис дескрипцио».
В тогдашнем научном мире эта книга произвела настоящий фурор, стала бестселлером! С её помощью считали мореплаватели и строители, военные и купцы, финансисты и инженеры. Вот как об изобретении логарифмов писал знаменитый французский астроном Пьер-Симон Лаплас:
«...это удивительное искусство, которое, позволяя за несколько дней сделать работу нескольких месяцев, вдвое продлевает жизнь астроному, избавляя его от ошибок, неизбежных при долгих вычислениях...»
Само название «логарифм» происходит от греческих слов «λόγος» (логос, «разум») и «ἀριθμός» (арифмос, «число») – то есть, в переводе с греческого, «логарифмы» – это «умные числа». А ведь и правда неглупые, а?
Кстати, именно на логарифмах основана работа «деревянного калькулятора», дедушкиной (и прадедушкиной) логарифмической линейки.
Никакого экрана, никакой клавиатуры, никаких кнопок, никаких программ и даже никакого электричества – просто две линейки, подвижная и неподвижная. И прозрачный «бегунок». А считать на такой линейке, между прочим, можно не хуже, чем на калькуляторе! Если хотите познакомиться с этим старинным (и незаслуженно забытым) искусством – напишите нам!
Вот многим не нравится, что русский язык засоряют иностранными словами. Некоторые предлагают их вообще запретить, а за употребление – штрафовать. А им отвечают, что «уборщица» – это, дескать, непрестижно и унизительно, а «менеджер по клинингу» – звучит гордо и «повышает мотивацию». И начались эти споры 400 лет назад, в царствование первых Романовых – Михаила Фёдоровича и Алексея Михайловича.
Эрик Пальмквист. Прием царем Алексеем Михайловичем иностранного посольства. XVII в.
Основной «заграницей» для России тогда была Польша – и тогдашние «западники» были «полонофилами», то есть любителями всего польского. Среди них в моде были и польская одежда, и польские кушанья, и – само собой! – польские слова. Какие? Ну, например: «забияка», «мужчина», «отчизна», «повидло», «уважать», «мещанин»...
При Петре Первом русский язык стал наводняться «бургомистрами» и «обер-шаутбенахтами», а в царствование Елизаветы Петровны на смену немецкой моде всерьёз и надолго пришла мода французская. Русский писатель Александр Сумароков в пьесе «Пустая ссора» ядовито высмеивал модные разговоры на «смеси французского с нижегородским»:
Деламида: Вы так мне флатируете, что уж невозможно, по чести. Дюлиж: Вы мне еще не верите, что я вас адорирую. Деламида: И я вас очень эстимую, да для того-то я и за вас нейду; когда б вы моим мужем стали, так хотя вы и многие калитэ имели, мне б вас больше эстимовать было уже нельзя. Дюлиж: Разве бы вы любить меня не стали? Деламида: Любить мужа, ха! ха! ха! Это посадской бабе прилично! Дюлиж: Против этого спорить нельзя, однако ежели б вы меня из адоратера сделали своим амантом, то б это было пардонабельно...
Пьеса эта была поставлена на сцене в 1750 году, а через полвека дошло до того, что дворяне стали и вовсе переходить на чистый французский. (Помните начало романа «Война и мир»?) В родном языке им попросту не хватало слов, чтобы выразить свои мысли! Известный факт: Александр Сергеевич Пушкин сначала выучился читать и писать по-французски – и лишь потом освоил русскую грамоту...
И вот в 1824 году министром народного просвещения в России был назначен... адмирал. Да-да-да, самый настоящий адмирал флота Александр Семёнович Шишков.
Александр Семёнович Шишков (1754–1841)
Шишков был не просто адмиралом – он был ещё и философом, литературоведом, писателем, литературным критиком – и яростным поборником чистоты русского языка. Над Шишковым многие посмеивались (в том числе и Александр Сергеевич), но тот был категоричен и непреклонен.
Вместо «галош» Шишков предлагал ввести слово «мокроступы». Вместо «тротуара» – «топталище». Злые языки утверждали, что фразу «франт идёт по бульвару в театр» «по-шишковски» следовало говорить так: «Хорошилище идёт по гульбищу в позорище».
И всё же в главном Шишков был несомненно прав:
«Между тем как мы занимаемся выдумкой слов и речей, нимало нам не свойствнных, многие коренные и весьма знаменательные российские слова невзирая на богатство смысла своего сделались для не привыкших к ним ушей странны и дики...»
И вот с этим мы очень и очень согласны. И поэтому в каждом номере «Лучика» играем с читателями в игру, в которой надо попробовать угадать, что такое «смятение», а что такое «замятье», или про какого человека говорят, что он «суетный», а про какого – что «ветреный».
Ну, а теперь про мат. В чём его опасность для мозга. Ну, что некультурно и можно от собеседника «в ухо выхватить» и получить сотрясение, это понятно, а в чём ещё?
Дело в том, что у матерных слов, как и у жаргонных, сленговых, есть одна особенность (которая, кстати, и делает эти слова такими привлекательными и прилипчивыми). Они «бьют по площадям» – охватывают сразу много значений. В этом, повторим, их сила, и в этом же заключается их коварство.
Представьте себе большой концертный рояль. У него 88 клавиш...
Да, у этого рояля всего восемьдесят две клавиши! Потому что это первый рояль работы мастера Себастьяна Эрара, 1821 год. Мы выпендрились (соригинальничали, надеясь произвести впечатление)
Нажатием каждой клавиши можно извлечь только один определённый звук. Допустим, ноту «до» четвёртой октавы. Или ноту «до» контроктавы. На большом рояле целых восемь по-разному звучащих «до» помещается… Благодаря этому на нём можно много всего сыграть.
А теперь представьте себе игрушечный рояльчик, у которого только двенадцать клавиш. Здесь одна клавиша отвечает за все ноты «до» сразу. Она «многозначная». Но что на таком инструменте можно сыграть? Да почти ничего. Только простенькую мелодию «настучать». Сложного произведения не получится.
А теперь представьте что «рояль» – это наш язык, наше сознание. Допустим, мы знаем слово «птица», но не знаем слов «курица», «орёл», «пташка», «желторотый», «певунья», «карга», «пернатое», «дичь»… Наш язык станет проще, но проще станет и наше мышление.
Мы будем раз за разом попадать в ситуацию, когда нам не хватает слов, чтобы выразить свои намеренья, мысли и чувства, а потом – просто-напросто перестанем испытывать «слишком сложные» чувства, которые нельзя выразить, а значит, они бесполезны в коммуникации с другими людьми – «не нужны». Наш эмоциональный интеллект тоже обеднеет и огрубеет, как и наше мышление.
Ну зачем, в самом деле, отличать вяз от ясеня, если и то, и другое – «дерево»? Зачем отличать кронштейн от втулки, если и то, и другое – «железка»? Зачем говорить в одной ситуации «предлагаю перекусить», а в другой «соблаговолите отобедать», если можно сказать «го похаваем»?
А когда столкнёшься со сложной жизненной ситуацией, просто скажи:
– Да я это… Чё-то как-то это, короче.
И получится как в стихотворении Чуковского: «Но он только «му» да «му», а к чему, почему – не пойму! – Повесьте, пожалуйста, трубку!»
Ну и главный вопрос, который, вероятно, мучит наших взрослых, искушённых опытом читателей: «Как быть и что говорить, если молотком по пальцу ударил».
Это форс-мажор, уважительная причина. Говорите, что получится, главное – чтобы вы знали, что говорить в тех случаях, когда не ударили! А их, согласимся, в нашей жизни бывает гораздо больше.
Если у вас есть дети, присоединяйтесь к «Лучику» – будем учиться думать и говорить по-русски вместе! Вот, ссылка на страницу подписки на журнал. А дорого, потому что он толстый, 80-страничный (и не только о языке). И обратите внимание: с 27 по 31 мая будет 30-процентная скидка на подписку.
Есть такая поговорка – «Всякий ответ к разуму хорош». Представьте себе картинку: идут взявшись за руки папа с сыном лет этак пяти-шести. Сынишка спрашивает:
– Пап, а пап, а почему летом жарко, а зимой холодно?
Папа начинает радостно объяснять:
– Дело в том, что наклон оси вращения нашей планеты, то есть наклон экватора к эклиптике, составляет двадцать три градуса. Это приводит к тому, что в течение года максимальный угол падения солнечных лучей изменяется...
Смешно? Немного смешно. Папа, кинувшись в научные объяснения (причём правильные, но об этом после), совершенно забыл о том, что сын не знает ни что такое «угол падения», ни «градус», ни «наклон оси», а уж страшное слово «эклиптика» – да его 99% взрослых людей не знает! И в данной ситуации папе, вполне возможно, стоило бы не вспоминать учебник, а проявить элементарную житейскую мудрость. Например, ответить так:
– Это потому, что зимой солнышко греет слабее, а летом сильнее.
Для пятилетки (ну, если он не вундеркинд) такого ответа будет вполне достаточно. Или мы не правы? Напишите нам, что думаете по этому поводу. Но потом.
А пока – вам-то всё-таки уже не пять лет! – давайте разберёмся с этим самым «наклоном оси». Климат Московской области непохож на климат Мурманска, климат Мурманска – на климат Краснодара, Воркуты или Владивостока. И уж совершенно не похож на климат какого-нибудь Найроби в Африке или Черапунджи в Индии. «Климат – это погода в той или иной местности в течение года» – так часто объясняют взрослые.
А по-гречески слово «клима» («κλίμα») означает... наклон! Какова же связь между погодой и наклоном?
Как совершенно правильно говорил папа в начале нашего рассказа, наклон экватора Земли к плоскости эклиптики – то есть той плоскости, в которой наша планета (и все остальные планеты нашей системы) вращается вокруг Солнца – составляет 23 градуса. Позаимствуем у Гарри Поттера его волшебную палочку (на время) и прикажем, чтобы этот наклон стал равным нулю! Что же произойдёт? Пустяковая, вроде, перемена?
Всего лишь через год вы не узнаете собственную планету! Смена времён года исчезнет совершенно. Никакой зимы – но и никакого лета! В Москве будет «вечная осень», прохладная и пасмурная. Снега в средней полосе России не будет – а питание многих наших рек и озёр снеговое, они начнут медленно пересыхать. Никакое сельское хозяйство в нашей стране станет совершенно невозможно – разве что в парниках с теплицами. Не будет ни пшеницы, ни огурцов, ни яблок. От недостатка солнечного тепла начнут медленно погибать леса – и уже лет через 30-40 на месте подмосковных рощ мы увидим самую настоящую тундру, заболоченную, с низкими кривыми деревцами и кустарниками.
На экваторе Земли установится невыносимо жаркий и сухой климат. Джунгли центральной Африки превратятся в саванны, а потом – в самые натуральные пустыни и полупустыни, невероятно сухие. Испаряющуюся от сильной жары влагу с поверхности океанов будет относить к северу и к югу, где она будет обрушиваться страшными ливнями – субэкваториальный и частично тропический пояса Земли превратятся в зону, в которой дожди не прекращаются никогда. Только представьте себе, каждый день круглый год – дождь, дождь, снова дождь...
Нетрудно догадаться, что при таком «климатическом безобразии» с сельским хозяйством по всему миру случится самая настоящая катастрофа. Где-то вместо лесов и лугов возникнут пустыни, где-то – вечно сырые непроходимые болота; мест, пригодных для земледелия, останется очень мало, и скоро на планете начнётся самый настоящий голод!
А если мы прикажем волшебной палочке, чтобы наклон земной оси стал как у Венеры – 177 градусов? Тогда случится то же самое безобразие – «вечная осень», только ещё и Солнце начнёт восходить не на востоке, а на западе. А садиться будет, наоборот, на востоке. Тоже не годится.
Можно попробовать взмахнуть палочкой и сказать, чтобы наклон земной оси стал 97 градусов, как на планете Уран. Тогда наша планета окажется как бы «лежащей на боку». Вот смеху-то будет, правда?
И не говорите! Всю зиму в Москве (да не только в Москве, вообще на всём северном полушарии) будет самая натуральная полярная ночь. Сильнейшие морозы и снегопады придут туда, где их никогда не было – даже в Средиземноморье, в Турцию и Италию. Снег начнёт выпадать даже в пустыне Сахара, в Алжире, в Судане! Весной вернётся смена дня и ночи, Солнце начнёт подниматься всё выше – и начнётся самый натуральный «полярный день». Летом Солнце вообще не будет садиться за горизонт! Уже в мае в Москву придёт ужасающая жара, а в июне даже на северном полюсе Солнце будет жарить так, как оно сейчас жарит летом где-нибудь в Индии. Зато на экваторе и летом и зимой будет очень холодно и сыро, как в современных Арктике или Антарктике, представляете?
Сами понимаете, такие экстремальные условия снова приведут к самой натуральной климатической катастрофе. Начнут таять ледники Гренландии и Антарктиды, уровень мирового океана начнёт стремительно повышаться. Будут затоплены многие прибрежные города. За шестимесячную зиму начисто вымерзнет вся теплолюбивая растительность. Огромная разница температуры между «зимним» и «летним» полушариями приведёт к сильнейшим ветрам, ураганам и бурям. Летом в Архангельск, Мурманск, Норильск и Воркуту придёт самая настоящая тропическая жара, перемежающаяся жуткой силы тропическими ливневыми дождями и грозами! И снова сельское хозяйство Земли ожидает полный коллапс – пшеница, посеянная весной, будет сожжена на корню тропическим Солнцем. Она просто не успеет поспеть.
«А если сделать наклон земной оси где-нибудь посрединке, допустим, в 45 градусов?» – спросите вы. Ну хорошо, давайте в этот раз с цифрами. Итак, мы изменяем наклон земной оси «всего» на 45 — 23 = 22 градуса. Допустим, мы живём в Москве, то есть у нас широта (северная) 56 градусов. Если наклонить земную ось на 45 градусов, то склонение Солнца будет изменяться от +45 градусов (в июне) до -45 градусов (в декабре). По несложной формуле из учебника астрономии определяем высоту Солнца в полдень 22 июня:
90 – (56 – 45) = 79. Солнце будет почти что в самом зените, как в экваториальной Африке или на Кубе! Летом в Москве будет жарко, как в пустыне Сахара и даже хуже!
В полночь:
90 + ((56 + 45) – 180) = 11. Солнце будет над горизонтом, причём довольно высоко!
Итак, летом в Москве будет полярный день, как в Мурманске, Норильске или Воркуте! Линия северного полярного круга «убежит» на 45-й градус широты. Полярный день и «белые ночи» будут наблюдаться даже... в Крыму! Лето в России станет намного жарче, в Санкт-Петербурге климат будет субтропический, как в Италии, а в Крыму – жаркий засушливый, как в нынешних Объединённых Арабских Эмиратах.
Теперь посчитаем то же самое для полудня 22 декабря, на начало астрономической зимы:
90 – (56 + 45) = -11. Солнце будет под горизонтом, на улице темнотища! Это самая настоящая полярная ночь!
В полночь:
90 + ((56 — 45) — 180) = -79. Солнце будет ну просто очень низко под горизонтом. Темнота хоть глаз выколи.
Таким образом, зимой климат в Москве станет очень суровым – примерно как на Шпицбергене или на Земле Франца-Иосифа на крайнем севере! Пятидесятиградусный мороз будет вполне себе обычным делом. Зона полярной ночи, опять-таки, дойдёт до Крыма, Ставрополья и северного побережья Каспийского моря! В Сочи зимой погода будет примерно, как сейчас (зимой) в Санкт-Петербурге, даже чуть более суровая.
Однако самые радикальные перемены в этом случае ждут не Россию. Суровые зимы со снегопадами и морозами придут в южную Францию, Италию, Грецию, северную Африку (тот же Египет). Климат на экваторе станет существенно более прохладным – причём и зимой, и летом! Ледники Гренландии и Антарктиды из-за сильно жаркого лета начнут интенсивно таять – а это означает, как вы помните, подъём уровня мирового океана и затопление прибрежных городов. Под водой окажутся и тот же Санкт-Петербург, и Нью-Йорк, и Лондон.
Изменятся морские течения, усилятся ветра, станут происходить чаще бури и ураганы... Короче говоря, приятного мало, снова – катастрофа глобального уровня. А вроде бы мы «всего-то» чуть-чуть поменяли наклон земной оси. В общем, вывод прост – «Пусть будет так, как есть!» (по-латыни эта поговорка звучит очень эффектно: «Синт аут сунт!» («Sint aut sunt»).
Журнал "Лучик" – детский журнал об искусстве, музыке, литературе, философии и науке. В журнале нет рекламы.
Простите поклонники лучика, но не мог пройти мимо. Я не буду разбирать каждый абзац этой статьи и комментировать его, только в конце приведу цитаты и свои комментарии к ним. На мой взгляд статья очень размыто отвечает на главный вопрос, поставленный в заголовке: как работает нейросеть? Я не в курсе на какую возрастную аудиторию рассчитан материал, но с учетом того, что в статье приведена функция y = kx + b, полагаю, я могу использовать немного математики.
Авторы предлагают аналогию вроде такой: нейросеть - это набор нейронов-чисел, а учатся они, если им показать много примеров. Прежде чем переходить к нейронам, я расскажу как они учатся. Это может показаться странным, но просто принцип обучения что в нейросетях, что в простых моделях машинного обучения одинаков. Для примера рассмотрим как раз уже приведенную функцию y = kx + b. Перенося ее на реальный мир можно взять в качестве примера задачу расчета стоимости жилья в зависимости от площади квартиры. Тогда y - стоимость, x - площадь квартиры, а решаем мы задачу т.н. линейной регрессии (это для сильных духом, постараюсь обходиться без терминов). Далее слайды, которые рисовал сам, простите.
Нужно получить модель, которая по набору иксов (метраж квартиры) дает правдоподобную стоимость. Точки на графике - наши реально существующие данные. Прямая - наша функция. Обучив модель, мы можем подать ей на вход один x и получить ожидаемый y.
В случае применения машинного обучения мы должны просто настроить неизвестные параметры нашей функции (k и b), чтобы получить оптимальную прямую. Главный вопрос - как? Для этого мы должны ввести понятие ошибки модели, чтобы понять, хороши ли она выполняет свою задачу. В нашем примере ошибка - это разность между предсказаниями и реальной стоимостью.
Ошибка модели - средняя разность между реальными значениями и предсказанными по модулю или в квадрате. Формальным языком: L = (y' - y)^2 / n, где n - количество примеров в данных, y' - предсказания, а y - реальные значения y для наших x).
Назовем функцию вычисления ошибок функцией потерь (точнее, она так и называется). Оптимальная модель будет выдавать минимальную среднюю разность, т.е. значение функции потерь будет минимальным. С оценкой определились, теперь переходим к процессу обучения. Для этого мы строим одну случайную прямую, считаем разность между предсказаниями и данными, определяем в какую сторону нам нужно сдвинуть нашу прямую, и сдвигаем, меняя наши k и b на небольшое значение. На какое - задается параметрами модели, обычно этот шаг небольшой, чтобы не перескочить наше оптимальное положение.
Случайная прямая
Один шаг обучения
Второй шаг обучения ( и так далее)
Небольшое отступление, которое можно пропустить. Пытливый ум спросит меня, а как мы определяем в какую сторону двигаться на каждом шаге? Отвечаю - просто смотрим на знак. Раньше я упомянул, что для расчета мы используем квадрат или модуль разностей для каждого отдельно взятого примера и усредняем их. Но тогда все наши расчеты будут положительными. Трюк в том, что при обучении мы используем не саму функцию потерь, а производную от нее или т.н. градиент (блин, обещал же без терминов). Геометрически производную можно изобразить так:
Производная - это тангенс угла наклона касательной к функции потерь в выбранной точке. Производная показывает направление роста функции.
На графике изображена функция потерь при разных значениях для нашей задачи - это парабола. Причем левая ветвь соответствует ситуации, когда мы задаем случайную прямую ниже наших точек, правая - выше. Наша задача попасть из красной точки в желтую, т.е. в минимум функции. Определив градиент, мы двигаемся в сторону уменьшения функции, достигая минимума. Математически, при расчете производной (dL = (2 / n) * (y' - y) * x) мы избавляемся от квадрата и можем получать отрицательные значения (и получаем в нашем примере) и тогда двигаемся в противоположную от знака сторону, прибавляя небольшие значения к нашим коэффициентам k и b.
Возвращаясь к объяснению на пальцах. В реальной жизни параметров, влияющих на стоимость квартиры больше, чем просто ее метраж. Тогда мы переходим в многомерное пространство. В реальной жизни у нас есть другие задачи, например то же отделение фотографий кошек от фотографий собак (задача классификации). Или генерация изображений. Но во всех этих задачах используется один и тот же принцип: мы должны определить функцию потерь - определить как мы вычисляем ошибки предсказаний модели и посчитать разницу между предсказаниями и реальными значениями и изменить значения коэффициентов, в зависимости от смещения предсказаний. Для задачи классификации животных (кошек и собак) мы на самом деле строим точно такую же прямую, просто эта прямая не проходит через точки в пространстве, а старается разделить их. Точками в этом случае могут выступать значения пикселей наших картинок, в таком случае, для обычного изображения кошечки, например, разрешением 512х512, мы работаем в 786432-мерном пространстве (потому что 3 (если используем цветное изображение RGB) * 512 * 512 = 786432) и подбираем в этом пространстве не прямую, а плоскость. И уравнение этой плоскости будет таким y = b + k1 * x1 + k2 * x2 + ... + k786432 * x786432. А функция потерь будет другая, но об этом я уже не буду говорить.
Теперь, когда мы поняли как мы учим, можно понять, что такое нейрон в нейросетях. На самом деле, ответ уже понятен. В процессе обучения мы настраиваем коэффициенты некой функции, нейрон тогда - это просто математическая функция от входных данных. Возвращаясь к статье лучика, на этой картинке нейрон - это как раз таки серый кружочек. А желтые - это значения входных данных. Они могут быть в то же время выходными данными с нейронов предыдущего слоя нейросети.
x1, x2 - значения входных данных, w1, w2, b - коэффициенты (я использовал выше k и b)
А сколько нейронов в нейросети? Много и зависит от архитектуры. Входной слой просто принимает данные и вычисляет взвешенную сумму, передавая результат на внутренние слои. На примере тех же изображений - количество нейронов на первом слое будет зависеть от параметров изображения, а именно от количества пикселей, но количество нейронов скрытых (внутренних) слоев мы устанавливаем сами. Мы можем поставить один нейрон на первый скрытый слой, который будет суммировать все данные, но толку от такой сети будет мало. На выходном слое количество нейронов зависит от нашей задачи. Для генерации нам нужно в каждом пикселе сетки предсказать реальное значение цвета, значит нейронов будет столько же, сколько пикселей нам надо получить. Если мы говорим о задаче классификации, то на выходном слое будет столько нейронов, сколько у нас классов - т.е. 2 для кошек/собак, например. Рассматривать необычные слои, вроде сверток, не будем, но они есть.
А зачем вообще нужны нейросети? Я уже выше описал, что все задачи так или иначе формализуются в набор известных функций. Но преимущество нейросетей в том, что они универсальны как раз за счет общих принципов построения. А взаимодействие нейронов на разных слоях позволяет расширить пространство настраиваемых параметров, что в свою очередь позволяет уловить связи в данных на разных уровнях. Например, разные слои нейросети, обученной на задаче классификации изображений, могут улавливать разные паттерны: например контуры, формы или цвета. Что как раз-таки используется для передачи стиля - мы замораживаем глубинные веса обученной нейросети (те, которые отвечают за пространство, форму и т.д.) и дообучаем на одном стилевом изображении только те слои, которые отвечают за "мазки кисти" и цвета.
Несколько примеров современных нейросетей и как они обучены:
Генерация изображений. Существует множество архитектур сетей для генерации. Причем я говорю о генерации без текстового описания. Например, т.н. GAN-ы. Они обучены генерировать изображения из шума, как и сказано в статье. Но они не обучаются специально запоминать формы, объемы, углы, цвета. Они обучаются генерировать изображение так, чтобы результат не отличался от данных, с которыми мы его сравниваем.
Векторизация текстов - я выделил этот пункт отдельно, т.к. все сети, работающие с текстами, должны уметь переходить от тестов к точкам в пространстве - векторам чисел. Описывать, как это происходит примерно так же долго, как я описывал линейную регрессию. Но для простоты скажем, что нейросети учатся предсказывать пропущенные в тексте слова, настраивая при этом числа в пространстве векторов, где каждый вектор соответствует отдельному слову. Это классическая задача классификации, а значит мы снова строим разделяющие плоскости.
Генерация текстов. И снова множество архитектур. Есть даже не нейросетевые (смотрите цепи Маркова, которые просто считают попарные вероятности слов в тексте). Нейросетевые пытаются предсказать одно следующее слово на основе предыдущих.
Генерация изображений по тексту. Здесь мы объединяем известные подходы и идея такая: раз мы уже знаем, как векторизовать текст, то будем использовать вектора текста как входные данные, а готовые изображения, как идеал, который нужно научится генерировать из шума. Для обучения таких моделей используется огромное количество картинок с описаниями к ним. Кстати, поэтому было много претензий к русскоязычным генеративным моделям, которые генерировали, например, американские флаги по запросу "Родина". Просто сложно создать большой датасет размеченных изображений своими силами, все используют открытые датасеты, и, например, переводят тексты и всячески обогащают данные.
Теперь можно перейти к самому интересному - цитаты из статьи.
Компьютерный нейрон – это просто... число!
Уже выяснили, что нет.
«А если собаки и кошки раскиданы вперемешку, а?» – спросите вы. Ну что ж, тогда нам может потребоваться не одна линия. И возможно не две и не три, а целый десяток или даже сотня. Важно понять, что рано или поздно мы сможем с помощью обыкновенных чисел и прямых «поделить» наш лист так, чтобы нейросеть уже знала наверняка – что именно она «видит», кошку или собаку, в чью именно область она «ткнула пальцем».
Я зацепился за это определение. Потому что если нам известно только 2 класса, то будет только одна "линия" на выходе. Да, каждый нейрон строит свое собственное решение, но он во-первых, не видит какую-то свою область данных, а во-вторых, его решение агрегируется с решениями всех остальных нейронов на выходном слое. То, что описано - это скорее работа классических деревьев решений, которые действительно нарезают пространство на сколько угодно областей.
Проблема номер один – для обучения нейросети нужно очень много информации. Чтобы научить нейросеть отличать кошку от собаки, ей нужно показать тысячи (лучше миллионы) самых разных кошек и собак. Воспитанник детского садика в возрасте трёх лет кошку с собакой не спутает, даже если видел их всего лишь пару раз в жизни...
С миллионом явный перебор. Кроме того, существуют техники дообучения, позволяющие переиспользовать обученные модели с гораздо меньшим набором данных.
Проблема номер два: нейросети совершенно не умеют анализировать собственные творения, объяснять, «что здесь нарисовано и почему», в частности, они не умеют считать! Из-за этого компьютерные изображения постоянно рисуют людей то с шестью, то с восемью пальцами. Или кошек то с тремя, то с пятью лапами.
Вообще-то, объяснять уже умеют. Но только узкий класс мультимодальных сетей (если мы обучим модель генерировать текст по изображению - обратная задача генерации изображения по тексту - то сможет). А с пальцами проблема в общем тоже пофикшена улучшениями архитектур и увеличением количества параметров моделей. Были бы деньги обучать такие модели.
Проблема номер четыре: нейросеть не умеет работать при нехватке информации, «достраивать недостающее». Скажем, человеческий детёныш, даже малыш, увидев кошачий хвост, торчащий из-под дивана, тут же уверенно «распознает» спрятавшегося котёнка и побежит ловить его! Нейросеть такое «неполное» изображение понять не в состоянии. Человек, исказивший внешность (скажем, надевший маску или загримированный) для современной нейросети опять же становится неузнаваемым.
Умеет и достраивает. И распознает и людей в масках узнает. Опять же, на это влияют как архитектура, так и способ получения данных. Всегда можно аугментировать изображения (например в части тренировочных изображений кошек и собак обрезать все, кроме хвостов и тогда такая нейросеть сможет по хвосту определить животное).
Проблема номер пять: нейросеть совершенно не понимает законов нашего мира – скажем, тех же законов оптики. Она никогда не сможет различить на картине человека – и его отражение в зеркале (для живого человека – задачка пустяковая). Она никогда не сможет различить человека или его лицо в кривом зеркале (как это делаем мы на аттракционе «Комната смеха» в городском парке, или когда разглядываем самих себя в новогодние шарики).
Аналогично - аугментация данных решает проблемы с кривыми зеркалами.
Проблема номер шесть: нейросети чрезвычайно чувствительны к разного рода помехам, дефектам, «шуму». Скажем, если на старой фотографии часть изображения залита грязью, чернилами, испорчена пятнами или царапинами, сильно выцвела, если карточка разорвана или разрезана напополам – уверенное узнавание тут же становится неуверенным и вообще ошибочным. Для человека сломанная на части кукла – всё равно кукла; для нейросети – это уже совершенно другой, неизвестный объект
Формально - да. Именно поэтому при обучении специально добавляют шум, аугментируют данные, выключают часть нейронов. И тогда модель справляется.
Проблема номер семь: нейросети на текущий момент ужасающе «однопрограммны». Если нейросеть настроена на распознавание лиц – она будет уметь только распознавать лица. Переучить её на написание текстов или музыки будет чрезвычайно сложно, часто вообще проще написать и обучить совершенно новую сеть. Если она умеет отличать квадраты от треугольников – даже не пробуйте попросить её отличить кошку от собаки или самолёт от парусной лодки...
В целом верно, но не совсем. В рамках одной моды и архитектуры - работа с текстом, или изображениями, или музыкой - переучить нейросеть не проблема. И даже мультимодальные модели существуют и активно развиваются. Но да, архитектура генератора музыки и генератора изображений и данные для этих сетей настолько разные, что просто в тупую подменить данные нельзя. Удивительно.
Проблема номер восемь: связи между компьютерными нейронами случайны, поэтому нейросети лишены запоминания созданных образов. На приказ «нарисуй мне дерево» нейросеть охотно откликнется и будет рисовать деревья снова и снова, но... каждый раз это будет «другое дерево». И если вы напишете команду «нарисуй мне такое же дерево, как в прошлый раз, только на берегу реки», нейронная сеть не поймёт вас. Она опять нарисует «новое случайное дерево».
Связывать случайность (кстати, они не случайны, а заданы архитектурой) связей между нейронами и неспособность запоминать созданный образ - максимально некорректно. То, что здесь описано, на самом деле решаемо. Но это решение за пределами архитектуры нейросети. Это как предъявлять претензии микроволновке, за то, что она не включила сама кнопку, типа, могла бы и запомнить. У нее нет инструментов запоминания результата, как нет у голой нейросети - она получает данные на вход, генерирует выход и все.
В целом, я догадываюсь, что изначальная статья была рассчитана на детей младшего школьного возраста. И я по размышлению выкинул из моего разбора несколько цитат, которые на самом деле оказались верны, просто сильно упрощают представление. И то, что я описал может быть не всем понятно и требует более глубокого погружения.
Часто кажется, что технический прогресс, изменяющий жизнь людей, замедлился – «все велосипеды уже изобрели». Что ж, в самом деле, велосипед современного типа – так называемый «ровер», он же «безопасный велосипед» – появился на свет ещё в XIX веке:
Велосипед Ровер 1885 года
А прогресс готовится совершить очередной огромный шаг в неизведанное. Речь о компьютерных нейронных сетях. Они уже умеют вполне прилично распознавать лица людей, писать и переводить тексты рисовать картины. Сочинять музыку – причём не только простенькую попсу, но и вполне себе «серьёзную», вот послушайте:
Если первые опубликованные результаты работы нейронных сетей, вызывали смех ввиду своей откровенной нелепости, то сейчас – напротив! – нередко вызывают у людей неподдельное восхищение и удивление: как?! Вот это сделал тупой компьютер?!
Иллюстрация к художественному рассказу, выполненная нейросетью
Это удивляет, радует – но одновременно вызывает кучу вопросов.
Раньше считалось, что компьютеры лишены таких человеческих качеств, как творческое воображение, вкус, инициатива... И вдруг оказывается, что они вполне способны на творческую работу! Причём делают её (в отличие от людей) быстро, дёшево, безропотно, не устают, не болеют. Что же это тогда получается?
Нейронные сети оставят без работы переводчиков и копирайтеров, журналистов и художников, композиторов, поэтов и писателей, а кто будет следующим? Экономисты, врачи, юристы, политики, архитекторы, учителя – все они тоже будут постепенно вытеснены компьютерными программами? А что останется людям?
Однако оставим этические вопросы. Давайте разберёмся, как эти нейросети устроены, как они работают?
Как устроена, из чего собрана нейронная сеть? Само название подсказывает нам, что она состоит из нейронов. Вот тут нас ждёт первый сюрприз! На самом деле нейроном называют нервную клетку человека или любого другого существа, у которого есть нервная ткань. Нервы – это «система управления» живым организмом, те самые «провода», по которым передаются самые разные команды: от относительно простых, типа «сжать пальцы / разжать пальцы», до невероятно сложных («вспомнить теорему Паппа-Гульдина»). По представлениям современных учёных, каждый нейрон может быть в двух основных состояниях – невозбуждённом и возбуждённом.
Внутри компьютера «всё не так». Компьютерный нейрон – это просто... число! Обыкновенное число – скажем, от нуля до единицы. Текст, звук, изображение, музыка – абсолютно любая информация внутри компьютера преобразуется в числовую таблицу – насколько большую, зависит от того, насколько сложная у нас информация. Скажем, для того чтобы «оцифровать» чёрно-белую фотографию квадратной формы, мы можем взять «решётку», «матрицу» размером восемь на восемь точек (всего 64 «нейрона»), а можем – 256 на 256 точек (то есть свыше 65 тысяч «нейронов»). При этом единица будет соответствовать белому цвету, ноль – чёрному, а остальные числа – различным оттенкам серого.
Изображение разбито на разное число датчиков-нейронов для анализа
Числа-нейроны внутри компьютера организованы в «слои», и эти слои связаны между собой многочисленными связями – будто невидимыми ниточками. При этом каждая связь – это ещё и математическая формула, простая, но очень важная. И у этой формулы есть свои параметры, свои «рычаги управления». Как педали «газ» и «тормоз» на автомобиле. Зачем они? Сейчас объясним.
Здесь взаимодействуют два компьютерных нейрона (выделены жёлтым)
Изначально нейронная сеть абсолютно глупа, она ничего не умеет и не знает. И все связи между нейронами одинаковы. Но вот начинается самое интересное – обучение нейросети! Да-да, компьютерная нейросеть, прежде чем заработать, должна пройти (иногда очень долгий и трудный) процесс обучения. Который в чём-то очень похож на обучение детей в школе.
Допустим, мы хотим научить нейросеть отличать нарисованный круг от нарисованного треугольника. С помощью специальной программы мы «показываем» нейронам первого слоя («сенсорам», «датчикам») самые разные круги и треугольники. Десятки, сотни, тысячи! Да что там тысячи – скажем, обучающий набор данных («датасет») Digi-Face 1M содержитсвыше миллиона фотографий человеческих лиц! И каждый раз мы как будто нажимаем на кнопку «это треугольник» или «это круг» – то есть как бы «говорим» сети, что именно изображено, «объясняем» ей. При этом сама нейросеть тоже пытается «угадать», что именно изображено – и все её нейроны как бы «голосуют», каждый за свой вариант.
Устройство более сложной многослойной нейросети
Помните, мы говорили о том, что каждая связь в нейронной сети – это формула с «рычагами управления»? И вот тут начинает работать известный людям (особенно школьникам) с давних времён «метод поощрения и наказания». Те нейроны, которые ошиблись, «проголосовали» за неправильный вариант ответа, «наказываются» – им не ставят двоек, но вот связи между ними ослабляются, и в следующий раз голос «двоечника» будет учитываться меньше. Те нейроны, которые «голосуют» правильно, напротив, «поощряются» – только вместо пятёрок их связи усиливаются (математически), при следующем «голосовании» их голоса будут слышны «громче» остальных. Наконец, после достаточного количества «уроков» (и если сама нейронная сеть построена правильно, то есть верно выбраны число нейронов и их слоёв), мы получаем готовую к работе обученную сеть. Уррра, заработала!
«Но как с помощью каких-то чисел можно узнавать предметы?!» – спросите вы. Это вполне возможно! Рассмотрим самый простой пример. Представьте себе плоскость, лист бумаги, в одной части которого нарисованы самые разные кошки, а в другой части – самые разные собаки. Процесс «угадывания» компьютерной нейросетью похож на выбор какой-нибудь точки на этом листе бумаги – если мы попали в область с кошками, то отвечаем «кошка». А если попали в область с собаками, отвечаем «собака». Но погодите! Ведь мы же можем взять линейку и просто провести через лист линию, которая отделит область с собаками от области с кошками! А любая прямая линия в математике записывается очень простым уравнением:
y = ax + b
Такое уравнение называется «линейным». У него всего лишь два параметра, два «рычага управления» – это числа a и b. Это означает, что абсолютно любую прямую линию на плоскости мы можем построить, зная всего лишь два числа! Когда мы только начинаем обучение нейросети, значения этих чисел «какие-то», взятые с потолка и совершенно неправильные. Но когда нейросеть в процессе обучения «тыкает и угадывает», она как бы немножечко изменяет эти числа, «сдвигает» так, чтобы в результате наша прямая точно отделила всех собак от всех кошек! И – вуаля! – наша задача решена, нейросеть умеет распознавать кошек и собак!
Подбирая положение линии, мы можем научиться отличать собак от кошек на листе бумаги
«А если собаки и кошки раскиданы вперемешку, а?» – спросите вы. Ну что ж, тогда нам может потребоваться не одна линия. И возможно не две и не три, а целый десяток или даже сотня. Важно понять, что рано или поздно мы сможем с помощью обыкновенных чисел и прямых «поделить» наш лист так, чтобы нейросеть уже знала наверняка – что именно она «видит», кошку или собаку, в чью именно область она «ткнула пальцем». Теперь понятно?
«Ну ладно, в отличить кошку от собаки с помощью математики это ещё можно поверить – скажете вы – но как быть с теми же самыми рисунками? С рисованием? С написанием музыки?». Будете смеяться – но снова «всё почти как в школе». Скажем, рисование. Сперва многослойную нейросеть снова обучают на уже существующих многочисленных картинах, фотографиях, образах. Учат её определять «контент» – то есть форму предметов, цветовую гамму, контуры, линии, углы... А затем подают «на вход» уже обученной системы что-нибудь «другое». Какую-нибудь каляку-маляку или «цветовой шум», хотя это может быть и вполне себе «нормальное» изображение – просто другое, «постороннее». И тогда система – её же научили этому! – начинает как бы находить внутри постороннего знакомое и усиливать. Примерно как мы, люди, глядя на облака, узнаём контуры знакомых животных – то верблюда, то льва, то собаки... В точности так же нейросеть может «применить» заученный «стиль» – то есть некую совокупность цветов, линий, форм и так далее – к заданной картинке. И получить, скажем, картину «Утро стрелецкой казни», написанную Ван Гогом. Или Эдвардом Мюнчем. Учёные, которые любят мудрёные слова, называют это «инцепционизм» (язык сломаешь, но тут мы не виноваты).
Применение стиля к изображению
С музыкой всё даже проще, чем с изображением – это красок может быть сотни и даже тысячи, а нот всего семь (точнее, двенадцать, но это тоже немного). Сперва мы обучаем нейросеть – то есть учим её распознавать ритмический рисунок, мелодию, движение нот – вверх, вниз, скачками или плавно. А затем берём обычный шумовой сигнал, «белый шум», применяем к нему нашу нейросеть – и вдруг получаем нечто музыкальное на выходе! Само собой – это «нечто» будет именно в том стиле, на который нашу нейросеть «натаскивали». Если нейросеть «учили» на рок-музыке – будет рок. Если на рэпе – то непременно будет рэп. Но уже какой-то «свой», не точная «копия», а нечто среднее, где будут те или иные элементы от каждого «урока». Не так ли работают и живые композиторы, кстати?
Применение стиля к изображению нейросетью
...Или поэты с писателями? Ведь что такое, например, литературная пародия? Когда к одному тексту применяют «стиль» определённого автора? Скажем, как в книге «Парнас дыбом» – где известное всем детское стихотворение «Жил-был у бабушки серенький козлик» как будто «писали» разные авторы. То Иван Андреевич Крылов:
У старой женщины, бездетной и убогой, Жил козлик серенькой, и сей четвероногой В большом фаворе у старушки был...
То Александр Сергеевич Пушкин:
Одна в глуши лесов сосновых Старушка дряхлая жила, И другом дней своих суровых Имела серого козла...
То Алексей Константинович Толстой
А уж кто бы нам песню-былину завёл, Чтоб забыть и печаль и нелады. Как живали старуха и серый козёл. Ой, ладо, ой, ладушко ладо!
Вот и нейронная сеть: её обучают на определённом материале (скажем, на текстах Пушкина). И она как бы заучивает его характерные обороты, подбор слов, длину фраз – в общем, «стиль». А затем обученную сеть запускают на совершенно другом материале – да хоть на репортаже с футбольного матча! Неожиданно интересная штука может получиться, не так ли?
«Что же тогда – спросите вы – нейронные сети вообще могут всё?». Ну, не знаю, огорчим мы вас или обрадуем, но... нет, не всё. Чего то нейросети не умеют «пока», и возможно в дальнейшем они этому научатся. А что-то для них недоступно в принципе. Итак, где же у нейросетей проблемы?
Проблема номер один – для обучения нейросети нужно очень много информации. Чтобы научить нейросеть отличать кошку от собаки, ей нужно показать тысячи (лучше миллионы) самых разных кошек и собак. Воспитанник детского садика в возрасте трёх лет кошку с собакой не спутает, даже если видел их всего лишь пару раз в жизни...
Проблема номер два: нейросети совершенно не умеют анализировать собственные творения, объяснять, «что здесь нарисовано и почему», в частности, они не умеют считать! Из-за этого компьютерные изображения постоянно рисуют людей то с шестью, то с восемью пальцами. Или кошек то с тремя, то с пятью лапами.
Кошки с неправильным количеством лап – это обычное дело для нейросетей
Проблема номер три: для работы нейросеть должна быть обучена, у неё отсутствует фантазия. Я уже упоминал про свой рассказ «Велозавр и велотавры», для которого нейронная сеть нарисовала очень хорошую иллюстрацию с мальчиком на велосипеде. Но вот когда я «попросил» систему нарисовать того самого велозавра или велотавра, она... она просто не понимала, о чём идёт речь! И упорно рисовала мне обыкновенного велосипедиста на дороге. Догадаться «скрестить» велосипед с динозавром или велосипед с кентавром? Это было вне её понимания! В общем, нарисовать бегемота нейросеть сумеет. А вот бармаглота из сказки про Алису – нет.
Проблема номер четыре: нейросеть не умеет работать при нехватке информации, «достраивать недостающее». Скажем, человеческий детёныш, даже малыш, увидев кошачий хвост, торчащий из-под дивана, тут же уверенно «распознает» спрятавшегося котёнка и побежит ловить его! Нейросеть такое «неполное» изображение понять не в состоянии. Человек, исказивший внешность (скажем, надевший маску или загримированный) для современной нейросети опять же становится неузнаваемым.
Проблема номер пять: нейросеть совершенно не понимает законов нашего мира – скажем, тех же законов оптики. Она никогда не сможет различить на картине человека – и его отражение в зеркале (для живого человека – задачка пустяковая). Она никогда не сможет различить человека или его лицо в кривом зеркале (как это делаем мы на аттракционе «Комната смеха» в городском парке, или когда разглядываем самих себя в новогодние шарики).
Проблема номер шесть: нейросети чрезвычайно чувствительны к разного рода помехам, дефектам, «шуму». Скажем, если на старой фотографии часть изображения залита грязью, чернилами, испорчена пятнами или царапинами, сильно выцвела, если карточка разорвана или разрезана напополам – уверенное узнавание тут же становится неуверенным и вообще ошибочным. Для человека сломанная на части кукла – всё равно кукла; для нейросети – это уже совершенно другой, неизвестный объект.
Проблема номер семь: нейросети на текущий момент ужасающе «однопрограммны». Если нейросеть настроена на распознавание лиц – она будет уметь только распознавать лица. Переучить её на написание текстов или музыки будет чрезвычайно сложно, часто вообще проще написать и обучить совершенно новую сеть. Если она умеет отличать квадраты от треугольников – даже не пробуйте попросить её отличить кошку от собаки или самолёт от парусной лодки...
Проблема номер восемь: связи между компьютерными нейронами случайны, поэтому нейросети лишены запоминания созданных образов. На приказ «нарисуй мне дерево» нейросеть охотно откликнется и будет рисовать деревья снова и снова, но... каждый раз это будет «другое дерево». И если вы напишете команду «нарисуй мне такое же дерево, как в прошлый раз, только на берегу реки», нейронная сеть не поймёт вас. Она опять нарисует «новое случайное дерево».
У нейросети неплохо получаются пейзажи, а вот в парусах она разбирается "приблизительно"...
Однако вернёмся к началу нашего разговора. Задайтесь вопросом – а способна ли нейросеть, например, придумывать законы? И ответ здесь будет скорее «да», чем «нет». Существует огромное количество законов, юридических документов – если «пропустить» их все через достаточно сложную нейросеть, она вполне будет в состоянии «заговорить» тягомотным и малопонятным юридическим языком, начать «штамповать» циркуляры и распоряжения... Но захотите ли вы жить по законам, которые штампует компьютер?
Способна ли нейросеть ставить диагноз больному в поликлинике и назначать лечение? Снова «да» – но врач-человек несёт ответственность за принятое решение. У нейросети никакой ответственности (а уж тем более ни совести, ни сострадания) быть не может – если она вдруг ошиблась, то... ничего. Ну, ошиблась и ошиблась, это же компьютер, а что человек пострадает при этом – а кого это волнует? Захотите ли вы лечиться у таких врачей?
С одной стороны как здорово сказать компьютеру – «слушай, Алиса, нарисуй мне стрекозу на цветке!». И – ррррраз! – держите, пожалуйста, рисунок. Но с другой стороны – неужели рисовать самому настолько тяжело и неинтересно, что обязательно нужно перепоручать это дело компьютеру? А?
В журнале «Лучик» мы рассказываем:
Почему Земля вращается? Как устроена бесконечность? Как измеряют расстояние до звёзд? Что такое энтропия, и грозит ли вселенной тепловая смерть? Что такое гравитация и гиперпространство, и почему время нам только кажется?
«Настоящий художник должен быть правдив», – говорит учительница рисования в фильме «Приключения Электроника». Ах, если бы!..
Сейчас мы рассмотрим две военно-исторические картины и сравним то, что на них изображено, с тем, что известно об этом событии историкам.
История первая. Бреда
Во время войны за независимость Нидерландов, в 1624 году, испанские войска под командованием капитан-генерала Амброзио Спинолы осадили голландскую крепость Бреду. На тот момент это была одна из самых современных и великолепно укреплённых крепостей Европы. Испанская армия незадолго до этого потерпела несколько досаднейших военных неудач, и взятие Бреды для неё было крайне важным. Крепость оборонял гарнизон из 5 000 солдат и добровольцы из местного населения. Испанское войско насчитывало около 80 000 солдат, как испанцев, так и наёмников – в основном немцев.
Диего Веласкес. Сдача Бреды. 1635 г.
Защитники Бреды мужественно оборонялись почти целый год. Командующий голландскими войсками Фредерик Оранский несколько раз пытался деблокировать Бреду, однако силы испанцев были слишком велики. Кроме того, защитники крепости получили известие о смерти правителя Нидерландов, Морица Оранского. Запасы продовольствия и боеприпасов подходили к концу. Наконец, губернатор Бреды Юстино Нассау согласился на переговоры о сдаче.
Нассау поставил испанцам три условия: во-первых, защитники покидали крепость строем, с оружием в руках, под барабанный бой. Во-вторых, жителям города предоставлялось право исповедовать ту религию, которую они захотят (испанцы были католиками, а большинство голландцев – протестантами). В-третьих, испанцы не должны были грабить город. Последнее условие вызвало ярость у наёмников-немцев: как же так, они останутся без добычи! Едва не поднялся бунт в войске... Тогда Амброзио Спинола и испанские офицеры поклялись заплатить наёмникам из собственных денег – лишь бы Бреда стала испанской! 5 июня 1625 года Юстино Нассау во главе вооружённых солдат и ополчения вышел из ворот города и вручил ключи от крепости Амброзио Спиноле. Именно этот момент изображён на картине Веласкеса «Сдача Бреды».
А теперь посмотрите ещё раз внимательно – как художник изобразил победителей, как – побеждённых…
История вторая. Псков
Во время Ливонской войны, в 1581 году, польско-литовские войска под командованием короля Стефана Батория вторглись на русскую территорию и осадили Псков. Стефан Баторий был по происхождению венгром и не знал ни слова по-польски (с подданными он говорил на латыни), однако был блестящим и энергичным полководцем. Всего лишь за 5 лет он реформировал устаревшую польскую армию и отобрал у русских все завоевания в Ливонии (современная Прибалтика). Для того, чтобы окончательно разгромить армию царя Ивана Грозного и вторгнуться в коренную Россию, нужно было сперва захватить город Псков – тоже мощную, прекрасно защищённую крепость, ничем не хуже Бреды.
В составе армии, состоящей не только из польских рыцарей, но и из немецких наёмников (в те времена без немецких наёмников не обходилась ни одна война, заметьте!) были и сам король, и его главнокомандующий, коронный гетман Ян Замойский. Первый штурм города состоялся 8 сентября 1581 года – русский гарнизон и жители города ожесточённо сражались, и польско-литовское войско было вынуждено отступить. Осенью было проведено ещё несколько попыток штурмовать стены и башни Пскова – но защитники оборонялись мужественно и отражали все атаки врага.
Карл Брюллов. "Осада польским королем Стефаном Баторием в 1581 году". 1843 г.
Наступила суровая зима; король Стефан вместе с немецкими наёмниками уехал в город Вильно, оставив вокруг так и не взятого города осаду из поляков и литовцев во главе с Замойским. Польские рыцари, жестоко страдающие от зимних холодов, были на Замойского злы, дело пахло открытым неповиновением. Нужно было или снимать осаду – или начинать с русскими мирные переговоры.
Ян Матейко. «Баторий под Псковом». 1873 г.
В 1582 году был заключен Ям-Запольский мирный договор: Россия теряла все завоевания, сделанные в Ливонской войне, однако смогла сохранить свои исконные земли – Новгород, Смоленск, Москву. Произошло это прежде всего благодаря отважным защитникам Пскова.
Что же мы видим на картине Яна Матейко? На ней под сенью златотканого шатра гордо сидит победоносный король Стефан Баторий – справа от него стоит гетман Замойский в красном жупане, а слева – папский легат Антонио Поссевино в чёрном облачении. Русские, униженно прося о мире, бухаются королю в ноги, боярин-посол Григорий Нащокин плачет и еле стоит, а Киприан, архиепископ Полоцкий и Великолуцкий, стоя на коленях, протягивает королю Стефану хлеб-соль...
Всё это враньё от начала и до конца! Например, архиепископ Киприан героически погиб (или был казнён поляками) ещё в 1579 году, при осаде Полоцка. Вместе с последними защитниками города он укрылся в соборе Святой Софии, дальнейшая судьба его неизвестна.
Боярин Нащокин вообще никогда не был в осаждённом Пскове, в 1581-82 годах он был в Москве. С королём Стефаном он встречался ранее, в 1580 году, но ни одна хроника не говорит о том, что при виде короля у него тряслись ноги – напротив, тогдашние русские дипломаты были воспитаны так, чтобы везде «блюсти царёву честь». Настолько, что в западной Европе русских дипломатов считали слишком гордыми и заносчивыми!
Псков Стефан Баторий не брал, из-под крепости он уехал несолоно хлебавши с первыми же морозами, никто ему никаких ключей от города (и уж тем более хлеба-соли!) на коленях не предлагал... Вот такая вот чистой воды «фантазия художника». Любопытно, правда?
Как устроена бесконечность? Сколько в лошади лошадиных сил? Почему журнал по-английски – магазин? Как готовили картошку на её родине – в Южной Америке?
Для начала давайте обратим внимание вот на какой простой факт: в популярной музыке продолжительность произведений меньше. Почему? Когда в 1887 году придумали грампластинку, на неё помещалось не больше четырёх минут музыки. Нельзя было записать на пластинке оперу или балет – только отдельную арию, дивертисмент или песню.
Зато пластинки хорошо продавались, и композиторы быстро поняли, что сочинять «что-нибудь короткое» выгоднее, чем трудиться над большими произведениями.
Но проблема в том, что в «чём-нибудь коротеньком» помещается меньше информации. А ведь музыка – это информация. Когда мы угадываем предстоящий мелодический ход, наш мозг, сделавший это, получает «эмоциональное подкрепление» – стимул к работе. А когда не угадываем, мы «удивляемся», узнаём, что «оказывается, и так можно». В процессе этого в мозгу образуются новые нейронные связи – проще говоря, человек умнеет. Повторим:
Когда человек удивляется, он умнеет
Кстати!.. В одном из экспериментов маленьким детям возраста от 8 до 16 месяцев показывали разные жизненные ситуации (разыгранные с помощью актёров). Реакцию малышей наблюдали с помощью приборов – замеряли продолжительность их сосредоточенного внимания.
Эксперимент показал, что ситуации, в которых кто-то большой и сильный забирает что-нибудь у маленького и слабого, задерживают внимание малышей на срок в полтора–два раза меньше, чем ситуации, в которых большой уступает маленькому и делится с ним. То есть эту ситуацию дети дольше обдумывали – а значит, происходило образование новых нейронных связей.
О чём это говорит? Агрессия, использование своего преимущества себе во благо и во вред другому воспринимается маленьким "безгрешным" существом как нечто "естественное", само собой разумеющееся. А вот альтруизм, доброта, дружелюбие, помощь слабейшему – "заставляют задуматься", а значит... поумнеть. Вывод?
Его давным-давно сделал Николай Васильевич Гоголь:
«Ум идёт вперёд, когда идут вперёд все нравственные силы в человеке, и стоит без движенья и даже идёт назад, когда не возвышаются нравственные силы»
Но мы отвлеклись. Итак, музыка – это информация, – не только "услаждение души," но и "пища для ума". Сравним теперь, сколько такой информации помещается в опере, в симфонии, в скрипичном или фортепианном концерте – и сколько в песне… Современные популярные произведения чаще построены на повторе одной и той же коротенькой музыкальной фразы – совсем коротенькой! Как мысль новорожденного Буратино…
Классическая музыка тоже начинается с какой-нибудь простой музыкальной фразы, то есть «темы». Например, всем известна «тема судьбы», с которой начинается 5-я симфония Бетховена. Её даже любят вставлять в мультфильмы, выпуски «Ералаша» или любительские видеоролики. В этой теме всего лишь 8 нот! Она простая, легко запоминающаяся, характерная:
Современный исполнитель обычно на этом и останавливается: «о, какая прелесть! да это готовый хит!». И начинает бесконечно повторять, «крутить» найденную короткую мелодию:
Ля-ля-ля-ля-ля Весь день я напеваю! Ля-ля-ля-ля-ля Весь день я повторяю!
А Бетховен? В самом начале симфонии он как бы «показывает» слушателю главную тему (музыканты называют это словом «экспозиция»). А затем начинает её изменять – её играют разные группы инструментов, то быстрее, то медленнее, то в верхнем регистре, то в нижнем, тема начинает усложняться, развиваться, раздваиваться, даже «маскироваться» и «прятаться», в ней появляются всё новые и новые «краски», «оттенки»... Затем в музыке (не всегда, но очень часто) появляется вторая тема, «побочная». Она тоже не «стоит на месте», она развивается, изменяется, «живёт», начинает «конкурировать» с главной темой, переплетаться, соревноваться...
В классической музыке главная тема (мелодия) и целое произведение соотносятся примерно, как лист и целая крона дерева
Точно так же писали музыку и Бах, и Моцарт, и Чайковский, и другие классические композиторы. Умение слушать классическую музыку, умение ею наслаждаться – это во многом умение услышать и запомнить хотя бы главную тему, а затем научиться «узнавать» её под разными «масками». На самом деле это интереснейшая игра – композитор, как фокусник, сперва показывает нам предмет, а потом хитро его прячет. И какое это наслаждение, когда ты вдруг понимаешь, что «да вот же он!», и восхищаешься, как искусно автор «преобразил» свою стартовую «тему».
У Иоганна Себастьяна Баха было… двадцать родных детей!
Если хочешь быть умным, упражнять мозг чтением недостаточно. Надо познавать мир всеми доступными способами нагружать все «сенсорные каналы». Обязательно надо смотреть и слушать!
Хотите попробовать? Давайте распишем тренировку на три дня.
ПЕРВЫЙ ДЕНЬ. Иоганн Себастьян Бах
1. «Шутка».
2. Прелюдия и фуга №1 а 4 voci до мажор.
Как, ничего? Не страшно? Тогда добавьте ещё:
Георг Гендель, «Сарабанда».
И – отдыхать!
ВТОРОЙ ДЕНЬ. Пробуем без мультиков. Амадей Моцарт
1. «Маленькая ночная серенада».
2. «Аллилуйя».
3. «Лакримоза».
Если хотя бы одно из этих произведений вам понравилось, вы молодец!
ТРЕТИЙ ДЕНЬ. Людвиг ван Бетховен
1. Алегретто из симфонии № 7, опус 92.
2. Увертюра к спектаклю «Эгмонт».
3. «Ода к радости».
У вас прекрасные задатки, если получилось прослушать эти девять отрывков!
Напишите нам о своих впечатлениях! И если захотите, мы продолжим тренировки в следующих статьях.
Но помните ДВА ПРОСТЫХ ПРАВИЛА: 1. Слушать надо, не отвлекаясь, не занимаясь никакими другими делами. 2. Старайтесь угадывать, а что будет дальше? Куда «повернёт» мелодия? Или – закройте глаза и представляйте себе разные картины.
Это был материал из журнала «Лучик». В том же номере мы рассказывали:
Почему люди обманывают?
Почему пользоваться сленгом (а тем более - матом) вредно?
Зачем человеку ум, если от него не разбогатеешь?
Продолжение цикла "Такие разные классики" – романтизм
Такую задачу поставил Little.Bit пикабушникам. И на его призыв откликнулись PILOTMISHA, MorGott и Lei Radna. Поэтому теперь вы знаете, как сделать игру, скрафтить косплей, написать историю и посадить самолет. А если еще не знаете, то смотрите и учитесь.
Начнём с анекдота. Приходит как-то Петька к Василий Иванычу весь грязный с ног до головы. Василий Иваныч спрашивает: – Ты где был? Петька отвечает: – В школу ходил! – А почему грязный такой? – Велели квадратный корень отыскать. Весь огород перерыл, ни одного квадратного не попалось!
Анекдот, конечно детский, но давайте подумаем: а собственно говоря почему именно корень? Да ещё и квадратный?
Может, это только по-русски так? А на другом языке как-нибудь иначе? Та нет же – и по-английски «square root» – «квадратный корень». И по-арабски «джызр тарбии» – снова квадратный и снова корень. Даже по-японски «хейхокон» – опять тот же «квадратный корень»...
А ещё у этого «квадратного корня» непонятный значок – то ли галочка, то ли птичка. Ни грамма не квадратная, и на корень тоже непохожая! Где же логика?
Начнём со значка. Эта странная «птичка» – на самом деле сильно «переделанная» латинская буква «r». Потому что по-латыни «корень» – «радикс», «radix». (Между прочим, от того же корня происходят наши слова «редиска» и «редька».)
В XVI веке математики для обозначения корня так и писали, буквами:
Но это было сложно и долго. Математикам надоело, и они стали писать сокращённо:
Ну а потом буква «r» превратилась в привычную школьникам «птичку с чёрточкой»:
Осталось понять, почему же всё-таки «корень». И почему квадратный. Для этого из XVI века перенесёмся в совсем-совсем далёкое прошлое, примерно на две тысячи лет назад, во времена выдающегося древнегреческого математика Пифагора.
В те времена цифр – то есть специальных значков для записи чисел, как наши 1, 2, 3 и так далее – ещё не придумали. А для того, чтобы производить действия с числами – скажем, считать деньги, имущество или что-то ещё – использовали «счётные бобы» или «счётные камушки». Видишь у человека на поясе мешочек со счётными бобами? Сразу видно – математик идёт!
Отсчитывая числа с помощью бобов или камешков, люди очень быстро сообразили, что некоторые числа – особенные. Потому что из них можно выкладывать красивые фигурки. Скажем, число 4. Из четырёх камушков получается красивая фигурка – квадрат.
Или число 9 – из них тоже можно выложить красивый правильный квадрат:
Или число 16 – тоже получается очень красивый квадрат!
Такие числа последователи Пифагора – пифагорейцы – стали называть «фигурными» или «квадратными».
Квадратных чисел было не так много, поэтому Пифагорейцы их очень почитали. Пифагор и его ученики вообще считали, что числа – это созданные богами «зёрна истины», и поклонялись числам, как богам.
Ф.А. Бронников. "Пифагорейцы поют гимн восходящему солнцу"
Наблюдая за фигурными числами, пифагорейцы выяснили, что у каждого квадратного числа есть «корень» – то есть ряд камешков, расположенный в самом низу. У квадратного числа 4 «корнем» будет 2. У квадратного числа 9 корнем будет 3. У числа 16 корнем будет 4:
Вот отсюда-то и возникло название «корень квадрата», «квадратный корень» – по преданию, его придумал сам Пифагор. Квадратные числа пифагорейцы связывали со стихией земли.
А бывают ли другие фигурные числа, не квадратные? Конечно же бывают. Например, число 12 пифагорейцы называли «прямоугольным». Почему? Потому что из 12 камешков не получится сложить правильный квадрат, а вот прямоугольник – можно!
Причём аж целых четыре разных варианта – прямоугольник 6 на 2, прямоугольник 4 на 3, прямоугольник 3 на 4 и прямоугольник 2 на 6. В причудливой «математической религии» Пифагора прямоугольные числа «заведовали» стихией воды.
Стихией огня в этой системе управляли – уже догадались? – правильно, треугольные числа. Скажем, мы можем сложить правильный треугольник из 3 камушков. А ещё – из 6 камушков. А ещё – из 10 камушков. И так далее.
«Десятка» была самым священным, самым почитаемым числом среди учеников Пифагора, а сложенный из 10 камушков треугольник («тетраксис») был одним из «тайных знаков» пифагорейцев, ему приписывались самые разные магические свойства. С древних времён но нас дошла даже молитва Пифагорейцев:
Благослови нас, о божественная Тетраксис, Та, от которой рождены боги и люди, Начинающаяся с пречистой монады [единицы] Завершающаяся священной четвёркой Рождающая матерь всего живущего Всеохватывающая, изначальная, безупречная Священная десятка, предводительница всего!
Вам это может показаться редкостным бредом, но пифагорейцы относились к этому очень даже всерьёз. Эту молитву нужно было читать каждый день, а сам Пифагор для учеников был полубогом, великим пророком, «Прометеем математики», «принёсшим Тетраксис людям».
Но вернёмся от молитв к числам. Всё те же самые неутомимые ученики Пифагора тонко подметили, что все треугольные числа можно получить, если складывать все натуральные числа, идущие друг за другом, смотрите:
Первое треугольное число 3 равно сумме чисел 1 + 2
Второе треугольное число 6 равно сумме чисел 1 + 2 + 3
Третье треугольное число 10 равно сумме чисел 1 + 2 + 3 + 4
Четвёртое треугольное число 15 равно сумме чисел 1 + 2 + 3 + 4 + 5...
и так далее!
Наконец, были и четвёртые фигурные числа, которым соответствовала стихия воздуха. Это были удивительные числа, из которых нельзя сложить никакую фигуру, кроме «палочки». Скажем, число 11 или число 13. Попробуйте сложить из такого количества счётных камешков квадрат. Или треугольник. Или прямоугольник. Ничегошеньки не выйдет! Только «палочка».
В современной математике такие числа называют «простыми», или «неразложимыми на простые сомножители».
Вы, вероятно, знаете, что в магической системе обязательно должен быть загадочный «пятый элемент», «квинтэссенция», «божественный эфир». Есть огонь, воздух, земля, вода – а что насчёт пятого элемента?
«Пятым элементом» стали (неудивительно, правда?) пятиугольные числа. Первое пятиугольное число («пентаграмма») – это, само собой, 5. Второе пятиугольное число – 12. Третье пятиугольное число – 22.
Древнегреческие математики даже смогли открыть, что каждое следующее пятиугольное число состоит из «корня» и трёх треугольных чисел! Скажем, четвёртое пятиугольное число «конструируется» состоит из числа 5 («корня») и трёх треугольных чисел предыдущего порядка (то есть 4 – 1 = 3, а «третье треугольное число» у нас, как мы помним, 10). Получаем 3 х 10 + 5 = 35.
Для современного человека такие свойства – упражнение ума, развитие воображения, школьная задачка. Но Пифагорейцам всё это казалось наполненным страшно глубоким смыслом и магическими свойствами. А что делать? Всё-таки две с половиной тысячи лет назад дело было. Магия исчезла, а вот «квадратный корень» остался...
Это была статья из журнала «Лучик». Познакомиться с журналом можно по ссылке. В мартовском номере:
Зачем человеку подвиг? О Сикстинской Мадонне и Александре Матросове
Мойдодыр, или Почему мальчиков одевали в платья
Русские дети. Читаем стихотворение Некрасова и думаем
Почему над мудрецами, ощупывающими слона, смеются глупцы?
Подписаться на мартовский номер «Лучика» можно до 20 февраля