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

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

Я использую «невозможно» как относительный термин: это могут быть пределы самого поля. Или ваших знаний, или вашего времени или бюджета.

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

Наблюдение: ваша постановка проблемы, вероятно, предполагает слишком много

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

«Эй! У меня есть несколько изображений отсканированных документов ... не могли бы вы создать приложение, которое определяет, подписаны ли они? »

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

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

Пример: «Свободный, как птица» с преобразованиями Лапласа.

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

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

К концу лекции он довел себя до безумия.

"Дамы и господа!" он сказал с сильным акцентом: «Вы только что стали свидетелями решения неразрешимой проблемы. Функция f, застрявшая в клетке t, теперь может свободно летать, как птица в s. Мы решили неразрешимую проблему, перенеся ее в лучшую вселенную, в которой все просто.

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

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

Применение: Обнаружение подписи в Instabase

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

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

  • Решение для шахмат (не рекомендуется)
    Немедленно перейдите в режим машинного обучения и начните экспериментировать с алгоритмами обработки изображений.
  • Решение Translate-to-Checkers (сделайте это вместо этого)
    Прогуляйтесь и подумайте, как бы вы могли переписать правила задачи.

Давайте посмотрим на мыслительный процесс в шахматном стиле:

У заказчика есть папка с изображениями. Звучит довольно сложно. Если вы выполните преобразование Фурье, почерк будет иметь совсем другую частоту, чем печатный текст, но как вы уверены, что сможете разделить эти два? Что, если это шум копировального аппарата, или заметки на полях, или просто красивый почерк, который для глаза компьютера выглядит как напечатанный текст? Или мы могли бы просто пройти полное глубокое обучение, но каким должен быть наш обучающий набор данных для обеспечения надежности для разных типов документов? Потребовалось бы ли нашему приложению, чтобы графические процессоры работали локально? … и так далее…

А теперь давайте посмотрим на мыслительный процесс шашечного перевода:

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

  • Вход 1: исходное изображение документа (необработанный вход)
    Пиксели по-прежнему полезны! Не выбрасывайте исходные изображения, предоставленные вам клиентом.
  • Вход 2: Текст документа (через OCR)
    Что, если бы у нас тоже был текст документа? Это может быть полезно: это позволит нам идентифицировать области документа на основе того, что в нем говорится.
  • Вход 3: связь между изображением и текстом (через метаданные OCR)
    Можно ли позволить клиенту искать текст, который указывает на блок подписи, переводить его в координаты изображения, а затем захватывать область изображения, которое появляется справа от него?

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

Аккуратно: этот переопределенный ввод позволяет нам также переопределить вывод, который мы ищем. Раньше нам нужно было узнать, подписан ли документ. Теперь нам нужно только определить, есть ли на обрезанном белом изображении следы пером. Другими словами, посчитайте темные пиксели.

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

Очевидно, это признак успеха

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

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

Приходите делать свою карьеру в Instabase
Мы нанимаем сотрудников в Сан-Франциско, Нью-Йорке, Бостоне и Бангалоре на разные должности: прикладное машинное обучение, компьютерное зрение, естественный язык. Обработка, Интернет с полным стеком, Системы, Базы данных, Платформа разработчика, Операции разработки, Операции развертывания, Успех клиентов и Техническое написание.

Подайте заявку здесь или напишите по адресу [email protected] и упомяните это сообщение в блоге.