-
Notifications
You must be signed in to change notification settings - Fork 3
speech 2019dec
Отведённое время: 5 минут (6 пунктов - на каждый чуть меньше минуты). ЕА просит сфокусироваться на том, что сделали мы.
Слайды к выступлению (Google Drive)
Отчёт по курсовой (PDF, Google Drive) - почти наисвежайший вариант
- О предметной области (плитки Брайля) В конце позапрошлого века Луи Брайль дал возможность незрячим читать - изобрел рельефно-точечный шрифт,в котором каждая буква есть 6 точек. Как часть создания системы обучения азбуке Брайля мы решали задачу распознавания символа по его черно-белой фотографии.
Формально перед нами стоит следующая задача: дан обучающий набор пар - матрица пикселей(картинка)+буква(метка класса). Нужно построить модель - оператор, переводящий картинки в метки классов, который делает меньше всего ошибок на обучающих данных.
В работе мы рассмотрели модели трёх типов. Каждая модель характеризуется набором параметров, выбор которых и есть обучение.
Старый вариант:
Формально перед нами стоит задача классификации изображений на принадлежность классам (каждый класс - буква алфавита), что, в свою очередь, есть построение оператора отображения матрицы пикселей на множество меток классов.
Пусть входной вектор . Перцептроном называют модель вида . Значение функции - 0 либо 1 (негативный/позитивный класс). Таким образом, перцептрон формирует в пространстве входных данных гиперплоскость, определяемую вектором нормали w и смещением b. Для мультиклассовой классификации нужны несколько перцептронов, для каждого из которых негативный класс - все, кроме выбранного.
Для обучения перцептрона вводится функция стоимости (функция потерь) - среднеквадратичное отклонение аргументов ступенчатой функции от истинного значения класса (0 или 1). Аргументы функции стоимости - параметры W и b. Минимум функции стоимости соответствует минимально возможному числу ошибок. На слайде показана граница, сформированная перцептроном при обучении на демонстрационных двумерных данных (т. о. перцептрон имеет три параметра) и проекция графика функции стоимости на двумерное пространство.
Для минимизации функции стоимости используется градиентный спуск. Градиент функции стоимости легко вычисляется аналитически. Алгоритм градиентного спуска на каждой итерации обновляет параметры, смещая их в направлении, противоположном вектору градиента. Величина смещения параметров пропорциональна величине градиента, поэтому рано или поздно процесс сойдётся к точке экстремума.
Логистическая регрессия, или сигмоидальный нейрон - модель, во многом похожая на перцептрон. Отличие состоит в том, что функция Хевисайда заменяется сигмоидой . Сигмоида может принимать значения от 0 до 1; значение функции соответствует вероятности попадания в позитивный класс. Из соображений статистики для сигмоидального нейрона выбирается особая функция стоимости, называемая кросс-энтропией. Её градиенты также легко вычисляются аналитически, поэтому для обучения снова применяется градиентный спуск.
На слайде можно видеть выходные значения логистической регрессии на том же демонстрационном наборе данных и проекцию кросс-энтропии на двумерное пространство параметров.
Нейронная сеть - это суперпозиция нескольких слоёв нейронов, как правило, сигмоидальных. Входами следующего слоя служат выходы предыдущего. У каждого нейрона есть вектор весов; удобно слой определять матрицей, где строка - транспонированный вектор весов одного нейрона. Тогда вектор входов следующего слоя - (формула).
На данный момент реализована демонстрационная версия системы. На слайде показана граница, сформированная на демо-данных, классификация в два класса. Нейросеть может формировать нелинейные границы; это плюс.
С другой стороны, в задаче обучения нейросети минимизируется невыпуклая функция стоимости (см. слайд - проекция графика на двумерное пространство), и есть опасность того, что градиентный спуск попадёт в неглубокий минимум; это минус.
Построены три демонстрационные модели, способные обучаться двухклассовой классификации. Далее мы перейдём к мультиклассовой классификации, соберём данные (фотографии) и попробуем обучить наши алгоритмы.
На самом деле, приведённые алгоритмы могут быть улучшены множеством различных способов. Могут быть взяты и иные модели, например, K ближайших соседей или деревья решений. Машинное обучение - это как кулинария: есть множество способов приготовить "деликатес". Но мы их, скорее всего, ограничимся выбранными моделями, потому что чаще всего обучающая выборка важнее, чем сам алгоритм.