Наша цель

Если вы изучали математику в школе по крайней мере до 16 лет, скорее всего, вы изучали основы машинного обучения, которое сегодня мы обычно называем искусственным интеллектом (ИИ). Мы научим вас этому с помощью линейной регрессии.

Но сначала вопрос: помните ли вы вычисление линии наилучшего соответствия на уроке алгебры?

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

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

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

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

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

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

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

Как машинное обучение вписывается в ИИ?

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

Что такое машинное обучение?

Классическое определение — Том М. Митчелл. Митчелл — ученый-компьютерщик — дал широко цитируемое определение алгоритмов, изучаемых в области машинного обучения:

"A computer program is said to learn from experience E with respect to some class of tasks T and performance measure P if its performance at tasks in T, as measured by P, improves with experience E.

Прошлый опыт, E, это данные. Машинное обучение — это мусор на входе, мусор на выходе (или GIGO). Если данные неверны, неполны, непоследовательны или всего два, система будет плохо выполнять свою задачу, изо всех сил пытаясь научиться правильному поведению, которое улучшит ее производительность при выполнении этой задачи (и наоборот).

Чем машинное обучение отличается от предыдущих форм ИИ?

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

Предыдущие попытки искусственного интеллекта основывались на логике, закодированной вручную, например. ЕСЛИ это, ТО то. Они требовали адаптации путем добавления, удаления или изменения этой логики инженерами-людьми в ответ на новые обстоятельства или понимание конкретной проблемы ИИ.

Каковы основные типы машинного обучения?

Существует три основных типа:

Контролируемое обучение

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

Неконтролируемое обучение

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

Обучение с подкреплением

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

Контролируемое или неконтролируемое обучение — что лучше?

Для дальнейшего обсуждения контролируемого и неконтролируемого обучения и того, что лучше, см. Здесь.

Что вы можете сделать с помощью этих техник?

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

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

Если все дело в данных, разве это не аналитика?

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

Машинное обучение — это комбинация математических методов, применяемых к данным, объединенных в определенные рабочие процессы (алгоритмы). Многие из них в значительной степени заимствованы из статистики, вероятности, линейной алгебры. Все они используются в аналитике. Так в чем же разница между машинным обучением и аналитикой?

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

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

Линейная регрессия: машинное обучение, о котором вы не знали, что знали

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

Мы собираемся исследовать линейную регрессию. Линейная регрессия — это прогнозирующий и контролируемый метод машинного обучения.

Линейная регрессия — это «привет, мир» машинного обучения.

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

Он используется потому, что включает в себя основные компоненты большинства систем машинного обучения, а также знаком со школьной математикой.

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

И лучшая часть? Вы изучали это в школе!

Что такое линейная регрессия?

Линейная регрессия — это алгоритм, который позволяет прогнозировать заданный результат y для заданного входа x. Вот и все.

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

Что можно сделать с помощью линейной регрессии?

Предсказать вещи! Конкретный пример:

Учитывая количество контрактов, которые должны быть составлены для нового юридического дела (x), сколько счетов (y) это будет стоить клиенту на основе исторических примеров дел с тем же или аналогичное количество документов?

Как работает линейная регрессия?

Алгоритмы контролируемого машинного обучения, такие как линейная регрессия, имеют 8 компонентов, общих для большинства систем машинного обучения:

Ингредиенты для машинного обучения

  1. Цель
  2. Набор данных
  3. Модельная функция
  4. Функция стоимости
  5. Функция оптимизации
  6. Итеративный цикл обратной связи
  7. Параметры
  8. Гипер параметры

Мы изучим каждый, объединяя их вместе.

1. Цель

Для простоты наша цель:

Given a number x we want to predict a related value y

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

Цель, понимание взаимосвязи x и y, известна как модель (подробнее об этом позже).

2. Набор данных

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

  • коллекция примеров
  • где каждый пример представляет собой пару x и y
  • где x – это признак объекта (переменная, не зависящая от y).
  • где y — это метка объекта (переменная, зависящая от x)

По этой причине лучше всего рассматривать машинное обучение, особенно обучение с учителем, как маркировку вещей.

Наш набор данных выглядит так:

Каждая строка в приведенном выше наборе данных является примером связи между известными значениями x и y. Каждое значение x — это функция, а каждое значение y — метка (и то, что мы хотим, чтобы система предсказывала).

Мы разделяем набор данных на:

  1. Набор обучающих данных (зеленый)
  2. Набор данных проверки (оранжевый)
  3. Набор тестовых данных (красный)

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

Думайте об этом, как о том, как вы готовитесь к сдаче экзаменов.

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

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

