Сверточная нейронная сеть Big Talk CNN (полная галантерейных товаров)

глубокое обучение
Сверточная нейронная сеть Big Talk CNN (полная галантерейных товаров)

утверждение:

1) Эта статья составлена ​​из самоотверженной работы Даниэля и экспертов по машинному обучению в Интернете. Пожалуйста, обратитесь к ссылкам на конкретные цитируемые материалы. 2) Эта статья предназначена только для академического обмена, а не для коммерческого использования. Поэтому конкретные справочные материалы для каждой части не соответствуют в деталях. Если какая-то часть случайно ущемляет всеобщие интересы, свяжитесь с Haihan и свяжитесь с блогером, чтобы удалить ее. 3)У блоггеров мало таланта и знаний.Если в тексте есть что-то неуместное,пожалуйста,указывайте и продвигайтесь вместе,спасибо. 4) Это относится к первой версии, если есть ошибки, то надо дальше исправлять и добавлять или удалять. Я также надеюсь, что вы дадите больше указателей. Каждый понемногу делится и вносит свой вклад в развитие научных исследований на Родине.

О. Предисловие

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

1. Введение

Определение глубокого обучения в энциклопедии Baidu заключается в том, что глубокое обучение (DL, Deep Learning) — это новое направление исследований в области машинного обучения (ML, Machine Learning), которое внедряется в машинное обучение, чтобы приблизить его к исходной цели. - искусственный интеллект (ИИ, Artificial Intelligence). Это определение слишком велико, но оно немного сбивает людей с толку.Глубокое обучение заключается в использовании различных алгоритмов машинного обучения в многослойных нейронных сетях для изучения внутренних законов и уровней представления выборочных данных, чтобы получить набор алгоритмов для различных задач.. Какие различные задачи, в том числе: интеллектуальный анализ данных, компьютерное зрение, распознавание речи, обработка естественного языка и т. д.

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

  • ИИ: пусть машины демонстрируют человеческий интеллект
  • Машинное обучение: путь к целям ИИ
  • Глубокое обучение: методы реализации машинного обучения

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

  • В широком смысле сетевая структура глубокого обучения также является своего рода многослойной нейронной сетью. Проще говоря,Многослойная нейронная сетьШаги, которые нужно сделать: сопоставьте признаки со значениями. Особенностиискусственныйвыбирать.глубокое обучениеШаги, которые нужно сделать, это Signal->Features->Values. особенностисама сетьвыберите.

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

  • Сверточные нейронные сети (CNN) Сверточные нейронные сети
  • Автоэнкодер
  • Разреженное кодирование
  • Ограниченная машина Больцмана (RBM) Ограниченная машина Больцмана
  • Сети глубокого убеждения (DBN) Сеть глубокого убеждения
  • Рекуррентная нейронная сеть (RNN) многослойная рекуррентная нейронная сеть с обратной связью нейронная сеть

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

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

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

在这里插入图片描述
Источник изображения:Колонка Calling.com/afraid/20893777?…

Принцип человеческого зрения.

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

Нобелевская премия по медицине 1981 года была присуждена Дэвиду Хьюбелу (американскому нейробиологу канадского происхождения) и Торстену Визелю, а также Роджеру Сперри. Основным вкладом первых двух было «открытие обработки информации зрительной системой» — зрительная кора иерархична. Как показано ниже:

在这里插入图片描述
Затем путем большого количества экспериментальных исследований был открыт принцип человеческого зрения, а именно: от исходного сигналапотреблениеНачните (пиксели, потребляющие зрачок), затем выполнитепредварительная обработка(кора головного мозга некоторые клетки находят край и направление), затемАннотация(Мозг определяет, что форма объекта перед вами круглая), а затемдальнейшая абстракция(Мозг далее определяет, что объект — воздушный шар).

Ниже приведен пример распознавания лиц, выполняемого человеческим мозгом. Как показано ниже:

在这里插入图片描述
В целом, обработка информации зрительной системой человекаоценкаиз. из нижней области V1Извлечение краевых элементов, а затем в область V2часть формы или целиПодожди, иди на более высокий уровень,Вся цель, поведение целиЖдать. То есть функции высокого уровня представляют собой комбинацию функций низкого уровня, а представление функций от низкого уровня к высокому уровню становится все более и более абстрактным, и все больше и больше может выражать семантику или намерения. Чем выше уровень абстракции, тем меньше возможных догадок и тем лучше для классификации.

Для разных объектов человеческое зрение тоже проходит через этослой за слоем, для познания. Как показано ниже:

