Мысль: сможете ли вы приступить к глубокому обучению в 2021 году?

искусственный интеллект глубокое обучение

предисловие

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

Эта статья была первоначально опубликована в середине 2018 года, когдаГлубокое обучение, нейронные сети безмозглыекогда. Насколько жарко? Было так жарко, что видеокарты были распроданы (не из-за майнинга), а выпускники-тьюторы коллективно рекомендовали студентам перейти на глубокое обучение, ведь без слов «глубокое обучение» в дипломной работе они не могли закончить учебу. улица знала бы Ву Энда.

На этом уровне огня я также решительно вошел в армию глубокого обучения, начал гоняться за звездами (Ву Энда, Ли Хунъи), начал занятия (CS231n, CS229), начал изучать фреймворки (Pytorch, Tensorflow) и начал изучать воду ( Побег ~).

深度学习

Но в мгновение ока с 2021 года прошло более двух лет. Как там сейчас? В 2018 г. в горячем поиске на Жиху уже было "Борьба с алгоритмами и бессмертными", в 2019 г. - "Сумерки богов", в 2020 г. - "Пепел", а мне любопытно, что там в 2021 г. Однако ясно, что люди уже с осторожностью относятся к работе с ИИ, особенно к работе с CV.

На самом деле причина этого явления в том, что CV сейчас находится в затруднительном положении с низким порогом, большим количеством ищущих работу и небольшим количеством профессий, с одной стороны, вливается большое количество студентов, а с другой стороны, существует вялая экономическая среда и все более полные рабочие места. Естественно, сложность трудоустройства на смежные должности достигла 18 уровней ада.

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

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

Это волна интеллекта и автоматизации. Сложность не в инволюции CV, а в том, как не упустить эту эпоху (плюсы в конце статьи).

Статья для решения проблем машинного обучения и глубокого обучения.

Следующий текст был написан в 2018 году и исправлен 15 февраля 2021 года.


Нечего сказать, смотрите новости, искусственный интеллект признан страной:

人工智能教材出版!

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

о чем эта статья

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

Участвующие майоры

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

Две книги на столе, классическая книга-арбуз и библия глубокого обучения.

经典的西瓜书和深度学习圣经

связанные приложения

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

  • Машинное обучение: Например, по рекомендации Taobao, после дня-двух напряженной работы мне вдруг захотелось купить игровую приставку. После того, как вы откроете мобильное приложение Taobao, нажмите «Поиск», введите название определенной игровой приставки (например, Switch) и проверьте информацию о некоторых магазинах, продающих игровые приставки. В настоящее время Taobao уже записывает вашу информацию. Независимо от того, в каком интернет-магазине владельца магазина вы нажимаете, Taobao будет собирать ваши предпочтения. Taobao будет записывать каждую ссылку, по которой вы переходите, и содержание каждой ссылки будет записываться для вас. Когда вы в следующий раз войдете в приложение Taobao, Taobao проанализирует ваши увлечения и характеристики на основе информации, собранной с вашей стороны, и алгоритмов машинного обучения, а затем отправит вам некоторые товары, которые вам больше подходят и которые могут вам понравиться.
  • Глубокое обучение: Другой пример — очень популярный проект по изменению лица — DeepFake:

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

深度换脸

На каждом из трех рисунков выше крайний левый — это лицо Трампа, а крайний правый — лицо Николы, созданное путем извлечения признаков из автоэнкодера. Благодаря этому вы даже можете превратить поддельные видео в настоящие.Это приложение глубокого обучения.Если вам интересен этот проект, вы можете прочитать связанные с ним статьи.

текст

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

Начните говорить о бизнесе, неважно, что вы изучали, в какой сфере вы работаете, не беспокойтесь. Есть некоторые основы программирования (C/C++) и некоторые базовые знания математики (продвинутые числа, линейная алгебра, вероятность и статистика), а основным языком, используемым для машинного обучения, является Python. Python (человек), предположительно, все слышали о нем, независимо от того, знакомы они или нет. Да, этот язык очень популярен, очень мощный, очень мощный и всемогущий. Машинное обучение и python тесно связаны. Многие библиотеки глубокого обучения запрограммированы на языке python, поэтому изучение этого языка также необходимо.