Наконец, вы проверяете свои знания на выпускном экзамене. Это доказывает вашу способность обобщать свое понимание предмета, задавая новые, ранее невиданные вопросы.

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

Мы можем построить наш набор данных следующим образом:

Цель нашей системы — узнать, какие математические манипуляции, примененные к x, приводят к правильному значению y. Это называется моделью. Как мы увидим, ее также можно представить графически.

3. Модельная функция

Напомним, что целью нашей системы является:

Given a number x we want to predict a related value y

Инженеры по машинному обучению выражают эту взаимосвязь с помощью математического уравнения, известного как функция модели. Математически это:

y = mx + b

Давайте разберем это.

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

А как же m и b?

m и b — магические числа, которые дают правильное значение y при применении к заданному значению x.

m известен как вес или параметр, а b известен как единица смещения. Цель нашей системы — определить правильные значения m и b так, чтобы наша система всегда (или как можно ближе к всегда) правильно предсказывала y для нового значения x.

Таким образом, мы надеемся выбрать любое значение x во вселенной и предсказать значение y, независимо от того, знаем ли мы это значение y или нет.

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

Итак, вы можете начать интуитивно понимать, чему учится наша система, давайте начертим целевую модельную функцию, которую должна изучить наша система:

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

Затем вы использовали линейку, чтобы провести вертикальную линию вверх от нового значения x и горизонтально поперек линии наилучшего соответствия, чтобы найти соответствующее значение y (например, розовые линии).

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

Эта линия наилучшего соответствия представляет собой функцию модели. Это то, что нам нужно, чтобы система научилась. Внимание, спойлер: алгебраически эту строку можно записать как y = 1x + 1 или просто y = x + 1.

Попробуйте сами.

Например, для строки 1 набора данных, где x = 2, мы можем подставить это значение x в нашу модельную функцию y = x + 1 и вернуть y = 3. Когда мы сравним это с правильным значением y для примера 2, мы увидим что это также y = 3. Наша модель правильно предсказывает значение y для данного значения x.

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

Так как же система «узнает» свой путь к правильным значениям m и b?

Угадывая значения m и b снова и снова. Первоначально догадки случайны, но математически настраиваются через петлю обратной связи.

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

Это имеет значение? По-разному. Но это философский вопрос, выходящий за рамки данной статьи.

Итак, философия в сторону. Как система делает эти предположения, узнает, верны они или нет, и в зависимости от этого анализа совершенствует себя? Давайте разберемся!

Функция стоимости

Функция стоимости вычисляет разрыв между предполагаемым значением y системы и фактическим значением y. Она также известна как функция ошибок.

Вернемся к первому примеру в нашем наборе данных. В этом примере x = 2 и y = 3. Если система предсказала y = 10 для x, система может вычислить ошибку, выполнив 10–3 = 7. Другими словами, система ошиблась на 7.

Почему это полезно? У системы есть показатель того, насколько хорошо она работает. Возвращаясь к аналогии с экзаменом. Это немного похоже на то, как если бы у вас были вопросы (значения x) и ответы (значения y), но сначала вы закрываете ответы рукой и угадываете, как ответить на каждый вопрос, а затем убираете руку, чтобы посмотреть, как вы это сделали. Теперь у вас есть мера того, насколько хорошо вы выступили, из чего вы можете извлечь уроки.

Мы увидим, как это происходит более подробно ниже.

5. Функция оптимизации

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

Когда мы говорим о «поворотах», это потому, что машинное обучение является итеративным, что приводит к…

6. Повторяющийся цикл обратной связи

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

Так как же набор данных, функция модели, функция стоимости и функция оптимизации итеративно работают вместе, чтобы изучить взаимосвязь между x и y? Давайте разберемся!

Первый проход, первая конфигурация

Вначале ни системные инженеры, ни система не имеют ни малейшего представления о том, какими могут быть m и b. Вместо этого инженеры инициализируют m и b случайными значениями, например. m = 0,5 и b = 3.

Они подключены к нашей функции модели, например. y = mx + b становится y = 0,5x + 3.

Затем значение x (но не значение y) для первого примера в нашем обучающем наборе данных (ниже) добавляется в функцию модели.

Первый проход, первое предположение

Система вычисляет функцию модели для своего первого приближения к y. С этой конфигурацией:

y = (0.5 x 1) + 3
y = 0.5 + 3
y = 3.5

Таким же образом и прогнозируемое значение Y для первого предположения системы равно y = 3,5.

Первый проход, первая проверка

Итак, как система узнает, правильно ли y = 3,5 для x в этом примере, и является ли текущая конфигурация функции модели правильной или нуждается в настройке?

Просто система вычисляет разницу между:

The Predicted Y Value (y = 3.5) 

AND 