在这里插入图片描述
Тогда естественно задуматься: можно ли имитировать эту особенность человеческого мозга, построить многослойную нейронную сеть, выделить в нижнем слое первичные признаки изображения, а через несколько слоев низкоуровневых формировать более высокий слой признаков? функции уровня Комбинация и, наконец, классификация на верхнем уровне? Ответ — да, и это источник вдохновения для многих алгоритмов глубокого обучения, включая CNN.

3. Нейронная сеть

Прежде всего, что такое нейронная сеть? Нейронная сеть также относится кИскусственные нейронные сети(Artificial Neural Networks, сокращенно ANN) — это алгоритмическая математическая модель, которая имитирует поведенческие характеристики биологических нейронных сетей.Связи между нейронами, узлами и узлами (синапсы)Он составлен, как показано на следующем рисунке:

在这里插入图片描述
Математическая модель, абстрагированная от каждого блока нейронной сети, выглядит следующим образом, также называемойдатчик, который принимает несколько входных данных (x_1,x_2,x_3...) для создания выходного сигнала, похожего на то, как нервные окончания воспринимают изменения в различных внешних средах (внешние раздражители), а затем генерируют электрические сигналы для передачи в нервные клетки (также называемые нейронами). Как показано ниже:
在这里插入图片描述
Один персептрон представляет собой простую модель, но в реальном мире фактическая модель принятия решений намного сложнее, часто представляет собой многоуровневую сеть, состоящую из нескольких персептронов, как показано на рисунке ниже, которая также является классической нейронной сетью. модель, авторвходной слой, скрытый слой, выходной слойсоставляют. Как показано ниже:
在这里插入图片描述
Искусственная нейронная сеть может отображать любые сложные нелинейные отношения, обладает высокой надежностью, памятью, самообучением и другими возможностями, а также имеет широкий спектр приложений в классификации, прогнозировании, распознавании образов и так далее.

4. Сверточные нейронные сети

4.1, определение CNN

Главный герой выходит на сцену, остальные отступают! ! ! Как показано ниже:

在这里插入图片描述
Дело в том, что такое сверточная нейронная сеть?

Определение в энциклопедии Baidu:Сверточные нейронные сети (CNN) — это разновидность нейронных сетей с прямой связью (Feedforward Neural Networks), которая включает в себя сверточные вычисления и имеет глубокую структуру, Это связанная проблема машинного обучения, такая как распознавание изображений.

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

4.2. Свертка

Ядром сверточной нейронной сети являетсяОперация свертки, что эквивалентно обработке изображенияоперация фильтра. дляm \times nразмер ядра свертки,

在这里插入图片描述
его исходное изображениеXПроцесс операции свертки: ядро ​​сверткиWкаждый вес вwРазделение и наложение исходных изображенийXСоответствующий пиксель вxУмножьте, а затем суммируйте. Формула расчета:
在这里插入图片描述
Следовательно, полный процесс операции свертки изображения: ядро ​​свертки скользит через определенный интервал и выполняет операцию свертки на покрытой области, чтобы получить значение z, пока не будет пройдено все изображение. Как показано ниже:
在这里插入图片描述
Чтобы привести пример стандартной операции свертки, процесс вычисления начального положения: 1x1+1x0+1x1+0x0+1x1+1x0+0x1+0x0+1x1=4, и детали не будут выводиться.
在这里插入图片描述
Как показано на рисунке выше, размер ядра свертки составляет 3x3, что означает, что ядро ​​свертки каждый раз покрывает 9 пикселей исходного изображения, а строки и столбцы сдвигаются 3 раза, всего 3x3=9 раз, и3\times 3двумерные данные. Как рассчитывается этот размер?

Сначала дайте заключение,Для размераnИсходное изображение после того, как размерfПосле операции свертки размер выходного изображения равенn-f+1. Итак, для примера на рисунке выше требуется 5-3+1=3.

4.3, шаг

Скользите на определенное расстояние, но как определить это расстояние?Это понятие является «шагом» свертки. после шагаsПосле операции размеры его выходного изображения составляют:

\left \lfloor \frac{n-f}{s} \right \rfloor +1

где n — размер изображения, f — размер ядра, а s — шаг.

шаг = 1 означает, что ядро ​​свертки скользит по каждому пикселю с расстоянием 1, что является самым простым одношаговым скольжением в стандартном режиме свертки. Шаг равен 2, что означает, что размер шага перемещения ядра свертки равен 2, соседние пиксели пропускаются, а выходное изображение уменьшается до 1/2 исходного. Шаг равен 3, что означает, что ядро ​​свертки перемещается с шагом 3, пропускает 2 соседних пикселя и уменьшает изображение до 1/3 оригинала и так далее. . .