машинное обучение

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

人工智能、机器学习、深度学习关系图

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

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

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

Общий процесс машинного обучения можно условно разделить на:

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

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

Просто, давайте возьмем чуть более сложную функцию:5 = w*x + 4。

Разве эта функция не уравнение? Да, это уравнение, и если мы получим значение x, то сможем найти соответственно w. Но давайте не будем думать о нем с точки зрения уравнений прямо сейчас, давайте подумаем об этом с точки зрения машинного обучения.

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

Итак, мы разработали:5 = w*x + 4.

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

Тренировка определенно отличается от реального боя.Как правило, в процессе нашего машинного обучения наш набор данных делится на две части: тренировочный набор и тестовый набор, которые эквивалентны практике и реальному бою. Конечно же, тренировочный процессконтролируемое обучениеДа что такое контролируемое обучение, короче есть ярлыки и ярлыки. Например, если я даю вам картинку с кошкой, то оценка, соответствующая этой картинке, равна 1. Если на картинке есть собака, то оценка, соответствующая этой картинке, равна 2. Пусть машина научится оценивать Серия выше Есть изображения кошек и собак, и мы даем им правильные изображения и соответствующие ярлыки во время обучения. Это можно понимать как сказать ребенку, сколько ему лет, чтобы узнать картинку, дать ему изображение кота и сказать 1, а также дать ему изображение собаки и сказать 2. Если это неправильно, пусть ребенок вспомнит характеристики собака, и он может не признаться в этом в следующий раз. . Этот вид обучения проходит под наблюдением: в процессе обучения вы знаете, правильное ли ваше суждение, или кто-то наблюдает за вами и говорит вам, какие из ваших суждений неверны.

取自cs231n

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

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

Вернемся к нашему предыдущему вопросу:5 = w*x + 4.

Прежде всего, мы не знаем, что такое w, здесь мы называем w весом. Мы предполагаем, что этот w равен 1 (это инициализация веса, а методов инициализации много), и тогда входные данные x, которые нам требуются, равны 2 (здесь входные данные фиксированы, 2 может быть только 2, 2 равно эквивалентно данным тут, данные полученные из жизни, например если положить 1 монету в автомат с водой, то выйдет бутылка минералки, где 1 вход, минералку не получишь, если вложишь 0,5 или 2 монеты).

Таким образом, x равно 2, w равно 1, это наша первая попытка, мы запускаем алгоритм и вскоре находим,1*2 + 4 = 6. 6 не равно 5, и, конечно, результат неправильный.

Неправильно ли быть неправым? Чтобы добиться правильного результата, мы должны спроектировать стандарт, здесь мы проектируем Loss, далее L, мы пускаем L = y - 5, что является результатом нашего алгоритма и правильный результат (правильный результат здесь также можно назвать наземную правду) разница. Эта потеря - это потеря, а эта функция - функция потерь. Функция потерь указывает, насколько велик разрыв между результатами, полученными нашим алгоритмом, и фактическими результатами. Когда L равно 0, это означает, что наш алгоритм может идеально получить результаты. мы хотим. .

Но, очевидно, L здесь6-5=1, потеря не равна 0, вычисляем производную потери L по весу w по цепному правилу:

dL/dw = dL/dy * dy/dw

очевидно получитьdL/dw = 1*2(x带入为2).

Таким образом, мы получаем производную потерь на входе, здесь мы определяем скорость обучения: r (скорость обучения) мы устанавливаем ее равной: 0,1, поэтому мы получаем формулу градиентного спуска для x:

w = w - r * dL/dw

Приведите конкретные цифры:w = 1 - 0.1 * 2 = 0.8

В это время вес w равен 0,8. Вернемся к исходной формуле:w*x + 4 = 0.8 * 2 + 4 = 5.6

Хотя 5,6 все же не равно 5, но немного ближе к предыдущему результату 6, как видно из L,L = y - 5 = 5.6 - 5 = 0.6, потеря становится меньше после «процесса обучения».

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

Чтобы позаимствовать картинку из курса cs231n:

