Pull to refresh
32
8
Send message

Что такое «программирующая программа»?

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

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

Одним из основоположников отечественной кибернетики и теоретического программирования был математик Алексей Андреевич Ляпунов. Ещё в начале пятидесятых годов прошлого века он предложил операторный метод описания программ и разработал теорию синтаксических программных структур.

Под руководством Алексея Ляпунова в 1954 году в Институте математики АН СССР был написан первый советский транслятор — ПП-1, или «программирующая программа номер 1». Она вызвала большой интерес со стороны высшего руководства страны и получила статус приоритетной разработки.

Уже в 1956 году на её базе создали «ПП-2» первый в мире транслятор с загрузчиком, отладчиком и библиотекой основных процедур. Он использовался на засекреченной ЭВМ «Стрела», установленной в Вычислительном центре Минобороны СССР.

Tags:
Total votes 4: ↑4 and ↓0+4
Comments1

Что такое Bias-Variance Tradeoff?

Компромисс между смещением и дисперсией (Bias-Variance Tradeoff) — одна из базовых концепций в машинном обучении. Она отражает поиск баланса между двумя источниками ошибок в модели предсказания: смещением (bias) оценки параметров и дисперсией (variance) ошибки прогноза. По сути это поиск компромисса между недо- и переобучением.

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

Причина дисперсии ошибок модели — искажения в обучающих данных. Высокая дисперсия ошибки модели может означать, что модель слишком восприимчива к малым отклонениям и пытается трактовать шумы в обучающей выборке. То есть происходит её переобучение: модель показывает хорошие результаты на обучающем наборе данных, но плохо справляется с анализом новых.

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

Tags:
Total votes 3: ↑3 and ↓0+3
Comments0

Гиперпараметры модели

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

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

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

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

Корректно подобранные гиперпараметры могут также улучшить способность модели к обобщению и оптимизировать её работу с учётом конкретной аппаратной платформы.

Tags:
Total votes 2: ↑2 and ↓0+2
Comments0

Что такое YandexGPT?

Рассказываем вместе с нашими экспертами из лаборатории больших данных.

YandexGPT или YaGPT — генеративная нейросеть на основе языковой модели YaLM (Yet another Language Model). Она применяется как режим общения в голосовом помощнике «Алиса» (включается по команде: «Алиса, давай придумаем!»), встроена в Яндекс Браузер и доступна через API в облачной платформе Yandex Cloud.

Главное отличие от ChatGPT состоит в том, что YaGPT изначально обучалась на русскоязычных текстах и поисковых запросах к Яндексу. Поэтому она точнее строит фразы на русском языке.

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

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

Недавно компания "Яндекс" представила обновлённую версию языковой модели — YandexGPT 2. Она лучше справляется с задачами генерации и обработки текста, но также не в курсе последних событий, так как для её обучения использовались наборы данных, собранных до марта 2023 года.

Tags:
Total votes 6: ↑4 and ↓2+2
Comments2

Что такое XLNet?

XLNet, или eXtreme Language Model — это языковая модель, созданная компанией Microsoft в 2017 году. Она использует современную архитектуру Transformer с некоторыми улучшениями и модификациями.

Главное из них — использование функции Cross-Layer Attention, выполняющей обработку контекстуальных зависимостей. Она позволяет моделировать двунаправленные взаимодействия между различными слоями и обеспечивает комплексное представление входных данных.

В классической модели Transformer каждый слой самостоятельно обрабатывает данные. Функция Cross-Layer Attention отменяет это ограничение. Точнее, она позволяет учитывать зависимости между данными, находящимися как выше, так и ниже текущего слоя. Это даёт возможность лучше анализировать контекст, особенно в длинных запросах.

XLNet была обучена на англоязычных датасетах суммарным объёмом около 800 млрд символов, что до сих пор считается является одним из самых больших наборов данных для обучения.

Напишите в комментариях, какие ещё термины вам бы хотелось разобрать в рубрике #нейрословарь, которую мы ведём вместе с экспертами из лаборатории больших данных компании "Криптонит".

Tags:
Total votes 5: ↑5 and ↓0+5
Comments1

Что такое GoogLeNet?

Рассказывают наши эксперты из лаборатории больших данных.

GoogLeNet — глубокая свёрточная нейросеть, разработанная командой исследователей из Google в 2014 году для классификации изображений. «Le» в её названии — это отсылка к нейросети LeNet 5, одной из первых свёрточных нейросетей, способствовавшей развитию идеи глубокого обучения с 1988 года.

Главным отличием архитектуры GoogLeNet от других свёрточных нейросетей (CNN) является использование дополнительного модуля начальной обработки данных — Inception. Он параллельно применяет свёртки с разными размерами ядра (1x1, 3x3, 5x5), а затем объединяет вектора признаков. Это позволяет эффективнее выделять локальные и глобальные признаки анализируемого изображения.

