Лекции-2016 (1126938), страница 5

Файл №1126938 Лекции-2016 (Лекции 2016 года) 5 страницаЛекции-2016 (1126938) страница 52019-05-11СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 5)

al. 1996)Обработка текстовМарковская модельмаксимальной энтропии• Позволяет смоделировать сложные признаки(например для определения части речи)T̂ = arg max P (T |W ) = arg maxtTiP (tagi |wordi , tagi1)• Сравнить с марковской модельюT̂ = arg max P (T |W ) = arg maxtTiP (wordi |tagi )P (tagi , tagi#Скрытые марковскиемоделиСкрытые марковскиемодели максимальнойэнтропии1)Обработка текстовПризнаки в MEMM#NNPSecretariatVBZisVBNexpectedTOVBNtorace⇥⇤1P (q|q , o) =expwi fi (o, q)Z(o, q )iVBNtomorrowОбработка текстовДекодирование и обучение• Декодирование - алгоритм Витерби, гдена каждом шаге вычисляетсяvt (j) =Nmaxi=1 vt 1 (i)P (sj |si , ot ), 1jN, 1 < t• Обучение аналогично логистическойрегрессииTОбработка текстовГруппировка при классификациипоследовательностей• Классы + метки• IO (inside, outside)• BIO (begin, inside, outside) - стандарт• BMEWO (begin, middle, end, whole, outside)B_NPBI_NPI?ClassifierDTNNNNINNNPThemorningflightfromDenverhasarrivedОбработка текстовКластеризацияобучение без учителяОбработка текстовМотивация• Данные можноразбить нанесколько групп попринципу схожести• Поиск схожих документов• Поиск схожих слов и терминов• Реферирование документов• Для задач обучения с учителем–Кластер, как признак для обучения–Кластер, как набор данных для обученияОбработка текстовВход для алгоритмов• Пусть каждый документ {x1 , x2 , .

. . , xk }представлен вектором xi = (xi1 , xi2 , . . . , xin )в пространстве X Rn• Задается расстояние между векторами–Евклидово–Чебышева–Хэмминга–Минковского–...Обработка текстовВекторное представлениедокумента• Модель мешка слов (bag of words)• Вес слова–Частота слова в документе (tf)–TF-IDF–Вложение слов (Word Embedding): word2vec,GloVe и т. д.Обработка текстовПлан• Иерархическая кластеризация• k-means• Affinity propogation• MeanShift• Спектральная кластеризация• WARD• DBSCANОбработка текстовИерархическая кластеризация• Строится дендрограмма - деревообозначающее вложеннуюпоследовательность кластеровОбработка текстовТипы иерархической кластеризации• Агломеративная–каждая точка - кластер–объединяем два наиболее близких кластера водин–останавливаемся, когда все данныеобъединены в один кластер• Дивизимная–все данные - один кластер–разделяем наименее плотный кластер на два–останавливаемся, когда достиглиминимального допустимого размераОбработка текстовРасстояние между кластерами• Между двумя ближайшими точками–Можно получить кластеры произвольнойформы–“Эффект цепи”• Между двумя самыми дальними точками–Чувствителен к выбросам• Среднее расстояниеОбработка текстовK-средних• Алгоритм k-means разбивает данные на kкластеров–Каждый кластер имеет центр - центроид–Параметр k - задается вручную• Алгоритм1.Выбираются k точек в качестве начальныхцентроидов2.Сопоставить каждой точке ближайший центроид3.Пересчитать центроиды4.Если алгоритм не сошелся перейти на шаг 2Обработка текстовКритерий останова• Нет перехода точек в другой кластер• Нет (незначительно) изменениецентроидов• Мало убывает погрешность (sum ofsquared error)kSSE =dist(x, mj )2j=1 x CjОбработка текстовK-средних.

