ТРЕНИРОВКА МОДЕЛИ НЕЙРОННОЙ СЕТИ
TRAINING OF NEURAL NETWORK MODEL

[001] Различные варианты реализации, описанные в настоящем документе, относятся к области машинного обучения. Более конкретно, но не исключительно, различные варианты реализации относятся к системам и способам тренировки модели нейронной сети.
УРОВЕНЬ ТЕХНИКИ
[002] Общими предпосылками создания изобретения являются машинное обучение и модели нейронной сети. Машиннообучаемые модели могут быть использованы для многих задач, включая автоматическое аннотирование (например, классификацию или создание метки для) больших количеств данных. Машинное обучение может быть особенно полезно при аннотировании изображений, таких как медицинские изображения, которые в противном случае могли бы быть классифицированы только высококвалифицированным медицинским персоналом.
[003] Одним из классов машиннообучаемых моделей являются искусственные нейронные сети (или нейронные сети). Для тренировки модели нейронной сети обычно нужны большие объемы аннотированных данных (например, тренировочных данных). Однако аннотирование данных, например, аннотирование изображений путем указания наличия или местоположения объектов на каждом изображении, занимает много времени и может наскучить составителю аннотаций, что может привести к потере точности аннотаций. Если для выполнения каждой аннотации требуются квалифицированные медицинские специалисты, процесс аннотации может также стать дорогостоящим. Поэтому желательно найти пути сокращения количества данных аннотаций, требуемых для тренировки машиннообучаемых моделей, и сделать процесс обучения более эффективным с обеспечением при этом сохранения качества обучения и получающейся в результате модели.
[004] Следовательно, существует потребность в способах и системах, которые лучше решают вышеупомянутые проблемы.
РАСКРЫТИЕ СУЩНОСТИ ИЗОБРЕТЕНИЯ
[005] Согласно первому аспекту предложена система для тренировки модели нейронной сети. Система содержит память, содержащую данные инструкций, представляющие собой набор инструкций, и процессор, выполненный с возможностью обмена данными с памятью и исполнения набора инструкций. При исполнении процессором набор инструкций вызывает получение процессором тренировочных данных, причем тренировочные данные содержат: данные, аннотацию для данных, которая определена пользователем, и вспомогательные данные. Вспомогательные данные описывают по меньшей мере одно представляющее интерес местоположение в данных, рассматриваемое пользователем при определении аннотации для данных. При этом исполнение набора инструкций процессором вызывает тренировку модели системой с использованием тренировочных данных. Вызов исполнения процессором тренировки модели включает вызов исполнения процессором минимизации вспомогательной функции потерь, которая сравнивает по меньшей мере одно представляющее интерес местоположение с выходными данными одного или более слоев модели, и минимизации основной функции потерь, которая сравнивает аннотацию для данных, определенную пользователем, с аннотацией, созданной моделью.
[006] Использование вспомогательных данных, описывающих одно или более представляющих интерес местоположений, рассматриваемые пользователем при определении аннотации для данных, означает, что дополнительные данные, собранные от пользователя во время аннотирования данных пользователем (например, такие как данные отслеживания взгляда, данные жестикуляции и/или речевые данные) могут быть использованы для ускорения процесса тренировки без каких-либо дополнительных усилий со стороны пользователя (вспомогательные данные по существу получают «задаром»). Вместо того, чтобы просто предоставлять модели окончательную аннотацию для обучения на ней, модель также обеспечивают множеством местоположений в данных, рассматриваемых пользователем при создании аннотации, которые служат указателем на позиции в данных, которые следует рассмотреть модели при аннотировании данных. Посредством минимизации функции потерь, которая сравнивает по меньшей мере одно представляющее интерес местоположение с выходными данными одного или более слоев модели, веса модели настраивают так, чтобы выявлять (например, придавать им более высокую значимость) представляющие интерес области, рассматриваемые пользователем во время аннотирования им данных. Благодаря внедрению этих дополнительных данных в процесс тренировки модель может быть натренирована быстрее. Кроме того, от пользователя требуется меньше аннотаций, поскольку во время каждой аннотации от пользователя извлекают больше данных (например, данных отслеживания взгляда, речевых данных и/или данных жестикуляции).
[007] В некоторых вариантах реализации вспомогательные данные содержат данные отслеживания взгляда, а по меньшей мере одно из представляющих интерес местоположений представляет собой по меньшей мере одно местоположение в данных, наблюдаемое пользователем при определении аннотации для данных.
[008] В некоторых вариантах реализации данные отслеживания взгляда содержат одно или более из: информации, указывающей, на какие части данных смотрел пользователь при определении аннотации для данных, информации, указывающей количество времени, потраченного пользователем на просмотр каждой части данных при определении аннотации для данных, и информации, указывающей порядок, в котором пользователь просматривал различные части данных при определении аннотации для данных.
[009] В некоторых вариантах реализации вызов исполнения процессором минимизации вспомогательной функции потерь включает вызов исполнения процессором обновления весов модели так, чтобы придать повышенную значимость по меньшей мере одному представляющему интерес местоположению в данных по сравнению с местоположениями в данных, не представляющими интереса.
[0010] В некоторых вариантах реализации вызов исполнения процессором минимизации вспомогательной функции потерь включает вызов исполнения процессором обновления весов модели так, чтобы придать повышенную значимость представляющим интерес местоположениям, рассматриваемым пользователем в течение более длительных периодов времени по сравнению с представляющими интерес местоположениями, которые рассматривались пользователем в течение боле коротких периодов времени.
[0011] В некоторых вариантах реализации вызов исполнения процессором минимизации вспомогательной функции потерь включает вызов исполнения процессором обновления весов модели так, чтобы придать повышенную значимость представляющим интерес местоположениям в данных, которые по меньшей мере: рассматривались пользователем в течение начального интервала времени при определении аннотации для данных; рассматривались пользователем в течение заключительного интервала времени при определении аннотации для данных и рассматривались пользователем множество раз при определении аннотации для данных.
[0012] В некоторых вариантах реализации вспомогательные данные содержат изображение, причем компоненты изображения соответствуют части данных.
[0013] В некоторых вариантах реализации изображение представляет собой тепловую карту. Значения компонентов изображения на тепловой карте коррелируют с тем, соответствует ли каждый компонент изображения представляющему интерес местоположению в данных, и/или с временем, которое потратил пользователь на рассмотрение каждого соответствующего местоположения данных при определении аннотации для данных.
[0014] В некоторых вариантах реализации вызов исполнения процессором минимизации вспомогательной функции потерь включает вызов исполнения процессором сравнения данных изображения с выходными данными одного или более сверточных слоев модели.
[0015] В некоторых вариантах реализации вызов исполнения процессором минимизации вспомогательной функции потерь включает вызов исполнения процессором сравнения вспомогательных данных с выходными данными одного или более плотных слоев модели.
[0016] В некоторых вариантах реализации вызов исполнения процессором тренировки модели включает вызов исполнения процессором минимизации одного или более из: вспомогательной функции потерь и основной функции потерь параллельно; вспомогательной функции потерь перед минимизацией основной функции потерь и вспомогательной функции потерь в пределах заданного порога с последующей тренировкой модели с использованием основной функции потерь.
[0017] В некоторых вариантах реализации при исполнении процессором набор инструкций также вызывает исполнение процессором: вычисления комбинированной функции потерь, причем комбинированная функция потерь представляет собой взвешенную комбинацию основной функции потерь и вспомогательной функции потерь; и коррекции одного или более весов, связанных со взвешенной комбинацией комбинированной функции потерь, для переключения акцента в тренировке между минимизацией основной функцией потерь и минимизацией вспомогательной функцией потерь.
[0018] В некоторых вариантах реализации модель содержит модифицированную архитектуру U-Net.
[0019] Согласно второму аспекту предложен способ тренировки модели нейронной сети. Способ включает получение тренировочных данных. Тренировочные данные содержат: данные, аннотацию для этих данных, которая определена пользователем, и вспомогательные данные, причем вспомогательные данные описывают по меньшей мере одно представляющее интерес местоположение в данных, рассматриваемое пользователем при определении аннотации для данных. Способ также включает тренировку модели с использованием тренировочных данных. Тренировка включает: минимизацию вспомогательной функции потерь, которая сравнивает по меньшей мере одно представляющее интерес местоположение с выходными данными одного или более слоев модели, и минимизацию основной функции потерь, которая сравнивает аннотацию для данных, определенную пользователем, с аннотацией, созданной моделью.
[0020] Согласно третьему аспекту предложен компьютерный программный продукт, включающий некратковременный компьютерочитаемый носитель информации, имеющий содержащийся на нем компьютерочитаемый код, причем компьютерочитаемый код выполнен таким образом, чтобы исполнение его подходящим компьютером или процессором вызывало осуществление компьютером или процессором способа в соответствии с любым из вариантов реализации, описанных в настоящем документе.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
[0021] Для лучшего понимания вариантов реализации и для более четкого показа того, как они могут быть введены в действие, далее ссылки будут делаться, только в качестве примера, на прилагаемые чертежи, на которых:
[0022] на Фиг. 1 показан пример системы в соответствии с вариантом реализации;
[0023] на Фиг. 2 показан пример вспомогательных данных, содержащих данные отслеживания взгляда, представленные в графическом виде, в соответствии с вариантом реализации;
[0024] на Фиг. 3 показан пример вспомогательных данных, содержащих данные отслеживания взгляда, представленные в виде изображения, в соответствии с вариантом реализации;
[0025] на Фиг. 4 показан пример вспомогательных данных, представленных в виде тепловой карты, в соответствии с вариантом реализации;
[0026] на Фиг. 5a и 5b показан пример процесса в соответствии с вариантом реализации; и
[0027] на Фиг. 6 показан компьютеризованный способ в соответствии с вариантом реализации.
ОСУЩЕСТВЛЕНИЕ ИЗОБРЕТЕНИЯ
[0028] Как отмечено выше, предложены усовершенствованные способ и система для тренировки модели нейронной сети, которые преодолевают некоторые из существующих проблем.
[0029] На Фиг. 1 показана блок-схема системы 100 в соответствии с вариантом реализации, которая может быть использована для тренировки модели нейронной сети. Как показано на Фиг. 1, система 100 содержит процессор 102, который управляет работой системы 100, и который может реализовывать способ, описанный в настоящем документе.
[0030] Система 100 также содержит память 106, содержащую данные инструкций, представляющие собой набор инструкций. Память 106 может быть выполнена с возможностью хранения данных инструкций в виде программного кода, который может быть исполнен процессором 102 для осуществления способа, описанного в настоящем документе.  В некоторых реализациях данные инструкций могут содержать множество программных модулей и/или аппаратных модулей, каждый из которых выполнен с возможностью осуществления или для осуществления отдельных или нескольких этапов способа, описанного в настоящем документе.  В некоторых вариантах реализации память 106 может быть частью устройства, которое также содержит один или более компонентов системы 100 (например, процессор 102 и/или один или более других компонентов системы 100).  В альтернативных вариантах реализации память 106 может быть частью устройства, отдельного от других компонентов системы 100.
[0031] В некоторых вариантах реализации память 106 может содержать множество подпамятей, причем каждая из подпамятей выполнена с возможностью хранения фрагмента данных инструкций.  В некоторых вариантах реализации, где память 106 содержит множество подпамятей, данные инструкций, представляющие собой набор инструкций, могут храниться в одной подпамяти.  В других вариантах реализации, где память 106 содержит множество подпамятей, данные инструкций, представляющие собой набор инструкций, могут храниться в нескольких подпамятях.  Например, по меньшей мере одна подпамять может хранить данные инструкций, представляющие собой по меньшей мере одну инструкцию из набора инструкций, тогда как по меньшей мере одна другая подпамять может хранить данные инструкций, представляющие собой по меньшей мере одну другую инструкцию из набора инструкций.  Таким образом, согласно некоторым вариантам реализации данные инструкций, представляющие собой разные инструкции, могут храниться в одном или более разных местах в системе 100. В некоторых вариантах реализации память 106 может быть использована для хранения информации, данных, сигналов и измерений, полученных или выполненных процессором 102 системы 100 или полученных от любых других компонентов системы 100.
[0032] Процессор 102 системы 100 может быть выполнен с возможностью обмена данными с памятью 106 для исполнения набора инструкций. При исполнении процессором 102 набор инструкций может вызывать осуществление процессором 102 способа, описанного в настоящем документе. Процессор 102 может содержать один или более процессоров, блоков обработки, многоядерных процессоров и/или модулей, которые выполнены с возможностью или запрограммированы для управления системой 100 описанным в настоящем документе образом. В некоторых реализациях, например, процессор 102 может содержать множество (например, взаимодействующих) процессоров, блоков обработки, многоядерных процессоров и/или модулей, выполненных с возможностью распределенной обработки. Специалисту в данной области понятно, что такие процессоры, блоки обработки, многоядерные процессоры и/или модули могут находиться в разных местах и могут выполнять разные этапы и/или разные части одного этапа способа, описанного в настоящем документе.
[0033] Возвращаясь к Фиг. 1, в некоторых вариантах реализации система 100 может содержать по меньшей мере один пользовательский интерфейс 104. В некоторых вариантах реализации пользовательский интерфейс 104 может быть частью устройства, которое также содержит один или более других компонентов системы 100 (например, процессор 102, память 106 и/или один или более других компонентов системы 100).  В альтернативных вариантах реализации пользовательский интерфейс 104 может быть частью устройства, отдельного от других компонентов системы 100.
[0034] Пользовательский интерфейс 104 может быть предназначен для использования в обеспечении пользователя системы 100 (например, научного работника, проектировщика или разработчика моделей нейронной сети, специалиста здравоохранения, субъекта или любого другого пользователя модели нейронной сети) информацией, получаемой в результате применения способа в соответствии с вариантами реализации в настоящем документе.  При исполнении процессором 102 набор инструкций может вызывать выполнение процессором 102 управления одним или более пользовательскими интерфейсами 104 для обеспечения информации, получаемой в результате применения способа в соответствии с вариантами реализации в настоящем документе. В качестве альтернативы или дополнительно пользовательский интерфейс 104 может быть выполнен с возможностью приема пользовательского ввода.  Другими словами, пользовательский интерфейс 104 может предоставлять пользователю системы 100 возможность ввода вручную инструкций, данных или информации. При исполнении процессором 102 набор инструкций может вызывать получение процессором 102 пользовательского ввода из одного или более пользовательских интерфейсов 104.
[0035] Пользовательский интерфейс 104 может представлять собой любой пользовательский интерфейс, который обеспечивает подготовку для просмотра (или вывода, или отображения) информации, данных или сигналов для пользователя системы 100.  В качестве альтернативы или дополнительно пользовательский интерфейс 104 может представлять собой любой пользовательский интерфейс, который обеспечивает пользователю системы 100 возможность пользовательского ввода, взаимодействия с системой 100 и/или управления ею.  Например, пользовательский интерфейс 104 может содержать один или более переключателей, одну или более кнопок, клавиатуру, мышь, колесико мыши, сенсорный экран или приложение (например, на планшете или смартфоне), дисплейный экран, графический пользовательский интерфейс (ГПИ) или другой компонент визуального воспроизведения, один или более динамиков, один или более микрофонов или любых других звуковых компонентов, одну или более ламп, компонент для обеспечения тактильной обратной связи (например, функцию вибрации) или любой иной пользовательский интерфейс или комбинацию пользовательских интерфейсов.
[0036] В некоторых вариантах реализации, как показано на Фиг. 1, система 100 также может содержать интерфейс (или схему) 108 связи для обеспечения системы 100 возможностью обмена данными с интерфейсами, памятями и/или устройствами, которые являются частью системы 100.  Интерфейс 108 связи может обмениваться данными с любыми интерфейсами, памятями и устройствами по беспроводному или проводному соединению.
[0037] Понятно, что на Фиг. 1 показаны только компоненты, требуемые для иллюстрации данного аспекта изобретения, а в конкретной реализации система 100 может содержать дополнительные компоненты помимо показанных.  Например, система 100 может содержать батарею или другой источник питания для обеспечения энергией системы 100 или средство для подключения системы 100 к питанию от электросети.
[0038] Если подробнее, как указано выше, память 106 также содержит данные инструкций, представляющие собой набор инструкций. Вкратце, исполнение набора инструкций процессором 102 системы 100 вызывает получение процессором 102 тренировочных данных. Тренировочные данные содержат данные, аннотацию для этих данных, которая определена пользователем, и вспомогательные данные, причем вспомогательные данные описывают по меньшей мере одно представляющее интерес местоположение в данных, рассматриваемое пользователем при определении аннотации для данных. Исполнение набора инструкций процессором 102 системы 100 также вызывает тренировку процессором 102 модели с использованием тренировочных данных. Вызов исполнения процессором 102 тренировки модели включает вызов исполнения процессором минимизации вспомогательной функции потерь, которая сравнивает по меньшей мере одно представляющее интерес местоположение с выходными данными одного или более слоев модели, и минимизации основной функции потерь, которая сравнивает аннотацию для данных, определенную пользователем, с аннотацией, созданной моделью.
[0039] Как отмечено кратко выше, система в настоящем документа основана на осознании того, что во время аннотирования данных пользователем от пользователя могут быть получены вспомогательные (например, дополнительные) данные, которые указывают, какие части данных рассматривались (например, просматривались) пользователем при определении (например, составлении) правильной аннотации. В настоящем документе такие части данных называют местоположениями, и это знание представляющих интерес местоположений в данных может быть использовано для тренировки модели нейронной сети на придание большего веса представляющим интерес местоположениям в данных при создании аннотации. Таким образом, представляющие интерес местоположения обеспечивают дополнительные данные, которые могут быть использованы для тренировки модели. Это помогает тренировать модель быстрее и эффективнее. Кроме того, представляющие интерес местоположения могут быть получены «задаром» (например, без необходимости предоставления пользователем каких-либо дополнительных аннотаций) из, например, данных отслеживания взгляда, данных жестикуляции или речевых данных, полученных по мере аннотирования пользователем тренировочных данных. Таким образом, тренировка становится более эффективной и экономичной для пользователей.
[0040] Искусственные нейронные сети или просто нейронные сети известны специалистам в данной области, но, если вкратце, нейронная сеть представляет собой тип модели, которая может быть использована для аннотирования (например, классификации или маркировки) данных (например, классификации, или создания метки, или аннотации для данных изображения). Структура нейронной сети вдохновлена головным мозгом человека. Нейронные сети состоят из слоев, причем каждый слой содержит множество нейронов. Каждый нейрон содержит математическую операцию. В процессе классификации данных математическую операцию каждого нейрона выполняют на данных для создания числовых выходных данных, и выходные данные каждого слоя в нейронной сети последовательно подают на следующий слой. Величину числовых выходных данных нейрона (при классификации данных) часто называют «уровнем активации» этого нейрона. В некоторых нейронных сетях, таких как сверточные нейронные сети, более низкие слови в нейронной сети (например, слои в направлении начала последовательности слоев в нейронной сети) активируют посредством (т.е. их выходные данные зависят от) мелких признаков или структур в классифицируемых данных, тогда как более высокие слои (например, слои в направлении к концу последовательности слоев в нейронной сети) активируют посредством все более крупных признаков в классифицируемых данных. В качестве примера, когда данные содержат изображение, а модель содержит нейронную сеть, нижние слои в нейронной сети активируют посредством мелких признаков (например, таких как структуры края на изображении), средние уровни активируют посредством признаков на изображении, таких как, например, более крупные формы и виды, тогда как слои, наиболее близкие к выходу (например, верхние слови) активируют посредством целых объектов на изображении. Данные разных классификаций создают разные схемы активации (например, разные сигнатуры активации в сети). Например, изображения сердец создают не такие схемы активации, как изображения легких. Таким образом, нейронная сеть классифицирует данные в соответствии со схемой активации, созданной в этой нейронной сети.
[0041] В некоторых примерах в настоящем документе, где данные содержат изображение, а модель предназначена для классификации содержимого изображения, каждый нейрон в нейронной сети может содержать математическую операцию, представляющую собой взвешенную линейную сумму значений пикселя (или, в случае трех размеров, вокселя) на изображении после нелинейного преобразования. В число примеров нелинейных преобразований, используемых в нейронных сетях, входят сигмоидальные функции, функция гиперболического тангенса и выпрямленная линейная функция. Нейроны в каждом слое нейронной сети обычно содержат отличную от других взвешенную комбинацию преобразования одного типа (например, преобразования одного и того же типа, сигмоидальное и т.д., но с разными весовыми коэффициентами). Как известно специалисту в данной области, в некоторых слоях одни и те же веса могут быть применены каждым нейроном в линейной сумме; это относится, например, к сверточному слою. Выходными данными каждого нейрона может быть число, и, как отмечено выше, величины выходных числовых данных нейронов образуют схему активации нейрона, которая может быть использована для классификации изображения.
[0042] Как правило, модель нейронной сети (называемая в данном документе «моделью») может представлять собой модель нейронной сети любого типа, которая может быть использована для аннотирования (например, классификации) данных. В число моделей входят, без ограничений, модели прямого распространения (такие, как сверточные нейронные сети, модели нейронных сетей-автокодировщиков, модели вероятностных нейронных сетей и модели нейронных сетей с временной задержкой), модели сети с радиальными базисными функциями, модели рекуррентной нейронной сети (такие, как полностью рекуррентные модели, модели Хопфилда или модели машины Больцмана) или модели нейронной сети любого другого типа. Специалисту в данной области известны модели других типов, к которым будут применимы идеи, изложенные в настоящем документе.
[0043] В некоторых вариантах реализации модель имеет модифицированную архитектуру U-Net. Архитектура U-Net хорошо подходит для областей применения, связанных, например, с данными изображения, т.к. все слои модели U-Net являются сверточными слоями. Она также требует меньше входных данных по сравнению с архитектурами нейронной сети других типов. Поэтому она хорошо подходит для адаптации к обработке представляющих интерес местоположений, представленных в виде тепловой карты (или других данных изображения). Однако специалисту в данной области понятно, что возможны также другие архитектуры.
[0044] Как правило, модель нейронной сети может быть использована для классификации (например, обеспечения аннотаций или меток для) данных. Данные могут быть данными любого типа, которые могут быть визуально отображены пользователю во время аннотирования данных. Например, данные могут представлять собой изображения (например, данные изображения), видеозаписи (например, видеоданные), данные в виде текста, такие как документы или записи, данные в виде формы сигнала, которые могут быть представлены визуально (например, электрокардиограмма (ЭКГ) и т.п.) или данные любого другого типа, которые могут быть визуально отображены пользователю во время аннотирования данных. В некоторых вариантах реализации данные представляют собой медицинские данные, такие как медицинские изображения (например, рентгеновские изображения, ультразвуковые изображения и т.д.) или медицинские записи. Как правило, данные могут представлять собой двумерные или трехмерные данные (например, трехмерные изображения или видеозаписи). В некоторых вариантах реализации данные могут представлять собой пригодные для просмотра данные, которые могут быть отображены пользователю. В некоторых вариантах реализации данные могут быть расположены в определенной конфигурации (например, фиксированной или воспроизводимой) конфигурации, например, конфигурация может быть выводимой (например, пригодной для просмотра или поддающейся выводу) как выполняющим аннотацию человеком, так и моделью. Например, данные могут представлять собой изображение, пиксели (или воксели в 3D) изображения, расположенные в фиксированной конфигурации. В другом примере данные могут представлять собой текстовый документ, который может быть визуально воспроизведен одинаковым образом, как для человека, так и для модели. Понятно, что это лишь примеры типов данных, которые могут быть обработаны моделью нейронной сети, и что специалисту в данной области известны другие типы пригодных для просмотра данных, которые могут быть классифицированы моделью нейронной сети.
[0045] Модель нейронной сети может быть натренирована на прием данных и создание аннотации для этих данных, такой как классификация или маркировка данных. Например, аннотация может описывать содержимое данных. В некоторых вариантах реализации модель представляет собой модель обнаружения объекта, благодаря чему модель обнаруживает, присутствует ли конкретный объект или признак в данных или нет. В некоторых вариантах реализации объект представляет собой стент на медицинском изображении. В некоторых вариантах реализации модель представляет собой модель определения местоположения, благодаря чему модель указывает местоположение в данных, соответствующее конкретному объекту или признаку данных. В некоторых вариантах реализации модель может определять местоположение стента на медицинском изображении. В примерах, где данные являются данными изображения, таким как данные медицинского изображения, аннотация может описывать содержимое изображения или, в случае медицинской визуализации, аннотация может описывать один или более анатомических признаков или объектов на изображении. В некоторых примерах аннотация может указывать диагноз медицинского состояния, которое можно наблюдать на основании медицинского изображения. В примерах, где данные являются документом, таким как медицинская запись, модель может быть натренирована на аннотирование данных путем определения некоторых признаков или получение определенных выводов из содержимого документа (например, на основе медицинской записи модель может быть натренирована на определение того, что у пациента может быть высокий риск развития диабета). В вариантах реализации, где данные представляют собой форму сигнала, модель может быть натренирована, например, на определение местоположений, таких как аномалии в форме сигнала. Однако понятно, что это лишь примеры типов способов, которыми могут быть аннотированы данные, и что специалист в данной области может придумать другие аннотации, которые могут быть созданы моделью.
[0046] Как отмечено выше, при исполнении процессором 102 набор инструкций может вызывать получение процессором 102 тренировочных данных, которые содержат: данные, аннотацию для этих данных, которая определена пользователем, и вспомогательные данные, причем вспомогательные данные описывают по меньшей мере одно представляющее интерес местоположение в данных, рассматриваемое пользователем при определении аннотации для данных.
[0047] Как правило, тренировочные данные представляют собой пример частей данных, иллюстрирующих тип данных, подлежащих классификации моделью, как описано выше. Например, если модель предназначена для классификации данных изображения (таких, как данные медицинского изображения), то тренировочные данные представляют собой примеры изображений того же типа, которые подлежат классификации моделью. Аннотация для данных определяется пользователем и представляет собой пример аннотации того же типа (например, классификации или метки), которую должна создать модель, как описано выше.
[0048] Тренировочные данные также содержат вспомогательные данные, которые описывают по меньшей мере одно представляющее интерес местоположение в данных, рассматриваемое пользователем при определении аннотации для данных. В некоторых вариантах реализации вспомогательные данные содержат данные отслеживания взгляда, и по меньшей мере одно из представляющих интерес местоположений в данных содержит по меньшей мере одно местоположение в данных, наблюдаемое (например, просматриваемое) пользователем при определении аннотации для данных. Как правило, местоположения в данных, которые просматриваются пользователем при определении им аннотации, могут представлять признаки данных, которые важны для определения правильной аннотации для данных. Поэтому предоставление этой информации модели позволяет руководить моделью во время процесса тренировки на рассмотрение этих (или эквивалентных) местоположений в других данных при аннотировании этих других данных.
[0049] В некоторых вариантах реализации данные отслеживания взгляда содержат одно или более из: информации, указывающей, на какие части данных смотрел пользователь при определении аннотации для данных; информации, указывающей количество времени, потраченного пользователем на просмотр каждой части данных при определении аннотации для данных, и информации, указывающей порядок, в котором пользователь просматривал различные части данных при определении аннотации для данных. Таким образом, можно оценить относительную важность разных частей данных. Например, представляющее интерес местоположение в данных может быть особенно важным (например, определяющим фактором) при создании правильной аннотации (или классификации), если пользователь рассматривал это представляющее интерес местоположение в течение длительного времени по сравнению с другими местоположениями в данных, или если пользователь неоднократно возвращался к этому представляющему интерес местоположению (это указывает на то, что представляющее интерес местоположение может быть одной из наиболее важных частей данных) при определении соответствующей аннотации для данных. Кроме того, порядок, в котором пользователь рассматривает каждое представляющее интерес местоположение, тоже может быть важным. Например, пользователь может сначала обратить внимание на признаки в данных, которые наиболее важны для рассмотрения при определении правильной аннотации для данных. В альтернативном варианте реализации может оказаться, что признаки, рассматриваемые пользователем последними, являются наиболее важными признаками, например, если требуется время, чтобы пользователь «выполнил доводку» на более мелких признаках данных, которые используются для определения окончательной аннотации.
[0050] На Фиг. 2 показан пример вспомогательных данных в соответствии с вариантом реализации. В этом варианте реализации данные представляют собой изображение, а вспомогательные данные представляют собой график. Ось X графика представляет время, а ось Y представляет координаты изображения. Линия 202 указывает координату по оси X изображения, которую пользователь рассматривал в каждый момент времени, а линия 204 указывает координату по оси Y изображения, которую пользователь рассматривал в каждый момент времени при определении пользователем аннотации для изображения. Из этого графика можно увидеть, например, что первое представляющее интерес местоположение, наблюдаемое пользователем примерно в момент времени «500», имело координаты (x, y)°= (500, 400).
[0051] В некоторых вариантах реализации вспомогательные данные представляют собой изображение, имеющее компоненты изображения (например, пиксели или, в трехмерном случае, воксели), причем каждый компонент изображения соответствует части данных. На Фиг. 3 приведен пример вспомогательных данных в варианте реализации, в котором данные представляют собой изображение. В этом варианте реализации вспомогательные данные 300, как показано на Фиг. 3, представляют собой копию наложения изображения с маркерами 302, указывающими по меньшей мере одно представляющее интерес местоположение на изображении.
[0052] В некоторых вариантах реализации вспомогательные данные представляют собой тепловую карту, где значения компонентов изображения (например, пиксели или воксели) на тепловой карте коррелируют с тем, соответствует ли каждый компонент изображения представляющему интерес местоположению в данных, и/или с временем, которое потратил пользователь на рассмотрение соответствующего местоположения данных при определении аннотации для данных. Например, значение каждого компонента изображения может быть пропорционально отрезку времени, которое пользователь потратил на рассмотрение (например, просмотр или сопровождение жестами) соответствующей части данных при определении аннотации для данных.  На Фиг. 4 показана пример варианта реализации, в котором вспомогательные данные представляют собой тепловую карту 400. В этом варианте реализации значение каждого компонента изображения пропорционально отрезку времени, которое пользователь потратил на наблюдение (например, просмотр) соответствующей части данных. Например, чем белее (например, горячее) компонент изображения, тем больше времени потратил пользователь на наблюдение за соответствующей частью данных при определении аннотации. На Фиг. 4 белые области 402 совпадают с представляющими интерес местоположениями в данных. Специалисту в данной области понятно, что тепловые карты могут быть коррелированы с продолжительностью отслеживания взгляда способами, отличными от описанных в настоящем документе, которые приведены просто в качестве примеров. Например, значения тепловой карты необязательно могут быть прямо пропорциональны продолжительности времени, потраченного пользователем на наблюдение за соответствующей частью данных. Например, значения могут быть обратно пропорциональны (например, чем «холоднее» значения, тем дольше наблюдались соответствующие области) и/или масштабированы в соответствии с логарифмом или квадратом времени наблюдения.
[0053] В некоторых вариантах реализации тепловая карта может быть создана путем свертки дискретных координат отслеживания взгляда или жестикуляции с помощью ядра плотности, такого как гауссово ядро плотности. Это по существу распространяет координаты отдельных представляющих интерес местоположений (например, точек) на представляющие интерес области.
[0054] Хотя были приведены различные примеры данных отслеживания взгляда, понятно, что возможны и другие форматы данных отслеживания взгляда, такие как созданные с учетом требований эргономики представления признаков, представление на основе анализа главных компонент (Principal Component Analysis, PCA) или кодирование представляющих интерес местоположений (например, координат отслеживания взгляда/жестикуляции/речи) в сводный вектор с непрерывными значениями (например, с использованием рекуррентной нейронной сети с длинной кратковременной памятью (Long Short-Term Memory, LSTM), как это обычно делают при обработке текстов на естественных языках), сжатые представления, случайные проекции или разреженные представления в виде кортежей значений координат.
[0055] В некоторых вариантах реализации вспомогательные данные представляют собой данные жестикуляции, и по меньшей мере одно из представляющих интерес местоположений содержит по меньшей мере одно местоположение, которое сопровождал жестикуляцией (например, указывал, кивал головой или перемещал свою голову в направлении) пользователь во время определения аннотации для данных.
[0056] В некоторых вариантах реализации вспомогательные данные представляют собой речевые данные, и по меньшей мере одно из представляющих интерес местоположений содержит по меньшей мере одно местоположение, которое комментировал пользователь (например, упоминал вслух) пользователь при определении аннотации для данных. Например, пользователь может давать речевые подсказки во время составления соответствующей аннотации для данных (например, пользователь может ссылаться на содержимое «левого верхнего угла изображения»).
[0057] Следовательно, в общем случае представляющие интерес местоположения могут представлять собой местоположения в данных (или части данных), которые пользователь использовал для определения правильной аннотации для данных. Понятно, что по меньшей мере одно представляющее интерес местоположение в данных может быть выведено из любой комбинации вышеприведенных примеров (например, одно или более представляющих интерес местоположений, выведенных из данных отслеживания взгляда, в дополнение или в качестве альтернативы к одному или более представляющим интерес местоположениям, выведенным из речевых данных, в дополнение или в качестве альтернативы к одному или более представляющих интерес местоположениям, выведенным из данных жестикуляции).
[0058] В некоторых вариантах реализации может быть вызвано исполнение процессором 102 получения тренировочных данных из базы данных (например, тренировочные данных могут представлять собой ранее собранные данные за прошлые периоды). Такая база данных может храниться локально по отношению к системе 100. В альтернативном варианте реализации такая база данных может храниться удаленно по отношению к системе 100, например, на внешнем сервере.
[0059] В некоторых вариантах реализации может быть вызвано исполнение процессором 102 получения тренировочных данных динамически (например, в режиме реального времени) от пользователя. Например, процессор 102 может быть выполнен с возможностью взаимодействия с одной или более частями оборудования, такого как медицинское оборудование, для получения данных в качестве тренировочных данных. Например, может быть вызвано исполнение процессором 102 взаимодействия с медицинским оборудованием и отправки инструкций медицинскому оборудованию для подачи медицинскому оборудованию команды на получение одного или более медицинских изображений для использования в тренировочных данных. При выполнении процессором 102 набор команд может также вызывать предоставление процессором 102 инструкций пользовательскому интерфейсу 104 на подготовку данных к отображению пользователю системы для просмотра пользователем.  После этого пользователь может определить аннотацию для данных из визуализированных данных.
[0060] В некоторых вариантах реализации система 100 может также содержать пользовательский интерфейс 104 или пользовательские интерфейсы 104, пригодные для захвата визуальных изображений и/или аудиоданных от пользователя, когда пользователь аннотирует данные. Например, когда вспомогательные данные представляют собой данные отслеживания взгляда и/или данные жестикуляции, система 100 может также содержать записывающее устройство (например, устройство захвата изображения, камеру или видеомагнитофон), пригодное для записи движений отслеживания взгляда пользователя (например, движения и/или направление движений глаз пользователя) и/или жестикуляционных движений пользователя (например, движений конечностей, рук, головы или других частей тела). В некоторых вариантах реализации при исполнении процессором 102 набор инструкций может также вызывать определение процессором 102 из видеоданных или данных изображения пользователя по меньшей мере одного представляющего интерес местоположения в данных. В некоторых вариантах реализации упомянутые видеоданные и данные изображения могут представлять собой видеоданные или данные изображения пользователя, когда пользователь аннотирует данные (например, когда пользователь в процессе аннотирования данных). Специалисту в данной области известны способы определения местоположений взгляда пользователя на экране на основе изображений глаз пользователя и/или способы преобразования данных жестикуляции (таких, как указание) в эквивалентное положение на экране.
[0061] В некоторых вариантах реализации система 100 может содержать пользовательский интерфейс 104 для аудиозаписи, такой как микрофон или другое устройство аудиозаписи. В некоторых вариантах реализации при исполнении процессором 102 набор инструкций может также вызывать определение процессором 102 из аудиозаписи пользователя по меньшей мере одного представляющего интерес местоположения в данных. В некоторых вариантах реализации аудиозапись может быть сделана, когда пользователь аннотирует данные. В некоторых вариантах реализации при исполнении процессором 102 набор инструкций может также вызывать определение процессором 102 по меньшей мере одного представляющего интерес местоположения в данных из аудиозаписи с использованием методов обработки языка. Например, может быть вызвано исполнение процессором 102 выделения ключевых терминов в речи (например, слов, таких как «вверху», «внизу» или «сбоку») и сопоставление их с местоположениями в данных (или частях данных).
[0062] Кроме того понятно, что система может также быть использована на трехмерных данных, например, представляющие интерес местоположения могут быть определены в трехмерных данных посредством движений глаз, жестов и речи, объединенных с информацией, описывающей ориентацию или часть трехмерных данных, которые отображаются пользователю во время движений глаз, жестов или воспроизведения речи. В некоторых вариантах реализации система может содержать пользовательские интерфейсы 104, такие как дисплеи и записывающие устройства, пригодные для отображения данных и захвата отслеживания взгляда/жестов и/или речи в среде дополненной реальности, таким образом обеспечивая повышенные возможности для аннотирования и захвата вспомогательных данных в трех измерениях.
[0063] Хотя в настоящем документе были приведены примеры способов, которыми может быть вызвано осуществление процессором 102 выделения представляющих интерес местоположений в данных на основе видеозаписей, аудиозаписей и изображений пользователя, понятно, что это просто примеры, и что также возможны другие способы.
[0064] После получения тренировочных данных исполнение набора инструкций процессором 102 вызывает исполнение процессором 102 тренировки модели с использованием тренировочных данных. Вызывают исполнение процессором 102 тренировки модели путем минимизации вспомогательной функции потерь, которая сравнивает по меньшей мере одно представляющее интерес местоположение с выходными данными одного или более слоев модели, и минимизации основной функции потерь, которая сравнивает аннотацию для данных, определенную пользователем, с аннотацией, созданной моделью.
[0065] Специалисту в данной области известны основные функции потерь (или функции стоимости), посредством которых аннотацию данных, которая определена пользователем, сравнивают с аннотаций, созданной моделью. Тип функции потерь, которую представляет собой основная функция потерь, будет зависеть от типа аннотации, создаваемой моделью. Например, модели, в которых диапазон возможных значений аннотации является непрерывным (например, модель местоположения, в которой модель выводит координаты x, y), основная функция потерь может представлять собой функцию потерь на основе среднеквадратичной ошибки (Mean Square Error, MSE). В проблемах классификации, в которых выход является дискретным (например, аннотация указывает, присутствует ли объект или признак в данных или не присутствует), основная функция потерь может представлять собой функцию потерь на основе перекрестной энтропии. Однако понятно, что это всего лишь примеры, и что специалисту в данной области известны другие формы функции потерь, которые могли бы быть использованы в качестве основной функции потерь.
[0066] В некоторых вариантах реализации вызов исполнения процессором 102 минимизации вспомогательной функции потерь включает вызов исполнения процессором 102 сравнения вспомогательных данных с выходными данными одного или более сверточных слоев модели. Это может быть уместно, например, если вспомогательные данные представляют собой изображение в виде выходных значений нейронов в сверточном слое модели, которые в совокупности эффективно представляют изображение (например, свертку входного изображения). Таким образом, например, тепловая карта может быть сравнена с выходными данными одного из сверточных слоев для определения того, создает ли сверточный слой изображение, соответствующее представляющим интерес местоположениям (например, выделяющее или выявляющее их) или признакам, находящимся в представляющих интерес местоположениях во вспомогательных данных.
[0067] В некоторых вариантах реализации вызов исполнения процессором 102 минимизации вспомогательной функции потерь включает вызов исполнения процессором 102 сравнения вспомогательных данных с выходными данными одного или более плотных слоев модели. Нейроны в плотных слоях моделей нейронной сети обычно создают числовые значения, которые можно легче сравнивать со вспомогательными данными, представленными в виде значений.
[0068] Однако понятно, что вспомогательные данные могут быть сравнены не непосредственно с выходными данными слоя модели. Например, в некоторых вариантах реализации одно или оба из выходных данных слоя и вспомогательных данных могут быть преобразованы в форму, подходящую для выполнения сравнения.
[0069] В вариантах реализации, где вспомогательные данные представляют собой непрерывные значения (например, в отличие от цифровых значений), например, когда вспомогательные данные представляют собой изображение, такое как тепловая карта, вспомогательная функция потерь может представлять собой функцию потерь на основе среднеквадратичной ошибки. Однако это всего лишь пример, и специалисту в данной области известны другие типы функции потерь, пригодные для использования со вспомогательными данными с непрерывными значениями. Например, в вариантах реализации, где вспомогательные данные представляют собой изображение, выполнение набора инструкций процессором 102 может вызывать исполнение процессором 102 нормализации изображения вспомогательных данных так, что оно образует вероятностное распределение (например, так, что интеграл изображения равен единице). В этом случае вспомогательная функция потерь может представлять собой (категорийную) функцию потерь на основе перекрестной энтропии или функцию потерь на основе дивергенции Кульбака-Лейбнера.
[0070] Посредством минимизации вспомогательной функции потерь, которая сравнивает по меньшей мере одно представляющее интерес местоположение с выходными данными одного или более слоев модели, конкретные слои модели могут быть натренированы на «выявление» или уделение дополнительного внимания представляющим интерес местоположениям (например, местоположениям, которые пользователь рассматривал при определении аннотации) в данных при классификации данных.
[0071] Как правило, при создании машиннообучаемой модели (например, инициализированной) веса в модели устанавливают на произвольные значения. По сути, это означает, что при создании аннотации модель сначала одинаково обрабатывает каждую часть данных. В вариантах реализации в настоящем документе вспомогательные данные сравнивают с одним или более скрытыми слоями модели. Выходные данные каждого слоя модели, как правило, соответствуют признакам или частям данных, которые модель использует для создания аннотации. Следовательно, путем сравнения выходных данных одного или более таких слоев со вспомогательными данными, содержащими представляющие интерес местоположения в данных, можно определять, рассматривает ли модель наиболее уместные части или признаки данных при создании классификации. Поэтому путем минимизации вспомогательной функции потерь конкретный слой может быть натренирован на вывод по меньшей мере одного представляющего интерес местоположения во вспомогательных данных, тем самым тренируя модель на придание наибольшего веса самым важным признакам данных. Таким образом, веса обновляют так, чтобы быстро настроить модель (например, исходя из произвольных значений весов, которые установлены при создании модели) на уделение дополнительного внимания определенным областям данных по сравнению с другими областями при создании аннотации. Это приводит к более быстрой сходимости весов, чем при помощи простой минимизации основной функции, которая сравнивает аннотацию, созданную моделью (например, выходные данные модели), с аннотацией, определенной пользователем. Кроме того, вспомогательные данные могут быть получены без каких-либо дополнительных усилий со стороны пользователя, т. к. вспомогательные данные могут быть получены путем наблюдения за пользователем при определении им аннотации. Следовательно, это экономит время и усилия для пользователя (что потенциально приводит к снижению затрат, если пользователь/аннотатор высококвалифицированный) при сохранении качества аннотаций получающейся в результате модели.
[0072] В некоторых вариантах реализации вызов исполнения процессором 102 минимизации вспомогательной функции потерь может включать вызов исполнения процессором 102 обновления весов модели так, чтобы придать повышенную значимость по меньшей мере одному представляющему интерес местоположению в данных по сравнению с местоположениями в данных, не представляющими интереса. Таким образом, модель придает повышенную значимость тем самым местоположениям в данных, которые являются представляющими интерес местоположениями, рассматривавшимися пользователем при определении им аннотации для данных.
[0073] В некоторых вариантах реализации вызов исполнения процессором 102 минимизации вспомогательной функции потерь включает вызов исполнения процессором 102 обновления весов модели так, чтобы придать повышенную значимость представляющим интерес местоположениям, рассматриваемым пользователем в течение более длительных периодов времени по сравнению с представляющими интерес местоположениями, которые рассматривались пользователем в течение боле коротких периодов времени. Таким образом, модель придает повышенную значимость местоположениям в данных, на наблюдение которых пользователь потратил больше всего времени при определении аннотации для данных (поскольку они могут быть наиболее уместными, характеристическими или трудноуловимыми частями данных).
[0074] В некоторых вариантах реализации вызов исполнения процессором 102 минимизации вспомогательной функции потерь включает вызов исполнения процессором 102 обновления весов модели так, чтобы придать повышенную значимость представляющим интерес местоположениям в данных, которые рассматривались пользователем в течение начального интервала времени при определении аннотации для данных. Например, повышенная значимость может быть придана представляющим интерес местоположениям в данных (например, частям данных), которые пользователь рассматривал (например, наблюдал, просматривал, сопровождал жестами или говорил о них) первыми или в течение первой половины, или первой четверти (или любой другой части) интервала времени, которое пользователь потратил при определении аннотации для данных. Такие признаки, которые пользователь рассматривал первыми, могут представлять собой самые крупные, наиболее значимые признаки при выполнении определения.
[0075] В некоторых вариантах реализации вызов исполнения процессором 102 минимизации вспомогательной функции потерь включает вызов осуществление процессором 102 обновления весов модели так, чтобы придать повышенную значимость представляющим интерес местоположениям в данных (например, частям данных), которые рассматривались пользователем в течение заключительного интервала времени при определении им аннотации для данных. Например, повышенная значимость может быть придана частям данных, которые пользователь рассматривал (например, наблюдал, просматривал, сопровождал жестами или говорил о них) последними или в течение второй половины, или последней четверти (или любой другой части) интервала времени, которое пользователь потратил при определении аннотации для данных. Такие признаки, которые пользователь рассматривал последними, могут представлять собой наиболее трудноуловимые или характеристические признаки, на которые пользователь сначала не обратил внимания, и которые в конечном счете могут оказать наибольшее влияние на аннотацию.
[0076] В некоторых вариантах реализации вызов исполнения процессором 102 минимизации вспомогательной функции потерь включает вызов исполнения процессором 102 обновления весов модели так, чтобы придать повышенную значимость представляющим интерес местоположениям в данных (например, частям данных), которые рассматривались пользователем множество раз при определении аннотации для данных. Например, модель может придавать повышенную значимость частям данных, к которым пользователь возвращался, т.к. они могут представлять собой наиболее значимые или важные признаки для выполнения классификации, или они могут указывать на аномалию, которая может быть значимой для классификации.
[0077] Понятно, что возможны также различные комбинации, например, повышенная значимость может быть придана любому отдельному одному из, любой комбинации или перестановке одного из: представляющих интерес местоположений в данных, рассматривавшихся в течение начального интервала времени, заключительного интервала времени и/или представляющих интерес местоположений, которые рассматривались пользователем множество раз, при определении аннотации для данных.
[0078] Как отмечено выше, основная функция потерь и вспомогательная функция потерь служат для разных целей и, следовательно, в разные моменты времени может оказаться полезным концентрироваться на минимизации той или иной из этих функций потерь в зависимости от стадии тренировки и/или целей тренировки. В некоторых вариантах реализации вызов исполнения процессором 102 тренировки модели включает вызов исполнения процессором 102 минимизации вспомогательной функции потерь и основной функции потерь параллельно (например, как основная функция потерь, так и вспомогательная функция потерь могут обновляться при каждой обработке тренировочных данных моделью). Таким образом, скрытые слои модели тренируют одновременно с выходными слоями. В некоторых вариантах реализации вызов исполнения процессором 102 тренировки модели включает вызов исполнения процессором 102 минимизации вспомогательной функции потерь перед минимизацией основной функции потерь. Например, тренировка скрытых слоев для концентрации на представляющих интерес местоположениях в данных перед тренировкой верхних и/или выходных слоев может быть более эффективной с вычислительной точки зрения. В некоторых вариантах реализации вызов исполнения процессором 102 тренировки модели включает вызов исполнения процессором 102 минимизации вспомогательной функции потерь в пределах заданного порога с последующей тренировкой модели с использованием основной функции потерь. Таким образом, нижние слои модели могут быть частично натренированы с использованием вспомогательных данных и доведены на конкретной проблеме, которую должна решать модель. Понятно, что возможны также различные комбинации режимов тренировки, например, тренировка может включать сначала минимизацию вспомогательной функции потерь в пределах порога, затем минимизацию вспомогательной функции потерь и основной функции потерь параллельно с последующим периодом минимизации только основной функции потерь. Понятно, что различные стадии могут быть повторены или скомбинированы в любом порядке. Например, после периода минимизации только основной функции потерь может быть вызвано выполнение процессором 102 минимизации вспомогательной функции потерь, например, в случае получения новых тренировочных данных.
[0079] В некоторых вариантах реализации при исполнении процессором 102 набор инструкций также вызывает исполнение процессором 102 вычисления комбинированной функции потерь, причем комбинированная функция потерь содержит взвешенную комбинацию основной функции потерь и вспомогательной функции потерь, и коррекции одного или более весов, связанных со взвешенной комбинацией комбинированной функции потерь, чтобы переключить акцент в тренировке между минимизацией основной функцией потерь и минимизацией вспомогательной функцией потерь. Например, комбинированная функция потерь может представлять собой взвешенную линейную комбинацию основной функции потерь и вспомогательной функции потерь. Веса, связанные со взвешенной комбинацией, могут быть скорректированы для изменения акцента тренировки, например, путем уменьшения веса вспомогательной функции потерь по сравнению с весом основной функции потерь для придания большего акцента результатам минимизации основной функции потерь в тренировочном процессе, или наоборот. В некоторых вариантах реализации веса потерь могут быть оптимизированы с использованием перекрестной проверки или выбраны на основе предшествующих знаний. В некоторых вариантах реализации веса взвешенной линейной комбинации могут претерпевать изменения со временем, например, в некоторых вариантах реализации вес, связанный со вспомогательной функцией потерь во взвешенной комбинации, может быть уменьшен (например, линейно) с течением времени (например, от 1 до 0 в ходе тренировки). В качестве альтернативы или дополнительно вес, связанный с основной функцией потерь во взвешенной линейной комбинации, может быть увеличен (например, линейно) с течением времени (например, от 0 до 1 в ходе тренировки). Таким образом, акцент тренировки может динамически изменяться с течением времени с минимизации вспомогательной функции потерь на минимизацию основной функции потерь. В некоторых вариантах реализации комбинированная функция потерь может быть использована в алгоритмах обучения типа алгоритма обратного распространения ошибки.
[0080] На Фиг. 5 показан пример процесса, который может быть выполнен системой 100 в соответствии с вариантом реализации. В этом варианте реализации модель предназначена для объединенных задач обнаружения стента и локализации стента на медицинском изображении. Обнаружение стента включает определение того, присутствует ли стент на изображении или нет, с выводом аннотаций, например, «стент присутствует» или «стент не присутствует». Локализация стента включает определение местоположения стента на медицинском изображении и вывод аннотаций, таких как координаты x,°y центра ограничивающего прямоугольника, окружающего стент, и высота с шириной стента. Понятно, что изложенные в настоящем документе идеи более широко применимы к моделям обнаружения объекта и/или локализации объекта в более общем виде.
[0081] В этом варианте реализации, соответственно, тренировочные данные представляют собой медицинские изображения, содержащие стенты. Медицинские изображения аннотируются пользователем. Пользователь предоставляет две аннотации: первая аннотация описывает, присутствует i) ли стент или не присутствует ii) на изображении, а вторая аннотация описывает местоположение стента (если стент присутствует на изображении) в виде координат x, y, указывающих центр ограничивающего прямоугольника, окружающего стент, и длины с шириной этого окружающего прямоугольника. Тренировочные данные также включают вспомогательные данные, представляющие собой данные отслеживания взгляда, которые указывают на по меньшей мере одно представляющее интерес местоположение, которое рассматривал (например, просматривал) пользователь при определении соответствующих аннотаций для данных. Тренировочные данные, содержащие данные отслеживания взгляда и медицинские изображения, описывались выше применительно к системе 100, и понятно, что изложенные там подробности в равной степени применимы в данном случае.
[0082] В этом варианте реализации модель представляет собой модель нейронной сети, содержащую сверточные слои 502 и плотные слои 504. Система, такая как система 100, тренирует модель с использованием тренировочных данных путем минимизации вспомогательной функции 506 потерь, которая сравнивает по меньшей мере одно представляющее интерес местоположение с выходными данными одного или более слоев модели, а также первой и второй основных функций 508, 510 потерь, одна из которых предназначена для проблемы обнаружения 508, а другая предназначена для проблемы локализации 510, и которые сравнивают соответствующие аннотации для данных, определенные пользователем, с аннотациями, созданными моделью.
[0083] На Фиг. 5a показаны взаимодействия между различными частями модели (представленными прямоугольниками) и различными входными и выходными данными во время процесса тренировки. Изображение 512 вводят и обрабатывают посредством сверточных 502 и плотных 504 слоев модели для получения выходных данных, содержащих указание того, присутствует 514 ли стент, и указание местоположения 516 стента (при наличии такового). Модель также обеспечивает выходные данные из каждого слоя модели (помеченные как вспомогательные выходные данные 518).
[0084] Затем в модель подают аннотации, созданные пользователем. Как отмечено выше, в этом варианте реализации аннотации содержат указание того, присутствует 520 ли стент на изображении, и местоположение ограничивающего прямоугольника 522. В модель также подают вспомогательные данные 524 в виде одного или более представляющих интерес местоположений, которые просматривал пользователь при определении аннотаций (например, данные отслеживания взгляда).
[0085] Затем модель тренируют путем минимизации вспомогательной функции 506 потерь, которая сравнивает по меньшей мере одно представляющее интерес местоположение в данных 524 отслеживания взгляда с выходными данными одного или более слоев модели. В зависимости от того, представлены ли вспомогательные данные в форме изображения (например, тепловой карты) или в какой-либо иной форме (например, графической или векторной), вспомогательные данные могут быть сравнены с выходными данными одного или более сверточных слоев 502 или плотных слоев 504, соответственно.
[0086] Тренировка также включает минимизацию первой основной функции 510 потерь, которая сравнивает аннотацию присутствия стента, созданную моделью 514, с аннотацией присутствия стента, определенной пользователем 520. В данном случае первая основная функция 510 потерь может представлять собой функцию потерь на основе перекрестной энтропии или любую другую функцию потерь, пригодную для проблемы классификации.
[0087] Тренировка также включает минимизацию второй основной функции потерь, которая сравнивает аннотацию 516 местоположения стента на изображении, созданную моделью, с аннотацией 522 местоположения, определенной пользователем. В данном случае вторая основная функция 510 потерь может представлять собой функцию потерь на основе среднеквадратичной ошибки или любую другую функцию потерь, пригодную для проблемы регрессии.
[0088] Тренировка модели с использованием основной и вспомогательной функций потерь подробно описана выше применительно к системе 100, и понятно, что изложенные там подробности в равной степени применимы к варианту реализации, показанному на Фиг. 5a.
[0089] На Фиг. 5b показан поток данных через окончательно натренированную модель (например, во время выполнения). Натренированная модель принимает изображение, которое обрабатывают посредством сверточных 502 и/или плотных 504 слоев модели для создания выходных данных обнаружения стента и локализации (например, ограничивающего прямоугольника). Следует отметить, что вспомогательные данные не требуются в качестве входа в натренированную модель и используются только в процессе тренировки, как показано на Фиг. 5a. Таким образом, модель тренируют эффективно и результативно.
[0090] На Фиг. 6 показан компьютеризованный способ 600 тренировки модели нейронной сети в соответствии с вариантом реализации.  Показанный способ 600 в общем случае может быть осуществлен процессором 102 системы 100 или под его управлением.  Способ может быть частично или полностью автоматизирован в соответствии с некоторыми вариантами реализации.
[0091] Способ включает получение тренировочных данных, которые содержат: данные, аннотацию для этих данных, которая определена пользователем, и вспомогательные данные, причем вспомогательные данные описывают по меньшей мере одно представляющее интерес местоположение в данных, рассматриваемое пользователем при определении аннотации для данных (в блоке 602), и тренировку модели с использованием тренировочных данных (в блоке 604). Тренировка модели включает минимизацию вспомогательной функции потерь, которая сравнивает по меньшей мере одно представляющее интерес местоположение с выходными данными одного или более слоев модели, и минимизацию основной функции потерь, которая сравнивает аннотацию для данных, определенную пользователем, с аннотацией, созданной моделью.
[0092] Получение тренировочных данных и тренировка модели с использованием тренировочных данных таким способом подробно описаны выше применительно к системе 100, и понятно, что изложенные там подробности в равной степени применимы к блокам 602 и 604 способа 600, соответственно.
[0093] Таким образом, как описано выше применительно к системе 100, вспомогательные данные (такие, как данные отслеживания взгляда, данные жестикуляции и речевые данные), полученные от пользователя при определении им аннотации для данных, могут быть использованы для улучшения процесса тренировки модели. Поскольку вспомогательные данные могут быть получены задаром без каких-либо дополнительных усилий со стороны выполняющего аннотацию человека, процесс тренировки также более эффективен для пользователя и потенциально более экономичен.
[0094] Также предложен компьютерный программный продукт, содержащий компьютерочитаемый носитель, который имеет содержащийся в нем компьютерочитаемый код, выполненный таким образом, что его исполнение подходящим компьютером или процессором вызывает осуществление компьютером или процессором способа или способов, описанных в настоящем документе.  Поэтому понятно, что изобретение также распространяется на компьютерные программы, в частности, на компьютерные программы на или в носителе, приспособленном для воплощения вариантов реализации на практике.  Программа может быть в виде исходного кода, объектного кода, промежуточного источника кода и объектного кода, например, в частично компилированном виде или любом ином виде, пригодном для использования в реализации способа согласно вариантам реализации, описанным в настоящем документе.
[0095] Понятно также, что такая программа может иметь множество различных структур на архитектурном уровне  Например, программный код, реализующий функциональные возможности способа или системы, может быть подразделен на одну или несколько подпрограмма. Специалистам в данной области понятны множество различных способов распределения функциональных возможностей между этими подпрограммами.  Подпрограммы могут быть сохранены вместе в одном исполняемом файле с образованием независимой программы.  Такой исполняемый файл может содержать инструкции, которые могут быть выполнены компьютером, например, инструкции процессору и/или инструкции интерпретатору (например, инструкции интерпретатору Java).  В альтернативном варианте одна или более либо все подпрограммы могут храниться в по меньшей мере одной внешней библиотеке файлов и связываться с основной программой статически или динамически, например во время исполнения.  Основная программа содержит по меньшей мере одно обращение к по меньшей мере одной из подпрограмм. Подпрограммы могут также содержать обращения к функциям друг друга.
[0096] Вариант реализации, относящийся к компьютерному программному продукту, содержит выполненные с возможность исполнения инструкции, соответствующие каждой стадии обработки по меньшей мере одного из способов, изложенных в настоящем описании.  Эти инструкции могут подразделяться на подпрограммы и/или храниться в одном или более файлов, которые могут быть связаны статически или динамически.  Другой вариант реализации, относящийся к компьютерному программному продукту, содержит выполненные с возможность исполнения инструкции, соответствующие каждому средству по меньшей мере одной из систем и/или продуктов, изложенных в настоящем описании.  Эти инструкции могут подразделяться на подпрограммы и/или храниться в одном или более файлов, которые могут быть связаны статически или динамически.
[0097] Носитель компьютерной программы может быть любым объектом или устройством, выполненным с возможностью содержания программы.  Например, носитель может включать в себя хранилище данных, такое как постоянное запоминающее устройство (ПЗУ), например, ПЗУ на компакт-диске (CD ROM) или полупроводниковое ПЗУ, носитель магнитной записи, например, накопитель на жестком диске.  Кроме того, носитель может быть носителем, выполненным с возможностью передачи, таким как электрический или оптический сигнал, который может быть передан по электрическому или оптическому кабелю, или по радио, или другими средствами.  Когда программа реализована в виде такого сигнала, носитель может быть выполнен в виде такого кабеля, или другого устройства или средств.  В альтернативном варианте носитель может быть интегральной схемой, в которой реализована программа, причем эта интегральная схема адаптируется для выполнения или использования при выполнении соответствующего способа.
[0098] Изучив чертежи, описания и приложенную формулу изобретения, специалисты в данной области могут предложить и осуществить изменения описанных вариантов реализации.  В формуле изобретения слово «содержащий/включающий» не исключает другие элементы или этапы, а грамматические средства выражения единственного числа не исключают множества.  Один процессор или иной модуль может выполнять функции нескольких элементов, перечисленных в формуле изобретения.  Сам факт того, что определенные меры изложены во взаимно отличающихся зависимых пунктах формулы, не означает того, комбинация этих мер не может быть использована эффективно.  Компьютерная программа может храниться/распространяться на подходящем носителе, таком как оптический носитель информации или твердотельный носитель, поставляемый вместе с другим оборудованием или как его часть, но может также распространяться в других видах, например, через Интернет или другие проводные или беспроводные системы дальней связи.  Никакие номера позиций в формуле изобретения не следует рассматривать как ограничивающие объем изобретения.