Несмотря на глубокую архитектуру сети, состоящую из 22 слоёв, количество используемых параметров GoogLeNet остаётся относительно небольшим. Это достигается благодаря использованию свёртки 1x1, которая по сути работает как линейный фильтр и уменьшает размерность следующего слоя. Поэтому GoogLeNet менее требовательна к объёму памяти видеокарты, чем AlexNet и другие архитектуры без модуля Inception.

За счёт своей сбалансированности GoogLeNet показывает высокую точность классификации на изображениях различного размера. В 2014-м году она победила в соревновании ImageNet. С тех пор на её основе разрабатываются более современные нейросети, также использующие глубокую свёрточную архитектуру и концепцию модуля Inception.

Tags:
Total votes 4: ↑4 and ↓0+4
Comments0

Что такое YOLO?

Разбираемся вместе с нашими экспертами из лаборатории больших данных.

YOLO (you only look once) — это архитектура детектора по распознаванию объектов в реальном времени. YOLO состоит из двух частей: encoder (свёрточные слои) и head (классификационный слой).

Энкодер выполняет роль первичной обработки изображений и извлечения признаков объектов. Обычно для этого используется Darknet или другая предобученная CNN.

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

Благодаря своей способности анализировать объекты одновременно на всём изображении, YOLO обеспечивает высокую скорость и точность распознавания объектов.

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

Tags:
Total votes 4: ↑4 and ↓0+4
Comments0

Что такое "пирамида признаков"?

Рассказываем в рубрике #нейрословарь вместе с нашими экспертами из лаборатории больших данных.

Пирамида признаков (FPN, Feature Pyramid Net) — это вычислительная архитектура, используемая в машинном зрении для обработки изображений без привязки к их разрешению. Она позволяет обнаруживать объекты на изображениях различных размеров, масштабировать их и автоматически подстраиваться под меняющиеся условия.

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

FPN широко используется во всех сферах, применяющих машинное зрение. Например, пирамида признаков используется для автоматического диагностирования рака груди по маммограммам и в системах помощи водителю для распознавания участников дорожного движения.

Основные конкурирующие архитектуры для FPN — U-Net и SegNet. Они менее требовательны к ресурсам, но работают только с изображениями фиксированного разрешения и распознают объекты определённого размера. FPN лишена этих ограничений, поэтому в условиях меняющегося окружения показывает более стабильные результаты.

Tags:
Total votes 3: ↑3 and ↓0+3
Comments0

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

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

Это может быть текстовый ответ чат-бота, или озвученный с помощью синтеза речи ответ голосового ассистента. Если ответ формируется на другом языке, то мы получаем систему машинного перевода, вроде Google Translate.

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

Напишите, какие ещё термины из сферы машинного обучения вам хотелось бы разобрать в нашей рубрике #нейрословарь.

Tags:
Total votes 3: ↑3 and ↓0+3
Comments0

Что такое многослойный перцептрон (MLP)? Рассказывают эксперты из лаборатории больших данных компании "Криптонит".

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

Для обучения MLP используется принцип обратного распространения ошибки. Одно из преимуществ MLP — способность обучаться на наборах данных любого размера.

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

Исторически MLP применялся для анализа самых разных типов данных — медицинских, финансовых, технических и других, позволяя прогнозировать состояние сложных систем. Кроме того, MLP даже использовали в ранних версиях таких приложений ИИ, как виртуальные помощники, сервисы распознавания рукописного текста и транскрибации речи.

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

Tags:
Total votes 3: ↑3 and ↓0+3
Comments0

Что такое explaining away?

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

Explaining Awayэффект редукции причины как упрощённая схема рассуждений. В машинном обучении она применяется для настройки весов нейросети. Встречаются и другие варианты перевода: «объяснение-отступление» и «эффект оправдания». По смыслу они эквивалентны.

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

Например, в системах автопилота ИИ одновременно сравнивает показания разных датчиков. На близком расстоянии приоритет отдаётся показаниям ультразвуковых сенсоров. Если они сигнализируют о сближении с препятствием, а камеры показывают, что «всё чисто», то данные с камер игнорируются.

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

Напишите в комментариях, какие ещё термины вам хотелось бы увидеть в нашей рубрике #нейрословарь.

Tags:
Total votes 4: ↑4 and ↓0+4
Comments0

Что такое инференс?

В своих разработках «Криптонит» активно использует машинное обучение. Поэтому вместе с нашими экспертами из лаборатории больших данных мы решили расшифровать некоторые термины из этой сферы.

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

С понятием «инференс» тесно связаны две следующие характеристики нейросетей:

Скорость инференса — важная метрика для сравнения производительности решений на базе ИИ. Она оценивается для разных нейросетей на одинаковом оборудовании, либо наоборот: для одной и той же нейросети на разном железе (например, на ядрах архитектур x86-64 и ARM, с ускорением на ГП и без него).

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

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

Напишите в комментариях, какие ещё термины вам хотелось бы увидеть в нашей рубрике #нейрословарь

Tags:
Total votes 10: ↑10 and ↓0+10
Comments0

Information

Rating
913-th
Works in
Registered
Activity