За машинное обучение замолвите слово
Мы переживаем бум методов машинного обучения и может показаться, что нет такой задачи, которую не решила бы стомиллионслойная сеть, будь у нее бесконечное время и безграничный набор данных. Машинное обучение показывает прекрасные результаты при работе с изображениями, речью. Нейросети умеют "вспоминать" ответы на примеры, нарисованные на бумаге и предсказывать, куда полетит теннисный шарик еще до того, как он коснулся ракетки.
Говорят, что глубокое обучение, генетические алгоритмы и прочие новомодные дисциплины могут решать задачи любой сложности. И по видимому это действительно так. Если конечно у вас есть очень много времени и все данные этого мира.
Один из наиболее фундаментальных методов машинного обучения — генетический алгоритм. Как вы, несомненно знаете, великий генетический алгоритм матери природы работал два миллиарда лет, прежде чем появилась многоклеточная жизнь. Восемьсот миллионов лет спустя генетический алгоритм построил вид, представитель которого набирает данный текст. Есть ли у нас терпение на три миллиарда лет вычислительных экспериментов и можем ли мы позволить себе пойти этим путём?
Кибернетический корень зла
Кибернетика — сложная междисциплинарная область знаний. В своей книге "Кибернетика, или управление и связь в животном и машине" Норберт Винер указывает на то, что работы по кибернетике требует понимания биологии, инженерии, математики и информатики.
"Если трудность физиологической проблемы по существу математическая, то десять не сведущих в математике физиологов сделают не больше, чем один не сведущий в математике физиолог", — пишет Винер.
В кибернетике всё переплетено. Ответ на вопрос, возникший в одной области знаний лежит в другой. Кибернетика совмещает несовместимое, впихивает невпихуемое и находит общность там, где на первый взгляд общности быть не может. Сказано "Что могут делить кусок кремния и комок биологической слизи?". Ответ на этот вопрос даёт кибернетика.
Чтобы понять, где мы находимся и чем вообще занимаемся недостаточно обзора одного предмета. Чтобы понять, как пользоваться методами кибернетики применительно к объекту, необходимо исследовать аналоги в живой природе, понять, почему они именно такие, какими их создала эволюция. Необходимо исследовать опыт техники и понять, почему наши реализации именно такие, какими их создала инженерная традиция. Необходимо обратиться к математике и установить, на каких общих принципах строятся технические и биологические варианты.
Так что же может сказать кибернетика про обучение вообще и нейросети в частности?
Не те нейросети. Всё ли нейросети учатся?
Слово нейросеть в приложении к машинам и понимании современного обывателя ассоциируется с обучением. Нейросети идут бок о бок с методом обратного распространения ошибки и прочими техниками из теории оптимизации. В коллективном воображении бытует мысль, что искусственные нейронные сети имитируют работу биологических нейронных сетей. Но так ли работает нервная система? Действительно ли она постоянно что-то оптимизирует?
Ведь что такое биологическая нейросеть? Биологическая нейросеть, это вычислительная система, управляющая живым организмом. Нейросеть получает данные с рецепторов и выдаёт команды на системы, взаимодействующие с внешней и внутренний средами. Такая система вполне может работать без обучения, если она правильно настроена под окружающую среду. Как и бактерии, низшие многоклеточные не учатся. Не учатся те у кого нет нервной системы, не учатся те, у кого она есть. Изменчивость их поведения определяется только пятой естественного отбора. Если эти организмы попадают в неблагоприятную среду, единственное, что они могут сделать — активировать программу, запасённую на чёрный день.
Нейросеть — это вычислительная архитектура. Такая архитектура, какую смогла создать эволюция. Строго говоря, нейросеть — это, не единственный известный природе вычислитель. Задолго до появления нейросетей живые существа обрабатывали информацию с помощью химических веществ. Но химические вычисления имеют малую производительность и множество недостатков. И тогда великий генетический алгоритм создал нервную систему. Это эволюционное изобретение во много раз ускорило обработку информации. Внезапно всё стало происходить очень быстро. Если ты хочешь поспевать за миром и отслеживать переменные среды в реальном времени, ты вынужден ставить себе вычислитель. И единственная архитектура, которая тебе доступна — нейронная сеть.
У живого нет выбора. Нет другой вычислительной системы, которая была бы сопоставима по параметрам. Люди используют центральные процессоры и процессоры параллельных вычислений для решения алгоритмических задач и даже эмулируют нейросети их мощностями. Но у эволюции нет ЦПУ! Что удивительного в том, что живые организмы эмулируют возможности ЦПУ на нейросетях? То, что в природе какая-то задача решается нейросетью не означает, что такое решение оптимально. Просто у эволюции руки связаны теми возможностями, которые были получены методом малых изменений.
Считается, что одна из основных задач нервной системы — обучение. Известно, что обучение позволяет увеличить эффективность организма. Но можно ли без него обойтись? У эволюции нет задачи создать что-либо интеллектуальное. Эволюция создаёт стабильное. Обучение предполагает изменения, а изменения, если они работают недостаточно хорошо, не увеличивают стабильность, а напротив ухудшают её. Обучение — обоюдоострый меч. Нет ничего удивительного в том, что многие живые системы отказываются от обучения в пользу выточенных эволюцией жестко заданных нейронных сетей. Эти нейросети не учатся. Обучение — сложная необязательная эволюционная адаптация. Необязательные адаптации затратны и не всегда полезны. Нейросети стали нужны, когда выросла потребность в быстрой реакции. А обучение? Раньше было не нужно. Многим видам не нужно и сейчас.
А вот высшие многоклеточные решили, что им нужно учится. Они имеют развитые и разнородные системы обработки информации и возможность формировать новые навыки за счет изменения структуры специальных отделов мозга. Но все ли их функции строятся на обучении? Ответ — нет. Строго говоря, большая часть функций вообще не предполагает никакого обучения и даже никакой настройки. В мозге человека есть зоны, ответственные за обучение, обработку информации и построение новых навыков. Однако эти зоны работают поверх наперёд построенного и неизменного механизма. На низших уровнях организации нейронная сеть, ответственная за зрение не обучается, сеть ответственная за дыхание не обучается, сеть ответственная за слух не обучается, и сеть ответственная за двигательные функции не обучается тоже. У младенца все эти системы предсозданы, преднастроены и ждут только, пока системы верхнего уровня научатся пользоваться предоставляемой ими просеянной рафинированной информацией и зафильтрованными, безопасными выскоуровневыми методами управления. Если бы высшие нервные функции могли дотянутся до отдельных актуаторов, индивид бы умер сиюмоментно. Эволюция не допускает доступа гибких, способных к изменению систем к прямому контролю актуаторов, поскольку ошибка такой системы, а такая система ошибается несравнимо чаще автомата, может мгновенно убить индивида. Со временем ошибку обучения можно исправить, но только в том случае, если автомат предотвратил худшее.
Вездесущий автомат
Если одноклеточное — термодинамический автомат, то человек — это интеллектуальная обучаемая система, построенная поверх термодинамического автомата.
Живое не учится с нуля. Обучение работает поверх преднастроенных, отработанных эволюцией механизмов. Вычленять базовые фичи из изображения методами обучения с нуля — сложная и неблагодарная задача. Именно поэтому вместо того, чтобы скармливать нейросетям пиксели, их сначала пропускают через построенные инженерами свёрточные сети. Нейросеть смогла бы сформировать свёрточную сеть сама, рано или поздно, но какой в этом смысл, если свёрточную сеть можно разметить и построить алгоритмически и математически строго. Так делают с изображениями и так же действуют при анализе речи, когда понижают размерность, сворачивая спектр по немногочисленным окнам.
Но раз такое дело, может обучение вообще не нужно?
Обучение хорошо показывает себя на задачах, которые не поддаются формализации. Крайне сложно построить алгоритм, отличающий кошечку от собачки. Когда мы выделили базовые фичи из изображения, мы можем послать их выше. Обучение позволит решить задачу классификации и решить её хорошо. Что значит хорошо? Решить хорошо значит решить не хуже или лучше, чем прочими методами. Мы не можем отличить кошку от собаки без обучения! Наши учёные и инженеры не обладают математическим аппаратом, позволяющим отличить кошку от собаки, кроме как методами обучения, то есть, используя статистику и оптимизацию. Обучение нужно там, где среда быстро меняется, а размерность задачи не предполагает единственного решения. Обучение работает с контекстом и позволяет выбрать один вариант из бесконечного числа возможных.
Но как насчёт задач, где инженеры могут, а решение имеет явно выраженный оптимум?
Можно видеть работы, где мы пытаемся решать задачи управления движением примерно так же, как по началу пытались решать задачи обработки изображения. Давайте заведём все мышцы и рецепторы на обучаемую нейросеть и посмотрим, что получится. Получится плохо! Обучение несомненно способно строить системы управления движением с нуля, если у вас есть пара свободных миллионов лет.
В контексте задач управления движением, обучение необходимо при формировании сложных программ поведения, которые иначе просто невозможно построить, поскольку их невозможно формализовать, но на уровне простейших движений обучение ненадёжно. Нельзя доверить обучению базовые программы управления движением без того чтобы мириться с девяносто девяти процентной вероятностью получить несбалансированный результат. Чтобы получить надёжную систему, всё, что может делать автомат, должен делать автомат. Базовые паттерны управления движением не меняются никогда. Все четвероногие сотни миллионов лет имеют три способа перемещения — три аллюра: шаг, рысь, галоп. Всё. Других способов нет. Эти способы не меняются никогда. Эта задача изначально преднастроена. Могут меняться коэффициенты системы, период шага, могут вноситься коррективы, если одна из ног неисправна, но сам алгоритм строго зашит в головной и спинной мозг настолько тщательно, что мы, люди, за сотни тысяч лет так и не разучились махать руками при ходьбе, хотя давно не ходим на передних конечностях. Эти движения руками происходят в полном соответствии с программами всех четвероногих.
Движение — это механика. Мы знаем механику лучше, чем любую другую инженерную науку. Механика оформлена. Механика твёрдых тел завершена. Теория управления, теория оптимизации позволяют строить системы управления динамическими объектами. Для построения системы управления базовыми движениями нет смысла привлекать обучение, как нет смысла привлекать его для построения свёрточных сетей.
Обучение не должно использоваться в лоб. Ниша применения обучения в этих задачах в оптимизации существующих механистических программ и их записи по сгенерированной высшими нервными функциями последовательности. И в том и в другом случае нет случайного перебора. Мы всегда отталкиваемся от автомата, поскольку автомат, это та база, в которой мы уверены на этой зыбкой почве вечно меняющихся обучаемых систем. Пока условия неизменны автомат не подводит.
Граница необучения
В лекции посвященной двигательной системе мозга Вячеслав Дубынин [1] приводит кажущийся парадокс. Если организм получает нарушение простой системы, то вероятность её восстановления значительно меньше, чем если нарушенной окажется сложная система. В случае нарушения сложной системы нейронная сеть со временем переобучится и восстановится. Простые системы так себя не ведут.
Это не сложно понять. Есть всего один и только один способ сделать простую вещь. Этот способ заранее предразмечен и прошит. Нет смысла ставить его в зависимость от обучения. Так работает эволюция, когда создаёт стабильную форму жизни. Так поступает инженер, когда создаёт стабильно работающее изделие.
Но где же начинается потребность в обучении? Итак, обучение не повсеместно и по всей видимости разрозненно. Системы управления иерархичны и учатся независимо. Чем выше связность обучаемой системы, тем более затратно и опасно обучение и тем менее качественным может быть результат. Каждая выделенная система может иметь собственную внутреннюю систему обучения. Некоторые системы имеют очень простое обучение, которое и не обучение вовсе, а скорее, адаптивная настройка. Местные системы адаптивной настройки реализуемых на этом уровни автоматов полезны. Далеко не вся информация передаётся вышестоящим системам. Осуществление местной коррекции параметров — выгодная стратегия.
Другие системы на обучении специализируются. Самые сложные из них, работающие с образами и базами знаний, сложно поддаются осмыслению. Это системы самого верхнего уровня. Они задают стратегию поведения и диктуют на языке макрообразов инструкции нижестоящим системам.
Иерархичность системы управления оправдана. Декомпозиция системы на функциональные блоки позволяет снизить связность систем управления. По мере понижения уровня команды распаковываются, обрастают деталями, с которыми вышестоящие системы работают неохотно, поскольку увеличение размерности задачи на этом уровне крайне затратно. По мере обратного движения информация напротив фильтруется и упаковывается. Сознание воспринимает лишь малую долю сенсорной информации, да и ту в весьма ужатом виде. Управление пальцами рук и конечностями подчинено автоматизирующим программам. Сознание может управлять отдельным пальцем непосредственно, но это требует значительного напряжения. Высшие нервные функции достаточно неохотно берут на себя управление движениями, предпочитая заниматься более абстрактными вещами, перепоручая движения другим системам. Когда высшие функции берут контроль, движения становятся медлительны и неуклюжи, поскольку сознание — крайне медленная система.
Но именно вид существа медленно и неуклюже совершающего непривычное движение, является проявлением разума. В этот момент аппарат обработки образов начинает продуцировать выводы, полученные анализом на управление, не отвечающее ни одной из базовых программ. Такое поведение отличается от выдрессированного, хотя и то и другое активируют обучение новой произвольной последовательности действий. Такое поведение разумно.
Биология в технике и наоборот
Весьма не очевидно то, что биологические и технические системы встречают одни и те же проблемы и решают их одними и теме же методами. Там где техника диктует декомпозицию, биология также пользуется декомпозицией. Там где есть место декомпозиции, появляются интерфейсы. Там где есть интерфейсы появляются вирусы. Общие законы продуцируют общие решения и общие проблемы. Конечно необходимо учитывать специфику развития биологических и технических систем. Биологическая система спроектированная разумом, была бы гораздо чище той, что нагородила эволюция. Техническая система, спроектированная генетическим алгоритмом, будет противоречивой и недостаточно логичной.
Конструируя искусственный разум, следует помнить, что искусственные нейронные сети решают не те задачи, которые в большинстве своём решают естественные нейронные сети. Следует помнить, что обучение и в конечном итоге разум — это необязательные, дорогие, опасные, высокоуровневые функции, которым чуждо возиться с пикселями и отдельными актуаторами. Так было сотни миллионов лет назад и по сей день ничего не поменялось, ибо таков путь кибернетики.
[1] Вячеслав Дубынин: "Мозг и движение". https://www.youtube.com/watch?v=XNMGhUG3YDA
Eldarius38
Очень интересная статья! Интересно как работает мозг при игре на музыкальных инструментах, если у вас есть источники, прошу дать ссылку
netricks Автор
К сожалению, не встречал, но вероятно потому, что не интересовался (я вообще ни разу не специалист по физиологии) Игра на музыкальных инструментах — кросс деятельность, в которой задействуется несколько разных систем. Физиологи пока с горем пополам в отдельных системах пытаются разобраться. Да и инженеры в общем-то тоже.