在这里插入图片描述
Подробные сведения о расчете размера сверточного слоя см. в этой статье.Вычислительные детали сверточных слоев в CNN

4.4, заполнение

В стандартном процессе свертки есть две проблемы:

  • После каждой операции свертки изображение уменьшается в размере. После многих операций изображение со временем потеряет свою первоначальную форму и станет1\times 1«Столбчатый».
  • Пиксели на краю изображения используются только одним выходом, а пиксели в середине изображения используются несколькими выходами. Это означает, что процесс свертки теряет много информации о расположении краев изображения.

Для этой проблемы необходимы дополнительные «фальшивые» пиксели (обычно 0, отсюда и часто используемый термин «фальшивые» пиксели).заполнение нулями") для заполнения краев. Таким образом, ядро ​​свертки при скольжении может позволить исходному краевому пикселю находиться в его центре, расширяясь до ложных пикселей за пределы края. Пусть размер пикселя заполнения будетp,ноnэто становитсяn+2p, поэтому размер выходного изображения\left \lfloor \frac{n+2p-f}{s} \right \rfloor +1.

Что касается выбора заполнения пикселей, обычно есть два варианта: «Действительная свертка» и «Та же свертка».

  • Действительные средства сверткине заполнено, то есть изображение будет свернуто и постепенно уменьшено, а размер выходного изображения будет равен приведенной выше формуле:\left \lfloor \frac{n+2p-f}{s} \right \rfloor +1.
  • Одна и та же свертка означаетзаполнение, выходное изображение имеет те же размеры, что и входное изображение.

По формуле расчета указанной выше величины пусть\left \lfloor \frac{n+2p-f}{s} \right \rfloor +1=n,доступныйp=\frac{(n-1)s-n+f}{2}. Когда с=1,p=\frac{f-1}{2}.

4.5 Объединение

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

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

Процесс объединения показан на следующем рисунке:

在这里插入图片描述
Существует два основных типа объединения, кромеМаксимальное объединениеКроме того, естьСредний пул, случайный пул используется в CNN реже.

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

在这里插入图片描述
Смысл трех объединений:

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

4.6, функция активации

Оглядываясь назад на персептрон, персептрон получает отдельные входные данные, суммирует их и выводит функцию активации. Зачем нейронным сетям нужны нелинейные функции активации?

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

在这里插入图片描述
При прямом распространении нейронной сети(Z^{[l]}=W^{[l]}A^{[l-1]}+b^{[l]}, A^{[l]}=g(Z^{[l]})), если убрать функцию активацииg,ноA^{[l]}=Z^{[l]}, это иногда называютЛинейная функция активации(Более академическое названиефункция возбуждения личности, так как они выводят входное значение одинаково), конкретная формула выглядит следующим образом:

первый уровень:A^{[1]}=Z^{[1]}=W^{[1]}X+b^{[1]}

Второй этаж:A^{[2]}=Z^{[2]}=W^{[2]}A^{[1]}+b^{[2]}

будетA^{[1]}Принесите, чтобы получить второй слой:A^{[2]}=Z^{[2]}=W^{[2]}(W^{[1]}X+b^{[1]})+b^{[2]}=W^{[2]}W^{[1]}X+W^{[2]}b^{[1]}+b^{[2]},сделатьW^{[2]}W^{[1]}=W^{'},W^{[2]}b^{[1]}+b^{[2]}=b^{'}, то второй слой становится:A^{[2]}=Z^{[2]}=W^{'}X+b^{'}.

