«Все модели ошибочны, но некоторые из них полезны».
- Джордж Бокс
Самая большая прелесть машинного обучения заключается в том, что оно меняет способ мышления разработчиков.Вместо того, чтобы писать фиксированные логические инструкции для программы, разработчики могут позволить программе анализировать и обдумывать большой объем неизвестных данных, а затем научиться это делать. неизвестные входные данные, как предсказать результаты, как действовать
основная терминология
- Контролируемое машинное обучение: системы машинного обучения учатся объединять входные данные длябеспрецедентные данныепроизводитьполезные предсказания
- Метка: Относится к тому, что мы прогнозируем, или к цели, которую мы пытаемся предсказать, например к будущей цене на пшеницу, типу животного на фотографии, является ли почта спамом и т. д. Это простая линейная регрессия.
y
ценность - Особенность: относится к информации, извлеченной из входных данных для использования системой машинного обучения.Это то, как мы представляем данные, такие как адрес отправителя электронной почты, содержание электронной почты, и это линейная регрессия.
x
значение, сложная система машинного обучения может потребовать тысячи функций - Образец (пример): Относится к фрагменту данных, образец делится на меченые образцы и немаркированные образцы. Маркированные образцы содержат функции и метки
labeled examples: {features, label}: (x, y)
, например это письмо, которое пользователь активно помечал как спам. Образцы без маркировки имеют только характеристики и не имеют меток.unlabeled examples: {features, ?}: (x, ?)
. Наша цель — обучить модель на большом количестве помеченных образцов, чтобы она могла предсказать метку любого немеченого образца. - Модель: это инструмент для выполнения прогнозов, который определяет взаимосвязь между функциями и метками. Например, модель обнаружения спама будет тесно связывать определенные функции с метками спама. Модель состоит из двух этапов: обучения и вывода.
- Обучение: создайте модель или дайте модели обучиться, то есть предоставьте модели помеченные образцы, чтобы модель могла постепенно изучать взаимосвязь между функциями и метками.
- Вывод: процесс применения обученной модели к немаркированным образцам, то есть использование обученной модели для получения полезных прогнозов.
- Модель регрессии: прогнозирует непрерывные значения, такие как вероятность того, что пользователь нажмет на объявление, цена пшеницы
- Режим классификации: прогнозирует дискретные значения, например, является ли это письмо спамом, какое животное изображено на этой картинке.
Линейная регрессия
В статистике линейная регрессия — это линейный метод моделирования взаимосвязи между скалярным откликом (зависимой переменной) и одной или несколькими независимыми переменными (независимыми переменными).Он вызывается, когда имеется только одна независимая переменная.Для простой линейной регрессии это называется множественной линейной регрессией, когда имеется несколько независимых переменных, и называется многомерной линейной регрессией, когда прогнозируется несколько коррелирующих зависимых переменных.
-
Относится к температуре (попытка предсказать)
-
относится к наклону линии
-
Относится к количеству насекомых в минуту (собственное значение ввода).
-
относится к y-перехвату
В статистике для определения параметров функции обычно используется «метод наименьших квадратов», который является наиболее распространенным и простым методом подбора для минимизации ошибки. В машинном обучении представление этой реляционной модели аналогично:
-
относится к предсказанной метке (идеальный результат)
-
Относится к отклонению (пересечение по оси y), иногда называемому
-
относится к весу функции 1 и наклону в традиционном линейном уравнении
это концепция
-
Функция пальца (известный ввод)
Чтобы вывести (предсказать) новое количество щебетов в минутусоответствующая температура
, просто поставь
Принесите эту модель
Эта модель прогнозирования имеет только одну характеристику количества насекомых в минуту, а сложная модель часто имеет несколько характеристик и соответствующих весовых коэффициентов, например:
Процесс создания или обучения модели — это процесс поиска наилучших весов и смещений (определение наилучшегои
процесс), в то время как в обучении с учителем алгоритмы машинного обучения строят модели путем «исследования большого количества образцов в попытке найти модель, которая минимизирует потери», процесс, также известный как минимизация эмпирического риска.
Потеря относится к штрафу за плохие прогнозы. Он показывает, насколько плохо модель предсказывает выборку. Это числовое значение. Если прогноз модели совершенен, то потери равны нулю, в противном случае потери очень велики. Мы можем создать математическую функцию (функцию потерь) для осмысленного агрегирования отдельных потерь
Сокращение потерь
Как быстро и эффективно определить лучшее (т.е. минимизировать MSE)и
ценность? Самый простой способ - просто сделать случайное предположение
и
значение, рассчитайте потери, а затем отрегулируйте
и
значение, рассчитайте потери, сравните две потери, а затем решите, как скорректировать
и
(если потеря становится меньше, направление регулировки правильное, просто продолжайте регулировку в соответствии с текущим направлением, если потеря становится больше, необходимо рассмотреть возможность изменения направления регулировки), в теории, итеративный метод проб и ошибок будет продолжаться. найти наиболее ОК
и
значение
Для линейной регрессии не очень важно, какую точку выбрать в качестве начальной, например, мы можем выбрать
Предположим, у нас достаточно времени и вычислительных ресурсов, чтобы вычислить все
Алгоритм ступенчатого спуска умножает градиент на скорость обучения как на величину изменения на следующем шаге, и то, как определить скорость обучения, часто зависит от эмпирических навыков, поэтому скорость обучения представляет собой гиперпараметры (гиперпараметры): в алгоритмах машинного обучения , программистам приходится крутить ручку. Каждая проблема регрессии имеет скорость обучения Златовласки, а идеальная скорость обучения в одномерном пространстве равна
В дополнение к скорости обучения необходимо учитывать еще одну проблему, а именно количество выборок.Если количество выборок особенно велико, порядка миллиардов или даже сотен миллиардов, нужно ли вам вводить все образцы для каждой итерации для расчета градиента?(Необходимое количество образцов называется пакетом)? Следовательно, чтобы уменьшить объем вычислений, некоторые выборки могут быть выбраны случайным образом из набора данных, так что сходимость может быть быстро достигнута после очень небольшого вычисления. Стохастический градиентный спуск (Стохастический градиентный спуск) использует только одну выборку на итерацию.После достаточного количества итераций SGD может работать, но он более шумный. Мини-пакетный SGD представляет собой компромисс между полным пакетным повторением и итерацией SGD.Мини-пакетный SGD обычно случайным образом выбирает от 10 до 1000 образцов, он менее шумный, чем SGD, и более эффективен, чем полный пакет.
Я уже знаю, как эффективно снизить убыток, можно ли свести убыток к 0? Можно ли обучить идеальную модель на известных образцах? На самом деле это невозможно, да и не нужно.Даже если модель обучать с большими усилиями, точность предсказания известных выборок составляет 100%, но это все равно не 100% перед лицом новых выборок, т.к. "Возможно все. Исключение", и такая, казалось бы, совершенная модель оказывается даже не такой точной, как другие простые модели, когда сталкиваешься с новыми образцами:
обобщение
Обобщение относится к способности делать правильные прогнозы на основе новых, невиданных ранее данных. Приведенная выше модель соответствует характеристикам обучающих данных. Хотя переобученная модель имеет низкие потери во время обучения, она плохо работает при прогнозировании новых данных. Как определить, может ли модель адаптироваться к новым данным? Делать хорошие прогнозы? Это касается вопроса регуляризации. Причина, по которой переобучение представляет собой проблему, заключается в том, что оно делает модель чрезвычайно сложной в стремлении к совершенству во время обучения, а машинное обучение должно быть максимально простым при подборе данных и должно соответствовать закону бритвы Оккама. способность модели к обобщению, набор данных можно разделить на обучающий набор, предназначенный для обучения, и тестовый набор, предназначенный для тестирования.Хорошая производительность на тестовом наборе часто указывает на то, что он также может хорошо работать в новом наборе данных, при условии, что test Набор достаточно велик, чтобы повторно не подделывать один и тот же набор тестов.
Процесс обобщения обычно должен удовлетворять трем основным предположениям:
- Мы случайным образом берем независимые и одинаково распределенные (i.i.d) выборки из распределения, и выборки не влияют друг на друга до
- Распределение является стационарным и не меняется в пределах набора данных.
- Берем выборки из разделов данных одного дистрибутива
На самом деле, в некоторых случаях некоторые из этих предположений могут нарушаться.Например, модель рекомендаций по рекламе может опираться на рекламу, которую пользователь видел ранее, что нарушает первое предположение, и если какое-либо предположение нарушается, это означает, что мы потеряли важную теоретическую поддержку, мы всегда должны обращать внимание на различные индикаторы
Поскольку тестовый набор должен быть достаточно большим, насколько он хорош? Как разумно разделить набор данных на обучающий набор и тестовый набор? Обучающая и тестовая выборки должны быть независимы друг от друга, ноЧем больше размер обучающей выборки, тем лучше обучающий эффект модели.Чем больше размер тестовой выборки, тем больше у нас уверенности в показателях оценки., если размер самого набора данных очень большой, то это намного проще, но если размер набора данных очень маленький, то необходимо сначала выполнить сложные операции типа перекрестной проверки (перекрестной проверки)
Тестовый набор должен удовлетворять двум условиям:
- Достаточно большой масштаб для получения статистически значимых результатов.
- Будьте репрезентативны для всего набора данных, не выбирайте тестовый набор с характеристиками, отличными от обучающего набора.
Никогда не тренируйтесь на тестовом наборе, если вы обнаружите, что точность предсказания модели на тестовом наборе особенно высока, даже выше, чем на обучающем наборе, не радуйтесь пока, вы, скорее всего, будете использовать какие-то тестовые данные для обучения, вам придется заново -проверьте, не содержит ли тренировочный набор некоторые тренировочные данные
Обучите модель на тренировочном наборе, оцените модель на тестовом наборе, настройте модель на основе результатов оценки и так далее, пока не сможете выбрать модель, которая лучше всего работает на тестовом наборе. Этот процесс немного проблематичен.Возможно, мы незаметно подобрали характеристики тестовых данных, поэтому, чтобы избежать этой ситуации, мы отдельно разделяем некоторые данные из набора данных в качестве набора проверки, так что итеративная оценка только выполнено в Это достаточно для оценки на проверочном наборе. Тестовый набор используется только для подтверждения результатов. Убедитесь, что результаты, полученные на тестовом наборе, в основном совпадают с результатами, полученными на проверочном наборе. Если они не совпадают, это означает, что набор проверки переобучен
разработка функций
Кажется, мы забыли самый основной вопрос: как абстрагировать собственные значения для модели от исходных данных, извлечь данные из различных источников данных, а затем создать вектор признаков на основе данных, Это называется функциональная инженерия. Простую числовую информацию, такую как количество спален в доме, можно скопировать непосредственно в вектор признаков, но как строковая информация, такая как улица, к которой принадлежит дом, сопоставляется с вектором признаков? Проще всего использовать one-hot one-hot кодировку, если всего N улиц, то создать N-битную кодировку, а затем сопоставить все улицы в эту кодировку по словарю (положение i- улица) 1, остальные позиции 0), если N особенно велико, для сжатия можно использовать разреженное представление. Так что же такое хорошая функция? Во-первых, он должен иметь ненулевое значение и появляться как минимум много раз.Если функция появляется очень редко или только один раз, рассмотрите возможность ее фильтрации во время предварительной обработки. Во-вторых, он должен иметь ясное и недвусмысленное значение, чтобы функция правильно обрабатывалась при проверке и отладке. В-третьих, собственные значения не должны меняться со временем. Наконец, собственные значения не должны иметь иррациональных выбросов. Причина, по которой делается так много работы, заключается в том, чтобы свести к минимуму шум, машинное обучение похоже на черный ящик, вбрасывающий все данные, не проверяя данные и надеясь на хороший результат, что очень сложно в нынешних условиях. Подходящая и нереалистичная, поэтому перед передачей данных модели машинного обучения мы можем только абстрагироваться и фильтровать функции на основе нашего собственного опыта и даже отслеживать изменения функций с течением времени.
Во многих случаях диапазон собственных значений с плавающей запятой будет очень большим (например, от 100 до 900).Чтобы ускорить сходимость метода градиентного спуска и избежать проблемы NaN, вызванной переполнением данных, можно масштабируется до стандартного диапазона (например, от 0 до 1) или от -1 до +1, простейшей стратегией масштабирования является линейное масштабирование, но другая стратегия масштабирования заключается в том, чтобы сначала вычислить показатель Z для каждого значения, а масштабированное значение равно(原始值 - 平均值) / 标准差
, поэтому большинство масштабируемых значений будет между -3 и +3.
Иногда нам нужно разобраться с экстремальными выбросами:
Иногда нам нужно бинировать числа с плавающей запятой:
К настоящему времени мы можем предположить, что данные, используемые для обучения и тестирования, надежны, и мы выделяем плохие образцы, как мы выделяем плохие яблоки:
- Отсутствующие значения, такие как забывание возраста дома
- Повторяющиеся образцы, например, сервер по ошибке дважды загружает один и тот же журнал.
- Плохие ярлыки, например, человек ошибочно называет изображение дуба кленом.
- Нежелательная характерная ценность, такая как человек, чтобы потерять более нескольких чисел
Хорошее машинное обучение зависит от хороших данных
Комбинация функций
До сих пор мы изучали линейные задачи, а линейные обучающие устройства просты и могут быть легко масштабированы для больших наборов данных, но что, если моделируемая проблема сложна?
Пересечение признаков также принесет некоторые проблемы.Например, пересечение нескольких очень больших и разреженных признаков приведет к большему представлению признаков, что приведет к увеличению размера модели, займет много оперативной памяти, замедлит время выполнения, и результирующий коэффициент шума может привести к переоснащению, что требует более сложных
Регуляризация
Когда мы изучаем проблему обобщения, мы сосредотачиваемся на проблеме переоснащения.Если мы преследуем слишком низкие потери в тренировочном наборе, могут возникнуть проблемы, вызванные переоснащением тренировочного набора:
Можно обнаружить, что когда потери при обучении становятся все ниже и ниже, потери при проверке могут становиться все выше и выше, точно так же, как мы практикуем общение на иностранном языке только с одним человеком, прогресс в начале очень быстрый, но с развитием время, когда вы постепенно привыкнете к этому. Его манера выражения и произношения (например, подгонка данных обучения) затрудняли общение с другими людьми на иностранных языках. Итак, как бороться с переоснащением? Самый простой — это регуляризация.Существует множество стратегий регуляризации.Самый простой — это преждевременная остановка (Early stop method), то есть остановка обучения до конвергенции (до того, как красная линия поднимется), но на самом деле этого трудно добиться.Другая стратегия заключается в том, чтобы максимально уменьшить сложность модели, снижая сложность модели, что иногда называют минимизацией структурного риска.
Мы хотим сбалансировать эти два фактора, чтобы свести к минимуму потери и сложность, то есть обеспечить правильные обучающие данные, не слишком доверяя обучающим данным. Итак, как определить сложность модели? Самый простой - выбрать меньший вес, то есть даже если параметры достаточно малы, чтобы их можно было игнорировать, мы все равно можем получить правильные обучающие выборки, Математически это обычно используется.Регуляризация, также известная как гребенчатая регуляризация, в этой стратегии регуляризации мы штрафуем сумму квадратов весов.Если вы знакомы с байесовской априорной вероятностью, вы знаете, что это априорная вероятность, и когда мы знаем обучающую выборку, я догадался до этого веса должны быть нормально распределены с 0 в центре, и значение не должно быть слишком большим. Математически выразите приведенную выше формулу как
Видно, что процесс уменьшения потерь в первом члене зависит от обучающих данных, а второй член упрощает модель, не зависит от данных.баланс достигается,
Выбор зависит от вас и реальной ситуации.Если имеется большое количество обучающих данных, а обучающие данные и тестовые данные выглядят согласованными и удовлетворяют независимому и идентичному распределению, вам может не понадобиться много регуляризации, в противном случае вам может понадобиться много регуляризация и перекрестная проверка.
(лямбда) также известна как скорость регуляризации, если значение лямбда слишком велико, модель будет очень простой, но с риском недообучения данных у модели не будет достаточно знаний об обучающих данных, чтобы сделать ее полезной. прогнозы, если значение лямбда слишком низкое, модель будет более сложной, и она столкнется с риском переобучения данных, а модель будет слишком сильно интерпретировать особенности обучающих данных, что затруднит обобщение на новые данные . Установка лямбда в 0 полностью отменяет регуляризацию, когда единственной целью обучения является минимизация потерь, но максимизируется риск переобучения.
Регуляризация способствует тому, чтобы вес неинформативных признаков стремился к 0, но когда такие признаки оказываются связанными с меткой, это приводит к тому, что модель получает умеренный вес, после чего модель ошибочно присваивает неинформативным признакам некоторые значения. Доверьтесь информативным функциям.
Регуляризация наказывает большие веса более строго, чем маленькие веса, поэтому, даже если один вес падает быстрее, чем другой,
Регуляризация также заставляет тот, у которого больше вес, падать быстрее, чем у меньшего.
Регуляризация связана со скоростью обучения и может сбивать с толку
Регуляризация может уменьшить веса, но не может сделать их равными нулю.
Хотя регуляризация может сделать веса равными 0, что может напрямую игнорировать некоторые функции и уменьшить потребление памяти, она превратит нашу задачу выпуклой оптимизации в задачу невыпуклой оптимизации (NP-сложную), поэтому
Регуляризация нецелесообразна. и
Регуляризация имеет преимущество выпуклой оптимизации для эффективных вычислений.
уменьшит квадрат веса,
уменьшит абсолютное значение веса,
Производная в 2 раза больше веса,
Производная от - не зависящая от веса константа k , то есть
Каждый раз, когда x% веса удаляется, обычно не уменьшается до 0,
Каждый раз, когда из веса вычитается фиксированная константа.Если вычитание приводит к изменению веса с +0,1 до -0,2, поскольку штраф является абсолютным значением, вес станет равным 0.
логистическая регрессия
Многие задачи требуют оценки вероятности в качестве вывода, например, какова вероятность того, что животное на картинке — кошка, и какова вероятность того, что собака проснется ночью.Поскольку это вероятность, значение вероятности должно быть между 0 и 1. Можно ли заставить вывод изученной линейной модели находиться в диапазоне от 0 до 1? Очевидно, что это нереально, тогда мы должны придумать другую функцию потерь и метод прогнозирования, чтобы значение вероятности было естественным образом между 0 и 1, мы называем эту идею логистической регрессией (Logistic Regression). Вероятность логистической регрессии очень полезна и может даже рассматриваться как фактическая вероятность делать полезные прогнозы.Умножьте эту вероятность на элемент, который вы хотите предсказать, чтобы получить ожидаемое значение. Это также очень полезно в двоичной классификации, например, какова вероятность того, что электронное письмо является спамом, и какова вероятность того, что монета приземлилась. Так как же модель логистической регрессии гарантирует, что результат всегда будет между 0 и 1? Давайте посмотрим на сигмовидную функцию:
Функция потерь, которую мы впервые обсудили для линейной регрессии, называлась Squared Loss, тогда как логистическая регрессия использовала Log Loss:
впредставляет собой набор данных, содержащий множество помеченных образцов,
представляет метку в меченом образце,
представляет прогнозируемое значение
Регуляризация становится более важной в моделях логистической регрессии.Без регуляризации асимптотическая природа логистической регрессии приведет к тому, что потери будут стремиться к 0 в больших размерностях.Если функция регуляризации не указана, модель станет полностью переобученной, поэтому модели логистической регрессии обычно использовалРегуляризация или ранняя остановка для уменьшения сложности модели
Классификация
Наиболее распространенной проблемой, решаемой моделями машинного обучения, является проблема классификации, например, является ли почта обычной почтой или спамом и что представляет собой объект на картинке.Мы можем использовать логистическую регрессию в качестве основы для классификации и применять фиксированный порог к выход вероятности.Если вероятность того, что электронное письмо является спамом, превышает 0,8, мы считаем его спамом, а 0,8 является порогом для классификации (порог классификации также называется порогом принятия решения). оценить качество модели на этом пороге? Наиболее традиционным способом является использование метрики точности, которая представляет собой количество правильных прогнозов, деленное на общее количество. Но точность иногда может быть плохим или вводящим в заблуждение показателем, например, когда разные типы ошибок имеют разную стоимость, когда классификация несбалансирована (очень мало положительных или отрицательных результатов) (коэффициент кликов по объявлению составляет 1 из 1000). 1 из 10 000 или даже ниже, то модель, предсказывающая, что объявление не будет нажато, имеет точность 99,999 %), и может быть полезно различать разные типы ошибок:
- реальный пример(True Pплюсы): волк действительно идет, зовите волка правильно
- ложные срабатывания (False Pплюсы): волк не пришел, а позвал волка, все разозлились
- ложноотрицательный (False Nотрицательные): волк действительно пришел, но не нашел, последствия более серьезные
- правда отрицательный(True Nотрицательные): волк не пришел, волка не звал, все нормально
То есть и TP, и TN являются правильными предсказаниями, в то время как FP — это когда модель неправильно предсказывает отрицательный класс как положительный класс, а FN — серьезное неверное предсказание положительного класса как отрицательного класса.
Теперь, если есть 100 случаев прихода волка, 1 раз волк действительно пришел, и маленький мальчик позвал волка, 1 раз волк не пришел, но позвал волка, 8 раз волк пришел, но не позвал, 90 Второй волк не пришел и не закричал, так что меткость маленького мальчика так же высока, как, маленький мальчик выглядит нормально с точностью 91%, но так ли это? 91 раз волк не приходил, маленький мальчик не звал волка 90 раз, но 9 раз волк приходил, маленький мальчик звал волка только один раз Как страшно! Если это модель диагностики опухолей, только 1 из 9 злокачественных опухолей оказывается злокачественной, а последствия будут еще более тяжелыми.
Итак, нам нужны некоторые новые показатели для оценки, такие как точность, то есть сколько раз маленький мальчик оказывается прав, когда зовет волка,. Напомним, с другой стороны, относится к тому, сколько волков мы обнаружили из всех волков, которые пытались проникнуть в деревню, т. е. пропорция, правильно идентифицированная как положительная,
. Интересно, что эти показатели имеют свойство меняться.Например, чтобы улучшить скорость отзыва, пока есть неприятности, волка будут звать, что снизит порог классификации.Для достижения высокой точности волк только вызывается, когда подтверждается, что волк действительно идет Вот идет волк, что повышает порог классификации, поэтому только если оба аспекта выполнены хорошо, модель можно оценить как хорошую или плохую.Вообще говоря, увеличение порога классификации уменьшит количество ложных срабатываний и, таким образом, повысит точность
Вы можете сказать, что тогда я попробую все возможные пороги классификации и посмотрю, будет ли модель работать лучше при этом пороге? На самом деле есть такая штука, называется ROC-кривая.
Истинная частота случаев TPR (True Positive Rate) составляет, то же, что вспоминать
Частота ложных срабатываний FPR (частота ложных срабатываний) равна
Соединение точек значений TPR и FPR при разных порогах в кривую представляет собой ROC-кривую:
Есть еще один индикатор, и это смещение.Модель регрессии должна быть несмещенной, то есть прогнозируемое среднее примерно такое же, как наблюдаемое среднее, а смещение прогноза равно прогнозируемому среднему минус данные.Среднее значение централизованных меток.Если отклонение прогноза не равно 0, это означает, что модель может иметь проблемы.Необходимо выяснить, что вызывает ненулевое отклонение.Конечно, даже если отклонение прогноза равно нулю, это не означают, что модель идеальна другие показатели. Причиной отклонения прогноза может быть неполный набор признаков, шум в наборе данных, смещенные обучающие выборки, слишком сильная регуляризация и т. д. Выходные данные модели можно скорректировать, добавив калибровочный слой для уменьшения отклонения. Но это только в крайнем случае, потому что это временное решение, и вам придется поддерживать эту хрупкую систему
Нейронные сети
Что делать, если проблема слишком сложна для решения с помощью линейной регрессии? А как насчет нелинейных задач, которые нельзя решить даже путем пересечения признаков? В настоящее время мы надеемся, что каким-то образом модель сможет изучить нелинейный закон сама, без того, чтобы мы вручную задавали для нее параметры. Это видение может быть реализовано с помощью глубоких нейронных сетей, которые особенно хорошо справляются со сложными проблемами данных, такими как данные изображения, видеоданные, аудиоданные и т. д. Давайте сначала посмотрим на представление линейной модели, такое как:
Теперь у нас есть все стандартные компоненты того, что часто называют нейронной сетью:
- Набор узлов, похожих на нейроны, в слое
- Набор весов, представляющий взаимосвязь между каждым слоем нейронной сети и его нижним слоем, который может быть другим слоем нейронной сети или другими типами слоев.
- Набор смещений, по одному на каждый узел
- Функция активации, используемая для преобразования вывода каждого узла в слое, разные слои могут иметь разные функции активации.
Наиболее часто используемый алгоритм обучения для обучения нейронных сетей — обратное распространение, что делает возможным градиентный спуск для многослойных нейронных сетей, Обратное распространение основано на концепции градиентов, и вещи должны быть дифференцируемыми, чтобы мы могли учиться
Следует отметить, что могут возникнуть исчезающие градиенты.Если сеть слишком глубокая, отношение сигнал-шум будет ухудшаться с углублением модели, и обучение может стать особенно медленным.В это время ReLU или другие стратегии могут будь полезнее.. Если вес в сети слишком велик, градиент нижнего слоя будет включать произведение многих больших членов, и может возникнуть ситуация Взрыва градиентов, В это время градиент слишком велик, чтобы вообще сойтись, и Пакет стандартизирует или снижает скорость обучения, было бы полезнее. Если все взвешенные суммы ниже 0, то блок ReLU застрянет без какого-либо вклада в выход сети, градиент не сможет распространяться обратно и никогда не вернется в положение, в котором существует слой ReLU, в результате чего в ситуации Dead ReLU Units, где может помочь использование другой инициализации или снижение скорости обучения
Еще один полезный прием при обучении нейронных сетей, еще одна форма регуляризации, называемая Dropout, заключается в том, чтобы взять узел для вероятности P и удалить его из одного шага градиента сети. Повторите этот процесс на других шагах градиента и случайным образом выберите разные узлы для отбрасывания, чем больше отброшено, тем сильнее эффект регуляризации.
До сих пор все проблемы классификации, которые мы обсуждали, были проблемами бинарной классификации, например, является ли электронное письмо спамом, является ли опухоль злокачественной или доброкачественной, мы также знаем, что проблема бинарной классификации может быть хорошо решена с помощью суммы логистической регрессии, Но многие проблемы классификации в жизни являются многоклассовыми, например, является ли предмет на картинке яблоком, грушей, щенком или чем-то еще, и что это за цветок. Так как же нам расширить бинарную классификацию до многоклассовой классификации? один против всех обеспечивает способ использования двоичной классификации, Если есть N возможных решений, один против всех содержит N отдельных двоичных классификаторов, то есть каждый возможный результат соответствует двоичному классификатору, при обучении модель запустит серию бинарных классификаторов, каждый из которых обучается отвечать на отдельную задачу классификации, например, на изображение собаки, может обучать пять различных идентификаторов:
- Это фото яблока? нет
- Это фото медведя? нет
- Это картинка конфеты? нет
- Это фото собаки? да
- Это фото яйца? нет
Это приемлемо, когда классов мало, но становится неэффективным, когда классов много, поэтому мы можем использовать глубокую нейронную сеть для создания значительно более эффективной модели «один против всех», где каждый выходной узел представляет другой тип:
Когда категорий много, стоимость Softmax станет очень большой, поэтому в дополнение к Full Softmax есть еще стратегия, называемая выборкой кандидатов, которая вычисляет вероятность для всех положительных меток, но вычисляет вероятность только для случайных выборок отрицательных. Если мы хотим определить, является ли изображение биглем или ищейкой, нам не нужно предоставлять вероятности для каждой выборки, отличной от собаки.
Softmax предполагает, что каждый образец может иметь только одну категорию, если образец одновременно принадлежит к нескольким категориям, вы не можете использовать Softmax, вы можете полагаться только на множественную логистическую регрессию.
считать
Теперь мы думаем о проблеме. Когда мы читаем книгу или думаем, в нашем уме всегда есть голос, который говорит с вами. Этот голос очень похож на ваш собственный голос, но это не ваш голос. почитайте Westworld или немного разбираетесь в психологии, вы, наверное, знаете, что существует теория, называемая дихотомическим сознанием. Дихотомические умы обычно рассматриваются как источник человеческого сознания, и люди на самом деле не понимают таких вещей, но люди всегда хотят играть роль Бога и хотят дать искусственному машинному сознанию. В прошлом веке люди использовали свое воображение и представляли себе день, когда машинам дадут сознание.Различные фантастические фильмы ярко выражали это воображение.Однако люди успокоились до сих пор и обнаружили, что искусственному интеллекту еще долго-долго. это долгий путь. Вместо того, чтобы создавать искусственный интеллект, лучше использовать существующий уровень знаний, чтобы проложить путь для искусственного интеллекта. Лучше применять существующие результаты искусственного интеллекта (машинное обучение) в реальной жизни. ИИ во благо — это хороший способ: с помощью технологий ИИ можно предсказывать наводнения, использовать для лечения, предсказывать болезни, помогать глухим общаться с нормальными людьми и т. д.
Машинное обучение как основное средство реализации ИИ задействует множество знаний и областей, а предоставляемая Google платформа TensorFlow позволяет обычным людям создавать или обучать модели машинного обучения.Как обычный человек, вы не можете предлагать революционный искусственный интеллект Теории.Не могу даже понять много математики, но с платформой TensorFlow, с некоторыми обученными моделями, вы можете создать любую модель, которую хотите, которая может помочь себе или помочь другим решить проблемы.
Ссылаться на
приложение
- В сказке «Златовласка и три медведя» рассказывается о том, как маленькая девочка Златовласка ворвалась в дом к ушедшим трем медведям и почувствовала, что стул, который не был ни жестким, ни мягким, был самым удобным для сидения, а три миски с кашей не были ни слишком горячими, ни слишком горячими, холодная каша — лучшая, а одна из трех кроватей, не жесткая и не мягкая, — самая удобная. Поэтому Златовласка обычно используется для описания чего-то правильного.
- Бритва Оккама относится к закону экономии, простое решение с большей вероятностью будет правильным, чем сложное решение, то есть путь к простоте.
- Горячее кодирование обычно переводится как однократное кодирование, только один из всех битов кодирования является горячим, то есть 1. Кодирование нескольких единиц называется многократным горячим кодированием.
- Перекрестное пересечение признаков получается из перекрестного произведения, то есть перекрестного произведения/векторного произведения.
- Вы можете скачать Jupyter Notebook, чтобы выполнять упражнения локально:скачать.Charm Magnetic Field.Google.Can/Wipe Poison-exe RC…
- steps представляет общее количество итераций обучения
- размер партии указывает количество образцов, необходимых для каждой итерации
- Общее количество выборок, необходимых для обучения модели, равно
- периоды представляют степень детализации отчета, количество обучающих выборок, необходимых в течение каждого периода, равно