好的学习率

Эпоха — это количество раз обучения, и результаты, вызванные разной скоростью обучения, различны, поэтому это уместно.

Таким образом, мы тренируемся только один раз, чтобы уменьшить потери с 1 до 0, 6. Когда мы тренируемся несколько раз, потери будут продолжать снижаться, но следует отметить, что потери не падают «точно» до 0, что бывает редко. В дальнейшем потери не изменятся до определенной степени в эксперименте, что свидетельствует об окончании обучения.

Вот вам и машинное обучение.

глубокое обучение

Глубокое обучение является частью машинного обучения и может быть обобщено как нейронная сеть с более глубоким сетевым уровнем.

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

Релевантная информация

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

книги

  • В рекомендуемой серии по математике для программистов есть три книги (первая немного безвкусная, а последние две более сухие), а именно: математика программиста 1, линейная алгебра (математика программиста 2) и вероятность и статистика (математика программиста 2). ) Математика 3), эти три книги могут эффективно дополнить необходимые нам знания по линейной алгебре и вероятности и статистике.

程序员的数学

  • «Zhou Zhihua-Machine Learning-Tsinghua University Press» можно использовать как настольный справочник, похожий на учебник, если читать его глава за главой, он относительно скучен. Рекомендуется к прочтению по мере необходимости.В книге много формул и базовых знаний:book.Douban.com/subject/267…

  • «Машинное обучение на практике», как видно из названия, в этой книге в основном используются программы на Python для написания алгоритмов, связанных с машинным обучением, с меньшим количеством пояснительных формул и более актуальными боевыми кодами:book.Douban.com/subject/247…

  • "Глубокое обучение - Renming Post and Telecom Publishing House" также используется в качестве справочника на столе. Содержание книги очень подробное. Первые несколько глав знакомят с машинным обучением, необходимым для глубокого обучения, это только основа, а затем начните объяснять ряд знаний и формул глубокого обучения. Большинство базовых алгоритмов глубокого обучения, используемых в настоящее время, упомянуты выше, и псевдокоды и формулы сосуществуют:book.Douban.com/subject/270…

  • «Статистический метод обучения» профессора Ли Ханга, эта книга может охватывать около 99% базовых знаний о машинном обучении с помощью книги «Арбуз по машинному обучению», но также эта книга объясняет только некоторые принципы и формулы, лучше всего практиковаться в реальном бою.

Видео материал

  • Серия Ng Enda: онлайн-курсы Ng Enda, как правило, следующие два: один — машинное обучение|Coursera на Coursera, а другой — курс Стэнфордского университета: s229: Macing Learning, оба из которых связаны с машинным обучением. Объясняются математические знания. .Первое проще второго.В этом курсе больше формул и меньше объяснений инженерной практики.Сравнение цен может показаться скучным,но тем не менее это очень важно для закладки фундамента. Если вы не очень хорошо владеете английским языком или смотрите видео, которые загружаются медленно (иногда видео должны быть выше стены), вы можете рассмотреть возможность просмотра внутреннего транспорта: первый урок искусственного интеллекта, проведенный Ву Эндой, Netease Stanford Machine Learning Wu Enda Open Class. Кроме того, недавно Ву Энда планировал опубликовать новую книгу, сочетающую инженерную практику и математическое объяснение.Она совершенно бесплатна и требует только подписки.Если вам интересно, вы можете прочитать ее здесь.

  • Курс машинного обучения NTU Li Hongyi по глубокому обучению:речь.о о.почва.квота.Тайвань/~Террака поторопитесь/они двое...Известный китайский курс машинного обучения, лекции очень внимательные, используемые примеры также более яркие и интересные, лекции юмористические и юмористические, а знания и интересы сосуществуют, Это также рекомендуется.

  • cs231n: Курсы глубокого обучения в Стэнфордском университете:На данный момент 231 ваш.Stanford.Amount/,Можно сказать, что это лучший курс глубокого обучения во всей сети и самый сухой товар, Он объясняет самый простой алгоритм классификации, объясняет все базовые знания, необходимые для нейронных сетей, а также включает в себя несколько классических архитектур нейронных сетей в глубокое обучение (VggNet, ResNet), несколько известных приложений для глубокого обучения и сравнение нескольких фреймворков глубокого обучения, самое главное, что домашнее задание после школы стоит делать, оно сложное и может выучить много ключевых моментов. В целом, этот курс очень рекомендуется.

  • В серии Udacity курсы Udacity известны своими прекрасными инженерными примерами.Большинство проектов, включенных в конце каждого курса, интересны и применимы, например, прогнозирование цен на жилье, классификация пород собак и создание сценариев фильмов. Есть много курсов, но каждый раздел очень короткий, в каждом разделе есть вопросы, на которые нужно ответить, и есть много случайных знаний, которые вы можете изучить.Хотя некоторые объяснения знаний могут быть не очень глубокими, они очень подходят для входа. Всего один балл... Эти курсы не бесплатны.Проще говоря, курс глубокого обучения разделен на два семестра: первый семестр составляет 3299 юаней, а второй семестр - 3999 юаней.

