Pull to refresh

О machine learning: никто машину не обучает

Reading time15 min
Views8.8K

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

В таком виде мы книгу не продадим.

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

Идиоматика ИИ

  • Термин «machine learning»

Усвоение знаний (learning) - это процесс приобретения новых знаний, смыслов и поведения. Способностью усваивать знания обладают люди, животные и некоторые машины. Достижения в области machine learning в немалой степени опираются на многолетние исследования в области теорий усвоения знаний (learning theories), предметом изучения которых является процесс формирования и усвоения знаний животными (animal learning) и человеком (human learning).

Искусственные нейронные сети и целое направление под названием «reinforcement learning» - яркие тому примеры. Уоррен МакКаллок и Уолтер Питтс создавали свой персептрон по принципу сети нервных клеток организма, а Ричард Саттон строил свой алгоритм reinforcement learning, моделируя усвоение знаний путем проб и ошибок, заимствовав идею подкрепления из бихейвиористской психологии, где оно означает стимул, побуждающий ученика приспосабливать свое поведение в окружающей среде.

Таким образом, практическая подобласть ИИ под названием «machine learning», в отличие от теорий усвоения знаний, нацелена на отыскание методов, с помощью которых машины могли бы усваивать знания автоматически без вмешательства человека, о чем свидетельствует классическое определение данного термина:

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

Из всего вышесказанного непосредственно вытекает один важный терминологический вывод. Говоря machine learning, мы имеем в виду именно усвоение знаний машиной. И поэтому, судя по всему, указанный термин должен переводиться как машинное усвоение знаний.

Интересно, что в некоторых европейских языках термин «machine learning» так и переводится. В испанском языке он звучит как aprendizaje automático или aprendizaje automatizado, то есть автоматическое или автоматизированное усвоение. И такой подход отражает суть, так как в основе модели лежит алгоритм усвоения (learning algorithm), aka искатель минимумов (или максимумов) для надлежащим образом сформулированной математической функции. Добавив прилагательное machine, получим «алгоритм автоматического усвоения», или, в более общем контексте (поменяв algorithm на model) «модель автоматического усвоения», а не как в общепринятом ныне варианте. И эту тонкость очень важно понимать, так как она меняет «знак» смысла на противоположный и правильный, то есть на автоматическое усвоение машиной закономерностей.

Например, нередко можно услышать, что специалисты, дескать, «обучают» модели. Однако, профессионалы так не говорят, по крайней мере, за рубежом. Они говорят, что они их тренируют (train), так как для них причина очевидна - все тот же алгоритм машинного усвоения, лежащий в их основе. Очень жаль, но у исследователя данных нет никакого ореола демиурга. Никто никого не обучает :-(. Как раз наоборот. Учитывая заложенный в модель математический каркас, совершенно очевидно, что она в силу своей особенности учится сама, обновляя свои параметры, а роль исследователя данных (data scientist) в целом сводится к тому, чтобы подавать в модель предобработанные исторические данные и тренировать ее делать предсказания на новых данных. Математический каркас (framework) модели перелопачивает «тонны» данных и статистически (и не только) учится на них отыскивать неразличимые для человека закономерности, регулярности и шаблоны, то есть то, что в английском называется patterns, и, разумеется, делать предсказания (predictions) в отношении ранее не встречавшихся (unseen) данных.

Поразительно, но целая передовая практическая дисциплина до сих пор не имеет правильного названия!

Вот еще несколько кратких примеров в подтверждение такому пониманию. Одним из направлений дисциплины machine learning является «representation learning», которое и по форме и по смыслу есть «автоматическое усвоение представлений данных» и существует как антитеза ручной инженерии признаков. Крайне важный для machine learning гиперпараметр «learning rate» должен переводится, как «скорость усвоения», так как обозначает темп, с которой модель усваивает задачу. А методика «transfer learning», которая основывается на идее преодоления парадигмы изолированности знаний и улучшает усвоение моделью решаемой задачи за счет переноса знаний из родственной задачи, должна переводится как «трансферное усвоение».

Возвращаясь к reinforcement learning, здесь речь идет о гедонистической самообучающейся системе усвоения путем проб и ошибок, которая адаптирует свое поведение с целью максимизировать подкрепление со стороны окружающей среды. Говоря проще, тут будет уместна аналогия с ослом и морковкой, где учеником является осел, а стимулом со стороны среды - морковка :). И тогда по идее данный термин должен переводиться как «стимулируемое усвоение» или «подкрепляемое усвоение».