The Actual Y Value (y = 2)

EQUALS

1. 5 (i.e. 3.5 - 2)

Этот расчет выполняется с помощью функции стоимости, и полученное значение, то есть 1,5 в этом примере, является значением стоимости для первого предположения. Реальная математическая функция более сложна, но это основная идея: сравнение прогноза с фактическим результатом и вычисление разницы.

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

Затраты — это промежутки (красные стрелки) между синими точками на графике (наш набор данных пар x + y) и текущей модельной функцией (y = 0,5x + 3) прогнозы для y, показанные оранжевой линией.

Как вы можете видеть, для первого примера в нашем наборе данных, где x = 1, предсказание текущей модельной функции для y отличается на +1,5, потому что оно предсказывает y = 3,5, когда на самом деле y = 2.

Первый проход, первое обновление

На данный момент система сделала свое первое предположение, сравнив его с фактическим ответом, чтобы вычислить разницу между своим предположением и правдой, которая оказалась неверной, на +1,5 (стоимость).

Его цель на этом шаге — определить, какая корректировка его модели сведет к минимуму стоимость следующего предположения, т. е. чтобы следующее предположение было ближе к фактическому значению y при заданном входном значении x.

Функция оптимизации берет текущее значение m, в настоящее время m = 0,5, и корректирует его следующим образом:

а. ПЛЮС небольшая сумма, например +0,1; и

б. MINUS небольшая сумма, например -0,1,

и в каждом случае вычисляет, приведет ли каждое слегка скорректированное значение m к ухудшению (т. е. увеличению) или улучшению (т. е. уменьшению) стоимости.

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

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

Без изучения математики, которая немного выходит за рамки школьной алгебры (если вы не изучали алгебру после 16 лет), вам нужно понять эту интуицию. Функция оптимизации похожа на игру «Горячий или холодный».

Та же самая логика из Hot and Cold применима к функции оптимизации, например.

(A) PLUS Adjustment

Original m = 0.5.  Adjusting m + 0.1 means new m = 0.6.   Plugging this new m into model function we get y = (0.6 x 1) + 3 or y = 3.6.  Plugging that into the cost function, i.e. difference between y = 3.6 (prediction) and y = 2 (actual value), means the cost has increased from 1.5 to 1.6, i.e. got worse. 

(B) MINUS Adjustment
Original m = 0.5. Adjusting m – 0.1 means new m = 0.4.  Plugging this new m into the model function we get y = (0.4 x 1) + 3 or y = 3.4.  Plugging that into the cost function, i.e. difference between y = 3.4 (prediction) and y = 2 (actual value), means the cost has decreased from 1.5 to 1.4, i.e. got better.

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

На данный момент система основывает это решение только на видении только первого примера и его связи с функцией модели.

Чем больше примеров, тем понимание микрокорректировок m по мере того, как они связаны со стоимостью, со временем становится более сложным, детализированным и более точным. Опять же, это как в игре Hot and Cold, где множество маленьких шагов складываются и с возрастающей скоростью приводят вас к скрытому объекту.

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

Предположим, что инженеры установили скорость обучения на уровне 0,25.

Это означает, что m сбрасывается с первоначально случайного значения m = 0,5 на m = 0,25 (т.е. 0,5–0,25 = 0,25). Система перешла от случайной конфигурации m к настройке этих переменных на основе данных.

Тот же самый процесс, примененный к m, одновременно применяется к b (опущено выше для простоты), и для простоты предположим, что b сбрасывается до 1,5 после этого шага.

Второй проход, вторая конфигурация

Затем система перезапускается с новыми конфигурациями для функции модели.

Это означает, что функция модели реконфигурируется с помощью:

m = 0.25 and b = 1.5 (whereas before, for the first pass they were m = 0.5 and b = 3)

Вместе это обновляет функцию модели следующим образом:

From y = 2x + 4 (the configuration from the first pass) to y = 0.25x + 1.5

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

Это означает, что конфигурация функции модели на втором проходе такова:

y = (0.25 x 2) + 1.5

Изучая это уравнение, второе предположение для второго примера, следовательно, равно y = 2,5.

Второй проход, вторая проверка

То же, что и для первого прохода; система сравнивает это новое прогнозируемое значение Y (y = 2) с фактическим значением Y (y = 3) с помощью функции стоимости для создания новой стоимости, т. е. 3–2 = 1.

Намного лучше!

Теперь система отличается от правильного значения всего на +1,0 (y = 3) по отношению ко второму примеру, а не на +1,5 после первого предположения по отношению к первому примеру.

Мы можем построить это следующим образом:

