Основы предиктивной аналитики. Часть вторая Профессор Крылов Владимир Владимирович [email protected]+7 964 839 0004
Transcript
Основы предиктивной аналитики
Часть втораяПрофессор Крылов Владимир Владимирович
VladimirVKrylovgmailcom+7 964 839 0004
copy Крылов - 2015 г 2
Применение методов Machine Learning к решению задач аналитики
bull Знакомство с наиболее быстро развивающимся подходом к анализу данных Цель узнать основы технологий обучающихся машин и их применения для аналитики Научиться писать R ndash скрипты для ML обработки данных
Машинное обучение активно работает над слегка запоздавшим светлым будущим
(Андрей Плахов Яндекс)
Дмитрий Ветровкандидат физико-математических наук руководитель исследовательской группы байесовских методов начальник департамента больших данных и информационного поиска факультета компьютерных наук НИУ ВШЭ
Машинное обучение появляется в тот момент когда переменные которыми описывается объект можно разделить на две части наблюдаемые и скрытые или латентные переменные Наблюдаемые переменные mdash это те переменные которые мы можем измерить для произвольного объекта Скрытые переменные мы можем померить для ограниченного числа объектов просто потому что как правило их измерение сопряжено либо с финансовыми затратами либо с человеческими либо с временными либо в принципе невозможно Например эти переменные характеризуют свойства объекта в будущем При этом предполагается что между наблюдаемыми и скрытыми переменными есть некоторая взаимосвязь И собственно на поиск этой взаимосвязи направлены современные алгоритмы машинного обучения
Методы обучающихся машин для аналитики которые мы рассмотрим
bull K-Meansbull K Nearest Neighbor (KNN)bull Kernel Methodsbull Recursive Partitioning Regression Treesbull PCA - Demonstrating that orthogonal bases are better for treesbull LDA - linear discriminant analysisbull SVM - Support vector machinesbull Deep Neural Network Model (DL deepnet R-package)
Сначала нужно загрузить несколько пакетов (packages) для поддержки ML Проверьте наличие пакетов в вашей системе gtlibrary() и установите в случае необходимости из Internetкомандой gt installpackages()
gtlibrary(rpart)
gtlibrary(MASS)
gtlibrary(class)
gtlibrary(ldquoe1071rdquo)
gtinstallpackages(ldquoe1071rdquo)
Данные для анализа
bull Чтобы избежать проблем с загрузкой файлов используем в этом примере искусственно сгенерированный набор данных
bull Для генерирования n случайных выборок используем простую функцию генерирования из многомерного нормального распределения со средним значением mu и матрицей ковариаций sigma
Скрипт для генерации
rmulnorm lt- function (n mu sigma)
M lt- t(chol(sigma))d lt- nrow(sigma)Z lt- matrix(rnorm(dn)dn)t(M Z + mu)
cm lt- function (actual predicted) Produce a confusion matrix
tlt-table(predictedactual) there is a potential bug in here if columns are tied for orderingt[apply(t2function(c) order(-c)[1])]
Total number of observationsN lt- 1000 3 Number of training observationsNtrain lt- N 07
Данные которые мы будем использовать для демо состоят из смеси трех двумерных нормальных распределений Целью является построить такую систему классификации которая сможет определять какому из распределений принадлежат поступающие данные Выведем данные для наглядности
Так выглядят визуализированные данные сгенерированные скриптом
Разделение данных на обучающие и проверочные является важным этапом ML
Просто используем случайный выбор из имеющегося набораdata lt- data[sample(1N)]
train lt- data[1Ntrain]
test lt- data[(Ntrain+1)N]
K-means алгоритм на пальцах
>
Обучающаяся машина без учителя Алгоритм K-meansАлгоритм K-meansЭтап 1 Первоначальное распределение объектов по кластерамbull Выбор случайным образом k точек данных из D как начальное множество представителей
кластера Cbull Распределение объектов по кластерам в соответствие с формулой
Этап 2 Перераспределение срединных элементовbull Вычисление центра для каждого кластераbull Перераспределение объектов по кластерамbull Алгоритм завершается когда на какой-то итерации не происходит изменения центра масс
кластеров Это происходит за конечное число итераций так как количество возможных разбиений конечного множества конечно а на каждом шаге суммарное квадратичное отклонение Cost не увеличивается поэтому зацикливание невозможно
x numeric matrix of data or an object that can be coerced to such a matrix (such as a numeric vector or a data frame with all numeric columns)
centers either the number of clusters say k or a set of initial (distinct) cluster centres If a number a random set of (distinct) rows in x is chosen as the initial centres
itermax the maximum number of iterations allowed
nstart if centers is a number how many random sets should be chosen
algorithm character may be abbreviated Note that Lloyd andForgy are alternative names for one algorithm
object an R object of class kmeans typically the result obof ob lt- kmeans()
method character may be abbreviated centers causesfitted to return cluster centers (one for each input point) and classes causes fitted to return a vector of class assignments
trace logical or integer number currently only used in the default method (Hartigan-Wong) if positive (or true) tracing information on the progress of the algorithm is produced Higher values may produce more tracing information
Обучающаяся машина без учителя Алгоритм KNN (Nearest Neighbor)Алгоритм KNN Основным принципом метода ближайших соседей является то что объект присваивается тому классу который является наиболее распространённым среди соседей данного элементаДля классификации каждого из объектов тестовой выборки
необходимо последовательно выполнить следующие операцииВычислить расстояние до каждого из объектов обучающей выборки
Отобрать k объектов обучающей выборки расстояние до которых минимально
Класс классифицируемого объекта mdash это класс наиболее часто встречающийся среди k ближайших соседей
Как работает алгоритм KNN
>
knn(train test cl k = 1 l = 0 prob = FALSE useall = TRUE)
train matrix or data frame of training set cases
test matrix or data frame of test set cases A vector will be interpreted as a row vector for a single case
cl factor of true classifications of training set
k number of neighbours considered
l minimum vote for definite decision otherwise doubt (More precisely less than k-l dissenting votes are allowed even if k is increased by ties)
prob If this is true the proportion of the votes for the winning class are returned as attribute prob
useall controls handling of ties If true all distances equal to the kth largest are included If false a random selection of distances equal to the kth is chosen to use exactly k neighbours
Here we demonstrate the bias-variance tradeoff as we increase k
err lt- matrix(nrow=N100 ncol=2)for (i in 1nrow(err))
k lt- i 4test$predicted_class lt- knn(train[12] test[12] train$class k=k)mlt-cm(test$class test$predicted_class)err[i] lt- c(k 1 - sum(diag(m)) sum(m))
plot (err)
Результаты кластеризации и зависимость ошибки от числа кластеров
actualpredicted A B C A 272 0 7 B 1 308 1 C 31 0 280
gt m
Recursive PartitioningRegression Treebull Основано на дереве решений представляющем граф бинарной
последовательной классификации по тест-вопросам в каждой вершине графа Листья дерева ассоциируются с результатами классификации
Метод RP реализует обучение машины строить дерево решений по обучающей выборке данных
bull laquoРасщеплениеraquo обучающих данныхМножество данных в каждом узле разделяется на два соответствующих ответам TRUE или FALSE Вопросы должны порождать бинарное разбиение множества Для числовых характеристик это обычно неравенства характеристика Xn меньше или равна значению Ym
bull Конструирование тест-вопросовПринцип putity measurement ndash очищающих измерений Каждая характеристика анализируется статистически для каждого разбиения и выбирается наилучшее по чистоте разделенияbull Критерий остановкиЧтобы избежать переобучения используется либо порог чистоты либо максимальное число узлов либо минимальное число наблюдений в узле
Recursive PartitioningRegression Tree
Пример расщепления обучающей выборки
rpart(formula data weights subset naaction = narpart method model = FALSE x = FALSE y = TRUE parms control cost )
formula a formula with a response but no interaction terms If this a a data frome that is taken as the model frame (see modelframe)
data an optional data frame in which to interpret the variables named in the formula
weights optional case weights
subset optional expression saying that only a subset of the rows of the data should be used in the fit
naaction the default action deletes all observations for which y is missing but keeps those in which one or more predictors are missing method one of anova poisson class or exp If method is missing then the routine tries to make an intelligent guess If y is a survival object then method = exp is assumed if y has 2 columns then method = poisson is assumed if y is a factor then method = class is assumed otherwise method = anova is assumed It is wisest to specify the method directly especially as more criteria may added to the function in future Alternatively method can be a list of functions named init split and eval Examples are given in the file lsquotestsusersplitsRrsquo in the sources and in the vignettes lsquoUser Written Split Functionsrsquo
model if logical keep a copy of the model frame in the result If the input value for model is a model frame (likely from an earlier call to the rpart function) then this frame is used rather than constructing new data
x keep a copy of the x matrix in the result
y keep a copy of the dependent variable in the result If missing and model is supplied this defaults to FALSE
parms optional parameters for the splitting function Anova splitting has no parameters Poisson splitting has a single parameter the coefficient of variation of the prior distribution on the rates The default value is 1 Exponential splitting has the same parameter as Poisson For classification splitting the list can contain any of the vector of prior probabilities (component prior) the loss matrix (component loss) or the splitting index (component split) The priors must be positive and sum to 1 The loss matrix must have zeros on the diagonal and positive off-diagonal elements The splitting index can be gini or information The default priors are proportional to the data counts the losses default to 1 and the split defaults to gini
control a list of options that control details of the rpart algorithm See rpartcontrol
cost a vector of non-negative costs one for each variable in the model Defaults to one for all variables These are scalings to be applied when considering splits so the improvement on splitting on a variable is divided by its cost in deciding which split to choose arguments to rpartcontrol may also be specified in the call to rpart They are checked against the list of valid arguments
Recursive PartitioningRegression Tree example(r lt- rpart(class ~ x + y data = train))plot(r)text(r)
Here we look at the confusion matrix and overall error rate from applying the tree rules to the training datapredicted lt- asnumeric(apply(predict(r) 1 function(r) order(-r)[1]))(m lt- cm (train$class predicted))1 - sum(diag(m)) sum(m)
And by comparison against the test datapredicted lt- asnumeric(apply(predict(r test[12]) 1 function(r) order(-r)[1]))(m lt- cm (test$class predicted))1 - sum(diag(m)) sum(m)
Анализ по главным компонентам (Principal Component Analysis PCA)Известно четыре базовых версии методаbull аппроксимировать данные линейными многообразиями меньшей
размерностиbull найти подпространства меньшей размерности в ортогональной проекции
на которые разброс данных (то есть среднеквадратичное отклонение от среднего значения) максимален
bull найти подпространства меньшей размерности в ортогональной проекции на которые среднеквадратичное расстояние между точками максимально
bull для данной многомерной случайной величины построить такое ортогональное преобразование координат в результате которого корреляции между отдельными координатами обратятся в нуль
В основе задача наилучшей аппроксимации конечного множества точек прямыми и плоскостями (Пирсон 1901) Дано конечное множество векторов для каждого k=01hellipn-1 среди всех k-мерных линейных многообразий в Rn найти такое что сумма квадратов уклонений минимальна
bull Графическая иллюстрация метода главных компонент в 3D
Алгоритм
bull Централизация данных
bull Находим первую главную компоненту
bull Вычитаем проекцию на нее
bull Находим вторую главную компоненту
bull Вычитаем проекцию на (k-1) главную компоненту
bull Находим k-ую главную компоненту
bull Всегда выполняется условие ортогональности
princomp(formula data = NULL subset naaction )formula a formula with no response variable referring only to numeric variables
data an optional data frame (or similar see modelframe) containing the variables in the formula formula By default the variables are taken from environment(formula)
subset an optional vector used to select rows (observations) of the data matrix x
naaction a function which indicates what should happen when the data contain NAs The default is set by the naaction setting of options and is nafail if that is unset The lsquofactory-freshrsquo default is naomit
x a numeric matrix or data frame which provides the data for the principal components analysis
cor a logical value indicating whether the calculation should use the correlation matrix or the covariance matrix (The correlation matrix can only be used if there are no constant variables)
scores a logical value indicating whether the score on each principal component should be calculated
covmat a covariance matrix or a covariance list as returned by covwt (and covmve or covmcd from package MASS) If supplied this is used rather than the covariance matrix of x
arguments passed to or from other methods If x is a formula one might specify cor or scores
object Object of class inheriting from princomp
newdata An optional data frame or matrix in which to look for variables with which to predict If omitted the scores are used If the original fit used a formula or a data frame or a matrix with column names newdata must contain columns with the same names Otherwise it must contain the same number of columns to be used in the same order
Principal Component Analysis (PCA)plt-princomp(train[12])train_pca lt- dataframe(p$scores)train_pca$class lt- train$class
Compare the alignment of the clusters to the axis in the feature space versus the transformed space
r2 lt- rpart(class ~ Comp1 + Comp2 data = train_pca)
Линейный дискриминантный анализ (Linear Discriminant Analysis - LDA)bull Для каждого образца объекта или события с известным классом y
рассматривается набор наблюдений x (называемых ещё признаками переменными или измерениями) Набор таких образцов называется обучающей выборкой (или набором обучения обучением) Задачи классификации состоит в том чтобы построить хороший прогноз класса y для всякого так же распределённого объекта (не обязательно содержащегося в обучающей выборке) имея только наблюдения x Основная идея состоит в сравнении распределений для каждого из классов Расстоянием (по Фишеру) между распределениями принято считать отношение межклассовой дисперсии к внутриклассовой
bull Оптимальное байесовское решение - относить точки ко второму классу если отношение правдоподобия ниже некоторого порогового значения T
bull Предполагая что выполнена нормировка
bull Решение записывается в виде неравенства для скалярного произведения
bull Здесь laquoизмерительныйraquo вектор равен
bull с- дискриминантный порог
lda(x grouping prior = proportions tol = 10e-4 method CV = FALSE nu )
formula A formula of the form groups ~ x1 + x2 + That is the response is the grouping factor and the right hand side specifies the (non-factor) discriminators
data Data frame from which variables specified in formula are preferentially to be taken
x (required if no formula is given as the principal argument) a matrix or data frame or Matrix containing the explanatory variables
grouping (required if no formula principal argument is given) a factor specifying the class for each observation
prior the prior probabilities of class membership If unspecified the class proportions for the training set are used If present the probabilities should be specified in the order of the factor levels
tol A tolerance to decide if a matrix is singular it will reject variables and linear combinations of unit-variance variables whose variance is less than tol^2
subset An index vector specifying the cases to be used in the training sample (NOTE If given this argument must be named)
naaction A function to specify the action to be taken if NAs are found The default action is for the procedure to fail An alternative is naomit which leads to rejection of cases with missing values on any required variable (NOTE If given this argument must be named)
method moment for standard estimators of the mean and variance mle for MLEs mve to use covmve or t for robust estimates based on a t distribution
CV If true returns results (classes and posterior probabilities) for leave-one-out cross-validation Note that if the prior is estimated the proportions in the whole dataset are used
nu degrees of freedom for method = t
arguments passed to or from other methods
prior the prior probabilities usedmeans the group meansscaling a matrix which transforms observations to
discriminant functions normalized so that within groups covariance matrix is spherical
svd the singular values which give the ratio of the between- and within-group standard deviations on the linear discriminant variables Their squares are the canonical F-statistics
N The number of observations usedcall The (matched) function call
An object of class lda containing the following components
Метод опорных векторов (Support Vector Machines - SVM)Относится к ML с учителем и использует линейные разделяющие поверхности
Идея алгоритма
bull По обучающей выборке
bull Строится классифицирующая функция
bull Используя гиперплоскость
bull Поиск коэффициентов сводится к максимизации
расстояний от опорных векторов или минимизации
Иллюстрация на простейшем примере
>
Производится вложение обучающей выборки в пространство более высокой размерности Х с помощью нелинейной функции так чтобы обеспечит линейную разделимость в Х
Разделяющая функция тогда имеет вид
Функция называется ядром
Полиномиальное ядро
Радиальная базисная функция
Сигмоид
Линейная неразделимость и использование ядер
Иллюстрация использования ядра для отображения 2D -gt 3D
>
svm((formula data = NULL subset naaction =naomit scale = TRUE))
formulaa symbolic description of the model to be fitdataan optional data frame containing the variables in the model By default the variables are taken from the environment which lsquosvmrsquo is called fromxa data matrix a vector or a sparse matrix (object of class Matrix provided by the Matrix package or of class matrixcsr provided by the SparseM package or of class simple_triplet_matrix provided by the slam package)ya response vector with one label for each rowcomponent of x Can be either a factor (for classification tasks) or a numeric vector (for regression)scaleA logical vector indicating the variables to be scaled If scale is of length 1 the value is recycled as many times as needed Per default data are scaled internally (both x and y variables) to zero mean and unit variance The center and scale values are returned and used for later predictionstypesvm can be used as a classification machine as a regression machine or for novelty detection Depending of whether y is a factor or not the default setting for type is C-classification or eps-regression respectively but may be overwritten by setting an explicit valueValid options areC-classificationnu-classificationone-classification (for novelty detection)eps-regressionnu-regression
Support Vector Machines
s lt- svm( I(factor(class)) ~ x + y data = train cost = 100 gama = 1)
Package lsquodeepnetrsquo February 19 2015 Type Package Title deep learning toolkit in R Version 02 Date 2014-03-20 Author Xiao Rong Maintainer Xiao Rong Description Implement some deep learning architectures and neural network algorithms including BPRBMDBNDeep autoencoder and so on License GPL NeedsCompilation no Repository CRAN DatePublication 2014-03-20 100343
laquoВ 1997 году Deep Blue обыграл в шахматы КаспароваВ 2011 Watson обставил чемпионов JeopardyСможет ли ваш алгоритм в 2013 году отличить Бобика от ПушистикаraquoKaggle Competitions Details
Сегодня уже можно ответить laquoдаraquo mdash десятка лидеров справилась с заданием на 988
Распознавание основано на feature detection и последующем различении комбинаций
Заранее неизвестно какие части картинки могут использоваться как хорошие features В их роли может выступать все что угодно mdash фрагменты изображения форма размер или цвет Feature может не присутствовать на картинке сама а выражаться в параметре полученным каким-то образом из исходных данных
Распознавание рукописных цифр
Еще пример посложнее
Использование нейронной сети с обучениемОбучение такой нейронной сети производится обычно методом обратного распространения ошибки таким образом чтобы минимизировать среднеквадратическую ошибку отклика сети на обучающей выборке Таким образом обучающая выборка содержит пары векторов признаков (входные данные) и эталонных векторов (маркированные данные) (x y)
Сверхвысокая размерность при работе с первичным представлением пикселями
Пиксельное кодирование
Принцип иерархии понятий ndash основа deep learning
bull Все вещи состоят из других маленьких и более элементарных вещей
bull Как извлекать features Гипотеза малоразмерных многообразий
Разреженное (sparse) кодирование
первый уровень иерархии состоит из элементов словаря этого кода которые представляют собой штрихи и границы
Словарь для лиц
Выделение объектов заданного класса
Основные архитектуры Deep Learningbull Deep neural networks (DNN)bull Deep belief networks (DBN)bull Convolutional neural networks (CNN)bull Deep Boltzmann Machines (DBM)bull Stacked (Denoising) Auto-Encodersbull Deep Stacking Networksbull Tensor Deep Stacking Networks (T-DSN)bull Spike-and-Slab RBMs (ssRBMs)bull Compound Hierarchical-Deep Modelsbull Deep Coding Networks (DPCN)bull Deep Kernel Machinesbull Deep Q-Networks (2015 г)
Задача классификации распознавания и подобные являются задачей конструирования функции на множестве входных наборов и со значениями в множестве требуемого вида выходных
bull Норбертом Винером было показано что любая функция может быть сколь угодно точно композицией двух (он использовал функции полином Лагранжа и функцию Лагерра)
bull Соответствует двухслойной нейросетиbull Архитектуры Deep Learning соответствуют представлению
bull Обеспечивают эффективную параметризацию при решении конкретных задач Более сложные функции создаются из большего числа но более эффективно настраиваемых laquoкирпичиковraquo Пример ndash синтез булевых функций Дерево вентилей эффективнее двухслойной схемы
Фактор - графыВсе методы которые расмотрели ndash не DL Даже деревья классификации Все операции в одном входном словаре
DL можно определить по фактор-графу
Например
bull Еще одна сторона DL - нередко использует невыпуклые функции потерьbull Обучение на основе выпуклых функций не зависит от порядка
предъявления данных для обучения Все определяет асимптотика всего train - набора В алгоритмах DL порядок данных в обучающей выборке может иметь значение
bull Многие решения в DL не доказаны математически и являются успешными эвристиками
bull Большой простор для прикладной математики Может рассматриваться как фактор-граф с группами латентных переменных
bull В настоящее время стал основной технологией в распознавании речи (speech recognition) и машинном зрении (computer vision) начал применяться в обработке текстов (natural language processing)
bull Основная идея ndash применение нелинейного отображения входного набора в более высокоразмерное пространство где многие неразделимые композиции становятся разделимыми а затем объединение композиций по семантической близости
Подход разреженного кодирования
Обобщенная архитектура
bull DL сеть может быть собрана каскадированием и использованием обучения с учителем
Здесь используется forward propagation для обучения
Для настройки коэффициентов используется метод fprof для каждого
Требуется знание градиента энергии
Элементы (kl) матрицы Якобиана
Требуется знание градиента энергии 120597119864120597119882119894 = 120597119864120597119883119894120597119865119894(119883119894minus1119882119894)120597119882119894
ሾ1times 119873119908ሿ= ሾ1times 119873119909ሿlowast[119873119909 times 119873119908] Элементы (kl) матрицы Якобиана
Сводится к рекуррентному соотношению для вычисления градиента 120597119864120597119883119894minus1 = 120597119864120597119883119894120597119865119894(119883119894minus1119882119894)120597119883119894minus1
В итоге
Для вычисления градиента может использоваться метод back propagation
В действительности работают любые архитектуры построения функции Нужно конструировать связи и функции блоков
Язык Torch 7 ndash современный инструмент моделирования и имплементации
Machine Learning with Torch7 (httpcodecogbitscomwikidokuphpid=start)
bull These tutorials were originally designed for the IPAM Summer School on Deep Learning more info herebull This wiki provides multiple tutorials with the overall objective of teaching you how to do machine learning
with Torch7bull Torch7 provides a Matlab-like environment for state-of-the-art machine learning algorithms It is easy to use
and provides a very efficient implementation thanks to an easy and fast scripting language (LuaJIT) and an underlying C implementation
bull These tutorials should be readdone in orderbull Tutorial 1 Setup Basics Getting Startedbull Tutorial 2 Supervised Learningbull Tutorial 3 Unsupervised Learningbull Tutorial 4 Graphical Modelsbull Tutorial 5 Creating New Modulesbull Tutorial 6 Using CUDAbull To follow these tutorials and do the exercises you will need to download the associated code which is hosted
on GitHub on this page In this repository each directory corresponds to a tutorial herebull starttxt middot Last modified 20140204 2246 by clement
Torch 7 является расширением Lua
What is LuaLua is a powerful fast lightweight embeddable scripting languageLua combines simple procedural syntax with powerful data description constructs based on associative arrays and extensible semantics Lua is dynamically typed runs by interpreting bytecode for a register-based virtual machine and has automatic memory management with incremental garbage collection making it ideal for configuration scripting and rapid prototyping
Why choose LuaLua is a proven robust languageLua has been used in many industrial applications (eg Adobes Photoshop Lightroom) with an emphasis on embedded systems (eg the Ginga middleware for digital TV in Brazil) and games (eg World of Warcraft and Angry Birds) Lua is currently the leading scripting language in games Lua has a solid reference manual and there are several books about it Several versions of Lua have been released and used in real applications since its creation in 1993 Lua featured in HOPL III the Third ACM SIGPLAN History of Programming Languages Conference in June 2007 Lua won the Front Line Award 2011 from the Game Developers Magazine
Свертка и архитектура 4-х уровневой сверточной сети
Функциональная структура
Примеры успешного применения сверточных сетей
Диагностика эпилепсии по ЭЭГ
Реализация сверточной сетью
Одна из самых больших сверточных сетейbull Krizhevsky Sutskever Hinton 2012bull 650 000 нейронов 832 000 000 синапсов 60 000000 пареметровbull Использовался backprop на GPUbull Обучающая выборка на материалах 20 летbull Купил Google в январе 2013bull В мае 2013 развернул как сервис Photo Tagging Google+
Пример тэгирования
Пример поиска похожих по изображению
Пример поиска в коллекции изображений по текстовому запросу
Пример laquoоблачногоraquo классификатора изображений
Самообучающиеся нейронные сети на основе минимизации функции энергииbull Применима к сетям с обратными связямиbull Конструирование функции энергии должно обеспечивать
laquoконтрастностьraquo разделения
bull Энергетическая функция может Неформально рассматриваться как отрицательный логарифм плотности вероятности
Y 2=(Y1)2
RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцмана
bull Из DBM cтроится Deep Belief Network (DBN)
bull w mdash вес между нейронами
bull b mdash смещение нейрона
bull s mdash состояние нейрона
Алгоритм обучения Contrastive Divergence (CD)bull w_ij mdash веc между i-ым нейроном Вероятность пар может быть представлена как
bull a_i mdash смещение видимого нейрона
bull b_j mdash смещение скрытого нейрона
bull v_i mdash состояние видимого нейрона
bull h_j mdash состояние скрытого нейрона Полная вероятность состояния видимых нейронов
Основные уравнения адаптации
Алгоритм Хинтона - Contrastive Divergence (CD-k)
1 состояние видимых нейронов приравнивается к входному образу2 выводятся вероятности состояний скрытого слоя3 каждому нейрону скрытого слоя ставится в соответствие состояние laquo1raquo с вероятностью равной его текущему состоянию4 выводятся вероятности видимого слоя на основании скрытого5 если текущая итерация меньше k то возврат к шагу 26 выводятся вероятности состояний скрытого слоя
darch Package for deep architectures and Restricted-Bolzmann-MachinesThe darch package is build on the basis of the code from G E Hinton and R R Salakhutdinov (available under Matlab Code for deep belief nets last visit 01082013) This package is for generating neural networks with many layers (deep architectures) and train them with the method introduced by the publications A fast learning algorithm for deep belief nets (G E Hinton S Osindero Y W Teh) and Reducing the dimensionality of data with neural networks (G E Hinton R R Salakhutdinov) This method includes a pre training with the contrastive divergence method publishing by GE Hinton (2002) and a fine tuning with common known training algorithms like backpropagation or conjugate gradient
bull Version 091bull Imports futilelogger ff methodsbull Published 2014-03-16bull Author Martin Dreesbull Maintainer Martin Drees ltmdrees at studfh-dortmunddegtbull License GPL-2bull URL httpgithubcommaddin79darchbull NeedsCompilation nobull Materials READMEbull CRAN checks darch results
Связь плотности вероятности и энергии
Используется распределение Гиббса
Задача обучения с точки минимизации энергии сети
bull Сконструировать функцию энергии с малыми значениями на обучающей выборке и с большими значениями всюду вне этого множества
bull Первое несложно а второе представляет задачу процесса обучения
Интуитивные соображения
Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decomposition LISTA ndashметоды использующие разреженные коды
Латентная переменная Z =argmin_z Distance[Decoder(Z)Y]+FactorB(Z)MAPminimaize sum of factors
Автоэнкодер (auto encoder) Автоэнкодер представляет собой алгоритм обучения без учителя который использует нейронную сеть и метод обратного распространения ошибки для того чтобы добиться того что входной вектор признаков вызывал отклик сети равный входному вектору те y = x Автоэнкодер пытается построить функцию h(x) = x
Архитекттура ICA моделей
Итеративные алгоритмы с оптимальным разреженным кодированием ISTAFISTA
Самоорганизация данных методами Deep Learning
>
Знакомство с пакетом deepnet
Назначение
Составdbndnntrain - обучение сети с архитектурой DBN (deep belief network)loadmnist - формирование данных из файлов MNISTnnpredict - предсказание новых выборок на обученной нейронной сетиnntest ndash тестирование обученной нейронной сети с возвращением значения ошибкиnntrain ndash обучение одностлойной или многослойной нейронной сети методом backproprbmdown ndash генерирование видимого вектора для скрытых состояний сети RBMrbmtrain ndash обучение сети RBMrbmup ndash извлечение скрытых состояний RBM по известным видимым состояниямsaednntrain ndash обучение нейронной сети с архитектурой stacked autoencoder
Прогнозирование (классификация) нейронной сетью с архитектурой stacked auto encoder
Argumentsbull x matrix of x values for examplesbull y vector or matrix of target values for examplesbull hidden vector for number of units of hidden layersDefault is c(10)bull activationfun activation function of hidden unitCan be sigmlinear or tanhDefault isbull sigm for logistic functionbull learningrate learning rate for gradient descent Default is 08bull momentum momentum for gradient descent Default is 05 bull learningrate_scalebull learning rate will be mutiplied by this scale after every iteration Default is 1 bull numepochs number of iteration for samples Default is 3bull batchsize size of mini-batch Default is 100bull output function of output unit can be sigmlinear or softmax Default is sigmbull sae_output function of autoencoder output unit can be sigmlinear or softmax Defaultbull is linearbull hidden_dropout drop out fraction for hidden layer Default is 0bull visible_dropoutbull drop out fraction for input layer Default is 0
Что такое MNISTbull Смешанный набор данных Национального института стандартов и
технологий (mixed National Institute of Standards and Technology MNIST) был создан исследователями IR в качестве эталона для сравнения различных алгоритмов IR
bull Набор данных состоит всего из 70 000 изображений 60 000 обучающих (используемых для создания модели IR) и 10 000 тестовых (применяемых для оценки точности модели) Каждое изображение MNIST mdash это оцифрованная картинка одной цифры написанной от руки Каждое изображение имеет размер 28 times 28 пикселей Каждое значение пикселя лежит в диапазоне от 0 (представляет белый цвет) до 255 (представляет черный цвет) Промежуточные значения отражают оттенки серого
httpyannlecuncomexdbmnistобучающие и тестовые данные хранятся в двух файлах а не в одном Один файл содержит значения пикселей для изображений а другой mdash метки изображений (0ndash9) Каждый из четырех файлов также содержит заголовочную информацию и все они хранятся в двоичном формате сжатом в формате gziptrain-images-idx3-ubytegz training set images (9912422 bytes)
train-labels-idx1-ubytegz training set labels (28881 bytes)
t10k-images-idx3-ubytegz test set images (1648877 bytes)
t10k-labels-idx1-ubytegz test set labels (4542 bytes)
bull Каждая строка файла представляет собой имидж размера 28 times 28 вектором длины 784 каждый признак ndash значение пиксела в черно-белой шале Первый столбец содержит метку цифры 0ndash9 следующие 2828 столбцов представляют целый имидж и так далее Пример первой строки
Визуализация
bull plotmnist()bull mnistbull paramsbull train$n number of train samplesbull train$x pix of every train sample imagebull train$y label of every train sample imagebull train$yy one-of-c vector of label of train sample imagebull test$n number of test samplesbull test$x pix of every test sample imagebull test$y label of every test sample imagebull test$yy one-of-c vector of label of test sample image
plotmnist()
Распознавание рукописных цифр в deepnet
another way to download the MNIST datasetmnist downloadmnist(range=c(01)global=FALSE)look at MNIST datamnist$train$xmnist$train$ymnist$test$xmnist$test$ytrain of the sae neural networkdnnlt-saednntrain(mnist$train$xmnist$train$yhidden=c(55))test of the sae neural networknntest(dnnmnist$test$xmnist$test$yt=05)
End of slides part 2 (Part 3 - NLP remaining)
Vladimirvkrylovgmailcom
Основы предиктивной аналитики Часть вторая
Применение методов Machine Learning к решению задач аналитики
Дмитрий Ветров кандидат физико-математических наук ру
Методы обучающихся машин для аналитики которые мы рассмотрим
Сначала нужно загрузить несколько пакетов (packages) для поддер
Данные для анализа
Скрипт для генерации
Данные которые мы будем использовать для демо состоят из смес
Так выглядят визуализированные данные сгенерированные скриптом
Разделение данных на обучающие и проверочные является важным эт
K-means алгоритм на пальцах
Обучающаяся машина без учителя Алгоритм K-means
Slide 13
Slide 14
Здесь мы используем заранее известный факт что необходимо кла
Еще одна иллюстрация работы алгоритма K-means
Обучающаяся машина без учителя Алгоритм KNN (Nearest Neighbor)
Как работает алгоритм KNN
knn(train test cl k = 1 l = 0 prob = FALSE useall = TRUE
Slide 20
Результаты кластеризации и зависимость ошибки от числа кластеро
Recursive PartitioningRegression Tree
Метод RP реализует обучение машины строить дерево решений по об
Recursive PartitioningRegression Tree (2)
rpart(formula data weights subset naaction = narpart met
Slide 26
Recursive PartitioningRegression Tree example
Анализ по главным компонентам (Principal Component Analysis PC
Итеративные алгоритмы с оптимальным разреженным кодированием IS
Самоорганизация данных методами Deep Learning
Знакомство с пакетом deepnet
Прогнозирование (классификация) нейронной сетью с архитектурой
Arguments
Архитектура сети SAE
Архитектура с 5Х4 hidden 3 outs
Example
Анализ обучающего набора данных
Параметры SAE сети
Коэффициенты связей
Предсказание обученной сетью
Сравнение обучающей и тестовой выборки
plot3d(xy)
Работаем с пакетом MNIST
httpyannlecuncomexdbmnist
Подготовка к обработке
Slide 118
Визуализация
plotmnist()
Распознавание рукописных цифр в deepnet
End of slides part 2 (Part 3 - NLP remaining)
copy Крылов - 2015 г 2
Применение методов Machine Learning к решению задач аналитики
bull Знакомство с наиболее быстро развивающимся подходом к анализу данных Цель узнать основы технологий обучающихся машин и их применения для аналитики Научиться писать R ndash скрипты для ML обработки данных
Машинное обучение активно работает над слегка запоздавшим светлым будущим
(Андрей Плахов Яндекс)
Дмитрий Ветровкандидат физико-математических наук руководитель исследовательской группы байесовских методов начальник департамента больших данных и информационного поиска факультета компьютерных наук НИУ ВШЭ
Машинное обучение появляется в тот момент когда переменные которыми описывается объект можно разделить на две части наблюдаемые и скрытые или латентные переменные Наблюдаемые переменные mdash это те переменные которые мы можем измерить для произвольного объекта Скрытые переменные мы можем померить для ограниченного числа объектов просто потому что как правило их измерение сопряжено либо с финансовыми затратами либо с человеческими либо с временными либо в принципе невозможно Например эти переменные характеризуют свойства объекта в будущем При этом предполагается что между наблюдаемыми и скрытыми переменными есть некоторая взаимосвязь И собственно на поиск этой взаимосвязи направлены современные алгоритмы машинного обучения
Методы обучающихся машин для аналитики которые мы рассмотрим
bull K-Meansbull K Nearest Neighbor (KNN)bull Kernel Methodsbull Recursive Partitioning Regression Treesbull PCA - Demonstrating that orthogonal bases are better for treesbull LDA - linear discriminant analysisbull SVM - Support vector machinesbull Deep Neural Network Model (DL deepnet R-package)
Сначала нужно загрузить несколько пакетов (packages) для поддержки ML Проверьте наличие пакетов в вашей системе gtlibrary() и установите в случае необходимости из Internetкомандой gt installpackages()
gtlibrary(rpart)
gtlibrary(MASS)
gtlibrary(class)
gtlibrary(ldquoe1071rdquo)
gtinstallpackages(ldquoe1071rdquo)
Данные для анализа
bull Чтобы избежать проблем с загрузкой файлов используем в этом примере искусственно сгенерированный набор данных
bull Для генерирования n случайных выборок используем простую функцию генерирования из многомерного нормального распределения со средним значением mu и матрицей ковариаций sigma
Скрипт для генерации
rmulnorm lt- function (n mu sigma)
M lt- t(chol(sigma))d lt- nrow(sigma)Z lt- matrix(rnorm(dn)dn)t(M Z + mu)
cm lt- function (actual predicted) Produce a confusion matrix
tlt-table(predictedactual) there is a potential bug in here if columns are tied for orderingt[apply(t2function(c) order(-c)[1])]
Total number of observationsN lt- 1000 3 Number of training observationsNtrain lt- N 07
Данные которые мы будем использовать для демо состоят из смеси трех двумерных нормальных распределений Целью является построить такую систему классификации которая сможет определять какому из распределений принадлежат поступающие данные Выведем данные для наглядности
Так выглядят визуализированные данные сгенерированные скриптом
Разделение данных на обучающие и проверочные является важным этапом ML
Просто используем случайный выбор из имеющегося набораdata lt- data[sample(1N)]
train lt- data[1Ntrain]
test lt- data[(Ntrain+1)N]
K-means алгоритм на пальцах
>
Обучающаяся машина без учителя Алгоритм K-meansАлгоритм K-meansЭтап 1 Первоначальное распределение объектов по кластерамbull Выбор случайным образом k точек данных из D как начальное множество представителей
кластера Cbull Распределение объектов по кластерам в соответствие с формулой
Этап 2 Перераспределение срединных элементовbull Вычисление центра для каждого кластераbull Перераспределение объектов по кластерамbull Алгоритм завершается когда на какой-то итерации не происходит изменения центра масс
кластеров Это происходит за конечное число итераций так как количество возможных разбиений конечного множества конечно а на каждом шаге суммарное квадратичное отклонение Cost не увеличивается поэтому зацикливание невозможно
x numeric matrix of data or an object that can be coerced to such a matrix (such as a numeric vector or a data frame with all numeric columns)
centers either the number of clusters say k or a set of initial (distinct) cluster centres If a number a random set of (distinct) rows in x is chosen as the initial centres
itermax the maximum number of iterations allowed
nstart if centers is a number how many random sets should be chosen
algorithm character may be abbreviated Note that Lloyd andForgy are alternative names for one algorithm
object an R object of class kmeans typically the result obof ob lt- kmeans()
method character may be abbreviated centers causesfitted to return cluster centers (one for each input point) and classes causes fitted to return a vector of class assignments
trace logical or integer number currently only used in the default method (Hartigan-Wong) if positive (or true) tracing information on the progress of the algorithm is produced Higher values may produce more tracing information
Обучающаяся машина без учителя Алгоритм KNN (Nearest Neighbor)Алгоритм KNN Основным принципом метода ближайших соседей является то что объект присваивается тому классу который является наиболее распространённым среди соседей данного элементаДля классификации каждого из объектов тестовой выборки
необходимо последовательно выполнить следующие операцииВычислить расстояние до каждого из объектов обучающей выборки
Отобрать k объектов обучающей выборки расстояние до которых минимально
Класс классифицируемого объекта mdash это класс наиболее часто встречающийся среди k ближайших соседей
Как работает алгоритм KNN
>
knn(train test cl k = 1 l = 0 prob = FALSE useall = TRUE)
train matrix or data frame of training set cases
test matrix or data frame of test set cases A vector will be interpreted as a row vector for a single case
cl factor of true classifications of training set
k number of neighbours considered
l minimum vote for definite decision otherwise doubt (More precisely less than k-l dissenting votes are allowed even if k is increased by ties)
prob If this is true the proportion of the votes for the winning class are returned as attribute prob
useall controls handling of ties If true all distances equal to the kth largest are included If false a random selection of distances equal to the kth is chosen to use exactly k neighbours
Here we demonstrate the bias-variance tradeoff as we increase k
err lt- matrix(nrow=N100 ncol=2)for (i in 1nrow(err))
k lt- i 4test$predicted_class lt- knn(train[12] test[12] train$class k=k)mlt-cm(test$class test$predicted_class)err[i] lt- c(k 1 - sum(diag(m)) sum(m))
plot (err)
Результаты кластеризации и зависимость ошибки от числа кластеров
actualpredicted A B C A 272 0 7 B 1 308 1 C 31 0 280
gt m
Recursive PartitioningRegression Treebull Основано на дереве решений представляющем граф бинарной
последовательной классификации по тест-вопросам в каждой вершине графа Листья дерева ассоциируются с результатами классификации
Метод RP реализует обучение машины строить дерево решений по обучающей выборке данных
bull laquoРасщеплениеraquo обучающих данныхМножество данных в каждом узле разделяется на два соответствующих ответам TRUE или FALSE Вопросы должны порождать бинарное разбиение множества Для числовых характеристик это обычно неравенства характеристика Xn меньше или равна значению Ym
bull Конструирование тест-вопросовПринцип putity measurement ndash очищающих измерений Каждая характеристика анализируется статистически для каждого разбиения и выбирается наилучшее по чистоте разделенияbull Критерий остановкиЧтобы избежать переобучения используется либо порог чистоты либо максимальное число узлов либо минимальное число наблюдений в узле
Recursive PartitioningRegression Tree
Пример расщепления обучающей выборки
rpart(formula data weights subset naaction = narpart method model = FALSE x = FALSE y = TRUE parms control cost )
formula a formula with a response but no interaction terms If this a a data frome that is taken as the model frame (see modelframe)
data an optional data frame in which to interpret the variables named in the formula
weights optional case weights
subset optional expression saying that only a subset of the rows of the data should be used in the fit
naaction the default action deletes all observations for which y is missing but keeps those in which one or more predictors are missing method one of anova poisson class or exp If method is missing then the routine tries to make an intelligent guess If y is a survival object then method = exp is assumed if y has 2 columns then method = poisson is assumed if y is a factor then method = class is assumed otherwise method = anova is assumed It is wisest to specify the method directly especially as more criteria may added to the function in future Alternatively method can be a list of functions named init split and eval Examples are given in the file lsquotestsusersplitsRrsquo in the sources and in the vignettes lsquoUser Written Split Functionsrsquo
model if logical keep a copy of the model frame in the result If the input value for model is a model frame (likely from an earlier call to the rpart function) then this frame is used rather than constructing new data
x keep a copy of the x matrix in the result
y keep a copy of the dependent variable in the result If missing and model is supplied this defaults to FALSE
parms optional parameters for the splitting function Anova splitting has no parameters Poisson splitting has a single parameter the coefficient of variation of the prior distribution on the rates The default value is 1 Exponential splitting has the same parameter as Poisson For classification splitting the list can contain any of the vector of prior probabilities (component prior) the loss matrix (component loss) or the splitting index (component split) The priors must be positive and sum to 1 The loss matrix must have zeros on the diagonal and positive off-diagonal elements The splitting index can be gini or information The default priors are proportional to the data counts the losses default to 1 and the split defaults to gini
control a list of options that control details of the rpart algorithm See rpartcontrol
cost a vector of non-negative costs one for each variable in the model Defaults to one for all variables These are scalings to be applied when considering splits so the improvement on splitting on a variable is divided by its cost in deciding which split to choose arguments to rpartcontrol may also be specified in the call to rpart They are checked against the list of valid arguments
Recursive PartitioningRegression Tree example(r lt- rpart(class ~ x + y data = train))plot(r)text(r)
Here we look at the confusion matrix and overall error rate from applying the tree rules to the training datapredicted lt- asnumeric(apply(predict(r) 1 function(r) order(-r)[1]))(m lt- cm (train$class predicted))1 - sum(diag(m)) sum(m)
And by comparison against the test datapredicted lt- asnumeric(apply(predict(r test[12]) 1 function(r) order(-r)[1]))(m lt- cm (test$class predicted))1 - sum(diag(m)) sum(m)
Анализ по главным компонентам (Principal Component Analysis PCA)Известно четыре базовых версии методаbull аппроксимировать данные линейными многообразиями меньшей
размерностиbull найти подпространства меньшей размерности в ортогональной проекции
на которые разброс данных (то есть среднеквадратичное отклонение от среднего значения) максимален
bull найти подпространства меньшей размерности в ортогональной проекции на которые среднеквадратичное расстояние между точками максимально
bull для данной многомерной случайной величины построить такое ортогональное преобразование координат в результате которого корреляции между отдельными координатами обратятся в нуль
В основе задача наилучшей аппроксимации конечного множества точек прямыми и плоскостями (Пирсон 1901) Дано конечное множество векторов для каждого k=01hellipn-1 среди всех k-мерных линейных многообразий в Rn найти такое что сумма квадратов уклонений минимальна
bull Графическая иллюстрация метода главных компонент в 3D
Алгоритм
bull Централизация данных
bull Находим первую главную компоненту
bull Вычитаем проекцию на нее
bull Находим вторую главную компоненту
bull Вычитаем проекцию на (k-1) главную компоненту
bull Находим k-ую главную компоненту
bull Всегда выполняется условие ортогональности
princomp(formula data = NULL subset naaction )formula a formula with no response variable referring only to numeric variables
data an optional data frame (or similar see modelframe) containing the variables in the formula formula By default the variables are taken from environment(formula)
subset an optional vector used to select rows (observations) of the data matrix x
naaction a function which indicates what should happen when the data contain NAs The default is set by the naaction setting of options and is nafail if that is unset The lsquofactory-freshrsquo default is naomit
x a numeric matrix or data frame which provides the data for the principal components analysis
cor a logical value indicating whether the calculation should use the correlation matrix or the covariance matrix (The correlation matrix can only be used if there are no constant variables)
scores a logical value indicating whether the score on each principal component should be calculated
covmat a covariance matrix or a covariance list as returned by covwt (and covmve or covmcd from package MASS) If supplied this is used rather than the covariance matrix of x
arguments passed to or from other methods If x is a formula one might specify cor or scores
object Object of class inheriting from princomp
newdata An optional data frame or matrix in which to look for variables with which to predict If omitted the scores are used If the original fit used a formula or a data frame or a matrix with column names newdata must contain columns with the same names Otherwise it must contain the same number of columns to be used in the same order
Principal Component Analysis (PCA)plt-princomp(train[12])train_pca lt- dataframe(p$scores)train_pca$class lt- train$class
Compare the alignment of the clusters to the axis in the feature space versus the transformed space
r2 lt- rpart(class ~ Comp1 + Comp2 data = train_pca)
Линейный дискриминантный анализ (Linear Discriminant Analysis - LDA)bull Для каждого образца объекта или события с известным классом y
рассматривается набор наблюдений x (называемых ещё признаками переменными или измерениями) Набор таких образцов называется обучающей выборкой (или набором обучения обучением) Задачи классификации состоит в том чтобы построить хороший прогноз класса y для всякого так же распределённого объекта (не обязательно содержащегося в обучающей выборке) имея только наблюдения x Основная идея состоит в сравнении распределений для каждого из классов Расстоянием (по Фишеру) между распределениями принято считать отношение межклассовой дисперсии к внутриклассовой
bull Оптимальное байесовское решение - относить точки ко второму классу если отношение правдоподобия ниже некоторого порогового значения T
bull Предполагая что выполнена нормировка
bull Решение записывается в виде неравенства для скалярного произведения
bull Здесь laquoизмерительныйraquo вектор равен
bull с- дискриминантный порог
lda(x grouping prior = proportions tol = 10e-4 method CV = FALSE nu )
formula A formula of the form groups ~ x1 + x2 + That is the response is the grouping factor and the right hand side specifies the (non-factor) discriminators
data Data frame from which variables specified in formula are preferentially to be taken
x (required if no formula is given as the principal argument) a matrix or data frame or Matrix containing the explanatory variables
grouping (required if no formula principal argument is given) a factor specifying the class for each observation
prior the prior probabilities of class membership If unspecified the class proportions for the training set are used If present the probabilities should be specified in the order of the factor levels
tol A tolerance to decide if a matrix is singular it will reject variables and linear combinations of unit-variance variables whose variance is less than tol^2
subset An index vector specifying the cases to be used in the training sample (NOTE If given this argument must be named)
naaction A function to specify the action to be taken if NAs are found The default action is for the procedure to fail An alternative is naomit which leads to rejection of cases with missing values on any required variable (NOTE If given this argument must be named)
method moment for standard estimators of the mean and variance mle for MLEs mve to use covmve or t for robust estimates based on a t distribution
CV If true returns results (classes and posterior probabilities) for leave-one-out cross-validation Note that if the prior is estimated the proportions in the whole dataset are used
nu degrees of freedom for method = t
arguments passed to or from other methods
prior the prior probabilities usedmeans the group meansscaling a matrix which transforms observations to
discriminant functions normalized so that within groups covariance matrix is spherical
svd the singular values which give the ratio of the between- and within-group standard deviations on the linear discriminant variables Their squares are the canonical F-statistics
N The number of observations usedcall The (matched) function call
An object of class lda containing the following components
Метод опорных векторов (Support Vector Machines - SVM)Относится к ML с учителем и использует линейные разделяющие поверхности
Идея алгоритма
bull По обучающей выборке
bull Строится классифицирующая функция
bull Используя гиперплоскость
bull Поиск коэффициентов сводится к максимизации
расстояний от опорных векторов или минимизации
Иллюстрация на простейшем примере
>
Производится вложение обучающей выборки в пространство более высокой размерности Х с помощью нелинейной функции так чтобы обеспечит линейную разделимость в Х
Разделяющая функция тогда имеет вид
Функция называется ядром
Полиномиальное ядро
Радиальная базисная функция
Сигмоид
Линейная неразделимость и использование ядер
Иллюстрация использования ядра для отображения 2D -gt 3D
>
svm((formula data = NULL subset naaction =naomit scale = TRUE))
formulaa symbolic description of the model to be fitdataan optional data frame containing the variables in the model By default the variables are taken from the environment which lsquosvmrsquo is called fromxa data matrix a vector or a sparse matrix (object of class Matrix provided by the Matrix package or of class matrixcsr provided by the SparseM package or of class simple_triplet_matrix provided by the slam package)ya response vector with one label for each rowcomponent of x Can be either a factor (for classification tasks) or a numeric vector (for regression)scaleA logical vector indicating the variables to be scaled If scale is of length 1 the value is recycled as many times as needed Per default data are scaled internally (both x and y variables) to zero mean and unit variance The center and scale values are returned and used for later predictionstypesvm can be used as a classification machine as a regression machine or for novelty detection Depending of whether y is a factor or not the default setting for type is C-classification or eps-regression respectively but may be overwritten by setting an explicit valueValid options areC-classificationnu-classificationone-classification (for novelty detection)eps-regressionnu-regression
Support Vector Machines
s lt- svm( I(factor(class)) ~ x + y data = train cost = 100 gama = 1)
Package lsquodeepnetrsquo February 19 2015 Type Package Title deep learning toolkit in R Version 02 Date 2014-03-20 Author Xiao Rong Maintainer Xiao Rong Description Implement some deep learning architectures and neural network algorithms including BPRBMDBNDeep autoencoder and so on License GPL NeedsCompilation no Repository CRAN DatePublication 2014-03-20 100343
laquoВ 1997 году Deep Blue обыграл в шахматы КаспароваВ 2011 Watson обставил чемпионов JeopardyСможет ли ваш алгоритм в 2013 году отличить Бобика от ПушистикаraquoKaggle Competitions Details
Сегодня уже можно ответить laquoдаraquo mdash десятка лидеров справилась с заданием на 988
Распознавание основано на feature detection и последующем различении комбинаций
Заранее неизвестно какие части картинки могут использоваться как хорошие features В их роли может выступать все что угодно mdash фрагменты изображения форма размер или цвет Feature может не присутствовать на картинке сама а выражаться в параметре полученным каким-то образом из исходных данных
Распознавание рукописных цифр
Еще пример посложнее
Использование нейронной сети с обучениемОбучение такой нейронной сети производится обычно методом обратного распространения ошибки таким образом чтобы минимизировать среднеквадратическую ошибку отклика сети на обучающей выборке Таким образом обучающая выборка содержит пары векторов признаков (входные данные) и эталонных векторов (маркированные данные) (x y)
Сверхвысокая размерность при работе с первичным представлением пикселями
Пиксельное кодирование
Принцип иерархии понятий ndash основа deep learning
bull Все вещи состоят из других маленьких и более элементарных вещей
bull Как извлекать features Гипотеза малоразмерных многообразий
Разреженное (sparse) кодирование
первый уровень иерархии состоит из элементов словаря этого кода которые представляют собой штрихи и границы
Словарь для лиц
Выделение объектов заданного класса
Основные архитектуры Deep Learningbull Deep neural networks (DNN)bull Deep belief networks (DBN)bull Convolutional neural networks (CNN)bull Deep Boltzmann Machines (DBM)bull Stacked (Denoising) Auto-Encodersbull Deep Stacking Networksbull Tensor Deep Stacking Networks (T-DSN)bull Spike-and-Slab RBMs (ssRBMs)bull Compound Hierarchical-Deep Modelsbull Deep Coding Networks (DPCN)bull Deep Kernel Machinesbull Deep Q-Networks (2015 г)
Задача классификации распознавания и подобные являются задачей конструирования функции на множестве входных наборов и со значениями в множестве требуемого вида выходных
bull Норбертом Винером было показано что любая функция может быть сколь угодно точно композицией двух (он использовал функции полином Лагранжа и функцию Лагерра)
bull Соответствует двухслойной нейросетиbull Архитектуры Deep Learning соответствуют представлению
bull Обеспечивают эффективную параметризацию при решении конкретных задач Более сложные функции создаются из большего числа но более эффективно настраиваемых laquoкирпичиковraquo Пример ndash синтез булевых функций Дерево вентилей эффективнее двухслойной схемы
Фактор - графыВсе методы которые расмотрели ndash не DL Даже деревья классификации Все операции в одном входном словаре
DL можно определить по фактор-графу
Например
bull Еще одна сторона DL - нередко использует невыпуклые функции потерьbull Обучение на основе выпуклых функций не зависит от порядка
предъявления данных для обучения Все определяет асимптотика всего train - набора В алгоритмах DL порядок данных в обучающей выборке может иметь значение
bull Многие решения в DL не доказаны математически и являются успешными эвристиками
bull Большой простор для прикладной математики Может рассматриваться как фактор-граф с группами латентных переменных
bull В настоящее время стал основной технологией в распознавании речи (speech recognition) и машинном зрении (computer vision) начал применяться в обработке текстов (natural language processing)
bull Основная идея ndash применение нелинейного отображения входного набора в более высокоразмерное пространство где многие неразделимые композиции становятся разделимыми а затем объединение композиций по семантической близости
Подход разреженного кодирования
Обобщенная архитектура
bull DL сеть может быть собрана каскадированием и использованием обучения с учителем
Здесь используется forward propagation для обучения
Для настройки коэффициентов используется метод fprof для каждого
Требуется знание градиента энергии
Элементы (kl) матрицы Якобиана
Требуется знание градиента энергии 120597119864120597119882119894 = 120597119864120597119883119894120597119865119894(119883119894minus1119882119894)120597119882119894
ሾ1times 119873119908ሿ= ሾ1times 119873119909ሿlowast[119873119909 times 119873119908] Элементы (kl) матрицы Якобиана
Сводится к рекуррентному соотношению для вычисления градиента 120597119864120597119883119894minus1 = 120597119864120597119883119894120597119865119894(119883119894minus1119882119894)120597119883119894minus1
В итоге
Для вычисления градиента может использоваться метод back propagation
В действительности работают любые архитектуры построения функции Нужно конструировать связи и функции блоков
Язык Torch 7 ndash современный инструмент моделирования и имплементации
Machine Learning with Torch7 (httpcodecogbitscomwikidokuphpid=start)
bull These tutorials were originally designed for the IPAM Summer School on Deep Learning more info herebull This wiki provides multiple tutorials with the overall objective of teaching you how to do machine learning
with Torch7bull Torch7 provides a Matlab-like environment for state-of-the-art machine learning algorithms It is easy to use
and provides a very efficient implementation thanks to an easy and fast scripting language (LuaJIT) and an underlying C implementation
bull These tutorials should be readdone in orderbull Tutorial 1 Setup Basics Getting Startedbull Tutorial 2 Supervised Learningbull Tutorial 3 Unsupervised Learningbull Tutorial 4 Graphical Modelsbull Tutorial 5 Creating New Modulesbull Tutorial 6 Using CUDAbull To follow these tutorials and do the exercises you will need to download the associated code which is hosted
on GitHub on this page In this repository each directory corresponds to a tutorial herebull starttxt middot Last modified 20140204 2246 by clement
Torch 7 является расширением Lua
What is LuaLua is a powerful fast lightweight embeddable scripting languageLua combines simple procedural syntax with powerful data description constructs based on associative arrays and extensible semantics Lua is dynamically typed runs by interpreting bytecode for a register-based virtual machine and has automatic memory management with incremental garbage collection making it ideal for configuration scripting and rapid prototyping
Why choose LuaLua is a proven robust languageLua has been used in many industrial applications (eg Adobes Photoshop Lightroom) with an emphasis on embedded systems (eg the Ginga middleware for digital TV in Brazil) and games (eg World of Warcraft and Angry Birds) Lua is currently the leading scripting language in games Lua has a solid reference manual and there are several books about it Several versions of Lua have been released and used in real applications since its creation in 1993 Lua featured in HOPL III the Third ACM SIGPLAN History of Programming Languages Conference in June 2007 Lua won the Front Line Award 2011 from the Game Developers Magazine
Свертка и архитектура 4-х уровневой сверточной сети
Функциональная структура
Примеры успешного применения сверточных сетей
Диагностика эпилепсии по ЭЭГ
Реализация сверточной сетью
Одна из самых больших сверточных сетейbull Krizhevsky Sutskever Hinton 2012bull 650 000 нейронов 832 000 000 синапсов 60 000000 пареметровbull Использовался backprop на GPUbull Обучающая выборка на материалах 20 летbull Купил Google в январе 2013bull В мае 2013 развернул как сервис Photo Tagging Google+
Пример тэгирования
Пример поиска похожих по изображению
Пример поиска в коллекции изображений по текстовому запросу
Пример laquoоблачногоraquo классификатора изображений
Самообучающиеся нейронные сети на основе минимизации функции энергииbull Применима к сетям с обратными связямиbull Конструирование функции энергии должно обеспечивать
laquoконтрастностьraquo разделения
bull Энергетическая функция может Неформально рассматриваться как отрицательный логарифм плотности вероятности
Y 2=(Y1)2
RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцмана
bull Из DBM cтроится Deep Belief Network (DBN)
bull w mdash вес между нейронами
bull b mdash смещение нейрона
bull s mdash состояние нейрона
Алгоритм обучения Contrastive Divergence (CD)bull w_ij mdash веc между i-ым нейроном Вероятность пар может быть представлена как
bull a_i mdash смещение видимого нейрона
bull b_j mdash смещение скрытого нейрона
bull v_i mdash состояние видимого нейрона
bull h_j mdash состояние скрытого нейрона Полная вероятность состояния видимых нейронов
Основные уравнения адаптации
Алгоритм Хинтона - Contrastive Divergence (CD-k)
1 состояние видимых нейронов приравнивается к входному образу2 выводятся вероятности состояний скрытого слоя3 каждому нейрону скрытого слоя ставится в соответствие состояние laquo1raquo с вероятностью равной его текущему состоянию4 выводятся вероятности видимого слоя на основании скрытого5 если текущая итерация меньше k то возврат к шагу 26 выводятся вероятности состояний скрытого слоя
darch Package for deep architectures and Restricted-Bolzmann-MachinesThe darch package is build on the basis of the code from G E Hinton and R R Salakhutdinov (available under Matlab Code for deep belief nets last visit 01082013) This package is for generating neural networks with many layers (deep architectures) and train them with the method introduced by the publications A fast learning algorithm for deep belief nets (G E Hinton S Osindero Y W Teh) and Reducing the dimensionality of data with neural networks (G E Hinton R R Salakhutdinov) This method includes a pre training with the contrastive divergence method publishing by GE Hinton (2002) and a fine tuning with common known training algorithms like backpropagation or conjugate gradient
bull Version 091bull Imports futilelogger ff methodsbull Published 2014-03-16bull Author Martin Dreesbull Maintainer Martin Drees ltmdrees at studfh-dortmunddegtbull License GPL-2bull URL httpgithubcommaddin79darchbull NeedsCompilation nobull Materials READMEbull CRAN checks darch results
Связь плотности вероятности и энергии
Используется распределение Гиббса
Задача обучения с точки минимизации энергии сети
bull Сконструировать функцию энергии с малыми значениями на обучающей выборке и с большими значениями всюду вне этого множества
bull Первое несложно а второе представляет задачу процесса обучения
Интуитивные соображения
Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decomposition LISTA ndashметоды использующие разреженные коды
Латентная переменная Z =argmin_z Distance[Decoder(Z)Y]+FactorB(Z)MAPminimaize sum of factors
Автоэнкодер (auto encoder) Автоэнкодер представляет собой алгоритм обучения без учителя который использует нейронную сеть и метод обратного распространения ошибки для того чтобы добиться того что входной вектор признаков вызывал отклик сети равный входному вектору те y = x Автоэнкодер пытается построить функцию h(x) = x
Архитекттура ICA моделей
Итеративные алгоритмы с оптимальным разреженным кодированием ISTAFISTA
Самоорганизация данных методами Deep Learning
>
Знакомство с пакетом deepnet
Назначение
Составdbndnntrain - обучение сети с архитектурой DBN (deep belief network)loadmnist - формирование данных из файлов MNISTnnpredict - предсказание новых выборок на обученной нейронной сетиnntest ndash тестирование обученной нейронной сети с возвращением значения ошибкиnntrain ndash обучение одностлойной или многослойной нейронной сети методом backproprbmdown ndash генерирование видимого вектора для скрытых состояний сети RBMrbmtrain ndash обучение сети RBMrbmup ndash извлечение скрытых состояний RBM по известным видимым состояниямsaednntrain ndash обучение нейронной сети с архитектурой stacked autoencoder
Прогнозирование (классификация) нейронной сетью с архитектурой stacked auto encoder
Argumentsbull x matrix of x values for examplesbull y vector or matrix of target values for examplesbull hidden vector for number of units of hidden layersDefault is c(10)bull activationfun activation function of hidden unitCan be sigmlinear or tanhDefault isbull sigm for logistic functionbull learningrate learning rate for gradient descent Default is 08bull momentum momentum for gradient descent Default is 05 bull learningrate_scalebull learning rate will be mutiplied by this scale after every iteration Default is 1 bull numepochs number of iteration for samples Default is 3bull batchsize size of mini-batch Default is 100bull output function of output unit can be sigmlinear or softmax Default is sigmbull sae_output function of autoencoder output unit can be sigmlinear or softmax Defaultbull is linearbull hidden_dropout drop out fraction for hidden layer Default is 0bull visible_dropoutbull drop out fraction for input layer Default is 0
Что такое MNISTbull Смешанный набор данных Национального института стандартов и
технологий (mixed National Institute of Standards and Technology MNIST) был создан исследователями IR в качестве эталона для сравнения различных алгоритмов IR
bull Набор данных состоит всего из 70 000 изображений 60 000 обучающих (используемых для создания модели IR) и 10 000 тестовых (применяемых для оценки точности модели) Каждое изображение MNIST mdash это оцифрованная картинка одной цифры написанной от руки Каждое изображение имеет размер 28 times 28 пикселей Каждое значение пикселя лежит в диапазоне от 0 (представляет белый цвет) до 255 (представляет черный цвет) Промежуточные значения отражают оттенки серого
httpyannlecuncomexdbmnistобучающие и тестовые данные хранятся в двух файлах а не в одном Один файл содержит значения пикселей для изображений а другой mdash метки изображений (0ndash9) Каждый из четырех файлов также содержит заголовочную информацию и все они хранятся в двоичном формате сжатом в формате gziptrain-images-idx3-ubytegz training set images (9912422 bytes)
train-labels-idx1-ubytegz training set labels (28881 bytes)
t10k-images-idx3-ubytegz test set images (1648877 bytes)
t10k-labels-idx1-ubytegz test set labels (4542 bytes)
bull Каждая строка файла представляет собой имидж размера 28 times 28 вектором длины 784 каждый признак ndash значение пиксела в черно-белой шале Первый столбец содержит метку цифры 0ndash9 следующие 2828 столбцов представляют целый имидж и так далее Пример первой строки
Визуализация
bull plotmnist()bull mnistbull paramsbull train$n number of train samplesbull train$x pix of every train sample imagebull train$y label of every train sample imagebull train$yy one-of-c vector of label of train sample imagebull test$n number of test samplesbull test$x pix of every test sample imagebull test$y label of every test sample imagebull test$yy one-of-c vector of label of test sample image
plotmnist()
Распознавание рукописных цифр в deepnet
another way to download the MNIST datasetmnist downloadmnist(range=c(01)global=FALSE)look at MNIST datamnist$train$xmnist$train$ymnist$test$xmnist$test$ytrain of the sae neural networkdnnlt-saednntrain(mnist$train$xmnist$train$yhidden=c(55))test of the sae neural networknntest(dnnmnist$test$xmnist$test$yt=05)
End of slides part 2 (Part 3 - NLP remaining)
Vladimirvkrylovgmailcom
Основы предиктивной аналитики Часть вторая
Применение методов Machine Learning к решению задач аналитики
Дмитрий Ветров кандидат физико-математических наук ру
Методы обучающихся машин для аналитики которые мы рассмотрим
Сначала нужно загрузить несколько пакетов (packages) для поддер
Данные для анализа
Скрипт для генерации
Данные которые мы будем использовать для демо состоят из смес
Так выглядят визуализированные данные сгенерированные скриптом
Разделение данных на обучающие и проверочные является важным эт
K-means алгоритм на пальцах
Обучающаяся машина без учителя Алгоритм K-means
Slide 13
Slide 14
Здесь мы используем заранее известный факт что необходимо кла
Еще одна иллюстрация работы алгоритма K-means
Обучающаяся машина без учителя Алгоритм KNN (Nearest Neighbor)
Как работает алгоритм KNN
knn(train test cl k = 1 l = 0 prob = FALSE useall = TRUE
Slide 20
Результаты кластеризации и зависимость ошибки от числа кластеро
Recursive PartitioningRegression Tree
Метод RP реализует обучение машины строить дерево решений по об
Recursive PartitioningRegression Tree (2)
rpart(formula data weights subset naaction = narpart met
Slide 26
Recursive PartitioningRegression Tree example
Анализ по главным компонентам (Principal Component Analysis PC
Итеративные алгоритмы с оптимальным разреженным кодированием IS
Самоорганизация данных методами Deep Learning
Знакомство с пакетом deepnet
Прогнозирование (классификация) нейронной сетью с архитектурой
Arguments
Архитектура сети SAE
Архитектура с 5Х4 hidden 3 outs
Example
Анализ обучающего набора данных
Параметры SAE сети
Коэффициенты связей
Предсказание обученной сетью
Сравнение обучающей и тестовой выборки
plot3d(xy)
Работаем с пакетом MNIST
httpyannlecuncomexdbmnist
Подготовка к обработке
Slide 118
Визуализация
plotmnist()
Распознавание рукописных цифр в deepnet
End of slides part 2 (Part 3 - NLP remaining)
Дмитрий Ветровкандидат физико-математических наук руководитель исследовательской группы байесовских методов начальник департамента больших данных и информационного поиска факультета компьютерных наук НИУ ВШЭ
Машинное обучение появляется в тот момент когда переменные которыми описывается объект можно разделить на две части наблюдаемые и скрытые или латентные переменные Наблюдаемые переменные mdash это те переменные которые мы можем измерить для произвольного объекта Скрытые переменные мы можем померить для ограниченного числа объектов просто потому что как правило их измерение сопряжено либо с финансовыми затратами либо с человеческими либо с временными либо в принципе невозможно Например эти переменные характеризуют свойства объекта в будущем При этом предполагается что между наблюдаемыми и скрытыми переменными есть некоторая взаимосвязь И собственно на поиск этой взаимосвязи направлены современные алгоритмы машинного обучения
Методы обучающихся машин для аналитики которые мы рассмотрим
bull K-Meansbull K Nearest Neighbor (KNN)bull Kernel Methodsbull Recursive Partitioning Regression Treesbull PCA - Demonstrating that orthogonal bases are better for treesbull LDA - linear discriminant analysisbull SVM - Support vector machinesbull Deep Neural Network Model (DL deepnet R-package)
Сначала нужно загрузить несколько пакетов (packages) для поддержки ML Проверьте наличие пакетов в вашей системе gtlibrary() и установите в случае необходимости из Internetкомандой gt installpackages()
gtlibrary(rpart)
gtlibrary(MASS)
gtlibrary(class)
gtlibrary(ldquoe1071rdquo)
gtinstallpackages(ldquoe1071rdquo)
Данные для анализа
bull Чтобы избежать проблем с загрузкой файлов используем в этом примере искусственно сгенерированный набор данных
bull Для генерирования n случайных выборок используем простую функцию генерирования из многомерного нормального распределения со средним значением mu и матрицей ковариаций sigma
Скрипт для генерации
rmulnorm lt- function (n mu sigma)
M lt- t(chol(sigma))d lt- nrow(sigma)Z lt- matrix(rnorm(dn)dn)t(M Z + mu)
cm lt- function (actual predicted) Produce a confusion matrix
tlt-table(predictedactual) there is a potential bug in here if columns are tied for orderingt[apply(t2function(c) order(-c)[1])]
Total number of observationsN lt- 1000 3 Number of training observationsNtrain lt- N 07
Данные которые мы будем использовать для демо состоят из смеси трех двумерных нормальных распределений Целью является построить такую систему классификации которая сможет определять какому из распределений принадлежат поступающие данные Выведем данные для наглядности
Так выглядят визуализированные данные сгенерированные скриптом
Разделение данных на обучающие и проверочные является важным этапом ML
Просто используем случайный выбор из имеющегося набораdata lt- data[sample(1N)]
train lt- data[1Ntrain]
test lt- data[(Ntrain+1)N]
K-means алгоритм на пальцах
>
Обучающаяся машина без учителя Алгоритм K-meansАлгоритм K-meansЭтап 1 Первоначальное распределение объектов по кластерамbull Выбор случайным образом k точек данных из D как начальное множество представителей
кластера Cbull Распределение объектов по кластерам в соответствие с формулой
Этап 2 Перераспределение срединных элементовbull Вычисление центра для каждого кластераbull Перераспределение объектов по кластерамbull Алгоритм завершается когда на какой-то итерации не происходит изменения центра масс
кластеров Это происходит за конечное число итераций так как количество возможных разбиений конечного множества конечно а на каждом шаге суммарное квадратичное отклонение Cost не увеличивается поэтому зацикливание невозможно
x numeric matrix of data or an object that can be coerced to such a matrix (such as a numeric vector or a data frame with all numeric columns)
centers either the number of clusters say k or a set of initial (distinct) cluster centres If a number a random set of (distinct) rows in x is chosen as the initial centres
itermax the maximum number of iterations allowed
nstart if centers is a number how many random sets should be chosen
algorithm character may be abbreviated Note that Lloyd andForgy are alternative names for one algorithm
object an R object of class kmeans typically the result obof ob lt- kmeans()
method character may be abbreviated centers causesfitted to return cluster centers (one for each input point) and classes causes fitted to return a vector of class assignments
trace logical or integer number currently only used in the default method (Hartigan-Wong) if positive (or true) tracing information on the progress of the algorithm is produced Higher values may produce more tracing information
Обучающаяся машина без учителя Алгоритм KNN (Nearest Neighbor)Алгоритм KNN Основным принципом метода ближайших соседей является то что объект присваивается тому классу который является наиболее распространённым среди соседей данного элементаДля классификации каждого из объектов тестовой выборки
необходимо последовательно выполнить следующие операцииВычислить расстояние до каждого из объектов обучающей выборки
Отобрать k объектов обучающей выборки расстояние до которых минимально
Класс классифицируемого объекта mdash это класс наиболее часто встречающийся среди k ближайших соседей
Как работает алгоритм KNN
>
knn(train test cl k = 1 l = 0 prob = FALSE useall = TRUE)
train matrix or data frame of training set cases
test matrix or data frame of test set cases A vector will be interpreted as a row vector for a single case
cl factor of true classifications of training set
k number of neighbours considered
l minimum vote for definite decision otherwise doubt (More precisely less than k-l dissenting votes are allowed even if k is increased by ties)
prob If this is true the proportion of the votes for the winning class are returned as attribute prob
useall controls handling of ties If true all distances equal to the kth largest are included If false a random selection of distances equal to the kth is chosen to use exactly k neighbours
Here we demonstrate the bias-variance tradeoff as we increase k
err lt- matrix(nrow=N100 ncol=2)for (i in 1nrow(err))
k lt- i 4test$predicted_class lt- knn(train[12] test[12] train$class k=k)mlt-cm(test$class test$predicted_class)err[i] lt- c(k 1 - sum(diag(m)) sum(m))
plot (err)
Результаты кластеризации и зависимость ошибки от числа кластеров
actualpredicted A B C A 272 0 7 B 1 308 1 C 31 0 280
gt m
Recursive PartitioningRegression Treebull Основано на дереве решений представляющем граф бинарной
последовательной классификации по тест-вопросам в каждой вершине графа Листья дерева ассоциируются с результатами классификации
Метод RP реализует обучение машины строить дерево решений по обучающей выборке данных
bull laquoРасщеплениеraquo обучающих данныхМножество данных в каждом узле разделяется на два соответствующих ответам TRUE или FALSE Вопросы должны порождать бинарное разбиение множества Для числовых характеристик это обычно неравенства характеристика Xn меньше или равна значению Ym
bull Конструирование тест-вопросовПринцип putity measurement ndash очищающих измерений Каждая характеристика анализируется статистически для каждого разбиения и выбирается наилучшее по чистоте разделенияbull Критерий остановкиЧтобы избежать переобучения используется либо порог чистоты либо максимальное число узлов либо минимальное число наблюдений в узле
Recursive PartitioningRegression Tree
Пример расщепления обучающей выборки
rpart(formula data weights subset naaction = narpart method model = FALSE x = FALSE y = TRUE parms control cost )
formula a formula with a response but no interaction terms If this a a data frome that is taken as the model frame (see modelframe)
data an optional data frame in which to interpret the variables named in the formula
weights optional case weights
subset optional expression saying that only a subset of the rows of the data should be used in the fit
naaction the default action deletes all observations for which y is missing but keeps those in which one or more predictors are missing method one of anova poisson class or exp If method is missing then the routine tries to make an intelligent guess If y is a survival object then method = exp is assumed if y has 2 columns then method = poisson is assumed if y is a factor then method = class is assumed otherwise method = anova is assumed It is wisest to specify the method directly especially as more criteria may added to the function in future Alternatively method can be a list of functions named init split and eval Examples are given in the file lsquotestsusersplitsRrsquo in the sources and in the vignettes lsquoUser Written Split Functionsrsquo
model if logical keep a copy of the model frame in the result If the input value for model is a model frame (likely from an earlier call to the rpart function) then this frame is used rather than constructing new data
x keep a copy of the x matrix in the result
y keep a copy of the dependent variable in the result If missing and model is supplied this defaults to FALSE
parms optional parameters for the splitting function Anova splitting has no parameters Poisson splitting has a single parameter the coefficient of variation of the prior distribution on the rates The default value is 1 Exponential splitting has the same parameter as Poisson For classification splitting the list can contain any of the vector of prior probabilities (component prior) the loss matrix (component loss) or the splitting index (component split) The priors must be positive and sum to 1 The loss matrix must have zeros on the diagonal and positive off-diagonal elements The splitting index can be gini or information The default priors are proportional to the data counts the losses default to 1 and the split defaults to gini
control a list of options that control details of the rpart algorithm See rpartcontrol
cost a vector of non-negative costs one for each variable in the model Defaults to one for all variables These are scalings to be applied when considering splits so the improvement on splitting on a variable is divided by its cost in deciding which split to choose arguments to rpartcontrol may also be specified in the call to rpart They are checked against the list of valid arguments
Recursive PartitioningRegression Tree example(r lt- rpart(class ~ x + y data = train))plot(r)text(r)
Here we look at the confusion matrix and overall error rate from applying the tree rules to the training datapredicted lt- asnumeric(apply(predict(r) 1 function(r) order(-r)[1]))(m lt- cm (train$class predicted))1 - sum(diag(m)) sum(m)
And by comparison against the test datapredicted lt- asnumeric(apply(predict(r test[12]) 1 function(r) order(-r)[1]))(m lt- cm (test$class predicted))1 - sum(diag(m)) sum(m)
Анализ по главным компонентам (Principal Component Analysis PCA)Известно четыре базовых версии методаbull аппроксимировать данные линейными многообразиями меньшей
размерностиbull найти подпространства меньшей размерности в ортогональной проекции
на которые разброс данных (то есть среднеквадратичное отклонение от среднего значения) максимален
bull найти подпространства меньшей размерности в ортогональной проекции на которые среднеквадратичное расстояние между точками максимально
bull для данной многомерной случайной величины построить такое ортогональное преобразование координат в результате которого корреляции между отдельными координатами обратятся в нуль
В основе задача наилучшей аппроксимации конечного множества точек прямыми и плоскостями (Пирсон 1901) Дано конечное множество векторов для каждого k=01hellipn-1 среди всех k-мерных линейных многообразий в Rn найти такое что сумма квадратов уклонений минимальна
bull Графическая иллюстрация метода главных компонент в 3D
Алгоритм
bull Централизация данных
bull Находим первую главную компоненту
bull Вычитаем проекцию на нее
bull Находим вторую главную компоненту
bull Вычитаем проекцию на (k-1) главную компоненту
bull Находим k-ую главную компоненту
bull Всегда выполняется условие ортогональности
princomp(formula data = NULL subset naaction )formula a formula with no response variable referring only to numeric variables
data an optional data frame (or similar see modelframe) containing the variables in the formula formula By default the variables are taken from environment(formula)
subset an optional vector used to select rows (observations) of the data matrix x
naaction a function which indicates what should happen when the data contain NAs The default is set by the naaction setting of options and is nafail if that is unset The lsquofactory-freshrsquo default is naomit
x a numeric matrix or data frame which provides the data for the principal components analysis
cor a logical value indicating whether the calculation should use the correlation matrix or the covariance matrix (The correlation matrix can only be used if there are no constant variables)
scores a logical value indicating whether the score on each principal component should be calculated
covmat a covariance matrix or a covariance list as returned by covwt (and covmve or covmcd from package MASS) If supplied this is used rather than the covariance matrix of x
arguments passed to or from other methods If x is a formula one might specify cor or scores
object Object of class inheriting from princomp
newdata An optional data frame or matrix in which to look for variables with which to predict If omitted the scores are used If the original fit used a formula or a data frame or a matrix with column names newdata must contain columns with the same names Otherwise it must contain the same number of columns to be used in the same order
Principal Component Analysis (PCA)plt-princomp(train[12])train_pca lt- dataframe(p$scores)train_pca$class lt- train$class
Compare the alignment of the clusters to the axis in the feature space versus the transformed space
r2 lt- rpart(class ~ Comp1 + Comp2 data = train_pca)
Линейный дискриминантный анализ (Linear Discriminant Analysis - LDA)bull Для каждого образца объекта или события с известным классом y
рассматривается набор наблюдений x (называемых ещё признаками переменными или измерениями) Набор таких образцов называется обучающей выборкой (или набором обучения обучением) Задачи классификации состоит в том чтобы построить хороший прогноз класса y для всякого так же распределённого объекта (не обязательно содержащегося в обучающей выборке) имея только наблюдения x Основная идея состоит в сравнении распределений для каждого из классов Расстоянием (по Фишеру) между распределениями принято считать отношение межклассовой дисперсии к внутриклассовой
bull Оптимальное байесовское решение - относить точки ко второму классу если отношение правдоподобия ниже некоторого порогового значения T
bull Предполагая что выполнена нормировка
bull Решение записывается в виде неравенства для скалярного произведения
bull Здесь laquoизмерительныйraquo вектор равен
bull с- дискриминантный порог
lda(x grouping prior = proportions tol = 10e-4 method CV = FALSE nu )
formula A formula of the form groups ~ x1 + x2 + That is the response is the grouping factor and the right hand side specifies the (non-factor) discriminators
data Data frame from which variables specified in formula are preferentially to be taken
x (required if no formula is given as the principal argument) a matrix or data frame or Matrix containing the explanatory variables
grouping (required if no formula principal argument is given) a factor specifying the class for each observation
prior the prior probabilities of class membership If unspecified the class proportions for the training set are used If present the probabilities should be specified in the order of the factor levels
tol A tolerance to decide if a matrix is singular it will reject variables and linear combinations of unit-variance variables whose variance is less than tol^2
subset An index vector specifying the cases to be used in the training sample (NOTE If given this argument must be named)
naaction A function to specify the action to be taken if NAs are found The default action is for the procedure to fail An alternative is naomit which leads to rejection of cases with missing values on any required variable (NOTE If given this argument must be named)
method moment for standard estimators of the mean and variance mle for MLEs mve to use covmve or t for robust estimates based on a t distribution
CV If true returns results (classes and posterior probabilities) for leave-one-out cross-validation Note that if the prior is estimated the proportions in the whole dataset are used
nu degrees of freedom for method = t
arguments passed to or from other methods
prior the prior probabilities usedmeans the group meansscaling a matrix which transforms observations to
discriminant functions normalized so that within groups covariance matrix is spherical
svd the singular values which give the ratio of the between- and within-group standard deviations on the linear discriminant variables Their squares are the canonical F-statistics
N The number of observations usedcall The (matched) function call
An object of class lda containing the following components
Метод опорных векторов (Support Vector Machines - SVM)Относится к ML с учителем и использует линейные разделяющие поверхности
Идея алгоритма
bull По обучающей выборке
bull Строится классифицирующая функция
bull Используя гиперплоскость
bull Поиск коэффициентов сводится к максимизации
расстояний от опорных векторов или минимизации
Иллюстрация на простейшем примере
>
Производится вложение обучающей выборки в пространство более высокой размерности Х с помощью нелинейной функции так чтобы обеспечит линейную разделимость в Х
Разделяющая функция тогда имеет вид
Функция называется ядром
Полиномиальное ядро
Радиальная базисная функция
Сигмоид
Линейная неразделимость и использование ядер
Иллюстрация использования ядра для отображения 2D -gt 3D
>
svm((formula data = NULL subset naaction =naomit scale = TRUE))
formulaa symbolic description of the model to be fitdataan optional data frame containing the variables in the model By default the variables are taken from the environment which lsquosvmrsquo is called fromxa data matrix a vector or a sparse matrix (object of class Matrix provided by the Matrix package or of class matrixcsr provided by the SparseM package or of class simple_triplet_matrix provided by the slam package)ya response vector with one label for each rowcomponent of x Can be either a factor (for classification tasks) or a numeric vector (for regression)scaleA logical vector indicating the variables to be scaled If scale is of length 1 the value is recycled as many times as needed Per default data are scaled internally (both x and y variables) to zero mean and unit variance The center and scale values are returned and used for later predictionstypesvm can be used as a classification machine as a regression machine or for novelty detection Depending of whether y is a factor or not the default setting for type is C-classification or eps-regression respectively but may be overwritten by setting an explicit valueValid options areC-classificationnu-classificationone-classification (for novelty detection)eps-regressionnu-regression
Support Vector Machines
s lt- svm( I(factor(class)) ~ x + y data = train cost = 100 gama = 1)
Package lsquodeepnetrsquo February 19 2015 Type Package Title deep learning toolkit in R Version 02 Date 2014-03-20 Author Xiao Rong Maintainer Xiao Rong Description Implement some deep learning architectures and neural network algorithms including BPRBMDBNDeep autoencoder and so on License GPL NeedsCompilation no Repository CRAN DatePublication 2014-03-20 100343
laquoВ 1997 году Deep Blue обыграл в шахматы КаспароваВ 2011 Watson обставил чемпионов JeopardyСможет ли ваш алгоритм в 2013 году отличить Бобика от ПушистикаraquoKaggle Competitions Details
Сегодня уже можно ответить laquoдаraquo mdash десятка лидеров справилась с заданием на 988
Распознавание основано на feature detection и последующем различении комбинаций
Заранее неизвестно какие части картинки могут использоваться как хорошие features В их роли может выступать все что угодно mdash фрагменты изображения форма размер или цвет Feature может не присутствовать на картинке сама а выражаться в параметре полученным каким-то образом из исходных данных
Распознавание рукописных цифр
Еще пример посложнее
Использование нейронной сети с обучениемОбучение такой нейронной сети производится обычно методом обратного распространения ошибки таким образом чтобы минимизировать среднеквадратическую ошибку отклика сети на обучающей выборке Таким образом обучающая выборка содержит пары векторов признаков (входные данные) и эталонных векторов (маркированные данные) (x y)
Сверхвысокая размерность при работе с первичным представлением пикселями
Пиксельное кодирование
Принцип иерархии понятий ndash основа deep learning
bull Все вещи состоят из других маленьких и более элементарных вещей
bull Как извлекать features Гипотеза малоразмерных многообразий
Разреженное (sparse) кодирование
первый уровень иерархии состоит из элементов словаря этого кода которые представляют собой штрихи и границы
Словарь для лиц
Выделение объектов заданного класса
Основные архитектуры Deep Learningbull Deep neural networks (DNN)bull Deep belief networks (DBN)bull Convolutional neural networks (CNN)bull Deep Boltzmann Machines (DBM)bull Stacked (Denoising) Auto-Encodersbull Deep Stacking Networksbull Tensor Deep Stacking Networks (T-DSN)bull Spike-and-Slab RBMs (ssRBMs)bull Compound Hierarchical-Deep Modelsbull Deep Coding Networks (DPCN)bull Deep Kernel Machinesbull Deep Q-Networks (2015 г)
Задача классификации распознавания и подобные являются задачей конструирования функции на множестве входных наборов и со значениями в множестве требуемого вида выходных
bull Норбертом Винером было показано что любая функция может быть сколь угодно точно композицией двух (он использовал функции полином Лагранжа и функцию Лагерра)
bull Соответствует двухслойной нейросетиbull Архитектуры Deep Learning соответствуют представлению
bull Обеспечивают эффективную параметризацию при решении конкретных задач Более сложные функции создаются из большего числа но более эффективно настраиваемых laquoкирпичиковraquo Пример ndash синтез булевых функций Дерево вентилей эффективнее двухслойной схемы
Фактор - графыВсе методы которые расмотрели ndash не DL Даже деревья классификации Все операции в одном входном словаре
DL можно определить по фактор-графу
Например
bull Еще одна сторона DL - нередко использует невыпуклые функции потерьbull Обучение на основе выпуклых функций не зависит от порядка
предъявления данных для обучения Все определяет асимптотика всего train - набора В алгоритмах DL порядок данных в обучающей выборке может иметь значение
bull Многие решения в DL не доказаны математически и являются успешными эвристиками
bull Большой простор для прикладной математики Может рассматриваться как фактор-граф с группами латентных переменных
bull В настоящее время стал основной технологией в распознавании речи (speech recognition) и машинном зрении (computer vision) начал применяться в обработке текстов (natural language processing)
bull Основная идея ndash применение нелинейного отображения входного набора в более высокоразмерное пространство где многие неразделимые композиции становятся разделимыми а затем объединение композиций по семантической близости
Подход разреженного кодирования
Обобщенная архитектура
bull DL сеть может быть собрана каскадированием и использованием обучения с учителем
Здесь используется forward propagation для обучения
Для настройки коэффициентов используется метод fprof для каждого
Требуется знание градиента энергии
Элементы (kl) матрицы Якобиана
Требуется знание градиента энергии 120597119864120597119882119894 = 120597119864120597119883119894120597119865119894(119883119894minus1119882119894)120597119882119894
ሾ1times 119873119908ሿ= ሾ1times 119873119909ሿlowast[119873119909 times 119873119908] Элементы (kl) матрицы Якобиана
Сводится к рекуррентному соотношению для вычисления градиента 120597119864120597119883119894minus1 = 120597119864120597119883119894120597119865119894(119883119894minus1119882119894)120597119883119894minus1
В итоге
Для вычисления градиента может использоваться метод back propagation
В действительности работают любые архитектуры построения функции Нужно конструировать связи и функции блоков
Язык Torch 7 ndash современный инструмент моделирования и имплементации
Machine Learning with Torch7 (httpcodecogbitscomwikidokuphpid=start)
bull These tutorials were originally designed for the IPAM Summer School on Deep Learning more info herebull This wiki provides multiple tutorials with the overall objective of teaching you how to do machine learning
with Torch7bull Torch7 provides a Matlab-like environment for state-of-the-art machine learning algorithms It is easy to use
and provides a very efficient implementation thanks to an easy and fast scripting language (LuaJIT) and an underlying C implementation
bull These tutorials should be readdone in orderbull Tutorial 1 Setup Basics Getting Startedbull Tutorial 2 Supervised Learningbull Tutorial 3 Unsupervised Learningbull Tutorial 4 Graphical Modelsbull Tutorial 5 Creating New Modulesbull Tutorial 6 Using CUDAbull To follow these tutorials and do the exercises you will need to download the associated code which is hosted
on GitHub on this page In this repository each directory corresponds to a tutorial herebull starttxt middot Last modified 20140204 2246 by clement
Torch 7 является расширением Lua
What is LuaLua is a powerful fast lightweight embeddable scripting languageLua combines simple procedural syntax with powerful data description constructs based on associative arrays and extensible semantics Lua is dynamically typed runs by interpreting bytecode for a register-based virtual machine and has automatic memory management with incremental garbage collection making it ideal for configuration scripting and rapid prototyping
Why choose LuaLua is a proven robust languageLua has been used in many industrial applications (eg Adobes Photoshop Lightroom) with an emphasis on embedded systems (eg the Ginga middleware for digital TV in Brazil) and games (eg World of Warcraft and Angry Birds) Lua is currently the leading scripting language in games Lua has a solid reference manual and there are several books about it Several versions of Lua have been released and used in real applications since its creation in 1993 Lua featured in HOPL III the Third ACM SIGPLAN History of Programming Languages Conference in June 2007 Lua won the Front Line Award 2011 from the Game Developers Magazine
Свертка и архитектура 4-х уровневой сверточной сети
Функциональная структура
Примеры успешного применения сверточных сетей
Диагностика эпилепсии по ЭЭГ
Реализация сверточной сетью
Одна из самых больших сверточных сетейbull Krizhevsky Sutskever Hinton 2012bull 650 000 нейронов 832 000 000 синапсов 60 000000 пареметровbull Использовался backprop на GPUbull Обучающая выборка на материалах 20 летbull Купил Google в январе 2013bull В мае 2013 развернул как сервис Photo Tagging Google+
Пример тэгирования
Пример поиска похожих по изображению
Пример поиска в коллекции изображений по текстовому запросу
Пример laquoоблачногоraquo классификатора изображений
Самообучающиеся нейронные сети на основе минимизации функции энергииbull Применима к сетям с обратными связямиbull Конструирование функции энергии должно обеспечивать
laquoконтрастностьraquo разделения
bull Энергетическая функция может Неформально рассматриваться как отрицательный логарифм плотности вероятности
Y 2=(Y1)2
RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцмана
bull Из DBM cтроится Deep Belief Network (DBN)
bull w mdash вес между нейронами
bull b mdash смещение нейрона
bull s mdash состояние нейрона
Алгоритм обучения Contrastive Divergence (CD)bull w_ij mdash веc между i-ым нейроном Вероятность пар может быть представлена как
bull a_i mdash смещение видимого нейрона
bull b_j mdash смещение скрытого нейрона
bull v_i mdash состояние видимого нейрона
bull h_j mdash состояние скрытого нейрона Полная вероятность состояния видимых нейронов
Основные уравнения адаптации
Алгоритм Хинтона - Contrastive Divergence (CD-k)
1 состояние видимых нейронов приравнивается к входному образу2 выводятся вероятности состояний скрытого слоя3 каждому нейрону скрытого слоя ставится в соответствие состояние laquo1raquo с вероятностью равной его текущему состоянию4 выводятся вероятности видимого слоя на основании скрытого5 если текущая итерация меньше k то возврат к шагу 26 выводятся вероятности состояний скрытого слоя
darch Package for deep architectures and Restricted-Bolzmann-MachinesThe darch package is build on the basis of the code from G E Hinton and R R Salakhutdinov (available under Matlab Code for deep belief nets last visit 01082013) This package is for generating neural networks with many layers (deep architectures) and train them with the method introduced by the publications A fast learning algorithm for deep belief nets (G E Hinton S Osindero Y W Teh) and Reducing the dimensionality of data with neural networks (G E Hinton R R Salakhutdinov) This method includes a pre training with the contrastive divergence method publishing by GE Hinton (2002) and a fine tuning with common known training algorithms like backpropagation or conjugate gradient
bull Version 091bull Imports futilelogger ff methodsbull Published 2014-03-16bull Author Martin Dreesbull Maintainer Martin Drees ltmdrees at studfh-dortmunddegtbull License GPL-2bull URL httpgithubcommaddin79darchbull NeedsCompilation nobull Materials READMEbull CRAN checks darch results
Связь плотности вероятности и энергии
Используется распределение Гиббса
Задача обучения с точки минимизации энергии сети
bull Сконструировать функцию энергии с малыми значениями на обучающей выборке и с большими значениями всюду вне этого множества
bull Первое несложно а второе представляет задачу процесса обучения
Интуитивные соображения
Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decomposition LISTA ndashметоды использующие разреженные коды
Латентная переменная Z =argmin_z Distance[Decoder(Z)Y]+FactorB(Z)MAPminimaize sum of factors
Автоэнкодер (auto encoder) Автоэнкодер представляет собой алгоритм обучения без учителя который использует нейронную сеть и метод обратного распространения ошибки для того чтобы добиться того что входной вектор признаков вызывал отклик сети равный входному вектору те y = x Автоэнкодер пытается построить функцию h(x) = x
Архитекттура ICA моделей
Итеративные алгоритмы с оптимальным разреженным кодированием ISTAFISTA
Самоорганизация данных методами Deep Learning
>
Знакомство с пакетом deepnet
Назначение
Составdbndnntrain - обучение сети с архитектурой DBN (deep belief network)loadmnist - формирование данных из файлов MNISTnnpredict - предсказание новых выборок на обученной нейронной сетиnntest ndash тестирование обученной нейронной сети с возвращением значения ошибкиnntrain ndash обучение одностлойной или многослойной нейронной сети методом backproprbmdown ndash генерирование видимого вектора для скрытых состояний сети RBMrbmtrain ndash обучение сети RBMrbmup ndash извлечение скрытых состояний RBM по известным видимым состояниямsaednntrain ndash обучение нейронной сети с архитектурой stacked autoencoder
Прогнозирование (классификация) нейронной сетью с архитектурой stacked auto encoder
Argumentsbull x matrix of x values for examplesbull y vector or matrix of target values for examplesbull hidden vector for number of units of hidden layersDefault is c(10)bull activationfun activation function of hidden unitCan be sigmlinear or tanhDefault isbull sigm for logistic functionbull learningrate learning rate for gradient descent Default is 08bull momentum momentum for gradient descent Default is 05 bull learningrate_scalebull learning rate will be mutiplied by this scale after every iteration Default is 1 bull numepochs number of iteration for samples Default is 3bull batchsize size of mini-batch Default is 100bull output function of output unit can be sigmlinear or softmax Default is sigmbull sae_output function of autoencoder output unit can be sigmlinear or softmax Defaultbull is linearbull hidden_dropout drop out fraction for hidden layer Default is 0bull visible_dropoutbull drop out fraction for input layer Default is 0
Что такое MNISTbull Смешанный набор данных Национального института стандартов и
технологий (mixed National Institute of Standards and Technology MNIST) был создан исследователями IR в качестве эталона для сравнения различных алгоритмов IR
bull Набор данных состоит всего из 70 000 изображений 60 000 обучающих (используемых для создания модели IR) и 10 000 тестовых (применяемых для оценки точности модели) Каждое изображение MNIST mdash это оцифрованная картинка одной цифры написанной от руки Каждое изображение имеет размер 28 times 28 пикселей Каждое значение пикселя лежит в диапазоне от 0 (представляет белый цвет) до 255 (представляет черный цвет) Промежуточные значения отражают оттенки серого
httpyannlecuncomexdbmnistобучающие и тестовые данные хранятся в двух файлах а не в одном Один файл содержит значения пикселей для изображений а другой mdash метки изображений (0ndash9) Каждый из четырех файлов также содержит заголовочную информацию и все они хранятся в двоичном формате сжатом в формате gziptrain-images-idx3-ubytegz training set images (9912422 bytes)
train-labels-idx1-ubytegz training set labels (28881 bytes)
t10k-images-idx3-ubytegz test set images (1648877 bytes)
t10k-labels-idx1-ubytegz test set labels (4542 bytes)
bull Каждая строка файла представляет собой имидж размера 28 times 28 вектором длины 784 каждый признак ndash значение пиксела в черно-белой шале Первый столбец содержит метку цифры 0ndash9 следующие 2828 столбцов представляют целый имидж и так далее Пример первой строки
Визуализация
bull plotmnist()bull mnistbull paramsbull train$n number of train samplesbull train$x pix of every train sample imagebull train$y label of every train sample imagebull train$yy one-of-c vector of label of train sample imagebull test$n number of test samplesbull test$x pix of every test sample imagebull test$y label of every test sample imagebull test$yy one-of-c vector of label of test sample image
plotmnist()
Распознавание рукописных цифр в deepnet
another way to download the MNIST datasetmnist downloadmnist(range=c(01)global=FALSE)look at MNIST datamnist$train$xmnist$train$ymnist$test$xmnist$test$ytrain of the sae neural networkdnnlt-saednntrain(mnist$train$xmnist$train$yhidden=c(55))test of the sae neural networknntest(dnnmnist$test$xmnist$test$yt=05)
End of slides part 2 (Part 3 - NLP remaining)
Vladimirvkrylovgmailcom
Основы предиктивной аналитики Часть вторая
Применение методов Machine Learning к решению задач аналитики
Дмитрий Ветров кандидат физико-математических наук ру
Методы обучающихся машин для аналитики которые мы рассмотрим
Сначала нужно загрузить несколько пакетов (packages) для поддер
Данные для анализа
Скрипт для генерации
Данные которые мы будем использовать для демо состоят из смес
Так выглядят визуализированные данные сгенерированные скриптом
Разделение данных на обучающие и проверочные является важным эт
K-means алгоритм на пальцах
Обучающаяся машина без учителя Алгоритм K-means
Slide 13
Slide 14
Здесь мы используем заранее известный факт что необходимо кла
Еще одна иллюстрация работы алгоритма K-means
Обучающаяся машина без учителя Алгоритм KNN (Nearest Neighbor)
Как работает алгоритм KNN
knn(train test cl k = 1 l = 0 prob = FALSE useall = TRUE
Slide 20
Результаты кластеризации и зависимость ошибки от числа кластеро
Recursive PartitioningRegression Tree
Метод RP реализует обучение машины строить дерево решений по об
Recursive PartitioningRegression Tree (2)
rpart(formula data weights subset naaction = narpart met
Slide 26
Recursive PartitioningRegression Tree example
Анализ по главным компонентам (Principal Component Analysis PC
Итеративные алгоритмы с оптимальным разреженным кодированием IS
Самоорганизация данных методами Deep Learning
Знакомство с пакетом deepnet
Прогнозирование (классификация) нейронной сетью с архитектурой
Arguments
Архитектура сети SAE
Архитектура с 5Х4 hidden 3 outs
Example
Анализ обучающего набора данных
Параметры SAE сети
Коэффициенты связей
Предсказание обученной сетью
Сравнение обучающей и тестовой выборки
plot3d(xy)
Работаем с пакетом MNIST
httpyannlecuncomexdbmnist
Подготовка к обработке
Slide 118
Визуализация
plotmnist()
Распознавание рукописных цифр в deepnet
End of slides part 2 (Part 3 - NLP remaining)
Методы обучающихся машин для аналитики которые мы рассмотрим
bull K-Meansbull K Nearest Neighbor (KNN)bull Kernel Methodsbull Recursive Partitioning Regression Treesbull PCA - Demonstrating that orthogonal bases are better for treesbull LDA - linear discriminant analysisbull SVM - Support vector machinesbull Deep Neural Network Model (DL deepnet R-package)
Сначала нужно загрузить несколько пакетов (packages) для поддержки ML Проверьте наличие пакетов в вашей системе gtlibrary() и установите в случае необходимости из Internetкомандой gt installpackages()
gtlibrary(rpart)
gtlibrary(MASS)
gtlibrary(class)
gtlibrary(ldquoe1071rdquo)
gtinstallpackages(ldquoe1071rdquo)
Данные для анализа
bull Чтобы избежать проблем с загрузкой файлов используем в этом примере искусственно сгенерированный набор данных
bull Для генерирования n случайных выборок используем простую функцию генерирования из многомерного нормального распределения со средним значением mu и матрицей ковариаций sigma
Скрипт для генерации
rmulnorm lt- function (n mu sigma)
M lt- t(chol(sigma))d lt- nrow(sigma)Z lt- matrix(rnorm(dn)dn)t(M Z + mu)
cm lt- function (actual predicted) Produce a confusion matrix
tlt-table(predictedactual) there is a potential bug in here if columns are tied for orderingt[apply(t2function(c) order(-c)[1])]
Total number of observationsN lt- 1000 3 Number of training observationsNtrain lt- N 07
Данные которые мы будем использовать для демо состоят из смеси трех двумерных нормальных распределений Целью является построить такую систему классификации которая сможет определять какому из распределений принадлежат поступающие данные Выведем данные для наглядности
Так выглядят визуализированные данные сгенерированные скриптом
Разделение данных на обучающие и проверочные является важным этапом ML
Просто используем случайный выбор из имеющегося набораdata lt- data[sample(1N)]
train lt- data[1Ntrain]
test lt- data[(Ntrain+1)N]
K-means алгоритм на пальцах
>
Обучающаяся машина без учителя Алгоритм K-meansАлгоритм K-meansЭтап 1 Первоначальное распределение объектов по кластерамbull Выбор случайным образом k точек данных из D как начальное множество представителей
кластера Cbull Распределение объектов по кластерам в соответствие с формулой
Этап 2 Перераспределение срединных элементовbull Вычисление центра для каждого кластераbull Перераспределение объектов по кластерамbull Алгоритм завершается когда на какой-то итерации не происходит изменения центра масс
кластеров Это происходит за конечное число итераций так как количество возможных разбиений конечного множества конечно а на каждом шаге суммарное квадратичное отклонение Cost не увеличивается поэтому зацикливание невозможно
x numeric matrix of data or an object that can be coerced to such a matrix (such as a numeric vector or a data frame with all numeric columns)
centers either the number of clusters say k or a set of initial (distinct) cluster centres If a number a random set of (distinct) rows in x is chosen as the initial centres
itermax the maximum number of iterations allowed
nstart if centers is a number how many random sets should be chosen
algorithm character may be abbreviated Note that Lloyd andForgy are alternative names for one algorithm
object an R object of class kmeans typically the result obof ob lt- kmeans()
method character may be abbreviated centers causesfitted to return cluster centers (one for each input point) and classes causes fitted to return a vector of class assignments
trace logical or integer number currently only used in the default method (Hartigan-Wong) if positive (or true) tracing information on the progress of the algorithm is produced Higher values may produce more tracing information
Обучающаяся машина без учителя Алгоритм KNN (Nearest Neighbor)Алгоритм KNN Основным принципом метода ближайших соседей является то что объект присваивается тому классу который является наиболее распространённым среди соседей данного элементаДля классификации каждого из объектов тестовой выборки
необходимо последовательно выполнить следующие операцииВычислить расстояние до каждого из объектов обучающей выборки
Отобрать k объектов обучающей выборки расстояние до которых минимально
Класс классифицируемого объекта mdash это класс наиболее часто встречающийся среди k ближайших соседей
Как работает алгоритм KNN
>
knn(train test cl k = 1 l = 0 prob = FALSE useall = TRUE)
train matrix or data frame of training set cases
test matrix or data frame of test set cases A vector will be interpreted as a row vector for a single case
cl factor of true classifications of training set
k number of neighbours considered
l minimum vote for definite decision otherwise doubt (More precisely less than k-l dissenting votes are allowed even if k is increased by ties)
prob If this is true the proportion of the votes for the winning class are returned as attribute prob
useall controls handling of ties If true all distances equal to the kth largest are included If false a random selection of distances equal to the kth is chosen to use exactly k neighbours
Here we demonstrate the bias-variance tradeoff as we increase k
err lt- matrix(nrow=N100 ncol=2)for (i in 1nrow(err))
k lt- i 4test$predicted_class lt- knn(train[12] test[12] train$class k=k)mlt-cm(test$class test$predicted_class)err[i] lt- c(k 1 - sum(diag(m)) sum(m))
plot (err)
Результаты кластеризации и зависимость ошибки от числа кластеров
actualpredicted A B C A 272 0 7 B 1 308 1 C 31 0 280
gt m
Recursive PartitioningRegression Treebull Основано на дереве решений представляющем граф бинарной
последовательной классификации по тест-вопросам в каждой вершине графа Листья дерева ассоциируются с результатами классификации
Метод RP реализует обучение машины строить дерево решений по обучающей выборке данных
bull laquoРасщеплениеraquo обучающих данныхМножество данных в каждом узле разделяется на два соответствующих ответам TRUE или FALSE Вопросы должны порождать бинарное разбиение множества Для числовых характеристик это обычно неравенства характеристика Xn меньше или равна значению Ym
bull Конструирование тест-вопросовПринцип putity measurement ndash очищающих измерений Каждая характеристика анализируется статистически для каждого разбиения и выбирается наилучшее по чистоте разделенияbull Критерий остановкиЧтобы избежать переобучения используется либо порог чистоты либо максимальное число узлов либо минимальное число наблюдений в узле
Recursive PartitioningRegression Tree
Пример расщепления обучающей выборки
rpart(formula data weights subset naaction = narpart method model = FALSE x = FALSE y = TRUE parms control cost )
formula a formula with a response but no interaction terms If this a a data frome that is taken as the model frame (see modelframe)
data an optional data frame in which to interpret the variables named in the formula
weights optional case weights
subset optional expression saying that only a subset of the rows of the data should be used in the fit
naaction the default action deletes all observations for which y is missing but keeps those in which one or more predictors are missing method one of anova poisson class or exp If method is missing then the routine tries to make an intelligent guess If y is a survival object then method = exp is assumed if y has 2 columns then method = poisson is assumed if y is a factor then method = class is assumed otherwise method = anova is assumed It is wisest to specify the method directly especially as more criteria may added to the function in future Alternatively method can be a list of functions named init split and eval Examples are given in the file lsquotestsusersplitsRrsquo in the sources and in the vignettes lsquoUser Written Split Functionsrsquo
model if logical keep a copy of the model frame in the result If the input value for model is a model frame (likely from an earlier call to the rpart function) then this frame is used rather than constructing new data
x keep a copy of the x matrix in the result
y keep a copy of the dependent variable in the result If missing and model is supplied this defaults to FALSE
parms optional parameters for the splitting function Anova splitting has no parameters Poisson splitting has a single parameter the coefficient of variation of the prior distribution on the rates The default value is 1 Exponential splitting has the same parameter as Poisson For classification splitting the list can contain any of the vector of prior probabilities (component prior) the loss matrix (component loss) or the splitting index (component split) The priors must be positive and sum to 1 The loss matrix must have zeros on the diagonal and positive off-diagonal elements The splitting index can be gini or information The default priors are proportional to the data counts the losses default to 1 and the split defaults to gini
control a list of options that control details of the rpart algorithm See rpartcontrol
cost a vector of non-negative costs one for each variable in the model Defaults to one for all variables These are scalings to be applied when considering splits so the improvement on splitting on a variable is divided by its cost in deciding which split to choose arguments to rpartcontrol may also be specified in the call to rpart They are checked against the list of valid arguments
Recursive PartitioningRegression Tree example(r lt- rpart(class ~ x + y data = train))plot(r)text(r)
Here we look at the confusion matrix and overall error rate from applying the tree rules to the training datapredicted lt- asnumeric(apply(predict(r) 1 function(r) order(-r)[1]))(m lt- cm (train$class predicted))1 - sum(diag(m)) sum(m)
And by comparison against the test datapredicted lt- asnumeric(apply(predict(r test[12]) 1 function(r) order(-r)[1]))(m lt- cm (test$class predicted))1 - sum(diag(m)) sum(m)
Анализ по главным компонентам (Principal Component Analysis PCA)Известно четыре базовых версии методаbull аппроксимировать данные линейными многообразиями меньшей
размерностиbull найти подпространства меньшей размерности в ортогональной проекции
на которые разброс данных (то есть среднеквадратичное отклонение от среднего значения) максимален
bull найти подпространства меньшей размерности в ортогональной проекции на которые среднеквадратичное расстояние между точками максимально
bull для данной многомерной случайной величины построить такое ортогональное преобразование координат в результате которого корреляции между отдельными координатами обратятся в нуль
В основе задача наилучшей аппроксимации конечного множества точек прямыми и плоскостями (Пирсон 1901) Дано конечное множество векторов для каждого k=01hellipn-1 среди всех k-мерных линейных многообразий в Rn найти такое что сумма квадратов уклонений минимальна
bull Графическая иллюстрация метода главных компонент в 3D
Алгоритм
bull Централизация данных
bull Находим первую главную компоненту
bull Вычитаем проекцию на нее
bull Находим вторую главную компоненту
bull Вычитаем проекцию на (k-1) главную компоненту
bull Находим k-ую главную компоненту
bull Всегда выполняется условие ортогональности
princomp(formula data = NULL subset naaction )formula a formula with no response variable referring only to numeric variables
data an optional data frame (or similar see modelframe) containing the variables in the formula formula By default the variables are taken from environment(formula)
subset an optional vector used to select rows (observations) of the data matrix x
naaction a function which indicates what should happen when the data contain NAs The default is set by the naaction setting of options and is nafail if that is unset The lsquofactory-freshrsquo default is naomit
x a numeric matrix or data frame which provides the data for the principal components analysis
cor a logical value indicating whether the calculation should use the correlation matrix or the covariance matrix (The correlation matrix can only be used if there are no constant variables)
scores a logical value indicating whether the score on each principal component should be calculated
covmat a covariance matrix or a covariance list as returned by covwt (and covmve or covmcd from package MASS) If supplied this is used rather than the covariance matrix of x
arguments passed to or from other methods If x is a formula one might specify cor or scores
object Object of class inheriting from princomp
newdata An optional data frame or matrix in which to look for variables with which to predict If omitted the scores are used If the original fit used a formula or a data frame or a matrix with column names newdata must contain columns with the same names Otherwise it must contain the same number of columns to be used in the same order
Principal Component Analysis (PCA)plt-princomp(train[12])train_pca lt- dataframe(p$scores)train_pca$class lt- train$class
Compare the alignment of the clusters to the axis in the feature space versus the transformed space
r2 lt- rpart(class ~ Comp1 + Comp2 data = train_pca)
Линейный дискриминантный анализ (Linear Discriminant Analysis - LDA)bull Для каждого образца объекта или события с известным классом y
рассматривается набор наблюдений x (называемых ещё признаками переменными или измерениями) Набор таких образцов называется обучающей выборкой (или набором обучения обучением) Задачи классификации состоит в том чтобы построить хороший прогноз класса y для всякого так же распределённого объекта (не обязательно содержащегося в обучающей выборке) имея только наблюдения x Основная идея состоит в сравнении распределений для каждого из классов Расстоянием (по Фишеру) между распределениями принято считать отношение межклассовой дисперсии к внутриклассовой
bull Оптимальное байесовское решение - относить точки ко второму классу если отношение правдоподобия ниже некоторого порогового значения T
bull Предполагая что выполнена нормировка
bull Решение записывается в виде неравенства для скалярного произведения
bull Здесь laquoизмерительныйraquo вектор равен
bull с- дискриминантный порог
lda(x grouping prior = proportions tol = 10e-4 method CV = FALSE nu )
formula A formula of the form groups ~ x1 + x2 + That is the response is the grouping factor and the right hand side specifies the (non-factor) discriminators
data Data frame from which variables specified in formula are preferentially to be taken
x (required if no formula is given as the principal argument) a matrix or data frame or Matrix containing the explanatory variables
grouping (required if no formula principal argument is given) a factor specifying the class for each observation
prior the prior probabilities of class membership If unspecified the class proportions for the training set are used If present the probabilities should be specified in the order of the factor levels
tol A tolerance to decide if a matrix is singular it will reject variables and linear combinations of unit-variance variables whose variance is less than tol^2
subset An index vector specifying the cases to be used in the training sample (NOTE If given this argument must be named)
naaction A function to specify the action to be taken if NAs are found The default action is for the procedure to fail An alternative is naomit which leads to rejection of cases with missing values on any required variable (NOTE If given this argument must be named)
method moment for standard estimators of the mean and variance mle for MLEs mve to use covmve or t for robust estimates based on a t distribution
CV If true returns results (classes and posterior probabilities) for leave-one-out cross-validation Note that if the prior is estimated the proportions in the whole dataset are used
nu degrees of freedom for method = t
arguments passed to or from other methods
prior the prior probabilities usedmeans the group meansscaling a matrix which transforms observations to
discriminant functions normalized so that within groups covariance matrix is spherical
svd the singular values which give the ratio of the between- and within-group standard deviations on the linear discriminant variables Their squares are the canonical F-statistics
N The number of observations usedcall The (matched) function call
An object of class lda containing the following components
Метод опорных векторов (Support Vector Machines - SVM)Относится к ML с учителем и использует линейные разделяющие поверхности
Идея алгоритма
bull По обучающей выборке
bull Строится классифицирующая функция
bull Используя гиперплоскость
bull Поиск коэффициентов сводится к максимизации
расстояний от опорных векторов или минимизации
Иллюстрация на простейшем примере
>
Производится вложение обучающей выборки в пространство более высокой размерности Х с помощью нелинейной функции так чтобы обеспечит линейную разделимость в Х
Разделяющая функция тогда имеет вид
Функция называется ядром
Полиномиальное ядро
Радиальная базисная функция
Сигмоид
Линейная неразделимость и использование ядер
Иллюстрация использования ядра для отображения 2D -gt 3D
>
svm((formula data = NULL subset naaction =naomit scale = TRUE))
formulaa symbolic description of the model to be fitdataan optional data frame containing the variables in the model By default the variables are taken from the environment which lsquosvmrsquo is called fromxa data matrix a vector or a sparse matrix (object of class Matrix provided by the Matrix package or of class matrixcsr provided by the SparseM package or of class simple_triplet_matrix provided by the slam package)ya response vector with one label for each rowcomponent of x Can be either a factor (for classification tasks) or a numeric vector (for regression)scaleA logical vector indicating the variables to be scaled If scale is of length 1 the value is recycled as many times as needed Per default data are scaled internally (both x and y variables) to zero mean and unit variance The center and scale values are returned and used for later predictionstypesvm can be used as a classification machine as a regression machine or for novelty detection Depending of whether y is a factor or not the default setting for type is C-classification or eps-regression respectively but may be overwritten by setting an explicit valueValid options areC-classificationnu-classificationone-classification (for novelty detection)eps-regressionnu-regression
Support Vector Machines
s lt- svm( I(factor(class)) ~ x + y data = train cost = 100 gama = 1)
Package lsquodeepnetrsquo February 19 2015 Type Package Title deep learning toolkit in R Version 02 Date 2014-03-20 Author Xiao Rong Maintainer Xiao Rong Description Implement some deep learning architectures and neural network algorithms including BPRBMDBNDeep autoencoder and so on License GPL NeedsCompilation no Repository CRAN DatePublication 2014-03-20 100343
laquoВ 1997 году Deep Blue обыграл в шахматы КаспароваВ 2011 Watson обставил чемпионов JeopardyСможет ли ваш алгоритм в 2013 году отличить Бобика от ПушистикаraquoKaggle Competitions Details
Сегодня уже можно ответить laquoдаraquo mdash десятка лидеров справилась с заданием на 988
Распознавание основано на feature detection и последующем различении комбинаций
Заранее неизвестно какие части картинки могут использоваться как хорошие features В их роли может выступать все что угодно mdash фрагменты изображения форма размер или цвет Feature может не присутствовать на картинке сама а выражаться в параметре полученным каким-то образом из исходных данных
Распознавание рукописных цифр
Еще пример посложнее
Использование нейронной сети с обучениемОбучение такой нейронной сети производится обычно методом обратного распространения ошибки таким образом чтобы минимизировать среднеквадратическую ошибку отклика сети на обучающей выборке Таким образом обучающая выборка содержит пары векторов признаков (входные данные) и эталонных векторов (маркированные данные) (x y)
Сверхвысокая размерность при работе с первичным представлением пикселями
Пиксельное кодирование
Принцип иерархии понятий ndash основа deep learning
bull Все вещи состоят из других маленьких и более элементарных вещей
bull Как извлекать features Гипотеза малоразмерных многообразий
Разреженное (sparse) кодирование
первый уровень иерархии состоит из элементов словаря этого кода которые представляют собой штрихи и границы
Словарь для лиц
Выделение объектов заданного класса
Основные архитектуры Deep Learningbull Deep neural networks (DNN)bull Deep belief networks (DBN)bull Convolutional neural networks (CNN)bull Deep Boltzmann Machines (DBM)bull Stacked (Denoising) Auto-Encodersbull Deep Stacking Networksbull Tensor Deep Stacking Networks (T-DSN)bull Spike-and-Slab RBMs (ssRBMs)bull Compound Hierarchical-Deep Modelsbull Deep Coding Networks (DPCN)bull Deep Kernel Machinesbull Deep Q-Networks (2015 г)
Задача классификации распознавания и подобные являются задачей конструирования функции на множестве входных наборов и со значениями в множестве требуемого вида выходных
bull Норбертом Винером было показано что любая функция может быть сколь угодно точно композицией двух (он использовал функции полином Лагранжа и функцию Лагерра)
bull Соответствует двухслойной нейросетиbull Архитектуры Deep Learning соответствуют представлению
bull Обеспечивают эффективную параметризацию при решении конкретных задач Более сложные функции создаются из большего числа но более эффективно настраиваемых laquoкирпичиковraquo Пример ndash синтез булевых функций Дерево вентилей эффективнее двухслойной схемы
Фактор - графыВсе методы которые расмотрели ndash не DL Даже деревья классификации Все операции в одном входном словаре
DL можно определить по фактор-графу
Например
bull Еще одна сторона DL - нередко использует невыпуклые функции потерьbull Обучение на основе выпуклых функций не зависит от порядка
предъявления данных для обучения Все определяет асимптотика всего train - набора В алгоритмах DL порядок данных в обучающей выборке может иметь значение
bull Многие решения в DL не доказаны математически и являются успешными эвристиками
bull Большой простор для прикладной математики Может рассматриваться как фактор-граф с группами латентных переменных
bull В настоящее время стал основной технологией в распознавании речи (speech recognition) и машинном зрении (computer vision) начал применяться в обработке текстов (natural language processing)
bull Основная идея ndash применение нелинейного отображения входного набора в более высокоразмерное пространство где многие неразделимые композиции становятся разделимыми а затем объединение композиций по семантической близости
Подход разреженного кодирования
Обобщенная архитектура
bull DL сеть может быть собрана каскадированием и использованием обучения с учителем
Здесь используется forward propagation для обучения
Для настройки коэффициентов используется метод fprof для каждого
Требуется знание градиента энергии
Элементы (kl) матрицы Якобиана
Требуется знание градиента энергии 120597119864120597119882119894 = 120597119864120597119883119894120597119865119894(119883119894minus1119882119894)120597119882119894
ሾ1times 119873119908ሿ= ሾ1times 119873119909ሿlowast[119873119909 times 119873119908] Элементы (kl) матрицы Якобиана
Сводится к рекуррентному соотношению для вычисления градиента 120597119864120597119883119894minus1 = 120597119864120597119883119894120597119865119894(119883119894minus1119882119894)120597119883119894minus1
В итоге
Для вычисления градиента может использоваться метод back propagation
В действительности работают любые архитектуры построения функции Нужно конструировать связи и функции блоков
Язык Torch 7 ndash современный инструмент моделирования и имплементации
Machine Learning with Torch7 (httpcodecogbitscomwikidokuphpid=start)
bull These tutorials were originally designed for the IPAM Summer School on Deep Learning more info herebull This wiki provides multiple tutorials with the overall objective of teaching you how to do machine learning
with Torch7bull Torch7 provides a Matlab-like environment for state-of-the-art machine learning algorithms It is easy to use
and provides a very efficient implementation thanks to an easy and fast scripting language (LuaJIT) and an underlying C implementation
bull These tutorials should be readdone in orderbull Tutorial 1 Setup Basics Getting Startedbull Tutorial 2 Supervised Learningbull Tutorial 3 Unsupervised Learningbull Tutorial 4 Graphical Modelsbull Tutorial 5 Creating New Modulesbull Tutorial 6 Using CUDAbull To follow these tutorials and do the exercises you will need to download the associated code which is hosted
on GitHub on this page In this repository each directory corresponds to a tutorial herebull starttxt middot Last modified 20140204 2246 by clement
Torch 7 является расширением Lua
What is LuaLua is a powerful fast lightweight embeddable scripting languageLua combines simple procedural syntax with powerful data description constructs based on associative arrays and extensible semantics Lua is dynamically typed runs by interpreting bytecode for a register-based virtual machine and has automatic memory management with incremental garbage collection making it ideal for configuration scripting and rapid prototyping
Why choose LuaLua is a proven robust languageLua has been used in many industrial applications (eg Adobes Photoshop Lightroom) with an emphasis on embedded systems (eg the Ginga middleware for digital TV in Brazil) and games (eg World of Warcraft and Angry Birds) Lua is currently the leading scripting language in games Lua has a solid reference manual and there are several books about it Several versions of Lua have been released and used in real applications since its creation in 1993 Lua featured in HOPL III the Third ACM SIGPLAN History of Programming Languages Conference in June 2007 Lua won the Front Line Award 2011 from the Game Developers Magazine
Свертка и архитектура 4-х уровневой сверточной сети
Функциональная структура
Примеры успешного применения сверточных сетей
Диагностика эпилепсии по ЭЭГ
Реализация сверточной сетью
Одна из самых больших сверточных сетейbull Krizhevsky Sutskever Hinton 2012bull 650 000 нейронов 832 000 000 синапсов 60 000000 пареметровbull Использовался backprop на GPUbull Обучающая выборка на материалах 20 летbull Купил Google в январе 2013bull В мае 2013 развернул как сервис Photo Tagging Google+
Пример тэгирования
Пример поиска похожих по изображению
Пример поиска в коллекции изображений по текстовому запросу
Пример laquoоблачногоraquo классификатора изображений
Самообучающиеся нейронные сети на основе минимизации функции энергииbull Применима к сетям с обратными связямиbull Конструирование функции энергии должно обеспечивать
laquoконтрастностьraquo разделения
bull Энергетическая функция может Неформально рассматриваться как отрицательный логарифм плотности вероятности
Y 2=(Y1)2
RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцмана
bull Из DBM cтроится Deep Belief Network (DBN)
bull w mdash вес между нейронами
bull b mdash смещение нейрона
bull s mdash состояние нейрона
Алгоритм обучения Contrastive Divergence (CD)bull w_ij mdash веc между i-ым нейроном Вероятность пар может быть представлена как
bull a_i mdash смещение видимого нейрона
bull b_j mdash смещение скрытого нейрона
bull v_i mdash состояние видимого нейрона
bull h_j mdash состояние скрытого нейрона Полная вероятность состояния видимых нейронов
Основные уравнения адаптации
Алгоритм Хинтона - Contrastive Divergence (CD-k)
1 состояние видимых нейронов приравнивается к входному образу2 выводятся вероятности состояний скрытого слоя3 каждому нейрону скрытого слоя ставится в соответствие состояние laquo1raquo с вероятностью равной его текущему состоянию4 выводятся вероятности видимого слоя на основании скрытого5 если текущая итерация меньше k то возврат к шагу 26 выводятся вероятности состояний скрытого слоя
darch Package for deep architectures and Restricted-Bolzmann-MachinesThe darch package is build on the basis of the code from G E Hinton and R R Salakhutdinov (available under Matlab Code for deep belief nets last visit 01082013) This package is for generating neural networks with many layers (deep architectures) and train them with the method introduced by the publications A fast learning algorithm for deep belief nets (G E Hinton S Osindero Y W Teh) and Reducing the dimensionality of data with neural networks (G E Hinton R R Salakhutdinov) This method includes a pre training with the contrastive divergence method publishing by GE Hinton (2002) and a fine tuning with common known training algorithms like backpropagation or conjugate gradient
bull Version 091bull Imports futilelogger ff methodsbull Published 2014-03-16bull Author Martin Dreesbull Maintainer Martin Drees ltmdrees at studfh-dortmunddegtbull License GPL-2bull URL httpgithubcommaddin79darchbull NeedsCompilation nobull Materials READMEbull CRAN checks darch results
Связь плотности вероятности и энергии
Используется распределение Гиббса
Задача обучения с точки минимизации энергии сети
bull Сконструировать функцию энергии с малыми значениями на обучающей выборке и с большими значениями всюду вне этого множества
bull Первое несложно а второе представляет задачу процесса обучения
Интуитивные соображения
Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decomposition LISTA ndashметоды использующие разреженные коды
Латентная переменная Z =argmin_z Distance[Decoder(Z)Y]+FactorB(Z)MAPminimaize sum of factors
Автоэнкодер (auto encoder) Автоэнкодер представляет собой алгоритм обучения без учителя который использует нейронную сеть и метод обратного распространения ошибки для того чтобы добиться того что входной вектор признаков вызывал отклик сети равный входному вектору те y = x Автоэнкодер пытается построить функцию h(x) = x
Архитекттура ICA моделей
Итеративные алгоритмы с оптимальным разреженным кодированием ISTAFISTA
Самоорганизация данных методами Deep Learning
>
Знакомство с пакетом deepnet
Назначение
Составdbndnntrain - обучение сети с архитектурой DBN (deep belief network)loadmnist - формирование данных из файлов MNISTnnpredict - предсказание новых выборок на обученной нейронной сетиnntest ndash тестирование обученной нейронной сети с возвращением значения ошибкиnntrain ndash обучение одностлойной или многослойной нейронной сети методом backproprbmdown ndash генерирование видимого вектора для скрытых состояний сети RBMrbmtrain ndash обучение сети RBMrbmup ndash извлечение скрытых состояний RBM по известным видимым состояниямsaednntrain ndash обучение нейронной сети с архитектурой stacked autoencoder
Прогнозирование (классификация) нейронной сетью с архитектурой stacked auto encoder
Argumentsbull x matrix of x values for examplesbull y vector or matrix of target values for examplesbull hidden vector for number of units of hidden layersDefault is c(10)bull activationfun activation function of hidden unitCan be sigmlinear or tanhDefault isbull sigm for logistic functionbull learningrate learning rate for gradient descent Default is 08bull momentum momentum for gradient descent Default is 05 bull learningrate_scalebull learning rate will be mutiplied by this scale after every iteration Default is 1 bull numepochs number of iteration for samples Default is 3bull batchsize size of mini-batch Default is 100bull output function of output unit can be sigmlinear or softmax Default is sigmbull sae_output function of autoencoder output unit can be sigmlinear or softmax Defaultbull is linearbull hidden_dropout drop out fraction for hidden layer Default is 0bull visible_dropoutbull drop out fraction for input layer Default is 0
Что такое MNISTbull Смешанный набор данных Национального института стандартов и
технологий (mixed National Institute of Standards and Technology MNIST) был создан исследователями IR в качестве эталона для сравнения различных алгоритмов IR
bull Набор данных состоит всего из 70 000 изображений 60 000 обучающих (используемых для создания модели IR) и 10 000 тестовых (применяемых для оценки точности модели) Каждое изображение MNIST mdash это оцифрованная картинка одной цифры написанной от руки Каждое изображение имеет размер 28 times 28 пикселей Каждое значение пикселя лежит в диапазоне от 0 (представляет белый цвет) до 255 (представляет черный цвет) Промежуточные значения отражают оттенки серого
httpyannlecuncomexdbmnistобучающие и тестовые данные хранятся в двух файлах а не в одном Один файл содержит значения пикселей для изображений а другой mdash метки изображений (0ndash9) Каждый из четырех файлов также содержит заголовочную информацию и все они хранятся в двоичном формате сжатом в формате gziptrain-images-idx3-ubytegz training set images (9912422 bytes)
train-labels-idx1-ubytegz training set labels (28881 bytes)
t10k-images-idx3-ubytegz test set images (1648877 bytes)
t10k-labels-idx1-ubytegz test set labels (4542 bytes)
bull Каждая строка файла представляет собой имидж размера 28 times 28 вектором длины 784 каждый признак ndash значение пиксела в черно-белой шале Первый столбец содержит метку цифры 0ndash9 следующие 2828 столбцов представляют целый имидж и так далее Пример первой строки
Визуализация
bull plotmnist()bull mnistbull paramsbull train$n number of train samplesbull train$x pix of every train sample imagebull train$y label of every train sample imagebull train$yy one-of-c vector of label of train sample imagebull test$n number of test samplesbull test$x pix of every test sample imagebull test$y label of every test sample imagebull test$yy one-of-c vector of label of test sample image
plotmnist()
Распознавание рукописных цифр в deepnet
another way to download the MNIST datasetmnist downloadmnist(range=c(01)global=FALSE)look at MNIST datamnist$train$xmnist$train$ymnist$test$xmnist$test$ytrain of the sae neural networkdnnlt-saednntrain(mnist$train$xmnist$train$yhidden=c(55))test of the sae neural networknntest(dnnmnist$test$xmnist$test$yt=05)
End of slides part 2 (Part 3 - NLP remaining)
Vladimirvkrylovgmailcom
Основы предиктивной аналитики Часть вторая
Применение методов Machine Learning к решению задач аналитики
Дмитрий Ветров кандидат физико-математических наук ру
Методы обучающихся машин для аналитики которые мы рассмотрим
Сначала нужно загрузить несколько пакетов (packages) для поддер
Данные для анализа
Скрипт для генерации
Данные которые мы будем использовать для демо состоят из смес
Так выглядят визуализированные данные сгенерированные скриптом
Разделение данных на обучающие и проверочные является важным эт
K-means алгоритм на пальцах
Обучающаяся машина без учителя Алгоритм K-means
Slide 13
Slide 14
Здесь мы используем заранее известный факт что необходимо кла
Еще одна иллюстрация работы алгоритма K-means
Обучающаяся машина без учителя Алгоритм KNN (Nearest Neighbor)
Как работает алгоритм KNN
knn(train test cl k = 1 l = 0 prob = FALSE useall = TRUE
Slide 20
Результаты кластеризации и зависимость ошибки от числа кластеро
Recursive PartitioningRegression Tree
Метод RP реализует обучение машины строить дерево решений по об
Recursive PartitioningRegression Tree (2)
rpart(formula data weights subset naaction = narpart met
Slide 26
Recursive PartitioningRegression Tree example
Анализ по главным компонентам (Principal Component Analysis PC
Итеративные алгоритмы с оптимальным разреженным кодированием IS
Самоорганизация данных методами Deep Learning
Знакомство с пакетом deepnet
Прогнозирование (классификация) нейронной сетью с архитектурой
Arguments
Архитектура сети SAE
Архитектура с 5Х4 hidden 3 outs
Example
Анализ обучающего набора данных
Параметры SAE сети
Коэффициенты связей
Предсказание обученной сетью
Сравнение обучающей и тестовой выборки
plot3d(xy)
Работаем с пакетом MNIST
httpyannlecuncomexdbmnist
Подготовка к обработке
Slide 118
Визуализация
plotmnist()
Распознавание рукописных цифр в deepnet
End of slides part 2 (Part 3 - NLP remaining)
Сначала нужно загрузить несколько пакетов (packages) для поддержки ML Проверьте наличие пакетов в вашей системе gtlibrary() и установите в случае необходимости из Internetкомандой gt installpackages()
gtlibrary(rpart)
gtlibrary(MASS)
gtlibrary(class)
gtlibrary(ldquoe1071rdquo)
gtinstallpackages(ldquoe1071rdquo)
Данные для анализа
bull Чтобы избежать проблем с загрузкой файлов используем в этом примере искусственно сгенерированный набор данных
bull Для генерирования n случайных выборок используем простую функцию генерирования из многомерного нормального распределения со средним значением mu и матрицей ковариаций sigma
Скрипт для генерации
rmulnorm lt- function (n mu sigma)
M lt- t(chol(sigma))d lt- nrow(sigma)Z lt- matrix(rnorm(dn)dn)t(M Z + mu)
cm lt- function (actual predicted) Produce a confusion matrix
tlt-table(predictedactual) there is a potential bug in here if columns are tied for orderingt[apply(t2function(c) order(-c)[1])]
Total number of observationsN lt- 1000 3 Number of training observationsNtrain lt- N 07
Данные которые мы будем использовать для демо состоят из смеси трех двумерных нормальных распределений Целью является построить такую систему классификации которая сможет определять какому из распределений принадлежат поступающие данные Выведем данные для наглядности
Так выглядят визуализированные данные сгенерированные скриптом
Разделение данных на обучающие и проверочные является важным этапом ML
Просто используем случайный выбор из имеющегося набораdata lt- data[sample(1N)]
train lt- data[1Ntrain]
test lt- data[(Ntrain+1)N]
K-means алгоритм на пальцах
>
Обучающаяся машина без учителя Алгоритм K-meansАлгоритм K-meansЭтап 1 Первоначальное распределение объектов по кластерамbull Выбор случайным образом k точек данных из D как начальное множество представителей
кластера Cbull Распределение объектов по кластерам в соответствие с формулой
Этап 2 Перераспределение срединных элементовbull Вычисление центра для каждого кластераbull Перераспределение объектов по кластерамbull Алгоритм завершается когда на какой-то итерации не происходит изменения центра масс
кластеров Это происходит за конечное число итераций так как количество возможных разбиений конечного множества конечно а на каждом шаге суммарное квадратичное отклонение Cost не увеличивается поэтому зацикливание невозможно
x numeric matrix of data or an object that can be coerced to such a matrix (such as a numeric vector or a data frame with all numeric columns)
centers either the number of clusters say k or a set of initial (distinct) cluster centres If a number a random set of (distinct) rows in x is chosen as the initial centres
itermax the maximum number of iterations allowed
nstart if centers is a number how many random sets should be chosen
algorithm character may be abbreviated Note that Lloyd andForgy are alternative names for one algorithm
object an R object of class kmeans typically the result obof ob lt- kmeans()
method character may be abbreviated centers causesfitted to return cluster centers (one for each input point) and classes causes fitted to return a vector of class assignments
trace logical or integer number currently only used in the default method (Hartigan-Wong) if positive (or true) tracing information on the progress of the algorithm is produced Higher values may produce more tracing information
Обучающаяся машина без учителя Алгоритм KNN (Nearest Neighbor)Алгоритм KNN Основным принципом метода ближайших соседей является то что объект присваивается тому классу который является наиболее распространённым среди соседей данного элементаДля классификации каждого из объектов тестовой выборки
необходимо последовательно выполнить следующие операцииВычислить расстояние до каждого из объектов обучающей выборки
Отобрать k объектов обучающей выборки расстояние до которых минимально
Класс классифицируемого объекта mdash это класс наиболее часто встречающийся среди k ближайших соседей
Как работает алгоритм KNN
>
knn(train test cl k = 1 l = 0 prob = FALSE useall = TRUE)
train matrix or data frame of training set cases
test matrix or data frame of test set cases A vector will be interpreted as a row vector for a single case
cl factor of true classifications of training set
k number of neighbours considered
l minimum vote for definite decision otherwise doubt (More precisely less than k-l dissenting votes are allowed even if k is increased by ties)
prob If this is true the proportion of the votes for the winning class are returned as attribute prob
useall controls handling of ties If true all distances equal to the kth largest are included If false a random selection of distances equal to the kth is chosen to use exactly k neighbours
Here we demonstrate the bias-variance tradeoff as we increase k
err lt- matrix(nrow=N100 ncol=2)for (i in 1nrow(err))
k lt- i 4test$predicted_class lt- knn(train[12] test[12] train$class k=k)mlt-cm(test$class test$predicted_class)err[i] lt- c(k 1 - sum(diag(m)) sum(m))
plot (err)
Результаты кластеризации и зависимость ошибки от числа кластеров
actualpredicted A B C A 272 0 7 B 1 308 1 C 31 0 280
gt m
Recursive PartitioningRegression Treebull Основано на дереве решений представляющем граф бинарной
последовательной классификации по тест-вопросам в каждой вершине графа Листья дерева ассоциируются с результатами классификации
Метод RP реализует обучение машины строить дерево решений по обучающей выборке данных
bull laquoРасщеплениеraquo обучающих данныхМножество данных в каждом узле разделяется на два соответствующих ответам TRUE или FALSE Вопросы должны порождать бинарное разбиение множества Для числовых характеристик это обычно неравенства характеристика Xn меньше или равна значению Ym
bull Конструирование тест-вопросовПринцип putity measurement ndash очищающих измерений Каждая характеристика анализируется статистически для каждого разбиения и выбирается наилучшее по чистоте разделенияbull Критерий остановкиЧтобы избежать переобучения используется либо порог чистоты либо максимальное число узлов либо минимальное число наблюдений в узле
Recursive PartitioningRegression Tree
Пример расщепления обучающей выборки
rpart(formula data weights subset naaction = narpart method model = FALSE x = FALSE y = TRUE parms control cost )
formula a formula with a response but no interaction terms If this a a data frome that is taken as the model frame (see modelframe)
data an optional data frame in which to interpret the variables named in the formula
weights optional case weights
subset optional expression saying that only a subset of the rows of the data should be used in the fit
naaction the default action deletes all observations for which y is missing but keeps those in which one or more predictors are missing method one of anova poisson class or exp If method is missing then the routine tries to make an intelligent guess If y is a survival object then method = exp is assumed if y has 2 columns then method = poisson is assumed if y is a factor then method = class is assumed otherwise method = anova is assumed It is wisest to specify the method directly especially as more criteria may added to the function in future Alternatively method can be a list of functions named init split and eval Examples are given in the file lsquotestsusersplitsRrsquo in the sources and in the vignettes lsquoUser Written Split Functionsrsquo
model if logical keep a copy of the model frame in the result If the input value for model is a model frame (likely from an earlier call to the rpart function) then this frame is used rather than constructing new data
x keep a copy of the x matrix in the result
y keep a copy of the dependent variable in the result If missing and model is supplied this defaults to FALSE
parms optional parameters for the splitting function Anova splitting has no parameters Poisson splitting has a single parameter the coefficient of variation of the prior distribution on the rates The default value is 1 Exponential splitting has the same parameter as Poisson For classification splitting the list can contain any of the vector of prior probabilities (component prior) the loss matrix (component loss) or the splitting index (component split) The priors must be positive and sum to 1 The loss matrix must have zeros on the diagonal and positive off-diagonal elements The splitting index can be gini or information The default priors are proportional to the data counts the losses default to 1 and the split defaults to gini
control a list of options that control details of the rpart algorithm See rpartcontrol
cost a vector of non-negative costs one for each variable in the model Defaults to one for all variables These are scalings to be applied when considering splits so the improvement on splitting on a variable is divided by its cost in deciding which split to choose arguments to rpartcontrol may also be specified in the call to rpart They are checked against the list of valid arguments
Recursive PartitioningRegression Tree example(r lt- rpart(class ~ x + y data = train))plot(r)text(r)
Here we look at the confusion matrix and overall error rate from applying the tree rules to the training datapredicted lt- asnumeric(apply(predict(r) 1 function(r) order(-r)[1]))(m lt- cm (train$class predicted))1 - sum(diag(m)) sum(m)
And by comparison against the test datapredicted lt- asnumeric(apply(predict(r test[12]) 1 function(r) order(-r)[1]))(m lt- cm (test$class predicted))1 - sum(diag(m)) sum(m)
Анализ по главным компонентам (Principal Component Analysis PCA)Известно четыре базовых версии методаbull аппроксимировать данные линейными многообразиями меньшей
размерностиbull найти подпространства меньшей размерности в ортогональной проекции
на которые разброс данных (то есть среднеквадратичное отклонение от среднего значения) максимален
bull найти подпространства меньшей размерности в ортогональной проекции на которые среднеквадратичное расстояние между точками максимально
bull для данной многомерной случайной величины построить такое ортогональное преобразование координат в результате которого корреляции между отдельными координатами обратятся в нуль
В основе задача наилучшей аппроксимации конечного множества точек прямыми и плоскостями (Пирсон 1901) Дано конечное множество векторов для каждого k=01hellipn-1 среди всех k-мерных линейных многообразий в Rn найти такое что сумма квадратов уклонений минимальна
bull Графическая иллюстрация метода главных компонент в 3D
Алгоритм
bull Централизация данных
bull Находим первую главную компоненту
bull Вычитаем проекцию на нее
bull Находим вторую главную компоненту
bull Вычитаем проекцию на (k-1) главную компоненту
bull Находим k-ую главную компоненту
bull Всегда выполняется условие ортогональности
princomp(formula data = NULL subset naaction )formula a formula with no response variable referring only to numeric variables
data an optional data frame (or similar see modelframe) containing the variables in the formula formula By default the variables are taken from environment(formula)
subset an optional vector used to select rows (observations) of the data matrix x
naaction a function which indicates what should happen when the data contain NAs The default is set by the naaction setting of options and is nafail if that is unset The lsquofactory-freshrsquo default is naomit
x a numeric matrix or data frame which provides the data for the principal components analysis
cor a logical value indicating whether the calculation should use the correlation matrix or the covariance matrix (The correlation matrix can only be used if there are no constant variables)
scores a logical value indicating whether the score on each principal component should be calculated
covmat a covariance matrix or a covariance list as returned by covwt (and covmve or covmcd from package MASS) If supplied this is used rather than the covariance matrix of x
arguments passed to or from other methods If x is a formula one might specify cor or scores
object Object of class inheriting from princomp
newdata An optional data frame or matrix in which to look for variables with which to predict If omitted the scores are used If the original fit used a formula or a data frame or a matrix with column names newdata must contain columns with the same names Otherwise it must contain the same number of columns to be used in the same order
Principal Component Analysis (PCA)plt-princomp(train[12])train_pca lt- dataframe(p$scores)train_pca$class lt- train$class
Compare the alignment of the clusters to the axis in the feature space versus the transformed space
r2 lt- rpart(class ~ Comp1 + Comp2 data = train_pca)
Линейный дискриминантный анализ (Linear Discriminant Analysis - LDA)bull Для каждого образца объекта или события с известным классом y
рассматривается набор наблюдений x (называемых ещё признаками переменными или измерениями) Набор таких образцов называется обучающей выборкой (или набором обучения обучением) Задачи классификации состоит в том чтобы построить хороший прогноз класса y для всякого так же распределённого объекта (не обязательно содержащегося в обучающей выборке) имея только наблюдения x Основная идея состоит в сравнении распределений для каждого из классов Расстоянием (по Фишеру) между распределениями принято считать отношение межклассовой дисперсии к внутриклассовой
bull Оптимальное байесовское решение - относить точки ко второму классу если отношение правдоподобия ниже некоторого порогового значения T
bull Предполагая что выполнена нормировка
bull Решение записывается в виде неравенства для скалярного произведения
bull Здесь laquoизмерительныйraquo вектор равен
bull с- дискриминантный порог
lda(x grouping prior = proportions tol = 10e-4 method CV = FALSE nu )
formula A formula of the form groups ~ x1 + x2 + That is the response is the grouping factor and the right hand side specifies the (non-factor) discriminators
data Data frame from which variables specified in formula are preferentially to be taken
x (required if no formula is given as the principal argument) a matrix or data frame or Matrix containing the explanatory variables
grouping (required if no formula principal argument is given) a factor specifying the class for each observation
prior the prior probabilities of class membership If unspecified the class proportions for the training set are used If present the probabilities should be specified in the order of the factor levels
tol A tolerance to decide if a matrix is singular it will reject variables and linear combinations of unit-variance variables whose variance is less than tol^2
subset An index vector specifying the cases to be used in the training sample (NOTE If given this argument must be named)
naaction A function to specify the action to be taken if NAs are found The default action is for the procedure to fail An alternative is naomit which leads to rejection of cases with missing values on any required variable (NOTE If given this argument must be named)
method moment for standard estimators of the mean and variance mle for MLEs mve to use covmve or t for robust estimates based on a t distribution
CV If true returns results (classes and posterior probabilities) for leave-one-out cross-validation Note that if the prior is estimated the proportions in the whole dataset are used
nu degrees of freedom for method = t
arguments passed to or from other methods
prior the prior probabilities usedmeans the group meansscaling a matrix which transforms observations to
discriminant functions normalized so that within groups covariance matrix is spherical
svd the singular values which give the ratio of the between- and within-group standard deviations on the linear discriminant variables Their squares are the canonical F-statistics
N The number of observations usedcall The (matched) function call
An object of class lda containing the following components
Метод опорных векторов (Support Vector Machines - SVM)Относится к ML с учителем и использует линейные разделяющие поверхности
Идея алгоритма
bull По обучающей выборке
bull Строится классифицирующая функция
bull Используя гиперплоскость
bull Поиск коэффициентов сводится к максимизации
расстояний от опорных векторов или минимизации
Иллюстрация на простейшем примере
>
Производится вложение обучающей выборки в пространство более высокой размерности Х с помощью нелинейной функции так чтобы обеспечит линейную разделимость в Х
Разделяющая функция тогда имеет вид
Функция называется ядром
Полиномиальное ядро
Радиальная базисная функция
Сигмоид
Линейная неразделимость и использование ядер
Иллюстрация использования ядра для отображения 2D -gt 3D
>
svm((formula data = NULL subset naaction =naomit scale = TRUE))
formulaa symbolic description of the model to be fitdataan optional data frame containing the variables in the model By default the variables are taken from the environment which lsquosvmrsquo is called fromxa data matrix a vector or a sparse matrix (object of class Matrix provided by the Matrix package or of class matrixcsr provided by the SparseM package or of class simple_triplet_matrix provided by the slam package)ya response vector with one label for each rowcomponent of x Can be either a factor (for classification tasks) or a numeric vector (for regression)scaleA logical vector indicating the variables to be scaled If scale is of length 1 the value is recycled as many times as needed Per default data are scaled internally (both x and y variables) to zero mean and unit variance The center and scale values are returned and used for later predictionstypesvm can be used as a classification machine as a regression machine or for novelty detection Depending of whether y is a factor or not the default setting for type is C-classification or eps-regression respectively but may be overwritten by setting an explicit valueValid options areC-classificationnu-classificationone-classification (for novelty detection)eps-regressionnu-regression
Support Vector Machines
s lt- svm( I(factor(class)) ~ x + y data = train cost = 100 gama = 1)
Package lsquodeepnetrsquo February 19 2015 Type Package Title deep learning toolkit in R Version 02 Date 2014-03-20 Author Xiao Rong Maintainer Xiao Rong Description Implement some deep learning architectures and neural network algorithms including BPRBMDBNDeep autoencoder and so on License GPL NeedsCompilation no Repository CRAN DatePublication 2014-03-20 100343
laquoВ 1997 году Deep Blue обыграл в шахматы КаспароваВ 2011 Watson обставил чемпионов JeopardyСможет ли ваш алгоритм в 2013 году отличить Бобика от ПушистикаraquoKaggle Competitions Details
Сегодня уже можно ответить laquoдаraquo mdash десятка лидеров справилась с заданием на 988
Распознавание основано на feature detection и последующем различении комбинаций
Заранее неизвестно какие части картинки могут использоваться как хорошие features В их роли может выступать все что угодно mdash фрагменты изображения форма размер или цвет Feature может не присутствовать на картинке сама а выражаться в параметре полученным каким-то образом из исходных данных
Распознавание рукописных цифр
Еще пример посложнее
Использование нейронной сети с обучениемОбучение такой нейронной сети производится обычно методом обратного распространения ошибки таким образом чтобы минимизировать среднеквадратическую ошибку отклика сети на обучающей выборке Таким образом обучающая выборка содержит пары векторов признаков (входные данные) и эталонных векторов (маркированные данные) (x y)
Сверхвысокая размерность при работе с первичным представлением пикселями
Пиксельное кодирование
Принцип иерархии понятий ndash основа deep learning
bull Все вещи состоят из других маленьких и более элементарных вещей
bull Как извлекать features Гипотеза малоразмерных многообразий
Разреженное (sparse) кодирование
первый уровень иерархии состоит из элементов словаря этого кода которые представляют собой штрихи и границы
Словарь для лиц
Выделение объектов заданного класса
Основные архитектуры Deep Learningbull Deep neural networks (DNN)bull Deep belief networks (DBN)bull Convolutional neural networks (CNN)bull Deep Boltzmann Machines (DBM)bull Stacked (Denoising) Auto-Encodersbull Deep Stacking Networksbull Tensor Deep Stacking Networks (T-DSN)bull Spike-and-Slab RBMs (ssRBMs)bull Compound Hierarchical-Deep Modelsbull Deep Coding Networks (DPCN)bull Deep Kernel Machinesbull Deep Q-Networks (2015 г)
Задача классификации распознавания и подобные являются задачей конструирования функции на множестве входных наборов и со значениями в множестве требуемого вида выходных
bull Норбертом Винером было показано что любая функция может быть сколь угодно точно композицией двух (он использовал функции полином Лагранжа и функцию Лагерра)
bull Соответствует двухслойной нейросетиbull Архитектуры Deep Learning соответствуют представлению
bull Обеспечивают эффективную параметризацию при решении конкретных задач Более сложные функции создаются из большего числа но более эффективно настраиваемых laquoкирпичиковraquo Пример ndash синтез булевых функций Дерево вентилей эффективнее двухслойной схемы
Фактор - графыВсе методы которые расмотрели ndash не DL Даже деревья классификации Все операции в одном входном словаре
DL можно определить по фактор-графу
Например
bull Еще одна сторона DL - нередко использует невыпуклые функции потерьbull Обучение на основе выпуклых функций не зависит от порядка
предъявления данных для обучения Все определяет асимптотика всего train - набора В алгоритмах DL порядок данных в обучающей выборке может иметь значение
bull Многие решения в DL не доказаны математически и являются успешными эвристиками
bull Большой простор для прикладной математики Может рассматриваться как фактор-граф с группами латентных переменных
bull В настоящее время стал основной технологией в распознавании речи (speech recognition) и машинном зрении (computer vision) начал применяться в обработке текстов (natural language processing)
bull Основная идея ndash применение нелинейного отображения входного набора в более высокоразмерное пространство где многие неразделимые композиции становятся разделимыми а затем объединение композиций по семантической близости
Подход разреженного кодирования
Обобщенная архитектура
bull DL сеть может быть собрана каскадированием и использованием обучения с учителем
Здесь используется forward propagation для обучения
Для настройки коэффициентов используется метод fprof для каждого
Требуется знание градиента энергии
Элементы (kl) матрицы Якобиана
Требуется знание градиента энергии 120597119864120597119882119894 = 120597119864120597119883119894120597119865119894(119883119894minus1119882119894)120597119882119894
ሾ1times 119873119908ሿ= ሾ1times 119873119909ሿlowast[119873119909 times 119873119908] Элементы (kl) матрицы Якобиана
Сводится к рекуррентному соотношению для вычисления градиента 120597119864120597119883119894minus1 = 120597119864120597119883119894120597119865119894(119883119894minus1119882119894)120597119883119894minus1
В итоге
Для вычисления градиента может использоваться метод back propagation
В действительности работают любые архитектуры построения функции Нужно конструировать связи и функции блоков
Язык Torch 7 ndash современный инструмент моделирования и имплементации
Machine Learning with Torch7 (httpcodecogbitscomwikidokuphpid=start)
bull These tutorials were originally designed for the IPAM Summer School on Deep Learning more info herebull This wiki provides multiple tutorials with the overall objective of teaching you how to do machine learning
with Torch7bull Torch7 provides a Matlab-like environment for state-of-the-art machine learning algorithms It is easy to use
and provides a very efficient implementation thanks to an easy and fast scripting language (LuaJIT) and an underlying C implementation
bull These tutorials should be readdone in orderbull Tutorial 1 Setup Basics Getting Startedbull Tutorial 2 Supervised Learningbull Tutorial 3 Unsupervised Learningbull Tutorial 4 Graphical Modelsbull Tutorial 5 Creating New Modulesbull Tutorial 6 Using CUDAbull To follow these tutorials and do the exercises you will need to download the associated code which is hosted
on GitHub on this page In this repository each directory corresponds to a tutorial herebull starttxt middot Last modified 20140204 2246 by clement
Torch 7 является расширением Lua
What is LuaLua is a powerful fast lightweight embeddable scripting languageLua combines simple procedural syntax with powerful data description constructs based on associative arrays and extensible semantics Lua is dynamically typed runs by interpreting bytecode for a register-based virtual machine and has automatic memory management with incremental garbage collection making it ideal for configuration scripting and rapid prototyping
Why choose LuaLua is a proven robust languageLua has been used in many industrial applications (eg Adobes Photoshop Lightroom) with an emphasis on embedded systems (eg the Ginga middleware for digital TV in Brazil) and games (eg World of Warcraft and Angry Birds) Lua is currently the leading scripting language in games Lua has a solid reference manual and there are several books about it Several versions of Lua have been released and used in real applications since its creation in 1993 Lua featured in HOPL III the Third ACM SIGPLAN History of Programming Languages Conference in June 2007 Lua won the Front Line Award 2011 from the Game Developers Magazine
Свертка и архитектура 4-х уровневой сверточной сети
Функциональная структура
Примеры успешного применения сверточных сетей
Диагностика эпилепсии по ЭЭГ
Реализация сверточной сетью
Одна из самых больших сверточных сетейbull Krizhevsky Sutskever Hinton 2012bull 650 000 нейронов 832 000 000 синапсов 60 000000 пареметровbull Использовался backprop на GPUbull Обучающая выборка на материалах 20 летbull Купил Google в январе 2013bull В мае 2013 развернул как сервис Photo Tagging Google+
Пример тэгирования
Пример поиска похожих по изображению
Пример поиска в коллекции изображений по текстовому запросу
Пример laquoоблачногоraquo классификатора изображений
Самообучающиеся нейронные сети на основе минимизации функции энергииbull Применима к сетям с обратными связямиbull Конструирование функции энергии должно обеспечивать
laquoконтрастностьraquo разделения
bull Энергетическая функция может Неформально рассматриваться как отрицательный логарифм плотности вероятности
Y 2=(Y1)2
RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцмана
bull Из DBM cтроится Deep Belief Network (DBN)
bull w mdash вес между нейронами
bull b mdash смещение нейрона
bull s mdash состояние нейрона
Алгоритм обучения Contrastive Divergence (CD)bull w_ij mdash веc между i-ым нейроном Вероятность пар может быть представлена как
bull a_i mdash смещение видимого нейрона
bull b_j mdash смещение скрытого нейрона
bull v_i mdash состояние видимого нейрона
bull h_j mdash состояние скрытого нейрона Полная вероятность состояния видимых нейронов
Основные уравнения адаптации
Алгоритм Хинтона - Contrastive Divergence (CD-k)
1 состояние видимых нейронов приравнивается к входному образу2 выводятся вероятности состояний скрытого слоя3 каждому нейрону скрытого слоя ставится в соответствие состояние laquo1raquo с вероятностью равной его текущему состоянию4 выводятся вероятности видимого слоя на основании скрытого5 если текущая итерация меньше k то возврат к шагу 26 выводятся вероятности состояний скрытого слоя
darch Package for deep architectures and Restricted-Bolzmann-MachinesThe darch package is build on the basis of the code from G E Hinton and R R Salakhutdinov (available under Matlab Code for deep belief nets last visit 01082013) This package is for generating neural networks with many layers (deep architectures) and train them with the method introduced by the publications A fast learning algorithm for deep belief nets (G E Hinton S Osindero Y W Teh) and Reducing the dimensionality of data with neural networks (G E Hinton R R Salakhutdinov) This method includes a pre training with the contrastive divergence method publishing by GE Hinton (2002) and a fine tuning with common known training algorithms like backpropagation or conjugate gradient
bull Version 091bull Imports futilelogger ff methodsbull Published 2014-03-16bull Author Martin Dreesbull Maintainer Martin Drees ltmdrees at studfh-dortmunddegtbull License GPL-2bull URL httpgithubcommaddin79darchbull NeedsCompilation nobull Materials READMEbull CRAN checks darch results
Связь плотности вероятности и энергии
Используется распределение Гиббса
Задача обучения с точки минимизации энергии сети
bull Сконструировать функцию энергии с малыми значениями на обучающей выборке и с большими значениями всюду вне этого множества
bull Первое несложно а второе представляет задачу процесса обучения
Интуитивные соображения
Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decomposition LISTA ndashметоды использующие разреженные коды
Латентная переменная Z =argmin_z Distance[Decoder(Z)Y]+FactorB(Z)MAPminimaize sum of factors
Автоэнкодер (auto encoder) Автоэнкодер представляет собой алгоритм обучения без учителя который использует нейронную сеть и метод обратного распространения ошибки для того чтобы добиться того что входной вектор признаков вызывал отклик сети равный входному вектору те y = x Автоэнкодер пытается построить функцию h(x) = x
Архитекттура ICA моделей
Итеративные алгоритмы с оптимальным разреженным кодированием ISTAFISTA
Самоорганизация данных методами Deep Learning
>
Знакомство с пакетом deepnet
Назначение
Составdbndnntrain - обучение сети с архитектурой DBN (deep belief network)loadmnist - формирование данных из файлов MNISTnnpredict - предсказание новых выборок на обученной нейронной сетиnntest ndash тестирование обученной нейронной сети с возвращением значения ошибкиnntrain ndash обучение одностлойной или многослойной нейронной сети методом backproprbmdown ndash генерирование видимого вектора для скрытых состояний сети RBMrbmtrain ndash обучение сети RBMrbmup ndash извлечение скрытых состояний RBM по известным видимым состояниямsaednntrain ndash обучение нейронной сети с архитектурой stacked autoencoder
Прогнозирование (классификация) нейронной сетью с архитектурой stacked auto encoder
Argumentsbull x matrix of x values for examplesbull y vector or matrix of target values for examplesbull hidden vector for number of units of hidden layersDefault is c(10)bull activationfun activation function of hidden unitCan be sigmlinear or tanhDefault isbull sigm for logistic functionbull learningrate learning rate for gradient descent Default is 08bull momentum momentum for gradient descent Default is 05 bull learningrate_scalebull learning rate will be mutiplied by this scale after every iteration Default is 1 bull numepochs number of iteration for samples Default is 3bull batchsize size of mini-batch Default is 100bull output function of output unit can be sigmlinear or softmax Default is sigmbull sae_output function of autoencoder output unit can be sigmlinear or softmax Defaultbull is linearbull hidden_dropout drop out fraction for hidden layer Default is 0bull visible_dropoutbull drop out fraction for input layer Default is 0
Что такое MNISTbull Смешанный набор данных Национального института стандартов и
технологий (mixed National Institute of Standards and Technology MNIST) был создан исследователями IR в качестве эталона для сравнения различных алгоритмов IR
bull Набор данных состоит всего из 70 000 изображений 60 000 обучающих (используемых для создания модели IR) и 10 000 тестовых (применяемых для оценки точности модели) Каждое изображение MNIST mdash это оцифрованная картинка одной цифры написанной от руки Каждое изображение имеет размер 28 times 28 пикселей Каждое значение пикселя лежит в диапазоне от 0 (представляет белый цвет) до 255 (представляет черный цвет) Промежуточные значения отражают оттенки серого
httpyannlecuncomexdbmnistобучающие и тестовые данные хранятся в двух файлах а не в одном Один файл содержит значения пикселей для изображений а другой mdash метки изображений (0ndash9) Каждый из четырех файлов также содержит заголовочную информацию и все они хранятся в двоичном формате сжатом в формате gziptrain-images-idx3-ubytegz training set images (9912422 bytes)
train-labels-idx1-ubytegz training set labels (28881 bytes)
t10k-images-idx3-ubytegz test set images (1648877 bytes)
t10k-labels-idx1-ubytegz test set labels (4542 bytes)
bull Каждая строка файла представляет собой имидж размера 28 times 28 вектором длины 784 каждый признак ndash значение пиксела в черно-белой шале Первый столбец содержит метку цифры 0ndash9 следующие 2828 столбцов представляют целый имидж и так далее Пример первой строки
Визуализация
bull plotmnist()bull mnistbull paramsbull train$n number of train samplesbull train$x pix of every train sample imagebull train$y label of every train sample imagebull train$yy one-of-c vector of label of train sample imagebull test$n number of test samplesbull test$x pix of every test sample imagebull test$y label of every test sample imagebull test$yy one-of-c vector of label of test sample image
plotmnist()
Распознавание рукописных цифр в deepnet
another way to download the MNIST datasetmnist downloadmnist(range=c(01)global=FALSE)look at MNIST datamnist$train$xmnist$train$ymnist$test$xmnist$test$ytrain of the sae neural networkdnnlt-saednntrain(mnist$train$xmnist$train$yhidden=c(55))test of the sae neural networknntest(dnnmnist$test$xmnist$test$yt=05)
End of slides part 2 (Part 3 - NLP remaining)
Vladimirvkrylovgmailcom
Основы предиктивной аналитики Часть вторая
Применение методов Machine Learning к решению задач аналитики
Дмитрий Ветров кандидат физико-математических наук ру
Методы обучающихся машин для аналитики которые мы рассмотрим
Сначала нужно загрузить несколько пакетов (packages) для поддер
Данные для анализа
Скрипт для генерации
Данные которые мы будем использовать для демо состоят из смес
Так выглядят визуализированные данные сгенерированные скриптом
Разделение данных на обучающие и проверочные является важным эт
K-means алгоритм на пальцах
Обучающаяся машина без учителя Алгоритм K-means
Slide 13
Slide 14
Здесь мы используем заранее известный факт что необходимо кла
Еще одна иллюстрация работы алгоритма K-means
Обучающаяся машина без учителя Алгоритм KNN (Nearest Neighbor)
Как работает алгоритм KNN
knn(train test cl k = 1 l = 0 prob = FALSE useall = TRUE
Slide 20
Результаты кластеризации и зависимость ошибки от числа кластеро
Recursive PartitioningRegression Tree
Метод RP реализует обучение машины строить дерево решений по об
Recursive PartitioningRegression Tree (2)
rpart(formula data weights subset naaction = narpart met
Slide 26
Recursive PartitioningRegression Tree example
Анализ по главным компонентам (Principal Component Analysis PC
Итеративные алгоритмы с оптимальным разреженным кодированием IS
Самоорганизация данных методами Deep Learning
Знакомство с пакетом deepnet
Прогнозирование (классификация) нейронной сетью с архитектурой
Arguments
Архитектура сети SAE
Архитектура с 5Х4 hidden 3 outs
Example
Анализ обучающего набора данных
Параметры SAE сети
Коэффициенты связей
Предсказание обученной сетью
Сравнение обучающей и тестовой выборки
plot3d(xy)
Работаем с пакетом MNIST
httpyannlecuncomexdbmnist
Подготовка к обработке
Slide 118
Визуализация
plotmnist()
Распознавание рукописных цифр в deepnet
End of slides part 2 (Part 3 - NLP remaining)
Данные для анализа
bull Чтобы избежать проблем с загрузкой файлов используем в этом примере искусственно сгенерированный набор данных
bull Для генерирования n случайных выборок используем простую функцию генерирования из многомерного нормального распределения со средним значением mu и матрицей ковариаций sigma
Скрипт для генерации
rmulnorm lt- function (n mu sigma)
M lt- t(chol(sigma))d lt- nrow(sigma)Z lt- matrix(rnorm(dn)dn)t(M Z + mu)
cm lt- function (actual predicted) Produce a confusion matrix
tlt-table(predictedactual) there is a potential bug in here if columns are tied for orderingt[apply(t2function(c) order(-c)[1])]
Total number of observationsN lt- 1000 3 Number of training observationsNtrain lt- N 07
Данные которые мы будем использовать для демо состоят из смеси трех двумерных нормальных распределений Целью является построить такую систему классификации которая сможет определять какому из распределений принадлежат поступающие данные Выведем данные для наглядности
Так выглядят визуализированные данные сгенерированные скриптом
Разделение данных на обучающие и проверочные является важным этапом ML
Просто используем случайный выбор из имеющегося набораdata lt- data[sample(1N)]
train lt- data[1Ntrain]
test lt- data[(Ntrain+1)N]
K-means алгоритм на пальцах
>
Обучающаяся машина без учителя Алгоритм K-meansАлгоритм K-meansЭтап 1 Первоначальное распределение объектов по кластерамbull Выбор случайным образом k точек данных из D как начальное множество представителей
кластера Cbull Распределение объектов по кластерам в соответствие с формулой
Этап 2 Перераспределение срединных элементовbull Вычисление центра для каждого кластераbull Перераспределение объектов по кластерамbull Алгоритм завершается когда на какой-то итерации не происходит изменения центра масс
кластеров Это происходит за конечное число итераций так как количество возможных разбиений конечного множества конечно а на каждом шаге суммарное квадратичное отклонение Cost не увеличивается поэтому зацикливание невозможно
x numeric matrix of data or an object that can be coerced to such a matrix (such as a numeric vector or a data frame with all numeric columns)
centers either the number of clusters say k or a set of initial (distinct) cluster centres If a number a random set of (distinct) rows in x is chosen as the initial centres
itermax the maximum number of iterations allowed
nstart if centers is a number how many random sets should be chosen
algorithm character may be abbreviated Note that Lloyd andForgy are alternative names for one algorithm
object an R object of class kmeans typically the result obof ob lt- kmeans()
method character may be abbreviated centers causesfitted to return cluster centers (one for each input point) and classes causes fitted to return a vector of class assignments
trace logical or integer number currently only used in the default method (Hartigan-Wong) if positive (or true) tracing information on the progress of the algorithm is produced Higher values may produce more tracing information
Обучающаяся машина без учителя Алгоритм KNN (Nearest Neighbor)Алгоритм KNN Основным принципом метода ближайших соседей является то что объект присваивается тому классу который является наиболее распространённым среди соседей данного элементаДля классификации каждого из объектов тестовой выборки
необходимо последовательно выполнить следующие операцииВычислить расстояние до каждого из объектов обучающей выборки
Отобрать k объектов обучающей выборки расстояние до которых минимально
Класс классифицируемого объекта mdash это класс наиболее часто встречающийся среди k ближайших соседей
Как работает алгоритм KNN
>
knn(train test cl k = 1 l = 0 prob = FALSE useall = TRUE)
train matrix or data frame of training set cases
test matrix or data frame of test set cases A vector will be interpreted as a row vector for a single case
cl factor of true classifications of training set
k number of neighbours considered
l minimum vote for definite decision otherwise doubt (More precisely less than k-l dissenting votes are allowed even if k is increased by ties)
prob If this is true the proportion of the votes for the winning class are returned as attribute prob
useall controls handling of ties If true all distances equal to the kth largest are included If false a random selection of distances equal to the kth is chosen to use exactly k neighbours
Here we demonstrate the bias-variance tradeoff as we increase k
err lt- matrix(nrow=N100 ncol=2)for (i in 1nrow(err))
k lt- i 4test$predicted_class lt- knn(train[12] test[12] train$class k=k)mlt-cm(test$class test$predicted_class)err[i] lt- c(k 1 - sum(diag(m)) sum(m))
plot (err)
Результаты кластеризации и зависимость ошибки от числа кластеров
actualpredicted A B C A 272 0 7 B 1 308 1 C 31 0 280
gt m
Recursive PartitioningRegression Treebull Основано на дереве решений представляющем граф бинарной
последовательной классификации по тест-вопросам в каждой вершине графа Листья дерева ассоциируются с результатами классификации
Метод RP реализует обучение машины строить дерево решений по обучающей выборке данных
bull laquoРасщеплениеraquo обучающих данныхМножество данных в каждом узле разделяется на два соответствующих ответам TRUE или FALSE Вопросы должны порождать бинарное разбиение множества Для числовых характеристик это обычно неравенства характеристика Xn меньше или равна значению Ym
bull Конструирование тест-вопросовПринцип putity measurement ndash очищающих измерений Каждая характеристика анализируется статистически для каждого разбиения и выбирается наилучшее по чистоте разделенияbull Критерий остановкиЧтобы избежать переобучения используется либо порог чистоты либо максимальное число узлов либо минимальное число наблюдений в узле
Recursive PartitioningRegression Tree
Пример расщепления обучающей выборки
rpart(formula data weights subset naaction = narpart method model = FALSE x = FALSE y = TRUE parms control cost )
formula a formula with a response but no interaction terms If this a a data frome that is taken as the model frame (see modelframe)
data an optional data frame in which to interpret the variables named in the formula
weights optional case weights
subset optional expression saying that only a subset of the rows of the data should be used in the fit
naaction the default action deletes all observations for which y is missing but keeps those in which one or more predictors are missing method one of anova poisson class or exp If method is missing then the routine tries to make an intelligent guess If y is a survival object then method = exp is assumed if y has 2 columns then method = poisson is assumed if y is a factor then method = class is assumed otherwise method = anova is assumed It is wisest to specify the method directly especially as more criteria may added to the function in future Alternatively method can be a list of functions named init split and eval Examples are given in the file lsquotestsusersplitsRrsquo in the sources and in the vignettes lsquoUser Written Split Functionsrsquo
model if logical keep a copy of the model frame in the result If the input value for model is a model frame (likely from an earlier call to the rpart function) then this frame is used rather than constructing new data
x keep a copy of the x matrix in the result
y keep a copy of the dependent variable in the result If missing and model is supplied this defaults to FALSE
parms optional parameters for the splitting function Anova splitting has no parameters Poisson splitting has a single parameter the coefficient of variation of the prior distribution on the rates The default value is 1 Exponential splitting has the same parameter as Poisson For classification splitting the list can contain any of the vector of prior probabilities (component prior) the loss matrix (component loss) or the splitting index (component split) The priors must be positive and sum to 1 The loss matrix must have zeros on the diagonal and positive off-diagonal elements The splitting index can be gini or information The default priors are proportional to the data counts the losses default to 1 and the split defaults to gini
control a list of options that control details of the rpart algorithm See rpartcontrol
cost a vector of non-negative costs one for each variable in the model Defaults to one for all variables These are scalings to be applied when considering splits so the improvement on splitting on a variable is divided by its cost in deciding which split to choose arguments to rpartcontrol may also be specified in the call to rpart They are checked against the list of valid arguments
Recursive PartitioningRegression Tree example(r lt- rpart(class ~ x + y data = train))plot(r)text(r)
Here we look at the confusion matrix and overall error rate from applying the tree rules to the training datapredicted lt- asnumeric(apply(predict(r) 1 function(r) order(-r)[1]))(m lt- cm (train$class predicted))1 - sum(diag(m)) sum(m)
And by comparison against the test datapredicted lt- asnumeric(apply(predict(r test[12]) 1 function(r) order(-r)[1]))(m lt- cm (test$class predicted))1 - sum(diag(m)) sum(m)
Анализ по главным компонентам (Principal Component Analysis PCA)Известно четыре базовых версии методаbull аппроксимировать данные линейными многообразиями меньшей
размерностиbull найти подпространства меньшей размерности в ортогональной проекции
на которые разброс данных (то есть среднеквадратичное отклонение от среднего значения) максимален
bull найти подпространства меньшей размерности в ортогональной проекции на которые среднеквадратичное расстояние между точками максимально
bull для данной многомерной случайной величины построить такое ортогональное преобразование координат в результате которого корреляции между отдельными координатами обратятся в нуль
В основе задача наилучшей аппроксимации конечного множества точек прямыми и плоскостями (Пирсон 1901) Дано конечное множество векторов для каждого k=01hellipn-1 среди всех k-мерных линейных многообразий в Rn найти такое что сумма квадратов уклонений минимальна
bull Графическая иллюстрация метода главных компонент в 3D
Алгоритм
bull Централизация данных
bull Находим первую главную компоненту
bull Вычитаем проекцию на нее
bull Находим вторую главную компоненту
bull Вычитаем проекцию на (k-1) главную компоненту
bull Находим k-ую главную компоненту
bull Всегда выполняется условие ортогональности
princomp(formula data = NULL subset naaction )formula a formula with no response variable referring only to numeric variables
data an optional data frame (or similar see modelframe) containing the variables in the formula formula By default the variables are taken from environment(formula)
subset an optional vector used to select rows (observations) of the data matrix x
naaction a function which indicates what should happen when the data contain NAs The default is set by the naaction setting of options and is nafail if that is unset The lsquofactory-freshrsquo default is naomit
x a numeric matrix or data frame which provides the data for the principal components analysis
cor a logical value indicating whether the calculation should use the correlation matrix or the covariance matrix (The correlation matrix can only be used if there are no constant variables)
scores a logical value indicating whether the score on each principal component should be calculated
covmat a covariance matrix or a covariance list as returned by covwt (and covmve or covmcd from package MASS) If supplied this is used rather than the covariance matrix of x
arguments passed to or from other methods If x is a formula one might specify cor or scores
object Object of class inheriting from princomp
newdata An optional data frame or matrix in which to look for variables with which to predict If omitted the scores are used If the original fit used a formula or a data frame or a matrix with column names newdata must contain columns with the same names Otherwise it must contain the same number of columns to be used in the same order
Principal Component Analysis (PCA)plt-princomp(train[12])train_pca lt- dataframe(p$scores)train_pca$class lt- train$class
Compare the alignment of the clusters to the axis in the feature space versus the transformed space
r2 lt- rpart(class ~ Comp1 + Comp2 data = train_pca)
Линейный дискриминантный анализ (Linear Discriminant Analysis - LDA)bull Для каждого образца объекта или события с известным классом y
рассматривается набор наблюдений x (называемых ещё признаками переменными или измерениями) Набор таких образцов называется обучающей выборкой (или набором обучения обучением) Задачи классификации состоит в том чтобы построить хороший прогноз класса y для всякого так же распределённого объекта (не обязательно содержащегося в обучающей выборке) имея только наблюдения x Основная идея состоит в сравнении распределений для каждого из классов Расстоянием (по Фишеру) между распределениями принято считать отношение межклассовой дисперсии к внутриклассовой
bull Оптимальное байесовское решение - относить точки ко второму классу если отношение правдоподобия ниже некоторого порогового значения T
bull Предполагая что выполнена нормировка
bull Решение записывается в виде неравенства для скалярного произведения
bull Здесь laquoизмерительныйraquo вектор равен
bull с- дискриминантный порог
lda(x grouping prior = proportions tol = 10e-4 method CV = FALSE nu )
formula A formula of the form groups ~ x1 + x2 + That is the response is the grouping factor and the right hand side specifies the (non-factor) discriminators
data Data frame from which variables specified in formula are preferentially to be taken
x (required if no formula is given as the principal argument) a matrix or data frame or Matrix containing the explanatory variables
grouping (required if no formula principal argument is given) a factor specifying the class for each observation
prior the prior probabilities of class membership If unspecified the class proportions for the training set are used If present the probabilities should be specified in the order of the factor levels
tol A tolerance to decide if a matrix is singular it will reject variables and linear combinations of unit-variance variables whose variance is less than tol^2
subset An index vector specifying the cases to be used in the training sample (NOTE If given this argument must be named)
naaction A function to specify the action to be taken if NAs are found The default action is for the procedure to fail An alternative is naomit which leads to rejection of cases with missing values on any required variable (NOTE If given this argument must be named)
method moment for standard estimators of the mean and variance mle for MLEs mve to use covmve or t for robust estimates based on a t distribution
CV If true returns results (classes and posterior probabilities) for leave-one-out cross-validation Note that if the prior is estimated the proportions in the whole dataset are used
nu degrees of freedom for method = t
arguments passed to or from other methods
prior the prior probabilities usedmeans the group meansscaling a matrix which transforms observations to
discriminant functions normalized so that within groups covariance matrix is spherical
svd the singular values which give the ratio of the between- and within-group standard deviations on the linear discriminant variables Their squares are the canonical F-statistics
N The number of observations usedcall The (matched) function call
An object of class lda containing the following components
Метод опорных векторов (Support Vector Machines - SVM)Относится к ML с учителем и использует линейные разделяющие поверхности
Идея алгоритма
bull По обучающей выборке
bull Строится классифицирующая функция
bull Используя гиперплоскость
bull Поиск коэффициентов сводится к максимизации
расстояний от опорных векторов или минимизации
Иллюстрация на простейшем примере
>
Производится вложение обучающей выборки в пространство более высокой размерности Х с помощью нелинейной функции так чтобы обеспечит линейную разделимость в Х
Разделяющая функция тогда имеет вид
Функция называется ядром
Полиномиальное ядро
Радиальная базисная функция
Сигмоид
Линейная неразделимость и использование ядер
Иллюстрация использования ядра для отображения 2D -gt 3D
>
svm((formula data = NULL subset naaction =naomit scale = TRUE))
formulaa symbolic description of the model to be fitdataan optional data frame containing the variables in the model By default the variables are taken from the environment which lsquosvmrsquo is called fromxa data matrix a vector or a sparse matrix (object of class Matrix provided by the Matrix package or of class matrixcsr provided by the SparseM package or of class simple_triplet_matrix provided by the slam package)ya response vector with one label for each rowcomponent of x Can be either a factor (for classification tasks) or a numeric vector (for regression)scaleA logical vector indicating the variables to be scaled If scale is of length 1 the value is recycled as many times as needed Per default data are scaled internally (both x and y variables) to zero mean and unit variance The center and scale values are returned and used for later predictionstypesvm can be used as a classification machine as a regression machine or for novelty detection Depending of whether y is a factor or not the default setting for type is C-classification or eps-regression respectively but may be overwritten by setting an explicit valueValid options areC-classificationnu-classificationone-classification (for novelty detection)eps-regressionnu-regression
Support Vector Machines
s lt- svm( I(factor(class)) ~ x + y data = train cost = 100 gama = 1)
Package lsquodeepnetrsquo February 19 2015 Type Package Title deep learning toolkit in R Version 02 Date 2014-03-20 Author Xiao Rong Maintainer Xiao Rong Description Implement some deep learning architectures and neural network algorithms including BPRBMDBNDeep autoencoder and so on License GPL NeedsCompilation no Repository CRAN DatePublication 2014-03-20 100343
laquoВ 1997 году Deep Blue обыграл в шахматы КаспароваВ 2011 Watson обставил чемпионов JeopardyСможет ли ваш алгоритм в 2013 году отличить Бобика от ПушистикаraquoKaggle Competitions Details
Сегодня уже можно ответить laquoдаraquo mdash десятка лидеров справилась с заданием на 988
Распознавание основано на feature detection и последующем различении комбинаций
Заранее неизвестно какие части картинки могут использоваться как хорошие features В их роли может выступать все что угодно mdash фрагменты изображения форма размер или цвет Feature может не присутствовать на картинке сама а выражаться в параметре полученным каким-то образом из исходных данных
Распознавание рукописных цифр
Еще пример посложнее
Использование нейронной сети с обучениемОбучение такой нейронной сети производится обычно методом обратного распространения ошибки таким образом чтобы минимизировать среднеквадратическую ошибку отклика сети на обучающей выборке Таким образом обучающая выборка содержит пары векторов признаков (входные данные) и эталонных векторов (маркированные данные) (x y)
Сверхвысокая размерность при работе с первичным представлением пикселями
Пиксельное кодирование
Принцип иерархии понятий ndash основа deep learning
bull Все вещи состоят из других маленьких и более элементарных вещей
bull Как извлекать features Гипотеза малоразмерных многообразий
Разреженное (sparse) кодирование
первый уровень иерархии состоит из элементов словаря этого кода которые представляют собой штрихи и границы
Словарь для лиц
Выделение объектов заданного класса
Основные архитектуры Deep Learningbull Deep neural networks (DNN)bull Deep belief networks (DBN)bull Convolutional neural networks (CNN)bull Deep Boltzmann Machines (DBM)bull Stacked (Denoising) Auto-Encodersbull Deep Stacking Networksbull Tensor Deep Stacking Networks (T-DSN)bull Spike-and-Slab RBMs (ssRBMs)bull Compound Hierarchical-Deep Modelsbull Deep Coding Networks (DPCN)bull Deep Kernel Machinesbull Deep Q-Networks (2015 г)
Задача классификации распознавания и подобные являются задачей конструирования функции на множестве входных наборов и со значениями в множестве требуемого вида выходных
bull Норбертом Винером было показано что любая функция может быть сколь угодно точно композицией двух (он использовал функции полином Лагранжа и функцию Лагерра)
bull Соответствует двухслойной нейросетиbull Архитектуры Deep Learning соответствуют представлению
bull Обеспечивают эффективную параметризацию при решении конкретных задач Более сложные функции создаются из большего числа но более эффективно настраиваемых laquoкирпичиковraquo Пример ndash синтез булевых функций Дерево вентилей эффективнее двухслойной схемы
Фактор - графыВсе методы которые расмотрели ndash не DL Даже деревья классификации Все операции в одном входном словаре
DL можно определить по фактор-графу
Например
bull Еще одна сторона DL - нередко использует невыпуклые функции потерьbull Обучение на основе выпуклых функций не зависит от порядка
предъявления данных для обучения Все определяет асимптотика всего train - набора В алгоритмах DL порядок данных в обучающей выборке может иметь значение
bull Многие решения в DL не доказаны математически и являются успешными эвристиками
bull Большой простор для прикладной математики Может рассматриваться как фактор-граф с группами латентных переменных
bull В настоящее время стал основной технологией в распознавании речи (speech recognition) и машинном зрении (computer vision) начал применяться в обработке текстов (natural language processing)
bull Основная идея ndash применение нелинейного отображения входного набора в более высокоразмерное пространство где многие неразделимые композиции становятся разделимыми а затем объединение композиций по семантической близости
Подход разреженного кодирования
Обобщенная архитектура
bull DL сеть может быть собрана каскадированием и использованием обучения с учителем
Здесь используется forward propagation для обучения
Для настройки коэффициентов используется метод fprof для каждого
Требуется знание градиента энергии
Элементы (kl) матрицы Якобиана
Требуется знание градиента энергии 120597119864120597119882119894 = 120597119864120597119883119894120597119865119894(119883119894minus1119882119894)120597119882119894
ሾ1times 119873119908ሿ= ሾ1times 119873119909ሿlowast[119873119909 times 119873119908] Элементы (kl) матрицы Якобиана
Сводится к рекуррентному соотношению для вычисления градиента 120597119864120597119883119894minus1 = 120597119864120597119883119894120597119865119894(119883119894minus1119882119894)120597119883119894minus1
В итоге
Для вычисления градиента может использоваться метод back propagation
В действительности работают любые архитектуры построения функции Нужно конструировать связи и функции блоков
Язык Torch 7 ndash современный инструмент моделирования и имплементации
Machine Learning with Torch7 (httpcodecogbitscomwikidokuphpid=start)
bull These tutorials were originally designed for the IPAM Summer School on Deep Learning more info herebull This wiki provides multiple tutorials with the overall objective of teaching you how to do machine learning
with Torch7bull Torch7 provides a Matlab-like environment for state-of-the-art machine learning algorithms It is easy to use
and provides a very efficient implementation thanks to an easy and fast scripting language (LuaJIT) and an underlying C implementation
bull These tutorials should be readdone in orderbull Tutorial 1 Setup Basics Getting Startedbull Tutorial 2 Supervised Learningbull Tutorial 3 Unsupervised Learningbull Tutorial 4 Graphical Modelsbull Tutorial 5 Creating New Modulesbull Tutorial 6 Using CUDAbull To follow these tutorials and do the exercises you will need to download the associated code which is hosted
on GitHub on this page In this repository each directory corresponds to a tutorial herebull starttxt middot Last modified 20140204 2246 by clement
Torch 7 является расширением Lua
What is LuaLua is a powerful fast lightweight embeddable scripting languageLua combines simple procedural syntax with powerful data description constructs based on associative arrays and extensible semantics Lua is dynamically typed runs by interpreting bytecode for a register-based virtual machine and has automatic memory management with incremental garbage collection making it ideal for configuration scripting and rapid prototyping
Why choose LuaLua is a proven robust languageLua has been used in many industrial applications (eg Adobes Photoshop Lightroom) with an emphasis on embedded systems (eg the Ginga middleware for digital TV in Brazil) and games (eg World of Warcraft and Angry Birds) Lua is currently the leading scripting language in games Lua has a solid reference manual and there are several books about it Several versions of Lua have been released and used in real applications since its creation in 1993 Lua featured in HOPL III the Third ACM SIGPLAN History of Programming Languages Conference in June 2007 Lua won the Front Line Award 2011 from the Game Developers Magazine
Свертка и архитектура 4-х уровневой сверточной сети
Функциональная структура
Примеры успешного применения сверточных сетей
Диагностика эпилепсии по ЭЭГ
Реализация сверточной сетью
Одна из самых больших сверточных сетейbull Krizhevsky Sutskever Hinton 2012bull 650 000 нейронов 832 000 000 синапсов 60 000000 пареметровbull Использовался backprop на GPUbull Обучающая выборка на материалах 20 летbull Купил Google в январе 2013bull В мае 2013 развернул как сервис Photo Tagging Google+
Пример тэгирования
Пример поиска похожих по изображению
Пример поиска в коллекции изображений по текстовому запросу
Пример laquoоблачногоraquo классификатора изображений
Самообучающиеся нейронные сети на основе минимизации функции энергииbull Применима к сетям с обратными связямиbull Конструирование функции энергии должно обеспечивать
laquoконтрастностьraquo разделения
bull Энергетическая функция может Неформально рассматриваться как отрицательный логарифм плотности вероятности
Y 2=(Y1)2
RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцмана
bull Из DBM cтроится Deep Belief Network (DBN)
bull w mdash вес между нейронами
bull b mdash смещение нейрона
bull s mdash состояние нейрона
Алгоритм обучения Contrastive Divergence (CD)bull w_ij mdash веc между i-ым нейроном Вероятность пар может быть представлена как
bull a_i mdash смещение видимого нейрона
bull b_j mdash смещение скрытого нейрона
bull v_i mdash состояние видимого нейрона
bull h_j mdash состояние скрытого нейрона Полная вероятность состояния видимых нейронов
Основные уравнения адаптации
Алгоритм Хинтона - Contrastive Divergence (CD-k)
1 состояние видимых нейронов приравнивается к входному образу2 выводятся вероятности состояний скрытого слоя3 каждому нейрону скрытого слоя ставится в соответствие состояние laquo1raquo с вероятностью равной его текущему состоянию4 выводятся вероятности видимого слоя на основании скрытого5 если текущая итерация меньше k то возврат к шагу 26 выводятся вероятности состояний скрытого слоя
darch Package for deep architectures and Restricted-Bolzmann-MachinesThe darch package is build on the basis of the code from G E Hinton and R R Salakhutdinov (available under Matlab Code for deep belief nets last visit 01082013) This package is for generating neural networks with many layers (deep architectures) and train them with the method introduced by the publications A fast learning algorithm for deep belief nets (G E Hinton S Osindero Y W Teh) and Reducing the dimensionality of data with neural networks (G E Hinton R R Salakhutdinov) This method includes a pre training with the contrastive divergence method publishing by GE Hinton (2002) and a fine tuning with common known training algorithms like backpropagation or conjugate gradient
bull Version 091bull Imports futilelogger ff methodsbull Published 2014-03-16bull Author Martin Dreesbull Maintainer Martin Drees ltmdrees at studfh-dortmunddegtbull License GPL-2bull URL httpgithubcommaddin79darchbull NeedsCompilation nobull Materials READMEbull CRAN checks darch results
Связь плотности вероятности и энергии
Используется распределение Гиббса
Задача обучения с точки минимизации энергии сети
bull Сконструировать функцию энергии с малыми значениями на обучающей выборке и с большими значениями всюду вне этого множества
bull Первое несложно а второе представляет задачу процесса обучения
Интуитивные соображения
Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decomposition LISTA ndashметоды использующие разреженные коды
Латентная переменная Z =argmin_z Distance[Decoder(Z)Y]+FactorB(Z)MAPminimaize sum of factors
Автоэнкодер (auto encoder) Автоэнкодер представляет собой алгоритм обучения без учителя который использует нейронную сеть и метод обратного распространения ошибки для того чтобы добиться того что входной вектор признаков вызывал отклик сети равный входному вектору те y = x Автоэнкодер пытается построить функцию h(x) = x
Архитекттура ICA моделей
Итеративные алгоритмы с оптимальным разреженным кодированием ISTAFISTA
Самоорганизация данных методами Deep Learning
>
Знакомство с пакетом deepnet
Назначение
Составdbndnntrain - обучение сети с архитектурой DBN (deep belief network)loadmnist - формирование данных из файлов MNISTnnpredict - предсказание новых выборок на обученной нейронной сетиnntest ndash тестирование обученной нейронной сети с возвращением значения ошибкиnntrain ndash обучение одностлойной или многослойной нейронной сети методом backproprbmdown ndash генерирование видимого вектора для скрытых состояний сети RBMrbmtrain ndash обучение сети RBMrbmup ndash извлечение скрытых состояний RBM по известным видимым состояниямsaednntrain ndash обучение нейронной сети с архитектурой stacked autoencoder
Прогнозирование (классификация) нейронной сетью с архитектурой stacked auto encoder
Argumentsbull x matrix of x values for examplesbull y vector or matrix of target values for examplesbull hidden vector for number of units of hidden layersDefault is c(10)bull activationfun activation function of hidden unitCan be sigmlinear or tanhDefault isbull sigm for logistic functionbull learningrate learning rate for gradient descent Default is 08bull momentum momentum for gradient descent Default is 05 bull learningrate_scalebull learning rate will be mutiplied by this scale after every iteration Default is 1 bull numepochs number of iteration for samples Default is 3bull batchsize size of mini-batch Default is 100bull output function of output unit can be sigmlinear or softmax Default is sigmbull sae_output function of autoencoder output unit can be sigmlinear or softmax Defaultbull is linearbull hidden_dropout drop out fraction for hidden layer Default is 0bull visible_dropoutbull drop out fraction for input layer Default is 0
Что такое MNISTbull Смешанный набор данных Национального института стандартов и
технологий (mixed National Institute of Standards and Technology MNIST) был создан исследователями IR в качестве эталона для сравнения различных алгоритмов IR
bull Набор данных состоит всего из 70 000 изображений 60 000 обучающих (используемых для создания модели IR) и 10 000 тестовых (применяемых для оценки точности модели) Каждое изображение MNIST mdash это оцифрованная картинка одной цифры написанной от руки Каждое изображение имеет размер 28 times 28 пикселей Каждое значение пикселя лежит в диапазоне от 0 (представляет белый цвет) до 255 (представляет черный цвет) Промежуточные значения отражают оттенки серого
httpyannlecuncomexdbmnistобучающие и тестовые данные хранятся в двух файлах а не в одном Один файл содержит значения пикселей для изображений а другой mdash метки изображений (0ndash9) Каждый из четырех файлов также содержит заголовочную информацию и все они хранятся в двоичном формате сжатом в формате gziptrain-images-idx3-ubytegz training set images (9912422 bytes)
train-labels-idx1-ubytegz training set labels (28881 bytes)
t10k-images-idx3-ubytegz test set images (1648877 bytes)
t10k-labels-idx1-ubytegz test set labels (4542 bytes)
bull Каждая строка файла представляет собой имидж размера 28 times 28 вектором длины 784 каждый признак ndash значение пиксела в черно-белой шале Первый столбец содержит метку цифры 0ndash9 следующие 2828 столбцов представляют целый имидж и так далее Пример первой строки
Визуализация
bull plotmnist()bull mnistbull paramsbull train$n number of train samplesbull train$x pix of every train sample imagebull train$y label of every train sample imagebull train$yy one-of-c vector of label of train sample imagebull test$n number of test samplesbull test$x pix of every test sample imagebull test$y label of every test sample imagebull test$yy one-of-c vector of label of test sample image
plotmnist()
Распознавание рукописных цифр в deepnet
another way to download the MNIST datasetmnist downloadmnist(range=c(01)global=FALSE)look at MNIST datamnist$train$xmnist$train$ymnist$test$xmnist$test$ytrain of the sae neural networkdnnlt-saednntrain(mnist$train$xmnist$train$yhidden=c(55))test of the sae neural networknntest(dnnmnist$test$xmnist$test$yt=05)
End of slides part 2 (Part 3 - NLP remaining)
Vladimirvkrylovgmailcom
Основы предиктивной аналитики Часть вторая
Применение методов Machine Learning к решению задач аналитики
Дмитрий Ветров кандидат физико-математических наук ру
Методы обучающихся машин для аналитики которые мы рассмотрим
Сначала нужно загрузить несколько пакетов (packages) для поддер
Данные для анализа
Скрипт для генерации
Данные которые мы будем использовать для демо состоят из смес
Так выглядят визуализированные данные сгенерированные скриптом
Разделение данных на обучающие и проверочные является важным эт
K-means алгоритм на пальцах
Обучающаяся машина без учителя Алгоритм K-means
Slide 13
Slide 14
Здесь мы используем заранее известный факт что необходимо кла
Еще одна иллюстрация работы алгоритма K-means
Обучающаяся машина без учителя Алгоритм KNN (Nearest Neighbor)
Как работает алгоритм KNN
knn(train test cl k = 1 l = 0 prob = FALSE useall = TRUE
Slide 20
Результаты кластеризации и зависимость ошибки от числа кластеро
Recursive PartitioningRegression Tree
Метод RP реализует обучение машины строить дерево решений по об
Recursive PartitioningRegression Tree (2)
rpart(formula data weights subset naaction = narpart met
Slide 26
Recursive PartitioningRegression Tree example
Анализ по главным компонентам (Principal Component Analysis PC
Итеративные алгоритмы с оптимальным разреженным кодированием IS
Самоорганизация данных методами Deep Learning
Знакомство с пакетом deepnet
Прогнозирование (классификация) нейронной сетью с архитектурой
Arguments
Архитектура сети SAE
Архитектура с 5Х4 hidden 3 outs
Example
Анализ обучающего набора данных
Параметры SAE сети
Коэффициенты связей
Предсказание обученной сетью
Сравнение обучающей и тестовой выборки
plot3d(xy)
Работаем с пакетом MNIST
httpyannlecuncomexdbmnist
Подготовка к обработке
Slide 118
Визуализация
plotmnist()
Распознавание рукописных цифр в deepnet
End of slides part 2 (Part 3 - NLP remaining)
Скрипт для генерации
rmulnorm lt- function (n mu sigma)
M lt- t(chol(sigma))d lt- nrow(sigma)Z lt- matrix(rnorm(dn)dn)t(M Z + mu)
cm lt- function (actual predicted) Produce a confusion matrix
tlt-table(predictedactual) there is a potential bug in here if columns are tied for orderingt[apply(t2function(c) order(-c)[1])]
Total number of observationsN lt- 1000 3 Number of training observationsNtrain lt- N 07
Данные которые мы будем использовать для демо состоят из смеси трех двумерных нормальных распределений Целью является построить такую систему классификации которая сможет определять какому из распределений принадлежат поступающие данные Выведем данные для наглядности
Так выглядят визуализированные данные сгенерированные скриптом
Разделение данных на обучающие и проверочные является важным этапом ML
Просто используем случайный выбор из имеющегося набораdata lt- data[sample(1N)]
train lt- data[1Ntrain]
test lt- data[(Ntrain+1)N]
K-means алгоритм на пальцах
>
Обучающаяся машина без учителя Алгоритм K-meansАлгоритм K-meansЭтап 1 Первоначальное распределение объектов по кластерамbull Выбор случайным образом k точек данных из D как начальное множество представителей
кластера Cbull Распределение объектов по кластерам в соответствие с формулой
Этап 2 Перераспределение срединных элементовbull Вычисление центра для каждого кластераbull Перераспределение объектов по кластерамbull Алгоритм завершается когда на какой-то итерации не происходит изменения центра масс
кластеров Это происходит за конечное число итераций так как количество возможных разбиений конечного множества конечно а на каждом шаге суммарное квадратичное отклонение Cost не увеличивается поэтому зацикливание невозможно
x numeric matrix of data or an object that can be coerced to such a matrix (such as a numeric vector or a data frame with all numeric columns)
centers either the number of clusters say k or a set of initial (distinct) cluster centres If a number a random set of (distinct) rows in x is chosen as the initial centres
itermax the maximum number of iterations allowed
nstart if centers is a number how many random sets should be chosen
algorithm character may be abbreviated Note that Lloyd andForgy are alternative names for one algorithm
object an R object of class kmeans typically the result obof ob lt- kmeans()
method character may be abbreviated centers causesfitted to return cluster centers (one for each input point) and classes causes fitted to return a vector of class assignments
trace logical or integer number currently only used in the default method (Hartigan-Wong) if positive (or true) tracing information on the progress of the algorithm is produced Higher values may produce more tracing information
Обучающаяся машина без учителя Алгоритм KNN (Nearest Neighbor)Алгоритм KNN Основным принципом метода ближайших соседей является то что объект присваивается тому классу который является наиболее распространённым среди соседей данного элементаДля классификации каждого из объектов тестовой выборки
необходимо последовательно выполнить следующие операцииВычислить расстояние до каждого из объектов обучающей выборки
Отобрать k объектов обучающей выборки расстояние до которых минимально
Класс классифицируемого объекта mdash это класс наиболее часто встречающийся среди k ближайших соседей
Как работает алгоритм KNN
>
knn(train test cl k = 1 l = 0 prob = FALSE useall = TRUE)
train matrix or data frame of training set cases
test matrix or data frame of test set cases A vector will be interpreted as a row vector for a single case
cl factor of true classifications of training set
k number of neighbours considered
l minimum vote for definite decision otherwise doubt (More precisely less than k-l dissenting votes are allowed even if k is increased by ties)
prob If this is true the proportion of the votes for the winning class are returned as attribute prob
useall controls handling of ties If true all distances equal to the kth largest are included If false a random selection of distances equal to the kth is chosen to use exactly k neighbours
Here we demonstrate the bias-variance tradeoff as we increase k
err lt- matrix(nrow=N100 ncol=2)for (i in 1nrow(err))
k lt- i 4test$predicted_class lt- knn(train[12] test[12] train$class k=k)mlt-cm(test$class test$predicted_class)err[i] lt- c(k 1 - sum(diag(m)) sum(m))
plot (err)
Результаты кластеризации и зависимость ошибки от числа кластеров
actualpredicted A B C A 272 0 7 B 1 308 1 C 31 0 280
gt m
Recursive PartitioningRegression Treebull Основано на дереве решений представляющем граф бинарной
последовательной классификации по тест-вопросам в каждой вершине графа Листья дерева ассоциируются с результатами классификации
Метод RP реализует обучение машины строить дерево решений по обучающей выборке данных
bull laquoРасщеплениеraquo обучающих данныхМножество данных в каждом узле разделяется на два соответствующих ответам TRUE или FALSE Вопросы должны порождать бинарное разбиение множества Для числовых характеристик это обычно неравенства характеристика Xn меньше или равна значению Ym
bull Конструирование тест-вопросовПринцип putity measurement ndash очищающих измерений Каждая характеристика анализируется статистически для каждого разбиения и выбирается наилучшее по чистоте разделенияbull Критерий остановкиЧтобы избежать переобучения используется либо порог чистоты либо максимальное число узлов либо минимальное число наблюдений в узле
Recursive PartitioningRegression Tree
Пример расщепления обучающей выборки
rpart(formula data weights subset naaction = narpart method model = FALSE x = FALSE y = TRUE parms control cost )
formula a formula with a response but no interaction terms If this a a data frome that is taken as the model frame (see modelframe)
data an optional data frame in which to interpret the variables named in the formula
weights optional case weights
subset optional expression saying that only a subset of the rows of the data should be used in the fit
naaction the default action deletes all observations for which y is missing but keeps those in which one or more predictors are missing method one of anova poisson class or exp If method is missing then the routine tries to make an intelligent guess If y is a survival object then method = exp is assumed if y has 2 columns then method = poisson is assumed if y is a factor then method = class is assumed otherwise method = anova is assumed It is wisest to specify the method directly especially as more criteria may added to the function in future Alternatively method can be a list of functions named init split and eval Examples are given in the file lsquotestsusersplitsRrsquo in the sources and in the vignettes lsquoUser Written Split Functionsrsquo
model if logical keep a copy of the model frame in the result If the input value for model is a model frame (likely from an earlier call to the rpart function) then this frame is used rather than constructing new data
x keep a copy of the x matrix in the result
y keep a copy of the dependent variable in the result If missing and model is supplied this defaults to FALSE
parms optional parameters for the splitting function Anova splitting has no parameters Poisson splitting has a single parameter the coefficient of variation of the prior distribution on the rates The default value is 1 Exponential splitting has the same parameter as Poisson For classification splitting the list can contain any of the vector of prior probabilities (component prior) the loss matrix (component loss) or the splitting index (component split) The priors must be positive and sum to 1 The loss matrix must have zeros on the diagonal and positive off-diagonal elements The splitting index can be gini or information The default priors are proportional to the data counts the losses default to 1 and the split defaults to gini
control a list of options that control details of the rpart algorithm See rpartcontrol
cost a vector of non-negative costs one for each variable in the model Defaults to one for all variables These are scalings to be applied when considering splits so the improvement on splitting on a variable is divided by its cost in deciding which split to choose arguments to rpartcontrol may also be specified in the call to rpart They are checked against the list of valid arguments
Recursive PartitioningRegression Tree example(r lt- rpart(class ~ x + y data = train))plot(r)text(r)
Here we look at the confusion matrix and overall error rate from applying the tree rules to the training datapredicted lt- asnumeric(apply(predict(r) 1 function(r) order(-r)[1]))(m lt- cm (train$class predicted))1 - sum(diag(m)) sum(m)
And by comparison against the test datapredicted lt- asnumeric(apply(predict(r test[12]) 1 function(r) order(-r)[1]))(m lt- cm (test$class predicted))1 - sum(diag(m)) sum(m)
Анализ по главным компонентам (Principal Component Analysis PCA)Известно четыре базовых версии методаbull аппроксимировать данные линейными многообразиями меньшей
размерностиbull найти подпространства меньшей размерности в ортогональной проекции
на которые разброс данных (то есть среднеквадратичное отклонение от среднего значения) максимален
bull найти подпространства меньшей размерности в ортогональной проекции на которые среднеквадратичное расстояние между точками максимально
bull для данной многомерной случайной величины построить такое ортогональное преобразование координат в результате которого корреляции между отдельными координатами обратятся в нуль
В основе задача наилучшей аппроксимации конечного множества точек прямыми и плоскостями (Пирсон 1901) Дано конечное множество векторов для каждого k=01hellipn-1 среди всех k-мерных линейных многообразий в Rn найти такое что сумма квадратов уклонений минимальна
bull Графическая иллюстрация метода главных компонент в 3D
Алгоритм
bull Централизация данных
bull Находим первую главную компоненту
bull Вычитаем проекцию на нее
bull Находим вторую главную компоненту
bull Вычитаем проекцию на (k-1) главную компоненту
bull Находим k-ую главную компоненту
bull Всегда выполняется условие ортогональности
princomp(formula data = NULL subset naaction )formula a formula with no response variable referring only to numeric variables
data an optional data frame (or similar see modelframe) containing the variables in the formula formula By default the variables are taken from environment(formula)
subset an optional vector used to select rows (observations) of the data matrix x
naaction a function which indicates what should happen when the data contain NAs The default is set by the naaction setting of options and is nafail if that is unset The lsquofactory-freshrsquo default is naomit
x a numeric matrix or data frame which provides the data for the principal components analysis
cor a logical value indicating whether the calculation should use the correlation matrix or the covariance matrix (The correlation matrix can only be used if there are no constant variables)
scores a logical value indicating whether the score on each principal component should be calculated
covmat a covariance matrix or a covariance list as returned by covwt (and covmve or covmcd from package MASS) If supplied this is used rather than the covariance matrix of x
arguments passed to or from other methods If x is a formula one might specify cor or scores
object Object of class inheriting from princomp
newdata An optional data frame or matrix in which to look for variables with which to predict If omitted the scores are used If the original fit used a formula or a data frame or a matrix with column names newdata must contain columns with the same names Otherwise it must contain the same number of columns to be used in the same order
Principal Component Analysis (PCA)plt-princomp(train[12])train_pca lt- dataframe(p$scores)train_pca$class lt- train$class
Compare the alignment of the clusters to the axis in the feature space versus the transformed space
r2 lt- rpart(class ~ Comp1 + Comp2 data = train_pca)
Линейный дискриминантный анализ (Linear Discriminant Analysis - LDA)bull Для каждого образца объекта или события с известным классом y
рассматривается набор наблюдений x (называемых ещё признаками переменными или измерениями) Набор таких образцов называется обучающей выборкой (или набором обучения обучением) Задачи классификации состоит в том чтобы построить хороший прогноз класса y для всякого так же распределённого объекта (не обязательно содержащегося в обучающей выборке) имея только наблюдения x Основная идея состоит в сравнении распределений для каждого из классов Расстоянием (по Фишеру) между распределениями принято считать отношение межклассовой дисперсии к внутриклассовой
bull Оптимальное байесовское решение - относить точки ко второму классу если отношение правдоподобия ниже некоторого порогового значения T
bull Предполагая что выполнена нормировка
bull Решение записывается в виде неравенства для скалярного произведения
bull Здесь laquoизмерительныйraquo вектор равен
bull с- дискриминантный порог
lda(x grouping prior = proportions tol = 10e-4 method CV = FALSE nu )
formula A formula of the form groups ~ x1 + x2 + That is the response is the grouping factor and the right hand side specifies the (non-factor) discriminators
data Data frame from which variables specified in formula are preferentially to be taken
x (required if no formula is given as the principal argument) a matrix or data frame or Matrix containing the explanatory variables
grouping (required if no formula principal argument is given) a factor specifying the class for each observation
prior the prior probabilities of class membership If unspecified the class proportions for the training set are used If present the probabilities should be specified in the order of the factor levels
tol A tolerance to decide if a matrix is singular it will reject variables and linear combinations of unit-variance variables whose variance is less than tol^2
subset An index vector specifying the cases to be used in the training sample (NOTE If given this argument must be named)
naaction A function to specify the action to be taken if NAs are found The default action is for the procedure to fail An alternative is naomit which leads to rejection of cases with missing values on any required variable (NOTE If given this argument must be named)
method moment for standard estimators of the mean and variance mle for MLEs mve to use covmve or t for robust estimates based on a t distribution
CV If true returns results (classes and posterior probabilities) for leave-one-out cross-validation Note that if the prior is estimated the proportions in the whole dataset are used
nu degrees of freedom for method = t
arguments passed to or from other methods
prior the prior probabilities usedmeans the group meansscaling a matrix which transforms observations to
discriminant functions normalized so that within groups covariance matrix is spherical
svd the singular values which give the ratio of the between- and within-group standard deviations on the linear discriminant variables Their squares are the canonical F-statistics
N The number of observations usedcall The (matched) function call
An object of class lda containing the following components
Метод опорных векторов (Support Vector Machines - SVM)Относится к ML с учителем и использует линейные разделяющие поверхности
Идея алгоритма
bull По обучающей выборке
bull Строится классифицирующая функция
bull Используя гиперплоскость
bull Поиск коэффициентов сводится к максимизации
расстояний от опорных векторов или минимизации
Иллюстрация на простейшем примере
>
Производится вложение обучающей выборки в пространство более высокой размерности Х с помощью нелинейной функции так чтобы обеспечит линейную разделимость в Х
Разделяющая функция тогда имеет вид
Функция называется ядром
Полиномиальное ядро
Радиальная базисная функция
Сигмоид
Линейная неразделимость и использование ядер
Иллюстрация использования ядра для отображения 2D -gt 3D
>
svm((formula data = NULL subset naaction =naomit scale = TRUE))
formulaa symbolic description of the model to be fitdataan optional data frame containing the variables in the model By default the variables are taken from the environment which lsquosvmrsquo is called fromxa data matrix a vector or a sparse matrix (object of class Matrix provided by the Matrix package or of class matrixcsr provided by the SparseM package or of class simple_triplet_matrix provided by the slam package)ya response vector with one label for each rowcomponent of x Can be either a factor (for classification tasks) or a numeric vector (for regression)scaleA logical vector indicating the variables to be scaled If scale is of length 1 the value is recycled as many times as needed Per default data are scaled internally (both x and y variables) to zero mean and unit variance The center and scale values are returned and used for later predictionstypesvm can be used as a classification machine as a regression machine or for novelty detection Depending of whether y is a factor or not the default setting for type is C-classification or eps-regression respectively but may be overwritten by setting an explicit valueValid options areC-classificationnu-classificationone-classification (for novelty detection)eps-regressionnu-regression
Support Vector Machines
s lt- svm( I(factor(class)) ~ x + y data = train cost = 100 gama = 1)
Package lsquodeepnetrsquo February 19 2015 Type Package Title deep learning toolkit in R Version 02 Date 2014-03-20 Author Xiao Rong Maintainer Xiao Rong Description Implement some deep learning architectures and neural network algorithms including BPRBMDBNDeep autoencoder and so on License GPL NeedsCompilation no Repository CRAN DatePublication 2014-03-20 100343
laquoВ 1997 году Deep Blue обыграл в шахматы КаспароваВ 2011 Watson обставил чемпионов JeopardyСможет ли ваш алгоритм в 2013 году отличить Бобика от ПушистикаraquoKaggle Competitions Details
Сегодня уже можно ответить laquoдаraquo mdash десятка лидеров справилась с заданием на 988
Распознавание основано на feature detection и последующем различении комбинаций
Заранее неизвестно какие части картинки могут использоваться как хорошие features В их роли может выступать все что угодно mdash фрагменты изображения форма размер или цвет Feature может не присутствовать на картинке сама а выражаться в параметре полученным каким-то образом из исходных данных
Распознавание рукописных цифр
Еще пример посложнее
Использование нейронной сети с обучениемОбучение такой нейронной сети производится обычно методом обратного распространения ошибки таким образом чтобы минимизировать среднеквадратическую ошибку отклика сети на обучающей выборке Таким образом обучающая выборка содержит пары векторов признаков (входные данные) и эталонных векторов (маркированные данные) (x y)
Сверхвысокая размерность при работе с первичным представлением пикселями
Пиксельное кодирование
Принцип иерархии понятий ndash основа deep learning
bull Все вещи состоят из других маленьких и более элементарных вещей
bull Как извлекать features Гипотеза малоразмерных многообразий
Разреженное (sparse) кодирование
первый уровень иерархии состоит из элементов словаря этого кода которые представляют собой штрихи и границы
Словарь для лиц
Выделение объектов заданного класса
Основные архитектуры Deep Learningbull Deep neural networks (DNN)bull Deep belief networks (DBN)bull Convolutional neural networks (CNN)bull Deep Boltzmann Machines (DBM)bull Stacked (Denoising) Auto-Encodersbull Deep Stacking Networksbull Tensor Deep Stacking Networks (T-DSN)bull Spike-and-Slab RBMs (ssRBMs)bull Compound Hierarchical-Deep Modelsbull Deep Coding Networks (DPCN)bull Deep Kernel Machinesbull Deep Q-Networks (2015 г)
Задача классификации распознавания и подобные являются задачей конструирования функции на множестве входных наборов и со значениями в множестве требуемого вида выходных
bull Норбертом Винером было показано что любая функция может быть сколь угодно точно композицией двух (он использовал функции полином Лагранжа и функцию Лагерра)
bull Соответствует двухслойной нейросетиbull Архитектуры Deep Learning соответствуют представлению
bull Обеспечивают эффективную параметризацию при решении конкретных задач Более сложные функции создаются из большего числа но более эффективно настраиваемых laquoкирпичиковraquo Пример ndash синтез булевых функций Дерево вентилей эффективнее двухслойной схемы
Фактор - графыВсе методы которые расмотрели ndash не DL Даже деревья классификации Все операции в одном входном словаре
DL можно определить по фактор-графу
Например
bull Еще одна сторона DL - нередко использует невыпуклые функции потерьbull Обучение на основе выпуклых функций не зависит от порядка
предъявления данных для обучения Все определяет асимптотика всего train - набора В алгоритмах DL порядок данных в обучающей выборке может иметь значение
bull Многие решения в DL не доказаны математически и являются успешными эвристиками
bull Большой простор для прикладной математики Может рассматриваться как фактор-граф с группами латентных переменных
bull В настоящее время стал основной технологией в распознавании речи (speech recognition) и машинном зрении (computer vision) начал применяться в обработке текстов (natural language processing)
bull Основная идея ndash применение нелинейного отображения входного набора в более высокоразмерное пространство где многие неразделимые композиции становятся разделимыми а затем объединение композиций по семантической близости
Подход разреженного кодирования
Обобщенная архитектура
bull DL сеть может быть собрана каскадированием и использованием обучения с учителем
Здесь используется forward propagation для обучения
Для настройки коэффициентов используется метод fprof для каждого
Требуется знание градиента энергии
Элементы (kl) матрицы Якобиана
Требуется знание градиента энергии 120597119864120597119882119894 = 120597119864120597119883119894120597119865119894(119883119894minus1119882119894)120597119882119894
ሾ1times 119873119908ሿ= ሾ1times 119873119909ሿlowast[119873119909 times 119873119908] Элементы (kl) матрицы Якобиана
Сводится к рекуррентному соотношению для вычисления градиента 120597119864120597119883119894minus1 = 120597119864120597119883119894120597119865119894(119883119894minus1119882119894)120597119883119894minus1
В итоге
Для вычисления градиента может использоваться метод back propagation
В действительности работают любые архитектуры построения функции Нужно конструировать связи и функции блоков
Язык Torch 7 ndash современный инструмент моделирования и имплементации
Machine Learning with Torch7 (httpcodecogbitscomwikidokuphpid=start)
bull These tutorials were originally designed for the IPAM Summer School on Deep Learning more info herebull This wiki provides multiple tutorials with the overall objective of teaching you how to do machine learning
with Torch7bull Torch7 provides a Matlab-like environment for state-of-the-art machine learning algorithms It is easy to use
and provides a very efficient implementation thanks to an easy and fast scripting language (LuaJIT) and an underlying C implementation
bull These tutorials should be readdone in orderbull Tutorial 1 Setup Basics Getting Startedbull Tutorial 2 Supervised Learningbull Tutorial 3 Unsupervised Learningbull Tutorial 4 Graphical Modelsbull Tutorial 5 Creating New Modulesbull Tutorial 6 Using CUDAbull To follow these tutorials and do the exercises you will need to download the associated code which is hosted
on GitHub on this page In this repository each directory corresponds to a tutorial herebull starttxt middot Last modified 20140204 2246 by clement
Torch 7 является расширением Lua
What is LuaLua is a powerful fast lightweight embeddable scripting languageLua combines simple procedural syntax with powerful data description constructs based on associative arrays and extensible semantics Lua is dynamically typed runs by interpreting bytecode for a register-based virtual machine and has automatic memory management with incremental garbage collection making it ideal for configuration scripting and rapid prototyping
Why choose LuaLua is a proven robust languageLua has been used in many industrial applications (eg Adobes Photoshop Lightroom) with an emphasis on embedded systems (eg the Ginga middleware for digital TV in Brazil) and games (eg World of Warcraft and Angry Birds) Lua is currently the leading scripting language in games Lua has a solid reference manual and there are several books about it Several versions of Lua have been released and used in real applications since its creation in 1993 Lua featured in HOPL III the Third ACM SIGPLAN History of Programming Languages Conference in June 2007 Lua won the Front Line Award 2011 from the Game Developers Magazine
Свертка и архитектура 4-х уровневой сверточной сети
Функциональная структура
Примеры успешного применения сверточных сетей
Диагностика эпилепсии по ЭЭГ
Реализация сверточной сетью
Одна из самых больших сверточных сетейbull Krizhevsky Sutskever Hinton 2012bull 650 000 нейронов 832 000 000 синапсов 60 000000 пареметровbull Использовался backprop на GPUbull Обучающая выборка на материалах 20 летbull Купил Google в январе 2013bull В мае 2013 развернул как сервис Photo Tagging Google+
Пример тэгирования
Пример поиска похожих по изображению
Пример поиска в коллекции изображений по текстовому запросу
Пример laquoоблачногоraquo классификатора изображений
Самообучающиеся нейронные сети на основе минимизации функции энергииbull Применима к сетям с обратными связямиbull Конструирование функции энергии должно обеспечивать
laquoконтрастностьraquo разделения
bull Энергетическая функция может Неформально рассматриваться как отрицательный логарифм плотности вероятности
Y 2=(Y1)2
RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцмана
bull Из DBM cтроится Deep Belief Network (DBN)
bull w mdash вес между нейронами
bull b mdash смещение нейрона
bull s mdash состояние нейрона
Алгоритм обучения Contrastive Divergence (CD)bull w_ij mdash веc между i-ым нейроном Вероятность пар может быть представлена как
bull a_i mdash смещение видимого нейрона
bull b_j mdash смещение скрытого нейрона
bull v_i mdash состояние видимого нейрона
bull h_j mdash состояние скрытого нейрона Полная вероятность состояния видимых нейронов
Основные уравнения адаптации
Алгоритм Хинтона - Contrastive Divergence (CD-k)
1 состояние видимых нейронов приравнивается к входному образу2 выводятся вероятности состояний скрытого слоя3 каждому нейрону скрытого слоя ставится в соответствие состояние laquo1raquo с вероятностью равной его текущему состоянию4 выводятся вероятности видимого слоя на основании скрытого5 если текущая итерация меньше k то возврат к шагу 26 выводятся вероятности состояний скрытого слоя
darch Package for deep architectures and Restricted-Bolzmann-MachinesThe darch package is build on the basis of the code from G E Hinton and R R Salakhutdinov (available under Matlab Code for deep belief nets last visit 01082013) This package is for generating neural networks with many layers (deep architectures) and train them with the method introduced by the publications A fast learning algorithm for deep belief nets (G E Hinton S Osindero Y W Teh) and Reducing the dimensionality of data with neural networks (G E Hinton R R Salakhutdinov) This method includes a pre training with the contrastive divergence method publishing by GE Hinton (2002) and a fine tuning with common known training algorithms like backpropagation or conjugate gradient
bull Version 091bull Imports futilelogger ff methodsbull Published 2014-03-16bull Author Martin Dreesbull Maintainer Martin Drees ltmdrees at studfh-dortmunddegtbull License GPL-2bull URL httpgithubcommaddin79darchbull NeedsCompilation nobull Materials READMEbull CRAN checks darch results
Связь плотности вероятности и энергии
Используется распределение Гиббса
Задача обучения с точки минимизации энергии сети
bull Сконструировать функцию энергии с малыми значениями на обучающей выборке и с большими значениями всюду вне этого множества
bull Первое несложно а второе представляет задачу процесса обучения
Интуитивные соображения
Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decomposition LISTA ndashметоды использующие разреженные коды
Латентная переменная Z =argmin_z Distance[Decoder(Z)Y]+FactorB(Z)MAPminimaize sum of factors
Автоэнкодер (auto encoder) Автоэнкодер представляет собой алгоритм обучения без учителя который использует нейронную сеть и метод обратного распространения ошибки для того чтобы добиться того что входной вектор признаков вызывал отклик сети равный входному вектору те y = x Автоэнкодер пытается построить функцию h(x) = x
Архитекттура ICA моделей
Итеративные алгоритмы с оптимальным разреженным кодированием ISTAFISTA
Самоорганизация данных методами Deep Learning
>
Знакомство с пакетом deepnet
Назначение
Составdbndnntrain - обучение сети с архитектурой DBN (deep belief network)loadmnist - формирование данных из файлов MNISTnnpredict - предсказание новых выборок на обученной нейронной сетиnntest ndash тестирование обученной нейронной сети с возвращением значения ошибкиnntrain ndash обучение одностлойной или многослойной нейронной сети методом backproprbmdown ndash генерирование видимого вектора для скрытых состояний сети RBMrbmtrain ndash обучение сети RBMrbmup ndash извлечение скрытых состояний RBM по известным видимым состояниямsaednntrain ndash обучение нейронной сети с архитектурой stacked autoencoder
Прогнозирование (классификация) нейронной сетью с архитектурой stacked auto encoder
Argumentsbull x matrix of x values for examplesbull y vector or matrix of target values for examplesbull hidden vector for number of units of hidden layersDefault is c(10)bull activationfun activation function of hidden unitCan be sigmlinear or tanhDefault isbull sigm for logistic functionbull learningrate learning rate for gradient descent Default is 08bull momentum momentum for gradient descent Default is 05 bull learningrate_scalebull learning rate will be mutiplied by this scale after every iteration Default is 1 bull numepochs number of iteration for samples Default is 3bull batchsize size of mini-batch Default is 100bull output function of output unit can be sigmlinear or softmax Default is sigmbull sae_output function of autoencoder output unit can be sigmlinear or softmax Defaultbull is linearbull hidden_dropout drop out fraction for hidden layer Default is 0bull visible_dropoutbull drop out fraction for input layer Default is 0
Что такое MNISTbull Смешанный набор данных Национального института стандартов и
технологий (mixed National Institute of Standards and Technology MNIST) был создан исследователями IR в качестве эталона для сравнения различных алгоритмов IR
bull Набор данных состоит всего из 70 000 изображений 60 000 обучающих (используемых для создания модели IR) и 10 000 тестовых (применяемых для оценки точности модели) Каждое изображение MNIST mdash это оцифрованная картинка одной цифры написанной от руки Каждое изображение имеет размер 28 times 28 пикселей Каждое значение пикселя лежит в диапазоне от 0 (представляет белый цвет) до 255 (представляет черный цвет) Промежуточные значения отражают оттенки серого
httpyannlecuncomexdbmnistобучающие и тестовые данные хранятся в двух файлах а не в одном Один файл содержит значения пикселей для изображений а другой mdash метки изображений (0ndash9) Каждый из четырех файлов также содержит заголовочную информацию и все они хранятся в двоичном формате сжатом в формате gziptrain-images-idx3-ubytegz training set images (9912422 bytes)
train-labels-idx1-ubytegz training set labels (28881 bytes)
t10k-images-idx3-ubytegz test set images (1648877 bytes)
t10k-labels-idx1-ubytegz test set labels (4542 bytes)
bull Каждая строка файла представляет собой имидж размера 28 times 28 вектором длины 784 каждый признак ndash значение пиксела в черно-белой шале Первый столбец содержит метку цифры 0ndash9 следующие 2828 столбцов представляют целый имидж и так далее Пример первой строки
Визуализация
bull plotmnist()bull mnistbull paramsbull train$n number of train samplesbull train$x pix of every train sample imagebull train$y label of every train sample imagebull train$yy one-of-c vector of label of train sample imagebull test$n number of test samplesbull test$x pix of every test sample imagebull test$y label of every test sample imagebull test$yy one-of-c vector of label of test sample image
plotmnist()
Распознавание рукописных цифр в deepnet
another way to download the MNIST datasetmnist downloadmnist(range=c(01)global=FALSE)look at MNIST datamnist$train$xmnist$train$ymnist$test$xmnist$test$ytrain of the sae neural networkdnnlt-saednntrain(mnist$train$xmnist$train$yhidden=c(55))test of the sae neural networknntest(dnnmnist$test$xmnist$test$yt=05)
End of slides part 2 (Part 3 - NLP remaining)
Vladimirvkrylovgmailcom
Основы предиктивной аналитики Часть вторая
Применение методов Machine Learning к решению задач аналитики
Дмитрий Ветров кандидат физико-математических наук ру
Методы обучающихся машин для аналитики которые мы рассмотрим
Сначала нужно загрузить несколько пакетов (packages) для поддер
Данные для анализа
Скрипт для генерации
Данные которые мы будем использовать для демо состоят из смес
Так выглядят визуализированные данные сгенерированные скриптом
Разделение данных на обучающие и проверочные является важным эт
K-means алгоритм на пальцах
Обучающаяся машина без учителя Алгоритм K-means
Slide 13
Slide 14
Здесь мы используем заранее известный факт что необходимо кла
Еще одна иллюстрация работы алгоритма K-means
Обучающаяся машина без учителя Алгоритм KNN (Nearest Neighbor)
Как работает алгоритм KNN
knn(train test cl k = 1 l = 0 prob = FALSE useall = TRUE
Slide 20
Результаты кластеризации и зависимость ошибки от числа кластеро
Recursive PartitioningRegression Tree
Метод RP реализует обучение машины строить дерево решений по об
Recursive PartitioningRegression Tree (2)
rpart(formula data weights subset naaction = narpart met
Slide 26
Recursive PartitioningRegression Tree example
Анализ по главным компонентам (Principal Component Analysis PC
Итеративные алгоритмы с оптимальным разреженным кодированием IS
Самоорганизация данных методами Deep Learning
Знакомство с пакетом deepnet
Прогнозирование (классификация) нейронной сетью с архитектурой
Arguments
Архитектура сети SAE
Архитектура с 5Х4 hidden 3 outs
Example
Анализ обучающего набора данных
Параметры SAE сети
Коэффициенты связей
Предсказание обученной сетью
Сравнение обучающей и тестовой выборки
plot3d(xy)
Работаем с пакетом MNIST
httpyannlecuncomexdbmnist
Подготовка к обработке
Slide 118
Визуализация
plotmnist()
Распознавание рукописных цифр в deepnet
End of slides part 2 (Part 3 - NLP remaining)
Данные которые мы будем использовать для демо состоят из смеси трех двумерных нормальных распределений Целью является построить такую систему классификации которая сможет определять какому из распределений принадлежат поступающие данные Выведем данные для наглядности
Так выглядят визуализированные данные сгенерированные скриптом
Разделение данных на обучающие и проверочные является важным этапом ML
Просто используем случайный выбор из имеющегося набораdata lt- data[sample(1N)]
train lt- data[1Ntrain]
test lt- data[(Ntrain+1)N]
K-means алгоритм на пальцах
>
Обучающаяся машина без учителя Алгоритм K-meansАлгоритм K-meansЭтап 1 Первоначальное распределение объектов по кластерамbull Выбор случайным образом k точек данных из D как начальное множество представителей
кластера Cbull Распределение объектов по кластерам в соответствие с формулой
Этап 2 Перераспределение срединных элементовbull Вычисление центра для каждого кластераbull Перераспределение объектов по кластерамbull Алгоритм завершается когда на какой-то итерации не происходит изменения центра масс
кластеров Это происходит за конечное число итераций так как количество возможных разбиений конечного множества конечно а на каждом шаге суммарное квадратичное отклонение Cost не увеличивается поэтому зацикливание невозможно
x numeric matrix of data or an object that can be coerced to such a matrix (such as a numeric vector or a data frame with all numeric columns)
centers either the number of clusters say k or a set of initial (distinct) cluster centres If a number a random set of (distinct) rows in x is chosen as the initial centres
itermax the maximum number of iterations allowed
nstart if centers is a number how many random sets should be chosen
algorithm character may be abbreviated Note that Lloyd andForgy are alternative names for one algorithm
object an R object of class kmeans typically the result obof ob lt- kmeans()
method character may be abbreviated centers causesfitted to return cluster centers (one for each input point) and classes causes fitted to return a vector of class assignments
trace logical or integer number currently only used in the default method (Hartigan-Wong) if positive (or true) tracing information on the progress of the algorithm is produced Higher values may produce more tracing information
Обучающаяся машина без учителя Алгоритм KNN (Nearest Neighbor)Алгоритм KNN Основным принципом метода ближайших соседей является то что объект присваивается тому классу который является наиболее распространённым среди соседей данного элементаДля классификации каждого из объектов тестовой выборки
необходимо последовательно выполнить следующие операцииВычислить расстояние до каждого из объектов обучающей выборки
Отобрать k объектов обучающей выборки расстояние до которых минимально
Класс классифицируемого объекта mdash это класс наиболее часто встречающийся среди k ближайших соседей
Как работает алгоритм KNN
>
knn(train test cl k = 1 l = 0 prob = FALSE useall = TRUE)
train matrix or data frame of training set cases
test matrix or data frame of test set cases A vector will be interpreted as a row vector for a single case
cl factor of true classifications of training set
k number of neighbours considered
l minimum vote for definite decision otherwise doubt (More precisely less than k-l dissenting votes are allowed even if k is increased by ties)
prob If this is true the proportion of the votes for the winning class are returned as attribute prob
useall controls handling of ties If true all distances equal to the kth largest are included If false a random selection of distances equal to the kth is chosen to use exactly k neighbours
Here we demonstrate the bias-variance tradeoff as we increase k
err lt- matrix(nrow=N100 ncol=2)for (i in 1nrow(err))
k lt- i 4test$predicted_class lt- knn(train[12] test[12] train$class k=k)mlt-cm(test$class test$predicted_class)err[i] lt- c(k 1 - sum(diag(m)) sum(m))
plot (err)
Результаты кластеризации и зависимость ошибки от числа кластеров
actualpredicted A B C A 272 0 7 B 1 308 1 C 31 0 280
gt m
Recursive PartitioningRegression Treebull Основано на дереве решений представляющем граф бинарной
последовательной классификации по тест-вопросам в каждой вершине графа Листья дерева ассоциируются с результатами классификации
Метод RP реализует обучение машины строить дерево решений по обучающей выборке данных
bull laquoРасщеплениеraquo обучающих данныхМножество данных в каждом узле разделяется на два соответствующих ответам TRUE или FALSE Вопросы должны порождать бинарное разбиение множества Для числовых характеристик это обычно неравенства характеристика Xn меньше или равна значению Ym
bull Конструирование тест-вопросовПринцип putity measurement ndash очищающих измерений Каждая характеристика анализируется статистически для каждого разбиения и выбирается наилучшее по чистоте разделенияbull Критерий остановкиЧтобы избежать переобучения используется либо порог чистоты либо максимальное число узлов либо минимальное число наблюдений в узле
Recursive PartitioningRegression Tree
Пример расщепления обучающей выборки
rpart(formula data weights subset naaction = narpart method model = FALSE x = FALSE y = TRUE parms control cost )
formula a formula with a response but no interaction terms If this a a data frome that is taken as the model frame (see modelframe)
data an optional data frame in which to interpret the variables named in the formula
weights optional case weights
subset optional expression saying that only a subset of the rows of the data should be used in the fit
naaction the default action deletes all observations for which y is missing but keeps those in which one or more predictors are missing method one of anova poisson class or exp If method is missing then the routine tries to make an intelligent guess If y is a survival object then method = exp is assumed if y has 2 columns then method = poisson is assumed if y is a factor then method = class is assumed otherwise method = anova is assumed It is wisest to specify the method directly especially as more criteria may added to the function in future Alternatively method can be a list of functions named init split and eval Examples are given in the file lsquotestsusersplitsRrsquo in the sources and in the vignettes lsquoUser Written Split Functionsrsquo
model if logical keep a copy of the model frame in the result If the input value for model is a model frame (likely from an earlier call to the rpart function) then this frame is used rather than constructing new data
x keep a copy of the x matrix in the result
y keep a copy of the dependent variable in the result If missing and model is supplied this defaults to FALSE
parms optional parameters for the splitting function Anova splitting has no parameters Poisson splitting has a single parameter the coefficient of variation of the prior distribution on the rates The default value is 1 Exponential splitting has the same parameter as Poisson For classification splitting the list can contain any of the vector of prior probabilities (component prior) the loss matrix (component loss) or the splitting index (component split) The priors must be positive and sum to 1 The loss matrix must have zeros on the diagonal and positive off-diagonal elements The splitting index can be gini or information The default priors are proportional to the data counts the losses default to 1 and the split defaults to gini
control a list of options that control details of the rpart algorithm See rpartcontrol
cost a vector of non-negative costs one for each variable in the model Defaults to one for all variables These are scalings to be applied when considering splits so the improvement on splitting on a variable is divided by its cost in deciding which split to choose arguments to rpartcontrol may also be specified in the call to rpart They are checked against the list of valid arguments
Recursive PartitioningRegression Tree example(r lt- rpart(class ~ x + y data = train))plot(r)text(r)
Here we look at the confusion matrix and overall error rate from applying the tree rules to the training datapredicted lt- asnumeric(apply(predict(r) 1 function(r) order(-r)[1]))(m lt- cm (train$class predicted))1 - sum(diag(m)) sum(m)
And by comparison against the test datapredicted lt- asnumeric(apply(predict(r test[12]) 1 function(r) order(-r)[1]))(m lt- cm (test$class predicted))1 - sum(diag(m)) sum(m)
Анализ по главным компонентам (Principal Component Analysis PCA)Известно четыре базовых версии методаbull аппроксимировать данные линейными многообразиями меньшей
размерностиbull найти подпространства меньшей размерности в ортогональной проекции
на которые разброс данных (то есть среднеквадратичное отклонение от среднего значения) максимален
bull найти подпространства меньшей размерности в ортогональной проекции на которые среднеквадратичное расстояние между точками максимально
bull для данной многомерной случайной величины построить такое ортогональное преобразование координат в результате которого корреляции между отдельными координатами обратятся в нуль
В основе задача наилучшей аппроксимации конечного множества точек прямыми и плоскостями (Пирсон 1901) Дано конечное множество векторов для каждого k=01hellipn-1 среди всех k-мерных линейных многообразий в Rn найти такое что сумма квадратов уклонений минимальна
bull Графическая иллюстрация метода главных компонент в 3D
Алгоритм
bull Централизация данных
bull Находим первую главную компоненту
bull Вычитаем проекцию на нее
bull Находим вторую главную компоненту
bull Вычитаем проекцию на (k-1) главную компоненту
bull Находим k-ую главную компоненту
bull Всегда выполняется условие ортогональности
princomp(formula data = NULL subset naaction )formula a formula with no response variable referring only to numeric variables
data an optional data frame (or similar see modelframe) containing the variables in the formula formula By default the variables are taken from environment(formula)
subset an optional vector used to select rows (observations) of the data matrix x
naaction a function which indicates what should happen when the data contain NAs The default is set by the naaction setting of options and is nafail if that is unset The lsquofactory-freshrsquo default is naomit
x a numeric matrix or data frame which provides the data for the principal components analysis
cor a logical value indicating whether the calculation should use the correlation matrix or the covariance matrix (The correlation matrix can only be used if there are no constant variables)
scores a logical value indicating whether the score on each principal component should be calculated
covmat a covariance matrix or a covariance list as returned by covwt (and covmve or covmcd from package MASS) If supplied this is used rather than the covariance matrix of x
arguments passed to or from other methods If x is a formula one might specify cor or scores
object Object of class inheriting from princomp
newdata An optional data frame or matrix in which to look for variables with which to predict If omitted the scores are used If the original fit used a formula or a data frame or a matrix with column names newdata must contain columns with the same names Otherwise it must contain the same number of columns to be used in the same order
Principal Component Analysis (PCA)plt-princomp(train[12])train_pca lt- dataframe(p$scores)train_pca$class lt- train$class
Compare the alignment of the clusters to the axis in the feature space versus the transformed space
r2 lt- rpart(class ~ Comp1 + Comp2 data = train_pca)
Линейный дискриминантный анализ (Linear Discriminant Analysis - LDA)bull Для каждого образца объекта или события с известным классом y
рассматривается набор наблюдений x (называемых ещё признаками переменными или измерениями) Набор таких образцов называется обучающей выборкой (или набором обучения обучением) Задачи классификации состоит в том чтобы построить хороший прогноз класса y для всякого так же распределённого объекта (не обязательно содержащегося в обучающей выборке) имея только наблюдения x Основная идея состоит в сравнении распределений для каждого из классов Расстоянием (по Фишеру) между распределениями принято считать отношение межклассовой дисперсии к внутриклассовой
bull Оптимальное байесовское решение - относить точки ко второму классу если отношение правдоподобия ниже некоторого порогового значения T
bull Предполагая что выполнена нормировка
bull Решение записывается в виде неравенства для скалярного произведения
bull Здесь laquoизмерительныйraquo вектор равен
bull с- дискриминантный порог
lda(x grouping prior = proportions tol = 10e-4 method CV = FALSE nu )
formula A formula of the form groups ~ x1 + x2 + That is the response is the grouping factor and the right hand side specifies the (non-factor) discriminators
data Data frame from which variables specified in formula are preferentially to be taken
x (required if no formula is given as the principal argument) a matrix or data frame or Matrix containing the explanatory variables
grouping (required if no formula principal argument is given) a factor specifying the class for each observation
prior the prior probabilities of class membership If unspecified the class proportions for the training set are used If present the probabilities should be specified in the order of the factor levels
tol A tolerance to decide if a matrix is singular it will reject variables and linear combinations of unit-variance variables whose variance is less than tol^2
subset An index vector specifying the cases to be used in the training sample (NOTE If given this argument must be named)
naaction A function to specify the action to be taken if NAs are found The default action is for the procedure to fail An alternative is naomit which leads to rejection of cases with missing values on any required variable (NOTE If given this argument must be named)
method moment for standard estimators of the mean and variance mle for MLEs mve to use covmve or t for robust estimates based on a t distribution
CV If true returns results (classes and posterior probabilities) for leave-one-out cross-validation Note that if the prior is estimated the proportions in the whole dataset are used
nu degrees of freedom for method = t
arguments passed to or from other methods
prior the prior probabilities usedmeans the group meansscaling a matrix which transforms observations to
discriminant functions normalized so that within groups covariance matrix is spherical
svd the singular values which give the ratio of the between- and within-group standard deviations on the linear discriminant variables Their squares are the canonical F-statistics
N The number of observations usedcall The (matched) function call
An object of class lda containing the following components
Метод опорных векторов (Support Vector Machines - SVM)Относится к ML с учителем и использует линейные разделяющие поверхности
Идея алгоритма
bull По обучающей выборке
bull Строится классифицирующая функция
bull Используя гиперплоскость
bull Поиск коэффициентов сводится к максимизации
расстояний от опорных векторов или минимизации
Иллюстрация на простейшем примере
>
Производится вложение обучающей выборки в пространство более высокой размерности Х с помощью нелинейной функции так чтобы обеспечит линейную разделимость в Х
Разделяющая функция тогда имеет вид
Функция называется ядром
Полиномиальное ядро
Радиальная базисная функция
Сигмоид
Линейная неразделимость и использование ядер
Иллюстрация использования ядра для отображения 2D -gt 3D
>
svm((formula data = NULL subset naaction =naomit scale = TRUE))
formulaa symbolic description of the model to be fitdataan optional data frame containing the variables in the model By default the variables are taken from the environment which lsquosvmrsquo is called fromxa data matrix a vector or a sparse matrix (object of class Matrix provided by the Matrix package or of class matrixcsr provided by the SparseM package or of class simple_triplet_matrix provided by the slam package)ya response vector with one label for each rowcomponent of x Can be either a factor (for classification tasks) or a numeric vector (for regression)scaleA logical vector indicating the variables to be scaled If scale is of length 1 the value is recycled as many times as needed Per default data are scaled internally (both x and y variables) to zero mean and unit variance The center and scale values are returned and used for later predictionstypesvm can be used as a classification machine as a regression machine or for novelty detection Depending of whether y is a factor or not the default setting for type is C-classification or eps-regression respectively but may be overwritten by setting an explicit valueValid options areC-classificationnu-classificationone-classification (for novelty detection)eps-regressionnu-regression
Support Vector Machines
s lt- svm( I(factor(class)) ~ x + y data = train cost = 100 gama = 1)
Package lsquodeepnetrsquo February 19 2015 Type Package Title deep learning toolkit in R Version 02 Date 2014-03-20 Author Xiao Rong Maintainer Xiao Rong Description Implement some deep learning architectures and neural network algorithms including BPRBMDBNDeep autoencoder and so on License GPL NeedsCompilation no Repository CRAN DatePublication 2014-03-20 100343
laquoВ 1997 году Deep Blue обыграл в шахматы КаспароваВ 2011 Watson обставил чемпионов JeopardyСможет ли ваш алгоритм в 2013 году отличить Бобика от ПушистикаraquoKaggle Competitions Details
Сегодня уже можно ответить laquoдаraquo mdash десятка лидеров справилась с заданием на 988
Распознавание основано на feature detection и последующем различении комбинаций
Заранее неизвестно какие части картинки могут использоваться как хорошие features В их роли может выступать все что угодно mdash фрагменты изображения форма размер или цвет Feature может не присутствовать на картинке сама а выражаться в параметре полученным каким-то образом из исходных данных
Распознавание рукописных цифр
Еще пример посложнее
Использование нейронной сети с обучениемОбучение такой нейронной сети производится обычно методом обратного распространения ошибки таким образом чтобы минимизировать среднеквадратическую ошибку отклика сети на обучающей выборке Таким образом обучающая выборка содержит пары векторов признаков (входные данные) и эталонных векторов (маркированные данные) (x y)
Сверхвысокая размерность при работе с первичным представлением пикселями
Пиксельное кодирование
Принцип иерархии понятий ndash основа deep learning
bull Все вещи состоят из других маленьких и более элементарных вещей
bull Как извлекать features Гипотеза малоразмерных многообразий
Разреженное (sparse) кодирование
первый уровень иерархии состоит из элементов словаря этого кода которые представляют собой штрихи и границы
Словарь для лиц
Выделение объектов заданного класса
Основные архитектуры Deep Learningbull Deep neural networks (DNN)bull Deep belief networks (DBN)bull Convolutional neural networks (CNN)bull Deep Boltzmann Machines (DBM)bull Stacked (Denoising) Auto-Encodersbull Deep Stacking Networksbull Tensor Deep Stacking Networks (T-DSN)bull Spike-and-Slab RBMs (ssRBMs)bull Compound Hierarchical-Deep Modelsbull Deep Coding Networks (DPCN)bull Deep Kernel Machinesbull Deep Q-Networks (2015 г)
Задача классификации распознавания и подобные являются задачей конструирования функции на множестве входных наборов и со значениями в множестве требуемого вида выходных
bull Норбертом Винером было показано что любая функция может быть сколь угодно точно композицией двух (он использовал функции полином Лагранжа и функцию Лагерра)
bull Соответствует двухслойной нейросетиbull Архитектуры Deep Learning соответствуют представлению
bull Обеспечивают эффективную параметризацию при решении конкретных задач Более сложные функции создаются из большего числа но более эффективно настраиваемых laquoкирпичиковraquo Пример ndash синтез булевых функций Дерево вентилей эффективнее двухслойной схемы
Фактор - графыВсе методы которые расмотрели ndash не DL Даже деревья классификации Все операции в одном входном словаре
DL можно определить по фактор-графу
Например
bull Еще одна сторона DL - нередко использует невыпуклые функции потерьbull Обучение на основе выпуклых функций не зависит от порядка
предъявления данных для обучения Все определяет асимптотика всего train - набора В алгоритмах DL порядок данных в обучающей выборке может иметь значение
bull Многие решения в DL не доказаны математически и являются успешными эвристиками
bull Большой простор для прикладной математики Может рассматриваться как фактор-граф с группами латентных переменных
bull В настоящее время стал основной технологией в распознавании речи (speech recognition) и машинном зрении (computer vision) начал применяться в обработке текстов (natural language processing)
bull Основная идея ndash применение нелинейного отображения входного набора в более высокоразмерное пространство где многие неразделимые композиции становятся разделимыми а затем объединение композиций по семантической близости
Подход разреженного кодирования
Обобщенная архитектура
bull DL сеть может быть собрана каскадированием и использованием обучения с учителем
Здесь используется forward propagation для обучения
Для настройки коэффициентов используется метод fprof для каждого
Требуется знание градиента энергии
Элементы (kl) матрицы Якобиана
Требуется знание градиента энергии 120597119864120597119882119894 = 120597119864120597119883119894120597119865119894(119883119894minus1119882119894)120597119882119894
ሾ1times 119873119908ሿ= ሾ1times 119873119909ሿlowast[119873119909 times 119873119908] Элементы (kl) матрицы Якобиана
Сводится к рекуррентному соотношению для вычисления градиента 120597119864120597119883119894minus1 = 120597119864120597119883119894120597119865119894(119883119894minus1119882119894)120597119883119894minus1
В итоге
Для вычисления градиента может использоваться метод back propagation
В действительности работают любые архитектуры построения функции Нужно конструировать связи и функции блоков
Язык Torch 7 ndash современный инструмент моделирования и имплементации
Machine Learning with Torch7 (httpcodecogbitscomwikidokuphpid=start)
bull These tutorials were originally designed for the IPAM Summer School on Deep Learning more info herebull This wiki provides multiple tutorials with the overall objective of teaching you how to do machine learning
with Torch7bull Torch7 provides a Matlab-like environment for state-of-the-art machine learning algorithms It is easy to use
and provides a very efficient implementation thanks to an easy and fast scripting language (LuaJIT) and an underlying C implementation
bull These tutorials should be readdone in orderbull Tutorial 1 Setup Basics Getting Startedbull Tutorial 2 Supervised Learningbull Tutorial 3 Unsupervised Learningbull Tutorial 4 Graphical Modelsbull Tutorial 5 Creating New Modulesbull Tutorial 6 Using CUDAbull To follow these tutorials and do the exercises you will need to download the associated code which is hosted
on GitHub on this page In this repository each directory corresponds to a tutorial herebull starttxt middot Last modified 20140204 2246 by clement
Torch 7 является расширением Lua
What is LuaLua is a powerful fast lightweight embeddable scripting languageLua combines simple procedural syntax with powerful data description constructs based on associative arrays and extensible semantics Lua is dynamically typed runs by interpreting bytecode for a register-based virtual machine and has automatic memory management with incremental garbage collection making it ideal for configuration scripting and rapid prototyping
Why choose LuaLua is a proven robust languageLua has been used in many industrial applications (eg Adobes Photoshop Lightroom) with an emphasis on embedded systems (eg the Ginga middleware for digital TV in Brazil) and games (eg World of Warcraft and Angry Birds) Lua is currently the leading scripting language in games Lua has a solid reference manual and there are several books about it Several versions of Lua have been released and used in real applications since its creation in 1993 Lua featured in HOPL III the Third ACM SIGPLAN History of Programming Languages Conference in June 2007 Lua won the Front Line Award 2011 from the Game Developers Magazine
Свертка и архитектура 4-х уровневой сверточной сети
Функциональная структура
Примеры успешного применения сверточных сетей
Диагностика эпилепсии по ЭЭГ
Реализация сверточной сетью
Одна из самых больших сверточных сетейbull Krizhevsky Sutskever Hinton 2012bull 650 000 нейронов 832 000 000 синапсов 60 000000 пареметровbull Использовался backprop на GPUbull Обучающая выборка на материалах 20 летbull Купил Google в январе 2013bull В мае 2013 развернул как сервис Photo Tagging Google+
Пример тэгирования
Пример поиска похожих по изображению
Пример поиска в коллекции изображений по текстовому запросу
Пример laquoоблачногоraquo классификатора изображений
Самообучающиеся нейронные сети на основе минимизации функции энергииbull Применима к сетям с обратными связямиbull Конструирование функции энергии должно обеспечивать
laquoконтрастностьraquo разделения
bull Энергетическая функция может Неформально рассматриваться как отрицательный логарифм плотности вероятности
Y 2=(Y1)2
RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцмана
bull Из DBM cтроится Deep Belief Network (DBN)
bull w mdash вес между нейронами
bull b mdash смещение нейрона
bull s mdash состояние нейрона
Алгоритм обучения Contrastive Divergence (CD)bull w_ij mdash веc между i-ым нейроном Вероятность пар может быть представлена как
bull a_i mdash смещение видимого нейрона
bull b_j mdash смещение скрытого нейрона
bull v_i mdash состояние видимого нейрона
bull h_j mdash состояние скрытого нейрона Полная вероятность состояния видимых нейронов
Основные уравнения адаптации
Алгоритм Хинтона - Contrastive Divergence (CD-k)
1 состояние видимых нейронов приравнивается к входному образу2 выводятся вероятности состояний скрытого слоя3 каждому нейрону скрытого слоя ставится в соответствие состояние laquo1raquo с вероятностью равной его текущему состоянию4 выводятся вероятности видимого слоя на основании скрытого5 если текущая итерация меньше k то возврат к шагу 26 выводятся вероятности состояний скрытого слоя
darch Package for deep architectures and Restricted-Bolzmann-MachinesThe darch package is build on the basis of the code from G E Hinton and R R Salakhutdinov (available under Matlab Code for deep belief nets last visit 01082013) This package is for generating neural networks with many layers (deep architectures) and train them with the method introduced by the publications A fast learning algorithm for deep belief nets (G E Hinton S Osindero Y W Teh) and Reducing the dimensionality of data with neural networks (G E Hinton R R Salakhutdinov) This method includes a pre training with the contrastive divergence method publishing by GE Hinton (2002) and a fine tuning with common known training algorithms like backpropagation or conjugate gradient
bull Version 091bull Imports futilelogger ff methodsbull Published 2014-03-16bull Author Martin Dreesbull Maintainer Martin Drees ltmdrees at studfh-dortmunddegtbull License GPL-2bull URL httpgithubcommaddin79darchbull NeedsCompilation nobull Materials READMEbull CRAN checks darch results
Связь плотности вероятности и энергии
Используется распределение Гиббса
Задача обучения с точки минимизации энергии сети
bull Сконструировать функцию энергии с малыми значениями на обучающей выборке и с большими значениями всюду вне этого множества
bull Первое несложно а второе представляет задачу процесса обучения
Интуитивные соображения
Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decomposition LISTA ndashметоды использующие разреженные коды
Латентная переменная Z =argmin_z Distance[Decoder(Z)Y]+FactorB(Z)MAPminimaize sum of factors
Автоэнкодер (auto encoder) Автоэнкодер представляет собой алгоритм обучения без учителя который использует нейронную сеть и метод обратного распространения ошибки для того чтобы добиться того что входной вектор признаков вызывал отклик сети равный входному вектору те y = x Автоэнкодер пытается построить функцию h(x) = x
Архитекттура ICA моделей
Итеративные алгоритмы с оптимальным разреженным кодированием ISTAFISTA
Самоорганизация данных методами Deep Learning
>
Знакомство с пакетом deepnet
Назначение
Составdbndnntrain - обучение сети с архитектурой DBN (deep belief network)loadmnist - формирование данных из файлов MNISTnnpredict - предсказание новых выборок на обученной нейронной сетиnntest ndash тестирование обученной нейронной сети с возвращением значения ошибкиnntrain ndash обучение одностлойной или многослойной нейронной сети методом backproprbmdown ndash генерирование видимого вектора для скрытых состояний сети RBMrbmtrain ndash обучение сети RBMrbmup ndash извлечение скрытых состояний RBM по известным видимым состояниямsaednntrain ndash обучение нейронной сети с архитектурой stacked autoencoder
Прогнозирование (классификация) нейронной сетью с архитектурой stacked auto encoder
Argumentsbull x matrix of x values for examplesbull y vector or matrix of target values for examplesbull hidden vector for number of units of hidden layersDefault is c(10)bull activationfun activation function of hidden unitCan be sigmlinear or tanhDefault isbull sigm for logistic functionbull learningrate learning rate for gradient descent Default is 08bull momentum momentum for gradient descent Default is 05 bull learningrate_scalebull learning rate will be mutiplied by this scale after every iteration Default is 1 bull numepochs number of iteration for samples Default is 3bull batchsize size of mini-batch Default is 100bull output function of output unit can be sigmlinear or softmax Default is sigmbull sae_output function of autoencoder output unit can be sigmlinear or softmax Defaultbull is linearbull hidden_dropout drop out fraction for hidden layer Default is 0bull visible_dropoutbull drop out fraction for input layer Default is 0
Что такое MNISTbull Смешанный набор данных Национального института стандартов и
технологий (mixed National Institute of Standards and Technology MNIST) был создан исследователями IR в качестве эталона для сравнения различных алгоритмов IR
bull Набор данных состоит всего из 70 000 изображений 60 000 обучающих (используемых для создания модели IR) и 10 000 тестовых (применяемых для оценки точности модели) Каждое изображение MNIST mdash это оцифрованная картинка одной цифры написанной от руки Каждое изображение имеет размер 28 times 28 пикселей Каждое значение пикселя лежит в диапазоне от 0 (представляет белый цвет) до 255 (представляет черный цвет) Промежуточные значения отражают оттенки серого
httpyannlecuncomexdbmnistобучающие и тестовые данные хранятся в двух файлах а не в одном Один файл содержит значения пикселей для изображений а другой mdash метки изображений (0ndash9) Каждый из четырех файлов также содержит заголовочную информацию и все они хранятся в двоичном формате сжатом в формате gziptrain-images-idx3-ubytegz training set images (9912422 bytes)
train-labels-idx1-ubytegz training set labels (28881 bytes)
t10k-images-idx3-ubytegz test set images (1648877 bytes)
t10k-labels-idx1-ubytegz test set labels (4542 bytes)
bull Каждая строка файла представляет собой имидж размера 28 times 28 вектором длины 784 каждый признак ndash значение пиксела в черно-белой шале Первый столбец содержит метку цифры 0ndash9 следующие 2828 столбцов представляют целый имидж и так далее Пример первой строки
Визуализация
bull plotmnist()bull mnistbull paramsbull train$n number of train samplesbull train$x pix of every train sample imagebull train$y label of every train sample imagebull train$yy one-of-c vector of label of train sample imagebull test$n number of test samplesbull test$x pix of every test sample imagebull test$y label of every test sample imagebull test$yy one-of-c vector of label of test sample image
plotmnist()
Распознавание рукописных цифр в deepnet
another way to download the MNIST datasetmnist downloadmnist(range=c(01)global=FALSE)look at MNIST datamnist$train$xmnist$train$ymnist$test$xmnist$test$ytrain of the sae neural networkdnnlt-saednntrain(mnist$train$xmnist$train$yhidden=c(55))test of the sae neural networknntest(dnnmnist$test$xmnist$test$yt=05)
End of slides part 2 (Part 3 - NLP remaining)
Vladimirvkrylovgmailcom
Основы предиктивной аналитики Часть вторая
Применение методов Machine Learning к решению задач аналитики
Дмитрий Ветров кандидат физико-математических наук ру
Методы обучающихся машин для аналитики которые мы рассмотрим
Сначала нужно загрузить несколько пакетов (packages) для поддер
Данные для анализа
Скрипт для генерации
Данные которые мы будем использовать для демо состоят из смес
Так выглядят визуализированные данные сгенерированные скриптом
Разделение данных на обучающие и проверочные является важным эт
K-means алгоритм на пальцах
Обучающаяся машина без учителя Алгоритм K-means
Slide 13
Slide 14
Здесь мы используем заранее известный факт что необходимо кла
Еще одна иллюстрация работы алгоритма K-means
Обучающаяся машина без учителя Алгоритм KNN (Nearest Neighbor)
Как работает алгоритм KNN
knn(train test cl k = 1 l = 0 prob = FALSE useall = TRUE
Slide 20
Результаты кластеризации и зависимость ошибки от числа кластеро
Recursive PartitioningRegression Tree
Метод RP реализует обучение машины строить дерево решений по об
Recursive PartitioningRegression Tree (2)
rpart(formula data weights subset naaction = narpart met
Slide 26
Recursive PartitioningRegression Tree example
Анализ по главным компонентам (Principal Component Analysis PC
Итеративные алгоритмы с оптимальным разреженным кодированием IS
Самоорганизация данных методами Deep Learning
Знакомство с пакетом deepnet
Прогнозирование (классификация) нейронной сетью с архитектурой
Arguments
Архитектура сети SAE
Архитектура с 5Х4 hidden 3 outs
Example
Анализ обучающего набора данных
Параметры SAE сети
Коэффициенты связей
Предсказание обученной сетью
Сравнение обучающей и тестовой выборки
plot3d(xy)
Работаем с пакетом MNIST
httpyannlecuncomexdbmnist
Подготовка к обработке
Slide 118
Визуализация
plotmnist()
Распознавание рукописных цифр в deepnet
End of slides part 2 (Part 3 - NLP remaining)
Так выглядят визуализированные данные сгенерированные скриптом
Разделение данных на обучающие и проверочные является важным этапом ML
Просто используем случайный выбор из имеющегося набораdata lt- data[sample(1N)]
train lt- data[1Ntrain]
test lt- data[(Ntrain+1)N]
K-means алгоритм на пальцах
>
Обучающаяся машина без учителя Алгоритм K-meansАлгоритм K-meansЭтап 1 Первоначальное распределение объектов по кластерамbull Выбор случайным образом k точек данных из D как начальное множество представителей
кластера Cbull Распределение объектов по кластерам в соответствие с формулой
Этап 2 Перераспределение срединных элементовbull Вычисление центра для каждого кластераbull Перераспределение объектов по кластерамbull Алгоритм завершается когда на какой-то итерации не происходит изменения центра масс
кластеров Это происходит за конечное число итераций так как количество возможных разбиений конечного множества конечно а на каждом шаге суммарное квадратичное отклонение Cost не увеличивается поэтому зацикливание невозможно
x numeric matrix of data or an object that can be coerced to such a matrix (such as a numeric vector or a data frame with all numeric columns)
centers either the number of clusters say k or a set of initial (distinct) cluster centres If a number a random set of (distinct) rows in x is chosen as the initial centres
itermax the maximum number of iterations allowed
nstart if centers is a number how many random sets should be chosen
algorithm character may be abbreviated Note that Lloyd andForgy are alternative names for one algorithm
object an R object of class kmeans typically the result obof ob lt- kmeans()
method character may be abbreviated centers causesfitted to return cluster centers (one for each input point) and classes causes fitted to return a vector of class assignments
trace logical or integer number currently only used in the default method (Hartigan-Wong) if positive (or true) tracing information on the progress of the algorithm is produced Higher values may produce more tracing information
Обучающаяся машина без учителя Алгоритм KNN (Nearest Neighbor)Алгоритм KNN Основным принципом метода ближайших соседей является то что объект присваивается тому классу который является наиболее распространённым среди соседей данного элементаДля классификации каждого из объектов тестовой выборки
необходимо последовательно выполнить следующие операцииВычислить расстояние до каждого из объектов обучающей выборки
Отобрать k объектов обучающей выборки расстояние до которых минимально
Класс классифицируемого объекта mdash это класс наиболее часто встречающийся среди k ближайших соседей
Как работает алгоритм KNN
>
knn(train test cl k = 1 l = 0 prob = FALSE useall = TRUE)
train matrix or data frame of training set cases
test matrix or data frame of test set cases A vector will be interpreted as a row vector for a single case
cl factor of true classifications of training set
k number of neighbours considered
l minimum vote for definite decision otherwise doubt (More precisely less than k-l dissenting votes are allowed even if k is increased by ties)
prob If this is true the proportion of the votes for the winning class are returned as attribute prob
useall controls handling of ties If true all distances equal to the kth largest are included If false a random selection of distances equal to the kth is chosen to use exactly k neighbours
Here we demonstrate the bias-variance tradeoff as we increase k
err lt- matrix(nrow=N100 ncol=2)for (i in 1nrow(err))
k lt- i 4test$predicted_class lt- knn(train[12] test[12] train$class k=k)mlt-cm(test$class test$predicted_class)err[i] lt- c(k 1 - sum(diag(m)) sum(m))
plot (err)
Результаты кластеризации и зависимость ошибки от числа кластеров
actualpredicted A B C A 272 0 7 B 1 308 1 C 31 0 280
gt m
Recursive PartitioningRegression Treebull Основано на дереве решений представляющем граф бинарной
последовательной классификации по тест-вопросам в каждой вершине графа Листья дерева ассоциируются с результатами классификации
Метод RP реализует обучение машины строить дерево решений по обучающей выборке данных
bull laquoРасщеплениеraquo обучающих данныхМножество данных в каждом узле разделяется на два соответствующих ответам TRUE или FALSE Вопросы должны порождать бинарное разбиение множества Для числовых характеристик это обычно неравенства характеристика Xn меньше или равна значению Ym
bull Конструирование тест-вопросовПринцип putity measurement ndash очищающих измерений Каждая характеристика анализируется статистически для каждого разбиения и выбирается наилучшее по чистоте разделенияbull Критерий остановкиЧтобы избежать переобучения используется либо порог чистоты либо максимальное число узлов либо минимальное число наблюдений в узле
Recursive PartitioningRegression Tree
Пример расщепления обучающей выборки
rpart(formula data weights subset naaction = narpart method model = FALSE x = FALSE y = TRUE parms control cost )
formula a formula with a response but no interaction terms If this a a data frome that is taken as the model frame (see modelframe)
data an optional data frame in which to interpret the variables named in the formula
weights optional case weights
subset optional expression saying that only a subset of the rows of the data should be used in the fit
naaction the default action deletes all observations for which y is missing but keeps those in which one or more predictors are missing method one of anova poisson class or exp If method is missing then the routine tries to make an intelligent guess If y is a survival object then method = exp is assumed if y has 2 columns then method = poisson is assumed if y is a factor then method = class is assumed otherwise method = anova is assumed It is wisest to specify the method directly especially as more criteria may added to the function in future Alternatively method can be a list of functions named init split and eval Examples are given in the file lsquotestsusersplitsRrsquo in the sources and in the vignettes lsquoUser Written Split Functionsrsquo
model if logical keep a copy of the model frame in the result If the input value for model is a model frame (likely from an earlier call to the rpart function) then this frame is used rather than constructing new data
x keep a copy of the x matrix in the result
y keep a copy of the dependent variable in the result If missing and model is supplied this defaults to FALSE
parms optional parameters for the splitting function Anova splitting has no parameters Poisson splitting has a single parameter the coefficient of variation of the prior distribution on the rates The default value is 1 Exponential splitting has the same parameter as Poisson For classification splitting the list can contain any of the vector of prior probabilities (component prior) the loss matrix (component loss) or the splitting index (component split) The priors must be positive and sum to 1 The loss matrix must have zeros on the diagonal and positive off-diagonal elements The splitting index can be gini or information The default priors are proportional to the data counts the losses default to 1 and the split defaults to gini
control a list of options that control details of the rpart algorithm See rpartcontrol
cost a vector of non-negative costs one for each variable in the model Defaults to one for all variables These are scalings to be applied when considering splits so the improvement on splitting on a variable is divided by its cost in deciding which split to choose arguments to rpartcontrol may also be specified in the call to rpart They are checked against the list of valid arguments
Recursive PartitioningRegression Tree example(r lt- rpart(class ~ x + y data = train))plot(r)text(r)
Here we look at the confusion matrix and overall error rate from applying the tree rules to the training datapredicted lt- asnumeric(apply(predict(r) 1 function(r) order(-r)[1]))(m lt- cm (train$class predicted))1 - sum(diag(m)) sum(m)
And by comparison against the test datapredicted lt- asnumeric(apply(predict(r test[12]) 1 function(r) order(-r)[1]))(m lt- cm (test$class predicted))1 - sum(diag(m)) sum(m)
Анализ по главным компонентам (Principal Component Analysis PCA)Известно четыре базовых версии методаbull аппроксимировать данные линейными многообразиями меньшей
размерностиbull найти подпространства меньшей размерности в ортогональной проекции
на которые разброс данных (то есть среднеквадратичное отклонение от среднего значения) максимален
bull найти подпространства меньшей размерности в ортогональной проекции на которые среднеквадратичное расстояние между точками максимально
bull для данной многомерной случайной величины построить такое ортогональное преобразование координат в результате которого корреляции между отдельными координатами обратятся в нуль
В основе задача наилучшей аппроксимации конечного множества точек прямыми и плоскостями (Пирсон 1901) Дано конечное множество векторов для каждого k=01hellipn-1 среди всех k-мерных линейных многообразий в Rn найти такое что сумма квадратов уклонений минимальна
bull Графическая иллюстрация метода главных компонент в 3D
Алгоритм
bull Централизация данных
bull Находим первую главную компоненту
bull Вычитаем проекцию на нее
bull Находим вторую главную компоненту
bull Вычитаем проекцию на (k-1) главную компоненту
bull Находим k-ую главную компоненту
bull Всегда выполняется условие ортогональности
princomp(formula data = NULL subset naaction )formula a formula with no response variable referring only to numeric variables
data an optional data frame (or similar see modelframe) containing the variables in the formula formula By default the variables are taken from environment(formula)
subset an optional vector used to select rows (observations) of the data matrix x
naaction a function which indicates what should happen when the data contain NAs The default is set by the naaction setting of options and is nafail if that is unset The lsquofactory-freshrsquo default is naomit
x a numeric matrix or data frame which provides the data for the principal components analysis
cor a logical value indicating whether the calculation should use the correlation matrix or the covariance matrix (The correlation matrix can only be used if there are no constant variables)
scores a logical value indicating whether the score on each principal component should be calculated
covmat a covariance matrix or a covariance list as returned by covwt (and covmve or covmcd from package MASS) If supplied this is used rather than the covariance matrix of x
arguments passed to or from other methods If x is a formula one might specify cor or scores
object Object of class inheriting from princomp
newdata An optional data frame or matrix in which to look for variables with which to predict If omitted the scores are used If the original fit used a formula or a data frame or a matrix with column names newdata must contain columns with the same names Otherwise it must contain the same number of columns to be used in the same order
Principal Component Analysis (PCA)plt-princomp(train[12])train_pca lt- dataframe(p$scores)train_pca$class lt- train$class
Compare the alignment of the clusters to the axis in the feature space versus the transformed space
r2 lt- rpart(class ~ Comp1 + Comp2 data = train_pca)
Линейный дискриминантный анализ (Linear Discriminant Analysis - LDA)bull Для каждого образца объекта или события с известным классом y
рассматривается набор наблюдений x (называемых ещё признаками переменными или измерениями) Набор таких образцов называется обучающей выборкой (или набором обучения обучением) Задачи классификации состоит в том чтобы построить хороший прогноз класса y для всякого так же распределённого объекта (не обязательно содержащегося в обучающей выборке) имея только наблюдения x Основная идея состоит в сравнении распределений для каждого из классов Расстоянием (по Фишеру) между распределениями принято считать отношение межклассовой дисперсии к внутриклассовой
bull Оптимальное байесовское решение - относить точки ко второму классу если отношение правдоподобия ниже некоторого порогового значения T
bull Предполагая что выполнена нормировка
bull Решение записывается в виде неравенства для скалярного произведения
bull Здесь laquoизмерительныйraquo вектор равен
bull с- дискриминантный порог
lda(x grouping prior = proportions tol = 10e-4 method CV = FALSE nu )
formula A formula of the form groups ~ x1 + x2 + That is the response is the grouping factor and the right hand side specifies the (non-factor) discriminators
data Data frame from which variables specified in formula are preferentially to be taken
x (required if no formula is given as the principal argument) a matrix or data frame or Matrix containing the explanatory variables
grouping (required if no formula principal argument is given) a factor specifying the class for each observation
prior the prior probabilities of class membership If unspecified the class proportions for the training set are used If present the probabilities should be specified in the order of the factor levels
tol A tolerance to decide if a matrix is singular it will reject variables and linear combinations of unit-variance variables whose variance is less than tol^2
subset An index vector specifying the cases to be used in the training sample (NOTE If given this argument must be named)
naaction A function to specify the action to be taken if NAs are found The default action is for the procedure to fail An alternative is naomit which leads to rejection of cases with missing values on any required variable (NOTE If given this argument must be named)
method moment for standard estimators of the mean and variance mle for MLEs mve to use covmve or t for robust estimates based on a t distribution
CV If true returns results (classes and posterior probabilities) for leave-one-out cross-validation Note that if the prior is estimated the proportions in the whole dataset are used
nu degrees of freedom for method = t
arguments passed to or from other methods
prior the prior probabilities usedmeans the group meansscaling a matrix which transforms observations to
discriminant functions normalized so that within groups covariance matrix is spherical
svd the singular values which give the ratio of the between- and within-group standard deviations on the linear discriminant variables Their squares are the canonical F-statistics
N The number of observations usedcall The (matched) function call
An object of class lda containing the following components
Метод опорных векторов (Support Vector Machines - SVM)Относится к ML с учителем и использует линейные разделяющие поверхности
Идея алгоритма
bull По обучающей выборке
bull Строится классифицирующая функция
bull Используя гиперплоскость
bull Поиск коэффициентов сводится к максимизации
расстояний от опорных векторов или минимизации
Иллюстрация на простейшем примере
>
Производится вложение обучающей выборки в пространство более высокой размерности Х с помощью нелинейной функции так чтобы обеспечит линейную разделимость в Х
Разделяющая функция тогда имеет вид
Функция называется ядром
Полиномиальное ядро
Радиальная базисная функция
Сигмоид
Линейная неразделимость и использование ядер
Иллюстрация использования ядра для отображения 2D -gt 3D
>
svm((formula data = NULL subset naaction =naomit scale = TRUE))
formulaa symbolic description of the model to be fitdataan optional data frame containing the variables in the model By default the variables are taken from the environment which lsquosvmrsquo is called fromxa data matrix a vector or a sparse matrix (object of class Matrix provided by the Matrix package or of class matrixcsr provided by the SparseM package or of class simple_triplet_matrix provided by the slam package)ya response vector with one label for each rowcomponent of x Can be either a factor (for classification tasks) or a numeric vector (for regression)scaleA logical vector indicating the variables to be scaled If scale is of length 1 the value is recycled as many times as needed Per default data are scaled internally (both x and y variables) to zero mean and unit variance The center and scale values are returned and used for later predictionstypesvm can be used as a classification machine as a regression machine or for novelty detection Depending of whether y is a factor or not the default setting for type is C-classification or eps-regression respectively but may be overwritten by setting an explicit valueValid options areC-classificationnu-classificationone-classification (for novelty detection)eps-regressionnu-regression
Support Vector Machines
s lt- svm( I(factor(class)) ~ x + y data = train cost = 100 gama = 1)
Package lsquodeepnetrsquo February 19 2015 Type Package Title deep learning toolkit in R Version 02 Date 2014-03-20 Author Xiao Rong Maintainer Xiao Rong Description Implement some deep learning architectures and neural network algorithms including BPRBMDBNDeep autoencoder and so on License GPL NeedsCompilation no Repository CRAN DatePublication 2014-03-20 100343
laquoВ 1997 году Deep Blue обыграл в шахматы КаспароваВ 2011 Watson обставил чемпионов JeopardyСможет ли ваш алгоритм в 2013 году отличить Бобика от ПушистикаraquoKaggle Competitions Details
Сегодня уже можно ответить laquoдаraquo mdash десятка лидеров справилась с заданием на 988
Распознавание основано на feature detection и последующем различении комбинаций
Заранее неизвестно какие части картинки могут использоваться как хорошие features В их роли может выступать все что угодно mdash фрагменты изображения форма размер или цвет Feature может не присутствовать на картинке сама а выражаться в параметре полученным каким-то образом из исходных данных
Распознавание рукописных цифр
Еще пример посложнее
Использование нейронной сети с обучениемОбучение такой нейронной сети производится обычно методом обратного распространения ошибки таким образом чтобы минимизировать среднеквадратическую ошибку отклика сети на обучающей выборке Таким образом обучающая выборка содержит пары векторов признаков (входные данные) и эталонных векторов (маркированные данные) (x y)
Сверхвысокая размерность при работе с первичным представлением пикселями
Пиксельное кодирование
Принцип иерархии понятий ndash основа deep learning
bull Все вещи состоят из других маленьких и более элементарных вещей
bull Как извлекать features Гипотеза малоразмерных многообразий
Разреженное (sparse) кодирование
первый уровень иерархии состоит из элементов словаря этого кода которые представляют собой штрихи и границы
Словарь для лиц
Выделение объектов заданного класса
Основные архитектуры Deep Learningbull Deep neural networks (DNN)bull Deep belief networks (DBN)bull Convolutional neural networks (CNN)bull Deep Boltzmann Machines (DBM)bull Stacked (Denoising) Auto-Encodersbull Deep Stacking Networksbull Tensor Deep Stacking Networks (T-DSN)bull Spike-and-Slab RBMs (ssRBMs)bull Compound Hierarchical-Deep Modelsbull Deep Coding Networks (DPCN)bull Deep Kernel Machinesbull Deep Q-Networks (2015 г)
Задача классификации распознавания и подобные являются задачей конструирования функции на множестве входных наборов и со значениями в множестве требуемого вида выходных
bull Норбертом Винером было показано что любая функция может быть сколь угодно точно композицией двух (он использовал функции полином Лагранжа и функцию Лагерра)
bull Соответствует двухслойной нейросетиbull Архитектуры Deep Learning соответствуют представлению
bull Обеспечивают эффективную параметризацию при решении конкретных задач Более сложные функции создаются из большего числа но более эффективно настраиваемых laquoкирпичиковraquo Пример ndash синтез булевых функций Дерево вентилей эффективнее двухслойной схемы
Фактор - графыВсе методы которые расмотрели ndash не DL Даже деревья классификации Все операции в одном входном словаре
DL можно определить по фактор-графу
Например
bull Еще одна сторона DL - нередко использует невыпуклые функции потерьbull Обучение на основе выпуклых функций не зависит от порядка
предъявления данных для обучения Все определяет асимптотика всего train - набора В алгоритмах DL порядок данных в обучающей выборке может иметь значение
bull Многие решения в DL не доказаны математически и являются успешными эвристиками
bull Большой простор для прикладной математики Может рассматриваться как фактор-граф с группами латентных переменных
bull В настоящее время стал основной технологией в распознавании речи (speech recognition) и машинном зрении (computer vision) начал применяться в обработке текстов (natural language processing)
bull Основная идея ndash применение нелинейного отображения входного набора в более высокоразмерное пространство где многие неразделимые композиции становятся разделимыми а затем объединение композиций по семантической близости
Подход разреженного кодирования
Обобщенная архитектура
bull DL сеть может быть собрана каскадированием и использованием обучения с учителем
Здесь используется forward propagation для обучения
Для настройки коэффициентов используется метод fprof для каждого
Требуется знание градиента энергии
Элементы (kl) матрицы Якобиана
Требуется знание градиента энергии 120597119864120597119882119894 = 120597119864120597119883119894120597119865119894(119883119894minus1119882119894)120597119882119894
ሾ1times 119873119908ሿ= ሾ1times 119873119909ሿlowast[119873119909 times 119873119908] Элементы (kl) матрицы Якобиана
Сводится к рекуррентному соотношению для вычисления градиента 120597119864120597119883119894minus1 = 120597119864120597119883119894120597119865119894(119883119894minus1119882119894)120597119883119894minus1
В итоге
Для вычисления градиента может использоваться метод back propagation
В действительности работают любые архитектуры построения функции Нужно конструировать связи и функции блоков
Язык Torch 7 ndash современный инструмент моделирования и имплементации
Machine Learning with Torch7 (httpcodecogbitscomwikidokuphpid=start)
bull These tutorials were originally designed for the IPAM Summer School on Deep Learning more info herebull This wiki provides multiple tutorials with the overall objective of teaching you how to do machine learning
with Torch7bull Torch7 provides a Matlab-like environment for state-of-the-art machine learning algorithms It is easy to use
and provides a very efficient implementation thanks to an easy and fast scripting language (LuaJIT) and an underlying C implementation
bull These tutorials should be readdone in orderbull Tutorial 1 Setup Basics Getting Startedbull Tutorial 2 Supervised Learningbull Tutorial 3 Unsupervised Learningbull Tutorial 4 Graphical Modelsbull Tutorial 5 Creating New Modulesbull Tutorial 6 Using CUDAbull To follow these tutorials and do the exercises you will need to download the associated code which is hosted
on GitHub on this page In this repository each directory corresponds to a tutorial herebull starttxt middot Last modified 20140204 2246 by clement
Torch 7 является расширением Lua
What is LuaLua is a powerful fast lightweight embeddable scripting languageLua combines simple procedural syntax with powerful data description constructs based on associative arrays and extensible semantics Lua is dynamically typed runs by interpreting bytecode for a register-based virtual machine and has automatic memory management with incremental garbage collection making it ideal for configuration scripting and rapid prototyping
Why choose LuaLua is a proven robust languageLua has been used in many industrial applications (eg Adobes Photoshop Lightroom) with an emphasis on embedded systems (eg the Ginga middleware for digital TV in Brazil) and games (eg World of Warcraft and Angry Birds) Lua is currently the leading scripting language in games Lua has a solid reference manual and there are several books about it Several versions of Lua have been released and used in real applications since its creation in 1993 Lua featured in HOPL III the Third ACM SIGPLAN History of Programming Languages Conference in June 2007 Lua won the Front Line Award 2011 from the Game Developers Magazine
Свертка и архитектура 4-х уровневой сверточной сети
Функциональная структура
Примеры успешного применения сверточных сетей
Диагностика эпилепсии по ЭЭГ
Реализация сверточной сетью
Одна из самых больших сверточных сетейbull Krizhevsky Sutskever Hinton 2012bull 650 000 нейронов 832 000 000 синапсов 60 000000 пареметровbull Использовался backprop на GPUbull Обучающая выборка на материалах 20 летbull Купил Google в январе 2013bull В мае 2013 развернул как сервис Photo Tagging Google+
Пример тэгирования
Пример поиска похожих по изображению
Пример поиска в коллекции изображений по текстовому запросу
Пример laquoоблачногоraquo классификатора изображений
Самообучающиеся нейронные сети на основе минимизации функции энергииbull Применима к сетям с обратными связямиbull Конструирование функции энергии должно обеспечивать
laquoконтрастностьraquo разделения
bull Энергетическая функция может Неформально рассматриваться как отрицательный логарифм плотности вероятности
Y 2=(Y1)2
RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцмана
bull Из DBM cтроится Deep Belief Network (DBN)
bull w mdash вес между нейронами
bull b mdash смещение нейрона
bull s mdash состояние нейрона
Алгоритм обучения Contrastive Divergence (CD)bull w_ij mdash веc между i-ым нейроном Вероятность пар может быть представлена как
bull a_i mdash смещение видимого нейрона
bull b_j mdash смещение скрытого нейрона
bull v_i mdash состояние видимого нейрона
bull h_j mdash состояние скрытого нейрона Полная вероятность состояния видимых нейронов
Основные уравнения адаптации
Алгоритм Хинтона - Contrastive Divergence (CD-k)
1 состояние видимых нейронов приравнивается к входному образу2 выводятся вероятности состояний скрытого слоя3 каждому нейрону скрытого слоя ставится в соответствие состояние laquo1raquo с вероятностью равной его текущему состоянию4 выводятся вероятности видимого слоя на основании скрытого5 если текущая итерация меньше k то возврат к шагу 26 выводятся вероятности состояний скрытого слоя
darch Package for deep architectures and Restricted-Bolzmann-MachinesThe darch package is build on the basis of the code from G E Hinton and R R Salakhutdinov (available under Matlab Code for deep belief nets last visit 01082013) This package is for generating neural networks with many layers (deep architectures) and train them with the method introduced by the publications A fast learning algorithm for deep belief nets (G E Hinton S Osindero Y W Teh) and Reducing the dimensionality of data with neural networks (G E Hinton R R Salakhutdinov) This method includes a pre training with the contrastive divergence method publishing by GE Hinton (2002) and a fine tuning with common known training algorithms like backpropagation or conjugate gradient
bull Version 091bull Imports futilelogger ff methodsbull Published 2014-03-16bull Author Martin Dreesbull Maintainer Martin Drees ltmdrees at studfh-dortmunddegtbull License GPL-2bull URL httpgithubcommaddin79darchbull NeedsCompilation nobull Materials READMEbull CRAN checks darch results
Связь плотности вероятности и энергии
Используется распределение Гиббса
Задача обучения с точки минимизации энергии сети
bull Сконструировать функцию энергии с малыми значениями на обучающей выборке и с большими значениями всюду вне этого множества
bull Первое несложно а второе представляет задачу процесса обучения
Интуитивные соображения
Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decomposition LISTA ndashметоды использующие разреженные коды
Латентная переменная Z =argmin_z Distance[Decoder(Z)Y]+FactorB(Z)MAPminimaize sum of factors
Автоэнкодер (auto encoder) Автоэнкодер представляет собой алгоритм обучения без учителя который использует нейронную сеть и метод обратного распространения ошибки для того чтобы добиться того что входной вектор признаков вызывал отклик сети равный входному вектору те y = x Автоэнкодер пытается построить функцию h(x) = x
Архитекттура ICA моделей
Итеративные алгоритмы с оптимальным разреженным кодированием ISTAFISTA
Самоорганизация данных методами Deep Learning
>
Знакомство с пакетом deepnet
Назначение
Составdbndnntrain - обучение сети с архитектурой DBN (deep belief network)loadmnist - формирование данных из файлов MNISTnnpredict - предсказание новых выборок на обученной нейронной сетиnntest ndash тестирование обученной нейронной сети с возвращением значения ошибкиnntrain ndash обучение одностлойной или многослойной нейронной сети методом backproprbmdown ndash генерирование видимого вектора для скрытых состояний сети RBMrbmtrain ndash обучение сети RBMrbmup ndash извлечение скрытых состояний RBM по известным видимым состояниямsaednntrain ndash обучение нейронной сети с архитектурой stacked autoencoder
Прогнозирование (классификация) нейронной сетью с архитектурой stacked auto encoder
Argumentsbull x matrix of x values for examplesbull y vector or matrix of target values for examplesbull hidden vector for number of units of hidden layersDefault is c(10)bull activationfun activation function of hidden unitCan be sigmlinear or tanhDefault isbull sigm for logistic functionbull learningrate learning rate for gradient descent Default is 08bull momentum momentum for gradient descent Default is 05 bull learningrate_scalebull learning rate will be mutiplied by this scale after every iteration Default is 1 bull numepochs number of iteration for samples Default is 3bull batchsize size of mini-batch Default is 100bull output function of output unit can be sigmlinear or softmax Default is sigmbull sae_output function of autoencoder output unit can be sigmlinear or softmax Defaultbull is linearbull hidden_dropout drop out fraction for hidden layer Default is 0bull visible_dropoutbull drop out fraction for input layer Default is 0
Что такое MNISTbull Смешанный набор данных Национального института стандартов и
технологий (mixed National Institute of Standards and Technology MNIST) был создан исследователями IR в качестве эталона для сравнения различных алгоритмов IR
bull Набор данных состоит всего из 70 000 изображений 60 000 обучающих (используемых для создания модели IR) и 10 000 тестовых (применяемых для оценки точности модели) Каждое изображение MNIST mdash это оцифрованная картинка одной цифры написанной от руки Каждое изображение имеет размер 28 times 28 пикселей Каждое значение пикселя лежит в диапазоне от 0 (представляет белый цвет) до 255 (представляет черный цвет) Промежуточные значения отражают оттенки серого
httpyannlecuncomexdbmnistобучающие и тестовые данные хранятся в двух файлах а не в одном Один файл содержит значения пикселей для изображений а другой mdash метки изображений (0ndash9) Каждый из четырех файлов также содержит заголовочную информацию и все они хранятся в двоичном формате сжатом в формате gziptrain-images-idx3-ubytegz training set images (9912422 bytes)
train-labels-idx1-ubytegz training set labels (28881 bytes)
t10k-images-idx3-ubytegz test set images (1648877 bytes)
t10k-labels-idx1-ubytegz test set labels (4542 bytes)
bull Каждая строка файла представляет собой имидж размера 28 times 28 вектором длины 784 каждый признак ndash значение пиксела в черно-белой шале Первый столбец содержит метку цифры 0ndash9 следующие 2828 столбцов представляют целый имидж и так далее Пример первой строки
Визуализация
bull plotmnist()bull mnistbull paramsbull train$n number of train samplesbull train$x pix of every train sample imagebull train$y label of every train sample imagebull train$yy one-of-c vector of label of train sample imagebull test$n number of test samplesbull test$x pix of every test sample imagebull test$y label of every test sample imagebull test$yy one-of-c vector of label of test sample image
plotmnist()
Распознавание рукописных цифр в deepnet
another way to download the MNIST datasetmnist downloadmnist(range=c(01)global=FALSE)look at MNIST datamnist$train$xmnist$train$ymnist$test$xmnist$test$ytrain of the sae neural networkdnnlt-saednntrain(mnist$train$xmnist$train$yhidden=c(55))test of the sae neural networknntest(dnnmnist$test$xmnist$test$yt=05)
End of slides part 2 (Part 3 - NLP remaining)
Vladimirvkrylovgmailcom
Основы предиктивной аналитики Часть вторая
Применение методов Machine Learning к решению задач аналитики
Дмитрий Ветров кандидат физико-математических наук ру
Методы обучающихся машин для аналитики которые мы рассмотрим
Сначала нужно загрузить несколько пакетов (packages) для поддер
Данные для анализа
Скрипт для генерации
Данные которые мы будем использовать для демо состоят из смес
Так выглядят визуализированные данные сгенерированные скриптом
Разделение данных на обучающие и проверочные является важным эт
K-means алгоритм на пальцах
Обучающаяся машина без учителя Алгоритм K-means
Slide 13
Slide 14
Здесь мы используем заранее известный факт что необходимо кла
Еще одна иллюстрация работы алгоритма K-means
Обучающаяся машина без учителя Алгоритм KNN (Nearest Neighbor)
Как работает алгоритм KNN
knn(train test cl k = 1 l = 0 prob = FALSE useall = TRUE
Slide 20
Результаты кластеризации и зависимость ошибки от числа кластеро
Recursive PartitioningRegression Tree
Метод RP реализует обучение машины строить дерево решений по об
Recursive PartitioningRegression Tree (2)
rpart(formula data weights subset naaction = narpart met
Slide 26
Recursive PartitioningRegression Tree example
Анализ по главным компонентам (Principal Component Analysis PC
Итеративные алгоритмы с оптимальным разреженным кодированием IS
Самоорганизация данных методами Deep Learning
Знакомство с пакетом deepnet
Прогнозирование (классификация) нейронной сетью с архитектурой
Arguments
Архитектура сети SAE
Архитектура с 5Х4 hidden 3 outs
Example
Анализ обучающего набора данных
Параметры SAE сети
Коэффициенты связей
Предсказание обученной сетью
Сравнение обучающей и тестовой выборки
plot3d(xy)
Работаем с пакетом MNIST
httpyannlecuncomexdbmnist
Подготовка к обработке
Slide 118
Визуализация
plotmnist()
Распознавание рукописных цифр в deepnet
End of slides part 2 (Part 3 - NLP remaining)
Разделение данных на обучающие и проверочные является важным этапом ML
Просто используем случайный выбор из имеющегося набораdata lt- data[sample(1N)]
train lt- data[1Ntrain]
test lt- data[(Ntrain+1)N]
K-means алгоритм на пальцах
>
Обучающаяся машина без учителя Алгоритм K-meansАлгоритм K-meansЭтап 1 Первоначальное распределение объектов по кластерамbull Выбор случайным образом k точек данных из D как начальное множество представителей
кластера Cbull Распределение объектов по кластерам в соответствие с формулой
Этап 2 Перераспределение срединных элементовbull Вычисление центра для каждого кластераbull Перераспределение объектов по кластерамbull Алгоритм завершается когда на какой-то итерации не происходит изменения центра масс
кластеров Это происходит за конечное число итераций так как количество возможных разбиений конечного множества конечно а на каждом шаге суммарное квадратичное отклонение Cost не увеличивается поэтому зацикливание невозможно
x numeric matrix of data or an object that can be coerced to such a matrix (such as a numeric vector or a data frame with all numeric columns)
centers either the number of clusters say k or a set of initial (distinct) cluster centres If a number a random set of (distinct) rows in x is chosen as the initial centres
itermax the maximum number of iterations allowed
nstart if centers is a number how many random sets should be chosen
algorithm character may be abbreviated Note that Lloyd andForgy are alternative names for one algorithm
object an R object of class kmeans typically the result obof ob lt- kmeans()
method character may be abbreviated centers causesfitted to return cluster centers (one for each input point) and classes causes fitted to return a vector of class assignments
trace logical or integer number currently only used in the default method (Hartigan-Wong) if positive (or true) tracing information on the progress of the algorithm is produced Higher values may produce more tracing information
Обучающаяся машина без учителя Алгоритм KNN (Nearest Neighbor)Алгоритм KNN Основным принципом метода ближайших соседей является то что объект присваивается тому классу который является наиболее распространённым среди соседей данного элементаДля классификации каждого из объектов тестовой выборки
необходимо последовательно выполнить следующие операцииВычислить расстояние до каждого из объектов обучающей выборки
Отобрать k объектов обучающей выборки расстояние до которых минимально
Класс классифицируемого объекта mdash это класс наиболее часто встречающийся среди k ближайших соседей
Как работает алгоритм KNN
>
knn(train test cl k = 1 l = 0 prob = FALSE useall = TRUE)
train matrix or data frame of training set cases
test matrix or data frame of test set cases A vector will be interpreted as a row vector for a single case
cl factor of true classifications of training set
k number of neighbours considered
l minimum vote for definite decision otherwise doubt (More precisely less than k-l dissenting votes are allowed even if k is increased by ties)
prob If this is true the proportion of the votes for the winning class are returned as attribute prob
useall controls handling of ties If true all distances equal to the kth largest are included If false a random selection of distances equal to the kth is chosen to use exactly k neighbours
Here we demonstrate the bias-variance tradeoff as we increase k
err lt- matrix(nrow=N100 ncol=2)for (i in 1nrow(err))
k lt- i 4test$predicted_class lt- knn(train[12] test[12] train$class k=k)mlt-cm(test$class test$predicted_class)err[i] lt- c(k 1 - sum(diag(m)) sum(m))
plot (err)
Результаты кластеризации и зависимость ошибки от числа кластеров
actualpredicted A B C A 272 0 7 B 1 308 1 C 31 0 280
gt m
Recursive PartitioningRegression Treebull Основано на дереве решений представляющем граф бинарной
последовательной классификации по тест-вопросам в каждой вершине графа Листья дерева ассоциируются с результатами классификации
Метод RP реализует обучение машины строить дерево решений по обучающей выборке данных
bull laquoРасщеплениеraquo обучающих данныхМножество данных в каждом узле разделяется на два соответствующих ответам TRUE или FALSE Вопросы должны порождать бинарное разбиение множества Для числовых характеристик это обычно неравенства характеристика Xn меньше или равна значению Ym
bull Конструирование тест-вопросовПринцип putity measurement ndash очищающих измерений Каждая характеристика анализируется статистически для каждого разбиения и выбирается наилучшее по чистоте разделенияbull Критерий остановкиЧтобы избежать переобучения используется либо порог чистоты либо максимальное число узлов либо минимальное число наблюдений в узле
Recursive PartitioningRegression Tree
Пример расщепления обучающей выборки
rpart(formula data weights subset naaction = narpart method model = FALSE x = FALSE y = TRUE parms control cost )
formula a formula with a response but no interaction terms If this a a data frome that is taken as the model frame (see modelframe)
data an optional data frame in which to interpret the variables named in the formula
weights optional case weights
subset optional expression saying that only a subset of the rows of the data should be used in the fit
naaction the default action deletes all observations for which y is missing but keeps those in which one or more predictors are missing method one of anova poisson class or exp If method is missing then the routine tries to make an intelligent guess If y is a survival object then method = exp is assumed if y has 2 columns then method = poisson is assumed if y is a factor then method = class is assumed otherwise method = anova is assumed It is wisest to specify the method directly especially as more criteria may added to the function in future Alternatively method can be a list of functions named init split and eval Examples are given in the file lsquotestsusersplitsRrsquo in the sources and in the vignettes lsquoUser Written Split Functionsrsquo
model if logical keep a copy of the model frame in the result If the input value for model is a model frame (likely from an earlier call to the rpart function) then this frame is used rather than constructing new data
x keep a copy of the x matrix in the result
y keep a copy of the dependent variable in the result If missing and model is supplied this defaults to FALSE
parms optional parameters for the splitting function Anova splitting has no parameters Poisson splitting has a single parameter the coefficient of variation of the prior distribution on the rates The default value is 1 Exponential splitting has the same parameter as Poisson For classification splitting the list can contain any of the vector of prior probabilities (component prior) the loss matrix (component loss) or the splitting index (component split) The priors must be positive and sum to 1 The loss matrix must have zeros on the diagonal and positive off-diagonal elements The splitting index can be gini or information The default priors are proportional to the data counts the losses default to 1 and the split defaults to gini
control a list of options that control details of the rpart algorithm See rpartcontrol
cost a vector of non-negative costs one for each variable in the model Defaults to one for all variables These are scalings to be applied when considering splits so the improvement on splitting on a variable is divided by its cost in deciding which split to choose arguments to rpartcontrol may also be specified in the call to rpart They are checked against the list of valid arguments
Recursive PartitioningRegression Tree example(r lt- rpart(class ~ x + y data = train))plot(r)text(r)
Here we look at the confusion matrix and overall error rate from applying the tree rules to the training datapredicted lt- asnumeric(apply(predict(r) 1 function(r) order(-r)[1]))(m lt- cm (train$class predicted))1 - sum(diag(m)) sum(m)
And by comparison against the test datapredicted lt- asnumeric(apply(predict(r test[12]) 1 function(r) order(-r)[1]))(m lt- cm (test$class predicted))1 - sum(diag(m)) sum(m)
Анализ по главным компонентам (Principal Component Analysis PCA)Известно четыре базовых версии методаbull аппроксимировать данные линейными многообразиями меньшей
размерностиbull найти подпространства меньшей размерности в ортогональной проекции
на которые разброс данных (то есть среднеквадратичное отклонение от среднего значения) максимален
bull найти подпространства меньшей размерности в ортогональной проекции на которые среднеквадратичное расстояние между точками максимально
bull для данной многомерной случайной величины построить такое ортогональное преобразование координат в результате которого корреляции между отдельными координатами обратятся в нуль
В основе задача наилучшей аппроксимации конечного множества точек прямыми и плоскостями (Пирсон 1901) Дано конечное множество векторов для каждого k=01hellipn-1 среди всех k-мерных линейных многообразий в Rn найти такое что сумма квадратов уклонений минимальна
bull Графическая иллюстрация метода главных компонент в 3D
Алгоритм
bull Централизация данных
bull Находим первую главную компоненту
bull Вычитаем проекцию на нее
bull Находим вторую главную компоненту
bull Вычитаем проекцию на (k-1) главную компоненту
bull Находим k-ую главную компоненту
bull Всегда выполняется условие ортогональности
princomp(formula data = NULL subset naaction )formula a formula with no response variable referring only to numeric variables
data an optional data frame (or similar see modelframe) containing the variables in the formula formula By default the variables are taken from environment(formula)
subset an optional vector used to select rows (observations) of the data matrix x
naaction a function which indicates what should happen when the data contain NAs The default is set by the naaction setting of options and is nafail if that is unset The lsquofactory-freshrsquo default is naomit
x a numeric matrix or data frame which provides the data for the principal components analysis
cor a logical value indicating whether the calculation should use the correlation matrix or the covariance matrix (The correlation matrix can only be used if there are no constant variables)
scores a logical value indicating whether the score on each principal component should be calculated
covmat a covariance matrix or a covariance list as returned by covwt (and covmve or covmcd from package MASS) If supplied this is used rather than the covariance matrix of x
arguments passed to or from other methods If x is a formula one might specify cor or scores
object Object of class inheriting from princomp
newdata An optional data frame or matrix in which to look for variables with which to predict If omitted the scores are used If the original fit used a formula or a data frame or a matrix with column names newdata must contain columns with the same names Otherwise it must contain the same number of columns to be used in the same order
Principal Component Analysis (PCA)plt-princomp(train[12])train_pca lt- dataframe(p$scores)train_pca$class lt- train$class
Compare the alignment of the clusters to the axis in the feature space versus the transformed space
r2 lt- rpart(class ~ Comp1 + Comp2 data = train_pca)
Линейный дискриминантный анализ (Linear Discriminant Analysis - LDA)bull Для каждого образца объекта или события с известным классом y
рассматривается набор наблюдений x (называемых ещё признаками переменными или измерениями) Набор таких образцов называется обучающей выборкой (или набором обучения обучением) Задачи классификации состоит в том чтобы построить хороший прогноз класса y для всякого так же распределённого объекта (не обязательно содержащегося в обучающей выборке) имея только наблюдения x Основная идея состоит в сравнении распределений для каждого из классов Расстоянием (по Фишеру) между распределениями принято считать отношение межклассовой дисперсии к внутриклассовой
bull Оптимальное байесовское решение - относить точки ко второму классу если отношение правдоподобия ниже некоторого порогового значения T
bull Предполагая что выполнена нормировка
bull Решение записывается в виде неравенства для скалярного произведения
bull Здесь laquoизмерительныйraquo вектор равен
bull с- дискриминантный порог
lda(x grouping prior = proportions tol = 10e-4 method CV = FALSE nu )
formula A formula of the form groups ~ x1 + x2 + That is the response is the grouping factor and the right hand side specifies the (non-factor) discriminators
data Data frame from which variables specified in formula are preferentially to be taken
x (required if no formula is given as the principal argument) a matrix or data frame or Matrix containing the explanatory variables
grouping (required if no formula principal argument is given) a factor specifying the class for each observation
prior the prior probabilities of class membership If unspecified the class proportions for the training set are used If present the probabilities should be specified in the order of the factor levels
tol A tolerance to decide if a matrix is singular it will reject variables and linear combinations of unit-variance variables whose variance is less than tol^2
subset An index vector specifying the cases to be used in the training sample (NOTE If given this argument must be named)
naaction A function to specify the action to be taken if NAs are found The default action is for the procedure to fail An alternative is naomit which leads to rejection of cases with missing values on any required variable (NOTE If given this argument must be named)
method moment for standard estimators of the mean and variance mle for MLEs mve to use covmve or t for robust estimates based on a t distribution
CV If true returns results (classes and posterior probabilities) for leave-one-out cross-validation Note that if the prior is estimated the proportions in the whole dataset are used
nu degrees of freedom for method = t
arguments passed to or from other methods
prior the prior probabilities usedmeans the group meansscaling a matrix which transforms observations to
discriminant functions normalized so that within groups covariance matrix is spherical
svd the singular values which give the ratio of the between- and within-group standard deviations on the linear discriminant variables Their squares are the canonical F-statistics
N The number of observations usedcall The (matched) function call
An object of class lda containing the following components
Метод опорных векторов (Support Vector Machines - SVM)Относится к ML с учителем и использует линейные разделяющие поверхности
Идея алгоритма
bull По обучающей выборке
bull Строится классифицирующая функция
bull Используя гиперплоскость
bull Поиск коэффициентов сводится к максимизации
расстояний от опорных векторов или минимизации
Иллюстрация на простейшем примере
>
Производится вложение обучающей выборки в пространство более высокой размерности Х с помощью нелинейной функции так чтобы обеспечит линейную разделимость в Х
Разделяющая функция тогда имеет вид
Функция называется ядром
Полиномиальное ядро
Радиальная базисная функция
Сигмоид
Линейная неразделимость и использование ядер
Иллюстрация использования ядра для отображения 2D -gt 3D
>
svm((formula data = NULL subset naaction =naomit scale = TRUE))
formulaa symbolic description of the model to be fitdataan optional data frame containing the variables in the model By default the variables are taken from the environment which lsquosvmrsquo is called fromxa data matrix a vector or a sparse matrix (object of class Matrix provided by the Matrix package or of class matrixcsr provided by the SparseM package or of class simple_triplet_matrix provided by the slam package)ya response vector with one label for each rowcomponent of x Can be either a factor (for classification tasks) or a numeric vector (for regression)scaleA logical vector indicating the variables to be scaled If scale is of length 1 the value is recycled as many times as needed Per default data are scaled internally (both x and y variables) to zero mean and unit variance The center and scale values are returned and used for later predictionstypesvm can be used as a classification machine as a regression machine or for novelty detection Depending of whether y is a factor or not the default setting for type is C-classification or eps-regression respectively but may be overwritten by setting an explicit valueValid options areC-classificationnu-classificationone-classification (for novelty detection)eps-regressionnu-regression
Support Vector Machines
s lt- svm( I(factor(class)) ~ x + y data = train cost = 100 gama = 1)
Package lsquodeepnetrsquo February 19 2015 Type Package Title deep learning toolkit in R Version 02 Date 2014-03-20 Author Xiao Rong Maintainer Xiao Rong Description Implement some deep learning architectures and neural network algorithms including BPRBMDBNDeep autoencoder and so on License GPL NeedsCompilation no Repository CRAN DatePublication 2014-03-20 100343
laquoВ 1997 году Deep Blue обыграл в шахматы КаспароваВ 2011 Watson обставил чемпионов JeopardyСможет ли ваш алгоритм в 2013 году отличить Бобика от ПушистикаraquoKaggle Competitions Details
Сегодня уже можно ответить laquoдаraquo mdash десятка лидеров справилась с заданием на 988
Распознавание основано на feature detection и последующем различении комбинаций
Заранее неизвестно какие части картинки могут использоваться как хорошие features В их роли может выступать все что угодно mdash фрагменты изображения форма размер или цвет Feature может не присутствовать на картинке сама а выражаться в параметре полученным каким-то образом из исходных данных
Распознавание рукописных цифр
Еще пример посложнее
Использование нейронной сети с обучениемОбучение такой нейронной сети производится обычно методом обратного распространения ошибки таким образом чтобы минимизировать среднеквадратическую ошибку отклика сети на обучающей выборке Таким образом обучающая выборка содержит пары векторов признаков (входные данные) и эталонных векторов (маркированные данные) (x y)
Сверхвысокая размерность при работе с первичным представлением пикселями
Пиксельное кодирование
Принцип иерархии понятий ndash основа deep learning
bull Все вещи состоят из других маленьких и более элементарных вещей
bull Как извлекать features Гипотеза малоразмерных многообразий
Разреженное (sparse) кодирование
первый уровень иерархии состоит из элементов словаря этого кода которые представляют собой штрихи и границы
Словарь для лиц
Выделение объектов заданного класса
Основные архитектуры Deep Learningbull Deep neural networks (DNN)bull Deep belief networks (DBN)bull Convolutional neural networks (CNN)bull Deep Boltzmann Machines (DBM)bull Stacked (Denoising) Auto-Encodersbull Deep Stacking Networksbull Tensor Deep Stacking Networks (T-DSN)bull Spike-and-Slab RBMs (ssRBMs)bull Compound Hierarchical-Deep Modelsbull Deep Coding Networks (DPCN)bull Deep Kernel Machinesbull Deep Q-Networks (2015 г)
Задача классификации распознавания и подобные являются задачей конструирования функции на множестве входных наборов и со значениями в множестве требуемого вида выходных
bull Норбертом Винером было показано что любая функция может быть сколь угодно точно композицией двух (он использовал функции полином Лагранжа и функцию Лагерра)
bull Соответствует двухслойной нейросетиbull Архитектуры Deep Learning соответствуют представлению
bull Обеспечивают эффективную параметризацию при решении конкретных задач Более сложные функции создаются из большего числа но более эффективно настраиваемых laquoкирпичиковraquo Пример ndash синтез булевых функций Дерево вентилей эффективнее двухслойной схемы
Фактор - графыВсе методы которые расмотрели ndash не DL Даже деревья классификации Все операции в одном входном словаре
DL можно определить по фактор-графу
Например
bull Еще одна сторона DL - нередко использует невыпуклые функции потерьbull Обучение на основе выпуклых функций не зависит от порядка
предъявления данных для обучения Все определяет асимптотика всего train - набора В алгоритмах DL порядок данных в обучающей выборке может иметь значение
bull Многие решения в DL не доказаны математически и являются успешными эвристиками
bull Большой простор для прикладной математики Может рассматриваться как фактор-граф с группами латентных переменных
bull В настоящее время стал основной технологией в распознавании речи (speech recognition) и машинном зрении (computer vision) начал применяться в обработке текстов (natural language processing)
bull Основная идея ndash применение нелинейного отображения входного набора в более высокоразмерное пространство где многие неразделимые композиции становятся разделимыми а затем объединение композиций по семантической близости
Подход разреженного кодирования
Обобщенная архитектура
bull DL сеть может быть собрана каскадированием и использованием обучения с учителем
Здесь используется forward propagation для обучения
Для настройки коэффициентов используется метод fprof для каждого
Требуется знание градиента энергии
Элементы (kl) матрицы Якобиана
Требуется знание градиента энергии 120597119864120597119882119894 = 120597119864120597119883119894120597119865119894(119883119894minus1119882119894)120597119882119894
ሾ1times 119873119908ሿ= ሾ1times 119873119909ሿlowast[119873119909 times 119873119908] Элементы (kl) матрицы Якобиана
Сводится к рекуррентному соотношению для вычисления градиента 120597119864120597119883119894minus1 = 120597119864120597119883119894120597119865119894(119883119894minus1119882119894)120597119883119894minus1
В итоге
Для вычисления градиента может использоваться метод back propagation
В действительности работают любые архитектуры построения функции Нужно конструировать связи и функции блоков
Язык Torch 7 ndash современный инструмент моделирования и имплементации
Machine Learning with Torch7 (httpcodecogbitscomwikidokuphpid=start)
bull These tutorials were originally designed for the IPAM Summer School on Deep Learning more info herebull This wiki provides multiple tutorials with the overall objective of teaching you how to do machine learning
with Torch7bull Torch7 provides a Matlab-like environment for state-of-the-art machine learning algorithms It is easy to use
and provides a very efficient implementation thanks to an easy and fast scripting language (LuaJIT) and an underlying C implementation
bull These tutorials should be readdone in orderbull Tutorial 1 Setup Basics Getting Startedbull Tutorial 2 Supervised Learningbull Tutorial 3 Unsupervised Learningbull Tutorial 4 Graphical Modelsbull Tutorial 5 Creating New Modulesbull Tutorial 6 Using CUDAbull To follow these tutorials and do the exercises you will need to download the associated code which is hosted
on GitHub on this page In this repository each directory corresponds to a tutorial herebull starttxt middot Last modified 20140204 2246 by clement
Torch 7 является расширением Lua
What is LuaLua is a powerful fast lightweight embeddable scripting languageLua combines simple procedural syntax with powerful data description constructs based on associative arrays and extensible semantics Lua is dynamically typed runs by interpreting bytecode for a register-based virtual machine and has automatic memory management with incremental garbage collection making it ideal for configuration scripting and rapid prototyping
Why choose LuaLua is a proven robust languageLua has been used in many industrial applications (eg Adobes Photoshop Lightroom) with an emphasis on embedded systems (eg the Ginga middleware for digital TV in Brazil) and games (eg World of Warcraft and Angry Birds) Lua is currently the leading scripting language in games Lua has a solid reference manual and there are several books about it Several versions of Lua have been released and used in real applications since its creation in 1993 Lua featured in HOPL III the Third ACM SIGPLAN History of Programming Languages Conference in June 2007 Lua won the Front Line Award 2011 from the Game Developers Magazine
Свертка и архитектура 4-х уровневой сверточной сети
Функциональная структура
Примеры успешного применения сверточных сетей
Диагностика эпилепсии по ЭЭГ
Реализация сверточной сетью
Одна из самых больших сверточных сетейbull Krizhevsky Sutskever Hinton 2012bull 650 000 нейронов 832 000 000 синапсов 60 000000 пареметровbull Использовался backprop на GPUbull Обучающая выборка на материалах 20 летbull Купил Google в январе 2013bull В мае 2013 развернул как сервис Photo Tagging Google+
Пример тэгирования
Пример поиска похожих по изображению
Пример поиска в коллекции изображений по текстовому запросу
Пример laquoоблачногоraquo классификатора изображений
Самообучающиеся нейронные сети на основе минимизации функции энергииbull Применима к сетям с обратными связямиbull Конструирование функции энергии должно обеспечивать
laquoконтрастностьraquo разделения
bull Энергетическая функция может Неформально рассматриваться как отрицательный логарифм плотности вероятности
Y 2=(Y1)2
RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцмана
bull Из DBM cтроится Deep Belief Network (DBN)
bull w mdash вес между нейронами
bull b mdash смещение нейрона
bull s mdash состояние нейрона
Алгоритм обучения Contrastive Divergence (CD)bull w_ij mdash веc между i-ым нейроном Вероятность пар может быть представлена как
bull a_i mdash смещение видимого нейрона
bull b_j mdash смещение скрытого нейрона
bull v_i mdash состояние видимого нейрона
bull h_j mdash состояние скрытого нейрона Полная вероятность состояния видимых нейронов
Основные уравнения адаптации
Алгоритм Хинтона - Contrastive Divergence (CD-k)
1 состояние видимых нейронов приравнивается к входному образу2 выводятся вероятности состояний скрытого слоя3 каждому нейрону скрытого слоя ставится в соответствие состояние laquo1raquo с вероятностью равной его текущему состоянию4 выводятся вероятности видимого слоя на основании скрытого5 если текущая итерация меньше k то возврат к шагу 26 выводятся вероятности состояний скрытого слоя
darch Package for deep architectures and Restricted-Bolzmann-MachinesThe darch package is build on the basis of the code from G E Hinton and R R Salakhutdinov (available under Matlab Code for deep belief nets last visit 01082013) This package is for generating neural networks with many layers (deep architectures) and train them with the method introduced by the publications A fast learning algorithm for deep belief nets (G E Hinton S Osindero Y W Teh) and Reducing the dimensionality of data with neural networks (G E Hinton R R Salakhutdinov) This method includes a pre training with the contrastive divergence method publishing by GE Hinton (2002) and a fine tuning with common known training algorithms like backpropagation or conjugate gradient
bull Version 091bull Imports futilelogger ff methodsbull Published 2014-03-16bull Author Martin Dreesbull Maintainer Martin Drees ltmdrees at studfh-dortmunddegtbull License GPL-2bull URL httpgithubcommaddin79darchbull NeedsCompilation nobull Materials READMEbull CRAN checks darch results
Связь плотности вероятности и энергии
Используется распределение Гиббса
Задача обучения с точки минимизации энергии сети
bull Сконструировать функцию энергии с малыми значениями на обучающей выборке и с большими значениями всюду вне этого множества
bull Первое несложно а второе представляет задачу процесса обучения
Интуитивные соображения
Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decomposition LISTA ndashметоды использующие разреженные коды
Латентная переменная Z =argmin_z Distance[Decoder(Z)Y]+FactorB(Z)MAPminimaize sum of factors
Автоэнкодер (auto encoder) Автоэнкодер представляет собой алгоритм обучения без учителя который использует нейронную сеть и метод обратного распространения ошибки для того чтобы добиться того что входной вектор признаков вызывал отклик сети равный входному вектору те y = x Автоэнкодер пытается построить функцию h(x) = x
Архитекттура ICA моделей
Итеративные алгоритмы с оптимальным разреженным кодированием ISTAFISTA
Самоорганизация данных методами Deep Learning
>
Знакомство с пакетом deepnet
Назначение
Составdbndnntrain - обучение сети с архитектурой DBN (deep belief network)loadmnist - формирование данных из файлов MNISTnnpredict - предсказание новых выборок на обученной нейронной сетиnntest ndash тестирование обученной нейронной сети с возвращением значения ошибкиnntrain ndash обучение одностлойной или многослойной нейронной сети методом backproprbmdown ndash генерирование видимого вектора для скрытых состояний сети RBMrbmtrain ndash обучение сети RBMrbmup ndash извлечение скрытых состояний RBM по известным видимым состояниямsaednntrain ndash обучение нейронной сети с архитектурой stacked autoencoder
Прогнозирование (классификация) нейронной сетью с архитектурой stacked auto encoder
Argumentsbull x matrix of x values for examplesbull y vector or matrix of target values for examplesbull hidden vector for number of units of hidden layersDefault is c(10)bull activationfun activation function of hidden unitCan be sigmlinear or tanhDefault isbull sigm for logistic functionbull learningrate learning rate for gradient descent Default is 08bull momentum momentum for gradient descent Default is 05 bull learningrate_scalebull learning rate will be mutiplied by this scale after every iteration Default is 1 bull numepochs number of iteration for samples Default is 3bull batchsize size of mini-batch Default is 100bull output function of output unit can be sigmlinear or softmax Default is sigmbull sae_output function of autoencoder output unit can be sigmlinear or softmax Defaultbull is linearbull hidden_dropout drop out fraction for hidden layer Default is 0bull visible_dropoutbull drop out fraction for input layer Default is 0
Что такое MNISTbull Смешанный набор данных Национального института стандартов и
технологий (mixed National Institute of Standards and Technology MNIST) был создан исследователями IR в качестве эталона для сравнения различных алгоритмов IR
bull Набор данных состоит всего из 70 000 изображений 60 000 обучающих (используемых для создания модели IR) и 10 000 тестовых (применяемых для оценки точности модели) Каждое изображение MNIST mdash это оцифрованная картинка одной цифры написанной от руки Каждое изображение имеет размер 28 times 28 пикселей Каждое значение пикселя лежит в диапазоне от 0 (представляет белый цвет) до 255 (представляет черный цвет) Промежуточные значения отражают оттенки серого
httpyannlecuncomexdbmnistобучающие и тестовые данные хранятся в двух файлах а не в одном Один файл содержит значения пикселей для изображений а другой mdash метки изображений (0ndash9) Каждый из четырех файлов также содержит заголовочную информацию и все они хранятся в двоичном формате сжатом в формате gziptrain-images-idx3-ubytegz training set images (9912422 bytes)
train-labels-idx1-ubytegz training set labels (28881 bytes)
t10k-images-idx3-ubytegz test set images (1648877 bytes)
t10k-labels-idx1-ubytegz test set labels (4542 bytes)
bull Каждая строка файла представляет собой имидж размера 28 times 28 вектором длины 784 каждый признак ndash значение пиксела в черно-белой шале Первый столбец содержит метку цифры 0ndash9 следующие 2828 столбцов представляют целый имидж и так далее Пример первой строки
Визуализация
bull plotmnist()bull mnistbull paramsbull train$n number of train samplesbull train$x pix of every train sample imagebull train$y label of every train sample imagebull train$yy one-of-c vector of label of train sample imagebull test$n number of test samplesbull test$x pix of every test sample imagebull test$y label of every test sample imagebull test$yy one-of-c vector of label of test sample image
plotmnist()
Распознавание рукописных цифр в deepnet
another way to download the MNIST datasetmnist downloadmnist(range=c(01)global=FALSE)look at MNIST datamnist$train$xmnist$train$ymnist$test$xmnist$test$ytrain of the sae neural networkdnnlt-saednntrain(mnist$train$xmnist$train$yhidden=c(55))test of the sae neural networknntest(dnnmnist$test$xmnist$test$yt=05)
End of slides part 2 (Part 3 - NLP remaining)
Vladimirvkrylovgmailcom
Основы предиктивной аналитики Часть вторая
Применение методов Machine Learning к решению задач аналитики
Дмитрий Ветров кандидат физико-математических наук ру
Методы обучающихся машин для аналитики которые мы рассмотрим
Сначала нужно загрузить несколько пакетов (packages) для поддер
Данные для анализа
Скрипт для генерации
Данные которые мы будем использовать для демо состоят из смес
Так выглядят визуализированные данные сгенерированные скриптом
Разделение данных на обучающие и проверочные является важным эт
K-means алгоритм на пальцах
Обучающаяся машина без учителя Алгоритм K-means
Slide 13
Slide 14
Здесь мы используем заранее известный факт что необходимо кла
Еще одна иллюстрация работы алгоритма K-means
Обучающаяся машина без учителя Алгоритм KNN (Nearest Neighbor)
Как работает алгоритм KNN
knn(train test cl k = 1 l = 0 prob = FALSE useall = TRUE
Slide 20
Результаты кластеризации и зависимость ошибки от числа кластеро
Recursive PartitioningRegression Tree
Метод RP реализует обучение машины строить дерево решений по об
Recursive PartitioningRegression Tree (2)
rpart(formula data weights subset naaction = narpart met
Slide 26
Recursive PartitioningRegression Tree example
Анализ по главным компонентам (Principal Component Analysis PC
Итеративные алгоритмы с оптимальным разреженным кодированием IS
Самоорганизация данных методами Deep Learning
Знакомство с пакетом deepnet
Прогнозирование (классификация) нейронной сетью с архитектурой
Arguments
Архитектура сети SAE
Архитектура с 5Х4 hidden 3 outs
Example
Анализ обучающего набора данных
Параметры SAE сети
Коэффициенты связей
Предсказание обученной сетью
Сравнение обучающей и тестовой выборки
plot3d(xy)
Работаем с пакетом MNIST
httpyannlecuncomexdbmnist
Подготовка к обработке
Slide 118
Визуализация
plotmnist()
Распознавание рукописных цифр в deepnet
End of slides part 2 (Part 3 - NLP remaining)
K-means алгоритм на пальцах
>
Обучающаяся машина без учителя Алгоритм K-meansАлгоритм K-meansЭтап 1 Первоначальное распределение объектов по кластерамbull Выбор случайным образом k точек данных из D как начальное множество представителей
кластера Cbull Распределение объектов по кластерам в соответствие с формулой
Этап 2 Перераспределение срединных элементовbull Вычисление центра для каждого кластераbull Перераспределение объектов по кластерамbull Алгоритм завершается когда на какой-то итерации не происходит изменения центра масс
кластеров Это происходит за конечное число итераций так как количество возможных разбиений конечного множества конечно а на каждом шаге суммарное квадратичное отклонение Cost не увеличивается поэтому зацикливание невозможно
x numeric matrix of data or an object that can be coerced to such a matrix (such as a numeric vector or a data frame with all numeric columns)
centers either the number of clusters say k or a set of initial (distinct) cluster centres If a number a random set of (distinct) rows in x is chosen as the initial centres
itermax the maximum number of iterations allowed
nstart if centers is a number how many random sets should be chosen
algorithm character may be abbreviated Note that Lloyd andForgy are alternative names for one algorithm
object an R object of class kmeans typically the result obof ob lt- kmeans()
method character may be abbreviated centers causesfitted to return cluster centers (one for each input point) and classes causes fitted to return a vector of class assignments
trace logical or integer number currently only used in the default method (Hartigan-Wong) if positive (or true) tracing information on the progress of the algorithm is produced Higher values may produce more tracing information
Обучающаяся машина без учителя Алгоритм KNN (Nearest Neighbor)Алгоритм KNN Основным принципом метода ближайших соседей является то что объект присваивается тому классу который является наиболее распространённым среди соседей данного элементаДля классификации каждого из объектов тестовой выборки
необходимо последовательно выполнить следующие операцииВычислить расстояние до каждого из объектов обучающей выборки
Отобрать k объектов обучающей выборки расстояние до которых минимально
Класс классифицируемого объекта mdash это класс наиболее часто встречающийся среди k ближайших соседей
Как работает алгоритм KNN
>
knn(train test cl k = 1 l = 0 prob = FALSE useall = TRUE)
train matrix or data frame of training set cases
test matrix or data frame of test set cases A vector will be interpreted as a row vector for a single case
cl factor of true classifications of training set
k number of neighbours considered
l minimum vote for definite decision otherwise doubt (More precisely less than k-l dissenting votes are allowed even if k is increased by ties)
prob If this is true the proportion of the votes for the winning class are returned as attribute prob
useall controls handling of ties If true all distances equal to the kth largest are included If false a random selection of distances equal to the kth is chosen to use exactly k neighbours
Here we demonstrate the bias-variance tradeoff as we increase k
err lt- matrix(nrow=N100 ncol=2)for (i in 1nrow(err))
k lt- i 4test$predicted_class lt- knn(train[12] test[12] train$class k=k)mlt-cm(test$class test$predicted_class)err[i] lt- c(k 1 - sum(diag(m)) sum(m))
plot (err)
Результаты кластеризации и зависимость ошибки от числа кластеров
actualpredicted A B C A 272 0 7 B 1 308 1 C 31 0 280
gt m
Recursive PartitioningRegression Treebull Основано на дереве решений представляющем граф бинарной
последовательной классификации по тест-вопросам в каждой вершине графа Листья дерева ассоциируются с результатами классификации
Метод RP реализует обучение машины строить дерево решений по обучающей выборке данных
bull laquoРасщеплениеraquo обучающих данныхМножество данных в каждом узле разделяется на два соответствующих ответам TRUE или FALSE Вопросы должны порождать бинарное разбиение множества Для числовых характеристик это обычно неравенства характеристика Xn меньше или равна значению Ym
bull Конструирование тест-вопросовПринцип putity measurement ndash очищающих измерений Каждая характеристика анализируется статистически для каждого разбиения и выбирается наилучшее по чистоте разделенияbull Критерий остановкиЧтобы избежать переобучения используется либо порог чистоты либо максимальное число узлов либо минимальное число наблюдений в узле
Recursive PartitioningRegression Tree
Пример расщепления обучающей выборки
rpart(formula data weights subset naaction = narpart method model = FALSE x = FALSE y = TRUE parms control cost )
formula a formula with a response but no interaction terms If this a a data frome that is taken as the model frame (see modelframe)
data an optional data frame in which to interpret the variables named in the formula
weights optional case weights
subset optional expression saying that only a subset of the rows of the data should be used in the fit
naaction the default action deletes all observations for which y is missing but keeps those in which one or more predictors are missing method one of anova poisson class or exp If method is missing then the routine tries to make an intelligent guess If y is a survival object then method = exp is assumed if y has 2 columns then method = poisson is assumed if y is a factor then method = class is assumed otherwise method = anova is assumed It is wisest to specify the method directly especially as more criteria may added to the function in future Alternatively method can be a list of functions named init split and eval Examples are given in the file lsquotestsusersplitsRrsquo in the sources and in the vignettes lsquoUser Written Split Functionsrsquo
model if logical keep a copy of the model frame in the result If the input value for model is a model frame (likely from an earlier call to the rpart function) then this frame is used rather than constructing new data
x keep a copy of the x matrix in the result
y keep a copy of the dependent variable in the result If missing and model is supplied this defaults to FALSE
parms optional parameters for the splitting function Anova splitting has no parameters Poisson splitting has a single parameter the coefficient of variation of the prior distribution on the rates The default value is 1 Exponential splitting has the same parameter as Poisson For classification splitting the list can contain any of the vector of prior probabilities (component prior) the loss matrix (component loss) or the splitting index (component split) The priors must be positive and sum to 1 The loss matrix must have zeros on the diagonal and positive off-diagonal elements The splitting index can be gini or information The default priors are proportional to the data counts the losses default to 1 and the split defaults to gini
control a list of options that control details of the rpart algorithm See rpartcontrol
cost a vector of non-negative costs one for each variable in the model Defaults to one for all variables These are scalings to be applied when considering splits so the improvement on splitting on a variable is divided by its cost in deciding which split to choose arguments to rpartcontrol may also be specified in the call to rpart They are checked against the list of valid arguments
Recursive PartitioningRegression Tree example(r lt- rpart(class ~ x + y data = train))plot(r)text(r)
Here we look at the confusion matrix and overall error rate from applying the tree rules to the training datapredicted lt- asnumeric(apply(predict(r) 1 function(r) order(-r)[1]))(m lt- cm (train$class predicted))1 - sum(diag(m)) sum(m)
And by comparison against the test datapredicted lt- asnumeric(apply(predict(r test[12]) 1 function(r) order(-r)[1]))(m lt- cm (test$class predicted))1 - sum(diag(m)) sum(m)
Анализ по главным компонентам (Principal Component Analysis PCA)Известно четыре базовых версии методаbull аппроксимировать данные линейными многообразиями меньшей
размерностиbull найти подпространства меньшей размерности в ортогональной проекции
на которые разброс данных (то есть среднеквадратичное отклонение от среднего значения) максимален
bull найти подпространства меньшей размерности в ортогональной проекции на которые среднеквадратичное расстояние между точками максимально
bull для данной многомерной случайной величины построить такое ортогональное преобразование координат в результате которого корреляции между отдельными координатами обратятся в нуль
В основе задача наилучшей аппроксимации конечного множества точек прямыми и плоскостями (Пирсон 1901) Дано конечное множество векторов для каждого k=01hellipn-1 среди всех k-мерных линейных многообразий в Rn найти такое что сумма квадратов уклонений минимальна
bull Графическая иллюстрация метода главных компонент в 3D
Алгоритм
bull Централизация данных
bull Находим первую главную компоненту
bull Вычитаем проекцию на нее
bull Находим вторую главную компоненту
bull Вычитаем проекцию на (k-1) главную компоненту
bull Находим k-ую главную компоненту
bull Всегда выполняется условие ортогональности
princomp(formula data = NULL subset naaction )formula a formula with no response variable referring only to numeric variables
data an optional data frame (or similar see modelframe) containing the variables in the formula formula By default the variables are taken from environment(formula)
subset an optional vector used to select rows (observations) of the data matrix x
naaction a function which indicates what should happen when the data contain NAs The default is set by the naaction setting of options and is nafail if that is unset The lsquofactory-freshrsquo default is naomit
x a numeric matrix or data frame which provides the data for the principal components analysis
cor a logical value indicating whether the calculation should use the correlation matrix or the covariance matrix (The correlation matrix can only be used if there are no constant variables)
scores a logical value indicating whether the score on each principal component should be calculated
covmat a covariance matrix or a covariance list as returned by covwt (and covmve or covmcd from package MASS) If supplied this is used rather than the covariance matrix of x
arguments passed to or from other methods If x is a formula one might specify cor or scores
object Object of class inheriting from princomp
newdata An optional data frame or matrix in which to look for variables with which to predict If omitted the scores are used If the original fit used a formula or a data frame or a matrix with column names newdata must contain columns with the same names Otherwise it must contain the same number of columns to be used in the same order
Principal Component Analysis (PCA)plt-princomp(train[12])train_pca lt- dataframe(p$scores)train_pca$class lt- train$class
Compare the alignment of the clusters to the axis in the feature space versus the transformed space
r2 lt- rpart(class ~ Comp1 + Comp2 data = train_pca)
Линейный дискриминантный анализ (Linear Discriminant Analysis - LDA)bull Для каждого образца объекта или события с известным классом y
рассматривается набор наблюдений x (называемых ещё признаками переменными или измерениями) Набор таких образцов называется обучающей выборкой (или набором обучения обучением) Задачи классификации состоит в том чтобы построить хороший прогноз класса y для всякого так же распределённого объекта (не обязательно содержащегося в обучающей выборке) имея только наблюдения x Основная идея состоит в сравнении распределений для каждого из классов Расстоянием (по Фишеру) между распределениями принято считать отношение межклассовой дисперсии к внутриклассовой
bull Оптимальное байесовское решение - относить точки ко второму классу если отношение правдоподобия ниже некоторого порогового значения T
bull Предполагая что выполнена нормировка
bull Решение записывается в виде неравенства для скалярного произведения
bull Здесь laquoизмерительныйraquo вектор равен
bull с- дискриминантный порог
lda(x grouping prior = proportions tol = 10e-4 method CV = FALSE nu )
formula A formula of the form groups ~ x1 + x2 + That is the response is the grouping factor and the right hand side specifies the (non-factor) discriminators
data Data frame from which variables specified in formula are preferentially to be taken
x (required if no formula is given as the principal argument) a matrix or data frame or Matrix containing the explanatory variables
grouping (required if no formula principal argument is given) a factor specifying the class for each observation
prior the prior probabilities of class membership If unspecified the class proportions for the training set are used If present the probabilities should be specified in the order of the factor levels
tol A tolerance to decide if a matrix is singular it will reject variables and linear combinations of unit-variance variables whose variance is less than tol^2
subset An index vector specifying the cases to be used in the training sample (NOTE If given this argument must be named)
naaction A function to specify the action to be taken if NAs are found The default action is for the procedure to fail An alternative is naomit which leads to rejection of cases with missing values on any required variable (NOTE If given this argument must be named)
method moment for standard estimators of the mean and variance mle for MLEs mve to use covmve or t for robust estimates based on a t distribution
CV If true returns results (classes and posterior probabilities) for leave-one-out cross-validation Note that if the prior is estimated the proportions in the whole dataset are used
nu degrees of freedom for method = t
arguments passed to or from other methods
prior the prior probabilities usedmeans the group meansscaling a matrix which transforms observations to
discriminant functions normalized so that within groups covariance matrix is spherical
svd the singular values which give the ratio of the between- and within-group standard deviations on the linear discriminant variables Their squares are the canonical F-statistics
N The number of observations usedcall The (matched) function call
An object of class lda containing the following components
Метод опорных векторов (Support Vector Machines - SVM)Относится к ML с учителем и использует линейные разделяющие поверхности
Идея алгоритма
bull По обучающей выборке
bull Строится классифицирующая функция
bull Используя гиперплоскость
bull Поиск коэффициентов сводится к максимизации
расстояний от опорных векторов или минимизации
Иллюстрация на простейшем примере
>
Производится вложение обучающей выборки в пространство более высокой размерности Х с помощью нелинейной функции так чтобы обеспечит линейную разделимость в Х
Разделяющая функция тогда имеет вид
Функция называется ядром
Полиномиальное ядро
Радиальная базисная функция
Сигмоид
Линейная неразделимость и использование ядер
Иллюстрация использования ядра для отображения 2D -gt 3D
>
svm((formula data = NULL subset naaction =naomit scale = TRUE))
formulaa symbolic description of the model to be fitdataan optional data frame containing the variables in the model By default the variables are taken from the environment which lsquosvmrsquo is called fromxa data matrix a vector or a sparse matrix (object of class Matrix provided by the Matrix package or of class matrixcsr provided by the SparseM package or of class simple_triplet_matrix provided by the slam package)ya response vector with one label for each rowcomponent of x Can be either a factor (for classification tasks) or a numeric vector (for regression)scaleA logical vector indicating the variables to be scaled If scale is of length 1 the value is recycled as many times as needed Per default data are scaled internally (both x and y variables) to zero mean and unit variance The center and scale values are returned and used for later predictionstypesvm can be used as a classification machine as a regression machine or for novelty detection Depending of whether y is a factor or not the default setting for type is C-classification or eps-regression respectively but may be overwritten by setting an explicit valueValid options areC-classificationnu-classificationone-classification (for novelty detection)eps-regressionnu-regression
Support Vector Machines
s lt- svm( I(factor(class)) ~ x + y data = train cost = 100 gama = 1)
Package lsquodeepnetrsquo February 19 2015 Type Package Title deep learning toolkit in R Version 02 Date 2014-03-20 Author Xiao Rong Maintainer Xiao Rong Description Implement some deep learning architectures and neural network algorithms including BPRBMDBNDeep autoencoder and so on License GPL NeedsCompilation no Repository CRAN DatePublication 2014-03-20 100343
laquoВ 1997 году Deep Blue обыграл в шахматы КаспароваВ 2011 Watson обставил чемпионов JeopardyСможет ли ваш алгоритм в 2013 году отличить Бобика от ПушистикаraquoKaggle Competitions Details
Сегодня уже можно ответить laquoдаraquo mdash десятка лидеров справилась с заданием на 988
Распознавание основано на feature detection и последующем различении комбинаций
Заранее неизвестно какие части картинки могут использоваться как хорошие features В их роли может выступать все что угодно mdash фрагменты изображения форма размер или цвет Feature может не присутствовать на картинке сама а выражаться в параметре полученным каким-то образом из исходных данных
Распознавание рукописных цифр
Еще пример посложнее
Использование нейронной сети с обучениемОбучение такой нейронной сети производится обычно методом обратного распространения ошибки таким образом чтобы минимизировать среднеквадратическую ошибку отклика сети на обучающей выборке Таким образом обучающая выборка содержит пары векторов признаков (входные данные) и эталонных векторов (маркированные данные) (x y)
Сверхвысокая размерность при работе с первичным представлением пикселями
Пиксельное кодирование
Принцип иерархии понятий ndash основа deep learning
bull Все вещи состоят из других маленьких и более элементарных вещей
bull Как извлекать features Гипотеза малоразмерных многообразий
Разреженное (sparse) кодирование
первый уровень иерархии состоит из элементов словаря этого кода которые представляют собой штрихи и границы
Словарь для лиц
Выделение объектов заданного класса
Основные архитектуры Deep Learningbull Deep neural networks (DNN)bull Deep belief networks (DBN)bull Convolutional neural networks (CNN)bull Deep Boltzmann Machines (DBM)bull Stacked (Denoising) Auto-Encodersbull Deep Stacking Networksbull Tensor Deep Stacking Networks (T-DSN)bull Spike-and-Slab RBMs (ssRBMs)bull Compound Hierarchical-Deep Modelsbull Deep Coding Networks (DPCN)bull Deep Kernel Machinesbull Deep Q-Networks (2015 г)
Задача классификации распознавания и подобные являются задачей конструирования функции на множестве входных наборов и со значениями в множестве требуемого вида выходных
bull Норбертом Винером было показано что любая функция может быть сколь угодно точно композицией двух (он использовал функции полином Лагранжа и функцию Лагерра)
bull Соответствует двухслойной нейросетиbull Архитектуры Deep Learning соответствуют представлению
bull Обеспечивают эффективную параметризацию при решении конкретных задач Более сложные функции создаются из большего числа но более эффективно настраиваемых laquoкирпичиковraquo Пример ndash синтез булевых функций Дерево вентилей эффективнее двухслойной схемы
Фактор - графыВсе методы которые расмотрели ndash не DL Даже деревья классификации Все операции в одном входном словаре
DL можно определить по фактор-графу
Например
bull Еще одна сторона DL - нередко использует невыпуклые функции потерьbull Обучение на основе выпуклых функций не зависит от порядка
предъявления данных для обучения Все определяет асимптотика всего train - набора В алгоритмах DL порядок данных в обучающей выборке может иметь значение
bull Многие решения в DL не доказаны математически и являются успешными эвристиками
bull Большой простор для прикладной математики Может рассматриваться как фактор-граф с группами латентных переменных
bull В настоящее время стал основной технологией в распознавании речи (speech recognition) и машинном зрении (computer vision) начал применяться в обработке текстов (natural language processing)
bull Основная идея ndash применение нелинейного отображения входного набора в более высокоразмерное пространство где многие неразделимые композиции становятся разделимыми а затем объединение композиций по семантической близости
Подход разреженного кодирования
Обобщенная архитектура
bull DL сеть может быть собрана каскадированием и использованием обучения с учителем
Здесь используется forward propagation для обучения
Для настройки коэффициентов используется метод fprof для каждого
Требуется знание градиента энергии
Элементы (kl) матрицы Якобиана
Требуется знание градиента энергии 120597119864120597119882119894 = 120597119864120597119883119894120597119865119894(119883119894minus1119882119894)120597119882119894
ሾ1times 119873119908ሿ= ሾ1times 119873119909ሿlowast[119873119909 times 119873119908] Элементы (kl) матрицы Якобиана
Сводится к рекуррентному соотношению для вычисления градиента 120597119864120597119883119894minus1 = 120597119864120597119883119894120597119865119894(119883119894minus1119882119894)120597119883119894minus1
В итоге
Для вычисления градиента может использоваться метод back propagation
В действительности работают любые архитектуры построения функции Нужно конструировать связи и функции блоков
Язык Torch 7 ndash современный инструмент моделирования и имплементации
Machine Learning with Torch7 (httpcodecogbitscomwikidokuphpid=start)
bull These tutorials were originally designed for the IPAM Summer School on Deep Learning more info herebull This wiki provides multiple tutorials with the overall objective of teaching you how to do machine learning
with Torch7bull Torch7 provides a Matlab-like environment for state-of-the-art machine learning algorithms It is easy to use
and provides a very efficient implementation thanks to an easy and fast scripting language (LuaJIT) and an underlying C implementation
bull These tutorials should be readdone in orderbull Tutorial 1 Setup Basics Getting Startedbull Tutorial 2 Supervised Learningbull Tutorial 3 Unsupervised Learningbull Tutorial 4 Graphical Modelsbull Tutorial 5 Creating New Modulesbull Tutorial 6 Using CUDAbull To follow these tutorials and do the exercises you will need to download the associated code which is hosted
on GitHub on this page In this repository each directory corresponds to a tutorial herebull starttxt middot Last modified 20140204 2246 by clement
Torch 7 является расширением Lua
What is LuaLua is a powerful fast lightweight embeddable scripting languageLua combines simple procedural syntax with powerful data description constructs based on associative arrays and extensible semantics Lua is dynamically typed runs by interpreting bytecode for a register-based virtual machine and has automatic memory management with incremental garbage collection making it ideal for configuration scripting and rapid prototyping
Why choose LuaLua is a proven robust languageLua has been used in many industrial applications (eg Adobes Photoshop Lightroom) with an emphasis on embedded systems (eg the Ginga middleware for digital TV in Brazil) and games (eg World of Warcraft and Angry Birds) Lua is currently the leading scripting language in games Lua has a solid reference manual and there are several books about it Several versions of Lua have been released and used in real applications since its creation in 1993 Lua featured in HOPL III the Third ACM SIGPLAN History of Programming Languages Conference in June 2007 Lua won the Front Line Award 2011 from the Game Developers Magazine
Свертка и архитектура 4-х уровневой сверточной сети
Функциональная структура
Примеры успешного применения сверточных сетей
Диагностика эпилепсии по ЭЭГ
Реализация сверточной сетью
Одна из самых больших сверточных сетейbull Krizhevsky Sutskever Hinton 2012bull 650 000 нейронов 832 000 000 синапсов 60 000000 пареметровbull Использовался backprop на GPUbull Обучающая выборка на материалах 20 летbull Купил Google в январе 2013bull В мае 2013 развернул как сервис Photo Tagging Google+
Пример тэгирования
Пример поиска похожих по изображению
Пример поиска в коллекции изображений по текстовому запросу
Пример laquoоблачногоraquo классификатора изображений
Самообучающиеся нейронные сети на основе минимизации функции энергииbull Применима к сетям с обратными связямиbull Конструирование функции энергии должно обеспечивать
laquoконтрастностьraquo разделения
bull Энергетическая функция может Неформально рассматриваться как отрицательный логарифм плотности вероятности
Y 2=(Y1)2
RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцмана
bull Из DBM cтроится Deep Belief Network (DBN)
bull w mdash вес между нейронами
bull b mdash смещение нейрона
bull s mdash состояние нейрона
Алгоритм обучения Contrastive Divergence (CD)bull w_ij mdash веc между i-ым нейроном Вероятность пар может быть представлена как
bull a_i mdash смещение видимого нейрона
bull b_j mdash смещение скрытого нейрона
bull v_i mdash состояние видимого нейрона
bull h_j mdash состояние скрытого нейрона Полная вероятность состояния видимых нейронов
Основные уравнения адаптации
Алгоритм Хинтона - Contrastive Divergence (CD-k)
1 состояние видимых нейронов приравнивается к входному образу2 выводятся вероятности состояний скрытого слоя3 каждому нейрону скрытого слоя ставится в соответствие состояние laquo1raquo с вероятностью равной его текущему состоянию4 выводятся вероятности видимого слоя на основании скрытого5 если текущая итерация меньше k то возврат к шагу 26 выводятся вероятности состояний скрытого слоя
darch Package for deep architectures and Restricted-Bolzmann-MachinesThe darch package is build on the basis of the code from G E Hinton and R R Salakhutdinov (available under Matlab Code for deep belief nets last visit 01082013) This package is for generating neural networks with many layers (deep architectures) and train them with the method introduced by the publications A fast learning algorithm for deep belief nets (G E Hinton S Osindero Y W Teh) and Reducing the dimensionality of data with neural networks (G E Hinton R R Salakhutdinov) This method includes a pre training with the contrastive divergence method publishing by GE Hinton (2002) and a fine tuning with common known training algorithms like backpropagation or conjugate gradient
bull Version 091bull Imports futilelogger ff methodsbull Published 2014-03-16bull Author Martin Dreesbull Maintainer Martin Drees ltmdrees at studfh-dortmunddegtbull License GPL-2bull URL httpgithubcommaddin79darchbull NeedsCompilation nobull Materials READMEbull CRAN checks darch results
Связь плотности вероятности и энергии
Используется распределение Гиббса
Задача обучения с точки минимизации энергии сети
bull Сконструировать функцию энергии с малыми значениями на обучающей выборке и с большими значениями всюду вне этого множества
bull Первое несложно а второе представляет задачу процесса обучения
Интуитивные соображения
Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decomposition LISTA ndashметоды использующие разреженные коды
Латентная переменная Z =argmin_z Distance[Decoder(Z)Y]+FactorB(Z)MAPminimaize sum of factors
Автоэнкодер (auto encoder) Автоэнкодер представляет собой алгоритм обучения без учителя который использует нейронную сеть и метод обратного распространения ошибки для того чтобы добиться того что входной вектор признаков вызывал отклик сети равный входному вектору те y = x Автоэнкодер пытается построить функцию h(x) = x
Архитекттура ICA моделей
Итеративные алгоритмы с оптимальным разреженным кодированием ISTAFISTA
Самоорганизация данных методами Deep Learning
>
Знакомство с пакетом deepnet
Назначение
Составdbndnntrain - обучение сети с архитектурой DBN (deep belief network)loadmnist - формирование данных из файлов MNISTnnpredict - предсказание новых выборок на обученной нейронной сетиnntest ndash тестирование обученной нейронной сети с возвращением значения ошибкиnntrain ndash обучение одностлойной или многослойной нейронной сети методом backproprbmdown ndash генерирование видимого вектора для скрытых состояний сети RBMrbmtrain ndash обучение сети RBMrbmup ndash извлечение скрытых состояний RBM по известным видимым состояниямsaednntrain ndash обучение нейронной сети с архитектурой stacked autoencoder
Прогнозирование (классификация) нейронной сетью с архитектурой stacked auto encoder
Argumentsbull x matrix of x values for examplesbull y vector or matrix of target values for examplesbull hidden vector for number of units of hidden layersDefault is c(10)bull activationfun activation function of hidden unitCan be sigmlinear or tanhDefault isbull sigm for logistic functionbull learningrate learning rate for gradient descent Default is 08bull momentum momentum for gradient descent Default is 05 bull learningrate_scalebull learning rate will be mutiplied by this scale after every iteration Default is 1 bull numepochs number of iteration for samples Default is 3bull batchsize size of mini-batch Default is 100bull output function of output unit can be sigmlinear or softmax Default is sigmbull sae_output function of autoencoder output unit can be sigmlinear or softmax Defaultbull is linearbull hidden_dropout drop out fraction for hidden layer Default is 0bull visible_dropoutbull drop out fraction for input layer Default is 0
Что такое MNISTbull Смешанный набор данных Национального института стандартов и
технологий (mixed National Institute of Standards and Technology MNIST) был создан исследователями IR в качестве эталона для сравнения различных алгоритмов IR
bull Набор данных состоит всего из 70 000 изображений 60 000 обучающих (используемых для создания модели IR) и 10 000 тестовых (применяемых для оценки точности модели) Каждое изображение MNIST mdash это оцифрованная картинка одной цифры написанной от руки Каждое изображение имеет размер 28 times 28 пикселей Каждое значение пикселя лежит в диапазоне от 0 (представляет белый цвет) до 255 (представляет черный цвет) Промежуточные значения отражают оттенки серого
httpyannlecuncomexdbmnistобучающие и тестовые данные хранятся в двух файлах а не в одном Один файл содержит значения пикселей для изображений а другой mdash метки изображений (0ndash9) Каждый из четырех файлов также содержит заголовочную информацию и все они хранятся в двоичном формате сжатом в формате gziptrain-images-idx3-ubytegz training set images (9912422 bytes)
train-labels-idx1-ubytegz training set labels (28881 bytes)
t10k-images-idx3-ubytegz test set images (1648877 bytes)
t10k-labels-idx1-ubytegz test set labels (4542 bytes)
bull Каждая строка файла представляет собой имидж размера 28 times 28 вектором длины 784 каждый признак ndash значение пиксела в черно-белой шале Первый столбец содержит метку цифры 0ndash9 следующие 2828 столбцов представляют целый имидж и так далее Пример первой строки
Визуализация
bull plotmnist()bull mnistbull paramsbull train$n number of train samplesbull train$x pix of every train sample imagebull train$y label of every train sample imagebull train$yy one-of-c vector of label of train sample imagebull test$n number of test samplesbull test$x pix of every test sample imagebull test$y label of every test sample imagebull test$yy one-of-c vector of label of test sample image
plotmnist()
Распознавание рукописных цифр в deepnet
another way to download the MNIST datasetmnist downloadmnist(range=c(01)global=FALSE)look at MNIST datamnist$train$xmnist$train$ymnist$test$xmnist$test$ytrain of the sae neural networkdnnlt-saednntrain(mnist$train$xmnist$train$yhidden=c(55))test of the sae neural networknntest(dnnmnist$test$xmnist$test$yt=05)
End of slides part 2 (Part 3 - NLP remaining)
Vladimirvkrylovgmailcom
Основы предиктивной аналитики Часть вторая
Применение методов Machine Learning к решению задач аналитики
Дмитрий Ветров кандидат физико-математических наук ру
Методы обучающихся машин для аналитики которые мы рассмотрим
Сначала нужно загрузить несколько пакетов (packages) для поддер
Данные для анализа
Скрипт для генерации
Данные которые мы будем использовать для демо состоят из смес
Так выглядят визуализированные данные сгенерированные скриптом
Разделение данных на обучающие и проверочные является важным эт
K-means алгоритм на пальцах
Обучающаяся машина без учителя Алгоритм K-means
Slide 13
Slide 14
Здесь мы используем заранее известный факт что необходимо кла
Еще одна иллюстрация работы алгоритма K-means
Обучающаяся машина без учителя Алгоритм KNN (Nearest Neighbor)
Как работает алгоритм KNN
knn(train test cl k = 1 l = 0 prob = FALSE useall = TRUE
Slide 20
Результаты кластеризации и зависимость ошибки от числа кластеро
Recursive PartitioningRegression Tree
Метод RP реализует обучение машины строить дерево решений по об
Recursive PartitioningRegression Tree (2)
rpart(formula data weights subset naaction = narpart met
Slide 26
Recursive PartitioningRegression Tree example
Анализ по главным компонентам (Principal Component Analysis PC
Итеративные алгоритмы с оптимальным разреженным кодированием IS
Самоорганизация данных методами Deep Learning
Знакомство с пакетом deepnet
Прогнозирование (классификация) нейронной сетью с архитектурой
Arguments
Архитектура сети SAE
Архитектура с 5Х4 hidden 3 outs
Example
Анализ обучающего набора данных
Параметры SAE сети
Коэффициенты связей
Предсказание обученной сетью
Сравнение обучающей и тестовой выборки
plot3d(xy)
Работаем с пакетом MNIST
httpyannlecuncomexdbmnist
Подготовка к обработке
Slide 118
Визуализация
plotmnist()
Распознавание рукописных цифр в deepnet
End of slides part 2 (Part 3 - NLP remaining)
Обучающаяся машина без учителя Алгоритм K-meansАлгоритм K-meansЭтап 1 Первоначальное распределение объектов по кластерамbull Выбор случайным образом k точек данных из D как начальное множество представителей
кластера Cbull Распределение объектов по кластерам в соответствие с формулой
Этап 2 Перераспределение срединных элементовbull Вычисление центра для каждого кластераbull Перераспределение объектов по кластерамbull Алгоритм завершается когда на какой-то итерации не происходит изменения центра масс
кластеров Это происходит за конечное число итераций так как количество возможных разбиений конечного множества конечно а на каждом шаге суммарное квадратичное отклонение Cost не увеличивается поэтому зацикливание невозможно
x numeric matrix of data or an object that can be coerced to such a matrix (such as a numeric vector or a data frame with all numeric columns)
centers either the number of clusters say k or a set of initial (distinct) cluster centres If a number a random set of (distinct) rows in x is chosen as the initial centres
itermax the maximum number of iterations allowed
nstart if centers is a number how many random sets should be chosen
algorithm character may be abbreviated Note that Lloyd andForgy are alternative names for one algorithm
object an R object of class kmeans typically the result obof ob lt- kmeans()
method character may be abbreviated centers causesfitted to return cluster centers (one for each input point) and classes causes fitted to return a vector of class assignments
trace logical or integer number currently only used in the default method (Hartigan-Wong) if positive (or true) tracing information on the progress of the algorithm is produced Higher values may produce more tracing information
Обучающаяся машина без учителя Алгоритм KNN (Nearest Neighbor)Алгоритм KNN Основным принципом метода ближайших соседей является то что объект присваивается тому классу который является наиболее распространённым среди соседей данного элементаДля классификации каждого из объектов тестовой выборки
необходимо последовательно выполнить следующие операцииВычислить расстояние до каждого из объектов обучающей выборки
Отобрать k объектов обучающей выборки расстояние до которых минимально
Класс классифицируемого объекта mdash это класс наиболее часто встречающийся среди k ближайших соседей
Как работает алгоритм KNN
>
knn(train test cl k = 1 l = 0 prob = FALSE useall = TRUE)
train matrix or data frame of training set cases
test matrix or data frame of test set cases A vector will be interpreted as a row vector for a single case
cl factor of true classifications of training set
k number of neighbours considered
l minimum vote for definite decision otherwise doubt (More precisely less than k-l dissenting votes are allowed even if k is increased by ties)
prob If this is true the proportion of the votes for the winning class are returned as attribute prob
useall controls handling of ties If true all distances equal to the kth largest are included If false a random selection of distances equal to the kth is chosen to use exactly k neighbours
Here we demonstrate the bias-variance tradeoff as we increase k
err lt- matrix(nrow=N100 ncol=2)for (i in 1nrow(err))
k lt- i 4test$predicted_class lt- knn(train[12] test[12] train$class k=k)mlt-cm(test$class test$predicted_class)err[i] lt- c(k 1 - sum(diag(m)) sum(m))
plot (err)
Результаты кластеризации и зависимость ошибки от числа кластеров
actualpredicted A B C A 272 0 7 B 1 308 1 C 31 0 280
gt m
Recursive PartitioningRegression Treebull Основано на дереве решений представляющем граф бинарной
последовательной классификации по тест-вопросам в каждой вершине графа Листья дерева ассоциируются с результатами классификации
Метод RP реализует обучение машины строить дерево решений по обучающей выборке данных
bull laquoРасщеплениеraquo обучающих данныхМножество данных в каждом узле разделяется на два соответствующих ответам TRUE или FALSE Вопросы должны порождать бинарное разбиение множества Для числовых характеристик это обычно неравенства характеристика Xn меньше или равна значению Ym
bull Конструирование тест-вопросовПринцип putity measurement ndash очищающих измерений Каждая характеристика анализируется статистически для каждого разбиения и выбирается наилучшее по чистоте разделенияbull Критерий остановкиЧтобы избежать переобучения используется либо порог чистоты либо максимальное число узлов либо минимальное число наблюдений в узле
Recursive PartitioningRegression Tree
Пример расщепления обучающей выборки
rpart(formula data weights subset naaction = narpart method model = FALSE x = FALSE y = TRUE parms control cost )
formula a formula with a response but no interaction terms If this a a data frome that is taken as the model frame (see modelframe)
data an optional data frame in which to interpret the variables named in the formula
weights optional case weights
subset optional expression saying that only a subset of the rows of the data should be used in the fit
naaction the default action deletes all observations for which y is missing but keeps those in which one or more predictors are missing method one of anova poisson class or exp If method is missing then the routine tries to make an intelligent guess If y is a survival object then method = exp is assumed if y has 2 columns then method = poisson is assumed if y is a factor then method = class is assumed otherwise method = anova is assumed It is wisest to specify the method directly especially as more criteria may added to the function in future Alternatively method can be a list of functions named init split and eval Examples are given in the file lsquotestsusersplitsRrsquo in the sources and in the vignettes lsquoUser Written Split Functionsrsquo
model if logical keep a copy of the model frame in the result If the input value for model is a model frame (likely from an earlier call to the rpart function) then this frame is used rather than constructing new data
x keep a copy of the x matrix in the result
y keep a copy of the dependent variable in the result If missing and model is supplied this defaults to FALSE
parms optional parameters for the splitting function Anova splitting has no parameters Poisson splitting has a single parameter the coefficient of variation of the prior distribution on the rates The default value is 1 Exponential splitting has the same parameter as Poisson For classification splitting the list can contain any of the vector of prior probabilities (component prior) the loss matrix (component loss) or the splitting index (component split) The priors must be positive and sum to 1 The loss matrix must have zeros on the diagonal and positive off-diagonal elements The splitting index can be gini or information The default priors are proportional to the data counts the losses default to 1 and the split defaults to gini
control a list of options that control details of the rpart algorithm See rpartcontrol
cost a vector of non-negative costs one for each variable in the model Defaults to one for all variables These are scalings to be applied when considering splits so the improvement on splitting on a variable is divided by its cost in deciding which split to choose arguments to rpartcontrol may also be specified in the call to rpart They are checked against the list of valid arguments
Recursive PartitioningRegression Tree example(r lt- rpart(class ~ x + y data = train))plot(r)text(r)
Here we look at the confusion matrix and overall error rate from applying the tree rules to the training datapredicted lt- asnumeric(apply(predict(r) 1 function(r) order(-r)[1]))(m lt- cm (train$class predicted))1 - sum(diag(m)) sum(m)
And by comparison against the test datapredicted lt- asnumeric(apply(predict(r test[12]) 1 function(r) order(-r)[1]))(m lt- cm (test$class predicted))1 - sum(diag(m)) sum(m)
Анализ по главным компонентам (Principal Component Analysis PCA)Известно четыре базовых версии методаbull аппроксимировать данные линейными многообразиями меньшей
размерностиbull найти подпространства меньшей размерности в ортогональной проекции
на которые разброс данных (то есть среднеквадратичное отклонение от среднего значения) максимален
bull найти подпространства меньшей размерности в ортогональной проекции на которые среднеквадратичное расстояние между точками максимально
bull для данной многомерной случайной величины построить такое ортогональное преобразование координат в результате которого корреляции между отдельными координатами обратятся в нуль
В основе задача наилучшей аппроксимации конечного множества точек прямыми и плоскостями (Пирсон 1901) Дано конечное множество векторов для каждого k=01hellipn-1 среди всех k-мерных линейных многообразий в Rn найти такое что сумма квадратов уклонений минимальна
bull Графическая иллюстрация метода главных компонент в 3D
Алгоритм
bull Централизация данных
bull Находим первую главную компоненту
bull Вычитаем проекцию на нее
bull Находим вторую главную компоненту
bull Вычитаем проекцию на (k-1) главную компоненту
bull Находим k-ую главную компоненту
bull Всегда выполняется условие ортогональности
princomp(formula data = NULL subset naaction )formula a formula with no response variable referring only to numeric variables
data an optional data frame (or similar see modelframe) containing the variables in the formula formula By default the variables are taken from environment(formula)
subset an optional vector used to select rows (observations) of the data matrix x
naaction a function which indicates what should happen when the data contain NAs The default is set by the naaction setting of options and is nafail if that is unset The lsquofactory-freshrsquo default is naomit
x a numeric matrix or data frame which provides the data for the principal components analysis
cor a logical value indicating whether the calculation should use the correlation matrix or the covariance matrix (The correlation matrix can only be used if there are no constant variables)
scores a logical value indicating whether the score on each principal component should be calculated
covmat a covariance matrix or a covariance list as returned by covwt (and covmve or covmcd from package MASS) If supplied this is used rather than the covariance matrix of x
arguments passed to or from other methods If x is a formula one might specify cor or scores
object Object of class inheriting from princomp
newdata An optional data frame or matrix in which to look for variables with which to predict If omitted the scores are used If the original fit used a formula or a data frame or a matrix with column names newdata must contain columns with the same names Otherwise it must contain the same number of columns to be used in the same order
Principal Component Analysis (PCA)plt-princomp(train[12])train_pca lt- dataframe(p$scores)train_pca$class lt- train$class
Compare the alignment of the clusters to the axis in the feature space versus the transformed space
r2 lt- rpart(class ~ Comp1 + Comp2 data = train_pca)
Линейный дискриминантный анализ (Linear Discriminant Analysis - LDA)bull Для каждого образца объекта или события с известным классом y
рассматривается набор наблюдений x (называемых ещё признаками переменными или измерениями) Набор таких образцов называется обучающей выборкой (или набором обучения обучением) Задачи классификации состоит в том чтобы построить хороший прогноз класса y для всякого так же распределённого объекта (не обязательно содержащегося в обучающей выборке) имея только наблюдения x Основная идея состоит в сравнении распределений для каждого из классов Расстоянием (по Фишеру) между распределениями принято считать отношение межклассовой дисперсии к внутриклассовой
bull Оптимальное байесовское решение - относить точки ко второму классу если отношение правдоподобия ниже некоторого порогового значения T
bull Предполагая что выполнена нормировка
bull Решение записывается в виде неравенства для скалярного произведения
bull Здесь laquoизмерительныйraquo вектор равен
bull с- дискриминантный порог
lda(x grouping prior = proportions tol = 10e-4 method CV = FALSE nu )
formula A formula of the form groups ~ x1 + x2 + That is the response is the grouping factor and the right hand side specifies the (non-factor) discriminators
data Data frame from which variables specified in formula are preferentially to be taken
x (required if no formula is given as the principal argument) a matrix or data frame or Matrix containing the explanatory variables
grouping (required if no formula principal argument is given) a factor specifying the class for each observation
prior the prior probabilities of class membership If unspecified the class proportions for the training set are used If present the probabilities should be specified in the order of the factor levels
tol A tolerance to decide if a matrix is singular it will reject variables and linear combinations of unit-variance variables whose variance is less than tol^2
subset An index vector specifying the cases to be used in the training sample (NOTE If given this argument must be named)
naaction A function to specify the action to be taken if NAs are found The default action is for the procedure to fail An alternative is naomit which leads to rejection of cases with missing values on any required variable (NOTE If given this argument must be named)
method moment for standard estimators of the mean and variance mle for MLEs mve to use covmve or t for robust estimates based on a t distribution
CV If true returns results (classes and posterior probabilities) for leave-one-out cross-validation Note that if the prior is estimated the proportions in the whole dataset are used
nu degrees of freedom for method = t
arguments passed to or from other methods
prior the prior probabilities usedmeans the group meansscaling a matrix which transforms observations to
discriminant functions normalized so that within groups covariance matrix is spherical
svd the singular values which give the ratio of the between- and within-group standard deviations on the linear discriminant variables Their squares are the canonical F-statistics
N The number of observations usedcall The (matched) function call
An object of class lda containing the following components
Метод опорных векторов (Support Vector Machines - SVM)Относится к ML с учителем и использует линейные разделяющие поверхности
Идея алгоритма
bull По обучающей выборке
bull Строится классифицирующая функция
bull Используя гиперплоскость
bull Поиск коэффициентов сводится к максимизации
расстояний от опорных векторов или минимизации
Иллюстрация на простейшем примере
>
Производится вложение обучающей выборки в пространство более высокой размерности Х с помощью нелинейной функции так чтобы обеспечит линейную разделимость в Х
Разделяющая функция тогда имеет вид
Функция называется ядром
Полиномиальное ядро
Радиальная базисная функция
Сигмоид
Линейная неразделимость и использование ядер
Иллюстрация использования ядра для отображения 2D -gt 3D
>
svm((formula data = NULL subset naaction =naomit scale = TRUE))
formulaa symbolic description of the model to be fitdataan optional data frame containing the variables in the model By default the variables are taken from the environment which lsquosvmrsquo is called fromxa data matrix a vector or a sparse matrix (object of class Matrix provided by the Matrix package or of class matrixcsr provided by the SparseM package or of class simple_triplet_matrix provided by the slam package)ya response vector with one label for each rowcomponent of x Can be either a factor (for classification tasks) or a numeric vector (for regression)scaleA logical vector indicating the variables to be scaled If scale is of length 1 the value is recycled as many times as needed Per default data are scaled internally (both x and y variables) to zero mean and unit variance The center and scale values are returned and used for later predictionstypesvm can be used as a classification machine as a regression machine or for novelty detection Depending of whether y is a factor or not the default setting for type is C-classification or eps-regression respectively but may be overwritten by setting an explicit valueValid options areC-classificationnu-classificationone-classification (for novelty detection)eps-regressionnu-regression
Support Vector Machines
s lt- svm( I(factor(class)) ~ x + y data = train cost = 100 gama = 1)
Package lsquodeepnetrsquo February 19 2015 Type Package Title deep learning toolkit in R Version 02 Date 2014-03-20 Author Xiao Rong Maintainer Xiao Rong Description Implement some deep learning architectures and neural network algorithms including BPRBMDBNDeep autoencoder and so on License GPL NeedsCompilation no Repository CRAN DatePublication 2014-03-20 100343
laquoВ 1997 году Deep Blue обыграл в шахматы КаспароваВ 2011 Watson обставил чемпионов JeopardyСможет ли ваш алгоритм в 2013 году отличить Бобика от ПушистикаraquoKaggle Competitions Details
Сегодня уже можно ответить laquoдаraquo mdash десятка лидеров справилась с заданием на 988
Распознавание основано на feature detection и последующем различении комбинаций
Заранее неизвестно какие части картинки могут использоваться как хорошие features В их роли может выступать все что угодно mdash фрагменты изображения форма размер или цвет Feature может не присутствовать на картинке сама а выражаться в параметре полученным каким-то образом из исходных данных
Распознавание рукописных цифр
Еще пример посложнее
Использование нейронной сети с обучениемОбучение такой нейронной сети производится обычно методом обратного распространения ошибки таким образом чтобы минимизировать среднеквадратическую ошибку отклика сети на обучающей выборке Таким образом обучающая выборка содержит пары векторов признаков (входные данные) и эталонных векторов (маркированные данные) (x y)
Сверхвысокая размерность при работе с первичным представлением пикселями
Пиксельное кодирование
Принцип иерархии понятий ndash основа deep learning
bull Все вещи состоят из других маленьких и более элементарных вещей
bull Как извлекать features Гипотеза малоразмерных многообразий
Разреженное (sparse) кодирование
первый уровень иерархии состоит из элементов словаря этого кода которые представляют собой штрихи и границы
Словарь для лиц
Выделение объектов заданного класса
Основные архитектуры Deep Learningbull Deep neural networks (DNN)bull Deep belief networks (DBN)bull Convolutional neural networks (CNN)bull Deep Boltzmann Machines (DBM)bull Stacked (Denoising) Auto-Encodersbull Deep Stacking Networksbull Tensor Deep Stacking Networks (T-DSN)bull Spike-and-Slab RBMs (ssRBMs)bull Compound Hierarchical-Deep Modelsbull Deep Coding Networks (DPCN)bull Deep Kernel Machinesbull Deep Q-Networks (2015 г)
Задача классификации распознавания и подобные являются задачей конструирования функции на множестве входных наборов и со значениями в множестве требуемого вида выходных
bull Норбертом Винером было показано что любая функция может быть сколь угодно точно композицией двух (он использовал функции полином Лагранжа и функцию Лагерра)
bull Соответствует двухслойной нейросетиbull Архитектуры Deep Learning соответствуют представлению
bull Обеспечивают эффективную параметризацию при решении конкретных задач Более сложные функции создаются из большего числа но более эффективно настраиваемых laquoкирпичиковraquo Пример ndash синтез булевых функций Дерево вентилей эффективнее двухслойной схемы
Фактор - графыВсе методы которые расмотрели ndash не DL Даже деревья классификации Все операции в одном входном словаре
DL можно определить по фактор-графу
Например
bull Еще одна сторона DL - нередко использует невыпуклые функции потерьbull Обучение на основе выпуклых функций не зависит от порядка
предъявления данных для обучения Все определяет асимптотика всего train - набора В алгоритмах DL порядок данных в обучающей выборке может иметь значение
bull Многие решения в DL не доказаны математически и являются успешными эвристиками
bull Большой простор для прикладной математики Может рассматриваться как фактор-граф с группами латентных переменных
bull В настоящее время стал основной технологией в распознавании речи (speech recognition) и машинном зрении (computer vision) начал применяться в обработке текстов (natural language processing)
bull Основная идея ndash применение нелинейного отображения входного набора в более высокоразмерное пространство где многие неразделимые композиции становятся разделимыми а затем объединение композиций по семантической близости
Подход разреженного кодирования
Обобщенная архитектура
bull DL сеть может быть собрана каскадированием и использованием обучения с учителем
Здесь используется forward propagation для обучения
Для настройки коэффициентов используется метод fprof для каждого
Требуется знание градиента энергии
Элементы (kl) матрицы Якобиана
Требуется знание градиента энергии 120597119864120597119882119894 = 120597119864120597119883119894120597119865119894(119883119894minus1119882119894)120597119882119894
ሾ1times 119873119908ሿ= ሾ1times 119873119909ሿlowast[119873119909 times 119873119908] Элементы (kl) матрицы Якобиана
Сводится к рекуррентному соотношению для вычисления градиента 120597119864120597119883119894minus1 = 120597119864120597119883119894120597119865119894(119883119894minus1119882119894)120597119883119894minus1
В итоге
Для вычисления градиента может использоваться метод back propagation
В действительности работают любые архитектуры построения функции Нужно конструировать связи и функции блоков
Язык Torch 7 ndash современный инструмент моделирования и имплементации
Machine Learning with Torch7 (httpcodecogbitscomwikidokuphpid=start)
bull These tutorials were originally designed for the IPAM Summer School on Deep Learning more info herebull This wiki provides multiple tutorials with the overall objective of teaching you how to do machine learning
with Torch7bull Torch7 provides a Matlab-like environment for state-of-the-art machine learning algorithms It is easy to use
and provides a very efficient implementation thanks to an easy and fast scripting language (LuaJIT) and an underlying C implementation
bull These tutorials should be readdone in orderbull Tutorial 1 Setup Basics Getting Startedbull Tutorial 2 Supervised Learningbull Tutorial 3 Unsupervised Learningbull Tutorial 4 Graphical Modelsbull Tutorial 5 Creating New Modulesbull Tutorial 6 Using CUDAbull To follow these tutorials and do the exercises you will need to download the associated code which is hosted
on GitHub on this page In this repository each directory corresponds to a tutorial herebull starttxt middot Last modified 20140204 2246 by clement
Torch 7 является расширением Lua
What is LuaLua is a powerful fast lightweight embeddable scripting languageLua combines simple procedural syntax with powerful data description constructs based on associative arrays and extensible semantics Lua is dynamically typed runs by interpreting bytecode for a register-based virtual machine and has automatic memory management with incremental garbage collection making it ideal for configuration scripting and rapid prototyping
Why choose LuaLua is a proven robust languageLua has been used in many industrial applications (eg Adobes Photoshop Lightroom) with an emphasis on embedded systems (eg the Ginga middleware for digital TV in Brazil) and games (eg World of Warcraft and Angry Birds) Lua is currently the leading scripting language in games Lua has a solid reference manual and there are several books about it Several versions of Lua have been released and used in real applications since its creation in 1993 Lua featured in HOPL III the Third ACM SIGPLAN History of Programming Languages Conference in June 2007 Lua won the Front Line Award 2011 from the Game Developers Magazine
Свертка и архитектура 4-х уровневой сверточной сети
Функциональная структура
Примеры успешного применения сверточных сетей
Диагностика эпилепсии по ЭЭГ
Реализация сверточной сетью
Одна из самых больших сверточных сетейbull Krizhevsky Sutskever Hinton 2012bull 650 000 нейронов 832 000 000 синапсов 60 000000 пареметровbull Использовался backprop на GPUbull Обучающая выборка на материалах 20 летbull Купил Google в январе 2013bull В мае 2013 развернул как сервис Photo Tagging Google+
Пример тэгирования
Пример поиска похожих по изображению
Пример поиска в коллекции изображений по текстовому запросу
Пример laquoоблачногоraquo классификатора изображений
Самообучающиеся нейронные сети на основе минимизации функции энергииbull Применима к сетям с обратными связямиbull Конструирование функции энергии должно обеспечивать
laquoконтрастностьraquo разделения
bull Энергетическая функция может Неформально рассматриваться как отрицательный логарифм плотности вероятности
Y 2=(Y1)2
RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцмана
bull Из DBM cтроится Deep Belief Network (DBN)
bull w mdash вес между нейронами
bull b mdash смещение нейрона
bull s mdash состояние нейрона
Алгоритм обучения Contrastive Divergence (CD)bull w_ij mdash веc между i-ым нейроном Вероятность пар может быть представлена как
bull a_i mdash смещение видимого нейрона
bull b_j mdash смещение скрытого нейрона
bull v_i mdash состояние видимого нейрона
bull h_j mdash состояние скрытого нейрона Полная вероятность состояния видимых нейронов
Основные уравнения адаптации
Алгоритм Хинтона - Contrastive Divergence (CD-k)
1 состояние видимых нейронов приравнивается к входному образу2 выводятся вероятности состояний скрытого слоя3 каждому нейрону скрытого слоя ставится в соответствие состояние laquo1raquo с вероятностью равной его текущему состоянию4 выводятся вероятности видимого слоя на основании скрытого5 если текущая итерация меньше k то возврат к шагу 26 выводятся вероятности состояний скрытого слоя
darch Package for deep architectures and Restricted-Bolzmann-MachinesThe darch package is build on the basis of the code from G E Hinton and R R Salakhutdinov (available under Matlab Code for deep belief nets last visit 01082013) This package is for generating neural networks with many layers (deep architectures) and train them with the method introduced by the publications A fast learning algorithm for deep belief nets (G E Hinton S Osindero Y W Teh) and Reducing the dimensionality of data with neural networks (G E Hinton R R Salakhutdinov) This method includes a pre training with the contrastive divergence method publishing by GE Hinton (2002) and a fine tuning with common known training algorithms like backpropagation or conjugate gradient
bull Version 091bull Imports futilelogger ff methodsbull Published 2014-03-16bull Author Martin Dreesbull Maintainer Martin Drees ltmdrees at studfh-dortmunddegtbull License GPL-2bull URL httpgithubcommaddin79darchbull NeedsCompilation nobull Materials READMEbull CRAN checks darch results
Связь плотности вероятности и энергии
Используется распределение Гиббса
Задача обучения с точки минимизации энергии сети
bull Сконструировать функцию энергии с малыми значениями на обучающей выборке и с большими значениями всюду вне этого множества
bull Первое несложно а второе представляет задачу процесса обучения
Интуитивные соображения
Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decomposition LISTA ndashметоды использующие разреженные коды
Латентная переменная Z =argmin_z Distance[Decoder(Z)Y]+FactorB(Z)MAPminimaize sum of factors
Автоэнкодер (auto encoder) Автоэнкодер представляет собой алгоритм обучения без учителя который использует нейронную сеть и метод обратного распространения ошибки для того чтобы добиться того что входной вектор признаков вызывал отклик сети равный входному вектору те y = x Автоэнкодер пытается построить функцию h(x) = x
Архитекттура ICA моделей
Итеративные алгоритмы с оптимальным разреженным кодированием ISTAFISTA
Самоорганизация данных методами Deep Learning
>
Знакомство с пакетом deepnet
Назначение
Составdbndnntrain - обучение сети с архитектурой DBN (deep belief network)loadmnist - формирование данных из файлов MNISTnnpredict - предсказание новых выборок на обученной нейронной сетиnntest ndash тестирование обученной нейронной сети с возвращением значения ошибкиnntrain ndash обучение одностлойной или многослойной нейронной сети методом backproprbmdown ndash генерирование видимого вектора для скрытых состояний сети RBMrbmtrain ndash обучение сети RBMrbmup ndash извлечение скрытых состояний RBM по известным видимым состояниямsaednntrain ndash обучение нейронной сети с архитектурой stacked autoencoder
Прогнозирование (классификация) нейронной сетью с архитектурой stacked auto encoder
Argumentsbull x matrix of x values for examplesbull y vector or matrix of target values for examplesbull hidden vector for number of units of hidden layersDefault is c(10)bull activationfun activation function of hidden unitCan be sigmlinear or tanhDefault isbull sigm for logistic functionbull learningrate learning rate for gradient descent Default is 08bull momentum momentum for gradient descent Default is 05 bull learningrate_scalebull learning rate will be mutiplied by this scale after every iteration Default is 1 bull numepochs number of iteration for samples Default is 3bull batchsize size of mini-batch Default is 100bull output function of output unit can be sigmlinear or softmax Default is sigmbull sae_output function of autoencoder output unit can be sigmlinear or softmax Defaultbull is linearbull hidden_dropout drop out fraction for hidden layer Default is 0bull visible_dropoutbull drop out fraction for input layer Default is 0
Что такое MNISTbull Смешанный набор данных Национального института стандартов и
технологий (mixed National Institute of Standards and Technology MNIST) был создан исследователями IR в качестве эталона для сравнения различных алгоритмов IR
bull Набор данных состоит всего из 70 000 изображений 60 000 обучающих (используемых для создания модели IR) и 10 000 тестовых (применяемых для оценки точности модели) Каждое изображение MNIST mdash это оцифрованная картинка одной цифры написанной от руки Каждое изображение имеет размер 28 times 28 пикселей Каждое значение пикселя лежит в диапазоне от 0 (представляет белый цвет) до 255 (представляет черный цвет) Промежуточные значения отражают оттенки серого
httpyannlecuncomexdbmnistобучающие и тестовые данные хранятся в двух файлах а не в одном Один файл содержит значения пикселей для изображений а другой mdash метки изображений (0ndash9) Каждый из четырех файлов также содержит заголовочную информацию и все они хранятся в двоичном формате сжатом в формате gziptrain-images-idx3-ubytegz training set images (9912422 bytes)
train-labels-idx1-ubytegz training set labels (28881 bytes)
t10k-images-idx3-ubytegz test set images (1648877 bytes)
t10k-labels-idx1-ubytegz test set labels (4542 bytes)
bull Каждая строка файла представляет собой имидж размера 28 times 28 вектором длины 784 каждый признак ndash значение пиксела в черно-белой шале Первый столбец содержит метку цифры 0ndash9 следующие 2828 столбцов представляют целый имидж и так далее Пример первой строки
Визуализация
bull plotmnist()bull mnistbull paramsbull train$n number of train samplesbull train$x pix of every train sample imagebull train$y label of every train sample imagebull train$yy one-of-c vector of label of train sample imagebull test$n number of test samplesbull test$x pix of every test sample imagebull test$y label of every test sample imagebull test$yy one-of-c vector of label of test sample image
plotmnist()
Распознавание рукописных цифр в deepnet
another way to download the MNIST datasetmnist downloadmnist(range=c(01)global=FALSE)look at MNIST datamnist$train$xmnist$train$ymnist$test$xmnist$test$ytrain of the sae neural networkdnnlt-saednntrain(mnist$train$xmnist$train$yhidden=c(55))test of the sae neural networknntest(dnnmnist$test$xmnist$test$yt=05)
End of slides part 2 (Part 3 - NLP remaining)
Vladimirvkrylovgmailcom
Основы предиктивной аналитики Часть вторая
Применение методов Machine Learning к решению задач аналитики
Дмитрий Ветров кандидат физико-математических наук ру
Методы обучающихся машин для аналитики которые мы рассмотрим
Сначала нужно загрузить несколько пакетов (packages) для поддер
Данные для анализа
Скрипт для генерации
Данные которые мы будем использовать для демо состоят из смес
Так выглядят визуализированные данные сгенерированные скриптом
Разделение данных на обучающие и проверочные является важным эт
K-means алгоритм на пальцах
Обучающаяся машина без учителя Алгоритм K-means
Slide 13
Slide 14
Здесь мы используем заранее известный факт что необходимо кла
Еще одна иллюстрация работы алгоритма K-means
Обучающаяся машина без учителя Алгоритм KNN (Nearest Neighbor)
Как работает алгоритм KNN
knn(train test cl k = 1 l = 0 prob = FALSE useall = TRUE
Slide 20
Результаты кластеризации и зависимость ошибки от числа кластеро
Recursive PartitioningRegression Tree
Метод RP реализует обучение машины строить дерево решений по об
Recursive PartitioningRegression Tree (2)
rpart(formula data weights subset naaction = narpart met
Slide 26
Recursive PartitioningRegression Tree example
Анализ по главным компонентам (Principal Component Analysis PC
Итеративные алгоритмы с оптимальным разреженным кодированием IS
Самоорганизация данных методами Deep Learning
Знакомство с пакетом deepnet
Прогнозирование (классификация) нейронной сетью с архитектурой
Arguments
Архитектура сети SAE
Архитектура с 5Х4 hidden 3 outs
Example
Анализ обучающего набора данных
Параметры SAE сети
Коэффициенты связей
Предсказание обученной сетью
Сравнение обучающей и тестовой выборки
plot3d(xy)
Работаем с пакетом MNIST
httpyannlecuncomexdbmnist
Подготовка к обработке
Slide 118
Визуализация
plotmnist()
Распознавание рукописных цифр в deepnet
End of slides part 2 (Part 3 - NLP remaining)
x numeric matrix of data or an object that can be coerced to such a matrix (such as a numeric vector or a data frame with all numeric columns)
centers either the number of clusters say k or a set of initial (distinct) cluster centres If a number a random set of (distinct) rows in x is chosen as the initial centres
itermax the maximum number of iterations allowed
nstart if centers is a number how many random sets should be chosen
algorithm character may be abbreviated Note that Lloyd andForgy are alternative names for one algorithm
object an R object of class kmeans typically the result obof ob lt- kmeans()
method character may be abbreviated centers causesfitted to return cluster centers (one for each input point) and classes causes fitted to return a vector of class assignments
trace logical or integer number currently only used in the default method (Hartigan-Wong) if positive (or true) tracing information on the progress of the algorithm is produced Higher values may produce more tracing information
Обучающаяся машина без учителя Алгоритм KNN (Nearest Neighbor)Алгоритм KNN Основным принципом метода ближайших соседей является то что объект присваивается тому классу который является наиболее распространённым среди соседей данного элементаДля классификации каждого из объектов тестовой выборки
необходимо последовательно выполнить следующие операцииВычислить расстояние до каждого из объектов обучающей выборки
Отобрать k объектов обучающей выборки расстояние до которых минимально
Класс классифицируемого объекта mdash это класс наиболее часто встречающийся среди k ближайших соседей
Как работает алгоритм KNN
>
knn(train test cl k = 1 l = 0 prob = FALSE useall = TRUE)
train matrix or data frame of training set cases
test matrix or data frame of test set cases A vector will be interpreted as a row vector for a single case
cl factor of true classifications of training set
k number of neighbours considered
l minimum vote for definite decision otherwise doubt (More precisely less than k-l dissenting votes are allowed even if k is increased by ties)
prob If this is true the proportion of the votes for the winning class are returned as attribute prob
useall controls handling of ties If true all distances equal to the kth largest are included If false a random selection of distances equal to the kth is chosen to use exactly k neighbours
Here we demonstrate the bias-variance tradeoff as we increase k
err lt- matrix(nrow=N100 ncol=2)for (i in 1nrow(err))
k lt- i 4test$predicted_class lt- knn(train[12] test[12] train$class k=k)mlt-cm(test$class test$predicted_class)err[i] lt- c(k 1 - sum(diag(m)) sum(m))
plot (err)
Результаты кластеризации и зависимость ошибки от числа кластеров
actualpredicted A B C A 272 0 7 B 1 308 1 C 31 0 280
gt m
Recursive PartitioningRegression Treebull Основано на дереве решений представляющем граф бинарной
последовательной классификации по тест-вопросам в каждой вершине графа Листья дерева ассоциируются с результатами классификации
Метод RP реализует обучение машины строить дерево решений по обучающей выборке данных
bull laquoРасщеплениеraquo обучающих данныхМножество данных в каждом узле разделяется на два соответствующих ответам TRUE или FALSE Вопросы должны порождать бинарное разбиение множества Для числовых характеристик это обычно неравенства характеристика Xn меньше или равна значению Ym
bull Конструирование тест-вопросовПринцип putity measurement ndash очищающих измерений Каждая характеристика анализируется статистически для каждого разбиения и выбирается наилучшее по чистоте разделенияbull Критерий остановкиЧтобы избежать переобучения используется либо порог чистоты либо максимальное число узлов либо минимальное число наблюдений в узле
Recursive PartitioningRegression Tree
Пример расщепления обучающей выборки
rpart(formula data weights subset naaction = narpart method model = FALSE x = FALSE y = TRUE parms control cost )
formula a formula with a response but no interaction terms If this a a data frome that is taken as the model frame (see modelframe)
data an optional data frame in which to interpret the variables named in the formula
weights optional case weights
subset optional expression saying that only a subset of the rows of the data should be used in the fit
naaction the default action deletes all observations for which y is missing but keeps those in which one or more predictors are missing method one of anova poisson class or exp If method is missing then the routine tries to make an intelligent guess If y is a survival object then method = exp is assumed if y has 2 columns then method = poisson is assumed if y is a factor then method = class is assumed otherwise method = anova is assumed It is wisest to specify the method directly especially as more criteria may added to the function in future Alternatively method can be a list of functions named init split and eval Examples are given in the file lsquotestsusersplitsRrsquo in the sources and in the vignettes lsquoUser Written Split Functionsrsquo
model if logical keep a copy of the model frame in the result If the input value for model is a model frame (likely from an earlier call to the rpart function) then this frame is used rather than constructing new data
x keep a copy of the x matrix in the result
y keep a copy of the dependent variable in the result If missing and model is supplied this defaults to FALSE
parms optional parameters for the splitting function Anova splitting has no parameters Poisson splitting has a single parameter the coefficient of variation of the prior distribution on the rates The default value is 1 Exponential splitting has the same parameter as Poisson For classification splitting the list can contain any of the vector of prior probabilities (component prior) the loss matrix (component loss) or the splitting index (component split) The priors must be positive and sum to 1 The loss matrix must have zeros on the diagonal and positive off-diagonal elements The splitting index can be gini or information The default priors are proportional to the data counts the losses default to 1 and the split defaults to gini
control a list of options that control details of the rpart algorithm See rpartcontrol
cost a vector of non-negative costs one for each variable in the model Defaults to one for all variables These are scalings to be applied when considering splits so the improvement on splitting on a variable is divided by its cost in deciding which split to choose arguments to rpartcontrol may also be specified in the call to rpart They are checked against the list of valid arguments
Recursive PartitioningRegression Tree example(r lt- rpart(class ~ x + y data = train))plot(r)text(r)
Here we look at the confusion matrix and overall error rate from applying the tree rules to the training datapredicted lt- asnumeric(apply(predict(r) 1 function(r) order(-r)[1]))(m lt- cm (train$class predicted))1 - sum(diag(m)) sum(m)
And by comparison against the test datapredicted lt- asnumeric(apply(predict(r test[12]) 1 function(r) order(-r)[1]))(m lt- cm (test$class predicted))1 - sum(diag(m)) sum(m)
Анализ по главным компонентам (Principal Component Analysis PCA)Известно четыре базовых версии методаbull аппроксимировать данные линейными многообразиями меньшей
размерностиbull найти подпространства меньшей размерности в ортогональной проекции
на которые разброс данных (то есть среднеквадратичное отклонение от среднего значения) максимален
bull найти подпространства меньшей размерности в ортогональной проекции на которые среднеквадратичное расстояние между точками максимально
bull для данной многомерной случайной величины построить такое ортогональное преобразование координат в результате которого корреляции между отдельными координатами обратятся в нуль
В основе задача наилучшей аппроксимации конечного множества точек прямыми и плоскостями (Пирсон 1901) Дано конечное множество векторов для каждого k=01hellipn-1 среди всех k-мерных линейных многообразий в Rn найти такое что сумма квадратов уклонений минимальна
bull Графическая иллюстрация метода главных компонент в 3D
Алгоритм
bull Централизация данных
bull Находим первую главную компоненту
bull Вычитаем проекцию на нее
bull Находим вторую главную компоненту
bull Вычитаем проекцию на (k-1) главную компоненту
bull Находим k-ую главную компоненту
bull Всегда выполняется условие ортогональности
princomp(formula data = NULL subset naaction )formula a formula with no response variable referring only to numeric variables
data an optional data frame (or similar see modelframe) containing the variables in the formula formula By default the variables are taken from environment(formula)
subset an optional vector used to select rows (observations) of the data matrix x
naaction a function which indicates what should happen when the data contain NAs The default is set by the naaction setting of options and is nafail if that is unset The lsquofactory-freshrsquo default is naomit
x a numeric matrix or data frame which provides the data for the principal components analysis
cor a logical value indicating whether the calculation should use the correlation matrix or the covariance matrix (The correlation matrix can only be used if there are no constant variables)
scores a logical value indicating whether the score on each principal component should be calculated
covmat a covariance matrix or a covariance list as returned by covwt (and covmve or covmcd from package MASS) If supplied this is used rather than the covariance matrix of x
arguments passed to or from other methods If x is a formula one might specify cor or scores
object Object of class inheriting from princomp
newdata An optional data frame or matrix in which to look for variables with which to predict If omitted the scores are used If the original fit used a formula or a data frame or a matrix with column names newdata must contain columns with the same names Otherwise it must contain the same number of columns to be used in the same order
Principal Component Analysis (PCA)plt-princomp(train[12])train_pca lt- dataframe(p$scores)train_pca$class lt- train$class
Compare the alignment of the clusters to the axis in the feature space versus the transformed space
r2 lt- rpart(class ~ Comp1 + Comp2 data = train_pca)
Линейный дискриминантный анализ (Linear Discriminant Analysis - LDA)bull Для каждого образца объекта или события с известным классом y
рассматривается набор наблюдений x (называемых ещё признаками переменными или измерениями) Набор таких образцов называется обучающей выборкой (или набором обучения обучением) Задачи классификации состоит в том чтобы построить хороший прогноз класса y для всякого так же распределённого объекта (не обязательно содержащегося в обучающей выборке) имея только наблюдения x Основная идея состоит в сравнении распределений для каждого из классов Расстоянием (по Фишеру) между распределениями принято считать отношение межклассовой дисперсии к внутриклассовой
bull Оптимальное байесовское решение - относить точки ко второму классу если отношение правдоподобия ниже некоторого порогового значения T
bull Предполагая что выполнена нормировка
bull Решение записывается в виде неравенства для скалярного произведения
bull Здесь laquoизмерительныйraquo вектор равен
bull с- дискриминантный порог
lda(x grouping prior = proportions tol = 10e-4 method CV = FALSE nu )
formula A formula of the form groups ~ x1 + x2 + That is the response is the grouping factor and the right hand side specifies the (non-factor) discriminators
data Data frame from which variables specified in formula are preferentially to be taken
x (required if no formula is given as the principal argument) a matrix or data frame or Matrix containing the explanatory variables
grouping (required if no formula principal argument is given) a factor specifying the class for each observation
prior the prior probabilities of class membership If unspecified the class proportions for the training set are used If present the probabilities should be specified in the order of the factor levels
tol A tolerance to decide if a matrix is singular it will reject variables and linear combinations of unit-variance variables whose variance is less than tol^2
subset An index vector specifying the cases to be used in the training sample (NOTE If given this argument must be named)
naaction A function to specify the action to be taken if NAs are found The default action is for the procedure to fail An alternative is naomit which leads to rejection of cases with missing values on any required variable (NOTE If given this argument must be named)
method moment for standard estimators of the mean and variance mle for MLEs mve to use covmve or t for robust estimates based on a t distribution
CV If true returns results (classes and posterior probabilities) for leave-one-out cross-validation Note that if the prior is estimated the proportions in the whole dataset are used
nu degrees of freedom for method = t
arguments passed to or from other methods
prior the prior probabilities usedmeans the group meansscaling a matrix which transforms observations to
discriminant functions normalized so that within groups covariance matrix is spherical
svd the singular values which give the ratio of the between- and within-group standard deviations on the linear discriminant variables Their squares are the canonical F-statistics
N The number of observations usedcall The (matched) function call
An object of class lda containing the following components
Метод опорных векторов (Support Vector Machines - SVM)Относится к ML с учителем и использует линейные разделяющие поверхности
Идея алгоритма
bull По обучающей выборке
bull Строится классифицирующая функция
bull Используя гиперплоскость
bull Поиск коэффициентов сводится к максимизации
расстояний от опорных векторов или минимизации
Иллюстрация на простейшем примере
>
Производится вложение обучающей выборки в пространство более высокой размерности Х с помощью нелинейной функции так чтобы обеспечит линейную разделимость в Х
Разделяющая функция тогда имеет вид
Функция называется ядром
Полиномиальное ядро
Радиальная базисная функция
Сигмоид
Линейная неразделимость и использование ядер
Иллюстрация использования ядра для отображения 2D -gt 3D
>
svm((formula data = NULL subset naaction =naomit scale = TRUE))
formulaa symbolic description of the model to be fitdataan optional data frame containing the variables in the model By default the variables are taken from the environment which lsquosvmrsquo is called fromxa data matrix a vector or a sparse matrix (object of class Matrix provided by the Matrix package or of class matrixcsr provided by the SparseM package or of class simple_triplet_matrix provided by the slam package)ya response vector with one label for each rowcomponent of x Can be either a factor (for classification tasks) or a numeric vector (for regression)scaleA logical vector indicating the variables to be scaled If scale is of length 1 the value is recycled as many times as needed Per default data are scaled internally (both x and y variables) to zero mean and unit variance The center and scale values are returned and used for later predictionstypesvm can be used as a classification machine as a regression machine or for novelty detection Depending of whether y is a factor or not the default setting for type is C-classification or eps-regression respectively but may be overwritten by setting an explicit valueValid options areC-classificationnu-classificationone-classification (for novelty detection)eps-regressionnu-regression
Support Vector Machines
s lt- svm( I(factor(class)) ~ x + y data = train cost = 100 gama = 1)
Package lsquodeepnetrsquo February 19 2015 Type Package Title deep learning toolkit in R Version 02 Date 2014-03-20 Author Xiao Rong Maintainer Xiao Rong Description Implement some deep learning architectures and neural network algorithms including BPRBMDBNDeep autoencoder and so on License GPL NeedsCompilation no Repository CRAN DatePublication 2014-03-20 100343
laquoВ 1997 году Deep Blue обыграл в шахматы КаспароваВ 2011 Watson обставил чемпионов JeopardyСможет ли ваш алгоритм в 2013 году отличить Бобика от ПушистикаraquoKaggle Competitions Details
Сегодня уже можно ответить laquoдаraquo mdash десятка лидеров справилась с заданием на 988
Распознавание основано на feature detection и последующем различении комбинаций
Заранее неизвестно какие части картинки могут использоваться как хорошие features В их роли может выступать все что угодно mdash фрагменты изображения форма размер или цвет Feature может не присутствовать на картинке сама а выражаться в параметре полученным каким-то образом из исходных данных
Распознавание рукописных цифр
Еще пример посложнее
Использование нейронной сети с обучениемОбучение такой нейронной сети производится обычно методом обратного распространения ошибки таким образом чтобы минимизировать среднеквадратическую ошибку отклика сети на обучающей выборке Таким образом обучающая выборка содержит пары векторов признаков (входные данные) и эталонных векторов (маркированные данные) (x y)
Сверхвысокая размерность при работе с первичным представлением пикселями
Пиксельное кодирование
Принцип иерархии понятий ndash основа deep learning
bull Все вещи состоят из других маленьких и более элементарных вещей
bull Как извлекать features Гипотеза малоразмерных многообразий
Разреженное (sparse) кодирование
первый уровень иерархии состоит из элементов словаря этого кода которые представляют собой штрихи и границы
Словарь для лиц
Выделение объектов заданного класса
Основные архитектуры Deep Learningbull Deep neural networks (DNN)bull Deep belief networks (DBN)bull Convolutional neural networks (CNN)bull Deep Boltzmann Machines (DBM)bull Stacked (Denoising) Auto-Encodersbull Deep Stacking Networksbull Tensor Deep Stacking Networks (T-DSN)bull Spike-and-Slab RBMs (ssRBMs)bull Compound Hierarchical-Deep Modelsbull Deep Coding Networks (DPCN)bull Deep Kernel Machinesbull Deep Q-Networks (2015 г)
Задача классификации распознавания и подобные являются задачей конструирования функции на множестве входных наборов и со значениями в множестве требуемого вида выходных
bull Норбертом Винером было показано что любая функция может быть сколь угодно точно композицией двух (он использовал функции полином Лагранжа и функцию Лагерра)
bull Соответствует двухслойной нейросетиbull Архитектуры Deep Learning соответствуют представлению
bull Обеспечивают эффективную параметризацию при решении конкретных задач Более сложные функции создаются из большего числа но более эффективно настраиваемых laquoкирпичиковraquo Пример ndash синтез булевых функций Дерево вентилей эффективнее двухслойной схемы
Фактор - графыВсе методы которые расмотрели ndash не DL Даже деревья классификации Все операции в одном входном словаре
DL можно определить по фактор-графу
Например
bull Еще одна сторона DL - нередко использует невыпуклые функции потерьbull Обучение на основе выпуклых функций не зависит от порядка
предъявления данных для обучения Все определяет асимптотика всего train - набора В алгоритмах DL порядок данных в обучающей выборке может иметь значение
bull Многие решения в DL не доказаны математически и являются успешными эвристиками
bull Большой простор для прикладной математики Может рассматриваться как фактор-граф с группами латентных переменных
bull В настоящее время стал основной технологией в распознавании речи (speech recognition) и машинном зрении (computer vision) начал применяться в обработке текстов (natural language processing)
bull Основная идея ndash применение нелинейного отображения входного набора в более высокоразмерное пространство где многие неразделимые композиции становятся разделимыми а затем объединение композиций по семантической близости
Подход разреженного кодирования
Обобщенная архитектура
bull DL сеть может быть собрана каскадированием и использованием обучения с учителем
Здесь используется forward propagation для обучения
Для настройки коэффициентов используется метод fprof для каждого
Требуется знание градиента энергии
Элементы (kl) матрицы Якобиана
Требуется знание градиента энергии 120597119864120597119882119894 = 120597119864120597119883119894120597119865119894(119883119894minus1119882119894)120597119882119894
ሾ1times 119873119908ሿ= ሾ1times 119873119909ሿlowast[119873119909 times 119873119908] Элементы (kl) матрицы Якобиана
Сводится к рекуррентному соотношению для вычисления градиента 120597119864120597119883119894minus1 = 120597119864120597119883119894120597119865119894(119883119894minus1119882119894)120597119883119894minus1
В итоге
Для вычисления градиента может использоваться метод back propagation
В действительности работают любые архитектуры построения функции Нужно конструировать связи и функции блоков
Язык Torch 7 ndash современный инструмент моделирования и имплементации
Machine Learning with Torch7 (httpcodecogbitscomwikidokuphpid=start)
bull These tutorials were originally designed for the IPAM Summer School on Deep Learning more info herebull This wiki provides multiple tutorials with the overall objective of teaching you how to do machine learning
with Torch7bull Torch7 provides a Matlab-like environment for state-of-the-art machine learning algorithms It is easy to use
and provides a very efficient implementation thanks to an easy and fast scripting language (LuaJIT) and an underlying C implementation
bull These tutorials should be readdone in orderbull Tutorial 1 Setup Basics Getting Startedbull Tutorial 2 Supervised Learningbull Tutorial 3 Unsupervised Learningbull Tutorial 4 Graphical Modelsbull Tutorial 5 Creating New Modulesbull Tutorial 6 Using CUDAbull To follow these tutorials and do the exercises you will need to download the associated code which is hosted
on GitHub on this page In this repository each directory corresponds to a tutorial herebull starttxt middot Last modified 20140204 2246 by clement
Torch 7 является расширением Lua
What is LuaLua is a powerful fast lightweight embeddable scripting languageLua combines simple procedural syntax with powerful data description constructs based on associative arrays and extensible semantics Lua is dynamically typed runs by interpreting bytecode for a register-based virtual machine and has automatic memory management with incremental garbage collection making it ideal for configuration scripting and rapid prototyping
Why choose LuaLua is a proven robust languageLua has been used in many industrial applications (eg Adobes Photoshop Lightroom) with an emphasis on embedded systems (eg the Ginga middleware for digital TV in Brazil) and games (eg World of Warcraft and Angry Birds) Lua is currently the leading scripting language in games Lua has a solid reference manual and there are several books about it Several versions of Lua have been released and used in real applications since its creation in 1993 Lua featured in HOPL III the Third ACM SIGPLAN History of Programming Languages Conference in June 2007 Lua won the Front Line Award 2011 from the Game Developers Magazine
Свертка и архитектура 4-х уровневой сверточной сети
Функциональная структура
Примеры успешного применения сверточных сетей
Диагностика эпилепсии по ЭЭГ
Реализация сверточной сетью
Одна из самых больших сверточных сетейbull Krizhevsky Sutskever Hinton 2012bull 650 000 нейронов 832 000 000 синапсов 60 000000 пареметровbull Использовался backprop на GPUbull Обучающая выборка на материалах 20 летbull Купил Google в январе 2013bull В мае 2013 развернул как сервис Photo Tagging Google+
Пример тэгирования
Пример поиска похожих по изображению
Пример поиска в коллекции изображений по текстовому запросу
Пример laquoоблачногоraquo классификатора изображений
Самообучающиеся нейронные сети на основе минимизации функции энергииbull Применима к сетям с обратными связямиbull Конструирование функции энергии должно обеспечивать
laquoконтрастностьraquo разделения
bull Энергетическая функция может Неформально рассматриваться как отрицательный логарифм плотности вероятности
Y 2=(Y1)2
RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцмана
bull Из DBM cтроится Deep Belief Network (DBN)
bull w mdash вес между нейронами
bull b mdash смещение нейрона
bull s mdash состояние нейрона
Алгоритм обучения Contrastive Divergence (CD)bull w_ij mdash веc между i-ым нейроном Вероятность пар может быть представлена как
bull a_i mdash смещение видимого нейрона
bull b_j mdash смещение скрытого нейрона
bull v_i mdash состояние видимого нейрона
bull h_j mdash состояние скрытого нейрона Полная вероятность состояния видимых нейронов
Основные уравнения адаптации
Алгоритм Хинтона - Contrastive Divergence (CD-k)
1 состояние видимых нейронов приравнивается к входному образу2 выводятся вероятности состояний скрытого слоя3 каждому нейрону скрытого слоя ставится в соответствие состояние laquo1raquo с вероятностью равной его текущему состоянию4 выводятся вероятности видимого слоя на основании скрытого5 если текущая итерация меньше k то возврат к шагу 26 выводятся вероятности состояний скрытого слоя
darch Package for deep architectures and Restricted-Bolzmann-MachinesThe darch package is build on the basis of the code from G E Hinton and R R Salakhutdinov (available under Matlab Code for deep belief nets last visit 01082013) This package is for generating neural networks with many layers (deep architectures) and train them with the method introduced by the publications A fast learning algorithm for deep belief nets (G E Hinton S Osindero Y W Teh) and Reducing the dimensionality of data with neural networks (G E Hinton R R Salakhutdinov) This method includes a pre training with the contrastive divergence method publishing by GE Hinton (2002) and a fine tuning with common known training algorithms like backpropagation or conjugate gradient
bull Version 091bull Imports futilelogger ff methodsbull Published 2014-03-16bull Author Martin Dreesbull Maintainer Martin Drees ltmdrees at studfh-dortmunddegtbull License GPL-2bull URL httpgithubcommaddin79darchbull NeedsCompilation nobull Materials READMEbull CRAN checks darch results
Связь плотности вероятности и энергии
Используется распределение Гиббса
Задача обучения с точки минимизации энергии сети
bull Сконструировать функцию энергии с малыми значениями на обучающей выборке и с большими значениями всюду вне этого множества
bull Первое несложно а второе представляет задачу процесса обучения
Интуитивные соображения
Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decomposition LISTA ndashметоды использующие разреженные коды
Латентная переменная Z =argmin_z Distance[Decoder(Z)Y]+FactorB(Z)MAPminimaize sum of factors
Автоэнкодер (auto encoder) Автоэнкодер представляет собой алгоритм обучения без учителя который использует нейронную сеть и метод обратного распространения ошибки для того чтобы добиться того что входной вектор признаков вызывал отклик сети равный входному вектору те y = x Автоэнкодер пытается построить функцию h(x) = x
Архитекттура ICA моделей
Итеративные алгоритмы с оптимальным разреженным кодированием ISTAFISTA
Самоорганизация данных методами Deep Learning
>
Знакомство с пакетом deepnet
Назначение
Составdbndnntrain - обучение сети с архитектурой DBN (deep belief network)loadmnist - формирование данных из файлов MNISTnnpredict - предсказание новых выборок на обученной нейронной сетиnntest ndash тестирование обученной нейронной сети с возвращением значения ошибкиnntrain ndash обучение одностлойной или многослойной нейронной сети методом backproprbmdown ndash генерирование видимого вектора для скрытых состояний сети RBMrbmtrain ndash обучение сети RBMrbmup ndash извлечение скрытых состояний RBM по известным видимым состояниямsaednntrain ndash обучение нейронной сети с архитектурой stacked autoencoder
Прогнозирование (классификация) нейронной сетью с архитектурой stacked auto encoder
Argumentsbull x matrix of x values for examplesbull y vector or matrix of target values for examplesbull hidden vector for number of units of hidden layersDefault is c(10)bull activationfun activation function of hidden unitCan be sigmlinear or tanhDefault isbull sigm for logistic functionbull learningrate learning rate for gradient descent Default is 08bull momentum momentum for gradient descent Default is 05 bull learningrate_scalebull learning rate will be mutiplied by this scale after every iteration Default is 1 bull numepochs number of iteration for samples Default is 3bull batchsize size of mini-batch Default is 100bull output function of output unit can be sigmlinear or softmax Default is sigmbull sae_output function of autoencoder output unit can be sigmlinear or softmax Defaultbull is linearbull hidden_dropout drop out fraction for hidden layer Default is 0bull visible_dropoutbull drop out fraction for input layer Default is 0
Что такое MNISTbull Смешанный набор данных Национального института стандартов и
технологий (mixed National Institute of Standards and Technology MNIST) был создан исследователями IR в качестве эталона для сравнения различных алгоритмов IR
bull Набор данных состоит всего из 70 000 изображений 60 000 обучающих (используемых для создания модели IR) и 10 000 тестовых (применяемых для оценки точности модели) Каждое изображение MNIST mdash это оцифрованная картинка одной цифры написанной от руки Каждое изображение имеет размер 28 times 28 пикселей Каждое значение пикселя лежит в диапазоне от 0 (представляет белый цвет) до 255 (представляет черный цвет) Промежуточные значения отражают оттенки серого
httpyannlecuncomexdbmnistобучающие и тестовые данные хранятся в двух файлах а не в одном Один файл содержит значения пикселей для изображений а другой mdash метки изображений (0ndash9) Каждый из четырех файлов также содержит заголовочную информацию и все они хранятся в двоичном формате сжатом в формате gziptrain-images-idx3-ubytegz training set images (9912422 bytes)
train-labels-idx1-ubytegz training set labels (28881 bytes)
t10k-images-idx3-ubytegz test set images (1648877 bytes)
t10k-labels-idx1-ubytegz test set labels (4542 bytes)
bull Каждая строка файла представляет собой имидж размера 28 times 28 вектором длины 784 каждый признак ndash значение пиксела в черно-белой шале Первый столбец содержит метку цифры 0ndash9 следующие 2828 столбцов представляют целый имидж и так далее Пример первой строки
Визуализация
bull plotmnist()bull mnistbull paramsbull train$n number of train samplesbull train$x pix of every train sample imagebull train$y label of every train sample imagebull train$yy one-of-c vector of label of train sample imagebull test$n number of test samplesbull test$x pix of every test sample imagebull test$y label of every test sample imagebull test$yy one-of-c vector of label of test sample image
plotmnist()
Распознавание рукописных цифр в deepnet
another way to download the MNIST datasetmnist downloadmnist(range=c(01)global=FALSE)look at MNIST datamnist$train$xmnist$train$ymnist$test$xmnist$test$ytrain of the sae neural networkdnnlt-saednntrain(mnist$train$xmnist$train$yhidden=c(55))test of the sae neural networknntest(dnnmnist$test$xmnist$test$yt=05)
End of slides part 2 (Part 3 - NLP remaining)
Vladimirvkrylovgmailcom
Основы предиктивной аналитики Часть вторая
Применение методов Machine Learning к решению задач аналитики
Дмитрий Ветров кандидат физико-математических наук ру
Методы обучающихся машин для аналитики которые мы рассмотрим
Сначала нужно загрузить несколько пакетов (packages) для поддер
Данные для анализа
Скрипт для генерации
Данные которые мы будем использовать для демо состоят из смес
Так выглядят визуализированные данные сгенерированные скриптом
Разделение данных на обучающие и проверочные является важным эт
K-means алгоритм на пальцах
Обучающаяся машина без учителя Алгоритм K-means
Slide 13
Slide 14
Здесь мы используем заранее известный факт что необходимо кла
Еще одна иллюстрация работы алгоритма K-means
Обучающаяся машина без учителя Алгоритм KNN (Nearest Neighbor)
Как работает алгоритм KNN
knn(train test cl k = 1 l = 0 prob = FALSE useall = TRUE
Slide 20
Результаты кластеризации и зависимость ошибки от числа кластеро
Recursive PartitioningRegression Tree
Метод RP реализует обучение машины строить дерево решений по об
Recursive PartitioningRegression Tree (2)
rpart(formula data weights subset naaction = narpart met
Slide 26
Recursive PartitioningRegression Tree example
Анализ по главным компонентам (Principal Component Analysis PC
Обучающаяся машина без учителя Алгоритм KNN (Nearest Neighbor)Алгоритм KNN Основным принципом метода ближайших соседей является то что объект присваивается тому классу который является наиболее распространённым среди соседей данного элементаДля классификации каждого из объектов тестовой выборки
необходимо последовательно выполнить следующие операцииВычислить расстояние до каждого из объектов обучающей выборки
Отобрать k объектов обучающей выборки расстояние до которых минимально
Класс классифицируемого объекта mdash это класс наиболее часто встречающийся среди k ближайших соседей
Как работает алгоритм KNN
>
knn(train test cl k = 1 l = 0 prob = FALSE useall = TRUE)
train matrix or data frame of training set cases
test matrix or data frame of test set cases A vector will be interpreted as a row vector for a single case
cl factor of true classifications of training set
k number of neighbours considered
l minimum vote for definite decision otherwise doubt (More precisely less than k-l dissenting votes are allowed even if k is increased by ties)
prob If this is true the proportion of the votes for the winning class are returned as attribute prob
useall controls handling of ties If true all distances equal to the kth largest are included If false a random selection of distances equal to the kth is chosen to use exactly k neighbours
Here we demonstrate the bias-variance tradeoff as we increase k
err lt- matrix(nrow=N100 ncol=2)for (i in 1nrow(err))
k lt- i 4test$predicted_class lt- knn(train[12] test[12] train$class k=k)mlt-cm(test$class test$predicted_class)err[i] lt- c(k 1 - sum(diag(m)) sum(m))
plot (err)
Результаты кластеризации и зависимость ошибки от числа кластеров
actualpredicted A B C A 272 0 7 B 1 308 1 C 31 0 280
gt m
Recursive PartitioningRegression Treebull Основано на дереве решений представляющем граф бинарной
последовательной классификации по тест-вопросам в каждой вершине графа Листья дерева ассоциируются с результатами классификации
Метод RP реализует обучение машины строить дерево решений по обучающей выборке данных
bull laquoРасщеплениеraquo обучающих данныхМножество данных в каждом узле разделяется на два соответствующих ответам TRUE или FALSE Вопросы должны порождать бинарное разбиение множества Для числовых характеристик это обычно неравенства характеристика Xn меньше или равна значению Ym
bull Конструирование тест-вопросовПринцип putity measurement ndash очищающих измерений Каждая характеристика анализируется статистически для каждого разбиения и выбирается наилучшее по чистоте разделенияbull Критерий остановкиЧтобы избежать переобучения используется либо порог чистоты либо максимальное число узлов либо минимальное число наблюдений в узле
Recursive PartitioningRegression Tree
Пример расщепления обучающей выборки
rpart(formula data weights subset naaction = narpart method model = FALSE x = FALSE y = TRUE parms control cost )
formula a formula with a response but no interaction terms If this a a data frome that is taken as the model frame (see modelframe)
data an optional data frame in which to interpret the variables named in the formula
weights optional case weights
subset optional expression saying that only a subset of the rows of the data should be used in the fit
naaction the default action deletes all observations for which y is missing but keeps those in which one or more predictors are missing method one of anova poisson class or exp If method is missing then the routine tries to make an intelligent guess If y is a survival object then method = exp is assumed if y has 2 columns then method = poisson is assumed if y is a factor then method = class is assumed otherwise method = anova is assumed It is wisest to specify the method directly especially as more criteria may added to the function in future Alternatively method can be a list of functions named init split and eval Examples are given in the file lsquotestsusersplitsRrsquo in the sources and in the vignettes lsquoUser Written Split Functionsrsquo
model if logical keep a copy of the model frame in the result If the input value for model is a model frame (likely from an earlier call to the rpart function) then this frame is used rather than constructing new data
x keep a copy of the x matrix in the result
y keep a copy of the dependent variable in the result If missing and model is supplied this defaults to FALSE
parms optional parameters for the splitting function Anova splitting has no parameters Poisson splitting has a single parameter the coefficient of variation of the prior distribution on the rates The default value is 1 Exponential splitting has the same parameter as Poisson For classification splitting the list can contain any of the vector of prior probabilities (component prior) the loss matrix (component loss) or the splitting index (component split) The priors must be positive and sum to 1 The loss matrix must have zeros on the diagonal and positive off-diagonal elements The splitting index can be gini or information The default priors are proportional to the data counts the losses default to 1 and the split defaults to gini
control a list of options that control details of the rpart algorithm See rpartcontrol
cost a vector of non-negative costs one for each variable in the model Defaults to one for all variables These are scalings to be applied when considering splits so the improvement on splitting on a variable is divided by its cost in deciding which split to choose arguments to rpartcontrol may also be specified in the call to rpart They are checked against the list of valid arguments
Recursive PartitioningRegression Tree example(r lt- rpart(class ~ x + y data = train))plot(r)text(r)
Here we look at the confusion matrix and overall error rate from applying the tree rules to the training datapredicted lt- asnumeric(apply(predict(r) 1 function(r) order(-r)[1]))(m lt- cm (train$class predicted))1 - sum(diag(m)) sum(m)
And by comparison against the test datapredicted lt- asnumeric(apply(predict(r test[12]) 1 function(r) order(-r)[1]))(m lt- cm (test$class predicted))1 - sum(diag(m)) sum(m)
Анализ по главным компонентам (Principal Component Analysis PCA)Известно четыре базовых версии методаbull аппроксимировать данные линейными многообразиями меньшей
размерностиbull найти подпространства меньшей размерности в ортогональной проекции
на которые разброс данных (то есть среднеквадратичное отклонение от среднего значения) максимален
bull найти подпространства меньшей размерности в ортогональной проекции на которые среднеквадратичное расстояние между точками максимально
bull для данной многомерной случайной величины построить такое ортогональное преобразование координат в результате которого корреляции между отдельными координатами обратятся в нуль
В основе задача наилучшей аппроксимации конечного множества точек прямыми и плоскостями (Пирсон 1901) Дано конечное множество векторов для каждого k=01hellipn-1 среди всех k-мерных линейных многообразий в Rn найти такое что сумма квадратов уклонений минимальна
bull Графическая иллюстрация метода главных компонент в 3D
Алгоритм
bull Централизация данных
bull Находим первую главную компоненту
bull Вычитаем проекцию на нее
bull Находим вторую главную компоненту
bull Вычитаем проекцию на (k-1) главную компоненту
bull Находим k-ую главную компоненту
bull Всегда выполняется условие ортогональности
princomp(formula data = NULL subset naaction )formula a formula with no response variable referring only to numeric variables
data an optional data frame (or similar see modelframe) containing the variables in the formula formula By default the variables are taken from environment(formula)
subset an optional vector used to select rows (observations) of the data matrix x
naaction a function which indicates what should happen when the data contain NAs The default is set by the naaction setting of options and is nafail if that is unset The lsquofactory-freshrsquo default is naomit
x a numeric matrix or data frame which provides the data for the principal components analysis
cor a logical value indicating whether the calculation should use the correlation matrix or the covariance matrix (The correlation matrix can only be used if there are no constant variables)
scores a logical value indicating whether the score on each principal component should be calculated
covmat a covariance matrix or a covariance list as returned by covwt (and covmve or covmcd from package MASS) If supplied this is used rather than the covariance matrix of x
arguments passed to or from other methods If x is a formula one might specify cor or scores
object Object of class inheriting from princomp
newdata An optional data frame or matrix in which to look for variables with which to predict If omitted the scores are used If the original fit used a formula or a data frame or a matrix with column names newdata must contain columns with the same names Otherwise it must contain the same number of columns to be used in the same order
Principal Component Analysis (PCA)plt-princomp(train[12])train_pca lt- dataframe(p$scores)train_pca$class lt- train$class
Compare the alignment of the clusters to the axis in the feature space versus the transformed space
r2 lt- rpart(class ~ Comp1 + Comp2 data = train_pca)
Линейный дискриминантный анализ (Linear Discriminant Analysis - LDA)bull Для каждого образца объекта или события с известным классом y
рассматривается набор наблюдений x (называемых ещё признаками переменными или измерениями) Набор таких образцов называется обучающей выборкой (или набором обучения обучением) Задачи классификации состоит в том чтобы построить хороший прогноз класса y для всякого так же распределённого объекта (не обязательно содержащегося в обучающей выборке) имея только наблюдения x Основная идея состоит в сравнении распределений для каждого из классов Расстоянием (по Фишеру) между распределениями принято считать отношение межклассовой дисперсии к внутриклассовой
bull Оптимальное байесовское решение - относить точки ко второму классу если отношение правдоподобия ниже некоторого порогового значения T
bull Предполагая что выполнена нормировка
bull Решение записывается в виде неравенства для скалярного произведения
bull Здесь laquoизмерительныйraquo вектор равен
bull с- дискриминантный порог
lda(x grouping prior = proportions tol = 10e-4 method CV = FALSE nu )
formula A formula of the form groups ~ x1 + x2 + That is the response is the grouping factor and the right hand side specifies the (non-factor) discriminators
data Data frame from which variables specified in formula are preferentially to be taken
x (required if no formula is given as the principal argument) a matrix or data frame or Matrix containing the explanatory variables
grouping (required if no formula principal argument is given) a factor specifying the class for each observation
prior the prior probabilities of class membership If unspecified the class proportions for the training set are used If present the probabilities should be specified in the order of the factor levels
tol A tolerance to decide if a matrix is singular it will reject variables and linear combinations of unit-variance variables whose variance is less than tol^2
subset An index vector specifying the cases to be used in the training sample (NOTE If given this argument must be named)
naaction A function to specify the action to be taken if NAs are found The default action is for the procedure to fail An alternative is naomit which leads to rejection of cases with missing values on any required variable (NOTE If given this argument must be named)
method moment for standard estimators of the mean and variance mle for MLEs mve to use covmve or t for robust estimates based on a t distribution
CV If true returns results (classes and posterior probabilities) for leave-one-out cross-validation Note that if the prior is estimated the proportions in the whole dataset are used
nu degrees of freedom for method = t
arguments passed to or from other methods
prior the prior probabilities usedmeans the group meansscaling a matrix which transforms observations to
discriminant functions normalized so that within groups covariance matrix is spherical
svd the singular values which give the ratio of the between- and within-group standard deviations on the linear discriminant variables Their squares are the canonical F-statistics
N The number of observations usedcall The (matched) function call
An object of class lda containing the following components
Метод опорных векторов (Support Vector Machines - SVM)Относится к ML с учителем и использует линейные разделяющие поверхности
Идея алгоритма
bull По обучающей выборке
bull Строится классифицирующая функция
bull Используя гиперплоскость
bull Поиск коэффициентов сводится к максимизации
расстояний от опорных векторов или минимизации
Иллюстрация на простейшем примере
>
Производится вложение обучающей выборки в пространство более высокой размерности Х с помощью нелинейной функции так чтобы обеспечит линейную разделимость в Х
Разделяющая функция тогда имеет вид
Функция называется ядром
Полиномиальное ядро
Радиальная базисная функция
Сигмоид
Линейная неразделимость и использование ядер
Иллюстрация использования ядра для отображения 2D -gt 3D
>
svm((formula data = NULL subset naaction =naomit scale = TRUE))
formulaa symbolic description of the model to be fitdataan optional data frame containing the variables in the model By default the variables are taken from the environment which lsquosvmrsquo is called fromxa data matrix a vector or a sparse matrix (object of class Matrix provided by the Matrix package or of class matrixcsr provided by the SparseM package or of class simple_triplet_matrix provided by the slam package)ya response vector with one label for each rowcomponent of x Can be either a factor (for classification tasks) or a numeric vector (for regression)scaleA logical vector indicating the variables to be scaled If scale is of length 1 the value is recycled as many times as needed Per default data are scaled internally (both x and y variables) to zero mean and unit variance The center and scale values are returned and used for later predictionstypesvm can be used as a classification machine as a regression machine or for novelty detection Depending of whether y is a factor or not the default setting for type is C-classification or eps-regression respectively but may be overwritten by setting an explicit valueValid options areC-classificationnu-classificationone-classification (for novelty detection)eps-regressionnu-regression
Support Vector Machines
s lt- svm( I(factor(class)) ~ x + y data = train cost = 100 gama = 1)
Package lsquodeepnetrsquo February 19 2015 Type Package Title deep learning toolkit in R Version 02 Date 2014-03-20 Author Xiao Rong Maintainer Xiao Rong Description Implement some deep learning architectures and neural network algorithms including BPRBMDBNDeep autoencoder and so on License GPL NeedsCompilation no Repository CRAN DatePublication 2014-03-20 100343
laquoВ 1997 году Deep Blue обыграл в шахматы КаспароваВ 2011 Watson обставил чемпионов JeopardyСможет ли ваш алгоритм в 2013 году отличить Бобика от ПушистикаraquoKaggle Competitions Details
Сегодня уже можно ответить laquoдаraquo mdash десятка лидеров справилась с заданием на 988
Распознавание основано на feature detection и последующем различении комбинаций
Заранее неизвестно какие части картинки могут использоваться как хорошие features В их роли может выступать все что угодно mdash фрагменты изображения форма размер или цвет Feature может не присутствовать на картинке сама а выражаться в параметре полученным каким-то образом из исходных данных
Распознавание рукописных цифр
Еще пример посложнее
Использование нейронной сети с обучениемОбучение такой нейронной сети производится обычно методом обратного распространения ошибки таким образом чтобы минимизировать среднеквадратическую ошибку отклика сети на обучающей выборке Таким образом обучающая выборка содержит пары векторов признаков (входные данные) и эталонных векторов (маркированные данные) (x y)
Сверхвысокая размерность при работе с первичным представлением пикселями
Пиксельное кодирование
Принцип иерархии понятий ndash основа deep learning
bull Все вещи состоят из других маленьких и более элементарных вещей
bull Как извлекать features Гипотеза малоразмерных многообразий
Разреженное (sparse) кодирование
первый уровень иерархии состоит из элементов словаря этого кода которые представляют собой штрихи и границы
Словарь для лиц
Выделение объектов заданного класса
Основные архитектуры Deep Learningbull Deep neural networks (DNN)bull Deep belief networks (DBN)bull Convolutional neural networks (CNN)bull Deep Boltzmann Machines (DBM)bull Stacked (Denoising) Auto-Encodersbull Deep Stacking Networksbull Tensor Deep Stacking Networks (T-DSN)bull Spike-and-Slab RBMs (ssRBMs)bull Compound Hierarchical-Deep Modelsbull Deep Coding Networks (DPCN)bull Deep Kernel Machinesbull Deep Q-Networks (2015 г)
Задача классификации распознавания и подобные являются задачей конструирования функции на множестве входных наборов и со значениями в множестве требуемого вида выходных
bull Норбертом Винером было показано что любая функция может быть сколь угодно точно композицией двух (он использовал функции полином Лагранжа и функцию Лагерра)
bull Соответствует двухслойной нейросетиbull Архитектуры Deep Learning соответствуют представлению
bull Обеспечивают эффективную параметризацию при решении конкретных задач Более сложные функции создаются из большего числа но более эффективно настраиваемых laquoкирпичиковraquo Пример ndash синтез булевых функций Дерево вентилей эффективнее двухслойной схемы
Фактор - графыВсе методы которые расмотрели ndash не DL Даже деревья классификации Все операции в одном входном словаре
DL можно определить по фактор-графу
Например
bull Еще одна сторона DL - нередко использует невыпуклые функции потерьbull Обучение на основе выпуклых функций не зависит от порядка
предъявления данных для обучения Все определяет асимптотика всего train - набора В алгоритмах DL порядок данных в обучающей выборке может иметь значение
bull Многие решения в DL не доказаны математически и являются успешными эвристиками
bull Большой простор для прикладной математики Может рассматриваться как фактор-граф с группами латентных переменных
bull В настоящее время стал основной технологией в распознавании речи (speech recognition) и машинном зрении (computer vision) начал применяться в обработке текстов (natural language processing)
bull Основная идея ndash применение нелинейного отображения входного набора в более высокоразмерное пространство где многие неразделимые композиции становятся разделимыми а затем объединение композиций по семантической близости
Подход разреженного кодирования
Обобщенная архитектура
bull DL сеть может быть собрана каскадированием и использованием обучения с учителем
Здесь используется forward propagation для обучения
Для настройки коэффициентов используется метод fprof для каждого
Требуется знание градиента энергии
Элементы (kl) матрицы Якобиана
Требуется знание градиента энергии 120597119864120597119882119894 = 120597119864120597119883119894120597119865119894(119883119894minus1119882119894)120597119882119894
ሾ1times 119873119908ሿ= ሾ1times 119873119909ሿlowast[119873119909 times 119873119908] Элементы (kl) матрицы Якобиана
Сводится к рекуррентному соотношению для вычисления градиента 120597119864120597119883119894minus1 = 120597119864120597119883119894120597119865119894(119883119894minus1119882119894)120597119883119894minus1
В итоге
Для вычисления градиента может использоваться метод back propagation
В действительности работают любые архитектуры построения функции Нужно конструировать связи и функции блоков
Язык Torch 7 ndash современный инструмент моделирования и имплементации
Machine Learning with Torch7 (httpcodecogbitscomwikidokuphpid=start)
bull These tutorials were originally designed for the IPAM Summer School on Deep Learning more info herebull This wiki provides multiple tutorials with the overall objective of teaching you how to do machine learning
with Torch7bull Torch7 provides a Matlab-like environment for state-of-the-art machine learning algorithms It is easy to use
and provides a very efficient implementation thanks to an easy and fast scripting language (LuaJIT) and an underlying C implementation
bull These tutorials should be readdone in orderbull Tutorial 1 Setup Basics Getting Startedbull Tutorial 2 Supervised Learningbull Tutorial 3 Unsupervised Learningbull Tutorial 4 Graphical Modelsbull Tutorial 5 Creating New Modulesbull Tutorial 6 Using CUDAbull To follow these tutorials and do the exercises you will need to download the associated code which is hosted
on GitHub on this page In this repository each directory corresponds to a tutorial herebull starttxt middot Last modified 20140204 2246 by clement
Torch 7 является расширением Lua
What is LuaLua is a powerful fast lightweight embeddable scripting languageLua combines simple procedural syntax with powerful data description constructs based on associative arrays and extensible semantics Lua is dynamically typed runs by interpreting bytecode for a register-based virtual machine and has automatic memory management with incremental garbage collection making it ideal for configuration scripting and rapid prototyping
Why choose LuaLua is a proven robust languageLua has been used in many industrial applications (eg Adobes Photoshop Lightroom) with an emphasis on embedded systems (eg the Ginga middleware for digital TV in Brazil) and games (eg World of Warcraft and Angry Birds) Lua is currently the leading scripting language in games Lua has a solid reference manual and there are several books about it Several versions of Lua have been released and used in real applications since its creation in 1993 Lua featured in HOPL III the Third ACM SIGPLAN History of Programming Languages Conference in June 2007 Lua won the Front Line Award 2011 from the Game Developers Magazine
Свертка и архитектура 4-х уровневой сверточной сети
Функциональная структура
Примеры успешного применения сверточных сетей
Диагностика эпилепсии по ЭЭГ
Реализация сверточной сетью
Одна из самых больших сверточных сетейbull Krizhevsky Sutskever Hinton 2012bull 650 000 нейронов 832 000 000 синапсов 60 000000 пареметровbull Использовался backprop на GPUbull Обучающая выборка на материалах 20 летbull Купил Google в январе 2013bull В мае 2013 развернул как сервис Photo Tagging Google+
Пример тэгирования
Пример поиска похожих по изображению
Пример поиска в коллекции изображений по текстовому запросу
Пример laquoоблачногоraquo классификатора изображений
Самообучающиеся нейронные сети на основе минимизации функции энергииbull Применима к сетям с обратными связямиbull Конструирование функции энергии должно обеспечивать
laquoконтрастностьraquo разделения
bull Энергетическая функция может Неформально рассматриваться как отрицательный логарифм плотности вероятности
Y 2=(Y1)2
RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцмана
bull Из DBM cтроится Deep Belief Network (DBN)
bull w mdash вес между нейронами
bull b mdash смещение нейрона
bull s mdash состояние нейрона
Алгоритм обучения Contrastive Divergence (CD)bull w_ij mdash веc между i-ым нейроном Вероятность пар может быть представлена как
bull a_i mdash смещение видимого нейрона
bull b_j mdash смещение скрытого нейрона
bull v_i mdash состояние видимого нейрона
bull h_j mdash состояние скрытого нейрона Полная вероятность состояния видимых нейронов
Основные уравнения адаптации
Алгоритм Хинтона - Contrastive Divergence (CD-k)
1 состояние видимых нейронов приравнивается к входному образу2 выводятся вероятности состояний скрытого слоя3 каждому нейрону скрытого слоя ставится в соответствие состояние laquo1raquo с вероятностью равной его текущему состоянию4 выводятся вероятности видимого слоя на основании скрытого5 если текущая итерация меньше k то возврат к шагу 26 выводятся вероятности состояний скрытого слоя
darch Package for deep architectures and Restricted-Bolzmann-MachinesThe darch package is build on the basis of the code from G E Hinton and R R Salakhutdinov (available under Matlab Code for deep belief nets last visit 01082013) This package is for generating neural networks with many layers (deep architectures) and train them with the method introduced by the publications A fast learning algorithm for deep belief nets (G E Hinton S Osindero Y W Teh) and Reducing the dimensionality of data with neural networks (G E Hinton R R Salakhutdinov) This method includes a pre training with the contrastive divergence method publishing by GE Hinton (2002) and a fine tuning with common known training algorithms like backpropagation or conjugate gradient
bull Version 091bull Imports futilelogger ff methodsbull Published 2014-03-16bull Author Martin Dreesbull Maintainer Martin Drees ltmdrees at studfh-dortmunddegtbull License GPL-2bull URL httpgithubcommaddin79darchbull NeedsCompilation nobull Materials READMEbull CRAN checks darch results
Связь плотности вероятности и энергии
Используется распределение Гиббса
Задача обучения с точки минимизации энергии сети
bull Сконструировать функцию энергии с малыми значениями на обучающей выборке и с большими значениями всюду вне этого множества
bull Первое несложно а второе представляет задачу процесса обучения
Интуитивные соображения
Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decomposition LISTA ndashметоды использующие разреженные коды
Латентная переменная Z =argmin_z Distance[Decoder(Z)Y]+FactorB(Z)MAPminimaize sum of factors
Автоэнкодер (auto encoder) Автоэнкодер представляет собой алгоритм обучения без учителя который использует нейронную сеть и метод обратного распространения ошибки для того чтобы добиться того что входной вектор признаков вызывал отклик сети равный входному вектору те y = x Автоэнкодер пытается построить функцию h(x) = x
Архитекттура ICA моделей
Итеративные алгоритмы с оптимальным разреженным кодированием ISTAFISTA
Самоорганизация данных методами Deep Learning
>
Знакомство с пакетом deepnet
Назначение
Составdbndnntrain - обучение сети с архитектурой DBN (deep belief network)loadmnist - формирование данных из файлов MNISTnnpredict - предсказание новых выборок на обученной нейронной сетиnntest ndash тестирование обученной нейронной сети с возвращением значения ошибкиnntrain ndash обучение одностлойной или многослойной нейронной сети методом backproprbmdown ndash генерирование видимого вектора для скрытых состояний сети RBMrbmtrain ndash обучение сети RBMrbmup ndash извлечение скрытых состояний RBM по известным видимым состояниямsaednntrain ndash обучение нейронной сети с архитектурой stacked autoencoder
Прогнозирование (классификация) нейронной сетью с архитектурой stacked auto encoder
Argumentsbull x matrix of x values for examplesbull y vector or matrix of target values for examplesbull hidden vector for number of units of hidden layersDefault is c(10)bull activationfun activation function of hidden unitCan be sigmlinear or tanhDefault isbull sigm for logistic functionbull learningrate learning rate for gradient descent Default is 08bull momentum momentum for gradient descent Default is 05 bull learningrate_scalebull learning rate will be mutiplied by this scale after every iteration Default is 1 bull numepochs number of iteration for samples Default is 3bull batchsize size of mini-batch Default is 100bull output function of output unit can be sigmlinear or softmax Default is sigmbull sae_output function of autoencoder output unit can be sigmlinear or softmax Defaultbull is linearbull hidden_dropout drop out fraction for hidden layer Default is 0bull visible_dropoutbull drop out fraction for input layer Default is 0
Что такое MNISTbull Смешанный набор данных Национального института стандартов и
технологий (mixed National Institute of Standards and Technology MNIST) был создан исследователями IR в качестве эталона для сравнения различных алгоритмов IR
bull Набор данных состоит всего из 70 000 изображений 60 000 обучающих (используемых для создания модели IR) и 10 000 тестовых (применяемых для оценки точности модели) Каждое изображение MNIST mdash это оцифрованная картинка одной цифры написанной от руки Каждое изображение имеет размер 28 times 28 пикселей Каждое значение пикселя лежит в диапазоне от 0 (представляет белый цвет) до 255 (представляет черный цвет) Промежуточные значения отражают оттенки серого
httpyannlecuncomexdbmnistобучающие и тестовые данные хранятся в двух файлах а не в одном Один файл содержит значения пикселей для изображений а другой mdash метки изображений (0ndash9) Каждый из четырех файлов также содержит заголовочную информацию и все они хранятся в двоичном формате сжатом в формате gziptrain-images-idx3-ubytegz training set images (9912422 bytes)
train-labels-idx1-ubytegz training set labels (28881 bytes)
t10k-images-idx3-ubytegz test set images (1648877 bytes)
t10k-labels-idx1-ubytegz test set labels (4542 bytes)
bull Каждая строка файла представляет собой имидж размера 28 times 28 вектором длины 784 каждый признак ndash значение пиксела в черно-белой шале Первый столбец содержит метку цифры 0ndash9 следующие 2828 столбцов представляют целый имидж и так далее Пример первой строки
Визуализация
bull plotmnist()bull mnistbull paramsbull train$n number of train samplesbull train$x pix of every train sample imagebull train$y label of every train sample imagebull train$yy one-of-c vector of label of train sample imagebull test$n number of test samplesbull test$x pix of every test sample imagebull test$y label of every test sample imagebull test$yy one-of-c vector of label of test sample image
plotmnist()
Распознавание рукописных цифр в deepnet
another way to download the MNIST datasetmnist downloadmnist(range=c(01)global=FALSE)look at MNIST datamnist$train$xmnist$train$ymnist$test$xmnist$test$ytrain of the sae neural networkdnnlt-saednntrain(mnist$train$xmnist$train$yhidden=c(55))test of the sae neural networknntest(dnnmnist$test$xmnist$test$yt=05)
End of slides part 2 (Part 3 - NLP remaining)
Vladimirvkrylovgmailcom
Основы предиктивной аналитики Часть вторая
Применение методов Machine Learning к решению задач аналитики
Дмитрий Ветров кандидат физико-математических наук ру
Методы обучающихся машин для аналитики которые мы рассмотрим
Сначала нужно загрузить несколько пакетов (packages) для поддер
Данные для анализа
Скрипт для генерации
Данные которые мы будем использовать для демо состоят из смес
Так выглядят визуализированные данные сгенерированные скриптом
Разделение данных на обучающие и проверочные является важным эт
K-means алгоритм на пальцах
Обучающаяся машина без учителя Алгоритм K-means
Slide 13
Slide 14
Здесь мы используем заранее известный факт что необходимо кла
Еще одна иллюстрация работы алгоритма K-means
Обучающаяся машина без учителя Алгоритм KNN (Nearest Neighbor)
Как работает алгоритм KNN
knn(train test cl k = 1 l = 0 prob = FALSE useall = TRUE
Slide 20
Результаты кластеризации и зависимость ошибки от числа кластеро
Recursive PartitioningRegression Tree
Метод RP реализует обучение машины строить дерево решений по об
Recursive PartitioningRegression Tree (2)
rpart(formula data weights subset naaction = narpart met
Slide 26
Recursive PartitioningRegression Tree example
Анализ по главным компонентам (Principal Component Analysis PC
Обучающаяся машина без учителя Алгоритм KNN (Nearest Neighbor)Алгоритм KNN Основным принципом метода ближайших соседей является то что объект присваивается тому классу который является наиболее распространённым среди соседей данного элементаДля классификации каждого из объектов тестовой выборки
необходимо последовательно выполнить следующие операцииВычислить расстояние до каждого из объектов обучающей выборки
Отобрать k объектов обучающей выборки расстояние до которых минимально
Класс классифицируемого объекта mdash это класс наиболее часто встречающийся среди k ближайших соседей
Как работает алгоритм KNN
>
knn(train test cl k = 1 l = 0 prob = FALSE useall = TRUE)
train matrix or data frame of training set cases
test matrix or data frame of test set cases A vector will be interpreted as a row vector for a single case
cl factor of true classifications of training set
k number of neighbours considered
l minimum vote for definite decision otherwise doubt (More precisely less than k-l dissenting votes are allowed even if k is increased by ties)
prob If this is true the proportion of the votes for the winning class are returned as attribute prob
useall controls handling of ties If true all distances equal to the kth largest are included If false a random selection of distances equal to the kth is chosen to use exactly k neighbours
Here we demonstrate the bias-variance tradeoff as we increase k
err lt- matrix(nrow=N100 ncol=2)for (i in 1nrow(err))
k lt- i 4test$predicted_class lt- knn(train[12] test[12] train$class k=k)mlt-cm(test$class test$predicted_class)err[i] lt- c(k 1 - sum(diag(m)) sum(m))
plot (err)
Результаты кластеризации и зависимость ошибки от числа кластеров
actualpredicted A B C A 272 0 7 B 1 308 1 C 31 0 280
gt m
Recursive PartitioningRegression Treebull Основано на дереве решений представляющем граф бинарной
последовательной классификации по тест-вопросам в каждой вершине графа Листья дерева ассоциируются с результатами классификации
Метод RP реализует обучение машины строить дерево решений по обучающей выборке данных
bull laquoРасщеплениеraquo обучающих данныхМножество данных в каждом узле разделяется на два соответствующих ответам TRUE или FALSE Вопросы должны порождать бинарное разбиение множества Для числовых характеристик это обычно неравенства характеристика Xn меньше или равна значению Ym
bull Конструирование тест-вопросовПринцип putity measurement ndash очищающих измерений Каждая характеристика анализируется статистически для каждого разбиения и выбирается наилучшее по чистоте разделенияbull Критерий остановкиЧтобы избежать переобучения используется либо порог чистоты либо максимальное число узлов либо минимальное число наблюдений в узле
Recursive PartitioningRegression Tree
Пример расщепления обучающей выборки
rpart(formula data weights subset naaction = narpart method model = FALSE x = FALSE y = TRUE parms control cost )
formula a formula with a response but no interaction terms If this a a data frome that is taken as the model frame (see modelframe)
data an optional data frame in which to interpret the variables named in the formula
weights optional case weights
subset optional expression saying that only a subset of the rows of the data should be used in the fit
naaction the default action deletes all observations for which y is missing but keeps those in which one or more predictors are missing method one of anova poisson class or exp If method is missing then the routine tries to make an intelligent guess If y is a survival object then method = exp is assumed if y has 2 columns then method = poisson is assumed if y is a factor then method = class is assumed otherwise method = anova is assumed It is wisest to specify the method directly especially as more criteria may added to the function in future Alternatively method can be a list of functions named init split and eval Examples are given in the file lsquotestsusersplitsRrsquo in the sources and in the vignettes lsquoUser Written Split Functionsrsquo
model if logical keep a copy of the model frame in the result If the input value for model is a model frame (likely from an earlier call to the rpart function) then this frame is used rather than constructing new data
x keep a copy of the x matrix in the result
y keep a copy of the dependent variable in the result If missing and model is supplied this defaults to FALSE
parms optional parameters for the splitting function Anova splitting has no parameters Poisson splitting has a single parameter the coefficient of variation of the prior distribution on the rates The default value is 1 Exponential splitting has the same parameter as Poisson For classification splitting the list can contain any of the vector of prior probabilities (component prior) the loss matrix (component loss) or the splitting index (component split) The priors must be positive and sum to 1 The loss matrix must have zeros on the diagonal and positive off-diagonal elements The splitting index can be gini or information The default priors are proportional to the data counts the losses default to 1 and the split defaults to gini
control a list of options that control details of the rpart algorithm See rpartcontrol
cost a vector of non-negative costs one for each variable in the model Defaults to one for all variables These are scalings to be applied when considering splits so the improvement on splitting on a variable is divided by its cost in deciding which split to choose arguments to rpartcontrol may also be specified in the call to rpart They are checked against the list of valid arguments
Recursive PartitioningRegression Tree example(r lt- rpart(class ~ x + y data = train))plot(r)text(r)
Here we look at the confusion matrix and overall error rate from applying the tree rules to the training datapredicted lt- asnumeric(apply(predict(r) 1 function(r) order(-r)[1]))(m lt- cm (train$class predicted))1 - sum(diag(m)) sum(m)
And by comparison against the test datapredicted lt- asnumeric(apply(predict(r test[12]) 1 function(r) order(-r)[1]))(m lt- cm (test$class predicted))1 - sum(diag(m)) sum(m)
Анализ по главным компонентам (Principal Component Analysis PCA)Известно четыре базовых версии методаbull аппроксимировать данные линейными многообразиями меньшей
размерностиbull найти подпространства меньшей размерности в ортогональной проекции
на которые разброс данных (то есть среднеквадратичное отклонение от среднего значения) максимален
bull найти подпространства меньшей размерности в ортогональной проекции на которые среднеквадратичное расстояние между точками максимально
bull для данной многомерной случайной величины построить такое ортогональное преобразование координат в результате которого корреляции между отдельными координатами обратятся в нуль
В основе задача наилучшей аппроксимации конечного множества точек прямыми и плоскостями (Пирсон 1901) Дано конечное множество векторов для каждого k=01hellipn-1 среди всех k-мерных линейных многообразий в Rn найти такое что сумма квадратов уклонений минимальна
bull Графическая иллюстрация метода главных компонент в 3D
Алгоритм
bull Централизация данных
bull Находим первую главную компоненту
bull Вычитаем проекцию на нее
bull Находим вторую главную компоненту
bull Вычитаем проекцию на (k-1) главную компоненту
bull Находим k-ую главную компоненту
bull Всегда выполняется условие ортогональности
princomp(formula data = NULL subset naaction )formula a formula with no response variable referring only to numeric variables
data an optional data frame (or similar see modelframe) containing the variables in the formula formula By default the variables are taken from environment(formula)
subset an optional vector used to select rows (observations) of the data matrix x
naaction a function which indicates what should happen when the data contain NAs The default is set by the naaction setting of options and is nafail if that is unset The lsquofactory-freshrsquo default is naomit
x a numeric matrix or data frame which provides the data for the principal components analysis
cor a logical value indicating whether the calculation should use the correlation matrix or the covariance matrix (The correlation matrix can only be used if there are no constant variables)
scores a logical value indicating whether the score on each principal component should be calculated
covmat a covariance matrix or a covariance list as returned by covwt (and covmve or covmcd from package MASS) If supplied this is used rather than the covariance matrix of x
arguments passed to or from other methods If x is a formula one might specify cor or scores
object Object of class inheriting from princomp
newdata An optional data frame or matrix in which to look for variables with which to predict If omitted the scores are used If the original fit used a formula or a data frame or a matrix with column names newdata must contain columns with the same names Otherwise it must contain the same number of columns to be used in the same order
Principal Component Analysis (PCA)plt-princomp(train[12])train_pca lt- dataframe(p$scores)train_pca$class lt- train$class
Compare the alignment of the clusters to the axis in the feature space versus the transformed space
r2 lt- rpart(class ~ Comp1 + Comp2 data = train_pca)
Линейный дискриминантный анализ (Linear Discriminant Analysis - LDA)bull Для каждого образца объекта или события с известным классом y
рассматривается набор наблюдений x (называемых ещё признаками переменными или измерениями) Набор таких образцов называется обучающей выборкой (или набором обучения обучением) Задачи классификации состоит в том чтобы построить хороший прогноз класса y для всякого так же распределённого объекта (не обязательно содержащегося в обучающей выборке) имея только наблюдения x Основная идея состоит в сравнении распределений для каждого из классов Расстоянием (по Фишеру) между распределениями принято считать отношение межклассовой дисперсии к внутриклассовой
bull Оптимальное байесовское решение - относить точки ко второму классу если отношение правдоподобия ниже некоторого порогового значения T
bull Предполагая что выполнена нормировка
bull Решение записывается в виде неравенства для скалярного произведения
bull Здесь laquoизмерительныйraquo вектор равен
bull с- дискриминантный порог
lda(x grouping prior = proportions tol = 10e-4 method CV = FALSE nu )
formula A formula of the form groups ~ x1 + x2 + That is the response is the grouping factor and the right hand side specifies the (non-factor) discriminators
data Data frame from which variables specified in formula are preferentially to be taken
x (required if no formula is given as the principal argument) a matrix or data frame or Matrix containing the explanatory variables
grouping (required if no formula principal argument is given) a factor specifying the class for each observation
prior the prior probabilities of class membership If unspecified the class proportions for the training set are used If present the probabilities should be specified in the order of the factor levels
tol A tolerance to decide if a matrix is singular it will reject variables and linear combinations of unit-variance variables whose variance is less than tol^2
subset An index vector specifying the cases to be used in the training sample (NOTE If given this argument must be named)
naaction A function to specify the action to be taken if NAs are found The default action is for the procedure to fail An alternative is naomit which leads to rejection of cases with missing values on any required variable (NOTE If given this argument must be named)
method moment for standard estimators of the mean and variance mle for MLEs mve to use covmve or t for robust estimates based on a t distribution
CV If true returns results (classes and posterior probabilities) for leave-one-out cross-validation Note that if the prior is estimated the proportions in the whole dataset are used
nu degrees of freedom for method = t
arguments passed to or from other methods
prior the prior probabilities usedmeans the group meansscaling a matrix which transforms observations to
discriminant functions normalized so that within groups covariance matrix is spherical
svd the singular values which give the ratio of the between- and within-group standard deviations on the linear discriminant variables Their squares are the canonical F-statistics
N The number of observations usedcall The (matched) function call
An object of class lda containing the following components
Метод опорных векторов (Support Vector Machines - SVM)Относится к ML с учителем и использует линейные разделяющие поверхности
Идея алгоритма
bull По обучающей выборке
bull Строится классифицирующая функция
bull Используя гиперплоскость
bull Поиск коэффициентов сводится к максимизации
расстояний от опорных векторов или минимизации
Иллюстрация на простейшем примере
>
Производится вложение обучающей выборки в пространство более высокой размерности Х с помощью нелинейной функции так чтобы обеспечит линейную разделимость в Х
Разделяющая функция тогда имеет вид
Функция называется ядром
Полиномиальное ядро
Радиальная базисная функция
Сигмоид
Линейная неразделимость и использование ядер
Иллюстрация использования ядра для отображения 2D -gt 3D
>
svm((formula data = NULL subset naaction =naomit scale = TRUE))
formulaa symbolic description of the model to be fitdataan optional data frame containing the variables in the model By default the variables are taken from the environment which lsquosvmrsquo is called fromxa data matrix a vector or a sparse matrix (object of class Matrix provided by the Matrix package or of class matrixcsr provided by the SparseM package or of class simple_triplet_matrix provided by the slam package)ya response vector with one label for each rowcomponent of x Can be either a factor (for classification tasks) or a numeric vector (for regression)scaleA logical vector indicating the variables to be scaled If scale is of length 1 the value is recycled as many times as needed Per default data are scaled internally (both x and y variables) to zero mean and unit variance The center and scale values are returned and used for later predictionstypesvm can be used as a classification machine as a regression machine or for novelty detection Depending of whether y is a factor or not the default setting for type is C-classification or eps-regression respectively but may be overwritten by setting an explicit valueValid options areC-classificationnu-classificationone-classification (for novelty detection)eps-regressionnu-regression
Support Vector Machines
s lt- svm( I(factor(class)) ~ x + y data = train cost = 100 gama = 1)
Package lsquodeepnetrsquo February 19 2015 Type Package Title deep learning toolkit in R Version 02 Date 2014-03-20 Author Xiao Rong Maintainer Xiao Rong Description Implement some deep learning architectures and neural network algorithms including BPRBMDBNDeep autoencoder and so on License GPL NeedsCompilation no Repository CRAN DatePublication 2014-03-20 100343
laquoВ 1997 году Deep Blue обыграл в шахматы КаспароваВ 2011 Watson обставил чемпионов JeopardyСможет ли ваш алгоритм в 2013 году отличить Бобика от ПушистикаraquoKaggle Competitions Details
Сегодня уже можно ответить laquoдаraquo mdash десятка лидеров справилась с заданием на 988
Распознавание основано на feature detection и последующем различении комбинаций
Заранее неизвестно какие части картинки могут использоваться как хорошие features В их роли может выступать все что угодно mdash фрагменты изображения форма размер или цвет Feature может не присутствовать на картинке сама а выражаться в параметре полученным каким-то образом из исходных данных
Распознавание рукописных цифр
Еще пример посложнее
Использование нейронной сети с обучениемОбучение такой нейронной сети производится обычно методом обратного распространения ошибки таким образом чтобы минимизировать среднеквадратическую ошибку отклика сети на обучающей выборке Таким образом обучающая выборка содержит пары векторов признаков (входные данные) и эталонных векторов (маркированные данные) (x y)
Сверхвысокая размерность при работе с первичным представлением пикселями
Пиксельное кодирование
Принцип иерархии понятий ndash основа deep learning
bull Все вещи состоят из других маленьких и более элементарных вещей
bull Как извлекать features Гипотеза малоразмерных многообразий
Разреженное (sparse) кодирование
первый уровень иерархии состоит из элементов словаря этого кода которые представляют собой штрихи и границы
Словарь для лиц
Выделение объектов заданного класса
Основные архитектуры Deep Learningbull Deep neural networks (DNN)bull Deep belief networks (DBN)bull Convolutional neural networks (CNN)bull Deep Boltzmann Machines (DBM)bull Stacked (Denoising) Auto-Encodersbull Deep Stacking Networksbull Tensor Deep Stacking Networks (T-DSN)bull Spike-and-Slab RBMs (ssRBMs)bull Compound Hierarchical-Deep Modelsbull Deep Coding Networks (DPCN)bull Deep Kernel Machinesbull Deep Q-Networks (2015 г)
Задача классификации распознавания и подобные являются задачей конструирования функции на множестве входных наборов и со значениями в множестве требуемого вида выходных
bull Норбертом Винером было показано что любая функция может быть сколь угодно точно композицией двух (он использовал функции полином Лагранжа и функцию Лагерра)
bull Соответствует двухслойной нейросетиbull Архитектуры Deep Learning соответствуют представлению
bull Обеспечивают эффективную параметризацию при решении конкретных задач Более сложные функции создаются из большего числа но более эффективно настраиваемых laquoкирпичиковraquo Пример ndash синтез булевых функций Дерево вентилей эффективнее двухслойной схемы
Фактор - графыВсе методы которые расмотрели ndash не DL Даже деревья классификации Все операции в одном входном словаре
DL можно определить по фактор-графу
Например
bull Еще одна сторона DL - нередко использует невыпуклые функции потерьbull Обучение на основе выпуклых функций не зависит от порядка
предъявления данных для обучения Все определяет асимптотика всего train - набора В алгоритмах DL порядок данных в обучающей выборке может иметь значение
bull Многие решения в DL не доказаны математически и являются успешными эвристиками
bull Большой простор для прикладной математики Может рассматриваться как фактор-граф с группами латентных переменных
bull В настоящее время стал основной технологией в распознавании речи (speech recognition) и машинном зрении (computer vision) начал применяться в обработке текстов (natural language processing)
bull Основная идея ndash применение нелинейного отображения входного набора в более высокоразмерное пространство где многие неразделимые композиции становятся разделимыми а затем объединение композиций по семантической близости
Подход разреженного кодирования
Обобщенная архитектура
bull DL сеть может быть собрана каскадированием и использованием обучения с учителем
Здесь используется forward propagation для обучения
Для настройки коэффициентов используется метод fprof для каждого
Требуется знание градиента энергии
Элементы (kl) матрицы Якобиана
Требуется знание градиента энергии 120597119864120597119882119894 = 120597119864120597119883119894120597119865119894(119883119894minus1119882119894)120597119882119894
ሾ1times 119873119908ሿ= ሾ1times 119873119909ሿlowast[119873119909 times 119873119908] Элементы (kl) матрицы Якобиана
Сводится к рекуррентному соотношению для вычисления градиента 120597119864120597119883119894minus1 = 120597119864120597119883119894120597119865119894(119883119894minus1119882119894)120597119883119894minus1
В итоге
Для вычисления градиента может использоваться метод back propagation
В действительности работают любые архитектуры построения функции Нужно конструировать связи и функции блоков
Язык Torch 7 ndash современный инструмент моделирования и имплементации
Machine Learning with Torch7 (httpcodecogbitscomwikidokuphpid=start)
bull These tutorials were originally designed for the IPAM Summer School on Deep Learning more info herebull This wiki provides multiple tutorials with the overall objective of teaching you how to do machine learning
with Torch7bull Torch7 provides a Matlab-like environment for state-of-the-art machine learning algorithms It is easy to use
and provides a very efficient implementation thanks to an easy and fast scripting language (LuaJIT) and an underlying C implementation
bull These tutorials should be readdone in orderbull Tutorial 1 Setup Basics Getting Startedbull Tutorial 2 Supervised Learningbull Tutorial 3 Unsupervised Learningbull Tutorial 4 Graphical Modelsbull Tutorial 5 Creating New Modulesbull Tutorial 6 Using CUDAbull To follow these tutorials and do the exercises you will need to download the associated code which is hosted
on GitHub on this page In this repository each directory corresponds to a tutorial herebull starttxt middot Last modified 20140204 2246 by clement
Torch 7 является расширением Lua
What is LuaLua is a powerful fast lightweight embeddable scripting languageLua combines simple procedural syntax with powerful data description constructs based on associative arrays and extensible semantics Lua is dynamically typed runs by interpreting bytecode for a register-based virtual machine and has automatic memory management with incremental garbage collection making it ideal for configuration scripting and rapid prototyping
Why choose LuaLua is a proven robust languageLua has been used in many industrial applications (eg Adobes Photoshop Lightroom) with an emphasis on embedded systems (eg the Ginga middleware for digital TV in Brazil) and games (eg World of Warcraft and Angry Birds) Lua is currently the leading scripting language in games Lua has a solid reference manual and there are several books about it Several versions of Lua have been released and used in real applications since its creation in 1993 Lua featured in HOPL III the Third ACM SIGPLAN History of Programming Languages Conference in June 2007 Lua won the Front Line Award 2011 from the Game Developers Magazine
Свертка и архитектура 4-х уровневой сверточной сети
Функциональная структура
Примеры успешного применения сверточных сетей
Диагностика эпилепсии по ЭЭГ
Реализация сверточной сетью
Одна из самых больших сверточных сетейbull Krizhevsky Sutskever Hinton 2012bull 650 000 нейронов 832 000 000 синапсов 60 000000 пареметровbull Использовался backprop на GPUbull Обучающая выборка на материалах 20 летbull Купил Google в январе 2013bull В мае 2013 развернул как сервис Photo Tagging Google+
Пример тэгирования
Пример поиска похожих по изображению
Пример поиска в коллекции изображений по текстовому запросу
Пример laquoоблачногоraquo классификатора изображений
Самообучающиеся нейронные сети на основе минимизации функции энергииbull Применима к сетям с обратными связямиbull Конструирование функции энергии должно обеспечивать
laquoконтрастностьraquo разделения
bull Энергетическая функция может Неформально рассматриваться как отрицательный логарифм плотности вероятности
Y 2=(Y1)2
RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцмана
bull Из DBM cтроится Deep Belief Network (DBN)
bull w mdash вес между нейронами
bull b mdash смещение нейрона
bull s mdash состояние нейрона
Алгоритм обучения Contrastive Divergence (CD)bull w_ij mdash веc между i-ым нейроном Вероятность пар может быть представлена как
bull a_i mdash смещение видимого нейрона
bull b_j mdash смещение скрытого нейрона
bull v_i mdash состояние видимого нейрона
bull h_j mdash состояние скрытого нейрона Полная вероятность состояния видимых нейронов
Основные уравнения адаптации
Алгоритм Хинтона - Contrastive Divergence (CD-k)
1 состояние видимых нейронов приравнивается к входному образу2 выводятся вероятности состояний скрытого слоя3 каждому нейрону скрытого слоя ставится в соответствие состояние laquo1raquo с вероятностью равной его текущему состоянию4 выводятся вероятности видимого слоя на основании скрытого5 если текущая итерация меньше k то возврат к шагу 26 выводятся вероятности состояний скрытого слоя
darch Package for deep architectures and Restricted-Bolzmann-MachinesThe darch package is build on the basis of the code from G E Hinton and R R Salakhutdinov (available under Matlab Code for deep belief nets last visit 01082013) This package is for generating neural networks with many layers (deep architectures) and train them with the method introduced by the publications A fast learning algorithm for deep belief nets (G E Hinton S Osindero Y W Teh) and Reducing the dimensionality of data with neural networks (G E Hinton R R Salakhutdinov) This method includes a pre training with the contrastive divergence method publishing by GE Hinton (2002) and a fine tuning with common known training algorithms like backpropagation or conjugate gradient
bull Version 091bull Imports futilelogger ff methodsbull Published 2014-03-16bull Author Martin Dreesbull Maintainer Martin Drees ltmdrees at studfh-dortmunddegtbull License GPL-2bull URL httpgithubcommaddin79darchbull NeedsCompilation nobull Materials READMEbull CRAN checks darch results
Связь плотности вероятности и энергии
Используется распределение Гиббса
Задача обучения с точки минимизации энергии сети
bull Сконструировать функцию энергии с малыми значениями на обучающей выборке и с большими значениями всюду вне этого множества
bull Первое несложно а второе представляет задачу процесса обучения
Интуитивные соображения
Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decomposition LISTA ndashметоды использующие разреженные коды
Латентная переменная Z =argmin_z Distance[Decoder(Z)Y]+FactorB(Z)MAPminimaize sum of factors
Автоэнкодер (auto encoder) Автоэнкодер представляет собой алгоритм обучения без учителя который использует нейронную сеть и метод обратного распространения ошибки для того чтобы добиться того что входной вектор признаков вызывал отклик сети равный входному вектору те y = x Автоэнкодер пытается построить функцию h(x) = x
Архитекттура ICA моделей
Итеративные алгоритмы с оптимальным разреженным кодированием ISTAFISTA
Самоорганизация данных методами Deep Learning
>
Знакомство с пакетом deepnet
Назначение
Составdbndnntrain - обучение сети с архитектурой DBN (deep belief network)loadmnist - формирование данных из файлов MNISTnnpredict - предсказание новых выборок на обученной нейронной сетиnntest ndash тестирование обученной нейронной сети с возвращением значения ошибкиnntrain ndash обучение одностлойной или многослойной нейронной сети методом backproprbmdown ndash генерирование видимого вектора для скрытых состояний сети RBMrbmtrain ndash обучение сети RBMrbmup ndash извлечение скрытых состояний RBM по известным видимым состояниямsaednntrain ndash обучение нейронной сети с архитектурой stacked autoencoder
Прогнозирование (классификация) нейронной сетью с архитектурой stacked auto encoder
Argumentsbull x matrix of x values for examplesbull y vector or matrix of target values for examplesbull hidden vector for number of units of hidden layersDefault is c(10)bull activationfun activation function of hidden unitCan be sigmlinear or tanhDefault isbull sigm for logistic functionbull learningrate learning rate for gradient descent Default is 08bull momentum momentum for gradient descent Default is 05 bull learningrate_scalebull learning rate will be mutiplied by this scale after every iteration Default is 1 bull numepochs number of iteration for samples Default is 3bull batchsize size of mini-batch Default is 100bull output function of output unit can be sigmlinear or softmax Default is sigmbull sae_output function of autoencoder output unit can be sigmlinear or softmax Defaultbull is linearbull hidden_dropout drop out fraction for hidden layer Default is 0bull visible_dropoutbull drop out fraction for input layer Default is 0
Что такое MNISTbull Смешанный набор данных Национального института стандартов и
технологий (mixed National Institute of Standards and Technology MNIST) был создан исследователями IR в качестве эталона для сравнения различных алгоритмов IR
bull Набор данных состоит всего из 70 000 изображений 60 000 обучающих (используемых для создания модели IR) и 10 000 тестовых (применяемых для оценки точности модели) Каждое изображение MNIST mdash это оцифрованная картинка одной цифры написанной от руки Каждое изображение имеет размер 28 times 28 пикселей Каждое значение пикселя лежит в диапазоне от 0 (представляет белый цвет) до 255 (представляет черный цвет) Промежуточные значения отражают оттенки серого
httpyannlecuncomexdbmnistобучающие и тестовые данные хранятся в двух файлах а не в одном Один файл содержит значения пикселей для изображений а другой mdash метки изображений (0ndash9) Каждый из четырех файлов также содержит заголовочную информацию и все они хранятся в двоичном формате сжатом в формате gziptrain-images-idx3-ubytegz training set images (9912422 bytes)
train-labels-idx1-ubytegz training set labels (28881 bytes)
t10k-images-idx3-ubytegz test set images (1648877 bytes)
t10k-labels-idx1-ubytegz test set labels (4542 bytes)
bull Каждая строка файла представляет собой имидж размера 28 times 28 вектором длины 784 каждый признак ndash значение пиксела в черно-белой шале Первый столбец содержит метку цифры 0ndash9 следующие 2828 столбцов представляют целый имидж и так далее Пример первой строки
Визуализация
bull plotmnist()bull mnistbull paramsbull train$n number of train samplesbull train$x pix of every train sample imagebull train$y label of every train sample imagebull train$yy one-of-c vector of label of train sample imagebull test$n number of test samplesbull test$x pix of every test sample imagebull test$y label of every test sample imagebull test$yy one-of-c vector of label of test sample image
plotmnist()
Распознавание рукописных цифр в deepnet
another way to download the MNIST datasetmnist downloadmnist(range=c(01)global=FALSE)look at MNIST datamnist$train$xmnist$train$ymnist$test$xmnist$test$ytrain of the sae neural networkdnnlt-saednntrain(mnist$train$xmnist$train$yhidden=c(55))test of the sae neural networknntest(dnnmnist$test$xmnist$test$yt=05)
End of slides part 2 (Part 3 - NLP remaining)
Vladimirvkrylovgmailcom
Основы предиктивной аналитики Часть вторая
Применение методов Machine Learning к решению задач аналитики
Дмитрий Ветров кандидат физико-математических наук ру
Методы обучающихся машин для аналитики которые мы рассмотрим
Сначала нужно загрузить несколько пакетов (packages) для поддер
Данные для анализа
Скрипт для генерации
Данные которые мы будем использовать для демо состоят из смес
Так выглядят визуализированные данные сгенерированные скриптом
Разделение данных на обучающие и проверочные является важным эт
K-means алгоритм на пальцах
Обучающаяся машина без учителя Алгоритм K-means
Slide 13
Slide 14
Здесь мы используем заранее известный факт что необходимо кла
Еще одна иллюстрация работы алгоритма K-means
Обучающаяся машина без учителя Алгоритм KNN (Nearest Neighbor)
Как работает алгоритм KNN
knn(train test cl k = 1 l = 0 prob = FALSE useall = TRUE
Slide 20
Результаты кластеризации и зависимость ошибки от числа кластеро
Recursive PartitioningRegression Tree
Метод RP реализует обучение машины строить дерево решений по об
Recursive PartitioningRegression Tree (2)
rpart(formula data weights subset naaction = narpart met
Slide 26
Recursive PartitioningRegression Tree example
Анализ по главным компонентам (Principal Component Analysis PC
Итеративные алгоритмы с оптимальным разреженным кодированием IS
Самоорганизация данных методами Deep Learning
Знакомство с пакетом deepnet
Прогнозирование (классификация) нейронной сетью с архитектурой
Arguments
Архитектура сети SAE
Архитектура с 5Х4 hidden 3 outs
Example
Анализ обучающего набора данных
Параметры SAE сети
Коэффициенты связей
Предсказание обученной сетью
Сравнение обучающей и тестовой выборки
plot3d(xy)
Работаем с пакетом MNIST
httpyannlecuncomexdbmnist
Подготовка к обработке
Slide 118
Визуализация
plotmnist()
Распознавание рукописных цифр в deepnet
End of slides part 2 (Part 3 - NLP remaining)
Еще одна иллюстрация работы алгоритма K-means
>
Обучающаяся машина без учителя Алгоритм KNN (Nearest Neighbor)Алгоритм KNN Основным принципом метода ближайших соседей является то что объект присваивается тому классу который является наиболее распространённым среди соседей данного элементаДля классификации каждого из объектов тестовой выборки
необходимо последовательно выполнить следующие операцииВычислить расстояние до каждого из объектов обучающей выборки
Отобрать k объектов обучающей выборки расстояние до которых минимально
Класс классифицируемого объекта mdash это класс наиболее часто встречающийся среди k ближайших соседей
Как работает алгоритм KNN
>
knn(train test cl k = 1 l = 0 prob = FALSE useall = TRUE)
train matrix or data frame of training set cases
test matrix or data frame of test set cases A vector will be interpreted as a row vector for a single case
cl factor of true classifications of training set
k number of neighbours considered
l minimum vote for definite decision otherwise doubt (More precisely less than k-l dissenting votes are allowed even if k is increased by ties)
prob If this is true the proportion of the votes for the winning class are returned as attribute prob
useall controls handling of ties If true all distances equal to the kth largest are included If false a random selection of distances equal to the kth is chosen to use exactly k neighbours
Here we demonstrate the bias-variance tradeoff as we increase k
err lt- matrix(nrow=N100 ncol=2)for (i in 1nrow(err))
k lt- i 4test$predicted_class lt- knn(train[12] test[12] train$class k=k)mlt-cm(test$class test$predicted_class)err[i] lt- c(k 1 - sum(diag(m)) sum(m))
plot (err)
Результаты кластеризации и зависимость ошибки от числа кластеров
actualpredicted A B C A 272 0 7 B 1 308 1 C 31 0 280
gt m
Recursive PartitioningRegression Treebull Основано на дереве решений представляющем граф бинарной
последовательной классификации по тест-вопросам в каждой вершине графа Листья дерева ассоциируются с результатами классификации
Метод RP реализует обучение машины строить дерево решений по обучающей выборке данных
bull laquoРасщеплениеraquo обучающих данныхМножество данных в каждом узле разделяется на два соответствующих ответам TRUE или FALSE Вопросы должны порождать бинарное разбиение множества Для числовых характеристик это обычно неравенства характеристика Xn меньше или равна значению Ym
bull Конструирование тест-вопросовПринцип putity measurement ndash очищающих измерений Каждая характеристика анализируется статистически для каждого разбиения и выбирается наилучшее по чистоте разделенияbull Критерий остановкиЧтобы избежать переобучения используется либо порог чистоты либо максимальное число узлов либо минимальное число наблюдений в узле
Recursive PartitioningRegression Tree
Пример расщепления обучающей выборки
rpart(formula data weights subset naaction = narpart method model = FALSE x = FALSE y = TRUE parms control cost )
formula a formula with a response but no interaction terms If this a a data frome that is taken as the model frame (see modelframe)
data an optional data frame in which to interpret the variables named in the formula
weights optional case weights
subset optional expression saying that only a subset of the rows of the data should be used in the fit
naaction the default action deletes all observations for which y is missing but keeps those in which one or more predictors are missing method one of anova poisson class or exp If method is missing then the routine tries to make an intelligent guess If y is a survival object then method = exp is assumed if y has 2 columns then method = poisson is assumed if y is a factor then method = class is assumed otherwise method = anova is assumed It is wisest to specify the method directly especially as more criteria may added to the function in future Alternatively method can be a list of functions named init split and eval Examples are given in the file lsquotestsusersplitsRrsquo in the sources and in the vignettes lsquoUser Written Split Functionsrsquo
model if logical keep a copy of the model frame in the result If the input value for model is a model frame (likely from an earlier call to the rpart function) then this frame is used rather than constructing new data
x keep a copy of the x matrix in the result
y keep a copy of the dependent variable in the result If missing and model is supplied this defaults to FALSE
parms optional parameters for the splitting function Anova splitting has no parameters Poisson splitting has a single parameter the coefficient of variation of the prior distribution on the rates The default value is 1 Exponential splitting has the same parameter as Poisson For classification splitting the list can contain any of the vector of prior probabilities (component prior) the loss matrix (component loss) or the splitting index (component split) The priors must be positive and sum to 1 The loss matrix must have zeros on the diagonal and positive off-diagonal elements The splitting index can be gini or information The default priors are proportional to the data counts the losses default to 1 and the split defaults to gini
control a list of options that control details of the rpart algorithm See rpartcontrol
cost a vector of non-negative costs one for each variable in the model Defaults to one for all variables These are scalings to be applied when considering splits so the improvement on splitting on a variable is divided by its cost in deciding which split to choose arguments to rpartcontrol may also be specified in the call to rpart They are checked against the list of valid arguments
Recursive PartitioningRegression Tree example(r lt- rpart(class ~ x + y data = train))plot(r)text(r)
Here we look at the confusion matrix and overall error rate from applying the tree rules to the training datapredicted lt- asnumeric(apply(predict(r) 1 function(r) order(-r)[1]))(m lt- cm (train$class predicted))1 - sum(diag(m)) sum(m)
And by comparison against the test datapredicted lt- asnumeric(apply(predict(r test[12]) 1 function(r) order(-r)[1]))(m lt- cm (test$class predicted))1 - sum(diag(m)) sum(m)
Анализ по главным компонентам (Principal Component Analysis PCA)Известно четыре базовых версии методаbull аппроксимировать данные линейными многообразиями меньшей
размерностиbull найти подпространства меньшей размерности в ортогональной проекции
на которые разброс данных (то есть среднеквадратичное отклонение от среднего значения) максимален
bull найти подпространства меньшей размерности в ортогональной проекции на которые среднеквадратичное расстояние между точками максимально
bull для данной многомерной случайной величины построить такое ортогональное преобразование координат в результате которого корреляции между отдельными координатами обратятся в нуль
В основе задача наилучшей аппроксимации конечного множества точек прямыми и плоскостями (Пирсон 1901) Дано конечное множество векторов для каждого k=01hellipn-1 среди всех k-мерных линейных многообразий в Rn найти такое что сумма квадратов уклонений минимальна
bull Графическая иллюстрация метода главных компонент в 3D
Алгоритм
bull Централизация данных
bull Находим первую главную компоненту
bull Вычитаем проекцию на нее
bull Находим вторую главную компоненту
bull Вычитаем проекцию на (k-1) главную компоненту
bull Находим k-ую главную компоненту
bull Всегда выполняется условие ортогональности
princomp(formula data = NULL subset naaction )formula a formula with no response variable referring only to numeric variables
data an optional data frame (or similar see modelframe) containing the variables in the formula formula By default the variables are taken from environment(formula)
subset an optional vector used to select rows (observations) of the data matrix x
naaction a function which indicates what should happen when the data contain NAs The default is set by the naaction setting of options and is nafail if that is unset The lsquofactory-freshrsquo default is naomit
x a numeric matrix or data frame which provides the data for the principal components analysis
cor a logical value indicating whether the calculation should use the correlation matrix or the covariance matrix (The correlation matrix can only be used if there are no constant variables)
scores a logical value indicating whether the score on each principal component should be calculated
covmat a covariance matrix or a covariance list as returned by covwt (and covmve or covmcd from package MASS) If supplied this is used rather than the covariance matrix of x
arguments passed to or from other methods If x is a formula one might specify cor or scores
object Object of class inheriting from princomp
newdata An optional data frame or matrix in which to look for variables with which to predict If omitted the scores are used If the original fit used a formula or a data frame or a matrix with column names newdata must contain columns with the same names Otherwise it must contain the same number of columns to be used in the same order
Principal Component Analysis (PCA)plt-princomp(train[12])train_pca lt- dataframe(p$scores)train_pca$class lt- train$class
Compare the alignment of the clusters to the axis in the feature space versus the transformed space
r2 lt- rpart(class ~ Comp1 + Comp2 data = train_pca)
Линейный дискриминантный анализ (Linear Discriminant Analysis - LDA)bull Для каждого образца объекта или события с известным классом y
рассматривается набор наблюдений x (называемых ещё признаками переменными или измерениями) Набор таких образцов называется обучающей выборкой (или набором обучения обучением) Задачи классификации состоит в том чтобы построить хороший прогноз класса y для всякого так же распределённого объекта (не обязательно содержащегося в обучающей выборке) имея только наблюдения x Основная идея состоит в сравнении распределений для каждого из классов Расстоянием (по Фишеру) между распределениями принято считать отношение межклассовой дисперсии к внутриклассовой
bull Оптимальное байесовское решение - относить точки ко второму классу если отношение правдоподобия ниже некоторого порогового значения T
bull Предполагая что выполнена нормировка
bull Решение записывается в виде неравенства для скалярного произведения
bull Здесь laquoизмерительныйraquo вектор равен
bull с- дискриминантный порог
lda(x grouping prior = proportions tol = 10e-4 method CV = FALSE nu )
formula A formula of the form groups ~ x1 + x2 + That is the response is the grouping factor and the right hand side specifies the (non-factor) discriminators
data Data frame from which variables specified in formula are preferentially to be taken
x (required if no formula is given as the principal argument) a matrix or data frame or Matrix containing the explanatory variables
grouping (required if no formula principal argument is given) a factor specifying the class for each observation
prior the prior probabilities of class membership If unspecified the class proportions for the training set are used If present the probabilities should be specified in the order of the factor levels
tol A tolerance to decide if a matrix is singular it will reject variables and linear combinations of unit-variance variables whose variance is less than tol^2
subset An index vector specifying the cases to be used in the training sample (NOTE If given this argument must be named)
naaction A function to specify the action to be taken if NAs are found The default action is for the procedure to fail An alternative is naomit which leads to rejection of cases with missing values on any required variable (NOTE If given this argument must be named)
method moment for standard estimators of the mean and variance mle for MLEs mve to use covmve or t for robust estimates based on a t distribution
CV If true returns results (classes and posterior probabilities) for leave-one-out cross-validation Note that if the prior is estimated the proportions in the whole dataset are used
nu degrees of freedom for method = t
arguments passed to or from other methods
prior the prior probabilities usedmeans the group meansscaling a matrix which transforms observations to
discriminant functions normalized so that within groups covariance matrix is spherical
svd the singular values which give the ratio of the between- and within-group standard deviations on the linear discriminant variables Their squares are the canonical F-statistics
N The number of observations usedcall The (matched) function call
An object of class lda containing the following components
Метод опорных векторов (Support Vector Machines - SVM)Относится к ML с учителем и использует линейные разделяющие поверхности
Идея алгоритма
bull По обучающей выборке
bull Строится классифицирующая функция
bull Используя гиперплоскость
bull Поиск коэффициентов сводится к максимизации
расстояний от опорных векторов или минимизации
Иллюстрация на простейшем примере
>
Производится вложение обучающей выборки в пространство более высокой размерности Х с помощью нелинейной функции так чтобы обеспечит линейную разделимость в Х
Разделяющая функция тогда имеет вид
Функция называется ядром
Полиномиальное ядро
Радиальная базисная функция
Сигмоид
Линейная неразделимость и использование ядер
Иллюстрация использования ядра для отображения 2D -gt 3D
>
svm((formula data = NULL subset naaction =naomit scale = TRUE))
formulaa symbolic description of the model to be fitdataan optional data frame containing the variables in the model By default the variables are taken from the environment which lsquosvmrsquo is called fromxa data matrix a vector or a sparse matrix (object of class Matrix provided by the Matrix package or of class matrixcsr provided by the SparseM package or of class simple_triplet_matrix provided by the slam package)ya response vector with one label for each rowcomponent of x Can be either a factor (for classification tasks) or a numeric vector (for regression)scaleA logical vector indicating the variables to be scaled If scale is of length 1 the value is recycled as many times as needed Per default data are scaled internally (both x and y variables) to zero mean and unit variance The center and scale values are returned and used for later predictionstypesvm can be used as a classification machine as a regression machine or for novelty detection Depending of whether y is a factor or not the default setting for type is C-classification or eps-regression respectively but may be overwritten by setting an explicit valueValid options areC-classificationnu-classificationone-classification (for novelty detection)eps-regressionnu-regression
Support Vector Machines
s lt- svm( I(factor(class)) ~ x + y data = train cost = 100 gama = 1)
Package lsquodeepnetrsquo February 19 2015 Type Package Title deep learning toolkit in R Version 02 Date 2014-03-20 Author Xiao Rong Maintainer Xiao Rong Description Implement some deep learning architectures and neural network algorithms including BPRBMDBNDeep autoencoder and so on License GPL NeedsCompilation no Repository CRAN DatePublication 2014-03-20 100343
laquoВ 1997 году Deep Blue обыграл в шахматы КаспароваВ 2011 Watson обставил чемпионов JeopardyСможет ли ваш алгоритм в 2013 году отличить Бобика от ПушистикаraquoKaggle Competitions Details
Сегодня уже можно ответить laquoдаraquo mdash десятка лидеров справилась с заданием на 988
Распознавание основано на feature detection и последующем различении комбинаций
Заранее неизвестно какие части картинки могут использоваться как хорошие features В их роли может выступать все что угодно mdash фрагменты изображения форма размер или цвет Feature может не присутствовать на картинке сама а выражаться в параметре полученным каким-то образом из исходных данных
Распознавание рукописных цифр
Еще пример посложнее
Использование нейронной сети с обучениемОбучение такой нейронной сети производится обычно методом обратного распространения ошибки таким образом чтобы минимизировать среднеквадратическую ошибку отклика сети на обучающей выборке Таким образом обучающая выборка содержит пары векторов признаков (входные данные) и эталонных векторов (маркированные данные) (x y)
Сверхвысокая размерность при работе с первичным представлением пикселями
Пиксельное кодирование
Принцип иерархии понятий ndash основа deep learning
bull Все вещи состоят из других маленьких и более элементарных вещей
bull Как извлекать features Гипотеза малоразмерных многообразий
Разреженное (sparse) кодирование
первый уровень иерархии состоит из элементов словаря этого кода которые представляют собой штрихи и границы
Словарь для лиц
Выделение объектов заданного класса
Основные архитектуры Deep Learningbull Deep neural networks (DNN)bull Deep belief networks (DBN)bull Convolutional neural networks (CNN)bull Deep Boltzmann Machines (DBM)bull Stacked (Denoising) Auto-Encodersbull Deep Stacking Networksbull Tensor Deep Stacking Networks (T-DSN)bull Spike-and-Slab RBMs (ssRBMs)bull Compound Hierarchical-Deep Modelsbull Deep Coding Networks (DPCN)bull Deep Kernel Machinesbull Deep Q-Networks (2015 г)
Задача классификации распознавания и подобные являются задачей конструирования функции на множестве входных наборов и со значениями в множестве требуемого вида выходных
bull Норбертом Винером было показано что любая функция может быть сколь угодно точно композицией двух (он использовал функции полином Лагранжа и функцию Лагерра)
bull Соответствует двухслойной нейросетиbull Архитектуры Deep Learning соответствуют представлению
bull Обеспечивают эффективную параметризацию при решении конкретных задач Более сложные функции создаются из большего числа но более эффективно настраиваемых laquoкирпичиковraquo Пример ndash синтез булевых функций Дерево вентилей эффективнее двухслойной схемы
Фактор - графыВсе методы которые расмотрели ndash не DL Даже деревья классификации Все операции в одном входном словаре
DL можно определить по фактор-графу
Например
bull Еще одна сторона DL - нередко использует невыпуклые функции потерьbull Обучение на основе выпуклых функций не зависит от порядка
предъявления данных для обучения Все определяет асимптотика всего train - набора В алгоритмах DL порядок данных в обучающей выборке может иметь значение
bull Многие решения в DL не доказаны математически и являются успешными эвристиками
bull Большой простор для прикладной математики Может рассматриваться как фактор-граф с группами латентных переменных
bull В настоящее время стал основной технологией в распознавании речи (speech recognition) и машинном зрении (computer vision) начал применяться в обработке текстов (natural language processing)
bull Основная идея ndash применение нелинейного отображения входного набора в более высокоразмерное пространство где многие неразделимые композиции становятся разделимыми а затем объединение композиций по семантической близости
Подход разреженного кодирования
Обобщенная архитектура
bull DL сеть может быть собрана каскадированием и использованием обучения с учителем
Здесь используется forward propagation для обучения
Для настройки коэффициентов используется метод fprof для каждого
Требуется знание градиента энергии
Элементы (kl) матрицы Якобиана
Требуется знание градиента энергии 120597119864120597119882119894 = 120597119864120597119883119894120597119865119894(119883119894minus1119882119894)120597119882119894
ሾ1times 119873119908ሿ= ሾ1times 119873119909ሿlowast[119873119909 times 119873119908] Элементы (kl) матрицы Якобиана
Сводится к рекуррентному соотношению для вычисления градиента 120597119864120597119883119894minus1 = 120597119864120597119883119894120597119865119894(119883119894minus1119882119894)120597119883119894minus1
В итоге
Для вычисления градиента может использоваться метод back propagation
В действительности работают любые архитектуры построения функции Нужно конструировать связи и функции блоков
Язык Torch 7 ndash современный инструмент моделирования и имплементации
Machine Learning with Torch7 (httpcodecogbitscomwikidokuphpid=start)
bull These tutorials were originally designed for the IPAM Summer School on Deep Learning more info herebull This wiki provides multiple tutorials with the overall objective of teaching you how to do machine learning
with Torch7bull Torch7 provides a Matlab-like environment for state-of-the-art machine learning algorithms It is easy to use
and provides a very efficient implementation thanks to an easy and fast scripting language (LuaJIT) and an underlying C implementation
bull These tutorials should be readdone in orderbull Tutorial 1 Setup Basics Getting Startedbull Tutorial 2 Supervised Learningbull Tutorial 3 Unsupervised Learningbull Tutorial 4 Graphical Modelsbull Tutorial 5 Creating New Modulesbull Tutorial 6 Using CUDAbull To follow these tutorials and do the exercises you will need to download the associated code which is hosted
on GitHub on this page In this repository each directory corresponds to a tutorial herebull starttxt middot Last modified 20140204 2246 by clement
Torch 7 является расширением Lua
What is LuaLua is a powerful fast lightweight embeddable scripting languageLua combines simple procedural syntax with powerful data description constructs based on associative arrays and extensible semantics Lua is dynamically typed runs by interpreting bytecode for a register-based virtual machine and has automatic memory management with incremental garbage collection making it ideal for configuration scripting and rapid prototyping
Why choose LuaLua is a proven robust languageLua has been used in many industrial applications (eg Adobes Photoshop Lightroom) with an emphasis on embedded systems (eg the Ginga middleware for digital TV in Brazil) and games (eg World of Warcraft and Angry Birds) Lua is currently the leading scripting language in games Lua has a solid reference manual and there are several books about it Several versions of Lua have been released and used in real applications since its creation in 1993 Lua featured in HOPL III the Third ACM SIGPLAN History of Programming Languages Conference in June 2007 Lua won the Front Line Award 2011 from the Game Developers Magazine
Свертка и архитектура 4-х уровневой сверточной сети
Функциональная структура
Примеры успешного применения сверточных сетей
Диагностика эпилепсии по ЭЭГ
Реализация сверточной сетью
Одна из самых больших сверточных сетейbull Krizhevsky Sutskever Hinton 2012bull 650 000 нейронов 832 000 000 синапсов 60 000000 пареметровbull Использовался backprop на GPUbull Обучающая выборка на материалах 20 летbull Купил Google в январе 2013bull В мае 2013 развернул как сервис Photo Tagging Google+
Пример тэгирования
Пример поиска похожих по изображению
Пример поиска в коллекции изображений по текстовому запросу
Пример laquoоблачногоraquo классификатора изображений
Самообучающиеся нейронные сети на основе минимизации функции энергииbull Применима к сетям с обратными связямиbull Конструирование функции энергии должно обеспечивать
laquoконтрастностьraquo разделения
bull Энергетическая функция может Неформально рассматриваться как отрицательный логарифм плотности вероятности
Y 2=(Y1)2
RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцмана
bull Из DBM cтроится Deep Belief Network (DBN)
bull w mdash вес между нейронами
bull b mdash смещение нейрона
bull s mdash состояние нейрона
Алгоритм обучения Contrastive Divergence (CD)bull w_ij mdash веc между i-ым нейроном Вероятность пар может быть представлена как
bull a_i mdash смещение видимого нейрона
bull b_j mdash смещение скрытого нейрона
bull v_i mdash состояние видимого нейрона
bull h_j mdash состояние скрытого нейрона Полная вероятность состояния видимых нейронов
Основные уравнения адаптации
Алгоритм Хинтона - Contrastive Divergence (CD-k)
1 состояние видимых нейронов приравнивается к входному образу2 выводятся вероятности состояний скрытого слоя3 каждому нейрону скрытого слоя ставится в соответствие состояние laquo1raquo с вероятностью равной его текущему состоянию4 выводятся вероятности видимого слоя на основании скрытого5 если текущая итерация меньше k то возврат к шагу 26 выводятся вероятности состояний скрытого слоя
darch Package for deep architectures and Restricted-Bolzmann-MachinesThe darch package is build on the basis of the code from G E Hinton and R R Salakhutdinov (available under Matlab Code for deep belief nets last visit 01082013) This package is for generating neural networks with many layers (deep architectures) and train them with the method introduced by the publications A fast learning algorithm for deep belief nets (G E Hinton S Osindero Y W Teh) and Reducing the dimensionality of data with neural networks (G E Hinton R R Salakhutdinov) This method includes a pre training with the contrastive divergence method publishing by GE Hinton (2002) and a fine tuning with common known training algorithms like backpropagation or conjugate gradient
bull Version 091bull Imports futilelogger ff methodsbull Published 2014-03-16bull Author Martin Dreesbull Maintainer Martin Drees ltmdrees at studfh-dortmunddegtbull License GPL-2bull URL httpgithubcommaddin79darchbull NeedsCompilation nobull Materials READMEbull CRAN checks darch results
Связь плотности вероятности и энергии
Используется распределение Гиббса
Задача обучения с точки минимизации энергии сети
bull Сконструировать функцию энергии с малыми значениями на обучающей выборке и с большими значениями всюду вне этого множества
bull Первое несложно а второе представляет задачу процесса обучения
Интуитивные соображения
Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decomposition LISTA ndashметоды использующие разреженные коды
Латентная переменная Z =argmin_z Distance[Decoder(Z)Y]+FactorB(Z)MAPminimaize sum of factors
Автоэнкодер (auto encoder) Автоэнкодер представляет собой алгоритм обучения без учителя который использует нейронную сеть и метод обратного распространения ошибки для того чтобы добиться того что входной вектор признаков вызывал отклик сети равный входному вектору те y = x Автоэнкодер пытается построить функцию h(x) = x
Архитекттура ICA моделей
Итеративные алгоритмы с оптимальным разреженным кодированием ISTAFISTA
Самоорганизация данных методами Deep Learning
>
Знакомство с пакетом deepnet
Назначение
Составdbndnntrain - обучение сети с архитектурой DBN (deep belief network)loadmnist - формирование данных из файлов MNISTnnpredict - предсказание новых выборок на обученной нейронной сетиnntest ndash тестирование обученной нейронной сети с возвращением значения ошибкиnntrain ndash обучение одностлойной или многослойной нейронной сети методом backproprbmdown ndash генерирование видимого вектора для скрытых состояний сети RBMrbmtrain ndash обучение сети RBMrbmup ndash извлечение скрытых состояний RBM по известным видимым состояниямsaednntrain ndash обучение нейронной сети с архитектурой stacked autoencoder
Прогнозирование (классификация) нейронной сетью с архитектурой stacked auto encoder
Argumentsbull x matrix of x values for examplesbull y vector or matrix of target values for examplesbull hidden vector for number of units of hidden layersDefault is c(10)bull activationfun activation function of hidden unitCan be sigmlinear or tanhDefault isbull sigm for logistic functionbull learningrate learning rate for gradient descent Default is 08bull momentum momentum for gradient descent Default is 05 bull learningrate_scalebull learning rate will be mutiplied by this scale after every iteration Default is 1 bull numepochs number of iteration for samples Default is 3bull batchsize size of mini-batch Default is 100bull output function of output unit can be sigmlinear or softmax Default is sigmbull sae_output function of autoencoder output unit can be sigmlinear or softmax Defaultbull is linearbull hidden_dropout drop out fraction for hidden layer Default is 0bull visible_dropoutbull drop out fraction for input layer Default is 0
Что такое MNISTbull Смешанный набор данных Национального института стандартов и
технологий (mixed National Institute of Standards and Technology MNIST) был создан исследователями IR в качестве эталона для сравнения различных алгоритмов IR
bull Набор данных состоит всего из 70 000 изображений 60 000 обучающих (используемых для создания модели IR) и 10 000 тестовых (применяемых для оценки точности модели) Каждое изображение MNIST mdash это оцифрованная картинка одной цифры написанной от руки Каждое изображение имеет размер 28 times 28 пикселей Каждое значение пикселя лежит в диапазоне от 0 (представляет белый цвет) до 255 (представляет черный цвет) Промежуточные значения отражают оттенки серого
httpyannlecuncomexdbmnistобучающие и тестовые данные хранятся в двух файлах а не в одном Один файл содержит значения пикселей для изображений а другой mdash метки изображений (0ndash9) Каждый из четырех файлов также содержит заголовочную информацию и все они хранятся в двоичном формате сжатом в формате gziptrain-images-idx3-ubytegz training set images (9912422 bytes)
train-labels-idx1-ubytegz training set labels (28881 bytes)
t10k-images-idx3-ubytegz test set images (1648877 bytes)
t10k-labels-idx1-ubytegz test set labels (4542 bytes)
bull Каждая строка файла представляет собой имидж размера 28 times 28 вектором длины 784 каждый признак ndash значение пиксела в черно-белой шале Первый столбец содержит метку цифры 0ndash9 следующие 2828 столбцов представляют целый имидж и так далее Пример первой строки
Визуализация
bull plotmnist()bull mnistbull paramsbull train$n number of train samplesbull train$x pix of every train sample imagebull train$y label of every train sample imagebull train$yy one-of-c vector of label of train sample imagebull test$n number of test samplesbull test$x pix of every test sample imagebull test$y label of every test sample imagebull test$yy one-of-c vector of label of test sample image
plotmnist()
Распознавание рукописных цифр в deepnet
another way to download the MNIST datasetmnist downloadmnist(range=c(01)global=FALSE)look at MNIST datamnist$train$xmnist$train$ymnist$test$xmnist$test$ytrain of the sae neural networkdnnlt-saednntrain(mnist$train$xmnist$train$yhidden=c(55))test of the sae neural networknntest(dnnmnist$test$xmnist$test$yt=05)
End of slides part 2 (Part 3 - NLP remaining)
Vladimirvkrylovgmailcom
Основы предиктивной аналитики Часть вторая
Применение методов Machine Learning к решению задач аналитики
Дмитрий Ветров кандидат физико-математических наук ру
Методы обучающихся машин для аналитики которые мы рассмотрим
Сначала нужно загрузить несколько пакетов (packages) для поддер
Данные для анализа
Скрипт для генерации
Данные которые мы будем использовать для демо состоят из смес
Так выглядят визуализированные данные сгенерированные скриптом
Разделение данных на обучающие и проверочные является важным эт
K-means алгоритм на пальцах
Обучающаяся машина без учителя Алгоритм K-means
Slide 13
Slide 14
Здесь мы используем заранее известный факт что необходимо кла
Еще одна иллюстрация работы алгоритма K-means
Обучающаяся машина без учителя Алгоритм KNN (Nearest Neighbor)
Как работает алгоритм KNN
knn(train test cl k = 1 l = 0 prob = FALSE useall = TRUE
Slide 20
Результаты кластеризации и зависимость ошибки от числа кластеро
Recursive PartitioningRegression Tree
Метод RP реализует обучение машины строить дерево решений по об
Recursive PartitioningRegression Tree (2)
rpart(formula data weights subset naaction = narpart met
Slide 26
Recursive PartitioningRegression Tree example
Анализ по главным компонентам (Principal Component Analysis PC
Итеративные алгоритмы с оптимальным разреженным кодированием IS
Самоорганизация данных методами Deep Learning
Знакомство с пакетом deepnet
Прогнозирование (классификация) нейронной сетью с архитектурой
Arguments
Архитектура сети SAE
Архитектура с 5Х4 hidden 3 outs
Example
Анализ обучающего набора данных
Параметры SAE сети
Коэффициенты связей
Предсказание обученной сетью
Сравнение обучающей и тестовой выборки
plot3d(xy)
Работаем с пакетом MNIST
httpyannlecuncomexdbmnist
Подготовка к обработке
Slide 118
Визуализация
plotmnist()
Распознавание рукописных цифр в deepnet
End of slides part 2 (Part 3 - NLP remaining)
Обучающаяся машина без учителя Алгоритм KNN (Nearest Neighbor)Алгоритм KNN Основным принципом метода ближайших соседей является то что объект присваивается тому классу который является наиболее распространённым среди соседей данного элементаДля классификации каждого из объектов тестовой выборки
необходимо последовательно выполнить следующие операцииВычислить расстояние до каждого из объектов обучающей выборки
Отобрать k объектов обучающей выборки расстояние до которых минимально
Класс классифицируемого объекта mdash это класс наиболее часто встречающийся среди k ближайших соседей
Как работает алгоритм KNN
>
knn(train test cl k = 1 l = 0 prob = FALSE useall = TRUE)
train matrix or data frame of training set cases
test matrix or data frame of test set cases A vector will be interpreted as a row vector for a single case
cl factor of true classifications of training set
k number of neighbours considered
l minimum vote for definite decision otherwise doubt (More precisely less than k-l dissenting votes are allowed even if k is increased by ties)
prob If this is true the proportion of the votes for the winning class are returned as attribute prob
useall controls handling of ties If true all distances equal to the kth largest are included If false a random selection of distances equal to the kth is chosen to use exactly k neighbours
Here we demonstrate the bias-variance tradeoff as we increase k
err lt- matrix(nrow=N100 ncol=2)for (i in 1nrow(err))
k lt- i 4test$predicted_class lt- knn(train[12] test[12] train$class k=k)mlt-cm(test$class test$predicted_class)err[i] lt- c(k 1 - sum(diag(m)) sum(m))
plot (err)
Результаты кластеризации и зависимость ошибки от числа кластеров
actualpredicted A B C A 272 0 7 B 1 308 1 C 31 0 280
gt m
Recursive PartitioningRegression Treebull Основано на дереве решений представляющем граф бинарной
последовательной классификации по тест-вопросам в каждой вершине графа Листья дерева ассоциируются с результатами классификации
Метод RP реализует обучение машины строить дерево решений по обучающей выборке данных
bull laquoРасщеплениеraquo обучающих данныхМножество данных в каждом узле разделяется на два соответствующих ответам TRUE или FALSE Вопросы должны порождать бинарное разбиение множества Для числовых характеристик это обычно неравенства характеристика Xn меньше или равна значению Ym
bull Конструирование тест-вопросовПринцип putity measurement ndash очищающих измерений Каждая характеристика анализируется статистически для каждого разбиения и выбирается наилучшее по чистоте разделенияbull Критерий остановкиЧтобы избежать переобучения используется либо порог чистоты либо максимальное число узлов либо минимальное число наблюдений в узле
Recursive PartitioningRegression Tree
Пример расщепления обучающей выборки
rpart(formula data weights subset naaction = narpart method model = FALSE x = FALSE y = TRUE parms control cost )
formula a formula with a response but no interaction terms If this a a data frome that is taken as the model frame (see modelframe)
data an optional data frame in which to interpret the variables named in the formula
weights optional case weights
subset optional expression saying that only a subset of the rows of the data should be used in the fit
naaction the default action deletes all observations for which y is missing but keeps those in which one or more predictors are missing method one of anova poisson class or exp If method is missing then the routine tries to make an intelligent guess If y is a survival object then method = exp is assumed if y has 2 columns then method = poisson is assumed if y is a factor then method = class is assumed otherwise method = anova is assumed It is wisest to specify the method directly especially as more criteria may added to the function in future Alternatively method can be a list of functions named init split and eval Examples are given in the file lsquotestsusersplitsRrsquo in the sources and in the vignettes lsquoUser Written Split Functionsrsquo
model if logical keep a copy of the model frame in the result If the input value for model is a model frame (likely from an earlier call to the rpart function) then this frame is used rather than constructing new data
x keep a copy of the x matrix in the result
y keep a copy of the dependent variable in the result If missing and model is supplied this defaults to FALSE
parms optional parameters for the splitting function Anova splitting has no parameters Poisson splitting has a single parameter the coefficient of variation of the prior distribution on the rates The default value is 1 Exponential splitting has the same parameter as Poisson For classification splitting the list can contain any of the vector of prior probabilities (component prior) the loss matrix (component loss) or the splitting index (component split) The priors must be positive and sum to 1 The loss matrix must have zeros on the diagonal and positive off-diagonal elements The splitting index can be gini or information The default priors are proportional to the data counts the losses default to 1 and the split defaults to gini
control a list of options that control details of the rpart algorithm See rpartcontrol
cost a vector of non-negative costs one for each variable in the model Defaults to one for all variables These are scalings to be applied when considering splits so the improvement on splitting on a variable is divided by its cost in deciding which split to choose arguments to rpartcontrol may also be specified in the call to rpart They are checked against the list of valid arguments
Recursive PartitioningRegression Tree example(r lt- rpart(class ~ x + y data = train))plot(r)text(r)
Here we look at the confusion matrix and overall error rate from applying the tree rules to the training datapredicted lt- asnumeric(apply(predict(r) 1 function(r) order(-r)[1]))(m lt- cm (train$class predicted))1 - sum(diag(m)) sum(m)
And by comparison against the test datapredicted lt- asnumeric(apply(predict(r test[12]) 1 function(r) order(-r)[1]))(m lt- cm (test$class predicted))1 - sum(diag(m)) sum(m)
Анализ по главным компонентам (Principal Component Analysis PCA)Известно четыре базовых версии методаbull аппроксимировать данные линейными многообразиями меньшей
размерностиbull найти подпространства меньшей размерности в ортогональной проекции
на которые разброс данных (то есть среднеквадратичное отклонение от среднего значения) максимален
bull найти подпространства меньшей размерности в ортогональной проекции на которые среднеквадратичное расстояние между точками максимально
bull для данной многомерной случайной величины построить такое ортогональное преобразование координат в результате которого корреляции между отдельными координатами обратятся в нуль
В основе задача наилучшей аппроксимации конечного множества точек прямыми и плоскостями (Пирсон 1901) Дано конечное множество векторов для каждого k=01hellipn-1 среди всех k-мерных линейных многообразий в Rn найти такое что сумма квадратов уклонений минимальна
bull Графическая иллюстрация метода главных компонент в 3D
Алгоритм
bull Централизация данных
bull Находим первую главную компоненту
bull Вычитаем проекцию на нее
bull Находим вторую главную компоненту
bull Вычитаем проекцию на (k-1) главную компоненту
bull Находим k-ую главную компоненту
bull Всегда выполняется условие ортогональности
princomp(formula data = NULL subset naaction )formula a formula with no response variable referring only to numeric variables
data an optional data frame (or similar see modelframe) containing the variables in the formula formula By default the variables are taken from environment(formula)
subset an optional vector used to select rows (observations) of the data matrix x
naaction a function which indicates what should happen when the data contain NAs The default is set by the naaction setting of options and is nafail if that is unset The lsquofactory-freshrsquo default is naomit
x a numeric matrix or data frame which provides the data for the principal components analysis
cor a logical value indicating whether the calculation should use the correlation matrix or the covariance matrix (The correlation matrix can only be used if there are no constant variables)
scores a logical value indicating whether the score on each principal component should be calculated
covmat a covariance matrix or a covariance list as returned by covwt (and covmve or covmcd from package MASS) If supplied this is used rather than the covariance matrix of x
arguments passed to or from other methods If x is a formula one might specify cor or scores
object Object of class inheriting from princomp
newdata An optional data frame or matrix in which to look for variables with which to predict If omitted the scores are used If the original fit used a formula or a data frame or a matrix with column names newdata must contain columns with the same names Otherwise it must contain the same number of columns to be used in the same order
Principal Component Analysis (PCA)plt-princomp(train[12])train_pca lt- dataframe(p$scores)train_pca$class lt- train$class
Compare the alignment of the clusters to the axis in the feature space versus the transformed space
r2 lt- rpart(class ~ Comp1 + Comp2 data = train_pca)
Линейный дискриминантный анализ (Linear Discriminant Analysis - LDA)bull Для каждого образца объекта или события с известным классом y
рассматривается набор наблюдений x (называемых ещё признаками переменными или измерениями) Набор таких образцов называется обучающей выборкой (или набором обучения обучением) Задачи классификации состоит в том чтобы построить хороший прогноз класса y для всякого так же распределённого объекта (не обязательно содержащегося в обучающей выборке) имея только наблюдения x Основная идея состоит в сравнении распределений для каждого из классов Расстоянием (по Фишеру) между распределениями принято считать отношение межклассовой дисперсии к внутриклассовой
bull Оптимальное байесовское решение - относить точки ко второму классу если отношение правдоподобия ниже некоторого порогового значения T
bull Предполагая что выполнена нормировка
bull Решение записывается в виде неравенства для скалярного произведения
bull Здесь laquoизмерительныйraquo вектор равен
bull с- дискриминантный порог
lda(x grouping prior = proportions tol = 10e-4 method CV = FALSE nu )
formula A formula of the form groups ~ x1 + x2 + That is the response is the grouping factor and the right hand side specifies the (non-factor) discriminators
data Data frame from which variables specified in formula are preferentially to be taken
x (required if no formula is given as the principal argument) a matrix or data frame or Matrix containing the explanatory variables
grouping (required if no formula principal argument is given) a factor specifying the class for each observation
prior the prior probabilities of class membership If unspecified the class proportions for the training set are used If present the probabilities should be specified in the order of the factor levels
tol A tolerance to decide if a matrix is singular it will reject variables and linear combinations of unit-variance variables whose variance is less than tol^2
subset An index vector specifying the cases to be used in the training sample (NOTE If given this argument must be named)
naaction A function to specify the action to be taken if NAs are found The default action is for the procedure to fail An alternative is naomit which leads to rejection of cases with missing values on any required variable (NOTE If given this argument must be named)
method moment for standard estimators of the mean and variance mle for MLEs mve to use covmve or t for robust estimates based on a t distribution
CV If true returns results (classes and posterior probabilities) for leave-one-out cross-validation Note that if the prior is estimated the proportions in the whole dataset are used
nu degrees of freedom for method = t
arguments passed to or from other methods
prior the prior probabilities usedmeans the group meansscaling a matrix which transforms observations to
discriminant functions normalized so that within groups covariance matrix is spherical
svd the singular values which give the ratio of the between- and within-group standard deviations on the linear discriminant variables Their squares are the canonical F-statistics
N The number of observations usedcall The (matched) function call
An object of class lda containing the following components
Метод опорных векторов (Support Vector Machines - SVM)Относится к ML с учителем и использует линейные разделяющие поверхности
Идея алгоритма
bull По обучающей выборке
bull Строится классифицирующая функция
bull Используя гиперплоскость
bull Поиск коэффициентов сводится к максимизации
расстояний от опорных векторов или минимизации
Иллюстрация на простейшем примере
>
Производится вложение обучающей выборки в пространство более высокой размерности Х с помощью нелинейной функции так чтобы обеспечит линейную разделимость в Х
Разделяющая функция тогда имеет вид
Функция называется ядром
Полиномиальное ядро
Радиальная базисная функция
Сигмоид
Линейная неразделимость и использование ядер
Иллюстрация использования ядра для отображения 2D -gt 3D
>
svm((formula data = NULL subset naaction =naomit scale = TRUE))
formulaa symbolic description of the model to be fitdataan optional data frame containing the variables in the model By default the variables are taken from the environment which lsquosvmrsquo is called fromxa data matrix a vector or a sparse matrix (object of class Matrix provided by the Matrix package or of class matrixcsr provided by the SparseM package or of class simple_triplet_matrix provided by the slam package)ya response vector with one label for each rowcomponent of x Can be either a factor (for classification tasks) or a numeric vector (for regression)scaleA logical vector indicating the variables to be scaled If scale is of length 1 the value is recycled as many times as needed Per default data are scaled internally (both x and y variables) to zero mean and unit variance The center and scale values are returned and used for later predictionstypesvm can be used as a classification machine as a regression machine or for novelty detection Depending of whether y is a factor or not the default setting for type is C-classification or eps-regression respectively but may be overwritten by setting an explicit valueValid options areC-classificationnu-classificationone-classification (for novelty detection)eps-regressionnu-regression
Support Vector Machines
s lt- svm( I(factor(class)) ~ x + y data = train cost = 100 gama = 1)
Package lsquodeepnetrsquo February 19 2015 Type Package Title deep learning toolkit in R Version 02 Date 2014-03-20 Author Xiao Rong Maintainer Xiao Rong Description Implement some deep learning architectures and neural network algorithms including BPRBMDBNDeep autoencoder and so on License GPL NeedsCompilation no Repository CRAN DatePublication 2014-03-20 100343
laquoВ 1997 году Deep Blue обыграл в шахматы КаспароваВ 2011 Watson обставил чемпионов JeopardyСможет ли ваш алгоритм в 2013 году отличить Бобика от ПушистикаraquoKaggle Competitions Details
Сегодня уже можно ответить laquoдаraquo mdash десятка лидеров справилась с заданием на 988
Распознавание основано на feature detection и последующем различении комбинаций
Заранее неизвестно какие части картинки могут использоваться как хорошие features В их роли может выступать все что угодно mdash фрагменты изображения форма размер или цвет Feature может не присутствовать на картинке сама а выражаться в параметре полученным каким-то образом из исходных данных
Распознавание рукописных цифр
Еще пример посложнее
Использование нейронной сети с обучениемОбучение такой нейронной сети производится обычно методом обратного распространения ошибки таким образом чтобы минимизировать среднеквадратическую ошибку отклика сети на обучающей выборке Таким образом обучающая выборка содержит пары векторов признаков (входные данные) и эталонных векторов (маркированные данные) (x y)
Сверхвысокая размерность при работе с первичным представлением пикселями
Пиксельное кодирование
Принцип иерархии понятий ndash основа deep learning
bull Все вещи состоят из других маленьких и более элементарных вещей
bull Как извлекать features Гипотеза малоразмерных многообразий
Разреженное (sparse) кодирование
первый уровень иерархии состоит из элементов словаря этого кода которые представляют собой штрихи и границы
Словарь для лиц
Выделение объектов заданного класса
Основные архитектуры Deep Learningbull Deep neural networks (DNN)bull Deep belief networks (DBN)bull Convolutional neural networks (CNN)bull Deep Boltzmann Machines (DBM)bull Stacked (Denoising) Auto-Encodersbull Deep Stacking Networksbull Tensor Deep Stacking Networks (T-DSN)bull Spike-and-Slab RBMs (ssRBMs)bull Compound Hierarchical-Deep Modelsbull Deep Coding Networks (DPCN)bull Deep Kernel Machinesbull Deep Q-Networks (2015 г)
Задача классификации распознавания и подобные являются задачей конструирования функции на множестве входных наборов и со значениями в множестве требуемого вида выходных
bull Норбертом Винером было показано что любая функция может быть сколь угодно точно композицией двух (он использовал функции полином Лагранжа и функцию Лагерра)
bull Соответствует двухслойной нейросетиbull Архитектуры Deep Learning соответствуют представлению
bull Обеспечивают эффективную параметризацию при решении конкретных задач Более сложные функции создаются из большего числа но более эффективно настраиваемых laquoкирпичиковraquo Пример ndash синтез булевых функций Дерево вентилей эффективнее двухслойной схемы
Фактор - графыВсе методы которые расмотрели ndash не DL Даже деревья классификации Все операции в одном входном словаре
DL можно определить по фактор-графу
Например
bull Еще одна сторона DL - нередко использует невыпуклые функции потерьbull Обучение на основе выпуклых функций не зависит от порядка
предъявления данных для обучения Все определяет асимптотика всего train - набора В алгоритмах DL порядок данных в обучающей выборке может иметь значение
bull Многие решения в DL не доказаны математически и являются успешными эвристиками
bull Большой простор для прикладной математики Может рассматриваться как фактор-граф с группами латентных переменных
bull В настоящее время стал основной технологией в распознавании речи (speech recognition) и машинном зрении (computer vision) начал применяться в обработке текстов (natural language processing)
bull Основная идея ndash применение нелинейного отображения входного набора в более высокоразмерное пространство где многие неразделимые композиции становятся разделимыми а затем объединение композиций по семантической близости
Подход разреженного кодирования
Обобщенная архитектура
bull DL сеть может быть собрана каскадированием и использованием обучения с учителем
Здесь используется forward propagation для обучения
Для настройки коэффициентов используется метод fprof для каждого
Требуется знание градиента энергии
Элементы (kl) матрицы Якобиана
Требуется знание градиента энергии 120597119864120597119882119894 = 120597119864120597119883119894120597119865119894(119883119894minus1119882119894)120597119882119894
ሾ1times 119873119908ሿ= ሾ1times 119873119909ሿlowast[119873119909 times 119873119908] Элементы (kl) матрицы Якобиана
Сводится к рекуррентному соотношению для вычисления градиента 120597119864120597119883119894minus1 = 120597119864120597119883119894120597119865119894(119883119894minus1119882119894)120597119883119894minus1
В итоге
Для вычисления градиента может использоваться метод back propagation
В действительности работают любые архитектуры построения функции Нужно конструировать связи и функции блоков
Язык Torch 7 ndash современный инструмент моделирования и имплементации
Machine Learning with Torch7 (httpcodecogbitscomwikidokuphpid=start)
bull These tutorials were originally designed for the IPAM Summer School on Deep Learning more info herebull This wiki provides multiple tutorials with the overall objective of teaching you how to do machine learning
with Torch7bull Torch7 provides a Matlab-like environment for state-of-the-art machine learning algorithms It is easy to use
and provides a very efficient implementation thanks to an easy and fast scripting language (LuaJIT) and an underlying C implementation
bull These tutorials should be readdone in orderbull Tutorial 1 Setup Basics Getting Startedbull Tutorial 2 Supervised Learningbull Tutorial 3 Unsupervised Learningbull Tutorial 4 Graphical Modelsbull Tutorial 5 Creating New Modulesbull Tutorial 6 Using CUDAbull To follow these tutorials and do the exercises you will need to download the associated code which is hosted
on GitHub on this page In this repository each directory corresponds to a tutorial herebull starttxt middot Last modified 20140204 2246 by clement
Torch 7 является расширением Lua
What is LuaLua is a powerful fast lightweight embeddable scripting languageLua combines simple procedural syntax with powerful data description constructs based on associative arrays and extensible semantics Lua is dynamically typed runs by interpreting bytecode for a register-based virtual machine and has automatic memory management with incremental garbage collection making it ideal for configuration scripting and rapid prototyping
Why choose LuaLua is a proven robust languageLua has been used in many industrial applications (eg Adobes Photoshop Lightroom) with an emphasis on embedded systems (eg the Ginga middleware for digital TV in Brazil) and games (eg World of Warcraft and Angry Birds) Lua is currently the leading scripting language in games Lua has a solid reference manual and there are several books about it Several versions of Lua have been released and used in real applications since its creation in 1993 Lua featured in HOPL III the Third ACM SIGPLAN History of Programming Languages Conference in June 2007 Lua won the Front Line Award 2011 from the Game Developers Magazine
Свертка и архитектура 4-х уровневой сверточной сети
Функциональная структура
Примеры успешного применения сверточных сетей
Диагностика эпилепсии по ЭЭГ
Реализация сверточной сетью
Одна из самых больших сверточных сетейbull Krizhevsky Sutskever Hinton 2012bull 650 000 нейронов 832 000 000 синапсов 60 000000 пареметровbull Использовался backprop на GPUbull Обучающая выборка на материалах 20 летbull Купил Google в январе 2013bull В мае 2013 развернул как сервис Photo Tagging Google+
Пример тэгирования
Пример поиска похожих по изображению
Пример поиска в коллекции изображений по текстовому запросу
Пример laquoоблачногоraquo классификатора изображений
Самообучающиеся нейронные сети на основе минимизации функции энергииbull Применима к сетям с обратными связямиbull Конструирование функции энергии должно обеспечивать
laquoконтрастностьraquo разделения
bull Энергетическая функция может Неформально рассматриваться как отрицательный логарифм плотности вероятности
Y 2=(Y1)2
RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцмана
bull Из DBM cтроится Deep Belief Network (DBN)
bull w mdash вес между нейронами
bull b mdash смещение нейрона
bull s mdash состояние нейрона
Алгоритм обучения Contrastive Divergence (CD)bull w_ij mdash веc между i-ым нейроном Вероятность пар может быть представлена как
bull a_i mdash смещение видимого нейрона
bull b_j mdash смещение скрытого нейрона
bull v_i mdash состояние видимого нейрона
bull h_j mdash состояние скрытого нейрона Полная вероятность состояния видимых нейронов
Основные уравнения адаптации
Алгоритм Хинтона - Contrastive Divergence (CD-k)
1 состояние видимых нейронов приравнивается к входному образу2 выводятся вероятности состояний скрытого слоя3 каждому нейрону скрытого слоя ставится в соответствие состояние laquo1raquo с вероятностью равной его текущему состоянию4 выводятся вероятности видимого слоя на основании скрытого5 если текущая итерация меньше k то возврат к шагу 26 выводятся вероятности состояний скрытого слоя
darch Package for deep architectures and Restricted-Bolzmann-MachinesThe darch package is build on the basis of the code from G E Hinton and R R Salakhutdinov (available under Matlab Code for deep belief nets last visit 01082013) This package is for generating neural networks with many layers (deep architectures) and train them with the method introduced by the publications A fast learning algorithm for deep belief nets (G E Hinton S Osindero Y W Teh) and Reducing the dimensionality of data with neural networks (G E Hinton R R Salakhutdinov) This method includes a pre training with the contrastive divergence method publishing by GE Hinton (2002) and a fine tuning with common known training algorithms like backpropagation or conjugate gradient
bull Version 091bull Imports futilelogger ff methodsbull Published 2014-03-16bull Author Martin Dreesbull Maintainer Martin Drees ltmdrees at studfh-dortmunddegtbull License GPL-2bull URL httpgithubcommaddin79darchbull NeedsCompilation nobull Materials READMEbull CRAN checks darch results
Связь плотности вероятности и энергии
Используется распределение Гиббса
Задача обучения с точки минимизации энергии сети
bull Сконструировать функцию энергии с малыми значениями на обучающей выборке и с большими значениями всюду вне этого множества
bull Первое несложно а второе представляет задачу процесса обучения
Интуитивные соображения
Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decomposition LISTA ndashметоды использующие разреженные коды
Латентная переменная Z =argmin_z Distance[Decoder(Z)Y]+FactorB(Z)MAPminimaize sum of factors
Автоэнкодер (auto encoder) Автоэнкодер представляет собой алгоритм обучения без учителя который использует нейронную сеть и метод обратного распространения ошибки для того чтобы добиться того что входной вектор признаков вызывал отклик сети равный входному вектору те y = x Автоэнкодер пытается построить функцию h(x) = x
Архитекттура ICA моделей
Итеративные алгоритмы с оптимальным разреженным кодированием ISTAFISTA
Самоорганизация данных методами Deep Learning
>
Знакомство с пакетом deepnet
Назначение
Составdbndnntrain - обучение сети с архитектурой DBN (deep belief network)loadmnist - формирование данных из файлов MNISTnnpredict - предсказание новых выборок на обученной нейронной сетиnntest ndash тестирование обученной нейронной сети с возвращением значения ошибкиnntrain ndash обучение одностлойной или многослойной нейронной сети методом backproprbmdown ndash генерирование видимого вектора для скрытых состояний сети RBMrbmtrain ndash обучение сети RBMrbmup ndash извлечение скрытых состояний RBM по известным видимым состояниямsaednntrain ndash обучение нейронной сети с архитектурой stacked autoencoder
Прогнозирование (классификация) нейронной сетью с архитектурой stacked auto encoder
Argumentsbull x matrix of x values for examplesbull y vector or matrix of target values for examplesbull hidden vector for number of units of hidden layersDefault is c(10)bull activationfun activation function of hidden unitCan be sigmlinear or tanhDefault isbull sigm for logistic functionbull learningrate learning rate for gradient descent Default is 08bull momentum momentum for gradient descent Default is 05 bull learningrate_scalebull learning rate will be mutiplied by this scale after every iteration Default is 1 bull numepochs number of iteration for samples Default is 3bull batchsize size of mini-batch Default is 100bull output function of output unit can be sigmlinear or softmax Default is sigmbull sae_output function of autoencoder output unit can be sigmlinear or softmax Defaultbull is linearbull hidden_dropout drop out fraction for hidden layer Default is 0bull visible_dropoutbull drop out fraction for input layer Default is 0
Что такое MNISTbull Смешанный набор данных Национального института стандартов и
технологий (mixed National Institute of Standards and Technology MNIST) был создан исследователями IR в качестве эталона для сравнения различных алгоритмов IR
bull Набор данных состоит всего из 70 000 изображений 60 000 обучающих (используемых для создания модели IR) и 10 000 тестовых (применяемых для оценки точности модели) Каждое изображение MNIST mdash это оцифрованная картинка одной цифры написанной от руки Каждое изображение имеет размер 28 times 28 пикселей Каждое значение пикселя лежит в диапазоне от 0 (представляет белый цвет) до 255 (представляет черный цвет) Промежуточные значения отражают оттенки серого
httpyannlecuncomexdbmnistобучающие и тестовые данные хранятся в двух файлах а не в одном Один файл содержит значения пикселей для изображений а другой mdash метки изображений (0ndash9) Каждый из четырех файлов также содержит заголовочную информацию и все они хранятся в двоичном формате сжатом в формате gziptrain-images-idx3-ubytegz training set images (9912422 bytes)
train-labels-idx1-ubytegz training set labels (28881 bytes)
t10k-images-idx3-ubytegz test set images (1648877 bytes)
t10k-labels-idx1-ubytegz test set labels (4542 bytes)
bull Каждая строка файла представляет собой имидж размера 28 times 28 вектором длины 784 каждый признак ndash значение пиксела в черно-белой шале Первый столбец содержит метку цифры 0ndash9 следующие 2828 столбцов представляют целый имидж и так далее Пример первой строки
Визуализация
bull plotmnist()bull mnistbull paramsbull train$n number of train samplesbull train$x pix of every train sample imagebull train$y label of every train sample imagebull train$yy one-of-c vector of label of train sample imagebull test$n number of test samplesbull test$x pix of every test sample imagebull test$y label of every test sample imagebull test$yy one-of-c vector of label of test sample image
plotmnist()
Распознавание рукописных цифр в deepnet
another way to download the MNIST datasetmnist downloadmnist(range=c(01)global=FALSE)look at MNIST datamnist$train$xmnist$train$ymnist$test$xmnist$test$ytrain of the sae neural networkdnnlt-saednntrain(mnist$train$xmnist$train$yhidden=c(55))test of the sae neural networknntest(dnnmnist$test$xmnist$test$yt=05)
End of slides part 2 (Part 3 - NLP remaining)
Vladimirvkrylovgmailcom
Основы предиктивной аналитики Часть вторая
Применение методов Machine Learning к решению задач аналитики
Дмитрий Ветров кандидат физико-математических наук ру
Методы обучающихся машин для аналитики которые мы рассмотрим
Сначала нужно загрузить несколько пакетов (packages) для поддер
Данные для анализа
Скрипт для генерации
Данные которые мы будем использовать для демо состоят из смес
Так выглядят визуализированные данные сгенерированные скриптом
Разделение данных на обучающие и проверочные является важным эт
K-means алгоритм на пальцах
Обучающаяся машина без учителя Алгоритм K-means
Slide 13
Slide 14
Здесь мы используем заранее известный факт что необходимо кла
Еще одна иллюстрация работы алгоритма K-means
Обучающаяся машина без учителя Алгоритм KNN (Nearest Neighbor)
Как работает алгоритм KNN
knn(train test cl k = 1 l = 0 prob = FALSE useall = TRUE
Slide 20
Результаты кластеризации и зависимость ошибки от числа кластеро
Recursive PartitioningRegression Tree
Метод RP реализует обучение машины строить дерево решений по об
Recursive PartitioningRegression Tree (2)
rpart(formula data weights subset naaction = narpart met
Slide 26
Recursive PartitioningRegression Tree example
Анализ по главным компонентам (Principal Component Analysis PC
Итеративные алгоритмы с оптимальным разреженным кодированием IS
Самоорганизация данных методами Deep Learning
Знакомство с пакетом deepnet
Прогнозирование (классификация) нейронной сетью с архитектурой
Arguments
Архитектура сети SAE
Архитектура с 5Х4 hidden 3 outs
Example
Анализ обучающего набора данных
Параметры SAE сети
Коэффициенты связей
Предсказание обученной сетью
Сравнение обучающей и тестовой выборки
plot3d(xy)
Работаем с пакетом MNIST
httpyannlecuncomexdbmnist
Подготовка к обработке
Slide 118
Визуализация
plotmnist()
Распознавание рукописных цифр в deepnet
End of slides part 2 (Part 3 - NLP remaining)
Как работает алгоритм KNN
>
knn(train test cl k = 1 l = 0 prob = FALSE useall = TRUE)
train matrix or data frame of training set cases
test matrix or data frame of test set cases A vector will be interpreted as a row vector for a single case
cl factor of true classifications of training set
k number of neighbours considered
l minimum vote for definite decision otherwise doubt (More precisely less than k-l dissenting votes are allowed even if k is increased by ties)
prob If this is true the proportion of the votes for the winning class are returned as attribute prob
useall controls handling of ties If true all distances equal to the kth largest are included If false a random selection of distances equal to the kth is chosen to use exactly k neighbours
Here we demonstrate the bias-variance tradeoff as we increase k
err lt- matrix(nrow=N100 ncol=2)for (i in 1nrow(err))
k lt- i 4test$predicted_class lt- knn(train[12] test[12] train$class k=k)mlt-cm(test$class test$predicted_class)err[i] lt- c(k 1 - sum(diag(m)) sum(m))
plot (err)
Результаты кластеризации и зависимость ошибки от числа кластеров
actualpredicted A B C A 272 0 7 B 1 308 1 C 31 0 280
gt m
Recursive PartitioningRegression Treebull Основано на дереве решений представляющем граф бинарной
последовательной классификации по тест-вопросам в каждой вершине графа Листья дерева ассоциируются с результатами классификации
Метод RP реализует обучение машины строить дерево решений по обучающей выборке данных
bull laquoРасщеплениеraquo обучающих данныхМножество данных в каждом узле разделяется на два соответствующих ответам TRUE или FALSE Вопросы должны порождать бинарное разбиение множества Для числовых характеристик это обычно неравенства характеристика Xn меньше или равна значению Ym
bull Конструирование тест-вопросовПринцип putity measurement ndash очищающих измерений Каждая характеристика анализируется статистически для каждого разбиения и выбирается наилучшее по чистоте разделенияbull Критерий остановкиЧтобы избежать переобучения используется либо порог чистоты либо максимальное число узлов либо минимальное число наблюдений в узле
Recursive PartitioningRegression Tree
Пример расщепления обучающей выборки
rpart(formula data weights subset naaction = narpart method model = FALSE x = FALSE y = TRUE parms control cost )
formula a formula with a response but no interaction terms If this a a data frome that is taken as the model frame (see modelframe)
data an optional data frame in which to interpret the variables named in the formula
weights optional case weights
subset optional expression saying that only a subset of the rows of the data should be used in the fit
naaction the default action deletes all observations for which y is missing but keeps those in which one or more predictors are missing method one of anova poisson class or exp If method is missing then the routine tries to make an intelligent guess If y is a survival object then method = exp is assumed if y has 2 columns then method = poisson is assumed if y is a factor then method = class is assumed otherwise method = anova is assumed It is wisest to specify the method directly especially as more criteria may added to the function in future Alternatively method can be a list of functions named init split and eval Examples are given in the file lsquotestsusersplitsRrsquo in the sources and in the vignettes lsquoUser Written Split Functionsrsquo
model if logical keep a copy of the model frame in the result If the input value for model is a model frame (likely from an earlier call to the rpart function) then this frame is used rather than constructing new data
x keep a copy of the x matrix in the result
y keep a copy of the dependent variable in the result If missing and model is supplied this defaults to FALSE
parms optional parameters for the splitting function Anova splitting has no parameters Poisson splitting has a single parameter the coefficient of variation of the prior distribution on the rates The default value is 1 Exponential splitting has the same parameter as Poisson For classification splitting the list can contain any of the vector of prior probabilities (component prior) the loss matrix (component loss) or the splitting index (component split) The priors must be positive and sum to 1 The loss matrix must have zeros on the diagonal and positive off-diagonal elements The splitting index can be gini or information The default priors are proportional to the data counts the losses default to 1 and the split defaults to gini
control a list of options that control details of the rpart algorithm See rpartcontrol
cost a vector of non-negative costs one for each variable in the model Defaults to one for all variables These are scalings to be applied when considering splits so the improvement on splitting on a variable is divided by its cost in deciding which split to choose arguments to rpartcontrol may also be specified in the call to rpart They are checked against the list of valid arguments
Recursive PartitioningRegression Tree example(r lt- rpart(class ~ x + y data = train))plot(r)text(r)
Here we look at the confusion matrix and overall error rate from applying the tree rules to the training datapredicted lt- asnumeric(apply(predict(r) 1 function(r) order(-r)[1]))(m lt- cm (train$class predicted))1 - sum(diag(m)) sum(m)
And by comparison against the test datapredicted lt- asnumeric(apply(predict(r test[12]) 1 function(r) order(-r)[1]))(m lt- cm (test$class predicted))1 - sum(diag(m)) sum(m)
Анализ по главным компонентам (Principal Component Analysis PCA)Известно четыре базовых версии методаbull аппроксимировать данные линейными многообразиями меньшей
размерностиbull найти подпространства меньшей размерности в ортогональной проекции
на которые разброс данных (то есть среднеквадратичное отклонение от среднего значения) максимален
bull найти подпространства меньшей размерности в ортогональной проекции на которые среднеквадратичное расстояние между точками максимально
bull для данной многомерной случайной величины построить такое ортогональное преобразование координат в результате которого корреляции между отдельными координатами обратятся в нуль
В основе задача наилучшей аппроксимации конечного множества точек прямыми и плоскостями (Пирсон 1901) Дано конечное множество векторов для каждого k=01hellipn-1 среди всех k-мерных линейных многообразий в Rn найти такое что сумма квадратов уклонений минимальна
bull Графическая иллюстрация метода главных компонент в 3D
Алгоритм
bull Централизация данных
bull Находим первую главную компоненту
bull Вычитаем проекцию на нее
bull Находим вторую главную компоненту
bull Вычитаем проекцию на (k-1) главную компоненту
bull Находим k-ую главную компоненту
bull Всегда выполняется условие ортогональности
princomp(formula data = NULL subset naaction )formula a formula with no response variable referring only to numeric variables
data an optional data frame (or similar see modelframe) containing the variables in the formula formula By default the variables are taken from environment(formula)
subset an optional vector used to select rows (observations) of the data matrix x
naaction a function which indicates what should happen when the data contain NAs The default is set by the naaction setting of options and is nafail if that is unset The lsquofactory-freshrsquo default is naomit
x a numeric matrix or data frame which provides the data for the principal components analysis
cor a logical value indicating whether the calculation should use the correlation matrix or the covariance matrix (The correlation matrix can only be used if there are no constant variables)
scores a logical value indicating whether the score on each principal component should be calculated
covmat a covariance matrix or a covariance list as returned by covwt (and covmve or covmcd from package MASS) If supplied this is used rather than the covariance matrix of x
arguments passed to or from other methods If x is a formula one might specify cor or scores
object Object of class inheriting from princomp
newdata An optional data frame or matrix in which to look for variables with which to predict If omitted the scores are used If the original fit used a formula or a data frame or a matrix with column names newdata must contain columns with the same names Otherwise it must contain the same number of columns to be used in the same order
Principal Component Analysis (PCA)plt-princomp(train[12])train_pca lt- dataframe(p$scores)train_pca$class lt- train$class
Compare the alignment of the clusters to the axis in the feature space versus the transformed space
r2 lt- rpart(class ~ Comp1 + Comp2 data = train_pca)
Линейный дискриминантный анализ (Linear Discriminant Analysis - LDA)bull Для каждого образца объекта или события с известным классом y
рассматривается набор наблюдений x (называемых ещё признаками переменными или измерениями) Набор таких образцов называется обучающей выборкой (или набором обучения обучением) Задачи классификации состоит в том чтобы построить хороший прогноз класса y для всякого так же распределённого объекта (не обязательно содержащегося в обучающей выборке) имея только наблюдения x Основная идея состоит в сравнении распределений для каждого из классов Расстоянием (по Фишеру) между распределениями принято считать отношение межклассовой дисперсии к внутриклассовой
bull Оптимальное байесовское решение - относить точки ко второму классу если отношение правдоподобия ниже некоторого порогового значения T
bull Предполагая что выполнена нормировка
bull Решение записывается в виде неравенства для скалярного произведения
bull Здесь laquoизмерительныйraquo вектор равен
bull с- дискриминантный порог
lda(x grouping prior = proportions tol = 10e-4 method CV = FALSE nu )
formula A formula of the form groups ~ x1 + x2 + That is the response is the grouping factor and the right hand side specifies the (non-factor) discriminators
data Data frame from which variables specified in formula are preferentially to be taken
x (required if no formula is given as the principal argument) a matrix or data frame or Matrix containing the explanatory variables
grouping (required if no formula principal argument is given) a factor specifying the class for each observation
prior the prior probabilities of class membership If unspecified the class proportions for the training set are used If present the probabilities should be specified in the order of the factor levels
tol A tolerance to decide if a matrix is singular it will reject variables and linear combinations of unit-variance variables whose variance is less than tol^2
subset An index vector specifying the cases to be used in the training sample (NOTE If given this argument must be named)
naaction A function to specify the action to be taken if NAs are found The default action is for the procedure to fail An alternative is naomit which leads to rejection of cases with missing values on any required variable (NOTE If given this argument must be named)
method moment for standard estimators of the mean and variance mle for MLEs mve to use covmve or t for robust estimates based on a t distribution
CV If true returns results (classes and posterior probabilities) for leave-one-out cross-validation Note that if the prior is estimated the proportions in the whole dataset are used
nu degrees of freedom for method = t
arguments passed to or from other methods
prior the prior probabilities usedmeans the group meansscaling a matrix which transforms observations to
discriminant functions normalized so that within groups covariance matrix is spherical
svd the singular values which give the ratio of the between- and within-group standard deviations on the linear discriminant variables Their squares are the canonical F-statistics
N The number of observations usedcall The (matched) function call
An object of class lda containing the following components
Метод опорных векторов (Support Vector Machines - SVM)Относится к ML с учителем и использует линейные разделяющие поверхности
Идея алгоритма
bull По обучающей выборке
bull Строится классифицирующая функция
bull Используя гиперплоскость
bull Поиск коэффициентов сводится к максимизации
расстояний от опорных векторов или минимизации
Иллюстрация на простейшем примере
>
Производится вложение обучающей выборки в пространство более высокой размерности Х с помощью нелинейной функции так чтобы обеспечит линейную разделимость в Х
Разделяющая функция тогда имеет вид
Функция называется ядром
Полиномиальное ядро
Радиальная базисная функция
Сигмоид
Линейная неразделимость и использование ядер
Иллюстрация использования ядра для отображения 2D -gt 3D
>
svm((formula data = NULL subset naaction =naomit scale = TRUE))
formulaa symbolic description of the model to be fitdataan optional data frame containing the variables in the model By default the variables are taken from the environment which lsquosvmrsquo is called fromxa data matrix a vector or a sparse matrix (object of class Matrix provided by the Matrix package or of class matrixcsr provided by the SparseM package or of class simple_triplet_matrix provided by the slam package)ya response vector with one label for each rowcomponent of x Can be either a factor (for classification tasks) or a numeric vector (for regression)scaleA logical vector indicating the variables to be scaled If scale is of length 1 the value is recycled as many times as needed Per default data are scaled internally (both x and y variables) to zero mean and unit variance The center and scale values are returned and used for later predictionstypesvm can be used as a classification machine as a regression machine or for novelty detection Depending of whether y is a factor or not the default setting for type is C-classification or eps-regression respectively but may be overwritten by setting an explicit valueValid options areC-classificationnu-classificationone-classification (for novelty detection)eps-regressionnu-regression
Support Vector Machines
s lt- svm( I(factor(class)) ~ x + y data = train cost = 100 gama = 1)
Package lsquodeepnetrsquo February 19 2015 Type Package Title deep learning toolkit in R Version 02 Date 2014-03-20 Author Xiao Rong Maintainer Xiao Rong Description Implement some deep learning architectures and neural network algorithms including BPRBMDBNDeep autoencoder and so on License GPL NeedsCompilation no Repository CRAN DatePublication 2014-03-20 100343
laquoВ 1997 году Deep Blue обыграл в шахматы КаспароваВ 2011 Watson обставил чемпионов JeopardyСможет ли ваш алгоритм в 2013 году отличить Бобика от ПушистикаraquoKaggle Competitions Details
Сегодня уже можно ответить laquoдаraquo mdash десятка лидеров справилась с заданием на 988
Распознавание основано на feature detection и последующем различении комбинаций
Заранее неизвестно какие части картинки могут использоваться как хорошие features В их роли может выступать все что угодно mdash фрагменты изображения форма размер или цвет Feature может не присутствовать на картинке сама а выражаться в параметре полученным каким-то образом из исходных данных
Распознавание рукописных цифр
Еще пример посложнее
Использование нейронной сети с обучениемОбучение такой нейронной сети производится обычно методом обратного распространения ошибки таким образом чтобы минимизировать среднеквадратическую ошибку отклика сети на обучающей выборке Таким образом обучающая выборка содержит пары векторов признаков (входные данные) и эталонных векторов (маркированные данные) (x y)
Сверхвысокая размерность при работе с первичным представлением пикселями
Пиксельное кодирование
Принцип иерархии понятий ndash основа deep learning
bull Все вещи состоят из других маленьких и более элементарных вещей
bull Как извлекать features Гипотеза малоразмерных многообразий
Разреженное (sparse) кодирование
первый уровень иерархии состоит из элементов словаря этого кода которые представляют собой штрихи и границы
Словарь для лиц
Выделение объектов заданного класса
Основные архитектуры Deep Learningbull Deep neural networks (DNN)bull Deep belief networks (DBN)bull Convolutional neural networks (CNN)bull Deep Boltzmann Machines (DBM)bull Stacked (Denoising) Auto-Encodersbull Deep Stacking Networksbull Tensor Deep Stacking Networks (T-DSN)bull Spike-and-Slab RBMs (ssRBMs)bull Compound Hierarchical-Deep Modelsbull Deep Coding Networks (DPCN)bull Deep Kernel Machinesbull Deep Q-Networks (2015 г)
Задача классификации распознавания и подобные являются задачей конструирования функции на множестве входных наборов и со значениями в множестве требуемого вида выходных
bull Норбертом Винером было показано что любая функция может быть сколь угодно точно композицией двух (он использовал функции полином Лагранжа и функцию Лагерра)
bull Соответствует двухслойной нейросетиbull Архитектуры Deep Learning соответствуют представлению
bull Обеспечивают эффективную параметризацию при решении конкретных задач Более сложные функции создаются из большего числа но более эффективно настраиваемых laquoкирпичиковraquo Пример ndash синтез булевых функций Дерево вентилей эффективнее двухслойной схемы
Фактор - графыВсе методы которые расмотрели ndash не DL Даже деревья классификации Все операции в одном входном словаре
DL можно определить по фактор-графу
Например
bull Еще одна сторона DL - нередко использует невыпуклые функции потерьbull Обучение на основе выпуклых функций не зависит от порядка
предъявления данных для обучения Все определяет асимптотика всего train - набора В алгоритмах DL порядок данных в обучающей выборке может иметь значение
bull Многие решения в DL не доказаны математически и являются успешными эвристиками
bull Большой простор для прикладной математики Может рассматриваться как фактор-граф с группами латентных переменных
bull В настоящее время стал основной технологией в распознавании речи (speech recognition) и машинном зрении (computer vision) начал применяться в обработке текстов (natural language processing)
bull Основная идея ndash применение нелинейного отображения входного набора в более высокоразмерное пространство где многие неразделимые композиции становятся разделимыми а затем объединение композиций по семантической близости
Подход разреженного кодирования
Обобщенная архитектура
bull DL сеть может быть собрана каскадированием и использованием обучения с учителем
Здесь используется forward propagation для обучения
Для настройки коэффициентов используется метод fprof для каждого
Требуется знание градиента энергии
Элементы (kl) матрицы Якобиана
Требуется знание градиента энергии 120597119864120597119882119894 = 120597119864120597119883119894120597119865119894(119883119894minus1119882119894)120597119882119894
ሾ1times 119873119908ሿ= ሾ1times 119873119909ሿlowast[119873119909 times 119873119908] Элементы (kl) матрицы Якобиана
Сводится к рекуррентному соотношению для вычисления градиента 120597119864120597119883119894minus1 = 120597119864120597119883119894120597119865119894(119883119894minus1119882119894)120597119883119894minus1
В итоге
Для вычисления градиента может использоваться метод back propagation
В действительности работают любые архитектуры построения функции Нужно конструировать связи и функции блоков
Язык Torch 7 ndash современный инструмент моделирования и имплементации
Machine Learning with Torch7 (httpcodecogbitscomwikidokuphpid=start)
bull These tutorials were originally designed for the IPAM Summer School on Deep Learning more info herebull This wiki provides multiple tutorials with the overall objective of teaching you how to do machine learning
with Torch7bull Torch7 provides a Matlab-like environment for state-of-the-art machine learning algorithms It is easy to use
and provides a very efficient implementation thanks to an easy and fast scripting language (LuaJIT) and an underlying C implementation
bull These tutorials should be readdone in orderbull Tutorial 1 Setup Basics Getting Startedbull Tutorial 2 Supervised Learningbull Tutorial 3 Unsupervised Learningbull Tutorial 4 Graphical Modelsbull Tutorial 5 Creating New Modulesbull Tutorial 6 Using CUDAbull To follow these tutorials and do the exercises you will need to download the associated code which is hosted
on GitHub on this page In this repository each directory corresponds to a tutorial herebull starttxt middot Last modified 20140204 2246 by clement
Torch 7 является расширением Lua
What is LuaLua is a powerful fast lightweight embeddable scripting languageLua combines simple procedural syntax with powerful data description constructs based on associative arrays and extensible semantics Lua is dynamically typed runs by interpreting bytecode for a register-based virtual machine and has automatic memory management with incremental garbage collection making it ideal for configuration scripting and rapid prototyping
Why choose LuaLua is a proven robust languageLua has been used in many industrial applications (eg Adobes Photoshop Lightroom) with an emphasis on embedded systems (eg the Ginga middleware for digital TV in Brazil) and games (eg World of Warcraft and Angry Birds) Lua is currently the leading scripting language in games Lua has a solid reference manual and there are several books about it Several versions of Lua have been released and used in real applications since its creation in 1993 Lua featured in HOPL III the Third ACM SIGPLAN History of Programming Languages Conference in June 2007 Lua won the Front Line Award 2011 from the Game Developers Magazine
Свертка и архитектура 4-х уровневой сверточной сети
Функциональная структура
Примеры успешного применения сверточных сетей
Диагностика эпилепсии по ЭЭГ
Реализация сверточной сетью
Одна из самых больших сверточных сетейbull Krizhevsky Sutskever Hinton 2012bull 650 000 нейронов 832 000 000 синапсов 60 000000 пареметровbull Использовался backprop на GPUbull Обучающая выборка на материалах 20 летbull Купил Google в январе 2013bull В мае 2013 развернул как сервис Photo Tagging Google+
Пример тэгирования
Пример поиска похожих по изображению
Пример поиска в коллекции изображений по текстовому запросу
Пример laquoоблачногоraquo классификатора изображений
Самообучающиеся нейронные сети на основе минимизации функции энергииbull Применима к сетям с обратными связямиbull Конструирование функции энергии должно обеспечивать
laquoконтрастностьraquo разделения
bull Энергетическая функция может Неформально рассматриваться как отрицательный логарифм плотности вероятности
Y 2=(Y1)2
RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцмана
bull Из DBM cтроится Deep Belief Network (DBN)
bull w mdash вес между нейронами
bull b mdash смещение нейрона
bull s mdash состояние нейрона
Алгоритм обучения Contrastive Divergence (CD)bull w_ij mdash веc между i-ым нейроном Вероятность пар может быть представлена как
bull a_i mdash смещение видимого нейрона
bull b_j mdash смещение скрытого нейрона
bull v_i mdash состояние видимого нейрона
bull h_j mdash состояние скрытого нейрона Полная вероятность состояния видимых нейронов
Основные уравнения адаптации
Алгоритм Хинтона - Contrastive Divergence (CD-k)
1 состояние видимых нейронов приравнивается к входному образу2 выводятся вероятности состояний скрытого слоя3 каждому нейрону скрытого слоя ставится в соответствие состояние laquo1raquo с вероятностью равной его текущему состоянию4 выводятся вероятности видимого слоя на основании скрытого5 если текущая итерация меньше k то возврат к шагу 26 выводятся вероятности состояний скрытого слоя
darch Package for deep architectures and Restricted-Bolzmann-MachinesThe darch package is build on the basis of the code from G E Hinton and R R Salakhutdinov (available under Matlab Code for deep belief nets last visit 01082013) This package is for generating neural networks with many layers (deep architectures) and train them with the method introduced by the publications A fast learning algorithm for deep belief nets (G E Hinton S Osindero Y W Teh) and Reducing the dimensionality of data with neural networks (G E Hinton R R Salakhutdinov) This method includes a pre training with the contrastive divergence method publishing by GE Hinton (2002) and a fine tuning with common known training algorithms like backpropagation or conjugate gradient
bull Version 091bull Imports futilelogger ff methodsbull Published 2014-03-16bull Author Martin Dreesbull Maintainer Martin Drees ltmdrees at studfh-dortmunddegtbull License GPL-2bull URL httpgithubcommaddin79darchbull NeedsCompilation nobull Materials READMEbull CRAN checks darch results
Связь плотности вероятности и энергии
Используется распределение Гиббса
Задача обучения с точки минимизации энергии сети
bull Сконструировать функцию энергии с малыми значениями на обучающей выборке и с большими значениями всюду вне этого множества
bull Первое несложно а второе представляет задачу процесса обучения
Интуитивные соображения
Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decomposition LISTA ndashметоды использующие разреженные коды
Латентная переменная Z =argmin_z Distance[Decoder(Z)Y]+FactorB(Z)MAPminimaize sum of factors
Автоэнкодер (auto encoder) Автоэнкодер представляет собой алгоритм обучения без учителя который использует нейронную сеть и метод обратного распространения ошибки для того чтобы добиться того что входной вектор признаков вызывал отклик сети равный входному вектору те y = x Автоэнкодер пытается построить функцию h(x) = x
Архитекттура ICA моделей
Итеративные алгоритмы с оптимальным разреженным кодированием ISTAFISTA
Самоорганизация данных методами Deep Learning
>
Знакомство с пакетом deepnet
Назначение
Составdbndnntrain - обучение сети с архитектурой DBN (deep belief network)loadmnist - формирование данных из файлов MNISTnnpredict - предсказание новых выборок на обученной нейронной сетиnntest ndash тестирование обученной нейронной сети с возвращением значения ошибкиnntrain ndash обучение одностлойной или многослойной нейронной сети методом backproprbmdown ndash генерирование видимого вектора для скрытых состояний сети RBMrbmtrain ndash обучение сети RBMrbmup ndash извлечение скрытых состояний RBM по известным видимым состояниямsaednntrain ndash обучение нейронной сети с архитектурой stacked autoencoder
Прогнозирование (классификация) нейронной сетью с архитектурой stacked auto encoder
Argumentsbull x matrix of x values for examplesbull y vector or matrix of target values for examplesbull hidden vector for number of units of hidden layersDefault is c(10)bull activationfun activation function of hidden unitCan be sigmlinear or tanhDefault isbull sigm for logistic functionbull learningrate learning rate for gradient descent Default is 08bull momentum momentum for gradient descent Default is 05 bull learningrate_scalebull learning rate will be mutiplied by this scale after every iteration Default is 1 bull numepochs number of iteration for samples Default is 3bull batchsize size of mini-batch Default is 100bull output function of output unit can be sigmlinear or softmax Default is sigmbull sae_output function of autoencoder output unit can be sigmlinear or softmax Defaultbull is linearbull hidden_dropout drop out fraction for hidden layer Default is 0bull visible_dropoutbull drop out fraction for input layer Default is 0
Что такое MNISTbull Смешанный набор данных Национального института стандартов и
технологий (mixed National Institute of Standards and Technology MNIST) был создан исследователями IR в качестве эталона для сравнения различных алгоритмов IR
bull Набор данных состоит всего из 70 000 изображений 60 000 обучающих (используемых для создания модели IR) и 10 000 тестовых (применяемых для оценки точности модели) Каждое изображение MNIST mdash это оцифрованная картинка одной цифры написанной от руки Каждое изображение имеет размер 28 times 28 пикселей Каждое значение пикселя лежит в диапазоне от 0 (представляет белый цвет) до 255 (представляет черный цвет) Промежуточные значения отражают оттенки серого
httpyannlecuncomexdbmnistобучающие и тестовые данные хранятся в двух файлах а не в одном Один файл содержит значения пикселей для изображений а другой mdash метки изображений (0ndash9) Каждый из четырех файлов также содержит заголовочную информацию и все они хранятся в двоичном формате сжатом в формате gziptrain-images-idx3-ubytegz training set images (9912422 bytes)
train-labels-idx1-ubytegz training set labels (28881 bytes)
t10k-images-idx3-ubytegz test set images (1648877 bytes)
t10k-labels-idx1-ubytegz test set labels (4542 bytes)
bull Каждая строка файла представляет собой имидж размера 28 times 28 вектором длины 784 каждый признак ndash значение пиксела в черно-белой шале Первый столбец содержит метку цифры 0ndash9 следующие 2828 столбцов представляют целый имидж и так далее Пример первой строки
Визуализация
bull plotmnist()bull mnistbull paramsbull train$n number of train samplesbull train$x pix of every train sample imagebull train$y label of every train sample imagebull train$yy one-of-c vector of label of train sample imagebull test$n number of test samplesbull test$x pix of every test sample imagebull test$y label of every test sample imagebull test$yy one-of-c vector of label of test sample image
plotmnist()
Распознавание рукописных цифр в deepnet
another way to download the MNIST datasetmnist downloadmnist(range=c(01)global=FALSE)look at MNIST datamnist$train$xmnist$train$ymnist$test$xmnist$test$ytrain of the sae neural networkdnnlt-saednntrain(mnist$train$xmnist$train$yhidden=c(55))test of the sae neural networknntest(dnnmnist$test$xmnist$test$yt=05)
End of slides part 2 (Part 3 - NLP remaining)
Vladimirvkrylovgmailcom
Основы предиктивной аналитики Часть вторая
Применение методов Machine Learning к решению задач аналитики
Дмитрий Ветров кандидат физико-математических наук ру
Методы обучающихся машин для аналитики которые мы рассмотрим
Сначала нужно загрузить несколько пакетов (packages) для поддер
Данные для анализа
Скрипт для генерации
Данные которые мы будем использовать для демо состоят из смес
Так выглядят визуализированные данные сгенерированные скриптом
Разделение данных на обучающие и проверочные является важным эт
K-means алгоритм на пальцах
Обучающаяся машина без учителя Алгоритм K-means
Slide 13
Slide 14
Здесь мы используем заранее известный факт что необходимо кла
Еще одна иллюстрация работы алгоритма K-means
Обучающаяся машина без учителя Алгоритм KNN (Nearest Neighbor)
Как работает алгоритм KNN
knn(train test cl k = 1 l = 0 prob = FALSE useall = TRUE
Slide 20
Результаты кластеризации и зависимость ошибки от числа кластеро
Recursive PartitioningRegression Tree
Метод RP реализует обучение машины строить дерево решений по об
Recursive PartitioningRegression Tree (2)
rpart(formula data weights subset naaction = narpart met
Slide 26
Recursive PartitioningRegression Tree example
Анализ по главным компонентам (Principal Component Analysis PC
Итеративные алгоритмы с оптимальным разреженным кодированием IS
Самоорганизация данных методами Deep Learning
Знакомство с пакетом deepnet
Прогнозирование (классификация) нейронной сетью с архитектурой
Arguments
Архитектура сети SAE
Архитектура с 5Х4 hidden 3 outs
Example
Анализ обучающего набора данных
Параметры SAE сети
Коэффициенты связей
Предсказание обученной сетью
Сравнение обучающей и тестовой выборки
plot3d(xy)
Работаем с пакетом MNIST
httpyannlecuncomexdbmnist
Подготовка к обработке
Slide 118
Визуализация
plotmnist()
Распознавание рукописных цифр в deepnet
End of slides part 2 (Part 3 - NLP remaining)
knn(train test cl k = 1 l = 0 prob = FALSE useall = TRUE)
train matrix or data frame of training set cases
test matrix or data frame of test set cases A vector will be interpreted as a row vector for a single case
cl factor of true classifications of training set
k number of neighbours considered
l minimum vote for definite decision otherwise doubt (More precisely less than k-l dissenting votes are allowed even if k is increased by ties)
prob If this is true the proportion of the votes for the winning class are returned as attribute prob
useall controls handling of ties If true all distances equal to the kth largest are included If false a random selection of distances equal to the kth is chosen to use exactly k neighbours
Here we demonstrate the bias-variance tradeoff as we increase k
err lt- matrix(nrow=N100 ncol=2)for (i in 1nrow(err))
k lt- i 4test$predicted_class lt- knn(train[12] test[12] train$class k=k)mlt-cm(test$class test$predicted_class)err[i] lt- c(k 1 - sum(diag(m)) sum(m))
plot (err)
Результаты кластеризации и зависимость ошибки от числа кластеров
actualpredicted A B C A 272 0 7 B 1 308 1 C 31 0 280
gt m
Recursive PartitioningRegression Treebull Основано на дереве решений представляющем граф бинарной
последовательной классификации по тест-вопросам в каждой вершине графа Листья дерева ассоциируются с результатами классификации
Метод RP реализует обучение машины строить дерево решений по обучающей выборке данных
bull laquoРасщеплениеraquo обучающих данныхМножество данных в каждом узле разделяется на два соответствующих ответам TRUE или FALSE Вопросы должны порождать бинарное разбиение множества Для числовых характеристик это обычно неравенства характеристика Xn меньше или равна значению Ym
bull Конструирование тест-вопросовПринцип putity measurement ndash очищающих измерений Каждая характеристика анализируется статистически для каждого разбиения и выбирается наилучшее по чистоте разделенияbull Критерий остановкиЧтобы избежать переобучения используется либо порог чистоты либо максимальное число узлов либо минимальное число наблюдений в узле
Recursive PartitioningRegression Tree
Пример расщепления обучающей выборки
rpart(formula data weights subset naaction = narpart method model = FALSE x = FALSE y = TRUE parms control cost )
formula a formula with a response but no interaction terms If this a a data frome that is taken as the model frame (see modelframe)
data an optional data frame in which to interpret the variables named in the formula
weights optional case weights
subset optional expression saying that only a subset of the rows of the data should be used in the fit
naaction the default action deletes all observations for which y is missing but keeps those in which one or more predictors are missing method one of anova poisson class or exp If method is missing then the routine tries to make an intelligent guess If y is a survival object then method = exp is assumed if y has 2 columns then method = poisson is assumed if y is a factor then method = class is assumed otherwise method = anova is assumed It is wisest to specify the method directly especially as more criteria may added to the function in future Alternatively method can be a list of functions named init split and eval Examples are given in the file lsquotestsusersplitsRrsquo in the sources and in the vignettes lsquoUser Written Split Functionsrsquo
model if logical keep a copy of the model frame in the result If the input value for model is a model frame (likely from an earlier call to the rpart function) then this frame is used rather than constructing new data
x keep a copy of the x matrix in the result
y keep a copy of the dependent variable in the result If missing and model is supplied this defaults to FALSE
parms optional parameters for the splitting function Anova splitting has no parameters Poisson splitting has a single parameter the coefficient of variation of the prior distribution on the rates The default value is 1 Exponential splitting has the same parameter as Poisson For classification splitting the list can contain any of the vector of prior probabilities (component prior) the loss matrix (component loss) or the splitting index (component split) The priors must be positive and sum to 1 The loss matrix must have zeros on the diagonal and positive off-diagonal elements The splitting index can be gini or information The default priors are proportional to the data counts the losses default to 1 and the split defaults to gini
control a list of options that control details of the rpart algorithm See rpartcontrol
cost a vector of non-negative costs one for each variable in the model Defaults to one for all variables These are scalings to be applied when considering splits so the improvement on splitting on a variable is divided by its cost in deciding which split to choose arguments to rpartcontrol may also be specified in the call to rpart They are checked against the list of valid arguments
Recursive PartitioningRegression Tree example(r lt- rpart(class ~ x + y data = train))plot(r)text(r)
Here we look at the confusion matrix and overall error rate from applying the tree rules to the training datapredicted lt- asnumeric(apply(predict(r) 1 function(r) order(-r)[1]))(m lt- cm (train$class predicted))1 - sum(diag(m)) sum(m)
And by comparison against the test datapredicted lt- asnumeric(apply(predict(r test[12]) 1 function(r) order(-r)[1]))(m lt- cm (test$class predicted))1 - sum(diag(m)) sum(m)
Анализ по главным компонентам (Principal Component Analysis PCA)Известно четыре базовых версии методаbull аппроксимировать данные линейными многообразиями меньшей
размерностиbull найти подпространства меньшей размерности в ортогональной проекции
на которые разброс данных (то есть среднеквадратичное отклонение от среднего значения) максимален
bull найти подпространства меньшей размерности в ортогональной проекции на которые среднеквадратичное расстояние между точками максимально
bull для данной многомерной случайной величины построить такое ортогональное преобразование координат в результате которого корреляции между отдельными координатами обратятся в нуль
В основе задача наилучшей аппроксимации конечного множества точек прямыми и плоскостями (Пирсон 1901) Дано конечное множество векторов для каждого k=01hellipn-1 среди всех k-мерных линейных многообразий в Rn найти такое что сумма квадратов уклонений минимальна
bull Графическая иллюстрация метода главных компонент в 3D
Алгоритм
bull Централизация данных
bull Находим первую главную компоненту
bull Вычитаем проекцию на нее
bull Находим вторую главную компоненту
bull Вычитаем проекцию на (k-1) главную компоненту
bull Находим k-ую главную компоненту
bull Всегда выполняется условие ортогональности
princomp(formula data = NULL subset naaction )formula a formula with no response variable referring only to numeric variables
data an optional data frame (or similar see modelframe) containing the variables in the formula formula By default the variables are taken from environment(formula)
subset an optional vector used to select rows (observations) of the data matrix x
naaction a function which indicates what should happen when the data contain NAs The default is set by the naaction setting of options and is nafail if that is unset The lsquofactory-freshrsquo default is naomit
x a numeric matrix or data frame which provides the data for the principal components analysis
cor a logical value indicating whether the calculation should use the correlation matrix or the covariance matrix (The correlation matrix can only be used if there are no constant variables)
scores a logical value indicating whether the score on each principal component should be calculated
covmat a covariance matrix or a covariance list as returned by covwt (and covmve or covmcd from package MASS) If supplied this is used rather than the covariance matrix of x
arguments passed to or from other methods If x is a formula one might specify cor or scores
object Object of class inheriting from princomp
newdata An optional data frame or matrix in which to look for variables with which to predict If omitted the scores are used If the original fit used a formula or a data frame or a matrix with column names newdata must contain columns with the same names Otherwise it must contain the same number of columns to be used in the same order
Principal Component Analysis (PCA)plt-princomp(train[12])train_pca lt- dataframe(p$scores)train_pca$class lt- train$class
Compare the alignment of the clusters to the axis in the feature space versus the transformed space
r2 lt- rpart(class ~ Comp1 + Comp2 data = train_pca)
Линейный дискриминантный анализ (Linear Discriminant Analysis - LDA)bull Для каждого образца объекта или события с известным классом y
рассматривается набор наблюдений x (называемых ещё признаками переменными или измерениями) Набор таких образцов называется обучающей выборкой (или набором обучения обучением) Задачи классификации состоит в том чтобы построить хороший прогноз класса y для всякого так же распределённого объекта (не обязательно содержащегося в обучающей выборке) имея только наблюдения x Основная идея состоит в сравнении распределений для каждого из классов Расстоянием (по Фишеру) между распределениями принято считать отношение межклассовой дисперсии к внутриклассовой
bull Оптимальное байесовское решение - относить точки ко второму классу если отношение правдоподобия ниже некоторого порогового значения T
bull Предполагая что выполнена нормировка
bull Решение записывается в виде неравенства для скалярного произведения
bull Здесь laquoизмерительныйraquo вектор равен
bull с- дискриминантный порог
lda(x grouping prior = proportions tol = 10e-4 method CV = FALSE nu )
formula A formula of the form groups ~ x1 + x2 + That is the response is the grouping factor and the right hand side specifies the (non-factor) discriminators
data Data frame from which variables specified in formula are preferentially to be taken
x (required if no formula is given as the principal argument) a matrix or data frame or Matrix containing the explanatory variables
grouping (required if no formula principal argument is given) a factor specifying the class for each observation
prior the prior probabilities of class membership If unspecified the class proportions for the training set are used If present the probabilities should be specified in the order of the factor levels
tol A tolerance to decide if a matrix is singular it will reject variables and linear combinations of unit-variance variables whose variance is less than tol^2
subset An index vector specifying the cases to be used in the training sample (NOTE If given this argument must be named)
naaction A function to specify the action to be taken if NAs are found The default action is for the procedure to fail An alternative is naomit which leads to rejection of cases with missing values on any required variable (NOTE If given this argument must be named)
method moment for standard estimators of the mean and variance mle for MLEs mve to use covmve or t for robust estimates based on a t distribution
CV If true returns results (classes and posterior probabilities) for leave-one-out cross-validation Note that if the prior is estimated the proportions in the whole dataset are used
nu degrees of freedom for method = t
arguments passed to or from other methods
prior the prior probabilities usedmeans the group meansscaling a matrix which transforms observations to
discriminant functions normalized so that within groups covariance matrix is spherical
svd the singular values which give the ratio of the between- and within-group standard deviations on the linear discriminant variables Their squares are the canonical F-statistics
N The number of observations usedcall The (matched) function call
An object of class lda containing the following components
Метод опорных векторов (Support Vector Machines - SVM)Относится к ML с учителем и использует линейные разделяющие поверхности
Идея алгоритма
bull По обучающей выборке
bull Строится классифицирующая функция
bull Используя гиперплоскость
bull Поиск коэффициентов сводится к максимизации
расстояний от опорных векторов или минимизации
Иллюстрация на простейшем примере
>
Производится вложение обучающей выборки в пространство более высокой размерности Х с помощью нелинейной функции так чтобы обеспечит линейную разделимость в Х
Разделяющая функция тогда имеет вид
Функция называется ядром
Полиномиальное ядро
Радиальная базисная функция
Сигмоид
Линейная неразделимость и использование ядер
Иллюстрация использования ядра для отображения 2D -gt 3D
>
svm((formula data = NULL subset naaction =naomit scale = TRUE))
formulaa symbolic description of the model to be fitdataan optional data frame containing the variables in the model By default the variables are taken from the environment which lsquosvmrsquo is called fromxa data matrix a vector or a sparse matrix (object of class Matrix provided by the Matrix package or of class matrixcsr provided by the SparseM package or of class simple_triplet_matrix provided by the slam package)ya response vector with one label for each rowcomponent of x Can be either a factor (for classification tasks) or a numeric vector (for regression)scaleA logical vector indicating the variables to be scaled If scale is of length 1 the value is recycled as many times as needed Per default data are scaled internally (both x and y variables) to zero mean and unit variance The center and scale values are returned and used for later predictionstypesvm can be used as a classification machine as a regression machine or for novelty detection Depending of whether y is a factor or not the default setting for type is C-classification or eps-regression respectively but may be overwritten by setting an explicit valueValid options areC-classificationnu-classificationone-classification (for novelty detection)eps-regressionnu-regression
Support Vector Machines
s lt- svm( I(factor(class)) ~ x + y data = train cost = 100 gama = 1)
Package lsquodeepnetrsquo February 19 2015 Type Package Title deep learning toolkit in R Version 02 Date 2014-03-20 Author Xiao Rong Maintainer Xiao Rong Description Implement some deep learning architectures and neural network algorithms including BPRBMDBNDeep autoencoder and so on License GPL NeedsCompilation no Repository CRAN DatePublication 2014-03-20 100343
laquoВ 1997 году Deep Blue обыграл в шахматы КаспароваВ 2011 Watson обставил чемпионов JeopardyСможет ли ваш алгоритм в 2013 году отличить Бобика от ПушистикаraquoKaggle Competitions Details
Сегодня уже можно ответить laquoдаraquo mdash десятка лидеров справилась с заданием на 988
Распознавание основано на feature detection и последующем различении комбинаций
Заранее неизвестно какие части картинки могут использоваться как хорошие features В их роли может выступать все что угодно mdash фрагменты изображения форма размер или цвет Feature может не присутствовать на картинке сама а выражаться в параметре полученным каким-то образом из исходных данных
Распознавание рукописных цифр
Еще пример посложнее
Использование нейронной сети с обучениемОбучение такой нейронной сети производится обычно методом обратного распространения ошибки таким образом чтобы минимизировать среднеквадратическую ошибку отклика сети на обучающей выборке Таким образом обучающая выборка содержит пары векторов признаков (входные данные) и эталонных векторов (маркированные данные) (x y)
Сверхвысокая размерность при работе с первичным представлением пикселями
Пиксельное кодирование
Принцип иерархии понятий ndash основа deep learning
bull Все вещи состоят из других маленьких и более элементарных вещей
bull Как извлекать features Гипотеза малоразмерных многообразий
Разреженное (sparse) кодирование
первый уровень иерархии состоит из элементов словаря этого кода которые представляют собой штрихи и границы
Словарь для лиц
Выделение объектов заданного класса
Основные архитектуры Deep Learningbull Deep neural networks (DNN)bull Deep belief networks (DBN)bull Convolutional neural networks (CNN)bull Deep Boltzmann Machines (DBM)bull Stacked (Denoising) Auto-Encodersbull Deep Stacking Networksbull Tensor Deep Stacking Networks (T-DSN)bull Spike-and-Slab RBMs (ssRBMs)bull Compound Hierarchical-Deep Modelsbull Deep Coding Networks (DPCN)bull Deep Kernel Machinesbull Deep Q-Networks (2015 г)
Задача классификации распознавания и подобные являются задачей конструирования функции на множестве входных наборов и со значениями в множестве требуемого вида выходных
bull Норбертом Винером было показано что любая функция может быть сколь угодно точно композицией двух (он использовал функции полином Лагранжа и функцию Лагерра)
bull Соответствует двухслойной нейросетиbull Архитектуры Deep Learning соответствуют представлению
bull Обеспечивают эффективную параметризацию при решении конкретных задач Более сложные функции создаются из большего числа но более эффективно настраиваемых laquoкирпичиковraquo Пример ndash синтез булевых функций Дерево вентилей эффективнее двухслойной схемы
Фактор - графыВсе методы которые расмотрели ndash не DL Даже деревья классификации Все операции в одном входном словаре
DL можно определить по фактор-графу
Например
bull Еще одна сторона DL - нередко использует невыпуклые функции потерьbull Обучение на основе выпуклых функций не зависит от порядка
предъявления данных для обучения Все определяет асимптотика всего train - набора В алгоритмах DL порядок данных в обучающей выборке может иметь значение
bull Многие решения в DL не доказаны математически и являются успешными эвристиками
bull Большой простор для прикладной математики Может рассматриваться как фактор-граф с группами латентных переменных
bull В настоящее время стал основной технологией в распознавании речи (speech recognition) и машинном зрении (computer vision) начал применяться в обработке текстов (natural language processing)
bull Основная идея ndash применение нелинейного отображения входного набора в более высокоразмерное пространство где многие неразделимые композиции становятся разделимыми а затем объединение композиций по семантической близости
Подход разреженного кодирования
Обобщенная архитектура
bull DL сеть может быть собрана каскадированием и использованием обучения с учителем
Здесь используется forward propagation для обучения
Для настройки коэффициентов используется метод fprof для каждого
Требуется знание градиента энергии
Элементы (kl) матрицы Якобиана
Требуется знание градиента энергии 120597119864120597119882119894 = 120597119864120597119883119894120597119865119894(119883119894minus1119882119894)120597119882119894
ሾ1times 119873119908ሿ= ሾ1times 119873119909ሿlowast[119873119909 times 119873119908] Элементы (kl) матрицы Якобиана
Сводится к рекуррентному соотношению для вычисления градиента 120597119864120597119883119894minus1 = 120597119864120597119883119894120597119865119894(119883119894minus1119882119894)120597119883119894minus1
В итоге
Для вычисления градиента может использоваться метод back propagation
В действительности работают любые архитектуры построения функции Нужно конструировать связи и функции блоков
Язык Torch 7 ndash современный инструмент моделирования и имплементации
Machine Learning with Torch7 (httpcodecogbitscomwikidokuphpid=start)
bull These tutorials were originally designed for the IPAM Summer School on Deep Learning more info herebull This wiki provides multiple tutorials with the overall objective of teaching you how to do machine learning
with Torch7bull Torch7 provides a Matlab-like environment for state-of-the-art machine learning algorithms It is easy to use
and provides a very efficient implementation thanks to an easy and fast scripting language (LuaJIT) and an underlying C implementation
bull These tutorials should be readdone in orderbull Tutorial 1 Setup Basics Getting Startedbull Tutorial 2 Supervised Learningbull Tutorial 3 Unsupervised Learningbull Tutorial 4 Graphical Modelsbull Tutorial 5 Creating New Modulesbull Tutorial 6 Using CUDAbull To follow these tutorials and do the exercises you will need to download the associated code which is hosted
on GitHub on this page In this repository each directory corresponds to a tutorial herebull starttxt middot Last modified 20140204 2246 by clement
Torch 7 является расширением Lua
What is LuaLua is a powerful fast lightweight embeddable scripting languageLua combines simple procedural syntax with powerful data description constructs based on associative arrays and extensible semantics Lua is dynamically typed runs by interpreting bytecode for a register-based virtual machine and has automatic memory management with incremental garbage collection making it ideal for configuration scripting and rapid prototyping
Why choose LuaLua is a proven robust languageLua has been used in many industrial applications (eg Adobes Photoshop Lightroom) with an emphasis on embedded systems (eg the Ginga middleware for digital TV in Brazil) and games (eg World of Warcraft and Angry Birds) Lua is currently the leading scripting language in games Lua has a solid reference manual and there are several books about it Several versions of Lua have been released and used in real applications since its creation in 1993 Lua featured in HOPL III the Third ACM SIGPLAN History of Programming Languages Conference in June 2007 Lua won the Front Line Award 2011 from the Game Developers Magazine
Свертка и архитектура 4-х уровневой сверточной сети
Функциональная структура
Примеры успешного применения сверточных сетей
Диагностика эпилепсии по ЭЭГ
Реализация сверточной сетью
Одна из самых больших сверточных сетейbull Krizhevsky Sutskever Hinton 2012bull 650 000 нейронов 832 000 000 синапсов 60 000000 пареметровbull Использовался backprop на GPUbull Обучающая выборка на материалах 20 летbull Купил Google в январе 2013bull В мае 2013 развернул как сервис Photo Tagging Google+
Пример тэгирования
Пример поиска похожих по изображению
Пример поиска в коллекции изображений по текстовому запросу
Пример laquoоблачногоraquo классификатора изображений
Самообучающиеся нейронные сети на основе минимизации функции энергииbull Применима к сетям с обратными связямиbull Конструирование функции энергии должно обеспечивать
laquoконтрастностьraquo разделения
bull Энергетическая функция может Неформально рассматриваться как отрицательный логарифм плотности вероятности
Y 2=(Y1)2
RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцмана
bull Из DBM cтроится Deep Belief Network (DBN)
bull w mdash вес между нейронами
bull b mdash смещение нейрона
bull s mdash состояние нейрона
Алгоритм обучения Contrastive Divergence (CD)bull w_ij mdash веc между i-ым нейроном Вероятность пар может быть представлена как
bull a_i mdash смещение видимого нейрона
bull b_j mdash смещение скрытого нейрона
bull v_i mdash состояние видимого нейрона
bull h_j mdash состояние скрытого нейрона Полная вероятность состояния видимых нейронов
Основные уравнения адаптации
Алгоритм Хинтона - Contrastive Divergence (CD-k)
1 состояние видимых нейронов приравнивается к входному образу2 выводятся вероятности состояний скрытого слоя3 каждому нейрону скрытого слоя ставится в соответствие состояние laquo1raquo с вероятностью равной его текущему состоянию4 выводятся вероятности видимого слоя на основании скрытого5 если текущая итерация меньше k то возврат к шагу 26 выводятся вероятности состояний скрытого слоя
darch Package for deep architectures and Restricted-Bolzmann-MachinesThe darch package is build on the basis of the code from G E Hinton and R R Salakhutdinov (available under Matlab Code for deep belief nets last visit 01082013) This package is for generating neural networks with many layers (deep architectures) and train them with the method introduced by the publications A fast learning algorithm for deep belief nets (G E Hinton S Osindero Y W Teh) and Reducing the dimensionality of data with neural networks (G E Hinton R R Salakhutdinov) This method includes a pre training with the contrastive divergence method publishing by GE Hinton (2002) and a fine tuning with common known training algorithms like backpropagation or conjugate gradient
bull Version 091bull Imports futilelogger ff methodsbull Published 2014-03-16bull Author Martin Dreesbull Maintainer Martin Drees ltmdrees at studfh-dortmunddegtbull License GPL-2bull URL httpgithubcommaddin79darchbull NeedsCompilation nobull Materials READMEbull CRAN checks darch results
Связь плотности вероятности и энергии
Используется распределение Гиббса
Задача обучения с точки минимизации энергии сети
bull Сконструировать функцию энергии с малыми значениями на обучающей выборке и с большими значениями всюду вне этого множества
bull Первое несложно а второе представляет задачу процесса обучения
Интуитивные соображения
Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decomposition LISTA ndashметоды использующие разреженные коды
Латентная переменная Z =argmin_z Distance[Decoder(Z)Y]+FactorB(Z)MAPminimaize sum of factors
Автоэнкодер (auto encoder) Автоэнкодер представляет собой алгоритм обучения без учителя который использует нейронную сеть и метод обратного распространения ошибки для того чтобы добиться того что входной вектор признаков вызывал отклик сети равный входному вектору те y = x Автоэнкодер пытается построить функцию h(x) = x
Архитекттура ICA моделей
Итеративные алгоритмы с оптимальным разреженным кодированием ISTAFISTA
Самоорганизация данных методами Deep Learning
>
Знакомство с пакетом deepnet
Назначение
Составdbndnntrain - обучение сети с архитектурой DBN (deep belief network)loadmnist - формирование данных из файлов MNISTnnpredict - предсказание новых выборок на обученной нейронной сетиnntest ndash тестирование обученной нейронной сети с возвращением значения ошибкиnntrain ndash обучение одностлойной или многослойной нейронной сети методом backproprbmdown ndash генерирование видимого вектора для скрытых состояний сети RBMrbmtrain ndash обучение сети RBMrbmup ndash извлечение скрытых состояний RBM по известным видимым состояниямsaednntrain ndash обучение нейронной сети с архитектурой stacked autoencoder
Прогнозирование (классификация) нейронной сетью с архитектурой stacked auto encoder
Argumentsbull x matrix of x values for examplesbull y vector or matrix of target values for examplesbull hidden vector for number of units of hidden layersDefault is c(10)bull activationfun activation function of hidden unitCan be sigmlinear or tanhDefault isbull sigm for logistic functionbull learningrate learning rate for gradient descent Default is 08bull momentum momentum for gradient descent Default is 05 bull learningrate_scalebull learning rate will be mutiplied by this scale after every iteration Default is 1 bull numepochs number of iteration for samples Default is 3bull batchsize size of mini-batch Default is 100bull output function of output unit can be sigmlinear or softmax Default is sigmbull sae_output function of autoencoder output unit can be sigmlinear or softmax Defaultbull is linearbull hidden_dropout drop out fraction for hidden layer Default is 0bull visible_dropoutbull drop out fraction for input layer Default is 0
Что такое MNISTbull Смешанный набор данных Национального института стандартов и
технологий (mixed National Institute of Standards and Technology MNIST) был создан исследователями IR в качестве эталона для сравнения различных алгоритмов IR
bull Набор данных состоит всего из 70 000 изображений 60 000 обучающих (используемых для создания модели IR) и 10 000 тестовых (применяемых для оценки точности модели) Каждое изображение MNIST mdash это оцифрованная картинка одной цифры написанной от руки Каждое изображение имеет размер 28 times 28 пикселей Каждое значение пикселя лежит в диапазоне от 0 (представляет белый цвет) до 255 (представляет черный цвет) Промежуточные значения отражают оттенки серого
httpyannlecuncomexdbmnistобучающие и тестовые данные хранятся в двух файлах а не в одном Один файл содержит значения пикселей для изображений а другой mdash метки изображений (0ndash9) Каждый из четырех файлов также содержит заголовочную информацию и все они хранятся в двоичном формате сжатом в формате gziptrain-images-idx3-ubytegz training set images (9912422 bytes)
train-labels-idx1-ubytegz training set labels (28881 bytes)
t10k-images-idx3-ubytegz test set images (1648877 bytes)
t10k-labels-idx1-ubytegz test set labels (4542 bytes)
bull Каждая строка файла представляет собой имидж размера 28 times 28 вектором длины 784 каждый признак ndash значение пиксела в черно-белой шале Первый столбец содержит метку цифры 0ndash9 следующие 2828 столбцов представляют целый имидж и так далее Пример первой строки
Визуализация
bull plotmnist()bull mnistbull paramsbull train$n number of train samplesbull train$x pix of every train sample imagebull train$y label of every train sample imagebull train$yy one-of-c vector of label of train sample imagebull test$n number of test samplesbull test$x pix of every test sample imagebull test$y label of every test sample imagebull test$yy one-of-c vector of label of test sample image
plotmnist()
Распознавание рукописных цифр в deepnet
another way to download the MNIST datasetmnist downloadmnist(range=c(01)global=FALSE)look at MNIST datamnist$train$xmnist$train$ymnist$test$xmnist$test$ytrain of the sae neural networkdnnlt-saednntrain(mnist$train$xmnist$train$yhidden=c(55))test of the sae neural networknntest(dnnmnist$test$xmnist$test$yt=05)
End of slides part 2 (Part 3 - NLP remaining)
Vladimirvkrylovgmailcom
Основы предиктивной аналитики Часть вторая
Применение методов Machine Learning к решению задач аналитики
Дмитрий Ветров кандидат физико-математических наук ру
Методы обучающихся машин для аналитики которые мы рассмотрим
Сначала нужно загрузить несколько пакетов (packages) для поддер
Данные для анализа
Скрипт для генерации
Данные которые мы будем использовать для демо состоят из смес
Так выглядят визуализированные данные сгенерированные скриптом
Разделение данных на обучающие и проверочные является важным эт
K-means алгоритм на пальцах
Обучающаяся машина без учителя Алгоритм K-means
Slide 13
Slide 14
Здесь мы используем заранее известный факт что необходимо кла
Еще одна иллюстрация работы алгоритма K-means
Обучающаяся машина без учителя Алгоритм KNN (Nearest Neighbor)
Как работает алгоритм KNN
knn(train test cl k = 1 l = 0 prob = FALSE useall = TRUE
Slide 20
Результаты кластеризации и зависимость ошибки от числа кластеро
Recursive PartitioningRegression Tree
Метод RP реализует обучение машины строить дерево решений по об
Recursive PartitioningRegression Tree (2)
rpart(formula data weights subset naaction = narpart met
Slide 26
Recursive PartitioningRegression Tree example
Анализ по главным компонентам (Principal Component Analysis PC
Here we demonstrate the bias-variance tradeoff as we increase k
err lt- matrix(nrow=N100 ncol=2)for (i in 1nrow(err))
k lt- i 4test$predicted_class lt- knn(train[12] test[12] train$class k=k)mlt-cm(test$class test$predicted_class)err[i] lt- c(k 1 - sum(diag(m)) sum(m))
plot (err)
Результаты кластеризации и зависимость ошибки от числа кластеров
actualpredicted A B C A 272 0 7 B 1 308 1 C 31 0 280
gt m
Recursive PartitioningRegression Treebull Основано на дереве решений представляющем граф бинарной
последовательной классификации по тест-вопросам в каждой вершине графа Листья дерева ассоциируются с результатами классификации
Метод RP реализует обучение машины строить дерево решений по обучающей выборке данных
bull laquoРасщеплениеraquo обучающих данныхМножество данных в каждом узле разделяется на два соответствующих ответам TRUE или FALSE Вопросы должны порождать бинарное разбиение множества Для числовых характеристик это обычно неравенства характеристика Xn меньше или равна значению Ym
bull Конструирование тест-вопросовПринцип putity measurement ndash очищающих измерений Каждая характеристика анализируется статистически для каждого разбиения и выбирается наилучшее по чистоте разделенияbull Критерий остановкиЧтобы избежать переобучения используется либо порог чистоты либо максимальное число узлов либо минимальное число наблюдений в узле
Recursive PartitioningRegression Tree
Пример расщепления обучающей выборки
rpart(formula data weights subset naaction = narpart method model = FALSE x = FALSE y = TRUE parms control cost )
formula a formula with a response but no interaction terms If this a a data frome that is taken as the model frame (see modelframe)
data an optional data frame in which to interpret the variables named in the formula
weights optional case weights
subset optional expression saying that only a subset of the rows of the data should be used in the fit
naaction the default action deletes all observations for which y is missing but keeps those in which one or more predictors are missing method one of anova poisson class or exp If method is missing then the routine tries to make an intelligent guess If y is a survival object then method = exp is assumed if y has 2 columns then method = poisson is assumed if y is a factor then method = class is assumed otherwise method = anova is assumed It is wisest to specify the method directly especially as more criteria may added to the function in future Alternatively method can be a list of functions named init split and eval Examples are given in the file lsquotestsusersplitsRrsquo in the sources and in the vignettes lsquoUser Written Split Functionsrsquo
model if logical keep a copy of the model frame in the result If the input value for model is a model frame (likely from an earlier call to the rpart function) then this frame is used rather than constructing new data
x keep a copy of the x matrix in the result
y keep a copy of the dependent variable in the result If missing and model is supplied this defaults to FALSE
parms optional parameters for the splitting function Anova splitting has no parameters Poisson splitting has a single parameter the coefficient of variation of the prior distribution on the rates The default value is 1 Exponential splitting has the same parameter as Poisson For classification splitting the list can contain any of the vector of prior probabilities (component prior) the loss matrix (component loss) or the splitting index (component split) The priors must be positive and sum to 1 The loss matrix must have zeros on the diagonal and positive off-diagonal elements The splitting index can be gini or information The default priors are proportional to the data counts the losses default to 1 and the split defaults to gini
control a list of options that control details of the rpart algorithm See rpartcontrol
cost a vector of non-negative costs one for each variable in the model Defaults to one for all variables These are scalings to be applied when considering splits so the improvement on splitting on a variable is divided by its cost in deciding which split to choose arguments to rpartcontrol may also be specified in the call to rpart They are checked against the list of valid arguments
Recursive PartitioningRegression Tree example(r lt- rpart(class ~ x + y data = train))plot(r)text(r)
Here we look at the confusion matrix and overall error rate from applying the tree rules to the training datapredicted lt- asnumeric(apply(predict(r) 1 function(r) order(-r)[1]))(m lt- cm (train$class predicted))1 - sum(diag(m)) sum(m)
And by comparison against the test datapredicted lt- asnumeric(apply(predict(r test[12]) 1 function(r) order(-r)[1]))(m lt- cm (test$class predicted))1 - sum(diag(m)) sum(m)
Анализ по главным компонентам (Principal Component Analysis PCA)Известно четыре базовых версии методаbull аппроксимировать данные линейными многообразиями меньшей
размерностиbull найти подпространства меньшей размерности в ортогональной проекции
на которые разброс данных (то есть среднеквадратичное отклонение от среднего значения) максимален
bull найти подпространства меньшей размерности в ортогональной проекции на которые среднеквадратичное расстояние между точками максимально
bull для данной многомерной случайной величины построить такое ортогональное преобразование координат в результате которого корреляции между отдельными координатами обратятся в нуль
В основе задача наилучшей аппроксимации конечного множества точек прямыми и плоскостями (Пирсон 1901) Дано конечное множество векторов для каждого k=01hellipn-1 среди всех k-мерных линейных многообразий в Rn найти такое что сумма квадратов уклонений минимальна
bull Графическая иллюстрация метода главных компонент в 3D
Алгоритм
bull Централизация данных
bull Находим первую главную компоненту
bull Вычитаем проекцию на нее
bull Находим вторую главную компоненту
bull Вычитаем проекцию на (k-1) главную компоненту
bull Находим k-ую главную компоненту
bull Всегда выполняется условие ортогональности
princomp(formula data = NULL subset naaction )formula a formula with no response variable referring only to numeric variables
data an optional data frame (or similar see modelframe) containing the variables in the formula formula By default the variables are taken from environment(formula)
subset an optional vector used to select rows (observations) of the data matrix x
naaction a function which indicates what should happen when the data contain NAs The default is set by the naaction setting of options and is nafail if that is unset The lsquofactory-freshrsquo default is naomit
x a numeric matrix or data frame which provides the data for the principal components analysis
cor a logical value indicating whether the calculation should use the correlation matrix or the covariance matrix (The correlation matrix can only be used if there are no constant variables)
scores a logical value indicating whether the score on each principal component should be calculated
covmat a covariance matrix or a covariance list as returned by covwt (and covmve or covmcd from package MASS) If supplied this is used rather than the covariance matrix of x
arguments passed to or from other methods If x is a formula one might specify cor or scores
object Object of class inheriting from princomp
newdata An optional data frame or matrix in which to look for variables with which to predict If omitted the scores are used If the original fit used a formula or a data frame or a matrix with column names newdata must contain columns with the same names Otherwise it must contain the same number of columns to be used in the same order
Principal Component Analysis (PCA)plt-princomp(train[12])train_pca lt- dataframe(p$scores)train_pca$class lt- train$class
Compare the alignment of the clusters to the axis in the feature space versus the transformed space
r2 lt- rpart(class ~ Comp1 + Comp2 data = train_pca)
Линейный дискриминантный анализ (Linear Discriminant Analysis - LDA)bull Для каждого образца объекта или события с известным классом y
рассматривается набор наблюдений x (называемых ещё признаками переменными или измерениями) Набор таких образцов называется обучающей выборкой (или набором обучения обучением) Задачи классификации состоит в том чтобы построить хороший прогноз класса y для всякого так же распределённого объекта (не обязательно содержащегося в обучающей выборке) имея только наблюдения x Основная идея состоит в сравнении распределений для каждого из классов Расстоянием (по Фишеру) между распределениями принято считать отношение межклассовой дисперсии к внутриклассовой
bull Оптимальное байесовское решение - относить точки ко второму классу если отношение правдоподобия ниже некоторого порогового значения T
bull Предполагая что выполнена нормировка
bull Решение записывается в виде неравенства для скалярного произведения
bull Здесь laquoизмерительныйraquo вектор равен
bull с- дискриминантный порог
lda(x grouping prior = proportions tol = 10e-4 method CV = FALSE nu )
formula A formula of the form groups ~ x1 + x2 + That is the response is the grouping factor and the right hand side specifies the (non-factor) discriminators
data Data frame from which variables specified in formula are preferentially to be taken
x (required if no formula is given as the principal argument) a matrix or data frame or Matrix containing the explanatory variables
grouping (required if no formula principal argument is given) a factor specifying the class for each observation
prior the prior probabilities of class membership If unspecified the class proportions for the training set are used If present the probabilities should be specified in the order of the factor levels
tol A tolerance to decide if a matrix is singular it will reject variables and linear combinations of unit-variance variables whose variance is less than tol^2
subset An index vector specifying the cases to be used in the training sample (NOTE If given this argument must be named)
naaction A function to specify the action to be taken if NAs are found The default action is for the procedure to fail An alternative is naomit which leads to rejection of cases with missing values on any required variable (NOTE If given this argument must be named)
method moment for standard estimators of the mean and variance mle for MLEs mve to use covmve or t for robust estimates based on a t distribution
CV If true returns results (classes and posterior probabilities) for leave-one-out cross-validation Note that if the prior is estimated the proportions in the whole dataset are used
nu degrees of freedom for method = t
arguments passed to or from other methods
prior the prior probabilities usedmeans the group meansscaling a matrix which transforms observations to
discriminant functions normalized so that within groups covariance matrix is spherical
svd the singular values which give the ratio of the between- and within-group standard deviations on the linear discriminant variables Their squares are the canonical F-statistics
N The number of observations usedcall The (matched) function call
An object of class lda containing the following components
Метод опорных векторов (Support Vector Machines - SVM)Относится к ML с учителем и использует линейные разделяющие поверхности
Идея алгоритма
bull По обучающей выборке
bull Строится классифицирующая функция
bull Используя гиперплоскость
bull Поиск коэффициентов сводится к максимизации
расстояний от опорных векторов или минимизации
Иллюстрация на простейшем примере
>
Производится вложение обучающей выборки в пространство более высокой размерности Х с помощью нелинейной функции так чтобы обеспечит линейную разделимость в Х
Разделяющая функция тогда имеет вид
Функция называется ядром
Полиномиальное ядро
Радиальная базисная функция
Сигмоид
Линейная неразделимость и использование ядер
Иллюстрация использования ядра для отображения 2D -gt 3D
>
svm((formula data = NULL subset naaction =naomit scale = TRUE))
formulaa symbolic description of the model to be fitdataan optional data frame containing the variables in the model By default the variables are taken from the environment which lsquosvmrsquo is called fromxa data matrix a vector or a sparse matrix (object of class Matrix provided by the Matrix package or of class matrixcsr provided by the SparseM package or of class simple_triplet_matrix provided by the slam package)ya response vector with one label for each rowcomponent of x Can be either a factor (for classification tasks) or a numeric vector (for regression)scaleA logical vector indicating the variables to be scaled If scale is of length 1 the value is recycled as many times as needed Per default data are scaled internally (both x and y variables) to zero mean and unit variance The center and scale values are returned and used for later predictionstypesvm can be used as a classification machine as a regression machine or for novelty detection Depending of whether y is a factor or not the default setting for type is C-classification or eps-regression respectively but may be overwritten by setting an explicit valueValid options areC-classificationnu-classificationone-classification (for novelty detection)eps-regressionnu-regression
Support Vector Machines
s lt- svm( I(factor(class)) ~ x + y data = train cost = 100 gama = 1)
Package lsquodeepnetrsquo February 19 2015 Type Package Title deep learning toolkit in R Version 02 Date 2014-03-20 Author Xiao Rong Maintainer Xiao Rong Description Implement some deep learning architectures and neural network algorithms including BPRBMDBNDeep autoencoder and so on License GPL NeedsCompilation no Repository CRAN DatePublication 2014-03-20 100343
laquoВ 1997 году Deep Blue обыграл в шахматы КаспароваВ 2011 Watson обставил чемпионов JeopardyСможет ли ваш алгоритм в 2013 году отличить Бобика от ПушистикаraquoKaggle Competitions Details
Сегодня уже можно ответить laquoдаraquo mdash десятка лидеров справилась с заданием на 988
Распознавание основано на feature detection и последующем различении комбинаций
Заранее неизвестно какие части картинки могут использоваться как хорошие features В их роли может выступать все что угодно mdash фрагменты изображения форма размер или цвет Feature может не присутствовать на картинке сама а выражаться в параметре полученным каким-то образом из исходных данных
Распознавание рукописных цифр
Еще пример посложнее
Использование нейронной сети с обучениемОбучение такой нейронной сети производится обычно методом обратного распространения ошибки таким образом чтобы минимизировать среднеквадратическую ошибку отклика сети на обучающей выборке Таким образом обучающая выборка содержит пары векторов признаков (входные данные) и эталонных векторов (маркированные данные) (x y)
Сверхвысокая размерность при работе с первичным представлением пикселями
Пиксельное кодирование
Принцип иерархии понятий ndash основа deep learning
bull Все вещи состоят из других маленьких и более элементарных вещей
bull Как извлекать features Гипотеза малоразмерных многообразий
Разреженное (sparse) кодирование
первый уровень иерархии состоит из элементов словаря этого кода которые представляют собой штрихи и границы
Словарь для лиц
Выделение объектов заданного класса
Основные архитектуры Deep Learningbull Deep neural networks (DNN)bull Deep belief networks (DBN)bull Convolutional neural networks (CNN)bull Deep Boltzmann Machines (DBM)bull Stacked (Denoising) Auto-Encodersbull Deep Stacking Networksbull Tensor Deep Stacking Networks (T-DSN)bull Spike-and-Slab RBMs (ssRBMs)bull Compound Hierarchical-Deep Modelsbull Deep Coding Networks (DPCN)bull Deep Kernel Machinesbull Deep Q-Networks (2015 г)
Задача классификации распознавания и подобные являются задачей конструирования функции на множестве входных наборов и со значениями в множестве требуемого вида выходных
bull Норбертом Винером было показано что любая функция может быть сколь угодно точно композицией двух (он использовал функции полином Лагранжа и функцию Лагерра)
bull Соответствует двухслойной нейросетиbull Архитектуры Deep Learning соответствуют представлению
bull Обеспечивают эффективную параметризацию при решении конкретных задач Более сложные функции создаются из большего числа но более эффективно настраиваемых laquoкирпичиковraquo Пример ndash синтез булевых функций Дерево вентилей эффективнее двухслойной схемы
Фактор - графыВсе методы которые расмотрели ndash не DL Даже деревья классификации Все операции в одном входном словаре
DL можно определить по фактор-графу
Например
bull Еще одна сторона DL - нередко использует невыпуклые функции потерьbull Обучение на основе выпуклых функций не зависит от порядка
предъявления данных для обучения Все определяет асимптотика всего train - набора В алгоритмах DL порядок данных в обучающей выборке может иметь значение
bull Многие решения в DL не доказаны математически и являются успешными эвристиками
bull Большой простор для прикладной математики Может рассматриваться как фактор-граф с группами латентных переменных
bull В настоящее время стал основной технологией в распознавании речи (speech recognition) и машинном зрении (computer vision) начал применяться в обработке текстов (natural language processing)
bull Основная идея ndash применение нелинейного отображения входного набора в более высокоразмерное пространство где многие неразделимые композиции становятся разделимыми а затем объединение композиций по семантической близости
Подход разреженного кодирования
Обобщенная архитектура
bull DL сеть может быть собрана каскадированием и использованием обучения с учителем
Здесь используется forward propagation для обучения
Для настройки коэффициентов используется метод fprof для каждого
Требуется знание градиента энергии
Элементы (kl) матрицы Якобиана
Требуется знание градиента энергии 120597119864120597119882119894 = 120597119864120597119883119894120597119865119894(119883119894minus1119882119894)120597119882119894
ሾ1times 119873119908ሿ= ሾ1times 119873119909ሿlowast[119873119909 times 119873119908] Элементы (kl) матрицы Якобиана
Сводится к рекуррентному соотношению для вычисления градиента 120597119864120597119883119894minus1 = 120597119864120597119883119894120597119865119894(119883119894minus1119882119894)120597119883119894minus1
В итоге
Для вычисления градиента может использоваться метод back propagation
В действительности работают любые архитектуры построения функции Нужно конструировать связи и функции блоков
Язык Torch 7 ndash современный инструмент моделирования и имплементации
Machine Learning with Torch7 (httpcodecogbitscomwikidokuphpid=start)
bull These tutorials were originally designed for the IPAM Summer School on Deep Learning more info herebull This wiki provides multiple tutorials with the overall objective of teaching you how to do machine learning
with Torch7bull Torch7 provides a Matlab-like environment for state-of-the-art machine learning algorithms It is easy to use
and provides a very efficient implementation thanks to an easy and fast scripting language (LuaJIT) and an underlying C implementation
bull These tutorials should be readdone in orderbull Tutorial 1 Setup Basics Getting Startedbull Tutorial 2 Supervised Learningbull Tutorial 3 Unsupervised Learningbull Tutorial 4 Graphical Modelsbull Tutorial 5 Creating New Modulesbull Tutorial 6 Using CUDAbull To follow these tutorials and do the exercises you will need to download the associated code which is hosted
on GitHub on this page In this repository each directory corresponds to a tutorial herebull starttxt middot Last modified 20140204 2246 by clement
Torch 7 является расширением Lua
What is LuaLua is a powerful fast lightweight embeddable scripting languageLua combines simple procedural syntax with powerful data description constructs based on associative arrays and extensible semantics Lua is dynamically typed runs by interpreting bytecode for a register-based virtual machine and has automatic memory management with incremental garbage collection making it ideal for configuration scripting and rapid prototyping
Why choose LuaLua is a proven robust languageLua has been used in many industrial applications (eg Adobes Photoshop Lightroom) with an emphasis on embedded systems (eg the Ginga middleware for digital TV in Brazil) and games (eg World of Warcraft and Angry Birds) Lua is currently the leading scripting language in games Lua has a solid reference manual and there are several books about it Several versions of Lua have been released and used in real applications since its creation in 1993 Lua featured in HOPL III the Third ACM SIGPLAN History of Programming Languages Conference in June 2007 Lua won the Front Line Award 2011 from the Game Developers Magazine
Свертка и архитектура 4-х уровневой сверточной сети
Функциональная структура
Примеры успешного применения сверточных сетей
Диагностика эпилепсии по ЭЭГ
Реализация сверточной сетью
Одна из самых больших сверточных сетейbull Krizhevsky Sutskever Hinton 2012bull 650 000 нейронов 832 000 000 синапсов 60 000000 пареметровbull Использовался backprop на GPUbull Обучающая выборка на материалах 20 летbull Купил Google в январе 2013bull В мае 2013 развернул как сервис Photo Tagging Google+
Пример тэгирования
Пример поиска похожих по изображению
Пример поиска в коллекции изображений по текстовому запросу
Пример laquoоблачногоraquo классификатора изображений
Самообучающиеся нейронные сети на основе минимизации функции энергииbull Применима к сетям с обратными связямиbull Конструирование функции энергии должно обеспечивать
laquoконтрастностьraquo разделения
bull Энергетическая функция может Неформально рассматриваться как отрицательный логарифм плотности вероятности
Y 2=(Y1)2
RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцмана
bull Из DBM cтроится Deep Belief Network (DBN)
bull w mdash вес между нейронами
bull b mdash смещение нейрона
bull s mdash состояние нейрона
Алгоритм обучения Contrastive Divergence (CD)bull w_ij mdash веc между i-ым нейроном Вероятность пар может быть представлена как
bull a_i mdash смещение видимого нейрона
bull b_j mdash смещение скрытого нейрона
bull v_i mdash состояние видимого нейрона
bull h_j mdash состояние скрытого нейрона Полная вероятность состояния видимых нейронов
Основные уравнения адаптации
Алгоритм Хинтона - Contrastive Divergence (CD-k)
1 состояние видимых нейронов приравнивается к входному образу2 выводятся вероятности состояний скрытого слоя3 каждому нейрону скрытого слоя ставится в соответствие состояние laquo1raquo с вероятностью равной его текущему состоянию4 выводятся вероятности видимого слоя на основании скрытого5 если текущая итерация меньше k то возврат к шагу 26 выводятся вероятности состояний скрытого слоя
darch Package for deep architectures and Restricted-Bolzmann-MachinesThe darch package is build on the basis of the code from G E Hinton and R R Salakhutdinov (available under Matlab Code for deep belief nets last visit 01082013) This package is for generating neural networks with many layers (deep architectures) and train them with the method introduced by the publications A fast learning algorithm for deep belief nets (G E Hinton S Osindero Y W Teh) and Reducing the dimensionality of data with neural networks (G E Hinton R R Salakhutdinov) This method includes a pre training with the contrastive divergence method publishing by GE Hinton (2002) and a fine tuning with common known training algorithms like backpropagation or conjugate gradient
bull Version 091bull Imports futilelogger ff methodsbull Published 2014-03-16bull Author Martin Dreesbull Maintainer Martin Drees ltmdrees at studfh-dortmunddegtbull License GPL-2bull URL httpgithubcommaddin79darchbull NeedsCompilation nobull Materials READMEbull CRAN checks darch results
Связь плотности вероятности и энергии
Используется распределение Гиббса
Задача обучения с точки минимизации энергии сети
bull Сконструировать функцию энергии с малыми значениями на обучающей выборке и с большими значениями всюду вне этого множества
bull Первое несложно а второе представляет задачу процесса обучения
Интуитивные соображения
Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decomposition LISTA ndashметоды использующие разреженные коды
Латентная переменная Z =argmin_z Distance[Decoder(Z)Y]+FactorB(Z)MAPminimaize sum of factors
Автоэнкодер (auto encoder) Автоэнкодер представляет собой алгоритм обучения без учителя который использует нейронную сеть и метод обратного распространения ошибки для того чтобы добиться того что входной вектор признаков вызывал отклик сети равный входному вектору те y = x Автоэнкодер пытается построить функцию h(x) = x
Архитекттура ICA моделей
Итеративные алгоритмы с оптимальным разреженным кодированием ISTAFISTA
Самоорганизация данных методами Deep Learning
>
Знакомство с пакетом deepnet
Назначение
Составdbndnntrain - обучение сети с архитектурой DBN (deep belief network)loadmnist - формирование данных из файлов MNISTnnpredict - предсказание новых выборок на обученной нейронной сетиnntest ndash тестирование обученной нейронной сети с возвращением значения ошибкиnntrain ndash обучение одностлойной или многослойной нейронной сети методом backproprbmdown ndash генерирование видимого вектора для скрытых состояний сети RBMrbmtrain ndash обучение сети RBMrbmup ndash извлечение скрытых состояний RBM по известным видимым состояниямsaednntrain ndash обучение нейронной сети с архитектурой stacked autoencoder
Прогнозирование (классификация) нейронной сетью с архитектурой stacked auto encoder
Argumentsbull x matrix of x values for examplesbull y vector or matrix of target values for examplesbull hidden vector for number of units of hidden layersDefault is c(10)bull activationfun activation function of hidden unitCan be sigmlinear or tanhDefault isbull sigm for logistic functionbull learningrate learning rate for gradient descent Default is 08bull momentum momentum for gradient descent Default is 05 bull learningrate_scalebull learning rate will be mutiplied by this scale after every iteration Default is 1 bull numepochs number of iteration for samples Default is 3bull batchsize size of mini-batch Default is 100bull output function of output unit can be sigmlinear or softmax Default is sigmbull sae_output function of autoencoder output unit can be sigmlinear or softmax Defaultbull is linearbull hidden_dropout drop out fraction for hidden layer Default is 0bull visible_dropoutbull drop out fraction for input layer Default is 0
Что такое MNISTbull Смешанный набор данных Национального института стандартов и
технологий (mixed National Institute of Standards and Technology MNIST) был создан исследователями IR в качестве эталона для сравнения различных алгоритмов IR
bull Набор данных состоит всего из 70 000 изображений 60 000 обучающих (используемых для создания модели IR) и 10 000 тестовых (применяемых для оценки точности модели) Каждое изображение MNIST mdash это оцифрованная картинка одной цифры написанной от руки Каждое изображение имеет размер 28 times 28 пикселей Каждое значение пикселя лежит в диапазоне от 0 (представляет белый цвет) до 255 (представляет черный цвет) Промежуточные значения отражают оттенки серого
httpyannlecuncomexdbmnistобучающие и тестовые данные хранятся в двух файлах а не в одном Один файл содержит значения пикселей для изображений а другой mdash метки изображений (0ndash9) Каждый из четырех файлов также содержит заголовочную информацию и все они хранятся в двоичном формате сжатом в формате gziptrain-images-idx3-ubytegz training set images (9912422 bytes)
train-labels-idx1-ubytegz training set labels (28881 bytes)
t10k-images-idx3-ubytegz test set images (1648877 bytes)
t10k-labels-idx1-ubytegz test set labels (4542 bytes)
bull Каждая строка файла представляет собой имидж размера 28 times 28 вектором длины 784 каждый признак ndash значение пиксела в черно-белой шале Первый столбец содержит метку цифры 0ndash9 следующие 2828 столбцов представляют целый имидж и так далее Пример первой строки
Визуализация
bull plotmnist()bull mnistbull paramsbull train$n number of train samplesbull train$x pix of every train sample imagebull train$y label of every train sample imagebull train$yy one-of-c vector of label of train sample imagebull test$n number of test samplesbull test$x pix of every test sample imagebull test$y label of every test sample imagebull test$yy one-of-c vector of label of test sample image
plotmnist()
Распознавание рукописных цифр в deepnet
another way to download the MNIST datasetmnist downloadmnist(range=c(01)global=FALSE)look at MNIST datamnist$train$xmnist$train$ymnist$test$xmnist$test$ytrain of the sae neural networkdnnlt-saednntrain(mnist$train$xmnist$train$yhidden=c(55))test of the sae neural networknntest(dnnmnist$test$xmnist$test$yt=05)
End of slides part 2 (Part 3 - NLP remaining)
Vladimirvkrylovgmailcom
Основы предиктивной аналитики Часть вторая
Применение методов Machine Learning к решению задач аналитики
Дмитрий Ветров кандидат физико-математических наук ру
Методы обучающихся машин для аналитики которые мы рассмотрим
Сначала нужно загрузить несколько пакетов (packages) для поддер
Данные для анализа
Скрипт для генерации
Данные которые мы будем использовать для демо состоят из смес
Так выглядят визуализированные данные сгенерированные скриптом
Разделение данных на обучающие и проверочные является важным эт
K-means алгоритм на пальцах
Обучающаяся машина без учителя Алгоритм K-means
Slide 13
Slide 14
Здесь мы используем заранее известный факт что необходимо кла
Еще одна иллюстрация работы алгоритма K-means
Обучающаяся машина без учителя Алгоритм KNN (Nearest Neighbor)
Как работает алгоритм KNN
knn(train test cl k = 1 l = 0 prob = FALSE useall = TRUE
Slide 20
Результаты кластеризации и зависимость ошибки от числа кластеро
Recursive PartitioningRegression Tree
Метод RP реализует обучение машины строить дерево решений по об
Recursive PartitioningRegression Tree (2)
rpart(formula data weights subset naaction = narpart met
Slide 26
Recursive PartitioningRegression Tree example
Анализ по главным компонентам (Principal Component Analysis PC
Итеративные алгоритмы с оптимальным разреженным кодированием IS
Самоорганизация данных методами Deep Learning
Знакомство с пакетом deepnet
Прогнозирование (классификация) нейронной сетью с архитектурой
Arguments
Архитектура сети SAE
Архитектура с 5Х4 hidden 3 outs
Example
Анализ обучающего набора данных
Параметры SAE сети
Коэффициенты связей
Предсказание обученной сетью
Сравнение обучающей и тестовой выборки
plot3d(xy)
Работаем с пакетом MNIST
httpyannlecuncomexdbmnist
Подготовка к обработке
Slide 118
Визуализация
plotmnist()
Распознавание рукописных цифр в deepnet
End of slides part 2 (Part 3 - NLP remaining)
Результаты кластеризации и зависимость ошибки от числа кластеров
actualpredicted A B C A 272 0 7 B 1 308 1 C 31 0 280
gt m
Recursive PartitioningRegression Treebull Основано на дереве решений представляющем граф бинарной
последовательной классификации по тест-вопросам в каждой вершине графа Листья дерева ассоциируются с результатами классификации
Метод RP реализует обучение машины строить дерево решений по обучающей выборке данных
bull laquoРасщеплениеraquo обучающих данныхМножество данных в каждом узле разделяется на два соответствующих ответам TRUE или FALSE Вопросы должны порождать бинарное разбиение множества Для числовых характеристик это обычно неравенства характеристика Xn меньше или равна значению Ym
bull Конструирование тест-вопросовПринцип putity measurement ndash очищающих измерений Каждая характеристика анализируется статистически для каждого разбиения и выбирается наилучшее по чистоте разделенияbull Критерий остановкиЧтобы избежать переобучения используется либо порог чистоты либо максимальное число узлов либо минимальное число наблюдений в узле
Recursive PartitioningRegression Tree
Пример расщепления обучающей выборки
rpart(formula data weights subset naaction = narpart method model = FALSE x = FALSE y = TRUE parms control cost )
formula a formula with a response but no interaction terms If this a a data frome that is taken as the model frame (see modelframe)
data an optional data frame in which to interpret the variables named in the formula
weights optional case weights
subset optional expression saying that only a subset of the rows of the data should be used in the fit
naaction the default action deletes all observations for which y is missing but keeps those in which one or more predictors are missing method one of anova poisson class or exp If method is missing then the routine tries to make an intelligent guess If y is a survival object then method = exp is assumed if y has 2 columns then method = poisson is assumed if y is a factor then method = class is assumed otherwise method = anova is assumed It is wisest to specify the method directly especially as more criteria may added to the function in future Alternatively method can be a list of functions named init split and eval Examples are given in the file lsquotestsusersplitsRrsquo in the sources and in the vignettes lsquoUser Written Split Functionsrsquo
model if logical keep a copy of the model frame in the result If the input value for model is a model frame (likely from an earlier call to the rpart function) then this frame is used rather than constructing new data
x keep a copy of the x matrix in the result
y keep a copy of the dependent variable in the result If missing and model is supplied this defaults to FALSE
parms optional parameters for the splitting function Anova splitting has no parameters Poisson splitting has a single parameter the coefficient of variation of the prior distribution on the rates The default value is 1 Exponential splitting has the same parameter as Poisson For classification splitting the list can contain any of the vector of prior probabilities (component prior) the loss matrix (component loss) or the splitting index (component split) The priors must be positive and sum to 1 The loss matrix must have zeros on the diagonal and positive off-diagonal elements The splitting index can be gini or information The default priors are proportional to the data counts the losses default to 1 and the split defaults to gini
control a list of options that control details of the rpart algorithm See rpartcontrol
cost a vector of non-negative costs one for each variable in the model Defaults to one for all variables These are scalings to be applied when considering splits so the improvement on splitting on a variable is divided by its cost in deciding which split to choose arguments to rpartcontrol may also be specified in the call to rpart They are checked against the list of valid arguments
Recursive PartitioningRegression Tree example(r lt- rpart(class ~ x + y data = train))plot(r)text(r)
Here we look at the confusion matrix and overall error rate from applying the tree rules to the training datapredicted lt- asnumeric(apply(predict(r) 1 function(r) order(-r)[1]))(m lt- cm (train$class predicted))1 - sum(diag(m)) sum(m)
And by comparison against the test datapredicted lt- asnumeric(apply(predict(r test[12]) 1 function(r) order(-r)[1]))(m lt- cm (test$class predicted))1 - sum(diag(m)) sum(m)
Анализ по главным компонентам (Principal Component Analysis PCA)Известно четыре базовых версии методаbull аппроксимировать данные линейными многообразиями меньшей
размерностиbull найти подпространства меньшей размерности в ортогональной проекции
на которые разброс данных (то есть среднеквадратичное отклонение от среднего значения) максимален
bull найти подпространства меньшей размерности в ортогональной проекции на которые среднеквадратичное расстояние между точками максимально
bull для данной многомерной случайной величины построить такое ортогональное преобразование координат в результате которого корреляции между отдельными координатами обратятся в нуль
В основе задача наилучшей аппроксимации конечного множества точек прямыми и плоскостями (Пирсон 1901) Дано конечное множество векторов для каждого k=01hellipn-1 среди всех k-мерных линейных многообразий в Rn найти такое что сумма квадратов уклонений минимальна
bull Графическая иллюстрация метода главных компонент в 3D
Алгоритм
bull Централизация данных
bull Находим первую главную компоненту
bull Вычитаем проекцию на нее
bull Находим вторую главную компоненту
bull Вычитаем проекцию на (k-1) главную компоненту
bull Находим k-ую главную компоненту
bull Всегда выполняется условие ортогональности
princomp(formula data = NULL subset naaction )formula a formula with no response variable referring only to numeric variables
data an optional data frame (or similar see modelframe) containing the variables in the formula formula By default the variables are taken from environment(formula)
subset an optional vector used to select rows (observations) of the data matrix x
naaction a function which indicates what should happen when the data contain NAs The default is set by the naaction setting of options and is nafail if that is unset The lsquofactory-freshrsquo default is naomit
x a numeric matrix or data frame which provides the data for the principal components analysis
cor a logical value indicating whether the calculation should use the correlation matrix or the covariance matrix (The correlation matrix can only be used if there are no constant variables)
scores a logical value indicating whether the score on each principal component should be calculated
covmat a covariance matrix or a covariance list as returned by covwt (and covmve or covmcd from package MASS) If supplied this is used rather than the covariance matrix of x
arguments passed to or from other methods If x is a formula one might specify cor or scores
object Object of class inheriting from princomp
newdata An optional data frame or matrix in which to look for variables with which to predict If omitted the scores are used If the original fit used a formula or a data frame or a matrix with column names newdata must contain columns with the same names Otherwise it must contain the same number of columns to be used in the same order
Principal Component Analysis (PCA)plt-princomp(train[12])train_pca lt- dataframe(p$scores)train_pca$class lt- train$class
Compare the alignment of the clusters to the axis in the feature space versus the transformed space
r2 lt- rpart(class ~ Comp1 + Comp2 data = train_pca)
Линейный дискриминантный анализ (Linear Discriminant Analysis - LDA)bull Для каждого образца объекта или события с известным классом y
рассматривается набор наблюдений x (называемых ещё признаками переменными или измерениями) Набор таких образцов называется обучающей выборкой (или набором обучения обучением) Задачи классификации состоит в том чтобы построить хороший прогноз класса y для всякого так же распределённого объекта (не обязательно содержащегося в обучающей выборке) имея только наблюдения x Основная идея состоит в сравнении распределений для каждого из классов Расстоянием (по Фишеру) между распределениями принято считать отношение межклассовой дисперсии к внутриклассовой
bull Оптимальное байесовское решение - относить точки ко второму классу если отношение правдоподобия ниже некоторого порогового значения T
bull Предполагая что выполнена нормировка
bull Решение записывается в виде неравенства для скалярного произведения
bull Здесь laquoизмерительныйraquo вектор равен
bull с- дискриминантный порог
lda(x grouping prior = proportions tol = 10e-4 method CV = FALSE nu )
formula A formula of the form groups ~ x1 + x2 + That is the response is the grouping factor and the right hand side specifies the (non-factor) discriminators
data Data frame from which variables specified in formula are preferentially to be taken
x (required if no formula is given as the principal argument) a matrix or data frame or Matrix containing the explanatory variables
grouping (required if no formula principal argument is given) a factor specifying the class for each observation
prior the prior probabilities of class membership If unspecified the class proportions for the training set are used If present the probabilities should be specified in the order of the factor levels
tol A tolerance to decide if a matrix is singular it will reject variables and linear combinations of unit-variance variables whose variance is less than tol^2
subset An index vector specifying the cases to be used in the training sample (NOTE If given this argument must be named)
naaction A function to specify the action to be taken if NAs are found The default action is for the procedure to fail An alternative is naomit which leads to rejection of cases with missing values on any required variable (NOTE If given this argument must be named)
method moment for standard estimators of the mean and variance mle for MLEs mve to use covmve or t for robust estimates based on a t distribution
CV If true returns results (classes and posterior probabilities) for leave-one-out cross-validation Note that if the prior is estimated the proportions in the whole dataset are used
nu degrees of freedom for method = t
arguments passed to or from other methods
prior the prior probabilities usedmeans the group meansscaling a matrix which transforms observations to
discriminant functions normalized so that within groups covariance matrix is spherical
svd the singular values which give the ratio of the between- and within-group standard deviations on the linear discriminant variables Their squares are the canonical F-statistics
N The number of observations usedcall The (matched) function call
An object of class lda containing the following components
Метод опорных векторов (Support Vector Machines - SVM)Относится к ML с учителем и использует линейные разделяющие поверхности
Идея алгоритма
bull По обучающей выборке
bull Строится классифицирующая функция
bull Используя гиперплоскость
bull Поиск коэффициентов сводится к максимизации
расстояний от опорных векторов или минимизации
Иллюстрация на простейшем примере
>
Производится вложение обучающей выборки в пространство более высокой размерности Х с помощью нелинейной функции так чтобы обеспечит линейную разделимость в Х
Разделяющая функция тогда имеет вид
Функция называется ядром
Полиномиальное ядро
Радиальная базисная функция
Сигмоид
Линейная неразделимость и использование ядер
Иллюстрация использования ядра для отображения 2D -gt 3D
>
svm((formula data = NULL subset naaction =naomit scale = TRUE))
formulaa symbolic description of the model to be fitdataan optional data frame containing the variables in the model By default the variables are taken from the environment which lsquosvmrsquo is called fromxa data matrix a vector or a sparse matrix (object of class Matrix provided by the Matrix package or of class matrixcsr provided by the SparseM package or of class simple_triplet_matrix provided by the slam package)ya response vector with one label for each rowcomponent of x Can be either a factor (for classification tasks) or a numeric vector (for regression)scaleA logical vector indicating the variables to be scaled If scale is of length 1 the value is recycled as many times as needed Per default data are scaled internally (both x and y variables) to zero mean and unit variance The center and scale values are returned and used for later predictionstypesvm can be used as a classification machine as a regression machine or for novelty detection Depending of whether y is a factor or not the default setting for type is C-classification or eps-regression respectively but may be overwritten by setting an explicit valueValid options areC-classificationnu-classificationone-classification (for novelty detection)eps-regressionnu-regression
Support Vector Machines
s lt- svm( I(factor(class)) ~ x + y data = train cost = 100 gama = 1)
Package lsquodeepnetrsquo February 19 2015 Type Package Title deep learning toolkit in R Version 02 Date 2014-03-20 Author Xiao Rong Maintainer Xiao Rong Description Implement some deep learning architectures and neural network algorithms including BPRBMDBNDeep autoencoder and so on License GPL NeedsCompilation no Repository CRAN DatePublication 2014-03-20 100343
laquoВ 1997 году Deep Blue обыграл в шахматы КаспароваВ 2011 Watson обставил чемпионов JeopardyСможет ли ваш алгоритм в 2013 году отличить Бобика от ПушистикаraquoKaggle Competitions Details
Сегодня уже можно ответить laquoдаraquo mdash десятка лидеров справилась с заданием на 988
Распознавание основано на feature detection и последующем различении комбинаций
Заранее неизвестно какие части картинки могут использоваться как хорошие features В их роли может выступать все что угодно mdash фрагменты изображения форма размер или цвет Feature может не присутствовать на картинке сама а выражаться в параметре полученным каким-то образом из исходных данных
Распознавание рукописных цифр
Еще пример посложнее
Использование нейронной сети с обучениемОбучение такой нейронной сети производится обычно методом обратного распространения ошибки таким образом чтобы минимизировать среднеквадратическую ошибку отклика сети на обучающей выборке Таким образом обучающая выборка содержит пары векторов признаков (входные данные) и эталонных векторов (маркированные данные) (x y)
Сверхвысокая размерность при работе с первичным представлением пикселями
Пиксельное кодирование
Принцип иерархии понятий ndash основа deep learning
bull Все вещи состоят из других маленьких и более элементарных вещей
bull Как извлекать features Гипотеза малоразмерных многообразий
Разреженное (sparse) кодирование
первый уровень иерархии состоит из элементов словаря этого кода которые представляют собой штрихи и границы
Словарь для лиц
Выделение объектов заданного класса
Основные архитектуры Deep Learningbull Deep neural networks (DNN)bull Deep belief networks (DBN)bull Convolutional neural networks (CNN)bull Deep Boltzmann Machines (DBM)bull Stacked (Denoising) Auto-Encodersbull Deep Stacking Networksbull Tensor Deep Stacking Networks (T-DSN)bull Spike-and-Slab RBMs (ssRBMs)bull Compound Hierarchical-Deep Modelsbull Deep Coding Networks (DPCN)bull Deep Kernel Machinesbull Deep Q-Networks (2015 г)
Задача классификации распознавания и подобные являются задачей конструирования функции на множестве входных наборов и со значениями в множестве требуемого вида выходных
bull Норбертом Винером было показано что любая функция может быть сколь угодно точно композицией двух (он использовал функции полином Лагранжа и функцию Лагерра)
bull Соответствует двухслойной нейросетиbull Архитектуры Deep Learning соответствуют представлению
bull Обеспечивают эффективную параметризацию при решении конкретных задач Более сложные функции создаются из большего числа но более эффективно настраиваемых laquoкирпичиковraquo Пример ndash синтез булевых функций Дерево вентилей эффективнее двухслойной схемы
Фактор - графыВсе методы которые расмотрели ndash не DL Даже деревья классификации Все операции в одном входном словаре
DL можно определить по фактор-графу
Например
bull Еще одна сторона DL - нередко использует невыпуклые функции потерьbull Обучение на основе выпуклых функций не зависит от порядка
предъявления данных для обучения Все определяет асимптотика всего train - набора В алгоритмах DL порядок данных в обучающей выборке может иметь значение
bull Многие решения в DL не доказаны математически и являются успешными эвристиками
bull Большой простор для прикладной математики Может рассматриваться как фактор-граф с группами латентных переменных
bull В настоящее время стал основной технологией в распознавании речи (speech recognition) и машинном зрении (computer vision) начал применяться в обработке текстов (natural language processing)
bull Основная идея ndash применение нелинейного отображения входного набора в более высокоразмерное пространство где многие неразделимые композиции становятся разделимыми а затем объединение композиций по семантической близости
Подход разреженного кодирования
Обобщенная архитектура
bull DL сеть может быть собрана каскадированием и использованием обучения с учителем
Здесь используется forward propagation для обучения
Для настройки коэффициентов используется метод fprof для каждого
Требуется знание градиента энергии
Элементы (kl) матрицы Якобиана
Требуется знание градиента энергии 120597119864120597119882119894 = 120597119864120597119883119894120597119865119894(119883119894minus1119882119894)120597119882119894
ሾ1times 119873119908ሿ= ሾ1times 119873119909ሿlowast[119873119909 times 119873119908] Элементы (kl) матрицы Якобиана
Сводится к рекуррентному соотношению для вычисления градиента 120597119864120597119883119894minus1 = 120597119864120597119883119894120597119865119894(119883119894minus1119882119894)120597119883119894minus1
В итоге
Для вычисления градиента может использоваться метод back propagation
В действительности работают любые архитектуры построения функции Нужно конструировать связи и функции блоков
Язык Torch 7 ndash современный инструмент моделирования и имплементации
Machine Learning with Torch7 (httpcodecogbitscomwikidokuphpid=start)
bull These tutorials were originally designed for the IPAM Summer School on Deep Learning more info herebull This wiki provides multiple tutorials with the overall objective of teaching you how to do machine learning
with Torch7bull Torch7 provides a Matlab-like environment for state-of-the-art machine learning algorithms It is easy to use
and provides a very efficient implementation thanks to an easy and fast scripting language (LuaJIT) and an underlying C implementation
bull These tutorials should be readdone in orderbull Tutorial 1 Setup Basics Getting Startedbull Tutorial 2 Supervised Learningbull Tutorial 3 Unsupervised Learningbull Tutorial 4 Graphical Modelsbull Tutorial 5 Creating New Modulesbull Tutorial 6 Using CUDAbull To follow these tutorials and do the exercises you will need to download the associated code which is hosted
on GitHub on this page In this repository each directory corresponds to a tutorial herebull starttxt middot Last modified 20140204 2246 by clement
Torch 7 является расширением Lua
What is LuaLua is a powerful fast lightweight embeddable scripting languageLua combines simple procedural syntax with powerful data description constructs based on associative arrays and extensible semantics Lua is dynamically typed runs by interpreting bytecode for a register-based virtual machine and has automatic memory management with incremental garbage collection making it ideal for configuration scripting and rapid prototyping
Why choose LuaLua is a proven robust languageLua has been used in many industrial applications (eg Adobes Photoshop Lightroom) with an emphasis on embedded systems (eg the Ginga middleware for digital TV in Brazil) and games (eg World of Warcraft and Angry Birds) Lua is currently the leading scripting language in games Lua has a solid reference manual and there are several books about it Several versions of Lua have been released and used in real applications since its creation in 1993 Lua featured in HOPL III the Third ACM SIGPLAN History of Programming Languages Conference in June 2007 Lua won the Front Line Award 2011 from the Game Developers Magazine
Свертка и архитектура 4-х уровневой сверточной сети
Функциональная структура
Примеры успешного применения сверточных сетей
Диагностика эпилепсии по ЭЭГ
Реализация сверточной сетью
Одна из самых больших сверточных сетейbull Krizhevsky Sutskever Hinton 2012bull 650 000 нейронов 832 000 000 синапсов 60 000000 пареметровbull Использовался backprop на GPUbull Обучающая выборка на материалах 20 летbull Купил Google в январе 2013bull В мае 2013 развернул как сервис Photo Tagging Google+
Пример тэгирования
Пример поиска похожих по изображению
Пример поиска в коллекции изображений по текстовому запросу
Пример laquoоблачногоraquo классификатора изображений
Самообучающиеся нейронные сети на основе минимизации функции энергииbull Применима к сетям с обратными связямиbull Конструирование функции энергии должно обеспечивать
laquoконтрастностьraquo разделения
bull Энергетическая функция может Неформально рассматриваться как отрицательный логарифм плотности вероятности
Y 2=(Y1)2
RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцмана
bull Из DBM cтроится Deep Belief Network (DBN)
bull w mdash вес между нейронами
bull b mdash смещение нейрона
bull s mdash состояние нейрона
Алгоритм обучения Contrastive Divergence (CD)bull w_ij mdash веc между i-ым нейроном Вероятность пар может быть представлена как
bull a_i mdash смещение видимого нейрона
bull b_j mdash смещение скрытого нейрона
bull v_i mdash состояние видимого нейрона
bull h_j mdash состояние скрытого нейрона Полная вероятность состояния видимых нейронов
Основные уравнения адаптации
Алгоритм Хинтона - Contrastive Divergence (CD-k)
1 состояние видимых нейронов приравнивается к входному образу2 выводятся вероятности состояний скрытого слоя3 каждому нейрону скрытого слоя ставится в соответствие состояние laquo1raquo с вероятностью равной его текущему состоянию4 выводятся вероятности видимого слоя на основании скрытого5 если текущая итерация меньше k то возврат к шагу 26 выводятся вероятности состояний скрытого слоя
darch Package for deep architectures and Restricted-Bolzmann-MachinesThe darch package is build on the basis of the code from G E Hinton and R R Salakhutdinov (available under Matlab Code for deep belief nets last visit 01082013) This package is for generating neural networks with many layers (deep architectures) and train them with the method introduced by the publications A fast learning algorithm for deep belief nets (G E Hinton S Osindero Y W Teh) and Reducing the dimensionality of data with neural networks (G E Hinton R R Salakhutdinov) This method includes a pre training with the contrastive divergence method publishing by GE Hinton (2002) and a fine tuning with common known training algorithms like backpropagation or conjugate gradient
bull Version 091bull Imports futilelogger ff methodsbull Published 2014-03-16bull Author Martin Dreesbull Maintainer Martin Drees ltmdrees at studfh-dortmunddegtbull License GPL-2bull URL httpgithubcommaddin79darchbull NeedsCompilation nobull Materials READMEbull CRAN checks darch results
Связь плотности вероятности и энергии
Используется распределение Гиббса
Задача обучения с точки минимизации энергии сети
bull Сконструировать функцию энергии с малыми значениями на обучающей выборке и с большими значениями всюду вне этого множества
bull Первое несложно а второе представляет задачу процесса обучения
Интуитивные соображения
Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decomposition LISTA ndashметоды использующие разреженные коды
Латентная переменная Z =argmin_z Distance[Decoder(Z)Y]+FactorB(Z)MAPminimaize sum of factors
Автоэнкодер (auto encoder) Автоэнкодер представляет собой алгоритм обучения без учителя который использует нейронную сеть и метод обратного распространения ошибки для того чтобы добиться того что входной вектор признаков вызывал отклик сети равный входному вектору те y = x Автоэнкодер пытается построить функцию h(x) = x
Архитекттура ICA моделей
Итеративные алгоритмы с оптимальным разреженным кодированием ISTAFISTA
Самоорганизация данных методами Deep Learning
>
Знакомство с пакетом deepnet
Назначение
Составdbndnntrain - обучение сети с архитектурой DBN (deep belief network)loadmnist - формирование данных из файлов MNISTnnpredict - предсказание новых выборок на обученной нейронной сетиnntest ndash тестирование обученной нейронной сети с возвращением значения ошибкиnntrain ndash обучение одностлойной или многослойной нейронной сети методом backproprbmdown ndash генерирование видимого вектора для скрытых состояний сети RBMrbmtrain ndash обучение сети RBMrbmup ndash извлечение скрытых состояний RBM по известным видимым состояниямsaednntrain ndash обучение нейронной сети с архитектурой stacked autoencoder
Прогнозирование (классификация) нейронной сетью с архитектурой stacked auto encoder
Argumentsbull x matrix of x values for examplesbull y vector or matrix of target values for examplesbull hidden vector for number of units of hidden layersDefault is c(10)bull activationfun activation function of hidden unitCan be sigmlinear or tanhDefault isbull sigm for logistic functionbull learningrate learning rate for gradient descent Default is 08bull momentum momentum for gradient descent Default is 05 bull learningrate_scalebull learning rate will be mutiplied by this scale after every iteration Default is 1 bull numepochs number of iteration for samples Default is 3bull batchsize size of mini-batch Default is 100bull output function of output unit can be sigmlinear or softmax Default is sigmbull sae_output function of autoencoder output unit can be sigmlinear or softmax Defaultbull is linearbull hidden_dropout drop out fraction for hidden layer Default is 0bull visible_dropoutbull drop out fraction for input layer Default is 0
Что такое MNISTbull Смешанный набор данных Национального института стандартов и
технологий (mixed National Institute of Standards and Technology MNIST) был создан исследователями IR в качестве эталона для сравнения различных алгоритмов IR
bull Набор данных состоит всего из 70 000 изображений 60 000 обучающих (используемых для создания модели IR) и 10 000 тестовых (применяемых для оценки точности модели) Каждое изображение MNIST mdash это оцифрованная картинка одной цифры написанной от руки Каждое изображение имеет размер 28 times 28 пикселей Каждое значение пикселя лежит в диапазоне от 0 (представляет белый цвет) до 255 (представляет черный цвет) Промежуточные значения отражают оттенки серого
httpyannlecuncomexdbmnistобучающие и тестовые данные хранятся в двух файлах а не в одном Один файл содержит значения пикселей для изображений а другой mdash метки изображений (0ndash9) Каждый из четырех файлов также содержит заголовочную информацию и все они хранятся в двоичном формате сжатом в формате gziptrain-images-idx3-ubytegz training set images (9912422 bytes)
train-labels-idx1-ubytegz training set labels (28881 bytes)
t10k-images-idx3-ubytegz test set images (1648877 bytes)
t10k-labels-idx1-ubytegz test set labels (4542 bytes)
bull Каждая строка файла представляет собой имидж размера 28 times 28 вектором длины 784 каждый признак ndash значение пиксела в черно-белой шале Первый столбец содержит метку цифры 0ndash9 следующие 2828 столбцов представляют целый имидж и так далее Пример первой строки
Визуализация
bull plotmnist()bull mnistbull paramsbull train$n number of train samplesbull train$x pix of every train sample imagebull train$y label of every train sample imagebull train$yy one-of-c vector of label of train sample imagebull test$n number of test samplesbull test$x pix of every test sample imagebull test$y label of every test sample imagebull test$yy one-of-c vector of label of test sample image
plotmnist()
Распознавание рукописных цифр в deepnet
another way to download the MNIST datasetmnist downloadmnist(range=c(01)global=FALSE)look at MNIST datamnist$train$xmnist$train$ymnist$test$xmnist$test$ytrain of the sae neural networkdnnlt-saednntrain(mnist$train$xmnist$train$yhidden=c(55))test of the sae neural networknntest(dnnmnist$test$xmnist$test$yt=05)
End of slides part 2 (Part 3 - NLP remaining)
Vladimirvkrylovgmailcom
Основы предиктивной аналитики Часть вторая
Применение методов Machine Learning к решению задач аналитики
Дмитрий Ветров кандидат физико-математических наук ру
Методы обучающихся машин для аналитики которые мы рассмотрим
Сначала нужно загрузить несколько пакетов (packages) для поддер
Данные для анализа
Скрипт для генерации
Данные которые мы будем использовать для демо состоят из смес
Так выглядят визуализированные данные сгенерированные скриптом
Разделение данных на обучающие и проверочные является важным эт
K-means алгоритм на пальцах
Обучающаяся машина без учителя Алгоритм K-means
Slide 13
Slide 14
Здесь мы используем заранее известный факт что необходимо кла
Еще одна иллюстрация работы алгоритма K-means
Обучающаяся машина без учителя Алгоритм KNN (Nearest Neighbor)
Как работает алгоритм KNN
knn(train test cl k = 1 l = 0 prob = FALSE useall = TRUE
Slide 20
Результаты кластеризации и зависимость ошибки от числа кластеро
Recursive PartitioningRegression Tree
Метод RP реализует обучение машины строить дерево решений по об
Recursive PartitioningRegression Tree (2)
rpart(formula data weights subset naaction = narpart met
Slide 26
Recursive PartitioningRegression Tree example
Анализ по главным компонентам (Principal Component Analysis PC
Итеративные алгоритмы с оптимальным разреженным кодированием IS
Самоорганизация данных методами Deep Learning
Знакомство с пакетом deepnet
Прогнозирование (классификация) нейронной сетью с архитектурой
Arguments
Архитектура сети SAE
Архитектура с 5Х4 hidden 3 outs
Example
Анализ обучающего набора данных
Параметры SAE сети
Коэффициенты связей
Предсказание обученной сетью
Сравнение обучающей и тестовой выборки
plot3d(xy)
Работаем с пакетом MNIST
httpyannlecuncomexdbmnist
Подготовка к обработке
Slide 118
Визуализация
plotmnist()
Распознавание рукописных цифр в deepnet
End of slides part 2 (Part 3 - NLP remaining)
Recursive PartitioningRegression Treebull Основано на дереве решений представляющем граф бинарной
последовательной классификации по тест-вопросам в каждой вершине графа Листья дерева ассоциируются с результатами классификации
Метод RP реализует обучение машины строить дерево решений по обучающей выборке данных
bull laquoРасщеплениеraquo обучающих данныхМножество данных в каждом узле разделяется на два соответствующих ответам TRUE или FALSE Вопросы должны порождать бинарное разбиение множества Для числовых характеристик это обычно неравенства характеристика Xn меньше или равна значению Ym
bull Конструирование тест-вопросовПринцип putity measurement ndash очищающих измерений Каждая характеристика анализируется статистически для каждого разбиения и выбирается наилучшее по чистоте разделенияbull Критерий остановкиЧтобы избежать переобучения используется либо порог чистоты либо максимальное число узлов либо минимальное число наблюдений в узле
Recursive PartitioningRegression Tree
Пример расщепления обучающей выборки
rpart(formula data weights subset naaction = narpart method model = FALSE x = FALSE y = TRUE parms control cost )
formula a formula with a response but no interaction terms If this a a data frome that is taken as the model frame (see modelframe)
data an optional data frame in which to interpret the variables named in the formula
weights optional case weights
subset optional expression saying that only a subset of the rows of the data should be used in the fit
naaction the default action deletes all observations for which y is missing but keeps those in which one or more predictors are missing method one of anova poisson class or exp If method is missing then the routine tries to make an intelligent guess If y is a survival object then method = exp is assumed if y has 2 columns then method = poisson is assumed if y is a factor then method = class is assumed otherwise method = anova is assumed It is wisest to specify the method directly especially as more criteria may added to the function in future Alternatively method can be a list of functions named init split and eval Examples are given in the file lsquotestsusersplitsRrsquo in the sources and in the vignettes lsquoUser Written Split Functionsrsquo
model if logical keep a copy of the model frame in the result If the input value for model is a model frame (likely from an earlier call to the rpart function) then this frame is used rather than constructing new data
x keep a copy of the x matrix in the result
y keep a copy of the dependent variable in the result If missing and model is supplied this defaults to FALSE
parms optional parameters for the splitting function Anova splitting has no parameters Poisson splitting has a single parameter the coefficient of variation of the prior distribution on the rates The default value is 1 Exponential splitting has the same parameter as Poisson For classification splitting the list can contain any of the vector of prior probabilities (component prior) the loss matrix (component loss) or the splitting index (component split) The priors must be positive and sum to 1 The loss matrix must have zeros on the diagonal and positive off-diagonal elements The splitting index can be gini or information The default priors are proportional to the data counts the losses default to 1 and the split defaults to gini
control a list of options that control details of the rpart algorithm See rpartcontrol
cost a vector of non-negative costs one for each variable in the model Defaults to one for all variables These are scalings to be applied when considering splits so the improvement on splitting on a variable is divided by its cost in deciding which split to choose arguments to rpartcontrol may also be specified in the call to rpart They are checked against the list of valid arguments
Recursive PartitioningRegression Tree example(r lt- rpart(class ~ x + y data = train))plot(r)text(r)
Here we look at the confusion matrix and overall error rate from applying the tree rules to the training datapredicted lt- asnumeric(apply(predict(r) 1 function(r) order(-r)[1]))(m lt- cm (train$class predicted))1 - sum(diag(m)) sum(m)
And by comparison against the test datapredicted lt- asnumeric(apply(predict(r test[12]) 1 function(r) order(-r)[1]))(m lt- cm (test$class predicted))1 - sum(diag(m)) sum(m)
Анализ по главным компонентам (Principal Component Analysis PCA)Известно четыре базовых версии методаbull аппроксимировать данные линейными многообразиями меньшей
размерностиbull найти подпространства меньшей размерности в ортогональной проекции
на которые разброс данных (то есть среднеквадратичное отклонение от среднего значения) максимален
bull найти подпространства меньшей размерности в ортогональной проекции на которые среднеквадратичное расстояние между точками максимально
bull для данной многомерной случайной величины построить такое ортогональное преобразование координат в результате которого корреляции между отдельными координатами обратятся в нуль
В основе задача наилучшей аппроксимации конечного множества точек прямыми и плоскостями (Пирсон 1901) Дано конечное множество векторов для каждого k=01hellipn-1 среди всех k-мерных линейных многообразий в Rn найти такое что сумма квадратов уклонений минимальна
bull Графическая иллюстрация метода главных компонент в 3D
Алгоритм
bull Централизация данных
bull Находим первую главную компоненту
bull Вычитаем проекцию на нее
bull Находим вторую главную компоненту
bull Вычитаем проекцию на (k-1) главную компоненту
bull Находим k-ую главную компоненту
bull Всегда выполняется условие ортогональности
princomp(formula data = NULL subset naaction )formula a formula with no response variable referring only to numeric variables
data an optional data frame (or similar see modelframe) containing the variables in the formula formula By default the variables are taken from environment(formula)
subset an optional vector used to select rows (observations) of the data matrix x
naaction a function which indicates what should happen when the data contain NAs The default is set by the naaction setting of options and is nafail if that is unset The lsquofactory-freshrsquo default is naomit
x a numeric matrix or data frame which provides the data for the principal components analysis
cor a logical value indicating whether the calculation should use the correlation matrix or the covariance matrix (The correlation matrix can only be used if there are no constant variables)
scores a logical value indicating whether the score on each principal component should be calculated
covmat a covariance matrix or a covariance list as returned by covwt (and covmve or covmcd from package MASS) If supplied this is used rather than the covariance matrix of x
arguments passed to or from other methods If x is a formula one might specify cor or scores
object Object of class inheriting from princomp
newdata An optional data frame or matrix in which to look for variables with which to predict If omitted the scores are used If the original fit used a formula or a data frame or a matrix with column names newdata must contain columns with the same names Otherwise it must contain the same number of columns to be used in the same order
Principal Component Analysis (PCA)plt-princomp(train[12])train_pca lt- dataframe(p$scores)train_pca$class lt- train$class
Compare the alignment of the clusters to the axis in the feature space versus the transformed space
r2 lt- rpart(class ~ Comp1 + Comp2 data = train_pca)
Линейный дискриминантный анализ (Linear Discriminant Analysis - LDA)bull Для каждого образца объекта или события с известным классом y
рассматривается набор наблюдений x (называемых ещё признаками переменными или измерениями) Набор таких образцов называется обучающей выборкой (или набором обучения обучением) Задачи классификации состоит в том чтобы построить хороший прогноз класса y для всякого так же распределённого объекта (не обязательно содержащегося в обучающей выборке) имея только наблюдения x Основная идея состоит в сравнении распределений для каждого из классов Расстоянием (по Фишеру) между распределениями принято считать отношение межклассовой дисперсии к внутриклассовой
bull Оптимальное байесовское решение - относить точки ко второму классу если отношение правдоподобия ниже некоторого порогового значения T
bull Предполагая что выполнена нормировка
bull Решение записывается в виде неравенства для скалярного произведения
bull Здесь laquoизмерительныйraquo вектор равен
bull с- дискриминантный порог
lda(x grouping prior = proportions tol = 10e-4 method CV = FALSE nu )
formula A formula of the form groups ~ x1 + x2 + That is the response is the grouping factor and the right hand side specifies the (non-factor) discriminators
data Data frame from which variables specified in formula are preferentially to be taken
x (required if no formula is given as the principal argument) a matrix or data frame or Matrix containing the explanatory variables
grouping (required if no formula principal argument is given) a factor specifying the class for each observation
prior the prior probabilities of class membership If unspecified the class proportions for the training set are used If present the probabilities should be specified in the order of the factor levels
tol A tolerance to decide if a matrix is singular it will reject variables and linear combinations of unit-variance variables whose variance is less than tol^2
subset An index vector specifying the cases to be used in the training sample (NOTE If given this argument must be named)
naaction A function to specify the action to be taken if NAs are found The default action is for the procedure to fail An alternative is naomit which leads to rejection of cases with missing values on any required variable (NOTE If given this argument must be named)
method moment for standard estimators of the mean and variance mle for MLEs mve to use covmve or t for robust estimates based on a t distribution
CV If true returns results (classes and posterior probabilities) for leave-one-out cross-validation Note that if the prior is estimated the proportions in the whole dataset are used
nu degrees of freedom for method = t
arguments passed to or from other methods
prior the prior probabilities usedmeans the group meansscaling a matrix which transforms observations to
discriminant functions normalized so that within groups covariance matrix is spherical
svd the singular values which give the ratio of the between- and within-group standard deviations on the linear discriminant variables Their squares are the canonical F-statistics
N The number of observations usedcall The (matched) function call
An object of class lda containing the following components
Метод опорных векторов (Support Vector Machines - SVM)Относится к ML с учителем и использует линейные разделяющие поверхности
Идея алгоритма
bull По обучающей выборке
bull Строится классифицирующая функция
bull Используя гиперплоскость
bull Поиск коэффициентов сводится к максимизации
расстояний от опорных векторов или минимизации
Иллюстрация на простейшем примере
>
Производится вложение обучающей выборки в пространство более высокой размерности Х с помощью нелинейной функции так чтобы обеспечит линейную разделимость в Х
Разделяющая функция тогда имеет вид
Функция называется ядром
Полиномиальное ядро
Радиальная базисная функция
Сигмоид
Линейная неразделимость и использование ядер
Иллюстрация использования ядра для отображения 2D -gt 3D
>
svm((formula data = NULL subset naaction =naomit scale = TRUE))
formulaa symbolic description of the model to be fitdataan optional data frame containing the variables in the model By default the variables are taken from the environment which lsquosvmrsquo is called fromxa data matrix a vector or a sparse matrix (object of class Matrix provided by the Matrix package or of class matrixcsr provided by the SparseM package or of class simple_triplet_matrix provided by the slam package)ya response vector with one label for each rowcomponent of x Can be either a factor (for classification tasks) or a numeric vector (for regression)scaleA logical vector indicating the variables to be scaled If scale is of length 1 the value is recycled as many times as needed Per default data are scaled internally (both x and y variables) to zero mean and unit variance The center and scale values are returned and used for later predictionstypesvm can be used as a classification machine as a regression machine or for novelty detection Depending of whether y is a factor or not the default setting for type is C-classification or eps-regression respectively but may be overwritten by setting an explicit valueValid options areC-classificationnu-classificationone-classification (for novelty detection)eps-regressionnu-regression
Support Vector Machines
s lt- svm( I(factor(class)) ~ x + y data = train cost = 100 gama = 1)
Package lsquodeepnetrsquo February 19 2015 Type Package Title deep learning toolkit in R Version 02 Date 2014-03-20 Author Xiao Rong Maintainer Xiao Rong Description Implement some deep learning architectures and neural network algorithms including BPRBMDBNDeep autoencoder and so on License GPL NeedsCompilation no Repository CRAN DatePublication 2014-03-20 100343
laquoВ 1997 году Deep Blue обыграл в шахматы КаспароваВ 2011 Watson обставил чемпионов JeopardyСможет ли ваш алгоритм в 2013 году отличить Бобика от ПушистикаraquoKaggle Competitions Details
Сегодня уже можно ответить laquoдаraquo mdash десятка лидеров справилась с заданием на 988
Распознавание основано на feature detection и последующем различении комбинаций
Заранее неизвестно какие части картинки могут использоваться как хорошие features В их роли может выступать все что угодно mdash фрагменты изображения форма размер или цвет Feature может не присутствовать на картинке сама а выражаться в параметре полученным каким-то образом из исходных данных
Распознавание рукописных цифр
Еще пример посложнее
Использование нейронной сети с обучениемОбучение такой нейронной сети производится обычно методом обратного распространения ошибки таким образом чтобы минимизировать среднеквадратическую ошибку отклика сети на обучающей выборке Таким образом обучающая выборка содержит пары векторов признаков (входные данные) и эталонных векторов (маркированные данные) (x y)
Сверхвысокая размерность при работе с первичным представлением пикселями
Пиксельное кодирование
Принцип иерархии понятий ndash основа deep learning
bull Все вещи состоят из других маленьких и более элементарных вещей
bull Как извлекать features Гипотеза малоразмерных многообразий
Разреженное (sparse) кодирование
первый уровень иерархии состоит из элементов словаря этого кода которые представляют собой штрихи и границы
Словарь для лиц
Выделение объектов заданного класса
Основные архитектуры Deep Learningbull Deep neural networks (DNN)bull Deep belief networks (DBN)bull Convolutional neural networks (CNN)bull Deep Boltzmann Machines (DBM)bull Stacked (Denoising) Auto-Encodersbull Deep Stacking Networksbull Tensor Deep Stacking Networks (T-DSN)bull Spike-and-Slab RBMs (ssRBMs)bull Compound Hierarchical-Deep Modelsbull Deep Coding Networks (DPCN)bull Deep Kernel Machinesbull Deep Q-Networks (2015 г)
Задача классификации распознавания и подобные являются задачей конструирования функции на множестве входных наборов и со значениями в множестве требуемого вида выходных
bull Норбертом Винером было показано что любая функция может быть сколь угодно точно композицией двух (он использовал функции полином Лагранжа и функцию Лагерра)
bull Соответствует двухслойной нейросетиbull Архитектуры Deep Learning соответствуют представлению
bull Обеспечивают эффективную параметризацию при решении конкретных задач Более сложные функции создаются из большего числа но более эффективно настраиваемых laquoкирпичиковraquo Пример ndash синтез булевых функций Дерево вентилей эффективнее двухслойной схемы
Фактор - графыВсе методы которые расмотрели ndash не DL Даже деревья классификации Все операции в одном входном словаре
DL можно определить по фактор-графу
Например
bull Еще одна сторона DL - нередко использует невыпуклые функции потерьbull Обучение на основе выпуклых функций не зависит от порядка
предъявления данных для обучения Все определяет асимптотика всего train - набора В алгоритмах DL порядок данных в обучающей выборке может иметь значение
bull Многие решения в DL не доказаны математически и являются успешными эвристиками
bull Большой простор для прикладной математики Может рассматриваться как фактор-граф с группами латентных переменных
bull В настоящее время стал основной технологией в распознавании речи (speech recognition) и машинном зрении (computer vision) начал применяться в обработке текстов (natural language processing)
bull Основная идея ndash применение нелинейного отображения входного набора в более высокоразмерное пространство где многие неразделимые композиции становятся разделимыми а затем объединение композиций по семантической близости
Подход разреженного кодирования
Обобщенная архитектура
bull DL сеть может быть собрана каскадированием и использованием обучения с учителем
Здесь используется forward propagation для обучения
Для настройки коэффициентов используется метод fprof для каждого
Требуется знание градиента энергии
Элементы (kl) матрицы Якобиана
Требуется знание градиента энергии 120597119864120597119882119894 = 120597119864120597119883119894120597119865119894(119883119894minus1119882119894)120597119882119894
ሾ1times 119873119908ሿ= ሾ1times 119873119909ሿlowast[119873119909 times 119873119908] Элементы (kl) матрицы Якобиана
Сводится к рекуррентному соотношению для вычисления градиента 120597119864120597119883119894minus1 = 120597119864120597119883119894120597119865119894(119883119894minus1119882119894)120597119883119894minus1
В итоге
Для вычисления градиента может использоваться метод back propagation
В действительности работают любые архитектуры построения функции Нужно конструировать связи и функции блоков
Язык Torch 7 ndash современный инструмент моделирования и имплементации
Machine Learning with Torch7 (httpcodecogbitscomwikidokuphpid=start)
bull These tutorials were originally designed for the IPAM Summer School on Deep Learning more info herebull This wiki provides multiple tutorials with the overall objective of teaching you how to do machine learning
with Torch7bull Torch7 provides a Matlab-like environment for state-of-the-art machine learning algorithms It is easy to use
and provides a very efficient implementation thanks to an easy and fast scripting language (LuaJIT) and an underlying C implementation
bull These tutorials should be readdone in orderbull Tutorial 1 Setup Basics Getting Startedbull Tutorial 2 Supervised Learningbull Tutorial 3 Unsupervised Learningbull Tutorial 4 Graphical Modelsbull Tutorial 5 Creating New Modulesbull Tutorial 6 Using CUDAbull To follow these tutorials and do the exercises you will need to download the associated code which is hosted
on GitHub on this page In this repository each directory corresponds to a tutorial herebull starttxt middot Last modified 20140204 2246 by clement
Torch 7 является расширением Lua
What is LuaLua is a powerful fast lightweight embeddable scripting languageLua combines simple procedural syntax with powerful data description constructs based on associative arrays and extensible semantics Lua is dynamically typed runs by interpreting bytecode for a register-based virtual machine and has automatic memory management with incremental garbage collection making it ideal for configuration scripting and rapid prototyping
Why choose LuaLua is a proven robust languageLua has been used in many industrial applications (eg Adobes Photoshop Lightroom) with an emphasis on embedded systems (eg the Ginga middleware for digital TV in Brazil) and games (eg World of Warcraft and Angry Birds) Lua is currently the leading scripting language in games Lua has a solid reference manual and there are several books about it Several versions of Lua have been released and used in real applications since its creation in 1993 Lua featured in HOPL III the Third ACM SIGPLAN History of Programming Languages Conference in June 2007 Lua won the Front Line Award 2011 from the Game Developers Magazine
Свертка и архитектура 4-х уровневой сверточной сети
Функциональная структура
Примеры успешного применения сверточных сетей
Диагностика эпилепсии по ЭЭГ
Реализация сверточной сетью
Одна из самых больших сверточных сетейbull Krizhevsky Sutskever Hinton 2012bull 650 000 нейронов 832 000 000 синапсов 60 000000 пареметровbull Использовался backprop на GPUbull Обучающая выборка на материалах 20 летbull Купил Google в январе 2013bull В мае 2013 развернул как сервис Photo Tagging Google+
Пример тэгирования
Пример поиска похожих по изображению
Пример поиска в коллекции изображений по текстовому запросу
Пример laquoоблачногоraquo классификатора изображений
Самообучающиеся нейронные сети на основе минимизации функции энергииbull Применима к сетям с обратными связямиbull Конструирование функции энергии должно обеспечивать
laquoконтрастностьraquo разделения
bull Энергетическая функция может Неформально рассматриваться как отрицательный логарифм плотности вероятности
Y 2=(Y1)2
RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцмана
bull Из DBM cтроится Deep Belief Network (DBN)
bull w mdash вес между нейронами
bull b mdash смещение нейрона
bull s mdash состояние нейрона
Алгоритм обучения Contrastive Divergence (CD)bull w_ij mdash веc между i-ым нейроном Вероятность пар может быть представлена как
bull a_i mdash смещение видимого нейрона
bull b_j mdash смещение скрытого нейрона
bull v_i mdash состояние видимого нейрона
bull h_j mdash состояние скрытого нейрона Полная вероятность состояния видимых нейронов
Основные уравнения адаптации
Алгоритм Хинтона - Contrastive Divergence (CD-k)
1 состояние видимых нейронов приравнивается к входному образу2 выводятся вероятности состояний скрытого слоя3 каждому нейрону скрытого слоя ставится в соответствие состояние laquo1raquo с вероятностью равной его текущему состоянию4 выводятся вероятности видимого слоя на основании скрытого5 если текущая итерация меньше k то возврат к шагу 26 выводятся вероятности состояний скрытого слоя
darch Package for deep architectures and Restricted-Bolzmann-MachinesThe darch package is build on the basis of the code from G E Hinton and R R Salakhutdinov (available under Matlab Code for deep belief nets last visit 01082013) This package is for generating neural networks with many layers (deep architectures) and train them with the method introduced by the publications A fast learning algorithm for deep belief nets (G E Hinton S Osindero Y W Teh) and Reducing the dimensionality of data with neural networks (G E Hinton R R Salakhutdinov) This method includes a pre training with the contrastive divergence method publishing by GE Hinton (2002) and a fine tuning with common known training algorithms like backpropagation or conjugate gradient
bull Version 091bull Imports futilelogger ff methodsbull Published 2014-03-16bull Author Martin Dreesbull Maintainer Martin Drees ltmdrees at studfh-dortmunddegtbull License GPL-2bull URL httpgithubcommaddin79darchbull NeedsCompilation nobull Materials READMEbull CRAN checks darch results
Связь плотности вероятности и энергии
Используется распределение Гиббса
Задача обучения с точки минимизации энергии сети
bull Сконструировать функцию энергии с малыми значениями на обучающей выборке и с большими значениями всюду вне этого множества
bull Первое несложно а второе представляет задачу процесса обучения
Интуитивные соображения
Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decomposition LISTA ndashметоды использующие разреженные коды
Латентная переменная Z =argmin_z Distance[Decoder(Z)Y]+FactorB(Z)MAPminimaize sum of factors
Автоэнкодер (auto encoder) Автоэнкодер представляет собой алгоритм обучения без учителя который использует нейронную сеть и метод обратного распространения ошибки для того чтобы добиться того что входной вектор признаков вызывал отклик сети равный входному вектору те y = x Автоэнкодер пытается построить функцию h(x) = x
Архитекттура ICA моделей
Итеративные алгоритмы с оптимальным разреженным кодированием ISTAFISTA
Самоорганизация данных методами Deep Learning
>
Знакомство с пакетом deepnet
Назначение
Составdbndnntrain - обучение сети с архитектурой DBN (deep belief network)loadmnist - формирование данных из файлов MNISTnnpredict - предсказание новых выборок на обученной нейронной сетиnntest ndash тестирование обученной нейронной сети с возвращением значения ошибкиnntrain ndash обучение одностлойной или многослойной нейронной сети методом backproprbmdown ndash генерирование видимого вектора для скрытых состояний сети RBMrbmtrain ndash обучение сети RBMrbmup ndash извлечение скрытых состояний RBM по известным видимым состояниямsaednntrain ndash обучение нейронной сети с архитектурой stacked autoencoder
Прогнозирование (классификация) нейронной сетью с архитектурой stacked auto encoder
Argumentsbull x matrix of x values for examplesbull y vector or matrix of target values for examplesbull hidden vector for number of units of hidden layersDefault is c(10)bull activationfun activation function of hidden unitCan be sigmlinear or tanhDefault isbull sigm for logistic functionbull learningrate learning rate for gradient descent Default is 08bull momentum momentum for gradient descent Default is 05 bull learningrate_scalebull learning rate will be mutiplied by this scale after every iteration Default is 1 bull numepochs number of iteration for samples Default is 3bull batchsize size of mini-batch Default is 100bull output function of output unit can be sigmlinear or softmax Default is sigmbull sae_output function of autoencoder output unit can be sigmlinear or softmax Defaultbull is linearbull hidden_dropout drop out fraction for hidden layer Default is 0bull visible_dropoutbull drop out fraction for input layer Default is 0
Что такое MNISTbull Смешанный набор данных Национального института стандартов и
технологий (mixed National Institute of Standards and Technology MNIST) был создан исследователями IR в качестве эталона для сравнения различных алгоритмов IR
bull Набор данных состоит всего из 70 000 изображений 60 000 обучающих (используемых для создания модели IR) и 10 000 тестовых (применяемых для оценки точности модели) Каждое изображение MNIST mdash это оцифрованная картинка одной цифры написанной от руки Каждое изображение имеет размер 28 times 28 пикселей Каждое значение пикселя лежит в диапазоне от 0 (представляет белый цвет) до 255 (представляет черный цвет) Промежуточные значения отражают оттенки серого
httpyannlecuncomexdbmnistобучающие и тестовые данные хранятся в двух файлах а не в одном Один файл содержит значения пикселей для изображений а другой mdash метки изображений (0ndash9) Каждый из четырех файлов также содержит заголовочную информацию и все они хранятся в двоичном формате сжатом в формате gziptrain-images-idx3-ubytegz training set images (9912422 bytes)
train-labels-idx1-ubytegz training set labels (28881 bytes)
t10k-images-idx3-ubytegz test set images (1648877 bytes)
t10k-labels-idx1-ubytegz test set labels (4542 bytes)
bull Каждая строка файла представляет собой имидж размера 28 times 28 вектором длины 784 каждый признак ndash значение пиксела в черно-белой шале Первый столбец содержит метку цифры 0ndash9 следующие 2828 столбцов представляют целый имидж и так далее Пример первой строки
Визуализация
bull plotmnist()bull mnistbull paramsbull train$n number of train samplesbull train$x pix of every train sample imagebull train$y label of every train sample imagebull train$yy one-of-c vector of label of train sample imagebull test$n number of test samplesbull test$x pix of every test sample imagebull test$y label of every test sample imagebull test$yy one-of-c vector of label of test sample image
plotmnist()
Распознавание рукописных цифр в deepnet
another way to download the MNIST datasetmnist downloadmnist(range=c(01)global=FALSE)look at MNIST datamnist$train$xmnist$train$ymnist$test$xmnist$test$ytrain of the sae neural networkdnnlt-saednntrain(mnist$train$xmnist$train$yhidden=c(55))test of the sae neural networknntest(dnnmnist$test$xmnist$test$yt=05)
End of slides part 2 (Part 3 - NLP remaining)
Vladimirvkrylovgmailcom
Основы предиктивной аналитики Часть вторая
Применение методов Machine Learning к решению задач аналитики
Дмитрий Ветров кандидат физико-математических наук ру
Методы обучающихся машин для аналитики которые мы рассмотрим
Сначала нужно загрузить несколько пакетов (packages) для поддер
Данные для анализа
Скрипт для генерации
Данные которые мы будем использовать для демо состоят из смес
Так выглядят визуализированные данные сгенерированные скриптом
Разделение данных на обучающие и проверочные является важным эт
K-means алгоритм на пальцах
Обучающаяся машина без учителя Алгоритм K-means
Slide 13
Slide 14
Здесь мы используем заранее известный факт что необходимо кла
Еще одна иллюстрация работы алгоритма K-means
Обучающаяся машина без учителя Алгоритм KNN (Nearest Neighbor)
Как работает алгоритм KNN
knn(train test cl k = 1 l = 0 prob = FALSE useall = TRUE
Slide 20
Результаты кластеризации и зависимость ошибки от числа кластеро
Recursive PartitioningRegression Tree
Метод RP реализует обучение машины строить дерево решений по об
Recursive PartitioningRegression Tree (2)
rpart(formula data weights subset naaction = narpart met
Slide 26
Recursive PartitioningRegression Tree example
Анализ по главным компонентам (Principal Component Analysis PC
Итеративные алгоритмы с оптимальным разреженным кодированием IS
Самоорганизация данных методами Deep Learning
Знакомство с пакетом deepnet
Прогнозирование (классификация) нейронной сетью с архитектурой
Arguments
Архитектура сети SAE
Архитектура с 5Х4 hidden 3 outs
Example
Анализ обучающего набора данных
Параметры SAE сети
Коэффициенты связей
Предсказание обученной сетью
Сравнение обучающей и тестовой выборки
plot3d(xy)
Работаем с пакетом MNIST
httpyannlecuncomexdbmnist
Подготовка к обработке
Slide 118
Визуализация
plotmnist()
Распознавание рукописных цифр в deepnet
End of slides part 2 (Part 3 - NLP remaining)
Метод RP реализует обучение машины строить дерево решений по обучающей выборке данных
bull laquoРасщеплениеraquo обучающих данныхМножество данных в каждом узле разделяется на два соответствующих ответам TRUE или FALSE Вопросы должны порождать бинарное разбиение множества Для числовых характеристик это обычно неравенства характеристика Xn меньше или равна значению Ym
bull Конструирование тест-вопросовПринцип putity measurement ndash очищающих измерений Каждая характеристика анализируется статистически для каждого разбиения и выбирается наилучшее по чистоте разделенияbull Критерий остановкиЧтобы избежать переобучения используется либо порог чистоты либо максимальное число узлов либо минимальное число наблюдений в узле
Recursive PartitioningRegression Tree
Пример расщепления обучающей выборки
rpart(formula data weights subset naaction = narpart method model = FALSE x = FALSE y = TRUE parms control cost )
formula a formula with a response but no interaction terms If this a a data frome that is taken as the model frame (see modelframe)
data an optional data frame in which to interpret the variables named in the formula
weights optional case weights
subset optional expression saying that only a subset of the rows of the data should be used in the fit
naaction the default action deletes all observations for which y is missing but keeps those in which one or more predictors are missing method one of anova poisson class or exp If method is missing then the routine tries to make an intelligent guess If y is a survival object then method = exp is assumed if y has 2 columns then method = poisson is assumed if y is a factor then method = class is assumed otherwise method = anova is assumed It is wisest to specify the method directly especially as more criteria may added to the function in future Alternatively method can be a list of functions named init split and eval Examples are given in the file lsquotestsusersplitsRrsquo in the sources and in the vignettes lsquoUser Written Split Functionsrsquo
model if logical keep a copy of the model frame in the result If the input value for model is a model frame (likely from an earlier call to the rpart function) then this frame is used rather than constructing new data
x keep a copy of the x matrix in the result
y keep a copy of the dependent variable in the result If missing and model is supplied this defaults to FALSE
parms optional parameters for the splitting function Anova splitting has no parameters Poisson splitting has a single parameter the coefficient of variation of the prior distribution on the rates The default value is 1 Exponential splitting has the same parameter as Poisson For classification splitting the list can contain any of the vector of prior probabilities (component prior) the loss matrix (component loss) or the splitting index (component split) The priors must be positive and sum to 1 The loss matrix must have zeros on the diagonal and positive off-diagonal elements The splitting index can be gini or information The default priors are proportional to the data counts the losses default to 1 and the split defaults to gini
control a list of options that control details of the rpart algorithm See rpartcontrol
cost a vector of non-negative costs one for each variable in the model Defaults to one for all variables These are scalings to be applied when considering splits so the improvement on splitting on a variable is divided by its cost in deciding which split to choose arguments to rpartcontrol may also be specified in the call to rpart They are checked against the list of valid arguments
Recursive PartitioningRegression Tree example(r lt- rpart(class ~ x + y data = train))plot(r)text(r)
Here we look at the confusion matrix and overall error rate from applying the tree rules to the training datapredicted lt- asnumeric(apply(predict(r) 1 function(r) order(-r)[1]))(m lt- cm (train$class predicted))1 - sum(diag(m)) sum(m)
And by comparison against the test datapredicted lt- asnumeric(apply(predict(r test[12]) 1 function(r) order(-r)[1]))(m lt- cm (test$class predicted))1 - sum(diag(m)) sum(m)
Анализ по главным компонентам (Principal Component Analysis PCA)Известно четыре базовых версии методаbull аппроксимировать данные линейными многообразиями меньшей
размерностиbull найти подпространства меньшей размерности в ортогональной проекции
на которые разброс данных (то есть среднеквадратичное отклонение от среднего значения) максимален
bull найти подпространства меньшей размерности в ортогональной проекции на которые среднеквадратичное расстояние между точками максимально
bull для данной многомерной случайной величины построить такое ортогональное преобразование координат в результате которого корреляции между отдельными координатами обратятся в нуль
В основе задача наилучшей аппроксимации конечного множества точек прямыми и плоскостями (Пирсон 1901) Дано конечное множество векторов для каждого k=01hellipn-1 среди всех k-мерных линейных многообразий в Rn найти такое что сумма квадратов уклонений минимальна
bull Графическая иллюстрация метода главных компонент в 3D
Алгоритм
bull Централизация данных
bull Находим первую главную компоненту
bull Вычитаем проекцию на нее
bull Находим вторую главную компоненту
bull Вычитаем проекцию на (k-1) главную компоненту
bull Находим k-ую главную компоненту
bull Всегда выполняется условие ортогональности
princomp(formula data = NULL subset naaction )formula a formula with no response variable referring only to numeric variables
data an optional data frame (or similar see modelframe) containing the variables in the formula formula By default the variables are taken from environment(formula)
subset an optional vector used to select rows (observations) of the data matrix x
naaction a function which indicates what should happen when the data contain NAs The default is set by the naaction setting of options and is nafail if that is unset The lsquofactory-freshrsquo default is naomit
x a numeric matrix or data frame which provides the data for the principal components analysis
cor a logical value indicating whether the calculation should use the correlation matrix or the covariance matrix (The correlation matrix can only be used if there are no constant variables)
scores a logical value indicating whether the score on each principal component should be calculated
covmat a covariance matrix or a covariance list as returned by covwt (and covmve or covmcd from package MASS) If supplied this is used rather than the covariance matrix of x
arguments passed to or from other methods If x is a formula one might specify cor or scores
object Object of class inheriting from princomp
newdata An optional data frame or matrix in which to look for variables with which to predict If omitted the scores are used If the original fit used a formula or a data frame or a matrix with column names newdata must contain columns with the same names Otherwise it must contain the same number of columns to be used in the same order
Principal Component Analysis (PCA)plt-princomp(train[12])train_pca lt- dataframe(p$scores)train_pca$class lt- train$class
Compare the alignment of the clusters to the axis in the feature space versus the transformed space
r2 lt- rpart(class ~ Comp1 + Comp2 data = train_pca)
Линейный дискриминантный анализ (Linear Discriminant Analysis - LDA)bull Для каждого образца объекта или события с известным классом y
рассматривается набор наблюдений x (называемых ещё признаками переменными или измерениями) Набор таких образцов называется обучающей выборкой (или набором обучения обучением) Задачи классификации состоит в том чтобы построить хороший прогноз класса y для всякого так же распределённого объекта (не обязательно содержащегося в обучающей выборке) имея только наблюдения x Основная идея состоит в сравнении распределений для каждого из классов Расстоянием (по Фишеру) между распределениями принято считать отношение межклассовой дисперсии к внутриклассовой
bull Оптимальное байесовское решение - относить точки ко второму классу если отношение правдоподобия ниже некоторого порогового значения T
bull Предполагая что выполнена нормировка
bull Решение записывается в виде неравенства для скалярного произведения
bull Здесь laquoизмерительныйraquo вектор равен
bull с- дискриминантный порог
lda(x grouping prior = proportions tol = 10e-4 method CV = FALSE nu )
formula A formula of the form groups ~ x1 + x2 + That is the response is the grouping factor and the right hand side specifies the (non-factor) discriminators
data Data frame from which variables specified in formula are preferentially to be taken
x (required if no formula is given as the principal argument) a matrix or data frame or Matrix containing the explanatory variables
grouping (required if no formula principal argument is given) a factor specifying the class for each observation
prior the prior probabilities of class membership If unspecified the class proportions for the training set are used If present the probabilities should be specified in the order of the factor levels
tol A tolerance to decide if a matrix is singular it will reject variables and linear combinations of unit-variance variables whose variance is less than tol^2
subset An index vector specifying the cases to be used in the training sample (NOTE If given this argument must be named)
naaction A function to specify the action to be taken if NAs are found The default action is for the procedure to fail An alternative is naomit which leads to rejection of cases with missing values on any required variable (NOTE If given this argument must be named)
method moment for standard estimators of the mean and variance mle for MLEs mve to use covmve or t for robust estimates based on a t distribution
CV If true returns results (classes and posterior probabilities) for leave-one-out cross-validation Note that if the prior is estimated the proportions in the whole dataset are used
nu degrees of freedom for method = t
arguments passed to or from other methods
prior the prior probabilities usedmeans the group meansscaling a matrix which transforms observations to
discriminant functions normalized so that within groups covariance matrix is spherical
svd the singular values which give the ratio of the between- and within-group standard deviations on the linear discriminant variables Their squares are the canonical F-statistics
N The number of observations usedcall The (matched) function call
An object of class lda containing the following components
Метод опорных векторов (Support Vector Machines - SVM)Относится к ML с учителем и использует линейные разделяющие поверхности
Идея алгоритма
bull По обучающей выборке
bull Строится классифицирующая функция
bull Используя гиперплоскость
bull Поиск коэффициентов сводится к максимизации
расстояний от опорных векторов или минимизации
Иллюстрация на простейшем примере
>
Производится вложение обучающей выборки в пространство более высокой размерности Х с помощью нелинейной функции так чтобы обеспечит линейную разделимость в Х
Разделяющая функция тогда имеет вид
Функция называется ядром
Полиномиальное ядро
Радиальная базисная функция
Сигмоид
Линейная неразделимость и использование ядер
Иллюстрация использования ядра для отображения 2D -gt 3D
>
svm((formula data = NULL subset naaction =naomit scale = TRUE))
formulaa symbolic description of the model to be fitdataan optional data frame containing the variables in the model By default the variables are taken from the environment which lsquosvmrsquo is called fromxa data matrix a vector or a sparse matrix (object of class Matrix provided by the Matrix package or of class matrixcsr provided by the SparseM package or of class simple_triplet_matrix provided by the slam package)ya response vector with one label for each rowcomponent of x Can be either a factor (for classification tasks) or a numeric vector (for regression)scaleA logical vector indicating the variables to be scaled If scale is of length 1 the value is recycled as many times as needed Per default data are scaled internally (both x and y variables) to zero mean and unit variance The center and scale values are returned and used for later predictionstypesvm can be used as a classification machine as a regression machine or for novelty detection Depending of whether y is a factor or not the default setting for type is C-classification or eps-regression respectively but may be overwritten by setting an explicit valueValid options areC-classificationnu-classificationone-classification (for novelty detection)eps-regressionnu-regression
Support Vector Machines
s lt- svm( I(factor(class)) ~ x + y data = train cost = 100 gama = 1)
Package lsquodeepnetrsquo February 19 2015 Type Package Title deep learning toolkit in R Version 02 Date 2014-03-20 Author Xiao Rong Maintainer Xiao Rong Description Implement some deep learning architectures and neural network algorithms including BPRBMDBNDeep autoencoder and so on License GPL NeedsCompilation no Repository CRAN DatePublication 2014-03-20 100343
laquoВ 1997 году Deep Blue обыграл в шахматы КаспароваВ 2011 Watson обставил чемпионов JeopardyСможет ли ваш алгоритм в 2013 году отличить Бобика от ПушистикаraquoKaggle Competitions Details
Сегодня уже можно ответить laquoдаraquo mdash десятка лидеров справилась с заданием на 988
Распознавание основано на feature detection и последующем различении комбинаций
Заранее неизвестно какие части картинки могут использоваться как хорошие features В их роли может выступать все что угодно mdash фрагменты изображения форма размер или цвет Feature может не присутствовать на картинке сама а выражаться в параметре полученным каким-то образом из исходных данных
Распознавание рукописных цифр
Еще пример посложнее
Использование нейронной сети с обучениемОбучение такой нейронной сети производится обычно методом обратного распространения ошибки таким образом чтобы минимизировать среднеквадратическую ошибку отклика сети на обучающей выборке Таким образом обучающая выборка содержит пары векторов признаков (входные данные) и эталонных векторов (маркированные данные) (x y)
Сверхвысокая размерность при работе с первичным представлением пикселями
Пиксельное кодирование
Принцип иерархии понятий ndash основа deep learning
bull Все вещи состоят из других маленьких и более элементарных вещей
bull Как извлекать features Гипотеза малоразмерных многообразий
Разреженное (sparse) кодирование
первый уровень иерархии состоит из элементов словаря этого кода которые представляют собой штрихи и границы
Словарь для лиц
Выделение объектов заданного класса
Основные архитектуры Deep Learningbull Deep neural networks (DNN)bull Deep belief networks (DBN)bull Convolutional neural networks (CNN)bull Deep Boltzmann Machines (DBM)bull Stacked (Denoising) Auto-Encodersbull Deep Stacking Networksbull Tensor Deep Stacking Networks (T-DSN)bull Spike-and-Slab RBMs (ssRBMs)bull Compound Hierarchical-Deep Modelsbull Deep Coding Networks (DPCN)bull Deep Kernel Machinesbull Deep Q-Networks (2015 г)
Задача классификации распознавания и подобные являются задачей конструирования функции на множестве входных наборов и со значениями в множестве требуемого вида выходных
bull Норбертом Винером было показано что любая функция может быть сколь угодно точно композицией двух (он использовал функции полином Лагранжа и функцию Лагерра)
bull Соответствует двухслойной нейросетиbull Архитектуры Deep Learning соответствуют представлению
bull Обеспечивают эффективную параметризацию при решении конкретных задач Более сложные функции создаются из большего числа но более эффективно настраиваемых laquoкирпичиковraquo Пример ndash синтез булевых функций Дерево вентилей эффективнее двухслойной схемы
Фактор - графыВсе методы которые расмотрели ndash не DL Даже деревья классификации Все операции в одном входном словаре
DL можно определить по фактор-графу
Например
bull Еще одна сторона DL - нередко использует невыпуклые функции потерьbull Обучение на основе выпуклых функций не зависит от порядка
предъявления данных для обучения Все определяет асимптотика всего train - набора В алгоритмах DL порядок данных в обучающей выборке может иметь значение
bull Многие решения в DL не доказаны математически и являются успешными эвристиками
bull Большой простор для прикладной математики Может рассматриваться как фактор-граф с группами латентных переменных
bull В настоящее время стал основной технологией в распознавании речи (speech recognition) и машинном зрении (computer vision) начал применяться в обработке текстов (natural language processing)
bull Основная идея ndash применение нелинейного отображения входного набора в более высокоразмерное пространство где многие неразделимые композиции становятся разделимыми а затем объединение композиций по семантической близости
Подход разреженного кодирования
Обобщенная архитектура
bull DL сеть может быть собрана каскадированием и использованием обучения с учителем
Здесь используется forward propagation для обучения
Для настройки коэффициентов используется метод fprof для каждого
Требуется знание градиента энергии
Элементы (kl) матрицы Якобиана
Требуется знание градиента энергии 120597119864120597119882119894 = 120597119864120597119883119894120597119865119894(119883119894minus1119882119894)120597119882119894
ሾ1times 119873119908ሿ= ሾ1times 119873119909ሿlowast[119873119909 times 119873119908] Элементы (kl) матрицы Якобиана
Сводится к рекуррентному соотношению для вычисления градиента 120597119864120597119883119894minus1 = 120597119864120597119883119894120597119865119894(119883119894minus1119882119894)120597119883119894minus1
В итоге
Для вычисления градиента может использоваться метод back propagation
В действительности работают любые архитектуры построения функции Нужно конструировать связи и функции блоков
Язык Torch 7 ndash современный инструмент моделирования и имплементации
Machine Learning with Torch7 (httpcodecogbitscomwikidokuphpid=start)
bull These tutorials were originally designed for the IPAM Summer School on Deep Learning more info herebull This wiki provides multiple tutorials with the overall objective of teaching you how to do machine learning
with Torch7bull Torch7 provides a Matlab-like environment for state-of-the-art machine learning algorithms It is easy to use
and provides a very efficient implementation thanks to an easy and fast scripting language (LuaJIT) and an underlying C implementation
bull These tutorials should be readdone in orderbull Tutorial 1 Setup Basics Getting Startedbull Tutorial 2 Supervised Learningbull Tutorial 3 Unsupervised Learningbull Tutorial 4 Graphical Modelsbull Tutorial 5 Creating New Modulesbull Tutorial 6 Using CUDAbull To follow these tutorials and do the exercises you will need to download the associated code which is hosted
on GitHub on this page In this repository each directory corresponds to a tutorial herebull starttxt middot Last modified 20140204 2246 by clement
Torch 7 является расширением Lua
What is LuaLua is a powerful fast lightweight embeddable scripting languageLua combines simple procedural syntax with powerful data description constructs based on associative arrays and extensible semantics Lua is dynamically typed runs by interpreting bytecode for a register-based virtual machine and has automatic memory management with incremental garbage collection making it ideal for configuration scripting and rapid prototyping
Why choose LuaLua is a proven robust languageLua has been used in many industrial applications (eg Adobes Photoshop Lightroom) with an emphasis on embedded systems (eg the Ginga middleware for digital TV in Brazil) and games (eg World of Warcraft and Angry Birds) Lua is currently the leading scripting language in games Lua has a solid reference manual and there are several books about it Several versions of Lua have been released and used in real applications since its creation in 1993 Lua featured in HOPL III the Third ACM SIGPLAN History of Programming Languages Conference in June 2007 Lua won the Front Line Award 2011 from the Game Developers Magazine
Свертка и архитектура 4-х уровневой сверточной сети
Функциональная структура
Примеры успешного применения сверточных сетей
Диагностика эпилепсии по ЭЭГ
Реализация сверточной сетью
Одна из самых больших сверточных сетейbull Krizhevsky Sutskever Hinton 2012bull 650 000 нейронов 832 000 000 синапсов 60 000000 пареметровbull Использовался backprop на GPUbull Обучающая выборка на материалах 20 летbull Купил Google в январе 2013bull В мае 2013 развернул как сервис Photo Tagging Google+
Пример тэгирования
Пример поиска похожих по изображению
Пример поиска в коллекции изображений по текстовому запросу
Пример laquoоблачногоraquo классификатора изображений
Самообучающиеся нейронные сети на основе минимизации функции энергииbull Применима к сетям с обратными связямиbull Конструирование функции энергии должно обеспечивать
laquoконтрастностьraquo разделения
bull Энергетическая функция может Неформально рассматриваться как отрицательный логарифм плотности вероятности
Y 2=(Y1)2
RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцмана
bull Из DBM cтроится Deep Belief Network (DBN)
bull w mdash вес между нейронами
bull b mdash смещение нейрона
bull s mdash состояние нейрона
Алгоритм обучения Contrastive Divergence (CD)bull w_ij mdash веc между i-ым нейроном Вероятность пар может быть представлена как
bull a_i mdash смещение видимого нейрона
bull b_j mdash смещение скрытого нейрона
bull v_i mdash состояние видимого нейрона
bull h_j mdash состояние скрытого нейрона Полная вероятность состояния видимых нейронов
Основные уравнения адаптации
Алгоритм Хинтона - Contrastive Divergence (CD-k)
1 состояние видимых нейронов приравнивается к входному образу2 выводятся вероятности состояний скрытого слоя3 каждому нейрону скрытого слоя ставится в соответствие состояние laquo1raquo с вероятностью равной его текущему состоянию4 выводятся вероятности видимого слоя на основании скрытого5 если текущая итерация меньше k то возврат к шагу 26 выводятся вероятности состояний скрытого слоя
darch Package for deep architectures and Restricted-Bolzmann-MachinesThe darch package is build on the basis of the code from G E Hinton and R R Salakhutdinov (available under Matlab Code for deep belief nets last visit 01082013) This package is for generating neural networks with many layers (deep architectures) and train them with the method introduced by the publications A fast learning algorithm for deep belief nets (G E Hinton S Osindero Y W Teh) and Reducing the dimensionality of data with neural networks (G E Hinton R R Salakhutdinov) This method includes a pre training with the contrastive divergence method publishing by GE Hinton (2002) and a fine tuning with common known training algorithms like backpropagation or conjugate gradient
bull Version 091bull Imports futilelogger ff methodsbull Published 2014-03-16bull Author Martin Dreesbull Maintainer Martin Drees ltmdrees at studfh-dortmunddegtbull License GPL-2bull URL httpgithubcommaddin79darchbull NeedsCompilation nobull Materials READMEbull CRAN checks darch results
Связь плотности вероятности и энергии
Используется распределение Гиббса
Задача обучения с точки минимизации энергии сети
bull Сконструировать функцию энергии с малыми значениями на обучающей выборке и с большими значениями всюду вне этого множества
bull Первое несложно а второе представляет задачу процесса обучения
Интуитивные соображения
Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decomposition LISTA ndashметоды использующие разреженные коды
Латентная переменная Z =argmin_z Distance[Decoder(Z)Y]+FactorB(Z)MAPminimaize sum of factors
Автоэнкодер (auto encoder) Автоэнкодер представляет собой алгоритм обучения без учителя который использует нейронную сеть и метод обратного распространения ошибки для того чтобы добиться того что входной вектор признаков вызывал отклик сети равный входному вектору те y = x Автоэнкодер пытается построить функцию h(x) = x
Архитекттура ICA моделей
Итеративные алгоритмы с оптимальным разреженным кодированием ISTAFISTA
Самоорганизация данных методами Deep Learning
>
Знакомство с пакетом deepnet
Назначение
Составdbndnntrain - обучение сети с архитектурой DBN (deep belief network)loadmnist - формирование данных из файлов MNISTnnpredict - предсказание новых выборок на обученной нейронной сетиnntest ndash тестирование обученной нейронной сети с возвращением значения ошибкиnntrain ndash обучение одностлойной или многослойной нейронной сети методом backproprbmdown ndash генерирование видимого вектора для скрытых состояний сети RBMrbmtrain ndash обучение сети RBMrbmup ndash извлечение скрытых состояний RBM по известным видимым состояниямsaednntrain ndash обучение нейронной сети с архитектурой stacked autoencoder
Прогнозирование (классификация) нейронной сетью с архитектурой stacked auto encoder
Argumentsbull x matrix of x values for examplesbull y vector or matrix of target values for examplesbull hidden vector for number of units of hidden layersDefault is c(10)bull activationfun activation function of hidden unitCan be sigmlinear or tanhDefault isbull sigm for logistic functionbull learningrate learning rate for gradient descent Default is 08bull momentum momentum for gradient descent Default is 05 bull learningrate_scalebull learning rate will be mutiplied by this scale after every iteration Default is 1 bull numepochs number of iteration for samples Default is 3bull batchsize size of mini-batch Default is 100bull output function of output unit can be sigmlinear or softmax Default is sigmbull sae_output function of autoencoder output unit can be sigmlinear or softmax Defaultbull is linearbull hidden_dropout drop out fraction for hidden layer Default is 0bull visible_dropoutbull drop out fraction for input layer Default is 0
Что такое MNISTbull Смешанный набор данных Национального института стандартов и
технологий (mixed National Institute of Standards and Technology MNIST) был создан исследователями IR в качестве эталона для сравнения различных алгоритмов IR
bull Набор данных состоит всего из 70 000 изображений 60 000 обучающих (используемых для создания модели IR) и 10 000 тестовых (применяемых для оценки точности модели) Каждое изображение MNIST mdash это оцифрованная картинка одной цифры написанной от руки Каждое изображение имеет размер 28 times 28 пикселей Каждое значение пикселя лежит в диапазоне от 0 (представляет белый цвет) до 255 (представляет черный цвет) Промежуточные значения отражают оттенки серого
httpyannlecuncomexdbmnistобучающие и тестовые данные хранятся в двух файлах а не в одном Один файл содержит значения пикселей для изображений а другой mdash метки изображений (0ndash9) Каждый из четырех файлов также содержит заголовочную информацию и все они хранятся в двоичном формате сжатом в формате gziptrain-images-idx3-ubytegz training set images (9912422 bytes)
train-labels-idx1-ubytegz training set labels (28881 bytes)
t10k-images-idx3-ubytegz test set images (1648877 bytes)
t10k-labels-idx1-ubytegz test set labels (4542 bytes)
bull Каждая строка файла представляет собой имидж размера 28 times 28 вектором длины 784 каждый признак ndash значение пиксела в черно-белой шале Первый столбец содержит метку цифры 0ndash9 следующие 2828 столбцов представляют целый имидж и так далее Пример первой строки
Визуализация
bull plotmnist()bull mnistbull paramsbull train$n number of train samplesbull train$x pix of every train sample imagebull train$y label of every train sample imagebull train$yy one-of-c vector of label of train sample imagebull test$n number of test samplesbull test$x pix of every test sample imagebull test$y label of every test sample imagebull test$yy one-of-c vector of label of test sample image
plotmnist()
Распознавание рукописных цифр в deepnet
another way to download the MNIST datasetmnist downloadmnist(range=c(01)global=FALSE)look at MNIST datamnist$train$xmnist$train$ymnist$test$xmnist$test$ytrain of the sae neural networkdnnlt-saednntrain(mnist$train$xmnist$train$yhidden=c(55))test of the sae neural networknntest(dnnmnist$test$xmnist$test$yt=05)
End of slides part 2 (Part 3 - NLP remaining)
Vladimirvkrylovgmailcom
Основы предиктивной аналитики Часть вторая
Применение методов Machine Learning к решению задач аналитики
Дмитрий Ветров кандидат физико-математических наук ру
Методы обучающихся машин для аналитики которые мы рассмотрим
Сначала нужно загрузить несколько пакетов (packages) для поддер
Данные для анализа
Скрипт для генерации
Данные которые мы будем использовать для демо состоят из смес
Так выглядят визуализированные данные сгенерированные скриптом
Разделение данных на обучающие и проверочные является важным эт
K-means алгоритм на пальцах
Обучающаяся машина без учителя Алгоритм K-means
Slide 13
Slide 14
Здесь мы используем заранее известный факт что необходимо кла
Еще одна иллюстрация работы алгоритма K-means
Обучающаяся машина без учителя Алгоритм KNN (Nearest Neighbor)
Как работает алгоритм KNN
knn(train test cl k = 1 l = 0 prob = FALSE useall = TRUE
Slide 20
Результаты кластеризации и зависимость ошибки от числа кластеро
Recursive PartitioningRegression Tree
Метод RP реализует обучение машины строить дерево решений по об
Recursive PartitioningRegression Tree (2)
rpart(formula data weights subset naaction = narpart met
Slide 26
Recursive PartitioningRegression Tree example
Анализ по главным компонентам (Principal Component Analysis PC
Итеративные алгоритмы с оптимальным разреженным кодированием IS
Самоорганизация данных методами Deep Learning
Знакомство с пакетом deepnet
Прогнозирование (классификация) нейронной сетью с архитектурой
Arguments
Архитектура сети SAE
Архитектура с 5Х4 hidden 3 outs
Example
Анализ обучающего набора данных
Параметры SAE сети
Коэффициенты связей
Предсказание обученной сетью
Сравнение обучающей и тестовой выборки
plot3d(xy)
Работаем с пакетом MNIST
httpyannlecuncomexdbmnist
Подготовка к обработке
Slide 118
Визуализация
plotmnist()
Распознавание рукописных цифр в deepnet
End of slides part 2 (Part 3 - NLP remaining)
Recursive PartitioningRegression Tree
Пример расщепления обучающей выборки
rpart(formula data weights subset naaction = narpart method model = FALSE x = FALSE y = TRUE parms control cost )
formula a formula with a response but no interaction terms If this a a data frome that is taken as the model frame (see modelframe)
data an optional data frame in which to interpret the variables named in the formula
weights optional case weights
subset optional expression saying that only a subset of the rows of the data should be used in the fit
naaction the default action deletes all observations for which y is missing but keeps those in which one or more predictors are missing method one of anova poisson class or exp If method is missing then the routine tries to make an intelligent guess If y is a survival object then method = exp is assumed if y has 2 columns then method = poisson is assumed if y is a factor then method = class is assumed otherwise method = anova is assumed It is wisest to specify the method directly especially as more criteria may added to the function in future Alternatively method can be a list of functions named init split and eval Examples are given in the file lsquotestsusersplitsRrsquo in the sources and in the vignettes lsquoUser Written Split Functionsrsquo
model if logical keep a copy of the model frame in the result If the input value for model is a model frame (likely from an earlier call to the rpart function) then this frame is used rather than constructing new data
x keep a copy of the x matrix in the result
y keep a copy of the dependent variable in the result If missing and model is supplied this defaults to FALSE
parms optional parameters for the splitting function Anova splitting has no parameters Poisson splitting has a single parameter the coefficient of variation of the prior distribution on the rates The default value is 1 Exponential splitting has the same parameter as Poisson For classification splitting the list can contain any of the vector of prior probabilities (component prior) the loss matrix (component loss) or the splitting index (component split) The priors must be positive and sum to 1 The loss matrix must have zeros on the diagonal and positive off-diagonal elements The splitting index can be gini or information The default priors are proportional to the data counts the losses default to 1 and the split defaults to gini
control a list of options that control details of the rpart algorithm See rpartcontrol
cost a vector of non-negative costs one for each variable in the model Defaults to one for all variables These are scalings to be applied when considering splits so the improvement on splitting on a variable is divided by its cost in deciding which split to choose arguments to rpartcontrol may also be specified in the call to rpart They are checked against the list of valid arguments
Recursive PartitioningRegression Tree example(r lt- rpart(class ~ x + y data = train))plot(r)text(r)
Here we look at the confusion matrix and overall error rate from applying the tree rules to the training datapredicted lt- asnumeric(apply(predict(r) 1 function(r) order(-r)[1]))(m lt- cm (train$class predicted))1 - sum(diag(m)) sum(m)
And by comparison against the test datapredicted lt- asnumeric(apply(predict(r test[12]) 1 function(r) order(-r)[1]))(m lt- cm (test$class predicted))1 - sum(diag(m)) sum(m)
Анализ по главным компонентам (Principal Component Analysis PCA)Известно четыре базовых версии методаbull аппроксимировать данные линейными многообразиями меньшей
размерностиbull найти подпространства меньшей размерности в ортогональной проекции
на которые разброс данных (то есть среднеквадратичное отклонение от среднего значения) максимален
bull найти подпространства меньшей размерности в ортогональной проекции на которые среднеквадратичное расстояние между точками максимально
bull для данной многомерной случайной величины построить такое ортогональное преобразование координат в результате которого корреляции между отдельными координатами обратятся в нуль
В основе задача наилучшей аппроксимации конечного множества точек прямыми и плоскостями (Пирсон 1901) Дано конечное множество векторов для каждого k=01hellipn-1 среди всех k-мерных линейных многообразий в Rn найти такое что сумма квадратов уклонений минимальна
bull Графическая иллюстрация метода главных компонент в 3D
Алгоритм
bull Централизация данных
bull Находим первую главную компоненту
bull Вычитаем проекцию на нее
bull Находим вторую главную компоненту
bull Вычитаем проекцию на (k-1) главную компоненту
bull Находим k-ую главную компоненту
bull Всегда выполняется условие ортогональности
princomp(formula data = NULL subset naaction )formula a formula with no response variable referring only to numeric variables
data an optional data frame (or similar see modelframe) containing the variables in the formula formula By default the variables are taken from environment(formula)
subset an optional vector used to select rows (observations) of the data matrix x
naaction a function which indicates what should happen when the data contain NAs The default is set by the naaction setting of options and is nafail if that is unset The lsquofactory-freshrsquo default is naomit
x a numeric matrix or data frame which provides the data for the principal components analysis
cor a logical value indicating whether the calculation should use the correlation matrix or the covariance matrix (The correlation matrix can only be used if there are no constant variables)
scores a logical value indicating whether the score on each principal component should be calculated
covmat a covariance matrix or a covariance list as returned by covwt (and covmve or covmcd from package MASS) If supplied this is used rather than the covariance matrix of x
arguments passed to or from other methods If x is a formula one might specify cor or scores
object Object of class inheriting from princomp
newdata An optional data frame or matrix in which to look for variables with which to predict If omitted the scores are used If the original fit used a formula or a data frame or a matrix with column names newdata must contain columns with the same names Otherwise it must contain the same number of columns to be used in the same order
Principal Component Analysis (PCA)plt-princomp(train[12])train_pca lt- dataframe(p$scores)train_pca$class lt- train$class
Compare the alignment of the clusters to the axis in the feature space versus the transformed space
r2 lt- rpart(class ~ Comp1 + Comp2 data = train_pca)
Линейный дискриминантный анализ (Linear Discriminant Analysis - LDA)bull Для каждого образца объекта или события с известным классом y
рассматривается набор наблюдений x (называемых ещё признаками переменными или измерениями) Набор таких образцов называется обучающей выборкой (или набором обучения обучением) Задачи классификации состоит в том чтобы построить хороший прогноз класса y для всякого так же распределённого объекта (не обязательно содержащегося в обучающей выборке) имея только наблюдения x Основная идея состоит в сравнении распределений для каждого из классов Расстоянием (по Фишеру) между распределениями принято считать отношение межклассовой дисперсии к внутриклассовой
bull Оптимальное байесовское решение - относить точки ко второму классу если отношение правдоподобия ниже некоторого порогового значения T
bull Предполагая что выполнена нормировка
bull Решение записывается в виде неравенства для скалярного произведения
bull Здесь laquoизмерительныйraquo вектор равен
bull с- дискриминантный порог
lda(x grouping prior = proportions tol = 10e-4 method CV = FALSE nu )
formula A formula of the form groups ~ x1 + x2 + That is the response is the grouping factor and the right hand side specifies the (non-factor) discriminators
data Data frame from which variables specified in formula are preferentially to be taken
x (required if no formula is given as the principal argument) a matrix or data frame or Matrix containing the explanatory variables
grouping (required if no formula principal argument is given) a factor specifying the class for each observation
prior the prior probabilities of class membership If unspecified the class proportions for the training set are used If present the probabilities should be specified in the order of the factor levels
tol A tolerance to decide if a matrix is singular it will reject variables and linear combinations of unit-variance variables whose variance is less than tol^2
subset An index vector specifying the cases to be used in the training sample (NOTE If given this argument must be named)
naaction A function to specify the action to be taken if NAs are found The default action is for the procedure to fail An alternative is naomit which leads to rejection of cases with missing values on any required variable (NOTE If given this argument must be named)
method moment for standard estimators of the mean and variance mle for MLEs mve to use covmve or t for robust estimates based on a t distribution
CV If true returns results (classes and posterior probabilities) for leave-one-out cross-validation Note that if the prior is estimated the proportions in the whole dataset are used
nu degrees of freedom for method = t
arguments passed to or from other methods
prior the prior probabilities usedmeans the group meansscaling a matrix which transforms observations to
discriminant functions normalized so that within groups covariance matrix is spherical
svd the singular values which give the ratio of the between- and within-group standard deviations on the linear discriminant variables Their squares are the canonical F-statistics
N The number of observations usedcall The (matched) function call
An object of class lda containing the following components
Метод опорных векторов (Support Vector Machines - SVM)Относится к ML с учителем и использует линейные разделяющие поверхности
Идея алгоритма
bull По обучающей выборке
bull Строится классифицирующая функция
bull Используя гиперплоскость
bull Поиск коэффициентов сводится к максимизации
расстояний от опорных векторов или минимизации
Иллюстрация на простейшем примере
>
Производится вложение обучающей выборки в пространство более высокой размерности Х с помощью нелинейной функции так чтобы обеспечит линейную разделимость в Х
Разделяющая функция тогда имеет вид
Функция называется ядром
Полиномиальное ядро
Радиальная базисная функция
Сигмоид
Линейная неразделимость и использование ядер
Иллюстрация использования ядра для отображения 2D -gt 3D
>
svm((formula data = NULL subset naaction =naomit scale = TRUE))
formulaa symbolic description of the model to be fitdataan optional data frame containing the variables in the model By default the variables are taken from the environment which lsquosvmrsquo is called fromxa data matrix a vector or a sparse matrix (object of class Matrix provided by the Matrix package or of class matrixcsr provided by the SparseM package or of class simple_triplet_matrix provided by the slam package)ya response vector with one label for each rowcomponent of x Can be either a factor (for classification tasks) or a numeric vector (for regression)scaleA logical vector indicating the variables to be scaled If scale is of length 1 the value is recycled as many times as needed Per default data are scaled internally (both x and y variables) to zero mean and unit variance The center and scale values are returned and used for later predictionstypesvm can be used as a classification machine as a regression machine or for novelty detection Depending of whether y is a factor or not the default setting for type is C-classification or eps-regression respectively but may be overwritten by setting an explicit valueValid options areC-classificationnu-classificationone-classification (for novelty detection)eps-regressionnu-regression
Support Vector Machines
s lt- svm( I(factor(class)) ~ x + y data = train cost = 100 gama = 1)
Package lsquodeepnetrsquo February 19 2015 Type Package Title deep learning toolkit in R Version 02 Date 2014-03-20 Author Xiao Rong Maintainer Xiao Rong Description Implement some deep learning architectures and neural network algorithms including BPRBMDBNDeep autoencoder and so on License GPL NeedsCompilation no Repository CRAN DatePublication 2014-03-20 100343
laquoВ 1997 году Deep Blue обыграл в шахматы КаспароваВ 2011 Watson обставил чемпионов JeopardyСможет ли ваш алгоритм в 2013 году отличить Бобика от ПушистикаraquoKaggle Competitions Details
Сегодня уже можно ответить laquoдаraquo mdash десятка лидеров справилась с заданием на 988
Распознавание основано на feature detection и последующем различении комбинаций
Заранее неизвестно какие части картинки могут использоваться как хорошие features В их роли может выступать все что угодно mdash фрагменты изображения форма размер или цвет Feature может не присутствовать на картинке сама а выражаться в параметре полученным каким-то образом из исходных данных
Распознавание рукописных цифр
Еще пример посложнее
Использование нейронной сети с обучениемОбучение такой нейронной сети производится обычно методом обратного распространения ошибки таким образом чтобы минимизировать среднеквадратическую ошибку отклика сети на обучающей выборке Таким образом обучающая выборка содержит пары векторов признаков (входные данные) и эталонных векторов (маркированные данные) (x y)
Сверхвысокая размерность при работе с первичным представлением пикселями
Пиксельное кодирование
Принцип иерархии понятий ndash основа deep learning
bull Все вещи состоят из других маленьких и более элементарных вещей
bull Как извлекать features Гипотеза малоразмерных многообразий
Разреженное (sparse) кодирование
первый уровень иерархии состоит из элементов словаря этого кода которые представляют собой штрихи и границы
Словарь для лиц
Выделение объектов заданного класса
Основные архитектуры Deep Learningbull Deep neural networks (DNN)bull Deep belief networks (DBN)bull Convolutional neural networks (CNN)bull Deep Boltzmann Machines (DBM)bull Stacked (Denoising) Auto-Encodersbull Deep Stacking Networksbull Tensor Deep Stacking Networks (T-DSN)bull Spike-and-Slab RBMs (ssRBMs)bull Compound Hierarchical-Deep Modelsbull Deep Coding Networks (DPCN)bull Deep Kernel Machinesbull Deep Q-Networks (2015 г)
Задача классификации распознавания и подобные являются задачей конструирования функции на множестве входных наборов и со значениями в множестве требуемого вида выходных
bull Норбертом Винером было показано что любая функция может быть сколь угодно точно композицией двух (он использовал функции полином Лагранжа и функцию Лагерра)
bull Соответствует двухслойной нейросетиbull Архитектуры Deep Learning соответствуют представлению
bull Обеспечивают эффективную параметризацию при решении конкретных задач Более сложные функции создаются из большего числа но более эффективно настраиваемых laquoкирпичиковraquo Пример ndash синтез булевых функций Дерево вентилей эффективнее двухслойной схемы
Фактор - графыВсе методы которые расмотрели ndash не DL Даже деревья классификации Все операции в одном входном словаре
DL можно определить по фактор-графу
Например
bull Еще одна сторона DL - нередко использует невыпуклые функции потерьbull Обучение на основе выпуклых функций не зависит от порядка
предъявления данных для обучения Все определяет асимптотика всего train - набора В алгоритмах DL порядок данных в обучающей выборке может иметь значение
bull Многие решения в DL не доказаны математически и являются успешными эвристиками
bull Большой простор для прикладной математики Может рассматриваться как фактор-граф с группами латентных переменных
bull В настоящее время стал основной технологией в распознавании речи (speech recognition) и машинном зрении (computer vision) начал применяться в обработке текстов (natural language processing)
bull Основная идея ndash применение нелинейного отображения входного набора в более высокоразмерное пространство где многие неразделимые композиции становятся разделимыми а затем объединение композиций по семантической близости
Подход разреженного кодирования
Обобщенная архитектура
bull DL сеть может быть собрана каскадированием и использованием обучения с учителем
Здесь используется forward propagation для обучения
Для настройки коэффициентов используется метод fprof для каждого
Требуется знание градиента энергии
Элементы (kl) матрицы Якобиана
Требуется знание градиента энергии 120597119864120597119882119894 = 120597119864120597119883119894120597119865119894(119883119894minus1119882119894)120597119882119894
ሾ1times 119873119908ሿ= ሾ1times 119873119909ሿlowast[119873119909 times 119873119908] Элементы (kl) матрицы Якобиана
Сводится к рекуррентному соотношению для вычисления градиента 120597119864120597119883119894minus1 = 120597119864120597119883119894120597119865119894(119883119894minus1119882119894)120597119883119894minus1
В итоге
Для вычисления градиента может использоваться метод back propagation
В действительности работают любые архитектуры построения функции Нужно конструировать связи и функции блоков
Язык Torch 7 ndash современный инструмент моделирования и имплементации
Machine Learning with Torch7 (httpcodecogbitscomwikidokuphpid=start)
bull These tutorials were originally designed for the IPAM Summer School on Deep Learning more info herebull This wiki provides multiple tutorials with the overall objective of teaching you how to do machine learning
with Torch7bull Torch7 provides a Matlab-like environment for state-of-the-art machine learning algorithms It is easy to use
and provides a very efficient implementation thanks to an easy and fast scripting language (LuaJIT) and an underlying C implementation
bull These tutorials should be readdone in orderbull Tutorial 1 Setup Basics Getting Startedbull Tutorial 2 Supervised Learningbull Tutorial 3 Unsupervised Learningbull Tutorial 4 Graphical Modelsbull Tutorial 5 Creating New Modulesbull Tutorial 6 Using CUDAbull To follow these tutorials and do the exercises you will need to download the associated code which is hosted
on GitHub on this page In this repository each directory corresponds to a tutorial herebull starttxt middot Last modified 20140204 2246 by clement
Torch 7 является расширением Lua
What is LuaLua is a powerful fast lightweight embeddable scripting languageLua combines simple procedural syntax with powerful data description constructs based on associative arrays and extensible semantics Lua is dynamically typed runs by interpreting bytecode for a register-based virtual machine and has automatic memory management with incremental garbage collection making it ideal for configuration scripting and rapid prototyping
Why choose LuaLua is a proven robust languageLua has been used in many industrial applications (eg Adobes Photoshop Lightroom) with an emphasis on embedded systems (eg the Ginga middleware for digital TV in Brazil) and games (eg World of Warcraft and Angry Birds) Lua is currently the leading scripting language in games Lua has a solid reference manual and there are several books about it Several versions of Lua have been released and used in real applications since its creation in 1993 Lua featured in HOPL III the Third ACM SIGPLAN History of Programming Languages Conference in June 2007 Lua won the Front Line Award 2011 from the Game Developers Magazine
Свертка и архитектура 4-х уровневой сверточной сети
Функциональная структура
Примеры успешного применения сверточных сетей
Диагностика эпилепсии по ЭЭГ
Реализация сверточной сетью
Одна из самых больших сверточных сетейbull Krizhevsky Sutskever Hinton 2012bull 650 000 нейронов 832 000 000 синапсов 60 000000 пареметровbull Использовался backprop на GPUbull Обучающая выборка на материалах 20 летbull Купил Google в январе 2013bull В мае 2013 развернул как сервис Photo Tagging Google+
Пример тэгирования
Пример поиска похожих по изображению
Пример поиска в коллекции изображений по текстовому запросу
Пример laquoоблачногоraquo классификатора изображений
Самообучающиеся нейронные сети на основе минимизации функции энергииbull Применима к сетям с обратными связямиbull Конструирование функции энергии должно обеспечивать
laquoконтрастностьraquo разделения
bull Энергетическая функция может Неформально рассматриваться как отрицательный логарифм плотности вероятности
Y 2=(Y1)2
RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцмана
bull Из DBM cтроится Deep Belief Network (DBN)
bull w mdash вес между нейронами
bull b mdash смещение нейрона
bull s mdash состояние нейрона
Алгоритм обучения Contrastive Divergence (CD)bull w_ij mdash веc между i-ым нейроном Вероятность пар может быть представлена как
bull a_i mdash смещение видимого нейрона
bull b_j mdash смещение скрытого нейрона
bull v_i mdash состояние видимого нейрона
bull h_j mdash состояние скрытого нейрона Полная вероятность состояния видимых нейронов
Основные уравнения адаптации
Алгоритм Хинтона - Contrastive Divergence (CD-k)
1 состояние видимых нейронов приравнивается к входному образу2 выводятся вероятности состояний скрытого слоя3 каждому нейрону скрытого слоя ставится в соответствие состояние laquo1raquo с вероятностью равной его текущему состоянию4 выводятся вероятности видимого слоя на основании скрытого5 если текущая итерация меньше k то возврат к шагу 26 выводятся вероятности состояний скрытого слоя
darch Package for deep architectures and Restricted-Bolzmann-MachinesThe darch package is build on the basis of the code from G E Hinton and R R Salakhutdinov (available under Matlab Code for deep belief nets last visit 01082013) This package is for generating neural networks with many layers (deep architectures) and train them with the method introduced by the publications A fast learning algorithm for deep belief nets (G E Hinton S Osindero Y W Teh) and Reducing the dimensionality of data with neural networks (G E Hinton R R Salakhutdinov) This method includes a pre training with the contrastive divergence method publishing by GE Hinton (2002) and a fine tuning with common known training algorithms like backpropagation or conjugate gradient
bull Version 091bull Imports futilelogger ff methodsbull Published 2014-03-16bull Author Martin Dreesbull Maintainer Martin Drees ltmdrees at studfh-dortmunddegtbull License GPL-2bull URL httpgithubcommaddin79darchbull NeedsCompilation nobull Materials READMEbull CRAN checks darch results
Связь плотности вероятности и энергии
Используется распределение Гиббса
Задача обучения с точки минимизации энергии сети
bull Сконструировать функцию энергии с малыми значениями на обучающей выборке и с большими значениями всюду вне этого множества
bull Первое несложно а второе представляет задачу процесса обучения
Интуитивные соображения
Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decomposition LISTA ndashметоды использующие разреженные коды
Латентная переменная Z =argmin_z Distance[Decoder(Z)Y]+FactorB(Z)MAPminimaize sum of factors
Автоэнкодер (auto encoder) Автоэнкодер представляет собой алгоритм обучения без учителя который использует нейронную сеть и метод обратного распространения ошибки для того чтобы добиться того что входной вектор признаков вызывал отклик сети равный входному вектору те y = x Автоэнкодер пытается построить функцию h(x) = x
Архитекттура ICA моделей
Итеративные алгоритмы с оптимальным разреженным кодированием ISTAFISTA
Самоорганизация данных методами Deep Learning
>
Знакомство с пакетом deepnet
Назначение
Составdbndnntrain - обучение сети с архитектурой DBN (deep belief network)loadmnist - формирование данных из файлов MNISTnnpredict - предсказание новых выборок на обученной нейронной сетиnntest ndash тестирование обученной нейронной сети с возвращением значения ошибкиnntrain ndash обучение одностлойной или многослойной нейронной сети методом backproprbmdown ndash генерирование видимого вектора для скрытых состояний сети RBMrbmtrain ndash обучение сети RBMrbmup ndash извлечение скрытых состояний RBM по известным видимым состояниямsaednntrain ndash обучение нейронной сети с архитектурой stacked autoencoder
Прогнозирование (классификация) нейронной сетью с архитектурой stacked auto encoder
Argumentsbull x matrix of x values for examplesbull y vector or matrix of target values for examplesbull hidden vector for number of units of hidden layersDefault is c(10)bull activationfun activation function of hidden unitCan be sigmlinear or tanhDefault isbull sigm for logistic functionbull learningrate learning rate for gradient descent Default is 08bull momentum momentum for gradient descent Default is 05 bull learningrate_scalebull learning rate will be mutiplied by this scale after every iteration Default is 1 bull numepochs number of iteration for samples Default is 3bull batchsize size of mini-batch Default is 100bull output function of output unit can be sigmlinear or softmax Default is sigmbull sae_output function of autoencoder output unit can be sigmlinear or softmax Defaultbull is linearbull hidden_dropout drop out fraction for hidden layer Default is 0bull visible_dropoutbull drop out fraction for input layer Default is 0
Что такое MNISTbull Смешанный набор данных Национального института стандартов и
технологий (mixed National Institute of Standards and Technology MNIST) был создан исследователями IR в качестве эталона для сравнения различных алгоритмов IR
bull Набор данных состоит всего из 70 000 изображений 60 000 обучающих (используемых для создания модели IR) и 10 000 тестовых (применяемых для оценки точности модели) Каждое изображение MNIST mdash это оцифрованная картинка одной цифры написанной от руки Каждое изображение имеет размер 28 times 28 пикселей Каждое значение пикселя лежит в диапазоне от 0 (представляет белый цвет) до 255 (представляет черный цвет) Промежуточные значения отражают оттенки серого
httpyannlecuncomexdbmnistобучающие и тестовые данные хранятся в двух файлах а не в одном Один файл содержит значения пикселей для изображений а другой mdash метки изображений (0ndash9) Каждый из четырех файлов также содержит заголовочную информацию и все они хранятся в двоичном формате сжатом в формате gziptrain-images-idx3-ubytegz training set images (9912422 bytes)
train-labels-idx1-ubytegz training set labels (28881 bytes)
t10k-images-idx3-ubytegz test set images (1648877 bytes)
t10k-labels-idx1-ubytegz test set labels (4542 bytes)
bull Каждая строка файла представляет собой имидж размера 28 times 28 вектором длины 784 каждый признак ndash значение пиксела в черно-белой шале Первый столбец содержит метку цифры 0ndash9 следующие 2828 столбцов представляют целый имидж и так далее Пример первой строки
Визуализация
bull plotmnist()bull mnistbull paramsbull train$n number of train samplesbull train$x pix of every train sample imagebull train$y label of every train sample imagebull train$yy one-of-c vector of label of train sample imagebull test$n number of test samplesbull test$x pix of every test sample imagebull test$y label of every test sample imagebull test$yy one-of-c vector of label of test sample image
plotmnist()
Распознавание рукописных цифр в deepnet
another way to download the MNIST datasetmnist downloadmnist(range=c(01)global=FALSE)look at MNIST datamnist$train$xmnist$train$ymnist$test$xmnist$test$ytrain of the sae neural networkdnnlt-saednntrain(mnist$train$xmnist$train$yhidden=c(55))test of the sae neural networknntest(dnnmnist$test$xmnist$test$yt=05)
End of slides part 2 (Part 3 - NLP remaining)
Vladimirvkrylovgmailcom
Основы предиктивной аналитики Часть вторая
Применение методов Machine Learning к решению задач аналитики
Дмитрий Ветров кандидат физико-математических наук ру
Методы обучающихся машин для аналитики которые мы рассмотрим
Сначала нужно загрузить несколько пакетов (packages) для поддер
Данные для анализа
Скрипт для генерации
Данные которые мы будем использовать для демо состоят из смес
Так выглядят визуализированные данные сгенерированные скриптом
Разделение данных на обучающие и проверочные является важным эт
K-means алгоритм на пальцах
Обучающаяся машина без учителя Алгоритм K-means
Slide 13
Slide 14
Здесь мы используем заранее известный факт что необходимо кла
Еще одна иллюстрация работы алгоритма K-means
Обучающаяся машина без учителя Алгоритм KNN (Nearest Neighbor)
Как работает алгоритм KNN
knn(train test cl k = 1 l = 0 prob = FALSE useall = TRUE
Slide 20
Результаты кластеризации и зависимость ошибки от числа кластеро
Recursive PartitioningRegression Tree
Метод RP реализует обучение машины строить дерево решений по об
Recursive PartitioningRegression Tree (2)
rpart(formula data weights subset naaction = narpart met
Slide 26
Recursive PartitioningRegression Tree example
Анализ по главным компонентам (Principal Component Analysis PC
Итеративные алгоритмы с оптимальным разреженным кодированием IS
Самоорганизация данных методами Deep Learning
Знакомство с пакетом deepnet
Прогнозирование (классификация) нейронной сетью с архитектурой
Arguments
Архитектура сети SAE
Архитектура с 5Х4 hidden 3 outs
Example
Анализ обучающего набора данных
Параметры SAE сети
Коэффициенты связей
Предсказание обученной сетью
Сравнение обучающей и тестовой выборки
plot3d(xy)
Работаем с пакетом MNIST
httpyannlecuncomexdbmnist
Подготовка к обработке
Slide 118
Визуализация
plotmnist()
Распознавание рукописных цифр в deepnet
End of slides part 2 (Part 3 - NLP remaining)
rpart(formula data weights subset naaction = narpart method model = FALSE x = FALSE y = TRUE parms control cost )
formula a formula with a response but no interaction terms If this a a data frome that is taken as the model frame (see modelframe)
data an optional data frame in which to interpret the variables named in the formula
weights optional case weights
subset optional expression saying that only a subset of the rows of the data should be used in the fit
naaction the default action deletes all observations for which y is missing but keeps those in which one or more predictors are missing method one of anova poisson class or exp If method is missing then the routine tries to make an intelligent guess If y is a survival object then method = exp is assumed if y has 2 columns then method = poisson is assumed if y is a factor then method = class is assumed otherwise method = anova is assumed It is wisest to specify the method directly especially as more criteria may added to the function in future Alternatively method can be a list of functions named init split and eval Examples are given in the file lsquotestsusersplitsRrsquo in the sources and in the vignettes lsquoUser Written Split Functionsrsquo
model if logical keep a copy of the model frame in the result If the input value for model is a model frame (likely from an earlier call to the rpart function) then this frame is used rather than constructing new data
x keep a copy of the x matrix in the result
y keep a copy of the dependent variable in the result If missing and model is supplied this defaults to FALSE
parms optional parameters for the splitting function Anova splitting has no parameters Poisson splitting has a single parameter the coefficient of variation of the prior distribution on the rates The default value is 1 Exponential splitting has the same parameter as Poisson For classification splitting the list can contain any of the vector of prior probabilities (component prior) the loss matrix (component loss) or the splitting index (component split) The priors must be positive and sum to 1 The loss matrix must have zeros on the diagonal and positive off-diagonal elements The splitting index can be gini or information The default priors are proportional to the data counts the losses default to 1 and the split defaults to gini
control a list of options that control details of the rpart algorithm See rpartcontrol
cost a vector of non-negative costs one for each variable in the model Defaults to one for all variables These are scalings to be applied when considering splits so the improvement on splitting on a variable is divided by its cost in deciding which split to choose arguments to rpartcontrol may also be specified in the call to rpart They are checked against the list of valid arguments
Recursive PartitioningRegression Tree example(r lt- rpart(class ~ x + y data = train))plot(r)text(r)
Here we look at the confusion matrix and overall error rate from applying the tree rules to the training datapredicted lt- asnumeric(apply(predict(r) 1 function(r) order(-r)[1]))(m lt- cm (train$class predicted))1 - sum(diag(m)) sum(m)
And by comparison against the test datapredicted lt- asnumeric(apply(predict(r test[12]) 1 function(r) order(-r)[1]))(m lt- cm (test$class predicted))1 - sum(diag(m)) sum(m)
Анализ по главным компонентам (Principal Component Analysis PCA)Известно четыре базовых версии методаbull аппроксимировать данные линейными многообразиями меньшей
размерностиbull найти подпространства меньшей размерности в ортогональной проекции
на которые разброс данных (то есть среднеквадратичное отклонение от среднего значения) максимален
bull найти подпространства меньшей размерности в ортогональной проекции на которые среднеквадратичное расстояние между точками максимально
bull для данной многомерной случайной величины построить такое ортогональное преобразование координат в результате которого корреляции между отдельными координатами обратятся в нуль
В основе задача наилучшей аппроксимации конечного множества точек прямыми и плоскостями (Пирсон 1901) Дано конечное множество векторов для каждого k=01hellipn-1 среди всех k-мерных линейных многообразий в Rn найти такое что сумма квадратов уклонений минимальна
bull Графическая иллюстрация метода главных компонент в 3D
Алгоритм
bull Централизация данных
bull Находим первую главную компоненту
bull Вычитаем проекцию на нее
bull Находим вторую главную компоненту
bull Вычитаем проекцию на (k-1) главную компоненту
bull Находим k-ую главную компоненту
bull Всегда выполняется условие ортогональности
princomp(formula data = NULL subset naaction )formula a formula with no response variable referring only to numeric variables
data an optional data frame (or similar see modelframe) containing the variables in the formula formula By default the variables are taken from environment(formula)
subset an optional vector used to select rows (observations) of the data matrix x
naaction a function which indicates what should happen when the data contain NAs The default is set by the naaction setting of options and is nafail if that is unset The lsquofactory-freshrsquo default is naomit
x a numeric matrix or data frame which provides the data for the principal components analysis
cor a logical value indicating whether the calculation should use the correlation matrix or the covariance matrix (The correlation matrix can only be used if there are no constant variables)
scores a logical value indicating whether the score on each principal component should be calculated
covmat a covariance matrix or a covariance list as returned by covwt (and covmve or covmcd from package MASS) If supplied this is used rather than the covariance matrix of x
arguments passed to or from other methods If x is a formula one might specify cor or scores
object Object of class inheriting from princomp
newdata An optional data frame or matrix in which to look for variables with which to predict If omitted the scores are used If the original fit used a formula or a data frame or a matrix with column names newdata must contain columns with the same names Otherwise it must contain the same number of columns to be used in the same order
Principal Component Analysis (PCA)plt-princomp(train[12])train_pca lt- dataframe(p$scores)train_pca$class lt- train$class
Compare the alignment of the clusters to the axis in the feature space versus the transformed space
r2 lt- rpart(class ~ Comp1 + Comp2 data = train_pca)
Линейный дискриминантный анализ (Linear Discriminant Analysis - LDA)bull Для каждого образца объекта или события с известным классом y
рассматривается набор наблюдений x (называемых ещё признаками переменными или измерениями) Набор таких образцов называется обучающей выборкой (или набором обучения обучением) Задачи классификации состоит в том чтобы построить хороший прогноз класса y для всякого так же распределённого объекта (не обязательно содержащегося в обучающей выборке) имея только наблюдения x Основная идея состоит в сравнении распределений для каждого из классов Расстоянием (по Фишеру) между распределениями принято считать отношение межклассовой дисперсии к внутриклассовой
bull Оптимальное байесовское решение - относить точки ко второму классу если отношение правдоподобия ниже некоторого порогового значения T
bull Предполагая что выполнена нормировка
bull Решение записывается в виде неравенства для скалярного произведения
bull Здесь laquoизмерительныйraquo вектор равен
bull с- дискриминантный порог
lda(x grouping prior = proportions tol = 10e-4 method CV = FALSE nu )
formula A formula of the form groups ~ x1 + x2 + That is the response is the grouping factor and the right hand side specifies the (non-factor) discriminators
data Data frame from which variables specified in formula are preferentially to be taken
x (required if no formula is given as the principal argument) a matrix or data frame or Matrix containing the explanatory variables
grouping (required if no formula principal argument is given) a factor specifying the class for each observation
prior the prior probabilities of class membership If unspecified the class proportions for the training set are used If present the probabilities should be specified in the order of the factor levels
tol A tolerance to decide if a matrix is singular it will reject variables and linear combinations of unit-variance variables whose variance is less than tol^2
subset An index vector specifying the cases to be used in the training sample (NOTE If given this argument must be named)
naaction A function to specify the action to be taken if NAs are found The default action is for the procedure to fail An alternative is naomit which leads to rejection of cases with missing values on any required variable (NOTE If given this argument must be named)
method moment for standard estimators of the mean and variance mle for MLEs mve to use covmve or t for robust estimates based on a t distribution
CV If true returns results (classes and posterior probabilities) for leave-one-out cross-validation Note that if the prior is estimated the proportions in the whole dataset are used
nu degrees of freedom for method = t
arguments passed to or from other methods
prior the prior probabilities usedmeans the group meansscaling a matrix which transforms observations to
discriminant functions normalized so that within groups covariance matrix is spherical
svd the singular values which give the ratio of the between- and within-group standard deviations on the linear discriminant variables Their squares are the canonical F-statistics
N The number of observations usedcall The (matched) function call
An object of class lda containing the following components
Метод опорных векторов (Support Vector Machines - SVM)Относится к ML с учителем и использует линейные разделяющие поверхности
Идея алгоритма
bull По обучающей выборке
bull Строится классифицирующая функция
bull Используя гиперплоскость
bull Поиск коэффициентов сводится к максимизации
расстояний от опорных векторов или минимизации
Иллюстрация на простейшем примере
>
Производится вложение обучающей выборки в пространство более высокой размерности Х с помощью нелинейной функции так чтобы обеспечит линейную разделимость в Х
Разделяющая функция тогда имеет вид
Функция называется ядром
Полиномиальное ядро
Радиальная базисная функция
Сигмоид
Линейная неразделимость и использование ядер
Иллюстрация использования ядра для отображения 2D -gt 3D
>
svm((formula data = NULL subset naaction =naomit scale = TRUE))
formulaa symbolic description of the model to be fitdataan optional data frame containing the variables in the model By default the variables are taken from the environment which lsquosvmrsquo is called fromxa data matrix a vector or a sparse matrix (object of class Matrix provided by the Matrix package or of class matrixcsr provided by the SparseM package or of class simple_triplet_matrix provided by the slam package)ya response vector with one label for each rowcomponent of x Can be either a factor (for classification tasks) or a numeric vector (for regression)scaleA logical vector indicating the variables to be scaled If scale is of length 1 the value is recycled as many times as needed Per default data are scaled internally (both x and y variables) to zero mean and unit variance The center and scale values are returned and used for later predictionstypesvm can be used as a classification machine as a regression machine or for novelty detection Depending of whether y is a factor or not the default setting for type is C-classification or eps-regression respectively but may be overwritten by setting an explicit valueValid options areC-classificationnu-classificationone-classification (for novelty detection)eps-regressionnu-regression
Support Vector Machines
s lt- svm( I(factor(class)) ~ x + y data = train cost = 100 gama = 1)
Package lsquodeepnetrsquo February 19 2015 Type Package Title deep learning toolkit in R Version 02 Date 2014-03-20 Author Xiao Rong Maintainer Xiao Rong Description Implement some deep learning architectures and neural network algorithms including BPRBMDBNDeep autoencoder and so on License GPL NeedsCompilation no Repository CRAN DatePublication 2014-03-20 100343
laquoВ 1997 году Deep Blue обыграл в шахматы КаспароваВ 2011 Watson обставил чемпионов JeopardyСможет ли ваш алгоритм в 2013 году отличить Бобика от ПушистикаraquoKaggle Competitions Details
Сегодня уже можно ответить laquoдаraquo mdash десятка лидеров справилась с заданием на 988
Распознавание основано на feature detection и последующем различении комбинаций
Заранее неизвестно какие части картинки могут использоваться как хорошие features В их роли может выступать все что угодно mdash фрагменты изображения форма размер или цвет Feature может не присутствовать на картинке сама а выражаться в параметре полученным каким-то образом из исходных данных
Распознавание рукописных цифр
Еще пример посложнее
Использование нейронной сети с обучениемОбучение такой нейронной сети производится обычно методом обратного распространения ошибки таким образом чтобы минимизировать среднеквадратическую ошибку отклика сети на обучающей выборке Таким образом обучающая выборка содержит пары векторов признаков (входные данные) и эталонных векторов (маркированные данные) (x y)
Сверхвысокая размерность при работе с первичным представлением пикселями
Пиксельное кодирование
Принцип иерархии понятий ndash основа deep learning
bull Все вещи состоят из других маленьких и более элементарных вещей
bull Как извлекать features Гипотеза малоразмерных многообразий
Разреженное (sparse) кодирование
первый уровень иерархии состоит из элементов словаря этого кода которые представляют собой штрихи и границы
Словарь для лиц
Выделение объектов заданного класса
Основные архитектуры Deep Learningbull Deep neural networks (DNN)bull Deep belief networks (DBN)bull Convolutional neural networks (CNN)bull Deep Boltzmann Machines (DBM)bull Stacked (Denoising) Auto-Encodersbull Deep Stacking Networksbull Tensor Deep Stacking Networks (T-DSN)bull Spike-and-Slab RBMs (ssRBMs)bull Compound Hierarchical-Deep Modelsbull Deep Coding Networks (DPCN)bull Deep Kernel Machinesbull Deep Q-Networks (2015 г)
Задача классификации распознавания и подобные являются задачей конструирования функции на множестве входных наборов и со значениями в множестве требуемого вида выходных
bull Норбертом Винером было показано что любая функция может быть сколь угодно точно композицией двух (он использовал функции полином Лагранжа и функцию Лагерра)
bull Соответствует двухслойной нейросетиbull Архитектуры Deep Learning соответствуют представлению
bull Обеспечивают эффективную параметризацию при решении конкретных задач Более сложные функции создаются из большего числа но более эффективно настраиваемых laquoкирпичиковraquo Пример ndash синтез булевых функций Дерево вентилей эффективнее двухслойной схемы
Фактор - графыВсе методы которые расмотрели ndash не DL Даже деревья классификации Все операции в одном входном словаре
DL можно определить по фактор-графу
Например
bull Еще одна сторона DL - нередко использует невыпуклые функции потерьbull Обучение на основе выпуклых функций не зависит от порядка
предъявления данных для обучения Все определяет асимптотика всего train - набора В алгоритмах DL порядок данных в обучающей выборке может иметь значение
bull Многие решения в DL не доказаны математически и являются успешными эвристиками
bull Большой простор для прикладной математики Может рассматриваться как фактор-граф с группами латентных переменных
bull В настоящее время стал основной технологией в распознавании речи (speech recognition) и машинном зрении (computer vision) начал применяться в обработке текстов (natural language processing)
bull Основная идея ndash применение нелинейного отображения входного набора в более высокоразмерное пространство где многие неразделимые композиции становятся разделимыми а затем объединение композиций по семантической близости
Подход разреженного кодирования
Обобщенная архитектура
bull DL сеть может быть собрана каскадированием и использованием обучения с учителем
Здесь используется forward propagation для обучения
Для настройки коэффициентов используется метод fprof для каждого
Требуется знание градиента энергии
Элементы (kl) матрицы Якобиана
Требуется знание градиента энергии 120597119864120597119882119894 = 120597119864120597119883119894120597119865119894(119883119894minus1119882119894)120597119882119894
ሾ1times 119873119908ሿ= ሾ1times 119873119909ሿlowast[119873119909 times 119873119908] Элементы (kl) матрицы Якобиана
Сводится к рекуррентному соотношению для вычисления градиента 120597119864120597119883119894minus1 = 120597119864120597119883119894120597119865119894(119883119894minus1119882119894)120597119883119894minus1
В итоге
Для вычисления градиента может использоваться метод back propagation
В действительности работают любые архитектуры построения функции Нужно конструировать связи и функции блоков
Язык Torch 7 ndash современный инструмент моделирования и имплементации
Machine Learning with Torch7 (httpcodecogbitscomwikidokuphpid=start)
bull These tutorials were originally designed for the IPAM Summer School on Deep Learning more info herebull This wiki provides multiple tutorials with the overall objective of teaching you how to do machine learning
with Torch7bull Torch7 provides a Matlab-like environment for state-of-the-art machine learning algorithms It is easy to use
and provides a very efficient implementation thanks to an easy and fast scripting language (LuaJIT) and an underlying C implementation
bull These tutorials should be readdone in orderbull Tutorial 1 Setup Basics Getting Startedbull Tutorial 2 Supervised Learningbull Tutorial 3 Unsupervised Learningbull Tutorial 4 Graphical Modelsbull Tutorial 5 Creating New Modulesbull Tutorial 6 Using CUDAbull To follow these tutorials and do the exercises you will need to download the associated code which is hosted
on GitHub on this page In this repository each directory corresponds to a tutorial herebull starttxt middot Last modified 20140204 2246 by clement
Torch 7 является расширением Lua
What is LuaLua is a powerful fast lightweight embeddable scripting languageLua combines simple procedural syntax with powerful data description constructs based on associative arrays and extensible semantics Lua is dynamically typed runs by interpreting bytecode for a register-based virtual machine and has automatic memory management with incremental garbage collection making it ideal for configuration scripting and rapid prototyping
Why choose LuaLua is a proven robust languageLua has been used in many industrial applications (eg Adobes Photoshop Lightroom) with an emphasis on embedded systems (eg the Ginga middleware for digital TV in Brazil) and games (eg World of Warcraft and Angry Birds) Lua is currently the leading scripting language in games Lua has a solid reference manual and there are several books about it Several versions of Lua have been released and used in real applications since its creation in 1993 Lua featured in HOPL III the Third ACM SIGPLAN History of Programming Languages Conference in June 2007 Lua won the Front Line Award 2011 from the Game Developers Magazine
Свертка и архитектура 4-х уровневой сверточной сети
Функциональная структура
Примеры успешного применения сверточных сетей
Диагностика эпилепсии по ЭЭГ
Реализация сверточной сетью
Одна из самых больших сверточных сетейbull Krizhevsky Sutskever Hinton 2012bull 650 000 нейронов 832 000 000 синапсов 60 000000 пареметровbull Использовался backprop на GPUbull Обучающая выборка на материалах 20 летbull Купил Google в январе 2013bull В мае 2013 развернул как сервис Photo Tagging Google+
Пример тэгирования
Пример поиска похожих по изображению
Пример поиска в коллекции изображений по текстовому запросу
Пример laquoоблачногоraquo классификатора изображений
Самообучающиеся нейронные сети на основе минимизации функции энергииbull Применима к сетям с обратными связямиbull Конструирование функции энергии должно обеспечивать
laquoконтрастностьraquo разделения
bull Энергетическая функция может Неформально рассматриваться как отрицательный логарифм плотности вероятности
Y 2=(Y1)2
RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцмана
bull Из DBM cтроится Deep Belief Network (DBN)
bull w mdash вес между нейронами
bull b mdash смещение нейрона
bull s mdash состояние нейрона
Алгоритм обучения Contrastive Divergence (CD)bull w_ij mdash веc между i-ым нейроном Вероятность пар может быть представлена как
bull a_i mdash смещение видимого нейрона
bull b_j mdash смещение скрытого нейрона
bull v_i mdash состояние видимого нейрона
bull h_j mdash состояние скрытого нейрона Полная вероятность состояния видимых нейронов
Основные уравнения адаптации
Алгоритм Хинтона - Contrastive Divergence (CD-k)
1 состояние видимых нейронов приравнивается к входному образу2 выводятся вероятности состояний скрытого слоя3 каждому нейрону скрытого слоя ставится в соответствие состояние laquo1raquo с вероятностью равной его текущему состоянию4 выводятся вероятности видимого слоя на основании скрытого5 если текущая итерация меньше k то возврат к шагу 26 выводятся вероятности состояний скрытого слоя
darch Package for deep architectures and Restricted-Bolzmann-MachinesThe darch package is build on the basis of the code from G E Hinton and R R Salakhutdinov (available under Matlab Code for deep belief nets last visit 01082013) This package is for generating neural networks with many layers (deep architectures) and train them with the method introduced by the publications A fast learning algorithm for deep belief nets (G E Hinton S Osindero Y W Teh) and Reducing the dimensionality of data with neural networks (G E Hinton R R Salakhutdinov) This method includes a pre training with the contrastive divergence method publishing by GE Hinton (2002) and a fine tuning with common known training algorithms like backpropagation or conjugate gradient
bull Version 091bull Imports futilelogger ff methodsbull Published 2014-03-16bull Author Martin Dreesbull Maintainer Martin Drees ltmdrees at studfh-dortmunddegtbull License GPL-2bull URL httpgithubcommaddin79darchbull NeedsCompilation nobull Materials READMEbull CRAN checks darch results
Связь плотности вероятности и энергии
Используется распределение Гиббса
Задача обучения с точки минимизации энергии сети
bull Сконструировать функцию энергии с малыми значениями на обучающей выборке и с большими значениями всюду вне этого множества
bull Первое несложно а второе представляет задачу процесса обучения
Интуитивные соображения
Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decomposition LISTA ndashметоды использующие разреженные коды
Латентная переменная Z =argmin_z Distance[Decoder(Z)Y]+FactorB(Z)MAPminimaize sum of factors
Автоэнкодер (auto encoder) Автоэнкодер представляет собой алгоритм обучения без учителя который использует нейронную сеть и метод обратного распространения ошибки для того чтобы добиться того что входной вектор признаков вызывал отклик сети равный входному вектору те y = x Автоэнкодер пытается построить функцию h(x) = x
Архитекттура ICA моделей
Итеративные алгоритмы с оптимальным разреженным кодированием ISTAFISTA
Самоорганизация данных методами Deep Learning
>
Знакомство с пакетом deepnet
Назначение
Составdbndnntrain - обучение сети с архитектурой DBN (deep belief network)loadmnist - формирование данных из файлов MNISTnnpredict - предсказание новых выборок на обученной нейронной сетиnntest ndash тестирование обученной нейронной сети с возвращением значения ошибкиnntrain ndash обучение одностлойной или многослойной нейронной сети методом backproprbmdown ndash генерирование видимого вектора для скрытых состояний сети RBMrbmtrain ndash обучение сети RBMrbmup ndash извлечение скрытых состояний RBM по известным видимым состояниямsaednntrain ndash обучение нейронной сети с архитектурой stacked autoencoder
Прогнозирование (классификация) нейронной сетью с архитектурой stacked auto encoder
Argumentsbull x matrix of x values for examplesbull y vector or matrix of target values for examplesbull hidden vector for number of units of hidden layersDefault is c(10)bull activationfun activation function of hidden unitCan be sigmlinear or tanhDefault isbull sigm for logistic functionbull learningrate learning rate for gradient descent Default is 08bull momentum momentum for gradient descent Default is 05 bull learningrate_scalebull learning rate will be mutiplied by this scale after every iteration Default is 1 bull numepochs number of iteration for samples Default is 3bull batchsize size of mini-batch Default is 100bull output function of output unit can be sigmlinear or softmax Default is sigmbull sae_output function of autoencoder output unit can be sigmlinear or softmax Defaultbull is linearbull hidden_dropout drop out fraction for hidden layer Default is 0bull visible_dropoutbull drop out fraction for input layer Default is 0
Что такое MNISTbull Смешанный набор данных Национального института стандартов и
технологий (mixed National Institute of Standards and Technology MNIST) был создан исследователями IR в качестве эталона для сравнения различных алгоритмов IR
bull Набор данных состоит всего из 70 000 изображений 60 000 обучающих (используемых для создания модели IR) и 10 000 тестовых (применяемых для оценки точности модели) Каждое изображение MNIST mdash это оцифрованная картинка одной цифры написанной от руки Каждое изображение имеет размер 28 times 28 пикселей Каждое значение пикселя лежит в диапазоне от 0 (представляет белый цвет) до 255 (представляет черный цвет) Промежуточные значения отражают оттенки серого
httpyannlecuncomexdbmnistобучающие и тестовые данные хранятся в двух файлах а не в одном Один файл содержит значения пикселей для изображений а другой mdash метки изображений (0ndash9) Каждый из четырех файлов также содержит заголовочную информацию и все они хранятся в двоичном формате сжатом в формате gziptrain-images-idx3-ubytegz training set images (9912422 bytes)
train-labels-idx1-ubytegz training set labels (28881 bytes)
t10k-images-idx3-ubytegz test set images (1648877 bytes)
t10k-labels-idx1-ubytegz test set labels (4542 bytes)
bull Каждая строка файла представляет собой имидж размера 28 times 28 вектором длины 784 каждый признак ndash значение пиксела в черно-белой шале Первый столбец содержит метку цифры 0ndash9 следующие 2828 столбцов представляют целый имидж и так далее Пример первой строки
Визуализация
bull plotmnist()bull mnistbull paramsbull train$n number of train samplesbull train$x pix of every train sample imagebull train$y label of every train sample imagebull train$yy one-of-c vector of label of train sample imagebull test$n number of test samplesbull test$x pix of every test sample imagebull test$y label of every test sample imagebull test$yy one-of-c vector of label of test sample image
plotmnist()
Распознавание рукописных цифр в deepnet
another way to download the MNIST datasetmnist downloadmnist(range=c(01)global=FALSE)look at MNIST datamnist$train$xmnist$train$ymnist$test$xmnist$test$ytrain of the sae neural networkdnnlt-saednntrain(mnist$train$xmnist$train$yhidden=c(55))test of the sae neural networknntest(dnnmnist$test$xmnist$test$yt=05)
End of slides part 2 (Part 3 - NLP remaining)
Vladimirvkrylovgmailcom
Основы предиктивной аналитики Часть вторая
Применение методов Machine Learning к решению задач аналитики
Дмитрий Ветров кандидат физико-математических наук ру
Методы обучающихся машин для аналитики которые мы рассмотрим
Сначала нужно загрузить несколько пакетов (packages) для поддер
Данные для анализа
Скрипт для генерации
Данные которые мы будем использовать для демо состоят из смес
Так выглядят визуализированные данные сгенерированные скриптом
Разделение данных на обучающие и проверочные является важным эт
K-means алгоритм на пальцах
Обучающаяся машина без учителя Алгоритм K-means
Slide 13
Slide 14
Здесь мы используем заранее известный факт что необходимо кла
Еще одна иллюстрация работы алгоритма K-means
Обучающаяся машина без учителя Алгоритм KNN (Nearest Neighbor)
Как работает алгоритм KNN
knn(train test cl k = 1 l = 0 prob = FALSE useall = TRUE
Slide 20
Результаты кластеризации и зависимость ошибки от числа кластеро
Recursive PartitioningRegression Tree
Метод RP реализует обучение машины строить дерево решений по об
Recursive PartitioningRegression Tree (2)
rpart(formula data weights subset naaction = narpart met
Slide 26
Recursive PartitioningRegression Tree example
Анализ по главным компонентам (Principal Component Analysis PC
Итеративные алгоритмы с оптимальным разреженным кодированием IS
Самоорганизация данных методами Deep Learning
Знакомство с пакетом deepnet
Прогнозирование (классификация) нейронной сетью с архитектурой
Arguments
Архитектура сети SAE
Архитектура с 5Х4 hidden 3 outs
Example
Анализ обучающего набора данных
Параметры SAE сети
Коэффициенты связей
Предсказание обученной сетью
Сравнение обучающей и тестовой выборки
plot3d(xy)
Работаем с пакетом MNIST
httpyannlecuncomexdbmnist
Подготовка к обработке
Slide 118
Визуализация
plotmnist()
Распознавание рукописных цифр в deepnet
End of slides part 2 (Part 3 - NLP remaining)
parms optional parameters for the splitting function Anova splitting has no parameters Poisson splitting has a single parameter the coefficient of variation of the prior distribution on the rates The default value is 1 Exponential splitting has the same parameter as Poisson For classification splitting the list can contain any of the vector of prior probabilities (component prior) the loss matrix (component loss) or the splitting index (component split) The priors must be positive and sum to 1 The loss matrix must have zeros on the diagonal and positive off-diagonal elements The splitting index can be gini or information The default priors are proportional to the data counts the losses default to 1 and the split defaults to gini
control a list of options that control details of the rpart algorithm See rpartcontrol
cost a vector of non-negative costs one for each variable in the model Defaults to one for all variables These are scalings to be applied when considering splits so the improvement on splitting on a variable is divided by its cost in deciding which split to choose arguments to rpartcontrol may also be specified in the call to rpart They are checked against the list of valid arguments
Recursive PartitioningRegression Tree example(r lt- rpart(class ~ x + y data = train))plot(r)text(r)
Here we look at the confusion matrix and overall error rate from applying the tree rules to the training datapredicted lt- asnumeric(apply(predict(r) 1 function(r) order(-r)[1]))(m lt- cm (train$class predicted))1 - sum(diag(m)) sum(m)
And by comparison against the test datapredicted lt- asnumeric(apply(predict(r test[12]) 1 function(r) order(-r)[1]))(m lt- cm (test$class predicted))1 - sum(diag(m)) sum(m)
Анализ по главным компонентам (Principal Component Analysis PCA)Известно четыре базовых версии методаbull аппроксимировать данные линейными многообразиями меньшей
размерностиbull найти подпространства меньшей размерности в ортогональной проекции
на которые разброс данных (то есть среднеквадратичное отклонение от среднего значения) максимален
bull найти подпространства меньшей размерности в ортогональной проекции на которые среднеквадратичное расстояние между точками максимально
bull для данной многомерной случайной величины построить такое ортогональное преобразование координат в результате которого корреляции между отдельными координатами обратятся в нуль
В основе задача наилучшей аппроксимации конечного множества точек прямыми и плоскостями (Пирсон 1901) Дано конечное множество векторов для каждого k=01hellipn-1 среди всех k-мерных линейных многообразий в Rn найти такое что сумма квадратов уклонений минимальна
bull Графическая иллюстрация метода главных компонент в 3D
Алгоритм
bull Централизация данных
bull Находим первую главную компоненту
bull Вычитаем проекцию на нее
bull Находим вторую главную компоненту
bull Вычитаем проекцию на (k-1) главную компоненту
bull Находим k-ую главную компоненту
bull Всегда выполняется условие ортогональности
princomp(formula data = NULL subset naaction )formula a formula with no response variable referring only to numeric variables
data an optional data frame (or similar see modelframe) containing the variables in the formula formula By default the variables are taken from environment(formula)
subset an optional vector used to select rows (observations) of the data matrix x
naaction a function which indicates what should happen when the data contain NAs The default is set by the naaction setting of options and is nafail if that is unset The lsquofactory-freshrsquo default is naomit
x a numeric matrix or data frame which provides the data for the principal components analysis
cor a logical value indicating whether the calculation should use the correlation matrix or the covariance matrix (The correlation matrix can only be used if there are no constant variables)
scores a logical value indicating whether the score on each principal component should be calculated
covmat a covariance matrix or a covariance list as returned by covwt (and covmve or covmcd from package MASS) If supplied this is used rather than the covariance matrix of x
arguments passed to or from other methods If x is a formula one might specify cor or scores
object Object of class inheriting from princomp
newdata An optional data frame or matrix in which to look for variables with which to predict If omitted the scores are used If the original fit used a formula or a data frame or a matrix with column names newdata must contain columns with the same names Otherwise it must contain the same number of columns to be used in the same order
Principal Component Analysis (PCA)plt-princomp(train[12])train_pca lt- dataframe(p$scores)train_pca$class lt- train$class
Compare the alignment of the clusters to the axis in the feature space versus the transformed space
r2 lt- rpart(class ~ Comp1 + Comp2 data = train_pca)
Линейный дискриминантный анализ (Linear Discriminant Analysis - LDA)bull Для каждого образца объекта или события с известным классом y
рассматривается набор наблюдений x (называемых ещё признаками переменными или измерениями) Набор таких образцов называется обучающей выборкой (или набором обучения обучением) Задачи классификации состоит в том чтобы построить хороший прогноз класса y для всякого так же распределённого объекта (не обязательно содержащегося в обучающей выборке) имея только наблюдения x Основная идея состоит в сравнении распределений для каждого из классов Расстоянием (по Фишеру) между распределениями принято считать отношение межклассовой дисперсии к внутриклассовой
bull Оптимальное байесовское решение - относить точки ко второму классу если отношение правдоподобия ниже некоторого порогового значения T
bull Предполагая что выполнена нормировка
bull Решение записывается в виде неравенства для скалярного произведения
bull Здесь laquoизмерительныйraquo вектор равен
bull с- дискриминантный порог
lda(x grouping prior = proportions tol = 10e-4 method CV = FALSE nu )
formula A formula of the form groups ~ x1 + x2 + That is the response is the grouping factor and the right hand side specifies the (non-factor) discriminators
data Data frame from which variables specified in formula are preferentially to be taken
x (required if no formula is given as the principal argument) a matrix or data frame or Matrix containing the explanatory variables
grouping (required if no formula principal argument is given) a factor specifying the class for each observation
prior the prior probabilities of class membership If unspecified the class proportions for the training set are used If present the probabilities should be specified in the order of the factor levels
tol A tolerance to decide if a matrix is singular it will reject variables and linear combinations of unit-variance variables whose variance is less than tol^2
subset An index vector specifying the cases to be used in the training sample (NOTE If given this argument must be named)
naaction A function to specify the action to be taken if NAs are found The default action is for the procedure to fail An alternative is naomit which leads to rejection of cases with missing values on any required variable (NOTE If given this argument must be named)
method moment for standard estimators of the mean and variance mle for MLEs mve to use covmve or t for robust estimates based on a t distribution
CV If true returns results (classes and posterior probabilities) for leave-one-out cross-validation Note that if the prior is estimated the proportions in the whole dataset are used
nu degrees of freedom for method = t
arguments passed to or from other methods
prior the prior probabilities usedmeans the group meansscaling a matrix which transforms observations to
discriminant functions normalized so that within groups covariance matrix is spherical
svd the singular values which give the ratio of the between- and within-group standard deviations on the linear discriminant variables Their squares are the canonical F-statistics
N The number of observations usedcall The (matched) function call
An object of class lda containing the following components
Метод опорных векторов (Support Vector Machines - SVM)Относится к ML с учителем и использует линейные разделяющие поверхности
Идея алгоритма
bull По обучающей выборке
bull Строится классифицирующая функция
bull Используя гиперплоскость
bull Поиск коэффициентов сводится к максимизации
расстояний от опорных векторов или минимизации
Иллюстрация на простейшем примере
>
Производится вложение обучающей выборки в пространство более высокой размерности Х с помощью нелинейной функции так чтобы обеспечит линейную разделимость в Х
Разделяющая функция тогда имеет вид
Функция называется ядром
Полиномиальное ядро
Радиальная базисная функция
Сигмоид
Линейная неразделимость и использование ядер
Иллюстрация использования ядра для отображения 2D -gt 3D
>
svm((formula data = NULL subset naaction =naomit scale = TRUE))
formulaa symbolic description of the model to be fitdataan optional data frame containing the variables in the model By default the variables are taken from the environment which lsquosvmrsquo is called fromxa data matrix a vector or a sparse matrix (object of class Matrix provided by the Matrix package or of class matrixcsr provided by the SparseM package or of class simple_triplet_matrix provided by the slam package)ya response vector with one label for each rowcomponent of x Can be either a factor (for classification tasks) or a numeric vector (for regression)scaleA logical vector indicating the variables to be scaled If scale is of length 1 the value is recycled as many times as needed Per default data are scaled internally (both x and y variables) to zero mean and unit variance The center and scale values are returned and used for later predictionstypesvm can be used as a classification machine as a regression machine or for novelty detection Depending of whether y is a factor or not the default setting for type is C-classification or eps-regression respectively but may be overwritten by setting an explicit valueValid options areC-classificationnu-classificationone-classification (for novelty detection)eps-regressionnu-regression
Support Vector Machines
s lt- svm( I(factor(class)) ~ x + y data = train cost = 100 gama = 1)
Package lsquodeepnetrsquo February 19 2015 Type Package Title deep learning toolkit in R Version 02 Date 2014-03-20 Author Xiao Rong Maintainer Xiao Rong Description Implement some deep learning architectures and neural network algorithms including BPRBMDBNDeep autoencoder and so on License GPL NeedsCompilation no Repository CRAN DatePublication 2014-03-20 100343
laquoВ 1997 году Deep Blue обыграл в шахматы КаспароваВ 2011 Watson обставил чемпионов JeopardyСможет ли ваш алгоритм в 2013 году отличить Бобика от ПушистикаraquoKaggle Competitions Details
Сегодня уже можно ответить laquoдаraquo mdash десятка лидеров справилась с заданием на 988
Распознавание основано на feature detection и последующем различении комбинаций
Заранее неизвестно какие части картинки могут использоваться как хорошие features В их роли может выступать все что угодно mdash фрагменты изображения форма размер или цвет Feature может не присутствовать на картинке сама а выражаться в параметре полученным каким-то образом из исходных данных
Распознавание рукописных цифр
Еще пример посложнее
Использование нейронной сети с обучениемОбучение такой нейронной сети производится обычно методом обратного распространения ошибки таким образом чтобы минимизировать среднеквадратическую ошибку отклика сети на обучающей выборке Таким образом обучающая выборка содержит пары векторов признаков (входные данные) и эталонных векторов (маркированные данные) (x y)
Сверхвысокая размерность при работе с первичным представлением пикселями
Пиксельное кодирование
Принцип иерархии понятий ndash основа deep learning
bull Все вещи состоят из других маленьких и более элементарных вещей
bull Как извлекать features Гипотеза малоразмерных многообразий
Разреженное (sparse) кодирование
первый уровень иерархии состоит из элементов словаря этого кода которые представляют собой штрихи и границы
Словарь для лиц
Выделение объектов заданного класса
Основные архитектуры Deep Learningbull Deep neural networks (DNN)bull Deep belief networks (DBN)bull Convolutional neural networks (CNN)bull Deep Boltzmann Machines (DBM)bull Stacked (Denoising) Auto-Encodersbull Deep Stacking Networksbull Tensor Deep Stacking Networks (T-DSN)bull Spike-and-Slab RBMs (ssRBMs)bull Compound Hierarchical-Deep Modelsbull Deep Coding Networks (DPCN)bull Deep Kernel Machinesbull Deep Q-Networks (2015 г)
Задача классификации распознавания и подобные являются задачей конструирования функции на множестве входных наборов и со значениями в множестве требуемого вида выходных
bull Норбертом Винером было показано что любая функция может быть сколь угодно точно композицией двух (он использовал функции полином Лагранжа и функцию Лагерра)
bull Соответствует двухслойной нейросетиbull Архитектуры Deep Learning соответствуют представлению
bull Обеспечивают эффективную параметризацию при решении конкретных задач Более сложные функции создаются из большего числа но более эффективно настраиваемых laquoкирпичиковraquo Пример ndash синтез булевых функций Дерево вентилей эффективнее двухслойной схемы
Фактор - графыВсе методы которые расмотрели ndash не DL Даже деревья классификации Все операции в одном входном словаре
DL можно определить по фактор-графу
Например
bull Еще одна сторона DL - нередко использует невыпуклые функции потерьbull Обучение на основе выпуклых функций не зависит от порядка
предъявления данных для обучения Все определяет асимптотика всего train - набора В алгоритмах DL порядок данных в обучающей выборке может иметь значение
bull Многие решения в DL не доказаны математически и являются успешными эвристиками
bull Большой простор для прикладной математики Может рассматриваться как фактор-граф с группами латентных переменных
bull В настоящее время стал основной технологией в распознавании речи (speech recognition) и машинном зрении (computer vision) начал применяться в обработке текстов (natural language processing)
bull Основная идея ndash применение нелинейного отображения входного набора в более высокоразмерное пространство где многие неразделимые композиции становятся разделимыми а затем объединение композиций по семантической близости
Подход разреженного кодирования
Обобщенная архитектура
bull DL сеть может быть собрана каскадированием и использованием обучения с учителем
Здесь используется forward propagation для обучения
Для настройки коэффициентов используется метод fprof для каждого
Требуется знание градиента энергии
Элементы (kl) матрицы Якобиана
Требуется знание градиента энергии 120597119864120597119882119894 = 120597119864120597119883119894120597119865119894(119883119894minus1119882119894)120597119882119894
ሾ1times 119873119908ሿ= ሾ1times 119873119909ሿlowast[119873119909 times 119873119908] Элементы (kl) матрицы Якобиана
Сводится к рекуррентному соотношению для вычисления градиента 120597119864120597119883119894minus1 = 120597119864120597119883119894120597119865119894(119883119894minus1119882119894)120597119883119894minus1
В итоге
Для вычисления градиента может использоваться метод back propagation
В действительности работают любые архитектуры построения функции Нужно конструировать связи и функции блоков
Язык Torch 7 ndash современный инструмент моделирования и имплементации
Machine Learning with Torch7 (httpcodecogbitscomwikidokuphpid=start)
bull These tutorials were originally designed for the IPAM Summer School on Deep Learning more info herebull This wiki provides multiple tutorials with the overall objective of teaching you how to do machine learning
with Torch7bull Torch7 provides a Matlab-like environment for state-of-the-art machine learning algorithms It is easy to use
and provides a very efficient implementation thanks to an easy and fast scripting language (LuaJIT) and an underlying C implementation
bull These tutorials should be readdone in orderbull Tutorial 1 Setup Basics Getting Startedbull Tutorial 2 Supervised Learningbull Tutorial 3 Unsupervised Learningbull Tutorial 4 Graphical Modelsbull Tutorial 5 Creating New Modulesbull Tutorial 6 Using CUDAbull To follow these tutorials and do the exercises you will need to download the associated code which is hosted
on GitHub on this page In this repository each directory corresponds to a tutorial herebull starttxt middot Last modified 20140204 2246 by clement
Torch 7 является расширением Lua
What is LuaLua is a powerful fast lightweight embeddable scripting languageLua combines simple procedural syntax with powerful data description constructs based on associative arrays and extensible semantics Lua is dynamically typed runs by interpreting bytecode for a register-based virtual machine and has automatic memory management with incremental garbage collection making it ideal for configuration scripting and rapid prototyping
Why choose LuaLua is a proven robust languageLua has been used in many industrial applications (eg Adobes Photoshop Lightroom) with an emphasis on embedded systems (eg the Ginga middleware for digital TV in Brazil) and games (eg World of Warcraft and Angry Birds) Lua is currently the leading scripting language in games Lua has a solid reference manual and there are several books about it Several versions of Lua have been released and used in real applications since its creation in 1993 Lua featured in HOPL III the Third ACM SIGPLAN History of Programming Languages Conference in June 2007 Lua won the Front Line Award 2011 from the Game Developers Magazine
Свертка и архитектура 4-х уровневой сверточной сети
Функциональная структура
Примеры успешного применения сверточных сетей
Диагностика эпилепсии по ЭЭГ
Реализация сверточной сетью
Одна из самых больших сверточных сетейbull Krizhevsky Sutskever Hinton 2012bull 650 000 нейронов 832 000 000 синапсов 60 000000 пареметровbull Использовался backprop на GPUbull Обучающая выборка на материалах 20 летbull Купил Google в январе 2013bull В мае 2013 развернул как сервис Photo Tagging Google+
Пример тэгирования
Пример поиска похожих по изображению
Пример поиска в коллекции изображений по текстовому запросу
Пример laquoоблачногоraquo классификатора изображений
Самообучающиеся нейронные сети на основе минимизации функции энергииbull Применима к сетям с обратными связямиbull Конструирование функции энергии должно обеспечивать
laquoконтрастностьraquo разделения
bull Энергетическая функция может Неформально рассматриваться как отрицательный логарифм плотности вероятности
Y 2=(Y1)2
RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцмана
bull Из DBM cтроится Deep Belief Network (DBN)
bull w mdash вес между нейронами
bull b mdash смещение нейрона
bull s mdash состояние нейрона
Алгоритм обучения Contrastive Divergence (CD)bull w_ij mdash веc между i-ым нейроном Вероятность пар может быть представлена как
bull a_i mdash смещение видимого нейрона
bull b_j mdash смещение скрытого нейрона
bull v_i mdash состояние видимого нейрона
bull h_j mdash состояние скрытого нейрона Полная вероятность состояния видимых нейронов
Основные уравнения адаптации
Алгоритм Хинтона - Contrastive Divergence (CD-k)
1 состояние видимых нейронов приравнивается к входному образу2 выводятся вероятности состояний скрытого слоя3 каждому нейрону скрытого слоя ставится в соответствие состояние laquo1raquo с вероятностью равной его текущему состоянию4 выводятся вероятности видимого слоя на основании скрытого5 если текущая итерация меньше k то возврат к шагу 26 выводятся вероятности состояний скрытого слоя
darch Package for deep architectures and Restricted-Bolzmann-MachinesThe darch package is build on the basis of the code from G E Hinton and R R Salakhutdinov (available under Matlab Code for deep belief nets last visit 01082013) This package is for generating neural networks with many layers (deep architectures) and train them with the method introduced by the publications A fast learning algorithm for deep belief nets (G E Hinton S Osindero Y W Teh) and Reducing the dimensionality of data with neural networks (G E Hinton R R Salakhutdinov) This method includes a pre training with the contrastive divergence method publishing by GE Hinton (2002) and a fine tuning with common known training algorithms like backpropagation or conjugate gradient
bull Version 091bull Imports futilelogger ff methodsbull Published 2014-03-16bull Author Martin Dreesbull Maintainer Martin Drees ltmdrees at studfh-dortmunddegtbull License GPL-2bull URL httpgithubcommaddin79darchbull NeedsCompilation nobull Materials READMEbull CRAN checks darch results
Связь плотности вероятности и энергии
Используется распределение Гиббса
Задача обучения с точки минимизации энергии сети
bull Сконструировать функцию энергии с малыми значениями на обучающей выборке и с большими значениями всюду вне этого множества
bull Первое несложно а второе представляет задачу процесса обучения
Интуитивные соображения
Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decomposition LISTA ndashметоды использующие разреженные коды
Латентная переменная Z =argmin_z Distance[Decoder(Z)Y]+FactorB(Z)MAPminimaize sum of factors
Автоэнкодер (auto encoder) Автоэнкодер представляет собой алгоритм обучения без учителя который использует нейронную сеть и метод обратного распространения ошибки для того чтобы добиться того что входной вектор признаков вызывал отклик сети равный входному вектору те y = x Автоэнкодер пытается построить функцию h(x) = x
Архитекттура ICA моделей
Итеративные алгоритмы с оптимальным разреженным кодированием ISTAFISTA
Самоорганизация данных методами Deep Learning
>
Знакомство с пакетом deepnet
Назначение
Составdbndnntrain - обучение сети с архитектурой DBN (deep belief network)loadmnist - формирование данных из файлов MNISTnnpredict - предсказание новых выборок на обученной нейронной сетиnntest ndash тестирование обученной нейронной сети с возвращением значения ошибкиnntrain ndash обучение одностлойной или многослойной нейронной сети методом backproprbmdown ndash генерирование видимого вектора для скрытых состояний сети RBMrbmtrain ndash обучение сети RBMrbmup ndash извлечение скрытых состояний RBM по известным видимым состояниямsaednntrain ndash обучение нейронной сети с архитектурой stacked autoencoder
Прогнозирование (классификация) нейронной сетью с архитектурой stacked auto encoder
Argumentsbull x matrix of x values for examplesbull y vector or matrix of target values for examplesbull hidden vector for number of units of hidden layersDefault is c(10)bull activationfun activation function of hidden unitCan be sigmlinear or tanhDefault isbull sigm for logistic functionbull learningrate learning rate for gradient descent Default is 08bull momentum momentum for gradient descent Default is 05 bull learningrate_scalebull learning rate will be mutiplied by this scale after every iteration Default is 1 bull numepochs number of iteration for samples Default is 3bull batchsize size of mini-batch Default is 100bull output function of output unit can be sigmlinear or softmax Default is sigmbull sae_output function of autoencoder output unit can be sigmlinear or softmax Defaultbull is linearbull hidden_dropout drop out fraction for hidden layer Default is 0bull visible_dropoutbull drop out fraction for input layer Default is 0
Что такое MNISTbull Смешанный набор данных Национального института стандартов и
технологий (mixed National Institute of Standards and Technology MNIST) был создан исследователями IR в качестве эталона для сравнения различных алгоритмов IR
bull Набор данных состоит всего из 70 000 изображений 60 000 обучающих (используемых для создания модели IR) и 10 000 тестовых (применяемых для оценки точности модели) Каждое изображение MNIST mdash это оцифрованная картинка одной цифры написанной от руки Каждое изображение имеет размер 28 times 28 пикселей Каждое значение пикселя лежит в диапазоне от 0 (представляет белый цвет) до 255 (представляет черный цвет) Промежуточные значения отражают оттенки серого
httpyannlecuncomexdbmnistобучающие и тестовые данные хранятся в двух файлах а не в одном Один файл содержит значения пикселей для изображений а другой mdash метки изображений (0ndash9) Каждый из четырех файлов также содержит заголовочную информацию и все они хранятся в двоичном формате сжатом в формате gziptrain-images-idx3-ubytegz training set images (9912422 bytes)
train-labels-idx1-ubytegz training set labels (28881 bytes)
t10k-images-idx3-ubytegz test set images (1648877 bytes)
t10k-labels-idx1-ubytegz test set labels (4542 bytes)
bull Каждая строка файла представляет собой имидж размера 28 times 28 вектором длины 784 каждый признак ndash значение пиксела в черно-белой шале Первый столбец содержит метку цифры 0ndash9 следующие 2828 столбцов представляют целый имидж и так далее Пример первой строки
Визуализация
bull plotmnist()bull mnistbull paramsbull train$n number of train samplesbull train$x pix of every train sample imagebull train$y label of every train sample imagebull train$yy one-of-c vector of label of train sample imagebull test$n number of test samplesbull test$x pix of every test sample imagebull test$y label of every test sample imagebull test$yy one-of-c vector of label of test sample image
plotmnist()
Распознавание рукописных цифр в deepnet
another way to download the MNIST datasetmnist downloadmnist(range=c(01)global=FALSE)look at MNIST datamnist$train$xmnist$train$ymnist$test$xmnist$test$ytrain of the sae neural networkdnnlt-saednntrain(mnist$train$xmnist$train$yhidden=c(55))test of the sae neural networknntest(dnnmnist$test$xmnist$test$yt=05)
End of slides part 2 (Part 3 - NLP remaining)
Vladimirvkrylovgmailcom
Основы предиктивной аналитики Часть вторая
Применение методов Machine Learning к решению задач аналитики
Дмитрий Ветров кандидат физико-математических наук ру
Методы обучающихся машин для аналитики которые мы рассмотрим
Сначала нужно загрузить несколько пакетов (packages) для поддер
Данные для анализа
Скрипт для генерации
Данные которые мы будем использовать для демо состоят из смес
Так выглядят визуализированные данные сгенерированные скриптом
Разделение данных на обучающие и проверочные является важным эт
K-means алгоритм на пальцах
Обучающаяся машина без учителя Алгоритм K-means
Slide 13
Slide 14
Здесь мы используем заранее известный факт что необходимо кла
Еще одна иллюстрация работы алгоритма K-means
Обучающаяся машина без учителя Алгоритм KNN (Nearest Neighbor)
Как работает алгоритм KNN
knn(train test cl k = 1 l = 0 prob = FALSE useall = TRUE
Slide 20
Результаты кластеризации и зависимость ошибки от числа кластеро
Recursive PartitioningRegression Tree
Метод RP реализует обучение машины строить дерево решений по об
Recursive PartitioningRegression Tree (2)
rpart(formula data weights subset naaction = narpart met
Slide 26
Recursive PartitioningRegression Tree example
Анализ по главным компонентам (Principal Component Analysis PC
Итеративные алгоритмы с оптимальным разреженным кодированием IS
Самоорганизация данных методами Deep Learning
Знакомство с пакетом deepnet
Прогнозирование (классификация) нейронной сетью с архитектурой
Arguments
Архитектура сети SAE
Архитектура с 5Х4 hidden 3 outs
Example
Анализ обучающего набора данных
Параметры SAE сети
Коэффициенты связей
Предсказание обученной сетью
Сравнение обучающей и тестовой выборки
plot3d(xy)
Работаем с пакетом MNIST
httpyannlecuncomexdbmnist
Подготовка к обработке
Slide 118
Визуализация
plotmnist()
Распознавание рукописных цифр в deepnet
End of slides part 2 (Part 3 - NLP remaining)
Recursive PartitioningRegression Tree example(r lt- rpart(class ~ x + y data = train))plot(r)text(r)
Here we look at the confusion matrix and overall error rate from applying the tree rules to the training datapredicted lt- asnumeric(apply(predict(r) 1 function(r) order(-r)[1]))(m lt- cm (train$class predicted))1 - sum(diag(m)) sum(m)
And by comparison against the test datapredicted lt- asnumeric(apply(predict(r test[12]) 1 function(r) order(-r)[1]))(m lt- cm (test$class predicted))1 - sum(diag(m)) sum(m)
Анализ по главным компонентам (Principal Component Analysis PCA)Известно четыре базовых версии методаbull аппроксимировать данные линейными многообразиями меньшей
размерностиbull найти подпространства меньшей размерности в ортогональной проекции
на которые разброс данных (то есть среднеквадратичное отклонение от среднего значения) максимален
bull найти подпространства меньшей размерности в ортогональной проекции на которые среднеквадратичное расстояние между точками максимально
bull для данной многомерной случайной величины построить такое ортогональное преобразование координат в результате которого корреляции между отдельными координатами обратятся в нуль
В основе задача наилучшей аппроксимации конечного множества точек прямыми и плоскостями (Пирсон 1901) Дано конечное множество векторов для каждого k=01hellipn-1 среди всех k-мерных линейных многообразий в Rn найти такое что сумма квадратов уклонений минимальна
bull Графическая иллюстрация метода главных компонент в 3D
Алгоритм
bull Централизация данных
bull Находим первую главную компоненту
bull Вычитаем проекцию на нее
bull Находим вторую главную компоненту
bull Вычитаем проекцию на (k-1) главную компоненту
bull Находим k-ую главную компоненту
bull Всегда выполняется условие ортогональности
princomp(formula data = NULL subset naaction )formula a formula with no response variable referring only to numeric variables
data an optional data frame (or similar see modelframe) containing the variables in the formula formula By default the variables are taken from environment(formula)
subset an optional vector used to select rows (observations) of the data matrix x
naaction a function which indicates what should happen when the data contain NAs The default is set by the naaction setting of options and is nafail if that is unset The lsquofactory-freshrsquo default is naomit
x a numeric matrix or data frame which provides the data for the principal components analysis
cor a logical value indicating whether the calculation should use the correlation matrix or the covariance matrix (The correlation matrix can only be used if there are no constant variables)
scores a logical value indicating whether the score on each principal component should be calculated
covmat a covariance matrix or a covariance list as returned by covwt (and covmve or covmcd from package MASS) If supplied this is used rather than the covariance matrix of x
arguments passed to or from other methods If x is a formula one might specify cor or scores
object Object of class inheriting from princomp
newdata An optional data frame or matrix in which to look for variables with which to predict If omitted the scores are used If the original fit used a formula or a data frame or a matrix with column names newdata must contain columns with the same names Otherwise it must contain the same number of columns to be used in the same order
Principal Component Analysis (PCA)plt-princomp(train[12])train_pca lt- dataframe(p$scores)train_pca$class lt- train$class
Compare the alignment of the clusters to the axis in the feature space versus the transformed space
r2 lt- rpart(class ~ Comp1 + Comp2 data = train_pca)
Линейный дискриминантный анализ (Linear Discriminant Analysis - LDA)bull Для каждого образца объекта или события с известным классом y
рассматривается набор наблюдений x (называемых ещё признаками переменными или измерениями) Набор таких образцов называется обучающей выборкой (или набором обучения обучением) Задачи классификации состоит в том чтобы построить хороший прогноз класса y для всякого так же распределённого объекта (не обязательно содержащегося в обучающей выборке) имея только наблюдения x Основная идея состоит в сравнении распределений для каждого из классов Расстоянием (по Фишеру) между распределениями принято считать отношение межклассовой дисперсии к внутриклассовой
bull Оптимальное байесовское решение - относить точки ко второму классу если отношение правдоподобия ниже некоторого порогового значения T
bull Предполагая что выполнена нормировка
bull Решение записывается в виде неравенства для скалярного произведения
bull Здесь laquoизмерительныйraquo вектор равен
bull с- дискриминантный порог
lda(x grouping prior = proportions tol = 10e-4 method CV = FALSE nu )
formula A formula of the form groups ~ x1 + x2 + That is the response is the grouping factor and the right hand side specifies the (non-factor) discriminators
data Data frame from which variables specified in formula are preferentially to be taken
x (required if no formula is given as the principal argument) a matrix or data frame or Matrix containing the explanatory variables
grouping (required if no formula principal argument is given) a factor specifying the class for each observation
prior the prior probabilities of class membership If unspecified the class proportions for the training set are used If present the probabilities should be specified in the order of the factor levels
tol A tolerance to decide if a matrix is singular it will reject variables and linear combinations of unit-variance variables whose variance is less than tol^2
subset An index vector specifying the cases to be used in the training sample (NOTE If given this argument must be named)
naaction A function to specify the action to be taken if NAs are found The default action is for the procedure to fail An alternative is naomit which leads to rejection of cases with missing values on any required variable (NOTE If given this argument must be named)
method moment for standard estimators of the mean and variance mle for MLEs mve to use covmve or t for robust estimates based on a t distribution
CV If true returns results (classes and posterior probabilities) for leave-one-out cross-validation Note that if the prior is estimated the proportions in the whole dataset are used
nu degrees of freedom for method = t
arguments passed to or from other methods
prior the prior probabilities usedmeans the group meansscaling a matrix which transforms observations to
discriminant functions normalized so that within groups covariance matrix is spherical
svd the singular values which give the ratio of the between- and within-group standard deviations on the linear discriminant variables Their squares are the canonical F-statistics
N The number of observations usedcall The (matched) function call
An object of class lda containing the following components
Метод опорных векторов (Support Vector Machines - SVM)Относится к ML с учителем и использует линейные разделяющие поверхности
Идея алгоритма
bull По обучающей выборке
bull Строится классифицирующая функция
bull Используя гиперплоскость
bull Поиск коэффициентов сводится к максимизации
расстояний от опорных векторов или минимизации
Иллюстрация на простейшем примере
>
Производится вложение обучающей выборки в пространство более высокой размерности Х с помощью нелинейной функции так чтобы обеспечит линейную разделимость в Х
Разделяющая функция тогда имеет вид
Функция называется ядром
Полиномиальное ядро
Радиальная базисная функция
Сигмоид
Линейная неразделимость и использование ядер
Иллюстрация использования ядра для отображения 2D -gt 3D
>
svm((formula data = NULL subset naaction =naomit scale = TRUE))
formulaa symbolic description of the model to be fitdataan optional data frame containing the variables in the model By default the variables are taken from the environment which lsquosvmrsquo is called fromxa data matrix a vector or a sparse matrix (object of class Matrix provided by the Matrix package or of class matrixcsr provided by the SparseM package or of class simple_triplet_matrix provided by the slam package)ya response vector with one label for each rowcomponent of x Can be either a factor (for classification tasks) or a numeric vector (for regression)scaleA logical vector indicating the variables to be scaled If scale is of length 1 the value is recycled as many times as needed Per default data are scaled internally (both x and y variables) to zero mean and unit variance The center and scale values are returned and used for later predictionstypesvm can be used as a classification machine as a regression machine or for novelty detection Depending of whether y is a factor or not the default setting for type is C-classification or eps-regression respectively but may be overwritten by setting an explicit valueValid options areC-classificationnu-classificationone-classification (for novelty detection)eps-regressionnu-regression
Support Vector Machines
s lt- svm( I(factor(class)) ~ x + y data = train cost = 100 gama = 1)
Package lsquodeepnetrsquo February 19 2015 Type Package Title deep learning toolkit in R Version 02 Date 2014-03-20 Author Xiao Rong Maintainer Xiao Rong Description Implement some deep learning architectures and neural network algorithms including BPRBMDBNDeep autoencoder and so on License GPL NeedsCompilation no Repository CRAN DatePublication 2014-03-20 100343
laquoВ 1997 году Deep Blue обыграл в шахматы КаспароваВ 2011 Watson обставил чемпионов JeopardyСможет ли ваш алгоритм в 2013 году отличить Бобика от ПушистикаraquoKaggle Competitions Details
Сегодня уже можно ответить laquoдаraquo mdash десятка лидеров справилась с заданием на 988
Распознавание основано на feature detection и последующем различении комбинаций
Заранее неизвестно какие части картинки могут использоваться как хорошие features В их роли может выступать все что угодно mdash фрагменты изображения форма размер или цвет Feature может не присутствовать на картинке сама а выражаться в параметре полученным каким-то образом из исходных данных
Распознавание рукописных цифр
Еще пример посложнее
Использование нейронной сети с обучениемОбучение такой нейронной сети производится обычно методом обратного распространения ошибки таким образом чтобы минимизировать среднеквадратическую ошибку отклика сети на обучающей выборке Таким образом обучающая выборка содержит пары векторов признаков (входные данные) и эталонных векторов (маркированные данные) (x y)
Сверхвысокая размерность при работе с первичным представлением пикселями
Пиксельное кодирование
Принцип иерархии понятий ndash основа deep learning
bull Все вещи состоят из других маленьких и более элементарных вещей
bull Как извлекать features Гипотеза малоразмерных многообразий
Разреженное (sparse) кодирование
первый уровень иерархии состоит из элементов словаря этого кода которые представляют собой штрихи и границы
Словарь для лиц
Выделение объектов заданного класса
Основные архитектуры Deep Learningbull Deep neural networks (DNN)bull Deep belief networks (DBN)bull Convolutional neural networks (CNN)bull Deep Boltzmann Machines (DBM)bull Stacked (Denoising) Auto-Encodersbull Deep Stacking Networksbull Tensor Deep Stacking Networks (T-DSN)bull Spike-and-Slab RBMs (ssRBMs)bull Compound Hierarchical-Deep Modelsbull Deep Coding Networks (DPCN)bull Deep Kernel Machinesbull Deep Q-Networks (2015 г)
Задача классификации распознавания и подобные являются задачей конструирования функции на множестве входных наборов и со значениями в множестве требуемого вида выходных
bull Норбертом Винером было показано что любая функция может быть сколь угодно точно композицией двух (он использовал функции полином Лагранжа и функцию Лагерра)
bull Соответствует двухслойной нейросетиbull Архитектуры Deep Learning соответствуют представлению
bull Обеспечивают эффективную параметризацию при решении конкретных задач Более сложные функции создаются из большего числа но более эффективно настраиваемых laquoкирпичиковraquo Пример ndash синтез булевых функций Дерево вентилей эффективнее двухслойной схемы
Фактор - графыВсе методы которые расмотрели ndash не DL Даже деревья классификации Все операции в одном входном словаре
DL можно определить по фактор-графу
Например
bull Еще одна сторона DL - нередко использует невыпуклые функции потерьbull Обучение на основе выпуклых функций не зависит от порядка
предъявления данных для обучения Все определяет асимптотика всего train - набора В алгоритмах DL порядок данных в обучающей выборке может иметь значение
bull Многие решения в DL не доказаны математически и являются успешными эвристиками
bull Большой простор для прикладной математики Может рассматриваться как фактор-граф с группами латентных переменных
bull В настоящее время стал основной технологией в распознавании речи (speech recognition) и машинном зрении (computer vision) начал применяться в обработке текстов (natural language processing)
bull Основная идея ndash применение нелинейного отображения входного набора в более высокоразмерное пространство где многие неразделимые композиции становятся разделимыми а затем объединение композиций по семантической близости
Подход разреженного кодирования
Обобщенная архитектура
bull DL сеть может быть собрана каскадированием и использованием обучения с учителем
Здесь используется forward propagation для обучения
Для настройки коэффициентов используется метод fprof для каждого
Требуется знание градиента энергии
Элементы (kl) матрицы Якобиана
Требуется знание градиента энергии 120597119864120597119882119894 = 120597119864120597119883119894120597119865119894(119883119894minus1119882119894)120597119882119894
ሾ1times 119873119908ሿ= ሾ1times 119873119909ሿlowast[119873119909 times 119873119908] Элементы (kl) матрицы Якобиана
Сводится к рекуррентному соотношению для вычисления градиента 120597119864120597119883119894minus1 = 120597119864120597119883119894120597119865119894(119883119894minus1119882119894)120597119883119894minus1
В итоге
Для вычисления градиента может использоваться метод back propagation
В действительности работают любые архитектуры построения функции Нужно конструировать связи и функции блоков
Язык Torch 7 ndash современный инструмент моделирования и имплементации
Machine Learning with Torch7 (httpcodecogbitscomwikidokuphpid=start)
bull These tutorials were originally designed for the IPAM Summer School on Deep Learning more info herebull This wiki provides multiple tutorials with the overall objective of teaching you how to do machine learning
with Torch7bull Torch7 provides a Matlab-like environment for state-of-the-art machine learning algorithms It is easy to use
and provides a very efficient implementation thanks to an easy and fast scripting language (LuaJIT) and an underlying C implementation
bull These tutorials should be readdone in orderbull Tutorial 1 Setup Basics Getting Startedbull Tutorial 2 Supervised Learningbull Tutorial 3 Unsupervised Learningbull Tutorial 4 Graphical Modelsbull Tutorial 5 Creating New Modulesbull Tutorial 6 Using CUDAbull To follow these tutorials and do the exercises you will need to download the associated code which is hosted
on GitHub on this page In this repository each directory corresponds to a tutorial herebull starttxt middot Last modified 20140204 2246 by clement
Torch 7 является расширением Lua
What is LuaLua is a powerful fast lightweight embeddable scripting languageLua combines simple procedural syntax with powerful data description constructs based on associative arrays and extensible semantics Lua is dynamically typed runs by interpreting bytecode for a register-based virtual machine and has automatic memory management with incremental garbage collection making it ideal for configuration scripting and rapid prototyping
Why choose LuaLua is a proven robust languageLua has been used in many industrial applications (eg Adobes Photoshop Lightroom) with an emphasis on embedded systems (eg the Ginga middleware for digital TV in Brazil) and games (eg World of Warcraft and Angry Birds) Lua is currently the leading scripting language in games Lua has a solid reference manual and there are several books about it Several versions of Lua have been released and used in real applications since its creation in 1993 Lua featured in HOPL III the Third ACM SIGPLAN History of Programming Languages Conference in June 2007 Lua won the Front Line Award 2011 from the Game Developers Magazine
Свертка и архитектура 4-х уровневой сверточной сети
Функциональная структура
Примеры успешного применения сверточных сетей
Диагностика эпилепсии по ЭЭГ
Реализация сверточной сетью
Одна из самых больших сверточных сетейbull Krizhevsky Sutskever Hinton 2012bull 650 000 нейронов 832 000 000 синапсов 60 000000 пареметровbull Использовался backprop на GPUbull Обучающая выборка на материалах 20 летbull Купил Google в январе 2013bull В мае 2013 развернул как сервис Photo Tagging Google+
Пример тэгирования
Пример поиска похожих по изображению
Пример поиска в коллекции изображений по текстовому запросу
Пример laquoоблачногоraquo классификатора изображений
Самообучающиеся нейронные сети на основе минимизации функции энергииbull Применима к сетям с обратными связямиbull Конструирование функции энергии должно обеспечивать
laquoконтрастностьraquo разделения
bull Энергетическая функция может Неформально рассматриваться как отрицательный логарифм плотности вероятности
Y 2=(Y1)2
RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцмана
bull Из DBM cтроится Deep Belief Network (DBN)
bull w mdash вес между нейронами
bull b mdash смещение нейрона
bull s mdash состояние нейрона
Алгоритм обучения Contrastive Divergence (CD)bull w_ij mdash веc между i-ым нейроном Вероятность пар может быть представлена как
bull a_i mdash смещение видимого нейрона
bull b_j mdash смещение скрытого нейрона
bull v_i mdash состояние видимого нейрона
bull h_j mdash состояние скрытого нейрона Полная вероятность состояния видимых нейронов
Основные уравнения адаптации
Алгоритм Хинтона - Contrastive Divergence (CD-k)
1 состояние видимых нейронов приравнивается к входному образу2 выводятся вероятности состояний скрытого слоя3 каждому нейрону скрытого слоя ставится в соответствие состояние laquo1raquo с вероятностью равной его текущему состоянию4 выводятся вероятности видимого слоя на основании скрытого5 если текущая итерация меньше k то возврат к шагу 26 выводятся вероятности состояний скрытого слоя
darch Package for deep architectures and Restricted-Bolzmann-MachinesThe darch package is build on the basis of the code from G E Hinton and R R Salakhutdinov (available under Matlab Code for deep belief nets last visit 01082013) This package is for generating neural networks with many layers (deep architectures) and train them with the method introduced by the publications A fast learning algorithm for deep belief nets (G E Hinton S Osindero Y W Teh) and Reducing the dimensionality of data with neural networks (G E Hinton R R Salakhutdinov) This method includes a pre training with the contrastive divergence method publishing by GE Hinton (2002) and a fine tuning with common known training algorithms like backpropagation or conjugate gradient
bull Version 091bull Imports futilelogger ff methodsbull Published 2014-03-16bull Author Martin Dreesbull Maintainer Martin Drees ltmdrees at studfh-dortmunddegtbull License GPL-2bull URL httpgithubcommaddin79darchbull NeedsCompilation nobull Materials READMEbull CRAN checks darch results
Связь плотности вероятности и энергии
Используется распределение Гиббса
Задача обучения с точки минимизации энергии сети
bull Сконструировать функцию энергии с малыми значениями на обучающей выборке и с большими значениями всюду вне этого множества
bull Первое несложно а второе представляет задачу процесса обучения
Интуитивные соображения
Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decomposition LISTA ndashметоды использующие разреженные коды
Латентная переменная Z =argmin_z Distance[Decoder(Z)Y]+FactorB(Z)MAPminimaize sum of factors
Автоэнкодер (auto encoder) Автоэнкодер представляет собой алгоритм обучения без учителя который использует нейронную сеть и метод обратного распространения ошибки для того чтобы добиться того что входной вектор признаков вызывал отклик сети равный входному вектору те y = x Автоэнкодер пытается построить функцию h(x) = x
Архитекттура ICA моделей
Итеративные алгоритмы с оптимальным разреженным кодированием ISTAFISTA
Самоорганизация данных методами Deep Learning
>
Знакомство с пакетом deepnet
Назначение
Составdbndnntrain - обучение сети с архитектурой DBN (deep belief network)loadmnist - формирование данных из файлов MNISTnnpredict - предсказание новых выборок на обученной нейронной сетиnntest ndash тестирование обученной нейронной сети с возвращением значения ошибкиnntrain ndash обучение одностлойной или многослойной нейронной сети методом backproprbmdown ndash генерирование видимого вектора для скрытых состояний сети RBMrbmtrain ndash обучение сети RBMrbmup ndash извлечение скрытых состояний RBM по известным видимым состояниямsaednntrain ndash обучение нейронной сети с архитектурой stacked autoencoder
Прогнозирование (классификация) нейронной сетью с архитектурой stacked auto encoder
Argumentsbull x matrix of x values for examplesbull y vector or matrix of target values for examplesbull hidden vector for number of units of hidden layersDefault is c(10)bull activationfun activation function of hidden unitCan be sigmlinear or tanhDefault isbull sigm for logistic functionbull learningrate learning rate for gradient descent Default is 08bull momentum momentum for gradient descent Default is 05 bull learningrate_scalebull learning rate will be mutiplied by this scale after every iteration Default is 1 bull numepochs number of iteration for samples Default is 3bull batchsize size of mini-batch Default is 100bull output function of output unit can be sigmlinear or softmax Default is sigmbull sae_output function of autoencoder output unit can be sigmlinear or softmax Defaultbull is linearbull hidden_dropout drop out fraction for hidden layer Default is 0bull visible_dropoutbull drop out fraction for input layer Default is 0
Что такое MNISTbull Смешанный набор данных Национального института стандартов и
технологий (mixed National Institute of Standards and Technology MNIST) был создан исследователями IR в качестве эталона для сравнения различных алгоритмов IR
bull Набор данных состоит всего из 70 000 изображений 60 000 обучающих (используемых для создания модели IR) и 10 000 тестовых (применяемых для оценки точности модели) Каждое изображение MNIST mdash это оцифрованная картинка одной цифры написанной от руки Каждое изображение имеет размер 28 times 28 пикселей Каждое значение пикселя лежит в диапазоне от 0 (представляет белый цвет) до 255 (представляет черный цвет) Промежуточные значения отражают оттенки серого
httpyannlecuncomexdbmnistобучающие и тестовые данные хранятся в двух файлах а не в одном Один файл содержит значения пикселей для изображений а другой mdash метки изображений (0ndash9) Каждый из четырех файлов также содержит заголовочную информацию и все они хранятся в двоичном формате сжатом в формате gziptrain-images-idx3-ubytegz training set images (9912422 bytes)
train-labels-idx1-ubytegz training set labels (28881 bytes)
t10k-images-idx3-ubytegz test set images (1648877 bytes)
t10k-labels-idx1-ubytegz test set labels (4542 bytes)
bull Каждая строка файла представляет собой имидж размера 28 times 28 вектором длины 784 каждый признак ndash значение пиксела в черно-белой шале Первый столбец содержит метку цифры 0ndash9 следующие 2828 столбцов представляют целый имидж и так далее Пример первой строки
Визуализация
bull plotmnist()bull mnistbull paramsbull train$n number of train samplesbull train$x pix of every train sample imagebull train$y label of every train sample imagebull train$yy one-of-c vector of label of train sample imagebull test$n number of test samplesbull test$x pix of every test sample imagebull test$y label of every test sample imagebull test$yy one-of-c vector of label of test sample image
plotmnist()
Распознавание рукописных цифр в deepnet
another way to download the MNIST datasetmnist downloadmnist(range=c(01)global=FALSE)look at MNIST datamnist$train$xmnist$train$ymnist$test$xmnist$test$ytrain of the sae neural networkdnnlt-saednntrain(mnist$train$xmnist$train$yhidden=c(55))test of the sae neural networknntest(dnnmnist$test$xmnist$test$yt=05)
End of slides part 2 (Part 3 - NLP remaining)
Vladimirvkrylovgmailcom
Основы предиктивной аналитики Часть вторая
Применение методов Machine Learning к решению задач аналитики
Дмитрий Ветров кандидат физико-математических наук ру
Методы обучающихся машин для аналитики которые мы рассмотрим
Сначала нужно загрузить несколько пакетов (packages) для поддер
Данные для анализа
Скрипт для генерации
Данные которые мы будем использовать для демо состоят из смес
Так выглядят визуализированные данные сгенерированные скриптом
Разделение данных на обучающие и проверочные является важным эт
K-means алгоритм на пальцах
Обучающаяся машина без учителя Алгоритм K-means
Slide 13
Slide 14
Здесь мы используем заранее известный факт что необходимо кла
Еще одна иллюстрация работы алгоритма K-means
Обучающаяся машина без учителя Алгоритм KNN (Nearest Neighbor)
Как работает алгоритм KNN
knn(train test cl k = 1 l = 0 prob = FALSE useall = TRUE
Slide 20
Результаты кластеризации и зависимость ошибки от числа кластеро
Recursive PartitioningRegression Tree
Метод RP реализует обучение машины строить дерево решений по об
Recursive PartitioningRegression Tree (2)
rpart(formula data weights subset naaction = narpart met
Slide 26
Recursive PartitioningRegression Tree example
Анализ по главным компонентам (Principal Component Analysis PC
Итеративные алгоритмы с оптимальным разреженным кодированием IS
Самоорганизация данных методами Deep Learning
Знакомство с пакетом deepnet
Прогнозирование (классификация) нейронной сетью с архитектурой
Arguments
Архитектура сети SAE
Архитектура с 5Х4 hidden 3 outs
Example
Анализ обучающего набора данных
Параметры SAE сети
Коэффициенты связей
Предсказание обученной сетью
Сравнение обучающей и тестовой выборки
plot3d(xy)
Работаем с пакетом MNIST
httpyannlecuncomexdbmnist
Подготовка к обработке
Slide 118
Визуализация
plotmnist()
Распознавание рукописных цифр в deepnet
End of slides part 2 (Part 3 - NLP remaining)
Анализ по главным компонентам (Principal Component Analysis PCA)Известно четыре базовых версии методаbull аппроксимировать данные линейными многообразиями меньшей
размерностиbull найти подпространства меньшей размерности в ортогональной проекции
на которые разброс данных (то есть среднеквадратичное отклонение от среднего значения) максимален
bull найти подпространства меньшей размерности в ортогональной проекции на которые среднеквадратичное расстояние между точками максимально
bull для данной многомерной случайной величины построить такое ортогональное преобразование координат в результате которого корреляции между отдельными координатами обратятся в нуль
В основе задача наилучшей аппроксимации конечного множества точек прямыми и плоскостями (Пирсон 1901) Дано конечное множество векторов для каждого k=01hellipn-1 среди всех k-мерных линейных многообразий в Rn найти такое что сумма квадратов уклонений минимальна
bull Графическая иллюстрация метода главных компонент в 3D
Алгоритм
bull Централизация данных
bull Находим первую главную компоненту
bull Вычитаем проекцию на нее
bull Находим вторую главную компоненту
bull Вычитаем проекцию на (k-1) главную компоненту
bull Находим k-ую главную компоненту
bull Всегда выполняется условие ортогональности
princomp(formula data = NULL subset naaction )formula a formula with no response variable referring only to numeric variables
data an optional data frame (or similar see modelframe) containing the variables in the formula formula By default the variables are taken from environment(formula)
subset an optional vector used to select rows (observations) of the data matrix x
naaction a function which indicates what should happen when the data contain NAs The default is set by the naaction setting of options and is nafail if that is unset The lsquofactory-freshrsquo default is naomit
x a numeric matrix or data frame which provides the data for the principal components analysis
cor a logical value indicating whether the calculation should use the correlation matrix or the covariance matrix (The correlation matrix can only be used if there are no constant variables)
scores a logical value indicating whether the score on each principal component should be calculated
covmat a covariance matrix or a covariance list as returned by covwt (and covmve or covmcd from package MASS) If supplied this is used rather than the covariance matrix of x
arguments passed to or from other methods If x is a formula one might specify cor or scores
object Object of class inheriting from princomp
newdata An optional data frame or matrix in which to look for variables with which to predict If omitted the scores are used If the original fit used a formula or a data frame or a matrix with column names newdata must contain columns with the same names Otherwise it must contain the same number of columns to be used in the same order
Principal Component Analysis (PCA)plt-princomp(train[12])train_pca lt- dataframe(p$scores)train_pca$class lt- train$class
Compare the alignment of the clusters to the axis in the feature space versus the transformed space
r2 lt- rpart(class ~ Comp1 + Comp2 data = train_pca)
Линейный дискриминантный анализ (Linear Discriminant Analysis - LDA)bull Для каждого образца объекта или события с известным классом y
рассматривается набор наблюдений x (называемых ещё признаками переменными или измерениями) Набор таких образцов называется обучающей выборкой (или набором обучения обучением) Задачи классификации состоит в том чтобы построить хороший прогноз класса y для всякого так же распределённого объекта (не обязательно содержащегося в обучающей выборке) имея только наблюдения x Основная идея состоит в сравнении распределений для каждого из классов Расстоянием (по Фишеру) между распределениями принято считать отношение межклассовой дисперсии к внутриклассовой
bull Оптимальное байесовское решение - относить точки ко второму классу если отношение правдоподобия ниже некоторого порогового значения T
bull Предполагая что выполнена нормировка
bull Решение записывается в виде неравенства для скалярного произведения
bull Здесь laquoизмерительныйraquo вектор равен
bull с- дискриминантный порог
lda(x grouping prior = proportions tol = 10e-4 method CV = FALSE nu )
formula A formula of the form groups ~ x1 + x2 + That is the response is the grouping factor and the right hand side specifies the (non-factor) discriminators
data Data frame from which variables specified in formula are preferentially to be taken
x (required if no formula is given as the principal argument) a matrix or data frame or Matrix containing the explanatory variables
grouping (required if no formula principal argument is given) a factor specifying the class for each observation
prior the prior probabilities of class membership If unspecified the class proportions for the training set are used If present the probabilities should be specified in the order of the factor levels
tol A tolerance to decide if a matrix is singular it will reject variables and linear combinations of unit-variance variables whose variance is less than tol^2
subset An index vector specifying the cases to be used in the training sample (NOTE If given this argument must be named)
naaction A function to specify the action to be taken if NAs are found The default action is for the procedure to fail An alternative is naomit which leads to rejection of cases with missing values on any required variable (NOTE If given this argument must be named)
method moment for standard estimators of the mean and variance mle for MLEs mve to use covmve or t for robust estimates based on a t distribution
CV If true returns results (classes and posterior probabilities) for leave-one-out cross-validation Note that if the prior is estimated the proportions in the whole dataset are used
nu degrees of freedom for method = t
arguments passed to or from other methods
prior the prior probabilities usedmeans the group meansscaling a matrix which transforms observations to
discriminant functions normalized so that within groups covariance matrix is spherical
svd the singular values which give the ratio of the between- and within-group standard deviations on the linear discriminant variables Their squares are the canonical F-statistics
N The number of observations usedcall The (matched) function call
An object of class lda containing the following components
Метод опорных векторов (Support Vector Machines - SVM)Относится к ML с учителем и использует линейные разделяющие поверхности
Идея алгоритма
bull По обучающей выборке
bull Строится классифицирующая функция
bull Используя гиперплоскость
bull Поиск коэффициентов сводится к максимизации
расстояний от опорных векторов или минимизации
Иллюстрация на простейшем примере
>
Производится вложение обучающей выборки в пространство более высокой размерности Х с помощью нелинейной функции так чтобы обеспечит линейную разделимость в Х
Разделяющая функция тогда имеет вид
Функция называется ядром
Полиномиальное ядро
Радиальная базисная функция
Сигмоид
Линейная неразделимость и использование ядер
Иллюстрация использования ядра для отображения 2D -gt 3D
>
svm((formula data = NULL subset naaction =naomit scale = TRUE))
formulaa symbolic description of the model to be fitdataan optional data frame containing the variables in the model By default the variables are taken from the environment which lsquosvmrsquo is called fromxa data matrix a vector or a sparse matrix (object of class Matrix provided by the Matrix package or of class matrixcsr provided by the SparseM package or of class simple_triplet_matrix provided by the slam package)ya response vector with one label for each rowcomponent of x Can be either a factor (for classification tasks) or a numeric vector (for regression)scaleA logical vector indicating the variables to be scaled If scale is of length 1 the value is recycled as many times as needed Per default data are scaled internally (both x and y variables) to zero mean and unit variance The center and scale values are returned and used for later predictionstypesvm can be used as a classification machine as a regression machine or for novelty detection Depending of whether y is a factor or not the default setting for type is C-classification or eps-regression respectively but may be overwritten by setting an explicit valueValid options areC-classificationnu-classificationone-classification (for novelty detection)eps-regressionnu-regression
Support Vector Machines
s lt- svm( I(factor(class)) ~ x + y data = train cost = 100 gama = 1)
Package lsquodeepnetrsquo February 19 2015 Type Package Title deep learning toolkit in R Version 02 Date 2014-03-20 Author Xiao Rong Maintainer Xiao Rong Description Implement some deep learning architectures and neural network algorithms including BPRBMDBNDeep autoencoder and so on License GPL NeedsCompilation no Repository CRAN DatePublication 2014-03-20 100343
laquoВ 1997 году Deep Blue обыграл в шахматы КаспароваВ 2011 Watson обставил чемпионов JeopardyСможет ли ваш алгоритм в 2013 году отличить Бобика от ПушистикаraquoKaggle Competitions Details
Сегодня уже можно ответить laquoдаraquo mdash десятка лидеров справилась с заданием на 988
Распознавание основано на feature detection и последующем различении комбинаций
Заранее неизвестно какие части картинки могут использоваться как хорошие features В их роли может выступать все что угодно mdash фрагменты изображения форма размер или цвет Feature может не присутствовать на картинке сама а выражаться в параметре полученным каким-то образом из исходных данных
Распознавание рукописных цифр
Еще пример посложнее
Использование нейронной сети с обучениемОбучение такой нейронной сети производится обычно методом обратного распространения ошибки таким образом чтобы минимизировать среднеквадратическую ошибку отклика сети на обучающей выборке Таким образом обучающая выборка содержит пары векторов признаков (входные данные) и эталонных векторов (маркированные данные) (x y)
Сверхвысокая размерность при работе с первичным представлением пикселями
Пиксельное кодирование
Принцип иерархии понятий ndash основа deep learning
bull Все вещи состоят из других маленьких и более элементарных вещей
bull Как извлекать features Гипотеза малоразмерных многообразий
Разреженное (sparse) кодирование
первый уровень иерархии состоит из элементов словаря этого кода которые представляют собой штрихи и границы
Словарь для лиц
Выделение объектов заданного класса
Основные архитектуры Deep Learningbull Deep neural networks (DNN)bull Deep belief networks (DBN)bull Convolutional neural networks (CNN)bull Deep Boltzmann Machines (DBM)bull Stacked (Denoising) Auto-Encodersbull Deep Stacking Networksbull Tensor Deep Stacking Networks (T-DSN)bull Spike-and-Slab RBMs (ssRBMs)bull Compound Hierarchical-Deep Modelsbull Deep Coding Networks (DPCN)bull Deep Kernel Machinesbull Deep Q-Networks (2015 г)
Задача классификации распознавания и подобные являются задачей конструирования функции на множестве входных наборов и со значениями в множестве требуемого вида выходных
bull Норбертом Винером было показано что любая функция может быть сколь угодно точно композицией двух (он использовал функции полином Лагранжа и функцию Лагерра)
bull Соответствует двухслойной нейросетиbull Архитектуры Deep Learning соответствуют представлению
bull Обеспечивают эффективную параметризацию при решении конкретных задач Более сложные функции создаются из большего числа но более эффективно настраиваемых laquoкирпичиковraquo Пример ndash синтез булевых функций Дерево вентилей эффективнее двухслойной схемы
Фактор - графыВсе методы которые расмотрели ndash не DL Даже деревья классификации Все операции в одном входном словаре
DL можно определить по фактор-графу
Например
bull Еще одна сторона DL - нередко использует невыпуклые функции потерьbull Обучение на основе выпуклых функций не зависит от порядка
предъявления данных для обучения Все определяет асимптотика всего train - набора В алгоритмах DL порядок данных в обучающей выборке может иметь значение
bull Многие решения в DL не доказаны математически и являются успешными эвристиками
bull Большой простор для прикладной математики Может рассматриваться как фактор-граф с группами латентных переменных
bull В настоящее время стал основной технологией в распознавании речи (speech recognition) и машинном зрении (computer vision) начал применяться в обработке текстов (natural language processing)
bull Основная идея ndash применение нелинейного отображения входного набора в более высокоразмерное пространство где многие неразделимые композиции становятся разделимыми а затем объединение композиций по семантической близости
Подход разреженного кодирования
Обобщенная архитектура
bull DL сеть может быть собрана каскадированием и использованием обучения с учителем
Здесь используется forward propagation для обучения
Для настройки коэффициентов используется метод fprof для каждого
Требуется знание градиента энергии
Элементы (kl) матрицы Якобиана
Требуется знание градиента энергии 120597119864120597119882119894 = 120597119864120597119883119894120597119865119894(119883119894minus1119882119894)120597119882119894
ሾ1times 119873119908ሿ= ሾ1times 119873119909ሿlowast[119873119909 times 119873119908] Элементы (kl) матрицы Якобиана
Сводится к рекуррентному соотношению для вычисления градиента 120597119864120597119883119894minus1 = 120597119864120597119883119894120597119865119894(119883119894minus1119882119894)120597119883119894minus1
В итоге
Для вычисления градиента может использоваться метод back propagation
В действительности работают любые архитектуры построения функции Нужно конструировать связи и функции блоков
Язык Torch 7 ndash современный инструмент моделирования и имплементации
Machine Learning with Torch7 (httpcodecogbitscomwikidokuphpid=start)
bull These tutorials were originally designed for the IPAM Summer School on Deep Learning more info herebull This wiki provides multiple tutorials with the overall objective of teaching you how to do machine learning
with Torch7bull Torch7 provides a Matlab-like environment for state-of-the-art machine learning algorithms It is easy to use
and provides a very efficient implementation thanks to an easy and fast scripting language (LuaJIT) and an underlying C implementation
bull These tutorials should be readdone in orderbull Tutorial 1 Setup Basics Getting Startedbull Tutorial 2 Supervised Learningbull Tutorial 3 Unsupervised Learningbull Tutorial 4 Graphical Modelsbull Tutorial 5 Creating New Modulesbull Tutorial 6 Using CUDAbull To follow these tutorials and do the exercises you will need to download the associated code which is hosted
on GitHub on this page In this repository each directory corresponds to a tutorial herebull starttxt middot Last modified 20140204 2246 by clement
Torch 7 является расширением Lua
What is LuaLua is a powerful fast lightweight embeddable scripting languageLua combines simple procedural syntax with powerful data description constructs based on associative arrays and extensible semantics Lua is dynamically typed runs by interpreting bytecode for a register-based virtual machine and has automatic memory management with incremental garbage collection making it ideal for configuration scripting and rapid prototyping
Why choose LuaLua is a proven robust languageLua has been used in many industrial applications (eg Adobes Photoshop Lightroom) with an emphasis on embedded systems (eg the Ginga middleware for digital TV in Brazil) and games (eg World of Warcraft and Angry Birds) Lua is currently the leading scripting language in games Lua has a solid reference manual and there are several books about it Several versions of Lua have been released and used in real applications since its creation in 1993 Lua featured in HOPL III the Third ACM SIGPLAN History of Programming Languages Conference in June 2007 Lua won the Front Line Award 2011 from the Game Developers Magazine
Свертка и архитектура 4-х уровневой сверточной сети
Функциональная структура
Примеры успешного применения сверточных сетей
Диагностика эпилепсии по ЭЭГ
Реализация сверточной сетью
Одна из самых больших сверточных сетейbull Krizhevsky Sutskever Hinton 2012bull 650 000 нейронов 832 000 000 синапсов 60 000000 пареметровbull Использовался backprop на GPUbull Обучающая выборка на материалах 20 летbull Купил Google в январе 2013bull В мае 2013 развернул как сервис Photo Tagging Google+
Пример тэгирования
Пример поиска похожих по изображению
Пример поиска в коллекции изображений по текстовому запросу
Пример laquoоблачногоraquo классификатора изображений
Самообучающиеся нейронные сети на основе минимизации функции энергииbull Применима к сетям с обратными связямиbull Конструирование функции энергии должно обеспечивать
laquoконтрастностьraquo разделения
bull Энергетическая функция может Неформально рассматриваться как отрицательный логарифм плотности вероятности
Y 2=(Y1)2
RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцмана
bull Из DBM cтроится Deep Belief Network (DBN)
bull w mdash вес между нейронами
bull b mdash смещение нейрона
bull s mdash состояние нейрона
Алгоритм обучения Contrastive Divergence (CD)bull w_ij mdash веc между i-ым нейроном Вероятность пар может быть представлена как
bull a_i mdash смещение видимого нейрона
bull b_j mdash смещение скрытого нейрона
bull v_i mdash состояние видимого нейрона
bull h_j mdash состояние скрытого нейрона Полная вероятность состояния видимых нейронов
Основные уравнения адаптации
Алгоритм Хинтона - Contrastive Divergence (CD-k)
1 состояние видимых нейронов приравнивается к входному образу2 выводятся вероятности состояний скрытого слоя3 каждому нейрону скрытого слоя ставится в соответствие состояние laquo1raquo с вероятностью равной его текущему состоянию4 выводятся вероятности видимого слоя на основании скрытого5 если текущая итерация меньше k то возврат к шагу 26 выводятся вероятности состояний скрытого слоя
darch Package for deep architectures and Restricted-Bolzmann-MachinesThe darch package is build on the basis of the code from G E Hinton and R R Salakhutdinov (available under Matlab Code for deep belief nets last visit 01082013) This package is for generating neural networks with many layers (deep architectures) and train them with the method introduced by the publications A fast learning algorithm for deep belief nets (G E Hinton S Osindero Y W Teh) and Reducing the dimensionality of data with neural networks (G E Hinton R R Salakhutdinov) This method includes a pre training with the contrastive divergence method publishing by GE Hinton (2002) and a fine tuning with common known training algorithms like backpropagation or conjugate gradient
bull Version 091bull Imports futilelogger ff methodsbull Published 2014-03-16bull Author Martin Dreesbull Maintainer Martin Drees ltmdrees at studfh-dortmunddegtbull License GPL-2bull URL httpgithubcommaddin79darchbull NeedsCompilation nobull Materials READMEbull CRAN checks darch results
Связь плотности вероятности и энергии
Используется распределение Гиббса
Задача обучения с точки минимизации энергии сети
bull Сконструировать функцию энергии с малыми значениями на обучающей выборке и с большими значениями всюду вне этого множества
bull Первое несложно а второе представляет задачу процесса обучения
Интуитивные соображения
Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decomposition LISTA ndashметоды использующие разреженные коды
Латентная переменная Z =argmin_z Distance[Decoder(Z)Y]+FactorB(Z)MAPminimaize sum of factors
Автоэнкодер (auto encoder) Автоэнкодер представляет собой алгоритм обучения без учителя который использует нейронную сеть и метод обратного распространения ошибки для того чтобы добиться того что входной вектор признаков вызывал отклик сети равный входному вектору те y = x Автоэнкодер пытается построить функцию h(x) = x
Архитекттура ICA моделей
Итеративные алгоритмы с оптимальным разреженным кодированием ISTAFISTA
Самоорганизация данных методами Deep Learning
>
Знакомство с пакетом deepnet
Назначение
Составdbndnntrain - обучение сети с архитектурой DBN (deep belief network)loadmnist - формирование данных из файлов MNISTnnpredict - предсказание новых выборок на обученной нейронной сетиnntest ndash тестирование обученной нейронной сети с возвращением значения ошибкиnntrain ndash обучение одностлойной или многослойной нейронной сети методом backproprbmdown ndash генерирование видимого вектора для скрытых состояний сети RBMrbmtrain ndash обучение сети RBMrbmup ndash извлечение скрытых состояний RBM по известным видимым состояниямsaednntrain ndash обучение нейронной сети с архитектурой stacked autoencoder
Прогнозирование (классификация) нейронной сетью с архитектурой stacked auto encoder
Argumentsbull x matrix of x values for examplesbull y vector or matrix of target values for examplesbull hidden vector for number of units of hidden layersDefault is c(10)bull activationfun activation function of hidden unitCan be sigmlinear or tanhDefault isbull sigm for logistic functionbull learningrate learning rate for gradient descent Default is 08bull momentum momentum for gradient descent Default is 05 bull learningrate_scalebull learning rate will be mutiplied by this scale after every iteration Default is 1 bull numepochs number of iteration for samples Default is 3bull batchsize size of mini-batch Default is 100bull output function of output unit can be sigmlinear or softmax Default is sigmbull sae_output function of autoencoder output unit can be sigmlinear or softmax Defaultbull is linearbull hidden_dropout drop out fraction for hidden layer Default is 0bull visible_dropoutbull drop out fraction for input layer Default is 0
Что такое MNISTbull Смешанный набор данных Национального института стандартов и
технологий (mixed National Institute of Standards and Technology MNIST) был создан исследователями IR в качестве эталона для сравнения различных алгоритмов IR
bull Набор данных состоит всего из 70 000 изображений 60 000 обучающих (используемых для создания модели IR) и 10 000 тестовых (применяемых для оценки точности модели) Каждое изображение MNIST mdash это оцифрованная картинка одной цифры написанной от руки Каждое изображение имеет размер 28 times 28 пикселей Каждое значение пикселя лежит в диапазоне от 0 (представляет белый цвет) до 255 (представляет черный цвет) Промежуточные значения отражают оттенки серого
httpyannlecuncomexdbmnistобучающие и тестовые данные хранятся в двух файлах а не в одном Один файл содержит значения пикселей для изображений а другой mdash метки изображений (0ndash9) Каждый из четырех файлов также содержит заголовочную информацию и все они хранятся в двоичном формате сжатом в формате gziptrain-images-idx3-ubytegz training set images (9912422 bytes)
train-labels-idx1-ubytegz training set labels (28881 bytes)
t10k-images-idx3-ubytegz test set images (1648877 bytes)
t10k-labels-idx1-ubytegz test set labels (4542 bytes)
bull Каждая строка файла представляет собой имидж размера 28 times 28 вектором длины 784 каждый признак ndash значение пиксела в черно-белой шале Первый столбец содержит метку цифры 0ndash9 следующие 2828 столбцов представляют целый имидж и так далее Пример первой строки
Визуализация
bull plotmnist()bull mnistbull paramsbull train$n number of train samplesbull train$x pix of every train sample imagebull train$y label of every train sample imagebull train$yy one-of-c vector of label of train sample imagebull test$n number of test samplesbull test$x pix of every test sample imagebull test$y label of every test sample imagebull test$yy one-of-c vector of label of test sample image
plotmnist()
Распознавание рукописных цифр в deepnet
another way to download the MNIST datasetmnist downloadmnist(range=c(01)global=FALSE)look at MNIST datamnist$train$xmnist$train$ymnist$test$xmnist$test$ytrain of the sae neural networkdnnlt-saednntrain(mnist$train$xmnist$train$yhidden=c(55))test of the sae neural networknntest(dnnmnist$test$xmnist$test$yt=05)
End of slides part 2 (Part 3 - NLP remaining)
Vladimirvkrylovgmailcom
Основы предиктивной аналитики Часть вторая
Применение методов Machine Learning к решению задач аналитики
Дмитрий Ветров кандидат физико-математических наук ру
Методы обучающихся машин для аналитики которые мы рассмотрим
Сначала нужно загрузить несколько пакетов (packages) для поддер
Данные для анализа
Скрипт для генерации
Данные которые мы будем использовать для демо состоят из смес
Так выглядят визуализированные данные сгенерированные скриптом
Разделение данных на обучающие и проверочные является важным эт
K-means алгоритм на пальцах
Обучающаяся машина без учителя Алгоритм K-means
Slide 13
Slide 14
Здесь мы используем заранее известный факт что необходимо кла
Еще одна иллюстрация работы алгоритма K-means
Обучающаяся машина без учителя Алгоритм KNN (Nearest Neighbor)
Как работает алгоритм KNN
knn(train test cl k = 1 l = 0 prob = FALSE useall = TRUE
Slide 20
Результаты кластеризации и зависимость ошибки от числа кластеро
Recursive PartitioningRegression Tree
Метод RP реализует обучение машины строить дерево решений по об
Recursive PartitioningRegression Tree (2)
rpart(formula data weights subset naaction = narpart met
Slide 26
Recursive PartitioningRegression Tree example
Анализ по главным компонентам (Principal Component Analysis PC
В основе задача наилучшей аппроксимации конечного множества точек прямыми и плоскостями (Пирсон 1901) Дано конечное множество векторов для каждого k=01hellipn-1 среди всех k-мерных линейных многообразий в Rn найти такое что сумма квадратов уклонений минимальна
bull Графическая иллюстрация метода главных компонент в 3D
Алгоритм
bull Централизация данных
bull Находим первую главную компоненту
bull Вычитаем проекцию на нее
bull Находим вторую главную компоненту
bull Вычитаем проекцию на (k-1) главную компоненту
bull Находим k-ую главную компоненту
bull Всегда выполняется условие ортогональности
princomp(formula data = NULL subset naaction )formula a formula with no response variable referring only to numeric variables
data an optional data frame (or similar see modelframe) containing the variables in the formula formula By default the variables are taken from environment(formula)
subset an optional vector used to select rows (observations) of the data matrix x
naaction a function which indicates what should happen when the data contain NAs The default is set by the naaction setting of options and is nafail if that is unset The lsquofactory-freshrsquo default is naomit
x a numeric matrix or data frame which provides the data for the principal components analysis
cor a logical value indicating whether the calculation should use the correlation matrix or the covariance matrix (The correlation matrix can only be used if there are no constant variables)
scores a logical value indicating whether the score on each principal component should be calculated
covmat a covariance matrix or a covariance list as returned by covwt (and covmve or covmcd from package MASS) If supplied this is used rather than the covariance matrix of x
arguments passed to or from other methods If x is a formula one might specify cor or scores
object Object of class inheriting from princomp
newdata An optional data frame or matrix in which to look for variables with which to predict If omitted the scores are used If the original fit used a formula or a data frame or a matrix with column names newdata must contain columns with the same names Otherwise it must contain the same number of columns to be used in the same order
Principal Component Analysis (PCA)plt-princomp(train[12])train_pca lt- dataframe(p$scores)train_pca$class lt- train$class
Compare the alignment of the clusters to the axis in the feature space versus the transformed space
r2 lt- rpart(class ~ Comp1 + Comp2 data = train_pca)
Линейный дискриминантный анализ (Linear Discriminant Analysis - LDA)bull Для каждого образца объекта или события с известным классом y
рассматривается набор наблюдений x (называемых ещё признаками переменными или измерениями) Набор таких образцов называется обучающей выборкой (или набором обучения обучением) Задачи классификации состоит в том чтобы построить хороший прогноз класса y для всякого так же распределённого объекта (не обязательно содержащегося в обучающей выборке) имея только наблюдения x Основная идея состоит в сравнении распределений для каждого из классов Расстоянием (по Фишеру) между распределениями принято считать отношение межклассовой дисперсии к внутриклассовой
bull Оптимальное байесовское решение - относить точки ко второму классу если отношение правдоподобия ниже некоторого порогового значения T
bull Предполагая что выполнена нормировка
bull Решение записывается в виде неравенства для скалярного произведения
bull Здесь laquoизмерительныйraquo вектор равен
bull с- дискриминантный порог
lda(x grouping prior = proportions tol = 10e-4 method CV = FALSE nu )
formula A formula of the form groups ~ x1 + x2 + That is the response is the grouping factor and the right hand side specifies the (non-factor) discriminators
data Data frame from which variables specified in formula are preferentially to be taken
x (required if no formula is given as the principal argument) a matrix or data frame or Matrix containing the explanatory variables
grouping (required if no formula principal argument is given) a factor specifying the class for each observation
prior the prior probabilities of class membership If unspecified the class proportions for the training set are used If present the probabilities should be specified in the order of the factor levels
tol A tolerance to decide if a matrix is singular it will reject variables and linear combinations of unit-variance variables whose variance is less than tol^2
subset An index vector specifying the cases to be used in the training sample (NOTE If given this argument must be named)
naaction A function to specify the action to be taken if NAs are found The default action is for the procedure to fail An alternative is naomit which leads to rejection of cases with missing values on any required variable (NOTE If given this argument must be named)
method moment for standard estimators of the mean and variance mle for MLEs mve to use covmve or t for robust estimates based on a t distribution
CV If true returns results (classes and posterior probabilities) for leave-one-out cross-validation Note that if the prior is estimated the proportions in the whole dataset are used
nu degrees of freedom for method = t
arguments passed to or from other methods
prior the prior probabilities usedmeans the group meansscaling a matrix which transforms observations to
discriminant functions normalized so that within groups covariance matrix is spherical
svd the singular values which give the ratio of the between- and within-group standard deviations on the linear discriminant variables Their squares are the canonical F-statistics
N The number of observations usedcall The (matched) function call
An object of class lda containing the following components
Метод опорных векторов (Support Vector Machines - SVM)Относится к ML с учителем и использует линейные разделяющие поверхности
Идея алгоритма
bull По обучающей выборке
bull Строится классифицирующая функция
bull Используя гиперплоскость
bull Поиск коэффициентов сводится к максимизации
расстояний от опорных векторов или минимизации
Иллюстрация на простейшем примере
>
Производится вложение обучающей выборки в пространство более высокой размерности Х с помощью нелинейной функции так чтобы обеспечит линейную разделимость в Х
Разделяющая функция тогда имеет вид
Функция называется ядром
Полиномиальное ядро
Радиальная базисная функция
Сигмоид
Линейная неразделимость и использование ядер
Иллюстрация использования ядра для отображения 2D -gt 3D
>
svm((formula data = NULL subset naaction =naomit scale = TRUE))
formulaa symbolic description of the model to be fitdataan optional data frame containing the variables in the model By default the variables are taken from the environment which lsquosvmrsquo is called fromxa data matrix a vector or a sparse matrix (object of class Matrix provided by the Matrix package or of class matrixcsr provided by the SparseM package or of class simple_triplet_matrix provided by the slam package)ya response vector with one label for each rowcomponent of x Can be either a factor (for classification tasks) or a numeric vector (for regression)scaleA logical vector indicating the variables to be scaled If scale is of length 1 the value is recycled as many times as needed Per default data are scaled internally (both x and y variables) to zero mean and unit variance The center and scale values are returned and used for later predictionstypesvm can be used as a classification machine as a regression machine or for novelty detection Depending of whether y is a factor or not the default setting for type is C-classification or eps-regression respectively but may be overwritten by setting an explicit valueValid options areC-classificationnu-classificationone-classification (for novelty detection)eps-regressionnu-regression
Support Vector Machines
s lt- svm( I(factor(class)) ~ x + y data = train cost = 100 gama = 1)
Package lsquodeepnetrsquo February 19 2015 Type Package Title deep learning toolkit in R Version 02 Date 2014-03-20 Author Xiao Rong Maintainer Xiao Rong Description Implement some deep learning architectures and neural network algorithms including BPRBMDBNDeep autoencoder and so on License GPL NeedsCompilation no Repository CRAN DatePublication 2014-03-20 100343
laquoВ 1997 году Deep Blue обыграл в шахматы КаспароваВ 2011 Watson обставил чемпионов JeopardyСможет ли ваш алгоритм в 2013 году отличить Бобика от ПушистикаraquoKaggle Competitions Details
Сегодня уже можно ответить laquoдаraquo mdash десятка лидеров справилась с заданием на 988
Распознавание основано на feature detection и последующем различении комбинаций
Заранее неизвестно какие части картинки могут использоваться как хорошие features В их роли может выступать все что угодно mdash фрагменты изображения форма размер или цвет Feature может не присутствовать на картинке сама а выражаться в параметре полученным каким-то образом из исходных данных
Распознавание рукописных цифр
Еще пример посложнее
Использование нейронной сети с обучениемОбучение такой нейронной сети производится обычно методом обратного распространения ошибки таким образом чтобы минимизировать среднеквадратическую ошибку отклика сети на обучающей выборке Таким образом обучающая выборка содержит пары векторов признаков (входные данные) и эталонных векторов (маркированные данные) (x y)
Сверхвысокая размерность при работе с первичным представлением пикселями
Пиксельное кодирование
Принцип иерархии понятий ndash основа deep learning
bull Все вещи состоят из других маленьких и более элементарных вещей
bull Как извлекать features Гипотеза малоразмерных многообразий
Разреженное (sparse) кодирование
первый уровень иерархии состоит из элементов словаря этого кода которые представляют собой штрихи и границы
Словарь для лиц
Выделение объектов заданного класса
Основные архитектуры Deep Learningbull Deep neural networks (DNN)bull Deep belief networks (DBN)bull Convolutional neural networks (CNN)bull Deep Boltzmann Machines (DBM)bull Stacked (Denoising) Auto-Encodersbull Deep Stacking Networksbull Tensor Deep Stacking Networks (T-DSN)bull Spike-and-Slab RBMs (ssRBMs)bull Compound Hierarchical-Deep Modelsbull Deep Coding Networks (DPCN)bull Deep Kernel Machinesbull Deep Q-Networks (2015 г)
Задача классификации распознавания и подобные являются задачей конструирования функции на множестве входных наборов и со значениями в множестве требуемого вида выходных
bull Норбертом Винером было показано что любая функция может быть сколь угодно точно композицией двух (он использовал функции полином Лагранжа и функцию Лагерра)
bull Соответствует двухслойной нейросетиbull Архитектуры Deep Learning соответствуют представлению
bull Обеспечивают эффективную параметризацию при решении конкретных задач Более сложные функции создаются из большего числа но более эффективно настраиваемых laquoкирпичиковraquo Пример ndash синтез булевых функций Дерево вентилей эффективнее двухслойной схемы
Фактор - графыВсе методы которые расмотрели ndash не DL Даже деревья классификации Все операции в одном входном словаре
DL можно определить по фактор-графу
Например
bull Еще одна сторона DL - нередко использует невыпуклые функции потерьbull Обучение на основе выпуклых функций не зависит от порядка
предъявления данных для обучения Все определяет асимптотика всего train - набора В алгоритмах DL порядок данных в обучающей выборке может иметь значение
bull Многие решения в DL не доказаны математически и являются успешными эвристиками
bull Большой простор для прикладной математики Может рассматриваться как фактор-граф с группами латентных переменных
bull В настоящее время стал основной технологией в распознавании речи (speech recognition) и машинном зрении (computer vision) начал применяться в обработке текстов (natural language processing)
bull Основная идея ndash применение нелинейного отображения входного набора в более высокоразмерное пространство где многие неразделимые композиции становятся разделимыми а затем объединение композиций по семантической близости
Подход разреженного кодирования
Обобщенная архитектура
bull DL сеть может быть собрана каскадированием и использованием обучения с учителем
Здесь используется forward propagation для обучения
Для настройки коэффициентов используется метод fprof для каждого
Требуется знание градиента энергии
Элементы (kl) матрицы Якобиана
Требуется знание градиента энергии 120597119864120597119882119894 = 120597119864120597119883119894120597119865119894(119883119894minus1119882119894)120597119882119894
ሾ1times 119873119908ሿ= ሾ1times 119873119909ሿlowast[119873119909 times 119873119908] Элементы (kl) матрицы Якобиана
Сводится к рекуррентному соотношению для вычисления градиента 120597119864120597119883119894minus1 = 120597119864120597119883119894120597119865119894(119883119894minus1119882119894)120597119883119894minus1
В итоге
Для вычисления градиента может использоваться метод back propagation
В действительности работают любые архитектуры построения функции Нужно конструировать связи и функции блоков
Язык Torch 7 ndash современный инструмент моделирования и имплементации
Machine Learning with Torch7 (httpcodecogbitscomwikidokuphpid=start)
bull These tutorials were originally designed for the IPAM Summer School on Deep Learning more info herebull This wiki provides multiple tutorials with the overall objective of teaching you how to do machine learning
with Torch7bull Torch7 provides a Matlab-like environment for state-of-the-art machine learning algorithms It is easy to use
and provides a very efficient implementation thanks to an easy and fast scripting language (LuaJIT) and an underlying C implementation
bull These tutorials should be readdone in orderbull Tutorial 1 Setup Basics Getting Startedbull Tutorial 2 Supervised Learningbull Tutorial 3 Unsupervised Learningbull Tutorial 4 Graphical Modelsbull Tutorial 5 Creating New Modulesbull Tutorial 6 Using CUDAbull To follow these tutorials and do the exercises you will need to download the associated code which is hosted
on GitHub on this page In this repository each directory corresponds to a tutorial herebull starttxt middot Last modified 20140204 2246 by clement
Torch 7 является расширением Lua
What is LuaLua is a powerful fast lightweight embeddable scripting languageLua combines simple procedural syntax with powerful data description constructs based on associative arrays and extensible semantics Lua is dynamically typed runs by interpreting bytecode for a register-based virtual machine and has automatic memory management with incremental garbage collection making it ideal for configuration scripting and rapid prototyping
Why choose LuaLua is a proven robust languageLua has been used in many industrial applications (eg Adobes Photoshop Lightroom) with an emphasis on embedded systems (eg the Ginga middleware for digital TV in Brazil) and games (eg World of Warcraft and Angry Birds) Lua is currently the leading scripting language in games Lua has a solid reference manual and there are several books about it Several versions of Lua have been released and used in real applications since its creation in 1993 Lua featured in HOPL III the Third ACM SIGPLAN History of Programming Languages Conference in June 2007 Lua won the Front Line Award 2011 from the Game Developers Magazine
Свертка и архитектура 4-х уровневой сверточной сети
Функциональная структура
Примеры успешного применения сверточных сетей
Диагностика эпилепсии по ЭЭГ
Реализация сверточной сетью
Одна из самых больших сверточных сетейbull Krizhevsky Sutskever Hinton 2012bull 650 000 нейронов 832 000 000 синапсов 60 000000 пареметровbull Использовался backprop на GPUbull Обучающая выборка на материалах 20 летbull Купил Google в январе 2013bull В мае 2013 развернул как сервис Photo Tagging Google+
Пример тэгирования
Пример поиска похожих по изображению
Пример поиска в коллекции изображений по текстовому запросу
Пример laquoоблачногоraquo классификатора изображений
Самообучающиеся нейронные сети на основе минимизации функции энергииbull Применима к сетям с обратными связямиbull Конструирование функции энергии должно обеспечивать
laquoконтрастностьraquo разделения
bull Энергетическая функция может Неформально рассматриваться как отрицательный логарифм плотности вероятности
Y 2=(Y1)2
RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцмана
bull Из DBM cтроится Deep Belief Network (DBN)
bull w mdash вес между нейронами
bull b mdash смещение нейрона
bull s mdash состояние нейрона
Алгоритм обучения Contrastive Divergence (CD)bull w_ij mdash веc между i-ым нейроном Вероятность пар может быть представлена как
bull a_i mdash смещение видимого нейрона
bull b_j mdash смещение скрытого нейрона
bull v_i mdash состояние видимого нейрона
bull h_j mdash состояние скрытого нейрона Полная вероятность состояния видимых нейронов
Основные уравнения адаптации
Алгоритм Хинтона - Contrastive Divergence (CD-k)
1 состояние видимых нейронов приравнивается к входному образу2 выводятся вероятности состояний скрытого слоя3 каждому нейрону скрытого слоя ставится в соответствие состояние laquo1raquo с вероятностью равной его текущему состоянию4 выводятся вероятности видимого слоя на основании скрытого5 если текущая итерация меньше k то возврат к шагу 26 выводятся вероятности состояний скрытого слоя
darch Package for deep architectures and Restricted-Bolzmann-MachinesThe darch package is build on the basis of the code from G E Hinton and R R Salakhutdinov (available under Matlab Code for deep belief nets last visit 01082013) This package is for generating neural networks with many layers (deep architectures) and train them with the method introduced by the publications A fast learning algorithm for deep belief nets (G E Hinton S Osindero Y W Teh) and Reducing the dimensionality of data with neural networks (G E Hinton R R Salakhutdinov) This method includes a pre training with the contrastive divergence method publishing by GE Hinton (2002) and a fine tuning with common known training algorithms like backpropagation or conjugate gradient
bull Version 091bull Imports futilelogger ff methodsbull Published 2014-03-16bull Author Martin Dreesbull Maintainer Martin Drees ltmdrees at studfh-dortmunddegtbull License GPL-2bull URL httpgithubcommaddin79darchbull NeedsCompilation nobull Materials READMEbull CRAN checks darch results
Связь плотности вероятности и энергии
Используется распределение Гиббса
Задача обучения с точки минимизации энергии сети
bull Сконструировать функцию энергии с малыми значениями на обучающей выборке и с большими значениями всюду вне этого множества
bull Первое несложно а второе представляет задачу процесса обучения
Интуитивные соображения
Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decomposition LISTA ndashметоды использующие разреженные коды
Латентная переменная Z =argmin_z Distance[Decoder(Z)Y]+FactorB(Z)MAPminimaize sum of factors
Автоэнкодер (auto encoder) Автоэнкодер представляет собой алгоритм обучения без учителя который использует нейронную сеть и метод обратного распространения ошибки для того чтобы добиться того что входной вектор признаков вызывал отклик сети равный входному вектору те y = x Автоэнкодер пытается построить функцию h(x) = x
Архитекттура ICA моделей
Итеративные алгоритмы с оптимальным разреженным кодированием ISTAFISTA
Самоорганизация данных методами Deep Learning
>
Знакомство с пакетом deepnet
Назначение
Составdbndnntrain - обучение сети с архитектурой DBN (deep belief network)loadmnist - формирование данных из файлов MNISTnnpredict - предсказание новых выборок на обученной нейронной сетиnntest ndash тестирование обученной нейронной сети с возвращением значения ошибкиnntrain ndash обучение одностлойной или многослойной нейронной сети методом backproprbmdown ndash генерирование видимого вектора для скрытых состояний сети RBMrbmtrain ndash обучение сети RBMrbmup ndash извлечение скрытых состояний RBM по известным видимым состояниямsaednntrain ndash обучение нейронной сети с архитектурой stacked autoencoder
Прогнозирование (классификация) нейронной сетью с архитектурой stacked auto encoder
Argumentsbull x matrix of x values for examplesbull y vector or matrix of target values for examplesbull hidden vector for number of units of hidden layersDefault is c(10)bull activationfun activation function of hidden unitCan be sigmlinear or tanhDefault isbull sigm for logistic functionbull learningrate learning rate for gradient descent Default is 08bull momentum momentum for gradient descent Default is 05 bull learningrate_scalebull learning rate will be mutiplied by this scale after every iteration Default is 1 bull numepochs number of iteration for samples Default is 3bull batchsize size of mini-batch Default is 100bull output function of output unit can be sigmlinear or softmax Default is sigmbull sae_output function of autoencoder output unit can be sigmlinear or softmax Defaultbull is linearbull hidden_dropout drop out fraction for hidden layer Default is 0bull visible_dropoutbull drop out fraction for input layer Default is 0
Что такое MNISTbull Смешанный набор данных Национального института стандартов и
технологий (mixed National Institute of Standards and Technology MNIST) был создан исследователями IR в качестве эталона для сравнения различных алгоритмов IR
bull Набор данных состоит всего из 70 000 изображений 60 000 обучающих (используемых для создания модели IR) и 10 000 тестовых (применяемых для оценки точности модели) Каждое изображение MNIST mdash это оцифрованная картинка одной цифры написанной от руки Каждое изображение имеет размер 28 times 28 пикселей Каждое значение пикселя лежит в диапазоне от 0 (представляет белый цвет) до 255 (представляет черный цвет) Промежуточные значения отражают оттенки серого
httpyannlecuncomexdbmnistобучающие и тестовые данные хранятся в двух файлах а не в одном Один файл содержит значения пикселей для изображений а другой mdash метки изображений (0ndash9) Каждый из четырех файлов также содержит заголовочную информацию и все они хранятся в двоичном формате сжатом в формате gziptrain-images-idx3-ubytegz training set images (9912422 bytes)
train-labels-idx1-ubytegz training set labels (28881 bytes)
t10k-images-idx3-ubytegz test set images (1648877 bytes)
t10k-labels-idx1-ubytegz test set labels (4542 bytes)
bull Каждая строка файла представляет собой имидж размера 28 times 28 вектором длины 784 каждый признак ndash значение пиксела в черно-белой шале Первый столбец содержит метку цифры 0ndash9 следующие 2828 столбцов представляют целый имидж и так далее Пример первой строки
Визуализация
bull plotmnist()bull mnistbull paramsbull train$n number of train samplesbull train$x pix of every train sample imagebull train$y label of every train sample imagebull train$yy one-of-c vector of label of train sample imagebull test$n number of test samplesbull test$x pix of every test sample imagebull test$y label of every test sample imagebull test$yy one-of-c vector of label of test sample image
plotmnist()
Распознавание рукописных цифр в deepnet
another way to download the MNIST datasetmnist downloadmnist(range=c(01)global=FALSE)look at MNIST datamnist$train$xmnist$train$ymnist$test$xmnist$test$ytrain of the sae neural networkdnnlt-saednntrain(mnist$train$xmnist$train$yhidden=c(55))test of the sae neural networknntest(dnnmnist$test$xmnist$test$yt=05)
End of slides part 2 (Part 3 - NLP remaining)
Vladimirvkrylovgmailcom
Основы предиктивной аналитики Часть вторая
Применение методов Machine Learning к решению задач аналитики
Дмитрий Ветров кандидат физико-математических наук ру
Методы обучающихся машин для аналитики которые мы рассмотрим
Сначала нужно загрузить несколько пакетов (packages) для поддер
Данные для анализа
Скрипт для генерации
Данные которые мы будем использовать для демо состоят из смес
Так выглядят визуализированные данные сгенерированные скриптом
Разделение данных на обучающие и проверочные является важным эт
K-means алгоритм на пальцах
Обучающаяся машина без учителя Алгоритм K-means
Slide 13
Slide 14
Здесь мы используем заранее известный факт что необходимо кла
Еще одна иллюстрация работы алгоритма K-means
Обучающаяся машина без учителя Алгоритм KNN (Nearest Neighbor)
Как работает алгоритм KNN
knn(train test cl k = 1 l = 0 prob = FALSE useall = TRUE
Slide 20
Результаты кластеризации и зависимость ошибки от числа кластеро
Recursive PartitioningRegression Tree
Метод RP реализует обучение машины строить дерево решений по об
Recursive PartitioningRegression Tree (2)
rpart(formula data weights subset naaction = narpart met
Slide 26
Recursive PartitioningRegression Tree example
Анализ по главным компонентам (Principal Component Analysis PC
Итеративные алгоритмы с оптимальным разреженным кодированием IS
Самоорганизация данных методами Deep Learning
Знакомство с пакетом deepnet
Прогнозирование (классификация) нейронной сетью с архитектурой
Arguments
Архитектура сети SAE
Архитектура с 5Х4 hidden 3 outs
Example
Анализ обучающего набора данных
Параметры SAE сети
Коэффициенты связей
Предсказание обученной сетью
Сравнение обучающей и тестовой выборки
plot3d(xy)
Работаем с пакетом MNIST
httpyannlecuncomexdbmnist
Подготовка к обработке
Slide 118
Визуализация
plotmnist()
Распознавание рукописных цифр в deepnet
End of slides part 2 (Part 3 - NLP remaining)
bull Графическая иллюстрация метода главных компонент в 3D
Алгоритм
bull Централизация данных
bull Находим первую главную компоненту
bull Вычитаем проекцию на нее
bull Находим вторую главную компоненту
bull Вычитаем проекцию на (k-1) главную компоненту
bull Находим k-ую главную компоненту
bull Всегда выполняется условие ортогональности
princomp(formula data = NULL subset naaction )formula a formula with no response variable referring only to numeric variables
data an optional data frame (or similar see modelframe) containing the variables in the formula formula By default the variables are taken from environment(formula)
subset an optional vector used to select rows (observations) of the data matrix x
naaction a function which indicates what should happen when the data contain NAs The default is set by the naaction setting of options and is nafail if that is unset The lsquofactory-freshrsquo default is naomit
x a numeric matrix or data frame which provides the data for the principal components analysis
cor a logical value indicating whether the calculation should use the correlation matrix or the covariance matrix (The correlation matrix can only be used if there are no constant variables)
scores a logical value indicating whether the score on each principal component should be calculated
covmat a covariance matrix or a covariance list as returned by covwt (and covmve or covmcd from package MASS) If supplied this is used rather than the covariance matrix of x
arguments passed to or from other methods If x is a formula one might specify cor or scores
object Object of class inheriting from princomp
newdata An optional data frame or matrix in which to look for variables with which to predict If omitted the scores are used If the original fit used a formula or a data frame or a matrix with column names newdata must contain columns with the same names Otherwise it must contain the same number of columns to be used in the same order
Principal Component Analysis (PCA)plt-princomp(train[12])train_pca lt- dataframe(p$scores)train_pca$class lt- train$class
Compare the alignment of the clusters to the axis in the feature space versus the transformed space
r2 lt- rpart(class ~ Comp1 + Comp2 data = train_pca)
Линейный дискриминантный анализ (Linear Discriminant Analysis - LDA)bull Для каждого образца объекта или события с известным классом y
рассматривается набор наблюдений x (называемых ещё признаками переменными или измерениями) Набор таких образцов называется обучающей выборкой (или набором обучения обучением) Задачи классификации состоит в том чтобы построить хороший прогноз класса y для всякого так же распределённого объекта (не обязательно содержащегося в обучающей выборке) имея только наблюдения x Основная идея состоит в сравнении распределений для каждого из классов Расстоянием (по Фишеру) между распределениями принято считать отношение межклассовой дисперсии к внутриклассовой
bull Оптимальное байесовское решение - относить точки ко второму классу если отношение правдоподобия ниже некоторого порогового значения T
bull Предполагая что выполнена нормировка
bull Решение записывается в виде неравенства для скалярного произведения
bull Здесь laquoизмерительныйraquo вектор равен
bull с- дискриминантный порог
lda(x grouping prior = proportions tol = 10e-4 method CV = FALSE nu )
formula A formula of the form groups ~ x1 + x2 + That is the response is the grouping factor and the right hand side specifies the (non-factor) discriminators
data Data frame from which variables specified in formula are preferentially to be taken
x (required if no formula is given as the principal argument) a matrix or data frame or Matrix containing the explanatory variables
grouping (required if no formula principal argument is given) a factor specifying the class for each observation
prior the prior probabilities of class membership If unspecified the class proportions for the training set are used If present the probabilities should be specified in the order of the factor levels
tol A tolerance to decide if a matrix is singular it will reject variables and linear combinations of unit-variance variables whose variance is less than tol^2
subset An index vector specifying the cases to be used in the training sample (NOTE If given this argument must be named)
naaction A function to specify the action to be taken if NAs are found The default action is for the procedure to fail An alternative is naomit which leads to rejection of cases with missing values on any required variable (NOTE If given this argument must be named)
method moment for standard estimators of the mean and variance mle for MLEs mve to use covmve or t for robust estimates based on a t distribution
CV If true returns results (classes and posterior probabilities) for leave-one-out cross-validation Note that if the prior is estimated the proportions in the whole dataset are used
nu degrees of freedom for method = t
arguments passed to or from other methods
prior the prior probabilities usedmeans the group meansscaling a matrix which transforms observations to
discriminant functions normalized so that within groups covariance matrix is spherical
svd the singular values which give the ratio of the between- and within-group standard deviations on the linear discriminant variables Their squares are the canonical F-statistics
N The number of observations usedcall The (matched) function call
An object of class lda containing the following components
Метод опорных векторов (Support Vector Machines - SVM)Относится к ML с учителем и использует линейные разделяющие поверхности
Идея алгоритма
bull По обучающей выборке
bull Строится классифицирующая функция
bull Используя гиперплоскость
bull Поиск коэффициентов сводится к максимизации
расстояний от опорных векторов или минимизации
Иллюстрация на простейшем примере
>
Производится вложение обучающей выборки в пространство более высокой размерности Х с помощью нелинейной функции так чтобы обеспечит линейную разделимость в Х
Разделяющая функция тогда имеет вид
Функция называется ядром
Полиномиальное ядро
Радиальная базисная функция
Сигмоид
Линейная неразделимость и использование ядер
Иллюстрация использования ядра для отображения 2D -gt 3D
>
svm((formula data = NULL subset naaction =naomit scale = TRUE))
formulaa symbolic description of the model to be fitdataan optional data frame containing the variables in the model By default the variables are taken from the environment which lsquosvmrsquo is called fromxa data matrix a vector or a sparse matrix (object of class Matrix provided by the Matrix package or of class matrixcsr provided by the SparseM package or of class simple_triplet_matrix provided by the slam package)ya response vector with one label for each rowcomponent of x Can be either a factor (for classification tasks) or a numeric vector (for regression)scaleA logical vector indicating the variables to be scaled If scale is of length 1 the value is recycled as many times as needed Per default data are scaled internally (both x and y variables) to zero mean and unit variance The center and scale values are returned and used for later predictionstypesvm can be used as a classification machine as a regression machine or for novelty detection Depending of whether y is a factor or not the default setting for type is C-classification or eps-regression respectively but may be overwritten by setting an explicit valueValid options areC-classificationnu-classificationone-classification (for novelty detection)eps-regressionnu-regression
Support Vector Machines
s lt- svm( I(factor(class)) ~ x + y data = train cost = 100 gama = 1)
Package lsquodeepnetrsquo February 19 2015 Type Package Title deep learning toolkit in R Version 02 Date 2014-03-20 Author Xiao Rong Maintainer Xiao Rong Description Implement some deep learning architectures and neural network algorithms including BPRBMDBNDeep autoencoder and so on License GPL NeedsCompilation no Repository CRAN DatePublication 2014-03-20 100343
laquoВ 1997 году Deep Blue обыграл в шахматы КаспароваВ 2011 Watson обставил чемпионов JeopardyСможет ли ваш алгоритм в 2013 году отличить Бобика от ПушистикаraquoKaggle Competitions Details
Сегодня уже можно ответить laquoдаraquo mdash десятка лидеров справилась с заданием на 988
Распознавание основано на feature detection и последующем различении комбинаций
Заранее неизвестно какие части картинки могут использоваться как хорошие features В их роли может выступать все что угодно mdash фрагменты изображения форма размер или цвет Feature может не присутствовать на картинке сама а выражаться в параметре полученным каким-то образом из исходных данных
Распознавание рукописных цифр
Еще пример посложнее
Использование нейронной сети с обучениемОбучение такой нейронной сети производится обычно методом обратного распространения ошибки таким образом чтобы минимизировать среднеквадратическую ошибку отклика сети на обучающей выборке Таким образом обучающая выборка содержит пары векторов признаков (входные данные) и эталонных векторов (маркированные данные) (x y)
Сверхвысокая размерность при работе с первичным представлением пикселями
Пиксельное кодирование
Принцип иерархии понятий ndash основа deep learning
bull Все вещи состоят из других маленьких и более элементарных вещей
bull Как извлекать features Гипотеза малоразмерных многообразий
Разреженное (sparse) кодирование
первый уровень иерархии состоит из элементов словаря этого кода которые представляют собой штрихи и границы
Словарь для лиц
Выделение объектов заданного класса
Основные архитектуры Deep Learningbull Deep neural networks (DNN)bull Deep belief networks (DBN)bull Convolutional neural networks (CNN)bull Deep Boltzmann Machines (DBM)bull Stacked (Denoising) Auto-Encodersbull Deep Stacking Networksbull Tensor Deep Stacking Networks (T-DSN)bull Spike-and-Slab RBMs (ssRBMs)bull Compound Hierarchical-Deep Modelsbull Deep Coding Networks (DPCN)bull Deep Kernel Machinesbull Deep Q-Networks (2015 г)
Задача классификации распознавания и подобные являются задачей конструирования функции на множестве входных наборов и со значениями в множестве требуемого вида выходных
bull Норбертом Винером было показано что любая функция может быть сколь угодно точно композицией двух (он использовал функции полином Лагранжа и функцию Лагерра)
bull Соответствует двухслойной нейросетиbull Архитектуры Deep Learning соответствуют представлению
bull Обеспечивают эффективную параметризацию при решении конкретных задач Более сложные функции создаются из большего числа но более эффективно настраиваемых laquoкирпичиковraquo Пример ndash синтез булевых функций Дерево вентилей эффективнее двухслойной схемы
Фактор - графыВсе методы которые расмотрели ndash не DL Даже деревья классификации Все операции в одном входном словаре
DL можно определить по фактор-графу
Например
bull Еще одна сторона DL - нередко использует невыпуклые функции потерьbull Обучение на основе выпуклых функций не зависит от порядка
предъявления данных для обучения Все определяет асимптотика всего train - набора В алгоритмах DL порядок данных в обучающей выборке может иметь значение
bull Многие решения в DL не доказаны математически и являются успешными эвристиками
bull Большой простор для прикладной математики Может рассматриваться как фактор-граф с группами латентных переменных
bull В настоящее время стал основной технологией в распознавании речи (speech recognition) и машинном зрении (computer vision) начал применяться в обработке текстов (natural language processing)
bull Основная идея ndash применение нелинейного отображения входного набора в более высокоразмерное пространство где многие неразделимые композиции становятся разделимыми а затем объединение композиций по семантической близости
Подход разреженного кодирования
Обобщенная архитектура
bull DL сеть может быть собрана каскадированием и использованием обучения с учителем
Здесь используется forward propagation для обучения
Для настройки коэффициентов используется метод fprof для каждого
Требуется знание градиента энергии
Элементы (kl) матрицы Якобиана
Требуется знание градиента энергии 120597119864120597119882119894 = 120597119864120597119883119894120597119865119894(119883119894minus1119882119894)120597119882119894
ሾ1times 119873119908ሿ= ሾ1times 119873119909ሿlowast[119873119909 times 119873119908] Элементы (kl) матрицы Якобиана
Сводится к рекуррентному соотношению для вычисления градиента 120597119864120597119883119894minus1 = 120597119864120597119883119894120597119865119894(119883119894minus1119882119894)120597119883119894minus1
В итоге
Для вычисления градиента может использоваться метод back propagation
В действительности работают любые архитектуры построения функции Нужно конструировать связи и функции блоков
Язык Torch 7 ndash современный инструмент моделирования и имплементации
Machine Learning with Torch7 (httpcodecogbitscomwikidokuphpid=start)
bull These tutorials were originally designed for the IPAM Summer School on Deep Learning more info herebull This wiki provides multiple tutorials with the overall objective of teaching you how to do machine learning
with Torch7bull Torch7 provides a Matlab-like environment for state-of-the-art machine learning algorithms It is easy to use
and provides a very efficient implementation thanks to an easy and fast scripting language (LuaJIT) and an underlying C implementation
bull These tutorials should be readdone in orderbull Tutorial 1 Setup Basics Getting Startedbull Tutorial 2 Supervised Learningbull Tutorial 3 Unsupervised Learningbull Tutorial 4 Graphical Modelsbull Tutorial 5 Creating New Modulesbull Tutorial 6 Using CUDAbull To follow these tutorials and do the exercises you will need to download the associated code which is hosted
on GitHub on this page In this repository each directory corresponds to a tutorial herebull starttxt middot Last modified 20140204 2246 by clement
Torch 7 является расширением Lua
What is LuaLua is a powerful fast lightweight embeddable scripting languageLua combines simple procedural syntax with powerful data description constructs based on associative arrays and extensible semantics Lua is dynamically typed runs by interpreting bytecode for a register-based virtual machine and has automatic memory management with incremental garbage collection making it ideal for configuration scripting and rapid prototyping
Why choose LuaLua is a proven robust languageLua has been used in many industrial applications (eg Adobes Photoshop Lightroom) with an emphasis on embedded systems (eg the Ginga middleware for digital TV in Brazil) and games (eg World of Warcraft and Angry Birds) Lua is currently the leading scripting language in games Lua has a solid reference manual and there are several books about it Several versions of Lua have been released and used in real applications since its creation in 1993 Lua featured in HOPL III the Third ACM SIGPLAN History of Programming Languages Conference in June 2007 Lua won the Front Line Award 2011 from the Game Developers Magazine
Свертка и архитектура 4-х уровневой сверточной сети
Функциональная структура
Примеры успешного применения сверточных сетей
Диагностика эпилепсии по ЭЭГ
Реализация сверточной сетью
Одна из самых больших сверточных сетейbull Krizhevsky Sutskever Hinton 2012bull 650 000 нейронов 832 000 000 синапсов 60 000000 пареметровbull Использовался backprop на GPUbull Обучающая выборка на материалах 20 летbull Купил Google в январе 2013bull В мае 2013 развернул как сервис Photo Tagging Google+
Пример тэгирования
Пример поиска похожих по изображению
Пример поиска в коллекции изображений по текстовому запросу
Пример laquoоблачногоraquo классификатора изображений
Самообучающиеся нейронные сети на основе минимизации функции энергииbull Применима к сетям с обратными связямиbull Конструирование функции энергии должно обеспечивать
laquoконтрастностьraquo разделения
bull Энергетическая функция может Неформально рассматриваться как отрицательный логарифм плотности вероятности
Y 2=(Y1)2
RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцмана
bull Из DBM cтроится Deep Belief Network (DBN)
bull w mdash вес между нейронами
bull b mdash смещение нейрона
bull s mdash состояние нейрона
Алгоритм обучения Contrastive Divergence (CD)bull w_ij mdash веc между i-ым нейроном Вероятность пар может быть представлена как
bull a_i mdash смещение видимого нейрона
bull b_j mdash смещение скрытого нейрона
bull v_i mdash состояние видимого нейрона
bull h_j mdash состояние скрытого нейрона Полная вероятность состояния видимых нейронов
Основные уравнения адаптации
Алгоритм Хинтона - Contrastive Divergence (CD-k)
1 состояние видимых нейронов приравнивается к входному образу2 выводятся вероятности состояний скрытого слоя3 каждому нейрону скрытого слоя ставится в соответствие состояние laquo1raquo с вероятностью равной его текущему состоянию4 выводятся вероятности видимого слоя на основании скрытого5 если текущая итерация меньше k то возврат к шагу 26 выводятся вероятности состояний скрытого слоя
darch Package for deep architectures and Restricted-Bolzmann-MachinesThe darch package is build on the basis of the code from G E Hinton and R R Salakhutdinov (available under Matlab Code for deep belief nets last visit 01082013) This package is for generating neural networks with many layers (deep architectures) and train them with the method introduced by the publications A fast learning algorithm for deep belief nets (G E Hinton S Osindero Y W Teh) and Reducing the dimensionality of data with neural networks (G E Hinton R R Salakhutdinov) This method includes a pre training with the contrastive divergence method publishing by GE Hinton (2002) and a fine tuning with common known training algorithms like backpropagation or conjugate gradient
bull Version 091bull Imports futilelogger ff methodsbull Published 2014-03-16bull Author Martin Dreesbull Maintainer Martin Drees ltmdrees at studfh-dortmunddegtbull License GPL-2bull URL httpgithubcommaddin79darchbull NeedsCompilation nobull Materials READMEbull CRAN checks darch results
Связь плотности вероятности и энергии
Используется распределение Гиббса
Задача обучения с точки минимизации энергии сети
bull Сконструировать функцию энергии с малыми значениями на обучающей выборке и с большими значениями всюду вне этого множества
bull Первое несложно а второе представляет задачу процесса обучения
Интуитивные соображения
Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decomposition LISTA ndashметоды использующие разреженные коды
Латентная переменная Z =argmin_z Distance[Decoder(Z)Y]+FactorB(Z)MAPminimaize sum of factors
Автоэнкодер (auto encoder) Автоэнкодер представляет собой алгоритм обучения без учителя который использует нейронную сеть и метод обратного распространения ошибки для того чтобы добиться того что входной вектор признаков вызывал отклик сети равный входному вектору те y = x Автоэнкодер пытается построить функцию h(x) = x
Архитекттура ICA моделей
Итеративные алгоритмы с оптимальным разреженным кодированием ISTAFISTA
Самоорганизация данных методами Deep Learning
>
Знакомство с пакетом deepnet
Назначение
Составdbndnntrain - обучение сети с архитектурой DBN (deep belief network)loadmnist - формирование данных из файлов MNISTnnpredict - предсказание новых выборок на обученной нейронной сетиnntest ndash тестирование обученной нейронной сети с возвращением значения ошибкиnntrain ndash обучение одностлойной или многослойной нейронной сети методом backproprbmdown ndash генерирование видимого вектора для скрытых состояний сети RBMrbmtrain ndash обучение сети RBMrbmup ndash извлечение скрытых состояний RBM по известным видимым состояниямsaednntrain ndash обучение нейронной сети с архитектурой stacked autoencoder
Прогнозирование (классификация) нейронной сетью с архитектурой stacked auto encoder
Argumentsbull x matrix of x values for examplesbull y vector or matrix of target values for examplesbull hidden vector for number of units of hidden layersDefault is c(10)bull activationfun activation function of hidden unitCan be sigmlinear or tanhDefault isbull sigm for logistic functionbull learningrate learning rate for gradient descent Default is 08bull momentum momentum for gradient descent Default is 05 bull learningrate_scalebull learning rate will be mutiplied by this scale after every iteration Default is 1 bull numepochs number of iteration for samples Default is 3bull batchsize size of mini-batch Default is 100bull output function of output unit can be sigmlinear or softmax Default is sigmbull sae_output function of autoencoder output unit can be sigmlinear or softmax Defaultbull is linearbull hidden_dropout drop out fraction for hidden layer Default is 0bull visible_dropoutbull drop out fraction for input layer Default is 0
Что такое MNISTbull Смешанный набор данных Национального института стандартов и
технологий (mixed National Institute of Standards and Technology MNIST) был создан исследователями IR в качестве эталона для сравнения различных алгоритмов IR
bull Набор данных состоит всего из 70 000 изображений 60 000 обучающих (используемых для создания модели IR) и 10 000 тестовых (применяемых для оценки точности модели) Каждое изображение MNIST mdash это оцифрованная картинка одной цифры написанной от руки Каждое изображение имеет размер 28 times 28 пикселей Каждое значение пикселя лежит в диапазоне от 0 (представляет белый цвет) до 255 (представляет черный цвет) Промежуточные значения отражают оттенки серого
httpyannlecuncomexdbmnistобучающие и тестовые данные хранятся в двух файлах а не в одном Один файл содержит значения пикселей для изображений а другой mdash метки изображений (0ndash9) Каждый из четырех файлов также содержит заголовочную информацию и все они хранятся в двоичном формате сжатом в формате gziptrain-images-idx3-ubytegz training set images (9912422 bytes)
train-labels-idx1-ubytegz training set labels (28881 bytes)
t10k-images-idx3-ubytegz test set images (1648877 bytes)
t10k-labels-idx1-ubytegz test set labels (4542 bytes)
bull Каждая строка файла представляет собой имидж размера 28 times 28 вектором длины 784 каждый признак ndash значение пиксела в черно-белой шале Первый столбец содержит метку цифры 0ndash9 следующие 2828 столбцов представляют целый имидж и так далее Пример первой строки
Визуализация
bull plotmnist()bull mnistbull paramsbull train$n number of train samplesbull train$x pix of every train sample imagebull train$y label of every train sample imagebull train$yy one-of-c vector of label of train sample imagebull test$n number of test samplesbull test$x pix of every test sample imagebull test$y label of every test sample imagebull test$yy one-of-c vector of label of test sample image
plotmnist()
Распознавание рукописных цифр в deepnet
another way to download the MNIST datasetmnist downloadmnist(range=c(01)global=FALSE)look at MNIST datamnist$train$xmnist$train$ymnist$test$xmnist$test$ytrain of the sae neural networkdnnlt-saednntrain(mnist$train$xmnist$train$yhidden=c(55))test of the sae neural networknntest(dnnmnist$test$xmnist$test$yt=05)
End of slides part 2 (Part 3 - NLP remaining)
Vladimirvkrylovgmailcom
Основы предиктивной аналитики Часть вторая
Применение методов Machine Learning к решению задач аналитики
Дмитрий Ветров кандидат физико-математических наук ру
Методы обучающихся машин для аналитики которые мы рассмотрим
Сначала нужно загрузить несколько пакетов (packages) для поддер
Данные для анализа
Скрипт для генерации
Данные которые мы будем использовать для демо состоят из смес
Так выглядят визуализированные данные сгенерированные скриптом
Разделение данных на обучающие и проверочные является важным эт
K-means алгоритм на пальцах
Обучающаяся машина без учителя Алгоритм K-means
Slide 13
Slide 14
Здесь мы используем заранее известный факт что необходимо кла
Еще одна иллюстрация работы алгоритма K-means
Обучающаяся машина без учителя Алгоритм KNN (Nearest Neighbor)
Как работает алгоритм KNN
knn(train test cl k = 1 l = 0 prob = FALSE useall = TRUE
Slide 20
Результаты кластеризации и зависимость ошибки от числа кластеро
Recursive PartitioningRegression Tree
Метод RP реализует обучение машины строить дерево решений по об
Recursive PartitioningRegression Tree (2)
rpart(formula data weights subset naaction = narpart met
Slide 26
Recursive PartitioningRegression Tree example
Анализ по главным компонентам (Principal Component Analysis PC
Итеративные алгоритмы с оптимальным разреженным кодированием IS
Самоорганизация данных методами Deep Learning
Знакомство с пакетом deepnet
Прогнозирование (классификация) нейронной сетью с архитектурой
Arguments
Архитектура сети SAE
Архитектура с 5Х4 hidden 3 outs
Example
Анализ обучающего набора данных
Параметры SAE сети
Коэффициенты связей
Предсказание обученной сетью
Сравнение обучающей и тестовой выборки
plot3d(xy)
Работаем с пакетом MNIST
httpyannlecuncomexdbmnist
Подготовка к обработке
Slide 118
Визуализация
plotmnist()
Распознавание рукописных цифр в deepnet
End of slides part 2 (Part 3 - NLP remaining)
Алгоритм
bull Централизация данных
bull Находим первую главную компоненту
bull Вычитаем проекцию на нее
bull Находим вторую главную компоненту
bull Вычитаем проекцию на (k-1) главную компоненту
bull Находим k-ую главную компоненту
bull Всегда выполняется условие ортогональности
princomp(formula data = NULL subset naaction )formula a formula with no response variable referring only to numeric variables
data an optional data frame (or similar see modelframe) containing the variables in the formula formula By default the variables are taken from environment(formula)
subset an optional vector used to select rows (observations) of the data matrix x
naaction a function which indicates what should happen when the data contain NAs The default is set by the naaction setting of options and is nafail if that is unset The lsquofactory-freshrsquo default is naomit
x a numeric matrix or data frame which provides the data for the principal components analysis
cor a logical value indicating whether the calculation should use the correlation matrix or the covariance matrix (The correlation matrix can only be used if there are no constant variables)
scores a logical value indicating whether the score on each principal component should be calculated
covmat a covariance matrix or a covariance list as returned by covwt (and covmve or covmcd from package MASS) If supplied this is used rather than the covariance matrix of x
arguments passed to or from other methods If x is a formula one might specify cor or scores
object Object of class inheriting from princomp
newdata An optional data frame or matrix in which to look for variables with which to predict If omitted the scores are used If the original fit used a formula or a data frame or a matrix with column names newdata must contain columns with the same names Otherwise it must contain the same number of columns to be used in the same order
Principal Component Analysis (PCA)plt-princomp(train[12])train_pca lt- dataframe(p$scores)train_pca$class lt- train$class
Compare the alignment of the clusters to the axis in the feature space versus the transformed space
r2 lt- rpart(class ~ Comp1 + Comp2 data = train_pca)
Линейный дискриминантный анализ (Linear Discriminant Analysis - LDA)bull Для каждого образца объекта или события с известным классом y
рассматривается набор наблюдений x (называемых ещё признаками переменными или измерениями) Набор таких образцов называется обучающей выборкой (или набором обучения обучением) Задачи классификации состоит в том чтобы построить хороший прогноз класса y для всякого так же распределённого объекта (не обязательно содержащегося в обучающей выборке) имея только наблюдения x Основная идея состоит в сравнении распределений для каждого из классов Расстоянием (по Фишеру) между распределениями принято считать отношение межклассовой дисперсии к внутриклассовой
bull Оптимальное байесовское решение - относить точки ко второму классу если отношение правдоподобия ниже некоторого порогового значения T
bull Предполагая что выполнена нормировка
bull Решение записывается в виде неравенства для скалярного произведения
bull Здесь laquoизмерительныйraquo вектор равен
bull с- дискриминантный порог
lda(x grouping prior = proportions tol = 10e-4 method CV = FALSE nu )
formula A formula of the form groups ~ x1 + x2 + That is the response is the grouping factor and the right hand side specifies the (non-factor) discriminators
data Data frame from which variables specified in formula are preferentially to be taken
x (required if no formula is given as the principal argument) a matrix or data frame or Matrix containing the explanatory variables
grouping (required if no formula principal argument is given) a factor specifying the class for each observation
prior the prior probabilities of class membership If unspecified the class proportions for the training set are used If present the probabilities should be specified in the order of the factor levels
tol A tolerance to decide if a matrix is singular it will reject variables and linear combinations of unit-variance variables whose variance is less than tol^2
subset An index vector specifying the cases to be used in the training sample (NOTE If given this argument must be named)
naaction A function to specify the action to be taken if NAs are found The default action is for the procedure to fail An alternative is naomit which leads to rejection of cases with missing values on any required variable (NOTE If given this argument must be named)
method moment for standard estimators of the mean and variance mle for MLEs mve to use covmve or t for robust estimates based on a t distribution
CV If true returns results (classes and posterior probabilities) for leave-one-out cross-validation Note that if the prior is estimated the proportions in the whole dataset are used
nu degrees of freedom for method = t
arguments passed to or from other methods
prior the prior probabilities usedmeans the group meansscaling a matrix which transforms observations to
discriminant functions normalized so that within groups covariance matrix is spherical
svd the singular values which give the ratio of the between- and within-group standard deviations on the linear discriminant variables Their squares are the canonical F-statistics
N The number of observations usedcall The (matched) function call
An object of class lda containing the following components
Метод опорных векторов (Support Vector Machines - SVM)Относится к ML с учителем и использует линейные разделяющие поверхности
Идея алгоритма
bull По обучающей выборке
bull Строится классифицирующая функция
bull Используя гиперплоскость
bull Поиск коэффициентов сводится к максимизации
расстояний от опорных векторов или минимизации
Иллюстрация на простейшем примере
>
Производится вложение обучающей выборки в пространство более высокой размерности Х с помощью нелинейной функции так чтобы обеспечит линейную разделимость в Х
Разделяющая функция тогда имеет вид
Функция называется ядром
Полиномиальное ядро
Радиальная базисная функция
Сигмоид
Линейная неразделимость и использование ядер
Иллюстрация использования ядра для отображения 2D -gt 3D
>
svm((formula data = NULL subset naaction =naomit scale = TRUE))
formulaa symbolic description of the model to be fitdataan optional data frame containing the variables in the model By default the variables are taken from the environment which lsquosvmrsquo is called fromxa data matrix a vector or a sparse matrix (object of class Matrix provided by the Matrix package or of class matrixcsr provided by the SparseM package or of class simple_triplet_matrix provided by the slam package)ya response vector with one label for each rowcomponent of x Can be either a factor (for classification tasks) or a numeric vector (for regression)scaleA logical vector indicating the variables to be scaled If scale is of length 1 the value is recycled as many times as needed Per default data are scaled internally (both x and y variables) to zero mean and unit variance The center and scale values are returned and used for later predictionstypesvm can be used as a classification machine as a regression machine or for novelty detection Depending of whether y is a factor or not the default setting for type is C-classification or eps-regression respectively but may be overwritten by setting an explicit valueValid options areC-classificationnu-classificationone-classification (for novelty detection)eps-regressionnu-regression
Support Vector Machines
s lt- svm( I(factor(class)) ~ x + y data = train cost = 100 gama = 1)
Package lsquodeepnetrsquo February 19 2015 Type Package Title deep learning toolkit in R Version 02 Date 2014-03-20 Author Xiao Rong Maintainer Xiao Rong Description Implement some deep learning architectures and neural network algorithms including BPRBMDBNDeep autoencoder and so on License GPL NeedsCompilation no Repository CRAN DatePublication 2014-03-20 100343
laquoВ 1997 году Deep Blue обыграл в шахматы КаспароваВ 2011 Watson обставил чемпионов JeopardyСможет ли ваш алгоритм в 2013 году отличить Бобика от ПушистикаraquoKaggle Competitions Details
Сегодня уже можно ответить laquoдаraquo mdash десятка лидеров справилась с заданием на 988
Распознавание основано на feature detection и последующем различении комбинаций
Заранее неизвестно какие части картинки могут использоваться как хорошие features В их роли может выступать все что угодно mdash фрагменты изображения форма размер или цвет Feature может не присутствовать на картинке сама а выражаться в параметре полученным каким-то образом из исходных данных
Распознавание рукописных цифр
Еще пример посложнее
Использование нейронной сети с обучениемОбучение такой нейронной сети производится обычно методом обратного распространения ошибки таким образом чтобы минимизировать среднеквадратическую ошибку отклика сети на обучающей выборке Таким образом обучающая выборка содержит пары векторов признаков (входные данные) и эталонных векторов (маркированные данные) (x y)
Сверхвысокая размерность при работе с первичным представлением пикселями
Пиксельное кодирование
Принцип иерархии понятий ndash основа deep learning
bull Все вещи состоят из других маленьких и более элементарных вещей
bull Как извлекать features Гипотеза малоразмерных многообразий
Разреженное (sparse) кодирование
первый уровень иерархии состоит из элементов словаря этого кода которые представляют собой штрихи и границы
Словарь для лиц
Выделение объектов заданного класса
Основные архитектуры Deep Learningbull Deep neural networks (DNN)bull Deep belief networks (DBN)bull Convolutional neural networks (CNN)bull Deep Boltzmann Machines (DBM)bull Stacked (Denoising) Auto-Encodersbull Deep Stacking Networksbull Tensor Deep Stacking Networks (T-DSN)bull Spike-and-Slab RBMs (ssRBMs)bull Compound Hierarchical-Deep Modelsbull Deep Coding Networks (DPCN)bull Deep Kernel Machinesbull Deep Q-Networks (2015 г)
Задача классификации распознавания и подобные являются задачей конструирования функции на множестве входных наборов и со значениями в множестве требуемого вида выходных
bull Норбертом Винером было показано что любая функция может быть сколь угодно точно композицией двух (он использовал функции полином Лагранжа и функцию Лагерра)
bull Соответствует двухслойной нейросетиbull Архитектуры Deep Learning соответствуют представлению
bull Обеспечивают эффективную параметризацию при решении конкретных задач Более сложные функции создаются из большего числа но более эффективно настраиваемых laquoкирпичиковraquo Пример ndash синтез булевых функций Дерево вентилей эффективнее двухслойной схемы
Фактор - графыВсе методы которые расмотрели ndash не DL Даже деревья классификации Все операции в одном входном словаре
DL можно определить по фактор-графу
Например
bull Еще одна сторона DL - нередко использует невыпуклые функции потерьbull Обучение на основе выпуклых функций не зависит от порядка
предъявления данных для обучения Все определяет асимптотика всего train - набора В алгоритмах DL порядок данных в обучающей выборке может иметь значение
bull Многие решения в DL не доказаны математически и являются успешными эвристиками
bull Большой простор для прикладной математики Может рассматриваться как фактор-граф с группами латентных переменных
bull В настоящее время стал основной технологией в распознавании речи (speech recognition) и машинном зрении (computer vision) начал применяться в обработке текстов (natural language processing)
bull Основная идея ndash применение нелинейного отображения входного набора в более высокоразмерное пространство где многие неразделимые композиции становятся разделимыми а затем объединение композиций по семантической близости
Подход разреженного кодирования
Обобщенная архитектура
bull DL сеть может быть собрана каскадированием и использованием обучения с учителем
Здесь используется forward propagation для обучения
Для настройки коэффициентов используется метод fprof для каждого
Требуется знание градиента энергии
Элементы (kl) матрицы Якобиана
Требуется знание градиента энергии 120597119864120597119882119894 = 120597119864120597119883119894120597119865119894(119883119894minus1119882119894)120597119882119894
ሾ1times 119873119908ሿ= ሾ1times 119873119909ሿlowast[119873119909 times 119873119908] Элементы (kl) матрицы Якобиана
Сводится к рекуррентному соотношению для вычисления градиента 120597119864120597119883119894minus1 = 120597119864120597119883119894120597119865119894(119883119894minus1119882119894)120597119883119894minus1
В итоге
Для вычисления градиента может использоваться метод back propagation
В действительности работают любые архитектуры построения функции Нужно конструировать связи и функции блоков
Язык Torch 7 ndash современный инструмент моделирования и имплементации
Machine Learning with Torch7 (httpcodecogbitscomwikidokuphpid=start)
bull These tutorials were originally designed for the IPAM Summer School on Deep Learning more info herebull This wiki provides multiple tutorials with the overall objective of teaching you how to do machine learning
with Torch7bull Torch7 provides a Matlab-like environment for state-of-the-art machine learning algorithms It is easy to use
and provides a very efficient implementation thanks to an easy and fast scripting language (LuaJIT) and an underlying C implementation
bull These tutorials should be readdone in orderbull Tutorial 1 Setup Basics Getting Startedbull Tutorial 2 Supervised Learningbull Tutorial 3 Unsupervised Learningbull Tutorial 4 Graphical Modelsbull Tutorial 5 Creating New Modulesbull Tutorial 6 Using CUDAbull To follow these tutorials and do the exercises you will need to download the associated code which is hosted
on GitHub on this page In this repository each directory corresponds to a tutorial herebull starttxt middot Last modified 20140204 2246 by clement
Torch 7 является расширением Lua
What is LuaLua is a powerful fast lightweight embeddable scripting languageLua combines simple procedural syntax with powerful data description constructs based on associative arrays and extensible semantics Lua is dynamically typed runs by interpreting bytecode for a register-based virtual machine and has automatic memory management with incremental garbage collection making it ideal for configuration scripting and rapid prototyping
Why choose LuaLua is a proven robust languageLua has been used in many industrial applications (eg Adobes Photoshop Lightroom) with an emphasis on embedded systems (eg the Ginga middleware for digital TV in Brazil) and games (eg World of Warcraft and Angry Birds) Lua is currently the leading scripting language in games Lua has a solid reference manual and there are several books about it Several versions of Lua have been released and used in real applications since its creation in 1993 Lua featured in HOPL III the Third ACM SIGPLAN History of Programming Languages Conference in June 2007 Lua won the Front Line Award 2011 from the Game Developers Magazine
Свертка и архитектура 4-х уровневой сверточной сети
Функциональная структура
Примеры успешного применения сверточных сетей
Диагностика эпилепсии по ЭЭГ
Реализация сверточной сетью
Одна из самых больших сверточных сетейbull Krizhevsky Sutskever Hinton 2012bull 650 000 нейронов 832 000 000 синапсов 60 000000 пареметровbull Использовался backprop на GPUbull Обучающая выборка на материалах 20 летbull Купил Google в январе 2013bull В мае 2013 развернул как сервис Photo Tagging Google+
Пример тэгирования
Пример поиска похожих по изображению
Пример поиска в коллекции изображений по текстовому запросу
Пример laquoоблачногоraquo классификатора изображений
Самообучающиеся нейронные сети на основе минимизации функции энергииbull Применима к сетям с обратными связямиbull Конструирование функции энергии должно обеспечивать
laquoконтрастностьraquo разделения
bull Энергетическая функция может Неформально рассматриваться как отрицательный логарифм плотности вероятности
Y 2=(Y1)2
RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцмана
bull Из DBM cтроится Deep Belief Network (DBN)
bull w mdash вес между нейронами
bull b mdash смещение нейрона
bull s mdash состояние нейрона
Алгоритм обучения Contrastive Divergence (CD)bull w_ij mdash веc между i-ым нейроном Вероятность пар может быть представлена как
bull a_i mdash смещение видимого нейрона
bull b_j mdash смещение скрытого нейрона
bull v_i mdash состояние видимого нейрона
bull h_j mdash состояние скрытого нейрона Полная вероятность состояния видимых нейронов
Основные уравнения адаптации
Алгоритм Хинтона - Contrastive Divergence (CD-k)
1 состояние видимых нейронов приравнивается к входному образу2 выводятся вероятности состояний скрытого слоя3 каждому нейрону скрытого слоя ставится в соответствие состояние laquo1raquo с вероятностью равной его текущему состоянию4 выводятся вероятности видимого слоя на основании скрытого5 если текущая итерация меньше k то возврат к шагу 26 выводятся вероятности состояний скрытого слоя
darch Package for deep architectures and Restricted-Bolzmann-MachinesThe darch package is build on the basis of the code from G E Hinton and R R Salakhutdinov (available under Matlab Code for deep belief nets last visit 01082013) This package is for generating neural networks with many layers (deep architectures) and train them with the method introduced by the publications A fast learning algorithm for deep belief nets (G E Hinton S Osindero Y W Teh) and Reducing the dimensionality of data with neural networks (G E Hinton R R Salakhutdinov) This method includes a pre training with the contrastive divergence method publishing by GE Hinton (2002) and a fine tuning with common known training algorithms like backpropagation or conjugate gradient
bull Version 091bull Imports futilelogger ff methodsbull Published 2014-03-16bull Author Martin Dreesbull Maintainer Martin Drees ltmdrees at studfh-dortmunddegtbull License GPL-2bull URL httpgithubcommaddin79darchbull NeedsCompilation nobull Materials READMEbull CRAN checks darch results
Связь плотности вероятности и энергии
Используется распределение Гиббса
Задача обучения с точки минимизации энергии сети
bull Сконструировать функцию энергии с малыми значениями на обучающей выборке и с большими значениями всюду вне этого множества
bull Первое несложно а второе представляет задачу процесса обучения
Интуитивные соображения
Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decomposition LISTA ndashметоды использующие разреженные коды
Латентная переменная Z =argmin_z Distance[Decoder(Z)Y]+FactorB(Z)MAPminimaize sum of factors
Автоэнкодер (auto encoder) Автоэнкодер представляет собой алгоритм обучения без учителя который использует нейронную сеть и метод обратного распространения ошибки для того чтобы добиться того что входной вектор признаков вызывал отклик сети равный входному вектору те y = x Автоэнкодер пытается построить функцию h(x) = x
Архитекттура ICA моделей
Итеративные алгоритмы с оптимальным разреженным кодированием ISTAFISTA
Самоорганизация данных методами Deep Learning
>
Знакомство с пакетом deepnet
Назначение
Составdbndnntrain - обучение сети с архитектурой DBN (deep belief network)loadmnist - формирование данных из файлов MNISTnnpredict - предсказание новых выборок на обученной нейронной сетиnntest ndash тестирование обученной нейронной сети с возвращением значения ошибкиnntrain ndash обучение одностлойной или многослойной нейронной сети методом backproprbmdown ndash генерирование видимого вектора для скрытых состояний сети RBMrbmtrain ndash обучение сети RBMrbmup ndash извлечение скрытых состояний RBM по известным видимым состояниямsaednntrain ndash обучение нейронной сети с архитектурой stacked autoencoder
Прогнозирование (классификация) нейронной сетью с архитектурой stacked auto encoder
Argumentsbull x matrix of x values for examplesbull y vector or matrix of target values for examplesbull hidden vector for number of units of hidden layersDefault is c(10)bull activationfun activation function of hidden unitCan be sigmlinear or tanhDefault isbull sigm for logistic functionbull learningrate learning rate for gradient descent Default is 08bull momentum momentum for gradient descent Default is 05 bull learningrate_scalebull learning rate will be mutiplied by this scale after every iteration Default is 1 bull numepochs number of iteration for samples Default is 3bull batchsize size of mini-batch Default is 100bull output function of output unit can be sigmlinear or softmax Default is sigmbull sae_output function of autoencoder output unit can be sigmlinear or softmax Defaultbull is linearbull hidden_dropout drop out fraction for hidden layer Default is 0bull visible_dropoutbull drop out fraction for input layer Default is 0
Что такое MNISTbull Смешанный набор данных Национального института стандартов и
технологий (mixed National Institute of Standards and Technology MNIST) был создан исследователями IR в качестве эталона для сравнения различных алгоритмов IR
bull Набор данных состоит всего из 70 000 изображений 60 000 обучающих (используемых для создания модели IR) и 10 000 тестовых (применяемых для оценки точности модели) Каждое изображение MNIST mdash это оцифрованная картинка одной цифры написанной от руки Каждое изображение имеет размер 28 times 28 пикселей Каждое значение пикселя лежит в диапазоне от 0 (представляет белый цвет) до 255 (представляет черный цвет) Промежуточные значения отражают оттенки серого
httpyannlecuncomexdbmnistобучающие и тестовые данные хранятся в двух файлах а не в одном Один файл содержит значения пикселей для изображений а другой mdash метки изображений (0ndash9) Каждый из четырех файлов также содержит заголовочную информацию и все они хранятся в двоичном формате сжатом в формате gziptrain-images-idx3-ubytegz training set images (9912422 bytes)
train-labels-idx1-ubytegz training set labels (28881 bytes)
t10k-images-idx3-ubytegz test set images (1648877 bytes)
t10k-labels-idx1-ubytegz test set labels (4542 bytes)
bull Каждая строка файла представляет собой имидж размера 28 times 28 вектором длины 784 каждый признак ndash значение пиксела в черно-белой шале Первый столбец содержит метку цифры 0ndash9 следующие 2828 столбцов представляют целый имидж и так далее Пример первой строки
Визуализация
bull plotmnist()bull mnistbull paramsbull train$n number of train samplesbull train$x pix of every train sample imagebull train$y label of every train sample imagebull train$yy one-of-c vector of label of train sample imagebull test$n number of test samplesbull test$x pix of every test sample imagebull test$y label of every test sample imagebull test$yy one-of-c vector of label of test sample image
plotmnist()
Распознавание рукописных цифр в deepnet
another way to download the MNIST datasetmnist downloadmnist(range=c(01)global=FALSE)look at MNIST datamnist$train$xmnist$train$ymnist$test$xmnist$test$ytrain of the sae neural networkdnnlt-saednntrain(mnist$train$xmnist$train$yhidden=c(55))test of the sae neural networknntest(dnnmnist$test$xmnist$test$yt=05)
End of slides part 2 (Part 3 - NLP remaining)
Vladimirvkrylovgmailcom
Основы предиктивной аналитики Часть вторая
Применение методов Machine Learning к решению задач аналитики
Дмитрий Ветров кандидат физико-математических наук ру
Методы обучающихся машин для аналитики которые мы рассмотрим
Сначала нужно загрузить несколько пакетов (packages) для поддер
Данные для анализа
Скрипт для генерации
Данные которые мы будем использовать для демо состоят из смес
Так выглядят визуализированные данные сгенерированные скриптом
Разделение данных на обучающие и проверочные является важным эт
K-means алгоритм на пальцах
Обучающаяся машина без учителя Алгоритм K-means
Slide 13
Slide 14
Здесь мы используем заранее известный факт что необходимо кла
Еще одна иллюстрация работы алгоритма K-means
Обучающаяся машина без учителя Алгоритм KNN (Nearest Neighbor)
Как работает алгоритм KNN
knn(train test cl k = 1 l = 0 prob = FALSE useall = TRUE
Slide 20
Результаты кластеризации и зависимость ошибки от числа кластеро
Recursive PartitioningRegression Tree
Метод RP реализует обучение машины строить дерево решений по об
Recursive PartitioningRegression Tree (2)
rpart(formula data weights subset naaction = narpart met
Slide 26
Recursive PartitioningRegression Tree example
Анализ по главным компонентам (Principal Component Analysis PC
Итеративные алгоритмы с оптимальным разреженным кодированием IS
Самоорганизация данных методами Deep Learning
Знакомство с пакетом deepnet
Прогнозирование (классификация) нейронной сетью с архитектурой
Arguments
Архитектура сети SAE
Архитектура с 5Х4 hidden 3 outs
Example
Анализ обучающего набора данных
Параметры SAE сети
Коэффициенты связей
Предсказание обученной сетью
Сравнение обучающей и тестовой выборки
plot3d(xy)
Работаем с пакетом MNIST
httpyannlecuncomexdbmnist
Подготовка к обработке
Slide 118
Визуализация
plotmnist()
Распознавание рукописных цифр в deepnet
End of slides part 2 (Part 3 - NLP remaining)
princomp(formula data = NULL subset naaction )formula a formula with no response variable referring only to numeric variables
data an optional data frame (or similar see modelframe) containing the variables in the formula formula By default the variables are taken from environment(formula)
subset an optional vector used to select rows (observations) of the data matrix x
naaction a function which indicates what should happen when the data contain NAs The default is set by the naaction setting of options and is nafail if that is unset The lsquofactory-freshrsquo default is naomit
x a numeric matrix or data frame which provides the data for the principal components analysis
cor a logical value indicating whether the calculation should use the correlation matrix or the covariance matrix (The correlation matrix can only be used if there are no constant variables)
scores a logical value indicating whether the score on each principal component should be calculated
covmat a covariance matrix or a covariance list as returned by covwt (and covmve or covmcd from package MASS) If supplied this is used rather than the covariance matrix of x
arguments passed to or from other methods If x is a formula one might specify cor or scores
object Object of class inheriting from princomp
newdata An optional data frame or matrix in which to look for variables with which to predict If omitted the scores are used If the original fit used a formula or a data frame or a matrix with column names newdata must contain columns with the same names Otherwise it must contain the same number of columns to be used in the same order
Principal Component Analysis (PCA)plt-princomp(train[12])train_pca lt- dataframe(p$scores)train_pca$class lt- train$class
Compare the alignment of the clusters to the axis in the feature space versus the transformed space
r2 lt- rpart(class ~ Comp1 + Comp2 data = train_pca)
Линейный дискриминантный анализ (Linear Discriminant Analysis - LDA)bull Для каждого образца объекта или события с известным классом y
рассматривается набор наблюдений x (называемых ещё признаками переменными или измерениями) Набор таких образцов называется обучающей выборкой (или набором обучения обучением) Задачи классификации состоит в том чтобы построить хороший прогноз класса y для всякого так же распределённого объекта (не обязательно содержащегося в обучающей выборке) имея только наблюдения x Основная идея состоит в сравнении распределений для каждого из классов Расстоянием (по Фишеру) между распределениями принято считать отношение межклассовой дисперсии к внутриклассовой
bull Оптимальное байесовское решение - относить точки ко второму классу если отношение правдоподобия ниже некоторого порогового значения T
bull Предполагая что выполнена нормировка
bull Решение записывается в виде неравенства для скалярного произведения
bull Здесь laquoизмерительныйraquo вектор равен
bull с- дискриминантный порог
lda(x grouping prior = proportions tol = 10e-4 method CV = FALSE nu )
formula A formula of the form groups ~ x1 + x2 + That is the response is the grouping factor and the right hand side specifies the (non-factor) discriminators
data Data frame from which variables specified in formula are preferentially to be taken
x (required if no formula is given as the principal argument) a matrix or data frame or Matrix containing the explanatory variables
grouping (required if no formula principal argument is given) a factor specifying the class for each observation
prior the prior probabilities of class membership If unspecified the class proportions for the training set are used If present the probabilities should be specified in the order of the factor levels
tol A tolerance to decide if a matrix is singular it will reject variables and linear combinations of unit-variance variables whose variance is less than tol^2
subset An index vector specifying the cases to be used in the training sample (NOTE If given this argument must be named)
naaction A function to specify the action to be taken if NAs are found The default action is for the procedure to fail An alternative is naomit which leads to rejection of cases with missing values on any required variable (NOTE If given this argument must be named)
method moment for standard estimators of the mean and variance mle for MLEs mve to use covmve or t for robust estimates based on a t distribution
CV If true returns results (classes and posterior probabilities) for leave-one-out cross-validation Note that if the prior is estimated the proportions in the whole dataset are used
nu degrees of freedom for method = t
arguments passed to or from other methods
prior the prior probabilities usedmeans the group meansscaling a matrix which transforms observations to
discriminant functions normalized so that within groups covariance matrix is spherical
svd the singular values which give the ratio of the between- and within-group standard deviations on the linear discriminant variables Their squares are the canonical F-statistics
N The number of observations usedcall The (matched) function call
An object of class lda containing the following components
Метод опорных векторов (Support Vector Machines - SVM)Относится к ML с учителем и использует линейные разделяющие поверхности
Идея алгоритма
bull По обучающей выборке
bull Строится классифицирующая функция
bull Используя гиперплоскость
bull Поиск коэффициентов сводится к максимизации
расстояний от опорных векторов или минимизации
Иллюстрация на простейшем примере
>
Производится вложение обучающей выборки в пространство более высокой размерности Х с помощью нелинейной функции так чтобы обеспечит линейную разделимость в Х
Разделяющая функция тогда имеет вид
Функция называется ядром
Полиномиальное ядро
Радиальная базисная функция
Сигмоид
Линейная неразделимость и использование ядер
Иллюстрация использования ядра для отображения 2D -gt 3D
>
svm((formula data = NULL subset naaction =naomit scale = TRUE))
formulaa symbolic description of the model to be fitdataan optional data frame containing the variables in the model By default the variables are taken from the environment which lsquosvmrsquo is called fromxa data matrix a vector or a sparse matrix (object of class Matrix provided by the Matrix package or of class matrixcsr provided by the SparseM package or of class simple_triplet_matrix provided by the slam package)ya response vector with one label for each rowcomponent of x Can be either a factor (for classification tasks) or a numeric vector (for regression)scaleA logical vector indicating the variables to be scaled If scale is of length 1 the value is recycled as many times as needed Per default data are scaled internally (both x and y variables) to zero mean and unit variance The center and scale values are returned and used for later predictionstypesvm can be used as a classification machine as a regression machine or for novelty detection Depending of whether y is a factor or not the default setting for type is C-classification or eps-regression respectively but may be overwritten by setting an explicit valueValid options areC-classificationnu-classificationone-classification (for novelty detection)eps-regressionnu-regression
Support Vector Machines
s lt- svm( I(factor(class)) ~ x + y data = train cost = 100 gama = 1)
Package lsquodeepnetrsquo February 19 2015 Type Package Title deep learning toolkit in R Version 02 Date 2014-03-20 Author Xiao Rong Maintainer Xiao Rong Description Implement some deep learning architectures and neural network algorithms including BPRBMDBNDeep autoencoder and so on License GPL NeedsCompilation no Repository CRAN DatePublication 2014-03-20 100343
laquoВ 1997 году Deep Blue обыграл в шахматы КаспароваВ 2011 Watson обставил чемпионов JeopardyСможет ли ваш алгоритм в 2013 году отличить Бобика от ПушистикаraquoKaggle Competitions Details
Сегодня уже можно ответить laquoдаraquo mdash десятка лидеров справилась с заданием на 988
Распознавание основано на feature detection и последующем различении комбинаций
Заранее неизвестно какие части картинки могут использоваться как хорошие features В их роли может выступать все что угодно mdash фрагменты изображения форма размер или цвет Feature может не присутствовать на картинке сама а выражаться в параметре полученным каким-то образом из исходных данных
Распознавание рукописных цифр
Еще пример посложнее
Использование нейронной сети с обучениемОбучение такой нейронной сети производится обычно методом обратного распространения ошибки таким образом чтобы минимизировать среднеквадратическую ошибку отклика сети на обучающей выборке Таким образом обучающая выборка содержит пары векторов признаков (входные данные) и эталонных векторов (маркированные данные) (x y)
Сверхвысокая размерность при работе с первичным представлением пикселями
Пиксельное кодирование
Принцип иерархии понятий ndash основа deep learning
bull Все вещи состоят из других маленьких и более элементарных вещей
bull Как извлекать features Гипотеза малоразмерных многообразий
Разреженное (sparse) кодирование
первый уровень иерархии состоит из элементов словаря этого кода которые представляют собой штрихи и границы
Словарь для лиц
Выделение объектов заданного класса
Основные архитектуры Deep Learningbull Deep neural networks (DNN)bull Deep belief networks (DBN)bull Convolutional neural networks (CNN)bull Deep Boltzmann Machines (DBM)bull Stacked (Denoising) Auto-Encodersbull Deep Stacking Networksbull Tensor Deep Stacking Networks (T-DSN)bull Spike-and-Slab RBMs (ssRBMs)bull Compound Hierarchical-Deep Modelsbull Deep Coding Networks (DPCN)bull Deep Kernel Machinesbull Deep Q-Networks (2015 г)
Задача классификации распознавания и подобные являются задачей конструирования функции на множестве входных наборов и со значениями в множестве требуемого вида выходных
bull Норбертом Винером было показано что любая функция может быть сколь угодно точно композицией двух (он использовал функции полином Лагранжа и функцию Лагерра)
bull Соответствует двухслойной нейросетиbull Архитектуры Deep Learning соответствуют представлению
bull Обеспечивают эффективную параметризацию при решении конкретных задач Более сложные функции создаются из большего числа но более эффективно настраиваемых laquoкирпичиковraquo Пример ndash синтез булевых функций Дерево вентилей эффективнее двухслойной схемы
Фактор - графыВсе методы которые расмотрели ndash не DL Даже деревья классификации Все операции в одном входном словаре
DL можно определить по фактор-графу
Например
bull Еще одна сторона DL - нередко использует невыпуклые функции потерьbull Обучение на основе выпуклых функций не зависит от порядка
предъявления данных для обучения Все определяет асимптотика всего train - набора В алгоритмах DL порядок данных в обучающей выборке может иметь значение
bull Многие решения в DL не доказаны математически и являются успешными эвристиками
bull Большой простор для прикладной математики Может рассматриваться как фактор-граф с группами латентных переменных
bull В настоящее время стал основной технологией в распознавании речи (speech recognition) и машинном зрении (computer vision) начал применяться в обработке текстов (natural language processing)
bull Основная идея ndash применение нелинейного отображения входного набора в более высокоразмерное пространство где многие неразделимые композиции становятся разделимыми а затем объединение композиций по семантической близости
Подход разреженного кодирования
Обобщенная архитектура
bull DL сеть может быть собрана каскадированием и использованием обучения с учителем
Здесь используется forward propagation для обучения
Для настройки коэффициентов используется метод fprof для каждого
Требуется знание градиента энергии
Элементы (kl) матрицы Якобиана
Требуется знание градиента энергии 120597119864120597119882119894 = 120597119864120597119883119894120597119865119894(119883119894minus1119882119894)120597119882119894
ሾ1times 119873119908ሿ= ሾ1times 119873119909ሿlowast[119873119909 times 119873119908] Элементы (kl) матрицы Якобиана
Сводится к рекуррентному соотношению для вычисления градиента 120597119864120597119883119894minus1 = 120597119864120597119883119894120597119865119894(119883119894minus1119882119894)120597119883119894minus1
В итоге
Для вычисления градиента может использоваться метод back propagation
В действительности работают любые архитектуры построения функции Нужно конструировать связи и функции блоков
Язык Torch 7 ndash современный инструмент моделирования и имплементации
Machine Learning with Torch7 (httpcodecogbitscomwikidokuphpid=start)
bull These tutorials were originally designed for the IPAM Summer School on Deep Learning more info herebull This wiki provides multiple tutorials with the overall objective of teaching you how to do machine learning
with Torch7bull Torch7 provides a Matlab-like environment for state-of-the-art machine learning algorithms It is easy to use
and provides a very efficient implementation thanks to an easy and fast scripting language (LuaJIT) and an underlying C implementation
bull These tutorials should be readdone in orderbull Tutorial 1 Setup Basics Getting Startedbull Tutorial 2 Supervised Learningbull Tutorial 3 Unsupervised Learningbull Tutorial 4 Graphical Modelsbull Tutorial 5 Creating New Modulesbull Tutorial 6 Using CUDAbull To follow these tutorials and do the exercises you will need to download the associated code which is hosted
on GitHub on this page In this repository each directory corresponds to a tutorial herebull starttxt middot Last modified 20140204 2246 by clement
Torch 7 является расширением Lua
What is LuaLua is a powerful fast lightweight embeddable scripting languageLua combines simple procedural syntax with powerful data description constructs based on associative arrays and extensible semantics Lua is dynamically typed runs by interpreting bytecode for a register-based virtual machine and has automatic memory management with incremental garbage collection making it ideal for configuration scripting and rapid prototyping
Why choose LuaLua is a proven robust languageLua has been used in many industrial applications (eg Adobes Photoshop Lightroom) with an emphasis on embedded systems (eg the Ginga middleware for digital TV in Brazil) and games (eg World of Warcraft and Angry Birds) Lua is currently the leading scripting language in games Lua has a solid reference manual and there are several books about it Several versions of Lua have been released and used in real applications since its creation in 1993 Lua featured in HOPL III the Third ACM SIGPLAN History of Programming Languages Conference in June 2007 Lua won the Front Line Award 2011 from the Game Developers Magazine
Свертка и архитектура 4-х уровневой сверточной сети
Функциональная структура
Примеры успешного применения сверточных сетей
Диагностика эпилепсии по ЭЭГ
Реализация сверточной сетью
Одна из самых больших сверточных сетейbull Krizhevsky Sutskever Hinton 2012bull 650 000 нейронов 832 000 000 синапсов 60 000000 пареметровbull Использовался backprop на GPUbull Обучающая выборка на материалах 20 летbull Купил Google в январе 2013bull В мае 2013 развернул как сервис Photo Tagging Google+
Пример тэгирования
Пример поиска похожих по изображению
Пример поиска в коллекции изображений по текстовому запросу
Пример laquoоблачногоraquo классификатора изображений
Самообучающиеся нейронные сети на основе минимизации функции энергииbull Применима к сетям с обратными связямиbull Конструирование функции энергии должно обеспечивать
laquoконтрастностьraquo разделения
bull Энергетическая функция может Неформально рассматриваться как отрицательный логарифм плотности вероятности
Y 2=(Y1)2
RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцмана
bull Из DBM cтроится Deep Belief Network (DBN)
bull w mdash вес между нейронами
bull b mdash смещение нейрона
bull s mdash состояние нейрона
Алгоритм обучения Contrastive Divergence (CD)bull w_ij mdash веc между i-ым нейроном Вероятность пар может быть представлена как
bull a_i mdash смещение видимого нейрона
bull b_j mdash смещение скрытого нейрона
bull v_i mdash состояние видимого нейрона
bull h_j mdash состояние скрытого нейрона Полная вероятность состояния видимых нейронов
Основные уравнения адаптации
Алгоритм Хинтона - Contrastive Divergence (CD-k)
1 состояние видимых нейронов приравнивается к входному образу2 выводятся вероятности состояний скрытого слоя3 каждому нейрону скрытого слоя ставится в соответствие состояние laquo1raquo с вероятностью равной его текущему состоянию4 выводятся вероятности видимого слоя на основании скрытого5 если текущая итерация меньше k то возврат к шагу 26 выводятся вероятности состояний скрытого слоя
darch Package for deep architectures and Restricted-Bolzmann-MachinesThe darch package is build on the basis of the code from G E Hinton and R R Salakhutdinov (available under Matlab Code for deep belief nets last visit 01082013) This package is for generating neural networks with many layers (deep architectures) and train them with the method introduced by the publications A fast learning algorithm for deep belief nets (G E Hinton S Osindero Y W Teh) and Reducing the dimensionality of data with neural networks (G E Hinton R R Salakhutdinov) This method includes a pre training with the contrastive divergence method publishing by GE Hinton (2002) and a fine tuning with common known training algorithms like backpropagation or conjugate gradient
bull Version 091bull Imports futilelogger ff methodsbull Published 2014-03-16bull Author Martin Dreesbull Maintainer Martin Drees ltmdrees at studfh-dortmunddegtbull License GPL-2bull URL httpgithubcommaddin79darchbull NeedsCompilation nobull Materials READMEbull CRAN checks darch results
Связь плотности вероятности и энергии
Используется распределение Гиббса
Задача обучения с точки минимизации энергии сети
bull Сконструировать функцию энергии с малыми значениями на обучающей выборке и с большими значениями всюду вне этого множества
bull Первое несложно а второе представляет задачу процесса обучения
Интуитивные соображения
Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decomposition LISTA ndashметоды использующие разреженные коды
Латентная переменная Z =argmin_z Distance[Decoder(Z)Y]+FactorB(Z)MAPminimaize sum of factors
Автоэнкодер (auto encoder) Автоэнкодер представляет собой алгоритм обучения без учителя который использует нейронную сеть и метод обратного распространения ошибки для того чтобы добиться того что входной вектор признаков вызывал отклик сети равный входному вектору те y = x Автоэнкодер пытается построить функцию h(x) = x
Архитекттура ICA моделей
Итеративные алгоритмы с оптимальным разреженным кодированием ISTAFISTA
Самоорганизация данных методами Deep Learning
>
Знакомство с пакетом deepnet
Назначение
Составdbndnntrain - обучение сети с архитектурой DBN (deep belief network)loadmnist - формирование данных из файлов MNISTnnpredict - предсказание новых выборок на обученной нейронной сетиnntest ndash тестирование обученной нейронной сети с возвращением значения ошибкиnntrain ndash обучение одностлойной или многослойной нейронной сети методом backproprbmdown ndash генерирование видимого вектора для скрытых состояний сети RBMrbmtrain ndash обучение сети RBMrbmup ndash извлечение скрытых состояний RBM по известным видимым состояниямsaednntrain ndash обучение нейронной сети с архитектурой stacked autoencoder
Прогнозирование (классификация) нейронной сетью с архитектурой stacked auto encoder
Argumentsbull x matrix of x values for examplesbull y vector or matrix of target values for examplesbull hidden vector for number of units of hidden layersDefault is c(10)bull activationfun activation function of hidden unitCan be sigmlinear or tanhDefault isbull sigm for logistic functionbull learningrate learning rate for gradient descent Default is 08bull momentum momentum for gradient descent Default is 05 bull learningrate_scalebull learning rate will be mutiplied by this scale after every iteration Default is 1 bull numepochs number of iteration for samples Default is 3bull batchsize size of mini-batch Default is 100bull output function of output unit can be sigmlinear or softmax Default is sigmbull sae_output function of autoencoder output unit can be sigmlinear or softmax Defaultbull is linearbull hidden_dropout drop out fraction for hidden layer Default is 0bull visible_dropoutbull drop out fraction for input layer Default is 0
Что такое MNISTbull Смешанный набор данных Национального института стандартов и
технологий (mixed National Institute of Standards and Technology MNIST) был создан исследователями IR в качестве эталона для сравнения различных алгоритмов IR
bull Набор данных состоит всего из 70 000 изображений 60 000 обучающих (используемых для создания модели IR) и 10 000 тестовых (применяемых для оценки точности модели) Каждое изображение MNIST mdash это оцифрованная картинка одной цифры написанной от руки Каждое изображение имеет размер 28 times 28 пикселей Каждое значение пикселя лежит в диапазоне от 0 (представляет белый цвет) до 255 (представляет черный цвет) Промежуточные значения отражают оттенки серого
httpyannlecuncomexdbmnistобучающие и тестовые данные хранятся в двух файлах а не в одном Один файл содержит значения пикселей для изображений а другой mdash метки изображений (0ndash9) Каждый из четырех файлов также содержит заголовочную информацию и все они хранятся в двоичном формате сжатом в формате gziptrain-images-idx3-ubytegz training set images (9912422 bytes)
train-labels-idx1-ubytegz training set labels (28881 bytes)
t10k-images-idx3-ubytegz test set images (1648877 bytes)
t10k-labels-idx1-ubytegz test set labels (4542 bytes)
bull Каждая строка файла представляет собой имидж размера 28 times 28 вектором длины 784 каждый признак ndash значение пиксела в черно-белой шале Первый столбец содержит метку цифры 0ndash9 следующие 2828 столбцов представляют целый имидж и так далее Пример первой строки
Визуализация
bull plotmnist()bull mnistbull paramsbull train$n number of train samplesbull train$x pix of every train sample imagebull train$y label of every train sample imagebull train$yy one-of-c vector of label of train sample imagebull test$n number of test samplesbull test$x pix of every test sample imagebull test$y label of every test sample imagebull test$yy one-of-c vector of label of test sample image
plotmnist()
Распознавание рукописных цифр в deepnet
another way to download the MNIST datasetmnist downloadmnist(range=c(01)global=FALSE)look at MNIST datamnist$train$xmnist$train$ymnist$test$xmnist$test$ytrain of the sae neural networkdnnlt-saednntrain(mnist$train$xmnist$train$yhidden=c(55))test of the sae neural networknntest(dnnmnist$test$xmnist$test$yt=05)
End of slides part 2 (Part 3 - NLP remaining)
Vladimirvkrylovgmailcom
Основы предиктивной аналитики Часть вторая
Применение методов Machine Learning к решению задач аналитики
Дмитрий Ветров кандидат физико-математических наук ру
Методы обучающихся машин для аналитики которые мы рассмотрим
Сначала нужно загрузить несколько пакетов (packages) для поддер
Данные для анализа
Скрипт для генерации
Данные которые мы будем использовать для демо состоят из смес
Так выглядят визуализированные данные сгенерированные скриптом
Разделение данных на обучающие и проверочные является важным эт
K-means алгоритм на пальцах
Обучающаяся машина без учителя Алгоритм K-means
Slide 13
Slide 14
Здесь мы используем заранее известный факт что необходимо кла
Еще одна иллюстрация работы алгоритма K-means
Обучающаяся машина без учителя Алгоритм KNN (Nearest Neighbor)
Как работает алгоритм KNN
knn(train test cl k = 1 l = 0 prob = FALSE useall = TRUE
Slide 20
Результаты кластеризации и зависимость ошибки от числа кластеро
Recursive PartitioningRegression Tree
Метод RP реализует обучение машины строить дерево решений по об
Recursive PartitioningRegression Tree (2)
rpart(formula data weights subset naaction = narpart met
Slide 26
Recursive PartitioningRegression Tree example
Анализ по главным компонентам (Principal Component Analysis PC
Линейный дискриминантный анализ (Linear Discriminant Analysis - LDA)bull Для каждого образца объекта или события с известным классом y
рассматривается набор наблюдений x (называемых ещё признаками переменными или измерениями) Набор таких образцов называется обучающей выборкой (или набором обучения обучением) Задачи классификации состоит в том чтобы построить хороший прогноз класса y для всякого так же распределённого объекта (не обязательно содержащегося в обучающей выборке) имея только наблюдения x Основная идея состоит в сравнении распределений для каждого из классов Расстоянием (по Фишеру) между распределениями принято считать отношение межклассовой дисперсии к внутриклассовой
bull Оптимальное байесовское решение - относить точки ко второму классу если отношение правдоподобия ниже некоторого порогового значения T
bull Предполагая что выполнена нормировка
bull Решение записывается в виде неравенства для скалярного произведения
bull Здесь laquoизмерительныйraquo вектор равен
bull с- дискриминантный порог
lda(x grouping prior = proportions tol = 10e-4 method CV = FALSE nu )
formula A formula of the form groups ~ x1 + x2 + That is the response is the grouping factor and the right hand side specifies the (non-factor) discriminators
data Data frame from which variables specified in formula are preferentially to be taken
x (required if no formula is given as the principal argument) a matrix or data frame or Matrix containing the explanatory variables
grouping (required if no formula principal argument is given) a factor specifying the class for each observation
prior the prior probabilities of class membership If unspecified the class proportions for the training set are used If present the probabilities should be specified in the order of the factor levels
tol A tolerance to decide if a matrix is singular it will reject variables and linear combinations of unit-variance variables whose variance is less than tol^2
subset An index vector specifying the cases to be used in the training sample (NOTE If given this argument must be named)
naaction A function to specify the action to be taken if NAs are found The default action is for the procedure to fail An alternative is naomit which leads to rejection of cases with missing values on any required variable (NOTE If given this argument must be named)
method moment for standard estimators of the mean and variance mle for MLEs mve to use covmve or t for robust estimates based on a t distribution
CV If true returns results (classes and posterior probabilities) for leave-one-out cross-validation Note that if the prior is estimated the proportions in the whole dataset are used
nu degrees of freedom for method = t
arguments passed to or from other methods
prior the prior probabilities usedmeans the group meansscaling a matrix which transforms observations to
discriminant functions normalized so that within groups covariance matrix is spherical
svd the singular values which give the ratio of the between- and within-group standard deviations on the linear discriminant variables Their squares are the canonical F-statistics
N The number of observations usedcall The (matched) function call
An object of class lda containing the following components
Метод опорных векторов (Support Vector Machines - SVM)Относится к ML с учителем и использует линейные разделяющие поверхности
Идея алгоритма
bull По обучающей выборке
bull Строится классифицирующая функция
bull Используя гиперплоскость
bull Поиск коэффициентов сводится к максимизации
расстояний от опорных векторов или минимизации
Иллюстрация на простейшем примере
>
Производится вложение обучающей выборки в пространство более высокой размерности Х с помощью нелинейной функции так чтобы обеспечит линейную разделимость в Х
Разделяющая функция тогда имеет вид
Функция называется ядром
Полиномиальное ядро
Радиальная базисная функция
Сигмоид
Линейная неразделимость и использование ядер
Иллюстрация использования ядра для отображения 2D -gt 3D
>
svm((formula data = NULL subset naaction =naomit scale = TRUE))
formulaa symbolic description of the model to be fitdataan optional data frame containing the variables in the model By default the variables are taken from the environment which lsquosvmrsquo is called fromxa data matrix a vector or a sparse matrix (object of class Matrix provided by the Matrix package or of class matrixcsr provided by the SparseM package or of class simple_triplet_matrix provided by the slam package)ya response vector with one label for each rowcomponent of x Can be either a factor (for classification tasks) or a numeric vector (for regression)scaleA logical vector indicating the variables to be scaled If scale is of length 1 the value is recycled as many times as needed Per default data are scaled internally (both x and y variables) to zero mean and unit variance The center and scale values are returned and used for later predictionstypesvm can be used as a classification machine as a regression machine or for novelty detection Depending of whether y is a factor or not the default setting for type is C-classification or eps-regression respectively but may be overwritten by setting an explicit valueValid options areC-classificationnu-classificationone-classification (for novelty detection)eps-regressionnu-regression
Support Vector Machines
s lt- svm( I(factor(class)) ~ x + y data = train cost = 100 gama = 1)
Package lsquodeepnetrsquo February 19 2015 Type Package Title deep learning toolkit in R Version 02 Date 2014-03-20 Author Xiao Rong Maintainer Xiao Rong Description Implement some deep learning architectures and neural network algorithms including BPRBMDBNDeep autoencoder and so on License GPL NeedsCompilation no Repository CRAN DatePublication 2014-03-20 100343
laquoВ 1997 году Deep Blue обыграл в шахматы КаспароваВ 2011 Watson обставил чемпионов JeopardyСможет ли ваш алгоритм в 2013 году отличить Бобика от ПушистикаraquoKaggle Competitions Details
Сегодня уже можно ответить laquoдаraquo mdash десятка лидеров справилась с заданием на 988
Распознавание основано на feature detection и последующем различении комбинаций
Заранее неизвестно какие части картинки могут использоваться как хорошие features В их роли может выступать все что угодно mdash фрагменты изображения форма размер или цвет Feature может не присутствовать на картинке сама а выражаться в параметре полученным каким-то образом из исходных данных
Распознавание рукописных цифр
Еще пример посложнее
Использование нейронной сети с обучениемОбучение такой нейронной сети производится обычно методом обратного распространения ошибки таким образом чтобы минимизировать среднеквадратическую ошибку отклика сети на обучающей выборке Таким образом обучающая выборка содержит пары векторов признаков (входные данные) и эталонных векторов (маркированные данные) (x y)
Сверхвысокая размерность при работе с первичным представлением пикселями
Пиксельное кодирование
Принцип иерархии понятий ndash основа deep learning
bull Все вещи состоят из других маленьких и более элементарных вещей
bull Как извлекать features Гипотеза малоразмерных многообразий
Разреженное (sparse) кодирование
первый уровень иерархии состоит из элементов словаря этого кода которые представляют собой штрихи и границы
Словарь для лиц
Выделение объектов заданного класса
Основные архитектуры Deep Learningbull Deep neural networks (DNN)bull Deep belief networks (DBN)bull Convolutional neural networks (CNN)bull Deep Boltzmann Machines (DBM)bull Stacked (Denoising) Auto-Encodersbull Deep Stacking Networksbull Tensor Deep Stacking Networks (T-DSN)bull Spike-and-Slab RBMs (ssRBMs)bull Compound Hierarchical-Deep Modelsbull Deep Coding Networks (DPCN)bull Deep Kernel Machinesbull Deep Q-Networks (2015 г)
Задача классификации распознавания и подобные являются задачей конструирования функции на множестве входных наборов и со значениями в множестве требуемого вида выходных
bull Норбертом Винером было показано что любая функция может быть сколь угодно точно композицией двух (он использовал функции полином Лагранжа и функцию Лагерра)
bull Соответствует двухслойной нейросетиbull Архитектуры Deep Learning соответствуют представлению
bull Обеспечивают эффективную параметризацию при решении конкретных задач Более сложные функции создаются из большего числа но более эффективно настраиваемых laquoкирпичиковraquo Пример ndash синтез булевых функций Дерево вентилей эффективнее двухслойной схемы
Фактор - графыВсе методы которые расмотрели ndash не DL Даже деревья классификации Все операции в одном входном словаре
DL можно определить по фактор-графу
Например
bull Еще одна сторона DL - нередко использует невыпуклые функции потерьbull Обучение на основе выпуклых функций не зависит от порядка
предъявления данных для обучения Все определяет асимптотика всего train - набора В алгоритмах DL порядок данных в обучающей выборке может иметь значение
bull Многие решения в DL не доказаны математически и являются успешными эвристиками
bull Большой простор для прикладной математики Может рассматриваться как фактор-граф с группами латентных переменных
bull В настоящее время стал основной технологией в распознавании речи (speech recognition) и машинном зрении (computer vision) начал применяться в обработке текстов (natural language processing)
bull Основная идея ndash применение нелинейного отображения входного набора в более высокоразмерное пространство где многие неразделимые композиции становятся разделимыми а затем объединение композиций по семантической близости
Подход разреженного кодирования
Обобщенная архитектура
bull DL сеть может быть собрана каскадированием и использованием обучения с учителем
Здесь используется forward propagation для обучения
Для настройки коэффициентов используется метод fprof для каждого
Требуется знание градиента энергии
Элементы (kl) матрицы Якобиана
Требуется знание градиента энергии 120597119864120597119882119894 = 120597119864120597119883119894120597119865119894(119883119894minus1119882119894)120597119882119894
ሾ1times 119873119908ሿ= ሾ1times 119873119909ሿlowast[119873119909 times 119873119908] Элементы (kl) матрицы Якобиана
Сводится к рекуррентному соотношению для вычисления градиента 120597119864120597119883119894minus1 = 120597119864120597119883119894120597119865119894(119883119894minus1119882119894)120597119883119894minus1
В итоге
Для вычисления градиента может использоваться метод back propagation
В действительности работают любые архитектуры построения функции Нужно конструировать связи и функции блоков
Язык Torch 7 ndash современный инструмент моделирования и имплементации
Machine Learning with Torch7 (httpcodecogbitscomwikidokuphpid=start)
bull These tutorials were originally designed for the IPAM Summer School on Deep Learning more info herebull This wiki provides multiple tutorials with the overall objective of teaching you how to do machine learning
with Torch7bull Torch7 provides a Matlab-like environment for state-of-the-art machine learning algorithms It is easy to use
and provides a very efficient implementation thanks to an easy and fast scripting language (LuaJIT) and an underlying C implementation
bull These tutorials should be readdone in orderbull Tutorial 1 Setup Basics Getting Startedbull Tutorial 2 Supervised Learningbull Tutorial 3 Unsupervised Learningbull Tutorial 4 Graphical Modelsbull Tutorial 5 Creating New Modulesbull Tutorial 6 Using CUDAbull To follow these tutorials and do the exercises you will need to download the associated code which is hosted
on GitHub on this page In this repository each directory corresponds to a tutorial herebull starttxt middot Last modified 20140204 2246 by clement
Torch 7 является расширением Lua
What is LuaLua is a powerful fast lightweight embeddable scripting languageLua combines simple procedural syntax with powerful data description constructs based on associative arrays and extensible semantics Lua is dynamically typed runs by interpreting bytecode for a register-based virtual machine and has automatic memory management with incremental garbage collection making it ideal for configuration scripting and rapid prototyping
Why choose LuaLua is a proven robust languageLua has been used in many industrial applications (eg Adobes Photoshop Lightroom) with an emphasis on embedded systems (eg the Ginga middleware for digital TV in Brazil) and games (eg World of Warcraft and Angry Birds) Lua is currently the leading scripting language in games Lua has a solid reference manual and there are several books about it Several versions of Lua have been released and used in real applications since its creation in 1993 Lua featured in HOPL III the Third ACM SIGPLAN History of Programming Languages Conference in June 2007 Lua won the Front Line Award 2011 from the Game Developers Magazine
Свертка и архитектура 4-х уровневой сверточной сети
Функциональная структура
Примеры успешного применения сверточных сетей
Диагностика эпилепсии по ЭЭГ
Реализация сверточной сетью
Одна из самых больших сверточных сетейbull Krizhevsky Sutskever Hinton 2012bull 650 000 нейронов 832 000 000 синапсов 60 000000 пареметровbull Использовался backprop на GPUbull Обучающая выборка на материалах 20 летbull Купил Google в январе 2013bull В мае 2013 развернул как сервис Photo Tagging Google+
Пример тэгирования
Пример поиска похожих по изображению
Пример поиска в коллекции изображений по текстовому запросу
Пример laquoоблачногоraquo классификатора изображений
Самообучающиеся нейронные сети на основе минимизации функции энергииbull Применима к сетям с обратными связямиbull Конструирование функции энергии должно обеспечивать
laquoконтрастностьraquo разделения
bull Энергетическая функция может Неформально рассматриваться как отрицательный логарифм плотности вероятности
Y 2=(Y1)2
RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцмана
bull Из DBM cтроится Deep Belief Network (DBN)
bull w mdash вес между нейронами
bull b mdash смещение нейрона
bull s mdash состояние нейрона
Алгоритм обучения Contrastive Divergence (CD)bull w_ij mdash веc между i-ым нейроном Вероятность пар может быть представлена как
bull a_i mdash смещение видимого нейрона
bull b_j mdash смещение скрытого нейрона
bull v_i mdash состояние видимого нейрона
bull h_j mdash состояние скрытого нейрона Полная вероятность состояния видимых нейронов
Основные уравнения адаптации
Алгоритм Хинтона - Contrastive Divergence (CD-k)
1 состояние видимых нейронов приравнивается к входному образу2 выводятся вероятности состояний скрытого слоя3 каждому нейрону скрытого слоя ставится в соответствие состояние laquo1raquo с вероятностью равной его текущему состоянию4 выводятся вероятности видимого слоя на основании скрытого5 если текущая итерация меньше k то возврат к шагу 26 выводятся вероятности состояний скрытого слоя
darch Package for deep architectures and Restricted-Bolzmann-MachinesThe darch package is build on the basis of the code from G E Hinton and R R Salakhutdinov (available under Matlab Code for deep belief nets last visit 01082013) This package is for generating neural networks with many layers (deep architectures) and train them with the method introduced by the publications A fast learning algorithm for deep belief nets (G E Hinton S Osindero Y W Teh) and Reducing the dimensionality of data with neural networks (G E Hinton R R Salakhutdinov) This method includes a pre training with the contrastive divergence method publishing by GE Hinton (2002) and a fine tuning with common known training algorithms like backpropagation or conjugate gradient
bull Version 091bull Imports futilelogger ff methodsbull Published 2014-03-16bull Author Martin Dreesbull Maintainer Martin Drees ltmdrees at studfh-dortmunddegtbull License GPL-2bull URL httpgithubcommaddin79darchbull NeedsCompilation nobull Materials READMEbull CRAN checks darch results
Связь плотности вероятности и энергии
Используется распределение Гиббса
Задача обучения с точки минимизации энергии сети
bull Сконструировать функцию энергии с малыми значениями на обучающей выборке и с большими значениями всюду вне этого множества
bull Первое несложно а второе представляет задачу процесса обучения
Интуитивные соображения
Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decomposition LISTA ndashметоды использующие разреженные коды
Латентная переменная Z =argmin_z Distance[Decoder(Z)Y]+FactorB(Z)MAPminimaize sum of factors
Автоэнкодер (auto encoder) Автоэнкодер представляет собой алгоритм обучения без учителя который использует нейронную сеть и метод обратного распространения ошибки для того чтобы добиться того что входной вектор признаков вызывал отклик сети равный входному вектору те y = x Автоэнкодер пытается построить функцию h(x) = x
Архитекттура ICA моделей
Итеративные алгоритмы с оптимальным разреженным кодированием ISTAFISTA
Самоорганизация данных методами Deep Learning
>
Знакомство с пакетом deepnet
Назначение
Составdbndnntrain - обучение сети с архитектурой DBN (deep belief network)loadmnist - формирование данных из файлов MNISTnnpredict - предсказание новых выборок на обученной нейронной сетиnntest ndash тестирование обученной нейронной сети с возвращением значения ошибкиnntrain ndash обучение одностлойной или многослойной нейронной сети методом backproprbmdown ndash генерирование видимого вектора для скрытых состояний сети RBMrbmtrain ndash обучение сети RBMrbmup ndash извлечение скрытых состояний RBM по известным видимым состояниямsaednntrain ndash обучение нейронной сети с архитектурой stacked autoencoder
Прогнозирование (классификация) нейронной сетью с архитектурой stacked auto encoder
Argumentsbull x matrix of x values for examplesbull y vector or matrix of target values for examplesbull hidden vector for number of units of hidden layersDefault is c(10)bull activationfun activation function of hidden unitCan be sigmlinear or tanhDefault isbull sigm for logistic functionbull learningrate learning rate for gradient descent Default is 08bull momentum momentum for gradient descent Default is 05 bull learningrate_scalebull learning rate will be mutiplied by this scale after every iteration Default is 1 bull numepochs number of iteration for samples Default is 3bull batchsize size of mini-batch Default is 100bull output function of output unit can be sigmlinear or softmax Default is sigmbull sae_output function of autoencoder output unit can be sigmlinear or softmax Defaultbull is linearbull hidden_dropout drop out fraction for hidden layer Default is 0bull visible_dropoutbull drop out fraction for input layer Default is 0
Что такое MNISTbull Смешанный набор данных Национального института стандартов и
технологий (mixed National Institute of Standards and Technology MNIST) был создан исследователями IR в качестве эталона для сравнения различных алгоритмов IR
bull Набор данных состоит всего из 70 000 изображений 60 000 обучающих (используемых для создания модели IR) и 10 000 тестовых (применяемых для оценки точности модели) Каждое изображение MNIST mdash это оцифрованная картинка одной цифры написанной от руки Каждое изображение имеет размер 28 times 28 пикселей Каждое значение пикселя лежит в диапазоне от 0 (представляет белый цвет) до 255 (представляет черный цвет) Промежуточные значения отражают оттенки серого
httpyannlecuncomexdbmnistобучающие и тестовые данные хранятся в двух файлах а не в одном Один файл содержит значения пикселей для изображений а другой mdash метки изображений (0ndash9) Каждый из четырех файлов также содержит заголовочную информацию и все они хранятся в двоичном формате сжатом в формате gziptrain-images-idx3-ubytegz training set images (9912422 bytes)
train-labels-idx1-ubytegz training set labels (28881 bytes)
t10k-images-idx3-ubytegz test set images (1648877 bytes)
t10k-labels-idx1-ubytegz test set labels (4542 bytes)
bull Каждая строка файла представляет собой имидж размера 28 times 28 вектором длины 784 каждый признак ndash значение пиксела в черно-белой шале Первый столбец содержит метку цифры 0ndash9 следующие 2828 столбцов представляют целый имидж и так далее Пример первой строки
Визуализация
bull plotmnist()bull mnistbull paramsbull train$n number of train samplesbull train$x pix of every train sample imagebull train$y label of every train sample imagebull train$yy one-of-c vector of label of train sample imagebull test$n number of test samplesbull test$x pix of every test sample imagebull test$y label of every test sample imagebull test$yy one-of-c vector of label of test sample image
plotmnist()
Распознавание рукописных цифр в deepnet
another way to download the MNIST datasetmnist downloadmnist(range=c(01)global=FALSE)look at MNIST datamnist$train$xmnist$train$ymnist$test$xmnist$test$ytrain of the sae neural networkdnnlt-saednntrain(mnist$train$xmnist$train$yhidden=c(55))test of the sae neural networknntest(dnnmnist$test$xmnist$test$yt=05)
End of slides part 2 (Part 3 - NLP remaining)
Vladimirvkrylovgmailcom
Основы предиктивной аналитики Часть вторая
Применение методов Machine Learning к решению задач аналитики
Дмитрий Ветров кандидат физико-математических наук ру
Методы обучающихся машин для аналитики которые мы рассмотрим
Сначала нужно загрузить несколько пакетов (packages) для поддер
Данные для анализа
Скрипт для генерации
Данные которые мы будем использовать для демо состоят из смес
Так выглядят визуализированные данные сгенерированные скриптом
Разделение данных на обучающие и проверочные является важным эт
K-means алгоритм на пальцах
Обучающаяся машина без учителя Алгоритм K-means
Slide 13
Slide 14
Здесь мы используем заранее известный факт что необходимо кла
Еще одна иллюстрация работы алгоритма K-means
Обучающаяся машина без учителя Алгоритм KNN (Nearest Neighbor)
Как работает алгоритм KNN
knn(train test cl k = 1 l = 0 prob = FALSE useall = TRUE
Slide 20
Результаты кластеризации и зависимость ошибки от числа кластеро
Recursive PartitioningRegression Tree
Метод RP реализует обучение машины строить дерево решений по об
Recursive PartitioningRegression Tree (2)
rpart(formula data weights subset naaction = narpart met
Slide 26
Recursive PartitioningRegression Tree example
Анализ по главным компонентам (Principal Component Analysis PC
Итеративные алгоритмы с оптимальным разреженным кодированием IS
Самоорганизация данных методами Deep Learning
Знакомство с пакетом deepnet
Прогнозирование (классификация) нейронной сетью с архитектурой
Arguments
Архитектура сети SAE
Архитектура с 5Х4 hidden 3 outs
Example
Анализ обучающего набора данных
Параметры SAE сети
Коэффициенты связей
Предсказание обученной сетью
Сравнение обучающей и тестовой выборки
plot3d(xy)
Работаем с пакетом MNIST
httpyannlecuncomexdbmnist
Подготовка к обработке
Slide 118
Визуализация
plotmnist()
Распознавание рукописных цифр в deepnet
End of slides part 2 (Part 3 - NLP remaining)
Линейный дискриминантный анализ (Linear Discriminant Analysis - LDA)bull Для каждого образца объекта или события с известным классом y
рассматривается набор наблюдений x (называемых ещё признаками переменными или измерениями) Набор таких образцов называется обучающей выборкой (или набором обучения обучением) Задачи классификации состоит в том чтобы построить хороший прогноз класса y для всякого так же распределённого объекта (не обязательно содержащегося в обучающей выборке) имея только наблюдения x Основная идея состоит в сравнении распределений для каждого из классов Расстоянием (по Фишеру) между распределениями принято считать отношение межклассовой дисперсии к внутриклассовой
bull Оптимальное байесовское решение - относить точки ко второму классу если отношение правдоподобия ниже некоторого порогового значения T
bull Предполагая что выполнена нормировка
bull Решение записывается в виде неравенства для скалярного произведения
bull Здесь laquoизмерительныйraquo вектор равен
bull с- дискриминантный порог
lda(x grouping prior = proportions tol = 10e-4 method CV = FALSE nu )
formula A formula of the form groups ~ x1 + x2 + That is the response is the grouping factor and the right hand side specifies the (non-factor) discriminators
data Data frame from which variables specified in formula are preferentially to be taken
x (required if no formula is given as the principal argument) a matrix or data frame or Matrix containing the explanatory variables
grouping (required if no formula principal argument is given) a factor specifying the class for each observation
prior the prior probabilities of class membership If unspecified the class proportions for the training set are used If present the probabilities should be specified in the order of the factor levels
tol A tolerance to decide if a matrix is singular it will reject variables and linear combinations of unit-variance variables whose variance is less than tol^2
subset An index vector specifying the cases to be used in the training sample (NOTE If given this argument must be named)
naaction A function to specify the action to be taken if NAs are found The default action is for the procedure to fail An alternative is naomit which leads to rejection of cases with missing values on any required variable (NOTE If given this argument must be named)
method moment for standard estimators of the mean and variance mle for MLEs mve to use covmve or t for robust estimates based on a t distribution
CV If true returns results (classes and posterior probabilities) for leave-one-out cross-validation Note that if the prior is estimated the proportions in the whole dataset are used
nu degrees of freedom for method = t
arguments passed to or from other methods
prior the prior probabilities usedmeans the group meansscaling a matrix which transforms observations to
discriminant functions normalized so that within groups covariance matrix is spherical
svd the singular values which give the ratio of the between- and within-group standard deviations on the linear discriminant variables Their squares are the canonical F-statistics
N The number of observations usedcall The (matched) function call
An object of class lda containing the following components
Метод опорных векторов (Support Vector Machines - SVM)Относится к ML с учителем и использует линейные разделяющие поверхности
Идея алгоритма
bull По обучающей выборке
bull Строится классифицирующая функция
bull Используя гиперплоскость
bull Поиск коэффициентов сводится к максимизации
расстояний от опорных векторов или минимизации
Иллюстрация на простейшем примере
>
Производится вложение обучающей выборки в пространство более высокой размерности Х с помощью нелинейной функции так чтобы обеспечит линейную разделимость в Х
Разделяющая функция тогда имеет вид
Функция называется ядром
Полиномиальное ядро
Радиальная базисная функция
Сигмоид
Линейная неразделимость и использование ядер
Иллюстрация использования ядра для отображения 2D -gt 3D
>
svm((formula data = NULL subset naaction =naomit scale = TRUE))
formulaa symbolic description of the model to be fitdataan optional data frame containing the variables in the model By default the variables are taken from the environment which lsquosvmrsquo is called fromxa data matrix a vector or a sparse matrix (object of class Matrix provided by the Matrix package or of class matrixcsr provided by the SparseM package or of class simple_triplet_matrix provided by the slam package)ya response vector with one label for each rowcomponent of x Can be either a factor (for classification tasks) or a numeric vector (for regression)scaleA logical vector indicating the variables to be scaled If scale is of length 1 the value is recycled as many times as needed Per default data are scaled internally (both x and y variables) to zero mean and unit variance The center and scale values are returned and used for later predictionstypesvm can be used as a classification machine as a regression machine or for novelty detection Depending of whether y is a factor or not the default setting for type is C-classification or eps-regression respectively but may be overwritten by setting an explicit valueValid options areC-classificationnu-classificationone-classification (for novelty detection)eps-regressionnu-regression
Support Vector Machines
s lt- svm( I(factor(class)) ~ x + y data = train cost = 100 gama = 1)
Package lsquodeepnetrsquo February 19 2015 Type Package Title deep learning toolkit in R Version 02 Date 2014-03-20 Author Xiao Rong Maintainer Xiao Rong Description Implement some deep learning architectures and neural network algorithms including BPRBMDBNDeep autoencoder and so on License GPL NeedsCompilation no Repository CRAN DatePublication 2014-03-20 100343
laquoВ 1997 году Deep Blue обыграл в шахматы КаспароваВ 2011 Watson обставил чемпионов JeopardyСможет ли ваш алгоритм в 2013 году отличить Бобика от ПушистикаraquoKaggle Competitions Details
Сегодня уже можно ответить laquoдаraquo mdash десятка лидеров справилась с заданием на 988
Распознавание основано на feature detection и последующем различении комбинаций
Заранее неизвестно какие части картинки могут использоваться как хорошие features В их роли может выступать все что угодно mdash фрагменты изображения форма размер или цвет Feature может не присутствовать на картинке сама а выражаться в параметре полученным каким-то образом из исходных данных
Распознавание рукописных цифр
Еще пример посложнее
Использование нейронной сети с обучениемОбучение такой нейронной сети производится обычно методом обратного распространения ошибки таким образом чтобы минимизировать среднеквадратическую ошибку отклика сети на обучающей выборке Таким образом обучающая выборка содержит пары векторов признаков (входные данные) и эталонных векторов (маркированные данные) (x y)
Сверхвысокая размерность при работе с первичным представлением пикселями
Пиксельное кодирование
Принцип иерархии понятий ndash основа deep learning
bull Все вещи состоят из других маленьких и более элементарных вещей
bull Как извлекать features Гипотеза малоразмерных многообразий
Разреженное (sparse) кодирование
первый уровень иерархии состоит из элементов словаря этого кода которые представляют собой штрихи и границы
Словарь для лиц
Выделение объектов заданного класса
Основные архитектуры Deep Learningbull Deep neural networks (DNN)bull Deep belief networks (DBN)bull Convolutional neural networks (CNN)bull Deep Boltzmann Machines (DBM)bull Stacked (Denoising) Auto-Encodersbull Deep Stacking Networksbull Tensor Deep Stacking Networks (T-DSN)bull Spike-and-Slab RBMs (ssRBMs)bull Compound Hierarchical-Deep Modelsbull Deep Coding Networks (DPCN)bull Deep Kernel Machinesbull Deep Q-Networks (2015 г)
Задача классификации распознавания и подобные являются задачей конструирования функции на множестве входных наборов и со значениями в множестве требуемого вида выходных
bull Норбертом Винером было показано что любая функция может быть сколь угодно точно композицией двух (он использовал функции полином Лагранжа и функцию Лагерра)
bull Соответствует двухслойной нейросетиbull Архитектуры Deep Learning соответствуют представлению
bull Обеспечивают эффективную параметризацию при решении конкретных задач Более сложные функции создаются из большего числа но более эффективно настраиваемых laquoкирпичиковraquo Пример ndash синтез булевых функций Дерево вентилей эффективнее двухслойной схемы
Фактор - графыВсе методы которые расмотрели ndash не DL Даже деревья классификации Все операции в одном входном словаре
DL можно определить по фактор-графу
Например
bull Еще одна сторона DL - нередко использует невыпуклые функции потерьbull Обучение на основе выпуклых функций не зависит от порядка
предъявления данных для обучения Все определяет асимптотика всего train - набора В алгоритмах DL порядок данных в обучающей выборке может иметь значение
bull Многие решения в DL не доказаны математически и являются успешными эвристиками
bull Большой простор для прикладной математики Может рассматриваться как фактор-граф с группами латентных переменных
bull В настоящее время стал основной технологией в распознавании речи (speech recognition) и машинном зрении (computer vision) начал применяться в обработке текстов (natural language processing)
bull Основная идея ndash применение нелинейного отображения входного набора в более высокоразмерное пространство где многие неразделимые композиции становятся разделимыми а затем объединение композиций по семантической близости
Подход разреженного кодирования
Обобщенная архитектура
bull DL сеть может быть собрана каскадированием и использованием обучения с учителем
Здесь используется forward propagation для обучения
Для настройки коэффициентов используется метод fprof для каждого
Требуется знание градиента энергии
Элементы (kl) матрицы Якобиана
Требуется знание градиента энергии 120597119864120597119882119894 = 120597119864120597119883119894120597119865119894(119883119894minus1119882119894)120597119882119894
ሾ1times 119873119908ሿ= ሾ1times 119873119909ሿlowast[119873119909 times 119873119908] Элементы (kl) матрицы Якобиана
Сводится к рекуррентному соотношению для вычисления градиента 120597119864120597119883119894minus1 = 120597119864120597119883119894120597119865119894(119883119894minus1119882119894)120597119883119894minus1
В итоге
Для вычисления градиента может использоваться метод back propagation
В действительности работают любые архитектуры построения функции Нужно конструировать связи и функции блоков
Язык Torch 7 ndash современный инструмент моделирования и имплементации
Machine Learning with Torch7 (httpcodecogbitscomwikidokuphpid=start)
bull These tutorials were originally designed for the IPAM Summer School on Deep Learning more info herebull This wiki provides multiple tutorials with the overall objective of teaching you how to do machine learning
with Torch7bull Torch7 provides a Matlab-like environment for state-of-the-art machine learning algorithms It is easy to use
and provides a very efficient implementation thanks to an easy and fast scripting language (LuaJIT) and an underlying C implementation
bull These tutorials should be readdone in orderbull Tutorial 1 Setup Basics Getting Startedbull Tutorial 2 Supervised Learningbull Tutorial 3 Unsupervised Learningbull Tutorial 4 Graphical Modelsbull Tutorial 5 Creating New Modulesbull Tutorial 6 Using CUDAbull To follow these tutorials and do the exercises you will need to download the associated code which is hosted
on GitHub on this page In this repository each directory corresponds to a tutorial herebull starttxt middot Last modified 20140204 2246 by clement
Torch 7 является расширением Lua
What is LuaLua is a powerful fast lightweight embeddable scripting languageLua combines simple procedural syntax with powerful data description constructs based on associative arrays and extensible semantics Lua is dynamically typed runs by interpreting bytecode for a register-based virtual machine and has automatic memory management with incremental garbage collection making it ideal for configuration scripting and rapid prototyping
Why choose LuaLua is a proven robust languageLua has been used in many industrial applications (eg Adobes Photoshop Lightroom) with an emphasis on embedded systems (eg the Ginga middleware for digital TV in Brazil) and games (eg World of Warcraft and Angry Birds) Lua is currently the leading scripting language in games Lua has a solid reference manual and there are several books about it Several versions of Lua have been released and used in real applications since its creation in 1993 Lua featured in HOPL III the Third ACM SIGPLAN History of Programming Languages Conference in June 2007 Lua won the Front Line Award 2011 from the Game Developers Magazine
Свертка и архитектура 4-х уровневой сверточной сети
Функциональная структура
Примеры успешного применения сверточных сетей
Диагностика эпилепсии по ЭЭГ
Реализация сверточной сетью
Одна из самых больших сверточных сетейbull Krizhevsky Sutskever Hinton 2012bull 650 000 нейронов 832 000 000 синапсов 60 000000 пареметровbull Использовался backprop на GPUbull Обучающая выборка на материалах 20 летbull Купил Google в январе 2013bull В мае 2013 развернул как сервис Photo Tagging Google+
Пример тэгирования
Пример поиска похожих по изображению
Пример поиска в коллекции изображений по текстовому запросу
Пример laquoоблачногоraquo классификатора изображений
Самообучающиеся нейронные сети на основе минимизации функции энергииbull Применима к сетям с обратными связямиbull Конструирование функции энергии должно обеспечивать
laquoконтрастностьraquo разделения
bull Энергетическая функция может Неформально рассматриваться как отрицательный логарифм плотности вероятности
Y 2=(Y1)2
RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцмана
bull Из DBM cтроится Deep Belief Network (DBN)
bull w mdash вес между нейронами
bull b mdash смещение нейрона
bull s mdash состояние нейрона
Алгоритм обучения Contrastive Divergence (CD)bull w_ij mdash веc между i-ым нейроном Вероятность пар может быть представлена как
bull a_i mdash смещение видимого нейрона
bull b_j mdash смещение скрытого нейрона
bull v_i mdash состояние видимого нейрона
bull h_j mdash состояние скрытого нейрона Полная вероятность состояния видимых нейронов
Основные уравнения адаптации
Алгоритм Хинтона - Contrastive Divergence (CD-k)
1 состояние видимых нейронов приравнивается к входному образу2 выводятся вероятности состояний скрытого слоя3 каждому нейрону скрытого слоя ставится в соответствие состояние laquo1raquo с вероятностью равной его текущему состоянию4 выводятся вероятности видимого слоя на основании скрытого5 если текущая итерация меньше k то возврат к шагу 26 выводятся вероятности состояний скрытого слоя
darch Package for deep architectures and Restricted-Bolzmann-MachinesThe darch package is build on the basis of the code from G E Hinton and R R Salakhutdinov (available under Matlab Code for deep belief nets last visit 01082013) This package is for generating neural networks with many layers (deep architectures) and train them with the method introduced by the publications A fast learning algorithm for deep belief nets (G E Hinton S Osindero Y W Teh) and Reducing the dimensionality of data with neural networks (G E Hinton R R Salakhutdinov) This method includes a pre training with the contrastive divergence method publishing by GE Hinton (2002) and a fine tuning with common known training algorithms like backpropagation or conjugate gradient
bull Version 091bull Imports futilelogger ff methodsbull Published 2014-03-16bull Author Martin Dreesbull Maintainer Martin Drees ltmdrees at studfh-dortmunddegtbull License GPL-2bull URL httpgithubcommaddin79darchbull NeedsCompilation nobull Materials READMEbull CRAN checks darch results
Связь плотности вероятности и энергии
Используется распределение Гиббса
Задача обучения с точки минимизации энергии сети
bull Сконструировать функцию энергии с малыми значениями на обучающей выборке и с большими значениями всюду вне этого множества
bull Первое несложно а второе представляет задачу процесса обучения
Интуитивные соображения
Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decomposition LISTA ndashметоды использующие разреженные коды
Латентная переменная Z =argmin_z Distance[Decoder(Z)Y]+FactorB(Z)MAPminimaize sum of factors
Автоэнкодер (auto encoder) Автоэнкодер представляет собой алгоритм обучения без учителя который использует нейронную сеть и метод обратного распространения ошибки для того чтобы добиться того что входной вектор признаков вызывал отклик сети равный входному вектору те y = x Автоэнкодер пытается построить функцию h(x) = x
Архитекттура ICA моделей
Итеративные алгоритмы с оптимальным разреженным кодированием ISTAFISTA
Самоорганизация данных методами Deep Learning
>
Знакомство с пакетом deepnet
Назначение
Составdbndnntrain - обучение сети с архитектурой DBN (deep belief network)loadmnist - формирование данных из файлов MNISTnnpredict - предсказание новых выборок на обученной нейронной сетиnntest ndash тестирование обученной нейронной сети с возвращением значения ошибкиnntrain ndash обучение одностлойной или многослойной нейронной сети методом backproprbmdown ndash генерирование видимого вектора для скрытых состояний сети RBMrbmtrain ndash обучение сети RBMrbmup ndash извлечение скрытых состояний RBM по известным видимым состояниямsaednntrain ndash обучение нейронной сети с архитектурой stacked autoencoder
Прогнозирование (классификация) нейронной сетью с архитектурой stacked auto encoder
Argumentsbull x matrix of x values for examplesbull y vector or matrix of target values for examplesbull hidden vector for number of units of hidden layersDefault is c(10)bull activationfun activation function of hidden unitCan be sigmlinear or tanhDefault isbull sigm for logistic functionbull learningrate learning rate for gradient descent Default is 08bull momentum momentum for gradient descent Default is 05 bull learningrate_scalebull learning rate will be mutiplied by this scale after every iteration Default is 1 bull numepochs number of iteration for samples Default is 3bull batchsize size of mini-batch Default is 100bull output function of output unit can be sigmlinear or softmax Default is sigmbull sae_output function of autoencoder output unit can be sigmlinear or softmax Defaultbull is linearbull hidden_dropout drop out fraction for hidden layer Default is 0bull visible_dropoutbull drop out fraction for input layer Default is 0
Что такое MNISTbull Смешанный набор данных Национального института стандартов и
технологий (mixed National Institute of Standards and Technology MNIST) был создан исследователями IR в качестве эталона для сравнения различных алгоритмов IR
bull Набор данных состоит всего из 70 000 изображений 60 000 обучающих (используемых для создания модели IR) и 10 000 тестовых (применяемых для оценки точности модели) Каждое изображение MNIST mdash это оцифрованная картинка одной цифры написанной от руки Каждое изображение имеет размер 28 times 28 пикселей Каждое значение пикселя лежит в диапазоне от 0 (представляет белый цвет) до 255 (представляет черный цвет) Промежуточные значения отражают оттенки серого
httpyannlecuncomexdbmnistобучающие и тестовые данные хранятся в двух файлах а не в одном Один файл содержит значения пикселей для изображений а другой mdash метки изображений (0ndash9) Каждый из четырех файлов также содержит заголовочную информацию и все они хранятся в двоичном формате сжатом в формате gziptrain-images-idx3-ubytegz training set images (9912422 bytes)
train-labels-idx1-ubytegz training set labels (28881 bytes)
t10k-images-idx3-ubytegz test set images (1648877 bytes)
t10k-labels-idx1-ubytegz test set labels (4542 bytes)
bull Каждая строка файла представляет собой имидж размера 28 times 28 вектором длины 784 каждый признак ndash значение пиксела в черно-белой шале Первый столбец содержит метку цифры 0ndash9 следующие 2828 столбцов представляют целый имидж и так далее Пример первой строки
Визуализация
bull plotmnist()bull mnistbull paramsbull train$n number of train samplesbull train$x pix of every train sample imagebull train$y label of every train sample imagebull train$yy one-of-c vector of label of train sample imagebull test$n number of test samplesbull test$x pix of every test sample imagebull test$y label of every test sample imagebull test$yy one-of-c vector of label of test sample image
plotmnist()
Распознавание рукописных цифр в deepnet
another way to download the MNIST datasetmnist downloadmnist(range=c(01)global=FALSE)look at MNIST datamnist$train$xmnist$train$ymnist$test$xmnist$test$ytrain of the sae neural networkdnnlt-saednntrain(mnist$train$xmnist$train$yhidden=c(55))test of the sae neural networknntest(dnnmnist$test$xmnist$test$yt=05)
End of slides part 2 (Part 3 - NLP remaining)
Vladimirvkrylovgmailcom
Основы предиктивной аналитики Часть вторая
Применение методов Machine Learning к решению задач аналитики
Дмитрий Ветров кандидат физико-математических наук ру
Методы обучающихся машин для аналитики которые мы рассмотрим
Сначала нужно загрузить несколько пакетов (packages) для поддер
Данные для анализа
Скрипт для генерации
Данные которые мы будем использовать для демо состоят из смес
Так выглядят визуализированные данные сгенерированные скриптом
Разделение данных на обучающие и проверочные является важным эт
K-means алгоритм на пальцах
Обучающаяся машина без учителя Алгоритм K-means
Slide 13
Slide 14
Здесь мы используем заранее известный факт что необходимо кла
Еще одна иллюстрация работы алгоритма K-means
Обучающаяся машина без учителя Алгоритм KNN (Nearest Neighbor)
Как работает алгоритм KNN
knn(train test cl k = 1 l = 0 prob = FALSE useall = TRUE
Slide 20
Результаты кластеризации и зависимость ошибки от числа кластеро
Recursive PartitioningRegression Tree
Метод RP реализует обучение машины строить дерево решений по об
Recursive PartitioningRegression Tree (2)
rpart(formula data weights subset naaction = narpart met
Slide 26
Recursive PartitioningRegression Tree example
Анализ по главным компонентам (Principal Component Analysis PC
bull Оптимальное байесовское решение - относить точки ко второму классу если отношение правдоподобия ниже некоторого порогового значения T
bull Предполагая что выполнена нормировка
bull Решение записывается в виде неравенства для скалярного произведения
bull Здесь laquoизмерительныйraquo вектор равен
bull с- дискриминантный порог
lda(x grouping prior = proportions tol = 10e-4 method CV = FALSE nu )
formula A formula of the form groups ~ x1 + x2 + That is the response is the grouping factor and the right hand side specifies the (non-factor) discriminators
data Data frame from which variables specified in formula are preferentially to be taken
x (required if no formula is given as the principal argument) a matrix or data frame or Matrix containing the explanatory variables
grouping (required if no formula principal argument is given) a factor specifying the class for each observation
prior the prior probabilities of class membership If unspecified the class proportions for the training set are used If present the probabilities should be specified in the order of the factor levels
tol A tolerance to decide if a matrix is singular it will reject variables and linear combinations of unit-variance variables whose variance is less than tol^2
subset An index vector specifying the cases to be used in the training sample (NOTE If given this argument must be named)
naaction A function to specify the action to be taken if NAs are found The default action is for the procedure to fail An alternative is naomit which leads to rejection of cases with missing values on any required variable (NOTE If given this argument must be named)
method moment for standard estimators of the mean and variance mle for MLEs mve to use covmve or t for robust estimates based on a t distribution
CV If true returns results (classes and posterior probabilities) for leave-one-out cross-validation Note that if the prior is estimated the proportions in the whole dataset are used
nu degrees of freedom for method = t
arguments passed to or from other methods
prior the prior probabilities usedmeans the group meansscaling a matrix which transforms observations to
discriminant functions normalized so that within groups covariance matrix is spherical
svd the singular values which give the ratio of the between- and within-group standard deviations on the linear discriminant variables Their squares are the canonical F-statistics
N The number of observations usedcall The (matched) function call
An object of class lda containing the following components
Метод опорных векторов (Support Vector Machines - SVM)Относится к ML с учителем и использует линейные разделяющие поверхности
Идея алгоритма
bull По обучающей выборке
bull Строится классифицирующая функция
bull Используя гиперплоскость
bull Поиск коэффициентов сводится к максимизации
расстояний от опорных векторов или минимизации
Иллюстрация на простейшем примере
>
Производится вложение обучающей выборки в пространство более высокой размерности Х с помощью нелинейной функции так чтобы обеспечит линейную разделимость в Х
Разделяющая функция тогда имеет вид
Функция называется ядром
Полиномиальное ядро
Радиальная базисная функция
Сигмоид
Линейная неразделимость и использование ядер
Иллюстрация использования ядра для отображения 2D -gt 3D
>
svm((formula data = NULL subset naaction =naomit scale = TRUE))
formulaa symbolic description of the model to be fitdataan optional data frame containing the variables in the model By default the variables are taken from the environment which lsquosvmrsquo is called fromxa data matrix a vector or a sparse matrix (object of class Matrix provided by the Matrix package or of class matrixcsr provided by the SparseM package or of class simple_triplet_matrix provided by the slam package)ya response vector with one label for each rowcomponent of x Can be either a factor (for classification tasks) or a numeric vector (for regression)scaleA logical vector indicating the variables to be scaled If scale is of length 1 the value is recycled as many times as needed Per default data are scaled internally (both x and y variables) to zero mean and unit variance The center and scale values are returned and used for later predictionstypesvm can be used as a classification machine as a regression machine or for novelty detection Depending of whether y is a factor or not the default setting for type is C-classification or eps-regression respectively but may be overwritten by setting an explicit valueValid options areC-classificationnu-classificationone-classification (for novelty detection)eps-regressionnu-regression
Support Vector Machines
s lt- svm( I(factor(class)) ~ x + y data = train cost = 100 gama = 1)
Package lsquodeepnetrsquo February 19 2015 Type Package Title deep learning toolkit in R Version 02 Date 2014-03-20 Author Xiao Rong Maintainer Xiao Rong Description Implement some deep learning architectures and neural network algorithms including BPRBMDBNDeep autoencoder and so on License GPL NeedsCompilation no Repository CRAN DatePublication 2014-03-20 100343
laquoВ 1997 году Deep Blue обыграл в шахматы КаспароваВ 2011 Watson обставил чемпионов JeopardyСможет ли ваш алгоритм в 2013 году отличить Бобика от ПушистикаraquoKaggle Competitions Details
Сегодня уже можно ответить laquoдаraquo mdash десятка лидеров справилась с заданием на 988
Распознавание основано на feature detection и последующем различении комбинаций
Заранее неизвестно какие части картинки могут использоваться как хорошие features В их роли может выступать все что угодно mdash фрагменты изображения форма размер или цвет Feature может не присутствовать на картинке сама а выражаться в параметре полученным каким-то образом из исходных данных
Распознавание рукописных цифр
Еще пример посложнее
Использование нейронной сети с обучениемОбучение такой нейронной сети производится обычно методом обратного распространения ошибки таким образом чтобы минимизировать среднеквадратическую ошибку отклика сети на обучающей выборке Таким образом обучающая выборка содержит пары векторов признаков (входные данные) и эталонных векторов (маркированные данные) (x y)
Сверхвысокая размерность при работе с первичным представлением пикселями
Пиксельное кодирование
Принцип иерархии понятий ndash основа deep learning
bull Все вещи состоят из других маленьких и более элементарных вещей
bull Как извлекать features Гипотеза малоразмерных многообразий
Разреженное (sparse) кодирование
первый уровень иерархии состоит из элементов словаря этого кода которые представляют собой штрихи и границы
Словарь для лиц
Выделение объектов заданного класса
Основные архитектуры Deep Learningbull Deep neural networks (DNN)bull Deep belief networks (DBN)bull Convolutional neural networks (CNN)bull Deep Boltzmann Machines (DBM)bull Stacked (Denoising) Auto-Encodersbull Deep Stacking Networksbull Tensor Deep Stacking Networks (T-DSN)bull Spike-and-Slab RBMs (ssRBMs)bull Compound Hierarchical-Deep Modelsbull Deep Coding Networks (DPCN)bull Deep Kernel Machinesbull Deep Q-Networks (2015 г)
Задача классификации распознавания и подобные являются задачей конструирования функции на множестве входных наборов и со значениями в множестве требуемого вида выходных
bull Норбертом Винером было показано что любая функция может быть сколь угодно точно композицией двух (он использовал функции полином Лагранжа и функцию Лагерра)
bull Соответствует двухслойной нейросетиbull Архитектуры Deep Learning соответствуют представлению
bull Обеспечивают эффективную параметризацию при решении конкретных задач Более сложные функции создаются из большего числа но более эффективно настраиваемых laquoкирпичиковraquo Пример ndash синтез булевых функций Дерево вентилей эффективнее двухслойной схемы
Фактор - графыВсе методы которые расмотрели ndash не DL Даже деревья классификации Все операции в одном входном словаре
DL можно определить по фактор-графу
Например
bull Еще одна сторона DL - нередко использует невыпуклые функции потерьbull Обучение на основе выпуклых функций не зависит от порядка
предъявления данных для обучения Все определяет асимптотика всего train - набора В алгоритмах DL порядок данных в обучающей выборке может иметь значение
bull Многие решения в DL не доказаны математически и являются успешными эвристиками
bull Большой простор для прикладной математики Может рассматриваться как фактор-граф с группами латентных переменных
bull В настоящее время стал основной технологией в распознавании речи (speech recognition) и машинном зрении (computer vision) начал применяться в обработке текстов (natural language processing)
bull Основная идея ndash применение нелинейного отображения входного набора в более высокоразмерное пространство где многие неразделимые композиции становятся разделимыми а затем объединение композиций по семантической близости
Подход разреженного кодирования
Обобщенная архитектура
bull DL сеть может быть собрана каскадированием и использованием обучения с учителем
Здесь используется forward propagation для обучения
Для настройки коэффициентов используется метод fprof для каждого
Требуется знание градиента энергии
Элементы (kl) матрицы Якобиана
Требуется знание градиента энергии 120597119864120597119882119894 = 120597119864120597119883119894120597119865119894(119883119894minus1119882119894)120597119882119894
ሾ1times 119873119908ሿ= ሾ1times 119873119909ሿlowast[119873119909 times 119873119908] Элементы (kl) матрицы Якобиана
Сводится к рекуррентному соотношению для вычисления градиента 120597119864120597119883119894minus1 = 120597119864120597119883119894120597119865119894(119883119894minus1119882119894)120597119883119894minus1
В итоге
Для вычисления градиента может использоваться метод back propagation
В действительности работают любые архитектуры построения функции Нужно конструировать связи и функции блоков
Язык Torch 7 ndash современный инструмент моделирования и имплементации
Machine Learning with Torch7 (httpcodecogbitscomwikidokuphpid=start)
bull These tutorials were originally designed for the IPAM Summer School on Deep Learning more info herebull This wiki provides multiple tutorials with the overall objective of teaching you how to do machine learning
with Torch7bull Torch7 provides a Matlab-like environment for state-of-the-art machine learning algorithms It is easy to use
and provides a very efficient implementation thanks to an easy and fast scripting language (LuaJIT) and an underlying C implementation
bull These tutorials should be readdone in orderbull Tutorial 1 Setup Basics Getting Startedbull Tutorial 2 Supervised Learningbull Tutorial 3 Unsupervised Learningbull Tutorial 4 Graphical Modelsbull Tutorial 5 Creating New Modulesbull Tutorial 6 Using CUDAbull To follow these tutorials and do the exercises you will need to download the associated code which is hosted
on GitHub on this page In this repository each directory corresponds to a tutorial herebull starttxt middot Last modified 20140204 2246 by clement
Torch 7 является расширением Lua
What is LuaLua is a powerful fast lightweight embeddable scripting languageLua combines simple procedural syntax with powerful data description constructs based on associative arrays and extensible semantics Lua is dynamically typed runs by interpreting bytecode for a register-based virtual machine and has automatic memory management with incremental garbage collection making it ideal for configuration scripting and rapid prototyping
Why choose LuaLua is a proven robust languageLua has been used in many industrial applications (eg Adobes Photoshop Lightroom) with an emphasis on embedded systems (eg the Ginga middleware for digital TV in Brazil) and games (eg World of Warcraft and Angry Birds) Lua is currently the leading scripting language in games Lua has a solid reference manual and there are several books about it Several versions of Lua have been released and used in real applications since its creation in 1993 Lua featured in HOPL III the Third ACM SIGPLAN History of Programming Languages Conference in June 2007 Lua won the Front Line Award 2011 from the Game Developers Magazine
Свертка и архитектура 4-х уровневой сверточной сети
Функциональная структура
Примеры успешного применения сверточных сетей
Диагностика эпилепсии по ЭЭГ
Реализация сверточной сетью
Одна из самых больших сверточных сетейbull Krizhevsky Sutskever Hinton 2012bull 650 000 нейронов 832 000 000 синапсов 60 000000 пареметровbull Использовался backprop на GPUbull Обучающая выборка на материалах 20 летbull Купил Google в январе 2013bull В мае 2013 развернул как сервис Photo Tagging Google+
Пример тэгирования
Пример поиска похожих по изображению
Пример поиска в коллекции изображений по текстовому запросу
Пример laquoоблачногоraquo классификатора изображений
Самообучающиеся нейронные сети на основе минимизации функции энергииbull Применима к сетям с обратными связямиbull Конструирование функции энергии должно обеспечивать
laquoконтрастностьraquo разделения
bull Энергетическая функция может Неформально рассматриваться как отрицательный логарифм плотности вероятности
Y 2=(Y1)2
RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцмана
bull Из DBM cтроится Deep Belief Network (DBN)
bull w mdash вес между нейронами
bull b mdash смещение нейрона
bull s mdash состояние нейрона
Алгоритм обучения Contrastive Divergence (CD)bull w_ij mdash веc между i-ым нейроном Вероятность пар может быть представлена как
bull a_i mdash смещение видимого нейрона
bull b_j mdash смещение скрытого нейрона
bull v_i mdash состояние видимого нейрона
bull h_j mdash состояние скрытого нейрона Полная вероятность состояния видимых нейронов
Основные уравнения адаптации
Алгоритм Хинтона - Contrastive Divergence (CD-k)
1 состояние видимых нейронов приравнивается к входному образу2 выводятся вероятности состояний скрытого слоя3 каждому нейрону скрытого слоя ставится в соответствие состояние laquo1raquo с вероятностью равной его текущему состоянию4 выводятся вероятности видимого слоя на основании скрытого5 если текущая итерация меньше k то возврат к шагу 26 выводятся вероятности состояний скрытого слоя
darch Package for deep architectures and Restricted-Bolzmann-MachinesThe darch package is build on the basis of the code from G E Hinton and R R Salakhutdinov (available under Matlab Code for deep belief nets last visit 01082013) This package is for generating neural networks with many layers (deep architectures) and train them with the method introduced by the publications A fast learning algorithm for deep belief nets (G E Hinton S Osindero Y W Teh) and Reducing the dimensionality of data with neural networks (G E Hinton R R Salakhutdinov) This method includes a pre training with the contrastive divergence method publishing by GE Hinton (2002) and a fine tuning with common known training algorithms like backpropagation or conjugate gradient
bull Version 091bull Imports futilelogger ff methodsbull Published 2014-03-16bull Author Martin Dreesbull Maintainer Martin Drees ltmdrees at studfh-dortmunddegtbull License GPL-2bull URL httpgithubcommaddin79darchbull NeedsCompilation nobull Materials READMEbull CRAN checks darch results
Связь плотности вероятности и энергии
Используется распределение Гиббса
Задача обучения с точки минимизации энергии сети
bull Сконструировать функцию энергии с малыми значениями на обучающей выборке и с большими значениями всюду вне этого множества
bull Первое несложно а второе представляет задачу процесса обучения
Интуитивные соображения
Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decomposition LISTA ndashметоды использующие разреженные коды
Латентная переменная Z =argmin_z Distance[Decoder(Z)Y]+FactorB(Z)MAPminimaize sum of factors
Автоэнкодер (auto encoder) Автоэнкодер представляет собой алгоритм обучения без учителя который использует нейронную сеть и метод обратного распространения ошибки для того чтобы добиться того что входной вектор признаков вызывал отклик сети равный входному вектору те y = x Автоэнкодер пытается построить функцию h(x) = x
Архитекттура ICA моделей
Итеративные алгоритмы с оптимальным разреженным кодированием ISTAFISTA
Самоорганизация данных методами Deep Learning
>
Знакомство с пакетом deepnet
Назначение
Составdbndnntrain - обучение сети с архитектурой DBN (deep belief network)loadmnist - формирование данных из файлов MNISTnnpredict - предсказание новых выборок на обученной нейронной сетиnntest ndash тестирование обученной нейронной сети с возвращением значения ошибкиnntrain ndash обучение одностлойной или многослойной нейронной сети методом backproprbmdown ndash генерирование видимого вектора для скрытых состояний сети RBMrbmtrain ndash обучение сети RBMrbmup ndash извлечение скрытых состояний RBM по известным видимым состояниямsaednntrain ndash обучение нейронной сети с архитектурой stacked autoencoder
Прогнозирование (классификация) нейронной сетью с архитектурой stacked auto encoder
Argumentsbull x matrix of x values for examplesbull y vector or matrix of target values for examplesbull hidden vector for number of units of hidden layersDefault is c(10)bull activationfun activation function of hidden unitCan be sigmlinear or tanhDefault isbull sigm for logistic functionbull learningrate learning rate for gradient descent Default is 08bull momentum momentum for gradient descent Default is 05 bull learningrate_scalebull learning rate will be mutiplied by this scale after every iteration Default is 1 bull numepochs number of iteration for samples Default is 3bull batchsize size of mini-batch Default is 100bull output function of output unit can be sigmlinear or softmax Default is sigmbull sae_output function of autoencoder output unit can be sigmlinear or softmax Defaultbull is linearbull hidden_dropout drop out fraction for hidden layer Default is 0bull visible_dropoutbull drop out fraction for input layer Default is 0
Что такое MNISTbull Смешанный набор данных Национального института стандартов и
технологий (mixed National Institute of Standards and Technology MNIST) был создан исследователями IR в качестве эталона для сравнения различных алгоритмов IR
bull Набор данных состоит всего из 70 000 изображений 60 000 обучающих (используемых для создания модели IR) и 10 000 тестовых (применяемых для оценки точности модели) Каждое изображение MNIST mdash это оцифрованная картинка одной цифры написанной от руки Каждое изображение имеет размер 28 times 28 пикселей Каждое значение пикселя лежит в диапазоне от 0 (представляет белый цвет) до 255 (представляет черный цвет) Промежуточные значения отражают оттенки серого
httpyannlecuncomexdbmnistобучающие и тестовые данные хранятся в двух файлах а не в одном Один файл содержит значения пикселей для изображений а другой mdash метки изображений (0ndash9) Каждый из четырех файлов также содержит заголовочную информацию и все они хранятся в двоичном формате сжатом в формате gziptrain-images-idx3-ubytegz training set images (9912422 bytes)
train-labels-idx1-ubytegz training set labels (28881 bytes)
t10k-images-idx3-ubytegz test set images (1648877 bytes)
t10k-labels-idx1-ubytegz test set labels (4542 bytes)
bull Каждая строка файла представляет собой имидж размера 28 times 28 вектором длины 784 каждый признак ndash значение пиксела в черно-белой шале Первый столбец содержит метку цифры 0ndash9 следующие 2828 столбцов представляют целый имидж и так далее Пример первой строки
Визуализация
bull plotmnist()bull mnistbull paramsbull train$n number of train samplesbull train$x pix of every train sample imagebull train$y label of every train sample imagebull train$yy one-of-c vector of label of train sample imagebull test$n number of test samplesbull test$x pix of every test sample imagebull test$y label of every test sample imagebull test$yy one-of-c vector of label of test sample image
plotmnist()
Распознавание рукописных цифр в deepnet
another way to download the MNIST datasetmnist downloadmnist(range=c(01)global=FALSE)look at MNIST datamnist$train$xmnist$train$ymnist$test$xmnist$test$ytrain of the sae neural networkdnnlt-saednntrain(mnist$train$xmnist$train$yhidden=c(55))test of the sae neural networknntest(dnnmnist$test$xmnist$test$yt=05)
End of slides part 2 (Part 3 - NLP remaining)
Vladimirvkrylovgmailcom
Основы предиктивной аналитики Часть вторая
Применение методов Machine Learning к решению задач аналитики
Дмитрий Ветров кандидат физико-математических наук ру
Методы обучающихся машин для аналитики которые мы рассмотрим
Сначала нужно загрузить несколько пакетов (packages) для поддер
Данные для анализа
Скрипт для генерации
Данные которые мы будем использовать для демо состоят из смес
Так выглядят визуализированные данные сгенерированные скриптом
Разделение данных на обучающие и проверочные является важным эт
K-means алгоритм на пальцах
Обучающаяся машина без учителя Алгоритм K-means
Slide 13
Slide 14
Здесь мы используем заранее известный факт что необходимо кла
Еще одна иллюстрация работы алгоритма K-means
Обучающаяся машина без учителя Алгоритм KNN (Nearest Neighbor)
Как работает алгоритм KNN
knn(train test cl k = 1 l = 0 prob = FALSE useall = TRUE
Slide 20
Результаты кластеризации и зависимость ошибки от числа кластеро
Recursive PartitioningRegression Tree
Метод RP реализует обучение машины строить дерево решений по об
Recursive PartitioningRegression Tree (2)
rpart(formula data weights subset naaction = narpart met
Slide 26
Recursive PartitioningRegression Tree example
Анализ по главным компонентам (Principal Component Analysis PC
Итеративные алгоритмы с оптимальным разреженным кодированием IS
Самоорганизация данных методами Deep Learning
Знакомство с пакетом deepnet
Прогнозирование (классификация) нейронной сетью с архитектурой
Arguments
Архитектура сети SAE
Архитектура с 5Х4 hidden 3 outs
Example
Анализ обучающего набора данных
Параметры SAE сети
Коэффициенты связей
Предсказание обученной сетью
Сравнение обучающей и тестовой выборки
plot3d(xy)
Работаем с пакетом MNIST
httpyannlecuncomexdbmnist
Подготовка к обработке
Slide 118
Визуализация
plotmnist()
Распознавание рукописных цифр в deepnet
End of slides part 2 (Part 3 - NLP remaining)
lda(x grouping prior = proportions tol = 10e-4 method CV = FALSE nu )
formula A formula of the form groups ~ x1 + x2 + That is the response is the grouping factor and the right hand side specifies the (non-factor) discriminators
data Data frame from which variables specified in formula are preferentially to be taken
x (required if no formula is given as the principal argument) a matrix or data frame or Matrix containing the explanatory variables
grouping (required if no formula principal argument is given) a factor specifying the class for each observation
prior the prior probabilities of class membership If unspecified the class proportions for the training set are used If present the probabilities should be specified in the order of the factor levels
tol A tolerance to decide if a matrix is singular it will reject variables and linear combinations of unit-variance variables whose variance is less than tol^2
subset An index vector specifying the cases to be used in the training sample (NOTE If given this argument must be named)
naaction A function to specify the action to be taken if NAs are found The default action is for the procedure to fail An alternative is naomit which leads to rejection of cases with missing values on any required variable (NOTE If given this argument must be named)
method moment for standard estimators of the mean and variance mle for MLEs mve to use covmve or t for robust estimates based on a t distribution
CV If true returns results (classes and posterior probabilities) for leave-one-out cross-validation Note that if the prior is estimated the proportions in the whole dataset are used
nu degrees of freedom for method = t
arguments passed to or from other methods
prior the prior probabilities usedmeans the group meansscaling a matrix which transforms observations to
discriminant functions normalized so that within groups covariance matrix is spherical
svd the singular values which give the ratio of the between- and within-group standard deviations on the linear discriminant variables Their squares are the canonical F-statistics
N The number of observations usedcall The (matched) function call
An object of class lda containing the following components
Метод опорных векторов (Support Vector Machines - SVM)Относится к ML с учителем и использует линейные разделяющие поверхности
Идея алгоритма
bull По обучающей выборке
bull Строится классифицирующая функция
bull Используя гиперплоскость
bull Поиск коэффициентов сводится к максимизации
расстояний от опорных векторов или минимизации
Иллюстрация на простейшем примере
>
Производится вложение обучающей выборки в пространство более высокой размерности Х с помощью нелинейной функции так чтобы обеспечит линейную разделимость в Х
Разделяющая функция тогда имеет вид
Функция называется ядром
Полиномиальное ядро
Радиальная базисная функция
Сигмоид
Линейная неразделимость и использование ядер
Иллюстрация использования ядра для отображения 2D -gt 3D
>
svm((formula data = NULL subset naaction =naomit scale = TRUE))
formulaa symbolic description of the model to be fitdataan optional data frame containing the variables in the model By default the variables are taken from the environment which lsquosvmrsquo is called fromxa data matrix a vector or a sparse matrix (object of class Matrix provided by the Matrix package or of class matrixcsr provided by the SparseM package or of class simple_triplet_matrix provided by the slam package)ya response vector with one label for each rowcomponent of x Can be either a factor (for classification tasks) or a numeric vector (for regression)scaleA logical vector indicating the variables to be scaled If scale is of length 1 the value is recycled as many times as needed Per default data are scaled internally (both x and y variables) to zero mean and unit variance The center and scale values are returned and used for later predictionstypesvm can be used as a classification machine as a regression machine or for novelty detection Depending of whether y is a factor or not the default setting for type is C-classification or eps-regression respectively but may be overwritten by setting an explicit valueValid options areC-classificationnu-classificationone-classification (for novelty detection)eps-regressionnu-regression
Support Vector Machines
s lt- svm( I(factor(class)) ~ x + y data = train cost = 100 gama = 1)
Package lsquodeepnetrsquo February 19 2015 Type Package Title deep learning toolkit in R Version 02 Date 2014-03-20 Author Xiao Rong Maintainer Xiao Rong Description Implement some deep learning architectures and neural network algorithms including BPRBMDBNDeep autoencoder and so on License GPL NeedsCompilation no Repository CRAN DatePublication 2014-03-20 100343
laquoВ 1997 году Deep Blue обыграл в шахматы КаспароваВ 2011 Watson обставил чемпионов JeopardyСможет ли ваш алгоритм в 2013 году отличить Бобика от ПушистикаraquoKaggle Competitions Details
Сегодня уже можно ответить laquoдаraquo mdash десятка лидеров справилась с заданием на 988
Распознавание основано на feature detection и последующем различении комбинаций
Заранее неизвестно какие части картинки могут использоваться как хорошие features В их роли может выступать все что угодно mdash фрагменты изображения форма размер или цвет Feature может не присутствовать на картинке сама а выражаться в параметре полученным каким-то образом из исходных данных
Распознавание рукописных цифр
Еще пример посложнее
Использование нейронной сети с обучениемОбучение такой нейронной сети производится обычно методом обратного распространения ошибки таким образом чтобы минимизировать среднеквадратическую ошибку отклика сети на обучающей выборке Таким образом обучающая выборка содержит пары векторов признаков (входные данные) и эталонных векторов (маркированные данные) (x y)
Сверхвысокая размерность при работе с первичным представлением пикселями
Пиксельное кодирование
Принцип иерархии понятий ndash основа deep learning
bull Все вещи состоят из других маленьких и более элементарных вещей
bull Как извлекать features Гипотеза малоразмерных многообразий
Разреженное (sparse) кодирование
первый уровень иерархии состоит из элементов словаря этого кода которые представляют собой штрихи и границы
Словарь для лиц
Выделение объектов заданного класса
Основные архитектуры Deep Learningbull Deep neural networks (DNN)bull Deep belief networks (DBN)bull Convolutional neural networks (CNN)bull Deep Boltzmann Machines (DBM)bull Stacked (Denoising) Auto-Encodersbull Deep Stacking Networksbull Tensor Deep Stacking Networks (T-DSN)bull Spike-and-Slab RBMs (ssRBMs)bull Compound Hierarchical-Deep Modelsbull Deep Coding Networks (DPCN)bull Deep Kernel Machinesbull Deep Q-Networks (2015 г)
Задача классификации распознавания и подобные являются задачей конструирования функции на множестве входных наборов и со значениями в множестве требуемого вида выходных
bull Норбертом Винером было показано что любая функция может быть сколь угодно точно композицией двух (он использовал функции полином Лагранжа и функцию Лагерра)
bull Соответствует двухслойной нейросетиbull Архитектуры Deep Learning соответствуют представлению
bull Обеспечивают эффективную параметризацию при решении конкретных задач Более сложные функции создаются из большего числа но более эффективно настраиваемых laquoкирпичиковraquo Пример ndash синтез булевых функций Дерево вентилей эффективнее двухслойной схемы
Фактор - графыВсе методы которые расмотрели ndash не DL Даже деревья классификации Все операции в одном входном словаре
DL можно определить по фактор-графу
Например
bull Еще одна сторона DL - нередко использует невыпуклые функции потерьbull Обучение на основе выпуклых функций не зависит от порядка
предъявления данных для обучения Все определяет асимптотика всего train - набора В алгоритмах DL порядок данных в обучающей выборке может иметь значение
bull Многие решения в DL не доказаны математически и являются успешными эвристиками
bull Большой простор для прикладной математики Может рассматриваться как фактор-граф с группами латентных переменных
bull В настоящее время стал основной технологией в распознавании речи (speech recognition) и машинном зрении (computer vision) начал применяться в обработке текстов (natural language processing)
bull Основная идея ndash применение нелинейного отображения входного набора в более высокоразмерное пространство где многие неразделимые композиции становятся разделимыми а затем объединение композиций по семантической близости
Подход разреженного кодирования
Обобщенная архитектура
bull DL сеть может быть собрана каскадированием и использованием обучения с учителем
Здесь используется forward propagation для обучения
Для настройки коэффициентов используется метод fprof для каждого
Требуется знание градиента энергии
Элементы (kl) матрицы Якобиана
Требуется знание градиента энергии 120597119864120597119882119894 = 120597119864120597119883119894120597119865119894(119883119894minus1119882119894)120597119882119894
ሾ1times 119873119908ሿ= ሾ1times 119873119909ሿlowast[119873119909 times 119873119908] Элементы (kl) матрицы Якобиана
Сводится к рекуррентному соотношению для вычисления градиента 120597119864120597119883119894minus1 = 120597119864120597119883119894120597119865119894(119883119894minus1119882119894)120597119883119894minus1
В итоге
Для вычисления градиента может использоваться метод back propagation
В действительности работают любые архитектуры построения функции Нужно конструировать связи и функции блоков
Язык Torch 7 ndash современный инструмент моделирования и имплементации
Machine Learning with Torch7 (httpcodecogbitscomwikidokuphpid=start)
bull These tutorials were originally designed for the IPAM Summer School on Deep Learning more info herebull This wiki provides multiple tutorials with the overall objective of teaching you how to do machine learning
with Torch7bull Torch7 provides a Matlab-like environment for state-of-the-art machine learning algorithms It is easy to use
and provides a very efficient implementation thanks to an easy and fast scripting language (LuaJIT) and an underlying C implementation
bull These tutorials should be readdone in orderbull Tutorial 1 Setup Basics Getting Startedbull Tutorial 2 Supervised Learningbull Tutorial 3 Unsupervised Learningbull Tutorial 4 Graphical Modelsbull Tutorial 5 Creating New Modulesbull Tutorial 6 Using CUDAbull To follow these tutorials and do the exercises you will need to download the associated code which is hosted
on GitHub on this page In this repository each directory corresponds to a tutorial herebull starttxt middot Last modified 20140204 2246 by clement
Torch 7 является расширением Lua
What is LuaLua is a powerful fast lightweight embeddable scripting languageLua combines simple procedural syntax with powerful data description constructs based on associative arrays and extensible semantics Lua is dynamically typed runs by interpreting bytecode for a register-based virtual machine and has automatic memory management with incremental garbage collection making it ideal for configuration scripting and rapid prototyping
Why choose LuaLua is a proven robust languageLua has been used in many industrial applications (eg Adobes Photoshop Lightroom) with an emphasis on embedded systems (eg the Ginga middleware for digital TV in Brazil) and games (eg World of Warcraft and Angry Birds) Lua is currently the leading scripting language in games Lua has a solid reference manual and there are several books about it Several versions of Lua have been released and used in real applications since its creation in 1993 Lua featured in HOPL III the Third ACM SIGPLAN History of Programming Languages Conference in June 2007 Lua won the Front Line Award 2011 from the Game Developers Magazine
Свертка и архитектура 4-х уровневой сверточной сети
Функциональная структура
Примеры успешного применения сверточных сетей
Диагностика эпилепсии по ЭЭГ
Реализация сверточной сетью
Одна из самых больших сверточных сетейbull Krizhevsky Sutskever Hinton 2012bull 650 000 нейронов 832 000 000 синапсов 60 000000 пареметровbull Использовался backprop на GPUbull Обучающая выборка на материалах 20 летbull Купил Google в январе 2013bull В мае 2013 развернул как сервис Photo Tagging Google+
Пример тэгирования
Пример поиска похожих по изображению
Пример поиска в коллекции изображений по текстовому запросу
Пример laquoоблачногоraquo классификатора изображений
Самообучающиеся нейронные сети на основе минимизации функции энергииbull Применима к сетям с обратными связямиbull Конструирование функции энергии должно обеспечивать
laquoконтрастностьraquo разделения
bull Энергетическая функция может Неформально рассматриваться как отрицательный логарифм плотности вероятности
Y 2=(Y1)2
RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцмана
bull Из DBM cтроится Deep Belief Network (DBN)
bull w mdash вес между нейронами
bull b mdash смещение нейрона
bull s mdash состояние нейрона
Алгоритм обучения Contrastive Divergence (CD)bull w_ij mdash веc между i-ым нейроном Вероятность пар может быть представлена как
bull a_i mdash смещение видимого нейрона
bull b_j mdash смещение скрытого нейрона
bull v_i mdash состояние видимого нейрона
bull h_j mdash состояние скрытого нейрона Полная вероятность состояния видимых нейронов
Основные уравнения адаптации
Алгоритм Хинтона - Contrastive Divergence (CD-k)
1 состояние видимых нейронов приравнивается к входному образу2 выводятся вероятности состояний скрытого слоя3 каждому нейрону скрытого слоя ставится в соответствие состояние laquo1raquo с вероятностью равной его текущему состоянию4 выводятся вероятности видимого слоя на основании скрытого5 если текущая итерация меньше k то возврат к шагу 26 выводятся вероятности состояний скрытого слоя
darch Package for deep architectures and Restricted-Bolzmann-MachinesThe darch package is build on the basis of the code from G E Hinton and R R Salakhutdinov (available under Matlab Code for deep belief nets last visit 01082013) This package is for generating neural networks with many layers (deep architectures) and train them with the method introduced by the publications A fast learning algorithm for deep belief nets (G E Hinton S Osindero Y W Teh) and Reducing the dimensionality of data with neural networks (G E Hinton R R Salakhutdinov) This method includes a pre training with the contrastive divergence method publishing by GE Hinton (2002) and a fine tuning with common known training algorithms like backpropagation or conjugate gradient
bull Version 091bull Imports futilelogger ff methodsbull Published 2014-03-16bull Author Martin Dreesbull Maintainer Martin Drees ltmdrees at studfh-dortmunddegtbull License GPL-2bull URL httpgithubcommaddin79darchbull NeedsCompilation nobull Materials READMEbull CRAN checks darch results
Связь плотности вероятности и энергии
Используется распределение Гиббса
Задача обучения с точки минимизации энергии сети
bull Сконструировать функцию энергии с малыми значениями на обучающей выборке и с большими значениями всюду вне этого множества
bull Первое несложно а второе представляет задачу процесса обучения
Интуитивные соображения
Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decomposition LISTA ndashметоды использующие разреженные коды
Латентная переменная Z =argmin_z Distance[Decoder(Z)Y]+FactorB(Z)MAPminimaize sum of factors
Автоэнкодер (auto encoder) Автоэнкодер представляет собой алгоритм обучения без учителя который использует нейронную сеть и метод обратного распространения ошибки для того чтобы добиться того что входной вектор признаков вызывал отклик сети равный входному вектору те y = x Автоэнкодер пытается построить функцию h(x) = x
Архитекттура ICA моделей
Итеративные алгоритмы с оптимальным разреженным кодированием ISTAFISTA
Самоорганизация данных методами Deep Learning
>
Знакомство с пакетом deepnet
Назначение
Составdbndnntrain - обучение сети с архитектурой DBN (deep belief network)loadmnist - формирование данных из файлов MNISTnnpredict - предсказание новых выборок на обученной нейронной сетиnntest ndash тестирование обученной нейронной сети с возвращением значения ошибкиnntrain ndash обучение одностлойной или многослойной нейронной сети методом backproprbmdown ndash генерирование видимого вектора для скрытых состояний сети RBMrbmtrain ndash обучение сети RBMrbmup ndash извлечение скрытых состояний RBM по известным видимым состояниямsaednntrain ndash обучение нейронной сети с архитектурой stacked autoencoder
Прогнозирование (классификация) нейронной сетью с архитектурой stacked auto encoder
Argumentsbull x matrix of x values for examplesbull y vector or matrix of target values for examplesbull hidden vector for number of units of hidden layersDefault is c(10)bull activationfun activation function of hidden unitCan be sigmlinear or tanhDefault isbull sigm for logistic functionbull learningrate learning rate for gradient descent Default is 08bull momentum momentum for gradient descent Default is 05 bull learningrate_scalebull learning rate will be mutiplied by this scale after every iteration Default is 1 bull numepochs number of iteration for samples Default is 3bull batchsize size of mini-batch Default is 100bull output function of output unit can be sigmlinear or softmax Default is sigmbull sae_output function of autoencoder output unit can be sigmlinear or softmax Defaultbull is linearbull hidden_dropout drop out fraction for hidden layer Default is 0bull visible_dropoutbull drop out fraction for input layer Default is 0
Что такое MNISTbull Смешанный набор данных Национального института стандартов и
технологий (mixed National Institute of Standards and Technology MNIST) был создан исследователями IR в качестве эталона для сравнения различных алгоритмов IR
bull Набор данных состоит всего из 70 000 изображений 60 000 обучающих (используемых для создания модели IR) и 10 000 тестовых (применяемых для оценки точности модели) Каждое изображение MNIST mdash это оцифрованная картинка одной цифры написанной от руки Каждое изображение имеет размер 28 times 28 пикселей Каждое значение пикселя лежит в диапазоне от 0 (представляет белый цвет) до 255 (представляет черный цвет) Промежуточные значения отражают оттенки серого
httpyannlecuncomexdbmnistобучающие и тестовые данные хранятся в двух файлах а не в одном Один файл содержит значения пикселей для изображений а другой mdash метки изображений (0ndash9) Каждый из четырех файлов также содержит заголовочную информацию и все они хранятся в двоичном формате сжатом в формате gziptrain-images-idx3-ubytegz training set images (9912422 bytes)
train-labels-idx1-ubytegz training set labels (28881 bytes)
t10k-images-idx3-ubytegz test set images (1648877 bytes)
t10k-labels-idx1-ubytegz test set labels (4542 bytes)
bull Каждая строка файла представляет собой имидж размера 28 times 28 вектором длины 784 каждый признак ndash значение пиксела в черно-белой шале Первый столбец содержит метку цифры 0ndash9 следующие 2828 столбцов представляют целый имидж и так далее Пример первой строки
Визуализация
bull plotmnist()bull mnistbull paramsbull train$n number of train samplesbull train$x pix of every train sample imagebull train$y label of every train sample imagebull train$yy one-of-c vector of label of train sample imagebull test$n number of test samplesbull test$x pix of every test sample imagebull test$y label of every test sample imagebull test$yy one-of-c vector of label of test sample image
plotmnist()
Распознавание рукописных цифр в deepnet
another way to download the MNIST datasetmnist downloadmnist(range=c(01)global=FALSE)look at MNIST datamnist$train$xmnist$train$ymnist$test$xmnist$test$ytrain of the sae neural networkdnnlt-saednntrain(mnist$train$xmnist$train$yhidden=c(55))test of the sae neural networknntest(dnnmnist$test$xmnist$test$yt=05)
End of slides part 2 (Part 3 - NLP remaining)
Vladimirvkrylovgmailcom
Основы предиктивной аналитики Часть вторая
Применение методов Machine Learning к решению задач аналитики
Дмитрий Ветров кандидат физико-математических наук ру
Методы обучающихся машин для аналитики которые мы рассмотрим
Сначала нужно загрузить несколько пакетов (packages) для поддер
Данные для анализа
Скрипт для генерации
Данные которые мы будем использовать для демо состоят из смес
Так выглядят визуализированные данные сгенерированные скриптом
Разделение данных на обучающие и проверочные является важным эт
K-means алгоритм на пальцах
Обучающаяся машина без учителя Алгоритм K-means
Slide 13
Slide 14
Здесь мы используем заранее известный факт что необходимо кла
Еще одна иллюстрация работы алгоритма K-means
Обучающаяся машина без учителя Алгоритм KNN (Nearest Neighbor)
Как работает алгоритм KNN
knn(train test cl k = 1 l = 0 prob = FALSE useall = TRUE
Slide 20
Результаты кластеризации и зависимость ошибки от числа кластеро
Recursive PartitioningRegression Tree
Метод RP реализует обучение машины строить дерево решений по об
Recursive PartitioningRegression Tree (2)
rpart(formula data weights subset naaction = narpart met
Slide 26
Recursive PartitioningRegression Tree example
Анализ по главным компонентам (Principal Component Analysis PC
Итеративные алгоритмы с оптимальным разреженным кодированием IS
Самоорганизация данных методами Deep Learning
Знакомство с пакетом deepnet
Прогнозирование (классификация) нейронной сетью с архитектурой
Arguments
Архитектура сети SAE
Архитектура с 5Х4 hidden 3 outs
Example
Анализ обучающего набора данных
Параметры SAE сети
Коэффициенты связей
Предсказание обученной сетью
Сравнение обучающей и тестовой выборки
plot3d(xy)
Работаем с пакетом MNIST
httpyannlecuncomexdbmnist
Подготовка к обработке
Slide 118
Визуализация
plotmnist()
Распознавание рукописных цифр в deepnet
End of slides part 2 (Part 3 - NLP remaining)
prior the prior probabilities usedmeans the group meansscaling a matrix which transforms observations to
discriminant functions normalized so that within groups covariance matrix is spherical
svd the singular values which give the ratio of the between- and within-group standard deviations on the linear discriminant variables Their squares are the canonical F-statistics
N The number of observations usedcall The (matched) function call
An object of class lda containing the following components
Метод опорных векторов (Support Vector Machines - SVM)Относится к ML с учителем и использует линейные разделяющие поверхности
Идея алгоритма
bull По обучающей выборке
bull Строится классифицирующая функция
bull Используя гиперплоскость
bull Поиск коэффициентов сводится к максимизации
расстояний от опорных векторов или минимизации
Иллюстрация на простейшем примере
>
Производится вложение обучающей выборки в пространство более высокой размерности Х с помощью нелинейной функции так чтобы обеспечит линейную разделимость в Х
Разделяющая функция тогда имеет вид
Функция называется ядром
Полиномиальное ядро
Радиальная базисная функция
Сигмоид
Линейная неразделимость и использование ядер
Иллюстрация использования ядра для отображения 2D -gt 3D
>
svm((formula data = NULL subset naaction =naomit scale = TRUE))
formulaa symbolic description of the model to be fitdataan optional data frame containing the variables in the model By default the variables are taken from the environment which lsquosvmrsquo is called fromxa data matrix a vector or a sparse matrix (object of class Matrix provided by the Matrix package or of class matrixcsr provided by the SparseM package or of class simple_triplet_matrix provided by the slam package)ya response vector with one label for each rowcomponent of x Can be either a factor (for classification tasks) or a numeric vector (for regression)scaleA logical vector indicating the variables to be scaled If scale is of length 1 the value is recycled as many times as needed Per default data are scaled internally (both x and y variables) to zero mean and unit variance The center and scale values are returned and used for later predictionstypesvm can be used as a classification machine as a regression machine or for novelty detection Depending of whether y is a factor or not the default setting for type is C-classification or eps-regression respectively but may be overwritten by setting an explicit valueValid options areC-classificationnu-classificationone-classification (for novelty detection)eps-regressionnu-regression
Support Vector Machines
s lt- svm( I(factor(class)) ~ x + y data = train cost = 100 gama = 1)
Package lsquodeepnetrsquo February 19 2015 Type Package Title deep learning toolkit in R Version 02 Date 2014-03-20 Author Xiao Rong Maintainer Xiao Rong Description Implement some deep learning architectures and neural network algorithms including BPRBMDBNDeep autoencoder and so on License GPL NeedsCompilation no Repository CRAN DatePublication 2014-03-20 100343
laquoВ 1997 году Deep Blue обыграл в шахматы КаспароваВ 2011 Watson обставил чемпионов JeopardyСможет ли ваш алгоритм в 2013 году отличить Бобика от ПушистикаraquoKaggle Competitions Details
Сегодня уже можно ответить laquoдаraquo mdash десятка лидеров справилась с заданием на 988
Распознавание основано на feature detection и последующем различении комбинаций
Заранее неизвестно какие части картинки могут использоваться как хорошие features В их роли может выступать все что угодно mdash фрагменты изображения форма размер или цвет Feature может не присутствовать на картинке сама а выражаться в параметре полученным каким-то образом из исходных данных
Распознавание рукописных цифр
Еще пример посложнее
Использование нейронной сети с обучениемОбучение такой нейронной сети производится обычно методом обратного распространения ошибки таким образом чтобы минимизировать среднеквадратическую ошибку отклика сети на обучающей выборке Таким образом обучающая выборка содержит пары векторов признаков (входные данные) и эталонных векторов (маркированные данные) (x y)
Сверхвысокая размерность при работе с первичным представлением пикселями
Пиксельное кодирование
Принцип иерархии понятий ndash основа deep learning
bull Все вещи состоят из других маленьких и более элементарных вещей
bull Как извлекать features Гипотеза малоразмерных многообразий
Разреженное (sparse) кодирование
первый уровень иерархии состоит из элементов словаря этого кода которые представляют собой штрихи и границы
Словарь для лиц
Выделение объектов заданного класса
Основные архитектуры Deep Learningbull Deep neural networks (DNN)bull Deep belief networks (DBN)bull Convolutional neural networks (CNN)bull Deep Boltzmann Machines (DBM)bull Stacked (Denoising) Auto-Encodersbull Deep Stacking Networksbull Tensor Deep Stacking Networks (T-DSN)bull Spike-and-Slab RBMs (ssRBMs)bull Compound Hierarchical-Deep Modelsbull Deep Coding Networks (DPCN)bull Deep Kernel Machinesbull Deep Q-Networks (2015 г)
Задача классификации распознавания и подобные являются задачей конструирования функции на множестве входных наборов и со значениями в множестве требуемого вида выходных
bull Норбертом Винером было показано что любая функция может быть сколь угодно точно композицией двух (он использовал функции полином Лагранжа и функцию Лагерра)
bull Соответствует двухслойной нейросетиbull Архитектуры Deep Learning соответствуют представлению
bull Обеспечивают эффективную параметризацию при решении конкретных задач Более сложные функции создаются из большего числа но более эффективно настраиваемых laquoкирпичиковraquo Пример ndash синтез булевых функций Дерево вентилей эффективнее двухслойной схемы
Фактор - графыВсе методы которые расмотрели ndash не DL Даже деревья классификации Все операции в одном входном словаре
DL можно определить по фактор-графу
Например
bull Еще одна сторона DL - нередко использует невыпуклые функции потерьbull Обучение на основе выпуклых функций не зависит от порядка
предъявления данных для обучения Все определяет асимптотика всего train - набора В алгоритмах DL порядок данных в обучающей выборке может иметь значение
bull Многие решения в DL не доказаны математически и являются успешными эвристиками
bull Большой простор для прикладной математики Может рассматриваться как фактор-граф с группами латентных переменных
bull В настоящее время стал основной технологией в распознавании речи (speech recognition) и машинном зрении (computer vision) начал применяться в обработке текстов (natural language processing)
bull Основная идея ndash применение нелинейного отображения входного набора в более высокоразмерное пространство где многие неразделимые композиции становятся разделимыми а затем объединение композиций по семантической близости
Подход разреженного кодирования
Обобщенная архитектура
bull DL сеть может быть собрана каскадированием и использованием обучения с учителем
Здесь используется forward propagation для обучения
Для настройки коэффициентов используется метод fprof для каждого
Требуется знание градиента энергии
Элементы (kl) матрицы Якобиана
Требуется знание градиента энергии 120597119864120597119882119894 = 120597119864120597119883119894120597119865119894(119883119894minus1119882119894)120597119882119894
ሾ1times 119873119908ሿ= ሾ1times 119873119909ሿlowast[119873119909 times 119873119908] Элементы (kl) матрицы Якобиана
Сводится к рекуррентному соотношению для вычисления градиента 120597119864120597119883119894minus1 = 120597119864120597119883119894120597119865119894(119883119894minus1119882119894)120597119883119894minus1
В итоге
Для вычисления градиента может использоваться метод back propagation
В действительности работают любые архитектуры построения функции Нужно конструировать связи и функции блоков
Язык Torch 7 ndash современный инструмент моделирования и имплементации
Machine Learning with Torch7 (httpcodecogbitscomwikidokuphpid=start)
bull These tutorials were originally designed for the IPAM Summer School on Deep Learning more info herebull This wiki provides multiple tutorials with the overall objective of teaching you how to do machine learning
with Torch7bull Torch7 provides a Matlab-like environment for state-of-the-art machine learning algorithms It is easy to use
and provides a very efficient implementation thanks to an easy and fast scripting language (LuaJIT) and an underlying C implementation
bull These tutorials should be readdone in orderbull Tutorial 1 Setup Basics Getting Startedbull Tutorial 2 Supervised Learningbull Tutorial 3 Unsupervised Learningbull Tutorial 4 Graphical Modelsbull Tutorial 5 Creating New Modulesbull Tutorial 6 Using CUDAbull To follow these tutorials and do the exercises you will need to download the associated code which is hosted
on GitHub on this page In this repository each directory corresponds to a tutorial herebull starttxt middot Last modified 20140204 2246 by clement
Torch 7 является расширением Lua
What is LuaLua is a powerful fast lightweight embeddable scripting languageLua combines simple procedural syntax with powerful data description constructs based on associative arrays and extensible semantics Lua is dynamically typed runs by interpreting bytecode for a register-based virtual machine and has automatic memory management with incremental garbage collection making it ideal for configuration scripting and rapid prototyping
Why choose LuaLua is a proven robust languageLua has been used in many industrial applications (eg Adobes Photoshop Lightroom) with an emphasis on embedded systems (eg the Ginga middleware for digital TV in Brazil) and games (eg World of Warcraft and Angry Birds) Lua is currently the leading scripting language in games Lua has a solid reference manual and there are several books about it Several versions of Lua have been released and used in real applications since its creation in 1993 Lua featured in HOPL III the Third ACM SIGPLAN History of Programming Languages Conference in June 2007 Lua won the Front Line Award 2011 from the Game Developers Magazine
Свертка и архитектура 4-х уровневой сверточной сети
Функциональная структура
Примеры успешного применения сверточных сетей
Диагностика эпилепсии по ЭЭГ
Реализация сверточной сетью
Одна из самых больших сверточных сетейbull Krizhevsky Sutskever Hinton 2012bull 650 000 нейронов 832 000 000 синапсов 60 000000 пареметровbull Использовался backprop на GPUbull Обучающая выборка на материалах 20 летbull Купил Google в январе 2013bull В мае 2013 развернул как сервис Photo Tagging Google+
Пример тэгирования
Пример поиска похожих по изображению
Пример поиска в коллекции изображений по текстовому запросу
Пример laquoоблачногоraquo классификатора изображений
Самообучающиеся нейронные сети на основе минимизации функции энергииbull Применима к сетям с обратными связямиbull Конструирование функции энергии должно обеспечивать
laquoконтрастностьraquo разделения
bull Энергетическая функция может Неформально рассматриваться как отрицательный логарифм плотности вероятности
Y 2=(Y1)2
RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцмана
bull Из DBM cтроится Deep Belief Network (DBN)
bull w mdash вес между нейронами
bull b mdash смещение нейрона
bull s mdash состояние нейрона
Алгоритм обучения Contrastive Divergence (CD)bull w_ij mdash веc между i-ым нейроном Вероятность пар может быть представлена как
bull a_i mdash смещение видимого нейрона
bull b_j mdash смещение скрытого нейрона
bull v_i mdash состояние видимого нейрона
bull h_j mdash состояние скрытого нейрона Полная вероятность состояния видимых нейронов
Основные уравнения адаптации
Алгоритм Хинтона - Contrastive Divergence (CD-k)
1 состояние видимых нейронов приравнивается к входному образу2 выводятся вероятности состояний скрытого слоя3 каждому нейрону скрытого слоя ставится в соответствие состояние laquo1raquo с вероятностью равной его текущему состоянию4 выводятся вероятности видимого слоя на основании скрытого5 если текущая итерация меньше k то возврат к шагу 26 выводятся вероятности состояний скрытого слоя
darch Package for deep architectures and Restricted-Bolzmann-MachinesThe darch package is build on the basis of the code from G E Hinton and R R Salakhutdinov (available under Matlab Code for deep belief nets last visit 01082013) This package is for generating neural networks with many layers (deep architectures) and train them with the method introduced by the publications A fast learning algorithm for deep belief nets (G E Hinton S Osindero Y W Teh) and Reducing the dimensionality of data with neural networks (G E Hinton R R Salakhutdinov) This method includes a pre training with the contrastive divergence method publishing by GE Hinton (2002) and a fine tuning with common known training algorithms like backpropagation or conjugate gradient
bull Version 091bull Imports futilelogger ff methodsbull Published 2014-03-16bull Author Martin Dreesbull Maintainer Martin Drees ltmdrees at studfh-dortmunddegtbull License GPL-2bull URL httpgithubcommaddin79darchbull NeedsCompilation nobull Materials READMEbull CRAN checks darch results
Связь плотности вероятности и энергии
Используется распределение Гиббса
Задача обучения с точки минимизации энергии сети
bull Сконструировать функцию энергии с малыми значениями на обучающей выборке и с большими значениями всюду вне этого множества
bull Первое несложно а второе представляет задачу процесса обучения
Интуитивные соображения
Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decomposition LISTA ndashметоды использующие разреженные коды
Латентная переменная Z =argmin_z Distance[Decoder(Z)Y]+FactorB(Z)MAPminimaize sum of factors
Автоэнкодер (auto encoder) Автоэнкодер представляет собой алгоритм обучения без учителя который использует нейронную сеть и метод обратного распространения ошибки для того чтобы добиться того что входной вектор признаков вызывал отклик сети равный входному вектору те y = x Автоэнкодер пытается построить функцию h(x) = x
Архитекттура ICA моделей
Итеративные алгоритмы с оптимальным разреженным кодированием ISTAFISTA
Самоорганизация данных методами Deep Learning
>
Знакомство с пакетом deepnet
Назначение
Составdbndnntrain - обучение сети с архитектурой DBN (deep belief network)loadmnist - формирование данных из файлов MNISTnnpredict - предсказание новых выборок на обученной нейронной сетиnntest ndash тестирование обученной нейронной сети с возвращением значения ошибкиnntrain ndash обучение одностлойной или многослойной нейронной сети методом backproprbmdown ndash генерирование видимого вектора для скрытых состояний сети RBMrbmtrain ndash обучение сети RBMrbmup ndash извлечение скрытых состояний RBM по известным видимым состояниямsaednntrain ndash обучение нейронной сети с архитектурой stacked autoencoder
Прогнозирование (классификация) нейронной сетью с архитектурой stacked auto encoder
Argumentsbull x matrix of x values for examplesbull y vector or matrix of target values for examplesbull hidden vector for number of units of hidden layersDefault is c(10)bull activationfun activation function of hidden unitCan be sigmlinear or tanhDefault isbull sigm for logistic functionbull learningrate learning rate for gradient descent Default is 08bull momentum momentum for gradient descent Default is 05 bull learningrate_scalebull learning rate will be mutiplied by this scale after every iteration Default is 1 bull numepochs number of iteration for samples Default is 3bull batchsize size of mini-batch Default is 100bull output function of output unit can be sigmlinear or softmax Default is sigmbull sae_output function of autoencoder output unit can be sigmlinear or softmax Defaultbull is linearbull hidden_dropout drop out fraction for hidden layer Default is 0bull visible_dropoutbull drop out fraction for input layer Default is 0
Что такое MNISTbull Смешанный набор данных Национального института стандартов и
технологий (mixed National Institute of Standards and Technology MNIST) был создан исследователями IR в качестве эталона для сравнения различных алгоритмов IR
bull Набор данных состоит всего из 70 000 изображений 60 000 обучающих (используемых для создания модели IR) и 10 000 тестовых (применяемых для оценки точности модели) Каждое изображение MNIST mdash это оцифрованная картинка одной цифры написанной от руки Каждое изображение имеет размер 28 times 28 пикселей Каждое значение пикселя лежит в диапазоне от 0 (представляет белый цвет) до 255 (представляет черный цвет) Промежуточные значения отражают оттенки серого
httpyannlecuncomexdbmnistобучающие и тестовые данные хранятся в двух файлах а не в одном Один файл содержит значения пикселей для изображений а другой mdash метки изображений (0ndash9) Каждый из четырех файлов также содержит заголовочную информацию и все они хранятся в двоичном формате сжатом в формате gziptrain-images-idx3-ubytegz training set images (9912422 bytes)
train-labels-idx1-ubytegz training set labels (28881 bytes)
t10k-images-idx3-ubytegz test set images (1648877 bytes)
t10k-labels-idx1-ubytegz test set labels (4542 bytes)
bull Каждая строка файла представляет собой имидж размера 28 times 28 вектором длины 784 каждый признак ndash значение пиксела в черно-белой шале Первый столбец содержит метку цифры 0ndash9 следующие 2828 столбцов представляют целый имидж и так далее Пример первой строки
Визуализация
bull plotmnist()bull mnistbull paramsbull train$n number of train samplesbull train$x pix of every train sample imagebull train$y label of every train sample imagebull train$yy one-of-c vector of label of train sample imagebull test$n number of test samplesbull test$x pix of every test sample imagebull test$y label of every test sample imagebull test$yy one-of-c vector of label of test sample image
plotmnist()
Распознавание рукописных цифр в deepnet
another way to download the MNIST datasetmnist downloadmnist(range=c(01)global=FALSE)look at MNIST datamnist$train$xmnist$train$ymnist$test$xmnist$test$ytrain of the sae neural networkdnnlt-saednntrain(mnist$train$xmnist$train$yhidden=c(55))test of the sae neural networknntest(dnnmnist$test$xmnist$test$yt=05)
End of slides part 2 (Part 3 - NLP remaining)
Vladimirvkrylovgmailcom
Основы предиктивной аналитики Часть вторая
Применение методов Machine Learning к решению задач аналитики
Дмитрий Ветров кандидат физико-математических наук ру
Методы обучающихся машин для аналитики которые мы рассмотрим
Сначала нужно загрузить несколько пакетов (packages) для поддер
Данные для анализа
Скрипт для генерации
Данные которые мы будем использовать для демо состоят из смес
Так выглядят визуализированные данные сгенерированные скриптом
Разделение данных на обучающие и проверочные является важным эт
K-means алгоритм на пальцах
Обучающаяся машина без учителя Алгоритм K-means
Slide 13
Slide 14
Здесь мы используем заранее известный факт что необходимо кла
Еще одна иллюстрация работы алгоритма K-means
Обучающаяся машина без учителя Алгоритм KNN (Nearest Neighbor)
Как работает алгоритм KNN
knn(train test cl k = 1 l = 0 prob = FALSE useall = TRUE
Slide 20
Результаты кластеризации и зависимость ошибки от числа кластеро
Recursive PartitioningRegression Tree
Метод RP реализует обучение машины строить дерево решений по об
Recursive PartitioningRegression Tree (2)
rpart(formula data weights subset naaction = narpart met
Slide 26
Recursive PartitioningRegression Tree example
Анализ по главным компонентам (Principal Component Analysis PC
Метод опорных векторов (Support Vector Machines - SVM)Относится к ML с учителем и использует линейные разделяющие поверхности
Идея алгоритма
bull По обучающей выборке
bull Строится классифицирующая функция
bull Используя гиперплоскость
bull Поиск коэффициентов сводится к максимизации
расстояний от опорных векторов или минимизации
Иллюстрация на простейшем примере
>
Производится вложение обучающей выборки в пространство более высокой размерности Х с помощью нелинейной функции так чтобы обеспечит линейную разделимость в Х
Разделяющая функция тогда имеет вид
Функция называется ядром
Полиномиальное ядро
Радиальная базисная функция
Сигмоид
Линейная неразделимость и использование ядер
Иллюстрация использования ядра для отображения 2D -gt 3D
>
svm((formula data = NULL subset naaction =naomit scale = TRUE))
formulaa symbolic description of the model to be fitdataan optional data frame containing the variables in the model By default the variables are taken from the environment which lsquosvmrsquo is called fromxa data matrix a vector or a sparse matrix (object of class Matrix provided by the Matrix package or of class matrixcsr provided by the SparseM package or of class simple_triplet_matrix provided by the slam package)ya response vector with one label for each rowcomponent of x Can be either a factor (for classification tasks) or a numeric vector (for regression)scaleA logical vector indicating the variables to be scaled If scale is of length 1 the value is recycled as many times as needed Per default data are scaled internally (both x and y variables) to zero mean and unit variance The center and scale values are returned and used for later predictionstypesvm can be used as a classification machine as a regression machine or for novelty detection Depending of whether y is a factor or not the default setting for type is C-classification or eps-regression respectively but may be overwritten by setting an explicit valueValid options areC-classificationnu-classificationone-classification (for novelty detection)eps-regressionnu-regression
Support Vector Machines
s lt- svm( I(factor(class)) ~ x + y data = train cost = 100 gama = 1)
Package lsquodeepnetrsquo February 19 2015 Type Package Title deep learning toolkit in R Version 02 Date 2014-03-20 Author Xiao Rong Maintainer Xiao Rong Description Implement some deep learning architectures and neural network algorithms including BPRBMDBNDeep autoencoder and so on License GPL NeedsCompilation no Repository CRAN DatePublication 2014-03-20 100343
laquoВ 1997 году Deep Blue обыграл в шахматы КаспароваВ 2011 Watson обставил чемпионов JeopardyСможет ли ваш алгоритм в 2013 году отличить Бобика от ПушистикаraquoKaggle Competitions Details
Сегодня уже можно ответить laquoдаraquo mdash десятка лидеров справилась с заданием на 988
Распознавание основано на feature detection и последующем различении комбинаций
Заранее неизвестно какие части картинки могут использоваться как хорошие features В их роли может выступать все что угодно mdash фрагменты изображения форма размер или цвет Feature может не присутствовать на картинке сама а выражаться в параметре полученным каким-то образом из исходных данных
Распознавание рукописных цифр
Еще пример посложнее
Использование нейронной сети с обучениемОбучение такой нейронной сети производится обычно методом обратного распространения ошибки таким образом чтобы минимизировать среднеквадратическую ошибку отклика сети на обучающей выборке Таким образом обучающая выборка содержит пары векторов признаков (входные данные) и эталонных векторов (маркированные данные) (x y)
Сверхвысокая размерность при работе с первичным представлением пикселями
Пиксельное кодирование
Принцип иерархии понятий ndash основа deep learning
bull Все вещи состоят из других маленьких и более элементарных вещей
bull Как извлекать features Гипотеза малоразмерных многообразий
Разреженное (sparse) кодирование
первый уровень иерархии состоит из элементов словаря этого кода которые представляют собой штрихи и границы
Словарь для лиц
Выделение объектов заданного класса
Основные архитектуры Deep Learningbull Deep neural networks (DNN)bull Deep belief networks (DBN)bull Convolutional neural networks (CNN)bull Deep Boltzmann Machines (DBM)bull Stacked (Denoising) Auto-Encodersbull Deep Stacking Networksbull Tensor Deep Stacking Networks (T-DSN)bull Spike-and-Slab RBMs (ssRBMs)bull Compound Hierarchical-Deep Modelsbull Deep Coding Networks (DPCN)bull Deep Kernel Machinesbull Deep Q-Networks (2015 г)
Задача классификации распознавания и подобные являются задачей конструирования функции на множестве входных наборов и со значениями в множестве требуемого вида выходных
bull Норбертом Винером было показано что любая функция может быть сколь угодно точно композицией двух (он использовал функции полином Лагранжа и функцию Лагерра)
bull Соответствует двухслойной нейросетиbull Архитектуры Deep Learning соответствуют представлению
bull Обеспечивают эффективную параметризацию при решении конкретных задач Более сложные функции создаются из большего числа но более эффективно настраиваемых laquoкирпичиковraquo Пример ndash синтез булевых функций Дерево вентилей эффективнее двухслойной схемы
Фактор - графыВсе методы которые расмотрели ndash не DL Даже деревья классификации Все операции в одном входном словаре
DL можно определить по фактор-графу
Например
bull Еще одна сторона DL - нередко использует невыпуклые функции потерьbull Обучение на основе выпуклых функций не зависит от порядка
предъявления данных для обучения Все определяет асимптотика всего train - набора В алгоритмах DL порядок данных в обучающей выборке может иметь значение
bull Многие решения в DL не доказаны математически и являются успешными эвристиками
bull Большой простор для прикладной математики Может рассматриваться как фактор-граф с группами латентных переменных
bull В настоящее время стал основной технологией в распознавании речи (speech recognition) и машинном зрении (computer vision) начал применяться в обработке текстов (natural language processing)
bull Основная идея ndash применение нелинейного отображения входного набора в более высокоразмерное пространство где многие неразделимые композиции становятся разделимыми а затем объединение композиций по семантической близости
Подход разреженного кодирования
Обобщенная архитектура
bull DL сеть может быть собрана каскадированием и использованием обучения с учителем
Здесь используется forward propagation для обучения
Для настройки коэффициентов используется метод fprof для каждого
Требуется знание градиента энергии
Элементы (kl) матрицы Якобиана
Требуется знание градиента энергии 120597119864120597119882119894 = 120597119864120597119883119894120597119865119894(119883119894minus1119882119894)120597119882119894
ሾ1times 119873119908ሿ= ሾ1times 119873119909ሿlowast[119873119909 times 119873119908] Элементы (kl) матрицы Якобиана
Сводится к рекуррентному соотношению для вычисления градиента 120597119864120597119883119894minus1 = 120597119864120597119883119894120597119865119894(119883119894minus1119882119894)120597119883119894minus1
В итоге
Для вычисления градиента может использоваться метод back propagation
В действительности работают любые архитектуры построения функции Нужно конструировать связи и функции блоков
Язык Torch 7 ndash современный инструмент моделирования и имплементации
Machine Learning with Torch7 (httpcodecogbitscomwikidokuphpid=start)
bull These tutorials were originally designed for the IPAM Summer School on Deep Learning more info herebull This wiki provides multiple tutorials with the overall objective of teaching you how to do machine learning
with Torch7bull Torch7 provides a Matlab-like environment for state-of-the-art machine learning algorithms It is easy to use
and provides a very efficient implementation thanks to an easy and fast scripting language (LuaJIT) and an underlying C implementation
bull These tutorials should be readdone in orderbull Tutorial 1 Setup Basics Getting Startedbull Tutorial 2 Supervised Learningbull Tutorial 3 Unsupervised Learningbull Tutorial 4 Graphical Modelsbull Tutorial 5 Creating New Modulesbull Tutorial 6 Using CUDAbull To follow these tutorials and do the exercises you will need to download the associated code which is hosted
on GitHub on this page In this repository each directory corresponds to a tutorial herebull starttxt middot Last modified 20140204 2246 by clement
Torch 7 является расширением Lua
What is LuaLua is a powerful fast lightweight embeddable scripting languageLua combines simple procedural syntax with powerful data description constructs based on associative arrays and extensible semantics Lua is dynamically typed runs by interpreting bytecode for a register-based virtual machine and has automatic memory management with incremental garbage collection making it ideal for configuration scripting and rapid prototyping
Why choose LuaLua is a proven robust languageLua has been used in many industrial applications (eg Adobes Photoshop Lightroom) with an emphasis on embedded systems (eg the Ginga middleware for digital TV in Brazil) and games (eg World of Warcraft and Angry Birds) Lua is currently the leading scripting language in games Lua has a solid reference manual and there are several books about it Several versions of Lua have been released and used in real applications since its creation in 1993 Lua featured in HOPL III the Third ACM SIGPLAN History of Programming Languages Conference in June 2007 Lua won the Front Line Award 2011 from the Game Developers Magazine
Свертка и архитектура 4-х уровневой сверточной сети
Функциональная структура
Примеры успешного применения сверточных сетей
Диагностика эпилепсии по ЭЭГ
Реализация сверточной сетью
Одна из самых больших сверточных сетейbull Krizhevsky Sutskever Hinton 2012bull 650 000 нейронов 832 000 000 синапсов 60 000000 пареметровbull Использовался backprop на GPUbull Обучающая выборка на материалах 20 летbull Купил Google в январе 2013bull В мае 2013 развернул как сервис Photo Tagging Google+
Пример тэгирования
Пример поиска похожих по изображению
Пример поиска в коллекции изображений по текстовому запросу
Пример laquoоблачногоraquo классификатора изображений
Самообучающиеся нейронные сети на основе минимизации функции энергииbull Применима к сетям с обратными связямиbull Конструирование функции энергии должно обеспечивать
laquoконтрастностьraquo разделения
bull Энергетическая функция может Неформально рассматриваться как отрицательный логарифм плотности вероятности
Y 2=(Y1)2
RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцмана
bull Из DBM cтроится Deep Belief Network (DBN)
bull w mdash вес между нейронами
bull b mdash смещение нейрона
bull s mdash состояние нейрона
Алгоритм обучения Contrastive Divergence (CD)bull w_ij mdash веc между i-ым нейроном Вероятность пар может быть представлена как
bull a_i mdash смещение видимого нейрона
bull b_j mdash смещение скрытого нейрона
bull v_i mdash состояние видимого нейрона
bull h_j mdash состояние скрытого нейрона Полная вероятность состояния видимых нейронов
Основные уравнения адаптации
Алгоритм Хинтона - Contrastive Divergence (CD-k)
1 состояние видимых нейронов приравнивается к входному образу2 выводятся вероятности состояний скрытого слоя3 каждому нейрону скрытого слоя ставится в соответствие состояние laquo1raquo с вероятностью равной его текущему состоянию4 выводятся вероятности видимого слоя на основании скрытого5 если текущая итерация меньше k то возврат к шагу 26 выводятся вероятности состояний скрытого слоя
darch Package for deep architectures and Restricted-Bolzmann-MachinesThe darch package is build on the basis of the code from G E Hinton and R R Salakhutdinov (available under Matlab Code for deep belief nets last visit 01082013) This package is for generating neural networks with many layers (deep architectures) and train them with the method introduced by the publications A fast learning algorithm for deep belief nets (G E Hinton S Osindero Y W Teh) and Reducing the dimensionality of data with neural networks (G E Hinton R R Salakhutdinov) This method includes a pre training with the contrastive divergence method publishing by GE Hinton (2002) and a fine tuning with common known training algorithms like backpropagation or conjugate gradient
bull Version 091bull Imports futilelogger ff methodsbull Published 2014-03-16bull Author Martin Dreesbull Maintainer Martin Drees ltmdrees at studfh-dortmunddegtbull License GPL-2bull URL httpgithubcommaddin79darchbull NeedsCompilation nobull Materials READMEbull CRAN checks darch results
Связь плотности вероятности и энергии
Используется распределение Гиббса
Задача обучения с точки минимизации энергии сети
bull Сконструировать функцию энергии с малыми значениями на обучающей выборке и с большими значениями всюду вне этого множества
bull Первое несложно а второе представляет задачу процесса обучения
Интуитивные соображения
Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decomposition LISTA ndashметоды использующие разреженные коды
Латентная переменная Z =argmin_z Distance[Decoder(Z)Y]+FactorB(Z)MAPminimaize sum of factors
Автоэнкодер (auto encoder) Автоэнкодер представляет собой алгоритм обучения без учителя который использует нейронную сеть и метод обратного распространения ошибки для того чтобы добиться того что входной вектор признаков вызывал отклик сети равный входному вектору те y = x Автоэнкодер пытается построить функцию h(x) = x
Архитекттура ICA моделей
Итеративные алгоритмы с оптимальным разреженным кодированием ISTAFISTA
Самоорганизация данных методами Deep Learning
>
Знакомство с пакетом deepnet
Назначение
Составdbndnntrain - обучение сети с архитектурой DBN (deep belief network)loadmnist - формирование данных из файлов MNISTnnpredict - предсказание новых выборок на обученной нейронной сетиnntest ndash тестирование обученной нейронной сети с возвращением значения ошибкиnntrain ndash обучение одностлойной или многослойной нейронной сети методом backproprbmdown ndash генерирование видимого вектора для скрытых состояний сети RBMrbmtrain ndash обучение сети RBMrbmup ndash извлечение скрытых состояний RBM по известным видимым состояниямsaednntrain ndash обучение нейронной сети с архитектурой stacked autoencoder
Прогнозирование (классификация) нейронной сетью с архитектурой stacked auto encoder
Argumentsbull x matrix of x values for examplesbull y vector or matrix of target values for examplesbull hidden vector for number of units of hidden layersDefault is c(10)bull activationfun activation function of hidden unitCan be sigmlinear or tanhDefault isbull sigm for logistic functionbull learningrate learning rate for gradient descent Default is 08bull momentum momentum for gradient descent Default is 05 bull learningrate_scalebull learning rate will be mutiplied by this scale after every iteration Default is 1 bull numepochs number of iteration for samples Default is 3bull batchsize size of mini-batch Default is 100bull output function of output unit can be sigmlinear or softmax Default is sigmbull sae_output function of autoencoder output unit can be sigmlinear or softmax Defaultbull is linearbull hidden_dropout drop out fraction for hidden layer Default is 0bull visible_dropoutbull drop out fraction for input layer Default is 0
Что такое MNISTbull Смешанный набор данных Национального института стандартов и
технологий (mixed National Institute of Standards and Technology MNIST) был создан исследователями IR в качестве эталона для сравнения различных алгоритмов IR
bull Набор данных состоит всего из 70 000 изображений 60 000 обучающих (используемых для создания модели IR) и 10 000 тестовых (применяемых для оценки точности модели) Каждое изображение MNIST mdash это оцифрованная картинка одной цифры написанной от руки Каждое изображение имеет размер 28 times 28 пикселей Каждое значение пикселя лежит в диапазоне от 0 (представляет белый цвет) до 255 (представляет черный цвет) Промежуточные значения отражают оттенки серого
httpyannlecuncomexdbmnistобучающие и тестовые данные хранятся в двух файлах а не в одном Один файл содержит значения пикселей для изображений а другой mdash метки изображений (0ndash9) Каждый из четырех файлов также содержит заголовочную информацию и все они хранятся в двоичном формате сжатом в формате gziptrain-images-idx3-ubytegz training set images (9912422 bytes)
train-labels-idx1-ubytegz training set labels (28881 bytes)
t10k-images-idx3-ubytegz test set images (1648877 bytes)
t10k-labels-idx1-ubytegz test set labels (4542 bytes)
bull Каждая строка файла представляет собой имидж размера 28 times 28 вектором длины 784 каждый признак ndash значение пиксела в черно-белой шале Первый столбец содержит метку цифры 0ndash9 следующие 2828 столбцов представляют целый имидж и так далее Пример первой строки
Визуализация
bull plotmnist()bull mnistbull paramsbull train$n number of train samplesbull train$x pix of every train sample imagebull train$y label of every train sample imagebull train$yy one-of-c vector of label of train sample imagebull test$n number of test samplesbull test$x pix of every test sample imagebull test$y label of every test sample imagebull test$yy one-of-c vector of label of test sample image
plotmnist()
Распознавание рукописных цифр в deepnet
another way to download the MNIST datasetmnist downloadmnist(range=c(01)global=FALSE)look at MNIST datamnist$train$xmnist$train$ymnist$test$xmnist$test$ytrain of the sae neural networkdnnlt-saednntrain(mnist$train$xmnist$train$yhidden=c(55))test of the sae neural networknntest(dnnmnist$test$xmnist$test$yt=05)
End of slides part 2 (Part 3 - NLP remaining)
Vladimirvkrylovgmailcom
Основы предиктивной аналитики Часть вторая
Применение методов Machine Learning к решению задач аналитики
Дмитрий Ветров кандидат физико-математических наук ру
Методы обучающихся машин для аналитики которые мы рассмотрим
Сначала нужно загрузить несколько пакетов (packages) для поддер
Данные для анализа
Скрипт для генерации
Данные которые мы будем использовать для демо состоят из смес
Так выглядят визуализированные данные сгенерированные скриптом
Разделение данных на обучающие и проверочные является важным эт
K-means алгоритм на пальцах
Обучающаяся машина без учителя Алгоритм K-means
Slide 13
Slide 14
Здесь мы используем заранее известный факт что необходимо кла
Еще одна иллюстрация работы алгоритма K-means
Обучающаяся машина без учителя Алгоритм KNN (Nearest Neighbor)
Как работает алгоритм KNN
knn(train test cl k = 1 l = 0 prob = FALSE useall = TRUE
Slide 20
Результаты кластеризации и зависимость ошибки от числа кластеро
Recursive PartitioningRegression Tree
Метод RP реализует обучение машины строить дерево решений по об
Recursive PartitioningRegression Tree (2)
rpart(formula data weights subset naaction = narpart met
Slide 26
Recursive PartitioningRegression Tree example
Анализ по главным компонентам (Principal Component Analysis PC
Итеративные алгоритмы с оптимальным разреженным кодированием IS
Самоорганизация данных методами Deep Learning
Знакомство с пакетом deepnet
Прогнозирование (классификация) нейронной сетью с архитектурой
Arguments
Архитектура сети SAE
Архитектура с 5Х4 hidden 3 outs
Example
Анализ обучающего набора данных
Параметры SAE сети
Коэффициенты связей
Предсказание обученной сетью
Сравнение обучающей и тестовой выборки
plot3d(xy)
Работаем с пакетом MNIST
httpyannlecuncomexdbmnist
Подготовка к обработке
Slide 118
Визуализация
plotmnist()
Распознавание рукописных цифр в deepnet
End of slides part 2 (Part 3 - NLP remaining)
Сравнение PCA и LDA
>
Метод опорных векторов (Support Vector Machines - SVM)Относится к ML с учителем и использует линейные разделяющие поверхности
Идея алгоритма
bull По обучающей выборке
bull Строится классифицирующая функция
bull Используя гиперплоскость
bull Поиск коэффициентов сводится к максимизации
расстояний от опорных векторов или минимизации
Иллюстрация на простейшем примере
>
Производится вложение обучающей выборки в пространство более высокой размерности Х с помощью нелинейной функции так чтобы обеспечит линейную разделимость в Х
Разделяющая функция тогда имеет вид
Функция называется ядром
Полиномиальное ядро
Радиальная базисная функция
Сигмоид
Линейная неразделимость и использование ядер
Иллюстрация использования ядра для отображения 2D -gt 3D
>
svm((formula data = NULL subset naaction =naomit scale = TRUE))
formulaa symbolic description of the model to be fitdataan optional data frame containing the variables in the model By default the variables are taken from the environment which lsquosvmrsquo is called fromxa data matrix a vector or a sparse matrix (object of class Matrix provided by the Matrix package or of class matrixcsr provided by the SparseM package or of class simple_triplet_matrix provided by the slam package)ya response vector with one label for each rowcomponent of x Can be either a factor (for classification tasks) or a numeric vector (for regression)scaleA logical vector indicating the variables to be scaled If scale is of length 1 the value is recycled as many times as needed Per default data are scaled internally (both x and y variables) to zero mean and unit variance The center and scale values are returned and used for later predictionstypesvm can be used as a classification machine as a regression machine or for novelty detection Depending of whether y is a factor or not the default setting for type is C-classification or eps-regression respectively but may be overwritten by setting an explicit valueValid options areC-classificationnu-classificationone-classification (for novelty detection)eps-regressionnu-regression
Support Vector Machines
s lt- svm( I(factor(class)) ~ x + y data = train cost = 100 gama = 1)
Package lsquodeepnetrsquo February 19 2015 Type Package Title deep learning toolkit in R Version 02 Date 2014-03-20 Author Xiao Rong Maintainer Xiao Rong Description Implement some deep learning architectures and neural network algorithms including BPRBMDBNDeep autoencoder and so on License GPL NeedsCompilation no Repository CRAN DatePublication 2014-03-20 100343
laquoВ 1997 году Deep Blue обыграл в шахматы КаспароваВ 2011 Watson обставил чемпионов JeopardyСможет ли ваш алгоритм в 2013 году отличить Бобика от ПушистикаraquoKaggle Competitions Details
Сегодня уже можно ответить laquoдаraquo mdash десятка лидеров справилась с заданием на 988
Распознавание основано на feature detection и последующем различении комбинаций
Заранее неизвестно какие части картинки могут использоваться как хорошие features В их роли может выступать все что угодно mdash фрагменты изображения форма размер или цвет Feature может не присутствовать на картинке сама а выражаться в параметре полученным каким-то образом из исходных данных
Распознавание рукописных цифр
Еще пример посложнее
Использование нейронной сети с обучениемОбучение такой нейронной сети производится обычно методом обратного распространения ошибки таким образом чтобы минимизировать среднеквадратическую ошибку отклика сети на обучающей выборке Таким образом обучающая выборка содержит пары векторов признаков (входные данные) и эталонных векторов (маркированные данные) (x y)
Сверхвысокая размерность при работе с первичным представлением пикселями
Пиксельное кодирование
Принцип иерархии понятий ndash основа deep learning
bull Все вещи состоят из других маленьких и более элементарных вещей
bull Как извлекать features Гипотеза малоразмерных многообразий
Разреженное (sparse) кодирование
первый уровень иерархии состоит из элементов словаря этого кода которые представляют собой штрихи и границы
Словарь для лиц
Выделение объектов заданного класса
Основные архитектуры Deep Learningbull Deep neural networks (DNN)bull Deep belief networks (DBN)bull Convolutional neural networks (CNN)bull Deep Boltzmann Machines (DBM)bull Stacked (Denoising) Auto-Encodersbull Deep Stacking Networksbull Tensor Deep Stacking Networks (T-DSN)bull Spike-and-Slab RBMs (ssRBMs)bull Compound Hierarchical-Deep Modelsbull Deep Coding Networks (DPCN)bull Deep Kernel Machinesbull Deep Q-Networks (2015 г)
Задача классификации распознавания и подобные являются задачей конструирования функции на множестве входных наборов и со значениями в множестве требуемого вида выходных
bull Норбертом Винером было показано что любая функция может быть сколь угодно точно композицией двух (он использовал функции полином Лагранжа и функцию Лагерра)
bull Соответствует двухслойной нейросетиbull Архитектуры Deep Learning соответствуют представлению
bull Обеспечивают эффективную параметризацию при решении конкретных задач Более сложные функции создаются из большего числа но более эффективно настраиваемых laquoкирпичиковraquo Пример ndash синтез булевых функций Дерево вентилей эффективнее двухслойной схемы
Фактор - графыВсе методы которые расмотрели ndash не DL Даже деревья классификации Все операции в одном входном словаре
DL можно определить по фактор-графу
Например
bull Еще одна сторона DL - нередко использует невыпуклые функции потерьbull Обучение на основе выпуклых функций не зависит от порядка
предъявления данных для обучения Все определяет асимптотика всего train - набора В алгоритмах DL порядок данных в обучающей выборке может иметь значение
bull Многие решения в DL не доказаны математически и являются успешными эвристиками
bull Большой простор для прикладной математики Может рассматриваться как фактор-граф с группами латентных переменных
bull В настоящее время стал основной технологией в распознавании речи (speech recognition) и машинном зрении (computer vision) начал применяться в обработке текстов (natural language processing)
bull Основная идея ndash применение нелинейного отображения входного набора в более высокоразмерное пространство где многие неразделимые композиции становятся разделимыми а затем объединение композиций по семантической близости
Подход разреженного кодирования
Обобщенная архитектура
bull DL сеть может быть собрана каскадированием и использованием обучения с учителем
Здесь используется forward propagation для обучения
Для настройки коэффициентов используется метод fprof для каждого
Требуется знание градиента энергии
Элементы (kl) матрицы Якобиана
Требуется знание градиента энергии 120597119864120597119882119894 = 120597119864120597119883119894120597119865119894(119883119894minus1119882119894)120597119882119894
ሾ1times 119873119908ሿ= ሾ1times 119873119909ሿlowast[119873119909 times 119873119908] Элементы (kl) матрицы Якобиана
Сводится к рекуррентному соотношению для вычисления градиента 120597119864120597119883119894minus1 = 120597119864120597119883119894120597119865119894(119883119894minus1119882119894)120597119883119894minus1
В итоге
Для вычисления градиента может использоваться метод back propagation
В действительности работают любые архитектуры построения функции Нужно конструировать связи и функции блоков
Язык Torch 7 ndash современный инструмент моделирования и имплементации
Machine Learning with Torch7 (httpcodecogbitscomwikidokuphpid=start)
bull These tutorials were originally designed for the IPAM Summer School on Deep Learning more info herebull This wiki provides multiple tutorials with the overall objective of teaching you how to do machine learning
with Torch7bull Torch7 provides a Matlab-like environment for state-of-the-art machine learning algorithms It is easy to use
and provides a very efficient implementation thanks to an easy and fast scripting language (LuaJIT) and an underlying C implementation
bull These tutorials should be readdone in orderbull Tutorial 1 Setup Basics Getting Startedbull Tutorial 2 Supervised Learningbull Tutorial 3 Unsupervised Learningbull Tutorial 4 Graphical Modelsbull Tutorial 5 Creating New Modulesbull Tutorial 6 Using CUDAbull To follow these tutorials and do the exercises you will need to download the associated code which is hosted
on GitHub on this page In this repository each directory corresponds to a tutorial herebull starttxt middot Last modified 20140204 2246 by clement
Torch 7 является расширением Lua
What is LuaLua is a powerful fast lightweight embeddable scripting languageLua combines simple procedural syntax with powerful data description constructs based on associative arrays and extensible semantics Lua is dynamically typed runs by interpreting bytecode for a register-based virtual machine and has automatic memory management with incremental garbage collection making it ideal for configuration scripting and rapid prototyping
Why choose LuaLua is a proven robust languageLua has been used in many industrial applications (eg Adobes Photoshop Lightroom) with an emphasis on embedded systems (eg the Ginga middleware for digital TV in Brazil) and games (eg World of Warcraft and Angry Birds) Lua is currently the leading scripting language in games Lua has a solid reference manual and there are several books about it Several versions of Lua have been released and used in real applications since its creation in 1993 Lua featured in HOPL III the Third ACM SIGPLAN History of Programming Languages Conference in June 2007 Lua won the Front Line Award 2011 from the Game Developers Magazine
Свертка и архитектура 4-х уровневой сверточной сети
Функциональная структура
Примеры успешного применения сверточных сетей
Диагностика эпилепсии по ЭЭГ
Реализация сверточной сетью
Одна из самых больших сверточных сетейbull Krizhevsky Sutskever Hinton 2012bull 650 000 нейронов 832 000 000 синапсов 60 000000 пареметровbull Использовался backprop на GPUbull Обучающая выборка на материалах 20 летbull Купил Google в январе 2013bull В мае 2013 развернул как сервис Photo Tagging Google+
Пример тэгирования
Пример поиска похожих по изображению
Пример поиска в коллекции изображений по текстовому запросу
Пример laquoоблачногоraquo классификатора изображений
Самообучающиеся нейронные сети на основе минимизации функции энергииbull Применима к сетям с обратными связямиbull Конструирование функции энергии должно обеспечивать
laquoконтрастностьraquo разделения
bull Энергетическая функция может Неформально рассматриваться как отрицательный логарифм плотности вероятности
Y 2=(Y1)2
RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцмана
bull Из DBM cтроится Deep Belief Network (DBN)
bull w mdash вес между нейронами
bull b mdash смещение нейрона
bull s mdash состояние нейрона
Алгоритм обучения Contrastive Divergence (CD)bull w_ij mdash веc между i-ым нейроном Вероятность пар может быть представлена как
bull a_i mdash смещение видимого нейрона
bull b_j mdash смещение скрытого нейрона
bull v_i mdash состояние видимого нейрона
bull h_j mdash состояние скрытого нейрона Полная вероятность состояния видимых нейронов
Основные уравнения адаптации
Алгоритм Хинтона - Contrastive Divergence (CD-k)
1 состояние видимых нейронов приравнивается к входному образу2 выводятся вероятности состояний скрытого слоя3 каждому нейрону скрытого слоя ставится в соответствие состояние laquo1raquo с вероятностью равной его текущему состоянию4 выводятся вероятности видимого слоя на основании скрытого5 если текущая итерация меньше k то возврат к шагу 26 выводятся вероятности состояний скрытого слоя
darch Package for deep architectures and Restricted-Bolzmann-MachinesThe darch package is build on the basis of the code from G E Hinton and R R Salakhutdinov (available under Matlab Code for deep belief nets last visit 01082013) This package is for generating neural networks with many layers (deep architectures) and train them with the method introduced by the publications A fast learning algorithm for deep belief nets (G E Hinton S Osindero Y W Teh) and Reducing the dimensionality of data with neural networks (G E Hinton R R Salakhutdinov) This method includes a pre training with the contrastive divergence method publishing by GE Hinton (2002) and a fine tuning with common known training algorithms like backpropagation or conjugate gradient
bull Version 091bull Imports futilelogger ff methodsbull Published 2014-03-16bull Author Martin Dreesbull Maintainer Martin Drees ltmdrees at studfh-dortmunddegtbull License GPL-2bull URL httpgithubcommaddin79darchbull NeedsCompilation nobull Materials READMEbull CRAN checks darch results
Связь плотности вероятности и энергии
Используется распределение Гиббса
Задача обучения с точки минимизации энергии сети
bull Сконструировать функцию энергии с малыми значениями на обучающей выборке и с большими значениями всюду вне этого множества
bull Первое несложно а второе представляет задачу процесса обучения
Интуитивные соображения
Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decomposition LISTA ndashметоды использующие разреженные коды
Латентная переменная Z =argmin_z Distance[Decoder(Z)Y]+FactorB(Z)MAPminimaize sum of factors
Автоэнкодер (auto encoder) Автоэнкодер представляет собой алгоритм обучения без учителя который использует нейронную сеть и метод обратного распространения ошибки для того чтобы добиться того что входной вектор признаков вызывал отклик сети равный входному вектору те y = x Автоэнкодер пытается построить функцию h(x) = x
Архитекттура ICA моделей
Итеративные алгоритмы с оптимальным разреженным кодированием ISTAFISTA
Самоорганизация данных методами Deep Learning
>
Знакомство с пакетом deepnet
Назначение
Составdbndnntrain - обучение сети с архитектурой DBN (deep belief network)loadmnist - формирование данных из файлов MNISTnnpredict - предсказание новых выборок на обученной нейронной сетиnntest ndash тестирование обученной нейронной сети с возвращением значения ошибкиnntrain ndash обучение одностлойной или многослойной нейронной сети методом backproprbmdown ndash генерирование видимого вектора для скрытых состояний сети RBMrbmtrain ndash обучение сети RBMrbmup ndash извлечение скрытых состояний RBM по известным видимым состояниямsaednntrain ndash обучение нейронной сети с архитектурой stacked autoencoder
Прогнозирование (классификация) нейронной сетью с архитектурой stacked auto encoder
Argumentsbull x matrix of x values for examplesbull y vector or matrix of target values for examplesbull hidden vector for number of units of hidden layersDefault is c(10)bull activationfun activation function of hidden unitCan be sigmlinear or tanhDefault isbull sigm for logistic functionbull learningrate learning rate for gradient descent Default is 08bull momentum momentum for gradient descent Default is 05 bull learningrate_scalebull learning rate will be mutiplied by this scale after every iteration Default is 1 bull numepochs number of iteration for samples Default is 3bull batchsize size of mini-batch Default is 100bull output function of output unit can be sigmlinear or softmax Default is sigmbull sae_output function of autoencoder output unit can be sigmlinear or softmax Defaultbull is linearbull hidden_dropout drop out fraction for hidden layer Default is 0bull visible_dropoutbull drop out fraction for input layer Default is 0
Что такое MNISTbull Смешанный набор данных Национального института стандартов и
технологий (mixed National Institute of Standards and Technology MNIST) был создан исследователями IR в качестве эталона для сравнения различных алгоритмов IR
bull Набор данных состоит всего из 70 000 изображений 60 000 обучающих (используемых для создания модели IR) и 10 000 тестовых (применяемых для оценки точности модели) Каждое изображение MNIST mdash это оцифрованная картинка одной цифры написанной от руки Каждое изображение имеет размер 28 times 28 пикселей Каждое значение пикселя лежит в диапазоне от 0 (представляет белый цвет) до 255 (представляет черный цвет) Промежуточные значения отражают оттенки серого
httpyannlecuncomexdbmnistобучающие и тестовые данные хранятся в двух файлах а не в одном Один файл содержит значения пикселей для изображений а другой mdash метки изображений (0ndash9) Каждый из четырех файлов также содержит заголовочную информацию и все они хранятся в двоичном формате сжатом в формате gziptrain-images-idx3-ubytegz training set images (9912422 bytes)
train-labels-idx1-ubytegz training set labels (28881 bytes)
t10k-images-idx3-ubytegz test set images (1648877 bytes)
t10k-labels-idx1-ubytegz test set labels (4542 bytes)
bull Каждая строка файла представляет собой имидж размера 28 times 28 вектором длины 784 каждый признак ndash значение пиксела в черно-белой шале Первый столбец содержит метку цифры 0ndash9 следующие 2828 столбцов представляют целый имидж и так далее Пример первой строки
Визуализация
bull plotmnist()bull mnistbull paramsbull train$n number of train samplesbull train$x pix of every train sample imagebull train$y label of every train sample imagebull train$yy one-of-c vector of label of train sample imagebull test$n number of test samplesbull test$x pix of every test sample imagebull test$y label of every test sample imagebull test$yy one-of-c vector of label of test sample image
plotmnist()
Распознавание рукописных цифр в deepnet
another way to download the MNIST datasetmnist downloadmnist(range=c(01)global=FALSE)look at MNIST datamnist$train$xmnist$train$ymnist$test$xmnist$test$ytrain of the sae neural networkdnnlt-saednntrain(mnist$train$xmnist$train$yhidden=c(55))test of the sae neural networknntest(dnnmnist$test$xmnist$test$yt=05)
End of slides part 2 (Part 3 - NLP remaining)
Vladimirvkrylovgmailcom
Основы предиктивной аналитики Часть вторая
Применение методов Machine Learning к решению задач аналитики
Дмитрий Ветров кандидат физико-математических наук ру
Методы обучающихся машин для аналитики которые мы рассмотрим
Сначала нужно загрузить несколько пакетов (packages) для поддер
Данные для анализа
Скрипт для генерации
Данные которые мы будем использовать для демо состоят из смес
Так выглядят визуализированные данные сгенерированные скриптом
Разделение данных на обучающие и проверочные является важным эт
K-means алгоритм на пальцах
Обучающаяся машина без учителя Алгоритм K-means
Slide 13
Slide 14
Здесь мы используем заранее известный факт что необходимо кла
Еще одна иллюстрация работы алгоритма K-means
Обучающаяся машина без учителя Алгоритм KNN (Nearest Neighbor)
Как работает алгоритм KNN
knn(train test cl k = 1 l = 0 prob = FALSE useall = TRUE
Slide 20
Результаты кластеризации и зависимость ошибки от числа кластеро
Recursive PartitioningRegression Tree
Метод RP реализует обучение машины строить дерево решений по об
Recursive PartitioningRegression Tree (2)
rpart(formula data weights subset naaction = narpart met
Slide 26
Recursive PartitioningRegression Tree example
Анализ по главным компонентам (Principal Component Analysis PC
Итеративные алгоритмы с оптимальным разреженным кодированием IS
Самоорганизация данных методами Deep Learning
Знакомство с пакетом deepnet
Прогнозирование (классификация) нейронной сетью с архитектурой
Arguments
Архитектура сети SAE
Архитектура с 5Х4 hidden 3 outs
Example
Анализ обучающего набора данных
Параметры SAE сети
Коэффициенты связей
Предсказание обученной сетью
Сравнение обучающей и тестовой выборки
plot3d(xy)
Работаем с пакетом MNIST
httpyannlecuncomexdbmnist
Подготовка к обработке
Slide 118
Визуализация
plotmnist()
Распознавание рукописных цифр в deepnet
End of slides part 2 (Part 3 - NLP remaining)
Метод опорных векторов (Support Vector Machines - SVM)Относится к ML с учителем и использует линейные разделяющие поверхности
Идея алгоритма
bull По обучающей выборке
bull Строится классифицирующая функция
bull Используя гиперплоскость
bull Поиск коэффициентов сводится к максимизации
расстояний от опорных векторов или минимизации
Иллюстрация на простейшем примере
>
Производится вложение обучающей выборки в пространство более высокой размерности Х с помощью нелинейной функции так чтобы обеспечит линейную разделимость в Х
Разделяющая функция тогда имеет вид
Функция называется ядром
Полиномиальное ядро
Радиальная базисная функция
Сигмоид
Линейная неразделимость и использование ядер
Иллюстрация использования ядра для отображения 2D -gt 3D
>
svm((formula data = NULL subset naaction =naomit scale = TRUE))
formulaa symbolic description of the model to be fitdataan optional data frame containing the variables in the model By default the variables are taken from the environment which lsquosvmrsquo is called fromxa data matrix a vector or a sparse matrix (object of class Matrix provided by the Matrix package or of class matrixcsr provided by the SparseM package or of class simple_triplet_matrix provided by the slam package)ya response vector with one label for each rowcomponent of x Can be either a factor (for classification tasks) or a numeric vector (for regression)scaleA logical vector indicating the variables to be scaled If scale is of length 1 the value is recycled as many times as needed Per default data are scaled internally (both x and y variables) to zero mean and unit variance The center and scale values are returned and used for later predictionstypesvm can be used as a classification machine as a regression machine or for novelty detection Depending of whether y is a factor or not the default setting for type is C-classification or eps-regression respectively but may be overwritten by setting an explicit valueValid options areC-classificationnu-classificationone-classification (for novelty detection)eps-regressionnu-regression
Support Vector Machines
s lt- svm( I(factor(class)) ~ x + y data = train cost = 100 gama = 1)
Package lsquodeepnetrsquo February 19 2015 Type Package Title deep learning toolkit in R Version 02 Date 2014-03-20 Author Xiao Rong Maintainer Xiao Rong Description Implement some deep learning architectures and neural network algorithms including BPRBMDBNDeep autoencoder and so on License GPL NeedsCompilation no Repository CRAN DatePublication 2014-03-20 100343
laquoВ 1997 году Deep Blue обыграл в шахматы КаспароваВ 2011 Watson обставил чемпионов JeopardyСможет ли ваш алгоритм в 2013 году отличить Бобика от ПушистикаraquoKaggle Competitions Details
Сегодня уже можно ответить laquoдаraquo mdash десятка лидеров справилась с заданием на 988
Распознавание основано на feature detection и последующем различении комбинаций
Заранее неизвестно какие части картинки могут использоваться как хорошие features В их роли может выступать все что угодно mdash фрагменты изображения форма размер или цвет Feature может не присутствовать на картинке сама а выражаться в параметре полученным каким-то образом из исходных данных
Распознавание рукописных цифр
Еще пример посложнее
Использование нейронной сети с обучениемОбучение такой нейронной сети производится обычно методом обратного распространения ошибки таким образом чтобы минимизировать среднеквадратическую ошибку отклика сети на обучающей выборке Таким образом обучающая выборка содержит пары векторов признаков (входные данные) и эталонных векторов (маркированные данные) (x y)
Сверхвысокая размерность при работе с первичным представлением пикселями
Пиксельное кодирование
Принцип иерархии понятий ndash основа deep learning
bull Все вещи состоят из других маленьких и более элементарных вещей
bull Как извлекать features Гипотеза малоразмерных многообразий
Разреженное (sparse) кодирование
первый уровень иерархии состоит из элементов словаря этого кода которые представляют собой штрихи и границы
Словарь для лиц
Выделение объектов заданного класса
Основные архитектуры Deep Learningbull Deep neural networks (DNN)bull Deep belief networks (DBN)bull Convolutional neural networks (CNN)bull Deep Boltzmann Machines (DBM)bull Stacked (Denoising) Auto-Encodersbull Deep Stacking Networksbull Tensor Deep Stacking Networks (T-DSN)bull Spike-and-Slab RBMs (ssRBMs)bull Compound Hierarchical-Deep Modelsbull Deep Coding Networks (DPCN)bull Deep Kernel Machinesbull Deep Q-Networks (2015 г)
Задача классификации распознавания и подобные являются задачей конструирования функции на множестве входных наборов и со значениями в множестве требуемого вида выходных
bull Норбертом Винером было показано что любая функция может быть сколь угодно точно композицией двух (он использовал функции полином Лагранжа и функцию Лагерра)
bull Соответствует двухслойной нейросетиbull Архитектуры Deep Learning соответствуют представлению
bull Обеспечивают эффективную параметризацию при решении конкретных задач Более сложные функции создаются из большего числа но более эффективно настраиваемых laquoкирпичиковraquo Пример ndash синтез булевых функций Дерево вентилей эффективнее двухслойной схемы
Фактор - графыВсе методы которые расмотрели ndash не DL Даже деревья классификации Все операции в одном входном словаре
DL можно определить по фактор-графу
Например
bull Еще одна сторона DL - нередко использует невыпуклые функции потерьbull Обучение на основе выпуклых функций не зависит от порядка
предъявления данных для обучения Все определяет асимптотика всего train - набора В алгоритмах DL порядок данных в обучающей выборке может иметь значение
bull Многие решения в DL не доказаны математически и являются успешными эвристиками
bull Большой простор для прикладной математики Может рассматриваться как фактор-граф с группами латентных переменных
bull В настоящее время стал основной технологией в распознавании речи (speech recognition) и машинном зрении (computer vision) начал применяться в обработке текстов (natural language processing)
bull Основная идея ndash применение нелинейного отображения входного набора в более высокоразмерное пространство где многие неразделимые композиции становятся разделимыми а затем объединение композиций по семантической близости
Подход разреженного кодирования
Обобщенная архитектура
bull DL сеть может быть собрана каскадированием и использованием обучения с учителем
Здесь используется forward propagation для обучения
Для настройки коэффициентов используется метод fprof для каждого
Требуется знание градиента энергии
Элементы (kl) матрицы Якобиана
Требуется знание градиента энергии 120597119864120597119882119894 = 120597119864120597119883119894120597119865119894(119883119894minus1119882119894)120597119882119894
ሾ1times 119873119908ሿ= ሾ1times 119873119909ሿlowast[119873119909 times 119873119908] Элементы (kl) матрицы Якобиана
Сводится к рекуррентному соотношению для вычисления градиента 120597119864120597119883119894minus1 = 120597119864120597119883119894120597119865119894(119883119894minus1119882119894)120597119883119894minus1
В итоге
Для вычисления градиента может использоваться метод back propagation
В действительности работают любые архитектуры построения функции Нужно конструировать связи и функции блоков
Язык Torch 7 ndash современный инструмент моделирования и имплементации
Machine Learning with Torch7 (httpcodecogbitscomwikidokuphpid=start)
bull These tutorials were originally designed for the IPAM Summer School on Deep Learning more info herebull This wiki provides multiple tutorials with the overall objective of teaching you how to do machine learning
with Torch7bull Torch7 provides a Matlab-like environment for state-of-the-art machine learning algorithms It is easy to use
and provides a very efficient implementation thanks to an easy and fast scripting language (LuaJIT) and an underlying C implementation
bull These tutorials should be readdone in orderbull Tutorial 1 Setup Basics Getting Startedbull Tutorial 2 Supervised Learningbull Tutorial 3 Unsupervised Learningbull Tutorial 4 Graphical Modelsbull Tutorial 5 Creating New Modulesbull Tutorial 6 Using CUDAbull To follow these tutorials and do the exercises you will need to download the associated code which is hosted
on GitHub on this page In this repository each directory corresponds to a tutorial herebull starttxt middot Last modified 20140204 2246 by clement
Torch 7 является расширением Lua
What is LuaLua is a powerful fast lightweight embeddable scripting languageLua combines simple procedural syntax with powerful data description constructs based on associative arrays and extensible semantics Lua is dynamically typed runs by interpreting bytecode for a register-based virtual machine and has automatic memory management with incremental garbage collection making it ideal for configuration scripting and rapid prototyping
Why choose LuaLua is a proven robust languageLua has been used in many industrial applications (eg Adobes Photoshop Lightroom) with an emphasis on embedded systems (eg the Ginga middleware for digital TV in Brazil) and games (eg World of Warcraft and Angry Birds) Lua is currently the leading scripting language in games Lua has a solid reference manual and there are several books about it Several versions of Lua have been released and used in real applications since its creation in 1993 Lua featured in HOPL III the Third ACM SIGPLAN History of Programming Languages Conference in June 2007 Lua won the Front Line Award 2011 from the Game Developers Magazine
Свертка и архитектура 4-х уровневой сверточной сети
Функциональная структура
Примеры успешного применения сверточных сетей
Диагностика эпилепсии по ЭЭГ
Реализация сверточной сетью
Одна из самых больших сверточных сетейbull Krizhevsky Sutskever Hinton 2012bull 650 000 нейронов 832 000 000 синапсов 60 000000 пареметровbull Использовался backprop на GPUbull Обучающая выборка на материалах 20 летbull Купил Google в январе 2013bull В мае 2013 развернул как сервис Photo Tagging Google+
Пример тэгирования
Пример поиска похожих по изображению
Пример поиска в коллекции изображений по текстовому запросу
Пример laquoоблачногоraquo классификатора изображений
Самообучающиеся нейронные сети на основе минимизации функции энергииbull Применима к сетям с обратными связямиbull Конструирование функции энергии должно обеспечивать
laquoконтрастностьraquo разделения
bull Энергетическая функция может Неформально рассматриваться как отрицательный логарифм плотности вероятности
Y 2=(Y1)2
RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцмана
bull Из DBM cтроится Deep Belief Network (DBN)
bull w mdash вес между нейронами
bull b mdash смещение нейрона
bull s mdash состояние нейрона
Алгоритм обучения Contrastive Divergence (CD)bull w_ij mdash веc между i-ым нейроном Вероятность пар может быть представлена как
bull a_i mdash смещение видимого нейрона
bull b_j mdash смещение скрытого нейрона
bull v_i mdash состояние видимого нейрона
bull h_j mdash состояние скрытого нейрона Полная вероятность состояния видимых нейронов
Основные уравнения адаптации
Алгоритм Хинтона - Contrastive Divergence (CD-k)
1 состояние видимых нейронов приравнивается к входному образу2 выводятся вероятности состояний скрытого слоя3 каждому нейрону скрытого слоя ставится в соответствие состояние laquo1raquo с вероятностью равной его текущему состоянию4 выводятся вероятности видимого слоя на основании скрытого5 если текущая итерация меньше k то возврат к шагу 26 выводятся вероятности состояний скрытого слоя
darch Package for deep architectures and Restricted-Bolzmann-MachinesThe darch package is build on the basis of the code from G E Hinton and R R Salakhutdinov (available under Matlab Code for deep belief nets last visit 01082013) This package is for generating neural networks with many layers (deep architectures) and train them with the method introduced by the publications A fast learning algorithm for deep belief nets (G E Hinton S Osindero Y W Teh) and Reducing the dimensionality of data with neural networks (G E Hinton R R Salakhutdinov) This method includes a pre training with the contrastive divergence method publishing by GE Hinton (2002) and a fine tuning with common known training algorithms like backpropagation or conjugate gradient
bull Version 091bull Imports futilelogger ff methodsbull Published 2014-03-16bull Author Martin Dreesbull Maintainer Martin Drees ltmdrees at studfh-dortmunddegtbull License GPL-2bull URL httpgithubcommaddin79darchbull NeedsCompilation nobull Materials READMEbull CRAN checks darch results
Связь плотности вероятности и энергии
Используется распределение Гиббса
Задача обучения с точки минимизации энергии сети
bull Сконструировать функцию энергии с малыми значениями на обучающей выборке и с большими значениями всюду вне этого множества
bull Первое несложно а второе представляет задачу процесса обучения
Интуитивные соображения
Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decomposition LISTA ndashметоды использующие разреженные коды
Латентная переменная Z =argmin_z Distance[Decoder(Z)Y]+FactorB(Z)MAPminimaize sum of factors
Автоэнкодер (auto encoder) Автоэнкодер представляет собой алгоритм обучения без учителя который использует нейронную сеть и метод обратного распространения ошибки для того чтобы добиться того что входной вектор признаков вызывал отклик сети равный входному вектору те y = x Автоэнкодер пытается построить функцию h(x) = x
Архитекттура ICA моделей
Итеративные алгоритмы с оптимальным разреженным кодированием ISTAFISTA
Самоорганизация данных методами Deep Learning
>
Знакомство с пакетом deepnet
Назначение
Составdbndnntrain - обучение сети с архитектурой DBN (deep belief network)loadmnist - формирование данных из файлов MNISTnnpredict - предсказание новых выборок на обученной нейронной сетиnntest ndash тестирование обученной нейронной сети с возвращением значения ошибкиnntrain ndash обучение одностлойной или многослойной нейронной сети методом backproprbmdown ndash генерирование видимого вектора для скрытых состояний сети RBMrbmtrain ndash обучение сети RBMrbmup ndash извлечение скрытых состояний RBM по известным видимым состояниямsaednntrain ndash обучение нейронной сети с архитектурой stacked autoencoder
Прогнозирование (классификация) нейронной сетью с архитектурой stacked auto encoder
Argumentsbull x matrix of x values for examplesbull y vector or matrix of target values for examplesbull hidden vector for number of units of hidden layersDefault is c(10)bull activationfun activation function of hidden unitCan be sigmlinear or tanhDefault isbull sigm for logistic functionbull learningrate learning rate for gradient descent Default is 08bull momentum momentum for gradient descent Default is 05 bull learningrate_scalebull learning rate will be mutiplied by this scale after every iteration Default is 1 bull numepochs number of iteration for samples Default is 3bull batchsize size of mini-batch Default is 100bull output function of output unit can be sigmlinear or softmax Default is sigmbull sae_output function of autoencoder output unit can be sigmlinear or softmax Defaultbull is linearbull hidden_dropout drop out fraction for hidden layer Default is 0bull visible_dropoutbull drop out fraction for input layer Default is 0
Что такое MNISTbull Смешанный набор данных Национального института стандартов и
технологий (mixed National Institute of Standards and Technology MNIST) был создан исследователями IR в качестве эталона для сравнения различных алгоритмов IR
bull Набор данных состоит всего из 70 000 изображений 60 000 обучающих (используемых для создания модели IR) и 10 000 тестовых (применяемых для оценки точности модели) Каждое изображение MNIST mdash это оцифрованная картинка одной цифры написанной от руки Каждое изображение имеет размер 28 times 28 пикселей Каждое значение пикселя лежит в диапазоне от 0 (представляет белый цвет) до 255 (представляет черный цвет) Промежуточные значения отражают оттенки серого
httpyannlecuncomexdbmnistобучающие и тестовые данные хранятся в двух файлах а не в одном Один файл содержит значения пикселей для изображений а другой mdash метки изображений (0ndash9) Каждый из четырех файлов также содержит заголовочную информацию и все они хранятся в двоичном формате сжатом в формате gziptrain-images-idx3-ubytegz training set images (9912422 bytes)
train-labels-idx1-ubytegz training set labels (28881 bytes)
t10k-images-idx3-ubytegz test set images (1648877 bytes)
t10k-labels-idx1-ubytegz test set labels (4542 bytes)
bull Каждая строка файла представляет собой имидж размера 28 times 28 вектором длины 784 каждый признак ndash значение пиксела в черно-белой шале Первый столбец содержит метку цифры 0ndash9 следующие 2828 столбцов представляют целый имидж и так далее Пример первой строки
Визуализация
bull plotmnist()bull mnistbull paramsbull train$n number of train samplesbull train$x pix of every train sample imagebull train$y label of every train sample imagebull train$yy one-of-c vector of label of train sample imagebull test$n number of test samplesbull test$x pix of every test sample imagebull test$y label of every test sample imagebull test$yy one-of-c vector of label of test sample image
plotmnist()
Распознавание рукописных цифр в deepnet
another way to download the MNIST datasetmnist downloadmnist(range=c(01)global=FALSE)look at MNIST datamnist$train$xmnist$train$ymnist$test$xmnist$test$ytrain of the sae neural networkdnnlt-saednntrain(mnist$train$xmnist$train$yhidden=c(55))test of the sae neural networknntest(dnnmnist$test$xmnist$test$yt=05)
End of slides part 2 (Part 3 - NLP remaining)
Vladimirvkrylovgmailcom
Основы предиктивной аналитики Часть вторая
Применение методов Machine Learning к решению задач аналитики
Дмитрий Ветров кандидат физико-математических наук ру
Методы обучающихся машин для аналитики которые мы рассмотрим
Сначала нужно загрузить несколько пакетов (packages) для поддер
Данные для анализа
Скрипт для генерации
Данные которые мы будем использовать для демо состоят из смес
Так выглядят визуализированные данные сгенерированные скриптом
Разделение данных на обучающие и проверочные является важным эт
K-means алгоритм на пальцах
Обучающаяся машина без учителя Алгоритм K-means
Slide 13
Slide 14
Здесь мы используем заранее известный факт что необходимо кла
Еще одна иллюстрация работы алгоритма K-means
Обучающаяся машина без учителя Алгоритм KNN (Nearest Neighbor)
Как работает алгоритм KNN
knn(train test cl k = 1 l = 0 prob = FALSE useall = TRUE
Slide 20
Результаты кластеризации и зависимость ошибки от числа кластеро
Recursive PartitioningRegression Tree
Метод RP реализует обучение машины строить дерево решений по об
Recursive PartitioningRegression Tree (2)
rpart(formula data weights subset naaction = narpart met
Slide 26
Recursive PartitioningRegression Tree example
Анализ по главным компонентам (Principal Component Analysis PC
Итеративные алгоритмы с оптимальным разреженным кодированием IS
Самоорганизация данных методами Deep Learning
Знакомство с пакетом deepnet
Прогнозирование (классификация) нейронной сетью с архитектурой
Arguments
Архитектура сети SAE
Архитектура с 5Х4 hidden 3 outs
Example
Анализ обучающего набора данных
Параметры SAE сети
Коэффициенты связей
Предсказание обученной сетью
Сравнение обучающей и тестовой выборки
plot3d(xy)
Работаем с пакетом MNIST
httpyannlecuncomexdbmnist
Подготовка к обработке
Slide 118
Визуализация
plotmnist()
Распознавание рукописных цифр в deepnet
End of slides part 2 (Part 3 - NLP remaining)
Идея алгоритма
bull По обучающей выборке
bull Строится классифицирующая функция
bull Используя гиперплоскость
bull Поиск коэффициентов сводится к максимизации
расстояний от опорных векторов или минимизации
Иллюстрация на простейшем примере
>
Производится вложение обучающей выборки в пространство более высокой размерности Х с помощью нелинейной функции так чтобы обеспечит линейную разделимость в Х
Разделяющая функция тогда имеет вид
Функция называется ядром
Полиномиальное ядро
Радиальная базисная функция
Сигмоид
Линейная неразделимость и использование ядер
Иллюстрация использования ядра для отображения 2D -gt 3D
>
svm((formula data = NULL subset naaction =naomit scale = TRUE))
formulaa symbolic description of the model to be fitdataan optional data frame containing the variables in the model By default the variables are taken from the environment which lsquosvmrsquo is called fromxa data matrix a vector or a sparse matrix (object of class Matrix provided by the Matrix package or of class matrixcsr provided by the SparseM package or of class simple_triplet_matrix provided by the slam package)ya response vector with one label for each rowcomponent of x Can be either a factor (for classification tasks) or a numeric vector (for regression)scaleA logical vector indicating the variables to be scaled If scale is of length 1 the value is recycled as many times as needed Per default data are scaled internally (both x and y variables) to zero mean and unit variance The center and scale values are returned and used for later predictionstypesvm can be used as a classification machine as a regression machine or for novelty detection Depending of whether y is a factor or not the default setting for type is C-classification or eps-regression respectively but may be overwritten by setting an explicit valueValid options areC-classificationnu-classificationone-classification (for novelty detection)eps-regressionnu-regression
Support Vector Machines
s lt- svm( I(factor(class)) ~ x + y data = train cost = 100 gama = 1)
Package lsquodeepnetrsquo February 19 2015 Type Package Title deep learning toolkit in R Version 02 Date 2014-03-20 Author Xiao Rong Maintainer Xiao Rong Description Implement some deep learning architectures and neural network algorithms including BPRBMDBNDeep autoencoder and so on License GPL NeedsCompilation no Repository CRAN DatePublication 2014-03-20 100343
laquoВ 1997 году Deep Blue обыграл в шахматы КаспароваВ 2011 Watson обставил чемпионов JeopardyСможет ли ваш алгоритм в 2013 году отличить Бобика от ПушистикаraquoKaggle Competitions Details
Сегодня уже можно ответить laquoдаraquo mdash десятка лидеров справилась с заданием на 988
Распознавание основано на feature detection и последующем различении комбинаций
Заранее неизвестно какие части картинки могут использоваться как хорошие features В их роли может выступать все что угодно mdash фрагменты изображения форма размер или цвет Feature может не присутствовать на картинке сама а выражаться в параметре полученным каким-то образом из исходных данных
Распознавание рукописных цифр
Еще пример посложнее
Использование нейронной сети с обучениемОбучение такой нейронной сети производится обычно методом обратного распространения ошибки таким образом чтобы минимизировать среднеквадратическую ошибку отклика сети на обучающей выборке Таким образом обучающая выборка содержит пары векторов признаков (входные данные) и эталонных векторов (маркированные данные) (x y)
Сверхвысокая размерность при работе с первичным представлением пикселями
Пиксельное кодирование
Принцип иерархии понятий ndash основа deep learning
bull Все вещи состоят из других маленьких и более элементарных вещей
bull Как извлекать features Гипотеза малоразмерных многообразий
Разреженное (sparse) кодирование
первый уровень иерархии состоит из элементов словаря этого кода которые представляют собой штрихи и границы
Словарь для лиц
Выделение объектов заданного класса
Основные архитектуры Deep Learningbull Deep neural networks (DNN)bull Deep belief networks (DBN)bull Convolutional neural networks (CNN)bull Deep Boltzmann Machines (DBM)bull Stacked (Denoising) Auto-Encodersbull Deep Stacking Networksbull Tensor Deep Stacking Networks (T-DSN)bull Spike-and-Slab RBMs (ssRBMs)bull Compound Hierarchical-Deep Modelsbull Deep Coding Networks (DPCN)bull Deep Kernel Machinesbull Deep Q-Networks (2015 г)
Задача классификации распознавания и подобные являются задачей конструирования функции на множестве входных наборов и со значениями в множестве требуемого вида выходных
bull Норбертом Винером было показано что любая функция может быть сколь угодно точно композицией двух (он использовал функции полином Лагранжа и функцию Лагерра)
bull Соответствует двухслойной нейросетиbull Архитектуры Deep Learning соответствуют представлению
bull Обеспечивают эффективную параметризацию при решении конкретных задач Более сложные функции создаются из большего числа но более эффективно настраиваемых laquoкирпичиковraquo Пример ndash синтез булевых функций Дерево вентилей эффективнее двухслойной схемы
Фактор - графыВсе методы которые расмотрели ndash не DL Даже деревья классификации Все операции в одном входном словаре
DL можно определить по фактор-графу
Например
bull Еще одна сторона DL - нередко использует невыпуклые функции потерьbull Обучение на основе выпуклых функций не зависит от порядка
предъявления данных для обучения Все определяет асимптотика всего train - набора В алгоритмах DL порядок данных в обучающей выборке может иметь значение
bull Многие решения в DL не доказаны математически и являются успешными эвристиками
bull Большой простор для прикладной математики Может рассматриваться как фактор-граф с группами латентных переменных
bull В настоящее время стал основной технологией в распознавании речи (speech recognition) и машинном зрении (computer vision) начал применяться в обработке текстов (natural language processing)
bull Основная идея ndash применение нелинейного отображения входного набора в более высокоразмерное пространство где многие неразделимые композиции становятся разделимыми а затем объединение композиций по семантической близости
Подход разреженного кодирования
Обобщенная архитектура
bull DL сеть может быть собрана каскадированием и использованием обучения с учителем
Здесь используется forward propagation для обучения
Для настройки коэффициентов используется метод fprof для каждого
Требуется знание градиента энергии
Элементы (kl) матрицы Якобиана
Требуется знание градиента энергии 120597119864120597119882119894 = 120597119864120597119883119894120597119865119894(119883119894minus1119882119894)120597119882119894
ሾ1times 119873119908ሿ= ሾ1times 119873119909ሿlowast[119873119909 times 119873119908] Элементы (kl) матрицы Якобиана
Сводится к рекуррентному соотношению для вычисления градиента 120597119864120597119883119894minus1 = 120597119864120597119883119894120597119865119894(119883119894minus1119882119894)120597119883119894minus1
В итоге
Для вычисления градиента может использоваться метод back propagation
В действительности работают любые архитектуры построения функции Нужно конструировать связи и функции блоков
Язык Torch 7 ndash современный инструмент моделирования и имплементации
Machine Learning with Torch7 (httpcodecogbitscomwikidokuphpid=start)
bull These tutorials were originally designed for the IPAM Summer School on Deep Learning more info herebull This wiki provides multiple tutorials with the overall objective of teaching you how to do machine learning
with Torch7bull Torch7 provides a Matlab-like environment for state-of-the-art machine learning algorithms It is easy to use
and provides a very efficient implementation thanks to an easy and fast scripting language (LuaJIT) and an underlying C implementation
bull These tutorials should be readdone in orderbull Tutorial 1 Setup Basics Getting Startedbull Tutorial 2 Supervised Learningbull Tutorial 3 Unsupervised Learningbull Tutorial 4 Graphical Modelsbull Tutorial 5 Creating New Modulesbull Tutorial 6 Using CUDAbull To follow these tutorials and do the exercises you will need to download the associated code which is hosted
on GitHub on this page In this repository each directory corresponds to a tutorial herebull starttxt middot Last modified 20140204 2246 by clement
Torch 7 является расширением Lua
What is LuaLua is a powerful fast lightweight embeddable scripting languageLua combines simple procedural syntax with powerful data description constructs based on associative arrays and extensible semantics Lua is dynamically typed runs by interpreting bytecode for a register-based virtual machine and has automatic memory management with incremental garbage collection making it ideal for configuration scripting and rapid prototyping
Why choose LuaLua is a proven robust languageLua has been used in many industrial applications (eg Adobes Photoshop Lightroom) with an emphasis on embedded systems (eg the Ginga middleware for digital TV in Brazil) and games (eg World of Warcraft and Angry Birds) Lua is currently the leading scripting language in games Lua has a solid reference manual and there are several books about it Several versions of Lua have been released and used in real applications since its creation in 1993 Lua featured in HOPL III the Third ACM SIGPLAN History of Programming Languages Conference in June 2007 Lua won the Front Line Award 2011 from the Game Developers Magazine
Свертка и архитектура 4-х уровневой сверточной сети
Функциональная структура
Примеры успешного применения сверточных сетей
Диагностика эпилепсии по ЭЭГ
Реализация сверточной сетью
Одна из самых больших сверточных сетейbull Krizhevsky Sutskever Hinton 2012bull 650 000 нейронов 832 000 000 синапсов 60 000000 пареметровbull Использовался backprop на GPUbull Обучающая выборка на материалах 20 летbull Купил Google в январе 2013bull В мае 2013 развернул как сервис Photo Tagging Google+
Пример тэгирования
Пример поиска похожих по изображению
Пример поиска в коллекции изображений по текстовому запросу
Пример laquoоблачногоraquo классификатора изображений
Самообучающиеся нейронные сети на основе минимизации функции энергииbull Применима к сетям с обратными связямиbull Конструирование функции энергии должно обеспечивать
laquoконтрастностьraquo разделения
bull Энергетическая функция может Неформально рассматриваться как отрицательный логарифм плотности вероятности
Y 2=(Y1)2
RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцмана
bull Из DBM cтроится Deep Belief Network (DBN)
bull w mdash вес между нейронами
bull b mdash смещение нейрона
bull s mdash состояние нейрона
Алгоритм обучения Contrastive Divergence (CD)bull w_ij mdash веc между i-ым нейроном Вероятность пар может быть представлена как
bull a_i mdash смещение видимого нейрона
bull b_j mdash смещение скрытого нейрона
bull v_i mdash состояние видимого нейрона
bull h_j mdash состояние скрытого нейрона Полная вероятность состояния видимых нейронов
Основные уравнения адаптации
Алгоритм Хинтона - Contrastive Divergence (CD-k)
1 состояние видимых нейронов приравнивается к входному образу2 выводятся вероятности состояний скрытого слоя3 каждому нейрону скрытого слоя ставится в соответствие состояние laquo1raquo с вероятностью равной его текущему состоянию4 выводятся вероятности видимого слоя на основании скрытого5 если текущая итерация меньше k то возврат к шагу 26 выводятся вероятности состояний скрытого слоя
darch Package for deep architectures and Restricted-Bolzmann-MachinesThe darch package is build on the basis of the code from G E Hinton and R R Salakhutdinov (available under Matlab Code for deep belief nets last visit 01082013) This package is for generating neural networks with many layers (deep architectures) and train them with the method introduced by the publications A fast learning algorithm for deep belief nets (G E Hinton S Osindero Y W Teh) and Reducing the dimensionality of data with neural networks (G E Hinton R R Salakhutdinov) This method includes a pre training with the contrastive divergence method publishing by GE Hinton (2002) and a fine tuning with common known training algorithms like backpropagation or conjugate gradient
bull Version 091bull Imports futilelogger ff methodsbull Published 2014-03-16bull Author Martin Dreesbull Maintainer Martin Drees ltmdrees at studfh-dortmunddegtbull License GPL-2bull URL httpgithubcommaddin79darchbull NeedsCompilation nobull Materials READMEbull CRAN checks darch results
Связь плотности вероятности и энергии
Используется распределение Гиббса
Задача обучения с точки минимизации энергии сети
bull Сконструировать функцию энергии с малыми значениями на обучающей выборке и с большими значениями всюду вне этого множества
bull Первое несложно а второе представляет задачу процесса обучения
Интуитивные соображения
Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decomposition LISTA ndashметоды использующие разреженные коды
Латентная переменная Z =argmin_z Distance[Decoder(Z)Y]+FactorB(Z)MAPminimaize sum of factors
Автоэнкодер (auto encoder) Автоэнкодер представляет собой алгоритм обучения без учителя который использует нейронную сеть и метод обратного распространения ошибки для того чтобы добиться того что входной вектор признаков вызывал отклик сети равный входному вектору те y = x Автоэнкодер пытается построить функцию h(x) = x
Архитекттура ICA моделей
Итеративные алгоритмы с оптимальным разреженным кодированием ISTAFISTA
Самоорганизация данных методами Deep Learning
>
Знакомство с пакетом deepnet
Назначение
Составdbndnntrain - обучение сети с архитектурой DBN (deep belief network)loadmnist - формирование данных из файлов MNISTnnpredict - предсказание новых выборок на обученной нейронной сетиnntest ndash тестирование обученной нейронной сети с возвращением значения ошибкиnntrain ndash обучение одностлойной или многослойной нейронной сети методом backproprbmdown ndash генерирование видимого вектора для скрытых состояний сети RBMrbmtrain ndash обучение сети RBMrbmup ndash извлечение скрытых состояний RBM по известным видимым состояниямsaednntrain ndash обучение нейронной сети с архитектурой stacked autoencoder
Прогнозирование (классификация) нейронной сетью с архитектурой stacked auto encoder
Argumentsbull x matrix of x values for examplesbull y vector or matrix of target values for examplesbull hidden vector for number of units of hidden layersDefault is c(10)bull activationfun activation function of hidden unitCan be sigmlinear or tanhDefault isbull sigm for logistic functionbull learningrate learning rate for gradient descent Default is 08bull momentum momentum for gradient descent Default is 05 bull learningrate_scalebull learning rate will be mutiplied by this scale after every iteration Default is 1 bull numepochs number of iteration for samples Default is 3bull batchsize size of mini-batch Default is 100bull output function of output unit can be sigmlinear or softmax Default is sigmbull sae_output function of autoencoder output unit can be sigmlinear or softmax Defaultbull is linearbull hidden_dropout drop out fraction for hidden layer Default is 0bull visible_dropoutbull drop out fraction for input layer Default is 0
Что такое MNISTbull Смешанный набор данных Национального института стандартов и
технологий (mixed National Institute of Standards and Technology MNIST) был создан исследователями IR в качестве эталона для сравнения различных алгоритмов IR
bull Набор данных состоит всего из 70 000 изображений 60 000 обучающих (используемых для создания модели IR) и 10 000 тестовых (применяемых для оценки точности модели) Каждое изображение MNIST mdash это оцифрованная картинка одной цифры написанной от руки Каждое изображение имеет размер 28 times 28 пикселей Каждое значение пикселя лежит в диапазоне от 0 (представляет белый цвет) до 255 (представляет черный цвет) Промежуточные значения отражают оттенки серого
httpyannlecuncomexdbmnistобучающие и тестовые данные хранятся в двух файлах а не в одном Один файл содержит значения пикселей для изображений а другой mdash метки изображений (0ndash9) Каждый из четырех файлов также содержит заголовочную информацию и все они хранятся в двоичном формате сжатом в формате gziptrain-images-idx3-ubytegz training set images (9912422 bytes)
train-labels-idx1-ubytegz training set labels (28881 bytes)
t10k-images-idx3-ubytegz test set images (1648877 bytes)
t10k-labels-idx1-ubytegz test set labels (4542 bytes)
bull Каждая строка файла представляет собой имидж размера 28 times 28 вектором длины 784 каждый признак ndash значение пиксела в черно-белой шале Первый столбец содержит метку цифры 0ndash9 следующие 2828 столбцов представляют целый имидж и так далее Пример первой строки
Визуализация
bull plotmnist()bull mnistbull paramsbull train$n number of train samplesbull train$x pix of every train sample imagebull train$y label of every train sample imagebull train$yy one-of-c vector of label of train sample imagebull test$n number of test samplesbull test$x pix of every test sample imagebull test$y label of every test sample imagebull test$yy one-of-c vector of label of test sample image
plotmnist()
Распознавание рукописных цифр в deepnet
another way to download the MNIST datasetmnist downloadmnist(range=c(01)global=FALSE)look at MNIST datamnist$train$xmnist$train$ymnist$test$xmnist$test$ytrain of the sae neural networkdnnlt-saednntrain(mnist$train$xmnist$train$yhidden=c(55))test of the sae neural networknntest(dnnmnist$test$xmnist$test$yt=05)
End of slides part 2 (Part 3 - NLP remaining)
Vladimirvkrylovgmailcom
Основы предиктивной аналитики Часть вторая
Применение методов Machine Learning к решению задач аналитики
Дмитрий Ветров кандидат физико-математических наук ру
Методы обучающихся машин для аналитики которые мы рассмотрим
Сначала нужно загрузить несколько пакетов (packages) для поддер
Данные для анализа
Скрипт для генерации
Данные которые мы будем использовать для демо состоят из смес
Так выглядят визуализированные данные сгенерированные скриптом
Разделение данных на обучающие и проверочные является важным эт
K-means алгоритм на пальцах
Обучающаяся машина без учителя Алгоритм K-means
Slide 13
Slide 14
Здесь мы используем заранее известный факт что необходимо кла
Еще одна иллюстрация работы алгоритма K-means
Обучающаяся машина без учителя Алгоритм KNN (Nearest Neighbor)
Как работает алгоритм KNN
knn(train test cl k = 1 l = 0 prob = FALSE useall = TRUE
Slide 20
Результаты кластеризации и зависимость ошибки от числа кластеро
Recursive PartitioningRegression Tree
Метод RP реализует обучение машины строить дерево решений по об
Recursive PartitioningRegression Tree (2)
rpart(formula data weights subset naaction = narpart met
Slide 26
Recursive PartitioningRegression Tree example
Анализ по главным компонентам (Principal Component Analysis PC
Итеративные алгоритмы с оптимальным разреженным кодированием IS
Самоорганизация данных методами Deep Learning
Знакомство с пакетом deepnet
Прогнозирование (классификация) нейронной сетью с архитектурой
Arguments
Архитектура сети SAE
Архитектура с 5Х4 hidden 3 outs
Example
Анализ обучающего набора данных
Параметры SAE сети
Коэффициенты связей
Предсказание обученной сетью
Сравнение обучающей и тестовой выборки
plot3d(xy)
Работаем с пакетом MNIST
httpyannlecuncomexdbmnist
Подготовка к обработке
Slide 118
Визуализация
plotmnist()
Распознавание рукописных цифр в deepnet
End of slides part 2 (Part 3 - NLP remaining)
Иллюстрация на простейшем примере
>
Производится вложение обучающей выборки в пространство более высокой размерности Х с помощью нелинейной функции так чтобы обеспечит линейную разделимость в Х
Разделяющая функция тогда имеет вид
Функция называется ядром
Полиномиальное ядро
Радиальная базисная функция
Сигмоид
Линейная неразделимость и использование ядер
Иллюстрация использования ядра для отображения 2D -gt 3D
>
svm((formula data = NULL subset naaction =naomit scale = TRUE))
formulaa symbolic description of the model to be fitdataan optional data frame containing the variables in the model By default the variables are taken from the environment which lsquosvmrsquo is called fromxa data matrix a vector or a sparse matrix (object of class Matrix provided by the Matrix package or of class matrixcsr provided by the SparseM package or of class simple_triplet_matrix provided by the slam package)ya response vector with one label for each rowcomponent of x Can be either a factor (for classification tasks) or a numeric vector (for regression)scaleA logical vector indicating the variables to be scaled If scale is of length 1 the value is recycled as many times as needed Per default data are scaled internally (both x and y variables) to zero mean and unit variance The center and scale values are returned and used for later predictionstypesvm can be used as a classification machine as a regression machine or for novelty detection Depending of whether y is a factor or not the default setting for type is C-classification or eps-regression respectively but may be overwritten by setting an explicit valueValid options areC-classificationnu-classificationone-classification (for novelty detection)eps-regressionnu-regression
Support Vector Machines
s lt- svm( I(factor(class)) ~ x + y data = train cost = 100 gama = 1)
Package lsquodeepnetrsquo February 19 2015 Type Package Title deep learning toolkit in R Version 02 Date 2014-03-20 Author Xiao Rong Maintainer Xiao Rong Description Implement some deep learning architectures and neural network algorithms including BPRBMDBNDeep autoencoder and so on License GPL NeedsCompilation no Repository CRAN DatePublication 2014-03-20 100343
laquoВ 1997 году Deep Blue обыграл в шахматы КаспароваВ 2011 Watson обставил чемпионов JeopardyСможет ли ваш алгоритм в 2013 году отличить Бобика от ПушистикаraquoKaggle Competitions Details
Сегодня уже можно ответить laquoдаraquo mdash десятка лидеров справилась с заданием на 988
Распознавание основано на feature detection и последующем различении комбинаций
Заранее неизвестно какие части картинки могут использоваться как хорошие features В их роли может выступать все что угодно mdash фрагменты изображения форма размер или цвет Feature может не присутствовать на картинке сама а выражаться в параметре полученным каким-то образом из исходных данных
Распознавание рукописных цифр
Еще пример посложнее
Использование нейронной сети с обучениемОбучение такой нейронной сети производится обычно методом обратного распространения ошибки таким образом чтобы минимизировать среднеквадратическую ошибку отклика сети на обучающей выборке Таким образом обучающая выборка содержит пары векторов признаков (входные данные) и эталонных векторов (маркированные данные) (x y)
Сверхвысокая размерность при работе с первичным представлением пикселями
Пиксельное кодирование
Принцип иерархии понятий ndash основа deep learning
bull Все вещи состоят из других маленьких и более элементарных вещей
bull Как извлекать features Гипотеза малоразмерных многообразий
Разреженное (sparse) кодирование
первый уровень иерархии состоит из элементов словаря этого кода которые представляют собой штрихи и границы
Словарь для лиц
Выделение объектов заданного класса
Основные архитектуры Deep Learningbull Deep neural networks (DNN)bull Deep belief networks (DBN)bull Convolutional neural networks (CNN)bull Deep Boltzmann Machines (DBM)bull Stacked (Denoising) Auto-Encodersbull Deep Stacking Networksbull Tensor Deep Stacking Networks (T-DSN)bull Spike-and-Slab RBMs (ssRBMs)bull Compound Hierarchical-Deep Modelsbull Deep Coding Networks (DPCN)bull Deep Kernel Machinesbull Deep Q-Networks (2015 г)
Задача классификации распознавания и подобные являются задачей конструирования функции на множестве входных наборов и со значениями в множестве требуемого вида выходных
bull Норбертом Винером было показано что любая функция может быть сколь угодно точно композицией двух (он использовал функции полином Лагранжа и функцию Лагерра)
bull Соответствует двухслойной нейросетиbull Архитектуры Deep Learning соответствуют представлению
bull Обеспечивают эффективную параметризацию при решении конкретных задач Более сложные функции создаются из большего числа но более эффективно настраиваемых laquoкирпичиковraquo Пример ndash синтез булевых функций Дерево вентилей эффективнее двухслойной схемы
Фактор - графыВсе методы которые расмотрели ndash не DL Даже деревья классификации Все операции в одном входном словаре
DL можно определить по фактор-графу
Например
bull Еще одна сторона DL - нередко использует невыпуклые функции потерьbull Обучение на основе выпуклых функций не зависит от порядка
предъявления данных для обучения Все определяет асимптотика всего train - набора В алгоритмах DL порядок данных в обучающей выборке может иметь значение
bull Многие решения в DL не доказаны математически и являются успешными эвристиками
bull Большой простор для прикладной математики Может рассматриваться как фактор-граф с группами латентных переменных
bull В настоящее время стал основной технологией в распознавании речи (speech recognition) и машинном зрении (computer vision) начал применяться в обработке текстов (natural language processing)
bull Основная идея ndash применение нелинейного отображения входного набора в более высокоразмерное пространство где многие неразделимые композиции становятся разделимыми а затем объединение композиций по семантической близости
Подход разреженного кодирования
Обобщенная архитектура
bull DL сеть может быть собрана каскадированием и использованием обучения с учителем
Здесь используется forward propagation для обучения
Для настройки коэффициентов используется метод fprof для каждого
Требуется знание градиента энергии
Элементы (kl) матрицы Якобиана
Требуется знание градиента энергии 120597119864120597119882119894 = 120597119864120597119883119894120597119865119894(119883119894minus1119882119894)120597119882119894
ሾ1times 119873119908ሿ= ሾ1times 119873119909ሿlowast[119873119909 times 119873119908] Элементы (kl) матрицы Якобиана
Сводится к рекуррентному соотношению для вычисления градиента 120597119864120597119883119894minus1 = 120597119864120597119883119894120597119865119894(119883119894minus1119882119894)120597119883119894minus1
В итоге
Для вычисления градиента может использоваться метод back propagation
В действительности работают любые архитектуры построения функции Нужно конструировать связи и функции блоков
Язык Torch 7 ndash современный инструмент моделирования и имплементации
Machine Learning with Torch7 (httpcodecogbitscomwikidokuphpid=start)
bull These tutorials were originally designed for the IPAM Summer School on Deep Learning more info herebull This wiki provides multiple tutorials with the overall objective of teaching you how to do machine learning
with Torch7bull Torch7 provides a Matlab-like environment for state-of-the-art machine learning algorithms It is easy to use
and provides a very efficient implementation thanks to an easy and fast scripting language (LuaJIT) and an underlying C implementation
bull These tutorials should be readdone in orderbull Tutorial 1 Setup Basics Getting Startedbull Tutorial 2 Supervised Learningbull Tutorial 3 Unsupervised Learningbull Tutorial 4 Graphical Modelsbull Tutorial 5 Creating New Modulesbull Tutorial 6 Using CUDAbull To follow these tutorials and do the exercises you will need to download the associated code which is hosted
on GitHub on this page In this repository each directory corresponds to a tutorial herebull starttxt middot Last modified 20140204 2246 by clement
Torch 7 является расширением Lua
What is LuaLua is a powerful fast lightweight embeddable scripting languageLua combines simple procedural syntax with powerful data description constructs based on associative arrays and extensible semantics Lua is dynamically typed runs by interpreting bytecode for a register-based virtual machine and has automatic memory management with incremental garbage collection making it ideal for configuration scripting and rapid prototyping
Why choose LuaLua is a proven robust languageLua has been used in many industrial applications (eg Adobes Photoshop Lightroom) with an emphasis on embedded systems (eg the Ginga middleware for digital TV in Brazil) and games (eg World of Warcraft and Angry Birds) Lua is currently the leading scripting language in games Lua has a solid reference manual and there are several books about it Several versions of Lua have been released and used in real applications since its creation in 1993 Lua featured in HOPL III the Third ACM SIGPLAN History of Programming Languages Conference in June 2007 Lua won the Front Line Award 2011 from the Game Developers Magazine
Свертка и архитектура 4-х уровневой сверточной сети
Функциональная структура
Примеры успешного применения сверточных сетей
Диагностика эпилепсии по ЭЭГ
Реализация сверточной сетью
Одна из самых больших сверточных сетейbull Krizhevsky Sutskever Hinton 2012bull 650 000 нейронов 832 000 000 синапсов 60 000000 пареметровbull Использовался backprop на GPUbull Обучающая выборка на материалах 20 летbull Купил Google в январе 2013bull В мае 2013 развернул как сервис Photo Tagging Google+
Пример тэгирования
Пример поиска похожих по изображению
Пример поиска в коллекции изображений по текстовому запросу
Пример laquoоблачногоraquo классификатора изображений
Самообучающиеся нейронные сети на основе минимизации функции энергииbull Применима к сетям с обратными связямиbull Конструирование функции энергии должно обеспечивать
laquoконтрастностьraquo разделения
bull Энергетическая функция может Неформально рассматриваться как отрицательный логарифм плотности вероятности
Y 2=(Y1)2
RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцмана
bull Из DBM cтроится Deep Belief Network (DBN)
bull w mdash вес между нейронами
bull b mdash смещение нейрона
bull s mdash состояние нейрона
Алгоритм обучения Contrastive Divergence (CD)bull w_ij mdash веc между i-ым нейроном Вероятность пар может быть представлена как
bull a_i mdash смещение видимого нейрона
bull b_j mdash смещение скрытого нейрона
bull v_i mdash состояние видимого нейрона
bull h_j mdash состояние скрытого нейрона Полная вероятность состояния видимых нейронов
Основные уравнения адаптации
Алгоритм Хинтона - Contrastive Divergence (CD-k)
1 состояние видимых нейронов приравнивается к входному образу2 выводятся вероятности состояний скрытого слоя3 каждому нейрону скрытого слоя ставится в соответствие состояние laquo1raquo с вероятностью равной его текущему состоянию4 выводятся вероятности видимого слоя на основании скрытого5 если текущая итерация меньше k то возврат к шагу 26 выводятся вероятности состояний скрытого слоя
darch Package for deep architectures and Restricted-Bolzmann-MachinesThe darch package is build on the basis of the code from G E Hinton and R R Salakhutdinov (available under Matlab Code for deep belief nets last visit 01082013) This package is for generating neural networks with many layers (deep architectures) and train them with the method introduced by the publications A fast learning algorithm for deep belief nets (G E Hinton S Osindero Y W Teh) and Reducing the dimensionality of data with neural networks (G E Hinton R R Salakhutdinov) This method includes a pre training with the contrastive divergence method publishing by GE Hinton (2002) and a fine tuning with common known training algorithms like backpropagation or conjugate gradient
bull Version 091bull Imports futilelogger ff methodsbull Published 2014-03-16bull Author Martin Dreesbull Maintainer Martin Drees ltmdrees at studfh-dortmunddegtbull License GPL-2bull URL httpgithubcommaddin79darchbull NeedsCompilation nobull Materials READMEbull CRAN checks darch results
Связь плотности вероятности и энергии
Используется распределение Гиббса
Задача обучения с точки минимизации энергии сети
bull Сконструировать функцию энергии с малыми значениями на обучающей выборке и с большими значениями всюду вне этого множества
bull Первое несложно а второе представляет задачу процесса обучения
Интуитивные соображения
Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decomposition LISTA ndashметоды использующие разреженные коды
Латентная переменная Z =argmin_z Distance[Decoder(Z)Y]+FactorB(Z)MAPminimaize sum of factors
Автоэнкодер (auto encoder) Автоэнкодер представляет собой алгоритм обучения без учителя который использует нейронную сеть и метод обратного распространения ошибки для того чтобы добиться того что входной вектор признаков вызывал отклик сети равный входному вектору те y = x Автоэнкодер пытается построить функцию h(x) = x
Архитекттура ICA моделей
Итеративные алгоритмы с оптимальным разреженным кодированием ISTAFISTA
Самоорганизация данных методами Deep Learning
>
Знакомство с пакетом deepnet
Назначение
Составdbndnntrain - обучение сети с архитектурой DBN (deep belief network)loadmnist - формирование данных из файлов MNISTnnpredict - предсказание новых выборок на обученной нейронной сетиnntest ndash тестирование обученной нейронной сети с возвращением значения ошибкиnntrain ndash обучение одностлойной или многослойной нейронной сети методом backproprbmdown ndash генерирование видимого вектора для скрытых состояний сети RBMrbmtrain ndash обучение сети RBMrbmup ndash извлечение скрытых состояний RBM по известным видимым состояниямsaednntrain ndash обучение нейронной сети с архитектурой stacked autoencoder
Прогнозирование (классификация) нейронной сетью с архитектурой stacked auto encoder
Argumentsbull x matrix of x values for examplesbull y vector or matrix of target values for examplesbull hidden vector for number of units of hidden layersDefault is c(10)bull activationfun activation function of hidden unitCan be sigmlinear or tanhDefault isbull sigm for logistic functionbull learningrate learning rate for gradient descent Default is 08bull momentum momentum for gradient descent Default is 05 bull learningrate_scalebull learning rate will be mutiplied by this scale after every iteration Default is 1 bull numepochs number of iteration for samples Default is 3bull batchsize size of mini-batch Default is 100bull output function of output unit can be sigmlinear or softmax Default is sigmbull sae_output function of autoencoder output unit can be sigmlinear or softmax Defaultbull is linearbull hidden_dropout drop out fraction for hidden layer Default is 0bull visible_dropoutbull drop out fraction for input layer Default is 0
Что такое MNISTbull Смешанный набор данных Национального института стандартов и
технологий (mixed National Institute of Standards and Technology MNIST) был создан исследователями IR в качестве эталона для сравнения различных алгоритмов IR
bull Набор данных состоит всего из 70 000 изображений 60 000 обучающих (используемых для создания модели IR) и 10 000 тестовых (применяемых для оценки точности модели) Каждое изображение MNIST mdash это оцифрованная картинка одной цифры написанной от руки Каждое изображение имеет размер 28 times 28 пикселей Каждое значение пикселя лежит в диапазоне от 0 (представляет белый цвет) до 255 (представляет черный цвет) Промежуточные значения отражают оттенки серого
httpyannlecuncomexdbmnistобучающие и тестовые данные хранятся в двух файлах а не в одном Один файл содержит значения пикселей для изображений а другой mdash метки изображений (0ndash9) Каждый из четырех файлов также содержит заголовочную информацию и все они хранятся в двоичном формате сжатом в формате gziptrain-images-idx3-ubytegz training set images (9912422 bytes)
train-labels-idx1-ubytegz training set labels (28881 bytes)
t10k-images-idx3-ubytegz test set images (1648877 bytes)
t10k-labels-idx1-ubytegz test set labels (4542 bytes)
bull Каждая строка файла представляет собой имидж размера 28 times 28 вектором длины 784 каждый признак ndash значение пиксела в черно-белой шале Первый столбец содержит метку цифры 0ndash9 следующие 2828 столбцов представляют целый имидж и так далее Пример первой строки
Визуализация
bull plotmnist()bull mnistbull paramsbull train$n number of train samplesbull train$x pix of every train sample imagebull train$y label of every train sample imagebull train$yy one-of-c vector of label of train sample imagebull test$n number of test samplesbull test$x pix of every test sample imagebull test$y label of every test sample imagebull test$yy one-of-c vector of label of test sample image
plotmnist()
Распознавание рукописных цифр в deepnet
another way to download the MNIST datasetmnist downloadmnist(range=c(01)global=FALSE)look at MNIST datamnist$train$xmnist$train$ymnist$test$xmnist$test$ytrain of the sae neural networkdnnlt-saednntrain(mnist$train$xmnist$train$yhidden=c(55))test of the sae neural networknntest(dnnmnist$test$xmnist$test$yt=05)
End of slides part 2 (Part 3 - NLP remaining)
Vladimirvkrylovgmailcom
Основы предиктивной аналитики Часть вторая
Применение методов Machine Learning к решению задач аналитики
Дмитрий Ветров кандидат физико-математических наук ру
Методы обучающихся машин для аналитики которые мы рассмотрим
Сначала нужно загрузить несколько пакетов (packages) для поддер
Данные для анализа
Скрипт для генерации
Данные которые мы будем использовать для демо состоят из смес
Так выглядят визуализированные данные сгенерированные скриптом
Разделение данных на обучающие и проверочные является важным эт
K-means алгоритм на пальцах
Обучающаяся машина без учителя Алгоритм K-means
Slide 13
Slide 14
Здесь мы используем заранее известный факт что необходимо кла
Еще одна иллюстрация работы алгоритма K-means
Обучающаяся машина без учителя Алгоритм KNN (Nearest Neighbor)
Как работает алгоритм KNN
knn(train test cl k = 1 l = 0 prob = FALSE useall = TRUE
Slide 20
Результаты кластеризации и зависимость ошибки от числа кластеро
Recursive PartitioningRegression Tree
Метод RP реализует обучение машины строить дерево решений по об
Recursive PartitioningRegression Tree (2)
rpart(formula data weights subset naaction = narpart met
Slide 26
Recursive PartitioningRegression Tree example
Анализ по главным компонентам (Principal Component Analysis PC
Итеративные алгоритмы с оптимальным разреженным кодированием IS
Самоорганизация данных методами Deep Learning
Знакомство с пакетом deepnet
Прогнозирование (классификация) нейронной сетью с архитектурой
Arguments
Архитектура сети SAE
Архитектура с 5Х4 hidden 3 outs
Example
Анализ обучающего набора данных
Параметры SAE сети
Коэффициенты связей
Предсказание обученной сетью
Сравнение обучающей и тестовой выборки
plot3d(xy)
Работаем с пакетом MNIST
httpyannlecuncomexdbmnist
Подготовка к обработке
Slide 118
Визуализация
plotmnist()
Распознавание рукописных цифр в deepnet
End of slides part 2 (Part 3 - NLP remaining)
Производится вложение обучающей выборки в пространство более высокой размерности Х с помощью нелинейной функции так чтобы обеспечит линейную разделимость в Х
Разделяющая функция тогда имеет вид
Функция называется ядром
Полиномиальное ядро
Радиальная базисная функция
Сигмоид
Линейная неразделимость и использование ядер
Иллюстрация использования ядра для отображения 2D -gt 3D
>
svm((formula data = NULL subset naaction =naomit scale = TRUE))
formulaa symbolic description of the model to be fitdataan optional data frame containing the variables in the model By default the variables are taken from the environment which lsquosvmrsquo is called fromxa data matrix a vector or a sparse matrix (object of class Matrix provided by the Matrix package or of class matrixcsr provided by the SparseM package or of class simple_triplet_matrix provided by the slam package)ya response vector with one label for each rowcomponent of x Can be either a factor (for classification tasks) or a numeric vector (for regression)scaleA logical vector indicating the variables to be scaled If scale is of length 1 the value is recycled as many times as needed Per default data are scaled internally (both x and y variables) to zero mean and unit variance The center and scale values are returned and used for later predictionstypesvm can be used as a classification machine as a regression machine or for novelty detection Depending of whether y is a factor or not the default setting for type is C-classification or eps-regression respectively but may be overwritten by setting an explicit valueValid options areC-classificationnu-classificationone-classification (for novelty detection)eps-regressionnu-regression
Support Vector Machines
s lt- svm( I(factor(class)) ~ x + y data = train cost = 100 gama = 1)
Package lsquodeepnetrsquo February 19 2015 Type Package Title deep learning toolkit in R Version 02 Date 2014-03-20 Author Xiao Rong Maintainer Xiao Rong Description Implement some deep learning architectures and neural network algorithms including BPRBMDBNDeep autoencoder and so on License GPL NeedsCompilation no Repository CRAN DatePublication 2014-03-20 100343
laquoВ 1997 году Deep Blue обыграл в шахматы КаспароваВ 2011 Watson обставил чемпионов JeopardyСможет ли ваш алгоритм в 2013 году отличить Бобика от ПушистикаraquoKaggle Competitions Details
Сегодня уже можно ответить laquoдаraquo mdash десятка лидеров справилась с заданием на 988
Распознавание основано на feature detection и последующем различении комбинаций
Заранее неизвестно какие части картинки могут использоваться как хорошие features В их роли может выступать все что угодно mdash фрагменты изображения форма размер или цвет Feature может не присутствовать на картинке сама а выражаться в параметре полученным каким-то образом из исходных данных
Распознавание рукописных цифр
Еще пример посложнее
Использование нейронной сети с обучениемОбучение такой нейронной сети производится обычно методом обратного распространения ошибки таким образом чтобы минимизировать среднеквадратическую ошибку отклика сети на обучающей выборке Таким образом обучающая выборка содержит пары векторов признаков (входные данные) и эталонных векторов (маркированные данные) (x y)
Сверхвысокая размерность при работе с первичным представлением пикселями
Пиксельное кодирование
Принцип иерархии понятий ndash основа deep learning
bull Все вещи состоят из других маленьких и более элементарных вещей
bull Как извлекать features Гипотеза малоразмерных многообразий
Разреженное (sparse) кодирование
первый уровень иерархии состоит из элементов словаря этого кода которые представляют собой штрихи и границы
Словарь для лиц
Выделение объектов заданного класса
Основные архитектуры Deep Learningbull Deep neural networks (DNN)bull Deep belief networks (DBN)bull Convolutional neural networks (CNN)bull Deep Boltzmann Machines (DBM)bull Stacked (Denoising) Auto-Encodersbull Deep Stacking Networksbull Tensor Deep Stacking Networks (T-DSN)bull Spike-and-Slab RBMs (ssRBMs)bull Compound Hierarchical-Deep Modelsbull Deep Coding Networks (DPCN)bull Deep Kernel Machinesbull Deep Q-Networks (2015 г)
Задача классификации распознавания и подобные являются задачей конструирования функции на множестве входных наборов и со значениями в множестве требуемого вида выходных
bull Норбертом Винером было показано что любая функция может быть сколь угодно точно композицией двух (он использовал функции полином Лагранжа и функцию Лагерра)
bull Соответствует двухслойной нейросетиbull Архитектуры Deep Learning соответствуют представлению
bull Обеспечивают эффективную параметризацию при решении конкретных задач Более сложные функции создаются из большего числа но более эффективно настраиваемых laquoкирпичиковraquo Пример ndash синтез булевых функций Дерево вентилей эффективнее двухслойной схемы
Фактор - графыВсе методы которые расмотрели ndash не DL Даже деревья классификации Все операции в одном входном словаре
DL можно определить по фактор-графу
Например
bull Еще одна сторона DL - нередко использует невыпуклые функции потерьbull Обучение на основе выпуклых функций не зависит от порядка
предъявления данных для обучения Все определяет асимптотика всего train - набора В алгоритмах DL порядок данных в обучающей выборке может иметь значение
bull Многие решения в DL не доказаны математически и являются успешными эвристиками
bull Большой простор для прикладной математики Может рассматриваться как фактор-граф с группами латентных переменных
bull В настоящее время стал основной технологией в распознавании речи (speech recognition) и машинном зрении (computer vision) начал применяться в обработке текстов (natural language processing)
bull Основная идея ndash применение нелинейного отображения входного набора в более высокоразмерное пространство где многие неразделимые композиции становятся разделимыми а затем объединение композиций по семантической близости
Подход разреженного кодирования
Обобщенная архитектура
bull DL сеть может быть собрана каскадированием и использованием обучения с учителем
Здесь используется forward propagation для обучения
Для настройки коэффициентов используется метод fprof для каждого
Требуется знание градиента энергии
Элементы (kl) матрицы Якобиана
Требуется знание градиента энергии 120597119864120597119882119894 = 120597119864120597119883119894120597119865119894(119883119894minus1119882119894)120597119882119894
ሾ1times 119873119908ሿ= ሾ1times 119873119909ሿlowast[119873119909 times 119873119908] Элементы (kl) матрицы Якобиана
Сводится к рекуррентному соотношению для вычисления градиента 120597119864120597119883119894minus1 = 120597119864120597119883119894120597119865119894(119883119894minus1119882119894)120597119883119894minus1
В итоге
Для вычисления градиента может использоваться метод back propagation
В действительности работают любые архитектуры построения функции Нужно конструировать связи и функции блоков
Язык Torch 7 ndash современный инструмент моделирования и имплементации
Machine Learning with Torch7 (httpcodecogbitscomwikidokuphpid=start)
bull These tutorials were originally designed for the IPAM Summer School on Deep Learning more info herebull This wiki provides multiple tutorials with the overall objective of teaching you how to do machine learning
with Torch7bull Torch7 provides a Matlab-like environment for state-of-the-art machine learning algorithms It is easy to use
and provides a very efficient implementation thanks to an easy and fast scripting language (LuaJIT) and an underlying C implementation
bull These tutorials should be readdone in orderbull Tutorial 1 Setup Basics Getting Startedbull Tutorial 2 Supervised Learningbull Tutorial 3 Unsupervised Learningbull Tutorial 4 Graphical Modelsbull Tutorial 5 Creating New Modulesbull Tutorial 6 Using CUDAbull To follow these tutorials and do the exercises you will need to download the associated code which is hosted
on GitHub on this page In this repository each directory corresponds to a tutorial herebull starttxt middot Last modified 20140204 2246 by clement
Torch 7 является расширением Lua
What is LuaLua is a powerful fast lightweight embeddable scripting languageLua combines simple procedural syntax with powerful data description constructs based on associative arrays and extensible semantics Lua is dynamically typed runs by interpreting bytecode for a register-based virtual machine and has automatic memory management with incremental garbage collection making it ideal for configuration scripting and rapid prototyping
Why choose LuaLua is a proven robust languageLua has been used in many industrial applications (eg Adobes Photoshop Lightroom) with an emphasis on embedded systems (eg the Ginga middleware for digital TV in Brazil) and games (eg World of Warcraft and Angry Birds) Lua is currently the leading scripting language in games Lua has a solid reference manual and there are several books about it Several versions of Lua have been released and used in real applications since its creation in 1993 Lua featured in HOPL III the Third ACM SIGPLAN History of Programming Languages Conference in June 2007 Lua won the Front Line Award 2011 from the Game Developers Magazine
Свертка и архитектура 4-х уровневой сверточной сети
Функциональная структура
Примеры успешного применения сверточных сетей
Диагностика эпилепсии по ЭЭГ
Реализация сверточной сетью
Одна из самых больших сверточных сетейbull Krizhevsky Sutskever Hinton 2012bull 650 000 нейронов 832 000 000 синапсов 60 000000 пареметровbull Использовался backprop на GPUbull Обучающая выборка на материалах 20 летbull Купил Google в январе 2013bull В мае 2013 развернул как сервис Photo Tagging Google+
Пример тэгирования
Пример поиска похожих по изображению
Пример поиска в коллекции изображений по текстовому запросу
Пример laquoоблачногоraquo классификатора изображений
Самообучающиеся нейронные сети на основе минимизации функции энергииbull Применима к сетям с обратными связямиbull Конструирование функции энергии должно обеспечивать
laquoконтрастностьraquo разделения
bull Энергетическая функция может Неформально рассматриваться как отрицательный логарифм плотности вероятности
Y 2=(Y1)2
RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцмана
bull Из DBM cтроится Deep Belief Network (DBN)
bull w mdash вес между нейронами
bull b mdash смещение нейрона
bull s mdash состояние нейрона
Алгоритм обучения Contrastive Divergence (CD)bull w_ij mdash веc между i-ым нейроном Вероятность пар может быть представлена как
bull a_i mdash смещение видимого нейрона
bull b_j mdash смещение скрытого нейрона
bull v_i mdash состояние видимого нейрона
bull h_j mdash состояние скрытого нейрона Полная вероятность состояния видимых нейронов
Основные уравнения адаптации
Алгоритм Хинтона - Contrastive Divergence (CD-k)
1 состояние видимых нейронов приравнивается к входному образу2 выводятся вероятности состояний скрытого слоя3 каждому нейрону скрытого слоя ставится в соответствие состояние laquo1raquo с вероятностью равной его текущему состоянию4 выводятся вероятности видимого слоя на основании скрытого5 если текущая итерация меньше k то возврат к шагу 26 выводятся вероятности состояний скрытого слоя
darch Package for deep architectures and Restricted-Bolzmann-MachinesThe darch package is build on the basis of the code from G E Hinton and R R Salakhutdinov (available under Matlab Code for deep belief nets last visit 01082013) This package is for generating neural networks with many layers (deep architectures) and train them with the method introduced by the publications A fast learning algorithm for deep belief nets (G E Hinton S Osindero Y W Teh) and Reducing the dimensionality of data with neural networks (G E Hinton R R Salakhutdinov) This method includes a pre training with the contrastive divergence method publishing by GE Hinton (2002) and a fine tuning with common known training algorithms like backpropagation or conjugate gradient
bull Version 091bull Imports futilelogger ff methodsbull Published 2014-03-16bull Author Martin Dreesbull Maintainer Martin Drees ltmdrees at studfh-dortmunddegtbull License GPL-2bull URL httpgithubcommaddin79darchbull NeedsCompilation nobull Materials READMEbull CRAN checks darch results
Связь плотности вероятности и энергии
Используется распределение Гиббса
Задача обучения с точки минимизации энергии сети
bull Сконструировать функцию энергии с малыми значениями на обучающей выборке и с большими значениями всюду вне этого множества
bull Первое несложно а второе представляет задачу процесса обучения
Интуитивные соображения
Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decomposition LISTA ndashметоды использующие разреженные коды
Латентная переменная Z =argmin_z Distance[Decoder(Z)Y]+FactorB(Z)MAPminimaize sum of factors
Автоэнкодер (auto encoder) Автоэнкодер представляет собой алгоритм обучения без учителя который использует нейронную сеть и метод обратного распространения ошибки для того чтобы добиться того что входной вектор признаков вызывал отклик сети равный входному вектору те y = x Автоэнкодер пытается построить функцию h(x) = x
Архитекттура ICA моделей
Итеративные алгоритмы с оптимальным разреженным кодированием ISTAFISTA
Самоорганизация данных методами Deep Learning
>
Знакомство с пакетом deepnet
Назначение
Составdbndnntrain - обучение сети с архитектурой DBN (deep belief network)loadmnist - формирование данных из файлов MNISTnnpredict - предсказание новых выборок на обученной нейронной сетиnntest ndash тестирование обученной нейронной сети с возвращением значения ошибкиnntrain ndash обучение одностлойной или многослойной нейронной сети методом backproprbmdown ndash генерирование видимого вектора для скрытых состояний сети RBMrbmtrain ndash обучение сети RBMrbmup ndash извлечение скрытых состояний RBM по известным видимым состояниямsaednntrain ndash обучение нейронной сети с архитектурой stacked autoencoder
Прогнозирование (классификация) нейронной сетью с архитектурой stacked auto encoder
Argumentsbull x matrix of x values for examplesbull y vector or matrix of target values for examplesbull hidden vector for number of units of hidden layersDefault is c(10)bull activationfun activation function of hidden unitCan be sigmlinear or tanhDefault isbull sigm for logistic functionbull learningrate learning rate for gradient descent Default is 08bull momentum momentum for gradient descent Default is 05 bull learningrate_scalebull learning rate will be mutiplied by this scale after every iteration Default is 1 bull numepochs number of iteration for samples Default is 3bull batchsize size of mini-batch Default is 100bull output function of output unit can be sigmlinear or softmax Default is sigmbull sae_output function of autoencoder output unit can be sigmlinear or softmax Defaultbull is linearbull hidden_dropout drop out fraction for hidden layer Default is 0bull visible_dropoutbull drop out fraction for input layer Default is 0
Что такое MNISTbull Смешанный набор данных Национального института стандартов и
технологий (mixed National Institute of Standards and Technology MNIST) был создан исследователями IR в качестве эталона для сравнения различных алгоритмов IR
bull Набор данных состоит всего из 70 000 изображений 60 000 обучающих (используемых для создания модели IR) и 10 000 тестовых (применяемых для оценки точности модели) Каждое изображение MNIST mdash это оцифрованная картинка одной цифры написанной от руки Каждое изображение имеет размер 28 times 28 пикселей Каждое значение пикселя лежит в диапазоне от 0 (представляет белый цвет) до 255 (представляет черный цвет) Промежуточные значения отражают оттенки серого
httpyannlecuncomexdbmnistобучающие и тестовые данные хранятся в двух файлах а не в одном Один файл содержит значения пикселей для изображений а другой mdash метки изображений (0ndash9) Каждый из четырех файлов также содержит заголовочную информацию и все они хранятся в двоичном формате сжатом в формате gziptrain-images-idx3-ubytegz training set images (9912422 bytes)
train-labels-idx1-ubytegz training set labels (28881 bytes)
t10k-images-idx3-ubytegz test set images (1648877 bytes)
t10k-labels-idx1-ubytegz test set labels (4542 bytes)
bull Каждая строка файла представляет собой имидж размера 28 times 28 вектором длины 784 каждый признак ndash значение пиксела в черно-белой шале Первый столбец содержит метку цифры 0ndash9 следующие 2828 столбцов представляют целый имидж и так далее Пример первой строки
Визуализация
bull plotmnist()bull mnistbull paramsbull train$n number of train samplesbull train$x pix of every train sample imagebull train$y label of every train sample imagebull train$yy one-of-c vector of label of train sample imagebull test$n number of test samplesbull test$x pix of every test sample imagebull test$y label of every test sample imagebull test$yy one-of-c vector of label of test sample image
plotmnist()
Распознавание рукописных цифр в deepnet
another way to download the MNIST datasetmnist downloadmnist(range=c(01)global=FALSE)look at MNIST datamnist$train$xmnist$train$ymnist$test$xmnist$test$ytrain of the sae neural networkdnnlt-saednntrain(mnist$train$xmnist$train$yhidden=c(55))test of the sae neural networknntest(dnnmnist$test$xmnist$test$yt=05)
End of slides part 2 (Part 3 - NLP remaining)
Vladimirvkrylovgmailcom
Основы предиктивной аналитики Часть вторая
Применение методов Machine Learning к решению задач аналитики
Дмитрий Ветров кандидат физико-математических наук ру
Методы обучающихся машин для аналитики которые мы рассмотрим
Сначала нужно загрузить несколько пакетов (packages) для поддер
Данные для анализа
Скрипт для генерации
Данные которые мы будем использовать для демо состоят из смес
Так выглядят визуализированные данные сгенерированные скриптом
Разделение данных на обучающие и проверочные является важным эт
K-means алгоритм на пальцах
Обучающаяся машина без учителя Алгоритм K-means
Slide 13
Slide 14
Здесь мы используем заранее известный факт что необходимо кла
Еще одна иллюстрация работы алгоритма K-means
Обучающаяся машина без учителя Алгоритм KNN (Nearest Neighbor)
Как работает алгоритм KNN
knn(train test cl k = 1 l = 0 prob = FALSE useall = TRUE
Slide 20
Результаты кластеризации и зависимость ошибки от числа кластеро
Recursive PartitioningRegression Tree
Метод RP реализует обучение машины строить дерево решений по об
Recursive PartitioningRegression Tree (2)
rpart(formula data weights subset naaction = narpart met
Slide 26
Recursive PartitioningRegression Tree example
Анализ по главным компонентам (Principal Component Analysis PC
Итеративные алгоритмы с оптимальным разреженным кодированием IS
Самоорганизация данных методами Deep Learning
Знакомство с пакетом deepnet
Прогнозирование (классификация) нейронной сетью с архитектурой
Arguments
Архитектура сети SAE
Архитектура с 5Х4 hidden 3 outs
Example
Анализ обучающего набора данных
Параметры SAE сети
Коэффициенты связей
Предсказание обученной сетью
Сравнение обучающей и тестовой выборки
plot3d(xy)
Работаем с пакетом MNIST
httpyannlecuncomexdbmnist
Подготовка к обработке
Slide 118
Визуализация
plotmnist()
Распознавание рукописных цифр в deepnet
End of slides part 2 (Part 3 - NLP remaining)
Иллюстрация использования ядра для отображения 2D -gt 3D
>
svm((formula data = NULL subset naaction =naomit scale = TRUE))
formulaa symbolic description of the model to be fitdataan optional data frame containing the variables in the model By default the variables are taken from the environment which lsquosvmrsquo is called fromxa data matrix a vector or a sparse matrix (object of class Matrix provided by the Matrix package or of class matrixcsr provided by the SparseM package or of class simple_triplet_matrix provided by the slam package)ya response vector with one label for each rowcomponent of x Can be either a factor (for classification tasks) or a numeric vector (for regression)scaleA logical vector indicating the variables to be scaled If scale is of length 1 the value is recycled as many times as needed Per default data are scaled internally (both x and y variables) to zero mean and unit variance The center and scale values are returned and used for later predictionstypesvm can be used as a classification machine as a regression machine or for novelty detection Depending of whether y is a factor or not the default setting for type is C-classification or eps-regression respectively but may be overwritten by setting an explicit valueValid options areC-classificationnu-classificationone-classification (for novelty detection)eps-regressionnu-regression
Support Vector Machines
s lt- svm( I(factor(class)) ~ x + y data = train cost = 100 gama = 1)
Package lsquodeepnetrsquo February 19 2015 Type Package Title deep learning toolkit in R Version 02 Date 2014-03-20 Author Xiao Rong Maintainer Xiao Rong Description Implement some deep learning architectures and neural network algorithms including BPRBMDBNDeep autoencoder and so on License GPL NeedsCompilation no Repository CRAN DatePublication 2014-03-20 100343
laquoВ 1997 году Deep Blue обыграл в шахматы КаспароваВ 2011 Watson обставил чемпионов JeopardyСможет ли ваш алгоритм в 2013 году отличить Бобика от ПушистикаraquoKaggle Competitions Details
Сегодня уже можно ответить laquoдаraquo mdash десятка лидеров справилась с заданием на 988
Распознавание основано на feature detection и последующем различении комбинаций
Заранее неизвестно какие части картинки могут использоваться как хорошие features В их роли может выступать все что угодно mdash фрагменты изображения форма размер или цвет Feature может не присутствовать на картинке сама а выражаться в параметре полученным каким-то образом из исходных данных
Распознавание рукописных цифр
Еще пример посложнее
Использование нейронной сети с обучениемОбучение такой нейронной сети производится обычно методом обратного распространения ошибки таким образом чтобы минимизировать среднеквадратическую ошибку отклика сети на обучающей выборке Таким образом обучающая выборка содержит пары векторов признаков (входные данные) и эталонных векторов (маркированные данные) (x y)
Сверхвысокая размерность при работе с первичным представлением пикселями
Пиксельное кодирование
Принцип иерархии понятий ndash основа deep learning
bull Все вещи состоят из других маленьких и более элементарных вещей
bull Как извлекать features Гипотеза малоразмерных многообразий
Разреженное (sparse) кодирование
первый уровень иерархии состоит из элементов словаря этого кода которые представляют собой штрихи и границы
Словарь для лиц
Выделение объектов заданного класса
Основные архитектуры Deep Learningbull Deep neural networks (DNN)bull Deep belief networks (DBN)bull Convolutional neural networks (CNN)bull Deep Boltzmann Machines (DBM)bull Stacked (Denoising) Auto-Encodersbull Deep Stacking Networksbull Tensor Deep Stacking Networks (T-DSN)bull Spike-and-Slab RBMs (ssRBMs)bull Compound Hierarchical-Deep Modelsbull Deep Coding Networks (DPCN)bull Deep Kernel Machinesbull Deep Q-Networks (2015 г)
Задача классификации распознавания и подобные являются задачей конструирования функции на множестве входных наборов и со значениями в множестве требуемого вида выходных
bull Норбертом Винером было показано что любая функция может быть сколь угодно точно композицией двух (он использовал функции полином Лагранжа и функцию Лагерра)
bull Соответствует двухслойной нейросетиbull Архитектуры Deep Learning соответствуют представлению
bull Обеспечивают эффективную параметризацию при решении конкретных задач Более сложные функции создаются из большего числа но более эффективно настраиваемых laquoкирпичиковraquo Пример ndash синтез булевых функций Дерево вентилей эффективнее двухслойной схемы
Фактор - графыВсе методы которые расмотрели ndash не DL Даже деревья классификации Все операции в одном входном словаре
DL можно определить по фактор-графу
Например
bull Еще одна сторона DL - нередко использует невыпуклые функции потерьbull Обучение на основе выпуклых функций не зависит от порядка
предъявления данных для обучения Все определяет асимптотика всего train - набора В алгоритмах DL порядок данных в обучающей выборке может иметь значение
bull Многие решения в DL не доказаны математически и являются успешными эвристиками
bull Большой простор для прикладной математики Может рассматриваться как фактор-граф с группами латентных переменных
bull В настоящее время стал основной технологией в распознавании речи (speech recognition) и машинном зрении (computer vision) начал применяться в обработке текстов (natural language processing)
bull Основная идея ndash применение нелинейного отображения входного набора в более высокоразмерное пространство где многие неразделимые композиции становятся разделимыми а затем объединение композиций по семантической близости
Подход разреженного кодирования
Обобщенная архитектура
bull DL сеть может быть собрана каскадированием и использованием обучения с учителем
Здесь используется forward propagation для обучения
Для настройки коэффициентов используется метод fprof для каждого
Требуется знание градиента энергии
Элементы (kl) матрицы Якобиана
Требуется знание градиента энергии 120597119864120597119882119894 = 120597119864120597119883119894120597119865119894(119883119894minus1119882119894)120597119882119894
ሾ1times 119873119908ሿ= ሾ1times 119873119909ሿlowast[119873119909 times 119873119908] Элементы (kl) матрицы Якобиана
Сводится к рекуррентному соотношению для вычисления градиента 120597119864120597119883119894minus1 = 120597119864120597119883119894120597119865119894(119883119894minus1119882119894)120597119883119894minus1
В итоге
Для вычисления градиента может использоваться метод back propagation
В действительности работают любые архитектуры построения функции Нужно конструировать связи и функции блоков
Язык Torch 7 ndash современный инструмент моделирования и имплементации
Machine Learning with Torch7 (httpcodecogbitscomwikidokuphpid=start)
bull These tutorials were originally designed for the IPAM Summer School on Deep Learning more info herebull This wiki provides multiple tutorials with the overall objective of teaching you how to do machine learning
with Torch7bull Torch7 provides a Matlab-like environment for state-of-the-art machine learning algorithms It is easy to use
and provides a very efficient implementation thanks to an easy and fast scripting language (LuaJIT) and an underlying C implementation
bull These tutorials should be readdone in orderbull Tutorial 1 Setup Basics Getting Startedbull Tutorial 2 Supervised Learningbull Tutorial 3 Unsupervised Learningbull Tutorial 4 Graphical Modelsbull Tutorial 5 Creating New Modulesbull Tutorial 6 Using CUDAbull To follow these tutorials and do the exercises you will need to download the associated code which is hosted
on GitHub on this page In this repository each directory corresponds to a tutorial herebull starttxt middot Last modified 20140204 2246 by clement
Torch 7 является расширением Lua
What is LuaLua is a powerful fast lightweight embeddable scripting languageLua combines simple procedural syntax with powerful data description constructs based on associative arrays and extensible semantics Lua is dynamically typed runs by interpreting bytecode for a register-based virtual machine and has automatic memory management with incremental garbage collection making it ideal for configuration scripting and rapid prototyping
Why choose LuaLua is a proven robust languageLua has been used in many industrial applications (eg Adobes Photoshop Lightroom) with an emphasis on embedded systems (eg the Ginga middleware for digital TV in Brazil) and games (eg World of Warcraft and Angry Birds) Lua is currently the leading scripting language in games Lua has a solid reference manual and there are several books about it Several versions of Lua have been released and used in real applications since its creation in 1993 Lua featured in HOPL III the Third ACM SIGPLAN History of Programming Languages Conference in June 2007 Lua won the Front Line Award 2011 from the Game Developers Magazine
Свертка и архитектура 4-х уровневой сверточной сети
Функциональная структура
Примеры успешного применения сверточных сетей
Диагностика эпилепсии по ЭЭГ
Реализация сверточной сетью
Одна из самых больших сверточных сетейbull Krizhevsky Sutskever Hinton 2012bull 650 000 нейронов 832 000 000 синапсов 60 000000 пареметровbull Использовался backprop на GPUbull Обучающая выборка на материалах 20 летbull Купил Google в январе 2013bull В мае 2013 развернул как сервис Photo Tagging Google+
Пример тэгирования
Пример поиска похожих по изображению
Пример поиска в коллекции изображений по текстовому запросу
Пример laquoоблачногоraquo классификатора изображений
Самообучающиеся нейронные сети на основе минимизации функции энергииbull Применима к сетям с обратными связямиbull Конструирование функции энергии должно обеспечивать
laquoконтрастностьraquo разделения
bull Энергетическая функция может Неформально рассматриваться как отрицательный логарифм плотности вероятности
Y 2=(Y1)2
RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцмана
bull Из DBM cтроится Deep Belief Network (DBN)
bull w mdash вес между нейронами
bull b mdash смещение нейрона
bull s mdash состояние нейрона
Алгоритм обучения Contrastive Divergence (CD)bull w_ij mdash веc между i-ым нейроном Вероятность пар может быть представлена как
bull a_i mdash смещение видимого нейрона
bull b_j mdash смещение скрытого нейрона
bull v_i mdash состояние видимого нейрона
bull h_j mdash состояние скрытого нейрона Полная вероятность состояния видимых нейронов
Основные уравнения адаптации
Алгоритм Хинтона - Contrastive Divergence (CD-k)
1 состояние видимых нейронов приравнивается к входному образу2 выводятся вероятности состояний скрытого слоя3 каждому нейрону скрытого слоя ставится в соответствие состояние laquo1raquo с вероятностью равной его текущему состоянию4 выводятся вероятности видимого слоя на основании скрытого5 если текущая итерация меньше k то возврат к шагу 26 выводятся вероятности состояний скрытого слоя
darch Package for deep architectures and Restricted-Bolzmann-MachinesThe darch package is build on the basis of the code from G E Hinton and R R Salakhutdinov (available under Matlab Code for deep belief nets last visit 01082013) This package is for generating neural networks with many layers (deep architectures) and train them with the method introduced by the publications A fast learning algorithm for deep belief nets (G E Hinton S Osindero Y W Teh) and Reducing the dimensionality of data with neural networks (G E Hinton R R Salakhutdinov) This method includes a pre training with the contrastive divergence method publishing by GE Hinton (2002) and a fine tuning with common known training algorithms like backpropagation or conjugate gradient
bull Version 091bull Imports futilelogger ff methodsbull Published 2014-03-16bull Author Martin Dreesbull Maintainer Martin Drees ltmdrees at studfh-dortmunddegtbull License GPL-2bull URL httpgithubcommaddin79darchbull NeedsCompilation nobull Materials READMEbull CRAN checks darch results
Связь плотности вероятности и энергии
Используется распределение Гиббса
Задача обучения с точки минимизации энергии сети
bull Сконструировать функцию энергии с малыми значениями на обучающей выборке и с большими значениями всюду вне этого множества
bull Первое несложно а второе представляет задачу процесса обучения
Интуитивные соображения
Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decomposition LISTA ndashметоды использующие разреженные коды
Латентная переменная Z =argmin_z Distance[Decoder(Z)Y]+FactorB(Z)MAPminimaize sum of factors
Автоэнкодер (auto encoder) Автоэнкодер представляет собой алгоритм обучения без учителя который использует нейронную сеть и метод обратного распространения ошибки для того чтобы добиться того что входной вектор признаков вызывал отклик сети равный входному вектору те y = x Автоэнкодер пытается построить функцию h(x) = x
Архитекттура ICA моделей
Итеративные алгоритмы с оптимальным разреженным кодированием ISTAFISTA
Самоорганизация данных методами Deep Learning
>
Знакомство с пакетом deepnet
Назначение
Составdbndnntrain - обучение сети с архитектурой DBN (deep belief network)loadmnist - формирование данных из файлов MNISTnnpredict - предсказание новых выборок на обученной нейронной сетиnntest ndash тестирование обученной нейронной сети с возвращением значения ошибкиnntrain ndash обучение одностлойной или многослойной нейронной сети методом backproprbmdown ndash генерирование видимого вектора для скрытых состояний сети RBMrbmtrain ndash обучение сети RBMrbmup ndash извлечение скрытых состояний RBM по известным видимым состояниямsaednntrain ndash обучение нейронной сети с архитектурой stacked autoencoder
Прогнозирование (классификация) нейронной сетью с архитектурой stacked auto encoder
Argumentsbull x matrix of x values for examplesbull y vector or matrix of target values for examplesbull hidden vector for number of units of hidden layersDefault is c(10)bull activationfun activation function of hidden unitCan be sigmlinear or tanhDefault isbull sigm for logistic functionbull learningrate learning rate for gradient descent Default is 08bull momentum momentum for gradient descent Default is 05 bull learningrate_scalebull learning rate will be mutiplied by this scale after every iteration Default is 1 bull numepochs number of iteration for samples Default is 3bull batchsize size of mini-batch Default is 100bull output function of output unit can be sigmlinear or softmax Default is sigmbull sae_output function of autoencoder output unit can be sigmlinear or softmax Defaultbull is linearbull hidden_dropout drop out fraction for hidden layer Default is 0bull visible_dropoutbull drop out fraction for input layer Default is 0
Что такое MNISTbull Смешанный набор данных Национального института стандартов и
технологий (mixed National Institute of Standards and Technology MNIST) был создан исследователями IR в качестве эталона для сравнения различных алгоритмов IR
bull Набор данных состоит всего из 70 000 изображений 60 000 обучающих (используемых для создания модели IR) и 10 000 тестовых (применяемых для оценки точности модели) Каждое изображение MNIST mdash это оцифрованная картинка одной цифры написанной от руки Каждое изображение имеет размер 28 times 28 пикселей Каждое значение пикселя лежит в диапазоне от 0 (представляет белый цвет) до 255 (представляет черный цвет) Промежуточные значения отражают оттенки серого
httpyannlecuncomexdbmnistобучающие и тестовые данные хранятся в двух файлах а не в одном Один файл содержит значения пикселей для изображений а другой mdash метки изображений (0ndash9) Каждый из четырех файлов также содержит заголовочную информацию и все они хранятся в двоичном формате сжатом в формате gziptrain-images-idx3-ubytegz training set images (9912422 bytes)
train-labels-idx1-ubytegz training set labels (28881 bytes)
t10k-images-idx3-ubytegz test set images (1648877 bytes)
t10k-labels-idx1-ubytegz test set labels (4542 bytes)
bull Каждая строка файла представляет собой имидж размера 28 times 28 вектором длины 784 каждый признак ndash значение пиксела в черно-белой шале Первый столбец содержит метку цифры 0ndash9 следующие 2828 столбцов представляют целый имидж и так далее Пример первой строки
Визуализация
bull plotmnist()bull mnistbull paramsbull train$n number of train samplesbull train$x pix of every train sample imagebull train$y label of every train sample imagebull train$yy one-of-c vector of label of train sample imagebull test$n number of test samplesbull test$x pix of every test sample imagebull test$y label of every test sample imagebull test$yy one-of-c vector of label of test sample image
plotmnist()
Распознавание рукописных цифр в deepnet
another way to download the MNIST datasetmnist downloadmnist(range=c(01)global=FALSE)look at MNIST datamnist$train$xmnist$train$ymnist$test$xmnist$test$ytrain of the sae neural networkdnnlt-saednntrain(mnist$train$xmnist$train$yhidden=c(55))test of the sae neural networknntest(dnnmnist$test$xmnist$test$yt=05)
End of slides part 2 (Part 3 - NLP remaining)
Vladimirvkrylovgmailcom
Основы предиктивной аналитики Часть вторая
Применение методов Machine Learning к решению задач аналитики
Дмитрий Ветров кандидат физико-математических наук ру
Методы обучающихся машин для аналитики которые мы рассмотрим
Сначала нужно загрузить несколько пакетов (packages) для поддер
Данные для анализа
Скрипт для генерации
Данные которые мы будем использовать для демо состоят из смес
Так выглядят визуализированные данные сгенерированные скриптом
Разделение данных на обучающие и проверочные является важным эт
K-means алгоритм на пальцах
Обучающаяся машина без учителя Алгоритм K-means
Slide 13
Slide 14
Здесь мы используем заранее известный факт что необходимо кла
Еще одна иллюстрация работы алгоритма K-means
Обучающаяся машина без учителя Алгоритм KNN (Nearest Neighbor)
Как работает алгоритм KNN
knn(train test cl k = 1 l = 0 prob = FALSE useall = TRUE
Slide 20
Результаты кластеризации и зависимость ошибки от числа кластеро
Recursive PartitioningRegression Tree
Метод RP реализует обучение машины строить дерево решений по об
Recursive PartitioningRegression Tree (2)
rpart(formula data weights subset naaction = narpart met
Slide 26
Recursive PartitioningRegression Tree example
Анализ по главным компонентам (Principal Component Analysis PC
Итеративные алгоритмы с оптимальным разреженным кодированием IS
Самоорганизация данных методами Deep Learning
Знакомство с пакетом deepnet
Прогнозирование (классификация) нейронной сетью с архитектурой
Arguments
Архитектура сети SAE
Архитектура с 5Х4 hidden 3 outs
Example
Анализ обучающего набора данных
Параметры SAE сети
Коэффициенты связей
Предсказание обученной сетью
Сравнение обучающей и тестовой выборки
plot3d(xy)
Работаем с пакетом MNIST
httpyannlecuncomexdbmnist
Подготовка к обработке
Slide 118
Визуализация
plotmnist()
Распознавание рукописных цифр в deepnet
End of slides part 2 (Part 3 - NLP remaining)
svm((formula data = NULL subset naaction =naomit scale = TRUE))
formulaa symbolic description of the model to be fitdataan optional data frame containing the variables in the model By default the variables are taken from the environment which lsquosvmrsquo is called fromxa data matrix a vector or a sparse matrix (object of class Matrix provided by the Matrix package or of class matrixcsr provided by the SparseM package or of class simple_triplet_matrix provided by the slam package)ya response vector with one label for each rowcomponent of x Can be either a factor (for classification tasks) or a numeric vector (for regression)scaleA logical vector indicating the variables to be scaled If scale is of length 1 the value is recycled as many times as needed Per default data are scaled internally (both x and y variables) to zero mean and unit variance The center and scale values are returned and used for later predictionstypesvm can be used as a classification machine as a regression machine or for novelty detection Depending of whether y is a factor or not the default setting for type is C-classification or eps-regression respectively but may be overwritten by setting an explicit valueValid options areC-classificationnu-classificationone-classification (for novelty detection)eps-regressionnu-regression
Support Vector Machines
s lt- svm( I(factor(class)) ~ x + y data = train cost = 100 gama = 1)
Package lsquodeepnetrsquo February 19 2015 Type Package Title deep learning toolkit in R Version 02 Date 2014-03-20 Author Xiao Rong Maintainer Xiao Rong Description Implement some deep learning architectures and neural network algorithms including BPRBMDBNDeep autoencoder and so on License GPL NeedsCompilation no Repository CRAN DatePublication 2014-03-20 100343
laquoВ 1997 году Deep Blue обыграл в шахматы КаспароваВ 2011 Watson обставил чемпионов JeopardyСможет ли ваш алгоритм в 2013 году отличить Бобика от ПушистикаraquoKaggle Competitions Details
Сегодня уже можно ответить laquoдаraquo mdash десятка лидеров справилась с заданием на 988
Распознавание основано на feature detection и последующем различении комбинаций
Заранее неизвестно какие части картинки могут использоваться как хорошие features В их роли может выступать все что угодно mdash фрагменты изображения форма размер или цвет Feature может не присутствовать на картинке сама а выражаться в параметре полученным каким-то образом из исходных данных
Распознавание рукописных цифр
Еще пример посложнее
Использование нейронной сети с обучениемОбучение такой нейронной сети производится обычно методом обратного распространения ошибки таким образом чтобы минимизировать среднеквадратическую ошибку отклика сети на обучающей выборке Таким образом обучающая выборка содержит пары векторов признаков (входные данные) и эталонных векторов (маркированные данные) (x y)
Сверхвысокая размерность при работе с первичным представлением пикселями
Пиксельное кодирование
Принцип иерархии понятий ndash основа deep learning
bull Все вещи состоят из других маленьких и более элементарных вещей
bull Как извлекать features Гипотеза малоразмерных многообразий
Разреженное (sparse) кодирование
первый уровень иерархии состоит из элементов словаря этого кода которые представляют собой штрихи и границы
Словарь для лиц
Выделение объектов заданного класса
Основные архитектуры Deep Learningbull Deep neural networks (DNN)bull Deep belief networks (DBN)bull Convolutional neural networks (CNN)bull Deep Boltzmann Machines (DBM)bull Stacked (Denoising) Auto-Encodersbull Deep Stacking Networksbull Tensor Deep Stacking Networks (T-DSN)bull Spike-and-Slab RBMs (ssRBMs)bull Compound Hierarchical-Deep Modelsbull Deep Coding Networks (DPCN)bull Deep Kernel Machinesbull Deep Q-Networks (2015 г)
Задача классификации распознавания и подобные являются задачей конструирования функции на множестве входных наборов и со значениями в множестве требуемого вида выходных
bull Норбертом Винером было показано что любая функция может быть сколь угодно точно композицией двух (он использовал функции полином Лагранжа и функцию Лагерра)
bull Соответствует двухслойной нейросетиbull Архитектуры Deep Learning соответствуют представлению
bull Обеспечивают эффективную параметризацию при решении конкретных задач Более сложные функции создаются из большего числа но более эффективно настраиваемых laquoкирпичиковraquo Пример ndash синтез булевых функций Дерево вентилей эффективнее двухслойной схемы
Фактор - графыВсе методы которые расмотрели ndash не DL Даже деревья классификации Все операции в одном входном словаре
DL можно определить по фактор-графу
Например
bull Еще одна сторона DL - нередко использует невыпуклые функции потерьbull Обучение на основе выпуклых функций не зависит от порядка
предъявления данных для обучения Все определяет асимптотика всего train - набора В алгоритмах DL порядок данных в обучающей выборке может иметь значение
bull Многие решения в DL не доказаны математически и являются успешными эвристиками
bull Большой простор для прикладной математики Может рассматриваться как фактор-граф с группами латентных переменных
bull В настоящее время стал основной технологией в распознавании речи (speech recognition) и машинном зрении (computer vision) начал применяться в обработке текстов (natural language processing)
bull Основная идея ndash применение нелинейного отображения входного набора в более высокоразмерное пространство где многие неразделимые композиции становятся разделимыми а затем объединение композиций по семантической близости
Подход разреженного кодирования
Обобщенная архитектура
bull DL сеть может быть собрана каскадированием и использованием обучения с учителем
Здесь используется forward propagation для обучения
Для настройки коэффициентов используется метод fprof для каждого
Требуется знание градиента энергии
Элементы (kl) матрицы Якобиана
Требуется знание градиента энергии 120597119864120597119882119894 = 120597119864120597119883119894120597119865119894(119883119894minus1119882119894)120597119882119894
ሾ1times 119873119908ሿ= ሾ1times 119873119909ሿlowast[119873119909 times 119873119908] Элементы (kl) матрицы Якобиана
Сводится к рекуррентному соотношению для вычисления градиента 120597119864120597119883119894minus1 = 120597119864120597119883119894120597119865119894(119883119894minus1119882119894)120597119883119894minus1
В итоге
Для вычисления градиента может использоваться метод back propagation
В действительности работают любые архитектуры построения функции Нужно конструировать связи и функции блоков
Язык Torch 7 ndash современный инструмент моделирования и имплементации
Machine Learning with Torch7 (httpcodecogbitscomwikidokuphpid=start)
bull These tutorials were originally designed for the IPAM Summer School on Deep Learning more info herebull This wiki provides multiple tutorials with the overall objective of teaching you how to do machine learning
with Torch7bull Torch7 provides a Matlab-like environment for state-of-the-art machine learning algorithms It is easy to use
and provides a very efficient implementation thanks to an easy and fast scripting language (LuaJIT) and an underlying C implementation
bull These tutorials should be readdone in orderbull Tutorial 1 Setup Basics Getting Startedbull Tutorial 2 Supervised Learningbull Tutorial 3 Unsupervised Learningbull Tutorial 4 Graphical Modelsbull Tutorial 5 Creating New Modulesbull Tutorial 6 Using CUDAbull To follow these tutorials and do the exercises you will need to download the associated code which is hosted
on GitHub on this page In this repository each directory corresponds to a tutorial herebull starttxt middot Last modified 20140204 2246 by clement
Torch 7 является расширением Lua
What is LuaLua is a powerful fast lightweight embeddable scripting languageLua combines simple procedural syntax with powerful data description constructs based on associative arrays and extensible semantics Lua is dynamically typed runs by interpreting bytecode for a register-based virtual machine and has automatic memory management with incremental garbage collection making it ideal for configuration scripting and rapid prototyping
Why choose LuaLua is a proven robust languageLua has been used in many industrial applications (eg Adobes Photoshop Lightroom) with an emphasis on embedded systems (eg the Ginga middleware for digital TV in Brazil) and games (eg World of Warcraft and Angry Birds) Lua is currently the leading scripting language in games Lua has a solid reference manual and there are several books about it Several versions of Lua have been released and used in real applications since its creation in 1993 Lua featured in HOPL III the Third ACM SIGPLAN History of Programming Languages Conference in June 2007 Lua won the Front Line Award 2011 from the Game Developers Magazine
Свертка и архитектура 4-х уровневой сверточной сети
Функциональная структура
Примеры успешного применения сверточных сетей
Диагностика эпилепсии по ЭЭГ
Реализация сверточной сетью
Одна из самых больших сверточных сетейbull Krizhevsky Sutskever Hinton 2012bull 650 000 нейронов 832 000 000 синапсов 60 000000 пареметровbull Использовался backprop на GPUbull Обучающая выборка на материалах 20 летbull Купил Google в январе 2013bull В мае 2013 развернул как сервис Photo Tagging Google+
Пример тэгирования
Пример поиска похожих по изображению
Пример поиска в коллекции изображений по текстовому запросу
Пример laquoоблачногоraquo классификатора изображений
Самообучающиеся нейронные сети на основе минимизации функции энергииbull Применима к сетям с обратными связямиbull Конструирование функции энергии должно обеспечивать
laquoконтрастностьraquo разделения
bull Энергетическая функция может Неформально рассматриваться как отрицательный логарифм плотности вероятности
Y 2=(Y1)2
RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцмана
bull Из DBM cтроится Deep Belief Network (DBN)
bull w mdash вес между нейронами
bull b mdash смещение нейрона
bull s mdash состояние нейрона
Алгоритм обучения Contrastive Divergence (CD)bull w_ij mdash веc между i-ым нейроном Вероятность пар может быть представлена как
bull a_i mdash смещение видимого нейрона
bull b_j mdash смещение скрытого нейрона
bull v_i mdash состояние видимого нейрона
bull h_j mdash состояние скрытого нейрона Полная вероятность состояния видимых нейронов
Основные уравнения адаптации
Алгоритм Хинтона - Contrastive Divergence (CD-k)
1 состояние видимых нейронов приравнивается к входному образу2 выводятся вероятности состояний скрытого слоя3 каждому нейрону скрытого слоя ставится в соответствие состояние laquo1raquo с вероятностью равной его текущему состоянию4 выводятся вероятности видимого слоя на основании скрытого5 если текущая итерация меньше k то возврат к шагу 26 выводятся вероятности состояний скрытого слоя
darch Package for deep architectures and Restricted-Bolzmann-MachinesThe darch package is build on the basis of the code from G E Hinton and R R Salakhutdinov (available under Matlab Code for deep belief nets last visit 01082013) This package is for generating neural networks with many layers (deep architectures) and train them with the method introduced by the publications A fast learning algorithm for deep belief nets (G E Hinton S Osindero Y W Teh) and Reducing the dimensionality of data with neural networks (G E Hinton R R Salakhutdinov) This method includes a pre training with the contrastive divergence method publishing by GE Hinton (2002) and a fine tuning with common known training algorithms like backpropagation or conjugate gradient
bull Version 091bull Imports futilelogger ff methodsbull Published 2014-03-16bull Author Martin Dreesbull Maintainer Martin Drees ltmdrees at studfh-dortmunddegtbull License GPL-2bull URL httpgithubcommaddin79darchbull NeedsCompilation nobull Materials READMEbull CRAN checks darch results
Связь плотности вероятности и энергии
Используется распределение Гиббса
Задача обучения с точки минимизации энергии сети
bull Сконструировать функцию энергии с малыми значениями на обучающей выборке и с большими значениями всюду вне этого множества
bull Первое несложно а второе представляет задачу процесса обучения
Интуитивные соображения
Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decomposition LISTA ndashметоды использующие разреженные коды
Латентная переменная Z =argmin_z Distance[Decoder(Z)Y]+FactorB(Z)MAPminimaize sum of factors
Автоэнкодер (auto encoder) Автоэнкодер представляет собой алгоритм обучения без учителя который использует нейронную сеть и метод обратного распространения ошибки для того чтобы добиться того что входной вектор признаков вызывал отклик сети равный входному вектору те y = x Автоэнкодер пытается построить функцию h(x) = x
Архитекттура ICA моделей
Итеративные алгоритмы с оптимальным разреженным кодированием ISTAFISTA
Самоорганизация данных методами Deep Learning
>
Знакомство с пакетом deepnet
Назначение
Составdbndnntrain - обучение сети с архитектурой DBN (deep belief network)loadmnist - формирование данных из файлов MNISTnnpredict - предсказание новых выборок на обученной нейронной сетиnntest ndash тестирование обученной нейронной сети с возвращением значения ошибкиnntrain ndash обучение одностлойной или многослойной нейронной сети методом backproprbmdown ndash генерирование видимого вектора для скрытых состояний сети RBMrbmtrain ndash обучение сети RBMrbmup ndash извлечение скрытых состояний RBM по известным видимым состояниямsaednntrain ndash обучение нейронной сети с архитектурой stacked autoencoder
Прогнозирование (классификация) нейронной сетью с архитектурой stacked auto encoder
Argumentsbull x matrix of x values for examplesbull y vector or matrix of target values for examplesbull hidden vector for number of units of hidden layersDefault is c(10)bull activationfun activation function of hidden unitCan be sigmlinear or tanhDefault isbull sigm for logistic functionbull learningrate learning rate for gradient descent Default is 08bull momentum momentum for gradient descent Default is 05 bull learningrate_scalebull learning rate will be mutiplied by this scale after every iteration Default is 1 bull numepochs number of iteration for samples Default is 3bull batchsize size of mini-batch Default is 100bull output function of output unit can be sigmlinear or softmax Default is sigmbull sae_output function of autoencoder output unit can be sigmlinear or softmax Defaultbull is linearbull hidden_dropout drop out fraction for hidden layer Default is 0bull visible_dropoutbull drop out fraction for input layer Default is 0
Что такое MNISTbull Смешанный набор данных Национального института стандартов и
технологий (mixed National Institute of Standards and Technology MNIST) был создан исследователями IR в качестве эталона для сравнения различных алгоритмов IR
bull Набор данных состоит всего из 70 000 изображений 60 000 обучающих (используемых для создания модели IR) и 10 000 тестовых (применяемых для оценки точности модели) Каждое изображение MNIST mdash это оцифрованная картинка одной цифры написанной от руки Каждое изображение имеет размер 28 times 28 пикселей Каждое значение пикселя лежит в диапазоне от 0 (представляет белый цвет) до 255 (представляет черный цвет) Промежуточные значения отражают оттенки серого
httpyannlecuncomexdbmnistобучающие и тестовые данные хранятся в двух файлах а не в одном Один файл содержит значения пикселей для изображений а другой mdash метки изображений (0ndash9) Каждый из четырех файлов также содержит заголовочную информацию и все они хранятся в двоичном формате сжатом в формате gziptrain-images-idx3-ubytegz training set images (9912422 bytes)
train-labels-idx1-ubytegz training set labels (28881 bytes)
t10k-images-idx3-ubytegz test set images (1648877 bytes)
t10k-labels-idx1-ubytegz test set labels (4542 bytes)
bull Каждая строка файла представляет собой имидж размера 28 times 28 вектором длины 784 каждый признак ndash значение пиксела в черно-белой шале Первый столбец содержит метку цифры 0ndash9 следующие 2828 столбцов представляют целый имидж и так далее Пример первой строки
Визуализация
bull plotmnist()bull mnistbull paramsbull train$n number of train samplesbull train$x pix of every train sample imagebull train$y label of every train sample imagebull train$yy one-of-c vector of label of train sample imagebull test$n number of test samplesbull test$x pix of every test sample imagebull test$y label of every test sample imagebull test$yy one-of-c vector of label of test sample image
plotmnist()
Распознавание рукописных цифр в deepnet
another way to download the MNIST datasetmnist downloadmnist(range=c(01)global=FALSE)look at MNIST datamnist$train$xmnist$train$ymnist$test$xmnist$test$ytrain of the sae neural networkdnnlt-saednntrain(mnist$train$xmnist$train$yhidden=c(55))test of the sae neural networknntest(dnnmnist$test$xmnist$test$yt=05)
End of slides part 2 (Part 3 - NLP remaining)
Vladimirvkrylovgmailcom
Основы предиктивной аналитики Часть вторая
Применение методов Machine Learning к решению задач аналитики
Дмитрий Ветров кандидат физико-математических наук ру
Методы обучающихся машин для аналитики которые мы рассмотрим
Сначала нужно загрузить несколько пакетов (packages) для поддер
Данные для анализа
Скрипт для генерации
Данные которые мы будем использовать для демо состоят из смес
Так выглядят визуализированные данные сгенерированные скриптом
Разделение данных на обучающие и проверочные является важным эт
K-means алгоритм на пальцах
Обучающаяся машина без учителя Алгоритм K-means
Slide 13
Slide 14
Здесь мы используем заранее известный факт что необходимо кла
Еще одна иллюстрация работы алгоритма K-means
Обучающаяся машина без учителя Алгоритм KNN (Nearest Neighbor)
Как работает алгоритм KNN
knn(train test cl k = 1 l = 0 prob = FALSE useall = TRUE
Slide 20
Результаты кластеризации и зависимость ошибки от числа кластеро
Recursive PartitioningRegression Tree
Метод RP реализует обучение машины строить дерево решений по об
Recursive PartitioningRegression Tree (2)
rpart(formula data weights subset naaction = narpart met
Slide 26
Recursive PartitioningRegression Tree example
Анализ по главным компонентам (Principal Component Analysis PC
Package lsquodeepnetrsquo February 19 2015 Type Package Title deep learning toolkit in R Version 02 Date 2014-03-20 Author Xiao Rong Maintainer Xiao Rong Description Implement some deep learning architectures and neural network algorithms including BPRBMDBNDeep autoencoder and so on License GPL NeedsCompilation no Repository CRAN DatePublication 2014-03-20 100343
laquoВ 1997 году Deep Blue обыграл в шахматы КаспароваВ 2011 Watson обставил чемпионов JeopardyСможет ли ваш алгоритм в 2013 году отличить Бобика от ПушистикаraquoKaggle Competitions Details
Сегодня уже можно ответить laquoдаraquo mdash десятка лидеров справилась с заданием на 988
Распознавание основано на feature detection и последующем различении комбинаций
Заранее неизвестно какие части картинки могут использоваться как хорошие features В их роли может выступать все что угодно mdash фрагменты изображения форма размер или цвет Feature может не присутствовать на картинке сама а выражаться в параметре полученным каким-то образом из исходных данных
Распознавание рукописных цифр
Еще пример посложнее
Использование нейронной сети с обучениемОбучение такой нейронной сети производится обычно методом обратного распространения ошибки таким образом чтобы минимизировать среднеквадратическую ошибку отклика сети на обучающей выборке Таким образом обучающая выборка содержит пары векторов признаков (входные данные) и эталонных векторов (маркированные данные) (x y)
Сверхвысокая размерность при работе с первичным представлением пикселями
Пиксельное кодирование
Принцип иерархии понятий ndash основа deep learning
bull Все вещи состоят из других маленьких и более элементарных вещей
bull Как извлекать features Гипотеза малоразмерных многообразий
Разреженное (sparse) кодирование
первый уровень иерархии состоит из элементов словаря этого кода которые представляют собой штрихи и границы
Словарь для лиц
Выделение объектов заданного класса
Основные архитектуры Deep Learningbull Deep neural networks (DNN)bull Deep belief networks (DBN)bull Convolutional neural networks (CNN)bull Deep Boltzmann Machines (DBM)bull Stacked (Denoising) Auto-Encodersbull Deep Stacking Networksbull Tensor Deep Stacking Networks (T-DSN)bull Spike-and-Slab RBMs (ssRBMs)bull Compound Hierarchical-Deep Modelsbull Deep Coding Networks (DPCN)bull Deep Kernel Machinesbull Deep Q-Networks (2015 г)
Задача классификации распознавания и подобные являются задачей конструирования функции на множестве входных наборов и со значениями в множестве требуемого вида выходных
bull Норбертом Винером было показано что любая функция может быть сколь угодно точно композицией двух (он использовал функции полином Лагранжа и функцию Лагерра)
bull Соответствует двухслойной нейросетиbull Архитектуры Deep Learning соответствуют представлению
bull Обеспечивают эффективную параметризацию при решении конкретных задач Более сложные функции создаются из большего числа но более эффективно настраиваемых laquoкирпичиковraquo Пример ndash синтез булевых функций Дерево вентилей эффективнее двухслойной схемы
Фактор - графыВсе методы которые расмотрели ndash не DL Даже деревья классификации Все операции в одном входном словаре
DL можно определить по фактор-графу
Например
bull Еще одна сторона DL - нередко использует невыпуклые функции потерьbull Обучение на основе выпуклых функций не зависит от порядка
предъявления данных для обучения Все определяет асимптотика всего train - набора В алгоритмах DL порядок данных в обучающей выборке может иметь значение
bull Многие решения в DL не доказаны математически и являются успешными эвристиками
bull Большой простор для прикладной математики Может рассматриваться как фактор-граф с группами латентных переменных
bull В настоящее время стал основной технологией в распознавании речи (speech recognition) и машинном зрении (computer vision) начал применяться в обработке текстов (natural language processing)
bull Основная идея ndash применение нелинейного отображения входного набора в более высокоразмерное пространство где многие неразделимые композиции становятся разделимыми а затем объединение композиций по семантической близости
Подход разреженного кодирования
Обобщенная архитектура
bull DL сеть может быть собрана каскадированием и использованием обучения с учителем
Здесь используется forward propagation для обучения
Для настройки коэффициентов используется метод fprof для каждого
Требуется знание градиента энергии
Элементы (kl) матрицы Якобиана
Требуется знание градиента энергии 120597119864120597119882119894 = 120597119864120597119883119894120597119865119894(119883119894minus1119882119894)120597119882119894
ሾ1times 119873119908ሿ= ሾ1times 119873119909ሿlowast[119873119909 times 119873119908] Элементы (kl) матрицы Якобиана
Сводится к рекуррентному соотношению для вычисления градиента 120597119864120597119883119894minus1 = 120597119864120597119883119894120597119865119894(119883119894minus1119882119894)120597119883119894minus1
В итоге
Для вычисления градиента может использоваться метод back propagation
В действительности работают любые архитектуры построения функции Нужно конструировать связи и функции блоков
Язык Torch 7 ndash современный инструмент моделирования и имплементации
Machine Learning with Torch7 (httpcodecogbitscomwikidokuphpid=start)
bull These tutorials were originally designed for the IPAM Summer School on Deep Learning more info herebull This wiki provides multiple tutorials with the overall objective of teaching you how to do machine learning
with Torch7bull Torch7 provides a Matlab-like environment for state-of-the-art machine learning algorithms It is easy to use
and provides a very efficient implementation thanks to an easy and fast scripting language (LuaJIT) and an underlying C implementation
bull These tutorials should be readdone in orderbull Tutorial 1 Setup Basics Getting Startedbull Tutorial 2 Supervised Learningbull Tutorial 3 Unsupervised Learningbull Tutorial 4 Graphical Modelsbull Tutorial 5 Creating New Modulesbull Tutorial 6 Using CUDAbull To follow these tutorials and do the exercises you will need to download the associated code which is hosted
on GitHub on this page In this repository each directory corresponds to a tutorial herebull starttxt middot Last modified 20140204 2246 by clement
Torch 7 является расширением Lua
What is LuaLua is a powerful fast lightweight embeddable scripting languageLua combines simple procedural syntax with powerful data description constructs based on associative arrays and extensible semantics Lua is dynamically typed runs by interpreting bytecode for a register-based virtual machine and has automatic memory management with incremental garbage collection making it ideal for configuration scripting and rapid prototyping
Why choose LuaLua is a proven robust languageLua has been used in many industrial applications (eg Adobes Photoshop Lightroom) with an emphasis on embedded systems (eg the Ginga middleware for digital TV in Brazil) and games (eg World of Warcraft and Angry Birds) Lua is currently the leading scripting language in games Lua has a solid reference manual and there are several books about it Several versions of Lua have been released and used in real applications since its creation in 1993 Lua featured in HOPL III the Third ACM SIGPLAN History of Programming Languages Conference in June 2007 Lua won the Front Line Award 2011 from the Game Developers Magazine
Свертка и архитектура 4-х уровневой сверточной сети
Функциональная структура
Примеры успешного применения сверточных сетей
Диагностика эпилепсии по ЭЭГ
Реализация сверточной сетью
Одна из самых больших сверточных сетейbull Krizhevsky Sutskever Hinton 2012bull 650 000 нейронов 832 000 000 синапсов 60 000000 пареметровbull Использовался backprop на GPUbull Обучающая выборка на материалах 20 летbull Купил Google в январе 2013bull В мае 2013 развернул как сервис Photo Tagging Google+
Пример тэгирования
Пример поиска похожих по изображению
Пример поиска в коллекции изображений по текстовому запросу
Пример laquoоблачногоraquo классификатора изображений
Самообучающиеся нейронные сети на основе минимизации функции энергииbull Применима к сетям с обратными связямиbull Конструирование функции энергии должно обеспечивать
laquoконтрастностьraquo разделения
bull Энергетическая функция может Неформально рассматриваться как отрицательный логарифм плотности вероятности
Y 2=(Y1)2
RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцмана
bull Из DBM cтроится Deep Belief Network (DBN)
bull w mdash вес между нейронами
bull b mdash смещение нейрона
bull s mdash состояние нейрона
Алгоритм обучения Contrastive Divergence (CD)bull w_ij mdash веc между i-ым нейроном Вероятность пар может быть представлена как
bull a_i mdash смещение видимого нейрона
bull b_j mdash смещение скрытого нейрона
bull v_i mdash состояние видимого нейрона
bull h_j mdash состояние скрытого нейрона Полная вероятность состояния видимых нейронов
Основные уравнения адаптации
Алгоритм Хинтона - Contrastive Divergence (CD-k)
1 состояние видимых нейронов приравнивается к входному образу2 выводятся вероятности состояний скрытого слоя3 каждому нейрону скрытого слоя ставится в соответствие состояние laquo1raquo с вероятностью равной его текущему состоянию4 выводятся вероятности видимого слоя на основании скрытого5 если текущая итерация меньше k то возврат к шагу 26 выводятся вероятности состояний скрытого слоя
darch Package for deep architectures and Restricted-Bolzmann-MachinesThe darch package is build on the basis of the code from G E Hinton and R R Salakhutdinov (available under Matlab Code for deep belief nets last visit 01082013) This package is for generating neural networks with many layers (deep architectures) and train them with the method introduced by the publications A fast learning algorithm for deep belief nets (G E Hinton S Osindero Y W Teh) and Reducing the dimensionality of data with neural networks (G E Hinton R R Salakhutdinov) This method includes a pre training with the contrastive divergence method publishing by GE Hinton (2002) and a fine tuning with common known training algorithms like backpropagation or conjugate gradient
bull Version 091bull Imports futilelogger ff methodsbull Published 2014-03-16bull Author Martin Dreesbull Maintainer Martin Drees ltmdrees at studfh-dortmunddegtbull License GPL-2bull URL httpgithubcommaddin79darchbull NeedsCompilation nobull Materials READMEbull CRAN checks darch results
Связь плотности вероятности и энергии
Используется распределение Гиббса
Задача обучения с точки минимизации энергии сети
bull Сконструировать функцию энергии с малыми значениями на обучающей выборке и с большими значениями всюду вне этого множества
bull Первое несложно а второе представляет задачу процесса обучения
Интуитивные соображения
Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decomposition LISTA ndashметоды использующие разреженные коды
Латентная переменная Z =argmin_z Distance[Decoder(Z)Y]+FactorB(Z)MAPminimaize sum of factors
Автоэнкодер (auto encoder) Автоэнкодер представляет собой алгоритм обучения без учителя который использует нейронную сеть и метод обратного распространения ошибки для того чтобы добиться того что входной вектор признаков вызывал отклик сети равный входному вектору те y = x Автоэнкодер пытается построить функцию h(x) = x
Архитекттура ICA моделей
Итеративные алгоритмы с оптимальным разреженным кодированием ISTAFISTA
Самоорганизация данных методами Deep Learning
>
Знакомство с пакетом deepnet
Назначение
Составdbndnntrain - обучение сети с архитектурой DBN (deep belief network)loadmnist - формирование данных из файлов MNISTnnpredict - предсказание новых выборок на обученной нейронной сетиnntest ndash тестирование обученной нейронной сети с возвращением значения ошибкиnntrain ndash обучение одностлойной или многослойной нейронной сети методом backproprbmdown ndash генерирование видимого вектора для скрытых состояний сети RBMrbmtrain ndash обучение сети RBMrbmup ndash извлечение скрытых состояний RBM по известным видимым состояниямsaednntrain ndash обучение нейронной сети с архитектурой stacked autoencoder
Прогнозирование (классификация) нейронной сетью с архитектурой stacked auto encoder
Argumentsbull x matrix of x values for examplesbull y vector or matrix of target values for examplesbull hidden vector for number of units of hidden layersDefault is c(10)bull activationfun activation function of hidden unitCan be sigmlinear or tanhDefault isbull sigm for logistic functionbull learningrate learning rate for gradient descent Default is 08bull momentum momentum for gradient descent Default is 05 bull learningrate_scalebull learning rate will be mutiplied by this scale after every iteration Default is 1 bull numepochs number of iteration for samples Default is 3bull batchsize size of mini-batch Default is 100bull output function of output unit can be sigmlinear or softmax Default is sigmbull sae_output function of autoencoder output unit can be sigmlinear or softmax Defaultbull is linearbull hidden_dropout drop out fraction for hidden layer Default is 0bull visible_dropoutbull drop out fraction for input layer Default is 0
Что такое MNISTbull Смешанный набор данных Национального института стандартов и
технологий (mixed National Institute of Standards and Technology MNIST) был создан исследователями IR в качестве эталона для сравнения различных алгоритмов IR
bull Набор данных состоит всего из 70 000 изображений 60 000 обучающих (используемых для создания модели IR) и 10 000 тестовых (применяемых для оценки точности модели) Каждое изображение MNIST mdash это оцифрованная картинка одной цифры написанной от руки Каждое изображение имеет размер 28 times 28 пикселей Каждое значение пикселя лежит в диапазоне от 0 (представляет белый цвет) до 255 (представляет черный цвет) Промежуточные значения отражают оттенки серого
httpyannlecuncomexdbmnistобучающие и тестовые данные хранятся в двух файлах а не в одном Один файл содержит значения пикселей для изображений а другой mdash метки изображений (0ndash9) Каждый из четырех файлов также содержит заголовочную информацию и все они хранятся в двоичном формате сжатом в формате gziptrain-images-idx3-ubytegz training set images (9912422 bytes)
train-labels-idx1-ubytegz training set labels (28881 bytes)
t10k-images-idx3-ubytegz test set images (1648877 bytes)
t10k-labels-idx1-ubytegz test set labels (4542 bytes)
bull Каждая строка файла представляет собой имидж размера 28 times 28 вектором длины 784 каждый признак ndash значение пиксела в черно-белой шале Первый столбец содержит метку цифры 0ndash9 следующие 2828 столбцов представляют целый имидж и так далее Пример первой строки
Визуализация
bull plotmnist()bull mnistbull paramsbull train$n number of train samplesbull train$x pix of every train sample imagebull train$y label of every train sample imagebull train$yy one-of-c vector of label of train sample imagebull test$n number of test samplesbull test$x pix of every test sample imagebull test$y label of every test sample imagebull test$yy one-of-c vector of label of test sample image
plotmnist()
Распознавание рукописных цифр в deepnet
another way to download the MNIST datasetmnist downloadmnist(range=c(01)global=FALSE)look at MNIST datamnist$train$xmnist$train$ymnist$test$xmnist$test$ytrain of the sae neural networkdnnlt-saednntrain(mnist$train$xmnist$train$yhidden=c(55))test of the sae neural networknntest(dnnmnist$test$xmnist$test$yt=05)
End of slides part 2 (Part 3 - NLP remaining)
Vladimirvkrylovgmailcom
Основы предиктивной аналитики Часть вторая
Применение методов Machine Learning к решению задач аналитики
Дмитрий Ветров кандидат физико-математических наук ру
Методы обучающихся машин для аналитики которые мы рассмотрим
Сначала нужно загрузить несколько пакетов (packages) для поддер
Данные для анализа
Скрипт для генерации
Данные которые мы будем использовать для демо состоят из смес
Так выглядят визуализированные данные сгенерированные скриптом
Разделение данных на обучающие и проверочные является важным эт
K-means алгоритм на пальцах
Обучающаяся машина без учителя Алгоритм K-means
Slide 13
Slide 14
Здесь мы используем заранее известный факт что необходимо кла
Еще одна иллюстрация работы алгоритма K-means
Обучающаяся машина без учителя Алгоритм KNN (Nearest Neighbor)
Как работает алгоритм KNN
knn(train test cl k = 1 l = 0 prob = FALSE useall = TRUE
Slide 20
Результаты кластеризации и зависимость ошибки от числа кластеро
Recursive PartitioningRegression Tree
Метод RP реализует обучение машины строить дерево решений по об
Recursive PartitioningRegression Tree (2)
rpart(formula data weights subset naaction = narpart met
Slide 26
Recursive PartitioningRegression Tree example
Анализ по главным компонентам (Principal Component Analysis PC
Итеративные алгоритмы с оптимальным разреженным кодированием IS
Самоорганизация данных методами Deep Learning
Знакомство с пакетом deepnet
Прогнозирование (классификация) нейронной сетью с архитектурой
Arguments
Архитектура сети SAE
Архитектура с 5Х4 hidden 3 outs
Example
Анализ обучающего набора данных
Параметры SAE сети
Коэффициенты связей
Предсказание обученной сетью
Сравнение обучающей и тестовой выборки
plot3d(xy)
Работаем с пакетом MNIST
httpyannlecuncomexdbmnist
Подготовка к обработке
Slide 118
Визуализация
plotmnist()
Распознавание рукописных цифр в deepnet
End of slides part 2 (Part 3 - NLP remaining)
Глубокое обучение (Deep Learning)
Package lsquodeepnetrsquo February 19 2015 Type Package Title deep learning toolkit in R Version 02 Date 2014-03-20 Author Xiao Rong Maintainer Xiao Rong Description Implement some deep learning architectures and neural network algorithms including BPRBMDBNDeep autoencoder and so on License GPL NeedsCompilation no Repository CRAN DatePublication 2014-03-20 100343
laquoВ 1997 году Deep Blue обыграл в шахматы КаспароваВ 2011 Watson обставил чемпионов JeopardyСможет ли ваш алгоритм в 2013 году отличить Бобика от ПушистикаraquoKaggle Competitions Details
Сегодня уже можно ответить laquoдаraquo mdash десятка лидеров справилась с заданием на 988
Распознавание основано на feature detection и последующем различении комбинаций
Заранее неизвестно какие части картинки могут использоваться как хорошие features В их роли может выступать все что угодно mdash фрагменты изображения форма размер или цвет Feature может не присутствовать на картинке сама а выражаться в параметре полученным каким-то образом из исходных данных
Распознавание рукописных цифр
Еще пример посложнее
Использование нейронной сети с обучениемОбучение такой нейронной сети производится обычно методом обратного распространения ошибки таким образом чтобы минимизировать среднеквадратическую ошибку отклика сети на обучающей выборке Таким образом обучающая выборка содержит пары векторов признаков (входные данные) и эталонных векторов (маркированные данные) (x y)
Сверхвысокая размерность при работе с первичным представлением пикселями
Пиксельное кодирование
Принцип иерархии понятий ndash основа deep learning
bull Все вещи состоят из других маленьких и более элементарных вещей
bull Как извлекать features Гипотеза малоразмерных многообразий
Разреженное (sparse) кодирование
первый уровень иерархии состоит из элементов словаря этого кода которые представляют собой штрихи и границы
Словарь для лиц
Выделение объектов заданного класса
Основные архитектуры Deep Learningbull Deep neural networks (DNN)bull Deep belief networks (DBN)bull Convolutional neural networks (CNN)bull Deep Boltzmann Machines (DBM)bull Stacked (Denoising) Auto-Encodersbull Deep Stacking Networksbull Tensor Deep Stacking Networks (T-DSN)bull Spike-and-Slab RBMs (ssRBMs)bull Compound Hierarchical-Deep Modelsbull Deep Coding Networks (DPCN)bull Deep Kernel Machinesbull Deep Q-Networks (2015 г)
Задача классификации распознавания и подобные являются задачей конструирования функции на множестве входных наборов и со значениями в множестве требуемого вида выходных
bull Норбертом Винером было показано что любая функция может быть сколь угодно точно композицией двух (он использовал функции полином Лагранжа и функцию Лагерра)
bull Соответствует двухслойной нейросетиbull Архитектуры Deep Learning соответствуют представлению
bull Обеспечивают эффективную параметризацию при решении конкретных задач Более сложные функции создаются из большего числа но более эффективно настраиваемых laquoкирпичиковraquo Пример ndash синтез булевых функций Дерево вентилей эффективнее двухслойной схемы
Фактор - графыВсе методы которые расмотрели ndash не DL Даже деревья классификации Все операции в одном входном словаре
DL можно определить по фактор-графу
Например
bull Еще одна сторона DL - нередко использует невыпуклые функции потерьbull Обучение на основе выпуклых функций не зависит от порядка
предъявления данных для обучения Все определяет асимптотика всего train - набора В алгоритмах DL порядок данных в обучающей выборке может иметь значение
bull Многие решения в DL не доказаны математически и являются успешными эвристиками
bull Большой простор для прикладной математики Может рассматриваться как фактор-граф с группами латентных переменных
bull В настоящее время стал основной технологией в распознавании речи (speech recognition) и машинном зрении (computer vision) начал применяться в обработке текстов (natural language processing)
bull Основная идея ndash применение нелинейного отображения входного набора в более высокоразмерное пространство где многие неразделимые композиции становятся разделимыми а затем объединение композиций по семантической близости
Подход разреженного кодирования
Обобщенная архитектура
bull DL сеть может быть собрана каскадированием и использованием обучения с учителем
Здесь используется forward propagation для обучения
Для настройки коэффициентов используется метод fprof для каждого
Требуется знание градиента энергии
Элементы (kl) матрицы Якобиана
Требуется знание градиента энергии 120597119864120597119882119894 = 120597119864120597119883119894120597119865119894(119883119894minus1119882119894)120597119882119894
ሾ1times 119873119908ሿ= ሾ1times 119873119909ሿlowast[119873119909 times 119873119908] Элементы (kl) матрицы Якобиана
Сводится к рекуррентному соотношению для вычисления градиента 120597119864120597119883119894minus1 = 120597119864120597119883119894120597119865119894(119883119894minus1119882119894)120597119883119894minus1
В итоге
Для вычисления градиента может использоваться метод back propagation
В действительности работают любые архитектуры построения функции Нужно конструировать связи и функции блоков
Язык Torch 7 ndash современный инструмент моделирования и имплементации
Machine Learning with Torch7 (httpcodecogbitscomwikidokuphpid=start)
bull These tutorials were originally designed for the IPAM Summer School on Deep Learning more info herebull This wiki provides multiple tutorials with the overall objective of teaching you how to do machine learning
with Torch7bull Torch7 provides a Matlab-like environment for state-of-the-art machine learning algorithms It is easy to use
and provides a very efficient implementation thanks to an easy and fast scripting language (LuaJIT) and an underlying C implementation
bull These tutorials should be readdone in orderbull Tutorial 1 Setup Basics Getting Startedbull Tutorial 2 Supervised Learningbull Tutorial 3 Unsupervised Learningbull Tutorial 4 Graphical Modelsbull Tutorial 5 Creating New Modulesbull Tutorial 6 Using CUDAbull To follow these tutorials and do the exercises you will need to download the associated code which is hosted
on GitHub on this page In this repository each directory corresponds to a tutorial herebull starttxt middot Last modified 20140204 2246 by clement
Torch 7 является расширением Lua
What is LuaLua is a powerful fast lightweight embeddable scripting languageLua combines simple procedural syntax with powerful data description constructs based on associative arrays and extensible semantics Lua is dynamically typed runs by interpreting bytecode for a register-based virtual machine and has automatic memory management with incremental garbage collection making it ideal for configuration scripting and rapid prototyping
Why choose LuaLua is a proven robust languageLua has been used in many industrial applications (eg Adobes Photoshop Lightroom) with an emphasis on embedded systems (eg the Ginga middleware for digital TV in Brazil) and games (eg World of Warcraft and Angry Birds) Lua is currently the leading scripting language in games Lua has a solid reference manual and there are several books about it Several versions of Lua have been released and used in real applications since its creation in 1993 Lua featured in HOPL III the Third ACM SIGPLAN History of Programming Languages Conference in June 2007 Lua won the Front Line Award 2011 from the Game Developers Magazine
Свертка и архитектура 4-х уровневой сверточной сети
Функциональная структура
Примеры успешного применения сверточных сетей
Диагностика эпилепсии по ЭЭГ
Реализация сверточной сетью
Одна из самых больших сверточных сетейbull Krizhevsky Sutskever Hinton 2012bull 650 000 нейронов 832 000 000 синапсов 60 000000 пареметровbull Использовался backprop на GPUbull Обучающая выборка на материалах 20 летbull Купил Google в январе 2013bull В мае 2013 развернул как сервис Photo Tagging Google+
Пример тэгирования
Пример поиска похожих по изображению
Пример поиска в коллекции изображений по текстовому запросу
Пример laquoоблачногоraquo классификатора изображений
Самообучающиеся нейронные сети на основе минимизации функции энергииbull Применима к сетям с обратными связямиbull Конструирование функции энергии должно обеспечивать
laquoконтрастностьraquo разделения
bull Энергетическая функция может Неформально рассматриваться как отрицательный логарифм плотности вероятности
Y 2=(Y1)2
RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцмана
bull Из DBM cтроится Deep Belief Network (DBN)
bull w mdash вес между нейронами
bull b mdash смещение нейрона
bull s mdash состояние нейрона
Алгоритм обучения Contrastive Divergence (CD)bull w_ij mdash веc между i-ым нейроном Вероятность пар может быть представлена как
bull a_i mdash смещение видимого нейрона
bull b_j mdash смещение скрытого нейрона
bull v_i mdash состояние видимого нейрона
bull h_j mdash состояние скрытого нейрона Полная вероятность состояния видимых нейронов
Основные уравнения адаптации
Алгоритм Хинтона - Contrastive Divergence (CD-k)
1 состояние видимых нейронов приравнивается к входному образу2 выводятся вероятности состояний скрытого слоя3 каждому нейрону скрытого слоя ставится в соответствие состояние laquo1raquo с вероятностью равной его текущему состоянию4 выводятся вероятности видимого слоя на основании скрытого5 если текущая итерация меньше k то возврат к шагу 26 выводятся вероятности состояний скрытого слоя
darch Package for deep architectures and Restricted-Bolzmann-MachinesThe darch package is build on the basis of the code from G E Hinton and R R Salakhutdinov (available under Matlab Code for deep belief nets last visit 01082013) This package is for generating neural networks with many layers (deep architectures) and train them with the method introduced by the publications A fast learning algorithm for deep belief nets (G E Hinton S Osindero Y W Teh) and Reducing the dimensionality of data with neural networks (G E Hinton R R Salakhutdinov) This method includes a pre training with the contrastive divergence method publishing by GE Hinton (2002) and a fine tuning with common known training algorithms like backpropagation or conjugate gradient
bull Version 091bull Imports futilelogger ff methodsbull Published 2014-03-16bull Author Martin Dreesbull Maintainer Martin Drees ltmdrees at studfh-dortmunddegtbull License GPL-2bull URL httpgithubcommaddin79darchbull NeedsCompilation nobull Materials READMEbull CRAN checks darch results
Связь плотности вероятности и энергии
Используется распределение Гиббса
Задача обучения с точки минимизации энергии сети
bull Сконструировать функцию энергии с малыми значениями на обучающей выборке и с большими значениями всюду вне этого множества
bull Первое несложно а второе представляет задачу процесса обучения
Интуитивные соображения
Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decomposition LISTA ndashметоды использующие разреженные коды
Латентная переменная Z =argmin_z Distance[Decoder(Z)Y]+FactorB(Z)MAPminimaize sum of factors
Автоэнкодер (auto encoder) Автоэнкодер представляет собой алгоритм обучения без учителя который использует нейронную сеть и метод обратного распространения ошибки для того чтобы добиться того что входной вектор признаков вызывал отклик сети равный входному вектору те y = x Автоэнкодер пытается построить функцию h(x) = x
Архитекттура ICA моделей
Итеративные алгоритмы с оптимальным разреженным кодированием ISTAFISTA
Самоорганизация данных методами Deep Learning
>
Знакомство с пакетом deepnet
Назначение
Составdbndnntrain - обучение сети с архитектурой DBN (deep belief network)loadmnist - формирование данных из файлов MNISTnnpredict - предсказание новых выборок на обученной нейронной сетиnntest ndash тестирование обученной нейронной сети с возвращением значения ошибкиnntrain ndash обучение одностлойной или многослойной нейронной сети методом backproprbmdown ndash генерирование видимого вектора для скрытых состояний сети RBMrbmtrain ndash обучение сети RBMrbmup ndash извлечение скрытых состояний RBM по известным видимым состояниямsaednntrain ndash обучение нейронной сети с архитектурой stacked autoencoder
Прогнозирование (классификация) нейронной сетью с архитектурой stacked auto encoder
Argumentsbull x matrix of x values for examplesbull y vector or matrix of target values for examplesbull hidden vector for number of units of hidden layersDefault is c(10)bull activationfun activation function of hidden unitCan be sigmlinear or tanhDefault isbull sigm for logistic functionbull learningrate learning rate for gradient descent Default is 08bull momentum momentum for gradient descent Default is 05 bull learningrate_scalebull learning rate will be mutiplied by this scale after every iteration Default is 1 bull numepochs number of iteration for samples Default is 3bull batchsize size of mini-batch Default is 100bull output function of output unit can be sigmlinear or softmax Default is sigmbull sae_output function of autoencoder output unit can be sigmlinear or softmax Defaultbull is linearbull hidden_dropout drop out fraction for hidden layer Default is 0bull visible_dropoutbull drop out fraction for input layer Default is 0
Что такое MNISTbull Смешанный набор данных Национального института стандартов и
технологий (mixed National Institute of Standards and Technology MNIST) был создан исследователями IR в качестве эталона для сравнения различных алгоритмов IR
bull Набор данных состоит всего из 70 000 изображений 60 000 обучающих (используемых для создания модели IR) и 10 000 тестовых (применяемых для оценки точности модели) Каждое изображение MNIST mdash это оцифрованная картинка одной цифры написанной от руки Каждое изображение имеет размер 28 times 28 пикселей Каждое значение пикселя лежит в диапазоне от 0 (представляет белый цвет) до 255 (представляет черный цвет) Промежуточные значения отражают оттенки серого
httpyannlecuncomexdbmnistобучающие и тестовые данные хранятся в двух файлах а не в одном Один файл содержит значения пикселей для изображений а другой mdash метки изображений (0ndash9) Каждый из четырех файлов также содержит заголовочную информацию и все они хранятся в двоичном формате сжатом в формате gziptrain-images-idx3-ubytegz training set images (9912422 bytes)
train-labels-idx1-ubytegz training set labels (28881 bytes)
t10k-images-idx3-ubytegz test set images (1648877 bytes)
t10k-labels-idx1-ubytegz test set labels (4542 bytes)
bull Каждая строка файла представляет собой имидж размера 28 times 28 вектором длины 784 каждый признак ndash значение пиксела в черно-белой шале Первый столбец содержит метку цифры 0ndash9 следующие 2828 столбцов представляют целый имидж и так далее Пример первой строки
Визуализация
bull plotmnist()bull mnistbull paramsbull train$n number of train samplesbull train$x pix of every train sample imagebull train$y label of every train sample imagebull train$yy one-of-c vector of label of train sample imagebull test$n number of test samplesbull test$x pix of every test sample imagebull test$y label of every test sample imagebull test$yy one-of-c vector of label of test sample image
plotmnist()
Распознавание рукописных цифр в deepnet
another way to download the MNIST datasetmnist downloadmnist(range=c(01)global=FALSE)look at MNIST datamnist$train$xmnist$train$ymnist$test$xmnist$test$ytrain of the sae neural networkdnnlt-saednntrain(mnist$train$xmnist$train$yhidden=c(55))test of the sae neural networknntest(dnnmnist$test$xmnist$test$yt=05)
End of slides part 2 (Part 3 - NLP remaining)
Vladimirvkrylovgmailcom
Основы предиктивной аналитики Часть вторая
Применение методов Machine Learning к решению задач аналитики
Дмитрий Ветров кандидат физико-математических наук ру
Методы обучающихся машин для аналитики которые мы рассмотрим
Сначала нужно загрузить несколько пакетов (packages) для поддер
Данные для анализа
Скрипт для генерации
Данные которые мы будем использовать для демо состоят из смес
Так выглядят визуализированные данные сгенерированные скриптом
Разделение данных на обучающие и проверочные является важным эт
K-means алгоритм на пальцах
Обучающаяся машина без учителя Алгоритм K-means
Slide 13
Slide 14
Здесь мы используем заранее известный факт что необходимо кла
Еще одна иллюстрация работы алгоритма K-means
Обучающаяся машина без учителя Алгоритм KNN (Nearest Neighbor)
Как работает алгоритм KNN
knn(train test cl k = 1 l = 0 prob = FALSE useall = TRUE
Slide 20
Результаты кластеризации и зависимость ошибки от числа кластеро
Recursive PartitioningRegression Tree
Метод RP реализует обучение машины строить дерево решений по об
Recursive PartitioningRegression Tree (2)
rpart(formula data weights subset naaction = narpart met
Slide 26
Recursive PartitioningRegression Tree example
Анализ по главным компонентам (Principal Component Analysis PC
Итеративные алгоритмы с оптимальным разреженным кодированием IS
Самоорганизация данных методами Deep Learning
Знакомство с пакетом deepnet
Прогнозирование (классификация) нейронной сетью с архитектурой
Arguments
Архитектура сети SAE
Архитектура с 5Х4 hidden 3 outs
Example
Анализ обучающего набора данных
Параметры SAE сети
Коэффициенты связей
Предсказание обученной сетью
Сравнение обучающей и тестовой выборки
plot3d(xy)
Работаем с пакетом MNIST
httpyannlecuncomexdbmnist
Подготовка к обработке
Slide 118
Визуализация
plotmnist()
Распознавание рукописных цифр в deepnet
End of slides part 2 (Part 3 - NLP remaining)
laquoВ 1997 году Deep Blue обыграл в шахматы КаспароваВ 2011 Watson обставил чемпионов JeopardyСможет ли ваш алгоритм в 2013 году отличить Бобика от ПушистикаraquoKaggle Competitions Details
Сегодня уже можно ответить laquoдаraquo mdash десятка лидеров справилась с заданием на 988
Распознавание основано на feature detection и последующем различении комбинаций
Заранее неизвестно какие части картинки могут использоваться как хорошие features В их роли может выступать все что угодно mdash фрагменты изображения форма размер или цвет Feature может не присутствовать на картинке сама а выражаться в параметре полученным каким-то образом из исходных данных
Распознавание рукописных цифр
Еще пример посложнее
Использование нейронной сети с обучениемОбучение такой нейронной сети производится обычно методом обратного распространения ошибки таким образом чтобы минимизировать среднеквадратическую ошибку отклика сети на обучающей выборке Таким образом обучающая выборка содержит пары векторов признаков (входные данные) и эталонных векторов (маркированные данные) (x y)
Сверхвысокая размерность при работе с первичным представлением пикселями
Пиксельное кодирование
Принцип иерархии понятий ndash основа deep learning
bull Все вещи состоят из других маленьких и более элементарных вещей
bull Как извлекать features Гипотеза малоразмерных многообразий
Разреженное (sparse) кодирование
первый уровень иерархии состоит из элементов словаря этого кода которые представляют собой штрихи и границы
Словарь для лиц
Выделение объектов заданного класса
Основные архитектуры Deep Learningbull Deep neural networks (DNN)bull Deep belief networks (DBN)bull Convolutional neural networks (CNN)bull Deep Boltzmann Machines (DBM)bull Stacked (Denoising) Auto-Encodersbull Deep Stacking Networksbull Tensor Deep Stacking Networks (T-DSN)bull Spike-and-Slab RBMs (ssRBMs)bull Compound Hierarchical-Deep Modelsbull Deep Coding Networks (DPCN)bull Deep Kernel Machinesbull Deep Q-Networks (2015 г)
Задача классификации распознавания и подобные являются задачей конструирования функции на множестве входных наборов и со значениями в множестве требуемого вида выходных
bull Норбертом Винером было показано что любая функция может быть сколь угодно точно композицией двух (он использовал функции полином Лагранжа и функцию Лагерра)
bull Соответствует двухслойной нейросетиbull Архитектуры Deep Learning соответствуют представлению
bull Обеспечивают эффективную параметризацию при решении конкретных задач Более сложные функции создаются из большего числа но более эффективно настраиваемых laquoкирпичиковraquo Пример ndash синтез булевых функций Дерево вентилей эффективнее двухслойной схемы
Фактор - графыВсе методы которые расмотрели ndash не DL Даже деревья классификации Все операции в одном входном словаре
DL можно определить по фактор-графу
Например
bull Еще одна сторона DL - нередко использует невыпуклые функции потерьbull Обучение на основе выпуклых функций не зависит от порядка
предъявления данных для обучения Все определяет асимптотика всего train - набора В алгоритмах DL порядок данных в обучающей выборке может иметь значение
bull Многие решения в DL не доказаны математически и являются успешными эвристиками
bull Большой простор для прикладной математики Может рассматриваться как фактор-граф с группами латентных переменных
bull В настоящее время стал основной технологией в распознавании речи (speech recognition) и машинном зрении (computer vision) начал применяться в обработке текстов (natural language processing)
bull Основная идея ndash применение нелинейного отображения входного набора в более высокоразмерное пространство где многие неразделимые композиции становятся разделимыми а затем объединение композиций по семантической близости
Подход разреженного кодирования
Обобщенная архитектура
bull DL сеть может быть собрана каскадированием и использованием обучения с учителем
Здесь используется forward propagation для обучения
Для настройки коэффициентов используется метод fprof для каждого
Требуется знание градиента энергии
Элементы (kl) матрицы Якобиана
Требуется знание градиента энергии 120597119864120597119882119894 = 120597119864120597119883119894120597119865119894(119883119894minus1119882119894)120597119882119894
ሾ1times 119873119908ሿ= ሾ1times 119873119909ሿlowast[119873119909 times 119873119908] Элементы (kl) матрицы Якобиана
Сводится к рекуррентному соотношению для вычисления градиента 120597119864120597119883119894minus1 = 120597119864120597119883119894120597119865119894(119883119894minus1119882119894)120597119883119894minus1
В итоге
Для вычисления градиента может использоваться метод back propagation
В действительности работают любые архитектуры построения функции Нужно конструировать связи и функции блоков
Язык Torch 7 ndash современный инструмент моделирования и имплементации
Machine Learning with Torch7 (httpcodecogbitscomwikidokuphpid=start)
bull These tutorials were originally designed for the IPAM Summer School on Deep Learning more info herebull This wiki provides multiple tutorials with the overall objective of teaching you how to do machine learning
with Torch7bull Torch7 provides a Matlab-like environment for state-of-the-art machine learning algorithms It is easy to use
and provides a very efficient implementation thanks to an easy and fast scripting language (LuaJIT) and an underlying C implementation
bull These tutorials should be readdone in orderbull Tutorial 1 Setup Basics Getting Startedbull Tutorial 2 Supervised Learningbull Tutorial 3 Unsupervised Learningbull Tutorial 4 Graphical Modelsbull Tutorial 5 Creating New Modulesbull Tutorial 6 Using CUDAbull To follow these tutorials and do the exercises you will need to download the associated code which is hosted
on GitHub on this page In this repository each directory corresponds to a tutorial herebull starttxt middot Last modified 20140204 2246 by clement
Torch 7 является расширением Lua
What is LuaLua is a powerful fast lightweight embeddable scripting languageLua combines simple procedural syntax with powerful data description constructs based on associative arrays and extensible semantics Lua is dynamically typed runs by interpreting bytecode for a register-based virtual machine and has automatic memory management with incremental garbage collection making it ideal for configuration scripting and rapid prototyping
Why choose LuaLua is a proven robust languageLua has been used in many industrial applications (eg Adobes Photoshop Lightroom) with an emphasis on embedded systems (eg the Ginga middleware for digital TV in Brazil) and games (eg World of Warcraft and Angry Birds) Lua is currently the leading scripting language in games Lua has a solid reference manual and there are several books about it Several versions of Lua have been released and used in real applications since its creation in 1993 Lua featured in HOPL III the Third ACM SIGPLAN History of Programming Languages Conference in June 2007 Lua won the Front Line Award 2011 from the Game Developers Magazine
Свертка и архитектура 4-х уровневой сверточной сети
Функциональная структура
Примеры успешного применения сверточных сетей
Диагностика эпилепсии по ЭЭГ
Реализация сверточной сетью
Одна из самых больших сверточных сетейbull Krizhevsky Sutskever Hinton 2012bull 650 000 нейронов 832 000 000 синапсов 60 000000 пареметровbull Использовался backprop на GPUbull Обучающая выборка на материалах 20 летbull Купил Google в январе 2013bull В мае 2013 развернул как сервис Photo Tagging Google+
Пример тэгирования
Пример поиска похожих по изображению
Пример поиска в коллекции изображений по текстовому запросу
Пример laquoоблачногоraquo классификатора изображений
Самообучающиеся нейронные сети на основе минимизации функции энергииbull Применима к сетям с обратными связямиbull Конструирование функции энергии должно обеспечивать
laquoконтрастностьraquo разделения
bull Энергетическая функция может Неформально рассматриваться как отрицательный логарифм плотности вероятности
Y 2=(Y1)2
RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцмана
bull Из DBM cтроится Deep Belief Network (DBN)
bull w mdash вес между нейронами
bull b mdash смещение нейрона
bull s mdash состояние нейрона
Алгоритм обучения Contrastive Divergence (CD)bull w_ij mdash веc между i-ым нейроном Вероятность пар может быть представлена как
bull a_i mdash смещение видимого нейрона
bull b_j mdash смещение скрытого нейрона
bull v_i mdash состояние видимого нейрона
bull h_j mdash состояние скрытого нейрона Полная вероятность состояния видимых нейронов
Основные уравнения адаптации
Алгоритм Хинтона - Contrastive Divergence (CD-k)
1 состояние видимых нейронов приравнивается к входному образу2 выводятся вероятности состояний скрытого слоя3 каждому нейрону скрытого слоя ставится в соответствие состояние laquo1raquo с вероятностью равной его текущему состоянию4 выводятся вероятности видимого слоя на основании скрытого5 если текущая итерация меньше k то возврат к шагу 26 выводятся вероятности состояний скрытого слоя
darch Package for deep architectures and Restricted-Bolzmann-MachinesThe darch package is build on the basis of the code from G E Hinton and R R Salakhutdinov (available under Matlab Code for deep belief nets last visit 01082013) This package is for generating neural networks with many layers (deep architectures) and train them with the method introduced by the publications A fast learning algorithm for deep belief nets (G E Hinton S Osindero Y W Teh) and Reducing the dimensionality of data with neural networks (G E Hinton R R Salakhutdinov) This method includes a pre training with the contrastive divergence method publishing by GE Hinton (2002) and a fine tuning with common known training algorithms like backpropagation or conjugate gradient
bull Version 091bull Imports futilelogger ff methodsbull Published 2014-03-16bull Author Martin Dreesbull Maintainer Martin Drees ltmdrees at studfh-dortmunddegtbull License GPL-2bull URL httpgithubcommaddin79darchbull NeedsCompilation nobull Materials READMEbull CRAN checks darch results
Связь плотности вероятности и энергии
Используется распределение Гиббса
Задача обучения с точки минимизации энергии сети
bull Сконструировать функцию энергии с малыми значениями на обучающей выборке и с большими значениями всюду вне этого множества
bull Первое несложно а второе представляет задачу процесса обучения
Интуитивные соображения
Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decomposition LISTA ndashметоды использующие разреженные коды
Латентная переменная Z =argmin_z Distance[Decoder(Z)Y]+FactorB(Z)MAPminimaize sum of factors
Автоэнкодер (auto encoder) Автоэнкодер представляет собой алгоритм обучения без учителя который использует нейронную сеть и метод обратного распространения ошибки для того чтобы добиться того что входной вектор признаков вызывал отклик сети равный входному вектору те y = x Автоэнкодер пытается построить функцию h(x) = x
Архитекттура ICA моделей
Итеративные алгоритмы с оптимальным разреженным кодированием ISTAFISTA
Самоорганизация данных методами Deep Learning
>
Знакомство с пакетом deepnet
Назначение
Составdbndnntrain - обучение сети с архитектурой DBN (deep belief network)loadmnist - формирование данных из файлов MNISTnnpredict - предсказание новых выборок на обученной нейронной сетиnntest ndash тестирование обученной нейронной сети с возвращением значения ошибкиnntrain ndash обучение одностлойной или многослойной нейронной сети методом backproprbmdown ndash генерирование видимого вектора для скрытых состояний сети RBMrbmtrain ndash обучение сети RBMrbmup ndash извлечение скрытых состояний RBM по известным видимым состояниямsaednntrain ndash обучение нейронной сети с архитектурой stacked autoencoder
Прогнозирование (классификация) нейронной сетью с архитектурой stacked auto encoder
Argumentsbull x matrix of x values for examplesbull y vector or matrix of target values for examplesbull hidden vector for number of units of hidden layersDefault is c(10)bull activationfun activation function of hidden unitCan be sigmlinear or tanhDefault isbull sigm for logistic functionbull learningrate learning rate for gradient descent Default is 08bull momentum momentum for gradient descent Default is 05 bull learningrate_scalebull learning rate will be mutiplied by this scale after every iteration Default is 1 bull numepochs number of iteration for samples Default is 3bull batchsize size of mini-batch Default is 100bull output function of output unit can be sigmlinear or softmax Default is sigmbull sae_output function of autoencoder output unit can be sigmlinear or softmax Defaultbull is linearbull hidden_dropout drop out fraction for hidden layer Default is 0bull visible_dropoutbull drop out fraction for input layer Default is 0
Что такое MNISTbull Смешанный набор данных Национального института стандартов и
технологий (mixed National Institute of Standards and Technology MNIST) был создан исследователями IR в качестве эталона для сравнения различных алгоритмов IR
bull Набор данных состоит всего из 70 000 изображений 60 000 обучающих (используемых для создания модели IR) и 10 000 тестовых (применяемых для оценки точности модели) Каждое изображение MNIST mdash это оцифрованная картинка одной цифры написанной от руки Каждое изображение имеет размер 28 times 28 пикселей Каждое значение пикселя лежит в диапазоне от 0 (представляет белый цвет) до 255 (представляет черный цвет) Промежуточные значения отражают оттенки серого
httpyannlecuncomexdbmnistобучающие и тестовые данные хранятся в двух файлах а не в одном Один файл содержит значения пикселей для изображений а другой mdash метки изображений (0ndash9) Каждый из четырех файлов также содержит заголовочную информацию и все они хранятся в двоичном формате сжатом в формате gziptrain-images-idx3-ubytegz training set images (9912422 bytes)
train-labels-idx1-ubytegz training set labels (28881 bytes)
t10k-images-idx3-ubytegz test set images (1648877 bytes)
t10k-labels-idx1-ubytegz test set labels (4542 bytes)
bull Каждая строка файла представляет собой имидж размера 28 times 28 вектором длины 784 каждый признак ndash значение пиксела в черно-белой шале Первый столбец содержит метку цифры 0ndash9 следующие 2828 столбцов представляют целый имидж и так далее Пример первой строки
Визуализация
bull plotmnist()bull mnistbull paramsbull train$n number of train samplesbull train$x pix of every train sample imagebull train$y label of every train sample imagebull train$yy one-of-c vector of label of train sample imagebull test$n number of test samplesbull test$x pix of every test sample imagebull test$y label of every test sample imagebull test$yy one-of-c vector of label of test sample image
plotmnist()
Распознавание рукописных цифр в deepnet
another way to download the MNIST datasetmnist downloadmnist(range=c(01)global=FALSE)look at MNIST datamnist$train$xmnist$train$ymnist$test$xmnist$test$ytrain of the sae neural networkdnnlt-saednntrain(mnist$train$xmnist$train$yhidden=c(55))test of the sae neural networknntest(dnnmnist$test$xmnist$test$yt=05)
End of slides part 2 (Part 3 - NLP remaining)
Vladimirvkrylovgmailcom
Основы предиктивной аналитики Часть вторая
Применение методов Machine Learning к решению задач аналитики
Дмитрий Ветров кандидат физико-математических наук ру
Методы обучающихся машин для аналитики которые мы рассмотрим
Сначала нужно загрузить несколько пакетов (packages) для поддер
Данные для анализа
Скрипт для генерации
Данные которые мы будем использовать для демо состоят из смес
Так выглядят визуализированные данные сгенерированные скриптом
Разделение данных на обучающие и проверочные является важным эт
K-means алгоритм на пальцах
Обучающаяся машина без учителя Алгоритм K-means
Slide 13
Slide 14
Здесь мы используем заранее известный факт что необходимо кла
Еще одна иллюстрация работы алгоритма K-means
Обучающаяся машина без учителя Алгоритм KNN (Nearest Neighbor)
Как работает алгоритм KNN
knn(train test cl k = 1 l = 0 prob = FALSE useall = TRUE
Slide 20
Результаты кластеризации и зависимость ошибки от числа кластеро
Recursive PartitioningRegression Tree
Метод RP реализует обучение машины строить дерево решений по об
Recursive PartitioningRegression Tree (2)
rpart(formula data weights subset naaction = narpart met
Slide 26
Recursive PartitioningRegression Tree example
Анализ по главным компонентам (Principal Component Analysis PC
Итеративные алгоритмы с оптимальным разреженным кодированием IS
Самоорганизация данных методами Deep Learning
Знакомство с пакетом deepnet
Прогнозирование (классификация) нейронной сетью с архитектурой
Arguments
Архитектура сети SAE
Архитектура с 5Х4 hidden 3 outs
Example
Анализ обучающего набора данных
Параметры SAE сети
Коэффициенты связей
Предсказание обученной сетью
Сравнение обучающей и тестовой выборки
plot3d(xy)
Работаем с пакетом MNIST
httpyannlecuncomexdbmnist
Подготовка к обработке
Slide 118
Визуализация
plotmnist()
Распознавание рукописных цифр в deepnet
End of slides part 2 (Part 3 - NLP remaining)
Распознавание основано на feature detection и последующем различении комбинаций
Заранее неизвестно какие части картинки могут использоваться как хорошие features В их роли может выступать все что угодно mdash фрагменты изображения форма размер или цвет Feature может не присутствовать на картинке сама а выражаться в параметре полученным каким-то образом из исходных данных
Распознавание рукописных цифр
Еще пример посложнее
Использование нейронной сети с обучениемОбучение такой нейронной сети производится обычно методом обратного распространения ошибки таким образом чтобы минимизировать среднеквадратическую ошибку отклика сети на обучающей выборке Таким образом обучающая выборка содержит пары векторов признаков (входные данные) и эталонных векторов (маркированные данные) (x y)
Сверхвысокая размерность при работе с первичным представлением пикселями
Пиксельное кодирование
Принцип иерархии понятий ndash основа deep learning
bull Все вещи состоят из других маленьких и более элементарных вещей
bull Как извлекать features Гипотеза малоразмерных многообразий
Разреженное (sparse) кодирование
первый уровень иерархии состоит из элементов словаря этого кода которые представляют собой штрихи и границы
Словарь для лиц
Выделение объектов заданного класса
Основные архитектуры Deep Learningbull Deep neural networks (DNN)bull Deep belief networks (DBN)bull Convolutional neural networks (CNN)bull Deep Boltzmann Machines (DBM)bull Stacked (Denoising) Auto-Encodersbull Deep Stacking Networksbull Tensor Deep Stacking Networks (T-DSN)bull Spike-and-Slab RBMs (ssRBMs)bull Compound Hierarchical-Deep Modelsbull Deep Coding Networks (DPCN)bull Deep Kernel Machinesbull Deep Q-Networks (2015 г)
Задача классификации распознавания и подобные являются задачей конструирования функции на множестве входных наборов и со значениями в множестве требуемого вида выходных
bull Норбертом Винером было показано что любая функция может быть сколь угодно точно композицией двух (он использовал функции полином Лагранжа и функцию Лагерра)
bull Соответствует двухслойной нейросетиbull Архитектуры Deep Learning соответствуют представлению
bull Обеспечивают эффективную параметризацию при решении конкретных задач Более сложные функции создаются из большего числа но более эффективно настраиваемых laquoкирпичиковraquo Пример ndash синтез булевых функций Дерево вентилей эффективнее двухслойной схемы
Фактор - графыВсе методы которые расмотрели ndash не DL Даже деревья классификации Все операции в одном входном словаре
DL можно определить по фактор-графу
Например
bull Еще одна сторона DL - нередко использует невыпуклые функции потерьbull Обучение на основе выпуклых функций не зависит от порядка
предъявления данных для обучения Все определяет асимптотика всего train - набора В алгоритмах DL порядок данных в обучающей выборке может иметь значение
bull Многие решения в DL не доказаны математически и являются успешными эвристиками
bull Большой простор для прикладной математики Может рассматриваться как фактор-граф с группами латентных переменных
bull В настоящее время стал основной технологией в распознавании речи (speech recognition) и машинном зрении (computer vision) начал применяться в обработке текстов (natural language processing)
bull Основная идея ndash применение нелинейного отображения входного набора в более высокоразмерное пространство где многие неразделимые композиции становятся разделимыми а затем объединение композиций по семантической близости
Подход разреженного кодирования
Обобщенная архитектура
bull DL сеть может быть собрана каскадированием и использованием обучения с учителем
Здесь используется forward propagation для обучения
Для настройки коэффициентов используется метод fprof для каждого
Требуется знание градиента энергии
Элементы (kl) матрицы Якобиана
Требуется знание градиента энергии 120597119864120597119882119894 = 120597119864120597119883119894120597119865119894(119883119894minus1119882119894)120597119882119894
ሾ1times 119873119908ሿ= ሾ1times 119873119909ሿlowast[119873119909 times 119873119908] Элементы (kl) матрицы Якобиана
Сводится к рекуррентному соотношению для вычисления градиента 120597119864120597119883119894minus1 = 120597119864120597119883119894120597119865119894(119883119894minus1119882119894)120597119883119894minus1
В итоге
Для вычисления градиента может использоваться метод back propagation
В действительности работают любые архитектуры построения функции Нужно конструировать связи и функции блоков
Язык Torch 7 ndash современный инструмент моделирования и имплементации
Machine Learning with Torch7 (httpcodecogbitscomwikidokuphpid=start)
bull These tutorials were originally designed for the IPAM Summer School on Deep Learning more info herebull This wiki provides multiple tutorials with the overall objective of teaching you how to do machine learning
with Torch7bull Torch7 provides a Matlab-like environment for state-of-the-art machine learning algorithms It is easy to use
and provides a very efficient implementation thanks to an easy and fast scripting language (LuaJIT) and an underlying C implementation
bull These tutorials should be readdone in orderbull Tutorial 1 Setup Basics Getting Startedbull Tutorial 2 Supervised Learningbull Tutorial 3 Unsupervised Learningbull Tutorial 4 Graphical Modelsbull Tutorial 5 Creating New Modulesbull Tutorial 6 Using CUDAbull To follow these tutorials and do the exercises you will need to download the associated code which is hosted
on GitHub on this page In this repository each directory corresponds to a tutorial herebull starttxt middot Last modified 20140204 2246 by clement
Torch 7 является расширением Lua
What is LuaLua is a powerful fast lightweight embeddable scripting languageLua combines simple procedural syntax with powerful data description constructs based on associative arrays and extensible semantics Lua is dynamically typed runs by interpreting bytecode for a register-based virtual machine and has automatic memory management with incremental garbage collection making it ideal for configuration scripting and rapid prototyping
Why choose LuaLua is a proven robust languageLua has been used in many industrial applications (eg Adobes Photoshop Lightroom) with an emphasis on embedded systems (eg the Ginga middleware for digital TV in Brazil) and games (eg World of Warcraft and Angry Birds) Lua is currently the leading scripting language in games Lua has a solid reference manual and there are several books about it Several versions of Lua have been released and used in real applications since its creation in 1993 Lua featured in HOPL III the Third ACM SIGPLAN History of Programming Languages Conference in June 2007 Lua won the Front Line Award 2011 from the Game Developers Magazine
Свертка и архитектура 4-х уровневой сверточной сети
Функциональная структура
Примеры успешного применения сверточных сетей
Диагностика эпилепсии по ЭЭГ
Реализация сверточной сетью
Одна из самых больших сверточных сетейbull Krizhevsky Sutskever Hinton 2012bull 650 000 нейронов 832 000 000 синапсов 60 000000 пареметровbull Использовался backprop на GPUbull Обучающая выборка на материалах 20 летbull Купил Google в январе 2013bull В мае 2013 развернул как сервис Photo Tagging Google+
Пример тэгирования
Пример поиска похожих по изображению
Пример поиска в коллекции изображений по текстовому запросу
Пример laquoоблачногоraquo классификатора изображений
Самообучающиеся нейронные сети на основе минимизации функции энергииbull Применима к сетям с обратными связямиbull Конструирование функции энергии должно обеспечивать
laquoконтрастностьraquo разделения
bull Энергетическая функция может Неформально рассматриваться как отрицательный логарифм плотности вероятности
Y 2=(Y1)2
RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцмана
bull Из DBM cтроится Deep Belief Network (DBN)
bull w mdash вес между нейронами
bull b mdash смещение нейрона
bull s mdash состояние нейрона
Алгоритм обучения Contrastive Divergence (CD)bull w_ij mdash веc между i-ым нейроном Вероятность пар может быть представлена как
bull a_i mdash смещение видимого нейрона
bull b_j mdash смещение скрытого нейрона
bull v_i mdash состояние видимого нейрона
bull h_j mdash состояние скрытого нейрона Полная вероятность состояния видимых нейронов
Основные уравнения адаптации
Алгоритм Хинтона - Contrastive Divergence (CD-k)
1 состояние видимых нейронов приравнивается к входному образу2 выводятся вероятности состояний скрытого слоя3 каждому нейрону скрытого слоя ставится в соответствие состояние laquo1raquo с вероятностью равной его текущему состоянию4 выводятся вероятности видимого слоя на основании скрытого5 если текущая итерация меньше k то возврат к шагу 26 выводятся вероятности состояний скрытого слоя
darch Package for deep architectures and Restricted-Bolzmann-MachinesThe darch package is build on the basis of the code from G E Hinton and R R Salakhutdinov (available under Matlab Code for deep belief nets last visit 01082013) This package is for generating neural networks with many layers (deep architectures) and train them with the method introduced by the publications A fast learning algorithm for deep belief nets (G E Hinton S Osindero Y W Teh) and Reducing the dimensionality of data with neural networks (G E Hinton R R Salakhutdinov) This method includes a pre training with the contrastive divergence method publishing by GE Hinton (2002) and a fine tuning with common known training algorithms like backpropagation or conjugate gradient
bull Version 091bull Imports futilelogger ff methodsbull Published 2014-03-16bull Author Martin Dreesbull Maintainer Martin Drees ltmdrees at studfh-dortmunddegtbull License GPL-2bull URL httpgithubcommaddin79darchbull NeedsCompilation nobull Materials READMEbull CRAN checks darch results
Связь плотности вероятности и энергии
Используется распределение Гиббса
Задача обучения с точки минимизации энергии сети
bull Сконструировать функцию энергии с малыми значениями на обучающей выборке и с большими значениями всюду вне этого множества
bull Первое несложно а второе представляет задачу процесса обучения
Интуитивные соображения
Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decomposition LISTA ndashметоды использующие разреженные коды
Латентная переменная Z =argmin_z Distance[Decoder(Z)Y]+FactorB(Z)MAPminimaize sum of factors
Автоэнкодер (auto encoder) Автоэнкодер представляет собой алгоритм обучения без учителя который использует нейронную сеть и метод обратного распространения ошибки для того чтобы добиться того что входной вектор признаков вызывал отклик сети равный входному вектору те y = x Автоэнкодер пытается построить функцию h(x) = x
Архитекттура ICA моделей
Итеративные алгоритмы с оптимальным разреженным кодированием ISTAFISTA
Самоорганизация данных методами Deep Learning
>
Знакомство с пакетом deepnet
Назначение
Составdbndnntrain - обучение сети с архитектурой DBN (deep belief network)loadmnist - формирование данных из файлов MNISTnnpredict - предсказание новых выборок на обученной нейронной сетиnntest ndash тестирование обученной нейронной сети с возвращением значения ошибкиnntrain ndash обучение одностлойной или многослойной нейронной сети методом backproprbmdown ndash генерирование видимого вектора для скрытых состояний сети RBMrbmtrain ndash обучение сети RBMrbmup ndash извлечение скрытых состояний RBM по известным видимым состояниямsaednntrain ndash обучение нейронной сети с архитектурой stacked autoencoder
Прогнозирование (классификация) нейронной сетью с архитектурой stacked auto encoder
Argumentsbull x matrix of x values for examplesbull y vector or matrix of target values for examplesbull hidden vector for number of units of hidden layersDefault is c(10)bull activationfun activation function of hidden unitCan be sigmlinear or tanhDefault isbull sigm for logistic functionbull learningrate learning rate for gradient descent Default is 08bull momentum momentum for gradient descent Default is 05 bull learningrate_scalebull learning rate will be mutiplied by this scale after every iteration Default is 1 bull numepochs number of iteration for samples Default is 3bull batchsize size of mini-batch Default is 100bull output function of output unit can be sigmlinear or softmax Default is sigmbull sae_output function of autoencoder output unit can be sigmlinear or softmax Defaultbull is linearbull hidden_dropout drop out fraction for hidden layer Default is 0bull visible_dropoutbull drop out fraction for input layer Default is 0
Что такое MNISTbull Смешанный набор данных Национального института стандартов и
технологий (mixed National Institute of Standards and Technology MNIST) был создан исследователями IR в качестве эталона для сравнения различных алгоритмов IR
bull Набор данных состоит всего из 70 000 изображений 60 000 обучающих (используемых для создания модели IR) и 10 000 тестовых (применяемых для оценки точности модели) Каждое изображение MNIST mdash это оцифрованная картинка одной цифры написанной от руки Каждое изображение имеет размер 28 times 28 пикселей Каждое значение пикселя лежит в диапазоне от 0 (представляет белый цвет) до 255 (представляет черный цвет) Промежуточные значения отражают оттенки серого
httpyannlecuncomexdbmnistобучающие и тестовые данные хранятся в двух файлах а не в одном Один файл содержит значения пикселей для изображений а другой mdash метки изображений (0ndash9) Каждый из четырех файлов также содержит заголовочную информацию и все они хранятся в двоичном формате сжатом в формате gziptrain-images-idx3-ubytegz training set images (9912422 bytes)
train-labels-idx1-ubytegz training set labels (28881 bytes)
t10k-images-idx3-ubytegz test set images (1648877 bytes)
t10k-labels-idx1-ubytegz test set labels (4542 bytes)
bull Каждая строка файла представляет собой имидж размера 28 times 28 вектором длины 784 каждый признак ndash значение пиксела в черно-белой шале Первый столбец содержит метку цифры 0ndash9 следующие 2828 столбцов представляют целый имидж и так далее Пример первой строки
Визуализация
bull plotmnist()bull mnistbull paramsbull train$n number of train samplesbull train$x pix of every train sample imagebull train$y label of every train sample imagebull train$yy one-of-c vector of label of train sample imagebull test$n number of test samplesbull test$x pix of every test sample imagebull test$y label of every test sample imagebull test$yy one-of-c vector of label of test sample image
plotmnist()
Распознавание рукописных цифр в deepnet
another way to download the MNIST datasetmnist downloadmnist(range=c(01)global=FALSE)look at MNIST datamnist$train$xmnist$train$ymnist$test$xmnist$test$ytrain of the sae neural networkdnnlt-saednntrain(mnist$train$xmnist$train$yhidden=c(55))test of the sae neural networknntest(dnnmnist$test$xmnist$test$yt=05)
End of slides part 2 (Part 3 - NLP remaining)
Vladimirvkrylovgmailcom
Основы предиктивной аналитики Часть вторая
Применение методов Machine Learning к решению задач аналитики
Дмитрий Ветров кандидат физико-математических наук ру
Методы обучающихся машин для аналитики которые мы рассмотрим
Сначала нужно загрузить несколько пакетов (packages) для поддер
Данные для анализа
Скрипт для генерации
Данные которые мы будем использовать для демо состоят из смес
Так выглядят визуализированные данные сгенерированные скриптом
Разделение данных на обучающие и проверочные является важным эт
K-means алгоритм на пальцах
Обучающаяся машина без учителя Алгоритм K-means
Slide 13
Slide 14
Здесь мы используем заранее известный факт что необходимо кла
Еще одна иллюстрация работы алгоритма K-means
Обучающаяся машина без учителя Алгоритм KNN (Nearest Neighbor)
Как работает алгоритм KNN
knn(train test cl k = 1 l = 0 prob = FALSE useall = TRUE
Slide 20
Результаты кластеризации и зависимость ошибки от числа кластеро
Recursive PartitioningRegression Tree
Метод RP реализует обучение машины строить дерево решений по об
Recursive PartitioningRegression Tree (2)
rpart(formula data weights subset naaction = narpart met
Slide 26
Recursive PartitioningRegression Tree example
Анализ по главным компонентам (Principal Component Analysis PC
Итеративные алгоритмы с оптимальным разреженным кодированием IS
Самоорганизация данных методами Deep Learning
Знакомство с пакетом deepnet
Прогнозирование (классификация) нейронной сетью с архитектурой
Arguments
Архитектура сети SAE
Архитектура с 5Х4 hidden 3 outs
Example
Анализ обучающего набора данных
Параметры SAE сети
Коэффициенты связей
Предсказание обученной сетью
Сравнение обучающей и тестовой выборки
plot3d(xy)
Работаем с пакетом MNIST
httpyannlecuncomexdbmnist
Подготовка к обработке
Slide 118
Визуализация
plotmnist()
Распознавание рукописных цифр в deepnet
End of slides part 2 (Part 3 - NLP remaining)
Распознавание рукописных цифр
Еще пример посложнее
Использование нейронной сети с обучениемОбучение такой нейронной сети производится обычно методом обратного распространения ошибки таким образом чтобы минимизировать среднеквадратическую ошибку отклика сети на обучающей выборке Таким образом обучающая выборка содержит пары векторов признаков (входные данные) и эталонных векторов (маркированные данные) (x y)
Сверхвысокая размерность при работе с первичным представлением пикселями
Пиксельное кодирование
Принцип иерархии понятий ndash основа deep learning
bull Все вещи состоят из других маленьких и более элементарных вещей
bull Как извлекать features Гипотеза малоразмерных многообразий
Разреженное (sparse) кодирование
первый уровень иерархии состоит из элементов словаря этого кода которые представляют собой штрихи и границы
Словарь для лиц
Выделение объектов заданного класса
Основные архитектуры Deep Learningbull Deep neural networks (DNN)bull Deep belief networks (DBN)bull Convolutional neural networks (CNN)bull Deep Boltzmann Machines (DBM)bull Stacked (Denoising) Auto-Encodersbull Deep Stacking Networksbull Tensor Deep Stacking Networks (T-DSN)bull Spike-and-Slab RBMs (ssRBMs)bull Compound Hierarchical-Deep Modelsbull Deep Coding Networks (DPCN)bull Deep Kernel Machinesbull Deep Q-Networks (2015 г)
Задача классификации распознавания и подобные являются задачей конструирования функции на множестве входных наборов и со значениями в множестве требуемого вида выходных
bull Норбертом Винером было показано что любая функция может быть сколь угодно точно композицией двух (он использовал функции полином Лагранжа и функцию Лагерра)
bull Соответствует двухслойной нейросетиbull Архитектуры Deep Learning соответствуют представлению
bull Обеспечивают эффективную параметризацию при решении конкретных задач Более сложные функции создаются из большего числа но более эффективно настраиваемых laquoкирпичиковraquo Пример ndash синтез булевых функций Дерево вентилей эффективнее двухслойной схемы
Фактор - графыВсе методы которые расмотрели ndash не DL Даже деревья классификации Все операции в одном входном словаре
DL можно определить по фактор-графу
Например
bull Еще одна сторона DL - нередко использует невыпуклые функции потерьbull Обучение на основе выпуклых функций не зависит от порядка
предъявления данных для обучения Все определяет асимптотика всего train - набора В алгоритмах DL порядок данных в обучающей выборке может иметь значение
bull Многие решения в DL не доказаны математически и являются успешными эвристиками
bull Большой простор для прикладной математики Может рассматриваться как фактор-граф с группами латентных переменных
bull В настоящее время стал основной технологией в распознавании речи (speech recognition) и машинном зрении (computer vision) начал применяться в обработке текстов (natural language processing)
bull Основная идея ndash применение нелинейного отображения входного набора в более высокоразмерное пространство где многие неразделимые композиции становятся разделимыми а затем объединение композиций по семантической близости
Подход разреженного кодирования
Обобщенная архитектура
bull DL сеть может быть собрана каскадированием и использованием обучения с учителем
Здесь используется forward propagation для обучения
Для настройки коэффициентов используется метод fprof для каждого
Требуется знание градиента энергии
Элементы (kl) матрицы Якобиана
Требуется знание градиента энергии 120597119864120597119882119894 = 120597119864120597119883119894120597119865119894(119883119894minus1119882119894)120597119882119894
ሾ1times 119873119908ሿ= ሾ1times 119873119909ሿlowast[119873119909 times 119873119908] Элементы (kl) матрицы Якобиана
Сводится к рекуррентному соотношению для вычисления градиента 120597119864120597119883119894minus1 = 120597119864120597119883119894120597119865119894(119883119894minus1119882119894)120597119883119894minus1
В итоге
Для вычисления градиента может использоваться метод back propagation
В действительности работают любые архитектуры построения функции Нужно конструировать связи и функции блоков
Язык Torch 7 ndash современный инструмент моделирования и имплементации
Machine Learning with Torch7 (httpcodecogbitscomwikidokuphpid=start)
bull These tutorials were originally designed for the IPAM Summer School on Deep Learning more info herebull This wiki provides multiple tutorials with the overall objective of teaching you how to do machine learning
with Torch7bull Torch7 provides a Matlab-like environment for state-of-the-art machine learning algorithms It is easy to use
and provides a very efficient implementation thanks to an easy and fast scripting language (LuaJIT) and an underlying C implementation
bull These tutorials should be readdone in orderbull Tutorial 1 Setup Basics Getting Startedbull Tutorial 2 Supervised Learningbull Tutorial 3 Unsupervised Learningbull Tutorial 4 Graphical Modelsbull Tutorial 5 Creating New Modulesbull Tutorial 6 Using CUDAbull To follow these tutorials and do the exercises you will need to download the associated code which is hosted
on GitHub on this page In this repository each directory corresponds to a tutorial herebull starttxt middot Last modified 20140204 2246 by clement
Torch 7 является расширением Lua
What is LuaLua is a powerful fast lightweight embeddable scripting languageLua combines simple procedural syntax with powerful data description constructs based on associative arrays and extensible semantics Lua is dynamically typed runs by interpreting bytecode for a register-based virtual machine and has automatic memory management with incremental garbage collection making it ideal for configuration scripting and rapid prototyping
Why choose LuaLua is a proven robust languageLua has been used in many industrial applications (eg Adobes Photoshop Lightroom) with an emphasis on embedded systems (eg the Ginga middleware for digital TV in Brazil) and games (eg World of Warcraft and Angry Birds) Lua is currently the leading scripting language in games Lua has a solid reference manual and there are several books about it Several versions of Lua have been released and used in real applications since its creation in 1993 Lua featured in HOPL III the Third ACM SIGPLAN History of Programming Languages Conference in June 2007 Lua won the Front Line Award 2011 from the Game Developers Magazine
Свертка и архитектура 4-х уровневой сверточной сети
Функциональная структура
Примеры успешного применения сверточных сетей
Диагностика эпилепсии по ЭЭГ
Реализация сверточной сетью
Одна из самых больших сверточных сетейbull Krizhevsky Sutskever Hinton 2012bull 650 000 нейронов 832 000 000 синапсов 60 000000 пареметровbull Использовался backprop на GPUbull Обучающая выборка на материалах 20 летbull Купил Google в январе 2013bull В мае 2013 развернул как сервис Photo Tagging Google+
Пример тэгирования
Пример поиска похожих по изображению
Пример поиска в коллекции изображений по текстовому запросу
Пример laquoоблачногоraquo классификатора изображений
Самообучающиеся нейронные сети на основе минимизации функции энергииbull Применима к сетям с обратными связямиbull Конструирование функции энергии должно обеспечивать
laquoконтрастностьraquo разделения
bull Энергетическая функция может Неформально рассматриваться как отрицательный логарифм плотности вероятности
Y 2=(Y1)2
RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцмана
bull Из DBM cтроится Deep Belief Network (DBN)
bull w mdash вес между нейронами
bull b mdash смещение нейрона
bull s mdash состояние нейрона
Алгоритм обучения Contrastive Divergence (CD)bull w_ij mdash веc между i-ым нейроном Вероятность пар может быть представлена как
bull a_i mdash смещение видимого нейрона
bull b_j mdash смещение скрытого нейрона
bull v_i mdash состояние видимого нейрона
bull h_j mdash состояние скрытого нейрона Полная вероятность состояния видимых нейронов
Основные уравнения адаптации
Алгоритм Хинтона - Contrastive Divergence (CD-k)
1 состояние видимых нейронов приравнивается к входному образу2 выводятся вероятности состояний скрытого слоя3 каждому нейрону скрытого слоя ставится в соответствие состояние laquo1raquo с вероятностью равной его текущему состоянию4 выводятся вероятности видимого слоя на основании скрытого5 если текущая итерация меньше k то возврат к шагу 26 выводятся вероятности состояний скрытого слоя
darch Package for deep architectures and Restricted-Bolzmann-MachinesThe darch package is build on the basis of the code from G E Hinton and R R Salakhutdinov (available under Matlab Code for deep belief nets last visit 01082013) This package is for generating neural networks with many layers (deep architectures) and train them with the method introduced by the publications A fast learning algorithm for deep belief nets (G E Hinton S Osindero Y W Teh) and Reducing the dimensionality of data with neural networks (G E Hinton R R Salakhutdinov) This method includes a pre training with the contrastive divergence method publishing by GE Hinton (2002) and a fine tuning with common known training algorithms like backpropagation or conjugate gradient
bull Version 091bull Imports futilelogger ff methodsbull Published 2014-03-16bull Author Martin Dreesbull Maintainer Martin Drees ltmdrees at studfh-dortmunddegtbull License GPL-2bull URL httpgithubcommaddin79darchbull NeedsCompilation nobull Materials READMEbull CRAN checks darch results
Связь плотности вероятности и энергии
Используется распределение Гиббса
Задача обучения с точки минимизации энергии сети
bull Сконструировать функцию энергии с малыми значениями на обучающей выборке и с большими значениями всюду вне этого множества
bull Первое несложно а второе представляет задачу процесса обучения
Интуитивные соображения
Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decomposition LISTA ndashметоды использующие разреженные коды
Латентная переменная Z =argmin_z Distance[Decoder(Z)Y]+FactorB(Z)MAPminimaize sum of factors
Автоэнкодер (auto encoder) Автоэнкодер представляет собой алгоритм обучения без учителя который использует нейронную сеть и метод обратного распространения ошибки для того чтобы добиться того что входной вектор признаков вызывал отклик сети равный входному вектору те y = x Автоэнкодер пытается построить функцию h(x) = x
Архитекттура ICA моделей
Итеративные алгоритмы с оптимальным разреженным кодированием ISTAFISTA
Самоорганизация данных методами Deep Learning
>
Знакомство с пакетом deepnet
Назначение
Составdbndnntrain - обучение сети с архитектурой DBN (deep belief network)loadmnist - формирование данных из файлов MNISTnnpredict - предсказание новых выборок на обученной нейронной сетиnntest ndash тестирование обученной нейронной сети с возвращением значения ошибкиnntrain ndash обучение одностлойной или многослойной нейронной сети методом backproprbmdown ndash генерирование видимого вектора для скрытых состояний сети RBMrbmtrain ndash обучение сети RBMrbmup ndash извлечение скрытых состояний RBM по известным видимым состояниямsaednntrain ndash обучение нейронной сети с архитектурой stacked autoencoder
Прогнозирование (классификация) нейронной сетью с архитектурой stacked auto encoder
Argumentsbull x matrix of x values for examplesbull y vector or matrix of target values for examplesbull hidden vector for number of units of hidden layersDefault is c(10)bull activationfun activation function of hidden unitCan be sigmlinear or tanhDefault isbull sigm for logistic functionbull learningrate learning rate for gradient descent Default is 08bull momentum momentum for gradient descent Default is 05 bull learningrate_scalebull learning rate will be mutiplied by this scale after every iteration Default is 1 bull numepochs number of iteration for samples Default is 3bull batchsize size of mini-batch Default is 100bull output function of output unit can be sigmlinear or softmax Default is sigmbull sae_output function of autoencoder output unit can be sigmlinear or softmax Defaultbull is linearbull hidden_dropout drop out fraction for hidden layer Default is 0bull visible_dropoutbull drop out fraction for input layer Default is 0
Что такое MNISTbull Смешанный набор данных Национального института стандартов и
технологий (mixed National Institute of Standards and Technology MNIST) был создан исследователями IR в качестве эталона для сравнения различных алгоритмов IR
bull Набор данных состоит всего из 70 000 изображений 60 000 обучающих (используемых для создания модели IR) и 10 000 тестовых (применяемых для оценки точности модели) Каждое изображение MNIST mdash это оцифрованная картинка одной цифры написанной от руки Каждое изображение имеет размер 28 times 28 пикселей Каждое значение пикселя лежит в диапазоне от 0 (представляет белый цвет) до 255 (представляет черный цвет) Промежуточные значения отражают оттенки серого
httpyannlecuncomexdbmnistобучающие и тестовые данные хранятся в двух файлах а не в одном Один файл содержит значения пикселей для изображений а другой mdash метки изображений (0ndash9) Каждый из четырех файлов также содержит заголовочную информацию и все они хранятся в двоичном формате сжатом в формате gziptrain-images-idx3-ubytegz training set images (9912422 bytes)
train-labels-idx1-ubytegz training set labels (28881 bytes)
t10k-images-idx3-ubytegz test set images (1648877 bytes)
t10k-labels-idx1-ubytegz test set labels (4542 bytes)
bull Каждая строка файла представляет собой имидж размера 28 times 28 вектором длины 784 каждый признак ndash значение пиксела в черно-белой шале Первый столбец содержит метку цифры 0ndash9 следующие 2828 столбцов представляют целый имидж и так далее Пример первой строки
Визуализация
bull plotmnist()bull mnistbull paramsbull train$n number of train samplesbull train$x pix of every train sample imagebull train$y label of every train sample imagebull train$yy one-of-c vector of label of train sample imagebull test$n number of test samplesbull test$x pix of every test sample imagebull test$y label of every test sample imagebull test$yy one-of-c vector of label of test sample image
plotmnist()
Распознавание рукописных цифр в deepnet
another way to download the MNIST datasetmnist downloadmnist(range=c(01)global=FALSE)look at MNIST datamnist$train$xmnist$train$ymnist$test$xmnist$test$ytrain of the sae neural networkdnnlt-saednntrain(mnist$train$xmnist$train$yhidden=c(55))test of the sae neural networknntest(dnnmnist$test$xmnist$test$yt=05)
End of slides part 2 (Part 3 - NLP remaining)
Vladimirvkrylovgmailcom
Основы предиктивной аналитики Часть вторая
Применение методов Machine Learning к решению задач аналитики
Дмитрий Ветров кандидат физико-математических наук ру
Методы обучающихся машин для аналитики которые мы рассмотрим
Сначала нужно загрузить несколько пакетов (packages) для поддер
Данные для анализа
Скрипт для генерации
Данные которые мы будем использовать для демо состоят из смес
Так выглядят визуализированные данные сгенерированные скриптом
Разделение данных на обучающие и проверочные является важным эт
K-means алгоритм на пальцах
Обучающаяся машина без учителя Алгоритм K-means
Slide 13
Slide 14
Здесь мы используем заранее известный факт что необходимо кла
Еще одна иллюстрация работы алгоритма K-means
Обучающаяся машина без учителя Алгоритм KNN (Nearest Neighbor)
Как работает алгоритм KNN
knn(train test cl k = 1 l = 0 prob = FALSE useall = TRUE
Slide 20
Результаты кластеризации и зависимость ошибки от числа кластеро
Recursive PartitioningRegression Tree
Метод RP реализует обучение машины строить дерево решений по об
Recursive PartitioningRegression Tree (2)
rpart(formula data weights subset naaction = narpart met
Slide 26
Recursive PartitioningRegression Tree example
Анализ по главным компонентам (Principal Component Analysis PC
Итеративные алгоритмы с оптимальным разреженным кодированием IS
Самоорганизация данных методами Deep Learning
Знакомство с пакетом deepnet
Прогнозирование (классификация) нейронной сетью с архитектурой
Arguments
Архитектура сети SAE
Архитектура с 5Х4 hidden 3 outs
Example
Анализ обучающего набора данных
Параметры SAE сети
Коэффициенты связей
Предсказание обученной сетью
Сравнение обучающей и тестовой выборки
plot3d(xy)
Работаем с пакетом MNIST
httpyannlecuncomexdbmnist
Подготовка к обработке
Slide 118
Визуализация
plotmnist()
Распознавание рукописных цифр в deepnet
End of slides part 2 (Part 3 - NLP remaining)
Еще пример посложнее
Использование нейронной сети с обучениемОбучение такой нейронной сети производится обычно методом обратного распространения ошибки таким образом чтобы минимизировать среднеквадратическую ошибку отклика сети на обучающей выборке Таким образом обучающая выборка содержит пары векторов признаков (входные данные) и эталонных векторов (маркированные данные) (x y)
Сверхвысокая размерность при работе с первичным представлением пикселями
Пиксельное кодирование
Принцип иерархии понятий ndash основа deep learning
bull Все вещи состоят из других маленьких и более элементарных вещей
bull Как извлекать features Гипотеза малоразмерных многообразий
Разреженное (sparse) кодирование
первый уровень иерархии состоит из элементов словаря этого кода которые представляют собой штрихи и границы
Словарь для лиц
Выделение объектов заданного класса
Основные архитектуры Deep Learningbull Deep neural networks (DNN)bull Deep belief networks (DBN)bull Convolutional neural networks (CNN)bull Deep Boltzmann Machines (DBM)bull Stacked (Denoising) Auto-Encodersbull Deep Stacking Networksbull Tensor Deep Stacking Networks (T-DSN)bull Spike-and-Slab RBMs (ssRBMs)bull Compound Hierarchical-Deep Modelsbull Deep Coding Networks (DPCN)bull Deep Kernel Machinesbull Deep Q-Networks (2015 г)
Задача классификации распознавания и подобные являются задачей конструирования функции на множестве входных наборов и со значениями в множестве требуемого вида выходных
bull Норбертом Винером было показано что любая функция может быть сколь угодно точно композицией двух (он использовал функции полином Лагранжа и функцию Лагерра)
bull Соответствует двухслойной нейросетиbull Архитектуры Deep Learning соответствуют представлению
bull Обеспечивают эффективную параметризацию при решении конкретных задач Более сложные функции создаются из большего числа но более эффективно настраиваемых laquoкирпичиковraquo Пример ndash синтез булевых функций Дерево вентилей эффективнее двухслойной схемы
Фактор - графыВсе методы которые расмотрели ndash не DL Даже деревья классификации Все операции в одном входном словаре
DL можно определить по фактор-графу
Например
bull Еще одна сторона DL - нередко использует невыпуклые функции потерьbull Обучение на основе выпуклых функций не зависит от порядка
предъявления данных для обучения Все определяет асимптотика всего train - набора В алгоритмах DL порядок данных в обучающей выборке может иметь значение
bull Многие решения в DL не доказаны математически и являются успешными эвристиками
bull Большой простор для прикладной математики Может рассматриваться как фактор-граф с группами латентных переменных
bull В настоящее время стал основной технологией в распознавании речи (speech recognition) и машинном зрении (computer vision) начал применяться в обработке текстов (natural language processing)
bull Основная идея ndash применение нелинейного отображения входного набора в более высокоразмерное пространство где многие неразделимые композиции становятся разделимыми а затем объединение композиций по семантической близости
Подход разреженного кодирования
Обобщенная архитектура
bull DL сеть может быть собрана каскадированием и использованием обучения с учителем
Здесь используется forward propagation для обучения
Для настройки коэффициентов используется метод fprof для каждого
Требуется знание градиента энергии
Элементы (kl) матрицы Якобиана
Требуется знание градиента энергии 120597119864120597119882119894 = 120597119864120597119883119894120597119865119894(119883119894minus1119882119894)120597119882119894
ሾ1times 119873119908ሿ= ሾ1times 119873119909ሿlowast[119873119909 times 119873119908] Элементы (kl) матрицы Якобиана
Сводится к рекуррентному соотношению для вычисления градиента 120597119864120597119883119894minus1 = 120597119864120597119883119894120597119865119894(119883119894minus1119882119894)120597119883119894minus1
В итоге
Для вычисления градиента может использоваться метод back propagation
В действительности работают любые архитектуры построения функции Нужно конструировать связи и функции блоков
Язык Torch 7 ndash современный инструмент моделирования и имплементации
Machine Learning with Torch7 (httpcodecogbitscomwikidokuphpid=start)
bull These tutorials were originally designed for the IPAM Summer School on Deep Learning more info herebull This wiki provides multiple tutorials with the overall objective of teaching you how to do machine learning
with Torch7bull Torch7 provides a Matlab-like environment for state-of-the-art machine learning algorithms It is easy to use
and provides a very efficient implementation thanks to an easy and fast scripting language (LuaJIT) and an underlying C implementation
bull These tutorials should be readdone in orderbull Tutorial 1 Setup Basics Getting Startedbull Tutorial 2 Supervised Learningbull Tutorial 3 Unsupervised Learningbull Tutorial 4 Graphical Modelsbull Tutorial 5 Creating New Modulesbull Tutorial 6 Using CUDAbull To follow these tutorials and do the exercises you will need to download the associated code which is hosted
on GitHub on this page In this repository each directory corresponds to a tutorial herebull starttxt middot Last modified 20140204 2246 by clement
Torch 7 является расширением Lua
What is LuaLua is a powerful fast lightweight embeddable scripting languageLua combines simple procedural syntax with powerful data description constructs based on associative arrays and extensible semantics Lua is dynamically typed runs by interpreting bytecode for a register-based virtual machine and has automatic memory management with incremental garbage collection making it ideal for configuration scripting and rapid prototyping
Why choose LuaLua is a proven robust languageLua has been used in many industrial applications (eg Adobes Photoshop Lightroom) with an emphasis on embedded systems (eg the Ginga middleware for digital TV in Brazil) and games (eg World of Warcraft and Angry Birds) Lua is currently the leading scripting language in games Lua has a solid reference manual and there are several books about it Several versions of Lua have been released and used in real applications since its creation in 1993 Lua featured in HOPL III the Third ACM SIGPLAN History of Programming Languages Conference in June 2007 Lua won the Front Line Award 2011 from the Game Developers Magazine
Свертка и архитектура 4-х уровневой сверточной сети
Функциональная структура
Примеры успешного применения сверточных сетей
Диагностика эпилепсии по ЭЭГ
Реализация сверточной сетью
Одна из самых больших сверточных сетейbull Krizhevsky Sutskever Hinton 2012bull 650 000 нейронов 832 000 000 синапсов 60 000000 пареметровbull Использовался backprop на GPUbull Обучающая выборка на материалах 20 летbull Купил Google в январе 2013bull В мае 2013 развернул как сервис Photo Tagging Google+
Пример тэгирования
Пример поиска похожих по изображению
Пример поиска в коллекции изображений по текстовому запросу
Пример laquoоблачногоraquo классификатора изображений
Самообучающиеся нейронные сети на основе минимизации функции энергииbull Применима к сетям с обратными связямиbull Конструирование функции энергии должно обеспечивать
laquoконтрастностьraquo разделения
bull Энергетическая функция может Неформально рассматриваться как отрицательный логарифм плотности вероятности
Y 2=(Y1)2
RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцмана
bull Из DBM cтроится Deep Belief Network (DBN)
bull w mdash вес между нейронами
bull b mdash смещение нейрона
bull s mdash состояние нейрона
Алгоритм обучения Contrastive Divergence (CD)bull w_ij mdash веc между i-ым нейроном Вероятность пар может быть представлена как
bull a_i mdash смещение видимого нейрона
bull b_j mdash смещение скрытого нейрона
bull v_i mdash состояние видимого нейрона
bull h_j mdash состояние скрытого нейрона Полная вероятность состояния видимых нейронов
Основные уравнения адаптации
Алгоритм Хинтона - Contrastive Divergence (CD-k)
1 состояние видимых нейронов приравнивается к входному образу2 выводятся вероятности состояний скрытого слоя3 каждому нейрону скрытого слоя ставится в соответствие состояние laquo1raquo с вероятностью равной его текущему состоянию4 выводятся вероятности видимого слоя на основании скрытого5 если текущая итерация меньше k то возврат к шагу 26 выводятся вероятности состояний скрытого слоя
darch Package for deep architectures and Restricted-Bolzmann-MachinesThe darch package is build on the basis of the code from G E Hinton and R R Salakhutdinov (available under Matlab Code for deep belief nets last visit 01082013) This package is for generating neural networks with many layers (deep architectures) and train them with the method introduced by the publications A fast learning algorithm for deep belief nets (G E Hinton S Osindero Y W Teh) and Reducing the dimensionality of data with neural networks (G E Hinton R R Salakhutdinov) This method includes a pre training with the contrastive divergence method publishing by GE Hinton (2002) and a fine tuning with common known training algorithms like backpropagation or conjugate gradient
bull Version 091bull Imports futilelogger ff methodsbull Published 2014-03-16bull Author Martin Dreesbull Maintainer Martin Drees ltmdrees at studfh-dortmunddegtbull License GPL-2bull URL httpgithubcommaddin79darchbull NeedsCompilation nobull Materials READMEbull CRAN checks darch results
Связь плотности вероятности и энергии
Используется распределение Гиббса
Задача обучения с точки минимизации энергии сети
bull Сконструировать функцию энергии с малыми значениями на обучающей выборке и с большими значениями всюду вне этого множества
bull Первое несложно а второе представляет задачу процесса обучения
Интуитивные соображения
Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decomposition LISTA ndashметоды использующие разреженные коды
Латентная переменная Z =argmin_z Distance[Decoder(Z)Y]+FactorB(Z)MAPminimaize sum of factors
Автоэнкодер (auto encoder) Автоэнкодер представляет собой алгоритм обучения без учителя который использует нейронную сеть и метод обратного распространения ошибки для того чтобы добиться того что входной вектор признаков вызывал отклик сети равный входному вектору те y = x Автоэнкодер пытается построить функцию h(x) = x
Архитекттура ICA моделей
Итеративные алгоритмы с оптимальным разреженным кодированием ISTAFISTA
Самоорганизация данных методами Deep Learning
>
Знакомство с пакетом deepnet
Назначение
Составdbndnntrain - обучение сети с архитектурой DBN (deep belief network)loadmnist - формирование данных из файлов MNISTnnpredict - предсказание новых выборок на обученной нейронной сетиnntest ndash тестирование обученной нейронной сети с возвращением значения ошибкиnntrain ndash обучение одностлойной или многослойной нейронной сети методом backproprbmdown ndash генерирование видимого вектора для скрытых состояний сети RBMrbmtrain ndash обучение сети RBMrbmup ndash извлечение скрытых состояний RBM по известным видимым состояниямsaednntrain ndash обучение нейронной сети с архитектурой stacked autoencoder
Прогнозирование (классификация) нейронной сетью с архитектурой stacked auto encoder
Argumentsbull x matrix of x values for examplesbull y vector or matrix of target values for examplesbull hidden vector for number of units of hidden layersDefault is c(10)bull activationfun activation function of hidden unitCan be sigmlinear or tanhDefault isbull sigm for logistic functionbull learningrate learning rate for gradient descent Default is 08bull momentum momentum for gradient descent Default is 05 bull learningrate_scalebull learning rate will be mutiplied by this scale after every iteration Default is 1 bull numepochs number of iteration for samples Default is 3bull batchsize size of mini-batch Default is 100bull output function of output unit can be sigmlinear or softmax Default is sigmbull sae_output function of autoencoder output unit can be sigmlinear or softmax Defaultbull is linearbull hidden_dropout drop out fraction for hidden layer Default is 0bull visible_dropoutbull drop out fraction for input layer Default is 0
Что такое MNISTbull Смешанный набор данных Национального института стандартов и
технологий (mixed National Institute of Standards and Technology MNIST) был создан исследователями IR в качестве эталона для сравнения различных алгоритмов IR
bull Набор данных состоит всего из 70 000 изображений 60 000 обучающих (используемых для создания модели IR) и 10 000 тестовых (применяемых для оценки точности модели) Каждое изображение MNIST mdash это оцифрованная картинка одной цифры написанной от руки Каждое изображение имеет размер 28 times 28 пикселей Каждое значение пикселя лежит в диапазоне от 0 (представляет белый цвет) до 255 (представляет черный цвет) Промежуточные значения отражают оттенки серого
httpyannlecuncomexdbmnistобучающие и тестовые данные хранятся в двух файлах а не в одном Один файл содержит значения пикселей для изображений а другой mdash метки изображений (0ndash9) Каждый из четырех файлов также содержит заголовочную информацию и все они хранятся в двоичном формате сжатом в формате gziptrain-images-idx3-ubytegz training set images (9912422 bytes)
train-labels-idx1-ubytegz training set labels (28881 bytes)
t10k-images-idx3-ubytegz test set images (1648877 bytes)
t10k-labels-idx1-ubytegz test set labels (4542 bytes)
bull Каждая строка файла представляет собой имидж размера 28 times 28 вектором длины 784 каждый признак ndash значение пиксела в черно-белой шале Первый столбец содержит метку цифры 0ndash9 следующие 2828 столбцов представляют целый имидж и так далее Пример первой строки
Визуализация
bull plotmnist()bull mnistbull paramsbull train$n number of train samplesbull train$x pix of every train sample imagebull train$y label of every train sample imagebull train$yy one-of-c vector of label of train sample imagebull test$n number of test samplesbull test$x pix of every test sample imagebull test$y label of every test sample imagebull test$yy one-of-c vector of label of test sample image
plotmnist()
Распознавание рукописных цифр в deepnet
another way to download the MNIST datasetmnist downloadmnist(range=c(01)global=FALSE)look at MNIST datamnist$train$xmnist$train$ymnist$test$xmnist$test$ytrain of the sae neural networkdnnlt-saednntrain(mnist$train$xmnist$train$yhidden=c(55))test of the sae neural networknntest(dnnmnist$test$xmnist$test$yt=05)
End of slides part 2 (Part 3 - NLP remaining)
Vladimirvkrylovgmailcom
Основы предиктивной аналитики Часть вторая
Применение методов Machine Learning к решению задач аналитики
Дмитрий Ветров кандидат физико-математических наук ру
Методы обучающихся машин для аналитики которые мы рассмотрим
Сначала нужно загрузить несколько пакетов (packages) для поддер
Данные для анализа
Скрипт для генерации
Данные которые мы будем использовать для демо состоят из смес
Так выглядят визуализированные данные сгенерированные скриптом
Разделение данных на обучающие и проверочные является важным эт
K-means алгоритм на пальцах
Обучающаяся машина без учителя Алгоритм K-means
Slide 13
Slide 14
Здесь мы используем заранее известный факт что необходимо кла
Еще одна иллюстрация работы алгоритма K-means
Обучающаяся машина без учителя Алгоритм KNN (Nearest Neighbor)
Как работает алгоритм KNN
knn(train test cl k = 1 l = 0 prob = FALSE useall = TRUE
Slide 20
Результаты кластеризации и зависимость ошибки от числа кластеро
Recursive PartitioningRegression Tree
Метод RP реализует обучение машины строить дерево решений по об
Recursive PartitioningRegression Tree (2)
rpart(formula data weights subset naaction = narpart met
Slide 26
Recursive PartitioningRegression Tree example
Анализ по главным компонентам (Principal Component Analysis PC
Итеративные алгоритмы с оптимальным разреженным кодированием IS
Самоорганизация данных методами Deep Learning
Знакомство с пакетом deepnet
Прогнозирование (классификация) нейронной сетью с архитектурой
Arguments
Архитектура сети SAE
Архитектура с 5Х4 hidden 3 outs
Example
Анализ обучающего набора данных
Параметры SAE сети
Коэффициенты связей
Предсказание обученной сетью
Сравнение обучающей и тестовой выборки
plot3d(xy)
Работаем с пакетом MNIST
httpyannlecuncomexdbmnist
Подготовка к обработке
Slide 118
Визуализация
plotmnist()
Распознавание рукописных цифр в deepnet
End of slides part 2 (Part 3 - NLP remaining)
Использование нейронной сети с обучениемОбучение такой нейронной сети производится обычно методом обратного распространения ошибки таким образом чтобы минимизировать среднеквадратическую ошибку отклика сети на обучающей выборке Таким образом обучающая выборка содержит пары векторов признаков (входные данные) и эталонных векторов (маркированные данные) (x y)
Сверхвысокая размерность при работе с первичным представлением пикселями
Пиксельное кодирование
Принцип иерархии понятий ndash основа deep learning
bull Все вещи состоят из других маленьких и более элементарных вещей
bull Как извлекать features Гипотеза малоразмерных многообразий
Разреженное (sparse) кодирование
первый уровень иерархии состоит из элементов словаря этого кода которые представляют собой штрихи и границы
Словарь для лиц
Выделение объектов заданного класса
Основные архитектуры Deep Learningbull Deep neural networks (DNN)bull Deep belief networks (DBN)bull Convolutional neural networks (CNN)bull Deep Boltzmann Machines (DBM)bull Stacked (Denoising) Auto-Encodersbull Deep Stacking Networksbull Tensor Deep Stacking Networks (T-DSN)bull Spike-and-Slab RBMs (ssRBMs)bull Compound Hierarchical-Deep Modelsbull Deep Coding Networks (DPCN)bull Deep Kernel Machinesbull Deep Q-Networks (2015 г)
Задача классификации распознавания и подобные являются задачей конструирования функции на множестве входных наборов и со значениями в множестве требуемого вида выходных
bull Норбертом Винером было показано что любая функция может быть сколь угодно точно композицией двух (он использовал функции полином Лагранжа и функцию Лагерра)
bull Соответствует двухслойной нейросетиbull Архитектуры Deep Learning соответствуют представлению
bull Обеспечивают эффективную параметризацию при решении конкретных задач Более сложные функции создаются из большего числа но более эффективно настраиваемых laquoкирпичиковraquo Пример ndash синтез булевых функций Дерево вентилей эффективнее двухслойной схемы
Фактор - графыВсе методы которые расмотрели ndash не DL Даже деревья классификации Все операции в одном входном словаре
DL можно определить по фактор-графу
Например
bull Еще одна сторона DL - нередко использует невыпуклые функции потерьbull Обучение на основе выпуклых функций не зависит от порядка
предъявления данных для обучения Все определяет асимптотика всего train - набора В алгоритмах DL порядок данных в обучающей выборке может иметь значение
bull Многие решения в DL не доказаны математически и являются успешными эвристиками
bull Большой простор для прикладной математики Может рассматриваться как фактор-граф с группами латентных переменных
bull В настоящее время стал основной технологией в распознавании речи (speech recognition) и машинном зрении (computer vision) начал применяться в обработке текстов (natural language processing)
bull Основная идея ndash применение нелинейного отображения входного набора в более высокоразмерное пространство где многие неразделимые композиции становятся разделимыми а затем объединение композиций по семантической близости
Подход разреженного кодирования
Обобщенная архитектура
bull DL сеть может быть собрана каскадированием и использованием обучения с учителем
Здесь используется forward propagation для обучения
Для настройки коэффициентов используется метод fprof для каждого
Требуется знание градиента энергии
Элементы (kl) матрицы Якобиана
Требуется знание градиента энергии 120597119864120597119882119894 = 120597119864120597119883119894120597119865119894(119883119894minus1119882119894)120597119882119894
ሾ1times 119873119908ሿ= ሾ1times 119873119909ሿlowast[119873119909 times 119873119908] Элементы (kl) матрицы Якобиана
Сводится к рекуррентному соотношению для вычисления градиента 120597119864120597119883119894minus1 = 120597119864120597119883119894120597119865119894(119883119894minus1119882119894)120597119883119894minus1
В итоге
Для вычисления градиента может использоваться метод back propagation
В действительности работают любые архитектуры построения функции Нужно конструировать связи и функции блоков
Язык Torch 7 ndash современный инструмент моделирования и имплементации
Machine Learning with Torch7 (httpcodecogbitscomwikidokuphpid=start)
bull These tutorials were originally designed for the IPAM Summer School on Deep Learning more info herebull This wiki provides multiple tutorials with the overall objective of teaching you how to do machine learning
with Torch7bull Torch7 provides a Matlab-like environment for state-of-the-art machine learning algorithms It is easy to use
and provides a very efficient implementation thanks to an easy and fast scripting language (LuaJIT) and an underlying C implementation
bull These tutorials should be readdone in orderbull Tutorial 1 Setup Basics Getting Startedbull Tutorial 2 Supervised Learningbull Tutorial 3 Unsupervised Learningbull Tutorial 4 Graphical Modelsbull Tutorial 5 Creating New Modulesbull Tutorial 6 Using CUDAbull To follow these tutorials and do the exercises you will need to download the associated code which is hosted
on GitHub on this page In this repository each directory corresponds to a tutorial herebull starttxt middot Last modified 20140204 2246 by clement
Torch 7 является расширением Lua
What is LuaLua is a powerful fast lightweight embeddable scripting languageLua combines simple procedural syntax with powerful data description constructs based on associative arrays and extensible semantics Lua is dynamically typed runs by interpreting bytecode for a register-based virtual machine and has automatic memory management with incremental garbage collection making it ideal for configuration scripting and rapid prototyping
Why choose LuaLua is a proven robust languageLua has been used in many industrial applications (eg Adobes Photoshop Lightroom) with an emphasis on embedded systems (eg the Ginga middleware for digital TV in Brazil) and games (eg World of Warcraft and Angry Birds) Lua is currently the leading scripting language in games Lua has a solid reference manual and there are several books about it Several versions of Lua have been released and used in real applications since its creation in 1993 Lua featured in HOPL III the Third ACM SIGPLAN History of Programming Languages Conference in June 2007 Lua won the Front Line Award 2011 from the Game Developers Magazine
Свертка и архитектура 4-х уровневой сверточной сети
Функциональная структура
Примеры успешного применения сверточных сетей
Диагностика эпилепсии по ЭЭГ
Реализация сверточной сетью
Одна из самых больших сверточных сетейbull Krizhevsky Sutskever Hinton 2012bull 650 000 нейронов 832 000 000 синапсов 60 000000 пареметровbull Использовался backprop на GPUbull Обучающая выборка на материалах 20 летbull Купил Google в январе 2013bull В мае 2013 развернул как сервис Photo Tagging Google+
Пример тэгирования
Пример поиска похожих по изображению
Пример поиска в коллекции изображений по текстовому запросу
Пример laquoоблачногоraquo классификатора изображений
Самообучающиеся нейронные сети на основе минимизации функции энергииbull Применима к сетям с обратными связямиbull Конструирование функции энергии должно обеспечивать
laquoконтрастностьraquo разделения
bull Энергетическая функция может Неформально рассматриваться как отрицательный логарифм плотности вероятности
Y 2=(Y1)2
RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцмана
bull Из DBM cтроится Deep Belief Network (DBN)
bull w mdash вес между нейронами
bull b mdash смещение нейрона
bull s mdash состояние нейрона
Алгоритм обучения Contrastive Divergence (CD)bull w_ij mdash веc между i-ым нейроном Вероятность пар может быть представлена как
bull a_i mdash смещение видимого нейрона
bull b_j mdash смещение скрытого нейрона
bull v_i mdash состояние видимого нейрона
bull h_j mdash состояние скрытого нейрона Полная вероятность состояния видимых нейронов
Основные уравнения адаптации
Алгоритм Хинтона - Contrastive Divergence (CD-k)
1 состояние видимых нейронов приравнивается к входному образу2 выводятся вероятности состояний скрытого слоя3 каждому нейрону скрытого слоя ставится в соответствие состояние laquo1raquo с вероятностью равной его текущему состоянию4 выводятся вероятности видимого слоя на основании скрытого5 если текущая итерация меньше k то возврат к шагу 26 выводятся вероятности состояний скрытого слоя
darch Package for deep architectures and Restricted-Bolzmann-MachinesThe darch package is build on the basis of the code from G E Hinton and R R Salakhutdinov (available under Matlab Code for deep belief nets last visit 01082013) This package is for generating neural networks with many layers (deep architectures) and train them with the method introduced by the publications A fast learning algorithm for deep belief nets (G E Hinton S Osindero Y W Teh) and Reducing the dimensionality of data with neural networks (G E Hinton R R Salakhutdinov) This method includes a pre training with the contrastive divergence method publishing by GE Hinton (2002) and a fine tuning with common known training algorithms like backpropagation or conjugate gradient
bull Version 091bull Imports futilelogger ff methodsbull Published 2014-03-16bull Author Martin Dreesbull Maintainer Martin Drees ltmdrees at studfh-dortmunddegtbull License GPL-2bull URL httpgithubcommaddin79darchbull NeedsCompilation nobull Materials READMEbull CRAN checks darch results
Связь плотности вероятности и энергии
Используется распределение Гиббса
Задача обучения с точки минимизации энергии сети
bull Сконструировать функцию энергии с малыми значениями на обучающей выборке и с большими значениями всюду вне этого множества
bull Первое несложно а второе представляет задачу процесса обучения
Интуитивные соображения
Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decomposition LISTA ndashметоды использующие разреженные коды
Латентная переменная Z =argmin_z Distance[Decoder(Z)Y]+FactorB(Z)MAPminimaize sum of factors
Автоэнкодер (auto encoder) Автоэнкодер представляет собой алгоритм обучения без учителя который использует нейронную сеть и метод обратного распространения ошибки для того чтобы добиться того что входной вектор признаков вызывал отклик сети равный входному вектору те y = x Автоэнкодер пытается построить функцию h(x) = x
Архитекттура ICA моделей
Итеративные алгоритмы с оптимальным разреженным кодированием ISTAFISTA
Самоорганизация данных методами Deep Learning
>
Знакомство с пакетом deepnet
Назначение
Составdbndnntrain - обучение сети с архитектурой DBN (deep belief network)loadmnist - формирование данных из файлов MNISTnnpredict - предсказание новых выборок на обученной нейронной сетиnntest ndash тестирование обученной нейронной сети с возвращением значения ошибкиnntrain ndash обучение одностлойной или многослойной нейронной сети методом backproprbmdown ndash генерирование видимого вектора для скрытых состояний сети RBMrbmtrain ndash обучение сети RBMrbmup ndash извлечение скрытых состояний RBM по известным видимым состояниямsaednntrain ndash обучение нейронной сети с архитектурой stacked autoencoder
Прогнозирование (классификация) нейронной сетью с архитектурой stacked auto encoder
Argumentsbull x matrix of x values for examplesbull y vector or matrix of target values for examplesbull hidden vector for number of units of hidden layersDefault is c(10)bull activationfun activation function of hidden unitCan be sigmlinear or tanhDefault isbull sigm for logistic functionbull learningrate learning rate for gradient descent Default is 08bull momentum momentum for gradient descent Default is 05 bull learningrate_scalebull learning rate will be mutiplied by this scale after every iteration Default is 1 bull numepochs number of iteration for samples Default is 3bull batchsize size of mini-batch Default is 100bull output function of output unit can be sigmlinear or softmax Default is sigmbull sae_output function of autoencoder output unit can be sigmlinear or softmax Defaultbull is linearbull hidden_dropout drop out fraction for hidden layer Default is 0bull visible_dropoutbull drop out fraction for input layer Default is 0
Что такое MNISTbull Смешанный набор данных Национального института стандартов и
технологий (mixed National Institute of Standards and Technology MNIST) был создан исследователями IR в качестве эталона для сравнения различных алгоритмов IR
bull Набор данных состоит всего из 70 000 изображений 60 000 обучающих (используемых для создания модели IR) и 10 000 тестовых (применяемых для оценки точности модели) Каждое изображение MNIST mdash это оцифрованная картинка одной цифры написанной от руки Каждое изображение имеет размер 28 times 28 пикселей Каждое значение пикселя лежит в диапазоне от 0 (представляет белый цвет) до 255 (представляет черный цвет) Промежуточные значения отражают оттенки серого
httpyannlecuncomexdbmnistобучающие и тестовые данные хранятся в двух файлах а не в одном Один файл содержит значения пикселей для изображений а другой mdash метки изображений (0ndash9) Каждый из четырех файлов также содержит заголовочную информацию и все они хранятся в двоичном формате сжатом в формате gziptrain-images-idx3-ubytegz training set images (9912422 bytes)
train-labels-idx1-ubytegz training set labels (28881 bytes)
t10k-images-idx3-ubytegz test set images (1648877 bytes)
t10k-labels-idx1-ubytegz test set labels (4542 bytes)
bull Каждая строка файла представляет собой имидж размера 28 times 28 вектором длины 784 каждый признак ndash значение пиксела в черно-белой шале Первый столбец содержит метку цифры 0ndash9 следующие 2828 столбцов представляют целый имидж и так далее Пример первой строки
Визуализация
bull plotmnist()bull mnistbull paramsbull train$n number of train samplesbull train$x pix of every train sample imagebull train$y label of every train sample imagebull train$yy one-of-c vector of label of train sample imagebull test$n number of test samplesbull test$x pix of every test sample imagebull test$y label of every test sample imagebull test$yy one-of-c vector of label of test sample image
plotmnist()
Распознавание рукописных цифр в deepnet
another way to download the MNIST datasetmnist downloadmnist(range=c(01)global=FALSE)look at MNIST datamnist$train$xmnist$train$ymnist$test$xmnist$test$ytrain of the sae neural networkdnnlt-saednntrain(mnist$train$xmnist$train$yhidden=c(55))test of the sae neural networknntest(dnnmnist$test$xmnist$test$yt=05)
End of slides part 2 (Part 3 - NLP remaining)
Vladimirvkrylovgmailcom
Основы предиктивной аналитики Часть вторая
Применение методов Machine Learning к решению задач аналитики
Дмитрий Ветров кандидат физико-математических наук ру
Методы обучающихся машин для аналитики которые мы рассмотрим
Сначала нужно загрузить несколько пакетов (packages) для поддер
Данные для анализа
Скрипт для генерации
Данные которые мы будем использовать для демо состоят из смес
Так выглядят визуализированные данные сгенерированные скриптом
Разделение данных на обучающие и проверочные является важным эт
K-means алгоритм на пальцах
Обучающаяся машина без учителя Алгоритм K-means
Slide 13
Slide 14
Здесь мы используем заранее известный факт что необходимо кла
Еще одна иллюстрация работы алгоритма K-means
Обучающаяся машина без учителя Алгоритм KNN (Nearest Neighbor)
Как работает алгоритм KNN
knn(train test cl k = 1 l = 0 prob = FALSE useall = TRUE
Slide 20
Результаты кластеризации и зависимость ошибки от числа кластеро
Recursive PartitioningRegression Tree
Метод RP реализует обучение машины строить дерево решений по об
Recursive PartitioningRegression Tree (2)
rpart(formula data weights subset naaction = narpart met
Slide 26
Recursive PartitioningRegression Tree example
Анализ по главным компонентам (Principal Component Analysis PC
Итеративные алгоритмы с оптимальным разреженным кодированием IS
Самоорганизация данных методами Deep Learning
Знакомство с пакетом deepnet
Прогнозирование (классификация) нейронной сетью с архитектурой
Arguments
Архитектура сети SAE
Архитектура с 5Х4 hidden 3 outs
Example
Анализ обучающего набора данных
Параметры SAE сети
Коэффициенты связей
Предсказание обученной сетью
Сравнение обучающей и тестовой выборки
plot3d(xy)
Работаем с пакетом MNIST
httpyannlecuncomexdbmnist
Подготовка к обработке
Slide 118
Визуализация
plotmnist()
Распознавание рукописных цифр в deepnet
End of slides part 2 (Part 3 - NLP remaining)
Сверхвысокая размерность при работе с первичным представлением пикселями
Пиксельное кодирование
Принцип иерархии понятий ndash основа deep learning
bull Все вещи состоят из других маленьких и более элементарных вещей
bull Как извлекать features Гипотеза малоразмерных многообразий
Разреженное (sparse) кодирование
первый уровень иерархии состоит из элементов словаря этого кода которые представляют собой штрихи и границы
Словарь для лиц
Выделение объектов заданного класса
Основные архитектуры Deep Learningbull Deep neural networks (DNN)bull Deep belief networks (DBN)bull Convolutional neural networks (CNN)bull Deep Boltzmann Machines (DBM)bull Stacked (Denoising) Auto-Encodersbull Deep Stacking Networksbull Tensor Deep Stacking Networks (T-DSN)bull Spike-and-Slab RBMs (ssRBMs)bull Compound Hierarchical-Deep Modelsbull Deep Coding Networks (DPCN)bull Deep Kernel Machinesbull Deep Q-Networks (2015 г)
Задача классификации распознавания и подобные являются задачей конструирования функции на множестве входных наборов и со значениями в множестве требуемого вида выходных
bull Норбертом Винером было показано что любая функция может быть сколь угодно точно композицией двух (он использовал функции полином Лагранжа и функцию Лагерра)
bull Соответствует двухслойной нейросетиbull Архитектуры Deep Learning соответствуют представлению
bull Обеспечивают эффективную параметризацию при решении конкретных задач Более сложные функции создаются из большего числа но более эффективно настраиваемых laquoкирпичиковraquo Пример ndash синтез булевых функций Дерево вентилей эффективнее двухслойной схемы
Фактор - графыВсе методы которые расмотрели ndash не DL Даже деревья классификации Все операции в одном входном словаре
DL можно определить по фактор-графу
Например
bull Еще одна сторона DL - нередко использует невыпуклые функции потерьbull Обучение на основе выпуклых функций не зависит от порядка
предъявления данных для обучения Все определяет асимптотика всего train - набора В алгоритмах DL порядок данных в обучающей выборке может иметь значение
bull Многие решения в DL не доказаны математически и являются успешными эвристиками
bull Большой простор для прикладной математики Может рассматриваться как фактор-граф с группами латентных переменных
bull В настоящее время стал основной технологией в распознавании речи (speech recognition) и машинном зрении (computer vision) начал применяться в обработке текстов (natural language processing)
bull Основная идея ndash применение нелинейного отображения входного набора в более высокоразмерное пространство где многие неразделимые композиции становятся разделимыми а затем объединение композиций по семантической близости
Подход разреженного кодирования
Обобщенная архитектура
bull DL сеть может быть собрана каскадированием и использованием обучения с учителем
Здесь используется forward propagation для обучения
Для настройки коэффициентов используется метод fprof для каждого
Требуется знание градиента энергии
Элементы (kl) матрицы Якобиана
Требуется знание градиента энергии 120597119864120597119882119894 = 120597119864120597119883119894120597119865119894(119883119894minus1119882119894)120597119882119894
ሾ1times 119873119908ሿ= ሾ1times 119873119909ሿlowast[119873119909 times 119873119908] Элементы (kl) матрицы Якобиана
Сводится к рекуррентному соотношению для вычисления градиента 120597119864120597119883119894minus1 = 120597119864120597119883119894120597119865119894(119883119894minus1119882119894)120597119883119894minus1
В итоге
Для вычисления градиента может использоваться метод back propagation
В действительности работают любые архитектуры построения функции Нужно конструировать связи и функции блоков
Язык Torch 7 ndash современный инструмент моделирования и имплементации
Machine Learning with Torch7 (httpcodecogbitscomwikidokuphpid=start)
bull These tutorials were originally designed for the IPAM Summer School on Deep Learning more info herebull This wiki provides multiple tutorials with the overall objective of teaching you how to do machine learning
with Torch7bull Torch7 provides a Matlab-like environment for state-of-the-art machine learning algorithms It is easy to use
and provides a very efficient implementation thanks to an easy and fast scripting language (LuaJIT) and an underlying C implementation
bull These tutorials should be readdone in orderbull Tutorial 1 Setup Basics Getting Startedbull Tutorial 2 Supervised Learningbull Tutorial 3 Unsupervised Learningbull Tutorial 4 Graphical Modelsbull Tutorial 5 Creating New Modulesbull Tutorial 6 Using CUDAbull To follow these tutorials and do the exercises you will need to download the associated code which is hosted
on GitHub on this page In this repository each directory corresponds to a tutorial herebull starttxt middot Last modified 20140204 2246 by clement
Torch 7 является расширением Lua
What is LuaLua is a powerful fast lightweight embeddable scripting languageLua combines simple procedural syntax with powerful data description constructs based on associative arrays and extensible semantics Lua is dynamically typed runs by interpreting bytecode for a register-based virtual machine and has automatic memory management with incremental garbage collection making it ideal for configuration scripting and rapid prototyping
Why choose LuaLua is a proven robust languageLua has been used in many industrial applications (eg Adobes Photoshop Lightroom) with an emphasis on embedded systems (eg the Ginga middleware for digital TV in Brazil) and games (eg World of Warcraft and Angry Birds) Lua is currently the leading scripting language in games Lua has a solid reference manual and there are several books about it Several versions of Lua have been released and used in real applications since its creation in 1993 Lua featured in HOPL III the Third ACM SIGPLAN History of Programming Languages Conference in June 2007 Lua won the Front Line Award 2011 from the Game Developers Magazine
Свертка и архитектура 4-х уровневой сверточной сети
Функциональная структура
Примеры успешного применения сверточных сетей
Диагностика эпилепсии по ЭЭГ
Реализация сверточной сетью
Одна из самых больших сверточных сетейbull Krizhevsky Sutskever Hinton 2012bull 650 000 нейронов 832 000 000 синапсов 60 000000 пареметровbull Использовался backprop на GPUbull Обучающая выборка на материалах 20 летbull Купил Google в январе 2013bull В мае 2013 развернул как сервис Photo Tagging Google+
Пример тэгирования
Пример поиска похожих по изображению
Пример поиска в коллекции изображений по текстовому запросу
Пример laquoоблачногоraquo классификатора изображений
Самообучающиеся нейронные сети на основе минимизации функции энергииbull Применима к сетям с обратными связямиbull Конструирование функции энергии должно обеспечивать
laquoконтрастностьraquo разделения
bull Энергетическая функция может Неформально рассматриваться как отрицательный логарифм плотности вероятности
Y 2=(Y1)2
RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцмана
bull Из DBM cтроится Deep Belief Network (DBN)
bull w mdash вес между нейронами
bull b mdash смещение нейрона
bull s mdash состояние нейрона
Алгоритм обучения Contrastive Divergence (CD)bull w_ij mdash веc между i-ым нейроном Вероятность пар может быть представлена как
bull a_i mdash смещение видимого нейрона
bull b_j mdash смещение скрытого нейрона
bull v_i mdash состояние видимого нейрона
bull h_j mdash состояние скрытого нейрона Полная вероятность состояния видимых нейронов
Основные уравнения адаптации
Алгоритм Хинтона - Contrastive Divergence (CD-k)
1 состояние видимых нейронов приравнивается к входному образу2 выводятся вероятности состояний скрытого слоя3 каждому нейрону скрытого слоя ставится в соответствие состояние laquo1raquo с вероятностью равной его текущему состоянию4 выводятся вероятности видимого слоя на основании скрытого5 если текущая итерация меньше k то возврат к шагу 26 выводятся вероятности состояний скрытого слоя
darch Package for deep architectures and Restricted-Bolzmann-MachinesThe darch package is build on the basis of the code from G E Hinton and R R Salakhutdinov (available under Matlab Code for deep belief nets last visit 01082013) This package is for generating neural networks with many layers (deep architectures) and train them with the method introduced by the publications A fast learning algorithm for deep belief nets (G E Hinton S Osindero Y W Teh) and Reducing the dimensionality of data with neural networks (G E Hinton R R Salakhutdinov) This method includes a pre training with the contrastive divergence method publishing by GE Hinton (2002) and a fine tuning with common known training algorithms like backpropagation or conjugate gradient
bull Version 091bull Imports futilelogger ff methodsbull Published 2014-03-16bull Author Martin Dreesbull Maintainer Martin Drees ltmdrees at studfh-dortmunddegtbull License GPL-2bull URL httpgithubcommaddin79darchbull NeedsCompilation nobull Materials READMEbull CRAN checks darch results
Связь плотности вероятности и энергии
Используется распределение Гиббса
Задача обучения с точки минимизации энергии сети
bull Сконструировать функцию энергии с малыми значениями на обучающей выборке и с большими значениями всюду вне этого множества
bull Первое несложно а второе представляет задачу процесса обучения
Интуитивные соображения
Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decomposition LISTA ndashметоды использующие разреженные коды
Латентная переменная Z =argmin_z Distance[Decoder(Z)Y]+FactorB(Z)MAPminimaize sum of factors
Автоэнкодер (auto encoder) Автоэнкодер представляет собой алгоритм обучения без учителя который использует нейронную сеть и метод обратного распространения ошибки для того чтобы добиться того что входной вектор признаков вызывал отклик сети равный входному вектору те y = x Автоэнкодер пытается построить функцию h(x) = x
Архитекттура ICA моделей
Итеративные алгоритмы с оптимальным разреженным кодированием ISTAFISTA
Самоорганизация данных методами Deep Learning
>
Знакомство с пакетом deepnet
Назначение
Составdbndnntrain - обучение сети с архитектурой DBN (deep belief network)loadmnist - формирование данных из файлов MNISTnnpredict - предсказание новых выборок на обученной нейронной сетиnntest ndash тестирование обученной нейронной сети с возвращением значения ошибкиnntrain ndash обучение одностлойной или многослойной нейронной сети методом backproprbmdown ndash генерирование видимого вектора для скрытых состояний сети RBMrbmtrain ndash обучение сети RBMrbmup ndash извлечение скрытых состояний RBM по известным видимым состояниямsaednntrain ndash обучение нейронной сети с архитектурой stacked autoencoder
Прогнозирование (классификация) нейронной сетью с архитектурой stacked auto encoder
Argumentsbull x matrix of x values for examplesbull y vector or matrix of target values for examplesbull hidden vector for number of units of hidden layersDefault is c(10)bull activationfun activation function of hidden unitCan be sigmlinear or tanhDefault isbull sigm for logistic functionbull learningrate learning rate for gradient descent Default is 08bull momentum momentum for gradient descent Default is 05 bull learningrate_scalebull learning rate will be mutiplied by this scale after every iteration Default is 1 bull numepochs number of iteration for samples Default is 3bull batchsize size of mini-batch Default is 100bull output function of output unit can be sigmlinear or softmax Default is sigmbull sae_output function of autoencoder output unit can be sigmlinear or softmax Defaultbull is linearbull hidden_dropout drop out fraction for hidden layer Default is 0bull visible_dropoutbull drop out fraction for input layer Default is 0
Что такое MNISTbull Смешанный набор данных Национального института стандартов и
технологий (mixed National Institute of Standards and Technology MNIST) был создан исследователями IR в качестве эталона для сравнения различных алгоритмов IR
bull Набор данных состоит всего из 70 000 изображений 60 000 обучающих (используемых для создания модели IR) и 10 000 тестовых (применяемых для оценки точности модели) Каждое изображение MNIST mdash это оцифрованная картинка одной цифры написанной от руки Каждое изображение имеет размер 28 times 28 пикселей Каждое значение пикселя лежит в диапазоне от 0 (представляет белый цвет) до 255 (представляет черный цвет) Промежуточные значения отражают оттенки серого
httpyannlecuncomexdbmnistобучающие и тестовые данные хранятся в двух файлах а не в одном Один файл содержит значения пикселей для изображений а другой mdash метки изображений (0ndash9) Каждый из четырех файлов также содержит заголовочную информацию и все они хранятся в двоичном формате сжатом в формате gziptrain-images-idx3-ubytegz training set images (9912422 bytes)
train-labels-idx1-ubytegz training set labels (28881 bytes)
t10k-images-idx3-ubytegz test set images (1648877 bytes)
t10k-labels-idx1-ubytegz test set labels (4542 bytes)
bull Каждая строка файла представляет собой имидж размера 28 times 28 вектором длины 784 каждый признак ndash значение пиксела в черно-белой шале Первый столбец содержит метку цифры 0ndash9 следующие 2828 столбцов представляют целый имидж и так далее Пример первой строки
Визуализация
bull plotmnist()bull mnistbull paramsbull train$n number of train samplesbull train$x pix of every train sample imagebull train$y label of every train sample imagebull train$yy one-of-c vector of label of train sample imagebull test$n number of test samplesbull test$x pix of every test sample imagebull test$y label of every test sample imagebull test$yy one-of-c vector of label of test sample image
plotmnist()
Распознавание рукописных цифр в deepnet
another way to download the MNIST datasetmnist downloadmnist(range=c(01)global=FALSE)look at MNIST datamnist$train$xmnist$train$ymnist$test$xmnist$test$ytrain of the sae neural networkdnnlt-saednntrain(mnist$train$xmnist$train$yhidden=c(55))test of the sae neural networknntest(dnnmnist$test$xmnist$test$yt=05)
End of slides part 2 (Part 3 - NLP remaining)
Vladimirvkrylovgmailcom
Основы предиктивной аналитики Часть вторая
Применение методов Machine Learning к решению задач аналитики
Дмитрий Ветров кандидат физико-математических наук ру
Методы обучающихся машин для аналитики которые мы рассмотрим
Сначала нужно загрузить несколько пакетов (packages) для поддер
Данные для анализа
Скрипт для генерации
Данные которые мы будем использовать для демо состоят из смес
Так выглядят визуализированные данные сгенерированные скриптом
Разделение данных на обучающие и проверочные является важным эт
K-means алгоритм на пальцах
Обучающаяся машина без учителя Алгоритм K-means
Slide 13
Slide 14
Здесь мы используем заранее известный факт что необходимо кла
Еще одна иллюстрация работы алгоритма K-means
Обучающаяся машина без учителя Алгоритм KNN (Nearest Neighbor)
Как работает алгоритм KNN
knn(train test cl k = 1 l = 0 prob = FALSE useall = TRUE
Slide 20
Результаты кластеризации и зависимость ошибки от числа кластеро
Recursive PartitioningRegression Tree
Метод RP реализует обучение машины строить дерево решений по об
Recursive PartitioningRegression Tree (2)
rpart(formula data weights subset naaction = narpart met
Slide 26
Recursive PartitioningRegression Tree example
Анализ по главным компонентам (Principal Component Analysis PC
Итеративные алгоритмы с оптимальным разреженным кодированием IS
Самоорганизация данных методами Deep Learning
Знакомство с пакетом deepnet
Прогнозирование (классификация) нейронной сетью с архитектурой
Arguments
Архитектура сети SAE
Архитектура с 5Х4 hidden 3 outs
Example
Анализ обучающего набора данных
Параметры SAE сети
Коэффициенты связей
Предсказание обученной сетью
Сравнение обучающей и тестовой выборки
plot3d(xy)
Работаем с пакетом MNIST
httpyannlecuncomexdbmnist
Подготовка к обработке
Slide 118
Визуализация
plotmnist()
Распознавание рукописных цифр в deepnet
End of slides part 2 (Part 3 - NLP remaining)
Пиксельное кодирование
Принцип иерархии понятий ndash основа deep learning
bull Все вещи состоят из других маленьких и более элементарных вещей
bull Как извлекать features Гипотеза малоразмерных многообразий
Разреженное (sparse) кодирование
первый уровень иерархии состоит из элементов словаря этого кода которые представляют собой штрихи и границы
Словарь для лиц
Выделение объектов заданного класса
Основные архитектуры Deep Learningbull Deep neural networks (DNN)bull Deep belief networks (DBN)bull Convolutional neural networks (CNN)bull Deep Boltzmann Machines (DBM)bull Stacked (Denoising) Auto-Encodersbull Deep Stacking Networksbull Tensor Deep Stacking Networks (T-DSN)bull Spike-and-Slab RBMs (ssRBMs)bull Compound Hierarchical-Deep Modelsbull Deep Coding Networks (DPCN)bull Deep Kernel Machinesbull Deep Q-Networks (2015 г)
Задача классификации распознавания и подобные являются задачей конструирования функции на множестве входных наборов и со значениями в множестве требуемого вида выходных
bull Норбертом Винером было показано что любая функция может быть сколь угодно точно композицией двух (он использовал функции полином Лагранжа и функцию Лагерра)
bull Соответствует двухслойной нейросетиbull Архитектуры Deep Learning соответствуют представлению
bull Обеспечивают эффективную параметризацию при решении конкретных задач Более сложные функции создаются из большего числа но более эффективно настраиваемых laquoкирпичиковraquo Пример ndash синтез булевых функций Дерево вентилей эффективнее двухслойной схемы
Фактор - графыВсе методы которые расмотрели ndash не DL Даже деревья классификации Все операции в одном входном словаре
DL можно определить по фактор-графу
Например
bull Еще одна сторона DL - нередко использует невыпуклые функции потерьbull Обучение на основе выпуклых функций не зависит от порядка
предъявления данных для обучения Все определяет асимптотика всего train - набора В алгоритмах DL порядок данных в обучающей выборке может иметь значение
bull Многие решения в DL не доказаны математически и являются успешными эвристиками
bull Большой простор для прикладной математики Может рассматриваться как фактор-граф с группами латентных переменных
bull В настоящее время стал основной технологией в распознавании речи (speech recognition) и машинном зрении (computer vision) начал применяться в обработке текстов (natural language processing)
bull Основная идея ndash применение нелинейного отображения входного набора в более высокоразмерное пространство где многие неразделимые композиции становятся разделимыми а затем объединение композиций по семантической близости
Подход разреженного кодирования
Обобщенная архитектура
bull DL сеть может быть собрана каскадированием и использованием обучения с учителем
Здесь используется forward propagation для обучения
Для настройки коэффициентов используется метод fprof для каждого
Требуется знание градиента энергии
Элементы (kl) матрицы Якобиана
Требуется знание градиента энергии 120597119864120597119882119894 = 120597119864120597119883119894120597119865119894(119883119894minus1119882119894)120597119882119894
ሾ1times 119873119908ሿ= ሾ1times 119873119909ሿlowast[119873119909 times 119873119908] Элементы (kl) матрицы Якобиана
Сводится к рекуррентному соотношению для вычисления градиента 120597119864120597119883119894minus1 = 120597119864120597119883119894120597119865119894(119883119894minus1119882119894)120597119883119894minus1
В итоге
Для вычисления градиента может использоваться метод back propagation
В действительности работают любые архитектуры построения функции Нужно конструировать связи и функции блоков
Язык Torch 7 ndash современный инструмент моделирования и имплементации
Machine Learning with Torch7 (httpcodecogbitscomwikidokuphpid=start)
bull These tutorials were originally designed for the IPAM Summer School on Deep Learning more info herebull This wiki provides multiple tutorials with the overall objective of teaching you how to do machine learning
with Torch7bull Torch7 provides a Matlab-like environment for state-of-the-art machine learning algorithms It is easy to use
and provides a very efficient implementation thanks to an easy and fast scripting language (LuaJIT) and an underlying C implementation
bull These tutorials should be readdone in orderbull Tutorial 1 Setup Basics Getting Startedbull Tutorial 2 Supervised Learningbull Tutorial 3 Unsupervised Learningbull Tutorial 4 Graphical Modelsbull Tutorial 5 Creating New Modulesbull Tutorial 6 Using CUDAbull To follow these tutorials and do the exercises you will need to download the associated code which is hosted
on GitHub on this page In this repository each directory corresponds to a tutorial herebull starttxt middot Last modified 20140204 2246 by clement
Torch 7 является расширением Lua
What is LuaLua is a powerful fast lightweight embeddable scripting languageLua combines simple procedural syntax with powerful data description constructs based on associative arrays and extensible semantics Lua is dynamically typed runs by interpreting bytecode for a register-based virtual machine and has automatic memory management with incremental garbage collection making it ideal for configuration scripting and rapid prototyping
Why choose LuaLua is a proven robust languageLua has been used in many industrial applications (eg Adobes Photoshop Lightroom) with an emphasis on embedded systems (eg the Ginga middleware for digital TV in Brazil) and games (eg World of Warcraft and Angry Birds) Lua is currently the leading scripting language in games Lua has a solid reference manual and there are several books about it Several versions of Lua have been released and used in real applications since its creation in 1993 Lua featured in HOPL III the Third ACM SIGPLAN History of Programming Languages Conference in June 2007 Lua won the Front Line Award 2011 from the Game Developers Magazine
Свертка и архитектура 4-х уровневой сверточной сети
Функциональная структура
Примеры успешного применения сверточных сетей
Диагностика эпилепсии по ЭЭГ
Реализация сверточной сетью
Одна из самых больших сверточных сетейbull Krizhevsky Sutskever Hinton 2012bull 650 000 нейронов 832 000 000 синапсов 60 000000 пареметровbull Использовался backprop на GPUbull Обучающая выборка на материалах 20 летbull Купил Google в январе 2013bull В мае 2013 развернул как сервис Photo Tagging Google+
Пример тэгирования
Пример поиска похожих по изображению
Пример поиска в коллекции изображений по текстовому запросу
Пример laquoоблачногоraquo классификатора изображений
Самообучающиеся нейронные сети на основе минимизации функции энергииbull Применима к сетям с обратными связямиbull Конструирование функции энергии должно обеспечивать
laquoконтрастностьraquo разделения
bull Энергетическая функция может Неформально рассматриваться как отрицательный логарифм плотности вероятности
Y 2=(Y1)2
RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцмана
bull Из DBM cтроится Deep Belief Network (DBN)
bull w mdash вес между нейронами
bull b mdash смещение нейрона
bull s mdash состояние нейрона
Алгоритм обучения Contrastive Divergence (CD)bull w_ij mdash веc между i-ым нейроном Вероятность пар может быть представлена как
bull a_i mdash смещение видимого нейрона
bull b_j mdash смещение скрытого нейрона
bull v_i mdash состояние видимого нейрона
bull h_j mdash состояние скрытого нейрона Полная вероятность состояния видимых нейронов
Основные уравнения адаптации
Алгоритм Хинтона - Contrastive Divergence (CD-k)
1 состояние видимых нейронов приравнивается к входному образу2 выводятся вероятности состояний скрытого слоя3 каждому нейрону скрытого слоя ставится в соответствие состояние laquo1raquo с вероятностью равной его текущему состоянию4 выводятся вероятности видимого слоя на основании скрытого5 если текущая итерация меньше k то возврат к шагу 26 выводятся вероятности состояний скрытого слоя
darch Package for deep architectures and Restricted-Bolzmann-MachinesThe darch package is build on the basis of the code from G E Hinton and R R Salakhutdinov (available under Matlab Code for deep belief nets last visit 01082013) This package is for generating neural networks with many layers (deep architectures) and train them with the method introduced by the publications A fast learning algorithm for deep belief nets (G E Hinton S Osindero Y W Teh) and Reducing the dimensionality of data with neural networks (G E Hinton R R Salakhutdinov) This method includes a pre training with the contrastive divergence method publishing by GE Hinton (2002) and a fine tuning with common known training algorithms like backpropagation or conjugate gradient
bull Version 091bull Imports futilelogger ff methodsbull Published 2014-03-16bull Author Martin Dreesbull Maintainer Martin Drees ltmdrees at studfh-dortmunddegtbull License GPL-2bull URL httpgithubcommaddin79darchbull NeedsCompilation nobull Materials READMEbull CRAN checks darch results
Связь плотности вероятности и энергии
Используется распределение Гиббса
Задача обучения с точки минимизации энергии сети
bull Сконструировать функцию энергии с малыми значениями на обучающей выборке и с большими значениями всюду вне этого множества
bull Первое несложно а второе представляет задачу процесса обучения
Интуитивные соображения
Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decomposition LISTA ndashметоды использующие разреженные коды
Латентная переменная Z =argmin_z Distance[Decoder(Z)Y]+FactorB(Z)MAPminimaize sum of factors
Автоэнкодер (auto encoder) Автоэнкодер представляет собой алгоритм обучения без учителя который использует нейронную сеть и метод обратного распространения ошибки для того чтобы добиться того что входной вектор признаков вызывал отклик сети равный входному вектору те y = x Автоэнкодер пытается построить функцию h(x) = x
Архитекттура ICA моделей
Итеративные алгоритмы с оптимальным разреженным кодированием ISTAFISTA
Самоорганизация данных методами Deep Learning
>
Знакомство с пакетом deepnet
Назначение
Составdbndnntrain - обучение сети с архитектурой DBN (deep belief network)loadmnist - формирование данных из файлов MNISTnnpredict - предсказание новых выборок на обученной нейронной сетиnntest ndash тестирование обученной нейронной сети с возвращением значения ошибкиnntrain ndash обучение одностлойной или многослойной нейронной сети методом backproprbmdown ndash генерирование видимого вектора для скрытых состояний сети RBMrbmtrain ndash обучение сети RBMrbmup ndash извлечение скрытых состояний RBM по известным видимым состояниямsaednntrain ndash обучение нейронной сети с архитектурой stacked autoencoder
Прогнозирование (классификация) нейронной сетью с архитектурой stacked auto encoder
Argumentsbull x matrix of x values for examplesbull y vector or matrix of target values for examplesbull hidden vector for number of units of hidden layersDefault is c(10)bull activationfun activation function of hidden unitCan be sigmlinear or tanhDefault isbull sigm for logistic functionbull learningrate learning rate for gradient descent Default is 08bull momentum momentum for gradient descent Default is 05 bull learningrate_scalebull learning rate will be mutiplied by this scale after every iteration Default is 1 bull numepochs number of iteration for samples Default is 3bull batchsize size of mini-batch Default is 100bull output function of output unit can be sigmlinear or softmax Default is sigmbull sae_output function of autoencoder output unit can be sigmlinear or softmax Defaultbull is linearbull hidden_dropout drop out fraction for hidden layer Default is 0bull visible_dropoutbull drop out fraction for input layer Default is 0
Что такое MNISTbull Смешанный набор данных Национального института стандартов и
технологий (mixed National Institute of Standards and Technology MNIST) был создан исследователями IR в качестве эталона для сравнения различных алгоритмов IR
bull Набор данных состоит всего из 70 000 изображений 60 000 обучающих (используемых для создания модели IR) и 10 000 тестовых (применяемых для оценки точности модели) Каждое изображение MNIST mdash это оцифрованная картинка одной цифры написанной от руки Каждое изображение имеет размер 28 times 28 пикселей Каждое значение пикселя лежит в диапазоне от 0 (представляет белый цвет) до 255 (представляет черный цвет) Промежуточные значения отражают оттенки серого
httpyannlecuncomexdbmnistобучающие и тестовые данные хранятся в двух файлах а не в одном Один файл содержит значения пикселей для изображений а другой mdash метки изображений (0ndash9) Каждый из четырех файлов также содержит заголовочную информацию и все они хранятся в двоичном формате сжатом в формате gziptrain-images-idx3-ubytegz training set images (9912422 bytes)
train-labels-idx1-ubytegz training set labels (28881 bytes)
t10k-images-idx3-ubytegz test set images (1648877 bytes)
t10k-labels-idx1-ubytegz test set labels (4542 bytes)
bull Каждая строка файла представляет собой имидж размера 28 times 28 вектором длины 784 каждый признак ndash значение пиксела в черно-белой шале Первый столбец содержит метку цифры 0ndash9 следующие 2828 столбцов представляют целый имидж и так далее Пример первой строки
Визуализация
bull plotmnist()bull mnistbull paramsbull train$n number of train samplesbull train$x pix of every train sample imagebull train$y label of every train sample imagebull train$yy one-of-c vector of label of train sample imagebull test$n number of test samplesbull test$x pix of every test sample imagebull test$y label of every test sample imagebull test$yy one-of-c vector of label of test sample image
plotmnist()
Распознавание рукописных цифр в deepnet
another way to download the MNIST datasetmnist downloadmnist(range=c(01)global=FALSE)look at MNIST datamnist$train$xmnist$train$ymnist$test$xmnist$test$ytrain of the sae neural networkdnnlt-saednntrain(mnist$train$xmnist$train$yhidden=c(55))test of the sae neural networknntest(dnnmnist$test$xmnist$test$yt=05)
End of slides part 2 (Part 3 - NLP remaining)
Vladimirvkrylovgmailcom
Основы предиктивной аналитики Часть вторая
Применение методов Machine Learning к решению задач аналитики
Дмитрий Ветров кандидат физико-математических наук ру
Методы обучающихся машин для аналитики которые мы рассмотрим
Сначала нужно загрузить несколько пакетов (packages) для поддер
Данные для анализа
Скрипт для генерации
Данные которые мы будем использовать для демо состоят из смес
Так выглядят визуализированные данные сгенерированные скриптом
Разделение данных на обучающие и проверочные является важным эт
K-means алгоритм на пальцах
Обучающаяся машина без учителя Алгоритм K-means
Slide 13
Slide 14
Здесь мы используем заранее известный факт что необходимо кла
Еще одна иллюстрация работы алгоритма K-means
Обучающаяся машина без учителя Алгоритм KNN (Nearest Neighbor)
Как работает алгоритм KNN
knn(train test cl k = 1 l = 0 prob = FALSE useall = TRUE
Slide 20
Результаты кластеризации и зависимость ошибки от числа кластеро
Recursive PartitioningRegression Tree
Метод RP реализует обучение машины строить дерево решений по об
Recursive PartitioningRegression Tree (2)
rpart(formula data weights subset naaction = narpart met
Slide 26
Recursive PartitioningRegression Tree example
Анализ по главным компонентам (Principal Component Analysis PC
Итеративные алгоритмы с оптимальным разреженным кодированием IS
Самоорганизация данных методами Deep Learning
Знакомство с пакетом deepnet
Прогнозирование (классификация) нейронной сетью с архитектурой
Arguments
Архитектура сети SAE
Архитектура с 5Х4 hidden 3 outs
Example
Анализ обучающего набора данных
Параметры SAE сети
Коэффициенты связей
Предсказание обученной сетью
Сравнение обучающей и тестовой выборки
plot3d(xy)
Работаем с пакетом MNIST
httpyannlecuncomexdbmnist
Подготовка к обработке
Slide 118
Визуализация
plotmnist()
Распознавание рукописных цифр в deepnet
End of slides part 2 (Part 3 - NLP remaining)
Принцип иерархии понятий ndash основа deep learning
bull Все вещи состоят из других маленьких и более элементарных вещей
bull Как извлекать features Гипотеза малоразмерных многообразий
Разреженное (sparse) кодирование
первый уровень иерархии состоит из элементов словаря этого кода которые представляют собой штрихи и границы
Словарь для лиц
Выделение объектов заданного класса
Основные архитектуры Deep Learningbull Deep neural networks (DNN)bull Deep belief networks (DBN)bull Convolutional neural networks (CNN)bull Deep Boltzmann Machines (DBM)bull Stacked (Denoising) Auto-Encodersbull Deep Stacking Networksbull Tensor Deep Stacking Networks (T-DSN)bull Spike-and-Slab RBMs (ssRBMs)bull Compound Hierarchical-Deep Modelsbull Deep Coding Networks (DPCN)bull Deep Kernel Machinesbull Deep Q-Networks (2015 г)
Задача классификации распознавания и подобные являются задачей конструирования функции на множестве входных наборов и со значениями в множестве требуемого вида выходных
bull Норбертом Винером было показано что любая функция может быть сколь угодно точно композицией двух (он использовал функции полином Лагранжа и функцию Лагерра)
bull Соответствует двухслойной нейросетиbull Архитектуры Deep Learning соответствуют представлению
bull Обеспечивают эффективную параметризацию при решении конкретных задач Более сложные функции создаются из большего числа но более эффективно настраиваемых laquoкирпичиковraquo Пример ndash синтез булевых функций Дерево вентилей эффективнее двухслойной схемы
Фактор - графыВсе методы которые расмотрели ndash не DL Даже деревья классификации Все операции в одном входном словаре
DL можно определить по фактор-графу
Например
bull Еще одна сторона DL - нередко использует невыпуклые функции потерьbull Обучение на основе выпуклых функций не зависит от порядка
предъявления данных для обучения Все определяет асимптотика всего train - набора В алгоритмах DL порядок данных в обучающей выборке может иметь значение
bull Многие решения в DL не доказаны математически и являются успешными эвристиками
bull Большой простор для прикладной математики Может рассматриваться как фактор-граф с группами латентных переменных
bull В настоящее время стал основной технологией в распознавании речи (speech recognition) и машинном зрении (computer vision) начал применяться в обработке текстов (natural language processing)
bull Основная идея ndash применение нелинейного отображения входного набора в более высокоразмерное пространство где многие неразделимые композиции становятся разделимыми а затем объединение композиций по семантической близости
Подход разреженного кодирования
Обобщенная архитектура
bull DL сеть может быть собрана каскадированием и использованием обучения с учителем
Здесь используется forward propagation для обучения
Для настройки коэффициентов используется метод fprof для каждого
Требуется знание градиента энергии
Элементы (kl) матрицы Якобиана
Требуется знание градиента энергии 120597119864120597119882119894 = 120597119864120597119883119894120597119865119894(119883119894minus1119882119894)120597119882119894
ሾ1times 119873119908ሿ= ሾ1times 119873119909ሿlowast[119873119909 times 119873119908] Элементы (kl) матрицы Якобиана
Сводится к рекуррентному соотношению для вычисления градиента 120597119864120597119883119894minus1 = 120597119864120597119883119894120597119865119894(119883119894minus1119882119894)120597119883119894minus1
В итоге
Для вычисления градиента может использоваться метод back propagation
В действительности работают любые архитектуры построения функции Нужно конструировать связи и функции блоков
Язык Torch 7 ndash современный инструмент моделирования и имплементации
Machine Learning with Torch7 (httpcodecogbitscomwikidokuphpid=start)
bull These tutorials were originally designed for the IPAM Summer School on Deep Learning more info herebull This wiki provides multiple tutorials with the overall objective of teaching you how to do machine learning
with Torch7bull Torch7 provides a Matlab-like environment for state-of-the-art machine learning algorithms It is easy to use
and provides a very efficient implementation thanks to an easy and fast scripting language (LuaJIT) and an underlying C implementation
bull These tutorials should be readdone in orderbull Tutorial 1 Setup Basics Getting Startedbull Tutorial 2 Supervised Learningbull Tutorial 3 Unsupervised Learningbull Tutorial 4 Graphical Modelsbull Tutorial 5 Creating New Modulesbull Tutorial 6 Using CUDAbull To follow these tutorials and do the exercises you will need to download the associated code which is hosted
on GitHub on this page In this repository each directory corresponds to a tutorial herebull starttxt middot Last modified 20140204 2246 by clement
Torch 7 является расширением Lua
What is LuaLua is a powerful fast lightweight embeddable scripting languageLua combines simple procedural syntax with powerful data description constructs based on associative arrays and extensible semantics Lua is dynamically typed runs by interpreting bytecode for a register-based virtual machine and has automatic memory management with incremental garbage collection making it ideal for configuration scripting and rapid prototyping
Why choose LuaLua is a proven robust languageLua has been used in many industrial applications (eg Adobes Photoshop Lightroom) with an emphasis on embedded systems (eg the Ginga middleware for digital TV in Brazil) and games (eg World of Warcraft and Angry Birds) Lua is currently the leading scripting language in games Lua has a solid reference manual and there are several books about it Several versions of Lua have been released and used in real applications since its creation in 1993 Lua featured in HOPL III the Third ACM SIGPLAN History of Programming Languages Conference in June 2007 Lua won the Front Line Award 2011 from the Game Developers Magazine
Свертка и архитектура 4-х уровневой сверточной сети
Функциональная структура
Примеры успешного применения сверточных сетей
Диагностика эпилепсии по ЭЭГ
Реализация сверточной сетью
Одна из самых больших сверточных сетейbull Krizhevsky Sutskever Hinton 2012bull 650 000 нейронов 832 000 000 синапсов 60 000000 пареметровbull Использовался backprop на GPUbull Обучающая выборка на материалах 20 летbull Купил Google в январе 2013bull В мае 2013 развернул как сервис Photo Tagging Google+
Пример тэгирования
Пример поиска похожих по изображению
Пример поиска в коллекции изображений по текстовому запросу
Пример laquoоблачногоraquo классификатора изображений
Самообучающиеся нейронные сети на основе минимизации функции энергииbull Применима к сетям с обратными связямиbull Конструирование функции энергии должно обеспечивать
laquoконтрастностьraquo разделения
bull Энергетическая функция может Неформально рассматриваться как отрицательный логарифм плотности вероятности
Y 2=(Y1)2
RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцмана
bull Из DBM cтроится Deep Belief Network (DBN)
bull w mdash вес между нейронами
bull b mdash смещение нейрона
bull s mdash состояние нейрона
Алгоритм обучения Contrastive Divergence (CD)bull w_ij mdash веc между i-ым нейроном Вероятность пар может быть представлена как
bull a_i mdash смещение видимого нейрона
bull b_j mdash смещение скрытого нейрона
bull v_i mdash состояние видимого нейрона
bull h_j mdash состояние скрытого нейрона Полная вероятность состояния видимых нейронов
Основные уравнения адаптации
Алгоритм Хинтона - Contrastive Divergence (CD-k)
1 состояние видимых нейронов приравнивается к входному образу2 выводятся вероятности состояний скрытого слоя3 каждому нейрону скрытого слоя ставится в соответствие состояние laquo1raquo с вероятностью равной его текущему состоянию4 выводятся вероятности видимого слоя на основании скрытого5 если текущая итерация меньше k то возврат к шагу 26 выводятся вероятности состояний скрытого слоя
darch Package for deep architectures and Restricted-Bolzmann-MachinesThe darch package is build on the basis of the code from G E Hinton and R R Salakhutdinov (available under Matlab Code for deep belief nets last visit 01082013) This package is for generating neural networks with many layers (deep architectures) and train them with the method introduced by the publications A fast learning algorithm for deep belief nets (G E Hinton S Osindero Y W Teh) and Reducing the dimensionality of data with neural networks (G E Hinton R R Salakhutdinov) This method includes a pre training with the contrastive divergence method publishing by GE Hinton (2002) and a fine tuning with common known training algorithms like backpropagation or conjugate gradient
bull Version 091bull Imports futilelogger ff methodsbull Published 2014-03-16bull Author Martin Dreesbull Maintainer Martin Drees ltmdrees at studfh-dortmunddegtbull License GPL-2bull URL httpgithubcommaddin79darchbull NeedsCompilation nobull Materials READMEbull CRAN checks darch results
Связь плотности вероятности и энергии
Используется распределение Гиббса
Задача обучения с точки минимизации энергии сети
bull Сконструировать функцию энергии с малыми значениями на обучающей выборке и с большими значениями всюду вне этого множества
bull Первое несложно а второе представляет задачу процесса обучения
Интуитивные соображения
Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decomposition LISTA ndashметоды использующие разреженные коды
Латентная переменная Z =argmin_z Distance[Decoder(Z)Y]+FactorB(Z)MAPminimaize sum of factors
Автоэнкодер (auto encoder) Автоэнкодер представляет собой алгоритм обучения без учителя который использует нейронную сеть и метод обратного распространения ошибки для того чтобы добиться того что входной вектор признаков вызывал отклик сети равный входному вектору те y = x Автоэнкодер пытается построить функцию h(x) = x
Архитекттура ICA моделей
Итеративные алгоритмы с оптимальным разреженным кодированием ISTAFISTA
Самоорганизация данных методами Deep Learning
>
Знакомство с пакетом deepnet
Назначение
Составdbndnntrain - обучение сети с архитектурой DBN (deep belief network)loadmnist - формирование данных из файлов MNISTnnpredict - предсказание новых выборок на обученной нейронной сетиnntest ndash тестирование обученной нейронной сети с возвращением значения ошибкиnntrain ndash обучение одностлойной или многослойной нейронной сети методом backproprbmdown ndash генерирование видимого вектора для скрытых состояний сети RBMrbmtrain ndash обучение сети RBMrbmup ndash извлечение скрытых состояний RBM по известным видимым состояниямsaednntrain ndash обучение нейронной сети с архитектурой stacked autoencoder
Прогнозирование (классификация) нейронной сетью с архитектурой stacked auto encoder
Argumentsbull x matrix of x values for examplesbull y vector or matrix of target values for examplesbull hidden vector for number of units of hidden layersDefault is c(10)bull activationfun activation function of hidden unitCan be sigmlinear or tanhDefault isbull sigm for logistic functionbull learningrate learning rate for gradient descent Default is 08bull momentum momentum for gradient descent Default is 05 bull learningrate_scalebull learning rate will be mutiplied by this scale after every iteration Default is 1 bull numepochs number of iteration for samples Default is 3bull batchsize size of mini-batch Default is 100bull output function of output unit can be sigmlinear or softmax Default is sigmbull sae_output function of autoencoder output unit can be sigmlinear or softmax Defaultbull is linearbull hidden_dropout drop out fraction for hidden layer Default is 0bull visible_dropoutbull drop out fraction for input layer Default is 0
Что такое MNISTbull Смешанный набор данных Национального института стандартов и
технологий (mixed National Institute of Standards and Technology MNIST) был создан исследователями IR в качестве эталона для сравнения различных алгоритмов IR
bull Набор данных состоит всего из 70 000 изображений 60 000 обучающих (используемых для создания модели IR) и 10 000 тестовых (применяемых для оценки точности модели) Каждое изображение MNIST mdash это оцифрованная картинка одной цифры написанной от руки Каждое изображение имеет размер 28 times 28 пикселей Каждое значение пикселя лежит в диапазоне от 0 (представляет белый цвет) до 255 (представляет черный цвет) Промежуточные значения отражают оттенки серого
httpyannlecuncomexdbmnistобучающие и тестовые данные хранятся в двух файлах а не в одном Один файл содержит значения пикселей для изображений а другой mdash метки изображений (0ndash9) Каждый из четырех файлов также содержит заголовочную информацию и все они хранятся в двоичном формате сжатом в формате gziptrain-images-idx3-ubytegz training set images (9912422 bytes)
train-labels-idx1-ubytegz training set labels (28881 bytes)
t10k-images-idx3-ubytegz test set images (1648877 bytes)
t10k-labels-idx1-ubytegz test set labels (4542 bytes)
bull Каждая строка файла представляет собой имидж размера 28 times 28 вектором длины 784 каждый признак ndash значение пиксела в черно-белой шале Первый столбец содержит метку цифры 0ndash9 следующие 2828 столбцов представляют целый имидж и так далее Пример первой строки
Визуализация
bull plotmnist()bull mnistbull paramsbull train$n number of train samplesbull train$x pix of every train sample imagebull train$y label of every train sample imagebull train$yy one-of-c vector of label of train sample imagebull test$n number of test samplesbull test$x pix of every test sample imagebull test$y label of every test sample imagebull test$yy one-of-c vector of label of test sample image
plotmnist()
Распознавание рукописных цифр в deepnet
another way to download the MNIST datasetmnist downloadmnist(range=c(01)global=FALSE)look at MNIST datamnist$train$xmnist$train$ymnist$test$xmnist$test$ytrain of the sae neural networkdnnlt-saednntrain(mnist$train$xmnist$train$yhidden=c(55))test of the sae neural networknntest(dnnmnist$test$xmnist$test$yt=05)
End of slides part 2 (Part 3 - NLP remaining)
Vladimirvkrylovgmailcom
Основы предиктивной аналитики Часть вторая
Применение методов Machine Learning к решению задач аналитики
Дмитрий Ветров кандидат физико-математических наук ру
Методы обучающихся машин для аналитики которые мы рассмотрим
Сначала нужно загрузить несколько пакетов (packages) для поддер
Данные для анализа
Скрипт для генерации
Данные которые мы будем использовать для демо состоят из смес
Так выглядят визуализированные данные сгенерированные скриптом
Разделение данных на обучающие и проверочные является важным эт
K-means алгоритм на пальцах
Обучающаяся машина без учителя Алгоритм K-means
Slide 13
Slide 14
Здесь мы используем заранее известный факт что необходимо кла
Еще одна иллюстрация работы алгоритма K-means
Обучающаяся машина без учителя Алгоритм KNN (Nearest Neighbor)
Как работает алгоритм KNN
knn(train test cl k = 1 l = 0 prob = FALSE useall = TRUE
Slide 20
Результаты кластеризации и зависимость ошибки от числа кластеро
Recursive PartitioningRegression Tree
Метод RP реализует обучение машины строить дерево решений по об
Recursive PartitioningRegression Tree (2)
rpart(formula data weights subset naaction = narpart met
Slide 26
Recursive PartitioningRegression Tree example
Анализ по главным компонентам (Principal Component Analysis PC
Итеративные алгоритмы с оптимальным разреженным кодированием IS
Самоорганизация данных методами Deep Learning
Знакомство с пакетом deepnet
Прогнозирование (классификация) нейронной сетью с архитектурой
Arguments
Архитектура сети SAE
Архитектура с 5Х4 hidden 3 outs
Example
Анализ обучающего набора данных
Параметры SAE сети
Коэффициенты связей
Предсказание обученной сетью
Сравнение обучающей и тестовой выборки
plot3d(xy)
Работаем с пакетом MNIST
httpyannlecuncomexdbmnist
Подготовка к обработке
Slide 118
Визуализация
plotmnist()
Распознавание рукописных цифр в deepnet
End of slides part 2 (Part 3 - NLP remaining)
Разреженное (sparse) кодирование
первый уровень иерархии состоит из элементов словаря этого кода которые представляют собой штрихи и границы
Словарь для лиц
Выделение объектов заданного класса
Основные архитектуры Deep Learningbull Deep neural networks (DNN)bull Deep belief networks (DBN)bull Convolutional neural networks (CNN)bull Deep Boltzmann Machines (DBM)bull Stacked (Denoising) Auto-Encodersbull Deep Stacking Networksbull Tensor Deep Stacking Networks (T-DSN)bull Spike-and-Slab RBMs (ssRBMs)bull Compound Hierarchical-Deep Modelsbull Deep Coding Networks (DPCN)bull Deep Kernel Machinesbull Deep Q-Networks (2015 г)
Задача классификации распознавания и подобные являются задачей конструирования функции на множестве входных наборов и со значениями в множестве требуемого вида выходных
bull Норбертом Винером было показано что любая функция может быть сколь угодно точно композицией двух (он использовал функции полином Лагранжа и функцию Лагерра)
bull Соответствует двухслойной нейросетиbull Архитектуры Deep Learning соответствуют представлению
bull Обеспечивают эффективную параметризацию при решении конкретных задач Более сложные функции создаются из большего числа но более эффективно настраиваемых laquoкирпичиковraquo Пример ndash синтез булевых функций Дерево вентилей эффективнее двухслойной схемы
Фактор - графыВсе методы которые расмотрели ndash не DL Даже деревья классификации Все операции в одном входном словаре
DL можно определить по фактор-графу
Например
bull Еще одна сторона DL - нередко использует невыпуклые функции потерьbull Обучение на основе выпуклых функций не зависит от порядка
предъявления данных для обучения Все определяет асимптотика всего train - набора В алгоритмах DL порядок данных в обучающей выборке может иметь значение
bull Многие решения в DL не доказаны математически и являются успешными эвристиками
bull Большой простор для прикладной математики Может рассматриваться как фактор-граф с группами латентных переменных
bull В настоящее время стал основной технологией в распознавании речи (speech recognition) и машинном зрении (computer vision) начал применяться в обработке текстов (natural language processing)
bull Основная идея ndash применение нелинейного отображения входного набора в более высокоразмерное пространство где многие неразделимые композиции становятся разделимыми а затем объединение композиций по семантической близости
Подход разреженного кодирования
Обобщенная архитектура
bull DL сеть может быть собрана каскадированием и использованием обучения с учителем
Здесь используется forward propagation для обучения
Для настройки коэффициентов используется метод fprof для каждого
Требуется знание градиента энергии
Элементы (kl) матрицы Якобиана
Требуется знание градиента энергии 120597119864120597119882119894 = 120597119864120597119883119894120597119865119894(119883119894minus1119882119894)120597119882119894
ሾ1times 119873119908ሿ= ሾ1times 119873119909ሿlowast[119873119909 times 119873119908] Элементы (kl) матрицы Якобиана
Сводится к рекуррентному соотношению для вычисления градиента 120597119864120597119883119894minus1 = 120597119864120597119883119894120597119865119894(119883119894minus1119882119894)120597119883119894minus1
В итоге
Для вычисления градиента может использоваться метод back propagation
В действительности работают любые архитектуры построения функции Нужно конструировать связи и функции блоков
Язык Torch 7 ndash современный инструмент моделирования и имплементации
Machine Learning with Torch7 (httpcodecogbitscomwikidokuphpid=start)
bull These tutorials were originally designed for the IPAM Summer School on Deep Learning more info herebull This wiki provides multiple tutorials with the overall objective of teaching you how to do machine learning
with Torch7bull Torch7 provides a Matlab-like environment for state-of-the-art machine learning algorithms It is easy to use
and provides a very efficient implementation thanks to an easy and fast scripting language (LuaJIT) and an underlying C implementation
bull These tutorials should be readdone in orderbull Tutorial 1 Setup Basics Getting Startedbull Tutorial 2 Supervised Learningbull Tutorial 3 Unsupervised Learningbull Tutorial 4 Graphical Modelsbull Tutorial 5 Creating New Modulesbull Tutorial 6 Using CUDAbull To follow these tutorials and do the exercises you will need to download the associated code which is hosted
on GitHub on this page In this repository each directory corresponds to a tutorial herebull starttxt middot Last modified 20140204 2246 by clement
Torch 7 является расширением Lua
What is LuaLua is a powerful fast lightweight embeddable scripting languageLua combines simple procedural syntax with powerful data description constructs based on associative arrays and extensible semantics Lua is dynamically typed runs by interpreting bytecode for a register-based virtual machine and has automatic memory management with incremental garbage collection making it ideal for configuration scripting and rapid prototyping
Why choose LuaLua is a proven robust languageLua has been used in many industrial applications (eg Adobes Photoshop Lightroom) with an emphasis on embedded systems (eg the Ginga middleware for digital TV in Brazil) and games (eg World of Warcraft and Angry Birds) Lua is currently the leading scripting language in games Lua has a solid reference manual and there are several books about it Several versions of Lua have been released and used in real applications since its creation in 1993 Lua featured in HOPL III the Third ACM SIGPLAN History of Programming Languages Conference in June 2007 Lua won the Front Line Award 2011 from the Game Developers Magazine
Свертка и архитектура 4-х уровневой сверточной сети
Функциональная структура
Примеры успешного применения сверточных сетей
Диагностика эпилепсии по ЭЭГ
Реализация сверточной сетью
Одна из самых больших сверточных сетейbull Krizhevsky Sutskever Hinton 2012bull 650 000 нейронов 832 000 000 синапсов 60 000000 пареметровbull Использовался backprop на GPUbull Обучающая выборка на материалах 20 летbull Купил Google в январе 2013bull В мае 2013 развернул как сервис Photo Tagging Google+
Пример тэгирования
Пример поиска похожих по изображению
Пример поиска в коллекции изображений по текстовому запросу
Пример laquoоблачногоraquo классификатора изображений
Самообучающиеся нейронные сети на основе минимизации функции энергииbull Применима к сетям с обратными связямиbull Конструирование функции энергии должно обеспечивать
laquoконтрастностьraquo разделения
bull Энергетическая функция может Неформально рассматриваться как отрицательный логарифм плотности вероятности
Y 2=(Y1)2
RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцмана
bull Из DBM cтроится Deep Belief Network (DBN)
bull w mdash вес между нейронами
bull b mdash смещение нейрона
bull s mdash состояние нейрона
Алгоритм обучения Contrastive Divergence (CD)bull w_ij mdash веc между i-ым нейроном Вероятность пар может быть представлена как
bull a_i mdash смещение видимого нейрона
bull b_j mdash смещение скрытого нейрона
bull v_i mdash состояние видимого нейрона
bull h_j mdash состояние скрытого нейрона Полная вероятность состояния видимых нейронов
Основные уравнения адаптации
Алгоритм Хинтона - Contrastive Divergence (CD-k)
1 состояние видимых нейронов приравнивается к входному образу2 выводятся вероятности состояний скрытого слоя3 каждому нейрону скрытого слоя ставится в соответствие состояние laquo1raquo с вероятностью равной его текущему состоянию4 выводятся вероятности видимого слоя на основании скрытого5 если текущая итерация меньше k то возврат к шагу 26 выводятся вероятности состояний скрытого слоя
darch Package for deep architectures and Restricted-Bolzmann-MachinesThe darch package is build on the basis of the code from G E Hinton and R R Salakhutdinov (available under Matlab Code for deep belief nets last visit 01082013) This package is for generating neural networks with many layers (deep architectures) and train them with the method introduced by the publications A fast learning algorithm for deep belief nets (G E Hinton S Osindero Y W Teh) and Reducing the dimensionality of data with neural networks (G E Hinton R R Salakhutdinov) This method includes a pre training with the contrastive divergence method publishing by GE Hinton (2002) and a fine tuning with common known training algorithms like backpropagation or conjugate gradient
bull Version 091bull Imports futilelogger ff methodsbull Published 2014-03-16bull Author Martin Dreesbull Maintainer Martin Drees ltmdrees at studfh-dortmunddegtbull License GPL-2bull URL httpgithubcommaddin79darchbull NeedsCompilation nobull Materials READMEbull CRAN checks darch results
Связь плотности вероятности и энергии
Используется распределение Гиббса
Задача обучения с точки минимизации энергии сети
bull Сконструировать функцию энергии с малыми значениями на обучающей выборке и с большими значениями всюду вне этого множества
bull Первое несложно а второе представляет задачу процесса обучения
Интуитивные соображения
Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decomposition LISTA ndashметоды использующие разреженные коды
Латентная переменная Z =argmin_z Distance[Decoder(Z)Y]+FactorB(Z)MAPminimaize sum of factors
Автоэнкодер (auto encoder) Автоэнкодер представляет собой алгоритм обучения без учителя который использует нейронную сеть и метод обратного распространения ошибки для того чтобы добиться того что входной вектор признаков вызывал отклик сети равный входному вектору те y = x Автоэнкодер пытается построить функцию h(x) = x
Архитекттура ICA моделей
Итеративные алгоритмы с оптимальным разреженным кодированием ISTAFISTA
Самоорганизация данных методами Deep Learning
>
Знакомство с пакетом deepnet
Назначение
Составdbndnntrain - обучение сети с архитектурой DBN (deep belief network)loadmnist - формирование данных из файлов MNISTnnpredict - предсказание новых выборок на обученной нейронной сетиnntest ndash тестирование обученной нейронной сети с возвращением значения ошибкиnntrain ndash обучение одностлойной или многослойной нейронной сети методом backproprbmdown ndash генерирование видимого вектора для скрытых состояний сети RBMrbmtrain ndash обучение сети RBMrbmup ndash извлечение скрытых состояний RBM по известным видимым состояниямsaednntrain ndash обучение нейронной сети с архитектурой stacked autoencoder
Прогнозирование (классификация) нейронной сетью с архитектурой stacked auto encoder
Argumentsbull x matrix of x values for examplesbull y vector or matrix of target values for examplesbull hidden vector for number of units of hidden layersDefault is c(10)bull activationfun activation function of hidden unitCan be sigmlinear or tanhDefault isbull sigm for logistic functionbull learningrate learning rate for gradient descent Default is 08bull momentum momentum for gradient descent Default is 05 bull learningrate_scalebull learning rate will be mutiplied by this scale after every iteration Default is 1 bull numepochs number of iteration for samples Default is 3bull batchsize size of mini-batch Default is 100bull output function of output unit can be sigmlinear or softmax Default is sigmbull sae_output function of autoencoder output unit can be sigmlinear or softmax Defaultbull is linearbull hidden_dropout drop out fraction for hidden layer Default is 0bull visible_dropoutbull drop out fraction for input layer Default is 0
Что такое MNISTbull Смешанный набор данных Национального института стандартов и
технологий (mixed National Institute of Standards and Technology MNIST) был создан исследователями IR в качестве эталона для сравнения различных алгоритмов IR
bull Набор данных состоит всего из 70 000 изображений 60 000 обучающих (используемых для создания модели IR) и 10 000 тестовых (применяемых для оценки точности модели) Каждое изображение MNIST mdash это оцифрованная картинка одной цифры написанной от руки Каждое изображение имеет размер 28 times 28 пикселей Каждое значение пикселя лежит в диапазоне от 0 (представляет белый цвет) до 255 (представляет черный цвет) Промежуточные значения отражают оттенки серого
httpyannlecuncomexdbmnistобучающие и тестовые данные хранятся в двух файлах а не в одном Один файл содержит значения пикселей для изображений а другой mdash метки изображений (0ndash9) Каждый из четырех файлов также содержит заголовочную информацию и все они хранятся в двоичном формате сжатом в формате gziptrain-images-idx3-ubytegz training set images (9912422 bytes)
train-labels-idx1-ubytegz training set labels (28881 bytes)
t10k-images-idx3-ubytegz test set images (1648877 bytes)
t10k-labels-idx1-ubytegz test set labels (4542 bytes)
bull Каждая строка файла представляет собой имидж размера 28 times 28 вектором длины 784 каждый признак ndash значение пиксела в черно-белой шале Первый столбец содержит метку цифры 0ndash9 следующие 2828 столбцов представляют целый имидж и так далее Пример первой строки
Визуализация
bull plotmnist()bull mnistbull paramsbull train$n number of train samplesbull train$x pix of every train sample imagebull train$y label of every train sample imagebull train$yy one-of-c vector of label of train sample imagebull test$n number of test samplesbull test$x pix of every test sample imagebull test$y label of every test sample imagebull test$yy one-of-c vector of label of test sample image
plotmnist()
Распознавание рукописных цифр в deepnet
another way to download the MNIST datasetmnist downloadmnist(range=c(01)global=FALSE)look at MNIST datamnist$train$xmnist$train$ymnist$test$xmnist$test$ytrain of the sae neural networkdnnlt-saednntrain(mnist$train$xmnist$train$yhidden=c(55))test of the sae neural networknntest(dnnmnist$test$xmnist$test$yt=05)
End of slides part 2 (Part 3 - NLP remaining)
Vladimirvkrylovgmailcom
Основы предиктивной аналитики Часть вторая
Применение методов Machine Learning к решению задач аналитики
Дмитрий Ветров кандидат физико-математических наук ру
Методы обучающихся машин для аналитики которые мы рассмотрим
Сначала нужно загрузить несколько пакетов (packages) для поддер
Данные для анализа
Скрипт для генерации
Данные которые мы будем использовать для демо состоят из смес
Так выглядят визуализированные данные сгенерированные скриптом
Разделение данных на обучающие и проверочные является важным эт
K-means алгоритм на пальцах
Обучающаяся машина без учителя Алгоритм K-means
Slide 13
Slide 14
Здесь мы используем заранее известный факт что необходимо кла
Еще одна иллюстрация работы алгоритма K-means
Обучающаяся машина без учителя Алгоритм KNN (Nearest Neighbor)
Как работает алгоритм KNN
knn(train test cl k = 1 l = 0 prob = FALSE useall = TRUE
Slide 20
Результаты кластеризации и зависимость ошибки от числа кластеро
Recursive PartitioningRegression Tree
Метод RP реализует обучение машины строить дерево решений по об
Recursive PartitioningRegression Tree (2)
rpart(formula data weights subset naaction = narpart met
Slide 26
Recursive PartitioningRegression Tree example
Анализ по главным компонентам (Principal Component Analysis PC
Итеративные алгоритмы с оптимальным разреженным кодированием IS
Самоорганизация данных методами Deep Learning
Знакомство с пакетом deepnet
Прогнозирование (классификация) нейронной сетью с архитектурой
Arguments
Архитектура сети SAE
Архитектура с 5Х4 hidden 3 outs
Example
Анализ обучающего набора данных
Параметры SAE сети
Коэффициенты связей
Предсказание обученной сетью
Сравнение обучающей и тестовой выборки
plot3d(xy)
Работаем с пакетом MNIST
httpyannlecuncomexdbmnist
Подготовка к обработке
Slide 118
Визуализация
plotmnist()
Распознавание рукописных цифр в deepnet
End of slides part 2 (Part 3 - NLP remaining)
Словарь для лиц
Выделение объектов заданного класса
Основные архитектуры Deep Learningbull Deep neural networks (DNN)bull Deep belief networks (DBN)bull Convolutional neural networks (CNN)bull Deep Boltzmann Machines (DBM)bull Stacked (Denoising) Auto-Encodersbull Deep Stacking Networksbull Tensor Deep Stacking Networks (T-DSN)bull Spike-and-Slab RBMs (ssRBMs)bull Compound Hierarchical-Deep Modelsbull Deep Coding Networks (DPCN)bull Deep Kernel Machinesbull Deep Q-Networks (2015 г)
Задача классификации распознавания и подобные являются задачей конструирования функции на множестве входных наборов и со значениями в множестве требуемого вида выходных
bull Норбертом Винером было показано что любая функция может быть сколь угодно точно композицией двух (он использовал функции полином Лагранжа и функцию Лагерра)
bull Соответствует двухслойной нейросетиbull Архитектуры Deep Learning соответствуют представлению
bull Обеспечивают эффективную параметризацию при решении конкретных задач Более сложные функции создаются из большего числа но более эффективно настраиваемых laquoкирпичиковraquo Пример ndash синтез булевых функций Дерево вентилей эффективнее двухслойной схемы
Фактор - графыВсе методы которые расмотрели ndash не DL Даже деревья классификации Все операции в одном входном словаре
DL можно определить по фактор-графу
Например
bull Еще одна сторона DL - нередко использует невыпуклые функции потерьbull Обучение на основе выпуклых функций не зависит от порядка
предъявления данных для обучения Все определяет асимптотика всего train - набора В алгоритмах DL порядок данных в обучающей выборке может иметь значение
bull Многие решения в DL не доказаны математически и являются успешными эвристиками
bull Большой простор для прикладной математики Может рассматриваться как фактор-граф с группами латентных переменных
bull В настоящее время стал основной технологией в распознавании речи (speech recognition) и машинном зрении (computer vision) начал применяться в обработке текстов (natural language processing)
bull Основная идея ndash применение нелинейного отображения входного набора в более высокоразмерное пространство где многие неразделимые композиции становятся разделимыми а затем объединение композиций по семантической близости
Подход разреженного кодирования
Обобщенная архитектура
bull DL сеть может быть собрана каскадированием и использованием обучения с учителем
Здесь используется forward propagation для обучения
Для настройки коэффициентов используется метод fprof для каждого
Требуется знание градиента энергии
Элементы (kl) матрицы Якобиана
Требуется знание градиента энергии 120597119864120597119882119894 = 120597119864120597119883119894120597119865119894(119883119894minus1119882119894)120597119882119894
ሾ1times 119873119908ሿ= ሾ1times 119873119909ሿlowast[119873119909 times 119873119908] Элементы (kl) матрицы Якобиана
Сводится к рекуррентному соотношению для вычисления градиента 120597119864120597119883119894minus1 = 120597119864120597119883119894120597119865119894(119883119894minus1119882119894)120597119883119894minus1
В итоге
Для вычисления градиента может использоваться метод back propagation
В действительности работают любые архитектуры построения функции Нужно конструировать связи и функции блоков
Язык Torch 7 ndash современный инструмент моделирования и имплементации
Machine Learning with Torch7 (httpcodecogbitscomwikidokuphpid=start)
bull These tutorials were originally designed for the IPAM Summer School on Deep Learning more info herebull This wiki provides multiple tutorials with the overall objective of teaching you how to do machine learning
with Torch7bull Torch7 provides a Matlab-like environment for state-of-the-art machine learning algorithms It is easy to use
and provides a very efficient implementation thanks to an easy and fast scripting language (LuaJIT) and an underlying C implementation
bull These tutorials should be readdone in orderbull Tutorial 1 Setup Basics Getting Startedbull Tutorial 2 Supervised Learningbull Tutorial 3 Unsupervised Learningbull Tutorial 4 Graphical Modelsbull Tutorial 5 Creating New Modulesbull Tutorial 6 Using CUDAbull To follow these tutorials and do the exercises you will need to download the associated code which is hosted
on GitHub on this page In this repository each directory corresponds to a tutorial herebull starttxt middot Last modified 20140204 2246 by clement
Torch 7 является расширением Lua
What is LuaLua is a powerful fast lightweight embeddable scripting languageLua combines simple procedural syntax with powerful data description constructs based on associative arrays and extensible semantics Lua is dynamically typed runs by interpreting bytecode for a register-based virtual machine and has automatic memory management with incremental garbage collection making it ideal for configuration scripting and rapid prototyping
Why choose LuaLua is a proven robust languageLua has been used in many industrial applications (eg Adobes Photoshop Lightroom) with an emphasis on embedded systems (eg the Ginga middleware for digital TV in Brazil) and games (eg World of Warcraft and Angry Birds) Lua is currently the leading scripting language in games Lua has a solid reference manual and there are several books about it Several versions of Lua have been released and used in real applications since its creation in 1993 Lua featured in HOPL III the Third ACM SIGPLAN History of Programming Languages Conference in June 2007 Lua won the Front Line Award 2011 from the Game Developers Magazine
Свертка и архитектура 4-х уровневой сверточной сети
Функциональная структура
Примеры успешного применения сверточных сетей
Диагностика эпилепсии по ЭЭГ
Реализация сверточной сетью
Одна из самых больших сверточных сетейbull Krizhevsky Sutskever Hinton 2012bull 650 000 нейронов 832 000 000 синапсов 60 000000 пареметровbull Использовался backprop на GPUbull Обучающая выборка на материалах 20 летbull Купил Google в январе 2013bull В мае 2013 развернул как сервис Photo Tagging Google+
Пример тэгирования
Пример поиска похожих по изображению
Пример поиска в коллекции изображений по текстовому запросу
Пример laquoоблачногоraquo классификатора изображений
Самообучающиеся нейронные сети на основе минимизации функции энергииbull Применима к сетям с обратными связямиbull Конструирование функции энергии должно обеспечивать
laquoконтрастностьraquo разделения
bull Энергетическая функция может Неформально рассматриваться как отрицательный логарифм плотности вероятности
Y 2=(Y1)2
RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцмана
bull Из DBM cтроится Deep Belief Network (DBN)
bull w mdash вес между нейронами
bull b mdash смещение нейрона
bull s mdash состояние нейрона
Алгоритм обучения Contrastive Divergence (CD)bull w_ij mdash веc между i-ым нейроном Вероятность пар может быть представлена как
bull a_i mdash смещение видимого нейрона
bull b_j mdash смещение скрытого нейрона
bull v_i mdash состояние видимого нейрона
bull h_j mdash состояние скрытого нейрона Полная вероятность состояния видимых нейронов
Основные уравнения адаптации
Алгоритм Хинтона - Contrastive Divergence (CD-k)
1 состояние видимых нейронов приравнивается к входному образу2 выводятся вероятности состояний скрытого слоя3 каждому нейрону скрытого слоя ставится в соответствие состояние laquo1raquo с вероятностью равной его текущему состоянию4 выводятся вероятности видимого слоя на основании скрытого5 если текущая итерация меньше k то возврат к шагу 26 выводятся вероятности состояний скрытого слоя
darch Package for deep architectures and Restricted-Bolzmann-MachinesThe darch package is build on the basis of the code from G E Hinton and R R Salakhutdinov (available under Matlab Code for deep belief nets last visit 01082013) This package is for generating neural networks with many layers (deep architectures) and train them with the method introduced by the publications A fast learning algorithm for deep belief nets (G E Hinton S Osindero Y W Teh) and Reducing the dimensionality of data with neural networks (G E Hinton R R Salakhutdinov) This method includes a pre training with the contrastive divergence method publishing by GE Hinton (2002) and a fine tuning with common known training algorithms like backpropagation or conjugate gradient
bull Version 091bull Imports futilelogger ff methodsbull Published 2014-03-16bull Author Martin Dreesbull Maintainer Martin Drees ltmdrees at studfh-dortmunddegtbull License GPL-2bull URL httpgithubcommaddin79darchbull NeedsCompilation nobull Materials READMEbull CRAN checks darch results
Связь плотности вероятности и энергии
Используется распределение Гиббса
Задача обучения с точки минимизации энергии сети
bull Сконструировать функцию энергии с малыми значениями на обучающей выборке и с большими значениями всюду вне этого множества
bull Первое несложно а второе представляет задачу процесса обучения
Интуитивные соображения
Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decomposition LISTA ndashметоды использующие разреженные коды
Латентная переменная Z =argmin_z Distance[Decoder(Z)Y]+FactorB(Z)MAPminimaize sum of factors
Автоэнкодер (auto encoder) Автоэнкодер представляет собой алгоритм обучения без учителя который использует нейронную сеть и метод обратного распространения ошибки для того чтобы добиться того что входной вектор признаков вызывал отклик сети равный входному вектору те y = x Автоэнкодер пытается построить функцию h(x) = x
Архитекттура ICA моделей
Итеративные алгоритмы с оптимальным разреженным кодированием ISTAFISTA
Самоорганизация данных методами Deep Learning
>
Знакомство с пакетом deepnet
Назначение
Составdbndnntrain - обучение сети с архитектурой DBN (deep belief network)loadmnist - формирование данных из файлов MNISTnnpredict - предсказание новых выборок на обученной нейронной сетиnntest ndash тестирование обученной нейронной сети с возвращением значения ошибкиnntrain ndash обучение одностлойной или многослойной нейронной сети методом backproprbmdown ndash генерирование видимого вектора для скрытых состояний сети RBMrbmtrain ndash обучение сети RBMrbmup ndash извлечение скрытых состояний RBM по известным видимым состояниямsaednntrain ndash обучение нейронной сети с архитектурой stacked autoencoder
Прогнозирование (классификация) нейронной сетью с архитектурой stacked auto encoder
Argumentsbull x matrix of x values for examplesbull y vector or matrix of target values for examplesbull hidden vector for number of units of hidden layersDefault is c(10)bull activationfun activation function of hidden unitCan be sigmlinear or tanhDefault isbull sigm for logistic functionbull learningrate learning rate for gradient descent Default is 08bull momentum momentum for gradient descent Default is 05 bull learningrate_scalebull learning rate will be mutiplied by this scale after every iteration Default is 1 bull numepochs number of iteration for samples Default is 3bull batchsize size of mini-batch Default is 100bull output function of output unit can be sigmlinear or softmax Default is sigmbull sae_output function of autoencoder output unit can be sigmlinear or softmax Defaultbull is linearbull hidden_dropout drop out fraction for hidden layer Default is 0bull visible_dropoutbull drop out fraction for input layer Default is 0
Что такое MNISTbull Смешанный набор данных Национального института стандартов и
технологий (mixed National Institute of Standards and Technology MNIST) был создан исследователями IR в качестве эталона для сравнения различных алгоритмов IR
bull Набор данных состоит всего из 70 000 изображений 60 000 обучающих (используемых для создания модели IR) и 10 000 тестовых (применяемых для оценки точности модели) Каждое изображение MNIST mdash это оцифрованная картинка одной цифры написанной от руки Каждое изображение имеет размер 28 times 28 пикселей Каждое значение пикселя лежит в диапазоне от 0 (представляет белый цвет) до 255 (представляет черный цвет) Промежуточные значения отражают оттенки серого
httpyannlecuncomexdbmnistобучающие и тестовые данные хранятся в двух файлах а не в одном Один файл содержит значения пикселей для изображений а другой mdash метки изображений (0ndash9) Каждый из четырех файлов также содержит заголовочную информацию и все они хранятся в двоичном формате сжатом в формате gziptrain-images-idx3-ubytegz training set images (9912422 bytes)
train-labels-idx1-ubytegz training set labels (28881 bytes)
t10k-images-idx3-ubytegz test set images (1648877 bytes)
t10k-labels-idx1-ubytegz test set labels (4542 bytes)
bull Каждая строка файла представляет собой имидж размера 28 times 28 вектором длины 784 каждый признак ndash значение пиксела в черно-белой шале Первый столбец содержит метку цифры 0ndash9 следующие 2828 столбцов представляют целый имидж и так далее Пример первой строки
Визуализация
bull plotmnist()bull mnistbull paramsbull train$n number of train samplesbull train$x pix of every train sample imagebull train$y label of every train sample imagebull train$yy one-of-c vector of label of train sample imagebull test$n number of test samplesbull test$x pix of every test sample imagebull test$y label of every test sample imagebull test$yy one-of-c vector of label of test sample image
plotmnist()
Распознавание рукописных цифр в deepnet
another way to download the MNIST datasetmnist downloadmnist(range=c(01)global=FALSE)look at MNIST datamnist$train$xmnist$train$ymnist$test$xmnist$test$ytrain of the sae neural networkdnnlt-saednntrain(mnist$train$xmnist$train$yhidden=c(55))test of the sae neural networknntest(dnnmnist$test$xmnist$test$yt=05)
End of slides part 2 (Part 3 - NLP remaining)
Vladimirvkrylovgmailcom
Основы предиктивной аналитики Часть вторая
Применение методов Machine Learning к решению задач аналитики
Дмитрий Ветров кандидат физико-математических наук ру
Методы обучающихся машин для аналитики которые мы рассмотрим
Сначала нужно загрузить несколько пакетов (packages) для поддер
Данные для анализа
Скрипт для генерации
Данные которые мы будем использовать для демо состоят из смес
Так выглядят визуализированные данные сгенерированные скриптом
Разделение данных на обучающие и проверочные является важным эт
K-means алгоритм на пальцах
Обучающаяся машина без учителя Алгоритм K-means
Slide 13
Slide 14
Здесь мы используем заранее известный факт что необходимо кла
Еще одна иллюстрация работы алгоритма K-means
Обучающаяся машина без учителя Алгоритм KNN (Nearest Neighbor)
Как работает алгоритм KNN
knn(train test cl k = 1 l = 0 prob = FALSE useall = TRUE
Slide 20
Результаты кластеризации и зависимость ошибки от числа кластеро
Recursive PartitioningRegression Tree
Метод RP реализует обучение машины строить дерево решений по об
Recursive PartitioningRegression Tree (2)
rpart(formula data weights subset naaction = narpart met
Slide 26
Recursive PartitioningRegression Tree example
Анализ по главным компонентам (Principal Component Analysis PC
Итеративные алгоритмы с оптимальным разреженным кодированием IS
Самоорганизация данных методами Deep Learning
Знакомство с пакетом deepnet
Прогнозирование (классификация) нейронной сетью с архитектурой
Arguments
Архитектура сети SAE
Архитектура с 5Х4 hidden 3 outs
Example
Анализ обучающего набора данных
Параметры SAE сети
Коэффициенты связей
Предсказание обученной сетью
Сравнение обучающей и тестовой выборки
plot3d(xy)
Работаем с пакетом MNIST
httpyannlecuncomexdbmnist
Подготовка к обработке
Slide 118
Визуализация
plotmnist()
Распознавание рукописных цифр в deepnet
End of slides part 2 (Part 3 - NLP remaining)
Выделение объектов заданного класса
Основные архитектуры Deep Learningbull Deep neural networks (DNN)bull Deep belief networks (DBN)bull Convolutional neural networks (CNN)bull Deep Boltzmann Machines (DBM)bull Stacked (Denoising) Auto-Encodersbull Deep Stacking Networksbull Tensor Deep Stacking Networks (T-DSN)bull Spike-and-Slab RBMs (ssRBMs)bull Compound Hierarchical-Deep Modelsbull Deep Coding Networks (DPCN)bull Deep Kernel Machinesbull Deep Q-Networks (2015 г)
Задача классификации распознавания и подобные являются задачей конструирования функции на множестве входных наборов и со значениями в множестве требуемого вида выходных
bull Норбертом Винером было показано что любая функция может быть сколь угодно точно композицией двух (он использовал функции полином Лагранжа и функцию Лагерра)
bull Соответствует двухслойной нейросетиbull Архитектуры Deep Learning соответствуют представлению
bull Обеспечивают эффективную параметризацию при решении конкретных задач Более сложные функции создаются из большего числа но более эффективно настраиваемых laquoкирпичиковraquo Пример ndash синтез булевых функций Дерево вентилей эффективнее двухслойной схемы
Фактор - графыВсе методы которые расмотрели ndash не DL Даже деревья классификации Все операции в одном входном словаре
DL можно определить по фактор-графу
Например
bull Еще одна сторона DL - нередко использует невыпуклые функции потерьbull Обучение на основе выпуклых функций не зависит от порядка
предъявления данных для обучения Все определяет асимптотика всего train - набора В алгоритмах DL порядок данных в обучающей выборке может иметь значение
bull Многие решения в DL не доказаны математически и являются успешными эвристиками
bull Большой простор для прикладной математики Может рассматриваться как фактор-граф с группами латентных переменных
bull В настоящее время стал основной технологией в распознавании речи (speech recognition) и машинном зрении (computer vision) начал применяться в обработке текстов (natural language processing)
bull Основная идея ndash применение нелинейного отображения входного набора в более высокоразмерное пространство где многие неразделимые композиции становятся разделимыми а затем объединение композиций по семантической близости
Подход разреженного кодирования
Обобщенная архитектура
bull DL сеть может быть собрана каскадированием и использованием обучения с учителем
Здесь используется forward propagation для обучения
Для настройки коэффициентов используется метод fprof для каждого
Требуется знание градиента энергии
Элементы (kl) матрицы Якобиана
Требуется знание градиента энергии 120597119864120597119882119894 = 120597119864120597119883119894120597119865119894(119883119894minus1119882119894)120597119882119894
ሾ1times 119873119908ሿ= ሾ1times 119873119909ሿlowast[119873119909 times 119873119908] Элементы (kl) матрицы Якобиана
Сводится к рекуррентному соотношению для вычисления градиента 120597119864120597119883119894minus1 = 120597119864120597119883119894120597119865119894(119883119894minus1119882119894)120597119883119894minus1
В итоге
Для вычисления градиента может использоваться метод back propagation
В действительности работают любые архитектуры построения функции Нужно конструировать связи и функции блоков
Язык Torch 7 ndash современный инструмент моделирования и имплементации
Machine Learning with Torch7 (httpcodecogbitscomwikidokuphpid=start)
bull These tutorials were originally designed for the IPAM Summer School on Deep Learning more info herebull This wiki provides multiple tutorials with the overall objective of teaching you how to do machine learning
with Torch7bull Torch7 provides a Matlab-like environment for state-of-the-art machine learning algorithms It is easy to use
and provides a very efficient implementation thanks to an easy and fast scripting language (LuaJIT) and an underlying C implementation
bull These tutorials should be readdone in orderbull Tutorial 1 Setup Basics Getting Startedbull Tutorial 2 Supervised Learningbull Tutorial 3 Unsupervised Learningbull Tutorial 4 Graphical Modelsbull Tutorial 5 Creating New Modulesbull Tutorial 6 Using CUDAbull To follow these tutorials and do the exercises you will need to download the associated code which is hosted
on GitHub on this page In this repository each directory corresponds to a tutorial herebull starttxt middot Last modified 20140204 2246 by clement
Torch 7 является расширением Lua
What is LuaLua is a powerful fast lightweight embeddable scripting languageLua combines simple procedural syntax with powerful data description constructs based on associative arrays and extensible semantics Lua is dynamically typed runs by interpreting bytecode for a register-based virtual machine and has automatic memory management with incremental garbage collection making it ideal for configuration scripting and rapid prototyping
Why choose LuaLua is a proven robust languageLua has been used in many industrial applications (eg Adobes Photoshop Lightroom) with an emphasis on embedded systems (eg the Ginga middleware for digital TV in Brazil) and games (eg World of Warcraft and Angry Birds) Lua is currently the leading scripting language in games Lua has a solid reference manual and there are several books about it Several versions of Lua have been released and used in real applications since its creation in 1993 Lua featured in HOPL III the Third ACM SIGPLAN History of Programming Languages Conference in June 2007 Lua won the Front Line Award 2011 from the Game Developers Magazine
Свертка и архитектура 4-х уровневой сверточной сети
Функциональная структура
Примеры успешного применения сверточных сетей
Диагностика эпилепсии по ЭЭГ
Реализация сверточной сетью
Одна из самых больших сверточных сетейbull Krizhevsky Sutskever Hinton 2012bull 650 000 нейронов 832 000 000 синапсов 60 000000 пареметровbull Использовался backprop на GPUbull Обучающая выборка на материалах 20 летbull Купил Google в январе 2013bull В мае 2013 развернул как сервис Photo Tagging Google+
Пример тэгирования
Пример поиска похожих по изображению
Пример поиска в коллекции изображений по текстовому запросу
Пример laquoоблачногоraquo классификатора изображений
Самообучающиеся нейронные сети на основе минимизации функции энергииbull Применима к сетям с обратными связямиbull Конструирование функции энергии должно обеспечивать
laquoконтрастностьraquo разделения
bull Энергетическая функция может Неформально рассматриваться как отрицательный логарифм плотности вероятности
Y 2=(Y1)2
RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцмана
bull Из DBM cтроится Deep Belief Network (DBN)
bull w mdash вес между нейронами
bull b mdash смещение нейрона
bull s mdash состояние нейрона
Алгоритм обучения Contrastive Divergence (CD)bull w_ij mdash веc между i-ым нейроном Вероятность пар может быть представлена как
bull a_i mdash смещение видимого нейрона
bull b_j mdash смещение скрытого нейрона
bull v_i mdash состояние видимого нейрона
bull h_j mdash состояние скрытого нейрона Полная вероятность состояния видимых нейронов
Основные уравнения адаптации
Алгоритм Хинтона - Contrastive Divergence (CD-k)
1 состояние видимых нейронов приравнивается к входному образу2 выводятся вероятности состояний скрытого слоя3 каждому нейрону скрытого слоя ставится в соответствие состояние laquo1raquo с вероятностью равной его текущему состоянию4 выводятся вероятности видимого слоя на основании скрытого5 если текущая итерация меньше k то возврат к шагу 26 выводятся вероятности состояний скрытого слоя
darch Package for deep architectures and Restricted-Bolzmann-MachinesThe darch package is build on the basis of the code from G E Hinton and R R Salakhutdinov (available under Matlab Code for deep belief nets last visit 01082013) This package is for generating neural networks with many layers (deep architectures) and train them with the method introduced by the publications A fast learning algorithm for deep belief nets (G E Hinton S Osindero Y W Teh) and Reducing the dimensionality of data with neural networks (G E Hinton R R Salakhutdinov) This method includes a pre training with the contrastive divergence method publishing by GE Hinton (2002) and a fine tuning with common known training algorithms like backpropagation or conjugate gradient
bull Version 091bull Imports futilelogger ff methodsbull Published 2014-03-16bull Author Martin Dreesbull Maintainer Martin Drees ltmdrees at studfh-dortmunddegtbull License GPL-2bull URL httpgithubcommaddin79darchbull NeedsCompilation nobull Materials READMEbull CRAN checks darch results
Связь плотности вероятности и энергии
Используется распределение Гиббса
Задача обучения с точки минимизации энергии сети
bull Сконструировать функцию энергии с малыми значениями на обучающей выборке и с большими значениями всюду вне этого множества
bull Первое несложно а второе представляет задачу процесса обучения
Интуитивные соображения
Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decomposition LISTA ndashметоды использующие разреженные коды
Латентная переменная Z =argmin_z Distance[Decoder(Z)Y]+FactorB(Z)MAPminimaize sum of factors
Автоэнкодер (auto encoder) Автоэнкодер представляет собой алгоритм обучения без учителя который использует нейронную сеть и метод обратного распространения ошибки для того чтобы добиться того что входной вектор признаков вызывал отклик сети равный входному вектору те y = x Автоэнкодер пытается построить функцию h(x) = x
Архитекттура ICA моделей
Итеративные алгоритмы с оптимальным разреженным кодированием ISTAFISTA
Самоорганизация данных методами Deep Learning
>
Знакомство с пакетом deepnet
Назначение
Составdbndnntrain - обучение сети с архитектурой DBN (deep belief network)loadmnist - формирование данных из файлов MNISTnnpredict - предсказание новых выборок на обученной нейронной сетиnntest ndash тестирование обученной нейронной сети с возвращением значения ошибкиnntrain ndash обучение одностлойной или многослойной нейронной сети методом backproprbmdown ndash генерирование видимого вектора для скрытых состояний сети RBMrbmtrain ndash обучение сети RBMrbmup ndash извлечение скрытых состояний RBM по известным видимым состояниямsaednntrain ndash обучение нейронной сети с архитектурой stacked autoencoder
Прогнозирование (классификация) нейронной сетью с архитектурой stacked auto encoder
Argumentsbull x matrix of x values for examplesbull y vector or matrix of target values for examplesbull hidden vector for number of units of hidden layersDefault is c(10)bull activationfun activation function of hidden unitCan be sigmlinear or tanhDefault isbull sigm for logistic functionbull learningrate learning rate for gradient descent Default is 08bull momentum momentum for gradient descent Default is 05 bull learningrate_scalebull learning rate will be mutiplied by this scale after every iteration Default is 1 bull numepochs number of iteration for samples Default is 3bull batchsize size of mini-batch Default is 100bull output function of output unit can be sigmlinear or softmax Default is sigmbull sae_output function of autoencoder output unit can be sigmlinear or softmax Defaultbull is linearbull hidden_dropout drop out fraction for hidden layer Default is 0bull visible_dropoutbull drop out fraction for input layer Default is 0
Что такое MNISTbull Смешанный набор данных Национального института стандартов и
технологий (mixed National Institute of Standards and Technology MNIST) был создан исследователями IR в качестве эталона для сравнения различных алгоритмов IR
bull Набор данных состоит всего из 70 000 изображений 60 000 обучающих (используемых для создания модели IR) и 10 000 тестовых (применяемых для оценки точности модели) Каждое изображение MNIST mdash это оцифрованная картинка одной цифры написанной от руки Каждое изображение имеет размер 28 times 28 пикселей Каждое значение пикселя лежит в диапазоне от 0 (представляет белый цвет) до 255 (представляет черный цвет) Промежуточные значения отражают оттенки серого
httpyannlecuncomexdbmnistобучающие и тестовые данные хранятся в двух файлах а не в одном Один файл содержит значения пикселей для изображений а другой mdash метки изображений (0ndash9) Каждый из четырех файлов также содержит заголовочную информацию и все они хранятся в двоичном формате сжатом в формате gziptrain-images-idx3-ubytegz training set images (9912422 bytes)
train-labels-idx1-ubytegz training set labels (28881 bytes)
t10k-images-idx3-ubytegz test set images (1648877 bytes)
t10k-labels-idx1-ubytegz test set labels (4542 bytes)
bull Каждая строка файла представляет собой имидж размера 28 times 28 вектором длины 784 каждый признак ndash значение пиксела в черно-белой шале Первый столбец содержит метку цифры 0ndash9 следующие 2828 столбцов представляют целый имидж и так далее Пример первой строки
Визуализация
bull plotmnist()bull mnistbull paramsbull train$n number of train samplesbull train$x pix of every train sample imagebull train$y label of every train sample imagebull train$yy one-of-c vector of label of train sample imagebull test$n number of test samplesbull test$x pix of every test sample imagebull test$y label of every test sample imagebull test$yy one-of-c vector of label of test sample image
plotmnist()
Распознавание рукописных цифр в deepnet
another way to download the MNIST datasetmnist downloadmnist(range=c(01)global=FALSE)look at MNIST datamnist$train$xmnist$train$ymnist$test$xmnist$test$ytrain of the sae neural networkdnnlt-saednntrain(mnist$train$xmnist$train$yhidden=c(55))test of the sae neural networknntest(dnnmnist$test$xmnist$test$yt=05)
End of slides part 2 (Part 3 - NLP remaining)
Vladimirvkrylovgmailcom
Основы предиктивной аналитики Часть вторая
Применение методов Machine Learning к решению задач аналитики
Дмитрий Ветров кандидат физико-математических наук ру
Методы обучающихся машин для аналитики которые мы рассмотрим
Сначала нужно загрузить несколько пакетов (packages) для поддер
Данные для анализа
Скрипт для генерации
Данные которые мы будем использовать для демо состоят из смес
Так выглядят визуализированные данные сгенерированные скриптом
Разделение данных на обучающие и проверочные является важным эт
K-means алгоритм на пальцах
Обучающаяся машина без учителя Алгоритм K-means
Slide 13
Slide 14
Здесь мы используем заранее известный факт что необходимо кла
Еще одна иллюстрация работы алгоритма K-means
Обучающаяся машина без учителя Алгоритм KNN (Nearest Neighbor)
Как работает алгоритм KNN
knn(train test cl k = 1 l = 0 prob = FALSE useall = TRUE
Slide 20
Результаты кластеризации и зависимость ошибки от числа кластеро
Recursive PartitioningRegression Tree
Метод RP реализует обучение машины строить дерево решений по об
Recursive PartitioningRegression Tree (2)
rpart(formula data weights subset naaction = narpart met
Slide 26
Recursive PartitioningRegression Tree example
Анализ по главным компонентам (Principal Component Analysis PC
Итеративные алгоритмы с оптимальным разреженным кодированием IS
Самоорганизация данных методами Deep Learning
Знакомство с пакетом deepnet
Прогнозирование (классификация) нейронной сетью с архитектурой
Arguments
Архитектура сети SAE
Архитектура с 5Х4 hidden 3 outs
Example
Анализ обучающего набора данных
Параметры SAE сети
Коэффициенты связей
Предсказание обученной сетью
Сравнение обучающей и тестовой выборки
plot3d(xy)
Работаем с пакетом MNIST
httpyannlecuncomexdbmnist
Подготовка к обработке
Slide 118
Визуализация
plotmnist()
Распознавание рукописных цифр в deepnet
End of slides part 2 (Part 3 - NLP remaining)
Основные архитектуры Deep Learningbull Deep neural networks (DNN)bull Deep belief networks (DBN)bull Convolutional neural networks (CNN)bull Deep Boltzmann Machines (DBM)bull Stacked (Denoising) Auto-Encodersbull Deep Stacking Networksbull Tensor Deep Stacking Networks (T-DSN)bull Spike-and-Slab RBMs (ssRBMs)bull Compound Hierarchical-Deep Modelsbull Deep Coding Networks (DPCN)bull Deep Kernel Machinesbull Deep Q-Networks (2015 г)
Задача классификации распознавания и подобные являются задачей конструирования функции на множестве входных наборов и со значениями в множестве требуемого вида выходных
bull Норбертом Винером было показано что любая функция может быть сколь угодно точно композицией двух (он использовал функции полином Лагранжа и функцию Лагерра)
bull Соответствует двухслойной нейросетиbull Архитектуры Deep Learning соответствуют представлению
bull Обеспечивают эффективную параметризацию при решении конкретных задач Более сложные функции создаются из большего числа но более эффективно настраиваемых laquoкирпичиковraquo Пример ndash синтез булевых функций Дерево вентилей эффективнее двухслойной схемы
Фактор - графыВсе методы которые расмотрели ndash не DL Даже деревья классификации Все операции в одном входном словаре
DL можно определить по фактор-графу
Например
bull Еще одна сторона DL - нередко использует невыпуклые функции потерьbull Обучение на основе выпуклых функций не зависит от порядка
предъявления данных для обучения Все определяет асимптотика всего train - набора В алгоритмах DL порядок данных в обучающей выборке может иметь значение
bull Многие решения в DL не доказаны математически и являются успешными эвристиками
bull Большой простор для прикладной математики Может рассматриваться как фактор-граф с группами латентных переменных
bull В настоящее время стал основной технологией в распознавании речи (speech recognition) и машинном зрении (computer vision) начал применяться в обработке текстов (natural language processing)
bull Основная идея ndash применение нелинейного отображения входного набора в более высокоразмерное пространство где многие неразделимые композиции становятся разделимыми а затем объединение композиций по семантической близости
Подход разреженного кодирования
Обобщенная архитектура
bull DL сеть может быть собрана каскадированием и использованием обучения с учителем
Здесь используется forward propagation для обучения
Для настройки коэффициентов используется метод fprof для каждого
Требуется знание градиента энергии
Элементы (kl) матрицы Якобиана
Требуется знание градиента энергии 120597119864120597119882119894 = 120597119864120597119883119894120597119865119894(119883119894minus1119882119894)120597119882119894
ሾ1times 119873119908ሿ= ሾ1times 119873119909ሿlowast[119873119909 times 119873119908] Элементы (kl) матрицы Якобиана
Сводится к рекуррентному соотношению для вычисления градиента 120597119864120597119883119894minus1 = 120597119864120597119883119894120597119865119894(119883119894minus1119882119894)120597119883119894minus1
В итоге
Для вычисления градиента может использоваться метод back propagation
В действительности работают любые архитектуры построения функции Нужно конструировать связи и функции блоков
Язык Torch 7 ndash современный инструмент моделирования и имплементации
Machine Learning with Torch7 (httpcodecogbitscomwikidokuphpid=start)
bull These tutorials were originally designed for the IPAM Summer School on Deep Learning more info herebull This wiki provides multiple tutorials with the overall objective of teaching you how to do machine learning
with Torch7bull Torch7 provides a Matlab-like environment for state-of-the-art machine learning algorithms It is easy to use
and provides a very efficient implementation thanks to an easy and fast scripting language (LuaJIT) and an underlying C implementation
bull These tutorials should be readdone in orderbull Tutorial 1 Setup Basics Getting Startedbull Tutorial 2 Supervised Learningbull Tutorial 3 Unsupervised Learningbull Tutorial 4 Graphical Modelsbull Tutorial 5 Creating New Modulesbull Tutorial 6 Using CUDAbull To follow these tutorials and do the exercises you will need to download the associated code which is hosted
on GitHub on this page In this repository each directory corresponds to a tutorial herebull starttxt middot Last modified 20140204 2246 by clement
Torch 7 является расширением Lua
What is LuaLua is a powerful fast lightweight embeddable scripting languageLua combines simple procedural syntax with powerful data description constructs based on associative arrays and extensible semantics Lua is dynamically typed runs by interpreting bytecode for a register-based virtual machine and has automatic memory management with incremental garbage collection making it ideal for configuration scripting and rapid prototyping
Why choose LuaLua is a proven robust languageLua has been used in many industrial applications (eg Adobes Photoshop Lightroom) with an emphasis on embedded systems (eg the Ginga middleware for digital TV in Brazil) and games (eg World of Warcraft and Angry Birds) Lua is currently the leading scripting language in games Lua has a solid reference manual and there are several books about it Several versions of Lua have been released and used in real applications since its creation in 1993 Lua featured in HOPL III the Third ACM SIGPLAN History of Programming Languages Conference in June 2007 Lua won the Front Line Award 2011 from the Game Developers Magazine
Свертка и архитектура 4-х уровневой сверточной сети
Функциональная структура
Примеры успешного применения сверточных сетей
Диагностика эпилепсии по ЭЭГ
Реализация сверточной сетью
Одна из самых больших сверточных сетейbull Krizhevsky Sutskever Hinton 2012bull 650 000 нейронов 832 000 000 синапсов 60 000000 пареметровbull Использовался backprop на GPUbull Обучающая выборка на материалах 20 летbull Купил Google в январе 2013bull В мае 2013 развернул как сервис Photo Tagging Google+
Пример тэгирования
Пример поиска похожих по изображению
Пример поиска в коллекции изображений по текстовому запросу
Пример laquoоблачногоraquo классификатора изображений
Самообучающиеся нейронные сети на основе минимизации функции энергииbull Применима к сетям с обратными связямиbull Конструирование функции энергии должно обеспечивать
laquoконтрастностьraquo разделения
bull Энергетическая функция может Неформально рассматриваться как отрицательный логарифм плотности вероятности
Y 2=(Y1)2
RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцмана
bull Из DBM cтроится Deep Belief Network (DBN)
bull w mdash вес между нейронами
bull b mdash смещение нейрона
bull s mdash состояние нейрона
Алгоритм обучения Contrastive Divergence (CD)bull w_ij mdash веc между i-ым нейроном Вероятность пар может быть представлена как
bull a_i mdash смещение видимого нейрона
bull b_j mdash смещение скрытого нейрона
bull v_i mdash состояние видимого нейрона
bull h_j mdash состояние скрытого нейрона Полная вероятность состояния видимых нейронов
Основные уравнения адаптации
Алгоритм Хинтона - Contrastive Divergence (CD-k)
1 состояние видимых нейронов приравнивается к входному образу2 выводятся вероятности состояний скрытого слоя3 каждому нейрону скрытого слоя ставится в соответствие состояние laquo1raquo с вероятностью равной его текущему состоянию4 выводятся вероятности видимого слоя на основании скрытого5 если текущая итерация меньше k то возврат к шагу 26 выводятся вероятности состояний скрытого слоя
darch Package for deep architectures and Restricted-Bolzmann-MachinesThe darch package is build on the basis of the code from G E Hinton and R R Salakhutdinov (available under Matlab Code for deep belief nets last visit 01082013) This package is for generating neural networks with many layers (deep architectures) and train them with the method introduced by the publications A fast learning algorithm for deep belief nets (G E Hinton S Osindero Y W Teh) and Reducing the dimensionality of data with neural networks (G E Hinton R R Salakhutdinov) This method includes a pre training with the contrastive divergence method publishing by GE Hinton (2002) and a fine tuning with common known training algorithms like backpropagation or conjugate gradient
bull Version 091bull Imports futilelogger ff methodsbull Published 2014-03-16bull Author Martin Dreesbull Maintainer Martin Drees ltmdrees at studfh-dortmunddegtbull License GPL-2bull URL httpgithubcommaddin79darchbull NeedsCompilation nobull Materials READMEbull CRAN checks darch results
Связь плотности вероятности и энергии
Используется распределение Гиббса
Задача обучения с точки минимизации энергии сети
bull Сконструировать функцию энергии с малыми значениями на обучающей выборке и с большими значениями всюду вне этого множества
bull Первое несложно а второе представляет задачу процесса обучения
Интуитивные соображения
Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decomposition LISTA ndashметоды использующие разреженные коды
Латентная переменная Z =argmin_z Distance[Decoder(Z)Y]+FactorB(Z)MAPminimaize sum of factors
Автоэнкодер (auto encoder) Автоэнкодер представляет собой алгоритм обучения без учителя который использует нейронную сеть и метод обратного распространения ошибки для того чтобы добиться того что входной вектор признаков вызывал отклик сети равный входному вектору те y = x Автоэнкодер пытается построить функцию h(x) = x
Архитекттура ICA моделей
Итеративные алгоритмы с оптимальным разреженным кодированием ISTAFISTA
Самоорганизация данных методами Deep Learning
>
Знакомство с пакетом deepnet
Назначение
Составdbndnntrain - обучение сети с архитектурой DBN (deep belief network)loadmnist - формирование данных из файлов MNISTnnpredict - предсказание новых выборок на обученной нейронной сетиnntest ndash тестирование обученной нейронной сети с возвращением значения ошибкиnntrain ndash обучение одностлойной или многослойной нейронной сети методом backproprbmdown ndash генерирование видимого вектора для скрытых состояний сети RBMrbmtrain ndash обучение сети RBMrbmup ndash извлечение скрытых состояний RBM по известным видимым состояниямsaednntrain ndash обучение нейронной сети с архитектурой stacked autoencoder
Прогнозирование (классификация) нейронной сетью с архитектурой stacked auto encoder
Argumentsbull x matrix of x values for examplesbull y vector or matrix of target values for examplesbull hidden vector for number of units of hidden layersDefault is c(10)bull activationfun activation function of hidden unitCan be sigmlinear or tanhDefault isbull sigm for logistic functionbull learningrate learning rate for gradient descent Default is 08bull momentum momentum for gradient descent Default is 05 bull learningrate_scalebull learning rate will be mutiplied by this scale after every iteration Default is 1 bull numepochs number of iteration for samples Default is 3bull batchsize size of mini-batch Default is 100bull output function of output unit can be sigmlinear or softmax Default is sigmbull sae_output function of autoencoder output unit can be sigmlinear or softmax Defaultbull is linearbull hidden_dropout drop out fraction for hidden layer Default is 0bull visible_dropoutbull drop out fraction for input layer Default is 0
Что такое MNISTbull Смешанный набор данных Национального института стандартов и
технологий (mixed National Institute of Standards and Technology MNIST) был создан исследователями IR в качестве эталона для сравнения различных алгоритмов IR
bull Набор данных состоит всего из 70 000 изображений 60 000 обучающих (используемых для создания модели IR) и 10 000 тестовых (применяемых для оценки точности модели) Каждое изображение MNIST mdash это оцифрованная картинка одной цифры написанной от руки Каждое изображение имеет размер 28 times 28 пикселей Каждое значение пикселя лежит в диапазоне от 0 (представляет белый цвет) до 255 (представляет черный цвет) Промежуточные значения отражают оттенки серого
httpyannlecuncomexdbmnistобучающие и тестовые данные хранятся в двух файлах а не в одном Один файл содержит значения пикселей для изображений а другой mdash метки изображений (0ndash9) Каждый из четырех файлов также содержит заголовочную информацию и все они хранятся в двоичном формате сжатом в формате gziptrain-images-idx3-ubytegz training set images (9912422 bytes)
train-labels-idx1-ubytegz training set labels (28881 bytes)
t10k-images-idx3-ubytegz test set images (1648877 bytes)
t10k-labels-idx1-ubytegz test set labels (4542 bytes)
bull Каждая строка файла представляет собой имидж размера 28 times 28 вектором длины 784 каждый признак ndash значение пиксела в черно-белой шале Первый столбец содержит метку цифры 0ndash9 следующие 2828 столбцов представляют целый имидж и так далее Пример первой строки
Визуализация
bull plotmnist()bull mnistbull paramsbull train$n number of train samplesbull train$x pix of every train sample imagebull train$y label of every train sample imagebull train$yy one-of-c vector of label of train sample imagebull test$n number of test samplesbull test$x pix of every test sample imagebull test$y label of every test sample imagebull test$yy one-of-c vector of label of test sample image
plotmnist()
Распознавание рукописных цифр в deepnet
another way to download the MNIST datasetmnist downloadmnist(range=c(01)global=FALSE)look at MNIST datamnist$train$xmnist$train$ymnist$test$xmnist$test$ytrain of the sae neural networkdnnlt-saednntrain(mnist$train$xmnist$train$yhidden=c(55))test of the sae neural networknntest(dnnmnist$test$xmnist$test$yt=05)
End of slides part 2 (Part 3 - NLP remaining)
Vladimirvkrylovgmailcom
Основы предиктивной аналитики Часть вторая
Применение методов Machine Learning к решению задач аналитики
Дмитрий Ветров кандидат физико-математических наук ру
Методы обучающихся машин для аналитики которые мы рассмотрим
Сначала нужно загрузить несколько пакетов (packages) для поддер
Данные для анализа
Скрипт для генерации
Данные которые мы будем использовать для демо состоят из смес
Так выглядят визуализированные данные сгенерированные скриптом
Разделение данных на обучающие и проверочные является важным эт
K-means алгоритм на пальцах
Обучающаяся машина без учителя Алгоритм K-means
Slide 13
Slide 14
Здесь мы используем заранее известный факт что необходимо кла
Еще одна иллюстрация работы алгоритма K-means
Обучающаяся машина без учителя Алгоритм KNN (Nearest Neighbor)
Как работает алгоритм KNN
knn(train test cl k = 1 l = 0 prob = FALSE useall = TRUE
Slide 20
Результаты кластеризации и зависимость ошибки от числа кластеро
Recursive PartitioningRegression Tree
Метод RP реализует обучение машины строить дерево решений по об
Recursive PartitioningRegression Tree (2)
rpart(formula data weights subset naaction = narpart met
Slide 26
Recursive PartitioningRegression Tree example
Анализ по главным компонентам (Principal Component Analysis PC
Итеративные алгоритмы с оптимальным разреженным кодированием IS
Самоорганизация данных методами Deep Learning
Знакомство с пакетом deepnet
Прогнозирование (классификация) нейронной сетью с архитектурой
Arguments
Архитектура сети SAE
Архитектура с 5Х4 hidden 3 outs
Example
Анализ обучающего набора данных
Параметры SAE сети
Коэффициенты связей
Предсказание обученной сетью
Сравнение обучающей и тестовой выборки
plot3d(xy)
Работаем с пакетом MNIST
httpyannlecuncomexdbmnist
Подготовка к обработке
Slide 118
Визуализация
plotmnist()
Распознавание рукописных цифр в deepnet
End of slides part 2 (Part 3 - NLP remaining)
Задача классификации распознавания и подобные являются задачей конструирования функции на множестве входных наборов и со значениями в множестве требуемого вида выходных
bull Норбертом Винером было показано что любая функция может быть сколь угодно точно композицией двух (он использовал функции полином Лагранжа и функцию Лагерра)
bull Соответствует двухслойной нейросетиbull Архитектуры Deep Learning соответствуют представлению
bull Обеспечивают эффективную параметризацию при решении конкретных задач Более сложные функции создаются из большего числа но более эффективно настраиваемых laquoкирпичиковraquo Пример ndash синтез булевых функций Дерево вентилей эффективнее двухслойной схемы
Фактор - графыВсе методы которые расмотрели ndash не DL Даже деревья классификации Все операции в одном входном словаре
DL можно определить по фактор-графу
Например
bull Еще одна сторона DL - нередко использует невыпуклые функции потерьbull Обучение на основе выпуклых функций не зависит от порядка
предъявления данных для обучения Все определяет асимптотика всего train - набора В алгоритмах DL порядок данных в обучающей выборке может иметь значение
bull Многие решения в DL не доказаны математически и являются успешными эвристиками
bull Большой простор для прикладной математики Может рассматриваться как фактор-граф с группами латентных переменных
bull В настоящее время стал основной технологией в распознавании речи (speech recognition) и машинном зрении (computer vision) начал применяться в обработке текстов (natural language processing)
bull Основная идея ndash применение нелинейного отображения входного набора в более высокоразмерное пространство где многие неразделимые композиции становятся разделимыми а затем объединение композиций по семантической близости
Подход разреженного кодирования
Обобщенная архитектура
bull DL сеть может быть собрана каскадированием и использованием обучения с учителем
Здесь используется forward propagation для обучения
Для настройки коэффициентов используется метод fprof для каждого
Требуется знание градиента энергии
Элементы (kl) матрицы Якобиана
Требуется знание градиента энергии 120597119864120597119882119894 = 120597119864120597119883119894120597119865119894(119883119894minus1119882119894)120597119882119894
ሾ1times 119873119908ሿ= ሾ1times 119873119909ሿlowast[119873119909 times 119873119908] Элементы (kl) матрицы Якобиана
Сводится к рекуррентному соотношению для вычисления градиента 120597119864120597119883119894minus1 = 120597119864120597119883119894120597119865119894(119883119894minus1119882119894)120597119883119894minus1
В итоге
Для вычисления градиента может использоваться метод back propagation
В действительности работают любые архитектуры построения функции Нужно конструировать связи и функции блоков
Язык Torch 7 ndash современный инструмент моделирования и имплементации
Machine Learning with Torch7 (httpcodecogbitscomwikidokuphpid=start)
bull These tutorials were originally designed for the IPAM Summer School on Deep Learning more info herebull This wiki provides multiple tutorials with the overall objective of teaching you how to do machine learning
with Torch7bull Torch7 provides a Matlab-like environment for state-of-the-art machine learning algorithms It is easy to use
and provides a very efficient implementation thanks to an easy and fast scripting language (LuaJIT) and an underlying C implementation
bull These tutorials should be readdone in orderbull Tutorial 1 Setup Basics Getting Startedbull Tutorial 2 Supervised Learningbull Tutorial 3 Unsupervised Learningbull Tutorial 4 Graphical Modelsbull Tutorial 5 Creating New Modulesbull Tutorial 6 Using CUDAbull To follow these tutorials and do the exercises you will need to download the associated code which is hosted
on GitHub on this page In this repository each directory corresponds to a tutorial herebull starttxt middot Last modified 20140204 2246 by clement
Torch 7 является расширением Lua
What is LuaLua is a powerful fast lightweight embeddable scripting languageLua combines simple procedural syntax with powerful data description constructs based on associative arrays and extensible semantics Lua is dynamically typed runs by interpreting bytecode for a register-based virtual machine and has automatic memory management with incremental garbage collection making it ideal for configuration scripting and rapid prototyping
Why choose LuaLua is a proven robust languageLua has been used in many industrial applications (eg Adobes Photoshop Lightroom) with an emphasis on embedded systems (eg the Ginga middleware for digital TV in Brazil) and games (eg World of Warcraft and Angry Birds) Lua is currently the leading scripting language in games Lua has a solid reference manual and there are several books about it Several versions of Lua have been released and used in real applications since its creation in 1993 Lua featured in HOPL III the Third ACM SIGPLAN History of Programming Languages Conference in June 2007 Lua won the Front Line Award 2011 from the Game Developers Magazine
Свертка и архитектура 4-х уровневой сверточной сети
Функциональная структура
Примеры успешного применения сверточных сетей
Диагностика эпилепсии по ЭЭГ
Реализация сверточной сетью
Одна из самых больших сверточных сетейbull Krizhevsky Sutskever Hinton 2012bull 650 000 нейронов 832 000 000 синапсов 60 000000 пареметровbull Использовался backprop на GPUbull Обучающая выборка на материалах 20 летbull Купил Google в январе 2013bull В мае 2013 развернул как сервис Photo Tagging Google+
Пример тэгирования
Пример поиска похожих по изображению
Пример поиска в коллекции изображений по текстовому запросу
Пример laquoоблачногоraquo классификатора изображений
Самообучающиеся нейронные сети на основе минимизации функции энергииbull Применима к сетям с обратными связямиbull Конструирование функции энергии должно обеспечивать
laquoконтрастностьraquo разделения
bull Энергетическая функция может Неформально рассматриваться как отрицательный логарифм плотности вероятности
Y 2=(Y1)2
RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцмана
bull Из DBM cтроится Deep Belief Network (DBN)
bull w mdash вес между нейронами
bull b mdash смещение нейрона
bull s mdash состояние нейрона
Алгоритм обучения Contrastive Divergence (CD)bull w_ij mdash веc между i-ым нейроном Вероятность пар может быть представлена как
bull a_i mdash смещение видимого нейрона
bull b_j mdash смещение скрытого нейрона
bull v_i mdash состояние видимого нейрона
bull h_j mdash состояние скрытого нейрона Полная вероятность состояния видимых нейронов
Основные уравнения адаптации
Алгоритм Хинтона - Contrastive Divergence (CD-k)
1 состояние видимых нейронов приравнивается к входному образу2 выводятся вероятности состояний скрытого слоя3 каждому нейрону скрытого слоя ставится в соответствие состояние laquo1raquo с вероятностью равной его текущему состоянию4 выводятся вероятности видимого слоя на основании скрытого5 если текущая итерация меньше k то возврат к шагу 26 выводятся вероятности состояний скрытого слоя
darch Package for deep architectures and Restricted-Bolzmann-MachinesThe darch package is build on the basis of the code from G E Hinton and R R Salakhutdinov (available under Matlab Code for deep belief nets last visit 01082013) This package is for generating neural networks with many layers (deep architectures) and train them with the method introduced by the publications A fast learning algorithm for deep belief nets (G E Hinton S Osindero Y W Teh) and Reducing the dimensionality of data with neural networks (G E Hinton R R Salakhutdinov) This method includes a pre training with the contrastive divergence method publishing by GE Hinton (2002) and a fine tuning with common known training algorithms like backpropagation or conjugate gradient
bull Version 091bull Imports futilelogger ff methodsbull Published 2014-03-16bull Author Martin Dreesbull Maintainer Martin Drees ltmdrees at studfh-dortmunddegtbull License GPL-2bull URL httpgithubcommaddin79darchbull NeedsCompilation nobull Materials READMEbull CRAN checks darch results
Связь плотности вероятности и энергии
Используется распределение Гиббса
Задача обучения с точки минимизации энергии сети
bull Сконструировать функцию энергии с малыми значениями на обучающей выборке и с большими значениями всюду вне этого множества
bull Первое несложно а второе представляет задачу процесса обучения
Интуитивные соображения
Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decomposition LISTA ndashметоды использующие разреженные коды
Латентная переменная Z =argmin_z Distance[Decoder(Z)Y]+FactorB(Z)MAPminimaize sum of factors
Автоэнкодер (auto encoder) Автоэнкодер представляет собой алгоритм обучения без учителя который использует нейронную сеть и метод обратного распространения ошибки для того чтобы добиться того что входной вектор признаков вызывал отклик сети равный входному вектору те y = x Автоэнкодер пытается построить функцию h(x) = x
Архитекттура ICA моделей
Итеративные алгоритмы с оптимальным разреженным кодированием ISTAFISTA
Самоорганизация данных методами Deep Learning
>
Знакомство с пакетом deepnet
Назначение
Составdbndnntrain - обучение сети с архитектурой DBN (deep belief network)loadmnist - формирование данных из файлов MNISTnnpredict - предсказание новых выборок на обученной нейронной сетиnntest ndash тестирование обученной нейронной сети с возвращением значения ошибкиnntrain ndash обучение одностлойной или многослойной нейронной сети методом backproprbmdown ndash генерирование видимого вектора для скрытых состояний сети RBMrbmtrain ndash обучение сети RBMrbmup ndash извлечение скрытых состояний RBM по известным видимым состояниямsaednntrain ndash обучение нейронной сети с архитектурой stacked autoencoder
Прогнозирование (классификация) нейронной сетью с архитектурой stacked auto encoder
Argumentsbull x matrix of x values for examplesbull y vector or matrix of target values for examplesbull hidden vector for number of units of hidden layersDefault is c(10)bull activationfun activation function of hidden unitCan be sigmlinear or tanhDefault isbull sigm for logistic functionbull learningrate learning rate for gradient descent Default is 08bull momentum momentum for gradient descent Default is 05 bull learningrate_scalebull learning rate will be mutiplied by this scale after every iteration Default is 1 bull numepochs number of iteration for samples Default is 3bull batchsize size of mini-batch Default is 100bull output function of output unit can be sigmlinear or softmax Default is sigmbull sae_output function of autoencoder output unit can be sigmlinear or softmax Defaultbull is linearbull hidden_dropout drop out fraction for hidden layer Default is 0bull visible_dropoutbull drop out fraction for input layer Default is 0
Что такое MNISTbull Смешанный набор данных Национального института стандартов и
технологий (mixed National Institute of Standards and Technology MNIST) был создан исследователями IR в качестве эталона для сравнения различных алгоритмов IR
bull Набор данных состоит всего из 70 000 изображений 60 000 обучающих (используемых для создания модели IR) и 10 000 тестовых (применяемых для оценки точности модели) Каждое изображение MNIST mdash это оцифрованная картинка одной цифры написанной от руки Каждое изображение имеет размер 28 times 28 пикселей Каждое значение пикселя лежит в диапазоне от 0 (представляет белый цвет) до 255 (представляет черный цвет) Промежуточные значения отражают оттенки серого
httpyannlecuncomexdbmnistобучающие и тестовые данные хранятся в двух файлах а не в одном Один файл содержит значения пикселей для изображений а другой mdash метки изображений (0ndash9) Каждый из четырех файлов также содержит заголовочную информацию и все они хранятся в двоичном формате сжатом в формате gziptrain-images-idx3-ubytegz training set images (9912422 bytes)
train-labels-idx1-ubytegz training set labels (28881 bytes)
t10k-images-idx3-ubytegz test set images (1648877 bytes)
t10k-labels-idx1-ubytegz test set labels (4542 bytes)
bull Каждая строка файла представляет собой имидж размера 28 times 28 вектором длины 784 каждый признак ndash значение пиксела в черно-белой шале Первый столбец содержит метку цифры 0ndash9 следующие 2828 столбцов представляют целый имидж и так далее Пример первой строки
Визуализация
bull plotmnist()bull mnistbull paramsbull train$n number of train samplesbull train$x pix of every train sample imagebull train$y label of every train sample imagebull train$yy one-of-c vector of label of train sample imagebull test$n number of test samplesbull test$x pix of every test sample imagebull test$y label of every test sample imagebull test$yy one-of-c vector of label of test sample image
plotmnist()
Распознавание рукописных цифр в deepnet
another way to download the MNIST datasetmnist downloadmnist(range=c(01)global=FALSE)look at MNIST datamnist$train$xmnist$train$ymnist$test$xmnist$test$ytrain of the sae neural networkdnnlt-saednntrain(mnist$train$xmnist$train$yhidden=c(55))test of the sae neural networknntest(dnnmnist$test$xmnist$test$yt=05)
End of slides part 2 (Part 3 - NLP remaining)
Vladimirvkrylovgmailcom
Основы предиктивной аналитики Часть вторая
Применение методов Machine Learning к решению задач аналитики
Дмитрий Ветров кандидат физико-математических наук ру
Методы обучающихся машин для аналитики которые мы рассмотрим
Сначала нужно загрузить несколько пакетов (packages) для поддер
Данные для анализа
Скрипт для генерации
Данные которые мы будем использовать для демо состоят из смес
Так выглядят визуализированные данные сгенерированные скриптом
Разделение данных на обучающие и проверочные является важным эт
K-means алгоритм на пальцах
Обучающаяся машина без учителя Алгоритм K-means
Slide 13
Slide 14
Здесь мы используем заранее известный факт что необходимо кла
Еще одна иллюстрация работы алгоритма K-means
Обучающаяся машина без учителя Алгоритм KNN (Nearest Neighbor)
Как работает алгоритм KNN
knn(train test cl k = 1 l = 0 prob = FALSE useall = TRUE
Slide 20
Результаты кластеризации и зависимость ошибки от числа кластеро
Recursive PartitioningRegression Tree
Метод RP реализует обучение машины строить дерево решений по об
Recursive PartitioningRegression Tree (2)
rpart(formula data weights subset naaction = narpart met
Slide 26
Recursive PartitioningRegression Tree example
Анализ по главным компонентам (Principal Component Analysis PC
Итеративные алгоритмы с оптимальным разреженным кодированием IS
Самоорганизация данных методами Deep Learning
Знакомство с пакетом deepnet
Прогнозирование (классификация) нейронной сетью с архитектурой
Arguments
Архитектура сети SAE
Архитектура с 5Х4 hidden 3 outs
Example
Анализ обучающего набора данных
Параметры SAE сети
Коэффициенты связей
Предсказание обученной сетью
Сравнение обучающей и тестовой выборки
plot3d(xy)
Работаем с пакетом MNIST
httpyannlecuncomexdbmnist
Подготовка к обработке
Slide 118
Визуализация
plotmnist()
Распознавание рукописных цифр в deepnet
End of slides part 2 (Part 3 - NLP remaining)
Фактор - графыВсе методы которые расмотрели ndash не DL Даже деревья классификации Все операции в одном входном словаре
DL можно определить по фактор-графу
Например
bull Еще одна сторона DL - нередко использует невыпуклые функции потерьbull Обучение на основе выпуклых функций не зависит от порядка
предъявления данных для обучения Все определяет асимптотика всего train - набора В алгоритмах DL порядок данных в обучающей выборке может иметь значение
bull Многие решения в DL не доказаны математически и являются успешными эвристиками
bull Большой простор для прикладной математики Может рассматриваться как фактор-граф с группами латентных переменных
bull В настоящее время стал основной технологией в распознавании речи (speech recognition) и машинном зрении (computer vision) начал применяться в обработке текстов (natural language processing)
bull Основная идея ndash применение нелинейного отображения входного набора в более высокоразмерное пространство где многие неразделимые композиции становятся разделимыми а затем объединение композиций по семантической близости
Подход разреженного кодирования
Обобщенная архитектура
bull DL сеть может быть собрана каскадированием и использованием обучения с учителем
Здесь используется forward propagation для обучения
Для настройки коэффициентов используется метод fprof для каждого
Требуется знание градиента энергии
Элементы (kl) матрицы Якобиана
Требуется знание градиента энергии 120597119864120597119882119894 = 120597119864120597119883119894120597119865119894(119883119894minus1119882119894)120597119882119894
ሾ1times 119873119908ሿ= ሾ1times 119873119909ሿlowast[119873119909 times 119873119908] Элементы (kl) матрицы Якобиана
Сводится к рекуррентному соотношению для вычисления градиента 120597119864120597119883119894minus1 = 120597119864120597119883119894120597119865119894(119883119894minus1119882119894)120597119883119894minus1
В итоге
Для вычисления градиента может использоваться метод back propagation
В действительности работают любые архитектуры построения функции Нужно конструировать связи и функции блоков
Язык Torch 7 ndash современный инструмент моделирования и имплементации
Machine Learning with Torch7 (httpcodecogbitscomwikidokuphpid=start)
bull These tutorials were originally designed for the IPAM Summer School on Deep Learning more info herebull This wiki provides multiple tutorials with the overall objective of teaching you how to do machine learning
with Torch7bull Torch7 provides a Matlab-like environment for state-of-the-art machine learning algorithms It is easy to use
and provides a very efficient implementation thanks to an easy and fast scripting language (LuaJIT) and an underlying C implementation
bull These tutorials should be readdone in orderbull Tutorial 1 Setup Basics Getting Startedbull Tutorial 2 Supervised Learningbull Tutorial 3 Unsupervised Learningbull Tutorial 4 Graphical Modelsbull Tutorial 5 Creating New Modulesbull Tutorial 6 Using CUDAbull To follow these tutorials and do the exercises you will need to download the associated code which is hosted
on GitHub on this page In this repository each directory corresponds to a tutorial herebull starttxt middot Last modified 20140204 2246 by clement
Torch 7 является расширением Lua
What is LuaLua is a powerful fast lightweight embeddable scripting languageLua combines simple procedural syntax with powerful data description constructs based on associative arrays and extensible semantics Lua is dynamically typed runs by interpreting bytecode for a register-based virtual machine and has automatic memory management with incremental garbage collection making it ideal for configuration scripting and rapid prototyping
Why choose LuaLua is a proven robust languageLua has been used in many industrial applications (eg Adobes Photoshop Lightroom) with an emphasis on embedded systems (eg the Ginga middleware for digital TV in Brazil) and games (eg World of Warcraft and Angry Birds) Lua is currently the leading scripting language in games Lua has a solid reference manual and there are several books about it Several versions of Lua have been released and used in real applications since its creation in 1993 Lua featured in HOPL III the Third ACM SIGPLAN History of Programming Languages Conference in June 2007 Lua won the Front Line Award 2011 from the Game Developers Magazine
Свертка и архитектура 4-х уровневой сверточной сети
Функциональная структура
Примеры успешного применения сверточных сетей
Диагностика эпилепсии по ЭЭГ
Реализация сверточной сетью
Одна из самых больших сверточных сетейbull Krizhevsky Sutskever Hinton 2012bull 650 000 нейронов 832 000 000 синапсов 60 000000 пареметровbull Использовался backprop на GPUbull Обучающая выборка на материалах 20 летbull Купил Google в январе 2013bull В мае 2013 развернул как сервис Photo Tagging Google+
Пример тэгирования
Пример поиска похожих по изображению
Пример поиска в коллекции изображений по текстовому запросу
Пример laquoоблачногоraquo классификатора изображений
Самообучающиеся нейронные сети на основе минимизации функции энергииbull Применима к сетям с обратными связямиbull Конструирование функции энергии должно обеспечивать
laquoконтрастностьraquo разделения
bull Энергетическая функция может Неформально рассматриваться как отрицательный логарифм плотности вероятности
Y 2=(Y1)2
RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцмана
bull Из DBM cтроится Deep Belief Network (DBN)
bull w mdash вес между нейронами
bull b mdash смещение нейрона
bull s mdash состояние нейрона
Алгоритм обучения Contrastive Divergence (CD)bull w_ij mdash веc между i-ым нейроном Вероятность пар может быть представлена как
bull a_i mdash смещение видимого нейрона
bull b_j mdash смещение скрытого нейрона
bull v_i mdash состояние видимого нейрона
bull h_j mdash состояние скрытого нейрона Полная вероятность состояния видимых нейронов
Основные уравнения адаптации
Алгоритм Хинтона - Contrastive Divergence (CD-k)
1 состояние видимых нейронов приравнивается к входному образу2 выводятся вероятности состояний скрытого слоя3 каждому нейрону скрытого слоя ставится в соответствие состояние laquo1raquo с вероятностью равной его текущему состоянию4 выводятся вероятности видимого слоя на основании скрытого5 если текущая итерация меньше k то возврат к шагу 26 выводятся вероятности состояний скрытого слоя
darch Package for deep architectures and Restricted-Bolzmann-MachinesThe darch package is build on the basis of the code from G E Hinton and R R Salakhutdinov (available under Matlab Code for deep belief nets last visit 01082013) This package is for generating neural networks with many layers (deep architectures) and train them with the method introduced by the publications A fast learning algorithm for deep belief nets (G E Hinton S Osindero Y W Teh) and Reducing the dimensionality of data with neural networks (G E Hinton R R Salakhutdinov) This method includes a pre training with the contrastive divergence method publishing by GE Hinton (2002) and a fine tuning with common known training algorithms like backpropagation or conjugate gradient
bull Version 091bull Imports futilelogger ff methodsbull Published 2014-03-16bull Author Martin Dreesbull Maintainer Martin Drees ltmdrees at studfh-dortmunddegtbull License GPL-2bull URL httpgithubcommaddin79darchbull NeedsCompilation nobull Materials READMEbull CRAN checks darch results
Связь плотности вероятности и энергии
Используется распределение Гиббса
Задача обучения с точки минимизации энергии сети
bull Сконструировать функцию энергии с малыми значениями на обучающей выборке и с большими значениями всюду вне этого множества
bull Первое несложно а второе представляет задачу процесса обучения
Интуитивные соображения
Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decomposition LISTA ndashметоды использующие разреженные коды
Латентная переменная Z =argmin_z Distance[Decoder(Z)Y]+FactorB(Z)MAPminimaize sum of factors
Автоэнкодер (auto encoder) Автоэнкодер представляет собой алгоритм обучения без учителя который использует нейронную сеть и метод обратного распространения ошибки для того чтобы добиться того что входной вектор признаков вызывал отклик сети равный входному вектору те y = x Автоэнкодер пытается построить функцию h(x) = x
Архитекттура ICA моделей
Итеративные алгоритмы с оптимальным разреженным кодированием ISTAFISTA
Самоорганизация данных методами Deep Learning
>
Знакомство с пакетом deepnet
Назначение
Составdbndnntrain - обучение сети с архитектурой DBN (deep belief network)loadmnist - формирование данных из файлов MNISTnnpredict - предсказание новых выборок на обученной нейронной сетиnntest ndash тестирование обученной нейронной сети с возвращением значения ошибкиnntrain ndash обучение одностлойной или многослойной нейронной сети методом backproprbmdown ndash генерирование видимого вектора для скрытых состояний сети RBMrbmtrain ndash обучение сети RBMrbmup ndash извлечение скрытых состояний RBM по известным видимым состояниямsaednntrain ndash обучение нейронной сети с архитектурой stacked autoencoder
Прогнозирование (классификация) нейронной сетью с архитектурой stacked auto encoder
Argumentsbull x matrix of x values for examplesbull y vector or matrix of target values for examplesbull hidden vector for number of units of hidden layersDefault is c(10)bull activationfun activation function of hidden unitCan be sigmlinear or tanhDefault isbull sigm for logistic functionbull learningrate learning rate for gradient descent Default is 08bull momentum momentum for gradient descent Default is 05 bull learningrate_scalebull learning rate will be mutiplied by this scale after every iteration Default is 1 bull numepochs number of iteration for samples Default is 3bull batchsize size of mini-batch Default is 100bull output function of output unit can be sigmlinear or softmax Default is sigmbull sae_output function of autoencoder output unit can be sigmlinear or softmax Defaultbull is linearbull hidden_dropout drop out fraction for hidden layer Default is 0bull visible_dropoutbull drop out fraction for input layer Default is 0
Что такое MNISTbull Смешанный набор данных Национального института стандартов и
технологий (mixed National Institute of Standards and Technology MNIST) был создан исследователями IR в качестве эталона для сравнения различных алгоритмов IR
bull Набор данных состоит всего из 70 000 изображений 60 000 обучающих (используемых для создания модели IR) и 10 000 тестовых (применяемых для оценки точности модели) Каждое изображение MNIST mdash это оцифрованная картинка одной цифры написанной от руки Каждое изображение имеет размер 28 times 28 пикселей Каждое значение пикселя лежит в диапазоне от 0 (представляет белый цвет) до 255 (представляет черный цвет) Промежуточные значения отражают оттенки серого
httpyannlecuncomexdbmnistобучающие и тестовые данные хранятся в двух файлах а не в одном Один файл содержит значения пикселей для изображений а другой mdash метки изображений (0ndash9) Каждый из четырех файлов также содержит заголовочную информацию и все они хранятся в двоичном формате сжатом в формате gziptrain-images-idx3-ubytegz training set images (9912422 bytes)
train-labels-idx1-ubytegz training set labels (28881 bytes)
t10k-images-idx3-ubytegz test set images (1648877 bytes)
t10k-labels-idx1-ubytegz test set labels (4542 bytes)
bull Каждая строка файла представляет собой имидж размера 28 times 28 вектором длины 784 каждый признак ndash значение пиксела в черно-белой шале Первый столбец содержит метку цифры 0ndash9 следующие 2828 столбцов представляют целый имидж и так далее Пример первой строки
Визуализация
bull plotmnist()bull mnistbull paramsbull train$n number of train samplesbull train$x pix of every train sample imagebull train$y label of every train sample imagebull train$yy one-of-c vector of label of train sample imagebull test$n number of test samplesbull test$x pix of every test sample imagebull test$y label of every test sample imagebull test$yy one-of-c vector of label of test sample image
plotmnist()
Распознавание рукописных цифр в deepnet
another way to download the MNIST datasetmnist downloadmnist(range=c(01)global=FALSE)look at MNIST datamnist$train$xmnist$train$ymnist$test$xmnist$test$ytrain of the sae neural networkdnnlt-saednntrain(mnist$train$xmnist$train$yhidden=c(55))test of the sae neural networknntest(dnnmnist$test$xmnist$test$yt=05)
End of slides part 2 (Part 3 - NLP remaining)
Vladimirvkrylovgmailcom
Основы предиктивной аналитики Часть вторая
Применение методов Machine Learning к решению задач аналитики
Дмитрий Ветров кандидат физико-математических наук ру
Методы обучающихся машин для аналитики которые мы рассмотрим
Сначала нужно загрузить несколько пакетов (packages) для поддер
Данные для анализа
Скрипт для генерации
Данные которые мы будем использовать для демо состоят из смес
Так выглядят визуализированные данные сгенерированные скриптом
Разделение данных на обучающие и проверочные является важным эт
K-means алгоритм на пальцах
Обучающаяся машина без учителя Алгоритм K-means
Slide 13
Slide 14
Здесь мы используем заранее известный факт что необходимо кла
Еще одна иллюстрация работы алгоритма K-means
Обучающаяся машина без учителя Алгоритм KNN (Nearest Neighbor)
Как работает алгоритм KNN
knn(train test cl k = 1 l = 0 prob = FALSE useall = TRUE
Slide 20
Результаты кластеризации и зависимость ошибки от числа кластеро
Recursive PartitioningRegression Tree
Метод RP реализует обучение машины строить дерево решений по об
Recursive PartitioningRegression Tree (2)
rpart(formula data weights subset naaction = narpart met
Slide 26
Recursive PartitioningRegression Tree example
Анализ по главным компонентам (Principal Component Analysis PC
Итеративные алгоритмы с оптимальным разреженным кодированием IS
Самоорганизация данных методами Deep Learning
Знакомство с пакетом deepnet
Прогнозирование (классификация) нейронной сетью с архитектурой
Arguments
Архитектура сети SAE
Архитектура с 5Х4 hidden 3 outs
Example
Анализ обучающего набора данных
Параметры SAE сети
Коэффициенты связей
Предсказание обученной сетью
Сравнение обучающей и тестовой выборки
plot3d(xy)
Работаем с пакетом MNIST
httpyannlecuncomexdbmnist
Подготовка к обработке
Slide 118
Визуализация
plotmnist()
Распознавание рукописных цифр в deepnet
End of slides part 2 (Part 3 - NLP remaining)
bull Еще одна сторона DL - нередко использует невыпуклые функции потерьbull Обучение на основе выпуклых функций не зависит от порядка
предъявления данных для обучения Все определяет асимптотика всего train - набора В алгоритмах DL порядок данных в обучающей выборке может иметь значение
bull Многие решения в DL не доказаны математически и являются успешными эвристиками
bull Большой простор для прикладной математики Может рассматриваться как фактор-граф с группами латентных переменных
bull В настоящее время стал основной технологией в распознавании речи (speech recognition) и машинном зрении (computer vision) начал применяться в обработке текстов (natural language processing)
bull Основная идея ndash применение нелинейного отображения входного набора в более высокоразмерное пространство где многие неразделимые композиции становятся разделимыми а затем объединение композиций по семантической близости
Подход разреженного кодирования
Обобщенная архитектура
bull DL сеть может быть собрана каскадированием и использованием обучения с учителем
Здесь используется forward propagation для обучения
Для настройки коэффициентов используется метод fprof для каждого
Требуется знание градиента энергии
Элементы (kl) матрицы Якобиана
Требуется знание градиента энергии 120597119864120597119882119894 = 120597119864120597119883119894120597119865119894(119883119894minus1119882119894)120597119882119894
ሾ1times 119873119908ሿ= ሾ1times 119873119909ሿlowast[119873119909 times 119873119908] Элементы (kl) матрицы Якобиана
Сводится к рекуррентному соотношению для вычисления градиента 120597119864120597119883119894minus1 = 120597119864120597119883119894120597119865119894(119883119894minus1119882119894)120597119883119894minus1
В итоге
Для вычисления градиента может использоваться метод back propagation
В действительности работают любые архитектуры построения функции Нужно конструировать связи и функции блоков
Язык Torch 7 ndash современный инструмент моделирования и имплементации
Machine Learning with Torch7 (httpcodecogbitscomwikidokuphpid=start)
bull These tutorials were originally designed for the IPAM Summer School on Deep Learning more info herebull This wiki provides multiple tutorials with the overall objective of teaching you how to do machine learning
with Torch7bull Torch7 provides a Matlab-like environment for state-of-the-art machine learning algorithms It is easy to use
and provides a very efficient implementation thanks to an easy and fast scripting language (LuaJIT) and an underlying C implementation
bull These tutorials should be readdone in orderbull Tutorial 1 Setup Basics Getting Startedbull Tutorial 2 Supervised Learningbull Tutorial 3 Unsupervised Learningbull Tutorial 4 Graphical Modelsbull Tutorial 5 Creating New Modulesbull Tutorial 6 Using CUDAbull To follow these tutorials and do the exercises you will need to download the associated code which is hosted
on GitHub on this page In this repository each directory corresponds to a tutorial herebull starttxt middot Last modified 20140204 2246 by clement
Torch 7 является расширением Lua
What is LuaLua is a powerful fast lightweight embeddable scripting languageLua combines simple procedural syntax with powerful data description constructs based on associative arrays and extensible semantics Lua is dynamically typed runs by interpreting bytecode for a register-based virtual machine and has automatic memory management with incremental garbage collection making it ideal for configuration scripting and rapid prototyping
Why choose LuaLua is a proven robust languageLua has been used in many industrial applications (eg Adobes Photoshop Lightroom) with an emphasis on embedded systems (eg the Ginga middleware for digital TV in Brazil) and games (eg World of Warcraft and Angry Birds) Lua is currently the leading scripting language in games Lua has a solid reference manual and there are several books about it Several versions of Lua have been released and used in real applications since its creation in 1993 Lua featured in HOPL III the Third ACM SIGPLAN History of Programming Languages Conference in June 2007 Lua won the Front Line Award 2011 from the Game Developers Magazine
Свертка и архитектура 4-х уровневой сверточной сети
Функциональная структура
Примеры успешного применения сверточных сетей
Диагностика эпилепсии по ЭЭГ
Реализация сверточной сетью
Одна из самых больших сверточных сетейbull Krizhevsky Sutskever Hinton 2012bull 650 000 нейронов 832 000 000 синапсов 60 000000 пареметровbull Использовался backprop на GPUbull Обучающая выборка на материалах 20 летbull Купил Google в январе 2013bull В мае 2013 развернул как сервис Photo Tagging Google+
Пример тэгирования
Пример поиска похожих по изображению
Пример поиска в коллекции изображений по текстовому запросу
Пример laquoоблачногоraquo классификатора изображений
Самообучающиеся нейронные сети на основе минимизации функции энергииbull Применима к сетям с обратными связямиbull Конструирование функции энергии должно обеспечивать
laquoконтрастностьraquo разделения
bull Энергетическая функция может Неформально рассматриваться как отрицательный логарифм плотности вероятности
Y 2=(Y1)2
RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцмана
bull Из DBM cтроится Deep Belief Network (DBN)
bull w mdash вес между нейронами
bull b mdash смещение нейрона
bull s mdash состояние нейрона
Алгоритм обучения Contrastive Divergence (CD)bull w_ij mdash веc между i-ым нейроном Вероятность пар может быть представлена как
bull a_i mdash смещение видимого нейрона
bull b_j mdash смещение скрытого нейрона
bull v_i mdash состояние видимого нейрона
bull h_j mdash состояние скрытого нейрона Полная вероятность состояния видимых нейронов
Основные уравнения адаптации
Алгоритм Хинтона - Contrastive Divergence (CD-k)
1 состояние видимых нейронов приравнивается к входному образу2 выводятся вероятности состояний скрытого слоя3 каждому нейрону скрытого слоя ставится в соответствие состояние laquo1raquo с вероятностью равной его текущему состоянию4 выводятся вероятности видимого слоя на основании скрытого5 если текущая итерация меньше k то возврат к шагу 26 выводятся вероятности состояний скрытого слоя
darch Package for deep architectures and Restricted-Bolzmann-MachinesThe darch package is build on the basis of the code from G E Hinton and R R Salakhutdinov (available under Matlab Code for deep belief nets last visit 01082013) This package is for generating neural networks with many layers (deep architectures) and train them with the method introduced by the publications A fast learning algorithm for deep belief nets (G E Hinton S Osindero Y W Teh) and Reducing the dimensionality of data with neural networks (G E Hinton R R Salakhutdinov) This method includes a pre training with the contrastive divergence method publishing by GE Hinton (2002) and a fine tuning with common known training algorithms like backpropagation or conjugate gradient
bull Version 091bull Imports futilelogger ff methodsbull Published 2014-03-16bull Author Martin Dreesbull Maintainer Martin Drees ltmdrees at studfh-dortmunddegtbull License GPL-2bull URL httpgithubcommaddin79darchbull NeedsCompilation nobull Materials READMEbull CRAN checks darch results
Связь плотности вероятности и энергии
Используется распределение Гиббса
Задача обучения с точки минимизации энергии сети
bull Сконструировать функцию энергии с малыми значениями на обучающей выборке и с большими значениями всюду вне этого множества
bull Первое несложно а второе представляет задачу процесса обучения
Интуитивные соображения
Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decomposition LISTA ndashметоды использующие разреженные коды
Латентная переменная Z =argmin_z Distance[Decoder(Z)Y]+FactorB(Z)MAPminimaize sum of factors
Автоэнкодер (auto encoder) Автоэнкодер представляет собой алгоритм обучения без учителя который использует нейронную сеть и метод обратного распространения ошибки для того чтобы добиться того что входной вектор признаков вызывал отклик сети равный входному вектору те y = x Автоэнкодер пытается построить функцию h(x) = x
Архитекттура ICA моделей
Итеративные алгоритмы с оптимальным разреженным кодированием ISTAFISTA
Самоорганизация данных методами Deep Learning
>
Знакомство с пакетом deepnet
Назначение
Составdbndnntrain - обучение сети с архитектурой DBN (deep belief network)loadmnist - формирование данных из файлов MNISTnnpredict - предсказание новых выборок на обученной нейронной сетиnntest ndash тестирование обученной нейронной сети с возвращением значения ошибкиnntrain ndash обучение одностлойной или многослойной нейронной сети методом backproprbmdown ndash генерирование видимого вектора для скрытых состояний сети RBMrbmtrain ndash обучение сети RBMrbmup ndash извлечение скрытых состояний RBM по известным видимым состояниямsaednntrain ndash обучение нейронной сети с архитектурой stacked autoencoder
Прогнозирование (классификация) нейронной сетью с архитектурой stacked auto encoder
Argumentsbull x matrix of x values for examplesbull y vector or matrix of target values for examplesbull hidden vector for number of units of hidden layersDefault is c(10)bull activationfun activation function of hidden unitCan be sigmlinear or tanhDefault isbull sigm for logistic functionbull learningrate learning rate for gradient descent Default is 08bull momentum momentum for gradient descent Default is 05 bull learningrate_scalebull learning rate will be mutiplied by this scale after every iteration Default is 1 bull numepochs number of iteration for samples Default is 3bull batchsize size of mini-batch Default is 100bull output function of output unit can be sigmlinear or softmax Default is sigmbull sae_output function of autoencoder output unit can be sigmlinear or softmax Defaultbull is linearbull hidden_dropout drop out fraction for hidden layer Default is 0bull visible_dropoutbull drop out fraction for input layer Default is 0
Что такое MNISTbull Смешанный набор данных Национального института стандартов и
технологий (mixed National Institute of Standards and Technology MNIST) был создан исследователями IR в качестве эталона для сравнения различных алгоритмов IR
bull Набор данных состоит всего из 70 000 изображений 60 000 обучающих (используемых для создания модели IR) и 10 000 тестовых (применяемых для оценки точности модели) Каждое изображение MNIST mdash это оцифрованная картинка одной цифры написанной от руки Каждое изображение имеет размер 28 times 28 пикселей Каждое значение пикселя лежит в диапазоне от 0 (представляет белый цвет) до 255 (представляет черный цвет) Промежуточные значения отражают оттенки серого
httpyannlecuncomexdbmnistобучающие и тестовые данные хранятся в двух файлах а не в одном Один файл содержит значения пикселей для изображений а другой mdash метки изображений (0ndash9) Каждый из четырех файлов также содержит заголовочную информацию и все они хранятся в двоичном формате сжатом в формате gziptrain-images-idx3-ubytegz training set images (9912422 bytes)
train-labels-idx1-ubytegz training set labels (28881 bytes)
t10k-images-idx3-ubytegz test set images (1648877 bytes)
t10k-labels-idx1-ubytegz test set labels (4542 bytes)
bull Каждая строка файла представляет собой имидж размера 28 times 28 вектором длины 784 каждый признак ndash значение пиксела в черно-белой шале Первый столбец содержит метку цифры 0ndash9 следующие 2828 столбцов представляют целый имидж и так далее Пример первой строки
Визуализация
bull plotmnist()bull mnistbull paramsbull train$n number of train samplesbull train$x pix of every train sample imagebull train$y label of every train sample imagebull train$yy one-of-c vector of label of train sample imagebull test$n number of test samplesbull test$x pix of every test sample imagebull test$y label of every test sample imagebull test$yy one-of-c vector of label of test sample image
plotmnist()
Распознавание рукописных цифр в deepnet
another way to download the MNIST datasetmnist downloadmnist(range=c(01)global=FALSE)look at MNIST datamnist$train$xmnist$train$ymnist$test$xmnist$test$ytrain of the sae neural networkdnnlt-saednntrain(mnist$train$xmnist$train$yhidden=c(55))test of the sae neural networknntest(dnnmnist$test$xmnist$test$yt=05)
End of slides part 2 (Part 3 - NLP remaining)
Vladimirvkrylovgmailcom
Основы предиктивной аналитики Часть вторая
Применение методов Machine Learning к решению задач аналитики
Дмитрий Ветров кандидат физико-математических наук ру
Методы обучающихся машин для аналитики которые мы рассмотрим
Сначала нужно загрузить несколько пакетов (packages) для поддер
Данные для анализа
Скрипт для генерации
Данные которые мы будем использовать для демо состоят из смес
Так выглядят визуализированные данные сгенерированные скриптом
Разделение данных на обучающие и проверочные является важным эт
K-means алгоритм на пальцах
Обучающаяся машина без учителя Алгоритм K-means
Slide 13
Slide 14
Здесь мы используем заранее известный факт что необходимо кла
Еще одна иллюстрация работы алгоритма K-means
Обучающаяся машина без учителя Алгоритм KNN (Nearest Neighbor)
Как работает алгоритм KNN
knn(train test cl k = 1 l = 0 prob = FALSE useall = TRUE
Slide 20
Результаты кластеризации и зависимость ошибки от числа кластеро
Recursive PartitioningRegression Tree
Метод RP реализует обучение машины строить дерево решений по об
Recursive PartitioningRegression Tree (2)
rpart(formula data weights subset naaction = narpart met
Slide 26
Recursive PartitioningRegression Tree example
Анализ по главным компонентам (Principal Component Analysis PC
Итеративные алгоритмы с оптимальным разреженным кодированием IS
Самоорганизация данных методами Deep Learning
Знакомство с пакетом deepnet
Прогнозирование (классификация) нейронной сетью с архитектурой
Arguments
Архитектура сети SAE
Архитектура с 5Х4 hidden 3 outs
Example
Анализ обучающего набора данных
Параметры SAE сети
Коэффициенты связей
Предсказание обученной сетью
Сравнение обучающей и тестовой выборки
plot3d(xy)
Работаем с пакетом MNIST
httpyannlecuncomexdbmnist
Подготовка к обработке
Slide 118
Визуализация
plotmnist()
Распознавание рукописных цифр в deepnet
End of slides part 2 (Part 3 - NLP remaining)
bull Основная идея ndash применение нелинейного отображения входного набора в более высокоразмерное пространство где многие неразделимые композиции становятся разделимыми а затем объединение композиций по семантической близости
Подход разреженного кодирования
Обобщенная архитектура
bull DL сеть может быть собрана каскадированием и использованием обучения с учителем
Здесь используется forward propagation для обучения
Для настройки коэффициентов используется метод fprof для каждого
Требуется знание градиента энергии
Элементы (kl) матрицы Якобиана
Требуется знание градиента энергии 120597119864120597119882119894 = 120597119864120597119883119894120597119865119894(119883119894minus1119882119894)120597119882119894
ሾ1times 119873119908ሿ= ሾ1times 119873119909ሿlowast[119873119909 times 119873119908] Элементы (kl) матрицы Якобиана
Сводится к рекуррентному соотношению для вычисления градиента 120597119864120597119883119894minus1 = 120597119864120597119883119894120597119865119894(119883119894minus1119882119894)120597119883119894minus1
В итоге
Для вычисления градиента может использоваться метод back propagation
В действительности работают любые архитектуры построения функции Нужно конструировать связи и функции блоков
Язык Torch 7 ndash современный инструмент моделирования и имплементации
Machine Learning with Torch7 (httpcodecogbitscomwikidokuphpid=start)
bull These tutorials were originally designed for the IPAM Summer School on Deep Learning more info herebull This wiki provides multiple tutorials with the overall objective of teaching you how to do machine learning
with Torch7bull Torch7 provides a Matlab-like environment for state-of-the-art machine learning algorithms It is easy to use
and provides a very efficient implementation thanks to an easy and fast scripting language (LuaJIT) and an underlying C implementation
bull These tutorials should be readdone in orderbull Tutorial 1 Setup Basics Getting Startedbull Tutorial 2 Supervised Learningbull Tutorial 3 Unsupervised Learningbull Tutorial 4 Graphical Modelsbull Tutorial 5 Creating New Modulesbull Tutorial 6 Using CUDAbull To follow these tutorials and do the exercises you will need to download the associated code which is hosted
on GitHub on this page In this repository each directory corresponds to a tutorial herebull starttxt middot Last modified 20140204 2246 by clement
Torch 7 является расширением Lua
What is LuaLua is a powerful fast lightweight embeddable scripting languageLua combines simple procedural syntax with powerful data description constructs based on associative arrays and extensible semantics Lua is dynamically typed runs by interpreting bytecode for a register-based virtual machine and has automatic memory management with incremental garbage collection making it ideal for configuration scripting and rapid prototyping
Why choose LuaLua is a proven robust languageLua has been used in many industrial applications (eg Adobes Photoshop Lightroom) with an emphasis on embedded systems (eg the Ginga middleware for digital TV in Brazil) and games (eg World of Warcraft and Angry Birds) Lua is currently the leading scripting language in games Lua has a solid reference manual and there are several books about it Several versions of Lua have been released and used in real applications since its creation in 1993 Lua featured in HOPL III the Third ACM SIGPLAN History of Programming Languages Conference in June 2007 Lua won the Front Line Award 2011 from the Game Developers Magazine
Свертка и архитектура 4-х уровневой сверточной сети
Функциональная структура
Примеры успешного применения сверточных сетей
Диагностика эпилепсии по ЭЭГ
Реализация сверточной сетью
Одна из самых больших сверточных сетейbull Krizhevsky Sutskever Hinton 2012bull 650 000 нейронов 832 000 000 синапсов 60 000000 пареметровbull Использовался backprop на GPUbull Обучающая выборка на материалах 20 летbull Купил Google в январе 2013bull В мае 2013 развернул как сервис Photo Tagging Google+
Пример тэгирования
Пример поиска похожих по изображению
Пример поиска в коллекции изображений по текстовому запросу
Пример laquoоблачногоraquo классификатора изображений
Самообучающиеся нейронные сети на основе минимизации функции энергииbull Применима к сетям с обратными связямиbull Конструирование функции энергии должно обеспечивать
laquoконтрастностьraquo разделения
bull Энергетическая функция может Неформально рассматриваться как отрицательный логарифм плотности вероятности
Y 2=(Y1)2
RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцмана
bull Из DBM cтроится Deep Belief Network (DBN)
bull w mdash вес между нейронами
bull b mdash смещение нейрона
bull s mdash состояние нейрона
Алгоритм обучения Contrastive Divergence (CD)bull w_ij mdash веc между i-ым нейроном Вероятность пар может быть представлена как
bull a_i mdash смещение видимого нейрона
bull b_j mdash смещение скрытого нейрона
bull v_i mdash состояние видимого нейрона
bull h_j mdash состояние скрытого нейрона Полная вероятность состояния видимых нейронов
Основные уравнения адаптации
Алгоритм Хинтона - Contrastive Divergence (CD-k)
1 состояние видимых нейронов приравнивается к входному образу2 выводятся вероятности состояний скрытого слоя3 каждому нейрону скрытого слоя ставится в соответствие состояние laquo1raquo с вероятностью равной его текущему состоянию4 выводятся вероятности видимого слоя на основании скрытого5 если текущая итерация меньше k то возврат к шагу 26 выводятся вероятности состояний скрытого слоя
darch Package for deep architectures and Restricted-Bolzmann-MachinesThe darch package is build on the basis of the code from G E Hinton and R R Salakhutdinov (available under Matlab Code for deep belief nets last visit 01082013) This package is for generating neural networks with many layers (deep architectures) and train them with the method introduced by the publications A fast learning algorithm for deep belief nets (G E Hinton S Osindero Y W Teh) and Reducing the dimensionality of data with neural networks (G E Hinton R R Salakhutdinov) This method includes a pre training with the contrastive divergence method publishing by GE Hinton (2002) and a fine tuning with common known training algorithms like backpropagation or conjugate gradient
bull Version 091bull Imports futilelogger ff methodsbull Published 2014-03-16bull Author Martin Dreesbull Maintainer Martin Drees ltmdrees at studfh-dortmunddegtbull License GPL-2bull URL httpgithubcommaddin79darchbull NeedsCompilation nobull Materials READMEbull CRAN checks darch results
Связь плотности вероятности и энергии
Используется распределение Гиббса
Задача обучения с точки минимизации энергии сети
bull Сконструировать функцию энергии с малыми значениями на обучающей выборке и с большими значениями всюду вне этого множества
bull Первое несложно а второе представляет задачу процесса обучения
Интуитивные соображения
Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decomposition LISTA ndashметоды использующие разреженные коды
Латентная переменная Z =argmin_z Distance[Decoder(Z)Y]+FactorB(Z)MAPminimaize sum of factors
Автоэнкодер (auto encoder) Автоэнкодер представляет собой алгоритм обучения без учителя который использует нейронную сеть и метод обратного распространения ошибки для того чтобы добиться того что входной вектор признаков вызывал отклик сети равный входному вектору те y = x Автоэнкодер пытается построить функцию h(x) = x
Архитекттура ICA моделей
Итеративные алгоритмы с оптимальным разреженным кодированием ISTAFISTA
Самоорганизация данных методами Deep Learning
>
Знакомство с пакетом deepnet
Назначение
Составdbndnntrain - обучение сети с архитектурой DBN (deep belief network)loadmnist - формирование данных из файлов MNISTnnpredict - предсказание новых выборок на обученной нейронной сетиnntest ndash тестирование обученной нейронной сети с возвращением значения ошибкиnntrain ndash обучение одностлойной или многослойной нейронной сети методом backproprbmdown ndash генерирование видимого вектора для скрытых состояний сети RBMrbmtrain ndash обучение сети RBMrbmup ndash извлечение скрытых состояний RBM по известным видимым состояниямsaednntrain ndash обучение нейронной сети с архитектурой stacked autoencoder
Прогнозирование (классификация) нейронной сетью с архитектурой stacked auto encoder
Argumentsbull x matrix of x values for examplesbull y vector or matrix of target values for examplesbull hidden vector for number of units of hidden layersDefault is c(10)bull activationfun activation function of hidden unitCan be sigmlinear or tanhDefault isbull sigm for logistic functionbull learningrate learning rate for gradient descent Default is 08bull momentum momentum for gradient descent Default is 05 bull learningrate_scalebull learning rate will be mutiplied by this scale after every iteration Default is 1 bull numepochs number of iteration for samples Default is 3bull batchsize size of mini-batch Default is 100bull output function of output unit can be sigmlinear or softmax Default is sigmbull sae_output function of autoencoder output unit can be sigmlinear or softmax Defaultbull is linearbull hidden_dropout drop out fraction for hidden layer Default is 0bull visible_dropoutbull drop out fraction for input layer Default is 0
Что такое MNISTbull Смешанный набор данных Национального института стандартов и
технологий (mixed National Institute of Standards and Technology MNIST) был создан исследователями IR в качестве эталона для сравнения различных алгоритмов IR
bull Набор данных состоит всего из 70 000 изображений 60 000 обучающих (используемых для создания модели IR) и 10 000 тестовых (применяемых для оценки точности модели) Каждое изображение MNIST mdash это оцифрованная картинка одной цифры написанной от руки Каждое изображение имеет размер 28 times 28 пикселей Каждое значение пикселя лежит в диапазоне от 0 (представляет белый цвет) до 255 (представляет черный цвет) Промежуточные значения отражают оттенки серого
httpyannlecuncomexdbmnistобучающие и тестовые данные хранятся в двух файлах а не в одном Один файл содержит значения пикселей для изображений а другой mdash метки изображений (0ndash9) Каждый из четырех файлов также содержит заголовочную информацию и все они хранятся в двоичном формате сжатом в формате gziptrain-images-idx3-ubytegz training set images (9912422 bytes)
train-labels-idx1-ubytegz training set labels (28881 bytes)
t10k-images-idx3-ubytegz test set images (1648877 bytes)
t10k-labels-idx1-ubytegz test set labels (4542 bytes)
bull Каждая строка файла представляет собой имидж размера 28 times 28 вектором длины 784 каждый признак ndash значение пиксела в черно-белой шале Первый столбец содержит метку цифры 0ndash9 следующие 2828 столбцов представляют целый имидж и так далее Пример первой строки
Визуализация
bull plotmnist()bull mnistbull paramsbull train$n number of train samplesbull train$x pix of every train sample imagebull train$y label of every train sample imagebull train$yy one-of-c vector of label of train sample imagebull test$n number of test samplesbull test$x pix of every test sample imagebull test$y label of every test sample imagebull test$yy one-of-c vector of label of test sample image
plotmnist()
Распознавание рукописных цифр в deepnet
another way to download the MNIST datasetmnist downloadmnist(range=c(01)global=FALSE)look at MNIST datamnist$train$xmnist$train$ymnist$test$xmnist$test$ytrain of the sae neural networkdnnlt-saednntrain(mnist$train$xmnist$train$yhidden=c(55))test of the sae neural networknntest(dnnmnist$test$xmnist$test$yt=05)
End of slides part 2 (Part 3 - NLP remaining)
Vladimirvkrylovgmailcom
Основы предиктивной аналитики Часть вторая
Применение методов Machine Learning к решению задач аналитики
Дмитрий Ветров кандидат физико-математических наук ру
Методы обучающихся машин для аналитики которые мы рассмотрим
Сначала нужно загрузить несколько пакетов (packages) для поддер
Данные для анализа
Скрипт для генерации
Данные которые мы будем использовать для демо состоят из смес
Так выглядят визуализированные данные сгенерированные скриптом
Разделение данных на обучающие и проверочные является важным эт
K-means алгоритм на пальцах
Обучающаяся машина без учителя Алгоритм K-means
Slide 13
Slide 14
Здесь мы используем заранее известный факт что необходимо кла
Еще одна иллюстрация работы алгоритма K-means
Обучающаяся машина без учителя Алгоритм KNN (Nearest Neighbor)
Как работает алгоритм KNN
knn(train test cl k = 1 l = 0 prob = FALSE useall = TRUE
Slide 20
Результаты кластеризации и зависимость ошибки от числа кластеро
Recursive PartitioningRegression Tree
Метод RP реализует обучение машины строить дерево решений по об
Recursive PartitioningRegression Tree (2)
rpart(formula data weights subset naaction = narpart met
Slide 26
Recursive PartitioningRegression Tree example
Анализ по главным компонентам (Principal Component Analysis PC
Итеративные алгоритмы с оптимальным разреженным кодированием IS
Самоорганизация данных методами Deep Learning
Знакомство с пакетом deepnet
Прогнозирование (классификация) нейронной сетью с архитектурой
Arguments
Архитектура сети SAE
Архитектура с 5Х4 hidden 3 outs
Example
Анализ обучающего набора данных
Параметры SAE сети
Коэффициенты связей
Предсказание обученной сетью
Сравнение обучающей и тестовой выборки
plot3d(xy)
Работаем с пакетом MNIST
httpyannlecuncomexdbmnist
Подготовка к обработке
Slide 118
Визуализация
plotmnist()
Распознавание рукописных цифр в deepnet
End of slides part 2 (Part 3 - NLP remaining)
Подход разреженного кодирования
Обобщенная архитектура
bull DL сеть может быть собрана каскадированием и использованием обучения с учителем
Здесь используется forward propagation для обучения
Для настройки коэффициентов используется метод fprof для каждого
Требуется знание градиента энергии
Элементы (kl) матрицы Якобиана
Требуется знание градиента энергии 120597119864120597119882119894 = 120597119864120597119883119894120597119865119894(119883119894minus1119882119894)120597119882119894
ሾ1times 119873119908ሿ= ሾ1times 119873119909ሿlowast[119873119909 times 119873119908] Элементы (kl) матрицы Якобиана
Сводится к рекуррентному соотношению для вычисления градиента 120597119864120597119883119894minus1 = 120597119864120597119883119894120597119865119894(119883119894minus1119882119894)120597119883119894minus1
В итоге
Для вычисления градиента может использоваться метод back propagation
В действительности работают любые архитектуры построения функции Нужно конструировать связи и функции блоков
Язык Torch 7 ndash современный инструмент моделирования и имплементации
Machine Learning with Torch7 (httpcodecogbitscomwikidokuphpid=start)
bull These tutorials were originally designed for the IPAM Summer School on Deep Learning more info herebull This wiki provides multiple tutorials with the overall objective of teaching you how to do machine learning
with Torch7bull Torch7 provides a Matlab-like environment for state-of-the-art machine learning algorithms It is easy to use
and provides a very efficient implementation thanks to an easy and fast scripting language (LuaJIT) and an underlying C implementation
bull These tutorials should be readdone in orderbull Tutorial 1 Setup Basics Getting Startedbull Tutorial 2 Supervised Learningbull Tutorial 3 Unsupervised Learningbull Tutorial 4 Graphical Modelsbull Tutorial 5 Creating New Modulesbull Tutorial 6 Using CUDAbull To follow these tutorials and do the exercises you will need to download the associated code which is hosted
on GitHub on this page In this repository each directory corresponds to a tutorial herebull starttxt middot Last modified 20140204 2246 by clement
Torch 7 является расширением Lua
What is LuaLua is a powerful fast lightweight embeddable scripting languageLua combines simple procedural syntax with powerful data description constructs based on associative arrays and extensible semantics Lua is dynamically typed runs by interpreting bytecode for a register-based virtual machine and has automatic memory management with incremental garbage collection making it ideal for configuration scripting and rapid prototyping
Why choose LuaLua is a proven robust languageLua has been used in many industrial applications (eg Adobes Photoshop Lightroom) with an emphasis on embedded systems (eg the Ginga middleware for digital TV in Brazil) and games (eg World of Warcraft and Angry Birds) Lua is currently the leading scripting language in games Lua has a solid reference manual and there are several books about it Several versions of Lua have been released and used in real applications since its creation in 1993 Lua featured in HOPL III the Third ACM SIGPLAN History of Programming Languages Conference in June 2007 Lua won the Front Line Award 2011 from the Game Developers Magazine
Свертка и архитектура 4-х уровневой сверточной сети
Функциональная структура
Примеры успешного применения сверточных сетей
Диагностика эпилепсии по ЭЭГ
Реализация сверточной сетью
Одна из самых больших сверточных сетейbull Krizhevsky Sutskever Hinton 2012bull 650 000 нейронов 832 000 000 синапсов 60 000000 пареметровbull Использовался backprop на GPUbull Обучающая выборка на материалах 20 летbull Купил Google в январе 2013bull В мае 2013 развернул как сервис Photo Tagging Google+
Пример тэгирования
Пример поиска похожих по изображению
Пример поиска в коллекции изображений по текстовому запросу
Пример laquoоблачногоraquo классификатора изображений
Самообучающиеся нейронные сети на основе минимизации функции энергииbull Применима к сетям с обратными связямиbull Конструирование функции энергии должно обеспечивать
laquoконтрастностьraquo разделения
bull Энергетическая функция может Неформально рассматриваться как отрицательный логарифм плотности вероятности
Y 2=(Y1)2
RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцмана
bull Из DBM cтроится Deep Belief Network (DBN)
bull w mdash вес между нейронами
bull b mdash смещение нейрона
bull s mdash состояние нейрона
Алгоритм обучения Contrastive Divergence (CD)bull w_ij mdash веc между i-ым нейроном Вероятность пар может быть представлена как
bull a_i mdash смещение видимого нейрона
bull b_j mdash смещение скрытого нейрона
bull v_i mdash состояние видимого нейрона
bull h_j mdash состояние скрытого нейрона Полная вероятность состояния видимых нейронов
Основные уравнения адаптации
Алгоритм Хинтона - Contrastive Divergence (CD-k)
1 состояние видимых нейронов приравнивается к входному образу2 выводятся вероятности состояний скрытого слоя3 каждому нейрону скрытого слоя ставится в соответствие состояние laquo1raquo с вероятностью равной его текущему состоянию4 выводятся вероятности видимого слоя на основании скрытого5 если текущая итерация меньше k то возврат к шагу 26 выводятся вероятности состояний скрытого слоя
darch Package for deep architectures and Restricted-Bolzmann-MachinesThe darch package is build on the basis of the code from G E Hinton and R R Salakhutdinov (available under Matlab Code for deep belief nets last visit 01082013) This package is for generating neural networks with many layers (deep architectures) and train them with the method introduced by the publications A fast learning algorithm for deep belief nets (G E Hinton S Osindero Y W Teh) and Reducing the dimensionality of data with neural networks (G E Hinton R R Salakhutdinov) This method includes a pre training with the contrastive divergence method publishing by GE Hinton (2002) and a fine tuning with common known training algorithms like backpropagation or conjugate gradient
bull Version 091bull Imports futilelogger ff methodsbull Published 2014-03-16bull Author Martin Dreesbull Maintainer Martin Drees ltmdrees at studfh-dortmunddegtbull License GPL-2bull URL httpgithubcommaddin79darchbull NeedsCompilation nobull Materials READMEbull CRAN checks darch results
Связь плотности вероятности и энергии
Используется распределение Гиббса
Задача обучения с точки минимизации энергии сети
bull Сконструировать функцию энергии с малыми значениями на обучающей выборке и с большими значениями всюду вне этого множества
bull Первое несложно а второе представляет задачу процесса обучения
Интуитивные соображения
Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decomposition LISTA ndashметоды использующие разреженные коды
Латентная переменная Z =argmin_z Distance[Decoder(Z)Y]+FactorB(Z)MAPminimaize sum of factors
Автоэнкодер (auto encoder) Автоэнкодер представляет собой алгоритм обучения без учителя который использует нейронную сеть и метод обратного распространения ошибки для того чтобы добиться того что входной вектор признаков вызывал отклик сети равный входному вектору те y = x Автоэнкодер пытается построить функцию h(x) = x
Архитекттура ICA моделей
Итеративные алгоритмы с оптимальным разреженным кодированием ISTAFISTA
Самоорганизация данных методами Deep Learning
>
Знакомство с пакетом deepnet
Назначение
Составdbndnntrain - обучение сети с архитектурой DBN (deep belief network)loadmnist - формирование данных из файлов MNISTnnpredict - предсказание новых выборок на обученной нейронной сетиnntest ndash тестирование обученной нейронной сети с возвращением значения ошибкиnntrain ndash обучение одностлойной или многослойной нейронной сети методом backproprbmdown ndash генерирование видимого вектора для скрытых состояний сети RBMrbmtrain ndash обучение сети RBMrbmup ndash извлечение скрытых состояний RBM по известным видимым состояниямsaednntrain ndash обучение нейронной сети с архитектурой stacked autoencoder
Прогнозирование (классификация) нейронной сетью с архитектурой stacked auto encoder
Argumentsbull x matrix of x values for examplesbull y vector or matrix of target values for examplesbull hidden vector for number of units of hidden layersDefault is c(10)bull activationfun activation function of hidden unitCan be sigmlinear or tanhDefault isbull sigm for logistic functionbull learningrate learning rate for gradient descent Default is 08bull momentum momentum for gradient descent Default is 05 bull learningrate_scalebull learning rate will be mutiplied by this scale after every iteration Default is 1 bull numepochs number of iteration for samples Default is 3bull batchsize size of mini-batch Default is 100bull output function of output unit can be sigmlinear or softmax Default is sigmbull sae_output function of autoencoder output unit can be sigmlinear or softmax Defaultbull is linearbull hidden_dropout drop out fraction for hidden layer Default is 0bull visible_dropoutbull drop out fraction for input layer Default is 0
Что такое MNISTbull Смешанный набор данных Национального института стандартов и
технологий (mixed National Institute of Standards and Technology MNIST) был создан исследователями IR в качестве эталона для сравнения различных алгоритмов IR
bull Набор данных состоит всего из 70 000 изображений 60 000 обучающих (используемых для создания модели IR) и 10 000 тестовых (применяемых для оценки точности модели) Каждое изображение MNIST mdash это оцифрованная картинка одной цифры написанной от руки Каждое изображение имеет размер 28 times 28 пикселей Каждое значение пикселя лежит в диапазоне от 0 (представляет белый цвет) до 255 (представляет черный цвет) Промежуточные значения отражают оттенки серого
httpyannlecuncomexdbmnistобучающие и тестовые данные хранятся в двух файлах а не в одном Один файл содержит значения пикселей для изображений а другой mdash метки изображений (0ndash9) Каждый из четырех файлов также содержит заголовочную информацию и все они хранятся в двоичном формате сжатом в формате gziptrain-images-idx3-ubytegz training set images (9912422 bytes)
train-labels-idx1-ubytegz training set labels (28881 bytes)
t10k-images-idx3-ubytegz test set images (1648877 bytes)
t10k-labels-idx1-ubytegz test set labels (4542 bytes)
bull Каждая строка файла представляет собой имидж размера 28 times 28 вектором длины 784 каждый признак ndash значение пиксела в черно-белой шале Первый столбец содержит метку цифры 0ndash9 следующие 2828 столбцов представляют целый имидж и так далее Пример первой строки
Визуализация
bull plotmnist()bull mnistbull paramsbull train$n number of train samplesbull train$x pix of every train sample imagebull train$y label of every train sample imagebull train$yy one-of-c vector of label of train sample imagebull test$n number of test samplesbull test$x pix of every test sample imagebull test$y label of every test sample imagebull test$yy one-of-c vector of label of test sample image
plotmnist()
Распознавание рукописных цифр в deepnet
another way to download the MNIST datasetmnist downloadmnist(range=c(01)global=FALSE)look at MNIST datamnist$train$xmnist$train$ymnist$test$xmnist$test$ytrain of the sae neural networkdnnlt-saednntrain(mnist$train$xmnist$train$yhidden=c(55))test of the sae neural networknntest(dnnmnist$test$xmnist$test$yt=05)
End of slides part 2 (Part 3 - NLP remaining)
Vladimirvkrylovgmailcom
Основы предиктивной аналитики Часть вторая
Применение методов Machine Learning к решению задач аналитики
Дмитрий Ветров кандидат физико-математических наук ру
Методы обучающихся машин для аналитики которые мы рассмотрим
Сначала нужно загрузить несколько пакетов (packages) для поддер
Данные для анализа
Скрипт для генерации
Данные которые мы будем использовать для демо состоят из смес
Так выглядят визуализированные данные сгенерированные скриптом
Разделение данных на обучающие и проверочные является важным эт
K-means алгоритм на пальцах
Обучающаяся машина без учителя Алгоритм K-means
Slide 13
Slide 14
Здесь мы используем заранее известный факт что необходимо кла
Еще одна иллюстрация работы алгоритма K-means
Обучающаяся машина без учителя Алгоритм KNN (Nearest Neighbor)
Как работает алгоритм KNN
knn(train test cl k = 1 l = 0 prob = FALSE useall = TRUE
Slide 20
Результаты кластеризации и зависимость ошибки от числа кластеро
Recursive PartitioningRegression Tree
Метод RP реализует обучение машины строить дерево решений по об
Recursive PartitioningRegression Tree (2)
rpart(formula data weights subset naaction = narpart met
Slide 26
Recursive PartitioningRegression Tree example
Анализ по главным компонентам (Principal Component Analysis PC
Итеративные алгоритмы с оптимальным разреженным кодированием IS
Самоорганизация данных методами Deep Learning
Знакомство с пакетом deepnet
Прогнозирование (классификация) нейронной сетью с архитектурой
Arguments
Архитектура сети SAE
Архитектура с 5Х4 hidden 3 outs
Example
Анализ обучающего набора данных
Параметры SAE сети
Коэффициенты связей
Предсказание обученной сетью
Сравнение обучающей и тестовой выборки
plot3d(xy)
Работаем с пакетом MNIST
httpyannlecuncomexdbmnist
Подготовка к обработке
Slide 118
Визуализация
plotmnist()
Распознавание рукописных цифр в deepnet
End of slides part 2 (Part 3 - NLP remaining)
Обобщенная архитектура
bull DL сеть может быть собрана каскадированием и использованием обучения с учителем
Здесь используется forward propagation для обучения
Для настройки коэффициентов используется метод fprof для каждого
Требуется знание градиента энергии
Элементы (kl) матрицы Якобиана
Требуется знание градиента энергии 120597119864120597119882119894 = 120597119864120597119883119894120597119865119894(119883119894minus1119882119894)120597119882119894
ሾ1times 119873119908ሿ= ሾ1times 119873119909ሿlowast[119873119909 times 119873119908] Элементы (kl) матрицы Якобиана
Сводится к рекуррентному соотношению для вычисления градиента 120597119864120597119883119894minus1 = 120597119864120597119883119894120597119865119894(119883119894minus1119882119894)120597119883119894minus1
В итоге
Для вычисления градиента может использоваться метод back propagation
В действительности работают любые архитектуры построения функции Нужно конструировать связи и функции блоков
Язык Torch 7 ndash современный инструмент моделирования и имплементации
Machine Learning with Torch7 (httpcodecogbitscomwikidokuphpid=start)
bull These tutorials were originally designed for the IPAM Summer School on Deep Learning more info herebull This wiki provides multiple tutorials with the overall objective of teaching you how to do machine learning
with Torch7bull Torch7 provides a Matlab-like environment for state-of-the-art machine learning algorithms It is easy to use
and provides a very efficient implementation thanks to an easy and fast scripting language (LuaJIT) and an underlying C implementation
bull These tutorials should be readdone in orderbull Tutorial 1 Setup Basics Getting Startedbull Tutorial 2 Supervised Learningbull Tutorial 3 Unsupervised Learningbull Tutorial 4 Graphical Modelsbull Tutorial 5 Creating New Modulesbull Tutorial 6 Using CUDAbull To follow these tutorials and do the exercises you will need to download the associated code which is hosted
on GitHub on this page In this repository each directory corresponds to a tutorial herebull starttxt middot Last modified 20140204 2246 by clement
Torch 7 является расширением Lua
What is LuaLua is a powerful fast lightweight embeddable scripting languageLua combines simple procedural syntax with powerful data description constructs based on associative arrays and extensible semantics Lua is dynamically typed runs by interpreting bytecode for a register-based virtual machine and has automatic memory management with incremental garbage collection making it ideal for configuration scripting and rapid prototyping
Why choose LuaLua is a proven robust languageLua has been used in many industrial applications (eg Adobes Photoshop Lightroom) with an emphasis on embedded systems (eg the Ginga middleware for digital TV in Brazil) and games (eg World of Warcraft and Angry Birds) Lua is currently the leading scripting language in games Lua has a solid reference manual and there are several books about it Several versions of Lua have been released and used in real applications since its creation in 1993 Lua featured in HOPL III the Third ACM SIGPLAN History of Programming Languages Conference in June 2007 Lua won the Front Line Award 2011 from the Game Developers Magazine
Свертка и архитектура 4-х уровневой сверточной сети
Функциональная структура
Примеры успешного применения сверточных сетей
Диагностика эпилепсии по ЭЭГ
Реализация сверточной сетью
Одна из самых больших сверточных сетейbull Krizhevsky Sutskever Hinton 2012bull 650 000 нейронов 832 000 000 синапсов 60 000000 пареметровbull Использовался backprop на GPUbull Обучающая выборка на материалах 20 летbull Купил Google в январе 2013bull В мае 2013 развернул как сервис Photo Tagging Google+
Пример тэгирования
Пример поиска похожих по изображению
Пример поиска в коллекции изображений по текстовому запросу
Пример laquoоблачногоraquo классификатора изображений
Самообучающиеся нейронные сети на основе минимизации функции энергииbull Применима к сетям с обратными связямиbull Конструирование функции энергии должно обеспечивать
laquoконтрастностьraquo разделения
bull Энергетическая функция может Неформально рассматриваться как отрицательный логарифм плотности вероятности
Y 2=(Y1)2
RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцмана
bull Из DBM cтроится Deep Belief Network (DBN)
bull w mdash вес между нейронами
bull b mdash смещение нейрона
bull s mdash состояние нейрона
Алгоритм обучения Contrastive Divergence (CD)bull w_ij mdash веc между i-ым нейроном Вероятность пар может быть представлена как
bull a_i mdash смещение видимого нейрона
bull b_j mdash смещение скрытого нейрона
bull v_i mdash состояние видимого нейрона
bull h_j mdash состояние скрытого нейрона Полная вероятность состояния видимых нейронов
Основные уравнения адаптации
Алгоритм Хинтона - Contrastive Divergence (CD-k)
1 состояние видимых нейронов приравнивается к входному образу2 выводятся вероятности состояний скрытого слоя3 каждому нейрону скрытого слоя ставится в соответствие состояние laquo1raquo с вероятностью равной его текущему состоянию4 выводятся вероятности видимого слоя на основании скрытого5 если текущая итерация меньше k то возврат к шагу 26 выводятся вероятности состояний скрытого слоя
darch Package for deep architectures and Restricted-Bolzmann-MachinesThe darch package is build on the basis of the code from G E Hinton and R R Salakhutdinov (available under Matlab Code for deep belief nets last visit 01082013) This package is for generating neural networks with many layers (deep architectures) and train them with the method introduced by the publications A fast learning algorithm for deep belief nets (G E Hinton S Osindero Y W Teh) and Reducing the dimensionality of data with neural networks (G E Hinton R R Salakhutdinov) This method includes a pre training with the contrastive divergence method publishing by GE Hinton (2002) and a fine tuning with common known training algorithms like backpropagation or conjugate gradient
bull Version 091bull Imports futilelogger ff methodsbull Published 2014-03-16bull Author Martin Dreesbull Maintainer Martin Drees ltmdrees at studfh-dortmunddegtbull License GPL-2bull URL httpgithubcommaddin79darchbull NeedsCompilation nobull Materials READMEbull CRAN checks darch results
Связь плотности вероятности и энергии
Используется распределение Гиббса
Задача обучения с точки минимизации энергии сети
bull Сконструировать функцию энергии с малыми значениями на обучающей выборке и с большими значениями всюду вне этого множества
bull Первое несложно а второе представляет задачу процесса обучения
Интуитивные соображения
Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decomposition LISTA ndashметоды использующие разреженные коды
Латентная переменная Z =argmin_z Distance[Decoder(Z)Y]+FactorB(Z)MAPminimaize sum of factors
Автоэнкодер (auto encoder) Автоэнкодер представляет собой алгоритм обучения без учителя который использует нейронную сеть и метод обратного распространения ошибки для того чтобы добиться того что входной вектор признаков вызывал отклик сети равный входному вектору те y = x Автоэнкодер пытается построить функцию h(x) = x
Архитекттура ICA моделей
Итеративные алгоритмы с оптимальным разреженным кодированием ISTAFISTA
Самоорганизация данных методами Deep Learning
>
Знакомство с пакетом deepnet
Назначение
Составdbndnntrain - обучение сети с архитектурой DBN (deep belief network)loadmnist - формирование данных из файлов MNISTnnpredict - предсказание новых выборок на обученной нейронной сетиnntest ndash тестирование обученной нейронной сети с возвращением значения ошибкиnntrain ndash обучение одностлойной или многослойной нейронной сети методом backproprbmdown ndash генерирование видимого вектора для скрытых состояний сети RBMrbmtrain ndash обучение сети RBMrbmup ndash извлечение скрытых состояний RBM по известным видимым состояниямsaednntrain ndash обучение нейронной сети с архитектурой stacked autoencoder
Прогнозирование (классификация) нейронной сетью с архитектурой stacked auto encoder
Argumentsbull x matrix of x values for examplesbull y vector or matrix of target values for examplesbull hidden vector for number of units of hidden layersDefault is c(10)bull activationfun activation function of hidden unitCan be sigmlinear or tanhDefault isbull sigm for logistic functionbull learningrate learning rate for gradient descent Default is 08bull momentum momentum for gradient descent Default is 05 bull learningrate_scalebull learning rate will be mutiplied by this scale after every iteration Default is 1 bull numepochs number of iteration for samples Default is 3bull batchsize size of mini-batch Default is 100bull output function of output unit can be sigmlinear or softmax Default is sigmbull sae_output function of autoencoder output unit can be sigmlinear or softmax Defaultbull is linearbull hidden_dropout drop out fraction for hidden layer Default is 0bull visible_dropoutbull drop out fraction for input layer Default is 0
Что такое MNISTbull Смешанный набор данных Национального института стандартов и
технологий (mixed National Institute of Standards and Technology MNIST) был создан исследователями IR в качестве эталона для сравнения различных алгоритмов IR
bull Набор данных состоит всего из 70 000 изображений 60 000 обучающих (используемых для создания модели IR) и 10 000 тестовых (применяемых для оценки точности модели) Каждое изображение MNIST mdash это оцифрованная картинка одной цифры написанной от руки Каждое изображение имеет размер 28 times 28 пикселей Каждое значение пикселя лежит в диапазоне от 0 (представляет белый цвет) до 255 (представляет черный цвет) Промежуточные значения отражают оттенки серого
httpyannlecuncomexdbmnistобучающие и тестовые данные хранятся в двух файлах а не в одном Один файл содержит значения пикселей для изображений а другой mdash метки изображений (0ndash9) Каждый из четырех файлов также содержит заголовочную информацию и все они хранятся в двоичном формате сжатом в формате gziptrain-images-idx3-ubytegz training set images (9912422 bytes)
train-labels-idx1-ubytegz training set labels (28881 bytes)
t10k-images-idx3-ubytegz test set images (1648877 bytes)
t10k-labels-idx1-ubytegz test set labels (4542 bytes)
bull Каждая строка файла представляет собой имидж размера 28 times 28 вектором длины 784 каждый признак ndash значение пиксела в черно-белой шале Первый столбец содержит метку цифры 0ndash9 следующие 2828 столбцов представляют целый имидж и так далее Пример первой строки
Визуализация
bull plotmnist()bull mnistbull paramsbull train$n number of train samplesbull train$x pix of every train sample imagebull train$y label of every train sample imagebull train$yy one-of-c vector of label of train sample imagebull test$n number of test samplesbull test$x pix of every test sample imagebull test$y label of every test sample imagebull test$yy one-of-c vector of label of test sample image
plotmnist()
Распознавание рукописных цифр в deepnet
another way to download the MNIST datasetmnist downloadmnist(range=c(01)global=FALSE)look at MNIST datamnist$train$xmnist$train$ymnist$test$xmnist$test$ytrain of the sae neural networkdnnlt-saednntrain(mnist$train$xmnist$train$yhidden=c(55))test of the sae neural networknntest(dnnmnist$test$xmnist$test$yt=05)
End of slides part 2 (Part 3 - NLP remaining)
Vladimirvkrylovgmailcom
Основы предиктивной аналитики Часть вторая
Применение методов Machine Learning к решению задач аналитики
Дмитрий Ветров кандидат физико-математических наук ру
Методы обучающихся машин для аналитики которые мы рассмотрим
Сначала нужно загрузить несколько пакетов (packages) для поддер
Данные для анализа
Скрипт для генерации
Данные которые мы будем использовать для демо состоят из смес
Так выглядят визуализированные данные сгенерированные скриптом
Разделение данных на обучающие и проверочные является важным эт
K-means алгоритм на пальцах
Обучающаяся машина без учителя Алгоритм K-means
Slide 13
Slide 14
Здесь мы используем заранее известный факт что необходимо кла
Еще одна иллюстрация работы алгоритма K-means
Обучающаяся машина без учителя Алгоритм KNN (Nearest Neighbor)
Как работает алгоритм KNN
knn(train test cl k = 1 l = 0 prob = FALSE useall = TRUE
Slide 20
Результаты кластеризации и зависимость ошибки от числа кластеро
Recursive PartitioningRegression Tree
Метод RP реализует обучение машины строить дерево решений по об
Recursive PartitioningRegression Tree (2)
rpart(formula data weights subset naaction = narpart met
Slide 26
Recursive PartitioningRegression Tree example
Анализ по главным компонентам (Principal Component Analysis PC
Итеративные алгоритмы с оптимальным разреженным кодированием IS
Самоорганизация данных методами Deep Learning
Знакомство с пакетом deepnet
Прогнозирование (классификация) нейронной сетью с архитектурой
Arguments
Архитектура сети SAE
Архитектура с 5Х4 hidden 3 outs
Example
Анализ обучающего набора данных
Параметры SAE сети
Коэффициенты связей
Предсказание обученной сетью
Сравнение обучающей и тестовой выборки
plot3d(xy)
Работаем с пакетом MNIST
httpyannlecuncomexdbmnist
Подготовка к обработке
Slide 118
Визуализация
plotmnist()
Распознавание рукописных цифр в deepnet
End of slides part 2 (Part 3 - NLP remaining)
Здесь используется forward propagation для обучения
Для настройки коэффициентов используется метод fprof для каждого
Требуется знание градиента энергии
Элементы (kl) матрицы Якобиана
Требуется знание градиента энергии 120597119864120597119882119894 = 120597119864120597119883119894120597119865119894(119883119894minus1119882119894)120597119882119894
ሾ1times 119873119908ሿ= ሾ1times 119873119909ሿlowast[119873119909 times 119873119908] Элементы (kl) матрицы Якобиана
Сводится к рекуррентному соотношению для вычисления градиента 120597119864120597119883119894minus1 = 120597119864120597119883119894120597119865119894(119883119894minus1119882119894)120597119883119894minus1
В итоге
Для вычисления градиента может использоваться метод back propagation
В действительности работают любые архитектуры построения функции Нужно конструировать связи и функции блоков
Язык Torch 7 ndash современный инструмент моделирования и имплементации
Machine Learning with Torch7 (httpcodecogbitscomwikidokuphpid=start)
bull These tutorials were originally designed for the IPAM Summer School on Deep Learning more info herebull This wiki provides multiple tutorials with the overall objective of teaching you how to do machine learning
with Torch7bull Torch7 provides a Matlab-like environment for state-of-the-art machine learning algorithms It is easy to use
and provides a very efficient implementation thanks to an easy and fast scripting language (LuaJIT) and an underlying C implementation
bull These tutorials should be readdone in orderbull Tutorial 1 Setup Basics Getting Startedbull Tutorial 2 Supervised Learningbull Tutorial 3 Unsupervised Learningbull Tutorial 4 Graphical Modelsbull Tutorial 5 Creating New Modulesbull Tutorial 6 Using CUDAbull To follow these tutorials and do the exercises you will need to download the associated code which is hosted
on GitHub on this page In this repository each directory corresponds to a tutorial herebull starttxt middot Last modified 20140204 2246 by clement
Torch 7 является расширением Lua
What is LuaLua is a powerful fast lightweight embeddable scripting languageLua combines simple procedural syntax with powerful data description constructs based on associative arrays and extensible semantics Lua is dynamically typed runs by interpreting bytecode for a register-based virtual machine and has automatic memory management with incremental garbage collection making it ideal for configuration scripting and rapid prototyping
Why choose LuaLua is a proven robust languageLua has been used in many industrial applications (eg Adobes Photoshop Lightroom) with an emphasis on embedded systems (eg the Ginga middleware for digital TV in Brazil) and games (eg World of Warcraft and Angry Birds) Lua is currently the leading scripting language in games Lua has a solid reference manual and there are several books about it Several versions of Lua have been released and used in real applications since its creation in 1993 Lua featured in HOPL III the Third ACM SIGPLAN History of Programming Languages Conference in June 2007 Lua won the Front Line Award 2011 from the Game Developers Magazine
Свертка и архитектура 4-х уровневой сверточной сети
Функциональная структура
Примеры успешного применения сверточных сетей
Диагностика эпилепсии по ЭЭГ
Реализация сверточной сетью
Одна из самых больших сверточных сетейbull Krizhevsky Sutskever Hinton 2012bull 650 000 нейронов 832 000 000 синапсов 60 000000 пареметровbull Использовался backprop на GPUbull Обучающая выборка на материалах 20 летbull Купил Google в январе 2013bull В мае 2013 развернул как сервис Photo Tagging Google+
Пример тэгирования
Пример поиска похожих по изображению
Пример поиска в коллекции изображений по текстовому запросу
Пример laquoоблачногоraquo классификатора изображений
Самообучающиеся нейронные сети на основе минимизации функции энергииbull Применима к сетям с обратными связямиbull Конструирование функции энергии должно обеспечивать
laquoконтрастностьraquo разделения
bull Энергетическая функция может Неформально рассматриваться как отрицательный логарифм плотности вероятности
Y 2=(Y1)2
RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцмана
bull Из DBM cтроится Deep Belief Network (DBN)
bull w mdash вес между нейронами
bull b mdash смещение нейрона
bull s mdash состояние нейрона
Алгоритм обучения Contrastive Divergence (CD)bull w_ij mdash веc между i-ым нейроном Вероятность пар может быть представлена как
bull a_i mdash смещение видимого нейрона
bull b_j mdash смещение скрытого нейрона
bull v_i mdash состояние видимого нейрона
bull h_j mdash состояние скрытого нейрона Полная вероятность состояния видимых нейронов
Основные уравнения адаптации
Алгоритм Хинтона - Contrastive Divergence (CD-k)
1 состояние видимых нейронов приравнивается к входному образу2 выводятся вероятности состояний скрытого слоя3 каждому нейрону скрытого слоя ставится в соответствие состояние laquo1raquo с вероятностью равной его текущему состоянию4 выводятся вероятности видимого слоя на основании скрытого5 если текущая итерация меньше k то возврат к шагу 26 выводятся вероятности состояний скрытого слоя
darch Package for deep architectures and Restricted-Bolzmann-MachinesThe darch package is build on the basis of the code from G E Hinton and R R Salakhutdinov (available under Matlab Code for deep belief nets last visit 01082013) This package is for generating neural networks with many layers (deep architectures) and train them with the method introduced by the publications A fast learning algorithm for deep belief nets (G E Hinton S Osindero Y W Teh) and Reducing the dimensionality of data with neural networks (G E Hinton R R Salakhutdinov) This method includes a pre training with the contrastive divergence method publishing by GE Hinton (2002) and a fine tuning with common known training algorithms like backpropagation or conjugate gradient
bull Version 091bull Imports futilelogger ff methodsbull Published 2014-03-16bull Author Martin Dreesbull Maintainer Martin Drees ltmdrees at studfh-dortmunddegtbull License GPL-2bull URL httpgithubcommaddin79darchbull NeedsCompilation nobull Materials READMEbull CRAN checks darch results
Связь плотности вероятности и энергии
Используется распределение Гиббса
Задача обучения с точки минимизации энергии сети
bull Сконструировать функцию энергии с малыми значениями на обучающей выборке и с большими значениями всюду вне этого множества
bull Первое несложно а второе представляет задачу процесса обучения
Интуитивные соображения
Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decomposition LISTA ndashметоды использующие разреженные коды
Латентная переменная Z =argmin_z Distance[Decoder(Z)Y]+FactorB(Z)MAPminimaize sum of factors
Автоэнкодер (auto encoder) Автоэнкодер представляет собой алгоритм обучения без учителя который использует нейронную сеть и метод обратного распространения ошибки для того чтобы добиться того что входной вектор признаков вызывал отклик сети равный входному вектору те y = x Автоэнкодер пытается построить функцию h(x) = x
Архитекттура ICA моделей
Итеративные алгоритмы с оптимальным разреженным кодированием ISTAFISTA
Самоорганизация данных методами Deep Learning
>
Знакомство с пакетом deepnet
Назначение
Составdbndnntrain - обучение сети с архитектурой DBN (deep belief network)loadmnist - формирование данных из файлов MNISTnnpredict - предсказание новых выборок на обученной нейронной сетиnntest ndash тестирование обученной нейронной сети с возвращением значения ошибкиnntrain ndash обучение одностлойной или многослойной нейронной сети методом backproprbmdown ndash генерирование видимого вектора для скрытых состояний сети RBMrbmtrain ndash обучение сети RBMrbmup ndash извлечение скрытых состояний RBM по известным видимым состояниямsaednntrain ndash обучение нейронной сети с архитектурой stacked autoencoder
Прогнозирование (классификация) нейронной сетью с архитектурой stacked auto encoder
Argumentsbull x matrix of x values for examplesbull y vector or matrix of target values for examplesbull hidden vector for number of units of hidden layersDefault is c(10)bull activationfun activation function of hidden unitCan be sigmlinear or tanhDefault isbull sigm for logistic functionbull learningrate learning rate for gradient descent Default is 08bull momentum momentum for gradient descent Default is 05 bull learningrate_scalebull learning rate will be mutiplied by this scale after every iteration Default is 1 bull numepochs number of iteration for samples Default is 3bull batchsize size of mini-batch Default is 100bull output function of output unit can be sigmlinear or softmax Default is sigmbull sae_output function of autoencoder output unit can be sigmlinear or softmax Defaultbull is linearbull hidden_dropout drop out fraction for hidden layer Default is 0bull visible_dropoutbull drop out fraction for input layer Default is 0
Что такое MNISTbull Смешанный набор данных Национального института стандартов и
технологий (mixed National Institute of Standards and Technology MNIST) был создан исследователями IR в качестве эталона для сравнения различных алгоритмов IR
bull Набор данных состоит всего из 70 000 изображений 60 000 обучающих (используемых для создания модели IR) и 10 000 тестовых (применяемых для оценки точности модели) Каждое изображение MNIST mdash это оцифрованная картинка одной цифры написанной от руки Каждое изображение имеет размер 28 times 28 пикселей Каждое значение пикселя лежит в диапазоне от 0 (представляет белый цвет) до 255 (представляет черный цвет) Промежуточные значения отражают оттенки серого
httpyannlecuncomexdbmnistобучающие и тестовые данные хранятся в двух файлах а не в одном Один файл содержит значения пикселей для изображений а другой mdash метки изображений (0ndash9) Каждый из четырех файлов также содержит заголовочную информацию и все они хранятся в двоичном формате сжатом в формате gziptrain-images-idx3-ubytegz training set images (9912422 bytes)
train-labels-idx1-ubytegz training set labels (28881 bytes)
t10k-images-idx3-ubytegz test set images (1648877 bytes)
t10k-labels-idx1-ubytegz test set labels (4542 bytes)
bull Каждая строка файла представляет собой имидж размера 28 times 28 вектором длины 784 каждый признак ndash значение пиксела в черно-белой шале Первый столбец содержит метку цифры 0ndash9 следующие 2828 столбцов представляют целый имидж и так далее Пример первой строки
Визуализация
bull plotmnist()bull mnistbull paramsbull train$n number of train samplesbull train$x pix of every train sample imagebull train$y label of every train sample imagebull train$yy one-of-c vector of label of train sample imagebull test$n number of test samplesbull test$x pix of every test sample imagebull test$y label of every test sample imagebull test$yy one-of-c vector of label of test sample image
plotmnist()
Распознавание рукописных цифр в deepnet
another way to download the MNIST datasetmnist downloadmnist(range=c(01)global=FALSE)look at MNIST datamnist$train$xmnist$train$ymnist$test$xmnist$test$ytrain of the sae neural networkdnnlt-saednntrain(mnist$train$xmnist$train$yhidden=c(55))test of the sae neural networknntest(dnnmnist$test$xmnist$test$yt=05)
End of slides part 2 (Part 3 - NLP remaining)
Vladimirvkrylovgmailcom
Основы предиктивной аналитики Часть вторая
Применение методов Machine Learning к решению задач аналитики
Дмитрий Ветров кандидат физико-математических наук ру
Методы обучающихся машин для аналитики которые мы рассмотрим
Сначала нужно загрузить несколько пакетов (packages) для поддер
Данные для анализа
Скрипт для генерации
Данные которые мы будем использовать для демо состоят из смес
Так выглядят визуализированные данные сгенерированные скриптом
Разделение данных на обучающие и проверочные является важным эт
K-means алгоритм на пальцах
Обучающаяся машина без учителя Алгоритм K-means
Slide 13
Slide 14
Здесь мы используем заранее известный факт что необходимо кла
Еще одна иллюстрация работы алгоритма K-means
Обучающаяся машина без учителя Алгоритм KNN (Nearest Neighbor)
Как работает алгоритм KNN
knn(train test cl k = 1 l = 0 prob = FALSE useall = TRUE
Slide 20
Результаты кластеризации и зависимость ошибки от числа кластеро
Recursive PartitioningRegression Tree
Метод RP реализует обучение машины строить дерево решений по об
Recursive PartitioningRegression Tree (2)
rpart(formula data weights subset naaction = narpart met
Slide 26
Recursive PartitioningRegression Tree example
Анализ по главным компонентам (Principal Component Analysis PC
Итеративные алгоритмы с оптимальным разреженным кодированием IS
Самоорганизация данных методами Deep Learning
Знакомство с пакетом deepnet
Прогнозирование (классификация) нейронной сетью с архитектурой
Arguments
Архитектура сети SAE
Архитектура с 5Х4 hidden 3 outs
Example
Анализ обучающего набора данных
Параметры SAE сети
Коэффициенты связей
Предсказание обученной сетью
Сравнение обучающей и тестовой выборки
plot3d(xy)
Работаем с пакетом MNIST
httpyannlecuncomexdbmnist
Подготовка к обработке
Slide 118
Визуализация
plotmnist()
Распознавание рукописных цифр в deepnet
End of slides part 2 (Part 3 - NLP remaining)
Требуется знание градиента энергии 120597119864120597119882119894 = 120597119864120597119883119894120597119865119894(119883119894minus1119882119894)120597119882119894
ሾ1times 119873119908ሿ= ሾ1times 119873119909ሿlowast[119873119909 times 119873119908] Элементы (kl) матрицы Якобиана
Сводится к рекуррентному соотношению для вычисления градиента 120597119864120597119883119894minus1 = 120597119864120597119883119894120597119865119894(119883119894minus1119882119894)120597119883119894minus1
В итоге
Для вычисления градиента может использоваться метод back propagation
В действительности работают любые архитектуры построения функции Нужно конструировать связи и функции блоков
Язык Torch 7 ndash современный инструмент моделирования и имплементации
Machine Learning with Torch7 (httpcodecogbitscomwikidokuphpid=start)
bull These tutorials were originally designed for the IPAM Summer School on Deep Learning more info herebull This wiki provides multiple tutorials with the overall objective of teaching you how to do machine learning
with Torch7bull Torch7 provides a Matlab-like environment for state-of-the-art machine learning algorithms It is easy to use
and provides a very efficient implementation thanks to an easy and fast scripting language (LuaJIT) and an underlying C implementation
bull These tutorials should be readdone in orderbull Tutorial 1 Setup Basics Getting Startedbull Tutorial 2 Supervised Learningbull Tutorial 3 Unsupervised Learningbull Tutorial 4 Graphical Modelsbull Tutorial 5 Creating New Modulesbull Tutorial 6 Using CUDAbull To follow these tutorials and do the exercises you will need to download the associated code which is hosted
on GitHub on this page In this repository each directory corresponds to a tutorial herebull starttxt middot Last modified 20140204 2246 by clement
Torch 7 является расширением Lua
What is LuaLua is a powerful fast lightweight embeddable scripting languageLua combines simple procedural syntax with powerful data description constructs based on associative arrays and extensible semantics Lua is dynamically typed runs by interpreting bytecode for a register-based virtual machine and has automatic memory management with incremental garbage collection making it ideal for configuration scripting and rapid prototyping
Why choose LuaLua is a proven robust languageLua has been used in many industrial applications (eg Adobes Photoshop Lightroom) with an emphasis on embedded systems (eg the Ginga middleware for digital TV in Brazil) and games (eg World of Warcraft and Angry Birds) Lua is currently the leading scripting language in games Lua has a solid reference manual and there are several books about it Several versions of Lua have been released and used in real applications since its creation in 1993 Lua featured in HOPL III the Third ACM SIGPLAN History of Programming Languages Conference in June 2007 Lua won the Front Line Award 2011 from the Game Developers Magazine
Свертка и архитектура 4-х уровневой сверточной сети
Функциональная структура
Примеры успешного применения сверточных сетей
Диагностика эпилепсии по ЭЭГ
Реализация сверточной сетью
Одна из самых больших сверточных сетейbull Krizhevsky Sutskever Hinton 2012bull 650 000 нейронов 832 000 000 синапсов 60 000000 пареметровbull Использовался backprop на GPUbull Обучающая выборка на материалах 20 летbull Купил Google в январе 2013bull В мае 2013 развернул как сервис Photo Tagging Google+
Пример тэгирования
Пример поиска похожих по изображению
Пример поиска в коллекции изображений по текстовому запросу
Пример laquoоблачногоraquo классификатора изображений
Самообучающиеся нейронные сети на основе минимизации функции энергииbull Применима к сетям с обратными связямиbull Конструирование функции энергии должно обеспечивать
laquoконтрастностьraquo разделения
bull Энергетическая функция может Неформально рассматриваться как отрицательный логарифм плотности вероятности
Y 2=(Y1)2
RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцмана
bull Из DBM cтроится Deep Belief Network (DBN)
bull w mdash вес между нейронами
bull b mdash смещение нейрона
bull s mdash состояние нейрона
Алгоритм обучения Contrastive Divergence (CD)bull w_ij mdash веc между i-ым нейроном Вероятность пар может быть представлена как
bull a_i mdash смещение видимого нейрона
bull b_j mdash смещение скрытого нейрона
bull v_i mdash состояние видимого нейрона
bull h_j mdash состояние скрытого нейрона Полная вероятность состояния видимых нейронов
Основные уравнения адаптации
Алгоритм Хинтона - Contrastive Divergence (CD-k)
1 состояние видимых нейронов приравнивается к входному образу2 выводятся вероятности состояний скрытого слоя3 каждому нейрону скрытого слоя ставится в соответствие состояние laquo1raquo с вероятностью равной его текущему состоянию4 выводятся вероятности видимого слоя на основании скрытого5 если текущая итерация меньше k то возврат к шагу 26 выводятся вероятности состояний скрытого слоя
darch Package for deep architectures and Restricted-Bolzmann-MachinesThe darch package is build on the basis of the code from G E Hinton and R R Salakhutdinov (available under Matlab Code for deep belief nets last visit 01082013) This package is for generating neural networks with many layers (deep architectures) and train them with the method introduced by the publications A fast learning algorithm for deep belief nets (G E Hinton S Osindero Y W Teh) and Reducing the dimensionality of data with neural networks (G E Hinton R R Salakhutdinov) This method includes a pre training with the contrastive divergence method publishing by GE Hinton (2002) and a fine tuning with common known training algorithms like backpropagation or conjugate gradient
bull Version 091bull Imports futilelogger ff methodsbull Published 2014-03-16bull Author Martin Dreesbull Maintainer Martin Drees ltmdrees at studfh-dortmunddegtbull License GPL-2bull URL httpgithubcommaddin79darchbull NeedsCompilation nobull Materials READMEbull CRAN checks darch results
Связь плотности вероятности и энергии
Используется распределение Гиббса
Задача обучения с точки минимизации энергии сети
bull Сконструировать функцию энергии с малыми значениями на обучающей выборке и с большими значениями всюду вне этого множества
bull Первое несложно а второе представляет задачу процесса обучения
Интуитивные соображения
Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decomposition LISTA ndashметоды использующие разреженные коды
Латентная переменная Z =argmin_z Distance[Decoder(Z)Y]+FactorB(Z)MAPminimaize sum of factors
Автоэнкодер (auto encoder) Автоэнкодер представляет собой алгоритм обучения без учителя который использует нейронную сеть и метод обратного распространения ошибки для того чтобы добиться того что входной вектор признаков вызывал отклик сети равный входному вектору те y = x Автоэнкодер пытается построить функцию h(x) = x
Архитекттура ICA моделей
Итеративные алгоритмы с оптимальным разреженным кодированием ISTAFISTA
Самоорганизация данных методами Deep Learning
>
Знакомство с пакетом deepnet
Назначение
Составdbndnntrain - обучение сети с архитектурой DBN (deep belief network)loadmnist - формирование данных из файлов MNISTnnpredict - предсказание новых выборок на обученной нейронной сетиnntest ndash тестирование обученной нейронной сети с возвращением значения ошибкиnntrain ndash обучение одностлойной или многослойной нейронной сети методом backproprbmdown ndash генерирование видимого вектора для скрытых состояний сети RBMrbmtrain ndash обучение сети RBMrbmup ndash извлечение скрытых состояний RBM по известным видимым состояниямsaednntrain ndash обучение нейронной сети с архитектурой stacked autoencoder
Прогнозирование (классификация) нейронной сетью с архитектурой stacked auto encoder
Argumentsbull x matrix of x values for examplesbull y vector or matrix of target values for examplesbull hidden vector for number of units of hidden layersDefault is c(10)bull activationfun activation function of hidden unitCan be sigmlinear or tanhDefault isbull sigm for logistic functionbull learningrate learning rate for gradient descent Default is 08bull momentum momentum for gradient descent Default is 05 bull learningrate_scalebull learning rate will be mutiplied by this scale after every iteration Default is 1 bull numepochs number of iteration for samples Default is 3bull batchsize size of mini-batch Default is 100bull output function of output unit can be sigmlinear or softmax Default is sigmbull sae_output function of autoencoder output unit can be sigmlinear or softmax Defaultbull is linearbull hidden_dropout drop out fraction for hidden layer Default is 0bull visible_dropoutbull drop out fraction for input layer Default is 0
Что такое MNISTbull Смешанный набор данных Национального института стандартов и
технологий (mixed National Institute of Standards and Technology MNIST) был создан исследователями IR в качестве эталона для сравнения различных алгоритмов IR
bull Набор данных состоит всего из 70 000 изображений 60 000 обучающих (используемых для создания модели IR) и 10 000 тестовых (применяемых для оценки точности модели) Каждое изображение MNIST mdash это оцифрованная картинка одной цифры написанной от руки Каждое изображение имеет размер 28 times 28 пикселей Каждое значение пикселя лежит в диапазоне от 0 (представляет белый цвет) до 255 (представляет черный цвет) Промежуточные значения отражают оттенки серого
httpyannlecuncomexdbmnistобучающие и тестовые данные хранятся в двух файлах а не в одном Один файл содержит значения пикселей для изображений а другой mdash метки изображений (0ndash9) Каждый из четырех файлов также содержит заголовочную информацию и все они хранятся в двоичном формате сжатом в формате gziptrain-images-idx3-ubytegz training set images (9912422 bytes)
train-labels-idx1-ubytegz training set labels (28881 bytes)
t10k-images-idx3-ubytegz test set images (1648877 bytes)
t10k-labels-idx1-ubytegz test set labels (4542 bytes)
bull Каждая строка файла представляет собой имидж размера 28 times 28 вектором длины 784 каждый признак ndash значение пиксела в черно-белой шале Первый столбец содержит метку цифры 0ndash9 следующие 2828 столбцов представляют целый имидж и так далее Пример первой строки
Визуализация
bull plotmnist()bull mnistbull paramsbull train$n number of train samplesbull train$x pix of every train sample imagebull train$y label of every train sample imagebull train$yy one-of-c vector of label of train sample imagebull test$n number of test samplesbull test$x pix of every test sample imagebull test$y label of every test sample imagebull test$yy one-of-c vector of label of test sample image
plotmnist()
Распознавание рукописных цифр в deepnet
another way to download the MNIST datasetmnist downloadmnist(range=c(01)global=FALSE)look at MNIST datamnist$train$xmnist$train$ymnist$test$xmnist$test$ytrain of the sae neural networkdnnlt-saednntrain(mnist$train$xmnist$train$yhidden=c(55))test of the sae neural networknntest(dnnmnist$test$xmnist$test$yt=05)
End of slides part 2 (Part 3 - NLP remaining)
Vladimirvkrylovgmailcom
Основы предиктивной аналитики Часть вторая
Применение методов Machine Learning к решению задач аналитики
Дмитрий Ветров кандидат физико-математических наук ру
Методы обучающихся машин для аналитики которые мы рассмотрим
Сначала нужно загрузить несколько пакетов (packages) для поддер
Данные для анализа
Скрипт для генерации
Данные которые мы будем использовать для демо состоят из смес
Так выглядят визуализированные данные сгенерированные скриптом
Разделение данных на обучающие и проверочные является важным эт
K-means алгоритм на пальцах
Обучающаяся машина без учителя Алгоритм K-means
Slide 13
Slide 14
Здесь мы используем заранее известный факт что необходимо кла
Еще одна иллюстрация работы алгоритма K-means
Обучающаяся машина без учителя Алгоритм KNN (Nearest Neighbor)
Как работает алгоритм KNN
knn(train test cl k = 1 l = 0 prob = FALSE useall = TRUE
Slide 20
Результаты кластеризации и зависимость ошибки от числа кластеро
Recursive PartitioningRegression Tree
Метод RP реализует обучение машины строить дерево решений по об
Recursive PartitioningRegression Tree (2)
rpart(formula data weights subset naaction = narpart met
Slide 26
Recursive PartitioningRegression Tree example
Анализ по главным компонентам (Principal Component Analysis PC
Итеративные алгоритмы с оптимальным разреженным кодированием IS
Самоорганизация данных методами Deep Learning
Знакомство с пакетом deepnet
Прогнозирование (классификация) нейронной сетью с архитектурой
Arguments
Архитектура сети SAE
Архитектура с 5Х4 hidden 3 outs
Example
Анализ обучающего набора данных
Параметры SAE сети
Коэффициенты связей
Предсказание обученной сетью
Сравнение обучающей и тестовой выборки
plot3d(xy)
Работаем с пакетом MNIST
httpyannlecuncomexdbmnist
Подготовка к обработке
Slide 118
Визуализация
plotmnist()
Распознавание рукописных цифр в deepnet
End of slides part 2 (Part 3 - NLP remaining)
Для вычисления градиента может использоваться метод back propagation
В действительности работают любые архитектуры построения функции Нужно конструировать связи и функции блоков
Язык Torch 7 ndash современный инструмент моделирования и имплементации
Machine Learning with Torch7 (httpcodecogbitscomwikidokuphpid=start)
bull These tutorials were originally designed for the IPAM Summer School on Deep Learning more info herebull This wiki provides multiple tutorials with the overall objective of teaching you how to do machine learning
with Torch7bull Torch7 provides a Matlab-like environment for state-of-the-art machine learning algorithms It is easy to use
and provides a very efficient implementation thanks to an easy and fast scripting language (LuaJIT) and an underlying C implementation
bull These tutorials should be readdone in orderbull Tutorial 1 Setup Basics Getting Startedbull Tutorial 2 Supervised Learningbull Tutorial 3 Unsupervised Learningbull Tutorial 4 Graphical Modelsbull Tutorial 5 Creating New Modulesbull Tutorial 6 Using CUDAbull To follow these tutorials and do the exercises you will need to download the associated code which is hosted
on GitHub on this page In this repository each directory corresponds to a tutorial herebull starttxt middot Last modified 20140204 2246 by clement
Torch 7 является расширением Lua
What is LuaLua is a powerful fast lightweight embeddable scripting languageLua combines simple procedural syntax with powerful data description constructs based on associative arrays and extensible semantics Lua is dynamically typed runs by interpreting bytecode for a register-based virtual machine and has automatic memory management with incremental garbage collection making it ideal for configuration scripting and rapid prototyping
Why choose LuaLua is a proven robust languageLua has been used in many industrial applications (eg Adobes Photoshop Lightroom) with an emphasis on embedded systems (eg the Ginga middleware for digital TV in Brazil) and games (eg World of Warcraft and Angry Birds) Lua is currently the leading scripting language in games Lua has a solid reference manual and there are several books about it Several versions of Lua have been released and used in real applications since its creation in 1993 Lua featured in HOPL III the Third ACM SIGPLAN History of Programming Languages Conference in June 2007 Lua won the Front Line Award 2011 from the Game Developers Magazine
Свертка и архитектура 4-х уровневой сверточной сети
Функциональная структура
Примеры успешного применения сверточных сетей
Диагностика эпилепсии по ЭЭГ
Реализация сверточной сетью
Одна из самых больших сверточных сетейbull Krizhevsky Sutskever Hinton 2012bull 650 000 нейронов 832 000 000 синапсов 60 000000 пареметровbull Использовался backprop на GPUbull Обучающая выборка на материалах 20 летbull Купил Google в январе 2013bull В мае 2013 развернул как сервис Photo Tagging Google+
Пример тэгирования
Пример поиска похожих по изображению
Пример поиска в коллекции изображений по текстовому запросу
Пример laquoоблачногоraquo классификатора изображений
Самообучающиеся нейронные сети на основе минимизации функции энергииbull Применима к сетям с обратными связямиbull Конструирование функции энергии должно обеспечивать
laquoконтрастностьraquo разделения
bull Энергетическая функция может Неформально рассматриваться как отрицательный логарифм плотности вероятности
Y 2=(Y1)2
RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцмана
bull Из DBM cтроится Deep Belief Network (DBN)
bull w mdash вес между нейронами
bull b mdash смещение нейрона
bull s mdash состояние нейрона
Алгоритм обучения Contrastive Divergence (CD)bull w_ij mdash веc между i-ым нейроном Вероятность пар может быть представлена как
bull a_i mdash смещение видимого нейрона
bull b_j mdash смещение скрытого нейрона
bull v_i mdash состояние видимого нейрона
bull h_j mdash состояние скрытого нейрона Полная вероятность состояния видимых нейронов
Основные уравнения адаптации
Алгоритм Хинтона - Contrastive Divergence (CD-k)
1 состояние видимых нейронов приравнивается к входному образу2 выводятся вероятности состояний скрытого слоя3 каждому нейрону скрытого слоя ставится в соответствие состояние laquo1raquo с вероятностью равной его текущему состоянию4 выводятся вероятности видимого слоя на основании скрытого5 если текущая итерация меньше k то возврат к шагу 26 выводятся вероятности состояний скрытого слоя
darch Package for deep architectures and Restricted-Bolzmann-MachinesThe darch package is build on the basis of the code from G E Hinton and R R Salakhutdinov (available under Matlab Code for deep belief nets last visit 01082013) This package is for generating neural networks with many layers (deep architectures) and train them with the method introduced by the publications A fast learning algorithm for deep belief nets (G E Hinton S Osindero Y W Teh) and Reducing the dimensionality of data with neural networks (G E Hinton R R Salakhutdinov) This method includes a pre training with the contrastive divergence method publishing by GE Hinton (2002) and a fine tuning with common known training algorithms like backpropagation or conjugate gradient
bull Version 091bull Imports futilelogger ff methodsbull Published 2014-03-16bull Author Martin Dreesbull Maintainer Martin Drees ltmdrees at studfh-dortmunddegtbull License GPL-2bull URL httpgithubcommaddin79darchbull NeedsCompilation nobull Materials READMEbull CRAN checks darch results
Связь плотности вероятности и энергии
Используется распределение Гиббса
Задача обучения с точки минимизации энергии сети
bull Сконструировать функцию энергии с малыми значениями на обучающей выборке и с большими значениями всюду вне этого множества
bull Первое несложно а второе представляет задачу процесса обучения
Интуитивные соображения
Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decomposition LISTA ndashметоды использующие разреженные коды
Латентная переменная Z =argmin_z Distance[Decoder(Z)Y]+FactorB(Z)MAPminimaize sum of factors
Автоэнкодер (auto encoder) Автоэнкодер представляет собой алгоритм обучения без учителя который использует нейронную сеть и метод обратного распространения ошибки для того чтобы добиться того что входной вектор признаков вызывал отклик сети равный входному вектору те y = x Автоэнкодер пытается построить функцию h(x) = x
Архитекттура ICA моделей
Итеративные алгоритмы с оптимальным разреженным кодированием ISTAFISTA
Самоорганизация данных методами Deep Learning
>
Знакомство с пакетом deepnet
Назначение
Составdbndnntrain - обучение сети с архитектурой DBN (deep belief network)loadmnist - формирование данных из файлов MNISTnnpredict - предсказание новых выборок на обученной нейронной сетиnntest ndash тестирование обученной нейронной сети с возвращением значения ошибкиnntrain ndash обучение одностлойной или многослойной нейронной сети методом backproprbmdown ndash генерирование видимого вектора для скрытых состояний сети RBMrbmtrain ndash обучение сети RBMrbmup ndash извлечение скрытых состояний RBM по известным видимым состояниямsaednntrain ndash обучение нейронной сети с архитектурой stacked autoencoder
Прогнозирование (классификация) нейронной сетью с архитектурой stacked auto encoder
Argumentsbull x matrix of x values for examplesbull y vector or matrix of target values for examplesbull hidden vector for number of units of hidden layersDefault is c(10)bull activationfun activation function of hidden unitCan be sigmlinear or tanhDefault isbull sigm for logistic functionbull learningrate learning rate for gradient descent Default is 08bull momentum momentum for gradient descent Default is 05 bull learningrate_scalebull learning rate will be mutiplied by this scale after every iteration Default is 1 bull numepochs number of iteration for samples Default is 3bull batchsize size of mini-batch Default is 100bull output function of output unit can be sigmlinear or softmax Default is sigmbull sae_output function of autoencoder output unit can be sigmlinear or softmax Defaultbull is linearbull hidden_dropout drop out fraction for hidden layer Default is 0bull visible_dropoutbull drop out fraction for input layer Default is 0
Что такое MNISTbull Смешанный набор данных Национального института стандартов и
технологий (mixed National Institute of Standards and Technology MNIST) был создан исследователями IR в качестве эталона для сравнения различных алгоритмов IR
bull Набор данных состоит всего из 70 000 изображений 60 000 обучающих (используемых для создания модели IR) и 10 000 тестовых (применяемых для оценки точности модели) Каждое изображение MNIST mdash это оцифрованная картинка одной цифры написанной от руки Каждое изображение имеет размер 28 times 28 пикселей Каждое значение пикселя лежит в диапазоне от 0 (представляет белый цвет) до 255 (представляет черный цвет) Промежуточные значения отражают оттенки серого
httpyannlecuncomexdbmnistобучающие и тестовые данные хранятся в двух файлах а не в одном Один файл содержит значения пикселей для изображений а другой mdash метки изображений (0ndash9) Каждый из четырех файлов также содержит заголовочную информацию и все они хранятся в двоичном формате сжатом в формате gziptrain-images-idx3-ubytegz training set images (9912422 bytes)
train-labels-idx1-ubytegz training set labels (28881 bytes)
t10k-images-idx3-ubytegz test set images (1648877 bytes)
t10k-labels-idx1-ubytegz test set labels (4542 bytes)
bull Каждая строка файла представляет собой имидж размера 28 times 28 вектором длины 784 каждый признак ndash значение пиксела в черно-белой шале Первый столбец содержит метку цифры 0ndash9 следующие 2828 столбцов представляют целый имидж и так далее Пример первой строки
Визуализация
bull plotmnist()bull mnistbull paramsbull train$n number of train samplesbull train$x pix of every train sample imagebull train$y label of every train sample imagebull train$yy one-of-c vector of label of train sample imagebull test$n number of test samplesbull test$x pix of every test sample imagebull test$y label of every test sample imagebull test$yy one-of-c vector of label of test sample image
plotmnist()
Распознавание рукописных цифр в deepnet
another way to download the MNIST datasetmnist downloadmnist(range=c(01)global=FALSE)look at MNIST datamnist$train$xmnist$train$ymnist$test$xmnist$test$ytrain of the sae neural networkdnnlt-saednntrain(mnist$train$xmnist$train$yhidden=c(55))test of the sae neural networknntest(dnnmnist$test$xmnist$test$yt=05)
End of slides part 2 (Part 3 - NLP remaining)
Vladimirvkrylovgmailcom
Основы предиктивной аналитики Часть вторая
Применение методов Machine Learning к решению задач аналитики
Дмитрий Ветров кандидат физико-математических наук ру
Методы обучающихся машин для аналитики которые мы рассмотрим
Сначала нужно загрузить несколько пакетов (packages) для поддер
Данные для анализа
Скрипт для генерации
Данные которые мы будем использовать для демо состоят из смес
Так выглядят визуализированные данные сгенерированные скриптом
Разделение данных на обучающие и проверочные является важным эт
K-means алгоритм на пальцах
Обучающаяся машина без учителя Алгоритм K-means
Slide 13
Slide 14
Здесь мы используем заранее известный факт что необходимо кла
Еще одна иллюстрация работы алгоритма K-means
Обучающаяся машина без учителя Алгоритм KNN (Nearest Neighbor)
Как работает алгоритм KNN
knn(train test cl k = 1 l = 0 prob = FALSE useall = TRUE
Slide 20
Результаты кластеризации и зависимость ошибки от числа кластеро
Recursive PartitioningRegression Tree
Метод RP реализует обучение машины строить дерево решений по об
Recursive PartitioningRegression Tree (2)
rpart(formula data weights subset naaction = narpart met
Slide 26
Recursive PartitioningRegression Tree example
Анализ по главным компонентам (Principal Component Analysis PC
Итеративные алгоритмы с оптимальным разреженным кодированием IS
Самоорганизация данных методами Deep Learning
Знакомство с пакетом deepnet
Прогнозирование (классификация) нейронной сетью с архитектурой
Arguments
Архитектура сети SAE
Архитектура с 5Х4 hidden 3 outs
Example
Анализ обучающего набора данных
Параметры SAE сети
Коэффициенты связей
Предсказание обученной сетью
Сравнение обучающей и тестовой выборки
plot3d(xy)
Работаем с пакетом MNIST
httpyannlecuncomexdbmnist
Подготовка к обработке
Slide 118
Визуализация
plotmnist()
Распознавание рукописных цифр в deepnet
End of slides part 2 (Part 3 - NLP remaining)
В действительности работают любые архитектуры построения функции Нужно конструировать связи и функции блоков
Язык Torch 7 ndash современный инструмент моделирования и имплементации
Machine Learning with Torch7 (httpcodecogbitscomwikidokuphpid=start)
bull These tutorials were originally designed for the IPAM Summer School on Deep Learning more info herebull This wiki provides multiple tutorials with the overall objective of teaching you how to do machine learning
with Torch7bull Torch7 provides a Matlab-like environment for state-of-the-art machine learning algorithms It is easy to use
and provides a very efficient implementation thanks to an easy and fast scripting language (LuaJIT) and an underlying C implementation
bull These tutorials should be readdone in orderbull Tutorial 1 Setup Basics Getting Startedbull Tutorial 2 Supervised Learningbull Tutorial 3 Unsupervised Learningbull Tutorial 4 Graphical Modelsbull Tutorial 5 Creating New Modulesbull Tutorial 6 Using CUDAbull To follow these tutorials and do the exercises you will need to download the associated code which is hosted
on GitHub on this page In this repository each directory corresponds to a tutorial herebull starttxt middot Last modified 20140204 2246 by clement
Torch 7 является расширением Lua
What is LuaLua is a powerful fast lightweight embeddable scripting languageLua combines simple procedural syntax with powerful data description constructs based on associative arrays and extensible semantics Lua is dynamically typed runs by interpreting bytecode for a register-based virtual machine and has automatic memory management with incremental garbage collection making it ideal for configuration scripting and rapid prototyping
Why choose LuaLua is a proven robust languageLua has been used in many industrial applications (eg Adobes Photoshop Lightroom) with an emphasis on embedded systems (eg the Ginga middleware for digital TV in Brazil) and games (eg World of Warcraft and Angry Birds) Lua is currently the leading scripting language in games Lua has a solid reference manual and there are several books about it Several versions of Lua have been released and used in real applications since its creation in 1993 Lua featured in HOPL III the Third ACM SIGPLAN History of Programming Languages Conference in June 2007 Lua won the Front Line Award 2011 from the Game Developers Magazine
Свертка и архитектура 4-х уровневой сверточной сети
Функциональная структура
Примеры успешного применения сверточных сетей
Диагностика эпилепсии по ЭЭГ
Реализация сверточной сетью
Одна из самых больших сверточных сетейbull Krizhevsky Sutskever Hinton 2012bull 650 000 нейронов 832 000 000 синапсов 60 000000 пареметровbull Использовался backprop на GPUbull Обучающая выборка на материалах 20 летbull Купил Google в январе 2013bull В мае 2013 развернул как сервис Photo Tagging Google+
Пример тэгирования
Пример поиска похожих по изображению
Пример поиска в коллекции изображений по текстовому запросу
Пример laquoоблачногоraquo классификатора изображений
Самообучающиеся нейронные сети на основе минимизации функции энергииbull Применима к сетям с обратными связямиbull Конструирование функции энергии должно обеспечивать
laquoконтрастностьraquo разделения
bull Энергетическая функция может Неформально рассматриваться как отрицательный логарифм плотности вероятности
Y 2=(Y1)2
RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцмана
bull Из DBM cтроится Deep Belief Network (DBN)
bull w mdash вес между нейронами
bull b mdash смещение нейрона
bull s mdash состояние нейрона
Алгоритм обучения Contrastive Divergence (CD)bull w_ij mdash веc между i-ым нейроном Вероятность пар может быть представлена как
bull a_i mdash смещение видимого нейрона
bull b_j mdash смещение скрытого нейрона
bull v_i mdash состояние видимого нейрона
bull h_j mdash состояние скрытого нейрона Полная вероятность состояния видимых нейронов
Основные уравнения адаптации
Алгоритм Хинтона - Contrastive Divergence (CD-k)
1 состояние видимых нейронов приравнивается к входному образу2 выводятся вероятности состояний скрытого слоя3 каждому нейрону скрытого слоя ставится в соответствие состояние laquo1raquo с вероятностью равной его текущему состоянию4 выводятся вероятности видимого слоя на основании скрытого5 если текущая итерация меньше k то возврат к шагу 26 выводятся вероятности состояний скрытого слоя
darch Package for deep architectures and Restricted-Bolzmann-MachinesThe darch package is build on the basis of the code from G E Hinton and R R Salakhutdinov (available under Matlab Code for deep belief nets last visit 01082013) This package is for generating neural networks with many layers (deep architectures) and train them with the method introduced by the publications A fast learning algorithm for deep belief nets (G E Hinton S Osindero Y W Teh) and Reducing the dimensionality of data with neural networks (G E Hinton R R Salakhutdinov) This method includes a pre training with the contrastive divergence method publishing by GE Hinton (2002) and a fine tuning with common known training algorithms like backpropagation or conjugate gradient
bull Version 091bull Imports futilelogger ff methodsbull Published 2014-03-16bull Author Martin Dreesbull Maintainer Martin Drees ltmdrees at studfh-dortmunddegtbull License GPL-2bull URL httpgithubcommaddin79darchbull NeedsCompilation nobull Materials READMEbull CRAN checks darch results
Связь плотности вероятности и энергии
Используется распределение Гиббса
Задача обучения с точки минимизации энергии сети
bull Сконструировать функцию энергии с малыми значениями на обучающей выборке и с большими значениями всюду вне этого множества
bull Первое несложно а второе представляет задачу процесса обучения
Интуитивные соображения
Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decomposition LISTA ndashметоды использующие разреженные коды
Латентная переменная Z =argmin_z Distance[Decoder(Z)Y]+FactorB(Z)MAPminimaize sum of factors
Автоэнкодер (auto encoder) Автоэнкодер представляет собой алгоритм обучения без учителя который использует нейронную сеть и метод обратного распространения ошибки для того чтобы добиться того что входной вектор признаков вызывал отклик сети равный входному вектору те y = x Автоэнкодер пытается построить функцию h(x) = x
Архитекттура ICA моделей
Итеративные алгоритмы с оптимальным разреженным кодированием ISTAFISTA
Самоорганизация данных методами Deep Learning
>
Знакомство с пакетом deepnet
Назначение
Составdbndnntrain - обучение сети с архитектурой DBN (deep belief network)loadmnist - формирование данных из файлов MNISTnnpredict - предсказание новых выборок на обученной нейронной сетиnntest ndash тестирование обученной нейронной сети с возвращением значения ошибкиnntrain ndash обучение одностлойной или многослойной нейронной сети методом backproprbmdown ndash генерирование видимого вектора для скрытых состояний сети RBMrbmtrain ndash обучение сети RBMrbmup ndash извлечение скрытых состояний RBM по известным видимым состояниямsaednntrain ndash обучение нейронной сети с архитектурой stacked autoencoder
Прогнозирование (классификация) нейронной сетью с архитектурой stacked auto encoder
Argumentsbull x matrix of x values for examplesbull y vector or matrix of target values for examplesbull hidden vector for number of units of hidden layersDefault is c(10)bull activationfun activation function of hidden unitCan be sigmlinear or tanhDefault isbull sigm for logistic functionbull learningrate learning rate for gradient descent Default is 08bull momentum momentum for gradient descent Default is 05 bull learningrate_scalebull learning rate will be mutiplied by this scale after every iteration Default is 1 bull numepochs number of iteration for samples Default is 3bull batchsize size of mini-batch Default is 100bull output function of output unit can be sigmlinear or softmax Default is sigmbull sae_output function of autoencoder output unit can be sigmlinear or softmax Defaultbull is linearbull hidden_dropout drop out fraction for hidden layer Default is 0bull visible_dropoutbull drop out fraction for input layer Default is 0
Что такое MNISTbull Смешанный набор данных Национального института стандартов и
технологий (mixed National Institute of Standards and Technology MNIST) был создан исследователями IR в качестве эталона для сравнения различных алгоритмов IR
bull Набор данных состоит всего из 70 000 изображений 60 000 обучающих (используемых для создания модели IR) и 10 000 тестовых (применяемых для оценки точности модели) Каждое изображение MNIST mdash это оцифрованная картинка одной цифры написанной от руки Каждое изображение имеет размер 28 times 28 пикселей Каждое значение пикселя лежит в диапазоне от 0 (представляет белый цвет) до 255 (представляет черный цвет) Промежуточные значения отражают оттенки серого
httpyannlecuncomexdbmnistобучающие и тестовые данные хранятся в двух файлах а не в одном Один файл содержит значения пикселей для изображений а другой mdash метки изображений (0ndash9) Каждый из четырех файлов также содержит заголовочную информацию и все они хранятся в двоичном формате сжатом в формате gziptrain-images-idx3-ubytegz training set images (9912422 bytes)
train-labels-idx1-ubytegz training set labels (28881 bytes)
t10k-images-idx3-ubytegz test set images (1648877 bytes)
t10k-labels-idx1-ubytegz test set labels (4542 bytes)
bull Каждая строка файла представляет собой имидж размера 28 times 28 вектором длины 784 каждый признак ndash значение пиксела в черно-белой шале Первый столбец содержит метку цифры 0ndash9 следующие 2828 столбцов представляют целый имидж и так далее Пример первой строки
Визуализация
bull plotmnist()bull mnistbull paramsbull train$n number of train samplesbull train$x pix of every train sample imagebull train$y label of every train sample imagebull train$yy one-of-c vector of label of train sample imagebull test$n number of test samplesbull test$x pix of every test sample imagebull test$y label of every test sample imagebull test$yy one-of-c vector of label of test sample image
plotmnist()
Распознавание рукописных цифр в deepnet
another way to download the MNIST datasetmnist downloadmnist(range=c(01)global=FALSE)look at MNIST datamnist$train$xmnist$train$ymnist$test$xmnist$test$ytrain of the sae neural networkdnnlt-saednntrain(mnist$train$xmnist$train$yhidden=c(55))test of the sae neural networknntest(dnnmnist$test$xmnist$test$yt=05)
End of slides part 2 (Part 3 - NLP remaining)
Vladimirvkrylovgmailcom
Основы предиктивной аналитики Часть вторая
Применение методов Machine Learning к решению задач аналитики
Дмитрий Ветров кандидат физико-математических наук ру
Методы обучающихся машин для аналитики которые мы рассмотрим
Сначала нужно загрузить несколько пакетов (packages) для поддер
Данные для анализа
Скрипт для генерации
Данные которые мы будем использовать для демо состоят из смес
Так выглядят визуализированные данные сгенерированные скриптом
Разделение данных на обучающие и проверочные является важным эт
K-means алгоритм на пальцах
Обучающаяся машина без учителя Алгоритм K-means
Slide 13
Slide 14
Здесь мы используем заранее известный факт что необходимо кла
Еще одна иллюстрация работы алгоритма K-means
Обучающаяся машина без учителя Алгоритм KNN (Nearest Neighbor)
Как работает алгоритм KNN
knn(train test cl k = 1 l = 0 prob = FALSE useall = TRUE
Slide 20
Результаты кластеризации и зависимость ошибки от числа кластеро
Recursive PartitioningRegression Tree
Метод RP реализует обучение машины строить дерево решений по об
Recursive PartitioningRegression Tree (2)
rpart(formula data weights subset naaction = narpart met
Slide 26
Recursive PartitioningRegression Tree example
Анализ по главным компонентам (Principal Component Analysis PC
Итеративные алгоритмы с оптимальным разреженным кодированием IS
Самоорганизация данных методами Deep Learning
Знакомство с пакетом deepnet
Прогнозирование (классификация) нейронной сетью с архитектурой
Arguments
Архитектура сети SAE
Архитектура с 5Х4 hidden 3 outs
Example
Анализ обучающего набора данных
Параметры SAE сети
Коэффициенты связей
Предсказание обученной сетью
Сравнение обучающей и тестовой выборки
plot3d(xy)
Работаем с пакетом MNIST
httpyannlecuncomexdbmnist
Подготовка к обработке
Slide 118
Визуализация
plotmnist()
Распознавание рукописных цифр в deepnet
End of slides part 2 (Part 3 - NLP remaining)
Machine Learning with Torch7 (httpcodecogbitscomwikidokuphpid=start)
bull These tutorials were originally designed for the IPAM Summer School on Deep Learning more info herebull This wiki provides multiple tutorials with the overall objective of teaching you how to do machine learning
with Torch7bull Torch7 provides a Matlab-like environment for state-of-the-art machine learning algorithms It is easy to use
and provides a very efficient implementation thanks to an easy and fast scripting language (LuaJIT) and an underlying C implementation
bull These tutorials should be readdone in orderbull Tutorial 1 Setup Basics Getting Startedbull Tutorial 2 Supervised Learningbull Tutorial 3 Unsupervised Learningbull Tutorial 4 Graphical Modelsbull Tutorial 5 Creating New Modulesbull Tutorial 6 Using CUDAbull To follow these tutorials and do the exercises you will need to download the associated code which is hosted
on GitHub on this page In this repository each directory corresponds to a tutorial herebull starttxt middot Last modified 20140204 2246 by clement
Torch 7 является расширением Lua
What is LuaLua is a powerful fast lightweight embeddable scripting languageLua combines simple procedural syntax with powerful data description constructs based on associative arrays and extensible semantics Lua is dynamically typed runs by interpreting bytecode for a register-based virtual machine and has automatic memory management with incremental garbage collection making it ideal for configuration scripting and rapid prototyping
Why choose LuaLua is a proven robust languageLua has been used in many industrial applications (eg Adobes Photoshop Lightroom) with an emphasis on embedded systems (eg the Ginga middleware for digital TV in Brazil) and games (eg World of Warcraft and Angry Birds) Lua is currently the leading scripting language in games Lua has a solid reference manual and there are several books about it Several versions of Lua have been released and used in real applications since its creation in 1993 Lua featured in HOPL III the Third ACM SIGPLAN History of Programming Languages Conference in June 2007 Lua won the Front Line Award 2011 from the Game Developers Magazine
Свертка и архитектура 4-х уровневой сверточной сети
Функциональная структура
Примеры успешного применения сверточных сетей
Диагностика эпилепсии по ЭЭГ
Реализация сверточной сетью
Одна из самых больших сверточных сетейbull Krizhevsky Sutskever Hinton 2012bull 650 000 нейронов 832 000 000 синапсов 60 000000 пареметровbull Использовался backprop на GPUbull Обучающая выборка на материалах 20 летbull Купил Google в январе 2013bull В мае 2013 развернул как сервис Photo Tagging Google+
Пример тэгирования
Пример поиска похожих по изображению
Пример поиска в коллекции изображений по текстовому запросу
Пример laquoоблачногоraquo классификатора изображений
Самообучающиеся нейронные сети на основе минимизации функции энергииbull Применима к сетям с обратными связямиbull Конструирование функции энергии должно обеспечивать
laquoконтрастностьraquo разделения
bull Энергетическая функция может Неформально рассматриваться как отрицательный логарифм плотности вероятности
Y 2=(Y1)2
RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцмана
bull Из DBM cтроится Deep Belief Network (DBN)
bull w mdash вес между нейронами
bull b mdash смещение нейрона
bull s mdash состояние нейрона
Алгоритм обучения Contrastive Divergence (CD)bull w_ij mdash веc между i-ым нейроном Вероятность пар может быть представлена как
bull a_i mdash смещение видимого нейрона
bull b_j mdash смещение скрытого нейрона
bull v_i mdash состояние видимого нейрона
bull h_j mdash состояние скрытого нейрона Полная вероятность состояния видимых нейронов
Основные уравнения адаптации
Алгоритм Хинтона - Contrastive Divergence (CD-k)
1 состояние видимых нейронов приравнивается к входному образу2 выводятся вероятности состояний скрытого слоя3 каждому нейрону скрытого слоя ставится в соответствие состояние laquo1raquo с вероятностью равной его текущему состоянию4 выводятся вероятности видимого слоя на основании скрытого5 если текущая итерация меньше k то возврат к шагу 26 выводятся вероятности состояний скрытого слоя
darch Package for deep architectures and Restricted-Bolzmann-MachinesThe darch package is build on the basis of the code from G E Hinton and R R Salakhutdinov (available under Matlab Code for deep belief nets last visit 01082013) This package is for generating neural networks with many layers (deep architectures) and train them with the method introduced by the publications A fast learning algorithm for deep belief nets (G E Hinton S Osindero Y W Teh) and Reducing the dimensionality of data with neural networks (G E Hinton R R Salakhutdinov) This method includes a pre training with the contrastive divergence method publishing by GE Hinton (2002) and a fine tuning with common known training algorithms like backpropagation or conjugate gradient
bull Version 091bull Imports futilelogger ff methodsbull Published 2014-03-16bull Author Martin Dreesbull Maintainer Martin Drees ltmdrees at studfh-dortmunddegtbull License GPL-2bull URL httpgithubcommaddin79darchbull NeedsCompilation nobull Materials READMEbull CRAN checks darch results
Связь плотности вероятности и энергии
Используется распределение Гиббса
Задача обучения с точки минимизации энергии сети
bull Сконструировать функцию энергии с малыми значениями на обучающей выборке и с большими значениями всюду вне этого множества
bull Первое несложно а второе представляет задачу процесса обучения
Интуитивные соображения
Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decomposition LISTA ndashметоды использующие разреженные коды
Латентная переменная Z =argmin_z Distance[Decoder(Z)Y]+FactorB(Z)MAPminimaize sum of factors
Автоэнкодер (auto encoder) Автоэнкодер представляет собой алгоритм обучения без учителя который использует нейронную сеть и метод обратного распространения ошибки для того чтобы добиться того что входной вектор признаков вызывал отклик сети равный входному вектору те y = x Автоэнкодер пытается построить функцию h(x) = x
Архитекттура ICA моделей
Итеративные алгоритмы с оптимальным разреженным кодированием ISTAFISTA
Самоорганизация данных методами Deep Learning
>
Знакомство с пакетом deepnet
Назначение
Составdbndnntrain - обучение сети с архитектурой DBN (deep belief network)loadmnist - формирование данных из файлов MNISTnnpredict - предсказание новых выборок на обученной нейронной сетиnntest ndash тестирование обученной нейронной сети с возвращением значения ошибкиnntrain ndash обучение одностлойной или многослойной нейронной сети методом backproprbmdown ndash генерирование видимого вектора для скрытых состояний сети RBMrbmtrain ndash обучение сети RBMrbmup ndash извлечение скрытых состояний RBM по известным видимым состояниямsaednntrain ndash обучение нейронной сети с архитектурой stacked autoencoder
Прогнозирование (классификация) нейронной сетью с архитектурой stacked auto encoder
Argumentsbull x matrix of x values for examplesbull y vector or matrix of target values for examplesbull hidden vector for number of units of hidden layersDefault is c(10)bull activationfun activation function of hidden unitCan be sigmlinear or tanhDefault isbull sigm for logistic functionbull learningrate learning rate for gradient descent Default is 08bull momentum momentum for gradient descent Default is 05 bull learningrate_scalebull learning rate will be mutiplied by this scale after every iteration Default is 1 bull numepochs number of iteration for samples Default is 3bull batchsize size of mini-batch Default is 100bull output function of output unit can be sigmlinear or softmax Default is sigmbull sae_output function of autoencoder output unit can be sigmlinear or softmax Defaultbull is linearbull hidden_dropout drop out fraction for hidden layer Default is 0bull visible_dropoutbull drop out fraction for input layer Default is 0
Что такое MNISTbull Смешанный набор данных Национального института стандартов и
технологий (mixed National Institute of Standards and Technology MNIST) был создан исследователями IR в качестве эталона для сравнения различных алгоритмов IR
bull Набор данных состоит всего из 70 000 изображений 60 000 обучающих (используемых для создания модели IR) и 10 000 тестовых (применяемых для оценки точности модели) Каждое изображение MNIST mdash это оцифрованная картинка одной цифры написанной от руки Каждое изображение имеет размер 28 times 28 пикселей Каждое значение пикселя лежит в диапазоне от 0 (представляет белый цвет) до 255 (представляет черный цвет) Промежуточные значения отражают оттенки серого
httpyannlecuncomexdbmnistобучающие и тестовые данные хранятся в двух файлах а не в одном Один файл содержит значения пикселей для изображений а другой mdash метки изображений (0ndash9) Каждый из четырех файлов также содержит заголовочную информацию и все они хранятся в двоичном формате сжатом в формате gziptrain-images-idx3-ubytegz training set images (9912422 bytes)
train-labels-idx1-ubytegz training set labels (28881 bytes)
t10k-images-idx3-ubytegz test set images (1648877 bytes)
t10k-labels-idx1-ubytegz test set labels (4542 bytes)
bull Каждая строка файла представляет собой имидж размера 28 times 28 вектором длины 784 каждый признак ndash значение пиксела в черно-белой шале Первый столбец содержит метку цифры 0ndash9 следующие 2828 столбцов представляют целый имидж и так далее Пример первой строки
Визуализация
bull plotmnist()bull mnistbull paramsbull train$n number of train samplesbull train$x pix of every train sample imagebull train$y label of every train sample imagebull train$yy one-of-c vector of label of train sample imagebull test$n number of test samplesbull test$x pix of every test sample imagebull test$y label of every test sample imagebull test$yy one-of-c vector of label of test sample image
plotmnist()
Распознавание рукописных цифр в deepnet
another way to download the MNIST datasetmnist downloadmnist(range=c(01)global=FALSE)look at MNIST datamnist$train$xmnist$train$ymnist$test$xmnist$test$ytrain of the sae neural networkdnnlt-saednntrain(mnist$train$xmnist$train$yhidden=c(55))test of the sae neural networknntest(dnnmnist$test$xmnist$test$yt=05)
End of slides part 2 (Part 3 - NLP remaining)
Vladimirvkrylovgmailcom
Основы предиктивной аналитики Часть вторая
Применение методов Machine Learning к решению задач аналитики
Дмитрий Ветров кандидат физико-математических наук ру
Методы обучающихся машин для аналитики которые мы рассмотрим
Сначала нужно загрузить несколько пакетов (packages) для поддер
Данные для анализа
Скрипт для генерации
Данные которые мы будем использовать для демо состоят из смес
Так выглядят визуализированные данные сгенерированные скриптом
Разделение данных на обучающие и проверочные является важным эт
K-means алгоритм на пальцах
Обучающаяся машина без учителя Алгоритм K-means
Slide 13
Slide 14
Здесь мы используем заранее известный факт что необходимо кла
Еще одна иллюстрация работы алгоритма K-means
Обучающаяся машина без учителя Алгоритм KNN (Nearest Neighbor)
Как работает алгоритм KNN
knn(train test cl k = 1 l = 0 prob = FALSE useall = TRUE
Slide 20
Результаты кластеризации и зависимость ошибки от числа кластеро
Recursive PartitioningRegression Tree
Метод RP реализует обучение машины строить дерево решений по об
Recursive PartitioningRegression Tree (2)
rpart(formula data weights subset naaction = narpart met
Slide 26
Recursive PartitioningRegression Tree example
Анализ по главным компонентам (Principal Component Analysis PC
Итеративные алгоритмы с оптимальным разреженным кодированием IS
Самоорганизация данных методами Deep Learning
Знакомство с пакетом deepnet
Прогнозирование (классификация) нейронной сетью с архитектурой
Arguments
Архитектура сети SAE
Архитектура с 5Х4 hidden 3 outs
Example
Анализ обучающего набора данных
Параметры SAE сети
Коэффициенты связей
Предсказание обученной сетью
Сравнение обучающей и тестовой выборки
plot3d(xy)
Работаем с пакетом MNIST
httpyannlecuncomexdbmnist
Подготовка к обработке
Slide 118
Визуализация
plotmnist()
Распознавание рукописных цифр в deepnet
End of slides part 2 (Part 3 - NLP remaining)
Torch 7 является расширением Lua
What is LuaLua is a powerful fast lightweight embeddable scripting languageLua combines simple procedural syntax with powerful data description constructs based on associative arrays and extensible semantics Lua is dynamically typed runs by interpreting bytecode for a register-based virtual machine and has automatic memory management with incremental garbage collection making it ideal for configuration scripting and rapid prototyping
Why choose LuaLua is a proven robust languageLua has been used in many industrial applications (eg Adobes Photoshop Lightroom) with an emphasis on embedded systems (eg the Ginga middleware for digital TV in Brazil) and games (eg World of Warcraft and Angry Birds) Lua is currently the leading scripting language in games Lua has a solid reference manual and there are several books about it Several versions of Lua have been released and used in real applications since its creation in 1993 Lua featured in HOPL III the Third ACM SIGPLAN History of Programming Languages Conference in June 2007 Lua won the Front Line Award 2011 from the Game Developers Magazine
Свертка и архитектура 4-х уровневой сверточной сети
Функциональная структура
Примеры успешного применения сверточных сетей
Диагностика эпилепсии по ЭЭГ
Реализация сверточной сетью
Одна из самых больших сверточных сетейbull Krizhevsky Sutskever Hinton 2012bull 650 000 нейронов 832 000 000 синапсов 60 000000 пареметровbull Использовался backprop на GPUbull Обучающая выборка на материалах 20 летbull Купил Google в январе 2013bull В мае 2013 развернул как сервис Photo Tagging Google+
Пример тэгирования
Пример поиска похожих по изображению
Пример поиска в коллекции изображений по текстовому запросу
Пример laquoоблачногоraquo классификатора изображений
Самообучающиеся нейронные сети на основе минимизации функции энергииbull Применима к сетям с обратными связямиbull Конструирование функции энергии должно обеспечивать
laquoконтрастностьraquo разделения
bull Энергетическая функция может Неформально рассматриваться как отрицательный логарифм плотности вероятности
Y 2=(Y1)2
RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцмана
bull Из DBM cтроится Deep Belief Network (DBN)
bull w mdash вес между нейронами
bull b mdash смещение нейрона
bull s mdash состояние нейрона
Алгоритм обучения Contrastive Divergence (CD)bull w_ij mdash веc между i-ым нейроном Вероятность пар может быть представлена как
bull a_i mdash смещение видимого нейрона
bull b_j mdash смещение скрытого нейрона
bull v_i mdash состояние видимого нейрона
bull h_j mdash состояние скрытого нейрона Полная вероятность состояния видимых нейронов
Основные уравнения адаптации
Алгоритм Хинтона - Contrastive Divergence (CD-k)
1 состояние видимых нейронов приравнивается к входному образу2 выводятся вероятности состояний скрытого слоя3 каждому нейрону скрытого слоя ставится в соответствие состояние laquo1raquo с вероятностью равной его текущему состоянию4 выводятся вероятности видимого слоя на основании скрытого5 если текущая итерация меньше k то возврат к шагу 26 выводятся вероятности состояний скрытого слоя
darch Package for deep architectures and Restricted-Bolzmann-MachinesThe darch package is build on the basis of the code from G E Hinton and R R Salakhutdinov (available under Matlab Code for deep belief nets last visit 01082013) This package is for generating neural networks with many layers (deep architectures) and train them with the method introduced by the publications A fast learning algorithm for deep belief nets (G E Hinton S Osindero Y W Teh) and Reducing the dimensionality of data with neural networks (G E Hinton R R Salakhutdinov) This method includes a pre training with the contrastive divergence method publishing by GE Hinton (2002) and a fine tuning with common known training algorithms like backpropagation or conjugate gradient
bull Version 091bull Imports futilelogger ff methodsbull Published 2014-03-16bull Author Martin Dreesbull Maintainer Martin Drees ltmdrees at studfh-dortmunddegtbull License GPL-2bull URL httpgithubcommaddin79darchbull NeedsCompilation nobull Materials READMEbull CRAN checks darch results
Связь плотности вероятности и энергии
Используется распределение Гиббса
Задача обучения с точки минимизации энергии сети
bull Сконструировать функцию энергии с малыми значениями на обучающей выборке и с большими значениями всюду вне этого множества
bull Первое несложно а второе представляет задачу процесса обучения
Интуитивные соображения
Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decomposition LISTA ndashметоды использующие разреженные коды
Латентная переменная Z =argmin_z Distance[Decoder(Z)Y]+FactorB(Z)MAPminimaize sum of factors
Автоэнкодер (auto encoder) Автоэнкодер представляет собой алгоритм обучения без учителя который использует нейронную сеть и метод обратного распространения ошибки для того чтобы добиться того что входной вектор признаков вызывал отклик сети равный входному вектору те y = x Автоэнкодер пытается построить функцию h(x) = x
Архитекттура ICA моделей
Итеративные алгоритмы с оптимальным разреженным кодированием ISTAFISTA
Самоорганизация данных методами Deep Learning
>
Знакомство с пакетом deepnet
Назначение
Составdbndnntrain - обучение сети с архитектурой DBN (deep belief network)loadmnist - формирование данных из файлов MNISTnnpredict - предсказание новых выборок на обученной нейронной сетиnntest ndash тестирование обученной нейронной сети с возвращением значения ошибкиnntrain ndash обучение одностлойной или многослойной нейронной сети методом backproprbmdown ndash генерирование видимого вектора для скрытых состояний сети RBMrbmtrain ndash обучение сети RBMrbmup ndash извлечение скрытых состояний RBM по известным видимым состояниямsaednntrain ndash обучение нейронной сети с архитектурой stacked autoencoder
Прогнозирование (классификация) нейронной сетью с архитектурой stacked auto encoder
Argumentsbull x matrix of x values for examplesbull y vector or matrix of target values for examplesbull hidden vector for number of units of hidden layersDefault is c(10)bull activationfun activation function of hidden unitCan be sigmlinear or tanhDefault isbull sigm for logistic functionbull learningrate learning rate for gradient descent Default is 08bull momentum momentum for gradient descent Default is 05 bull learningrate_scalebull learning rate will be mutiplied by this scale after every iteration Default is 1 bull numepochs number of iteration for samples Default is 3bull batchsize size of mini-batch Default is 100bull output function of output unit can be sigmlinear or softmax Default is sigmbull sae_output function of autoencoder output unit can be sigmlinear or softmax Defaultbull is linearbull hidden_dropout drop out fraction for hidden layer Default is 0bull visible_dropoutbull drop out fraction for input layer Default is 0
Что такое MNISTbull Смешанный набор данных Национального института стандартов и
технологий (mixed National Institute of Standards and Technology MNIST) был создан исследователями IR в качестве эталона для сравнения различных алгоритмов IR
bull Набор данных состоит всего из 70 000 изображений 60 000 обучающих (используемых для создания модели IR) и 10 000 тестовых (применяемых для оценки точности модели) Каждое изображение MNIST mdash это оцифрованная картинка одной цифры написанной от руки Каждое изображение имеет размер 28 times 28 пикселей Каждое значение пикселя лежит в диапазоне от 0 (представляет белый цвет) до 255 (представляет черный цвет) Промежуточные значения отражают оттенки серого
httpyannlecuncomexdbmnistобучающие и тестовые данные хранятся в двух файлах а не в одном Один файл содержит значения пикселей для изображений а другой mdash метки изображений (0ndash9) Каждый из четырех файлов также содержит заголовочную информацию и все они хранятся в двоичном формате сжатом в формате gziptrain-images-idx3-ubytegz training set images (9912422 bytes)
train-labels-idx1-ubytegz training set labels (28881 bytes)
t10k-images-idx3-ubytegz test set images (1648877 bytes)
t10k-labels-idx1-ubytegz test set labels (4542 bytes)
bull Каждая строка файла представляет собой имидж размера 28 times 28 вектором длины 784 каждый признак ndash значение пиксела в черно-белой шале Первый столбец содержит метку цифры 0ndash9 следующие 2828 столбцов представляют целый имидж и так далее Пример первой строки
Визуализация
bull plotmnist()bull mnistbull paramsbull train$n number of train samplesbull train$x pix of every train sample imagebull train$y label of every train sample imagebull train$yy one-of-c vector of label of train sample imagebull test$n number of test samplesbull test$x pix of every test sample imagebull test$y label of every test sample imagebull test$yy one-of-c vector of label of test sample image
plotmnist()
Распознавание рукописных цифр в deepnet
another way to download the MNIST datasetmnist downloadmnist(range=c(01)global=FALSE)look at MNIST datamnist$train$xmnist$train$ymnist$test$xmnist$test$ytrain of the sae neural networkdnnlt-saednntrain(mnist$train$xmnist$train$yhidden=c(55))test of the sae neural networknntest(dnnmnist$test$xmnist$test$yt=05)
End of slides part 2 (Part 3 - NLP remaining)
Vladimirvkrylovgmailcom
Основы предиктивной аналитики Часть вторая
Применение методов Machine Learning к решению задач аналитики
Дмитрий Ветров кандидат физико-математических наук ру
Методы обучающихся машин для аналитики которые мы рассмотрим
Сначала нужно загрузить несколько пакетов (packages) для поддер
Данные для анализа
Скрипт для генерации
Данные которые мы будем использовать для демо состоят из смес
Так выглядят визуализированные данные сгенерированные скриптом
Разделение данных на обучающие и проверочные является важным эт
K-means алгоритм на пальцах
Обучающаяся машина без учителя Алгоритм K-means
Slide 13
Slide 14
Здесь мы используем заранее известный факт что необходимо кла
Еще одна иллюстрация работы алгоритма K-means
Обучающаяся машина без учителя Алгоритм KNN (Nearest Neighbor)
Как работает алгоритм KNN
knn(train test cl k = 1 l = 0 prob = FALSE useall = TRUE
Slide 20
Результаты кластеризации и зависимость ошибки от числа кластеро
Recursive PartitioningRegression Tree
Метод RP реализует обучение машины строить дерево решений по об
Recursive PartitioningRegression Tree (2)
rpart(formula data weights subset naaction = narpart met
Slide 26
Recursive PartitioningRegression Tree example
Анализ по главным компонентам (Principal Component Analysis PC
Свертка и архитектура 4-х уровневой сверточной сети
Функциональная структура
Примеры успешного применения сверточных сетей
Диагностика эпилепсии по ЭЭГ
Реализация сверточной сетью
Одна из самых больших сверточных сетейbull Krizhevsky Sutskever Hinton 2012bull 650 000 нейронов 832 000 000 синапсов 60 000000 пареметровbull Использовался backprop на GPUbull Обучающая выборка на материалах 20 летbull Купил Google в январе 2013bull В мае 2013 развернул как сервис Photo Tagging Google+
Пример тэгирования
Пример поиска похожих по изображению
Пример поиска в коллекции изображений по текстовому запросу
Пример laquoоблачногоraquo классификатора изображений
Самообучающиеся нейронные сети на основе минимизации функции энергииbull Применима к сетям с обратными связямиbull Конструирование функции энергии должно обеспечивать
laquoконтрастностьraquo разделения
bull Энергетическая функция может Неформально рассматриваться как отрицательный логарифм плотности вероятности
Y 2=(Y1)2
RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцмана
bull Из DBM cтроится Deep Belief Network (DBN)
bull w mdash вес между нейронами
bull b mdash смещение нейрона
bull s mdash состояние нейрона
Алгоритм обучения Contrastive Divergence (CD)bull w_ij mdash веc между i-ым нейроном Вероятность пар может быть представлена как
bull a_i mdash смещение видимого нейрона
bull b_j mdash смещение скрытого нейрона
bull v_i mdash состояние видимого нейрона
bull h_j mdash состояние скрытого нейрона Полная вероятность состояния видимых нейронов
Основные уравнения адаптации
Алгоритм Хинтона - Contrastive Divergence (CD-k)
1 состояние видимых нейронов приравнивается к входному образу2 выводятся вероятности состояний скрытого слоя3 каждому нейрону скрытого слоя ставится в соответствие состояние laquo1raquo с вероятностью равной его текущему состоянию4 выводятся вероятности видимого слоя на основании скрытого5 если текущая итерация меньше k то возврат к шагу 26 выводятся вероятности состояний скрытого слоя
darch Package for deep architectures and Restricted-Bolzmann-MachinesThe darch package is build on the basis of the code from G E Hinton and R R Salakhutdinov (available under Matlab Code for deep belief nets last visit 01082013) This package is for generating neural networks with many layers (deep architectures) and train them with the method introduced by the publications A fast learning algorithm for deep belief nets (G E Hinton S Osindero Y W Teh) and Reducing the dimensionality of data with neural networks (G E Hinton R R Salakhutdinov) This method includes a pre training with the contrastive divergence method publishing by GE Hinton (2002) and a fine tuning with common known training algorithms like backpropagation or conjugate gradient
bull Version 091bull Imports futilelogger ff methodsbull Published 2014-03-16bull Author Martin Dreesbull Maintainer Martin Drees ltmdrees at studfh-dortmunddegtbull License GPL-2bull URL httpgithubcommaddin79darchbull NeedsCompilation nobull Materials READMEbull CRAN checks darch results
Связь плотности вероятности и энергии
Используется распределение Гиббса
Задача обучения с точки минимизации энергии сети
bull Сконструировать функцию энергии с малыми значениями на обучающей выборке и с большими значениями всюду вне этого множества
bull Первое несложно а второе представляет задачу процесса обучения
Интуитивные соображения
Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decomposition LISTA ndashметоды использующие разреженные коды
Латентная переменная Z =argmin_z Distance[Decoder(Z)Y]+FactorB(Z)MAPminimaize sum of factors
Автоэнкодер (auto encoder) Автоэнкодер представляет собой алгоритм обучения без учителя который использует нейронную сеть и метод обратного распространения ошибки для того чтобы добиться того что входной вектор признаков вызывал отклик сети равный входному вектору те y = x Автоэнкодер пытается построить функцию h(x) = x
Архитекттура ICA моделей
Итеративные алгоритмы с оптимальным разреженным кодированием ISTAFISTA
Самоорганизация данных методами Deep Learning
>
Знакомство с пакетом deepnet
Назначение
Составdbndnntrain - обучение сети с архитектурой DBN (deep belief network)loadmnist - формирование данных из файлов MNISTnnpredict - предсказание новых выборок на обученной нейронной сетиnntest ndash тестирование обученной нейронной сети с возвращением значения ошибкиnntrain ndash обучение одностлойной или многослойной нейронной сети методом backproprbmdown ndash генерирование видимого вектора для скрытых состояний сети RBMrbmtrain ndash обучение сети RBMrbmup ndash извлечение скрытых состояний RBM по известным видимым состояниямsaednntrain ndash обучение нейронной сети с архитектурой stacked autoencoder
Прогнозирование (классификация) нейронной сетью с архитектурой stacked auto encoder
Argumentsbull x matrix of x values for examplesbull y vector or matrix of target values for examplesbull hidden vector for number of units of hidden layersDefault is c(10)bull activationfun activation function of hidden unitCan be sigmlinear or tanhDefault isbull sigm for logistic functionbull learningrate learning rate for gradient descent Default is 08bull momentum momentum for gradient descent Default is 05 bull learningrate_scalebull learning rate will be mutiplied by this scale after every iteration Default is 1 bull numepochs number of iteration for samples Default is 3bull batchsize size of mini-batch Default is 100bull output function of output unit can be sigmlinear or softmax Default is sigmbull sae_output function of autoencoder output unit can be sigmlinear or softmax Defaultbull is linearbull hidden_dropout drop out fraction for hidden layer Default is 0bull visible_dropoutbull drop out fraction for input layer Default is 0
Что такое MNISTbull Смешанный набор данных Национального института стандартов и
технологий (mixed National Institute of Standards and Technology MNIST) был создан исследователями IR в качестве эталона для сравнения различных алгоритмов IR
bull Набор данных состоит всего из 70 000 изображений 60 000 обучающих (используемых для создания модели IR) и 10 000 тестовых (применяемых для оценки точности модели) Каждое изображение MNIST mdash это оцифрованная картинка одной цифры написанной от руки Каждое изображение имеет размер 28 times 28 пикселей Каждое значение пикселя лежит в диапазоне от 0 (представляет белый цвет) до 255 (представляет черный цвет) Промежуточные значения отражают оттенки серого
httpyannlecuncomexdbmnistобучающие и тестовые данные хранятся в двух файлах а не в одном Один файл содержит значения пикселей для изображений а другой mdash метки изображений (0ndash9) Каждый из четырех файлов также содержит заголовочную информацию и все они хранятся в двоичном формате сжатом в формате gziptrain-images-idx3-ubytegz training set images (9912422 bytes)
train-labels-idx1-ubytegz training set labels (28881 bytes)
t10k-images-idx3-ubytegz test set images (1648877 bytes)
t10k-labels-idx1-ubytegz test set labels (4542 bytes)
bull Каждая строка файла представляет собой имидж размера 28 times 28 вектором длины 784 каждый признак ndash значение пиксела в черно-белой шале Первый столбец содержит метку цифры 0ndash9 следующие 2828 столбцов представляют целый имидж и так далее Пример первой строки
Визуализация
bull plotmnist()bull mnistbull paramsbull train$n number of train samplesbull train$x pix of every train sample imagebull train$y label of every train sample imagebull train$yy one-of-c vector of label of train sample imagebull test$n number of test samplesbull test$x pix of every test sample imagebull test$y label of every test sample imagebull test$yy one-of-c vector of label of test sample image
plotmnist()
Распознавание рукописных цифр в deepnet
another way to download the MNIST datasetmnist downloadmnist(range=c(01)global=FALSE)look at MNIST datamnist$train$xmnist$train$ymnist$test$xmnist$test$ytrain of the sae neural networkdnnlt-saednntrain(mnist$train$xmnist$train$yhidden=c(55))test of the sae neural networknntest(dnnmnist$test$xmnist$test$yt=05)
End of slides part 2 (Part 3 - NLP remaining)
Vladimirvkrylovgmailcom
Основы предиктивной аналитики Часть вторая
Применение методов Machine Learning к решению задач аналитики
Дмитрий Ветров кандидат физико-математических наук ру
Методы обучающихся машин для аналитики которые мы рассмотрим
Сначала нужно загрузить несколько пакетов (packages) для поддер
Данные для анализа
Скрипт для генерации
Данные которые мы будем использовать для демо состоят из смес
Так выглядят визуализированные данные сгенерированные скриптом
Разделение данных на обучающие и проверочные является важным эт
K-means алгоритм на пальцах
Обучающаяся машина без учителя Алгоритм K-means
Slide 13
Slide 14
Здесь мы используем заранее известный факт что необходимо кла
Еще одна иллюстрация работы алгоритма K-means
Обучающаяся машина без учителя Алгоритм KNN (Nearest Neighbor)
Как работает алгоритм KNN
knn(train test cl k = 1 l = 0 prob = FALSE useall = TRUE
Slide 20
Результаты кластеризации и зависимость ошибки от числа кластеро
Recursive PartitioningRegression Tree
Метод RP реализует обучение машины строить дерево решений по об
Recursive PartitioningRegression Tree (2)
rpart(formula data weights subset naaction = narpart met
Slide 26
Recursive PartitioningRegression Tree example
Анализ по главным компонентам (Principal Component Analysis PC
Свертка и архитектура 4-х уровневой сверточной сети
Функциональная структура
Примеры успешного применения сверточных сетей
Диагностика эпилепсии по ЭЭГ
Реализация сверточной сетью
Одна из самых больших сверточных сетейbull Krizhevsky Sutskever Hinton 2012bull 650 000 нейронов 832 000 000 синапсов 60 000000 пареметровbull Использовался backprop на GPUbull Обучающая выборка на материалах 20 летbull Купил Google в январе 2013bull В мае 2013 развернул как сервис Photo Tagging Google+
Пример тэгирования
Пример поиска похожих по изображению
Пример поиска в коллекции изображений по текстовому запросу
Пример laquoоблачногоraquo классификатора изображений
Самообучающиеся нейронные сети на основе минимизации функции энергииbull Применима к сетям с обратными связямиbull Конструирование функции энергии должно обеспечивать
laquoконтрастностьraquo разделения
bull Энергетическая функция может Неформально рассматриваться как отрицательный логарифм плотности вероятности
Y 2=(Y1)2
RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцмана
bull Из DBM cтроится Deep Belief Network (DBN)
bull w mdash вес между нейронами
bull b mdash смещение нейрона
bull s mdash состояние нейрона
Алгоритм обучения Contrastive Divergence (CD)bull w_ij mdash веc между i-ым нейроном Вероятность пар может быть представлена как
bull a_i mdash смещение видимого нейрона
bull b_j mdash смещение скрытого нейрона
bull v_i mdash состояние видимого нейрона
bull h_j mdash состояние скрытого нейрона Полная вероятность состояния видимых нейронов
Основные уравнения адаптации
Алгоритм Хинтона - Contrastive Divergence (CD-k)
1 состояние видимых нейронов приравнивается к входному образу2 выводятся вероятности состояний скрытого слоя3 каждому нейрону скрытого слоя ставится в соответствие состояние laquo1raquo с вероятностью равной его текущему состоянию4 выводятся вероятности видимого слоя на основании скрытого5 если текущая итерация меньше k то возврат к шагу 26 выводятся вероятности состояний скрытого слоя
darch Package for deep architectures and Restricted-Bolzmann-MachinesThe darch package is build on the basis of the code from G E Hinton and R R Salakhutdinov (available under Matlab Code for deep belief nets last visit 01082013) This package is for generating neural networks with many layers (deep architectures) and train them with the method introduced by the publications A fast learning algorithm for deep belief nets (G E Hinton S Osindero Y W Teh) and Reducing the dimensionality of data with neural networks (G E Hinton R R Salakhutdinov) This method includes a pre training with the contrastive divergence method publishing by GE Hinton (2002) and a fine tuning with common known training algorithms like backpropagation or conjugate gradient
bull Version 091bull Imports futilelogger ff methodsbull Published 2014-03-16bull Author Martin Dreesbull Maintainer Martin Drees ltmdrees at studfh-dortmunddegtbull License GPL-2bull URL httpgithubcommaddin79darchbull NeedsCompilation nobull Materials READMEbull CRAN checks darch results
Связь плотности вероятности и энергии
Используется распределение Гиббса
Задача обучения с точки минимизации энергии сети
bull Сконструировать функцию энергии с малыми значениями на обучающей выборке и с большими значениями всюду вне этого множества
bull Первое несложно а второе представляет задачу процесса обучения
Интуитивные соображения
Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decomposition LISTA ndashметоды использующие разреженные коды
Латентная переменная Z =argmin_z Distance[Decoder(Z)Y]+FactorB(Z)MAPminimaize sum of factors
Автоэнкодер (auto encoder) Автоэнкодер представляет собой алгоритм обучения без учителя который использует нейронную сеть и метод обратного распространения ошибки для того чтобы добиться того что входной вектор признаков вызывал отклик сети равный входному вектору те y = x Автоэнкодер пытается построить функцию h(x) = x
Архитекттура ICA моделей
Итеративные алгоритмы с оптимальным разреженным кодированием ISTAFISTA
Самоорганизация данных методами Deep Learning
>
Знакомство с пакетом deepnet
Назначение
Составdbndnntrain - обучение сети с архитектурой DBN (deep belief network)loadmnist - формирование данных из файлов MNISTnnpredict - предсказание новых выборок на обученной нейронной сетиnntest ndash тестирование обученной нейронной сети с возвращением значения ошибкиnntrain ndash обучение одностлойной или многослойной нейронной сети методом backproprbmdown ndash генерирование видимого вектора для скрытых состояний сети RBMrbmtrain ndash обучение сети RBMrbmup ndash извлечение скрытых состояний RBM по известным видимым состояниямsaednntrain ndash обучение нейронной сети с архитектурой stacked autoencoder
Прогнозирование (классификация) нейронной сетью с архитектурой stacked auto encoder
Argumentsbull x matrix of x values for examplesbull y vector or matrix of target values for examplesbull hidden vector for number of units of hidden layersDefault is c(10)bull activationfun activation function of hidden unitCan be sigmlinear or tanhDefault isbull sigm for logistic functionbull learningrate learning rate for gradient descent Default is 08bull momentum momentum for gradient descent Default is 05 bull learningrate_scalebull learning rate will be mutiplied by this scale after every iteration Default is 1 bull numepochs number of iteration for samples Default is 3bull batchsize size of mini-batch Default is 100bull output function of output unit can be sigmlinear or softmax Default is sigmbull sae_output function of autoencoder output unit can be sigmlinear or softmax Defaultbull is linearbull hidden_dropout drop out fraction for hidden layer Default is 0bull visible_dropoutbull drop out fraction for input layer Default is 0
Что такое MNISTbull Смешанный набор данных Национального института стандартов и
технологий (mixed National Institute of Standards and Technology MNIST) был создан исследователями IR в качестве эталона для сравнения различных алгоритмов IR
bull Набор данных состоит всего из 70 000 изображений 60 000 обучающих (используемых для создания модели IR) и 10 000 тестовых (применяемых для оценки точности модели) Каждое изображение MNIST mdash это оцифрованная картинка одной цифры написанной от руки Каждое изображение имеет размер 28 times 28 пикселей Каждое значение пикселя лежит в диапазоне от 0 (представляет белый цвет) до 255 (представляет черный цвет) Промежуточные значения отражают оттенки серого
httpyannlecuncomexdbmnistобучающие и тестовые данные хранятся в двух файлах а не в одном Один файл содержит значения пикселей для изображений а другой mdash метки изображений (0ndash9) Каждый из четырех файлов также содержит заголовочную информацию и все они хранятся в двоичном формате сжатом в формате gziptrain-images-idx3-ubytegz training set images (9912422 bytes)
train-labels-idx1-ubytegz training set labels (28881 bytes)
t10k-images-idx3-ubytegz test set images (1648877 bytes)
t10k-labels-idx1-ubytegz test set labels (4542 bytes)
bull Каждая строка файла представляет собой имидж размера 28 times 28 вектором длины 784 каждый признак ndash значение пиксела в черно-белой шале Первый столбец содержит метку цифры 0ndash9 следующие 2828 столбцов представляют целый имидж и так далее Пример первой строки
Визуализация
bull plotmnist()bull mnistbull paramsbull train$n number of train samplesbull train$x pix of every train sample imagebull train$y label of every train sample imagebull train$yy one-of-c vector of label of train sample imagebull test$n number of test samplesbull test$x pix of every test sample imagebull test$y label of every test sample imagebull test$yy one-of-c vector of label of test sample image
plotmnist()
Распознавание рукописных цифр в deepnet
another way to download the MNIST datasetmnist downloadmnist(range=c(01)global=FALSE)look at MNIST datamnist$train$xmnist$train$ymnist$test$xmnist$test$ytrain of the sae neural networkdnnlt-saednntrain(mnist$train$xmnist$train$yhidden=c(55))test of the sae neural networknntest(dnnmnist$test$xmnist$test$yt=05)
End of slides part 2 (Part 3 - NLP remaining)
Vladimirvkrylovgmailcom
Основы предиктивной аналитики Часть вторая
Применение методов Machine Learning к решению задач аналитики
Дмитрий Ветров кандидат физико-математических наук ру
Методы обучающихся машин для аналитики которые мы рассмотрим
Сначала нужно загрузить несколько пакетов (packages) для поддер
Данные для анализа
Скрипт для генерации
Данные которые мы будем использовать для демо состоят из смес
Так выглядят визуализированные данные сгенерированные скриптом
Разделение данных на обучающие и проверочные является важным эт
K-means алгоритм на пальцах
Обучающаяся машина без учителя Алгоритм K-means
Slide 13
Slide 14
Здесь мы используем заранее известный факт что необходимо кла
Еще одна иллюстрация работы алгоритма K-means
Обучающаяся машина без учителя Алгоритм KNN (Nearest Neighbor)
Как работает алгоритм KNN
knn(train test cl k = 1 l = 0 prob = FALSE useall = TRUE
Slide 20
Результаты кластеризации и зависимость ошибки от числа кластеро
Recursive PartitioningRegression Tree
Метод RP реализует обучение машины строить дерево решений по об
Recursive PartitioningRegression Tree (2)
rpart(formula data weights subset naaction = narpart met
Slide 26
Recursive PartitioningRegression Tree example
Анализ по главным компонентам (Principal Component Analysis PC
Итеративные алгоритмы с оптимальным разреженным кодированием IS
Самоорганизация данных методами Deep Learning
Знакомство с пакетом deepnet
Прогнозирование (классификация) нейронной сетью с архитектурой
Arguments
Архитектура сети SAE
Архитектура с 5Х4 hidden 3 outs
Example
Анализ обучающего набора данных
Параметры SAE сети
Коэффициенты связей
Предсказание обученной сетью
Сравнение обучающей и тестовой выборки
plot3d(xy)
Работаем с пакетом MNIST
httpyannlecuncomexdbmnist
Подготовка к обработке
Slide 118
Визуализация
plotmnist()
Распознавание рукописных цифр в deepnet
End of slides part 2 (Part 3 - NLP remaining)
Сверточные (convolution) нейронные сети
Свертка и архитектура 4-х уровневой сверточной сети
Функциональная структура
Примеры успешного применения сверточных сетей
Диагностика эпилепсии по ЭЭГ
Реализация сверточной сетью
Одна из самых больших сверточных сетейbull Krizhevsky Sutskever Hinton 2012bull 650 000 нейронов 832 000 000 синапсов 60 000000 пареметровbull Использовался backprop на GPUbull Обучающая выборка на материалах 20 летbull Купил Google в январе 2013bull В мае 2013 развернул как сервис Photo Tagging Google+
Пример тэгирования
Пример поиска похожих по изображению
Пример поиска в коллекции изображений по текстовому запросу
Пример laquoоблачногоraquo классификатора изображений
Самообучающиеся нейронные сети на основе минимизации функции энергииbull Применима к сетям с обратными связямиbull Конструирование функции энергии должно обеспечивать
laquoконтрастностьraquo разделения
bull Энергетическая функция может Неформально рассматриваться как отрицательный логарифм плотности вероятности
Y 2=(Y1)2
RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцмана
bull Из DBM cтроится Deep Belief Network (DBN)
bull w mdash вес между нейронами
bull b mdash смещение нейрона
bull s mdash состояние нейрона
Алгоритм обучения Contrastive Divergence (CD)bull w_ij mdash веc между i-ым нейроном Вероятность пар может быть представлена как
bull a_i mdash смещение видимого нейрона
bull b_j mdash смещение скрытого нейрона
bull v_i mdash состояние видимого нейрона
bull h_j mdash состояние скрытого нейрона Полная вероятность состояния видимых нейронов
Основные уравнения адаптации
Алгоритм Хинтона - Contrastive Divergence (CD-k)
1 состояние видимых нейронов приравнивается к входному образу2 выводятся вероятности состояний скрытого слоя3 каждому нейрону скрытого слоя ставится в соответствие состояние laquo1raquo с вероятностью равной его текущему состоянию4 выводятся вероятности видимого слоя на основании скрытого5 если текущая итерация меньше k то возврат к шагу 26 выводятся вероятности состояний скрытого слоя
darch Package for deep architectures and Restricted-Bolzmann-MachinesThe darch package is build on the basis of the code from G E Hinton and R R Salakhutdinov (available under Matlab Code for deep belief nets last visit 01082013) This package is for generating neural networks with many layers (deep architectures) and train them with the method introduced by the publications A fast learning algorithm for deep belief nets (G E Hinton S Osindero Y W Teh) and Reducing the dimensionality of data with neural networks (G E Hinton R R Salakhutdinov) This method includes a pre training with the contrastive divergence method publishing by GE Hinton (2002) and a fine tuning with common known training algorithms like backpropagation or conjugate gradient
bull Version 091bull Imports futilelogger ff methodsbull Published 2014-03-16bull Author Martin Dreesbull Maintainer Martin Drees ltmdrees at studfh-dortmunddegtbull License GPL-2bull URL httpgithubcommaddin79darchbull NeedsCompilation nobull Materials READMEbull CRAN checks darch results
Связь плотности вероятности и энергии
Используется распределение Гиббса
Задача обучения с точки минимизации энергии сети
bull Сконструировать функцию энергии с малыми значениями на обучающей выборке и с большими значениями всюду вне этого множества
bull Первое несложно а второе представляет задачу процесса обучения
Интуитивные соображения
Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decomposition LISTA ndashметоды использующие разреженные коды
Латентная переменная Z =argmin_z Distance[Decoder(Z)Y]+FactorB(Z)MAPminimaize sum of factors
Автоэнкодер (auto encoder) Автоэнкодер представляет собой алгоритм обучения без учителя который использует нейронную сеть и метод обратного распространения ошибки для того чтобы добиться того что входной вектор признаков вызывал отклик сети равный входному вектору те y = x Автоэнкодер пытается построить функцию h(x) = x
Архитекттура ICA моделей
Итеративные алгоритмы с оптимальным разреженным кодированием ISTAFISTA
Самоорганизация данных методами Deep Learning
>
Знакомство с пакетом deepnet
Назначение
Составdbndnntrain - обучение сети с архитектурой DBN (deep belief network)loadmnist - формирование данных из файлов MNISTnnpredict - предсказание новых выборок на обученной нейронной сетиnntest ndash тестирование обученной нейронной сети с возвращением значения ошибкиnntrain ndash обучение одностлойной или многослойной нейронной сети методом backproprbmdown ndash генерирование видимого вектора для скрытых состояний сети RBMrbmtrain ndash обучение сети RBMrbmup ndash извлечение скрытых состояний RBM по известным видимым состояниямsaednntrain ndash обучение нейронной сети с архитектурой stacked autoencoder
Прогнозирование (классификация) нейронной сетью с архитектурой stacked auto encoder
Argumentsbull x matrix of x values for examplesbull y vector or matrix of target values for examplesbull hidden vector for number of units of hidden layersDefault is c(10)bull activationfun activation function of hidden unitCan be sigmlinear or tanhDefault isbull sigm for logistic functionbull learningrate learning rate for gradient descent Default is 08bull momentum momentum for gradient descent Default is 05 bull learningrate_scalebull learning rate will be mutiplied by this scale after every iteration Default is 1 bull numepochs number of iteration for samples Default is 3bull batchsize size of mini-batch Default is 100bull output function of output unit can be sigmlinear or softmax Default is sigmbull sae_output function of autoencoder output unit can be sigmlinear or softmax Defaultbull is linearbull hidden_dropout drop out fraction for hidden layer Default is 0bull visible_dropoutbull drop out fraction for input layer Default is 0
Что такое MNISTbull Смешанный набор данных Национального института стандартов и
технологий (mixed National Institute of Standards and Technology MNIST) был создан исследователями IR в качестве эталона для сравнения различных алгоритмов IR
bull Набор данных состоит всего из 70 000 изображений 60 000 обучающих (используемых для создания модели IR) и 10 000 тестовых (применяемых для оценки точности модели) Каждое изображение MNIST mdash это оцифрованная картинка одной цифры написанной от руки Каждое изображение имеет размер 28 times 28 пикселей Каждое значение пикселя лежит в диапазоне от 0 (представляет белый цвет) до 255 (представляет черный цвет) Промежуточные значения отражают оттенки серого
httpyannlecuncomexdbmnistобучающие и тестовые данные хранятся в двух файлах а не в одном Один файл содержит значения пикселей для изображений а другой mdash метки изображений (0ndash9) Каждый из четырех файлов также содержит заголовочную информацию и все они хранятся в двоичном формате сжатом в формате gziptrain-images-idx3-ubytegz training set images (9912422 bytes)
train-labels-idx1-ubytegz training set labels (28881 bytes)
t10k-images-idx3-ubytegz test set images (1648877 bytes)
t10k-labels-idx1-ubytegz test set labels (4542 bytes)
bull Каждая строка файла представляет собой имидж размера 28 times 28 вектором длины 784 каждый признак ndash значение пиксела в черно-белой шале Первый столбец содержит метку цифры 0ndash9 следующие 2828 столбцов представляют целый имидж и так далее Пример первой строки
Визуализация
bull plotmnist()bull mnistbull paramsbull train$n number of train samplesbull train$x pix of every train sample imagebull train$y label of every train sample imagebull train$yy one-of-c vector of label of train sample imagebull test$n number of test samplesbull test$x pix of every test sample imagebull test$y label of every test sample imagebull test$yy one-of-c vector of label of test sample image
plotmnist()
Распознавание рукописных цифр в deepnet
another way to download the MNIST datasetmnist downloadmnist(range=c(01)global=FALSE)look at MNIST datamnist$train$xmnist$train$ymnist$test$xmnist$test$ytrain of the sae neural networkdnnlt-saednntrain(mnist$train$xmnist$train$yhidden=c(55))test of the sae neural networknntest(dnnmnist$test$xmnist$test$yt=05)
End of slides part 2 (Part 3 - NLP remaining)
Vladimirvkrylovgmailcom
Основы предиктивной аналитики Часть вторая
Применение методов Machine Learning к решению задач аналитики
Дмитрий Ветров кандидат физико-математических наук ру
Методы обучающихся машин для аналитики которые мы рассмотрим
Сначала нужно загрузить несколько пакетов (packages) для поддер
Данные для анализа
Скрипт для генерации
Данные которые мы будем использовать для демо состоят из смес
Так выглядят визуализированные данные сгенерированные скриптом
Разделение данных на обучающие и проверочные является важным эт
K-means алгоритм на пальцах
Обучающаяся машина без учителя Алгоритм K-means
Slide 13
Slide 14
Здесь мы используем заранее известный факт что необходимо кла
Еще одна иллюстрация работы алгоритма K-means
Обучающаяся машина без учителя Алгоритм KNN (Nearest Neighbor)
Как работает алгоритм KNN
knn(train test cl k = 1 l = 0 prob = FALSE useall = TRUE
Slide 20
Результаты кластеризации и зависимость ошибки от числа кластеро
Recursive PartitioningRegression Tree
Метод RP реализует обучение машины строить дерево решений по об
Recursive PartitioningRegression Tree (2)
rpart(formula data weights subset naaction = narpart met
Slide 26
Recursive PartitioningRegression Tree example
Анализ по главным компонентам (Principal Component Analysis PC
Итеративные алгоритмы с оптимальным разреженным кодированием IS
Самоорганизация данных методами Deep Learning
Знакомство с пакетом deepnet
Прогнозирование (классификация) нейронной сетью с архитектурой
Arguments
Архитектура сети SAE
Архитектура с 5Х4 hidden 3 outs
Example
Анализ обучающего набора данных
Параметры SAE сети
Коэффициенты связей
Предсказание обученной сетью
Сравнение обучающей и тестовой выборки
plot3d(xy)
Работаем с пакетом MNIST
httpyannlecuncomexdbmnist
Подготовка к обработке
Slide 118
Визуализация
plotmnist()
Распознавание рукописных цифр в deepnet
End of slides part 2 (Part 3 - NLP remaining)
Свертка и архитектура 4-х уровневой сверточной сети
Функциональная структура
Примеры успешного применения сверточных сетей
Диагностика эпилепсии по ЭЭГ
Реализация сверточной сетью
Одна из самых больших сверточных сетейbull Krizhevsky Sutskever Hinton 2012bull 650 000 нейронов 832 000 000 синапсов 60 000000 пареметровbull Использовался backprop на GPUbull Обучающая выборка на материалах 20 летbull Купил Google в январе 2013bull В мае 2013 развернул как сервис Photo Tagging Google+
Пример тэгирования
Пример поиска похожих по изображению
Пример поиска в коллекции изображений по текстовому запросу
Пример laquoоблачногоraquo классификатора изображений
Самообучающиеся нейронные сети на основе минимизации функции энергииbull Применима к сетям с обратными связямиbull Конструирование функции энергии должно обеспечивать
laquoконтрастностьraquo разделения
bull Энергетическая функция может Неформально рассматриваться как отрицательный логарифм плотности вероятности
Y 2=(Y1)2
RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцмана
bull Из DBM cтроится Deep Belief Network (DBN)
bull w mdash вес между нейронами
bull b mdash смещение нейрона
bull s mdash состояние нейрона
Алгоритм обучения Contrastive Divergence (CD)bull w_ij mdash веc между i-ым нейроном Вероятность пар может быть представлена как
bull a_i mdash смещение видимого нейрона
bull b_j mdash смещение скрытого нейрона
bull v_i mdash состояние видимого нейрона
bull h_j mdash состояние скрытого нейрона Полная вероятность состояния видимых нейронов
Основные уравнения адаптации
Алгоритм Хинтона - Contrastive Divergence (CD-k)
1 состояние видимых нейронов приравнивается к входному образу2 выводятся вероятности состояний скрытого слоя3 каждому нейрону скрытого слоя ставится в соответствие состояние laquo1raquo с вероятностью равной его текущему состоянию4 выводятся вероятности видимого слоя на основании скрытого5 если текущая итерация меньше k то возврат к шагу 26 выводятся вероятности состояний скрытого слоя
darch Package for deep architectures and Restricted-Bolzmann-MachinesThe darch package is build on the basis of the code from G E Hinton and R R Salakhutdinov (available under Matlab Code for deep belief nets last visit 01082013) This package is for generating neural networks with many layers (deep architectures) and train them with the method introduced by the publications A fast learning algorithm for deep belief nets (G E Hinton S Osindero Y W Teh) and Reducing the dimensionality of data with neural networks (G E Hinton R R Salakhutdinov) This method includes a pre training with the contrastive divergence method publishing by GE Hinton (2002) and a fine tuning with common known training algorithms like backpropagation or conjugate gradient
bull Version 091bull Imports futilelogger ff methodsbull Published 2014-03-16bull Author Martin Dreesbull Maintainer Martin Drees ltmdrees at studfh-dortmunddegtbull License GPL-2bull URL httpgithubcommaddin79darchbull NeedsCompilation nobull Materials READMEbull CRAN checks darch results
Связь плотности вероятности и энергии
Используется распределение Гиббса
Задача обучения с точки минимизации энергии сети
bull Сконструировать функцию энергии с малыми значениями на обучающей выборке и с большими значениями всюду вне этого множества
bull Первое несложно а второе представляет задачу процесса обучения
Интуитивные соображения
Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decomposition LISTA ndashметоды использующие разреженные коды
Латентная переменная Z =argmin_z Distance[Decoder(Z)Y]+FactorB(Z)MAPminimaize sum of factors
Автоэнкодер (auto encoder) Автоэнкодер представляет собой алгоритм обучения без учителя который использует нейронную сеть и метод обратного распространения ошибки для того чтобы добиться того что входной вектор признаков вызывал отклик сети равный входному вектору те y = x Автоэнкодер пытается построить функцию h(x) = x
Архитекттура ICA моделей
Итеративные алгоритмы с оптимальным разреженным кодированием ISTAFISTA
Самоорганизация данных методами Deep Learning
>
Знакомство с пакетом deepnet
Назначение
Составdbndnntrain - обучение сети с архитектурой DBN (deep belief network)loadmnist - формирование данных из файлов MNISTnnpredict - предсказание новых выборок на обученной нейронной сетиnntest ndash тестирование обученной нейронной сети с возвращением значения ошибкиnntrain ndash обучение одностлойной или многослойной нейронной сети методом backproprbmdown ndash генерирование видимого вектора для скрытых состояний сети RBMrbmtrain ndash обучение сети RBMrbmup ndash извлечение скрытых состояний RBM по известным видимым состояниямsaednntrain ndash обучение нейронной сети с архитектурой stacked autoencoder
Прогнозирование (классификация) нейронной сетью с архитектурой stacked auto encoder
Argumentsbull x matrix of x values for examplesbull y vector or matrix of target values for examplesbull hidden vector for number of units of hidden layersDefault is c(10)bull activationfun activation function of hidden unitCan be sigmlinear or tanhDefault isbull sigm for logistic functionbull learningrate learning rate for gradient descent Default is 08bull momentum momentum for gradient descent Default is 05 bull learningrate_scalebull learning rate will be mutiplied by this scale after every iteration Default is 1 bull numepochs number of iteration for samples Default is 3bull batchsize size of mini-batch Default is 100bull output function of output unit can be sigmlinear or softmax Default is sigmbull sae_output function of autoencoder output unit can be sigmlinear or softmax Defaultbull is linearbull hidden_dropout drop out fraction for hidden layer Default is 0bull visible_dropoutbull drop out fraction for input layer Default is 0
Что такое MNISTbull Смешанный набор данных Национального института стандартов и
технологий (mixed National Institute of Standards and Technology MNIST) был создан исследователями IR в качестве эталона для сравнения различных алгоритмов IR
bull Набор данных состоит всего из 70 000 изображений 60 000 обучающих (используемых для создания модели IR) и 10 000 тестовых (применяемых для оценки точности модели) Каждое изображение MNIST mdash это оцифрованная картинка одной цифры написанной от руки Каждое изображение имеет размер 28 times 28 пикселей Каждое значение пикселя лежит в диапазоне от 0 (представляет белый цвет) до 255 (представляет черный цвет) Промежуточные значения отражают оттенки серого
httpyannlecuncomexdbmnistобучающие и тестовые данные хранятся в двух файлах а не в одном Один файл содержит значения пикселей для изображений а другой mdash метки изображений (0ndash9) Каждый из четырех файлов также содержит заголовочную информацию и все они хранятся в двоичном формате сжатом в формате gziptrain-images-idx3-ubytegz training set images (9912422 bytes)
train-labels-idx1-ubytegz training set labels (28881 bytes)
t10k-images-idx3-ubytegz test set images (1648877 bytes)
t10k-labels-idx1-ubytegz test set labels (4542 bytes)
bull Каждая строка файла представляет собой имидж размера 28 times 28 вектором длины 784 каждый признак ndash значение пиксела в черно-белой шале Первый столбец содержит метку цифры 0ndash9 следующие 2828 столбцов представляют целый имидж и так далее Пример первой строки
Визуализация
bull plotmnist()bull mnistbull paramsbull train$n number of train samplesbull train$x pix of every train sample imagebull train$y label of every train sample imagebull train$yy one-of-c vector of label of train sample imagebull test$n number of test samplesbull test$x pix of every test sample imagebull test$y label of every test sample imagebull test$yy one-of-c vector of label of test sample image
plotmnist()
Распознавание рукописных цифр в deepnet
another way to download the MNIST datasetmnist downloadmnist(range=c(01)global=FALSE)look at MNIST datamnist$train$xmnist$train$ymnist$test$xmnist$test$ytrain of the sae neural networkdnnlt-saednntrain(mnist$train$xmnist$train$yhidden=c(55))test of the sae neural networknntest(dnnmnist$test$xmnist$test$yt=05)
End of slides part 2 (Part 3 - NLP remaining)
Vladimirvkrylovgmailcom
Основы предиктивной аналитики Часть вторая
Применение методов Machine Learning к решению задач аналитики
Дмитрий Ветров кандидат физико-математических наук ру
Методы обучающихся машин для аналитики которые мы рассмотрим
Сначала нужно загрузить несколько пакетов (packages) для поддер
Данные для анализа
Скрипт для генерации
Данные которые мы будем использовать для демо состоят из смес
Так выглядят визуализированные данные сгенерированные скриптом
Разделение данных на обучающие и проверочные является важным эт
K-means алгоритм на пальцах
Обучающаяся машина без учителя Алгоритм K-means
Slide 13
Slide 14
Здесь мы используем заранее известный факт что необходимо кла
Еще одна иллюстрация работы алгоритма K-means
Обучающаяся машина без учителя Алгоритм KNN (Nearest Neighbor)
Как работает алгоритм KNN
knn(train test cl k = 1 l = 0 prob = FALSE useall = TRUE
Slide 20
Результаты кластеризации и зависимость ошибки от числа кластеро
Recursive PartitioningRegression Tree
Метод RP реализует обучение машины строить дерево решений по об
Recursive PartitioningRegression Tree (2)
rpart(formula data weights subset naaction = narpart met
Slide 26
Recursive PartitioningRegression Tree example
Анализ по главным компонентам (Principal Component Analysis PC
Итеративные алгоритмы с оптимальным разреженным кодированием IS
Самоорганизация данных методами Deep Learning
Знакомство с пакетом deepnet
Прогнозирование (классификация) нейронной сетью с архитектурой
Arguments
Архитектура сети SAE
Архитектура с 5Х4 hidden 3 outs
Example
Анализ обучающего набора данных
Параметры SAE сети
Коэффициенты связей
Предсказание обученной сетью
Сравнение обучающей и тестовой выборки
plot3d(xy)
Работаем с пакетом MNIST
httpyannlecuncomexdbmnist
Подготовка к обработке
Slide 118
Визуализация
plotmnist()
Распознавание рукописных цифр в deepnet
End of slides part 2 (Part 3 - NLP remaining)
Функциональная структура
Примеры успешного применения сверточных сетей
Диагностика эпилепсии по ЭЭГ
Реализация сверточной сетью
Одна из самых больших сверточных сетейbull Krizhevsky Sutskever Hinton 2012bull 650 000 нейронов 832 000 000 синапсов 60 000000 пареметровbull Использовался backprop на GPUbull Обучающая выборка на материалах 20 летbull Купил Google в январе 2013bull В мае 2013 развернул как сервис Photo Tagging Google+
Пример тэгирования
Пример поиска похожих по изображению
Пример поиска в коллекции изображений по текстовому запросу
Пример laquoоблачногоraquo классификатора изображений
Самообучающиеся нейронные сети на основе минимизации функции энергииbull Применима к сетям с обратными связямиbull Конструирование функции энергии должно обеспечивать
laquoконтрастностьraquo разделения
bull Энергетическая функция может Неформально рассматриваться как отрицательный логарифм плотности вероятности
Y 2=(Y1)2
RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцмана
bull Из DBM cтроится Deep Belief Network (DBN)
bull w mdash вес между нейронами
bull b mdash смещение нейрона
bull s mdash состояние нейрона
Алгоритм обучения Contrastive Divergence (CD)bull w_ij mdash веc между i-ым нейроном Вероятность пар может быть представлена как
bull a_i mdash смещение видимого нейрона
bull b_j mdash смещение скрытого нейрона
bull v_i mdash состояние видимого нейрона
bull h_j mdash состояние скрытого нейрона Полная вероятность состояния видимых нейронов
Основные уравнения адаптации
Алгоритм Хинтона - Contrastive Divergence (CD-k)
1 состояние видимых нейронов приравнивается к входному образу2 выводятся вероятности состояний скрытого слоя3 каждому нейрону скрытого слоя ставится в соответствие состояние laquo1raquo с вероятностью равной его текущему состоянию4 выводятся вероятности видимого слоя на основании скрытого5 если текущая итерация меньше k то возврат к шагу 26 выводятся вероятности состояний скрытого слоя
darch Package for deep architectures and Restricted-Bolzmann-MachinesThe darch package is build on the basis of the code from G E Hinton and R R Salakhutdinov (available under Matlab Code for deep belief nets last visit 01082013) This package is for generating neural networks with many layers (deep architectures) and train them with the method introduced by the publications A fast learning algorithm for deep belief nets (G E Hinton S Osindero Y W Teh) and Reducing the dimensionality of data with neural networks (G E Hinton R R Salakhutdinov) This method includes a pre training with the contrastive divergence method publishing by GE Hinton (2002) and a fine tuning with common known training algorithms like backpropagation or conjugate gradient
bull Version 091bull Imports futilelogger ff methodsbull Published 2014-03-16bull Author Martin Dreesbull Maintainer Martin Drees ltmdrees at studfh-dortmunddegtbull License GPL-2bull URL httpgithubcommaddin79darchbull NeedsCompilation nobull Materials READMEbull CRAN checks darch results
Связь плотности вероятности и энергии
Используется распределение Гиббса
Задача обучения с точки минимизации энергии сети
bull Сконструировать функцию энергии с малыми значениями на обучающей выборке и с большими значениями всюду вне этого множества
bull Первое несложно а второе представляет задачу процесса обучения
Интуитивные соображения
Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decomposition LISTA ndashметоды использующие разреженные коды
Латентная переменная Z =argmin_z Distance[Decoder(Z)Y]+FactorB(Z)MAPminimaize sum of factors
Автоэнкодер (auto encoder) Автоэнкодер представляет собой алгоритм обучения без учителя который использует нейронную сеть и метод обратного распространения ошибки для того чтобы добиться того что входной вектор признаков вызывал отклик сети равный входному вектору те y = x Автоэнкодер пытается построить функцию h(x) = x
Архитекттура ICA моделей
Итеративные алгоритмы с оптимальным разреженным кодированием ISTAFISTA
Самоорганизация данных методами Deep Learning
>
Знакомство с пакетом deepnet
Назначение
Составdbndnntrain - обучение сети с архитектурой DBN (deep belief network)loadmnist - формирование данных из файлов MNISTnnpredict - предсказание новых выборок на обученной нейронной сетиnntest ndash тестирование обученной нейронной сети с возвращением значения ошибкиnntrain ndash обучение одностлойной или многослойной нейронной сети методом backproprbmdown ndash генерирование видимого вектора для скрытых состояний сети RBMrbmtrain ndash обучение сети RBMrbmup ndash извлечение скрытых состояний RBM по известным видимым состояниямsaednntrain ndash обучение нейронной сети с архитектурой stacked autoencoder
Прогнозирование (классификация) нейронной сетью с архитектурой stacked auto encoder
Argumentsbull x matrix of x values for examplesbull y vector or matrix of target values for examplesbull hidden vector for number of units of hidden layersDefault is c(10)bull activationfun activation function of hidden unitCan be sigmlinear or tanhDefault isbull sigm for logistic functionbull learningrate learning rate for gradient descent Default is 08bull momentum momentum for gradient descent Default is 05 bull learningrate_scalebull learning rate will be mutiplied by this scale after every iteration Default is 1 bull numepochs number of iteration for samples Default is 3bull batchsize size of mini-batch Default is 100bull output function of output unit can be sigmlinear or softmax Default is sigmbull sae_output function of autoencoder output unit can be sigmlinear or softmax Defaultbull is linearbull hidden_dropout drop out fraction for hidden layer Default is 0bull visible_dropoutbull drop out fraction for input layer Default is 0
Что такое MNISTbull Смешанный набор данных Национального института стандартов и
технологий (mixed National Institute of Standards and Technology MNIST) был создан исследователями IR в качестве эталона для сравнения различных алгоритмов IR
bull Набор данных состоит всего из 70 000 изображений 60 000 обучающих (используемых для создания модели IR) и 10 000 тестовых (применяемых для оценки точности модели) Каждое изображение MNIST mdash это оцифрованная картинка одной цифры написанной от руки Каждое изображение имеет размер 28 times 28 пикселей Каждое значение пикселя лежит в диапазоне от 0 (представляет белый цвет) до 255 (представляет черный цвет) Промежуточные значения отражают оттенки серого
httpyannlecuncomexdbmnistобучающие и тестовые данные хранятся в двух файлах а не в одном Один файл содержит значения пикселей для изображений а другой mdash метки изображений (0ndash9) Каждый из четырех файлов также содержит заголовочную информацию и все они хранятся в двоичном формате сжатом в формате gziptrain-images-idx3-ubytegz training set images (9912422 bytes)
train-labels-idx1-ubytegz training set labels (28881 bytes)
t10k-images-idx3-ubytegz test set images (1648877 bytes)
t10k-labels-idx1-ubytegz test set labels (4542 bytes)
bull Каждая строка файла представляет собой имидж размера 28 times 28 вектором длины 784 каждый признак ndash значение пиксела в черно-белой шале Первый столбец содержит метку цифры 0ndash9 следующие 2828 столбцов представляют целый имидж и так далее Пример первой строки
Визуализация
bull plotmnist()bull mnistbull paramsbull train$n number of train samplesbull train$x pix of every train sample imagebull train$y label of every train sample imagebull train$yy one-of-c vector of label of train sample imagebull test$n number of test samplesbull test$x pix of every test sample imagebull test$y label of every test sample imagebull test$yy one-of-c vector of label of test sample image
plotmnist()
Распознавание рукописных цифр в deepnet
another way to download the MNIST datasetmnist downloadmnist(range=c(01)global=FALSE)look at MNIST datamnist$train$xmnist$train$ymnist$test$xmnist$test$ytrain of the sae neural networkdnnlt-saednntrain(mnist$train$xmnist$train$yhidden=c(55))test of the sae neural networknntest(dnnmnist$test$xmnist$test$yt=05)
End of slides part 2 (Part 3 - NLP remaining)
Vladimirvkrylovgmailcom
Основы предиктивной аналитики Часть вторая
Применение методов Machine Learning к решению задач аналитики
Дмитрий Ветров кандидат физико-математических наук ру
Методы обучающихся машин для аналитики которые мы рассмотрим
Сначала нужно загрузить несколько пакетов (packages) для поддер
Данные для анализа
Скрипт для генерации
Данные которые мы будем использовать для демо состоят из смес
Так выглядят визуализированные данные сгенерированные скриптом
Разделение данных на обучающие и проверочные является важным эт
K-means алгоритм на пальцах
Обучающаяся машина без учителя Алгоритм K-means
Slide 13
Slide 14
Здесь мы используем заранее известный факт что необходимо кла
Еще одна иллюстрация работы алгоритма K-means
Обучающаяся машина без учителя Алгоритм KNN (Nearest Neighbor)
Как работает алгоритм KNN
knn(train test cl k = 1 l = 0 prob = FALSE useall = TRUE
Slide 20
Результаты кластеризации и зависимость ошибки от числа кластеро
Recursive PartitioningRegression Tree
Метод RP реализует обучение машины строить дерево решений по об
Recursive PartitioningRegression Tree (2)
rpart(formula data weights subset naaction = narpart met
Slide 26
Recursive PartitioningRegression Tree example
Анализ по главным компонентам (Principal Component Analysis PC
Итеративные алгоритмы с оптимальным разреженным кодированием IS
Самоорганизация данных методами Deep Learning
Знакомство с пакетом deepnet
Прогнозирование (классификация) нейронной сетью с архитектурой
Arguments
Архитектура сети SAE
Архитектура с 5Х4 hidden 3 outs
Example
Анализ обучающего набора данных
Параметры SAE сети
Коэффициенты связей
Предсказание обученной сетью
Сравнение обучающей и тестовой выборки
plot3d(xy)
Работаем с пакетом MNIST
httpyannlecuncomexdbmnist
Подготовка к обработке
Slide 118
Визуализация
plotmnist()
Распознавание рукописных цифр в deepnet
End of slides part 2 (Part 3 - NLP remaining)
Примеры успешного применения сверточных сетей
Диагностика эпилепсии по ЭЭГ
Реализация сверточной сетью
Одна из самых больших сверточных сетейbull Krizhevsky Sutskever Hinton 2012bull 650 000 нейронов 832 000 000 синапсов 60 000000 пареметровbull Использовался backprop на GPUbull Обучающая выборка на материалах 20 летbull Купил Google в январе 2013bull В мае 2013 развернул как сервис Photo Tagging Google+
Пример тэгирования
Пример поиска похожих по изображению
Пример поиска в коллекции изображений по текстовому запросу
Пример laquoоблачногоraquo классификатора изображений
Самообучающиеся нейронные сети на основе минимизации функции энергииbull Применима к сетям с обратными связямиbull Конструирование функции энергии должно обеспечивать
laquoконтрастностьraquo разделения
bull Энергетическая функция может Неформально рассматриваться как отрицательный логарифм плотности вероятности
Y 2=(Y1)2
RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцмана
bull Из DBM cтроится Deep Belief Network (DBN)
bull w mdash вес между нейронами
bull b mdash смещение нейрона
bull s mdash состояние нейрона
Алгоритм обучения Contrastive Divergence (CD)bull w_ij mdash веc между i-ым нейроном Вероятность пар может быть представлена как
bull a_i mdash смещение видимого нейрона
bull b_j mdash смещение скрытого нейрона
bull v_i mdash состояние видимого нейрона
bull h_j mdash состояние скрытого нейрона Полная вероятность состояния видимых нейронов
Основные уравнения адаптации
Алгоритм Хинтона - Contrastive Divergence (CD-k)
1 состояние видимых нейронов приравнивается к входному образу2 выводятся вероятности состояний скрытого слоя3 каждому нейрону скрытого слоя ставится в соответствие состояние laquo1raquo с вероятностью равной его текущему состоянию4 выводятся вероятности видимого слоя на основании скрытого5 если текущая итерация меньше k то возврат к шагу 26 выводятся вероятности состояний скрытого слоя
darch Package for deep architectures and Restricted-Bolzmann-MachinesThe darch package is build on the basis of the code from G E Hinton and R R Salakhutdinov (available under Matlab Code for deep belief nets last visit 01082013) This package is for generating neural networks with many layers (deep architectures) and train them with the method introduced by the publications A fast learning algorithm for deep belief nets (G E Hinton S Osindero Y W Teh) and Reducing the dimensionality of data with neural networks (G E Hinton R R Salakhutdinov) This method includes a pre training with the contrastive divergence method publishing by GE Hinton (2002) and a fine tuning with common known training algorithms like backpropagation or conjugate gradient
bull Version 091bull Imports futilelogger ff methodsbull Published 2014-03-16bull Author Martin Dreesbull Maintainer Martin Drees ltmdrees at studfh-dortmunddegtbull License GPL-2bull URL httpgithubcommaddin79darchbull NeedsCompilation nobull Materials READMEbull CRAN checks darch results
Связь плотности вероятности и энергии
Используется распределение Гиббса
Задача обучения с точки минимизации энергии сети
bull Сконструировать функцию энергии с малыми значениями на обучающей выборке и с большими значениями всюду вне этого множества
bull Первое несложно а второе представляет задачу процесса обучения
Интуитивные соображения
Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decomposition LISTA ndashметоды использующие разреженные коды
Латентная переменная Z =argmin_z Distance[Decoder(Z)Y]+FactorB(Z)MAPminimaize sum of factors
Автоэнкодер (auto encoder) Автоэнкодер представляет собой алгоритм обучения без учителя который использует нейронную сеть и метод обратного распространения ошибки для того чтобы добиться того что входной вектор признаков вызывал отклик сети равный входному вектору те y = x Автоэнкодер пытается построить функцию h(x) = x
Архитекттура ICA моделей
Итеративные алгоритмы с оптимальным разреженным кодированием ISTAFISTA
Самоорганизация данных методами Deep Learning
>
Знакомство с пакетом deepnet
Назначение
Составdbndnntrain - обучение сети с архитектурой DBN (deep belief network)loadmnist - формирование данных из файлов MNISTnnpredict - предсказание новых выборок на обученной нейронной сетиnntest ndash тестирование обученной нейронной сети с возвращением значения ошибкиnntrain ndash обучение одностлойной или многослойной нейронной сети методом backproprbmdown ndash генерирование видимого вектора для скрытых состояний сети RBMrbmtrain ndash обучение сети RBMrbmup ndash извлечение скрытых состояний RBM по известным видимым состояниямsaednntrain ndash обучение нейронной сети с архитектурой stacked autoencoder
Прогнозирование (классификация) нейронной сетью с архитектурой stacked auto encoder
Argumentsbull x matrix of x values for examplesbull y vector or matrix of target values for examplesbull hidden vector for number of units of hidden layersDefault is c(10)bull activationfun activation function of hidden unitCan be sigmlinear or tanhDefault isbull sigm for logistic functionbull learningrate learning rate for gradient descent Default is 08bull momentum momentum for gradient descent Default is 05 bull learningrate_scalebull learning rate will be mutiplied by this scale after every iteration Default is 1 bull numepochs number of iteration for samples Default is 3bull batchsize size of mini-batch Default is 100bull output function of output unit can be sigmlinear or softmax Default is sigmbull sae_output function of autoencoder output unit can be sigmlinear or softmax Defaultbull is linearbull hidden_dropout drop out fraction for hidden layer Default is 0bull visible_dropoutbull drop out fraction for input layer Default is 0
Что такое MNISTbull Смешанный набор данных Национального института стандартов и
технологий (mixed National Institute of Standards and Technology MNIST) был создан исследователями IR в качестве эталона для сравнения различных алгоритмов IR
bull Набор данных состоит всего из 70 000 изображений 60 000 обучающих (используемых для создания модели IR) и 10 000 тестовых (применяемых для оценки точности модели) Каждое изображение MNIST mdash это оцифрованная картинка одной цифры написанной от руки Каждое изображение имеет размер 28 times 28 пикселей Каждое значение пикселя лежит в диапазоне от 0 (представляет белый цвет) до 255 (представляет черный цвет) Промежуточные значения отражают оттенки серого
httpyannlecuncomexdbmnistобучающие и тестовые данные хранятся в двух файлах а не в одном Один файл содержит значения пикселей для изображений а другой mdash метки изображений (0ndash9) Каждый из четырех файлов также содержит заголовочную информацию и все они хранятся в двоичном формате сжатом в формате gziptrain-images-idx3-ubytegz training set images (9912422 bytes)
train-labels-idx1-ubytegz training set labels (28881 bytes)
t10k-images-idx3-ubytegz test set images (1648877 bytes)
t10k-labels-idx1-ubytegz test set labels (4542 bytes)
bull Каждая строка файла представляет собой имидж размера 28 times 28 вектором длины 784 каждый признак ndash значение пиксела в черно-белой шале Первый столбец содержит метку цифры 0ndash9 следующие 2828 столбцов представляют целый имидж и так далее Пример первой строки
Визуализация
bull plotmnist()bull mnistbull paramsbull train$n number of train samplesbull train$x pix of every train sample imagebull train$y label of every train sample imagebull train$yy one-of-c vector of label of train sample imagebull test$n number of test samplesbull test$x pix of every test sample imagebull test$y label of every test sample imagebull test$yy one-of-c vector of label of test sample image
plotmnist()
Распознавание рукописных цифр в deepnet
another way to download the MNIST datasetmnist downloadmnist(range=c(01)global=FALSE)look at MNIST datamnist$train$xmnist$train$ymnist$test$xmnist$test$ytrain of the sae neural networkdnnlt-saednntrain(mnist$train$xmnist$train$yhidden=c(55))test of the sae neural networknntest(dnnmnist$test$xmnist$test$yt=05)
End of slides part 2 (Part 3 - NLP remaining)
Vladimirvkrylovgmailcom
Основы предиктивной аналитики Часть вторая
Применение методов Machine Learning к решению задач аналитики
Дмитрий Ветров кандидат физико-математических наук ру
Методы обучающихся машин для аналитики которые мы рассмотрим
Сначала нужно загрузить несколько пакетов (packages) для поддер
Данные для анализа
Скрипт для генерации
Данные которые мы будем использовать для демо состоят из смес
Так выглядят визуализированные данные сгенерированные скриптом
Разделение данных на обучающие и проверочные является важным эт
K-means алгоритм на пальцах
Обучающаяся машина без учителя Алгоритм K-means
Slide 13
Slide 14
Здесь мы используем заранее известный факт что необходимо кла
Еще одна иллюстрация работы алгоритма K-means
Обучающаяся машина без учителя Алгоритм KNN (Nearest Neighbor)
Как работает алгоритм KNN
knn(train test cl k = 1 l = 0 prob = FALSE useall = TRUE
Slide 20
Результаты кластеризации и зависимость ошибки от числа кластеро
Recursive PartitioningRegression Tree
Метод RP реализует обучение машины строить дерево решений по об
Recursive PartitioningRegression Tree (2)
rpart(formula data weights subset naaction = narpart met
Slide 26
Recursive PartitioningRegression Tree example
Анализ по главным компонентам (Principal Component Analysis PC
Итеративные алгоритмы с оптимальным разреженным кодированием IS
Самоорганизация данных методами Deep Learning
Знакомство с пакетом deepnet
Прогнозирование (классификация) нейронной сетью с архитектурой
Arguments
Архитектура сети SAE
Архитектура с 5Х4 hidden 3 outs
Example
Анализ обучающего набора данных
Параметры SAE сети
Коэффициенты связей
Предсказание обученной сетью
Сравнение обучающей и тестовой выборки
plot3d(xy)
Работаем с пакетом MNIST
httpyannlecuncomexdbmnist
Подготовка к обработке
Slide 118
Визуализация
plotmnist()
Распознавание рукописных цифр в deepnet
End of slides part 2 (Part 3 - NLP remaining)
Диагностика эпилепсии по ЭЭГ
Реализация сверточной сетью
Одна из самых больших сверточных сетейbull Krizhevsky Sutskever Hinton 2012bull 650 000 нейронов 832 000 000 синапсов 60 000000 пареметровbull Использовался backprop на GPUbull Обучающая выборка на материалах 20 летbull Купил Google в январе 2013bull В мае 2013 развернул как сервис Photo Tagging Google+
Пример тэгирования
Пример поиска похожих по изображению
Пример поиска в коллекции изображений по текстовому запросу
Пример laquoоблачногоraquo классификатора изображений
Самообучающиеся нейронные сети на основе минимизации функции энергииbull Применима к сетям с обратными связямиbull Конструирование функции энергии должно обеспечивать
laquoконтрастностьraquo разделения
bull Энергетическая функция может Неформально рассматриваться как отрицательный логарифм плотности вероятности
Y 2=(Y1)2
RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцмана
bull Из DBM cтроится Deep Belief Network (DBN)
bull w mdash вес между нейронами
bull b mdash смещение нейрона
bull s mdash состояние нейрона
Алгоритм обучения Contrastive Divergence (CD)bull w_ij mdash веc между i-ым нейроном Вероятность пар может быть представлена как
bull a_i mdash смещение видимого нейрона
bull b_j mdash смещение скрытого нейрона
bull v_i mdash состояние видимого нейрона
bull h_j mdash состояние скрытого нейрона Полная вероятность состояния видимых нейронов
Основные уравнения адаптации
Алгоритм Хинтона - Contrastive Divergence (CD-k)
1 состояние видимых нейронов приравнивается к входному образу2 выводятся вероятности состояний скрытого слоя3 каждому нейрону скрытого слоя ставится в соответствие состояние laquo1raquo с вероятностью равной его текущему состоянию4 выводятся вероятности видимого слоя на основании скрытого5 если текущая итерация меньше k то возврат к шагу 26 выводятся вероятности состояний скрытого слоя
darch Package for deep architectures and Restricted-Bolzmann-MachinesThe darch package is build on the basis of the code from G E Hinton and R R Salakhutdinov (available under Matlab Code for deep belief nets last visit 01082013) This package is for generating neural networks with many layers (deep architectures) and train them with the method introduced by the publications A fast learning algorithm for deep belief nets (G E Hinton S Osindero Y W Teh) and Reducing the dimensionality of data with neural networks (G E Hinton R R Salakhutdinov) This method includes a pre training with the contrastive divergence method publishing by GE Hinton (2002) and a fine tuning with common known training algorithms like backpropagation or conjugate gradient
bull Version 091bull Imports futilelogger ff methodsbull Published 2014-03-16bull Author Martin Dreesbull Maintainer Martin Drees ltmdrees at studfh-dortmunddegtbull License GPL-2bull URL httpgithubcommaddin79darchbull NeedsCompilation nobull Materials READMEbull CRAN checks darch results
Связь плотности вероятности и энергии
Используется распределение Гиббса
Задача обучения с точки минимизации энергии сети
bull Сконструировать функцию энергии с малыми значениями на обучающей выборке и с большими значениями всюду вне этого множества
bull Первое несложно а второе представляет задачу процесса обучения
Интуитивные соображения
Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decomposition LISTA ndashметоды использующие разреженные коды
Латентная переменная Z =argmin_z Distance[Decoder(Z)Y]+FactorB(Z)MAPminimaize sum of factors
Автоэнкодер (auto encoder) Автоэнкодер представляет собой алгоритм обучения без учителя который использует нейронную сеть и метод обратного распространения ошибки для того чтобы добиться того что входной вектор признаков вызывал отклик сети равный входному вектору те y = x Автоэнкодер пытается построить функцию h(x) = x
Архитекттура ICA моделей
Итеративные алгоритмы с оптимальным разреженным кодированием ISTAFISTA
Самоорганизация данных методами Deep Learning
>
Знакомство с пакетом deepnet
Назначение
Составdbndnntrain - обучение сети с архитектурой DBN (deep belief network)loadmnist - формирование данных из файлов MNISTnnpredict - предсказание новых выборок на обученной нейронной сетиnntest ndash тестирование обученной нейронной сети с возвращением значения ошибкиnntrain ndash обучение одностлойной или многослойной нейронной сети методом backproprbmdown ndash генерирование видимого вектора для скрытых состояний сети RBMrbmtrain ndash обучение сети RBMrbmup ndash извлечение скрытых состояний RBM по известным видимым состояниямsaednntrain ndash обучение нейронной сети с архитектурой stacked autoencoder
Прогнозирование (классификация) нейронной сетью с архитектурой stacked auto encoder
Argumentsbull x matrix of x values for examplesbull y vector or matrix of target values for examplesbull hidden vector for number of units of hidden layersDefault is c(10)bull activationfun activation function of hidden unitCan be sigmlinear or tanhDefault isbull sigm for logistic functionbull learningrate learning rate for gradient descent Default is 08bull momentum momentum for gradient descent Default is 05 bull learningrate_scalebull learning rate will be mutiplied by this scale after every iteration Default is 1 bull numepochs number of iteration for samples Default is 3bull batchsize size of mini-batch Default is 100bull output function of output unit can be sigmlinear or softmax Default is sigmbull sae_output function of autoencoder output unit can be sigmlinear or softmax Defaultbull is linearbull hidden_dropout drop out fraction for hidden layer Default is 0bull visible_dropoutbull drop out fraction for input layer Default is 0
Что такое MNISTbull Смешанный набор данных Национального института стандартов и
технологий (mixed National Institute of Standards and Technology MNIST) был создан исследователями IR в качестве эталона для сравнения различных алгоритмов IR
bull Набор данных состоит всего из 70 000 изображений 60 000 обучающих (используемых для создания модели IR) и 10 000 тестовых (применяемых для оценки точности модели) Каждое изображение MNIST mdash это оцифрованная картинка одной цифры написанной от руки Каждое изображение имеет размер 28 times 28 пикселей Каждое значение пикселя лежит в диапазоне от 0 (представляет белый цвет) до 255 (представляет черный цвет) Промежуточные значения отражают оттенки серого
httpyannlecuncomexdbmnistобучающие и тестовые данные хранятся в двух файлах а не в одном Один файл содержит значения пикселей для изображений а другой mdash метки изображений (0ndash9) Каждый из четырех файлов также содержит заголовочную информацию и все они хранятся в двоичном формате сжатом в формате gziptrain-images-idx3-ubytegz training set images (9912422 bytes)
train-labels-idx1-ubytegz training set labels (28881 bytes)
t10k-images-idx3-ubytegz test set images (1648877 bytes)
t10k-labels-idx1-ubytegz test set labels (4542 bytes)
bull Каждая строка файла представляет собой имидж размера 28 times 28 вектором длины 784 каждый признак ndash значение пиксела в черно-белой шале Первый столбец содержит метку цифры 0ndash9 следующие 2828 столбцов представляют целый имидж и так далее Пример первой строки
Визуализация
bull plotmnist()bull mnistbull paramsbull train$n number of train samplesbull train$x pix of every train sample imagebull train$y label of every train sample imagebull train$yy one-of-c vector of label of train sample imagebull test$n number of test samplesbull test$x pix of every test sample imagebull test$y label of every test sample imagebull test$yy one-of-c vector of label of test sample image
plotmnist()
Распознавание рукописных цифр в deepnet
another way to download the MNIST datasetmnist downloadmnist(range=c(01)global=FALSE)look at MNIST datamnist$train$xmnist$train$ymnist$test$xmnist$test$ytrain of the sae neural networkdnnlt-saednntrain(mnist$train$xmnist$train$yhidden=c(55))test of the sae neural networknntest(dnnmnist$test$xmnist$test$yt=05)
End of slides part 2 (Part 3 - NLP remaining)
Vladimirvkrylovgmailcom
Основы предиктивной аналитики Часть вторая
Применение методов Machine Learning к решению задач аналитики
Дмитрий Ветров кандидат физико-математических наук ру
Методы обучающихся машин для аналитики которые мы рассмотрим
Сначала нужно загрузить несколько пакетов (packages) для поддер
Данные для анализа
Скрипт для генерации
Данные которые мы будем использовать для демо состоят из смес
Так выглядят визуализированные данные сгенерированные скриптом
Разделение данных на обучающие и проверочные является важным эт
K-means алгоритм на пальцах
Обучающаяся машина без учителя Алгоритм K-means
Slide 13
Slide 14
Здесь мы используем заранее известный факт что необходимо кла
Еще одна иллюстрация работы алгоритма K-means
Обучающаяся машина без учителя Алгоритм KNN (Nearest Neighbor)
Как работает алгоритм KNN
knn(train test cl k = 1 l = 0 prob = FALSE useall = TRUE
Slide 20
Результаты кластеризации и зависимость ошибки от числа кластеро
Recursive PartitioningRegression Tree
Метод RP реализует обучение машины строить дерево решений по об
Recursive PartitioningRegression Tree (2)
rpart(formula data weights subset naaction = narpart met
Slide 26
Recursive PartitioningRegression Tree example
Анализ по главным компонентам (Principal Component Analysis PC
Итеративные алгоритмы с оптимальным разреженным кодированием IS
Самоорганизация данных методами Deep Learning
Знакомство с пакетом deepnet
Прогнозирование (классификация) нейронной сетью с архитектурой
Arguments
Архитектура сети SAE
Архитектура с 5Х4 hidden 3 outs
Example
Анализ обучающего набора данных
Параметры SAE сети
Коэффициенты связей
Предсказание обученной сетью
Сравнение обучающей и тестовой выборки
plot3d(xy)
Работаем с пакетом MNIST
httpyannlecuncomexdbmnist
Подготовка к обработке
Slide 118
Визуализация
plotmnist()
Распознавание рукописных цифр в deepnet
End of slides part 2 (Part 3 - NLP remaining)
Реализация сверточной сетью
Одна из самых больших сверточных сетейbull Krizhevsky Sutskever Hinton 2012bull 650 000 нейронов 832 000 000 синапсов 60 000000 пареметровbull Использовался backprop на GPUbull Обучающая выборка на материалах 20 летbull Купил Google в январе 2013bull В мае 2013 развернул как сервис Photo Tagging Google+
Пример тэгирования
Пример поиска похожих по изображению
Пример поиска в коллекции изображений по текстовому запросу
Пример laquoоблачногоraquo классификатора изображений
Самообучающиеся нейронные сети на основе минимизации функции энергииbull Применима к сетям с обратными связямиbull Конструирование функции энергии должно обеспечивать
laquoконтрастностьraquo разделения
bull Энергетическая функция может Неформально рассматриваться как отрицательный логарифм плотности вероятности
Y 2=(Y1)2
RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцмана
bull Из DBM cтроится Deep Belief Network (DBN)
bull w mdash вес между нейронами
bull b mdash смещение нейрона
bull s mdash состояние нейрона
Алгоритм обучения Contrastive Divergence (CD)bull w_ij mdash веc между i-ым нейроном Вероятность пар может быть представлена как
bull a_i mdash смещение видимого нейрона
bull b_j mdash смещение скрытого нейрона
bull v_i mdash состояние видимого нейрона
bull h_j mdash состояние скрытого нейрона Полная вероятность состояния видимых нейронов
Основные уравнения адаптации
Алгоритм Хинтона - Contrastive Divergence (CD-k)
1 состояние видимых нейронов приравнивается к входному образу2 выводятся вероятности состояний скрытого слоя3 каждому нейрону скрытого слоя ставится в соответствие состояние laquo1raquo с вероятностью равной его текущему состоянию4 выводятся вероятности видимого слоя на основании скрытого5 если текущая итерация меньше k то возврат к шагу 26 выводятся вероятности состояний скрытого слоя
darch Package for deep architectures and Restricted-Bolzmann-MachinesThe darch package is build on the basis of the code from G E Hinton and R R Salakhutdinov (available under Matlab Code for deep belief nets last visit 01082013) This package is for generating neural networks with many layers (deep architectures) and train them with the method introduced by the publications A fast learning algorithm for deep belief nets (G E Hinton S Osindero Y W Teh) and Reducing the dimensionality of data with neural networks (G E Hinton R R Salakhutdinov) This method includes a pre training with the contrastive divergence method publishing by GE Hinton (2002) and a fine tuning with common known training algorithms like backpropagation or conjugate gradient
bull Version 091bull Imports futilelogger ff methodsbull Published 2014-03-16bull Author Martin Dreesbull Maintainer Martin Drees ltmdrees at studfh-dortmunddegtbull License GPL-2bull URL httpgithubcommaddin79darchbull NeedsCompilation nobull Materials READMEbull CRAN checks darch results
Связь плотности вероятности и энергии
Используется распределение Гиббса
Задача обучения с точки минимизации энергии сети
bull Сконструировать функцию энергии с малыми значениями на обучающей выборке и с большими значениями всюду вне этого множества
bull Первое несложно а второе представляет задачу процесса обучения
Интуитивные соображения
Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decomposition LISTA ndashметоды использующие разреженные коды
Латентная переменная Z =argmin_z Distance[Decoder(Z)Y]+FactorB(Z)MAPminimaize sum of factors
Автоэнкодер (auto encoder) Автоэнкодер представляет собой алгоритм обучения без учителя который использует нейронную сеть и метод обратного распространения ошибки для того чтобы добиться того что входной вектор признаков вызывал отклик сети равный входному вектору те y = x Автоэнкодер пытается построить функцию h(x) = x
Архитекттура ICA моделей
Итеративные алгоритмы с оптимальным разреженным кодированием ISTAFISTA
Самоорганизация данных методами Deep Learning
>
Знакомство с пакетом deepnet
Назначение
Составdbndnntrain - обучение сети с архитектурой DBN (deep belief network)loadmnist - формирование данных из файлов MNISTnnpredict - предсказание новых выборок на обученной нейронной сетиnntest ndash тестирование обученной нейронной сети с возвращением значения ошибкиnntrain ndash обучение одностлойной или многослойной нейронной сети методом backproprbmdown ndash генерирование видимого вектора для скрытых состояний сети RBMrbmtrain ndash обучение сети RBMrbmup ndash извлечение скрытых состояний RBM по известным видимым состояниямsaednntrain ndash обучение нейронной сети с архитектурой stacked autoencoder
Прогнозирование (классификация) нейронной сетью с архитектурой stacked auto encoder
Argumentsbull x matrix of x values for examplesbull y vector or matrix of target values for examplesbull hidden vector for number of units of hidden layersDefault is c(10)bull activationfun activation function of hidden unitCan be sigmlinear or tanhDefault isbull sigm for logistic functionbull learningrate learning rate for gradient descent Default is 08bull momentum momentum for gradient descent Default is 05 bull learningrate_scalebull learning rate will be mutiplied by this scale after every iteration Default is 1 bull numepochs number of iteration for samples Default is 3bull batchsize size of mini-batch Default is 100bull output function of output unit can be sigmlinear or softmax Default is sigmbull sae_output function of autoencoder output unit can be sigmlinear or softmax Defaultbull is linearbull hidden_dropout drop out fraction for hidden layer Default is 0bull visible_dropoutbull drop out fraction for input layer Default is 0
Что такое MNISTbull Смешанный набор данных Национального института стандартов и
технологий (mixed National Institute of Standards and Technology MNIST) был создан исследователями IR в качестве эталона для сравнения различных алгоритмов IR
bull Набор данных состоит всего из 70 000 изображений 60 000 обучающих (используемых для создания модели IR) и 10 000 тестовых (применяемых для оценки точности модели) Каждое изображение MNIST mdash это оцифрованная картинка одной цифры написанной от руки Каждое изображение имеет размер 28 times 28 пикселей Каждое значение пикселя лежит в диапазоне от 0 (представляет белый цвет) до 255 (представляет черный цвет) Промежуточные значения отражают оттенки серого
httpyannlecuncomexdbmnistобучающие и тестовые данные хранятся в двух файлах а не в одном Один файл содержит значения пикселей для изображений а другой mdash метки изображений (0ndash9) Каждый из четырех файлов также содержит заголовочную информацию и все они хранятся в двоичном формате сжатом в формате gziptrain-images-idx3-ubytegz training set images (9912422 bytes)
train-labels-idx1-ubytegz training set labels (28881 bytes)
t10k-images-idx3-ubytegz test set images (1648877 bytes)
t10k-labels-idx1-ubytegz test set labels (4542 bytes)
bull Каждая строка файла представляет собой имидж размера 28 times 28 вектором длины 784 каждый признак ndash значение пиксела в черно-белой шале Первый столбец содержит метку цифры 0ndash9 следующие 2828 столбцов представляют целый имидж и так далее Пример первой строки
Визуализация
bull plotmnist()bull mnistbull paramsbull train$n number of train samplesbull train$x pix of every train sample imagebull train$y label of every train sample imagebull train$yy one-of-c vector of label of train sample imagebull test$n number of test samplesbull test$x pix of every test sample imagebull test$y label of every test sample imagebull test$yy one-of-c vector of label of test sample image
plotmnist()
Распознавание рукописных цифр в deepnet
another way to download the MNIST datasetmnist downloadmnist(range=c(01)global=FALSE)look at MNIST datamnist$train$xmnist$train$ymnist$test$xmnist$test$ytrain of the sae neural networkdnnlt-saednntrain(mnist$train$xmnist$train$yhidden=c(55))test of the sae neural networknntest(dnnmnist$test$xmnist$test$yt=05)
End of slides part 2 (Part 3 - NLP remaining)
Vladimirvkrylovgmailcom
Основы предиктивной аналитики Часть вторая
Применение методов Machine Learning к решению задач аналитики
Дмитрий Ветров кандидат физико-математических наук ру
Методы обучающихся машин для аналитики которые мы рассмотрим
Сначала нужно загрузить несколько пакетов (packages) для поддер
Данные для анализа
Скрипт для генерации
Данные которые мы будем использовать для демо состоят из смес
Так выглядят визуализированные данные сгенерированные скриптом
Разделение данных на обучающие и проверочные является важным эт
K-means алгоритм на пальцах
Обучающаяся машина без учителя Алгоритм K-means
Slide 13
Slide 14
Здесь мы используем заранее известный факт что необходимо кла
Еще одна иллюстрация работы алгоритма K-means
Обучающаяся машина без учителя Алгоритм KNN (Nearest Neighbor)
Как работает алгоритм KNN
knn(train test cl k = 1 l = 0 prob = FALSE useall = TRUE
Slide 20
Результаты кластеризации и зависимость ошибки от числа кластеро
Recursive PartitioningRegression Tree
Метод RP реализует обучение машины строить дерево решений по об
Recursive PartitioningRegression Tree (2)
rpart(formula data weights subset naaction = narpart met
Slide 26
Recursive PartitioningRegression Tree example
Анализ по главным компонентам (Principal Component Analysis PC
Итеративные алгоритмы с оптимальным разреженным кодированием IS
Самоорганизация данных методами Deep Learning
Знакомство с пакетом deepnet
Прогнозирование (классификация) нейронной сетью с архитектурой
Arguments
Архитектура сети SAE
Архитектура с 5Х4 hidden 3 outs
Example
Анализ обучающего набора данных
Параметры SAE сети
Коэффициенты связей
Предсказание обученной сетью
Сравнение обучающей и тестовой выборки
plot3d(xy)
Работаем с пакетом MNIST
httpyannlecuncomexdbmnist
Подготовка к обработке
Slide 118
Визуализация
plotmnist()
Распознавание рукописных цифр в deepnet
End of slides part 2 (Part 3 - NLP remaining)
Одна из самых больших сверточных сетейbull Krizhevsky Sutskever Hinton 2012bull 650 000 нейронов 832 000 000 синапсов 60 000000 пареметровbull Использовался backprop на GPUbull Обучающая выборка на материалах 20 летbull Купил Google в январе 2013bull В мае 2013 развернул как сервис Photo Tagging Google+
Пример тэгирования
Пример поиска похожих по изображению
Пример поиска в коллекции изображений по текстовому запросу
Пример laquoоблачногоraquo классификатора изображений
Самообучающиеся нейронные сети на основе минимизации функции энергииbull Применима к сетям с обратными связямиbull Конструирование функции энергии должно обеспечивать
laquoконтрастностьraquo разделения
bull Энергетическая функция может Неформально рассматриваться как отрицательный логарифм плотности вероятности
Y 2=(Y1)2
RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцмана
bull Из DBM cтроится Deep Belief Network (DBN)
bull w mdash вес между нейронами
bull b mdash смещение нейрона
bull s mdash состояние нейрона
Алгоритм обучения Contrastive Divergence (CD)bull w_ij mdash веc между i-ым нейроном Вероятность пар может быть представлена как
bull a_i mdash смещение видимого нейрона
bull b_j mdash смещение скрытого нейрона
bull v_i mdash состояние видимого нейрона
bull h_j mdash состояние скрытого нейрона Полная вероятность состояния видимых нейронов
Основные уравнения адаптации
Алгоритм Хинтона - Contrastive Divergence (CD-k)
1 состояние видимых нейронов приравнивается к входному образу2 выводятся вероятности состояний скрытого слоя3 каждому нейрону скрытого слоя ставится в соответствие состояние laquo1raquo с вероятностью равной его текущему состоянию4 выводятся вероятности видимого слоя на основании скрытого5 если текущая итерация меньше k то возврат к шагу 26 выводятся вероятности состояний скрытого слоя
darch Package for deep architectures and Restricted-Bolzmann-MachinesThe darch package is build on the basis of the code from G E Hinton and R R Salakhutdinov (available under Matlab Code for deep belief nets last visit 01082013) This package is for generating neural networks with many layers (deep architectures) and train them with the method introduced by the publications A fast learning algorithm for deep belief nets (G E Hinton S Osindero Y W Teh) and Reducing the dimensionality of data with neural networks (G E Hinton R R Salakhutdinov) This method includes a pre training with the contrastive divergence method publishing by GE Hinton (2002) and a fine tuning with common known training algorithms like backpropagation or conjugate gradient
bull Version 091bull Imports futilelogger ff methodsbull Published 2014-03-16bull Author Martin Dreesbull Maintainer Martin Drees ltmdrees at studfh-dortmunddegtbull License GPL-2bull URL httpgithubcommaddin79darchbull NeedsCompilation nobull Materials READMEbull CRAN checks darch results
Связь плотности вероятности и энергии
Используется распределение Гиббса
Задача обучения с точки минимизации энергии сети
bull Сконструировать функцию энергии с малыми значениями на обучающей выборке и с большими значениями всюду вне этого множества
bull Первое несложно а второе представляет задачу процесса обучения
Интуитивные соображения
Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decomposition LISTA ndashметоды использующие разреженные коды
Латентная переменная Z =argmin_z Distance[Decoder(Z)Y]+FactorB(Z)MAPminimaize sum of factors
Автоэнкодер (auto encoder) Автоэнкодер представляет собой алгоритм обучения без учителя который использует нейронную сеть и метод обратного распространения ошибки для того чтобы добиться того что входной вектор признаков вызывал отклик сети равный входному вектору те y = x Автоэнкодер пытается построить функцию h(x) = x
Архитекттура ICA моделей
Итеративные алгоритмы с оптимальным разреженным кодированием ISTAFISTA
Самоорганизация данных методами Deep Learning
>
Знакомство с пакетом deepnet
Назначение
Составdbndnntrain - обучение сети с архитектурой DBN (deep belief network)loadmnist - формирование данных из файлов MNISTnnpredict - предсказание новых выборок на обученной нейронной сетиnntest ndash тестирование обученной нейронной сети с возвращением значения ошибкиnntrain ndash обучение одностлойной или многослойной нейронной сети методом backproprbmdown ndash генерирование видимого вектора для скрытых состояний сети RBMrbmtrain ndash обучение сети RBMrbmup ndash извлечение скрытых состояний RBM по известным видимым состояниямsaednntrain ndash обучение нейронной сети с архитектурой stacked autoencoder
Прогнозирование (классификация) нейронной сетью с архитектурой stacked auto encoder
Argumentsbull x matrix of x values for examplesbull y vector or matrix of target values for examplesbull hidden vector for number of units of hidden layersDefault is c(10)bull activationfun activation function of hidden unitCan be sigmlinear or tanhDefault isbull sigm for logistic functionbull learningrate learning rate for gradient descent Default is 08bull momentum momentum for gradient descent Default is 05 bull learningrate_scalebull learning rate will be mutiplied by this scale after every iteration Default is 1 bull numepochs number of iteration for samples Default is 3bull batchsize size of mini-batch Default is 100bull output function of output unit can be sigmlinear or softmax Default is sigmbull sae_output function of autoencoder output unit can be sigmlinear or softmax Defaultbull is linearbull hidden_dropout drop out fraction for hidden layer Default is 0bull visible_dropoutbull drop out fraction for input layer Default is 0
Что такое MNISTbull Смешанный набор данных Национального института стандартов и
технологий (mixed National Institute of Standards and Technology MNIST) был создан исследователями IR в качестве эталона для сравнения различных алгоритмов IR
bull Набор данных состоит всего из 70 000 изображений 60 000 обучающих (используемых для создания модели IR) и 10 000 тестовых (применяемых для оценки точности модели) Каждое изображение MNIST mdash это оцифрованная картинка одной цифры написанной от руки Каждое изображение имеет размер 28 times 28 пикселей Каждое значение пикселя лежит в диапазоне от 0 (представляет белый цвет) до 255 (представляет черный цвет) Промежуточные значения отражают оттенки серого
httpyannlecuncomexdbmnistобучающие и тестовые данные хранятся в двух файлах а не в одном Один файл содержит значения пикселей для изображений а другой mdash метки изображений (0ndash9) Каждый из четырех файлов также содержит заголовочную информацию и все они хранятся в двоичном формате сжатом в формате gziptrain-images-idx3-ubytegz training set images (9912422 bytes)
train-labels-idx1-ubytegz training set labels (28881 bytes)
t10k-images-idx3-ubytegz test set images (1648877 bytes)
t10k-labels-idx1-ubytegz test set labels (4542 bytes)
bull Каждая строка файла представляет собой имидж размера 28 times 28 вектором длины 784 каждый признак ndash значение пиксела в черно-белой шале Первый столбец содержит метку цифры 0ndash9 следующие 2828 столбцов представляют целый имидж и так далее Пример первой строки
Визуализация
bull plotmnist()bull mnistbull paramsbull train$n number of train samplesbull train$x pix of every train sample imagebull train$y label of every train sample imagebull train$yy one-of-c vector of label of train sample imagebull test$n number of test samplesbull test$x pix of every test sample imagebull test$y label of every test sample imagebull test$yy one-of-c vector of label of test sample image
plotmnist()
Распознавание рукописных цифр в deepnet
another way to download the MNIST datasetmnist downloadmnist(range=c(01)global=FALSE)look at MNIST datamnist$train$xmnist$train$ymnist$test$xmnist$test$ytrain of the sae neural networkdnnlt-saednntrain(mnist$train$xmnist$train$yhidden=c(55))test of the sae neural networknntest(dnnmnist$test$xmnist$test$yt=05)
End of slides part 2 (Part 3 - NLP remaining)
Vladimirvkrylovgmailcom
Основы предиктивной аналитики Часть вторая
Применение методов Machine Learning к решению задач аналитики
Дмитрий Ветров кандидат физико-математических наук ру
Методы обучающихся машин для аналитики которые мы рассмотрим
Сначала нужно загрузить несколько пакетов (packages) для поддер
Данные для анализа
Скрипт для генерации
Данные которые мы будем использовать для демо состоят из смес
Так выглядят визуализированные данные сгенерированные скриптом
Разделение данных на обучающие и проверочные является важным эт
K-means алгоритм на пальцах
Обучающаяся машина без учителя Алгоритм K-means
Slide 13
Slide 14
Здесь мы используем заранее известный факт что необходимо кла
Еще одна иллюстрация работы алгоритма K-means
Обучающаяся машина без учителя Алгоритм KNN (Nearest Neighbor)
Как работает алгоритм KNN
knn(train test cl k = 1 l = 0 prob = FALSE useall = TRUE
Slide 20
Результаты кластеризации и зависимость ошибки от числа кластеро
Recursive PartitioningRegression Tree
Метод RP реализует обучение машины строить дерево решений по об
Recursive PartitioningRegression Tree (2)
rpart(formula data weights subset naaction = narpart met
Slide 26
Recursive PartitioningRegression Tree example
Анализ по главным компонентам (Principal Component Analysis PC
Итеративные алгоритмы с оптимальным разреженным кодированием IS
Самоорганизация данных методами Deep Learning
Знакомство с пакетом deepnet
Прогнозирование (классификация) нейронной сетью с архитектурой
Arguments
Архитектура сети SAE
Архитектура с 5Х4 hidden 3 outs
Example
Анализ обучающего набора данных
Параметры SAE сети
Коэффициенты связей
Предсказание обученной сетью
Сравнение обучающей и тестовой выборки
plot3d(xy)
Работаем с пакетом MNIST
httpyannlecuncomexdbmnist
Подготовка к обработке
Slide 118
Визуализация
plotmnist()
Распознавание рукописных цифр в deepnet
End of slides part 2 (Part 3 - NLP remaining)
Пример тэгирования
Пример поиска похожих по изображению
Пример поиска в коллекции изображений по текстовому запросу
Пример laquoоблачногоraquo классификатора изображений
Самообучающиеся нейронные сети на основе минимизации функции энергииbull Применима к сетям с обратными связямиbull Конструирование функции энергии должно обеспечивать
laquoконтрастностьraquo разделения
bull Энергетическая функция может Неформально рассматриваться как отрицательный логарифм плотности вероятности
Y 2=(Y1)2
RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцмана
bull Из DBM cтроится Deep Belief Network (DBN)
bull w mdash вес между нейронами
bull b mdash смещение нейрона
bull s mdash состояние нейрона
Алгоритм обучения Contrastive Divergence (CD)bull w_ij mdash веc между i-ым нейроном Вероятность пар может быть представлена как
bull a_i mdash смещение видимого нейрона
bull b_j mdash смещение скрытого нейрона
bull v_i mdash состояние видимого нейрона
bull h_j mdash состояние скрытого нейрона Полная вероятность состояния видимых нейронов
Основные уравнения адаптации
Алгоритм Хинтона - Contrastive Divergence (CD-k)
1 состояние видимых нейронов приравнивается к входному образу2 выводятся вероятности состояний скрытого слоя3 каждому нейрону скрытого слоя ставится в соответствие состояние laquo1raquo с вероятностью равной его текущему состоянию4 выводятся вероятности видимого слоя на основании скрытого5 если текущая итерация меньше k то возврат к шагу 26 выводятся вероятности состояний скрытого слоя
darch Package for deep architectures and Restricted-Bolzmann-MachinesThe darch package is build on the basis of the code from G E Hinton and R R Salakhutdinov (available under Matlab Code for deep belief nets last visit 01082013) This package is for generating neural networks with many layers (deep architectures) and train them with the method introduced by the publications A fast learning algorithm for deep belief nets (G E Hinton S Osindero Y W Teh) and Reducing the dimensionality of data with neural networks (G E Hinton R R Salakhutdinov) This method includes a pre training with the contrastive divergence method publishing by GE Hinton (2002) and a fine tuning with common known training algorithms like backpropagation or conjugate gradient
bull Version 091bull Imports futilelogger ff methodsbull Published 2014-03-16bull Author Martin Dreesbull Maintainer Martin Drees ltmdrees at studfh-dortmunddegtbull License GPL-2bull URL httpgithubcommaddin79darchbull NeedsCompilation nobull Materials READMEbull CRAN checks darch results
Связь плотности вероятности и энергии
Используется распределение Гиббса
Задача обучения с точки минимизации энергии сети
bull Сконструировать функцию энергии с малыми значениями на обучающей выборке и с большими значениями всюду вне этого множества
bull Первое несложно а второе представляет задачу процесса обучения
Интуитивные соображения
Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decomposition LISTA ndashметоды использующие разреженные коды
Латентная переменная Z =argmin_z Distance[Decoder(Z)Y]+FactorB(Z)MAPminimaize sum of factors
Автоэнкодер (auto encoder) Автоэнкодер представляет собой алгоритм обучения без учителя который использует нейронную сеть и метод обратного распространения ошибки для того чтобы добиться того что входной вектор признаков вызывал отклик сети равный входному вектору те y = x Автоэнкодер пытается построить функцию h(x) = x
Архитекттура ICA моделей
Итеративные алгоритмы с оптимальным разреженным кодированием ISTAFISTA
Самоорганизация данных методами Deep Learning
>
Знакомство с пакетом deepnet
Назначение
Составdbndnntrain - обучение сети с архитектурой DBN (deep belief network)loadmnist - формирование данных из файлов MNISTnnpredict - предсказание новых выборок на обученной нейронной сетиnntest ndash тестирование обученной нейронной сети с возвращением значения ошибкиnntrain ndash обучение одностлойной или многослойной нейронной сети методом backproprbmdown ndash генерирование видимого вектора для скрытых состояний сети RBMrbmtrain ndash обучение сети RBMrbmup ndash извлечение скрытых состояний RBM по известным видимым состояниямsaednntrain ndash обучение нейронной сети с архитектурой stacked autoencoder
Прогнозирование (классификация) нейронной сетью с архитектурой stacked auto encoder
Argumentsbull x matrix of x values for examplesbull y vector or matrix of target values for examplesbull hidden vector for number of units of hidden layersDefault is c(10)bull activationfun activation function of hidden unitCan be sigmlinear or tanhDefault isbull sigm for logistic functionbull learningrate learning rate for gradient descent Default is 08bull momentum momentum for gradient descent Default is 05 bull learningrate_scalebull learning rate will be mutiplied by this scale after every iteration Default is 1 bull numepochs number of iteration for samples Default is 3bull batchsize size of mini-batch Default is 100bull output function of output unit can be sigmlinear or softmax Default is sigmbull sae_output function of autoencoder output unit can be sigmlinear or softmax Defaultbull is linearbull hidden_dropout drop out fraction for hidden layer Default is 0bull visible_dropoutbull drop out fraction for input layer Default is 0
Что такое MNISTbull Смешанный набор данных Национального института стандартов и
технологий (mixed National Institute of Standards and Technology MNIST) был создан исследователями IR в качестве эталона для сравнения различных алгоритмов IR
bull Набор данных состоит всего из 70 000 изображений 60 000 обучающих (используемых для создания модели IR) и 10 000 тестовых (применяемых для оценки точности модели) Каждое изображение MNIST mdash это оцифрованная картинка одной цифры написанной от руки Каждое изображение имеет размер 28 times 28 пикселей Каждое значение пикселя лежит в диапазоне от 0 (представляет белый цвет) до 255 (представляет черный цвет) Промежуточные значения отражают оттенки серого
httpyannlecuncomexdbmnistобучающие и тестовые данные хранятся в двух файлах а не в одном Один файл содержит значения пикселей для изображений а другой mdash метки изображений (0ndash9) Каждый из четырех файлов также содержит заголовочную информацию и все они хранятся в двоичном формате сжатом в формате gziptrain-images-idx3-ubytegz training set images (9912422 bytes)
train-labels-idx1-ubytegz training set labels (28881 bytes)
t10k-images-idx3-ubytegz test set images (1648877 bytes)
t10k-labels-idx1-ubytegz test set labels (4542 bytes)
bull Каждая строка файла представляет собой имидж размера 28 times 28 вектором длины 784 каждый признак ndash значение пиксела в черно-белой шале Первый столбец содержит метку цифры 0ndash9 следующие 2828 столбцов представляют целый имидж и так далее Пример первой строки
Визуализация
bull plotmnist()bull mnistbull paramsbull train$n number of train samplesbull train$x pix of every train sample imagebull train$y label of every train sample imagebull train$yy one-of-c vector of label of train sample imagebull test$n number of test samplesbull test$x pix of every test sample imagebull test$y label of every test sample imagebull test$yy one-of-c vector of label of test sample image
plotmnist()
Распознавание рукописных цифр в deepnet
another way to download the MNIST datasetmnist downloadmnist(range=c(01)global=FALSE)look at MNIST datamnist$train$xmnist$train$ymnist$test$xmnist$test$ytrain of the sae neural networkdnnlt-saednntrain(mnist$train$xmnist$train$yhidden=c(55))test of the sae neural networknntest(dnnmnist$test$xmnist$test$yt=05)
End of slides part 2 (Part 3 - NLP remaining)
Vladimirvkrylovgmailcom
Основы предиктивной аналитики Часть вторая
Применение методов Machine Learning к решению задач аналитики
Дмитрий Ветров кандидат физико-математических наук ру
Методы обучающихся машин для аналитики которые мы рассмотрим
Сначала нужно загрузить несколько пакетов (packages) для поддер
Данные для анализа
Скрипт для генерации
Данные которые мы будем использовать для демо состоят из смес
Так выглядят визуализированные данные сгенерированные скриптом
Разделение данных на обучающие и проверочные является важным эт
K-means алгоритм на пальцах
Обучающаяся машина без учителя Алгоритм K-means
Slide 13
Slide 14
Здесь мы используем заранее известный факт что необходимо кла
Еще одна иллюстрация работы алгоритма K-means
Обучающаяся машина без учителя Алгоритм KNN (Nearest Neighbor)
Как работает алгоритм KNN
knn(train test cl k = 1 l = 0 prob = FALSE useall = TRUE
Slide 20
Результаты кластеризации и зависимость ошибки от числа кластеро
Recursive PartitioningRegression Tree
Метод RP реализует обучение машины строить дерево решений по об
Recursive PartitioningRegression Tree (2)
rpart(formula data weights subset naaction = narpart met
Slide 26
Recursive PartitioningRegression Tree example
Анализ по главным компонентам (Principal Component Analysis PC
Итеративные алгоритмы с оптимальным разреженным кодированием IS
Самоорганизация данных методами Deep Learning
Знакомство с пакетом deepnet
Прогнозирование (классификация) нейронной сетью с архитектурой
Arguments
Архитектура сети SAE
Архитектура с 5Х4 hidden 3 outs
Example
Анализ обучающего набора данных
Параметры SAE сети
Коэффициенты связей
Предсказание обученной сетью
Сравнение обучающей и тестовой выборки
plot3d(xy)
Работаем с пакетом MNIST
httpyannlecuncomexdbmnist
Подготовка к обработке
Slide 118
Визуализация
plotmnist()
Распознавание рукописных цифр в deepnet
End of slides part 2 (Part 3 - NLP remaining)
Пример поиска похожих по изображению
Пример поиска в коллекции изображений по текстовому запросу
Пример laquoоблачногоraquo классификатора изображений
Самообучающиеся нейронные сети на основе минимизации функции энергииbull Применима к сетям с обратными связямиbull Конструирование функции энергии должно обеспечивать
laquoконтрастностьraquo разделения
bull Энергетическая функция может Неформально рассматриваться как отрицательный логарифм плотности вероятности
Y 2=(Y1)2
RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцмана
bull Из DBM cтроится Deep Belief Network (DBN)
bull w mdash вес между нейронами
bull b mdash смещение нейрона
bull s mdash состояние нейрона
Алгоритм обучения Contrastive Divergence (CD)bull w_ij mdash веc между i-ым нейроном Вероятность пар может быть представлена как
bull a_i mdash смещение видимого нейрона
bull b_j mdash смещение скрытого нейрона
bull v_i mdash состояние видимого нейрона
bull h_j mdash состояние скрытого нейрона Полная вероятность состояния видимых нейронов
Основные уравнения адаптации
Алгоритм Хинтона - Contrastive Divergence (CD-k)
1 состояние видимых нейронов приравнивается к входному образу2 выводятся вероятности состояний скрытого слоя3 каждому нейрону скрытого слоя ставится в соответствие состояние laquo1raquo с вероятностью равной его текущему состоянию4 выводятся вероятности видимого слоя на основании скрытого5 если текущая итерация меньше k то возврат к шагу 26 выводятся вероятности состояний скрытого слоя
darch Package for deep architectures and Restricted-Bolzmann-MachinesThe darch package is build on the basis of the code from G E Hinton and R R Salakhutdinov (available under Matlab Code for deep belief nets last visit 01082013) This package is for generating neural networks with many layers (deep architectures) and train them with the method introduced by the publications A fast learning algorithm for deep belief nets (G E Hinton S Osindero Y W Teh) and Reducing the dimensionality of data with neural networks (G E Hinton R R Salakhutdinov) This method includes a pre training with the contrastive divergence method publishing by GE Hinton (2002) and a fine tuning with common known training algorithms like backpropagation or conjugate gradient
bull Version 091bull Imports futilelogger ff methodsbull Published 2014-03-16bull Author Martin Dreesbull Maintainer Martin Drees ltmdrees at studfh-dortmunddegtbull License GPL-2bull URL httpgithubcommaddin79darchbull NeedsCompilation nobull Materials READMEbull CRAN checks darch results
Связь плотности вероятности и энергии
Используется распределение Гиббса
Задача обучения с точки минимизации энергии сети
bull Сконструировать функцию энергии с малыми значениями на обучающей выборке и с большими значениями всюду вне этого множества
bull Первое несложно а второе представляет задачу процесса обучения
Интуитивные соображения
Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decomposition LISTA ndashметоды использующие разреженные коды
Латентная переменная Z =argmin_z Distance[Decoder(Z)Y]+FactorB(Z)MAPminimaize sum of factors
Автоэнкодер (auto encoder) Автоэнкодер представляет собой алгоритм обучения без учителя который использует нейронную сеть и метод обратного распространения ошибки для того чтобы добиться того что входной вектор признаков вызывал отклик сети равный входному вектору те y = x Автоэнкодер пытается построить функцию h(x) = x
Архитекттура ICA моделей
Итеративные алгоритмы с оптимальным разреженным кодированием ISTAFISTA
Самоорганизация данных методами Deep Learning
>
Знакомство с пакетом deepnet
Назначение
Составdbndnntrain - обучение сети с архитектурой DBN (deep belief network)loadmnist - формирование данных из файлов MNISTnnpredict - предсказание новых выборок на обученной нейронной сетиnntest ndash тестирование обученной нейронной сети с возвращением значения ошибкиnntrain ndash обучение одностлойной или многослойной нейронной сети методом backproprbmdown ndash генерирование видимого вектора для скрытых состояний сети RBMrbmtrain ndash обучение сети RBMrbmup ndash извлечение скрытых состояний RBM по известным видимым состояниямsaednntrain ndash обучение нейронной сети с архитектурой stacked autoencoder
Прогнозирование (классификация) нейронной сетью с архитектурой stacked auto encoder
Argumentsbull x matrix of x values for examplesbull y vector or matrix of target values for examplesbull hidden vector for number of units of hidden layersDefault is c(10)bull activationfun activation function of hidden unitCan be sigmlinear or tanhDefault isbull sigm for logistic functionbull learningrate learning rate for gradient descent Default is 08bull momentum momentum for gradient descent Default is 05 bull learningrate_scalebull learning rate will be mutiplied by this scale after every iteration Default is 1 bull numepochs number of iteration for samples Default is 3bull batchsize size of mini-batch Default is 100bull output function of output unit can be sigmlinear or softmax Default is sigmbull sae_output function of autoencoder output unit can be sigmlinear or softmax Defaultbull is linearbull hidden_dropout drop out fraction for hidden layer Default is 0bull visible_dropoutbull drop out fraction for input layer Default is 0
Что такое MNISTbull Смешанный набор данных Национального института стандартов и
технологий (mixed National Institute of Standards and Technology MNIST) был создан исследователями IR в качестве эталона для сравнения различных алгоритмов IR
bull Набор данных состоит всего из 70 000 изображений 60 000 обучающих (используемых для создания модели IR) и 10 000 тестовых (применяемых для оценки точности модели) Каждое изображение MNIST mdash это оцифрованная картинка одной цифры написанной от руки Каждое изображение имеет размер 28 times 28 пикселей Каждое значение пикселя лежит в диапазоне от 0 (представляет белый цвет) до 255 (представляет черный цвет) Промежуточные значения отражают оттенки серого
httpyannlecuncomexdbmnistобучающие и тестовые данные хранятся в двух файлах а не в одном Один файл содержит значения пикселей для изображений а другой mdash метки изображений (0ndash9) Каждый из четырех файлов также содержит заголовочную информацию и все они хранятся в двоичном формате сжатом в формате gziptrain-images-idx3-ubytegz training set images (9912422 bytes)
train-labels-idx1-ubytegz training set labels (28881 bytes)
t10k-images-idx3-ubytegz test set images (1648877 bytes)
t10k-labels-idx1-ubytegz test set labels (4542 bytes)
bull Каждая строка файла представляет собой имидж размера 28 times 28 вектором длины 784 каждый признак ndash значение пиксела в черно-белой шале Первый столбец содержит метку цифры 0ndash9 следующие 2828 столбцов представляют целый имидж и так далее Пример первой строки
Визуализация
bull plotmnist()bull mnistbull paramsbull train$n number of train samplesbull train$x pix of every train sample imagebull train$y label of every train sample imagebull train$yy one-of-c vector of label of train sample imagebull test$n number of test samplesbull test$x pix of every test sample imagebull test$y label of every test sample imagebull test$yy one-of-c vector of label of test sample image
plotmnist()
Распознавание рукописных цифр в deepnet
another way to download the MNIST datasetmnist downloadmnist(range=c(01)global=FALSE)look at MNIST datamnist$train$xmnist$train$ymnist$test$xmnist$test$ytrain of the sae neural networkdnnlt-saednntrain(mnist$train$xmnist$train$yhidden=c(55))test of the sae neural networknntest(dnnmnist$test$xmnist$test$yt=05)
End of slides part 2 (Part 3 - NLP remaining)
Vladimirvkrylovgmailcom
Основы предиктивной аналитики Часть вторая
Применение методов Machine Learning к решению задач аналитики
Дмитрий Ветров кандидат физико-математических наук ру
Методы обучающихся машин для аналитики которые мы рассмотрим
Сначала нужно загрузить несколько пакетов (packages) для поддер
Данные для анализа
Скрипт для генерации
Данные которые мы будем использовать для демо состоят из смес
Так выглядят визуализированные данные сгенерированные скриптом
Разделение данных на обучающие и проверочные является важным эт
K-means алгоритм на пальцах
Обучающаяся машина без учителя Алгоритм K-means
Slide 13
Slide 14
Здесь мы используем заранее известный факт что необходимо кла
Еще одна иллюстрация работы алгоритма K-means
Обучающаяся машина без учителя Алгоритм KNN (Nearest Neighbor)
Как работает алгоритм KNN
knn(train test cl k = 1 l = 0 prob = FALSE useall = TRUE
Slide 20
Результаты кластеризации и зависимость ошибки от числа кластеро
Recursive PartitioningRegression Tree
Метод RP реализует обучение машины строить дерево решений по об
Recursive PartitioningRegression Tree (2)
rpart(formula data weights subset naaction = narpart met
Slide 26
Recursive PartitioningRegression Tree example
Анализ по главным компонентам (Principal Component Analysis PC
Итеративные алгоритмы с оптимальным разреженным кодированием IS
Самоорганизация данных методами Deep Learning
Знакомство с пакетом deepnet
Прогнозирование (классификация) нейронной сетью с архитектурой
Arguments
Архитектура сети SAE
Архитектура с 5Х4 hidden 3 outs
Example
Анализ обучающего набора данных
Параметры SAE сети
Коэффициенты связей
Предсказание обученной сетью
Сравнение обучающей и тестовой выборки
plot3d(xy)
Работаем с пакетом MNIST
httpyannlecuncomexdbmnist
Подготовка к обработке
Slide 118
Визуализация
plotmnist()
Распознавание рукописных цифр в deepnet
End of slides part 2 (Part 3 - NLP remaining)
Пример поиска в коллекции изображений по текстовому запросу
Пример laquoоблачногоraquo классификатора изображений
Самообучающиеся нейронные сети на основе минимизации функции энергииbull Применима к сетям с обратными связямиbull Конструирование функции энергии должно обеспечивать
laquoконтрастностьraquo разделения
bull Энергетическая функция может Неформально рассматриваться как отрицательный логарифм плотности вероятности
Y 2=(Y1)2
RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцмана
bull Из DBM cтроится Deep Belief Network (DBN)
bull w mdash вес между нейронами
bull b mdash смещение нейрона
bull s mdash состояние нейрона
Алгоритм обучения Contrastive Divergence (CD)bull w_ij mdash веc между i-ым нейроном Вероятность пар может быть представлена как
bull a_i mdash смещение видимого нейрона
bull b_j mdash смещение скрытого нейрона
bull v_i mdash состояние видимого нейрона
bull h_j mdash состояние скрытого нейрона Полная вероятность состояния видимых нейронов
Основные уравнения адаптации
Алгоритм Хинтона - Contrastive Divergence (CD-k)
1 состояние видимых нейронов приравнивается к входному образу2 выводятся вероятности состояний скрытого слоя3 каждому нейрону скрытого слоя ставится в соответствие состояние laquo1raquo с вероятностью равной его текущему состоянию4 выводятся вероятности видимого слоя на основании скрытого5 если текущая итерация меньше k то возврат к шагу 26 выводятся вероятности состояний скрытого слоя
darch Package for deep architectures and Restricted-Bolzmann-MachinesThe darch package is build on the basis of the code from G E Hinton and R R Salakhutdinov (available under Matlab Code for deep belief nets last visit 01082013) This package is for generating neural networks with many layers (deep architectures) and train them with the method introduced by the publications A fast learning algorithm for deep belief nets (G E Hinton S Osindero Y W Teh) and Reducing the dimensionality of data with neural networks (G E Hinton R R Salakhutdinov) This method includes a pre training with the contrastive divergence method publishing by GE Hinton (2002) and a fine tuning with common known training algorithms like backpropagation or conjugate gradient
bull Version 091bull Imports futilelogger ff methodsbull Published 2014-03-16bull Author Martin Dreesbull Maintainer Martin Drees ltmdrees at studfh-dortmunddegtbull License GPL-2bull URL httpgithubcommaddin79darchbull NeedsCompilation nobull Materials READMEbull CRAN checks darch results
Связь плотности вероятности и энергии
Используется распределение Гиббса
Задача обучения с точки минимизации энергии сети
bull Сконструировать функцию энергии с малыми значениями на обучающей выборке и с большими значениями всюду вне этого множества
bull Первое несложно а второе представляет задачу процесса обучения
Интуитивные соображения
Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decomposition LISTA ndashметоды использующие разреженные коды
Латентная переменная Z =argmin_z Distance[Decoder(Z)Y]+FactorB(Z)MAPminimaize sum of factors
Автоэнкодер (auto encoder) Автоэнкодер представляет собой алгоритм обучения без учителя который использует нейронную сеть и метод обратного распространения ошибки для того чтобы добиться того что входной вектор признаков вызывал отклик сети равный входному вектору те y = x Автоэнкодер пытается построить функцию h(x) = x
Архитекттура ICA моделей
Итеративные алгоритмы с оптимальным разреженным кодированием ISTAFISTA
Самоорганизация данных методами Deep Learning
>
Знакомство с пакетом deepnet
Назначение
Составdbndnntrain - обучение сети с архитектурой DBN (deep belief network)loadmnist - формирование данных из файлов MNISTnnpredict - предсказание новых выборок на обученной нейронной сетиnntest ndash тестирование обученной нейронной сети с возвращением значения ошибкиnntrain ndash обучение одностлойной или многослойной нейронной сети методом backproprbmdown ndash генерирование видимого вектора для скрытых состояний сети RBMrbmtrain ndash обучение сети RBMrbmup ndash извлечение скрытых состояний RBM по известным видимым состояниямsaednntrain ndash обучение нейронной сети с архитектурой stacked autoencoder
Прогнозирование (классификация) нейронной сетью с архитектурой stacked auto encoder
Argumentsbull x matrix of x values for examplesbull y vector or matrix of target values for examplesbull hidden vector for number of units of hidden layersDefault is c(10)bull activationfun activation function of hidden unitCan be sigmlinear or tanhDefault isbull sigm for logistic functionbull learningrate learning rate for gradient descent Default is 08bull momentum momentum for gradient descent Default is 05 bull learningrate_scalebull learning rate will be mutiplied by this scale after every iteration Default is 1 bull numepochs number of iteration for samples Default is 3bull batchsize size of mini-batch Default is 100bull output function of output unit can be sigmlinear or softmax Default is sigmbull sae_output function of autoencoder output unit can be sigmlinear or softmax Defaultbull is linearbull hidden_dropout drop out fraction for hidden layer Default is 0bull visible_dropoutbull drop out fraction for input layer Default is 0
Что такое MNISTbull Смешанный набор данных Национального института стандартов и
технологий (mixed National Institute of Standards and Technology MNIST) был создан исследователями IR в качестве эталона для сравнения различных алгоритмов IR
bull Набор данных состоит всего из 70 000 изображений 60 000 обучающих (используемых для создания модели IR) и 10 000 тестовых (применяемых для оценки точности модели) Каждое изображение MNIST mdash это оцифрованная картинка одной цифры написанной от руки Каждое изображение имеет размер 28 times 28 пикселей Каждое значение пикселя лежит в диапазоне от 0 (представляет белый цвет) до 255 (представляет черный цвет) Промежуточные значения отражают оттенки серого
httpyannlecuncomexdbmnistобучающие и тестовые данные хранятся в двух файлах а не в одном Один файл содержит значения пикселей для изображений а другой mdash метки изображений (0ndash9) Каждый из четырех файлов также содержит заголовочную информацию и все они хранятся в двоичном формате сжатом в формате gziptrain-images-idx3-ubytegz training set images (9912422 bytes)
train-labels-idx1-ubytegz training set labels (28881 bytes)
t10k-images-idx3-ubytegz test set images (1648877 bytes)
t10k-labels-idx1-ubytegz test set labels (4542 bytes)
bull Каждая строка файла представляет собой имидж размера 28 times 28 вектором длины 784 каждый признак ndash значение пиксела в черно-белой шале Первый столбец содержит метку цифры 0ndash9 следующие 2828 столбцов представляют целый имидж и так далее Пример первой строки
Визуализация
bull plotmnist()bull mnistbull paramsbull train$n number of train samplesbull train$x pix of every train sample imagebull train$y label of every train sample imagebull train$yy one-of-c vector of label of train sample imagebull test$n number of test samplesbull test$x pix of every test sample imagebull test$y label of every test sample imagebull test$yy one-of-c vector of label of test sample image
plotmnist()
Распознавание рукописных цифр в deepnet
another way to download the MNIST datasetmnist downloadmnist(range=c(01)global=FALSE)look at MNIST datamnist$train$xmnist$train$ymnist$test$xmnist$test$ytrain of the sae neural networkdnnlt-saednntrain(mnist$train$xmnist$train$yhidden=c(55))test of the sae neural networknntest(dnnmnist$test$xmnist$test$yt=05)
End of slides part 2 (Part 3 - NLP remaining)
Vladimirvkrylovgmailcom
Основы предиктивной аналитики Часть вторая
Применение методов Machine Learning к решению задач аналитики
Дмитрий Ветров кандидат физико-математических наук ру
Методы обучающихся машин для аналитики которые мы рассмотрим
Сначала нужно загрузить несколько пакетов (packages) для поддер
Данные для анализа
Скрипт для генерации
Данные которые мы будем использовать для демо состоят из смес
Так выглядят визуализированные данные сгенерированные скриптом
Разделение данных на обучающие и проверочные является важным эт
K-means алгоритм на пальцах
Обучающаяся машина без учителя Алгоритм K-means
Slide 13
Slide 14
Здесь мы используем заранее известный факт что необходимо кла
Еще одна иллюстрация работы алгоритма K-means
Обучающаяся машина без учителя Алгоритм KNN (Nearest Neighbor)
Как работает алгоритм KNN
knn(train test cl k = 1 l = 0 prob = FALSE useall = TRUE
Slide 20
Результаты кластеризации и зависимость ошибки от числа кластеро
Recursive PartitioningRegression Tree
Метод RP реализует обучение машины строить дерево решений по об
Recursive PartitioningRegression Tree (2)
rpart(formula data weights subset naaction = narpart met
Slide 26
Recursive PartitioningRegression Tree example
Анализ по главным компонентам (Principal Component Analysis PC
Итеративные алгоритмы с оптимальным разреженным кодированием IS
Самоорганизация данных методами Deep Learning
Знакомство с пакетом deepnet
Прогнозирование (классификация) нейронной сетью с архитектурой
Arguments
Архитектура сети SAE
Архитектура с 5Х4 hidden 3 outs
Example
Анализ обучающего набора данных
Параметры SAE сети
Коэффициенты связей
Предсказание обученной сетью
Сравнение обучающей и тестовой выборки
plot3d(xy)
Работаем с пакетом MNIST
httpyannlecuncomexdbmnist
Подготовка к обработке
Slide 118
Визуализация
plotmnist()
Распознавание рукописных цифр в deepnet
End of slides part 2 (Part 3 - NLP remaining)
Пример laquoоблачногоraquo классификатора изображений
Самообучающиеся нейронные сети на основе минимизации функции энергииbull Применима к сетям с обратными связямиbull Конструирование функции энергии должно обеспечивать
laquoконтрастностьraquo разделения
bull Энергетическая функция может Неформально рассматриваться как отрицательный логарифм плотности вероятности
Y 2=(Y1)2
RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцмана
bull Из DBM cтроится Deep Belief Network (DBN)
bull w mdash вес между нейронами
bull b mdash смещение нейрона
bull s mdash состояние нейрона
Алгоритм обучения Contrastive Divergence (CD)bull w_ij mdash веc между i-ым нейроном Вероятность пар может быть представлена как
bull a_i mdash смещение видимого нейрона
bull b_j mdash смещение скрытого нейрона
bull v_i mdash состояние видимого нейрона
bull h_j mdash состояние скрытого нейрона Полная вероятность состояния видимых нейронов
Основные уравнения адаптации
Алгоритм Хинтона - Contrastive Divergence (CD-k)
1 состояние видимых нейронов приравнивается к входному образу2 выводятся вероятности состояний скрытого слоя3 каждому нейрону скрытого слоя ставится в соответствие состояние laquo1raquo с вероятностью равной его текущему состоянию4 выводятся вероятности видимого слоя на основании скрытого5 если текущая итерация меньше k то возврат к шагу 26 выводятся вероятности состояний скрытого слоя
darch Package for deep architectures and Restricted-Bolzmann-MachinesThe darch package is build on the basis of the code from G E Hinton and R R Salakhutdinov (available under Matlab Code for deep belief nets last visit 01082013) This package is for generating neural networks with many layers (deep architectures) and train them with the method introduced by the publications A fast learning algorithm for deep belief nets (G E Hinton S Osindero Y W Teh) and Reducing the dimensionality of data with neural networks (G E Hinton R R Salakhutdinov) This method includes a pre training with the contrastive divergence method publishing by GE Hinton (2002) and a fine tuning with common known training algorithms like backpropagation or conjugate gradient
bull Version 091bull Imports futilelogger ff methodsbull Published 2014-03-16bull Author Martin Dreesbull Maintainer Martin Drees ltmdrees at studfh-dortmunddegtbull License GPL-2bull URL httpgithubcommaddin79darchbull NeedsCompilation nobull Materials READMEbull CRAN checks darch results
Связь плотности вероятности и энергии
Используется распределение Гиббса
Задача обучения с точки минимизации энергии сети
bull Сконструировать функцию энергии с малыми значениями на обучающей выборке и с большими значениями всюду вне этого множества
bull Первое несложно а второе представляет задачу процесса обучения
Интуитивные соображения
Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decomposition LISTA ndashметоды использующие разреженные коды
Латентная переменная Z =argmin_z Distance[Decoder(Z)Y]+FactorB(Z)MAPminimaize sum of factors
Автоэнкодер (auto encoder) Автоэнкодер представляет собой алгоритм обучения без учителя который использует нейронную сеть и метод обратного распространения ошибки для того чтобы добиться того что входной вектор признаков вызывал отклик сети равный входному вектору те y = x Автоэнкодер пытается построить функцию h(x) = x
Архитекттура ICA моделей
Итеративные алгоритмы с оптимальным разреженным кодированием ISTAFISTA
Самоорганизация данных методами Deep Learning
>
Знакомство с пакетом deepnet
Назначение
Составdbndnntrain - обучение сети с архитектурой DBN (deep belief network)loadmnist - формирование данных из файлов MNISTnnpredict - предсказание новых выборок на обученной нейронной сетиnntest ndash тестирование обученной нейронной сети с возвращением значения ошибкиnntrain ndash обучение одностлойной или многослойной нейронной сети методом backproprbmdown ndash генерирование видимого вектора для скрытых состояний сети RBMrbmtrain ndash обучение сети RBMrbmup ndash извлечение скрытых состояний RBM по известным видимым состояниямsaednntrain ndash обучение нейронной сети с архитектурой stacked autoencoder
Прогнозирование (классификация) нейронной сетью с архитектурой stacked auto encoder
Argumentsbull x matrix of x values for examplesbull y vector or matrix of target values for examplesbull hidden vector for number of units of hidden layersDefault is c(10)bull activationfun activation function of hidden unitCan be sigmlinear or tanhDefault isbull sigm for logistic functionbull learningrate learning rate for gradient descent Default is 08bull momentum momentum for gradient descent Default is 05 bull learningrate_scalebull learning rate will be mutiplied by this scale after every iteration Default is 1 bull numepochs number of iteration for samples Default is 3bull batchsize size of mini-batch Default is 100bull output function of output unit can be sigmlinear or softmax Default is sigmbull sae_output function of autoencoder output unit can be sigmlinear or softmax Defaultbull is linearbull hidden_dropout drop out fraction for hidden layer Default is 0bull visible_dropoutbull drop out fraction for input layer Default is 0
Что такое MNISTbull Смешанный набор данных Национального института стандартов и
технологий (mixed National Institute of Standards and Technology MNIST) был создан исследователями IR в качестве эталона для сравнения различных алгоритмов IR
bull Набор данных состоит всего из 70 000 изображений 60 000 обучающих (используемых для создания модели IR) и 10 000 тестовых (применяемых для оценки точности модели) Каждое изображение MNIST mdash это оцифрованная картинка одной цифры написанной от руки Каждое изображение имеет размер 28 times 28 пикселей Каждое значение пикселя лежит в диапазоне от 0 (представляет белый цвет) до 255 (представляет черный цвет) Промежуточные значения отражают оттенки серого
httpyannlecuncomexdbmnistобучающие и тестовые данные хранятся в двух файлах а не в одном Один файл содержит значения пикселей для изображений а другой mdash метки изображений (0ndash9) Каждый из четырех файлов также содержит заголовочную информацию и все они хранятся в двоичном формате сжатом в формате gziptrain-images-idx3-ubytegz training set images (9912422 bytes)
train-labels-idx1-ubytegz training set labels (28881 bytes)
t10k-images-idx3-ubytegz test set images (1648877 bytes)
t10k-labels-idx1-ubytegz test set labels (4542 bytes)
bull Каждая строка файла представляет собой имидж размера 28 times 28 вектором длины 784 каждый признак ndash значение пиксела в черно-белой шале Первый столбец содержит метку цифры 0ndash9 следующие 2828 столбцов представляют целый имидж и так далее Пример первой строки
Визуализация
bull plotmnist()bull mnistbull paramsbull train$n number of train samplesbull train$x pix of every train sample imagebull train$y label of every train sample imagebull train$yy one-of-c vector of label of train sample imagebull test$n number of test samplesbull test$x pix of every test sample imagebull test$y label of every test sample imagebull test$yy one-of-c vector of label of test sample image
plotmnist()
Распознавание рукописных цифр в deepnet
another way to download the MNIST datasetmnist downloadmnist(range=c(01)global=FALSE)look at MNIST datamnist$train$xmnist$train$ymnist$test$xmnist$test$ytrain of the sae neural networkdnnlt-saednntrain(mnist$train$xmnist$train$yhidden=c(55))test of the sae neural networknntest(dnnmnist$test$xmnist$test$yt=05)
End of slides part 2 (Part 3 - NLP remaining)
Vladimirvkrylovgmailcom
Основы предиктивной аналитики Часть вторая
Применение методов Machine Learning к решению задач аналитики
Дмитрий Ветров кандидат физико-математических наук ру
Методы обучающихся машин для аналитики которые мы рассмотрим
Сначала нужно загрузить несколько пакетов (packages) для поддер
Данные для анализа
Скрипт для генерации
Данные которые мы будем использовать для демо состоят из смес
Так выглядят визуализированные данные сгенерированные скриптом
Разделение данных на обучающие и проверочные является важным эт
K-means алгоритм на пальцах
Обучающаяся машина без учителя Алгоритм K-means
Slide 13
Slide 14
Здесь мы используем заранее известный факт что необходимо кла
Еще одна иллюстрация работы алгоритма K-means
Обучающаяся машина без учителя Алгоритм KNN (Nearest Neighbor)
Как работает алгоритм KNN
knn(train test cl k = 1 l = 0 prob = FALSE useall = TRUE
Slide 20
Результаты кластеризации и зависимость ошибки от числа кластеро
Recursive PartitioningRegression Tree
Метод RP реализует обучение машины строить дерево решений по об
Recursive PartitioningRegression Tree (2)
rpart(formula data weights subset naaction = narpart met
Slide 26
Recursive PartitioningRegression Tree example
Анализ по главным компонентам (Principal Component Analysis PC
Итеративные алгоритмы с оптимальным разреженным кодированием IS
Самоорганизация данных методами Deep Learning
Знакомство с пакетом deepnet
Прогнозирование (классификация) нейронной сетью с архитектурой
Arguments
Архитектура сети SAE
Архитектура с 5Х4 hidden 3 outs
Example
Анализ обучающего набора данных
Параметры SAE сети
Коэффициенты связей
Предсказание обученной сетью
Сравнение обучающей и тестовой выборки
plot3d(xy)
Работаем с пакетом MNIST
httpyannlecuncomexdbmnist
Подготовка к обработке
Slide 118
Визуализация
plotmnist()
Распознавание рукописных цифр в deepnet
End of slides part 2 (Part 3 - NLP remaining)
Самообучающиеся нейронные сети на основе минимизации функции энергииbull Применима к сетям с обратными связямиbull Конструирование функции энергии должно обеспечивать
laquoконтрастностьraquo разделения
bull Энергетическая функция может Неформально рассматриваться как отрицательный логарифм плотности вероятности
Y 2=(Y1)2
RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцмана
bull Из DBM cтроится Deep Belief Network (DBN)
bull w mdash вес между нейронами
bull b mdash смещение нейрона
bull s mdash состояние нейрона
Алгоритм обучения Contrastive Divergence (CD)bull w_ij mdash веc между i-ым нейроном Вероятность пар может быть представлена как
bull a_i mdash смещение видимого нейрона
bull b_j mdash смещение скрытого нейрона
bull v_i mdash состояние видимого нейрона
bull h_j mdash состояние скрытого нейрона Полная вероятность состояния видимых нейронов
Основные уравнения адаптации
Алгоритм Хинтона - Contrastive Divergence (CD-k)
1 состояние видимых нейронов приравнивается к входному образу2 выводятся вероятности состояний скрытого слоя3 каждому нейрону скрытого слоя ставится в соответствие состояние laquo1raquo с вероятностью равной его текущему состоянию4 выводятся вероятности видимого слоя на основании скрытого5 если текущая итерация меньше k то возврат к шагу 26 выводятся вероятности состояний скрытого слоя
darch Package for deep architectures and Restricted-Bolzmann-MachinesThe darch package is build on the basis of the code from G E Hinton and R R Salakhutdinov (available under Matlab Code for deep belief nets last visit 01082013) This package is for generating neural networks with many layers (deep architectures) and train them with the method introduced by the publications A fast learning algorithm for deep belief nets (G E Hinton S Osindero Y W Teh) and Reducing the dimensionality of data with neural networks (G E Hinton R R Salakhutdinov) This method includes a pre training with the contrastive divergence method publishing by GE Hinton (2002) and a fine tuning with common known training algorithms like backpropagation or conjugate gradient
bull Version 091bull Imports futilelogger ff methodsbull Published 2014-03-16bull Author Martin Dreesbull Maintainer Martin Drees ltmdrees at studfh-dortmunddegtbull License GPL-2bull URL httpgithubcommaddin79darchbull NeedsCompilation nobull Materials READMEbull CRAN checks darch results
Связь плотности вероятности и энергии
Используется распределение Гиббса
Задача обучения с точки минимизации энергии сети
bull Сконструировать функцию энергии с малыми значениями на обучающей выборке и с большими значениями всюду вне этого множества
bull Первое несложно а второе представляет задачу процесса обучения
Интуитивные соображения
Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decomposition LISTA ndashметоды использующие разреженные коды
Латентная переменная Z =argmin_z Distance[Decoder(Z)Y]+FactorB(Z)MAPminimaize sum of factors
Автоэнкодер (auto encoder) Автоэнкодер представляет собой алгоритм обучения без учителя который использует нейронную сеть и метод обратного распространения ошибки для того чтобы добиться того что входной вектор признаков вызывал отклик сети равный входному вектору те y = x Автоэнкодер пытается построить функцию h(x) = x
Архитекттура ICA моделей
Итеративные алгоритмы с оптимальным разреженным кодированием ISTAFISTA
Самоорганизация данных методами Deep Learning
>
Знакомство с пакетом deepnet
Назначение
Составdbndnntrain - обучение сети с архитектурой DBN (deep belief network)loadmnist - формирование данных из файлов MNISTnnpredict - предсказание новых выборок на обученной нейронной сетиnntest ndash тестирование обученной нейронной сети с возвращением значения ошибкиnntrain ndash обучение одностлойной или многослойной нейронной сети методом backproprbmdown ndash генерирование видимого вектора для скрытых состояний сети RBMrbmtrain ndash обучение сети RBMrbmup ndash извлечение скрытых состояний RBM по известным видимым состояниямsaednntrain ndash обучение нейронной сети с архитектурой stacked autoencoder
Прогнозирование (классификация) нейронной сетью с архитектурой stacked auto encoder
Argumentsbull x matrix of x values for examplesbull y vector or matrix of target values for examplesbull hidden vector for number of units of hidden layersDefault is c(10)bull activationfun activation function of hidden unitCan be sigmlinear or tanhDefault isbull sigm for logistic functionbull learningrate learning rate for gradient descent Default is 08bull momentum momentum for gradient descent Default is 05 bull learningrate_scalebull learning rate will be mutiplied by this scale after every iteration Default is 1 bull numepochs number of iteration for samples Default is 3bull batchsize size of mini-batch Default is 100bull output function of output unit can be sigmlinear or softmax Default is sigmbull sae_output function of autoencoder output unit can be sigmlinear or softmax Defaultbull is linearbull hidden_dropout drop out fraction for hidden layer Default is 0bull visible_dropoutbull drop out fraction for input layer Default is 0
Что такое MNISTbull Смешанный набор данных Национального института стандартов и
технологий (mixed National Institute of Standards and Technology MNIST) был создан исследователями IR в качестве эталона для сравнения различных алгоритмов IR
bull Набор данных состоит всего из 70 000 изображений 60 000 обучающих (используемых для создания модели IR) и 10 000 тестовых (применяемых для оценки точности модели) Каждое изображение MNIST mdash это оцифрованная картинка одной цифры написанной от руки Каждое изображение имеет размер 28 times 28 пикселей Каждое значение пикселя лежит в диапазоне от 0 (представляет белый цвет) до 255 (представляет черный цвет) Промежуточные значения отражают оттенки серого
httpyannlecuncomexdbmnistобучающие и тестовые данные хранятся в двух файлах а не в одном Один файл содержит значения пикселей для изображений а другой mdash метки изображений (0ndash9) Каждый из четырех файлов также содержит заголовочную информацию и все они хранятся в двоичном формате сжатом в формате gziptrain-images-idx3-ubytegz training set images (9912422 bytes)
train-labels-idx1-ubytegz training set labels (28881 bytes)
t10k-images-idx3-ubytegz test set images (1648877 bytes)
t10k-labels-idx1-ubytegz test set labels (4542 bytes)
bull Каждая строка файла представляет собой имидж размера 28 times 28 вектором длины 784 каждый признак ndash значение пиксела в черно-белой шале Первый столбец содержит метку цифры 0ndash9 следующие 2828 столбцов представляют целый имидж и так далее Пример первой строки
Визуализация
bull plotmnist()bull mnistbull paramsbull train$n number of train samplesbull train$x pix of every train sample imagebull train$y label of every train sample imagebull train$yy one-of-c vector of label of train sample imagebull test$n number of test samplesbull test$x pix of every test sample imagebull test$y label of every test sample imagebull test$yy one-of-c vector of label of test sample image
plotmnist()
Распознавание рукописных цифр в deepnet
another way to download the MNIST datasetmnist downloadmnist(range=c(01)global=FALSE)look at MNIST datamnist$train$xmnist$train$ymnist$test$xmnist$test$ytrain of the sae neural networkdnnlt-saednntrain(mnist$train$xmnist$train$yhidden=c(55))test of the sae neural networknntest(dnnmnist$test$xmnist$test$yt=05)
End of slides part 2 (Part 3 - NLP remaining)
Vladimirvkrylovgmailcom
Основы предиктивной аналитики Часть вторая
Применение методов Machine Learning к решению задач аналитики
Дмитрий Ветров кандидат физико-математических наук ру
Методы обучающихся машин для аналитики которые мы рассмотрим
Сначала нужно загрузить несколько пакетов (packages) для поддер
Данные для анализа
Скрипт для генерации
Данные которые мы будем использовать для демо состоят из смес
Так выглядят визуализированные данные сгенерированные скриптом
Разделение данных на обучающие и проверочные является важным эт
K-means алгоритм на пальцах
Обучающаяся машина без учителя Алгоритм K-means
Slide 13
Slide 14
Здесь мы используем заранее известный факт что необходимо кла
Еще одна иллюстрация работы алгоритма K-means
Обучающаяся машина без учителя Алгоритм KNN (Nearest Neighbor)
Как работает алгоритм KNN
knn(train test cl k = 1 l = 0 prob = FALSE useall = TRUE
Slide 20
Результаты кластеризации и зависимость ошибки от числа кластеро
Recursive PartitioningRegression Tree
Метод RP реализует обучение машины строить дерево решений по об
Recursive PartitioningRegression Tree (2)
rpart(formula data weights subset naaction = narpart met
Slide 26
Recursive PartitioningRegression Tree example
Анализ по главным компонентам (Principal Component Analysis PC
Итеративные алгоритмы с оптимальным разреженным кодированием IS
Самоорганизация данных методами Deep Learning
Знакомство с пакетом deepnet
Прогнозирование (классификация) нейронной сетью с архитектурой
Arguments
Архитектура сети SAE
Архитектура с 5Х4 hidden 3 outs
Example
Анализ обучающего набора данных
Параметры SAE сети
Коэффициенты связей
Предсказание обученной сетью
Сравнение обучающей и тестовой выборки
plot3d(xy)
Работаем с пакетом MNIST
httpyannlecuncomexdbmnist
Подготовка к обработке
Slide 118
Визуализация
plotmnist()
Распознавание рукописных цифр в deepnet
End of slides part 2 (Part 3 - NLP remaining)
RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцмана
bull Из DBM cтроится Deep Belief Network (DBN)
bull w mdash вес между нейронами
bull b mdash смещение нейрона
bull s mdash состояние нейрона
Алгоритм обучения Contrastive Divergence (CD)bull w_ij mdash веc между i-ым нейроном Вероятность пар может быть представлена как
bull a_i mdash смещение видимого нейрона
bull b_j mdash смещение скрытого нейрона
bull v_i mdash состояние видимого нейрона
bull h_j mdash состояние скрытого нейрона Полная вероятность состояния видимых нейронов
Основные уравнения адаптации
Алгоритм Хинтона - Contrastive Divergence (CD-k)
1 состояние видимых нейронов приравнивается к входному образу2 выводятся вероятности состояний скрытого слоя3 каждому нейрону скрытого слоя ставится в соответствие состояние laquo1raquo с вероятностью равной его текущему состоянию4 выводятся вероятности видимого слоя на основании скрытого5 если текущая итерация меньше k то возврат к шагу 26 выводятся вероятности состояний скрытого слоя
darch Package for deep architectures and Restricted-Bolzmann-MachinesThe darch package is build on the basis of the code from G E Hinton and R R Salakhutdinov (available under Matlab Code for deep belief nets last visit 01082013) This package is for generating neural networks with many layers (deep architectures) and train them with the method introduced by the publications A fast learning algorithm for deep belief nets (G E Hinton S Osindero Y W Teh) and Reducing the dimensionality of data with neural networks (G E Hinton R R Salakhutdinov) This method includes a pre training with the contrastive divergence method publishing by GE Hinton (2002) and a fine tuning with common known training algorithms like backpropagation or conjugate gradient
bull Version 091bull Imports futilelogger ff methodsbull Published 2014-03-16bull Author Martin Dreesbull Maintainer Martin Drees ltmdrees at studfh-dortmunddegtbull License GPL-2bull URL httpgithubcommaddin79darchbull NeedsCompilation nobull Materials READMEbull CRAN checks darch results
Связь плотности вероятности и энергии
Используется распределение Гиббса
Задача обучения с точки минимизации энергии сети
bull Сконструировать функцию энергии с малыми значениями на обучающей выборке и с большими значениями всюду вне этого множества
bull Первое несложно а второе представляет задачу процесса обучения
Интуитивные соображения
Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decomposition LISTA ndashметоды использующие разреженные коды
Латентная переменная Z =argmin_z Distance[Decoder(Z)Y]+FactorB(Z)MAPminimaize sum of factors
Автоэнкодер (auto encoder) Автоэнкодер представляет собой алгоритм обучения без учителя который использует нейронную сеть и метод обратного распространения ошибки для того чтобы добиться того что входной вектор признаков вызывал отклик сети равный входному вектору те y = x Автоэнкодер пытается построить функцию h(x) = x
Архитекттура ICA моделей
Итеративные алгоритмы с оптимальным разреженным кодированием ISTAFISTA
Самоорганизация данных методами Deep Learning
>
Знакомство с пакетом deepnet
Назначение
Составdbndnntrain - обучение сети с архитектурой DBN (deep belief network)loadmnist - формирование данных из файлов MNISTnnpredict - предсказание новых выборок на обученной нейронной сетиnntest ndash тестирование обученной нейронной сети с возвращением значения ошибкиnntrain ndash обучение одностлойной или многослойной нейронной сети методом backproprbmdown ndash генерирование видимого вектора для скрытых состояний сети RBMrbmtrain ndash обучение сети RBMrbmup ndash извлечение скрытых состояний RBM по известным видимым состояниямsaednntrain ndash обучение нейронной сети с архитектурой stacked autoencoder
Прогнозирование (классификация) нейронной сетью с архитектурой stacked auto encoder
Argumentsbull x matrix of x values for examplesbull y vector or matrix of target values for examplesbull hidden vector for number of units of hidden layersDefault is c(10)bull activationfun activation function of hidden unitCan be sigmlinear or tanhDefault isbull sigm for logistic functionbull learningrate learning rate for gradient descent Default is 08bull momentum momentum for gradient descent Default is 05 bull learningrate_scalebull learning rate will be mutiplied by this scale after every iteration Default is 1 bull numepochs number of iteration for samples Default is 3bull batchsize size of mini-batch Default is 100bull output function of output unit can be sigmlinear or softmax Default is sigmbull sae_output function of autoencoder output unit can be sigmlinear or softmax Defaultbull is linearbull hidden_dropout drop out fraction for hidden layer Default is 0bull visible_dropoutbull drop out fraction for input layer Default is 0
Что такое MNISTbull Смешанный набор данных Национального института стандартов и
технологий (mixed National Institute of Standards and Technology MNIST) был создан исследователями IR в качестве эталона для сравнения различных алгоритмов IR
bull Набор данных состоит всего из 70 000 изображений 60 000 обучающих (используемых для создания модели IR) и 10 000 тестовых (применяемых для оценки точности модели) Каждое изображение MNIST mdash это оцифрованная картинка одной цифры написанной от руки Каждое изображение имеет размер 28 times 28 пикселей Каждое значение пикселя лежит в диапазоне от 0 (представляет белый цвет) до 255 (представляет черный цвет) Промежуточные значения отражают оттенки серого
httpyannlecuncomexdbmnistобучающие и тестовые данные хранятся в двух файлах а не в одном Один файл содержит значения пикселей для изображений а другой mdash метки изображений (0ndash9) Каждый из четырех файлов также содержит заголовочную информацию и все они хранятся в двоичном формате сжатом в формате gziptrain-images-idx3-ubytegz training set images (9912422 bytes)
train-labels-idx1-ubytegz training set labels (28881 bytes)
t10k-images-idx3-ubytegz test set images (1648877 bytes)
t10k-labels-idx1-ubytegz test set labels (4542 bytes)
bull Каждая строка файла представляет собой имидж размера 28 times 28 вектором длины 784 каждый признак ndash значение пиксела в черно-белой шале Первый столбец содержит метку цифры 0ndash9 следующие 2828 столбцов представляют целый имидж и так далее Пример первой строки
Визуализация
bull plotmnist()bull mnistbull paramsbull train$n number of train samplesbull train$x pix of every train sample imagebull train$y label of every train sample imagebull train$yy one-of-c vector of label of train sample imagebull test$n number of test samplesbull test$x pix of every test sample imagebull test$y label of every test sample imagebull test$yy one-of-c vector of label of test sample image
plotmnist()
Распознавание рукописных цифр в deepnet
another way to download the MNIST datasetmnist downloadmnist(range=c(01)global=FALSE)look at MNIST datamnist$train$xmnist$train$ymnist$test$xmnist$test$ytrain of the sae neural networkdnnlt-saednntrain(mnist$train$xmnist$train$yhidden=c(55))test of the sae neural networknntest(dnnmnist$test$xmnist$test$yt=05)
End of slides part 2 (Part 3 - NLP remaining)
Vladimirvkrylovgmailcom
Основы предиктивной аналитики Часть вторая
Применение методов Machine Learning к решению задач аналитики
Дмитрий Ветров кандидат физико-математических наук ру
Методы обучающихся машин для аналитики которые мы рассмотрим
Сначала нужно загрузить несколько пакетов (packages) для поддер
Данные для анализа
Скрипт для генерации
Данные которые мы будем использовать для демо состоят из смес
Так выглядят визуализированные данные сгенерированные скриптом
Разделение данных на обучающие и проверочные является важным эт
K-means алгоритм на пальцах
Обучающаяся машина без учителя Алгоритм K-means
Slide 13
Slide 14
Здесь мы используем заранее известный факт что необходимо кла
Еще одна иллюстрация работы алгоритма K-means
Обучающаяся машина без учителя Алгоритм KNN (Nearest Neighbor)
Как работает алгоритм KNN
knn(train test cl k = 1 l = 0 prob = FALSE useall = TRUE
Slide 20
Результаты кластеризации и зависимость ошибки от числа кластеро
Recursive PartitioningRegression Tree
Метод RP реализует обучение машины строить дерево решений по об
Recursive PartitioningRegression Tree (2)
rpart(formula data weights subset naaction = narpart met
Slide 26
Recursive PartitioningRegression Tree example
Анализ по главным компонентам (Principal Component Analysis PC
Итеративные алгоритмы с оптимальным разреженным кодированием IS
Самоорганизация данных методами Deep Learning
Знакомство с пакетом deepnet
Прогнозирование (классификация) нейронной сетью с архитектурой
Arguments
Архитектура сети SAE
Архитектура с 5Х4 hidden 3 outs
Example
Анализ обучающего набора данных
Параметры SAE сети
Коэффициенты связей
Предсказание обученной сетью
Сравнение обучающей и тестовой выборки
plot3d(xy)
Работаем с пакетом MNIST
httpyannlecuncomexdbmnist
Подготовка к обработке
Slide 118
Визуализация
plotmnist()
Распознавание рукописных цифр в deepnet
End of slides part 2 (Part 3 - NLP remaining)
Алгоритм обучения Contrastive Divergence (CD)bull w_ij mdash веc между i-ым нейроном Вероятность пар может быть представлена как
bull a_i mdash смещение видимого нейрона
bull b_j mdash смещение скрытого нейрона
bull v_i mdash состояние видимого нейрона
bull h_j mdash состояние скрытого нейрона Полная вероятность состояния видимых нейронов
Основные уравнения адаптации
Алгоритм Хинтона - Contrastive Divergence (CD-k)
1 состояние видимых нейронов приравнивается к входному образу2 выводятся вероятности состояний скрытого слоя3 каждому нейрону скрытого слоя ставится в соответствие состояние laquo1raquo с вероятностью равной его текущему состоянию4 выводятся вероятности видимого слоя на основании скрытого5 если текущая итерация меньше k то возврат к шагу 26 выводятся вероятности состояний скрытого слоя
darch Package for deep architectures and Restricted-Bolzmann-MachinesThe darch package is build on the basis of the code from G E Hinton and R R Salakhutdinov (available under Matlab Code for deep belief nets last visit 01082013) This package is for generating neural networks with many layers (deep architectures) and train them with the method introduced by the publications A fast learning algorithm for deep belief nets (G E Hinton S Osindero Y W Teh) and Reducing the dimensionality of data with neural networks (G E Hinton R R Salakhutdinov) This method includes a pre training with the contrastive divergence method publishing by GE Hinton (2002) and a fine tuning with common known training algorithms like backpropagation or conjugate gradient
bull Version 091bull Imports futilelogger ff methodsbull Published 2014-03-16bull Author Martin Dreesbull Maintainer Martin Drees ltmdrees at studfh-dortmunddegtbull License GPL-2bull URL httpgithubcommaddin79darchbull NeedsCompilation nobull Materials READMEbull CRAN checks darch results
Связь плотности вероятности и энергии
Используется распределение Гиббса
Задача обучения с точки минимизации энергии сети
bull Сконструировать функцию энергии с малыми значениями на обучающей выборке и с большими значениями всюду вне этого множества
bull Первое несложно а второе представляет задачу процесса обучения
Интуитивные соображения
Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decomposition LISTA ndashметоды использующие разреженные коды
Латентная переменная Z =argmin_z Distance[Decoder(Z)Y]+FactorB(Z)MAPminimaize sum of factors
Автоэнкодер (auto encoder) Автоэнкодер представляет собой алгоритм обучения без учителя который использует нейронную сеть и метод обратного распространения ошибки для того чтобы добиться того что входной вектор признаков вызывал отклик сети равный входному вектору те y = x Автоэнкодер пытается построить функцию h(x) = x
Архитекттура ICA моделей
Итеративные алгоритмы с оптимальным разреженным кодированием ISTAFISTA
Самоорганизация данных методами Deep Learning
>
Знакомство с пакетом deepnet
Назначение
Составdbndnntrain - обучение сети с архитектурой DBN (deep belief network)loadmnist - формирование данных из файлов MNISTnnpredict - предсказание новых выборок на обученной нейронной сетиnntest ndash тестирование обученной нейронной сети с возвращением значения ошибкиnntrain ndash обучение одностлойной или многослойной нейронной сети методом backproprbmdown ndash генерирование видимого вектора для скрытых состояний сети RBMrbmtrain ndash обучение сети RBMrbmup ndash извлечение скрытых состояний RBM по известным видимым состояниямsaednntrain ndash обучение нейронной сети с архитектурой stacked autoencoder
Прогнозирование (классификация) нейронной сетью с архитектурой stacked auto encoder
Argumentsbull x matrix of x values for examplesbull y vector or matrix of target values for examplesbull hidden vector for number of units of hidden layersDefault is c(10)bull activationfun activation function of hidden unitCan be sigmlinear or tanhDefault isbull sigm for logistic functionbull learningrate learning rate for gradient descent Default is 08bull momentum momentum for gradient descent Default is 05 bull learningrate_scalebull learning rate will be mutiplied by this scale after every iteration Default is 1 bull numepochs number of iteration for samples Default is 3bull batchsize size of mini-batch Default is 100bull output function of output unit can be sigmlinear or softmax Default is sigmbull sae_output function of autoencoder output unit can be sigmlinear or softmax Defaultbull is linearbull hidden_dropout drop out fraction for hidden layer Default is 0bull visible_dropoutbull drop out fraction for input layer Default is 0
Что такое MNISTbull Смешанный набор данных Национального института стандартов и
технологий (mixed National Institute of Standards and Technology MNIST) был создан исследователями IR в качестве эталона для сравнения различных алгоритмов IR
bull Набор данных состоит всего из 70 000 изображений 60 000 обучающих (используемых для создания модели IR) и 10 000 тестовых (применяемых для оценки точности модели) Каждое изображение MNIST mdash это оцифрованная картинка одной цифры написанной от руки Каждое изображение имеет размер 28 times 28 пикселей Каждое значение пикселя лежит в диапазоне от 0 (представляет белый цвет) до 255 (представляет черный цвет) Промежуточные значения отражают оттенки серого
httpyannlecuncomexdbmnistобучающие и тестовые данные хранятся в двух файлах а не в одном Один файл содержит значения пикселей для изображений а другой mdash метки изображений (0ndash9) Каждый из четырех файлов также содержит заголовочную информацию и все они хранятся в двоичном формате сжатом в формате gziptrain-images-idx3-ubytegz training set images (9912422 bytes)
train-labels-idx1-ubytegz training set labels (28881 bytes)
t10k-images-idx3-ubytegz test set images (1648877 bytes)
t10k-labels-idx1-ubytegz test set labels (4542 bytes)
bull Каждая строка файла представляет собой имидж размера 28 times 28 вектором длины 784 каждый признак ndash значение пиксела в черно-белой шале Первый столбец содержит метку цифры 0ndash9 следующие 2828 столбцов представляют целый имидж и так далее Пример первой строки
Визуализация
bull plotmnist()bull mnistbull paramsbull train$n number of train samplesbull train$x pix of every train sample imagebull train$y label of every train sample imagebull train$yy one-of-c vector of label of train sample imagebull test$n number of test samplesbull test$x pix of every test sample imagebull test$y label of every test sample imagebull test$yy one-of-c vector of label of test sample image
plotmnist()
Распознавание рукописных цифр в deepnet
another way to download the MNIST datasetmnist downloadmnist(range=c(01)global=FALSE)look at MNIST datamnist$train$xmnist$train$ymnist$test$xmnist$test$ytrain of the sae neural networkdnnlt-saednntrain(mnist$train$xmnist$train$yhidden=c(55))test of the sae neural networknntest(dnnmnist$test$xmnist$test$yt=05)
End of slides part 2 (Part 3 - NLP remaining)
Vladimirvkrylovgmailcom
Основы предиктивной аналитики Часть вторая
Применение методов Machine Learning к решению задач аналитики
Дмитрий Ветров кандидат физико-математических наук ру
Методы обучающихся машин для аналитики которые мы рассмотрим
Сначала нужно загрузить несколько пакетов (packages) для поддер
Данные для анализа
Скрипт для генерации
Данные которые мы будем использовать для демо состоят из смес
Так выглядят визуализированные данные сгенерированные скриптом
Разделение данных на обучающие и проверочные является важным эт
K-means алгоритм на пальцах
Обучающаяся машина без учителя Алгоритм K-means
Slide 13
Slide 14
Здесь мы используем заранее известный факт что необходимо кла
Еще одна иллюстрация работы алгоритма K-means
Обучающаяся машина без учителя Алгоритм KNN (Nearest Neighbor)
Как работает алгоритм KNN
knn(train test cl k = 1 l = 0 prob = FALSE useall = TRUE
Slide 20
Результаты кластеризации и зависимость ошибки от числа кластеро
Recursive PartitioningRegression Tree
Метод RP реализует обучение машины строить дерево решений по об
Recursive PartitioningRegression Tree (2)
rpart(formula data weights subset naaction = narpart met
Slide 26
Recursive PartitioningRegression Tree example
Анализ по главным компонентам (Principal Component Analysis PC
Итеративные алгоритмы с оптимальным разреженным кодированием IS
Самоорганизация данных методами Deep Learning
Знакомство с пакетом deepnet
Прогнозирование (классификация) нейронной сетью с архитектурой
Arguments
Архитектура сети SAE
Архитектура с 5Х4 hidden 3 outs
Example
Анализ обучающего набора данных
Параметры SAE сети
Коэффициенты связей
Предсказание обученной сетью
Сравнение обучающей и тестовой выборки
plot3d(xy)
Работаем с пакетом MNIST
httpyannlecuncomexdbmnist
Подготовка к обработке
Slide 118
Визуализация
plotmnist()
Распознавание рукописных цифр в deepnet
End of slides part 2 (Part 3 - NLP remaining)
Основные уравнения адаптации
Алгоритм Хинтона - Contrastive Divergence (CD-k)
1 состояние видимых нейронов приравнивается к входному образу2 выводятся вероятности состояний скрытого слоя3 каждому нейрону скрытого слоя ставится в соответствие состояние laquo1raquo с вероятностью равной его текущему состоянию4 выводятся вероятности видимого слоя на основании скрытого5 если текущая итерация меньше k то возврат к шагу 26 выводятся вероятности состояний скрытого слоя
darch Package for deep architectures and Restricted-Bolzmann-MachinesThe darch package is build on the basis of the code from G E Hinton and R R Salakhutdinov (available under Matlab Code for deep belief nets last visit 01082013) This package is for generating neural networks with many layers (deep architectures) and train them with the method introduced by the publications A fast learning algorithm for deep belief nets (G E Hinton S Osindero Y W Teh) and Reducing the dimensionality of data with neural networks (G E Hinton R R Salakhutdinov) This method includes a pre training with the contrastive divergence method publishing by GE Hinton (2002) and a fine tuning with common known training algorithms like backpropagation or conjugate gradient
bull Version 091bull Imports futilelogger ff methodsbull Published 2014-03-16bull Author Martin Dreesbull Maintainer Martin Drees ltmdrees at studfh-dortmunddegtbull License GPL-2bull URL httpgithubcommaddin79darchbull NeedsCompilation nobull Materials READMEbull CRAN checks darch results
Связь плотности вероятности и энергии
Используется распределение Гиббса
Задача обучения с точки минимизации энергии сети
bull Сконструировать функцию энергии с малыми значениями на обучающей выборке и с большими значениями всюду вне этого множества
bull Первое несложно а второе представляет задачу процесса обучения
Интуитивные соображения
Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decomposition LISTA ndashметоды использующие разреженные коды
Латентная переменная Z =argmin_z Distance[Decoder(Z)Y]+FactorB(Z)MAPminimaize sum of factors
Автоэнкодер (auto encoder) Автоэнкодер представляет собой алгоритм обучения без учителя который использует нейронную сеть и метод обратного распространения ошибки для того чтобы добиться того что входной вектор признаков вызывал отклик сети равный входному вектору те y = x Автоэнкодер пытается построить функцию h(x) = x
Архитекттура ICA моделей
Итеративные алгоритмы с оптимальным разреженным кодированием ISTAFISTA
Самоорганизация данных методами Deep Learning
>
Знакомство с пакетом deepnet
Назначение
Составdbndnntrain - обучение сети с архитектурой DBN (deep belief network)loadmnist - формирование данных из файлов MNISTnnpredict - предсказание новых выборок на обученной нейронной сетиnntest ndash тестирование обученной нейронной сети с возвращением значения ошибкиnntrain ndash обучение одностлойной или многослойной нейронной сети методом backproprbmdown ndash генерирование видимого вектора для скрытых состояний сети RBMrbmtrain ndash обучение сети RBMrbmup ndash извлечение скрытых состояний RBM по известным видимым состояниямsaednntrain ndash обучение нейронной сети с архитектурой stacked autoencoder
Прогнозирование (классификация) нейронной сетью с архитектурой stacked auto encoder
Argumentsbull x matrix of x values for examplesbull y vector or matrix of target values for examplesbull hidden vector for number of units of hidden layersDefault is c(10)bull activationfun activation function of hidden unitCan be sigmlinear or tanhDefault isbull sigm for logistic functionbull learningrate learning rate for gradient descent Default is 08bull momentum momentum for gradient descent Default is 05 bull learningrate_scalebull learning rate will be mutiplied by this scale after every iteration Default is 1 bull numepochs number of iteration for samples Default is 3bull batchsize size of mini-batch Default is 100bull output function of output unit can be sigmlinear or softmax Default is sigmbull sae_output function of autoencoder output unit can be sigmlinear or softmax Defaultbull is linearbull hidden_dropout drop out fraction for hidden layer Default is 0bull visible_dropoutbull drop out fraction for input layer Default is 0
Что такое MNISTbull Смешанный набор данных Национального института стандартов и
технологий (mixed National Institute of Standards and Technology MNIST) был создан исследователями IR в качестве эталона для сравнения различных алгоритмов IR
bull Набор данных состоит всего из 70 000 изображений 60 000 обучающих (используемых для создания модели IR) и 10 000 тестовых (применяемых для оценки точности модели) Каждое изображение MNIST mdash это оцифрованная картинка одной цифры написанной от руки Каждое изображение имеет размер 28 times 28 пикселей Каждое значение пикселя лежит в диапазоне от 0 (представляет белый цвет) до 255 (представляет черный цвет) Промежуточные значения отражают оттенки серого
httpyannlecuncomexdbmnistобучающие и тестовые данные хранятся в двух файлах а не в одном Один файл содержит значения пикселей для изображений а другой mdash метки изображений (0ndash9) Каждый из четырех файлов также содержит заголовочную информацию и все они хранятся в двоичном формате сжатом в формате gziptrain-images-idx3-ubytegz training set images (9912422 bytes)
train-labels-idx1-ubytegz training set labels (28881 bytes)
t10k-images-idx3-ubytegz test set images (1648877 bytes)
t10k-labels-idx1-ubytegz test set labels (4542 bytes)
bull Каждая строка файла представляет собой имидж размера 28 times 28 вектором длины 784 каждый признак ndash значение пиксела в черно-белой шале Первый столбец содержит метку цифры 0ndash9 следующие 2828 столбцов представляют целый имидж и так далее Пример первой строки
Визуализация
bull plotmnist()bull mnistbull paramsbull train$n number of train samplesbull train$x pix of every train sample imagebull train$y label of every train sample imagebull train$yy one-of-c vector of label of train sample imagebull test$n number of test samplesbull test$x pix of every test sample imagebull test$y label of every test sample imagebull test$yy one-of-c vector of label of test sample image
plotmnist()
Распознавание рукописных цифр в deepnet
another way to download the MNIST datasetmnist downloadmnist(range=c(01)global=FALSE)look at MNIST datamnist$train$xmnist$train$ymnist$test$xmnist$test$ytrain of the sae neural networkdnnlt-saednntrain(mnist$train$xmnist$train$yhidden=c(55))test of the sae neural networknntest(dnnmnist$test$xmnist$test$yt=05)
End of slides part 2 (Part 3 - NLP remaining)
Vladimirvkrylovgmailcom
Основы предиктивной аналитики Часть вторая
Применение методов Machine Learning к решению задач аналитики
Дмитрий Ветров кандидат физико-математических наук ру
Методы обучающихся машин для аналитики которые мы рассмотрим
Сначала нужно загрузить несколько пакетов (packages) для поддер
Данные для анализа
Скрипт для генерации
Данные которые мы будем использовать для демо состоят из смес
Так выглядят визуализированные данные сгенерированные скриптом
Разделение данных на обучающие и проверочные является важным эт
K-means алгоритм на пальцах
Обучающаяся машина без учителя Алгоритм K-means
Slide 13
Slide 14
Здесь мы используем заранее известный факт что необходимо кла
Еще одна иллюстрация работы алгоритма K-means
Обучающаяся машина без учителя Алгоритм KNN (Nearest Neighbor)
Как работает алгоритм KNN
knn(train test cl k = 1 l = 0 prob = FALSE useall = TRUE
Slide 20
Результаты кластеризации и зависимость ошибки от числа кластеро
Recursive PartitioningRegression Tree
Метод RP реализует обучение машины строить дерево решений по об
Recursive PartitioningRegression Tree (2)
rpart(formula data weights subset naaction = narpart met
Slide 26
Recursive PartitioningRegression Tree example
Анализ по главным компонентам (Principal Component Analysis PC
Итеративные алгоритмы с оптимальным разреженным кодированием IS
Самоорганизация данных методами Deep Learning
Знакомство с пакетом deepnet
Прогнозирование (классификация) нейронной сетью с архитектурой
Arguments
Архитектура сети SAE
Архитектура с 5Х4 hidden 3 outs
Example
Анализ обучающего набора данных
Параметры SAE сети
Коэффициенты связей
Предсказание обученной сетью
Сравнение обучающей и тестовой выборки
plot3d(xy)
Работаем с пакетом MNIST
httpyannlecuncomexdbmnist
Подготовка к обработке
Slide 118
Визуализация
plotmnist()
Распознавание рукописных цифр в deepnet
End of slides part 2 (Part 3 - NLP remaining)
Алгоритм Хинтона - Contrastive Divergence (CD-k)
1 состояние видимых нейронов приравнивается к входному образу2 выводятся вероятности состояний скрытого слоя3 каждому нейрону скрытого слоя ставится в соответствие состояние laquo1raquo с вероятностью равной его текущему состоянию4 выводятся вероятности видимого слоя на основании скрытого5 если текущая итерация меньше k то возврат к шагу 26 выводятся вероятности состояний скрытого слоя
darch Package for deep architectures and Restricted-Bolzmann-MachinesThe darch package is build on the basis of the code from G E Hinton and R R Salakhutdinov (available under Matlab Code for deep belief nets last visit 01082013) This package is for generating neural networks with many layers (deep architectures) and train them with the method introduced by the publications A fast learning algorithm for deep belief nets (G E Hinton S Osindero Y W Teh) and Reducing the dimensionality of data with neural networks (G E Hinton R R Salakhutdinov) This method includes a pre training with the contrastive divergence method publishing by GE Hinton (2002) and a fine tuning with common known training algorithms like backpropagation or conjugate gradient
bull Version 091bull Imports futilelogger ff methodsbull Published 2014-03-16bull Author Martin Dreesbull Maintainer Martin Drees ltmdrees at studfh-dortmunddegtbull License GPL-2bull URL httpgithubcommaddin79darchbull NeedsCompilation nobull Materials READMEbull CRAN checks darch results
Связь плотности вероятности и энергии
Используется распределение Гиббса
Задача обучения с точки минимизации энергии сети
bull Сконструировать функцию энергии с малыми значениями на обучающей выборке и с большими значениями всюду вне этого множества
bull Первое несложно а второе представляет задачу процесса обучения
Интуитивные соображения
Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decomposition LISTA ndashметоды использующие разреженные коды
Латентная переменная Z =argmin_z Distance[Decoder(Z)Y]+FactorB(Z)MAPminimaize sum of factors
Автоэнкодер (auto encoder) Автоэнкодер представляет собой алгоритм обучения без учителя который использует нейронную сеть и метод обратного распространения ошибки для того чтобы добиться того что входной вектор признаков вызывал отклик сети равный входному вектору те y = x Автоэнкодер пытается построить функцию h(x) = x
Архитекттура ICA моделей
Итеративные алгоритмы с оптимальным разреженным кодированием ISTAFISTA
Самоорганизация данных методами Deep Learning
>
Знакомство с пакетом deepnet
Назначение
Составdbndnntrain - обучение сети с архитектурой DBN (deep belief network)loadmnist - формирование данных из файлов MNISTnnpredict - предсказание новых выборок на обученной нейронной сетиnntest ndash тестирование обученной нейронной сети с возвращением значения ошибкиnntrain ndash обучение одностлойной или многослойной нейронной сети методом backproprbmdown ndash генерирование видимого вектора для скрытых состояний сети RBMrbmtrain ndash обучение сети RBMrbmup ndash извлечение скрытых состояний RBM по известным видимым состояниямsaednntrain ndash обучение нейронной сети с архитектурой stacked autoencoder
Прогнозирование (классификация) нейронной сетью с архитектурой stacked auto encoder
Argumentsbull x matrix of x values for examplesbull y vector or matrix of target values for examplesbull hidden vector for number of units of hidden layersDefault is c(10)bull activationfun activation function of hidden unitCan be sigmlinear or tanhDefault isbull sigm for logistic functionbull learningrate learning rate for gradient descent Default is 08bull momentum momentum for gradient descent Default is 05 bull learningrate_scalebull learning rate will be mutiplied by this scale after every iteration Default is 1 bull numepochs number of iteration for samples Default is 3bull batchsize size of mini-batch Default is 100bull output function of output unit can be sigmlinear or softmax Default is sigmbull sae_output function of autoencoder output unit can be sigmlinear or softmax Defaultbull is linearbull hidden_dropout drop out fraction for hidden layer Default is 0bull visible_dropoutbull drop out fraction for input layer Default is 0
Что такое MNISTbull Смешанный набор данных Национального института стандартов и
технологий (mixed National Institute of Standards and Technology MNIST) был создан исследователями IR в качестве эталона для сравнения различных алгоритмов IR
bull Набор данных состоит всего из 70 000 изображений 60 000 обучающих (используемых для создания модели IR) и 10 000 тестовых (применяемых для оценки точности модели) Каждое изображение MNIST mdash это оцифрованная картинка одной цифры написанной от руки Каждое изображение имеет размер 28 times 28 пикселей Каждое значение пикселя лежит в диапазоне от 0 (представляет белый цвет) до 255 (представляет черный цвет) Промежуточные значения отражают оттенки серого
httpyannlecuncomexdbmnistобучающие и тестовые данные хранятся в двух файлах а не в одном Один файл содержит значения пикселей для изображений а другой mdash метки изображений (0ndash9) Каждый из четырех файлов также содержит заголовочную информацию и все они хранятся в двоичном формате сжатом в формате gziptrain-images-idx3-ubytegz training set images (9912422 bytes)
train-labels-idx1-ubytegz training set labels (28881 bytes)
t10k-images-idx3-ubytegz test set images (1648877 bytes)
t10k-labels-idx1-ubytegz test set labels (4542 bytes)
bull Каждая строка файла представляет собой имидж размера 28 times 28 вектором длины 784 каждый признак ndash значение пиксела в черно-белой шале Первый столбец содержит метку цифры 0ndash9 следующие 2828 столбцов представляют целый имидж и так далее Пример первой строки
Визуализация
bull plotmnist()bull mnistbull paramsbull train$n number of train samplesbull train$x pix of every train sample imagebull train$y label of every train sample imagebull train$yy one-of-c vector of label of train sample imagebull test$n number of test samplesbull test$x pix of every test sample imagebull test$y label of every test sample imagebull test$yy one-of-c vector of label of test sample image
plotmnist()
Распознавание рукописных цифр в deepnet
another way to download the MNIST datasetmnist downloadmnist(range=c(01)global=FALSE)look at MNIST datamnist$train$xmnist$train$ymnist$test$xmnist$test$ytrain of the sae neural networkdnnlt-saednntrain(mnist$train$xmnist$train$yhidden=c(55))test of the sae neural networknntest(dnnmnist$test$xmnist$test$yt=05)
End of slides part 2 (Part 3 - NLP remaining)
Vladimirvkrylovgmailcom
Основы предиктивной аналитики Часть вторая
Применение методов Machine Learning к решению задач аналитики
Дмитрий Ветров кандидат физико-математических наук ру
Методы обучающихся машин для аналитики которые мы рассмотрим
Сначала нужно загрузить несколько пакетов (packages) для поддер
Данные для анализа
Скрипт для генерации
Данные которые мы будем использовать для демо состоят из смес
Так выглядят визуализированные данные сгенерированные скриптом
Разделение данных на обучающие и проверочные является важным эт
K-means алгоритм на пальцах
Обучающаяся машина без учителя Алгоритм K-means
Slide 13
Slide 14
Здесь мы используем заранее известный факт что необходимо кла
Еще одна иллюстрация работы алгоритма K-means
Обучающаяся машина без учителя Алгоритм KNN (Nearest Neighbor)
Как работает алгоритм KNN
knn(train test cl k = 1 l = 0 prob = FALSE useall = TRUE
Slide 20
Результаты кластеризации и зависимость ошибки от числа кластеро
Recursive PartitioningRegression Tree
Метод RP реализует обучение машины строить дерево решений по об
Recursive PartitioningRegression Tree (2)
rpart(formula data weights subset naaction = narpart met
Slide 26
Recursive PartitioningRegression Tree example
Анализ по главным компонентам (Principal Component Analysis PC
Итеративные алгоритмы с оптимальным разреженным кодированием IS
Самоорганизация данных методами Deep Learning
Знакомство с пакетом deepnet
Прогнозирование (классификация) нейронной сетью с архитектурой
Arguments
Архитектура сети SAE
Архитектура с 5Х4 hidden 3 outs
Example
Анализ обучающего набора данных
Параметры SAE сети
Коэффициенты связей
Предсказание обученной сетью
Сравнение обучающей и тестовой выборки
plot3d(xy)
Работаем с пакетом MNIST
httpyannlecuncomexdbmnist
Подготовка к обработке
Slide 118
Визуализация
plotmnist()
Распознавание рукописных цифр в deepnet
End of slides part 2 (Part 3 - NLP remaining)
darch Package for deep architectures and Restricted-Bolzmann-MachinesThe darch package is build on the basis of the code from G E Hinton and R R Salakhutdinov (available under Matlab Code for deep belief nets last visit 01082013) This package is for generating neural networks with many layers (deep architectures) and train them with the method introduced by the publications A fast learning algorithm for deep belief nets (G E Hinton S Osindero Y W Teh) and Reducing the dimensionality of data with neural networks (G E Hinton R R Salakhutdinov) This method includes a pre training with the contrastive divergence method publishing by GE Hinton (2002) and a fine tuning with common known training algorithms like backpropagation or conjugate gradient
bull Version 091bull Imports futilelogger ff methodsbull Published 2014-03-16bull Author Martin Dreesbull Maintainer Martin Drees ltmdrees at studfh-dortmunddegtbull License GPL-2bull URL httpgithubcommaddin79darchbull NeedsCompilation nobull Materials READMEbull CRAN checks darch results
Связь плотности вероятности и энергии
Используется распределение Гиббса
Задача обучения с точки минимизации энергии сети
bull Сконструировать функцию энергии с малыми значениями на обучающей выборке и с большими значениями всюду вне этого множества
bull Первое несложно а второе представляет задачу процесса обучения
Интуитивные соображения
Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decomposition LISTA ndashметоды использующие разреженные коды
Латентная переменная Z =argmin_z Distance[Decoder(Z)Y]+FactorB(Z)MAPminimaize sum of factors
Автоэнкодер (auto encoder) Автоэнкодер представляет собой алгоритм обучения без учителя который использует нейронную сеть и метод обратного распространения ошибки для того чтобы добиться того что входной вектор признаков вызывал отклик сети равный входному вектору те y = x Автоэнкодер пытается построить функцию h(x) = x
Архитекттура ICA моделей
Итеративные алгоритмы с оптимальным разреженным кодированием ISTAFISTA
Самоорганизация данных методами Deep Learning
>
Знакомство с пакетом deepnet
Назначение
Составdbndnntrain - обучение сети с архитектурой DBN (deep belief network)loadmnist - формирование данных из файлов MNISTnnpredict - предсказание новых выборок на обученной нейронной сетиnntest ndash тестирование обученной нейронной сети с возвращением значения ошибкиnntrain ndash обучение одностлойной или многослойной нейронной сети методом backproprbmdown ndash генерирование видимого вектора для скрытых состояний сети RBMrbmtrain ndash обучение сети RBMrbmup ndash извлечение скрытых состояний RBM по известным видимым состояниямsaednntrain ndash обучение нейронной сети с архитектурой stacked autoencoder
Прогнозирование (классификация) нейронной сетью с архитектурой stacked auto encoder
Argumentsbull x matrix of x values for examplesbull y vector or matrix of target values for examplesbull hidden vector for number of units of hidden layersDefault is c(10)bull activationfun activation function of hidden unitCan be sigmlinear or tanhDefault isbull sigm for logistic functionbull learningrate learning rate for gradient descent Default is 08bull momentum momentum for gradient descent Default is 05 bull learningrate_scalebull learning rate will be mutiplied by this scale after every iteration Default is 1 bull numepochs number of iteration for samples Default is 3bull batchsize size of mini-batch Default is 100bull output function of output unit can be sigmlinear or softmax Default is sigmbull sae_output function of autoencoder output unit can be sigmlinear or softmax Defaultbull is linearbull hidden_dropout drop out fraction for hidden layer Default is 0bull visible_dropoutbull drop out fraction for input layer Default is 0
Что такое MNISTbull Смешанный набор данных Национального института стандартов и
технологий (mixed National Institute of Standards and Technology MNIST) был создан исследователями IR в качестве эталона для сравнения различных алгоритмов IR
bull Набор данных состоит всего из 70 000 изображений 60 000 обучающих (используемых для создания модели IR) и 10 000 тестовых (применяемых для оценки точности модели) Каждое изображение MNIST mdash это оцифрованная картинка одной цифры написанной от руки Каждое изображение имеет размер 28 times 28 пикселей Каждое значение пикселя лежит в диапазоне от 0 (представляет белый цвет) до 255 (представляет черный цвет) Промежуточные значения отражают оттенки серого
httpyannlecuncomexdbmnistобучающие и тестовые данные хранятся в двух файлах а не в одном Один файл содержит значения пикселей для изображений а другой mdash метки изображений (0ndash9) Каждый из четырех файлов также содержит заголовочную информацию и все они хранятся в двоичном формате сжатом в формате gziptrain-images-idx3-ubytegz training set images (9912422 bytes)
train-labels-idx1-ubytegz training set labels (28881 bytes)
t10k-images-idx3-ubytegz test set images (1648877 bytes)
t10k-labels-idx1-ubytegz test set labels (4542 bytes)
bull Каждая строка файла представляет собой имидж размера 28 times 28 вектором длины 784 каждый признак ndash значение пиксела в черно-белой шале Первый столбец содержит метку цифры 0ndash9 следующие 2828 столбцов представляют целый имидж и так далее Пример первой строки
Визуализация
bull plotmnist()bull mnistbull paramsbull train$n number of train samplesbull train$x pix of every train sample imagebull train$y label of every train sample imagebull train$yy one-of-c vector of label of train sample imagebull test$n number of test samplesbull test$x pix of every test sample imagebull test$y label of every test sample imagebull test$yy one-of-c vector of label of test sample image
plotmnist()
Распознавание рукописных цифр в deepnet
another way to download the MNIST datasetmnist downloadmnist(range=c(01)global=FALSE)look at MNIST datamnist$train$xmnist$train$ymnist$test$xmnist$test$ytrain of the sae neural networkdnnlt-saednntrain(mnist$train$xmnist$train$yhidden=c(55))test of the sae neural networknntest(dnnmnist$test$xmnist$test$yt=05)
End of slides part 2 (Part 3 - NLP remaining)
Vladimirvkrylovgmailcom
Основы предиктивной аналитики Часть вторая
Применение методов Machine Learning к решению задач аналитики
Дмитрий Ветров кандидат физико-математических наук ру
Методы обучающихся машин для аналитики которые мы рассмотрим
Сначала нужно загрузить несколько пакетов (packages) для поддер
Данные для анализа
Скрипт для генерации
Данные которые мы будем использовать для демо состоят из смес
Так выглядят визуализированные данные сгенерированные скриптом
Разделение данных на обучающие и проверочные является важным эт
K-means алгоритм на пальцах
Обучающаяся машина без учителя Алгоритм K-means
Slide 13
Slide 14
Здесь мы используем заранее известный факт что необходимо кла
Еще одна иллюстрация работы алгоритма K-means
Обучающаяся машина без учителя Алгоритм KNN (Nearest Neighbor)
Как работает алгоритм KNN
knn(train test cl k = 1 l = 0 prob = FALSE useall = TRUE
Slide 20
Результаты кластеризации и зависимость ошибки от числа кластеро
Recursive PartitioningRegression Tree
Метод RP реализует обучение машины строить дерево решений по об
Recursive PartitioningRegression Tree (2)
rpart(formula data weights subset naaction = narpart met
Slide 26
Recursive PartitioningRegression Tree example
Анализ по главным компонентам (Principal Component Analysis PC
Автоэнкодер (auto encoder) Автоэнкодер представляет собой алгоритм обучения без учителя который использует нейронную сеть и метод обратного распространения ошибки для того чтобы добиться того что входной вектор признаков вызывал отклик сети равный входному вектору те y = x Автоэнкодер пытается построить функцию h(x) = x
Архитекттура ICA моделей
Итеративные алгоритмы с оптимальным разреженным кодированием ISTAFISTA
Самоорганизация данных методами Deep Learning
>
Знакомство с пакетом deepnet
Назначение
Составdbndnntrain - обучение сети с архитектурой DBN (deep belief network)loadmnist - формирование данных из файлов MNISTnnpredict - предсказание новых выборок на обученной нейронной сетиnntest ndash тестирование обученной нейронной сети с возвращением значения ошибкиnntrain ndash обучение одностлойной или многослойной нейронной сети методом backproprbmdown ndash генерирование видимого вектора для скрытых состояний сети RBMrbmtrain ndash обучение сети RBMrbmup ndash извлечение скрытых состояний RBM по известным видимым состояниямsaednntrain ndash обучение нейронной сети с архитектурой stacked autoencoder
Прогнозирование (классификация) нейронной сетью с архитектурой stacked auto encoder
Argumentsbull x matrix of x values for examplesbull y vector or matrix of target values for examplesbull hidden vector for number of units of hidden layersDefault is c(10)bull activationfun activation function of hidden unitCan be sigmlinear or tanhDefault isbull sigm for logistic functionbull learningrate learning rate for gradient descent Default is 08bull momentum momentum for gradient descent Default is 05 bull learningrate_scalebull learning rate will be mutiplied by this scale after every iteration Default is 1 bull numepochs number of iteration for samples Default is 3bull batchsize size of mini-batch Default is 100bull output function of output unit can be sigmlinear or softmax Default is sigmbull sae_output function of autoencoder output unit can be sigmlinear or softmax Defaultbull is linearbull hidden_dropout drop out fraction for hidden layer Default is 0bull visible_dropoutbull drop out fraction for input layer Default is 0
Что такое MNISTbull Смешанный набор данных Национального института стандартов и
технологий (mixed National Institute of Standards and Technology MNIST) был создан исследователями IR в качестве эталона для сравнения различных алгоритмов IR
bull Набор данных состоит всего из 70 000 изображений 60 000 обучающих (используемых для создания модели IR) и 10 000 тестовых (применяемых для оценки точности модели) Каждое изображение MNIST mdash это оцифрованная картинка одной цифры написанной от руки Каждое изображение имеет размер 28 times 28 пикселей Каждое значение пикселя лежит в диапазоне от 0 (представляет белый цвет) до 255 (представляет черный цвет) Промежуточные значения отражают оттенки серого
httpyannlecuncomexdbmnistобучающие и тестовые данные хранятся в двух файлах а не в одном Один файл содержит значения пикселей для изображений а другой mdash метки изображений (0ndash9) Каждый из четырех файлов также содержит заголовочную информацию и все они хранятся в двоичном формате сжатом в формате gziptrain-images-idx3-ubytegz training set images (9912422 bytes)
train-labels-idx1-ubytegz training set labels (28881 bytes)
t10k-images-idx3-ubytegz test set images (1648877 bytes)
t10k-labels-idx1-ubytegz test set labels (4542 bytes)
bull Каждая строка файла представляет собой имидж размера 28 times 28 вектором длины 784 каждый признак ndash значение пиксела в черно-белой шале Первый столбец содержит метку цифры 0ndash9 следующие 2828 столбцов представляют целый имидж и так далее Пример первой строки
Визуализация
bull plotmnist()bull mnistbull paramsbull train$n number of train samplesbull train$x pix of every train sample imagebull train$y label of every train sample imagebull train$yy one-of-c vector of label of train sample imagebull test$n number of test samplesbull test$x pix of every test sample imagebull test$y label of every test sample imagebull test$yy one-of-c vector of label of test sample image
plotmnist()
Распознавание рукописных цифр в deepnet
another way to download the MNIST datasetmnist downloadmnist(range=c(01)global=FALSE)look at MNIST datamnist$train$xmnist$train$ymnist$test$xmnist$test$ytrain of the sae neural networkdnnlt-saednntrain(mnist$train$xmnist$train$yhidden=c(55))test of the sae neural networknntest(dnnmnist$test$xmnist$test$yt=05)
End of slides part 2 (Part 3 - NLP remaining)
Vladimirvkrylovgmailcom
Основы предиктивной аналитики Часть вторая
Применение методов Machine Learning к решению задач аналитики
Дмитрий Ветров кандидат физико-математических наук ру
Методы обучающихся машин для аналитики которые мы рассмотрим
Сначала нужно загрузить несколько пакетов (packages) для поддер
Данные для анализа
Скрипт для генерации
Данные которые мы будем использовать для демо состоят из смес
Так выглядят визуализированные данные сгенерированные скриптом
Разделение данных на обучающие и проверочные является важным эт
K-means алгоритм на пальцах
Обучающаяся машина без учителя Алгоритм K-means
Slide 13
Slide 14
Здесь мы используем заранее известный факт что необходимо кла
Еще одна иллюстрация работы алгоритма K-means
Обучающаяся машина без учителя Алгоритм KNN (Nearest Neighbor)
Как работает алгоритм KNN
knn(train test cl k = 1 l = 0 prob = FALSE useall = TRUE
Slide 20
Результаты кластеризации и зависимость ошибки от числа кластеро
Recursive PartitioningRegression Tree
Метод RP реализует обучение машины строить дерево решений по об
Recursive PartitioningRegression Tree (2)
rpart(formula data weights subset naaction = narpart met
Slide 26
Recursive PartitioningRegression Tree example
Анализ по главным компонентам (Principal Component Analysis PC
Автоэнкодер (auto encoder) Автоэнкодер представляет собой алгоритм обучения без учителя который использует нейронную сеть и метод обратного распространения ошибки для того чтобы добиться того что входной вектор признаков вызывал отклик сети равный входному вектору те y = x Автоэнкодер пытается построить функцию h(x) = x
Архитекттура ICA моделей
Итеративные алгоритмы с оптимальным разреженным кодированием ISTAFISTA
Самоорганизация данных методами Deep Learning
>
Знакомство с пакетом deepnet
Назначение
Составdbndnntrain - обучение сети с архитектурой DBN (deep belief network)loadmnist - формирование данных из файлов MNISTnnpredict - предсказание новых выборок на обученной нейронной сетиnntest ndash тестирование обученной нейронной сети с возвращением значения ошибкиnntrain ndash обучение одностлойной или многослойной нейронной сети методом backproprbmdown ndash генерирование видимого вектора для скрытых состояний сети RBMrbmtrain ndash обучение сети RBMrbmup ndash извлечение скрытых состояний RBM по известным видимым состояниямsaednntrain ndash обучение нейронной сети с архитектурой stacked autoencoder
Прогнозирование (классификация) нейронной сетью с архитектурой stacked auto encoder
Argumentsbull x matrix of x values for examplesbull y vector or matrix of target values for examplesbull hidden vector for number of units of hidden layersDefault is c(10)bull activationfun activation function of hidden unitCan be sigmlinear or tanhDefault isbull sigm for logistic functionbull learningrate learning rate for gradient descent Default is 08bull momentum momentum for gradient descent Default is 05 bull learningrate_scalebull learning rate will be mutiplied by this scale after every iteration Default is 1 bull numepochs number of iteration for samples Default is 3bull batchsize size of mini-batch Default is 100bull output function of output unit can be sigmlinear or softmax Default is sigmbull sae_output function of autoencoder output unit can be sigmlinear or softmax Defaultbull is linearbull hidden_dropout drop out fraction for hidden layer Default is 0bull visible_dropoutbull drop out fraction for input layer Default is 0
Что такое MNISTbull Смешанный набор данных Национального института стандартов и
технологий (mixed National Institute of Standards and Technology MNIST) был создан исследователями IR в качестве эталона для сравнения различных алгоритмов IR
bull Набор данных состоит всего из 70 000 изображений 60 000 обучающих (используемых для создания модели IR) и 10 000 тестовых (применяемых для оценки точности модели) Каждое изображение MNIST mdash это оцифрованная картинка одной цифры написанной от руки Каждое изображение имеет размер 28 times 28 пикселей Каждое значение пикселя лежит в диапазоне от 0 (представляет белый цвет) до 255 (представляет черный цвет) Промежуточные значения отражают оттенки серого
httpyannlecuncomexdbmnistобучающие и тестовые данные хранятся в двух файлах а не в одном Один файл содержит значения пикселей для изображений а другой mdash метки изображений (0ndash9) Каждый из четырех файлов также содержит заголовочную информацию и все они хранятся в двоичном формате сжатом в формате gziptrain-images-idx3-ubytegz training set images (9912422 bytes)
train-labels-idx1-ubytegz training set labels (28881 bytes)
t10k-images-idx3-ubytegz test set images (1648877 bytes)
t10k-labels-idx1-ubytegz test set labels (4542 bytes)
bull Каждая строка файла представляет собой имидж размера 28 times 28 вектором длины 784 каждый признак ndash значение пиксела в черно-белой шале Первый столбец содержит метку цифры 0ndash9 следующие 2828 столбцов представляют целый имидж и так далее Пример первой строки
Визуализация
bull plotmnist()bull mnistbull paramsbull train$n number of train samplesbull train$x pix of every train sample imagebull train$y label of every train sample imagebull train$yy one-of-c vector of label of train sample imagebull test$n number of test samplesbull test$x pix of every test sample imagebull test$y label of every test sample imagebull test$yy one-of-c vector of label of test sample image
plotmnist()
Распознавание рукописных цифр в deepnet
another way to download the MNIST datasetmnist downloadmnist(range=c(01)global=FALSE)look at MNIST datamnist$train$xmnist$train$ymnist$test$xmnist$test$ytrain of the sae neural networkdnnlt-saednntrain(mnist$train$xmnist$train$yhidden=c(55))test of the sae neural networknntest(dnnmnist$test$xmnist$test$yt=05)
End of slides part 2 (Part 3 - NLP remaining)
Vladimirvkrylovgmailcom
Основы предиктивной аналитики Часть вторая
Применение методов Machine Learning к решению задач аналитики
Дмитрий Ветров кандидат физико-математических наук ру
Методы обучающихся машин для аналитики которые мы рассмотрим
Сначала нужно загрузить несколько пакетов (packages) для поддер
Данные для анализа
Скрипт для генерации
Данные которые мы будем использовать для демо состоят из смес
Так выглядят визуализированные данные сгенерированные скриптом
Разделение данных на обучающие и проверочные является важным эт
K-means алгоритм на пальцах
Обучающаяся машина без учителя Алгоритм K-means
Slide 13
Slide 14
Здесь мы используем заранее известный факт что необходимо кла
Еще одна иллюстрация работы алгоритма K-means
Обучающаяся машина без учителя Алгоритм KNN (Nearest Neighbor)
Как работает алгоритм KNN
knn(train test cl k = 1 l = 0 prob = FALSE useall = TRUE
Slide 20
Результаты кластеризации и зависимость ошибки от числа кластеро
Recursive PartitioningRegression Tree
Метод RP реализует обучение машины строить дерево решений по об
Recursive PartitioningRegression Tree (2)
rpart(formula data weights subset naaction = narpart met
Slide 26
Recursive PartitioningRegression Tree example
Анализ по главным компонентам (Principal Component Analysis PC
Автоэнкодер (auto encoder) Автоэнкодер представляет собой алгоритм обучения без учителя который использует нейронную сеть и метод обратного распространения ошибки для того чтобы добиться того что входной вектор признаков вызывал отклик сети равный входному вектору те y = x Автоэнкодер пытается построить функцию h(x) = x
Архитекттура ICA моделей
Итеративные алгоритмы с оптимальным разреженным кодированием ISTAFISTA
Самоорганизация данных методами Deep Learning
>
Знакомство с пакетом deepnet
Назначение
Составdbndnntrain - обучение сети с архитектурой DBN (deep belief network)loadmnist - формирование данных из файлов MNISTnnpredict - предсказание новых выборок на обученной нейронной сетиnntest ndash тестирование обученной нейронной сети с возвращением значения ошибкиnntrain ndash обучение одностлойной или многослойной нейронной сети методом backproprbmdown ndash генерирование видимого вектора для скрытых состояний сети RBMrbmtrain ndash обучение сети RBMrbmup ndash извлечение скрытых состояний RBM по известным видимым состояниямsaednntrain ndash обучение нейронной сети с архитектурой stacked autoencoder
Прогнозирование (классификация) нейронной сетью с архитектурой stacked auto encoder
Argumentsbull x matrix of x values for examplesbull y vector or matrix of target values for examplesbull hidden vector for number of units of hidden layersDefault is c(10)bull activationfun activation function of hidden unitCan be sigmlinear or tanhDefault isbull sigm for logistic functionbull learningrate learning rate for gradient descent Default is 08bull momentum momentum for gradient descent Default is 05 bull learningrate_scalebull learning rate will be mutiplied by this scale after every iteration Default is 1 bull numepochs number of iteration for samples Default is 3bull batchsize size of mini-batch Default is 100bull output function of output unit can be sigmlinear or softmax Default is sigmbull sae_output function of autoencoder output unit can be sigmlinear or softmax Defaultbull is linearbull hidden_dropout drop out fraction for hidden layer Default is 0bull visible_dropoutbull drop out fraction for input layer Default is 0
Что такое MNISTbull Смешанный набор данных Национального института стандартов и
технологий (mixed National Institute of Standards and Technology MNIST) был создан исследователями IR в качестве эталона для сравнения различных алгоритмов IR
bull Набор данных состоит всего из 70 000 изображений 60 000 обучающих (используемых для создания модели IR) и 10 000 тестовых (применяемых для оценки точности модели) Каждое изображение MNIST mdash это оцифрованная картинка одной цифры написанной от руки Каждое изображение имеет размер 28 times 28 пикселей Каждое значение пикселя лежит в диапазоне от 0 (представляет белый цвет) до 255 (представляет черный цвет) Промежуточные значения отражают оттенки серого
httpyannlecuncomexdbmnistобучающие и тестовые данные хранятся в двух файлах а не в одном Один файл содержит значения пикселей для изображений а другой mdash метки изображений (0ndash9) Каждый из четырех файлов также содержит заголовочную информацию и все они хранятся в двоичном формате сжатом в формате gziptrain-images-idx3-ubytegz training set images (9912422 bytes)
train-labels-idx1-ubytegz training set labels (28881 bytes)
t10k-images-idx3-ubytegz test set images (1648877 bytes)
t10k-labels-idx1-ubytegz test set labels (4542 bytes)
bull Каждая строка файла представляет собой имидж размера 28 times 28 вектором длины 784 каждый признак ndash значение пиксела в черно-белой шале Первый столбец содержит метку цифры 0ndash9 следующие 2828 столбцов представляют целый имидж и так далее Пример первой строки
Визуализация
bull plotmnist()bull mnistbull paramsbull train$n number of train samplesbull train$x pix of every train sample imagebull train$y label of every train sample imagebull train$yy one-of-c vector of label of train sample imagebull test$n number of test samplesbull test$x pix of every test sample imagebull test$y label of every test sample imagebull test$yy one-of-c vector of label of test sample image
plotmnist()
Распознавание рукописных цифр в deepnet
another way to download the MNIST datasetmnist downloadmnist(range=c(01)global=FALSE)look at MNIST datamnist$train$xmnist$train$ymnist$test$xmnist$test$ytrain of the sae neural networkdnnlt-saednntrain(mnist$train$xmnist$train$yhidden=c(55))test of the sae neural networknntest(dnnmnist$test$xmnist$test$yt=05)
End of slides part 2 (Part 3 - NLP remaining)
Vladimirvkrylovgmailcom
Основы предиктивной аналитики Часть вторая
Применение методов Machine Learning к решению задач аналитики
Дмитрий Ветров кандидат физико-математических наук ру
Методы обучающихся машин для аналитики которые мы рассмотрим
Сначала нужно загрузить несколько пакетов (packages) для поддер
Данные для анализа
Скрипт для генерации
Данные которые мы будем использовать для демо состоят из смес
Так выглядят визуализированные данные сгенерированные скриптом
Разделение данных на обучающие и проверочные является важным эт
K-means алгоритм на пальцах
Обучающаяся машина без учителя Алгоритм K-means
Slide 13
Slide 14
Здесь мы используем заранее известный факт что необходимо кла
Еще одна иллюстрация работы алгоритма K-means
Обучающаяся машина без учителя Алгоритм KNN (Nearest Neighbor)
Как работает алгоритм KNN
knn(train test cl k = 1 l = 0 prob = FALSE useall = TRUE
Slide 20
Результаты кластеризации и зависимость ошибки от числа кластеро
Recursive PartitioningRegression Tree
Метод RP реализует обучение машины строить дерево решений по об
Recursive PartitioningRegression Tree (2)
rpart(formula data weights subset naaction = narpart met
Slide 26
Recursive PartitioningRegression Tree example
Анализ по главным компонентам (Principal Component Analysis PC
Автоэнкодер (auto encoder) Автоэнкодер представляет собой алгоритм обучения без учителя который использует нейронную сеть и метод обратного распространения ошибки для того чтобы добиться того что входной вектор признаков вызывал отклик сети равный входному вектору те y = x Автоэнкодер пытается построить функцию h(x) = x
Архитекттура ICA моделей
Итеративные алгоритмы с оптимальным разреженным кодированием ISTAFISTA
Самоорганизация данных методами Deep Learning
>
Знакомство с пакетом deepnet
Назначение
Составdbndnntrain - обучение сети с архитектурой DBN (deep belief network)loadmnist - формирование данных из файлов MNISTnnpredict - предсказание новых выборок на обученной нейронной сетиnntest ndash тестирование обученной нейронной сети с возвращением значения ошибкиnntrain ndash обучение одностлойной или многослойной нейронной сети методом backproprbmdown ndash генерирование видимого вектора для скрытых состояний сети RBMrbmtrain ndash обучение сети RBMrbmup ndash извлечение скрытых состояний RBM по известным видимым состояниямsaednntrain ndash обучение нейронной сети с архитектурой stacked autoencoder
Прогнозирование (классификация) нейронной сетью с архитектурой stacked auto encoder
Argumentsbull x matrix of x values for examplesbull y vector or matrix of target values for examplesbull hidden vector for number of units of hidden layersDefault is c(10)bull activationfun activation function of hidden unitCan be sigmlinear or tanhDefault isbull sigm for logistic functionbull learningrate learning rate for gradient descent Default is 08bull momentum momentum for gradient descent Default is 05 bull learningrate_scalebull learning rate will be mutiplied by this scale after every iteration Default is 1 bull numepochs number of iteration for samples Default is 3bull batchsize size of mini-batch Default is 100bull output function of output unit can be sigmlinear or softmax Default is sigmbull sae_output function of autoencoder output unit can be sigmlinear or softmax Defaultbull is linearbull hidden_dropout drop out fraction for hidden layer Default is 0bull visible_dropoutbull drop out fraction for input layer Default is 0
Что такое MNISTbull Смешанный набор данных Национального института стандартов и
технологий (mixed National Institute of Standards and Technology MNIST) был создан исследователями IR в качестве эталона для сравнения различных алгоритмов IR
bull Набор данных состоит всего из 70 000 изображений 60 000 обучающих (используемых для создания модели IR) и 10 000 тестовых (применяемых для оценки точности модели) Каждое изображение MNIST mdash это оцифрованная картинка одной цифры написанной от руки Каждое изображение имеет размер 28 times 28 пикселей Каждое значение пикселя лежит в диапазоне от 0 (представляет белый цвет) до 255 (представляет черный цвет) Промежуточные значения отражают оттенки серого
httpyannlecuncomexdbmnistобучающие и тестовые данные хранятся в двух файлах а не в одном Один файл содержит значения пикселей для изображений а другой mdash метки изображений (0ndash9) Каждый из четырех файлов также содержит заголовочную информацию и все они хранятся в двоичном формате сжатом в формате gziptrain-images-idx3-ubytegz training set images (9912422 bytes)
train-labels-idx1-ubytegz training set labels (28881 bytes)
t10k-images-idx3-ubytegz test set images (1648877 bytes)
t10k-labels-idx1-ubytegz test set labels (4542 bytes)
bull Каждая строка файла представляет собой имидж размера 28 times 28 вектором длины 784 каждый признак ndash значение пиксела в черно-белой шале Первый столбец содержит метку цифры 0ndash9 следующие 2828 столбцов представляют целый имидж и так далее Пример первой строки
Визуализация
bull plotmnist()bull mnistbull paramsbull train$n number of train samplesbull train$x pix of every train sample imagebull train$y label of every train sample imagebull train$yy one-of-c vector of label of train sample imagebull test$n number of test samplesbull test$x pix of every test sample imagebull test$y label of every test sample imagebull test$yy one-of-c vector of label of test sample image
plotmnist()
Распознавание рукописных цифр в deepnet
another way to download the MNIST datasetmnist downloadmnist(range=c(01)global=FALSE)look at MNIST datamnist$train$xmnist$train$ymnist$test$xmnist$test$ytrain of the sae neural networkdnnlt-saednntrain(mnist$train$xmnist$train$yhidden=c(55))test of the sae neural networknntest(dnnmnist$test$xmnist$test$yt=05)
End of slides part 2 (Part 3 - NLP remaining)
Vladimirvkrylovgmailcom
Основы предиктивной аналитики Часть вторая
Применение методов Machine Learning к решению задач аналитики
Дмитрий Ветров кандидат физико-математических наук ру
Методы обучающихся машин для аналитики которые мы рассмотрим
Сначала нужно загрузить несколько пакетов (packages) для поддер
Данные для анализа
Скрипт для генерации
Данные которые мы будем использовать для демо состоят из смес
Так выглядят визуализированные данные сгенерированные скриптом
Разделение данных на обучающие и проверочные является важным эт
K-means алгоритм на пальцах
Обучающаяся машина без учителя Алгоритм K-means
Slide 13
Slide 14
Здесь мы используем заранее известный факт что необходимо кла
Еще одна иллюстрация работы алгоритма K-means
Обучающаяся машина без учителя Алгоритм KNN (Nearest Neighbor)
Как работает алгоритм KNN
knn(train test cl k = 1 l = 0 prob = FALSE useall = TRUE
Slide 20
Результаты кластеризации и зависимость ошибки от числа кластеро
Recursive PartitioningRegression Tree
Метод RP реализует обучение машины строить дерево решений по об
Recursive PartitioningRegression Tree (2)
rpart(formula data weights subset naaction = narpart met
Slide 26
Recursive PartitioningRegression Tree example
Анализ по главным компонентам (Principal Component Analysis PC
Автоэнкодер (auto encoder) Автоэнкодер представляет собой алгоритм обучения без учителя который использует нейронную сеть и метод обратного распространения ошибки для того чтобы добиться того что входной вектор признаков вызывал отклик сети равный входному вектору те y = x Автоэнкодер пытается построить функцию h(x) = x
Архитекттура ICA моделей
Итеративные алгоритмы с оптимальным разреженным кодированием ISTAFISTA
Самоорганизация данных методами Deep Learning
>
Знакомство с пакетом deepnet
Назначение
Составdbndnntrain - обучение сети с архитектурой DBN (deep belief network)loadmnist - формирование данных из файлов MNISTnnpredict - предсказание новых выборок на обученной нейронной сетиnntest ndash тестирование обученной нейронной сети с возвращением значения ошибкиnntrain ndash обучение одностлойной или многослойной нейронной сети методом backproprbmdown ndash генерирование видимого вектора для скрытых состояний сети RBMrbmtrain ndash обучение сети RBMrbmup ndash извлечение скрытых состояний RBM по известным видимым состояниямsaednntrain ndash обучение нейронной сети с архитектурой stacked autoencoder
Прогнозирование (классификация) нейронной сетью с архитектурой stacked auto encoder
Argumentsbull x matrix of x values for examplesbull y vector or matrix of target values for examplesbull hidden vector for number of units of hidden layersDefault is c(10)bull activationfun activation function of hidden unitCan be sigmlinear or tanhDefault isbull sigm for logistic functionbull learningrate learning rate for gradient descent Default is 08bull momentum momentum for gradient descent Default is 05 bull learningrate_scalebull learning rate will be mutiplied by this scale after every iteration Default is 1 bull numepochs number of iteration for samples Default is 3bull batchsize size of mini-batch Default is 100bull output function of output unit can be sigmlinear or softmax Default is sigmbull sae_output function of autoencoder output unit can be sigmlinear or softmax Defaultbull is linearbull hidden_dropout drop out fraction for hidden layer Default is 0bull visible_dropoutbull drop out fraction for input layer Default is 0
Что такое MNISTbull Смешанный набор данных Национального института стандартов и
технологий (mixed National Institute of Standards and Technology MNIST) был создан исследователями IR в качестве эталона для сравнения различных алгоритмов IR
bull Набор данных состоит всего из 70 000 изображений 60 000 обучающих (используемых для создания модели IR) и 10 000 тестовых (применяемых для оценки точности модели) Каждое изображение MNIST mdash это оцифрованная картинка одной цифры написанной от руки Каждое изображение имеет размер 28 times 28 пикселей Каждое значение пикселя лежит в диапазоне от 0 (представляет белый цвет) до 255 (представляет черный цвет) Промежуточные значения отражают оттенки серого
httpyannlecuncomexdbmnistобучающие и тестовые данные хранятся в двух файлах а не в одном Один файл содержит значения пикселей для изображений а другой mdash метки изображений (0ndash9) Каждый из четырех файлов также содержит заголовочную информацию и все они хранятся в двоичном формате сжатом в формате gziptrain-images-idx3-ubytegz training set images (9912422 bytes)
train-labels-idx1-ubytegz training set labels (28881 bytes)
t10k-images-idx3-ubytegz test set images (1648877 bytes)
t10k-labels-idx1-ubytegz test set labels (4542 bytes)
bull Каждая строка файла представляет собой имидж размера 28 times 28 вектором длины 784 каждый признак ndash значение пиксела в черно-белой шале Первый столбец содержит метку цифры 0ndash9 следующие 2828 столбцов представляют целый имидж и так далее Пример первой строки
Визуализация
bull plotmnist()bull mnistbull paramsbull train$n number of train samplesbull train$x pix of every train sample imagebull train$y label of every train sample imagebull train$yy one-of-c vector of label of train sample imagebull test$n number of test samplesbull test$x pix of every test sample imagebull test$y label of every test sample imagebull test$yy one-of-c vector of label of test sample image
plotmnist()
Распознавание рукописных цифр в deepnet
another way to download the MNIST datasetmnist downloadmnist(range=c(01)global=FALSE)look at MNIST datamnist$train$xmnist$train$ymnist$test$xmnist$test$ytrain of the sae neural networkdnnlt-saednntrain(mnist$train$xmnist$train$yhidden=c(55))test of the sae neural networknntest(dnnmnist$test$xmnist$test$yt=05)
End of slides part 2 (Part 3 - NLP remaining)
Vladimirvkrylovgmailcom
Основы предиктивной аналитики Часть вторая
Применение методов Machine Learning к решению задач аналитики
Дмитрий Ветров кандидат физико-математических наук ру
Методы обучающихся машин для аналитики которые мы рассмотрим
Сначала нужно загрузить несколько пакетов (packages) для поддер
Данные для анализа
Скрипт для генерации
Данные которые мы будем использовать для демо состоят из смес
Так выглядят визуализированные данные сгенерированные скриптом
Разделение данных на обучающие и проверочные является важным эт
K-means алгоритм на пальцах
Обучающаяся машина без учителя Алгоритм K-means
Slide 13
Slide 14
Здесь мы используем заранее известный факт что необходимо кла
Еще одна иллюстрация работы алгоритма K-means
Обучающаяся машина без учителя Алгоритм KNN (Nearest Neighbor)
Как работает алгоритм KNN
knn(train test cl k = 1 l = 0 prob = FALSE useall = TRUE
Slide 20
Результаты кластеризации и зависимость ошибки от числа кластеро
Recursive PartitioningRegression Tree
Метод RP реализует обучение машины строить дерево решений по об
Recursive PartitioningRegression Tree (2)
rpart(formula data weights subset naaction = narpart met
Slide 26
Recursive PartitioningRegression Tree example
Анализ по главным компонентам (Principal Component Analysis PC
Итеративные алгоритмы с оптимальным разреженным кодированием IS
Самоорганизация данных методами Deep Learning
Знакомство с пакетом deepnet
Прогнозирование (классификация) нейронной сетью с архитектурой
Arguments
Архитектура сети SAE
Архитектура с 5Х4 hidden 3 outs
Example
Анализ обучающего набора данных
Параметры SAE сети
Коэффициенты связей
Предсказание обученной сетью
Сравнение обучающей и тестовой выборки
plot3d(xy)
Работаем с пакетом MNIST
httpyannlecuncomexdbmnist
Подготовка к обработке
Slide 118
Визуализация
plotmnist()
Распознавание рукописных цифр в deepnet
End of slides part 2 (Part 3 - NLP remaining)
Автоэнкодер (auto encoder) Автоэнкодер представляет собой алгоритм обучения без учителя который использует нейронную сеть и метод обратного распространения ошибки для того чтобы добиться того что входной вектор признаков вызывал отклик сети равный входному вектору те y = x Автоэнкодер пытается построить функцию h(x) = x
Архитекттура ICA моделей
Итеративные алгоритмы с оптимальным разреженным кодированием ISTAFISTA
Самоорганизация данных методами Deep Learning
>
Знакомство с пакетом deepnet
Назначение
Составdbndnntrain - обучение сети с архитектурой DBN (deep belief network)loadmnist - формирование данных из файлов MNISTnnpredict - предсказание новых выборок на обученной нейронной сетиnntest ndash тестирование обученной нейронной сети с возвращением значения ошибкиnntrain ndash обучение одностлойной или многослойной нейронной сети методом backproprbmdown ndash генерирование видимого вектора для скрытых состояний сети RBMrbmtrain ndash обучение сети RBMrbmup ndash извлечение скрытых состояний RBM по известным видимым состояниямsaednntrain ndash обучение нейронной сети с архитектурой stacked autoencoder
Прогнозирование (классификация) нейронной сетью с архитектурой stacked auto encoder
Argumentsbull x matrix of x values for examplesbull y vector or matrix of target values for examplesbull hidden vector for number of units of hidden layersDefault is c(10)bull activationfun activation function of hidden unitCan be sigmlinear or tanhDefault isbull sigm for logistic functionbull learningrate learning rate for gradient descent Default is 08bull momentum momentum for gradient descent Default is 05 bull learningrate_scalebull learning rate will be mutiplied by this scale after every iteration Default is 1 bull numepochs number of iteration for samples Default is 3bull batchsize size of mini-batch Default is 100bull output function of output unit can be sigmlinear or softmax Default is sigmbull sae_output function of autoencoder output unit can be sigmlinear or softmax Defaultbull is linearbull hidden_dropout drop out fraction for hidden layer Default is 0bull visible_dropoutbull drop out fraction for input layer Default is 0
Что такое MNISTbull Смешанный набор данных Национального института стандартов и
технологий (mixed National Institute of Standards and Technology MNIST) был создан исследователями IR в качестве эталона для сравнения различных алгоритмов IR
bull Набор данных состоит всего из 70 000 изображений 60 000 обучающих (используемых для создания модели IR) и 10 000 тестовых (применяемых для оценки точности модели) Каждое изображение MNIST mdash это оцифрованная картинка одной цифры написанной от руки Каждое изображение имеет размер 28 times 28 пикселей Каждое значение пикселя лежит в диапазоне от 0 (представляет белый цвет) до 255 (представляет черный цвет) Промежуточные значения отражают оттенки серого
httpyannlecuncomexdbmnistобучающие и тестовые данные хранятся в двух файлах а не в одном Один файл содержит значения пикселей для изображений а другой mdash метки изображений (0ndash9) Каждый из четырех файлов также содержит заголовочную информацию и все они хранятся в двоичном формате сжатом в формате gziptrain-images-idx3-ubytegz training set images (9912422 bytes)
train-labels-idx1-ubytegz training set labels (28881 bytes)
t10k-images-idx3-ubytegz test set images (1648877 bytes)
t10k-labels-idx1-ubytegz test set labels (4542 bytes)
bull Каждая строка файла представляет собой имидж размера 28 times 28 вектором длины 784 каждый признак ndash значение пиксела в черно-белой шале Первый столбец содержит метку цифры 0ndash9 следующие 2828 столбцов представляют целый имидж и так далее Пример первой строки
Визуализация
bull plotmnist()bull mnistbull paramsbull train$n number of train samplesbull train$x pix of every train sample imagebull train$y label of every train sample imagebull train$yy one-of-c vector of label of train sample imagebull test$n number of test samplesbull test$x pix of every test sample imagebull test$y label of every test sample imagebull test$yy one-of-c vector of label of test sample image
plotmnist()
Распознавание рукописных цифр в deepnet
another way to download the MNIST datasetmnist downloadmnist(range=c(01)global=FALSE)look at MNIST datamnist$train$xmnist$train$ymnist$test$xmnist$test$ytrain of the sae neural networkdnnlt-saednntrain(mnist$train$xmnist$train$yhidden=c(55))test of the sae neural networknntest(dnnmnist$test$xmnist$test$yt=05)
End of slides part 2 (Part 3 - NLP remaining)
Vladimirvkrylovgmailcom
Основы предиктивной аналитики Часть вторая
Применение методов Machine Learning к решению задач аналитики
Дмитрий Ветров кандидат физико-математических наук ру
Методы обучающихся машин для аналитики которые мы рассмотрим
Сначала нужно загрузить несколько пакетов (packages) для поддер
Данные для анализа
Скрипт для генерации
Данные которые мы будем использовать для демо состоят из смес
Так выглядят визуализированные данные сгенерированные скриптом
Разделение данных на обучающие и проверочные является важным эт
K-means алгоритм на пальцах
Обучающаяся машина без учителя Алгоритм K-means
Slide 13
Slide 14
Здесь мы используем заранее известный факт что необходимо кла
Еще одна иллюстрация работы алгоритма K-means
Обучающаяся машина без учителя Алгоритм KNN (Nearest Neighbor)
Как работает алгоритм KNN
knn(train test cl k = 1 l = 0 prob = FALSE useall = TRUE
Slide 20
Результаты кластеризации и зависимость ошибки от числа кластеро
Recursive PartitioningRegression Tree
Метод RP реализует обучение машины строить дерево решений по об
Recursive PartitioningRegression Tree (2)
rpart(formula data weights subset naaction = narpart met
Slide 26
Recursive PartitioningRegression Tree example
Анализ по главным компонентам (Principal Component Analysis PC
Итеративные алгоритмы с оптимальным разреженным кодированием IS
Самоорганизация данных методами Deep Learning
Знакомство с пакетом deepnet
Прогнозирование (классификация) нейронной сетью с архитектурой
Arguments
Архитектура сети SAE
Архитектура с 5Х4 hidden 3 outs
Example
Анализ обучающего набора данных
Параметры SAE сети
Коэффициенты связей
Предсказание обученной сетью
Сравнение обучающей и тестовой выборки
plot3d(xy)
Работаем с пакетом MNIST
httpyannlecuncomexdbmnist
Подготовка к обработке
Slide 118
Визуализация
plotmnist()
Распознавание рукописных цифр в deepnet
End of slides part 2 (Part 3 - NLP remaining)
Архитекттура ICA моделей
Итеративные алгоритмы с оптимальным разреженным кодированием ISTAFISTA
Самоорганизация данных методами Deep Learning
>
Знакомство с пакетом deepnet
Назначение
Составdbndnntrain - обучение сети с архитектурой DBN (deep belief network)loadmnist - формирование данных из файлов MNISTnnpredict - предсказание новых выборок на обученной нейронной сетиnntest ndash тестирование обученной нейронной сети с возвращением значения ошибкиnntrain ndash обучение одностлойной или многослойной нейронной сети методом backproprbmdown ndash генерирование видимого вектора для скрытых состояний сети RBMrbmtrain ndash обучение сети RBMrbmup ndash извлечение скрытых состояний RBM по известным видимым состояниямsaednntrain ndash обучение нейронной сети с архитектурой stacked autoencoder
Прогнозирование (классификация) нейронной сетью с архитектурой stacked auto encoder
Argumentsbull x matrix of x values for examplesbull y vector or matrix of target values for examplesbull hidden vector for number of units of hidden layersDefault is c(10)bull activationfun activation function of hidden unitCan be sigmlinear or tanhDefault isbull sigm for logistic functionbull learningrate learning rate for gradient descent Default is 08bull momentum momentum for gradient descent Default is 05 bull learningrate_scalebull learning rate will be mutiplied by this scale after every iteration Default is 1 bull numepochs number of iteration for samples Default is 3bull batchsize size of mini-batch Default is 100bull output function of output unit can be sigmlinear or softmax Default is sigmbull sae_output function of autoencoder output unit can be sigmlinear or softmax Defaultbull is linearbull hidden_dropout drop out fraction for hidden layer Default is 0bull visible_dropoutbull drop out fraction for input layer Default is 0
Что такое MNISTbull Смешанный набор данных Национального института стандартов и
технологий (mixed National Institute of Standards and Technology MNIST) был создан исследователями IR в качестве эталона для сравнения различных алгоритмов IR
bull Набор данных состоит всего из 70 000 изображений 60 000 обучающих (используемых для создания модели IR) и 10 000 тестовых (применяемых для оценки точности модели) Каждое изображение MNIST mdash это оцифрованная картинка одной цифры написанной от руки Каждое изображение имеет размер 28 times 28 пикселей Каждое значение пикселя лежит в диапазоне от 0 (представляет белый цвет) до 255 (представляет черный цвет) Промежуточные значения отражают оттенки серого
httpyannlecuncomexdbmnistобучающие и тестовые данные хранятся в двух файлах а не в одном Один файл содержит значения пикселей для изображений а другой mdash метки изображений (0ndash9) Каждый из четырех файлов также содержит заголовочную информацию и все они хранятся в двоичном формате сжатом в формате gziptrain-images-idx3-ubytegz training set images (9912422 bytes)
train-labels-idx1-ubytegz training set labels (28881 bytes)
t10k-images-idx3-ubytegz test set images (1648877 bytes)
t10k-labels-idx1-ubytegz test set labels (4542 bytes)
bull Каждая строка файла представляет собой имидж размера 28 times 28 вектором длины 784 каждый признак ndash значение пиксела в черно-белой шале Первый столбец содержит метку цифры 0ndash9 следующие 2828 столбцов представляют целый имидж и так далее Пример первой строки
Визуализация
bull plotmnist()bull mnistbull paramsbull train$n number of train samplesbull train$x pix of every train sample imagebull train$y label of every train sample imagebull train$yy one-of-c vector of label of train sample imagebull test$n number of test samplesbull test$x pix of every test sample imagebull test$y label of every test sample imagebull test$yy one-of-c vector of label of test sample image
plotmnist()
Распознавание рукописных цифр в deepnet
another way to download the MNIST datasetmnist downloadmnist(range=c(01)global=FALSE)look at MNIST datamnist$train$xmnist$train$ymnist$test$xmnist$test$ytrain of the sae neural networkdnnlt-saednntrain(mnist$train$xmnist$train$yhidden=c(55))test of the sae neural networknntest(dnnmnist$test$xmnist$test$yt=05)
End of slides part 2 (Part 3 - NLP remaining)
Vladimirvkrylovgmailcom
Основы предиктивной аналитики Часть вторая
Применение методов Machine Learning к решению задач аналитики
Дмитрий Ветров кандидат физико-математических наук ру
Методы обучающихся машин для аналитики которые мы рассмотрим
Сначала нужно загрузить несколько пакетов (packages) для поддер
Данные для анализа
Скрипт для генерации
Данные которые мы будем использовать для демо состоят из смес
Так выглядят визуализированные данные сгенерированные скриптом
Разделение данных на обучающие и проверочные является важным эт
K-means алгоритм на пальцах
Обучающаяся машина без учителя Алгоритм K-means
Slide 13
Slide 14
Здесь мы используем заранее известный факт что необходимо кла
Еще одна иллюстрация работы алгоритма K-means
Обучающаяся машина без учителя Алгоритм KNN (Nearest Neighbor)
Как работает алгоритм KNN
knn(train test cl k = 1 l = 0 prob = FALSE useall = TRUE
Slide 20
Результаты кластеризации и зависимость ошибки от числа кластеро
Recursive PartitioningRegression Tree
Метод RP реализует обучение машины строить дерево решений по об
Recursive PartitioningRegression Tree (2)
rpart(formula data weights subset naaction = narpart met
Slide 26
Recursive PartitioningRegression Tree example
Анализ по главным компонентам (Principal Component Analysis PC
Итеративные алгоритмы с оптимальным разреженным кодированием IS
Самоорганизация данных методами Deep Learning
Знакомство с пакетом deepnet
Прогнозирование (классификация) нейронной сетью с архитектурой
Arguments
Архитектура сети SAE
Архитектура с 5Х4 hidden 3 outs
Example
Анализ обучающего набора данных
Параметры SAE сети
Коэффициенты связей
Предсказание обученной сетью
Сравнение обучающей и тестовой выборки
plot3d(xy)
Работаем с пакетом MNIST
httpyannlecuncomexdbmnist
Подготовка к обработке
Slide 118
Визуализация
plotmnist()
Распознавание рукописных цифр в deepnet
End of slides part 2 (Part 3 - NLP remaining)
Итеративные алгоритмы с оптимальным разреженным кодированием ISTAFISTA
Самоорганизация данных методами Deep Learning
>
Знакомство с пакетом deepnet
Назначение
Составdbndnntrain - обучение сети с архитектурой DBN (deep belief network)loadmnist - формирование данных из файлов MNISTnnpredict - предсказание новых выборок на обученной нейронной сетиnntest ndash тестирование обученной нейронной сети с возвращением значения ошибкиnntrain ndash обучение одностлойной или многослойной нейронной сети методом backproprbmdown ndash генерирование видимого вектора для скрытых состояний сети RBMrbmtrain ndash обучение сети RBMrbmup ndash извлечение скрытых состояний RBM по известным видимым состояниямsaednntrain ndash обучение нейронной сети с архитектурой stacked autoencoder
Прогнозирование (классификация) нейронной сетью с архитектурой stacked auto encoder
Argumentsbull x matrix of x values for examplesbull y vector or matrix of target values for examplesbull hidden vector for number of units of hidden layersDefault is c(10)bull activationfun activation function of hidden unitCan be sigmlinear or tanhDefault isbull sigm for logistic functionbull learningrate learning rate for gradient descent Default is 08bull momentum momentum for gradient descent Default is 05 bull learningrate_scalebull learning rate will be mutiplied by this scale after every iteration Default is 1 bull numepochs number of iteration for samples Default is 3bull batchsize size of mini-batch Default is 100bull output function of output unit can be sigmlinear or softmax Default is sigmbull sae_output function of autoencoder output unit can be sigmlinear or softmax Defaultbull is linearbull hidden_dropout drop out fraction for hidden layer Default is 0bull visible_dropoutbull drop out fraction for input layer Default is 0
Что такое MNISTbull Смешанный набор данных Национального института стандартов и
технологий (mixed National Institute of Standards and Technology MNIST) был создан исследователями IR в качестве эталона для сравнения различных алгоритмов IR
bull Набор данных состоит всего из 70 000 изображений 60 000 обучающих (используемых для создания модели IR) и 10 000 тестовых (применяемых для оценки точности модели) Каждое изображение MNIST mdash это оцифрованная картинка одной цифры написанной от руки Каждое изображение имеет размер 28 times 28 пикселей Каждое значение пикселя лежит в диапазоне от 0 (представляет белый цвет) до 255 (представляет черный цвет) Промежуточные значения отражают оттенки серого
httpyannlecuncomexdbmnistобучающие и тестовые данные хранятся в двух файлах а не в одном Один файл содержит значения пикселей для изображений а другой mdash метки изображений (0ndash9) Каждый из четырех файлов также содержит заголовочную информацию и все они хранятся в двоичном формате сжатом в формате gziptrain-images-idx3-ubytegz training set images (9912422 bytes)
train-labels-idx1-ubytegz training set labels (28881 bytes)
t10k-images-idx3-ubytegz test set images (1648877 bytes)
t10k-labels-idx1-ubytegz test set labels (4542 bytes)
bull Каждая строка файла представляет собой имидж размера 28 times 28 вектором длины 784 каждый признак ndash значение пиксела в черно-белой шале Первый столбец содержит метку цифры 0ndash9 следующие 2828 столбцов представляют целый имидж и так далее Пример первой строки
Визуализация
bull plotmnist()bull mnistbull paramsbull train$n number of train samplesbull train$x pix of every train sample imagebull train$y label of every train sample imagebull train$yy one-of-c vector of label of train sample imagebull test$n number of test samplesbull test$x pix of every test sample imagebull test$y label of every test sample imagebull test$yy one-of-c vector of label of test sample image
plotmnist()
Распознавание рукописных цифр в deepnet
another way to download the MNIST datasetmnist downloadmnist(range=c(01)global=FALSE)look at MNIST datamnist$train$xmnist$train$ymnist$test$xmnist$test$ytrain of the sae neural networkdnnlt-saednntrain(mnist$train$xmnist$train$yhidden=c(55))test of the sae neural networknntest(dnnmnist$test$xmnist$test$yt=05)
End of slides part 2 (Part 3 - NLP remaining)
Vladimirvkrylovgmailcom
Основы предиктивной аналитики Часть вторая
Применение методов Machine Learning к решению задач аналитики
Дмитрий Ветров кандидат физико-математических наук ру
Методы обучающихся машин для аналитики которые мы рассмотрим
Сначала нужно загрузить несколько пакетов (packages) для поддер
Данные для анализа
Скрипт для генерации
Данные которые мы будем использовать для демо состоят из смес
Так выглядят визуализированные данные сгенерированные скриптом
Разделение данных на обучающие и проверочные является важным эт
K-means алгоритм на пальцах
Обучающаяся машина без учителя Алгоритм K-means
Slide 13
Slide 14
Здесь мы используем заранее известный факт что необходимо кла
Еще одна иллюстрация работы алгоритма K-means
Обучающаяся машина без учителя Алгоритм KNN (Nearest Neighbor)
Как работает алгоритм KNN
knn(train test cl k = 1 l = 0 prob = FALSE useall = TRUE
Slide 20
Результаты кластеризации и зависимость ошибки от числа кластеро
Recursive PartitioningRegression Tree
Метод RP реализует обучение машины строить дерево решений по об
Recursive PartitioningRegression Tree (2)
rpart(formula data weights subset naaction = narpart met
Slide 26
Recursive PartitioningRegression Tree example
Анализ по главным компонентам (Principal Component Analysis PC
Итеративные алгоритмы с оптимальным разреженным кодированием IS
Самоорганизация данных методами Deep Learning
Знакомство с пакетом deepnet
Прогнозирование (классификация) нейронной сетью с архитектурой
Arguments
Архитектура сети SAE
Архитектура с 5Х4 hidden 3 outs
Example
Анализ обучающего набора данных
Параметры SAE сети
Коэффициенты связей
Предсказание обученной сетью
Сравнение обучающей и тестовой выборки
plot3d(xy)
Работаем с пакетом MNIST
httpyannlecuncomexdbmnist
Подготовка к обработке
Slide 118
Визуализация
plotmnist()
Распознавание рукописных цифр в deepnet
End of slides part 2 (Part 3 - NLP remaining)
Самоорганизация данных методами Deep Learning
>
Знакомство с пакетом deepnet
Назначение
Составdbndnntrain - обучение сети с архитектурой DBN (deep belief network)loadmnist - формирование данных из файлов MNISTnnpredict - предсказание новых выборок на обученной нейронной сетиnntest ndash тестирование обученной нейронной сети с возвращением значения ошибкиnntrain ndash обучение одностлойной или многослойной нейронной сети методом backproprbmdown ndash генерирование видимого вектора для скрытых состояний сети RBMrbmtrain ndash обучение сети RBMrbmup ndash извлечение скрытых состояний RBM по известным видимым состояниямsaednntrain ndash обучение нейронной сети с архитектурой stacked autoencoder
Прогнозирование (классификация) нейронной сетью с архитектурой stacked auto encoder
Argumentsbull x matrix of x values for examplesbull y vector or matrix of target values for examplesbull hidden vector for number of units of hidden layersDefault is c(10)bull activationfun activation function of hidden unitCan be sigmlinear or tanhDefault isbull sigm for logistic functionbull learningrate learning rate for gradient descent Default is 08bull momentum momentum for gradient descent Default is 05 bull learningrate_scalebull learning rate will be mutiplied by this scale after every iteration Default is 1 bull numepochs number of iteration for samples Default is 3bull batchsize size of mini-batch Default is 100bull output function of output unit can be sigmlinear or softmax Default is sigmbull sae_output function of autoencoder output unit can be sigmlinear or softmax Defaultbull is linearbull hidden_dropout drop out fraction for hidden layer Default is 0bull visible_dropoutbull drop out fraction for input layer Default is 0
Что такое MNISTbull Смешанный набор данных Национального института стандартов и
технологий (mixed National Institute of Standards and Technology MNIST) был создан исследователями IR в качестве эталона для сравнения различных алгоритмов IR
bull Набор данных состоит всего из 70 000 изображений 60 000 обучающих (используемых для создания модели IR) и 10 000 тестовых (применяемых для оценки точности модели) Каждое изображение MNIST mdash это оцифрованная картинка одной цифры написанной от руки Каждое изображение имеет размер 28 times 28 пикселей Каждое значение пикселя лежит в диапазоне от 0 (представляет белый цвет) до 255 (представляет черный цвет) Промежуточные значения отражают оттенки серого
httpyannlecuncomexdbmnistобучающие и тестовые данные хранятся в двух файлах а не в одном Один файл содержит значения пикселей для изображений а другой mdash метки изображений (0ndash9) Каждый из четырех файлов также содержит заголовочную информацию и все они хранятся в двоичном формате сжатом в формате gziptrain-images-idx3-ubytegz training set images (9912422 bytes)
train-labels-idx1-ubytegz training set labels (28881 bytes)
t10k-images-idx3-ubytegz test set images (1648877 bytes)
t10k-labels-idx1-ubytegz test set labels (4542 bytes)
bull Каждая строка файла представляет собой имидж размера 28 times 28 вектором длины 784 каждый признак ndash значение пиксела в черно-белой шале Первый столбец содержит метку цифры 0ndash9 следующие 2828 столбцов представляют целый имидж и так далее Пример первой строки
Визуализация
bull plotmnist()bull mnistbull paramsbull train$n number of train samplesbull train$x pix of every train sample imagebull train$y label of every train sample imagebull train$yy one-of-c vector of label of train sample imagebull test$n number of test samplesbull test$x pix of every test sample imagebull test$y label of every test sample imagebull test$yy one-of-c vector of label of test sample image
plotmnist()
Распознавание рукописных цифр в deepnet
another way to download the MNIST datasetmnist downloadmnist(range=c(01)global=FALSE)look at MNIST datamnist$train$xmnist$train$ymnist$test$xmnist$test$ytrain of the sae neural networkdnnlt-saednntrain(mnist$train$xmnist$train$yhidden=c(55))test of the sae neural networknntest(dnnmnist$test$xmnist$test$yt=05)
End of slides part 2 (Part 3 - NLP remaining)
Vladimirvkrylovgmailcom
Основы предиктивной аналитики Часть вторая
Применение методов Machine Learning к решению задач аналитики
Дмитрий Ветров кандидат физико-математических наук ру
Методы обучающихся машин для аналитики которые мы рассмотрим
Сначала нужно загрузить несколько пакетов (packages) для поддер
Данные для анализа
Скрипт для генерации
Данные которые мы будем использовать для демо состоят из смес
Так выглядят визуализированные данные сгенерированные скриптом
Разделение данных на обучающие и проверочные является важным эт
K-means алгоритм на пальцах
Обучающаяся машина без учителя Алгоритм K-means
Slide 13
Slide 14
Здесь мы используем заранее известный факт что необходимо кла
Еще одна иллюстрация работы алгоритма K-means
Обучающаяся машина без учителя Алгоритм KNN (Nearest Neighbor)
Как работает алгоритм KNN
knn(train test cl k = 1 l = 0 prob = FALSE useall = TRUE
Slide 20
Результаты кластеризации и зависимость ошибки от числа кластеро
Recursive PartitioningRegression Tree
Метод RP реализует обучение машины строить дерево решений по об
Recursive PartitioningRegression Tree (2)
rpart(formula data weights subset naaction = narpart met
Slide 26
Recursive PartitioningRegression Tree example
Анализ по главным компонентам (Principal Component Analysis PC
Итеративные алгоритмы с оптимальным разреженным кодированием IS
Самоорганизация данных методами Deep Learning
Знакомство с пакетом deepnet
Прогнозирование (классификация) нейронной сетью с архитектурой
Arguments
Архитектура сети SAE
Архитектура с 5Х4 hidden 3 outs
Example
Анализ обучающего набора данных
Параметры SAE сети
Коэффициенты связей
Предсказание обученной сетью
Сравнение обучающей и тестовой выборки
plot3d(xy)
Работаем с пакетом MNIST
httpyannlecuncomexdbmnist
Подготовка к обработке
Slide 118
Визуализация
plotmnist()
Распознавание рукописных цифр в deepnet
End of slides part 2 (Part 3 - NLP remaining)
Знакомство с пакетом deepnet
Назначение
Составdbndnntrain - обучение сети с архитектурой DBN (deep belief network)loadmnist - формирование данных из файлов MNISTnnpredict - предсказание новых выборок на обученной нейронной сетиnntest ndash тестирование обученной нейронной сети с возвращением значения ошибкиnntrain ndash обучение одностлойной или многослойной нейронной сети методом backproprbmdown ndash генерирование видимого вектора для скрытых состояний сети RBMrbmtrain ndash обучение сети RBMrbmup ndash извлечение скрытых состояний RBM по известным видимым состояниямsaednntrain ndash обучение нейронной сети с архитектурой stacked autoencoder
Прогнозирование (классификация) нейронной сетью с архитектурой stacked auto encoder
Argumentsbull x matrix of x values for examplesbull y vector or matrix of target values for examplesbull hidden vector for number of units of hidden layersDefault is c(10)bull activationfun activation function of hidden unitCan be sigmlinear or tanhDefault isbull sigm for logistic functionbull learningrate learning rate for gradient descent Default is 08bull momentum momentum for gradient descent Default is 05 bull learningrate_scalebull learning rate will be mutiplied by this scale after every iteration Default is 1 bull numepochs number of iteration for samples Default is 3bull batchsize size of mini-batch Default is 100bull output function of output unit can be sigmlinear or softmax Default is sigmbull sae_output function of autoencoder output unit can be sigmlinear or softmax Defaultbull is linearbull hidden_dropout drop out fraction for hidden layer Default is 0bull visible_dropoutbull drop out fraction for input layer Default is 0
Что такое MNISTbull Смешанный набор данных Национального института стандартов и
технологий (mixed National Institute of Standards and Technology MNIST) был создан исследователями IR в качестве эталона для сравнения различных алгоритмов IR
bull Набор данных состоит всего из 70 000 изображений 60 000 обучающих (используемых для создания модели IR) и 10 000 тестовых (применяемых для оценки точности модели) Каждое изображение MNIST mdash это оцифрованная картинка одной цифры написанной от руки Каждое изображение имеет размер 28 times 28 пикселей Каждое значение пикселя лежит в диапазоне от 0 (представляет белый цвет) до 255 (представляет черный цвет) Промежуточные значения отражают оттенки серого
httpyannlecuncomexdbmnistобучающие и тестовые данные хранятся в двух файлах а не в одном Один файл содержит значения пикселей для изображений а другой mdash метки изображений (0ndash9) Каждый из четырех файлов также содержит заголовочную информацию и все они хранятся в двоичном формате сжатом в формате gziptrain-images-idx3-ubytegz training set images (9912422 bytes)
train-labels-idx1-ubytegz training set labels (28881 bytes)
t10k-images-idx3-ubytegz test set images (1648877 bytes)
t10k-labels-idx1-ubytegz test set labels (4542 bytes)
bull Каждая строка файла представляет собой имидж размера 28 times 28 вектором длины 784 каждый признак ndash значение пиксела в черно-белой шале Первый столбец содержит метку цифры 0ndash9 следующие 2828 столбцов представляют целый имидж и так далее Пример первой строки
Визуализация
bull plotmnist()bull mnistbull paramsbull train$n number of train samplesbull train$x pix of every train sample imagebull train$y label of every train sample imagebull train$yy one-of-c vector of label of train sample imagebull test$n number of test samplesbull test$x pix of every test sample imagebull test$y label of every test sample imagebull test$yy one-of-c vector of label of test sample image
plotmnist()
Распознавание рукописных цифр в deepnet
another way to download the MNIST datasetmnist downloadmnist(range=c(01)global=FALSE)look at MNIST datamnist$train$xmnist$train$ymnist$test$xmnist$test$ytrain of the sae neural networkdnnlt-saednntrain(mnist$train$xmnist$train$yhidden=c(55))test of the sae neural networknntest(dnnmnist$test$xmnist$test$yt=05)
End of slides part 2 (Part 3 - NLP remaining)
Vladimirvkrylovgmailcom
Основы предиктивной аналитики Часть вторая
Применение методов Machine Learning к решению задач аналитики
Дмитрий Ветров кандидат физико-математических наук ру
Методы обучающихся машин для аналитики которые мы рассмотрим
Сначала нужно загрузить несколько пакетов (packages) для поддер
Данные для анализа
Скрипт для генерации
Данные которые мы будем использовать для демо состоят из смес
Так выглядят визуализированные данные сгенерированные скриптом
Разделение данных на обучающие и проверочные является важным эт
K-means алгоритм на пальцах
Обучающаяся машина без учителя Алгоритм K-means
Slide 13
Slide 14
Здесь мы используем заранее известный факт что необходимо кла
Еще одна иллюстрация работы алгоритма K-means
Обучающаяся машина без учителя Алгоритм KNN (Nearest Neighbor)
Как работает алгоритм KNN
knn(train test cl k = 1 l = 0 prob = FALSE useall = TRUE
Slide 20
Результаты кластеризации и зависимость ошибки от числа кластеро
Recursive PartitioningRegression Tree
Метод RP реализует обучение машины строить дерево решений по об
Recursive PartitioningRegression Tree (2)
rpart(formula data weights subset naaction = narpart met
Slide 26
Recursive PartitioningRegression Tree example
Анализ по главным компонентам (Principal Component Analysis PC
Argumentsbull x matrix of x values for examplesbull y vector or matrix of target values for examplesbull hidden vector for number of units of hidden layersDefault is c(10)bull activationfun activation function of hidden unitCan be sigmlinear or tanhDefault isbull sigm for logistic functionbull learningrate learning rate for gradient descent Default is 08bull momentum momentum for gradient descent Default is 05 bull learningrate_scalebull learning rate will be mutiplied by this scale after every iteration Default is 1 bull numepochs number of iteration for samples Default is 3bull batchsize size of mini-batch Default is 100bull output function of output unit can be sigmlinear or softmax Default is sigmbull sae_output function of autoencoder output unit can be sigmlinear or softmax Defaultbull is linearbull hidden_dropout drop out fraction for hidden layer Default is 0bull visible_dropoutbull drop out fraction for input layer Default is 0
Что такое MNISTbull Смешанный набор данных Национального института стандартов и
технологий (mixed National Institute of Standards and Technology MNIST) был создан исследователями IR в качестве эталона для сравнения различных алгоритмов IR
bull Набор данных состоит всего из 70 000 изображений 60 000 обучающих (используемых для создания модели IR) и 10 000 тестовых (применяемых для оценки точности модели) Каждое изображение MNIST mdash это оцифрованная картинка одной цифры написанной от руки Каждое изображение имеет размер 28 times 28 пикселей Каждое значение пикселя лежит в диапазоне от 0 (представляет белый цвет) до 255 (представляет черный цвет) Промежуточные значения отражают оттенки серого
httpyannlecuncomexdbmnistобучающие и тестовые данные хранятся в двух файлах а не в одном Один файл содержит значения пикселей для изображений а другой mdash метки изображений (0ndash9) Каждый из четырех файлов также содержит заголовочную информацию и все они хранятся в двоичном формате сжатом в формате gziptrain-images-idx3-ubytegz training set images (9912422 bytes)
train-labels-idx1-ubytegz training set labels (28881 bytes)
t10k-images-idx3-ubytegz test set images (1648877 bytes)
t10k-labels-idx1-ubytegz test set labels (4542 bytes)
bull Каждая строка файла представляет собой имидж размера 28 times 28 вектором длины 784 каждый признак ndash значение пиксела в черно-белой шале Первый столбец содержит метку цифры 0ndash9 следующие 2828 столбцов представляют целый имидж и так далее Пример первой строки
Визуализация
bull plotmnist()bull mnistbull paramsbull train$n number of train samplesbull train$x pix of every train sample imagebull train$y label of every train sample imagebull train$yy one-of-c vector of label of train sample imagebull test$n number of test samplesbull test$x pix of every test sample imagebull test$y label of every test sample imagebull test$yy one-of-c vector of label of test sample image
plotmnist()
Распознавание рукописных цифр в deepnet
another way to download the MNIST datasetmnist downloadmnist(range=c(01)global=FALSE)look at MNIST datamnist$train$xmnist$train$ymnist$test$xmnist$test$ytrain of the sae neural networkdnnlt-saednntrain(mnist$train$xmnist$train$yhidden=c(55))test of the sae neural networknntest(dnnmnist$test$xmnist$test$yt=05)
End of slides part 2 (Part 3 - NLP remaining)
Vladimirvkrylovgmailcom
Основы предиктивной аналитики Часть вторая
Применение методов Machine Learning к решению задач аналитики
Дмитрий Ветров кандидат физико-математических наук ру
Методы обучающихся машин для аналитики которые мы рассмотрим
Сначала нужно загрузить несколько пакетов (packages) для поддер
Данные для анализа
Скрипт для генерации
Данные которые мы будем использовать для демо состоят из смес
Так выглядят визуализированные данные сгенерированные скриптом
Разделение данных на обучающие и проверочные является важным эт
K-means алгоритм на пальцах
Обучающаяся машина без учителя Алгоритм K-means
Slide 13
Slide 14
Здесь мы используем заранее известный факт что необходимо кла
Еще одна иллюстрация работы алгоритма K-means
Обучающаяся машина без учителя Алгоритм KNN (Nearest Neighbor)
Как работает алгоритм KNN
knn(train test cl k = 1 l = 0 prob = FALSE useall = TRUE
Slide 20
Результаты кластеризации и зависимость ошибки от числа кластеро
Recursive PartitioningRegression Tree
Метод RP реализует обучение машины строить дерево решений по об
Recursive PartitioningRegression Tree (2)
rpart(formula data weights subset naaction = narpart met
Slide 26
Recursive PartitioningRegression Tree example
Анализ по главным компонентам (Principal Component Analysis PC
Итеративные алгоритмы с оптимальным разреженным кодированием IS
Самоорганизация данных методами Deep Learning
Знакомство с пакетом deepnet
Прогнозирование (классификация) нейронной сетью с архитектурой
Arguments
Архитектура сети SAE
Архитектура с 5Х4 hidden 3 outs
Example
Анализ обучающего набора данных
Параметры SAE сети
Коэффициенты связей
Предсказание обученной сетью
Сравнение обучающей и тестовой выборки
plot3d(xy)
Работаем с пакетом MNIST
httpyannlecuncomexdbmnist
Подготовка к обработке
Slide 118
Визуализация
plotmnist()
Распознавание рукописных цифр в deepnet
End of slides part 2 (Part 3 - NLP remaining)
Argumentsbull x matrix of x values for examplesbull y vector or matrix of target values for examplesbull hidden vector for number of units of hidden layersDefault is c(10)bull activationfun activation function of hidden unitCan be sigmlinear or tanhDefault isbull sigm for logistic functionbull learningrate learning rate for gradient descent Default is 08bull momentum momentum for gradient descent Default is 05 bull learningrate_scalebull learning rate will be mutiplied by this scale after every iteration Default is 1 bull numepochs number of iteration for samples Default is 3bull batchsize size of mini-batch Default is 100bull output function of output unit can be sigmlinear or softmax Default is sigmbull sae_output function of autoencoder output unit can be sigmlinear or softmax Defaultbull is linearbull hidden_dropout drop out fraction for hidden layer Default is 0bull visible_dropoutbull drop out fraction for input layer Default is 0
Что такое MNISTbull Смешанный набор данных Национального института стандартов и
технологий (mixed National Institute of Standards and Technology MNIST) был создан исследователями IR в качестве эталона для сравнения различных алгоритмов IR
bull Набор данных состоит всего из 70 000 изображений 60 000 обучающих (используемых для создания модели IR) и 10 000 тестовых (применяемых для оценки точности модели) Каждое изображение MNIST mdash это оцифрованная картинка одной цифры написанной от руки Каждое изображение имеет размер 28 times 28 пикселей Каждое значение пикселя лежит в диапазоне от 0 (представляет белый цвет) до 255 (представляет черный цвет) Промежуточные значения отражают оттенки серого
httpyannlecuncomexdbmnistобучающие и тестовые данные хранятся в двух файлах а не в одном Один файл содержит значения пикселей для изображений а другой mdash метки изображений (0ndash9) Каждый из четырех файлов также содержит заголовочную информацию и все они хранятся в двоичном формате сжатом в формате gziptrain-images-idx3-ubytegz training set images (9912422 bytes)
train-labels-idx1-ubytegz training set labels (28881 bytes)
t10k-images-idx3-ubytegz test set images (1648877 bytes)
t10k-labels-idx1-ubytegz test set labels (4542 bytes)
bull Каждая строка файла представляет собой имидж размера 28 times 28 вектором длины 784 каждый признак ndash значение пиксела в черно-белой шале Первый столбец содержит метку цифры 0ndash9 следующие 2828 столбцов представляют целый имидж и так далее Пример первой строки
Визуализация
bull plotmnist()bull mnistbull paramsbull train$n number of train samplesbull train$x pix of every train sample imagebull train$y label of every train sample imagebull train$yy one-of-c vector of label of train sample imagebull test$n number of test samplesbull test$x pix of every test sample imagebull test$y label of every test sample imagebull test$yy one-of-c vector of label of test sample image
plotmnist()
Распознавание рукописных цифр в deepnet
another way to download the MNIST datasetmnist downloadmnist(range=c(01)global=FALSE)look at MNIST datamnist$train$xmnist$train$ymnist$test$xmnist$test$ytrain of the sae neural networkdnnlt-saednntrain(mnist$train$xmnist$train$yhidden=c(55))test of the sae neural networknntest(dnnmnist$test$xmnist$test$yt=05)
End of slides part 2 (Part 3 - NLP remaining)
Vladimirvkrylovgmailcom
Основы предиктивной аналитики Часть вторая
Применение методов Machine Learning к решению задач аналитики
Дмитрий Ветров кандидат физико-математических наук ру
Методы обучающихся машин для аналитики которые мы рассмотрим
Сначала нужно загрузить несколько пакетов (packages) для поддер
Данные для анализа
Скрипт для генерации
Данные которые мы будем использовать для демо состоят из смес
Так выглядят визуализированные данные сгенерированные скриптом
Разделение данных на обучающие и проверочные является важным эт
K-means алгоритм на пальцах
Обучающаяся машина без учителя Алгоритм K-means
Slide 13
Slide 14
Здесь мы используем заранее известный факт что необходимо кла
Еще одна иллюстрация работы алгоритма K-means
Обучающаяся машина без учителя Алгоритм KNN (Nearest Neighbor)
Как работает алгоритм KNN
knn(train test cl k = 1 l = 0 prob = FALSE useall = TRUE
Slide 20
Результаты кластеризации и зависимость ошибки от числа кластеро
Recursive PartitioningRegression Tree
Метод RP реализует обучение машины строить дерево решений по об
Recursive PartitioningRegression Tree (2)
rpart(formula data weights subset naaction = narpart met
Slide 26
Recursive PartitioningRegression Tree example
Анализ по главным компонентам (Principal Component Analysis PC
Что такое MNISTbull Смешанный набор данных Национального института стандартов и
технологий (mixed National Institute of Standards and Technology MNIST) был создан исследователями IR в качестве эталона для сравнения различных алгоритмов IR
bull Набор данных состоит всего из 70 000 изображений 60 000 обучающих (используемых для создания модели IR) и 10 000 тестовых (применяемых для оценки точности модели) Каждое изображение MNIST mdash это оцифрованная картинка одной цифры написанной от руки Каждое изображение имеет размер 28 times 28 пикселей Каждое значение пикселя лежит в диапазоне от 0 (представляет белый цвет) до 255 (представляет черный цвет) Промежуточные значения отражают оттенки серого
httpyannlecuncomexdbmnistобучающие и тестовые данные хранятся в двух файлах а не в одном Один файл содержит значения пикселей для изображений а другой mdash метки изображений (0ndash9) Каждый из четырех файлов также содержит заголовочную информацию и все они хранятся в двоичном формате сжатом в формате gziptrain-images-idx3-ubytegz training set images (9912422 bytes)
train-labels-idx1-ubytegz training set labels (28881 bytes)
t10k-images-idx3-ubytegz test set images (1648877 bytes)
t10k-labels-idx1-ubytegz test set labels (4542 bytes)
bull Каждая строка файла представляет собой имидж размера 28 times 28 вектором длины 784 каждый признак ndash значение пиксела в черно-белой шале Первый столбец содержит метку цифры 0ndash9 следующие 2828 столбцов представляют целый имидж и так далее Пример первой строки
Визуализация
bull plotmnist()bull mnistbull paramsbull train$n number of train samplesbull train$x pix of every train sample imagebull train$y label of every train sample imagebull train$yy one-of-c vector of label of train sample imagebull test$n number of test samplesbull test$x pix of every test sample imagebull test$y label of every test sample imagebull test$yy one-of-c vector of label of test sample image
plotmnist()
Распознавание рукописных цифр в deepnet
another way to download the MNIST datasetmnist downloadmnist(range=c(01)global=FALSE)look at MNIST datamnist$train$xmnist$train$ymnist$test$xmnist$test$ytrain of the sae neural networkdnnlt-saednntrain(mnist$train$xmnist$train$yhidden=c(55))test of the sae neural networknntest(dnnmnist$test$xmnist$test$yt=05)
End of slides part 2 (Part 3 - NLP remaining)
Vladimirvkrylovgmailcom
Основы предиктивной аналитики Часть вторая
Применение методов Machine Learning к решению задач аналитики
Дмитрий Ветров кандидат физико-математических наук ру
Методы обучающихся машин для аналитики которые мы рассмотрим
Сначала нужно загрузить несколько пакетов (packages) для поддер
Данные для анализа
Скрипт для генерации
Данные которые мы будем использовать для демо состоят из смес
Так выглядят визуализированные данные сгенерированные скриптом
Разделение данных на обучающие и проверочные является важным эт
K-means алгоритм на пальцах
Обучающаяся машина без учителя Алгоритм K-means
Slide 13
Slide 14
Здесь мы используем заранее известный факт что необходимо кла
Еще одна иллюстрация работы алгоритма K-means
Обучающаяся машина без учителя Алгоритм KNN (Nearest Neighbor)
Как работает алгоритм KNN
knn(train test cl k = 1 l = 0 prob = FALSE useall = TRUE
Slide 20
Результаты кластеризации и зависимость ошибки от числа кластеро
Recursive PartitioningRegression Tree
Метод RP реализует обучение машины строить дерево решений по об
Recursive PartitioningRegression Tree (2)
rpart(formula data weights subset naaction = narpart met
Slide 26
Recursive PartitioningRegression Tree example
Анализ по главным компонентам (Principal Component Analysis PC
Что такое MNISTbull Смешанный набор данных Национального института стандартов и
технологий (mixed National Institute of Standards and Technology MNIST) был создан исследователями IR в качестве эталона для сравнения различных алгоритмов IR
bull Набор данных состоит всего из 70 000 изображений 60 000 обучающих (используемых для создания модели IR) и 10 000 тестовых (применяемых для оценки точности модели) Каждое изображение MNIST mdash это оцифрованная картинка одной цифры написанной от руки Каждое изображение имеет размер 28 times 28 пикселей Каждое значение пикселя лежит в диапазоне от 0 (представляет белый цвет) до 255 (представляет черный цвет) Промежуточные значения отражают оттенки серого
httpyannlecuncomexdbmnistобучающие и тестовые данные хранятся в двух файлах а не в одном Один файл содержит значения пикселей для изображений а другой mdash метки изображений (0ndash9) Каждый из четырех файлов также содержит заголовочную информацию и все они хранятся в двоичном формате сжатом в формате gziptrain-images-idx3-ubytegz training set images (9912422 bytes)
train-labels-idx1-ubytegz training set labels (28881 bytes)
t10k-images-idx3-ubytegz test set images (1648877 bytes)
t10k-labels-idx1-ubytegz test set labels (4542 bytes)
bull Каждая строка файла представляет собой имидж размера 28 times 28 вектором длины 784 каждый признак ndash значение пиксела в черно-белой шале Первый столбец содержит метку цифры 0ndash9 следующие 2828 столбцов представляют целый имидж и так далее Пример первой строки
Визуализация
bull plotmnist()bull mnistbull paramsbull train$n number of train samplesbull train$x pix of every train sample imagebull train$y label of every train sample imagebull train$yy one-of-c vector of label of train sample imagebull test$n number of test samplesbull test$x pix of every test sample imagebull test$y label of every test sample imagebull test$yy one-of-c vector of label of test sample image
plotmnist()
Распознавание рукописных цифр в deepnet
another way to download the MNIST datasetmnist downloadmnist(range=c(01)global=FALSE)look at MNIST datamnist$train$xmnist$train$ymnist$test$xmnist$test$ytrain of the sae neural networkdnnlt-saednntrain(mnist$train$xmnist$train$yhidden=c(55))test of the sae neural networknntest(dnnmnist$test$xmnist$test$yt=05)
End of slides part 2 (Part 3 - NLP remaining)
Vladimirvkrylovgmailcom
Основы предиктивной аналитики Часть вторая
Применение методов Machine Learning к решению задач аналитики
Дмитрий Ветров кандидат физико-математических наук ру
Методы обучающихся машин для аналитики которые мы рассмотрим
Сначала нужно загрузить несколько пакетов (packages) для поддер
Данные для анализа
Скрипт для генерации
Данные которые мы будем использовать для демо состоят из смес
Так выглядят визуализированные данные сгенерированные скриптом
Разделение данных на обучающие и проверочные является важным эт
K-means алгоритм на пальцах
Обучающаяся машина без учителя Алгоритм K-means
Slide 13
Slide 14
Здесь мы используем заранее известный факт что необходимо кла
Еще одна иллюстрация работы алгоритма K-means
Обучающаяся машина без учителя Алгоритм KNN (Nearest Neighbor)
Как работает алгоритм KNN
knn(train test cl k = 1 l = 0 prob = FALSE useall = TRUE
Slide 20
Результаты кластеризации и зависимость ошибки от числа кластеро
Recursive PartitioningRegression Tree
Метод RP реализует обучение машины строить дерево решений по об
Recursive PartitioningRegression Tree (2)
rpart(formula data weights subset naaction = narpart met
Slide 26
Recursive PartitioningRegression Tree example
Анализ по главным компонентам (Principal Component Analysis PC
Что такое MNISTbull Смешанный набор данных Национального института стандартов и
технологий (mixed National Institute of Standards and Technology MNIST) был создан исследователями IR в качестве эталона для сравнения различных алгоритмов IR
bull Набор данных состоит всего из 70 000 изображений 60 000 обучающих (используемых для создания модели IR) и 10 000 тестовых (применяемых для оценки точности модели) Каждое изображение MNIST mdash это оцифрованная картинка одной цифры написанной от руки Каждое изображение имеет размер 28 times 28 пикселей Каждое значение пикселя лежит в диапазоне от 0 (представляет белый цвет) до 255 (представляет черный цвет) Промежуточные значения отражают оттенки серого
httpyannlecuncomexdbmnistобучающие и тестовые данные хранятся в двух файлах а не в одном Один файл содержит значения пикселей для изображений а другой mdash метки изображений (0ndash9) Каждый из четырех файлов также содержит заголовочную информацию и все они хранятся в двоичном формате сжатом в формате gziptrain-images-idx3-ubytegz training set images (9912422 bytes)
train-labels-idx1-ubytegz training set labels (28881 bytes)
t10k-images-idx3-ubytegz test set images (1648877 bytes)
t10k-labels-idx1-ubytegz test set labels (4542 bytes)
bull Каждая строка файла представляет собой имидж размера 28 times 28 вектором длины 784 каждый признак ndash значение пиксела в черно-белой шале Первый столбец содержит метку цифры 0ndash9 следующие 2828 столбцов представляют целый имидж и так далее Пример первой строки
Визуализация
bull plotmnist()bull mnistbull paramsbull train$n number of train samplesbull train$x pix of every train sample imagebull train$y label of every train sample imagebull train$yy one-of-c vector of label of train sample imagebull test$n number of test samplesbull test$x pix of every test sample imagebull test$y label of every test sample imagebull test$yy one-of-c vector of label of test sample image
plotmnist()
Распознавание рукописных цифр в deepnet
another way to download the MNIST datasetmnist downloadmnist(range=c(01)global=FALSE)look at MNIST datamnist$train$xmnist$train$ymnist$test$xmnist$test$ytrain of the sae neural networkdnnlt-saednntrain(mnist$train$xmnist$train$yhidden=c(55))test of the sae neural networknntest(dnnmnist$test$xmnist$test$yt=05)
End of slides part 2 (Part 3 - NLP remaining)
Vladimirvkrylovgmailcom
Основы предиктивной аналитики Часть вторая
Применение методов Machine Learning к решению задач аналитики
Дмитрий Ветров кандидат физико-математических наук ру
Методы обучающихся машин для аналитики которые мы рассмотрим
Сначала нужно загрузить несколько пакетов (packages) для поддер
Данные для анализа
Скрипт для генерации
Данные которые мы будем использовать для демо состоят из смес
Так выглядят визуализированные данные сгенерированные скриптом
Разделение данных на обучающие и проверочные является важным эт
K-means алгоритм на пальцах
Обучающаяся машина без учителя Алгоритм K-means
Slide 13
Slide 14
Здесь мы используем заранее известный факт что необходимо кла
Еще одна иллюстрация работы алгоритма K-means
Обучающаяся машина без учителя Алгоритм KNN (Nearest Neighbor)
Как работает алгоритм KNN
knn(train test cl k = 1 l = 0 prob = FALSE useall = TRUE
Slide 20
Результаты кластеризации и зависимость ошибки от числа кластеро
Recursive PartitioningRegression Tree
Метод RP реализует обучение машины строить дерево решений по об
Recursive PartitioningRegression Tree (2)
rpart(formula data weights subset naaction = narpart met
Slide 26
Recursive PartitioningRegression Tree example
Анализ по главным компонентам (Principal Component Analysis PC
Что такое MNISTbull Смешанный набор данных Национального института стандартов и
технологий (mixed National Institute of Standards and Technology MNIST) был создан исследователями IR в качестве эталона для сравнения различных алгоритмов IR
bull Набор данных состоит всего из 70 000 изображений 60 000 обучающих (используемых для создания модели IR) и 10 000 тестовых (применяемых для оценки точности модели) Каждое изображение MNIST mdash это оцифрованная картинка одной цифры написанной от руки Каждое изображение имеет размер 28 times 28 пикселей Каждое значение пикселя лежит в диапазоне от 0 (представляет белый цвет) до 255 (представляет черный цвет) Промежуточные значения отражают оттенки серого
httpyannlecuncomexdbmnistобучающие и тестовые данные хранятся в двух файлах а не в одном Один файл содержит значения пикселей для изображений а другой mdash метки изображений (0ndash9) Каждый из четырех файлов также содержит заголовочную информацию и все они хранятся в двоичном формате сжатом в формате gziptrain-images-idx3-ubytegz training set images (9912422 bytes)
train-labels-idx1-ubytegz training set labels (28881 bytes)
t10k-images-idx3-ubytegz test set images (1648877 bytes)
t10k-labels-idx1-ubytegz test set labels (4542 bytes)
bull Каждая строка файла представляет собой имидж размера 28 times 28 вектором длины 784 каждый признак ndash значение пиксела в черно-белой шале Первый столбец содержит метку цифры 0ndash9 следующие 2828 столбцов представляют целый имидж и так далее Пример первой строки
Визуализация
bull plotmnist()bull mnistbull paramsbull train$n number of train samplesbull train$x pix of every train sample imagebull train$y label of every train sample imagebull train$yy one-of-c vector of label of train sample imagebull test$n number of test samplesbull test$x pix of every test sample imagebull test$y label of every test sample imagebull test$yy one-of-c vector of label of test sample image
plotmnist()
Распознавание рукописных цифр в deepnet
another way to download the MNIST datasetmnist downloadmnist(range=c(01)global=FALSE)look at MNIST datamnist$train$xmnist$train$ymnist$test$xmnist$test$ytrain of the sae neural networkdnnlt-saednntrain(mnist$train$xmnist$train$yhidden=c(55))test of the sae neural networknntest(dnnmnist$test$xmnist$test$yt=05)
End of slides part 2 (Part 3 - NLP remaining)
Vladimirvkrylovgmailcom
Основы предиктивной аналитики Часть вторая
Применение методов Machine Learning к решению задач аналитики
Дмитрий Ветров кандидат физико-математических наук ру
Методы обучающихся машин для аналитики которые мы рассмотрим
Сначала нужно загрузить несколько пакетов (packages) для поддер
Данные для анализа
Скрипт для генерации
Данные которые мы будем использовать для демо состоят из смес
Так выглядят визуализированные данные сгенерированные скриптом
Разделение данных на обучающие и проверочные является важным эт
K-means алгоритм на пальцах
Обучающаяся машина без учителя Алгоритм K-means
Slide 13
Slide 14
Здесь мы используем заранее известный факт что необходимо кла
Еще одна иллюстрация работы алгоритма K-means
Обучающаяся машина без учителя Алгоритм KNN (Nearest Neighbor)
Как работает алгоритм KNN
knn(train test cl k = 1 l = 0 prob = FALSE useall = TRUE
Slide 20
Результаты кластеризации и зависимость ошибки от числа кластеро
Recursive PartitioningRegression Tree
Метод RP реализует обучение машины строить дерево решений по об
Recursive PartitioningRegression Tree (2)
rpart(formula data weights subset naaction = narpart met
Slide 26
Recursive PartitioningRegression Tree example
Анализ по главным компонентам (Principal Component Analysis PC
Что такое MNISTbull Смешанный набор данных Национального института стандартов и
технологий (mixed National Institute of Standards and Technology MNIST) был создан исследователями IR в качестве эталона для сравнения различных алгоритмов IR
bull Набор данных состоит всего из 70 000 изображений 60 000 обучающих (используемых для создания модели IR) и 10 000 тестовых (применяемых для оценки точности модели) Каждое изображение MNIST mdash это оцифрованная картинка одной цифры написанной от руки Каждое изображение имеет размер 28 times 28 пикселей Каждое значение пикселя лежит в диапазоне от 0 (представляет белый цвет) до 255 (представляет черный цвет) Промежуточные значения отражают оттенки серого
httpyannlecuncomexdbmnistобучающие и тестовые данные хранятся в двух файлах а не в одном Один файл содержит значения пикселей для изображений а другой mdash метки изображений (0ndash9) Каждый из четырех файлов также содержит заголовочную информацию и все они хранятся в двоичном формате сжатом в формате gziptrain-images-idx3-ubytegz training set images (9912422 bytes)
train-labels-idx1-ubytegz training set labels (28881 bytes)
t10k-images-idx3-ubytegz test set images (1648877 bytes)
t10k-labels-idx1-ubytegz test set labels (4542 bytes)
bull Каждая строка файла представляет собой имидж размера 28 times 28 вектором длины 784 каждый признак ndash значение пиксела в черно-белой шале Первый столбец содержит метку цифры 0ndash9 следующие 2828 столбцов представляют целый имидж и так далее Пример первой строки
Визуализация
bull plotmnist()bull mnistbull paramsbull train$n number of train samplesbull train$x pix of every train sample imagebull train$y label of every train sample imagebull train$yy one-of-c vector of label of train sample imagebull test$n number of test samplesbull test$x pix of every test sample imagebull test$y label of every test sample imagebull test$yy one-of-c vector of label of test sample image
plotmnist()
Распознавание рукописных цифр в deepnet
another way to download the MNIST datasetmnist downloadmnist(range=c(01)global=FALSE)look at MNIST datamnist$train$xmnist$train$ymnist$test$xmnist$test$ytrain of the sae neural networkdnnlt-saednntrain(mnist$train$xmnist$train$yhidden=c(55))test of the sae neural networknntest(dnnmnist$test$xmnist$test$yt=05)
End of slides part 2 (Part 3 - NLP remaining)
Vladimirvkrylovgmailcom
Основы предиктивной аналитики Часть вторая
Применение методов Machine Learning к решению задач аналитики
Дмитрий Ветров кандидат физико-математических наук ру
Методы обучающихся машин для аналитики которые мы рассмотрим
Сначала нужно загрузить несколько пакетов (packages) для поддер
Данные для анализа
Скрипт для генерации
Данные которые мы будем использовать для демо состоят из смес
Так выглядят визуализированные данные сгенерированные скриптом
Разделение данных на обучающие и проверочные является важным эт
K-means алгоритм на пальцах
Обучающаяся машина без учителя Алгоритм K-means
Slide 13
Slide 14
Здесь мы используем заранее известный факт что необходимо кла
Еще одна иллюстрация работы алгоритма K-means
Обучающаяся машина без учителя Алгоритм KNN (Nearest Neighbor)
Как работает алгоритм KNN
knn(train test cl k = 1 l = 0 prob = FALSE useall = TRUE
Slide 20
Результаты кластеризации и зависимость ошибки от числа кластеро
Recursive PartitioningRegression Tree
Метод RP реализует обучение машины строить дерево решений по об
Recursive PartitioningRegression Tree (2)
rpart(formula data weights subset naaction = narpart met
Slide 26
Recursive PartitioningRegression Tree example
Анализ по главным компонентам (Principal Component Analysis PC
Что такое MNISTbull Смешанный набор данных Национального института стандартов и
технологий (mixed National Institute of Standards and Technology MNIST) был создан исследователями IR в качестве эталона для сравнения различных алгоритмов IR
bull Набор данных состоит всего из 70 000 изображений 60 000 обучающих (используемых для создания модели IR) и 10 000 тестовых (применяемых для оценки точности модели) Каждое изображение MNIST mdash это оцифрованная картинка одной цифры написанной от руки Каждое изображение имеет размер 28 times 28 пикселей Каждое значение пикселя лежит в диапазоне от 0 (представляет белый цвет) до 255 (представляет черный цвет) Промежуточные значения отражают оттенки серого
httpyannlecuncomexdbmnistобучающие и тестовые данные хранятся в двух файлах а не в одном Один файл содержит значения пикселей для изображений а другой mdash метки изображений (0ndash9) Каждый из четырех файлов также содержит заголовочную информацию и все они хранятся в двоичном формате сжатом в формате gziptrain-images-idx3-ubytegz training set images (9912422 bytes)
train-labels-idx1-ubytegz training set labels (28881 bytes)
t10k-images-idx3-ubytegz test set images (1648877 bytes)
t10k-labels-idx1-ubytegz test set labels (4542 bytes)
bull Каждая строка файла представляет собой имидж размера 28 times 28 вектором длины 784 каждый признак ndash значение пиксела в черно-белой шале Первый столбец содержит метку цифры 0ndash9 следующие 2828 столбцов представляют целый имидж и так далее Пример первой строки
Визуализация
bull plotmnist()bull mnistbull paramsbull train$n number of train samplesbull train$x pix of every train sample imagebull train$y label of every train sample imagebull train$yy one-of-c vector of label of train sample imagebull test$n number of test samplesbull test$x pix of every test sample imagebull test$y label of every test sample imagebull test$yy one-of-c vector of label of test sample image
plotmnist()
Распознавание рукописных цифр в deepnet
another way to download the MNIST datasetmnist downloadmnist(range=c(01)global=FALSE)look at MNIST datamnist$train$xmnist$train$ymnist$test$xmnist$test$ytrain of the sae neural networkdnnlt-saednntrain(mnist$train$xmnist$train$yhidden=c(55))test of the sae neural networknntest(dnnmnist$test$xmnist$test$yt=05)
End of slides part 2 (Part 3 - NLP remaining)
Vladimirvkrylovgmailcom
Основы предиктивной аналитики Часть вторая
Применение методов Machine Learning к решению задач аналитики
Дмитрий Ветров кандидат физико-математических наук ру
Методы обучающихся машин для аналитики которые мы рассмотрим
Сначала нужно загрузить несколько пакетов (packages) для поддер
Данные для анализа
Скрипт для генерации
Данные которые мы будем использовать для демо состоят из смес
Так выглядят визуализированные данные сгенерированные скриптом
Разделение данных на обучающие и проверочные является важным эт
K-means алгоритм на пальцах
Обучающаяся машина без учителя Алгоритм K-means
Slide 13
Slide 14
Здесь мы используем заранее известный факт что необходимо кла
Еще одна иллюстрация работы алгоритма K-means
Обучающаяся машина без учителя Алгоритм KNN (Nearest Neighbor)
Как работает алгоритм KNN
knn(train test cl k = 1 l = 0 prob = FALSE useall = TRUE
Slide 20
Результаты кластеризации и зависимость ошибки от числа кластеро
Recursive PartitioningRegression Tree
Метод RP реализует обучение машины строить дерево решений по об
Recursive PartitioningRegression Tree (2)
rpart(formula data weights subset naaction = narpart met
Slide 26
Recursive PartitioningRegression Tree example
Анализ по главным компонентам (Principal Component Analysis PC
Что такое MNISTbull Смешанный набор данных Национального института стандартов и
технологий (mixed National Institute of Standards and Technology MNIST) был создан исследователями IR в качестве эталона для сравнения различных алгоритмов IR
bull Набор данных состоит всего из 70 000 изображений 60 000 обучающих (используемых для создания модели IR) и 10 000 тестовых (применяемых для оценки точности модели) Каждое изображение MNIST mdash это оцифрованная картинка одной цифры написанной от руки Каждое изображение имеет размер 28 times 28 пикселей Каждое значение пикселя лежит в диапазоне от 0 (представляет белый цвет) до 255 (представляет черный цвет) Промежуточные значения отражают оттенки серого
httpyannlecuncomexdbmnistобучающие и тестовые данные хранятся в двух файлах а не в одном Один файл содержит значения пикселей для изображений а другой mdash метки изображений (0ndash9) Каждый из четырех файлов также содержит заголовочную информацию и все они хранятся в двоичном формате сжатом в формате gziptrain-images-idx3-ubytegz training set images (9912422 bytes)
train-labels-idx1-ubytegz training set labels (28881 bytes)
t10k-images-idx3-ubytegz test set images (1648877 bytes)
t10k-labels-idx1-ubytegz test set labels (4542 bytes)
bull Каждая строка файла представляет собой имидж размера 28 times 28 вектором длины 784 каждый признак ndash значение пиксела в черно-белой шале Первый столбец содержит метку цифры 0ndash9 следующие 2828 столбцов представляют целый имидж и так далее Пример первой строки
Визуализация
bull plotmnist()bull mnistbull paramsbull train$n number of train samplesbull train$x pix of every train sample imagebull train$y label of every train sample imagebull train$yy one-of-c vector of label of train sample imagebull test$n number of test samplesbull test$x pix of every test sample imagebull test$y label of every test sample imagebull test$yy one-of-c vector of label of test sample image
plotmnist()
Распознавание рукописных цифр в deepnet
another way to download the MNIST datasetmnist downloadmnist(range=c(01)global=FALSE)look at MNIST datamnist$train$xmnist$train$ymnist$test$xmnist$test$ytrain of the sae neural networkdnnlt-saednntrain(mnist$train$xmnist$train$yhidden=c(55))test of the sae neural networknntest(dnnmnist$test$xmnist$test$yt=05)
End of slides part 2 (Part 3 - NLP remaining)
Vladimirvkrylovgmailcom
Основы предиктивной аналитики Часть вторая
Применение методов Machine Learning к решению задач аналитики
Дмитрий Ветров кандидат физико-математических наук ру
Методы обучающихся машин для аналитики которые мы рассмотрим
Сначала нужно загрузить несколько пакетов (packages) для поддер
Данные для анализа
Скрипт для генерации
Данные которые мы будем использовать для демо состоят из смес
Так выглядят визуализированные данные сгенерированные скриптом
Разделение данных на обучающие и проверочные является важным эт
K-means алгоритм на пальцах
Обучающаяся машина без учителя Алгоритм K-means
Slide 13
Slide 14
Здесь мы используем заранее известный факт что необходимо кла
Еще одна иллюстрация работы алгоритма K-means
Обучающаяся машина без учителя Алгоритм KNN (Nearest Neighbor)
Как работает алгоритм KNN
knn(train test cl k = 1 l = 0 prob = FALSE useall = TRUE
Slide 20
Результаты кластеризации и зависимость ошибки от числа кластеро
Recursive PartitioningRegression Tree
Метод RP реализует обучение машины строить дерево решений по об
Recursive PartitioningRegression Tree (2)
rpart(formula data weights subset naaction = narpart met
Slide 26
Recursive PartitioningRegression Tree example
Анализ по главным компонентам (Principal Component Analysis PC
Что такое MNISTbull Смешанный набор данных Национального института стандартов и
технологий (mixed National Institute of Standards and Technology MNIST) был создан исследователями IR в качестве эталона для сравнения различных алгоритмов IR
bull Набор данных состоит всего из 70 000 изображений 60 000 обучающих (используемых для создания модели IR) и 10 000 тестовых (применяемых для оценки точности модели) Каждое изображение MNIST mdash это оцифрованная картинка одной цифры написанной от руки Каждое изображение имеет размер 28 times 28 пикселей Каждое значение пикселя лежит в диапазоне от 0 (представляет белый цвет) до 255 (представляет черный цвет) Промежуточные значения отражают оттенки серого
httpyannlecuncomexdbmnistобучающие и тестовые данные хранятся в двух файлах а не в одном Один файл содержит значения пикселей для изображений а другой mdash метки изображений (0ndash9) Каждый из четырех файлов также содержит заголовочную информацию и все они хранятся в двоичном формате сжатом в формате gziptrain-images-idx3-ubytegz training set images (9912422 bytes)
train-labels-idx1-ubytegz training set labels (28881 bytes)
t10k-images-idx3-ubytegz test set images (1648877 bytes)
t10k-labels-idx1-ubytegz test set labels (4542 bytes)
bull Каждая строка файла представляет собой имидж размера 28 times 28 вектором длины 784 каждый признак ndash значение пиксела в черно-белой шале Первый столбец содержит метку цифры 0ndash9 следующие 2828 столбцов представляют целый имидж и так далее Пример первой строки
Визуализация
bull plotmnist()bull mnistbull paramsbull train$n number of train samplesbull train$x pix of every train sample imagebull train$y label of every train sample imagebull train$yy one-of-c vector of label of train sample imagebull test$n number of test samplesbull test$x pix of every test sample imagebull test$y label of every test sample imagebull test$yy one-of-c vector of label of test sample image
plotmnist()
Распознавание рукописных цифр в deepnet
another way to download the MNIST datasetmnist downloadmnist(range=c(01)global=FALSE)look at MNIST datamnist$train$xmnist$train$ymnist$test$xmnist$test$ytrain of the sae neural networkdnnlt-saednntrain(mnist$train$xmnist$train$yhidden=c(55))test of the sae neural networknntest(dnnmnist$test$xmnist$test$yt=05)
End of slides part 2 (Part 3 - NLP remaining)
Vladimirvkrylovgmailcom
Основы предиктивной аналитики Часть вторая
Применение методов Machine Learning к решению задач аналитики
Дмитрий Ветров кандидат физико-математических наук ру
Методы обучающихся машин для аналитики которые мы рассмотрим
Сначала нужно загрузить несколько пакетов (packages) для поддер
Данные для анализа
Скрипт для генерации
Данные которые мы будем использовать для демо состоят из смес
Так выглядят визуализированные данные сгенерированные скриптом
Разделение данных на обучающие и проверочные является важным эт
K-means алгоритм на пальцах
Обучающаяся машина без учителя Алгоритм K-means
Slide 13
Slide 14
Здесь мы используем заранее известный факт что необходимо кла
Еще одна иллюстрация работы алгоритма K-means
Обучающаяся машина без учителя Алгоритм KNN (Nearest Neighbor)
Как работает алгоритм KNN
knn(train test cl k = 1 l = 0 prob = FALSE useall = TRUE
Slide 20
Результаты кластеризации и зависимость ошибки от числа кластеро
Recursive PartitioningRegression Tree
Метод RP реализует обучение машины строить дерево решений по об
Recursive PartitioningRegression Tree (2)
rpart(formula data weights subset naaction = narpart met
Slide 26
Recursive PartitioningRegression Tree example
Анализ по главным компонентам (Principal Component Analysis PC
Итеративные алгоритмы с оптимальным разреженным кодированием IS
Самоорганизация данных методами Deep Learning
Знакомство с пакетом deepnet
Прогнозирование (классификация) нейронной сетью с архитектурой
Arguments
Архитектура сети SAE
Архитектура с 5Х4 hidden 3 outs
Example
Анализ обучающего набора данных
Параметры SAE сети
Коэффициенты связей
Предсказание обученной сетью
Сравнение обучающей и тестовой выборки
plot3d(xy)
Работаем с пакетом MNIST
httpyannlecuncomexdbmnist
Подготовка к обработке
Slide 118
Визуализация
plotmnist()
Распознавание рукописных цифр в deepnet
End of slides part 2 (Part 3 - NLP remaining)
plot3d(xy)
Работаем с пакетом MNIST
Что такое MNISTbull Смешанный набор данных Национального института стандартов и
технологий (mixed National Institute of Standards and Technology MNIST) был создан исследователями IR в качестве эталона для сравнения различных алгоритмов IR
bull Набор данных состоит всего из 70 000 изображений 60 000 обучающих (используемых для создания модели IR) и 10 000 тестовых (применяемых для оценки точности модели) Каждое изображение MNIST mdash это оцифрованная картинка одной цифры написанной от руки Каждое изображение имеет размер 28 times 28 пикселей Каждое значение пикселя лежит в диапазоне от 0 (представляет белый цвет) до 255 (представляет черный цвет) Промежуточные значения отражают оттенки серого
httpyannlecuncomexdbmnistобучающие и тестовые данные хранятся в двух файлах а не в одном Один файл содержит значения пикселей для изображений а другой mdash метки изображений (0ndash9) Каждый из четырех файлов также содержит заголовочную информацию и все они хранятся в двоичном формате сжатом в формате gziptrain-images-idx3-ubytegz training set images (9912422 bytes)
train-labels-idx1-ubytegz training set labels (28881 bytes)
t10k-images-idx3-ubytegz test set images (1648877 bytes)
t10k-labels-idx1-ubytegz test set labels (4542 bytes)
bull Каждая строка файла представляет собой имидж размера 28 times 28 вектором длины 784 каждый признак ndash значение пиксела в черно-белой шале Первый столбец содержит метку цифры 0ndash9 следующие 2828 столбцов представляют целый имидж и так далее Пример первой строки
Визуализация
bull plotmnist()bull mnistbull paramsbull train$n number of train samplesbull train$x pix of every train sample imagebull train$y label of every train sample imagebull train$yy one-of-c vector of label of train sample imagebull test$n number of test samplesbull test$x pix of every test sample imagebull test$y label of every test sample imagebull test$yy one-of-c vector of label of test sample image
plotmnist()
Распознавание рукописных цифр в deepnet
another way to download the MNIST datasetmnist downloadmnist(range=c(01)global=FALSE)look at MNIST datamnist$train$xmnist$train$ymnist$test$xmnist$test$ytrain of the sae neural networkdnnlt-saednntrain(mnist$train$xmnist$train$yhidden=c(55))test of the sae neural networknntest(dnnmnist$test$xmnist$test$yt=05)
End of slides part 2 (Part 3 - NLP remaining)
Vladimirvkrylovgmailcom
Основы предиктивной аналитики Часть вторая
Применение методов Machine Learning к решению задач аналитики
Дмитрий Ветров кандидат физико-математических наук ру
Методы обучающихся машин для аналитики которые мы рассмотрим
Сначала нужно загрузить несколько пакетов (packages) для поддер
Данные для анализа
Скрипт для генерации
Данные которые мы будем использовать для демо состоят из смес
Так выглядят визуализированные данные сгенерированные скриптом
Разделение данных на обучающие и проверочные является важным эт
K-means алгоритм на пальцах
Обучающаяся машина без учителя Алгоритм K-means
Slide 13
Slide 14
Здесь мы используем заранее известный факт что необходимо кла
Еще одна иллюстрация работы алгоритма K-means
Обучающаяся машина без учителя Алгоритм KNN (Nearest Neighbor)
Как работает алгоритм KNN
knn(train test cl k = 1 l = 0 prob = FALSE useall = TRUE
Slide 20
Результаты кластеризации и зависимость ошибки от числа кластеро
Recursive PartitioningRegression Tree
Метод RP реализует обучение машины строить дерево решений по об
Recursive PartitioningRegression Tree (2)
rpart(formula data weights subset naaction = narpart met
Slide 26
Recursive PartitioningRegression Tree example
Анализ по главным компонентам (Principal Component Analysis PC
Итеративные алгоритмы с оптимальным разреженным кодированием IS
Самоорганизация данных методами Deep Learning
Знакомство с пакетом deepnet
Прогнозирование (классификация) нейронной сетью с архитектурой
Arguments
Архитектура сети SAE
Архитектура с 5Х4 hidden 3 outs
Example
Анализ обучающего набора данных
Параметры SAE сети
Коэффициенты связей
Предсказание обученной сетью
Сравнение обучающей и тестовой выборки
plot3d(xy)
Работаем с пакетом MNIST
httpyannlecuncomexdbmnist
Подготовка к обработке
Slide 118
Визуализация
plotmnist()
Распознавание рукописных цифр в deepnet
End of slides part 2 (Part 3 - NLP remaining)
Работаем с пакетом MNIST
Что такое MNISTbull Смешанный набор данных Национального института стандартов и
технологий (mixed National Institute of Standards and Technology MNIST) был создан исследователями IR в качестве эталона для сравнения различных алгоритмов IR
bull Набор данных состоит всего из 70 000 изображений 60 000 обучающих (используемых для создания модели IR) и 10 000 тестовых (применяемых для оценки точности модели) Каждое изображение MNIST mdash это оцифрованная картинка одной цифры написанной от руки Каждое изображение имеет размер 28 times 28 пикселей Каждое значение пикселя лежит в диапазоне от 0 (представляет белый цвет) до 255 (представляет черный цвет) Промежуточные значения отражают оттенки серого
httpyannlecuncomexdbmnistобучающие и тестовые данные хранятся в двух файлах а не в одном Один файл содержит значения пикселей для изображений а другой mdash метки изображений (0ndash9) Каждый из четырех файлов также содержит заголовочную информацию и все они хранятся в двоичном формате сжатом в формате gziptrain-images-idx3-ubytegz training set images (9912422 bytes)
train-labels-idx1-ubytegz training set labels (28881 bytes)
t10k-images-idx3-ubytegz test set images (1648877 bytes)
t10k-labels-idx1-ubytegz test set labels (4542 bytes)
bull Каждая строка файла представляет собой имидж размера 28 times 28 вектором длины 784 каждый признак ndash значение пиксела в черно-белой шале Первый столбец содержит метку цифры 0ndash9 следующие 2828 столбцов представляют целый имидж и так далее Пример первой строки
Визуализация
bull plotmnist()bull mnistbull paramsbull train$n number of train samplesbull train$x pix of every train sample imagebull train$y label of every train sample imagebull train$yy one-of-c vector of label of train sample imagebull test$n number of test samplesbull test$x pix of every test sample imagebull test$y label of every test sample imagebull test$yy one-of-c vector of label of test sample image
plotmnist()
Распознавание рукописных цифр в deepnet
another way to download the MNIST datasetmnist downloadmnist(range=c(01)global=FALSE)look at MNIST datamnist$train$xmnist$train$ymnist$test$xmnist$test$ytrain of the sae neural networkdnnlt-saednntrain(mnist$train$xmnist$train$yhidden=c(55))test of the sae neural networknntest(dnnmnist$test$xmnist$test$yt=05)
End of slides part 2 (Part 3 - NLP remaining)
Vladimirvkrylovgmailcom
Основы предиктивной аналитики Часть вторая
Применение методов Machine Learning к решению задач аналитики
Дмитрий Ветров кандидат физико-математических наук ру
Методы обучающихся машин для аналитики которые мы рассмотрим
Сначала нужно загрузить несколько пакетов (packages) для поддер
Данные для анализа
Скрипт для генерации
Данные которые мы будем использовать для демо состоят из смес
Так выглядят визуализированные данные сгенерированные скриптом
Разделение данных на обучающие и проверочные является важным эт
K-means алгоритм на пальцах
Обучающаяся машина без учителя Алгоритм K-means
Slide 13
Slide 14
Здесь мы используем заранее известный факт что необходимо кла
Еще одна иллюстрация работы алгоритма K-means
Обучающаяся машина без учителя Алгоритм KNN (Nearest Neighbor)
Как работает алгоритм KNN
knn(train test cl k = 1 l = 0 prob = FALSE useall = TRUE
Slide 20
Результаты кластеризации и зависимость ошибки от числа кластеро
Recursive PartitioningRegression Tree
Метод RP реализует обучение машины строить дерево решений по об
Recursive PartitioningRegression Tree (2)
rpart(formula data weights subset naaction = narpart met
Slide 26
Recursive PartitioningRegression Tree example
Анализ по главным компонентам (Principal Component Analysis PC
Итеративные алгоритмы с оптимальным разреженным кодированием IS
Самоорганизация данных методами Deep Learning
Знакомство с пакетом deepnet
Прогнозирование (классификация) нейронной сетью с архитектурой
Arguments
Архитектура сети SAE
Архитектура с 5Х4 hidden 3 outs
Example
Анализ обучающего набора данных
Параметры SAE сети
Коэффициенты связей
Предсказание обученной сетью
Сравнение обучающей и тестовой выборки
plot3d(xy)
Работаем с пакетом MNIST
httpyannlecuncomexdbmnist
Подготовка к обработке
Slide 118
Визуализация
plotmnist()
Распознавание рукописных цифр в deepnet
End of slides part 2 (Part 3 - NLP remaining)
httpyannlecuncomexdbmnistобучающие и тестовые данные хранятся в двух файлах а не в одном Один файл содержит значения пикселей для изображений а другой mdash метки изображений (0ndash9) Каждый из четырех файлов также содержит заголовочную информацию и все они хранятся в двоичном формате сжатом в формате gziptrain-images-idx3-ubytegz training set images (9912422 bytes)
train-labels-idx1-ubytegz training set labels (28881 bytes)
t10k-images-idx3-ubytegz test set images (1648877 bytes)
t10k-labels-idx1-ubytegz test set labels (4542 bytes)
bull Каждая строка файла представляет собой имидж размера 28 times 28 вектором длины 784 каждый признак ndash значение пиксела в черно-белой шале Первый столбец содержит метку цифры 0ndash9 следующие 2828 столбцов представляют целый имидж и так далее Пример первой строки
Визуализация
bull plotmnist()bull mnistbull paramsbull train$n number of train samplesbull train$x pix of every train sample imagebull train$y label of every train sample imagebull train$yy one-of-c vector of label of train sample imagebull test$n number of test samplesbull test$x pix of every test sample imagebull test$y label of every test sample imagebull test$yy one-of-c vector of label of test sample image
plotmnist()
Распознавание рукописных цифр в deepnet
another way to download the MNIST datasetmnist downloadmnist(range=c(01)global=FALSE)look at MNIST datamnist$train$xmnist$train$ymnist$test$xmnist$test$ytrain of the sae neural networkdnnlt-saednntrain(mnist$train$xmnist$train$yhidden=c(55))test of the sae neural networknntest(dnnmnist$test$xmnist$test$yt=05)
End of slides part 2 (Part 3 - NLP remaining)
Vladimirvkrylovgmailcom
Основы предиктивной аналитики Часть вторая
Применение методов Machine Learning к решению задач аналитики
Дмитрий Ветров кандидат физико-математических наук ру
Методы обучающихся машин для аналитики которые мы рассмотрим
Сначала нужно загрузить несколько пакетов (packages) для поддер
Данные для анализа
Скрипт для генерации
Данные которые мы будем использовать для демо состоят из смес
Так выглядят визуализированные данные сгенерированные скриптом
Разделение данных на обучающие и проверочные является важным эт
K-means алгоритм на пальцах
Обучающаяся машина без учителя Алгоритм K-means
Slide 13
Slide 14
Здесь мы используем заранее известный факт что необходимо кла
Еще одна иллюстрация работы алгоритма K-means
Обучающаяся машина без учителя Алгоритм KNN (Nearest Neighbor)
Как работает алгоритм KNN
knn(train test cl k = 1 l = 0 prob = FALSE useall = TRUE
Slide 20
Результаты кластеризации и зависимость ошибки от числа кластеро
Recursive PartitioningRegression Tree
Метод RP реализует обучение машины строить дерево решений по об
Recursive PartitioningRegression Tree (2)
rpart(formula data weights subset naaction = narpart met
Slide 26
Recursive PartitioningRegression Tree example
Анализ по главным компонентам (Principal Component Analysis PC
bull Каждая строка файла представляет собой имидж размера 28 times 28 вектором длины 784 каждый признак ndash значение пиксела в черно-белой шале Первый столбец содержит метку цифры 0ndash9 следующие 2828 столбцов представляют целый имидж и так далее Пример первой строки
Визуализация
bull plotmnist()bull mnistbull paramsbull train$n number of train samplesbull train$x pix of every train sample imagebull train$y label of every train sample imagebull train$yy one-of-c vector of label of train sample imagebull test$n number of test samplesbull test$x pix of every test sample imagebull test$y label of every test sample imagebull test$yy one-of-c vector of label of test sample image
plotmnist()
Распознавание рукописных цифр в deepnet
another way to download the MNIST datasetmnist downloadmnist(range=c(01)global=FALSE)look at MNIST datamnist$train$xmnist$train$ymnist$test$xmnist$test$ytrain of the sae neural networkdnnlt-saednntrain(mnist$train$xmnist$train$yhidden=c(55))test of the sae neural networknntest(dnnmnist$test$xmnist$test$yt=05)
End of slides part 2 (Part 3 - NLP remaining)
Vladimirvkrylovgmailcom
Основы предиктивной аналитики Часть вторая
Применение методов Machine Learning к решению задач аналитики
Дмитрий Ветров кандидат физико-математических наук ру
Методы обучающихся машин для аналитики которые мы рассмотрим
Сначала нужно загрузить несколько пакетов (packages) для поддер
Данные для анализа
Скрипт для генерации
Данные которые мы будем использовать для демо состоят из смес
Так выглядят визуализированные данные сгенерированные скриптом
Разделение данных на обучающие и проверочные является важным эт
K-means алгоритм на пальцах
Обучающаяся машина без учителя Алгоритм K-means
Slide 13
Slide 14
Здесь мы используем заранее известный факт что необходимо кла
Еще одна иллюстрация работы алгоритма K-means
Обучающаяся машина без учителя Алгоритм KNN (Nearest Neighbor)
Как работает алгоритм KNN
knn(train test cl k = 1 l = 0 prob = FALSE useall = TRUE
Slide 20
Результаты кластеризации и зависимость ошибки от числа кластеро
Recursive PartitioningRegression Tree
Метод RP реализует обучение машины строить дерево решений по об
Recursive PartitioningRegression Tree (2)
rpart(formula data weights subset naaction = narpart met
Slide 26
Recursive PartitioningRegression Tree example
Анализ по главным компонентам (Principal Component Analysis PC
Итеративные алгоритмы с оптимальным разреженным кодированием IS
Самоорганизация данных методами Deep Learning
Знакомство с пакетом deepnet
Прогнозирование (классификация) нейронной сетью с архитектурой
Arguments
Архитектура сети SAE
Архитектура с 5Х4 hidden 3 outs
Example
Анализ обучающего набора данных
Параметры SAE сети
Коэффициенты связей
Предсказание обученной сетью
Сравнение обучающей и тестовой выборки
plot3d(xy)
Работаем с пакетом MNIST
httpyannlecuncomexdbmnist
Подготовка к обработке
Slide 118
Визуализация
plotmnist()
Распознавание рукописных цифр в deepnet
End of slides part 2 (Part 3 - NLP remaining)
bull Каждая строка файла представляет собой имидж размера 28 times 28 вектором длины 784 каждый признак ndash значение пиксела в черно-белой шале Первый столбец содержит метку цифры 0ndash9 следующие 2828 столбцов представляют целый имидж и так далее Пример первой строки
Визуализация
bull plotmnist()bull mnistbull paramsbull train$n number of train samplesbull train$x pix of every train sample imagebull train$y label of every train sample imagebull train$yy one-of-c vector of label of train sample imagebull test$n number of test samplesbull test$x pix of every test sample imagebull test$y label of every test sample imagebull test$yy one-of-c vector of label of test sample image
plotmnist()
Распознавание рукописных цифр в deepnet
another way to download the MNIST datasetmnist downloadmnist(range=c(01)global=FALSE)look at MNIST datamnist$train$xmnist$train$ymnist$test$xmnist$test$ytrain of the sae neural networkdnnlt-saednntrain(mnist$train$xmnist$train$yhidden=c(55))test of the sae neural networknntest(dnnmnist$test$xmnist$test$yt=05)
End of slides part 2 (Part 3 - NLP remaining)
Vladimirvkrylovgmailcom
Основы предиктивной аналитики Часть вторая
Применение методов Machine Learning к решению задач аналитики
Дмитрий Ветров кандидат физико-математических наук ру
Методы обучающихся машин для аналитики которые мы рассмотрим
Сначала нужно загрузить несколько пакетов (packages) для поддер
Данные для анализа
Скрипт для генерации
Данные которые мы будем использовать для демо состоят из смес
Так выглядят визуализированные данные сгенерированные скриптом
Разделение данных на обучающие и проверочные является важным эт
K-means алгоритм на пальцах
Обучающаяся машина без учителя Алгоритм K-means
Slide 13
Slide 14
Здесь мы используем заранее известный факт что необходимо кла
Еще одна иллюстрация работы алгоритма K-means
Обучающаяся машина без учителя Алгоритм KNN (Nearest Neighbor)
Как работает алгоритм KNN
knn(train test cl k = 1 l = 0 prob = FALSE useall = TRUE
Slide 20
Результаты кластеризации и зависимость ошибки от числа кластеро
Recursive PartitioningRegression Tree
Метод RP реализует обучение машины строить дерево решений по об
Recursive PartitioningRegression Tree (2)
rpart(formula data weights subset naaction = narpart met
Slide 26
Recursive PartitioningRegression Tree example
Анализ по главным компонентам (Principal Component Analysis PC
Итеративные алгоритмы с оптимальным разреженным кодированием IS
Самоорганизация данных методами Deep Learning
Знакомство с пакетом deepnet
Прогнозирование (классификация) нейронной сетью с архитектурой
Arguments
Архитектура сети SAE
Архитектура с 5Х4 hidden 3 outs
Example
Анализ обучающего набора данных
Параметры SAE сети
Коэффициенты связей
Предсказание обученной сетью
Сравнение обучающей и тестовой выборки
plot3d(xy)
Работаем с пакетом MNIST
httpyannlecuncomexdbmnist
Подготовка к обработке
Slide 118
Визуализация
plotmnist()
Распознавание рукописных цифр в deepnet
End of slides part 2 (Part 3 - NLP remaining)
Визуализация
bull plotmnist()bull mnistbull paramsbull train$n number of train samplesbull train$x pix of every train sample imagebull train$y label of every train sample imagebull train$yy one-of-c vector of label of train sample imagebull test$n number of test samplesbull test$x pix of every test sample imagebull test$y label of every test sample imagebull test$yy one-of-c vector of label of test sample image
plotmnist()
Распознавание рукописных цифр в deepnet
another way to download the MNIST datasetmnist downloadmnist(range=c(01)global=FALSE)look at MNIST datamnist$train$xmnist$train$ymnist$test$xmnist$test$ytrain of the sae neural networkdnnlt-saednntrain(mnist$train$xmnist$train$yhidden=c(55))test of the sae neural networknntest(dnnmnist$test$xmnist$test$yt=05)
End of slides part 2 (Part 3 - NLP remaining)
Vladimirvkrylovgmailcom
Основы предиктивной аналитики Часть вторая
Применение методов Machine Learning к решению задач аналитики
Дмитрий Ветров кандидат физико-математических наук ру
Методы обучающихся машин для аналитики которые мы рассмотрим
Сначала нужно загрузить несколько пакетов (packages) для поддер
Данные для анализа
Скрипт для генерации
Данные которые мы будем использовать для демо состоят из смес
Так выглядят визуализированные данные сгенерированные скриптом
Разделение данных на обучающие и проверочные является важным эт
K-means алгоритм на пальцах
Обучающаяся машина без учителя Алгоритм K-means
Slide 13
Slide 14
Здесь мы используем заранее известный факт что необходимо кла
Еще одна иллюстрация работы алгоритма K-means
Обучающаяся машина без учителя Алгоритм KNN (Nearest Neighbor)
Как работает алгоритм KNN
knn(train test cl k = 1 l = 0 prob = FALSE useall = TRUE
Slide 20
Результаты кластеризации и зависимость ошибки от числа кластеро
Recursive PartitioningRegression Tree
Метод RP реализует обучение машины строить дерево решений по об
Recursive PartitioningRegression Tree (2)
rpart(formula data weights subset naaction = narpart met
Slide 26
Recursive PartitioningRegression Tree example
Анализ по главным компонентам (Principal Component Analysis PC
Итеративные алгоритмы с оптимальным разреженным кодированием IS
Самоорганизация данных методами Deep Learning
Знакомство с пакетом deepnet
Прогнозирование (классификация) нейронной сетью с архитектурой
Arguments
Архитектура сети SAE
Архитектура с 5Х4 hidden 3 outs
Example
Анализ обучающего набора данных
Параметры SAE сети
Коэффициенты связей
Предсказание обученной сетью
Сравнение обучающей и тестовой выборки
plot3d(xy)
Работаем с пакетом MNIST
httpyannlecuncomexdbmnist
Подготовка к обработке
Slide 118
Визуализация
plotmnist()
Распознавание рукописных цифр в deepnet
End of slides part 2 (Part 3 - NLP remaining)
plotmnist()
Распознавание рукописных цифр в deepnet
another way to download the MNIST datasetmnist downloadmnist(range=c(01)global=FALSE)look at MNIST datamnist$train$xmnist$train$ymnist$test$xmnist$test$ytrain of the sae neural networkdnnlt-saednntrain(mnist$train$xmnist$train$yhidden=c(55))test of the sae neural networknntest(dnnmnist$test$xmnist$test$yt=05)
End of slides part 2 (Part 3 - NLP remaining)
Vladimirvkrylovgmailcom
Основы предиктивной аналитики Часть вторая
Применение методов Machine Learning к решению задач аналитики
Дмитрий Ветров кандидат физико-математических наук ру
Методы обучающихся машин для аналитики которые мы рассмотрим
Сначала нужно загрузить несколько пакетов (packages) для поддер
Данные для анализа
Скрипт для генерации
Данные которые мы будем использовать для демо состоят из смес
Так выглядят визуализированные данные сгенерированные скриптом
Разделение данных на обучающие и проверочные является важным эт
K-means алгоритм на пальцах
Обучающаяся машина без учителя Алгоритм K-means
Slide 13
Slide 14
Здесь мы используем заранее известный факт что необходимо кла
Еще одна иллюстрация работы алгоритма K-means
Обучающаяся машина без учителя Алгоритм KNN (Nearest Neighbor)
Как работает алгоритм KNN
knn(train test cl k = 1 l = 0 prob = FALSE useall = TRUE
Slide 20
Результаты кластеризации и зависимость ошибки от числа кластеро
Recursive PartitioningRegression Tree
Метод RP реализует обучение машины строить дерево решений по об
Recursive PartitioningRegression Tree (2)
rpart(formula data weights subset naaction = narpart met
Slide 26
Recursive PartitioningRegression Tree example
Анализ по главным компонентам (Principal Component Analysis PC
Итеративные алгоритмы с оптимальным разреженным кодированием IS
Самоорганизация данных методами Deep Learning
Знакомство с пакетом deepnet
Прогнозирование (классификация) нейронной сетью с архитектурой
Arguments
Архитектура сети SAE
Архитектура с 5Х4 hidden 3 outs
Example
Анализ обучающего набора данных
Параметры SAE сети
Коэффициенты связей
Предсказание обученной сетью
Сравнение обучающей и тестовой выборки
plot3d(xy)
Работаем с пакетом MNIST
httpyannlecuncomexdbmnist
Подготовка к обработке
Slide 118
Визуализация
plotmnist()
Распознавание рукописных цифр в deepnet
End of slides part 2 (Part 3 - NLP remaining)
Распознавание рукописных цифр в deepnet
another way to download the MNIST datasetmnist downloadmnist(range=c(01)global=FALSE)look at MNIST datamnist$train$xmnist$train$ymnist$test$xmnist$test$ytrain of the sae neural networkdnnlt-saednntrain(mnist$train$xmnist$train$yhidden=c(55))test of the sae neural networknntest(dnnmnist$test$xmnist$test$yt=05)
End of slides part 2 (Part 3 - NLP remaining)
Vladimirvkrylovgmailcom
Основы предиктивной аналитики Часть вторая
Применение методов Machine Learning к решению задач аналитики
Дмитрий Ветров кандидат физико-математических наук ру
Методы обучающихся машин для аналитики которые мы рассмотрим
Сначала нужно загрузить несколько пакетов (packages) для поддер
Данные для анализа
Скрипт для генерации
Данные которые мы будем использовать для демо состоят из смес
Так выглядят визуализированные данные сгенерированные скриптом
Разделение данных на обучающие и проверочные является важным эт
K-means алгоритм на пальцах
Обучающаяся машина без учителя Алгоритм K-means
Slide 13
Slide 14
Здесь мы используем заранее известный факт что необходимо кла
Еще одна иллюстрация работы алгоритма K-means
Обучающаяся машина без учителя Алгоритм KNN (Nearest Neighbor)
Как работает алгоритм KNN
knn(train test cl k = 1 l = 0 prob = FALSE useall = TRUE
Slide 20
Результаты кластеризации и зависимость ошибки от числа кластеро
Recursive PartitioningRegression Tree
Метод RP реализует обучение машины строить дерево решений по об
Recursive PartitioningRegression Tree (2)
rpart(formula data weights subset naaction = narpart met
Slide 26
Recursive PartitioningRegression Tree example
Анализ по главным компонентам (Principal Component Analysis PC