Стимулируемое/подкрепляемое усвоение
Стимулируемое/подкрепляемое усвоение

А теперь бинго! Поскольку никто машину не обучает, то нет и учителя, а есть один единственный ученик, который учится самостоятельно, и тогда все три направления в машинном усвоении должны звучать так: контролируемое усвоение (supervised learning) , то есть он учится, сверяясь с предопределенными метками, неконтролируемое усвоение (unsupervised learning), то есть, когда меток нет, и стимулируемое усвоение (reinforcement learning), то есть усвоение путем проб и ошибок под воздействием среды.

  • Термин «precision»

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

  • Термин «scaling»

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

  • Термин «overfitting»

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

Ярко выраженная переподгонка
Ярко выраженная переподгонка
  • Термин «bias»

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

  • Термин «performance»

Английское словосочетание «to perform one's work» означает «выполнять работу». Если в исходном тексте performance означает количество работы, то следует переводить производительность (то есть создание некого продукта за единицу времени, обозначая по сути скорость работы), а если имеется в виду качество работы, то результативность (то есть некое достижение после исполнения задачи, измеряемое стандартными метриками). Применительно к моделям машинного усвоения указанный термин обозначает результативность, измеряемую метриками точности, прецизионности и др., за исключением случаев, когда речь идет о скорости работы модели и аппаратного обеспечения в рамках вычислительных инфраструктур. Кстати, следует отметить, что в зарубежной информатике и не только в ней производительность труда человека имеет отдельный термин «productivity» (продуктивность).

Далее следуют несколько терминов информатики и программирования, важных для понимания их идиоматики.

Общая идиоматика

  • Термин «building»

В зарубежной информатике принят ряд метафор и противопоставлений, которые встречаются из текста в текст еще с конца 50-х годов прошлого века. И прежде всего, это метафора строительства программно-информационного обеспечения. Вот выдержка из культовой книги Фредерика Брукса «Мифический человеко-месяц»:

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

В переводе следует использовать этот термин во всех словоформах.

  • Термин «implementation»

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

  • Термин «exploration»

В зарубежной информатике глагол «explore» выполняет очень важную познавательную роль и часто используется в противопоставлении с глаголом exploit. Обследование, разведка (exploration) - это поиск новых идей или новых стратегий. Эксплуатация (exploitation) - это использование существующих идей и стратегий, которые оказались успешными в прошлом. Вот что об этом пишет Дэн Саймон в своей культовой книге по эволюционным алгоритмам Evolutionary Optimization Algorithms:

Разведывательный анализ
Разведывательный анализ

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

В переводе не следует подменять этот термин и его словоформы другими словами (например, «исследовать», «рассматривать», «знакомиться» и «изучать»).

  • Термин «workflow»

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

  • Термин «image»

Применительно к машинному усвоению и к информатике в целом, говоря об изображениях, речь почти всегда идет о цифровом снимке, представляемым матрицей пиксельных значений, и технических приемах его обработки на компьютере (ср. satellite image, X-ray image, images of cats and dogs). Выбор этого более конкретного варианта перевода еще обусловлен и тем, что слово «снимок» не является отглагольным существительным как слово «изображение» и поэтому не вносит двусмысленность, а также тем, что оно может использоваться атрибутивно как определение (ср. «снимковые данные»). В переводе следует использовать указанный вариант везде, где это возможно.

  • Термин «thread»

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