О стоимости обучения

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

Вот ответы за 2018 год:

Если ваше направление — часть машинного обучения (когда нейросеть не задействована, или количество слоев нейросети не очень велико), то требования к компьютеру не очень высокие, и можно использовать обычный ноутбук. С видеокартой или без - неважно. Однако, если ваше основное направление — глубокое обучение и вам необходимо обрабатывать изображение или видеоинформацию, особенно когда количество слоев проектируемой вами нейронной сети относительно велико (количество слоев — глубокое, то есть глубокое обучение), роль видеокарты будет отражена, и видеокарта будет работать глубоко. Изучение кода является подсказкой по выбору видеокарты (модель спереди, объем памяти сзади): GTX 1060 6g начального уровня, самая экономичная GTX 1070 8g, вам нужно подробно изучить GTX 1080ti 11g, конечно, вы можете выбрать видеокарту Titan (3w+) или несколько видеокарт, короче богатство ограничивает воображение. Если на компьютере уже есть видеокарта Nvidia, это также возможно, но это зависит от того, достаточна ли вычислительная мощность (как правило, мощность больше 4.0, чтобы едва начать работу), можно ли ее использовать. вычислительной мощности вашей видеокарты (вычислительных мощностей) достаточно:developer.NVIDIA.com/coarse-GPU.ps: Поскольку цена на видеокарты резко выросла из-за различных факторов, таких как майнинг, необходимо купить или купить, и конвертировать богатство в производительность. Прикрепите анализ скорости работы процессора, графического процессора для глубокого обучения:GitHub.com/Джей Си Джонсон/От…

Просмотры на 2021 год:

Я не использовал последние 30 серий, поэтому пока не буду комментировать. Я использовал 2080ti только для видеокарт 20-й серии (рассуждения о половинной точности очень хороши), но какую видеокарту покупать, зависит от памяти и вычислительных характеристик (поддерживает ли она одинарную точность, половинную точность и т. д.), покупайте на спрос, вы можете сослаться на то, что я написал ранее Статья, все еще имеет справочное значение:

постскриптум

Эта статья была опубликована по случаю Нового 2021 года. Лао Пан по-прежнему желает всем счастливого Нового года и процветания в Году Быка~

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

Поделись волной некоторых из вышеперечисленных ресурсов, собери их в интернете и ответь соответствующим кодом:

  • Ответьте «010», чтобы получить серию математических программ для программистов.
  • Ответ «011» для серии глубокого обучения

общаться

Если вы похожи на меня, Лао Пан очень хочет общаться с вами; если вам нравится контент Лао Пана, обратите внимание и поддержите его. Блог каждую неделю обновляет содержательную оригинальную статью, обратите внимание на паблик-аккаунт»старый блог"Не пропустите последнюю статью. Лао Пан также организует некоторые из своих частных коллекций, надеясь помочь всем.Официальная учетная запись ответит «888», чтобы получить информацию о маршруте обучения Лао Пана и краткое изложение статьи, и многое другое ждет вас, чтобы копать. Если вы не хотите пропустить последний твит Лао Пана, нажмитеТаинственная ссылка.