ПримерОбработка текстовK-средних. ПримерОбработка текстовK-средних. ПримерОбработка текстовK-средних. ПримерОбработка текстовK-средних. ПримерОбработка текстовПроблемы• Алгоритм чувствителен к начальномувыбору центроидов–запуск с различной начальной инициализациейи выбор варианта с наиболее плотнымикластерами• Чувствителен к выбросам–можно фильтровать выбросы• Не подходит для нахождения кластеров,не являющихся элипсоидами–преобразование пространстваОбработка текстовКакой алгоритм выбрать*http://scikit-learn.org/stable/modules/clustering.htmlОбработка текстовЧто делать*http://scikit-learn.org/stable/tutorial/machine_learning_map/index.htmlОбработка текстовСледующая лекция• Методы классификации текстов на основеискусственных нейронных сетейНейронные сети прямого распространенияРекуррентные нейронные сетиНейронные сетиОбработка текстов, лекция 6Константин Архипенко21 октября 2016 г.Константин АрхипенкоНейронные сетиНейронные сети прямого распространенияРекуррентные нейронные сетиНейронные сетиМощные алгоритмы машинного обучения, показывающиелучшие результаты во многих задачах обработкиизображений, звука, текстов и других данныхКонстантин АрхипенкоНейронные сетиНейронные сети прямого распространенияРекуррентные нейронные сетиПопулярные архитектуры нейросетейНейронные сети прямого распространенияМногослойный персептронСвёрточные нейронные сети – рассматривать не будем,используются преимущественно для обработкиизображенийРекуррентные нейронные сетиЧасто нейросети различных архитектур соединяют,образуя более сложные и мощные нейросетиКонстантин АрхипенкоНейронные сетиНейронные сети прямого распространенияРекуррентные нейронные сетиСодержание1 Нейронные сети прямого распространенияКак они устроеныКак они обучаютсяКак их написать на Python2 Рекуррентные нейронные сетиРекуррентная нейронная сеть ЭлманаЗатухающий градиент и LSTMПриложения рекуррентных нейронных сетейКонстантин АрхипенкоНейронные сетиНейронные сети прямого распространенияРекуррентные нейронные сетиКак они устроеныКак они обучаютсяКак их написать на PythonНейронy (x) = f (hx, wi + b)f (·) – функция активации,обычно нелинейнаяОбучение нейрона естьнастройка его параметровwиbКонстантин АрхипенкоНейронные сетиНейронные сети прямого распространенияРекуррентные нейронные сетиКак они устроеныКак они обучаютсяКак их написать на PythonФункции активации11+e −zz −e −ztanh(z) = ee z +e−zσ(z) ==2σ(2z) − 1ReLU(z) = max(0, z)Бывают и другиеКонстантин АрхипенкоНейронные сетиНейронные сети прямого распространенияРекуррентные нейронные сетиКак они устроеныКак они обучаютсяКак их написать на PythonНейрон с функцией активации σ(z)y (x) = σ(hx, wi + b)Получается не что иное, каклогистическая регрессияКонстантин АрхипенкоНейронные сетиНейронные сети прямого распространенияРекуррентные нейронные сетиКак они устроеныКак они обучаютсяКак их написать на PythonДобавим слой нейроновhi = tanh(hx, w1i i + b1i )y = σ(hh, w2 i + b2 )Заведомо мощнее, чемлогистическая регрессияКонстантин АрхипенкоНейронные сетиНейронные сети прямого распространенияРекуррентные нейронные сетиКак они устроеныКак они обучаютсяКак их написать на PythonXORЛинейные классификаторы на такое не способныКонстантин АрхипенкоНейронные сетиНейронные сети прямого распространенияРекуррентные нейронные сетиКак они устроеныКак они обучаютсяКак их написать на PythonМногослойный персептронКонстантин АрхипенкоНейронные сетиНейронные сети прямого распространенияРекуррентные нейронные сетиКак они устроеныКак они обучаютсяКак их написать на PythonЛаконичная запись происходящего в нейросетиh = tanh(xW1 + b1 )y = σ(hw2T + b2 )Соглашение: используемвекторы-строки; приумножении на матрицувектор находится слеваКонстантин АрхипенкоНейронные сетиНейронные сети прямого распространенияРекуррентные нейронные сетиКак они устроеныКак они обучаютсяКак их написать на PythonГраф вычисленийh = tanh(xW1 + b1 )y = σ(hw2T + b2 )Константин АрхипенкоНейронные сетиНейронные сети прямого распространенияРекуррентные нейронные сетиКак они устроеныКак они обучаютсяКак их написать на PythonМультиномиальная логистическая регрессияSoftmax:e zisoftmax(z)i = P zjjeАналогично, усилим мультиномиальную логистическуюрегрессию добавлением слоя:h = tanh(xW1 + b1 )y = softmax(hW2 + b2 )Константин АрхипенкоНейронные сетиНейронные сети прямого распространенияРекуррентные нейронные сетиКак они устроеныКак они обучаютсяКак их написать на PythonГраф вычисленийh = tanh(xW1 + b1 )y = softmax(hW2 +b2 )Константин АрхипенкоНейронные сетиНейронные сети прямого распространенияРекуррентные нейронные сетиКак они устроеныКак они обучаютсяКак их написать на PythonВекторизация + графы вычисленийС этого момента мы отказываемся от подобных картинок:Дело в том, что softmax нельзя представить такиминейронамиБудем добиваться максимальной степени векторизации ииспользовать графы вычисленийКонстантин АрхипенкоНейронные сетиНейронные сети прямого распространенияРекуррентные нейронные сетиКак они устроеныКак они обучаютсяКак их написать на PythonСодержание1 Нейронные сети прямого распространенияКак они устроеныКак они обучаютсяКак их написать на Python2 Рекуррентные нейронные сетиРекуррентная нейронная сеть ЭлманаЗатухающий градиент и LSTMПриложения рекуррентных нейронных сетейКонстантин АрхипенкоНейронные сетиНейронные сети прямого распространенияРекуррентные нейронные сетиКак они устроеныКак они обучаютсяКак их написать на PythonКак обучается логистическая регрессияВспомним метод максимального правдоподобия:L=−N1 Xlog P(ytruen |xn ) + λkwk2 →− minw,bNn=1P(1|xn ) = 1 − P(0|xn ) = yn = σ(xn wT + b)Константин АрхипенкоНейронные сетиНейронные сети прямого распространенияРекуррентные нейронные сетиКак они устроеныКак они обучаютсяКак их написать на PythonКросс-энтропияПерепишем − log P(ytruen |xn ):− log P(ytruen |xn ) = −(ytruen log yn + (1 − ytruen ) log(1 − yn ))В правой части находится бинарная кросс-энтропияbinaryCrossentropy(ytruen , yn ):binaryCrossentropy(t, o) = −(t log o + (1 − t) log(1 − o))Константин АрхипенкоНейронные сетиНейронные сети прямого распространенияРекуррентные нейронные сетиКак они устроеныКак они обучаютсяКак их написать на PythonКак обучается логистическая регрессияТаким образом, максимизация правдоподобия есть то жесамое, что минимизация кросс-энтропии:L=N1 XbinaryCrossentropy(ytruen , yn ) + λkwk2 →− minw,bNn=1yn = σ(xn wT + b)В случае многоклассовой классификацииbinaryCrossentropy(ytruen , yn ) следует заменить на обычнуюкросс-энтропию categoricalCrossentropy(ytruen , yn )Константин АрхипенкоНейронные сетиНейронные сети прямого распространенияРекуррентные нейронные сетиКак они устроеныКак они обучаютсяКак их написать на PythonГрадиентный спускНа каждой итерации t обновляем параметры w и b:∂Lwi ←− wi − αt ∂wi∂Lb←− b − αt ∂bαt > 0Градиент функции потерь выписывается в явном видеА вот найти стационарную точку аналитически не удаётся– поэтому и используется градиентный спускКонстантин АрхипенкоНейронные сетиНейронные сети прямого распространенияРекуррентные нейронные сетиКак они устроеныКак они обучаютсяКак их написать на PythonСтохастический градиентный спуск (SGD)Вычисление градиента L на каждой итерации t дорого,поскольку в L входит сумма по всем элементам выборкиВместо этого предлагается для каждой итерации выбратьсвой элемент выборки (xn , ytruen ) и вычислить градиентпотери Ln только на этом элементе:Ln = binaryCrossentropy(ytruen , yn ) + λkwk2nwi ←− wi − αt ∂L∂winb←− b − αt ∂L∂bαt > 0αt зависит только от t и обычно уменьшается со временемдля сходимостиКонстантин АрхипенкоНейронные сетиНейронные сети прямого распространенияРекуррентные нейронные сетиКак они устроеныКак они обучаютсяКак их написать на PythonSGD с мини-батчамиМежду двумя крайностями есть золотая серединаРазобьём выборку на мини-батчи (группы одинаковогоразмера), а затем на каждой итерации вычисляемградиент потери Lb на определённом мини-батче bКонстантин АрхипенкоНейронные сетиНейронные сети прямого распространенияРекуррентные нейронные сетиКак они устроеныКак они обучаютсяКак их написать на PythonSGD с мини-батчамиГрадиент L аппроксимируется лучше, чем в обычном SGD– можно двигаться увереннее (использовать бо́льшиезначения αt )Эффективность почти не теряется, если вычисления врамках мини-батча можно распараллелитьДля обучения нейронных сетей на GPU мини-батчииспользуются почти всегдаКонстантин АрхипенкоНейронные сетиНейронные сети прямого распространенияРекуррентные нейронные сетиКак они устроеныКак они обучаютсяКак их написать на PythonОбучение нейронной сетиМы подробно рассмотрим процесс обучения следующейнейронной сети для задачи бинарной классификации:h = tanh(xW1 + b1 )y = σ(hw2T + b2 )Используем бинарную кросс-энтропию в качестве функциипотерь и SGD без мини-батчейНам потребуется ввести понятие якобиана и вспомнитьцепное правилоКонстантин АрхипенкоНейронные сетиНейронные сети прямого распространенияРекуррентные нейронные сетиКак они устроеныКак они обучаютсяКак их написать на PythonЯкобианПусть v = f (u).