Нити исполнения
Нити исполнения

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

  • Термин «concurrent»

Указанный термин не следует путать с термином параллельный. Последний означает равноудаленность в любой точке пространства, тогда как «конкурентный» означает схождение в одном месте или в одно время. Слово concurrent складывается из приставки con (вместе) и основы occurrence (появление). К примеру в лингвистике существует термин co-occurence (коокуррентность, co-появление) и его разновидность concurrence, которыми обозначается частота появления двух или более слов вместе в словарном корпусе.

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

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

  • Термин «lock»

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

Базовый спиновый замок заставляет процессы работать 
«на холостом ходу» до тех пор, пока другой процесс 
обращается к совместному ресурсу и пока не снимет замок
Базовый спиновый замок заставляет процессы работать «на холостом ходу» до тех пор, пока другой процесс обращается к совместному ресурсу и пока не снимет замок

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

  • Термин «service»

Указанный термин в переводе как «служба» появился еще со времен ОС Windows 3.0 примерно в 1990 году, когда она стала многозадачной (и живет в Windows по сей день - нажмите CTRL+ALT+DEL, чтобы попасть в Диспетчер задач и взгляните на последнюю вкладку). В те годы Интернет только зарождался, а о веб-службах не было еще и речи. Сегодня термин «служба» (не пресловутый «сервис») широко принят в русскоязычной документации среди таких гигантов ИТ как Microsoft и Google, а также IBM, HP и многих других, поэтому нет причин вводить термин-однодневку. В книгах, посвященных новейшей технологии, именуемой MLaaS («Машинное усвоение как служба»), в которой модели машинного усвоения выставляются в качестве служб для обслуживания запросов, поступающих со стороны конечных пользователей, на получение модельных предсказаний, термин «serving» нередко встречается свернуто как «обслуживание», но следует помнить, что под ним подразумевается именно модельное обслуживание запросов, aka доставка предсказаний конечным пользователям.

  • Парные термины «referencing» и «dereferencing»

В языках C/C++, Rust и подобных референция – это операция опосредования, которая заключается в создании указателя на существующее значение путем получения его адреса в памяти с помощью оператора референции &. Дереференция – это операция опосредования, которая заключается в получении существующего значения по указателю с помощью оператора дереференции *. Термин «разыменование» для «dereferencing» разрывает парную связь с referencing и вносит пустую сущность «именование», тогда как речь идет об операции с указателем, а не с именем.

  • Термин «design»

В целях предотвращения путаницы следует проводить различие между термином «дизайн» (конструирование), как процессом формирования идеи, составления плана-схемы и прототипирования выбранного варианта и термином «проект», как запланированной работой или деятельностью, которая завершается по установленному графику и предназначена для достижения определенной цели. Все случаи появления термина «design» в той или иной форме <i>не</i> следует переводить как «проектирование». Правильными вариантами могут быть «дизайн» или «конструирование (дизайна/плана-схемы)», во избежание пересечения с термином «проект», как в случае the project involves taking several design decisions (проект предусматривает принятие нескольких решений в отношении вариантов дизайна).

  • Термин «software»

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

Справочный материал

О теориях усвоения знаний:

https://en.wikipedia.org/wiki/Learning_theory_(education)

https://teacherofsci.com/learning-theories-in-education/

https://vikent.ru/enc/6380/ (теория усвоения знаний Б. Блума)

https://tech.wikireading.ru/htmxdVuIrh

Статья Питера Рудина «Мысли об усвоении знаний машиной по сравнению с усвоением знаний человеком». Среди прочего, автор характеризует машинное усвоение как генерирование цифрового знания.

Любопытный педагогический текст о различных методах усвоения знаний (learning methods), стилях мышления и методах обучения (teaching methods = методах преподавания, передачи знаний).

Об альтернативном переводе терминов machine learning и learning algorithm:

https://ru.wikipedia.org/wiki/Обучающаяся_система

https://bigenc.ru/mathematics/text/1810335