И так далее, выход сети — это просто линейная комбинация входных признаков. На самом деле, сколько бы слоев ни было в сети, все может быть представлено только одним слоем. Точно так же другие линейные функции (например,g^{'}=2x) по-прежнему ничего не делает, потому что комбинация линейных функций сама по себе является линейной функцией.

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

4.7 Местное восприятие

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

在这里插入图片描述
Затем необходимо прочитать все изображение как вход нейросетевой модели (то есть способ полной связи). Например, для изображения размером 1000x1000 пикселей, если у нас есть 1 млн единиц скрытого слоя, то всего10^12параметров, что явно недопустимо. Как показано ниже:
在这里插入图片描述
Познание человеком окружающего мира обычно идет от частичного к общему, от одностороннего к всестороннему, сначала перцептивное познание части, а затем постепенно познание целого.Это путь человеческого познания. Точно так же, когда машина распознает изображение, нет необходимости связывать все изображение с нейронной сетью пиксель за пикселем: пиксели в локальном диапазоне тесно связаны, а пиксели дальшеслабая корреляция. Следовательно, каждому нейрону на самом деле не нужно воспринимать глобальное изображение, а нужно только воспринимать локальное изображение, а затем синтезировать локальную информацию на более высоком уровне для получения глобальной информации. Этот режим является важным артефактом для уменьшения количества параметров в сверточных нейронных сетях:местное рецептивное поле, что экономит память.

4.8 Совместное использование параметров (веса)

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

在这里插入图片描述
Например, предположим, что фильтр признаков (детектор) используется для извлечения признака «почерк 5», тогда правый нижний угол изображения, а также различные области рядом с ним могут использовать этот фильтр. Каждый детектор признаков и вывод могут использовать одни и те же параметры в разных областях входного изображения, чтобы извлечь признак «5». Для полностью подключенной сети, если шаблон появляется в новом месте, он может только повторно изучить шаблон. Это позволяет сверточным нейронным сетям эффективно использовать данные при обработке изображений (поскольку визуальный мир принципиальнотрансляционная инвариантность), который может изучать представления данных с возможностью обобщения с меньшим количеством обучающих выборок.
在这里插入图片描述

4.9 Рецептивное поле

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

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

在这里插入图片描述
Можно видеть, что исходный диапазон изображения, который может видеть каждый блок в Conv1, равен 33, и поскольку каждая единица Conv2 состоит из 2Диапазон Conv1 of 2 составлен, поэтому, вернувшись к исходному изображению, вы можете увидеть исходный диапазон изображения 5 * 5. Итак, мы говорим, что рецептивное поле Conv1 равно 3, а рецептивное поле Conv2 равно 5. Рецептивное поле каждой ячейки входного изображения определяется как 1, что следует хорошо понимать, поскольку каждый пиксель видит только себя.

5. Визуализация

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

在这里插入图片描述
Различные ядра свертки научились изменять свою реакцию на различные особенности, такие как ребра (изменяющие цвет границы) и пятна (локальные блочные области) и т. д. Второе ядро ​​свертки реагирует на вертикальные ребра, а второе ядро ​​свертки — на вертикальные. 5 ядер свертки отвечают на горизонтальные ребра, 9-е — на наклонные ребра, а 13-е — на центральные участки.

Вышеприведенные результаты относятся к сверточным слоям слоя 1. «Низкоуровневая» информация, такая как ребра или участки, извлекается в сверточных слоях слоя 1, в то время как в CNN с несколькими слоями, наложенными друг на друга, по мере углубления слоев извлеченная информация (точнее, нейроны, которые сильно реагируют)) также все более абстрактно. Как показано на рис. 6.2, нейроны слоя 1 реагируют на края или пятна, слоя 3 — на текстуры, слоя 5 — на части объекта, а последний полносвязный слой — на класс объекта (собака или машина). отвечает.

在这里插入图片描述
То есть по мере углубления слоя нейроны меняются от простых форм к информации «высокого уровня». Другими словами, по мере того, как мы понимаем «значение» чего-либо, объект отклика постепенно меняется.

6. Применение

CNN самый раннийПредложено Яном ЛеКуном и применено враспознавание рукописного шрифта(МИНСТ).

在这里插入图片描述
Он использовался большинством банков США для распознавания рукописных номеров на чеках. Чтобы достичь этого коммерческого уровня, можно представить его точность. В конце концов, нынешнее сочетание научных кругов и промышленности является наиболее спорным. Сеть, предложенная LeCun, называется LeNet5 (Ссылки на эффекты и бумагу и т.д. здесь), а его сетевая структура выглядит следующим образом:
在这里插入图片描述
Это типичная сверточная сеть, состоящая из сверточных слоев, слоев объединения и полностью связанных слоев.Благодаря умному дизайну используются такие операции, как свертка, совместное использование параметров и объединение.Извлечь функции, избегая больших вычислительных затрат и, наконец, используя полностью подключенную нейронную сеть дляКлассификация и идентификация, эта сеть также является отправной точкой для большого количества последних архитектур нейронных сетей, привнося много вдохновения в эту область.

Для подробного объяснения тезиса вы можете проверить этот блог -Классическая модель Big Talk CNN: LeNet

Визуализированные результаты:

在这里插入图片描述

7. Суть глубокого обучения

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

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

Подробности смотрите в этом блоге -Суть глубокого обучения

8. Царство

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

Из блога очень влиятельной дамыТри месяца, чтобы научить вас глубокому обучению с нуля

在这里插入图片描述

  • демо человек: Я скачал все актуальные популярные фреймворки, пробежался по примерам в разных фреймворках, посмотрел на результаты и подумал, что это хорошо, а потом подумал, ну, глубокое обучение — это просто так, это не так уж и сложно. Во время собеседования вы часто можете встретить много.Многие студенты или только что сменившие профессию подходят, чтобы поговорить о демонстрации, распознавании рукописных цифр, классификации изображений данных cifar10 и т. Д. Однако вы спрашиваете его, как конкретный процесс распознавания рукописных цифр реализуется? Хорош ли эффект в настоящее время, можно ли его снова оптимизировать? Почему функция активации выбирает это, могу ли я выбрать другое? Можно кратко объяснить принцип CNN? Смущенный.

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

  • Поймите принцип: Извините за такое дурацкое имя. Однако после перехода на этот шаг его можно рассматривать как запись, и вы можете найти работу, которая может обеспечить вас. CNN, RNN и LSTM все под рукой, и принцип говорит гладко.Влияние разных параметров на модель также оправдано.Но если вы хотите спросить, можете ли вы написать CNN вручную? Нет необходимости настраивать пакет, просто реализуйте самую базовую сетевую структуру и снова gg.

  • Поймите принцип + можете изменить детали модели: Если вы достигли этого момента, поздравляю, вы начали. Для тех, кто занимается машинным обучением/глубоким обучением, недостаточно просто понять принципы, потому что компания не нанимает вас в качестве исследователя. Поскольку она будет реализована, вы можете вручную написать код для каждой общей модели, с которой вы знакомы, чтобы для некоторых бизнесов компании вы могли внести соответствующие корректировки и изменения в модель для адаптации к различным бизнес-сценариям. Это также статус-кво инженеров в большинстве компаний первого и второго уровня. Однако для общих архитектурных возможностей модели и возможностей распределенной работы с большими данными дизайн решения все еще может отсутствовать.

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

  • Архитектор моделей/фреймворков: Я упомянул большой опыт работы с существующими фреймворками/моделями.Герои на этом этапе, о нет, мастера могут самостоятельно спроектировать и разработать новый фреймворк/алгоритм для работы с существующими бизнес-сценариями, или Решить нерешенные исторические проблемы. Нечего сказать, поклон!

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

9. Учебные ресурсы

9.1 Программирование

Первый язык программирования — Python.

  1. Установка питона:

Установочный пакет Python, рекомендуется загрузить Anaconda. Anaconda — это дистрибутив Python для научных вычислений, поддерживает системы Linux, Mac, Windows, предоставляет функции управления пакетами и средой, а также может легко решить проблему сосуществования, переключения и различных сторонних пакетов. проблемы с установкой.

ссылка для скачивания:www.anaconda.com/download/

IDE: рекомендуется pycharm, версия для сообщества бесплатна

ссылка для скачивания:www.jetbrains.com/

Учебник по установке:

  1. Рекомендуемые материалы для начала работы с Python

В исследовании Python Ляо Сюэфэна отмечается:blog.CSDN.net/data whit/Ах…

Прочитав эту информацию, python в основном достигает начального уровня.

9.2 Теория

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

Адрес курса:Тишина OC.study.163.com/university/…

9.3. Структура

Сегодня существует множество фреймворков для глубокого обучения, наиболее распространенными из которых являются TensorFlow от Google, pytorch от Facebook и paddlepaddle от Baidu.

9.4 Тезис

Порекомендуйте положительный пример бумажных ресурсов этого крупного блоггера -blog.CSDN.net/Zou Xiaoyun09/art…

10. Площадка нейронной сети

Адрес веб-сайта:площадка.tensorflow.org/#activation…

在这里插入图片描述
регулируемый:

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

Вы можете попробовать изменить соответствующие параметры, чтобы почувствовать изменения на выходе сети, а затем испытать удовольствие от сверточных нейронных сетей, давай! ! !

Если вам нужны дополнительные ресурсы, подписывайтесь на @I am Guan Xiaoliang, текст обсессивно-компульсивного расстройства MAX~

Ответьте на [Welfare], чтобы получить подарки, которые я подготовил для вас, включая C++, четыре основных элемента программирования, НЛП, глубокое обучение и т. д.

Ответьте на [Структура данных], чтобы получить информацию об алгоритмах и структурах данных

Если вы хотите увидеть больше статей (абзацев), глав (подзаголовков), обратите внимание на публичный аккаунт WeChat «Программист Гуань Сяолян»~

11. Справочные статьи