1 Почему стоит выбрать стратегию машинного обучения
машинное обучениеЭто основа бесчисленного множества важных приложений, включая веб-поиск, обнаружение спама, распознавание речи и рекомендации по продуктам. Если вы и ваша команда разрабатываете приложение для машинного обучения и хотите добиться быстрого прогресса, часть содержания этой книги будет вам полезна.
Кейс: Создание стартапа с фотографиями кошек
Предположим, вы строите новую компанию, которая будет предоставлять бесчисленное количество фотографий кошек для любителей кошек. В то же время вы решили использоватьнейронная сетьтехнологии для создания системы компьютерного зрения, которая будет распознавать кошек на картинках.
Ваша команда имеет много улучшений, таких как:
-
Получите больше данных, т.е. соберите больше фотографий кошек
-
Собирайте более разнообразные обучающие наборы данных, такие как фотографии кошек в необычных местах, фотографии кошек странного цвета и фотографии кошек, сделанные с разными параметрами камеры.
-
Увеличьте время обучения алгоритма, увеличив количество итераций градиентного спуска.
-
Попробуйте более крупную нейронную сеть с большим количеством слоев/скрытых единиц/параметров.
-
Попробуйте добавить регуляризацию (например, регуляризацию L2)
-
Изменить архитектуру нейросети (функция активации, количество скрытых элементов и т.д.)
-
...
Если вы сможете сделать правильный выбор среди перечисленных выше возможных направлений, то вы создадите ведущую платформу для распознавания изображений кошек и приведете свою компанию к успеху. Но если вы выберете неправильное направление, вы можете потратить месяцы или даже годы разработки.
2 Как использовать эту книгу, чтобы помочь своей команде
После прочтения этой книги у вас будет четкое представление о том, как задать техническое направление в проекте машинного обучения, но члены вашей команды могут не понять, почему вы рекомендуете конкретное направление. Например, если вы хотите, чтобы ваша команда определила однозначную оценочную метрику, но они не согласны с вами, как вы их убедите?
Вот почему я решил сократить главы, чтобы вы могли распечатать их и дать членам вашей команды возможность прочитать 1 или 2 страницы из них, когда это необходимо.
Небольшое изменение приоритетов может оказать огромное влияние на продуктивность команды, и я надеюсь, что вы сможете стать супергероем в своей команде, помогая своей команде внести эффективные изменения!
3 Предпосылки и обозначения
Если вы прошли курс машинного обучения (например, мой МООК по машинному обучению на Coursera) или если у вас есть опыт применения обучения с учителем, вы сможете понять содержание этой статьи.
контролируемое обучениеотносится к использованию помеченных обучающих выборок для изучения функции, которая отображается из в в . Алгоритмы обучения с учителем в основном включают линейную регрессию (линейную регрессию), логарифмическую регрессию вероятности (логистическую регрессию) регрессия, также переводится как логистическая регрессия) и нейронная сеть. Хотя существует множество форм машинного обучения, большинство алгоритмов машинного обучения, которые сегодня имеют практическую ценность, основаны на обучении с учителем.
Я часто буду ссылаться на нейронные сети (в соответствии с «Глубоким обучением»), но вам нужно только базовое понимание этого, чтобы прочитать позже.
Если вы не знакомы с некоторыми из концепций, упомянутых выше, вы можете посмотреть первые три недели машинного обучения на Coursera. (адрес курса: http://ml-class.org)
4 Масштаб способствует машинному обучению
Многие идеи о глубоком обучении (нейронные сети) существуют уже несколько десятилетий, так почему же эти идеи становятся популярными только сейчас?
Есть два основных фактора, определяющих недавнее развитие:
-
доступность данных: Сегодня люди проводят все больше и больше времени с цифровыми устройствами (ноутбуками, мобильными устройствами и т. д.), а поведение и деятельность в цифровом формате генерируют огромные объемы данных, которые можно передать нашим обучающим алгоритмам для обучения.
-
вычислительная шкала: Всего несколько лет назад мы начали обучать достаточно большие нейронные сети, используя доступные огромные наборы данных.
В частности, производительность старых алгоритмов обучения, таких как логистическая регрессия, «выровняется», даже если вы накопите больше данных. Это означает, что кривая обучения алгоритма «сгладится», и производительность алгоритма перестанет улучшаться, даже если будет предоставлено больше данных.
Старые алгоритмы обучения, похоже, не знают, как обращаться с сегодняшним масштабом данных.
Если вы решите обучить небольшую нейронную сеть (NN) той же задаче контролируемого обучения, вы можете получить более высокую производительность:
На рисунке видно, что применение нейронной сети к небольшому набору данных работает лучше, но этот эффект не совсем согласуется с применением нейронной сети к большому набору данных. Будут ли традиционные алгоритмы работать лучше с небольшими наборами данных, зависит от того, как вы разрабатываете признаки. Например, предполагая, что у вас есть только 20 обучающих выборок, может не иметь значения, используете ли вы регрессию логарифмических шансов или нейронную сеть; разработка человеческих признаков окажет большее влияние, чем предоставление выбора алгоритму. Но если у вас есть 1 миллион выборочных данных, я бы согласился с использованием нейронной сети.
Под «малой нейронной сетью» здесь понимается нейронная сеть с небольшим количеством скрытых элементов/слоев/параметров. Но если вы тренируете все более и более крупные нейронные сети, вы можете получить более высокую производительность:
Итак, для лучшей производительности вы можете сделать:
(i) Обучение большой нейронной сети, эффект подобен зеленой кривой на рисунке выше;
(ii) Обладает огромными объемами данных.
В обучении алгоритмов не менее важны и многие другие детали, например архитектура нейронной сети. Но на данный момент более надежный способ улучшить производительность алгоритма — это обучить большую сеть и получить больше данных.
Процесс выполнения (i) и (ii) чрезвычайно сложен, и его детали обсуждаются далее в этой книге. Мы начнем с общих стратегий, которые работают как в традиционных алгоритмах обучения, так и в нейронных сетях, и постепенно объясним наиболее продвинутые стратегии построения систем глубокого обучения. Для того, чтобы все желающие как можно скорее получили доступ к китайской версии обучающих читов по машинному обучению, мы организовали работу по переводу в кратчайшие сроки. Пожалуйста, несите меня, если есть какие-либо ошибки. Содержание перевода все еще находится в стадии постоянного улучшения. Если у вас есть какие-либо комментарии и предложения, пожалуйста, оставьте нам сообщение. Добро пожаловать, чтобы отсканировать код и подписаться на нашу официальную учетную запись! Спасибо!