Тогда∂v∂u(– матрица:∂v∂vi)ij =∂u∂ujМы обобщим понятие якобианаКонстантин АрхипенкоНейронные сетиНейронные сети прямого распространенияРекуррентные нейронные сетиКак они устроеныКак они обучаютсяКак их написать на PythonЯкобианПусть f : Rm →− R, v = f (u). Тогда(∂v∂u∂v∂v)i =∂u∂uiПусть f : Rm×n →− R, v = f (U). Тогда(– вектор:∂v∂U∂v∂v)ij =∂U∂uijПусть f : Rm×n →− Rn , v = f (U). Тогдатензор:(– матрица:∂vi∂v)ijk =∂U∂ujkКонстантин АрхипенкоНейронные сети∂v∂U– 3-мерныйНейронные сети прямого распространенияРекуррентные нейронные сетиКак они устроеныКак они обучаютсяКак их написать на PythonЦепное правилоЕсли w = g (v ), v = f (u), а функции гладкие, то∂w∂w ∂v=∂u∂v ∂uСправедливо и для наших якобиановНапример, если w = g (v), v = f (U), то∂w∂w ∂v=∂U∂v ∂UВ последнем равенстве вектор-строка умножается на3-мерный тензор; получается матрицаКонстантин АрхипенкоНейронные сетиНейронные сети прямого распространенияРекуррентные нейронные сетиКак они устроеныКак они обучаютсяКак их написать на PythonРасширим граф вычисленийloss – потеря натекущем элементевыборкиКонстантин АрхипенкоНейронные сетиНейронные сети прямого распространенияРекуррентные нейронные сетиКак они устроеныКак они обучаютсяКак их написать на PythonBackpropagationНаша цель – вычислить градиент loss по всем синимвершинам графа (настраиваемым параметрам нейросети),чтобы затем сделать шаг SGDДля этого будем идти от вершины loss к синим вершинам,вычисляя по цепному правилу градиенты loss по круглымвершинам на нашем путиКонстантин АрхипенкоНейронные сетиНейронные сети прямого распространенияРекуррентные нейронные сетиКак они устроеныКак они обучаютсяКак их написать на PythonBackpropagationloss = −(ytrue log y + (1 − ytrue ) log(1 − y ))∂loss∂yКонстантин АрхипенкоНейронные сети=1−ytrue1−y−ytrueyНейронные сети прямого распространенияРекуррентные нейронные сетиКак они устроеныКак они обучаютсяКак их написать на PythonBackpropagationy = σ(tmp4 )∂loss∂tmp4∂y∂tmp4Константин АрхипенкоНейронные сети==∂loss ∂y∂y ∂tmp4σ 0 (tmp4 )Нейронные сети прямого распространенияРекуррентные нейронные сетиКак они устроеныКак они обучаютсяКак их написать на PythonBackpropagationtmp4 = tmp3 + b2∂loss∂loss ∂tmp4∂b2 = ∂tmp4 ∂b2∂tmp4∂b2 = 1Константин АрхипенкоНейронные сетиНейронные сети прямого распространенияРекуррентные нейронные сетиКак они устроеныКак они обучаютсяКак их написать на PythonBackpropagationtmp4 = tmp3 + b2∂loss∂tmp3∂tmp4∂tmp3Константин АрхипенкоНейронные сети=∂loss ∂tmp4∂tmp4 ∂tmp3=1Нейронные сети прямого распространенияРекуррентные нейронные сетиКак они устроеныКак они обучаютсяКак их написать на PythonBackpropagationИ так далееКонстантин АрхипенкоНейронные сетиНейронные сети прямого распространенияРекуррентные нейронные сетиКак они устроеныКак они обучаютсяКак их написать на PythonКак реализуется backpropagation∂lossВершина tmp3 знает градиент ∂tmpи посылает эту3информацию прямоугольнику-предкуПрямоугольник (операция скалярного произведения)получает эту информацию.

Характеристики

Тип файла
PDF-файл
Размер
7,46 Mb
Тип материала
Высшее учебное заведение

Список файлов лекций

Свежие статьи
Популярно сейчас
А знаете ли Вы, что из года в год задания практически не меняются? Математика, преподаваемая в учебных заведениях, никак не менялась минимум 30 лет. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6455
Авторов
на СтудИзбе
305
Средний доход
с одного платного файла
Обучение Подробнее