Об истории reinforcement learning и теориях усвоения знаний:

http://incompleteideas.net/book/first/ebook/node12.html

О конкурентности и замках:

https://en.wikipedia.org/wiki/Co-occurrence

https://en.wikipedia.org/wiki/Concurrent_computing

http://developer.alexanderklimov.ru/android/java/thread.php

https://search400.techtarget.com/definition/lock

https://www.webopedia.com/TERM/R/resource_locking.html

http://web.mit.edu/6.005/www/fa15/classes/23-locks/

О новейшем направлении «Автоматическое усвоение графового представления данных»

https://www.youtube.com/watch?v=YrhBZUtgG4E

Практикум

Статья Питера Рудина «Мысли об усвоении знаний человеком по сравнению с усвоением знаний машиной» начинается так:

Learning is the act of acquiring new or reinforcing existing knowledge, behaviors, skills or values. Humans have the ability to learn, however with the progress in artificial intelligence, machine learning has become a resource which can augment or even replace human learning.

Усвоение знаний (learning) - это процесс приобретения новых или укрепления существующих знаний, поведения, навыков или ценностей. Люди обладают способностью усваивать знания, однако с прогрессом в области искусственного интеллекта машинное усвоение знаний (machine learning) стало ресурсом, который может дополнять или даже заменять усвоение знаний человеком (human learning).

Этот пассаж переведен 1-к-1 без эквилибристики с терминами. Посмотрите, как его смысл затуманивается, если использовать двусмысленное слово «обучение», которое может означать получение знаний И передачу знаний:

Обучение (learning) (?) - это процесс приобретения новых или укрепления существующих знаний, поведения, навыков или ценностей. Люди обладают способностью обучаться (?), однако с прогрессом в области искусственного интеллекта машинное обучение (?) (machine learning) стало ресурсом, который может дополнять или даже заменять человеческое обучение (?) (human learning).

Это поправимо, если поменять «обучение» на «самообучение», несколько убрав расплывчатость:

Самообучение (learning) - это процесс приобретения новых или укрепления существующих знаний, поведения, навыков или ценностей. Люди обладают способностью обучаться (?), однако с прогрессом в области искусственного интеллекта машинное самообучение (machine learning) стало ресурсом, который может дополнять или даже заменять человеческое самообучение (human learning).

Но в такой форме изложение все-равно имеет немного двусмысленности и получается несколько перенасыщенным словами с «само-». Очевидно, что первый вариант - самый точный и понятный.

Выводы

Подытоживая, приведенный выше перечень ни в коем случае не является исчерпывающим и служит для того, чтобы привлечь внимание к данной проблематике специалистов в области ИТ и информатики в целом, а также инженеров ИИ, которые строят системы машинного усвоения, то есть то, что в английском языке носит название «machine learning systems».

Мы имеем феномен, который называется «усвоением знаний человеком и животными». Этот феномен объясняется теориями усвоения знаний (в частности павловской теорией условных-безусловных рефлексов). В 60-х годах XX-го века компьютерные ученые задались вопросом о том, как создать самообучающуюся машину, и дали классическое определение такой машины (определение дано выше в посте), как способной автоматически усваивать знания из данных, не будучи для этого программируемой. То есть признавалось, что вычислительную машину, в отличие от людей и животных, которые наделены такой способностью по природе, надо еще наделить способностью усваивать знания. Это делается путем строительства специальных моделей машинного усвоения знаний, в основе которых лежит алгоритм машинного усвоения. Строительство таких моделей и алгоритмов и является предметом подобласти ИИ под названием machine learning («машинное усвоение»).

Поразительно, но у нас целая передовая практическая дисциплина до сих пор не имеет правильного названия!

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

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

Продолжение поднятой темы смотрите во 2-ой статье «Что такое machine learning?»

Tags:
Hubs:
If this publication inspired you and you want to support the author, do not hesitate to click on the button
+16
Comments252

Articles