примечания к классификации изображений cs231n (о) обучающие записи

Предисловие:

        Содержание обучения — курс «Сверточная нейронная сеть для компьютерного зрения» Стэнфордского университета, код курса — cs231n, исходная ссылка — Стэнфордский университет CS231n: Deep Learning for Computer Vision , и есть китайский перевод примечаний к курсу на Zhihu . ! Выпущена коллекция авторизованных переводов официальных заметок CS231n - 知乎

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

Знакомство с содержанием примечаний:

        Эта заметка о классификации изображений является второй частью заметок курса cs231n, которую можно рассматривать как научно-популярную. Заметки кратко знакомят с проблемой классификации изображений и методами и процессами, управляемыми данными, объясняют классификатор ближайших соседей и усовершенствованный классификатор K-ближайших соседей, а также вводят понятия набора проверки, набора перекрестной проверки и гиперпараметров. Китайские заметки Чжиху разделены на верхнюю и нижнюю части.Сегодняшний блог будет завершен первым.Ведь пишу первый раз и не владею.

1. Что такое классификация изображений

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

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

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

        Вот пример классификации изображений в примечаниях:

        В процессе классификации этой картинки компьютер сначала считывает фотографию кота, а затем после обработки алгоритма выдает принадлежность картинки к множеству {кот, собака, шляпа, кружка} (даны эти четыре варианта заранее нами Вероятность каждой метки в ). Здесь следует упомянуть, что изображения в компьютере состоят из нескольких матриц, представляющих собой огромный трехмерный массив, состоящий из чисел. На этой картинке размер изображения кота 248 пикселей в ширину и 400 пикселей в высоту, с 3-мя цветовыми каналами, а именно красным, зеленым и синим (это можно понимать как деление пикселя на картинке на три слоя, каждому А слою соответствует к цвету, и три слоя цветов складываются вместе, чтобы сформировать пиксель этого цвета, который мы для краткости называем «RGB»). Таким образом, изображение содержит 248X400X3=297600 чисел, каждое число является целым числом в диапазоне от 0 до 255, где 0 означает все черное, а 255 означает все белое (обратите внимание, что числа в массиве представляют значения яркости).

2. Какие трудности возникают при классификации изображений?

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

     1. Перспективное преобразование: объект можно наблюдать под разными углами. Для компьютера возможно изменить угол, и он не сможет распознать исходный объект.

     2. Изменение размера: объект может быть большим или маленьким, если смотреть на него с разного расстояния, и один и тот же тип объекта может также иметь разные размеры в реальной жизни (например, я, который находится в первых 100 джинах, и О'Нил). , который весит несколько сотен джинов)

     3. Изменения формы. Изменения формы объектов также могут сбить компьютер с толку.

     4. Окклюзия: целевой объект может быть заблокирован. Иногда видна только небольшая часть объекта (которая может составлять всего несколько пикселей).

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

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

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

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

3. Подход, основанный на данных

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

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

4. Процесс классификации изображений    

        Содержание заметок прямо скопировано сюда, думаю очень понятно

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

Пять, классификатор ближайших соседей

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

        В заметках мы использовали набор данных cifar-10 ( наборы данных CIFAR-10 и CIFAR-100 ), который содержит 60 000 небольших изображений 32X32. Каждое изображение имеет одну из 10 классификационных меток. Эти 60 000 изображений разделены на обучающий набор из 50 000 изображений и тестовый набор из 10 000 изображений. На изображении ниже вы можете увидеть 10 случайных изображений 10 классов.

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

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

        Здесь мы будем использовать то, что называется расстоянием L1:

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

d_{1}(I_{1},I_{2})=\sum_{p}^{}|I_{1}^{p}-I_{2}^{p}|

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

d_{2}(I_{1},I_{2})=\sqrt{\sum_{p}^{}\left ( I_{1}^{p}-I_{2}^{p} \right) {_{}}^{2}

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

        Теперь, когда мы представили две функции, давайте продолжим знакомство с алгоритмом. Мы используем 50 000 изображений CIFAR-10 (по 5 000 для каждой категории) в качестве тренировочного набора, а оставшиеся 10 000 используем в качестве тестового набора, позволяем компьютеру предсказать категорию изображения, а затем сопоставляем наш отмеченный «стандартный ответ» (конечно, , компьютер не видит)», чтобы сравнить и, наконец, получить показатель точности. Алгоритм ближайшего соседа сравнивает тестовое изображение с каждым изображением в обучающем наборе, а затем присваивает метку изображению обучающего набора, которое, по его мнению, наиболее похоже на тестовое изображение в качестве результата прогнозирования.

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

Шесть, классификатор K-ближайших соседей

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

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

        В приведенном выше примере показана разница между классификатором ближайших соседей и классификатором 5 ближайших соседей. В примере для представления используются 2-мерные точки (это также можно рассматривать как изображение, упомянутое выше), разделенные на 3 категории (красный, синий и зеленый). Различные цветные области представляют собой границу решения классификатора с использованием расстояния L2 . В связи с этим я понимаю, что на этом рисунке длина нашего расстояния рассматривается как расстояние L2. Предположим, мы случайным образом указываем точку A в классификаторе NN в качестве тестовых данных.Предполагая, что эта точка находится в фиолетовой области, тогда мы можем видеть, что должна быть фиолетовая точка B, расстояние от A является ближайшим по сравнению с другими точками. То есть B является ближайшим соседом A. Итак, согласно нашему алгоритму, метка «фиолетовый», соответствующая B, является предсказанным результатом A, данным компьютером. Обратите внимание, что в 5-NN также есть некоторые серые области (K == 5), которые вызваны наибольшим количеством голосов меток соседей (например: 2 соседа красные, 2 соседа синие и 1 зеленый ). Обратите внимание, что значение K здесь можно изменить.

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

Guess you like

Origin blog.csdn.net/qq_62861466/article/details/126304093