Затраты — это промежутки (красные стрелки) между синими точками на графике (наш набор данных пар x + y) и текущей модельной функцией (y = 0,25x + 1.5) прогнозы для y, показанные оранжевой линией.

Система изучает соотношение между x и y и улучшает это понимание между первым предположением для первого примера и вторым предположением для второго примера. Обратите также внимание, что новая модельная функция стала еще ближе к первому примеру.

Чем больше примеров обрабатывает система, тем ближе линия будет подстраиваться ко всем остальным точкам.

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

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

Промойте и повторите набор обучающих данных

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

Чтобы увидеть, как это происходит в совершенно другом и более разнообразном наборе данных с более чем 50 итерациями (также известными как эпохи), см. ниже:

Подтвердить

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

Тем не менее, два ключевых момента, чтобы понять:

  1. Мы снова выполняем все шаги описанного выше процесса для набора данных проверки, кроме функции оптимизации. Для проверки мы хотим только увидеть, как система работает с новыми, невидимыми, данными, а не использовать эту информацию для обновления производительности системы.
  2. Набор данных проверки еще не был виден системой. Это потому, что мы хотим увидеть, насколько хорошо система работает с новыми, невидимыми ранее данными. Эти данные не были частью обучающего набора данных, поэтому они не могли быть учтены при обучении до этого процесса проверки.

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

Это интуиция, стоящая за валидацией. Это прошлый этап экзаменационной работы в подготовке студента к экзамену.

Тест

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

Как и в случае с проверкой, мы запускаем описанный выше процесс настройки и расчета стоимости, но не выполняем шаг функции оптимизации.

Если система работает хуже на тестовом наборе данных, что могут сделать инженеры ИИ? Множество вещей. Эти вещи называются настройкой гиперпараметров. Давайте рассмотрим их ниже, в том числе вопрос о том, какие части общего процесса были исправлены инженерами, а какие созданы или скорректированы ИИ.

7. Гиперпараметры

Инженер по ИИ определил части (известные как гиперпараметры):

1. Выбор функции модели, например. y = mx + b, а не y = m1 x2 + m2 x2 + b

2. Первоначальный выбор m и b

3. Выбор скорости обучения

4. Выбор функции стоимости

5. Выбор функции оптимизации

6. Количество тренировочных данных

7. Количество и тип функций тренировочных данных

Что касается 7, в приведенном выше рабочем примере мы используем только одну характеристику вещи, x, чтобы предсказать связанное значение y. Однако, возвращаясь к идее о том, что x может быть количеством документов по вопросу, а y — общим количеством часов, затраченных на это дело, мы могли бы добавить в нашу модель дополнительные функции, например. типы документов и их количество, количество и старшинство юристов по данному вопросу, размер каждого документа, количество версий каждого документа и т. д. Это может улучшить модель, поскольку мы знаем, что отношение оплачиваемых часов к делу выходит за рамки количества документов, но не уверены, какие факторы влияют на оплачиваемые счета и как мы взвешиваем их для получения точных оценок оплачиваемых часов.

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

8. Параметры

Так что же система ИИ генерирует или настраивает внутри себя? Части, сгенерированные системой ИИ:

1. Промежуточный и окончательный выбор m (веса) и b (единица смещения).

2. Прогнозируемые значения y для заданного входного значения x

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

Легальная закуска

Как видите, установка линейной регрессии системы ИИ состоит из множества различных компонентов. Схематически мы можем суммировать их ниже.

ИЗОБРАЖЕНИЕ

Обратите внимание, что многие компоненты происходят из разных источников или процессов.

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

Не углубляясь в юридические подробности, предположим, что эти вопросы:

Who owns the input data? If the engineers created it, perhaps them.  But if they scraped it (i.e. downloaded it) from the internet what were they allowed to do with that data?
Did the additional step of rearranging that data (e.g. into labelled x ad y pairs) create any new rights in that data or database?
If the engineers sell their system to a third party who adds their own data and re-trains the model to generate better outputs than the original engineers do they own that output, i,e the newly adjusted model function that provides higher perfromance?
Can we say that the AI generated the m, b and output values and therefore has some agency and ownership of these values, which have potential commercial  value? What about the person providing the data - without the data the system can't learn anything?

Хорошие вопросы для размышления!

Что дальше? (Дальнейшее чтение)

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

Machine Learning for Everyone.  This is a well organized roadmap to the world of machine learning, including lots of intutivie real world examples (no code, no math).  It's excellent as a next step in your learning, going into more detail on the other subtypes of machine learning and their variations.
Machine Learning is Fun.  It's an 8 part article series of excellent practical worked examples.  Knowledge of some basic python and a deeper familiarity with maths will help, but isn't strictly necessary to further your education.

Первоначально опубликовано на сайте lawtomated.