122
Основы предиктивной аналитики. Часть вторая Профессор Крылов Владимир Владимирович [email protected] +7 964 839 0004

!Predictive analytics part_2

Embed Size (px)

Citation preview

Page 1: !Predictive analytics part_2

Основы предиктивной аналитики

Часть втораяПрофессор Крылов Владимир Владимирович

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

Данные которые мы будем использовать для демо состоят из смеси трех двумерных нормальных распределений Целью является построить такую систему классификации которая сможет определять какому из распределений принадлежат поступающие данные Выведем данные для наглядности

A lt- rmulnorm (N3 c(11) matrix(c(4-6-618) 22))B lt- rmulnorm (N3 c(81) matrix(c(1001) 22))C lt- rmulnorm (N3 c(38) matrix(c(405052) 22))

data lt- dataframe(rbind (ABC))colnames(data) lt- c(x y)data$class lt- c(rep(A N3) rep(B N3) rep(C N3))

Data looks likeplot_it lt- function ()

plot (data[12] type=n)points(A pch=A col=red)points(B pch=B col=blue)points(C pch=C col=orange)

plot_it()

Так выглядят визуализированные данные сгенерированные скриптом

Разделение данных на обучающие и проверочные является важным этапом 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

not used

kmeans(x centers itermax = 10 nstart = 1 algorithm = c(Hartigan-Wong Lloyd Forgy MacQueen) trace=FALSE) S3 method for class kmeans fitted(object method = c(centers classes) )

cluster A vector of integers (from 1k) indicating the cluster to which each point is allocated

centers A matrix of cluster centres

totss The total sum of squares

withinss Vector of within-cluster sum of squares one component per cluster

totwithinss Total within-cluster sum of squares ie sum(withinss)

betweenss The between-cluster sum of squares ie totss-totwithinss

size The number of points in each cluster

iter The number of (outer) iterations

ifault integer indicator of a possible algorithm problem ndash for experts

kmeans returns an object of class kmeans which has a print and a fitted method It is a list with at least the following components

fitted(object method = c(centers classes) )

Здесь мы используем заранее известный факт что необходимо классифицировать данные на три класса ndash кластера Поэтому число кластеров k=3

gtk lt- kmeans(train[12] 3)gtplot(train[12] type=n)gttext(train[12] ascharacter(k$cluster))gtcm (train$class k$cluster)

predicted A B C 3 504 0 0 1 6 692 3 2 186 0 709

Еще одна иллюстрация работы алгоритма 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

test$predicted_class lt- knn(train[12] test[12] train$class k=1)

(mlt-cm(test$class test$predicted_class))

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)

predicted2 lt- asnumeric(apply(predict(r2) 1 function(r) order(-r)[1]))(m lt- cm (train$class predicted2))1 - sum(diag(m)) sum(m)

Линейный дискриминантный анализ (Linear Discriminant Analysis - LDA)bull Для каждого образца объекта или события с известным классом y

рассматривается набор наблюдений x (называемых ещё признаками переменными или измерениями) Набор таких образцов называется обучающей выборкой (или набором обучения обучением) Задачи классификации состоит в том чтобы построить хороший прогноз класса y для всякого так же распределённого объекта (не обязательно содержащегося в обучающей выборке) имея только наблюдения x Основная идея состоит в сравнении распределений для каждого из классов Расстоянием (по Фишеру) между распределениями принято считать отношение межклассовой дисперсии к внутриклассовой

Решение

bull Предполагается гауссово распределение совместных вероятностей

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

Linear Discriminant Analysis (LDA)

l lt- lda(class ~ x + y data = train)

(m lt- cm(train$class predict(l)$class))1 - sum(diag(m)) sum(m)

par(mfrow=c(12))train_lda lt- asmatrix(train[12]) l$scalingplot_it()plot(train_lda type=n)text(train_lda train$class)par(mfrow=c(11))

Сравнение 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)

(m lt- cm(train$class predict(s)))1 - sum(diag(m)) sum(m)

(m lt- cm(test$class predict(s test[12])))1 - sum(diag(m)) sum(m)

Глубокое обучение (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) матрицы Якобиана

ቈ120597119865119894ሺ119883119894minus1119882119894ሻ120597119882119894 119896119897 = 120597[119865119894(119883119894minus1119882119894)]119896120597[119882119894]119897

Сводится к рекуррентному соотношению для вычисления градиента 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

Сверточная (convolution) нейронная сеть

1 -- parameters 2 nstates = 16256128 3 fanin = 14 4 filtsize = 5 5 poolsize = 2 6 normkernel = imagegaussian1D(7) 7 8 -- Container 9 model = nnSequential()1011 -- stage 1 filter bank -gt squashing -gt L2 pooling -gt normalization12 modeladd(nnSpatialConvolutionMap(nntablesrandom(nfeats nstates[1] fanin[1]) filtsize filtsize))13 modeladd(nnTanh())14 modeladd(nnSpatialLPPooling(nstates[1]2poolsizepoolsizepoolsizepoolsize))15 modeladd(nnSpatialSubtractiveNormalization(16 normkernel))1617 -- stage 2 filter bank -gt squashing -gt L2 pooling -gt normalization18 modeladd(nnSpatialConvolutionMap(nntablesrandom(nstates[1] nstates[2] fanin[2]) filtsize filtsize))19 modeladd(nnTanh())20 modeladd(nnSpatialLPPooling(nstates[2]2poolsizepoolsizepoolsizepoolsize))21 modeladd(nnSpatialSubtractiveNormalization(nstates[2] normkernel))2223 -- stage 3 standard 2-layer neural network24 modeladd(nnReshape(nstates[2]filtsizefiltsize))25 modeladd(nnLinear(nstates[2]filtsizefiltsize nstates[3]))26 modeladd(nnTanh())27 modeladd(nnLinear(nstates[3] noutputs))

Код программы на Torch 7

Сверточные (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

Sparse linear reconstruction

bull Energy=reconstruction_error+code_prediction_error+code_sparsity

Автоэнкодер (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

bull saednntrain(x y hidden = c(1) activationfun = sigm learningrate = 08 momentum = 05 learningrate_scale = 1 output = sigm sae_output = linear numepochs = 3 batchsize = 100 hidden_dropout = 0 visible_dropout = 0)

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

Архитектура сети SAE

Архитектура с 5Х4 hidden 3 outs

Example

Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02)) Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1)) x lt- matrix(c(Var1 Var2) nrow = 100 ncol = 2)y lt- c(rep(1 50) rep(0 50))

обучение сетиdnn lt- saednntrain(x y hidden = c(5 5))

Анализ обучающего набора данныхgt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370helliphelliphelliphelliphelliphelliphelliphellip

gt y [1] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 [54] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

plot3d(xy)

Параметры SAE сети

gt dnn$input_dim[1] 2$output_dim[1] 1$hidden[1] 5 5$size[1] 2 5 5 1$activationfun[1] sigm$learningrate[1] 08

$momentum[1] 05$learningrate_scale[1] 1$hidden_dropout[1] 0$visible_dropout[1] 0$output[1] sigm$W

Коэффициенты связей

$W$W[[1]] [1] [2][1] -014355854 02471840[2] 011378030 -00715094[3] -004343738 03667468[4] 012756946 -01303379[5] -003445704 02293772

$W[[2]] [1] [2] [3] [4] [5][1] 00420191661 -0023073732 -008762756 0035575714 -0063000016[2] 00072771988 -0131204147 -010591421 0018221305 -0025539769[3] -01071896826 -0019479685 -009892573 -0012976429 -0111886901[4] -00009477304 -0023137518 -002147218 0007969452 -0118696306[5] 00045016013 0001885546 -010170954 -0140312396 -0003970102

$W[[3]] [1] [2] [3] [4] [5][1] 01027992 -007288099 003051227 -001731639 0009518049

$vW$vW[[1]] [1] [2][1] -8335203e-06 1368580e-05[2] -6530183e-05 1135070e-04[3] 2544302e-05 -3947111e-05[4] -5512835e-06 9541682e-06[5] 3822854e-05 -6281762e-05

$vW[[2]] [1] [2] [3] [4] [5][1] 4172450e-04 -2554411e-04 4896670e-04 -3526093e-04 3041932e-04[2] -3210759e-04 1978412e-04 -3769148e-04 2727933e-04 -2338477e-04[3] 1058770e-04 -6705336e-05 1244419e-04 -9201508e-05 7678296e-05[4] -8894178e-05 5481668e-05 -1044110e-04 7558269e-05 -6477571e-05[5] 2676520e-05 -1622289e-05 3139684e-05 -2243174e-05 1954349e-05

$vW[[3]] [1] [2] [3] [4] [5][1] -0002603034 -0002398256 -0003274074 -0002542478 -000209672

Предсказание обученной сетью

predict by dnntest_Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02))test_Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1))test_x lt- matrix(c(test_Var1 test_Var2) nrow = 100 ncol = 2)nntest(dnn test_x y)

[1] 025 Value error rate

Сравнение обучающей и тестовой выборки

gttest_x [1] [2] [1] 091887443 -08940890 [2] 115219448 -06050481 [3] 069917981 -08524551 [4] 028213787 -08146816 [5] 098405598 -11440813 [6] 185911887 -08203652 [7] 010843056 -10123789 [8] 083827953 -07594760 [9] -016373562 -09087116 [10] 088298748 -09767741 [11] 005280917 -07525407

gt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370

Plot3d(test_xy) Plot3d(xy)

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)

Подготовка к обработке

starting installationstep1installpackages(devtools)library(devtools)install_github(repo = mnist username = xrobin ref = master)library(mnist)

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
  • Аппроксимация линейными многообразиями (подпространствами)
  • Slide 30
  • Алгоритм
  • princomp(formula data = NULL subset naaction )
  • Principal Component Analysis (PCA)
  • Линейный дискриминантный анализ (Linear Discriminant Analysis -
  • Решение
  • lda(x grouping prior = proportions tol = 10e-4 method
  • Slide 37
  • Linear Discriminant Analysis (LDA)
  • Сравнение PCA и LDA
  • Метод опорных векторов (Support Vector Machines - SVM)
  • Идея алгоритма
  • Иллюстрация на простейшем примере
  • Линейная неразделимость и использование ядер
  • Иллюстрация использования ядра для отображения 2D -gt 3D
  • svm((formula data = NULL subset naaction = naomit sc
  • Support Vector Machines
  • Глубокое обучение (Deep Learning)
  • laquoВ 1997 году Deep Blue обыграл в шахматы Каспарова В 2011 Wats
  • Распознавание основано на feature detection и последующем раз
  • Распознавание рукописных цифр
  • Еще пример посложнее
  • Использование нейронной сети с обучением
  • Сверхвысокая размерность при работе с первичным представлением
  • Пиксельное кодирование
  • Принцип иерархии понятий ndash основа deep learning
  • Разреженное (sparse) кодирование
  • Словарь для лиц
  • Slide 58
  • Выделение объектов заданного класса
  • Основные архитектуры Deep Learning
  • Задача классификации распознавания и подобные являются задачей
  • Фактор - графы
  • Slide 63
  • Slide 64
  • Подход разреженного кодирования
  • Обобщенная архитектура
  • Slide 67
  • Slide 68
  • Slide 69
  • В действительности работают любые архитектуры построения функц
  • Machine Learning with Torch7 (httpcodecogbitscomwikidoku
  • Torch 7 является расширением Lua
  • Slide 73
  • Slide 74
  • Сверточные (convolution) нейронные сети
  • Свертка и архитектура 4-х уровневой сверточной сети
  • Функциональная структура
  • Примеры успешного применения сверточных сетей
  • Диагностика эпилепсии по ЭЭГ
  • Реализация сверточной сетью
  • Одна из самых больших сверточных сетей
  • Пример тэгирования
  • Пример поиска похожих по изображению
  • Пример поиска в коллекции изображений по текстовому запросу
  • Пример laquoоблачногоraquo классификатора изображений
  • Slide 86
  • Самообучающиеся нейронные сети на основе минимизации функции эн
  • RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцман
  • Алгоритм обучения Contrastive Divergence (CD)
  • Основные уравнения адаптации
  • Алгоритм Хинтона - Contrastive Divergence (CD-k)
  • darch Package for deep architectures and Restricted-Bolzmann-
  • Связь плотности вероятности и энергии
  • Задача обучения с точки минимизации энергии сети
  • Интуитивные соображения
  • Slide 96
  • Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decom
  • Sparse linear reconstruction
  • Автоэнкодер (auto encoder)
  • Архитекттура ICA моделей
  • Итеративные алгоритмы с оптимальным разреженным кодированием 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)
Page 2: !Predictive analytics part_2

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

Данные которые мы будем использовать для демо состоят из смеси трех двумерных нормальных распределений Целью является построить такую систему классификации которая сможет определять какому из распределений принадлежат поступающие данные Выведем данные для наглядности

A lt- rmulnorm (N3 c(11) matrix(c(4-6-618) 22))B lt- rmulnorm (N3 c(81) matrix(c(1001) 22))C lt- rmulnorm (N3 c(38) matrix(c(405052) 22))

data lt- dataframe(rbind (ABC))colnames(data) lt- c(x y)data$class lt- c(rep(A N3) rep(B N3) rep(C N3))

Data looks likeplot_it lt- function ()

plot (data[12] type=n)points(A pch=A col=red)points(B pch=B col=blue)points(C pch=C col=orange)

plot_it()

Так выглядят визуализированные данные сгенерированные скриптом

Разделение данных на обучающие и проверочные является важным этапом 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

not used

kmeans(x centers itermax = 10 nstart = 1 algorithm = c(Hartigan-Wong Lloyd Forgy MacQueen) trace=FALSE) S3 method for class kmeans fitted(object method = c(centers classes) )

cluster A vector of integers (from 1k) indicating the cluster to which each point is allocated

centers A matrix of cluster centres

totss The total sum of squares

withinss Vector of within-cluster sum of squares one component per cluster

totwithinss Total within-cluster sum of squares ie sum(withinss)

betweenss The between-cluster sum of squares ie totss-totwithinss

size The number of points in each cluster

iter The number of (outer) iterations

ifault integer indicator of a possible algorithm problem ndash for experts

kmeans returns an object of class kmeans which has a print and a fitted method It is a list with at least the following components

fitted(object method = c(centers classes) )

Здесь мы используем заранее известный факт что необходимо классифицировать данные на три класса ndash кластера Поэтому число кластеров k=3

gtk lt- kmeans(train[12] 3)gtplot(train[12] type=n)gttext(train[12] ascharacter(k$cluster))gtcm (train$class k$cluster)

predicted A B C 3 504 0 0 1 6 692 3 2 186 0 709

Еще одна иллюстрация работы алгоритма 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

test$predicted_class lt- knn(train[12] test[12] train$class k=1)

(mlt-cm(test$class test$predicted_class))

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)

predicted2 lt- asnumeric(apply(predict(r2) 1 function(r) order(-r)[1]))(m lt- cm (train$class predicted2))1 - sum(diag(m)) sum(m)

Линейный дискриминантный анализ (Linear Discriminant Analysis - LDA)bull Для каждого образца объекта или события с известным классом y

рассматривается набор наблюдений x (называемых ещё признаками переменными или измерениями) Набор таких образцов называется обучающей выборкой (или набором обучения обучением) Задачи классификации состоит в том чтобы построить хороший прогноз класса y для всякого так же распределённого объекта (не обязательно содержащегося в обучающей выборке) имея только наблюдения x Основная идея состоит в сравнении распределений для каждого из классов Расстоянием (по Фишеру) между распределениями принято считать отношение межклассовой дисперсии к внутриклассовой

Решение

bull Предполагается гауссово распределение совместных вероятностей

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

Linear Discriminant Analysis (LDA)

l lt- lda(class ~ x + y data = train)

(m lt- cm(train$class predict(l)$class))1 - sum(diag(m)) sum(m)

par(mfrow=c(12))train_lda lt- asmatrix(train[12]) l$scalingplot_it()plot(train_lda type=n)text(train_lda train$class)par(mfrow=c(11))

Сравнение 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)

(m lt- cm(train$class predict(s)))1 - sum(diag(m)) sum(m)

(m lt- cm(test$class predict(s test[12])))1 - sum(diag(m)) sum(m)

Глубокое обучение (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) матрицы Якобиана

ቈ120597119865119894ሺ119883119894minus1119882119894ሻ120597119882119894 119896119897 = 120597[119865119894(119883119894minus1119882119894)]119896120597[119882119894]119897

Сводится к рекуррентному соотношению для вычисления градиента 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

Сверточная (convolution) нейронная сеть

1 -- parameters 2 nstates = 16256128 3 fanin = 14 4 filtsize = 5 5 poolsize = 2 6 normkernel = imagegaussian1D(7) 7 8 -- Container 9 model = nnSequential()1011 -- stage 1 filter bank -gt squashing -gt L2 pooling -gt normalization12 modeladd(nnSpatialConvolutionMap(nntablesrandom(nfeats nstates[1] fanin[1]) filtsize filtsize))13 modeladd(nnTanh())14 modeladd(nnSpatialLPPooling(nstates[1]2poolsizepoolsizepoolsizepoolsize))15 modeladd(nnSpatialSubtractiveNormalization(16 normkernel))1617 -- stage 2 filter bank -gt squashing -gt L2 pooling -gt normalization18 modeladd(nnSpatialConvolutionMap(nntablesrandom(nstates[1] nstates[2] fanin[2]) filtsize filtsize))19 modeladd(nnTanh())20 modeladd(nnSpatialLPPooling(nstates[2]2poolsizepoolsizepoolsizepoolsize))21 modeladd(nnSpatialSubtractiveNormalization(nstates[2] normkernel))2223 -- stage 3 standard 2-layer neural network24 modeladd(nnReshape(nstates[2]filtsizefiltsize))25 modeladd(nnLinear(nstates[2]filtsizefiltsize nstates[3]))26 modeladd(nnTanh())27 modeladd(nnLinear(nstates[3] noutputs))

Код программы на Torch 7

Сверточные (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

Sparse linear reconstruction

bull Energy=reconstruction_error+code_prediction_error+code_sparsity

Автоэнкодер (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

bull saednntrain(x y hidden = c(1) activationfun = sigm learningrate = 08 momentum = 05 learningrate_scale = 1 output = sigm sae_output = linear numepochs = 3 batchsize = 100 hidden_dropout = 0 visible_dropout = 0)

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

Архитектура сети SAE

Архитектура с 5Х4 hidden 3 outs

Example

Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02)) Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1)) x lt- matrix(c(Var1 Var2) nrow = 100 ncol = 2)y lt- c(rep(1 50) rep(0 50))

обучение сетиdnn lt- saednntrain(x y hidden = c(5 5))

Анализ обучающего набора данныхgt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370helliphelliphelliphelliphelliphelliphelliphellip

gt y [1] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 [54] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

plot3d(xy)

Параметры SAE сети

gt dnn$input_dim[1] 2$output_dim[1] 1$hidden[1] 5 5$size[1] 2 5 5 1$activationfun[1] sigm$learningrate[1] 08

$momentum[1] 05$learningrate_scale[1] 1$hidden_dropout[1] 0$visible_dropout[1] 0$output[1] sigm$W

Коэффициенты связей

$W$W[[1]] [1] [2][1] -014355854 02471840[2] 011378030 -00715094[3] -004343738 03667468[4] 012756946 -01303379[5] -003445704 02293772

$W[[2]] [1] [2] [3] [4] [5][1] 00420191661 -0023073732 -008762756 0035575714 -0063000016[2] 00072771988 -0131204147 -010591421 0018221305 -0025539769[3] -01071896826 -0019479685 -009892573 -0012976429 -0111886901[4] -00009477304 -0023137518 -002147218 0007969452 -0118696306[5] 00045016013 0001885546 -010170954 -0140312396 -0003970102

$W[[3]] [1] [2] [3] [4] [5][1] 01027992 -007288099 003051227 -001731639 0009518049

$vW$vW[[1]] [1] [2][1] -8335203e-06 1368580e-05[2] -6530183e-05 1135070e-04[3] 2544302e-05 -3947111e-05[4] -5512835e-06 9541682e-06[5] 3822854e-05 -6281762e-05

$vW[[2]] [1] [2] [3] [4] [5][1] 4172450e-04 -2554411e-04 4896670e-04 -3526093e-04 3041932e-04[2] -3210759e-04 1978412e-04 -3769148e-04 2727933e-04 -2338477e-04[3] 1058770e-04 -6705336e-05 1244419e-04 -9201508e-05 7678296e-05[4] -8894178e-05 5481668e-05 -1044110e-04 7558269e-05 -6477571e-05[5] 2676520e-05 -1622289e-05 3139684e-05 -2243174e-05 1954349e-05

$vW[[3]] [1] [2] [3] [4] [5][1] -0002603034 -0002398256 -0003274074 -0002542478 -000209672

Предсказание обученной сетью

predict by dnntest_Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02))test_Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1))test_x lt- matrix(c(test_Var1 test_Var2) nrow = 100 ncol = 2)nntest(dnn test_x y)

[1] 025 Value error rate

Сравнение обучающей и тестовой выборки

gttest_x [1] [2] [1] 091887443 -08940890 [2] 115219448 -06050481 [3] 069917981 -08524551 [4] 028213787 -08146816 [5] 098405598 -11440813 [6] 185911887 -08203652 [7] 010843056 -10123789 [8] 083827953 -07594760 [9] -016373562 -09087116 [10] 088298748 -09767741 [11] 005280917 -07525407

gt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370

Plot3d(test_xy) Plot3d(xy)

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)

Подготовка к обработке

starting installationstep1installpackages(devtools)library(devtools)install_github(repo = mnist username = xrobin ref = master)library(mnist)

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
  • Аппроксимация линейными многообразиями (подпространствами)
  • Slide 30
  • Алгоритм
  • princomp(formula data = NULL subset naaction )
  • Principal Component Analysis (PCA)
  • Линейный дискриминантный анализ (Linear Discriminant Analysis -
  • Решение
  • lda(x grouping prior = proportions tol = 10e-4 method
  • Slide 37
  • Linear Discriminant Analysis (LDA)
  • Сравнение PCA и LDA
  • Метод опорных векторов (Support Vector Machines - SVM)
  • Идея алгоритма
  • Иллюстрация на простейшем примере
  • Линейная неразделимость и использование ядер
  • Иллюстрация использования ядра для отображения 2D -gt 3D
  • svm((formula data = NULL subset naaction = naomit sc
  • Support Vector Machines
  • Глубокое обучение (Deep Learning)
  • laquoВ 1997 году Deep Blue обыграл в шахматы Каспарова В 2011 Wats
  • Распознавание основано на feature detection и последующем раз
  • Распознавание рукописных цифр
  • Еще пример посложнее
  • Использование нейронной сети с обучением
  • Сверхвысокая размерность при работе с первичным представлением
  • Пиксельное кодирование
  • Принцип иерархии понятий ndash основа deep learning
  • Разреженное (sparse) кодирование
  • Словарь для лиц
  • Slide 58
  • Выделение объектов заданного класса
  • Основные архитектуры Deep Learning
  • Задача классификации распознавания и подобные являются задачей
  • Фактор - графы
  • Slide 63
  • Slide 64
  • Подход разреженного кодирования
  • Обобщенная архитектура
  • Slide 67
  • Slide 68
  • Slide 69
  • В действительности работают любые архитектуры построения функц
  • Machine Learning with Torch7 (httpcodecogbitscomwikidoku
  • Torch 7 является расширением Lua
  • Slide 73
  • Slide 74
  • Сверточные (convolution) нейронные сети
  • Свертка и архитектура 4-х уровневой сверточной сети
  • Функциональная структура
  • Примеры успешного применения сверточных сетей
  • Диагностика эпилепсии по ЭЭГ
  • Реализация сверточной сетью
  • Одна из самых больших сверточных сетей
  • Пример тэгирования
  • Пример поиска похожих по изображению
  • Пример поиска в коллекции изображений по текстовому запросу
  • Пример laquoоблачногоraquo классификатора изображений
  • Slide 86
  • Самообучающиеся нейронные сети на основе минимизации функции эн
  • RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцман
  • Алгоритм обучения Contrastive Divergence (CD)
  • Основные уравнения адаптации
  • Алгоритм Хинтона - Contrastive Divergence (CD-k)
  • darch Package for deep architectures and Restricted-Bolzmann-
  • Связь плотности вероятности и энергии
  • Задача обучения с точки минимизации энергии сети
  • Интуитивные соображения
  • Slide 96
  • Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decom
  • Sparse linear reconstruction
  • Автоэнкодер (auto encoder)
  • Архитекттура ICA моделей
  • Итеративные алгоритмы с оптимальным разреженным кодированием 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)
Page 3: !Predictive analytics part_2

Дмитрий Ветровкандидат физико-математических наук руководитель исследовательской группы байесовских методов начальник департамента больших данных и информационного поиска факультета компьютерных наук НИУ ВШЭ

Машинное обучение появляется в тот момент когда переменные которыми описывается объект можно разделить на две части наблюдаемые и скрытые или латентные переменные Наблюдаемые переменные 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

Данные которые мы будем использовать для демо состоят из смеси трех двумерных нормальных распределений Целью является построить такую систему классификации которая сможет определять какому из распределений принадлежат поступающие данные Выведем данные для наглядности

A lt- rmulnorm (N3 c(11) matrix(c(4-6-618) 22))B lt- rmulnorm (N3 c(81) matrix(c(1001) 22))C lt- rmulnorm (N3 c(38) matrix(c(405052) 22))

data lt- dataframe(rbind (ABC))colnames(data) lt- c(x y)data$class lt- c(rep(A N3) rep(B N3) rep(C N3))

Data looks likeplot_it lt- function ()

plot (data[12] type=n)points(A pch=A col=red)points(B pch=B col=blue)points(C pch=C col=orange)

plot_it()

Так выглядят визуализированные данные сгенерированные скриптом

Разделение данных на обучающие и проверочные является важным этапом 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

not used

kmeans(x centers itermax = 10 nstart = 1 algorithm = c(Hartigan-Wong Lloyd Forgy MacQueen) trace=FALSE) S3 method for class kmeans fitted(object method = c(centers classes) )

cluster A vector of integers (from 1k) indicating the cluster to which each point is allocated

centers A matrix of cluster centres

totss The total sum of squares

withinss Vector of within-cluster sum of squares one component per cluster

totwithinss Total within-cluster sum of squares ie sum(withinss)

betweenss The between-cluster sum of squares ie totss-totwithinss

size The number of points in each cluster

iter The number of (outer) iterations

ifault integer indicator of a possible algorithm problem ndash for experts

kmeans returns an object of class kmeans which has a print and a fitted method It is a list with at least the following components

fitted(object method = c(centers classes) )

Здесь мы используем заранее известный факт что необходимо классифицировать данные на три класса ndash кластера Поэтому число кластеров k=3

gtk lt- kmeans(train[12] 3)gtplot(train[12] type=n)gttext(train[12] ascharacter(k$cluster))gtcm (train$class k$cluster)

predicted A B C 3 504 0 0 1 6 692 3 2 186 0 709

Еще одна иллюстрация работы алгоритма 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

test$predicted_class lt- knn(train[12] test[12] train$class k=1)

(mlt-cm(test$class test$predicted_class))

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)

predicted2 lt- asnumeric(apply(predict(r2) 1 function(r) order(-r)[1]))(m lt- cm (train$class predicted2))1 - sum(diag(m)) sum(m)

Линейный дискриминантный анализ (Linear Discriminant Analysis - LDA)bull Для каждого образца объекта или события с известным классом y

рассматривается набор наблюдений x (называемых ещё признаками переменными или измерениями) Набор таких образцов называется обучающей выборкой (или набором обучения обучением) Задачи классификации состоит в том чтобы построить хороший прогноз класса y для всякого так же распределённого объекта (не обязательно содержащегося в обучающей выборке) имея только наблюдения x Основная идея состоит в сравнении распределений для каждого из классов Расстоянием (по Фишеру) между распределениями принято считать отношение межклассовой дисперсии к внутриклассовой

Решение

bull Предполагается гауссово распределение совместных вероятностей

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

Linear Discriminant Analysis (LDA)

l lt- lda(class ~ x + y data = train)

(m lt- cm(train$class predict(l)$class))1 - sum(diag(m)) sum(m)

par(mfrow=c(12))train_lda lt- asmatrix(train[12]) l$scalingplot_it()plot(train_lda type=n)text(train_lda train$class)par(mfrow=c(11))

Сравнение 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)

(m lt- cm(train$class predict(s)))1 - sum(diag(m)) sum(m)

(m lt- cm(test$class predict(s test[12])))1 - sum(diag(m)) sum(m)

Глубокое обучение (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) матрицы Якобиана

ቈ120597119865119894ሺ119883119894minus1119882119894ሻ120597119882119894 119896119897 = 120597[119865119894(119883119894minus1119882119894)]119896120597[119882119894]119897

Сводится к рекуррентному соотношению для вычисления градиента 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

Сверточная (convolution) нейронная сеть

1 -- parameters 2 nstates = 16256128 3 fanin = 14 4 filtsize = 5 5 poolsize = 2 6 normkernel = imagegaussian1D(7) 7 8 -- Container 9 model = nnSequential()1011 -- stage 1 filter bank -gt squashing -gt L2 pooling -gt normalization12 modeladd(nnSpatialConvolutionMap(nntablesrandom(nfeats nstates[1] fanin[1]) filtsize filtsize))13 modeladd(nnTanh())14 modeladd(nnSpatialLPPooling(nstates[1]2poolsizepoolsizepoolsizepoolsize))15 modeladd(nnSpatialSubtractiveNormalization(16 normkernel))1617 -- stage 2 filter bank -gt squashing -gt L2 pooling -gt normalization18 modeladd(nnSpatialConvolutionMap(nntablesrandom(nstates[1] nstates[2] fanin[2]) filtsize filtsize))19 modeladd(nnTanh())20 modeladd(nnSpatialLPPooling(nstates[2]2poolsizepoolsizepoolsizepoolsize))21 modeladd(nnSpatialSubtractiveNormalization(nstates[2] normkernel))2223 -- stage 3 standard 2-layer neural network24 modeladd(nnReshape(nstates[2]filtsizefiltsize))25 modeladd(nnLinear(nstates[2]filtsizefiltsize nstates[3]))26 modeladd(nnTanh())27 modeladd(nnLinear(nstates[3] noutputs))

Код программы на Torch 7

Сверточные (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

Sparse linear reconstruction

bull Energy=reconstruction_error+code_prediction_error+code_sparsity

Автоэнкодер (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

bull saednntrain(x y hidden = c(1) activationfun = sigm learningrate = 08 momentum = 05 learningrate_scale = 1 output = sigm sae_output = linear numepochs = 3 batchsize = 100 hidden_dropout = 0 visible_dropout = 0)

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

Архитектура сети SAE

Архитектура с 5Х4 hidden 3 outs

Example

Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02)) Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1)) x lt- matrix(c(Var1 Var2) nrow = 100 ncol = 2)y lt- c(rep(1 50) rep(0 50))

обучение сетиdnn lt- saednntrain(x y hidden = c(5 5))

Анализ обучающего набора данныхgt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370helliphelliphelliphelliphelliphelliphelliphellip

gt y [1] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 [54] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

plot3d(xy)

Параметры SAE сети

gt dnn$input_dim[1] 2$output_dim[1] 1$hidden[1] 5 5$size[1] 2 5 5 1$activationfun[1] sigm$learningrate[1] 08

$momentum[1] 05$learningrate_scale[1] 1$hidden_dropout[1] 0$visible_dropout[1] 0$output[1] sigm$W

Коэффициенты связей

$W$W[[1]] [1] [2][1] -014355854 02471840[2] 011378030 -00715094[3] -004343738 03667468[4] 012756946 -01303379[5] -003445704 02293772

$W[[2]] [1] [2] [3] [4] [5][1] 00420191661 -0023073732 -008762756 0035575714 -0063000016[2] 00072771988 -0131204147 -010591421 0018221305 -0025539769[3] -01071896826 -0019479685 -009892573 -0012976429 -0111886901[4] -00009477304 -0023137518 -002147218 0007969452 -0118696306[5] 00045016013 0001885546 -010170954 -0140312396 -0003970102

$W[[3]] [1] [2] [3] [4] [5][1] 01027992 -007288099 003051227 -001731639 0009518049

$vW$vW[[1]] [1] [2][1] -8335203e-06 1368580e-05[2] -6530183e-05 1135070e-04[3] 2544302e-05 -3947111e-05[4] -5512835e-06 9541682e-06[5] 3822854e-05 -6281762e-05

$vW[[2]] [1] [2] [3] [4] [5][1] 4172450e-04 -2554411e-04 4896670e-04 -3526093e-04 3041932e-04[2] -3210759e-04 1978412e-04 -3769148e-04 2727933e-04 -2338477e-04[3] 1058770e-04 -6705336e-05 1244419e-04 -9201508e-05 7678296e-05[4] -8894178e-05 5481668e-05 -1044110e-04 7558269e-05 -6477571e-05[5] 2676520e-05 -1622289e-05 3139684e-05 -2243174e-05 1954349e-05

$vW[[3]] [1] [2] [3] [4] [5][1] -0002603034 -0002398256 -0003274074 -0002542478 -000209672

Предсказание обученной сетью

predict by dnntest_Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02))test_Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1))test_x lt- matrix(c(test_Var1 test_Var2) nrow = 100 ncol = 2)nntest(dnn test_x y)

[1] 025 Value error rate

Сравнение обучающей и тестовой выборки

gttest_x [1] [2] [1] 091887443 -08940890 [2] 115219448 -06050481 [3] 069917981 -08524551 [4] 028213787 -08146816 [5] 098405598 -11440813 [6] 185911887 -08203652 [7] 010843056 -10123789 [8] 083827953 -07594760 [9] -016373562 -09087116 [10] 088298748 -09767741 [11] 005280917 -07525407

gt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370

Plot3d(test_xy) Plot3d(xy)

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)

Подготовка к обработке

starting installationstep1installpackages(devtools)library(devtools)install_github(repo = mnist username = xrobin ref = master)library(mnist)

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
  • Аппроксимация линейными многообразиями (подпространствами)
  • Slide 30
  • Алгоритм
  • princomp(formula data = NULL subset naaction )
  • Principal Component Analysis (PCA)
  • Линейный дискриминантный анализ (Linear Discriminant Analysis -
  • Решение
  • lda(x grouping prior = proportions tol = 10e-4 method
  • Slide 37
  • Linear Discriminant Analysis (LDA)
  • Сравнение PCA и LDA
  • Метод опорных векторов (Support Vector Machines - SVM)
  • Идея алгоритма
  • Иллюстрация на простейшем примере
  • Линейная неразделимость и использование ядер
  • Иллюстрация использования ядра для отображения 2D -gt 3D
  • svm((formula data = NULL subset naaction = naomit sc
  • Support Vector Machines
  • Глубокое обучение (Deep Learning)
  • laquoВ 1997 году Deep Blue обыграл в шахматы Каспарова В 2011 Wats
  • Распознавание основано на feature detection и последующем раз
  • Распознавание рукописных цифр
  • Еще пример посложнее
  • Использование нейронной сети с обучением
  • Сверхвысокая размерность при работе с первичным представлением
  • Пиксельное кодирование
  • Принцип иерархии понятий ndash основа deep learning
  • Разреженное (sparse) кодирование
  • Словарь для лиц
  • Slide 58
  • Выделение объектов заданного класса
  • Основные архитектуры Deep Learning
  • Задача классификации распознавания и подобные являются задачей
  • Фактор - графы
  • Slide 63
  • Slide 64
  • Подход разреженного кодирования
  • Обобщенная архитектура
  • Slide 67
  • Slide 68
  • Slide 69
  • В действительности работают любые архитектуры построения функц
  • Machine Learning with Torch7 (httpcodecogbitscomwikidoku
  • Torch 7 является расширением Lua
  • Slide 73
  • Slide 74
  • Сверточные (convolution) нейронные сети
  • Свертка и архитектура 4-х уровневой сверточной сети
  • Функциональная структура
  • Примеры успешного применения сверточных сетей
  • Диагностика эпилепсии по ЭЭГ
  • Реализация сверточной сетью
  • Одна из самых больших сверточных сетей
  • Пример тэгирования
  • Пример поиска похожих по изображению
  • Пример поиска в коллекции изображений по текстовому запросу
  • Пример laquoоблачногоraquo классификатора изображений
  • Slide 86
  • Самообучающиеся нейронные сети на основе минимизации функции эн
  • RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцман
  • Алгоритм обучения Contrastive Divergence (CD)
  • Основные уравнения адаптации
  • Алгоритм Хинтона - Contrastive Divergence (CD-k)
  • darch Package for deep architectures and Restricted-Bolzmann-
  • Связь плотности вероятности и энергии
  • Задача обучения с точки минимизации энергии сети
  • Интуитивные соображения
  • Slide 96
  • Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decom
  • Sparse linear reconstruction
  • Автоэнкодер (auto encoder)
  • Архитекттура ICA моделей
  • Итеративные алгоритмы с оптимальным разреженным кодированием 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)
Page 4: !Predictive analytics part_2

Методы обучающихся машин для аналитики которые мы рассмотрим

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

Данные которые мы будем использовать для демо состоят из смеси трех двумерных нормальных распределений Целью является построить такую систему классификации которая сможет определять какому из распределений принадлежат поступающие данные Выведем данные для наглядности

A lt- rmulnorm (N3 c(11) matrix(c(4-6-618) 22))B lt- rmulnorm (N3 c(81) matrix(c(1001) 22))C lt- rmulnorm (N3 c(38) matrix(c(405052) 22))

data lt- dataframe(rbind (ABC))colnames(data) lt- c(x y)data$class lt- c(rep(A N3) rep(B N3) rep(C N3))

Data looks likeplot_it lt- function ()

plot (data[12] type=n)points(A pch=A col=red)points(B pch=B col=blue)points(C pch=C col=orange)

plot_it()

Так выглядят визуализированные данные сгенерированные скриптом

Разделение данных на обучающие и проверочные является важным этапом 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

not used

kmeans(x centers itermax = 10 nstart = 1 algorithm = c(Hartigan-Wong Lloyd Forgy MacQueen) trace=FALSE) S3 method for class kmeans fitted(object method = c(centers classes) )

cluster A vector of integers (from 1k) indicating the cluster to which each point is allocated

centers A matrix of cluster centres

totss The total sum of squares

withinss Vector of within-cluster sum of squares one component per cluster

totwithinss Total within-cluster sum of squares ie sum(withinss)

betweenss The between-cluster sum of squares ie totss-totwithinss

size The number of points in each cluster

iter The number of (outer) iterations

ifault integer indicator of a possible algorithm problem ndash for experts

kmeans returns an object of class kmeans which has a print and a fitted method It is a list with at least the following components

fitted(object method = c(centers classes) )

Здесь мы используем заранее известный факт что необходимо классифицировать данные на три класса ndash кластера Поэтому число кластеров k=3

gtk lt- kmeans(train[12] 3)gtplot(train[12] type=n)gttext(train[12] ascharacter(k$cluster))gtcm (train$class k$cluster)

predicted A B C 3 504 0 0 1 6 692 3 2 186 0 709

Еще одна иллюстрация работы алгоритма 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

test$predicted_class lt- knn(train[12] test[12] train$class k=1)

(mlt-cm(test$class test$predicted_class))

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)

predicted2 lt- asnumeric(apply(predict(r2) 1 function(r) order(-r)[1]))(m lt- cm (train$class predicted2))1 - sum(diag(m)) sum(m)

Линейный дискриминантный анализ (Linear Discriminant Analysis - LDA)bull Для каждого образца объекта или события с известным классом y

рассматривается набор наблюдений x (называемых ещё признаками переменными или измерениями) Набор таких образцов называется обучающей выборкой (или набором обучения обучением) Задачи классификации состоит в том чтобы построить хороший прогноз класса y для всякого так же распределённого объекта (не обязательно содержащегося в обучающей выборке) имея только наблюдения x Основная идея состоит в сравнении распределений для каждого из классов Расстоянием (по Фишеру) между распределениями принято считать отношение межклассовой дисперсии к внутриклассовой

Решение

bull Предполагается гауссово распределение совместных вероятностей

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

Linear Discriminant Analysis (LDA)

l lt- lda(class ~ x + y data = train)

(m lt- cm(train$class predict(l)$class))1 - sum(diag(m)) sum(m)

par(mfrow=c(12))train_lda lt- asmatrix(train[12]) l$scalingplot_it()plot(train_lda type=n)text(train_lda train$class)par(mfrow=c(11))

Сравнение 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)

(m lt- cm(train$class predict(s)))1 - sum(diag(m)) sum(m)

(m lt- cm(test$class predict(s test[12])))1 - sum(diag(m)) sum(m)

Глубокое обучение (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) матрицы Якобиана

ቈ120597119865119894ሺ119883119894minus1119882119894ሻ120597119882119894 119896119897 = 120597[119865119894(119883119894minus1119882119894)]119896120597[119882119894]119897

Сводится к рекуррентному соотношению для вычисления градиента 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

Сверточная (convolution) нейронная сеть

1 -- parameters 2 nstates = 16256128 3 fanin = 14 4 filtsize = 5 5 poolsize = 2 6 normkernel = imagegaussian1D(7) 7 8 -- Container 9 model = nnSequential()1011 -- stage 1 filter bank -gt squashing -gt L2 pooling -gt normalization12 modeladd(nnSpatialConvolutionMap(nntablesrandom(nfeats nstates[1] fanin[1]) filtsize filtsize))13 modeladd(nnTanh())14 modeladd(nnSpatialLPPooling(nstates[1]2poolsizepoolsizepoolsizepoolsize))15 modeladd(nnSpatialSubtractiveNormalization(16 normkernel))1617 -- stage 2 filter bank -gt squashing -gt L2 pooling -gt normalization18 modeladd(nnSpatialConvolutionMap(nntablesrandom(nstates[1] nstates[2] fanin[2]) filtsize filtsize))19 modeladd(nnTanh())20 modeladd(nnSpatialLPPooling(nstates[2]2poolsizepoolsizepoolsizepoolsize))21 modeladd(nnSpatialSubtractiveNormalization(nstates[2] normkernel))2223 -- stage 3 standard 2-layer neural network24 modeladd(nnReshape(nstates[2]filtsizefiltsize))25 modeladd(nnLinear(nstates[2]filtsizefiltsize nstates[3]))26 modeladd(nnTanh())27 modeladd(nnLinear(nstates[3] noutputs))

Код программы на Torch 7

Сверточные (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

Sparse linear reconstruction

bull Energy=reconstruction_error+code_prediction_error+code_sparsity

Автоэнкодер (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

bull saednntrain(x y hidden = c(1) activationfun = sigm learningrate = 08 momentum = 05 learningrate_scale = 1 output = sigm sae_output = linear numepochs = 3 batchsize = 100 hidden_dropout = 0 visible_dropout = 0)

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

Архитектура сети SAE

Архитектура с 5Х4 hidden 3 outs

Example

Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02)) Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1)) x lt- matrix(c(Var1 Var2) nrow = 100 ncol = 2)y lt- c(rep(1 50) rep(0 50))

обучение сетиdnn lt- saednntrain(x y hidden = c(5 5))

Анализ обучающего набора данныхgt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370helliphelliphelliphelliphelliphelliphelliphellip

gt y [1] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 [54] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

plot3d(xy)

Параметры SAE сети

gt dnn$input_dim[1] 2$output_dim[1] 1$hidden[1] 5 5$size[1] 2 5 5 1$activationfun[1] sigm$learningrate[1] 08

$momentum[1] 05$learningrate_scale[1] 1$hidden_dropout[1] 0$visible_dropout[1] 0$output[1] sigm$W

Коэффициенты связей

$W$W[[1]] [1] [2][1] -014355854 02471840[2] 011378030 -00715094[3] -004343738 03667468[4] 012756946 -01303379[5] -003445704 02293772

$W[[2]] [1] [2] [3] [4] [5][1] 00420191661 -0023073732 -008762756 0035575714 -0063000016[2] 00072771988 -0131204147 -010591421 0018221305 -0025539769[3] -01071896826 -0019479685 -009892573 -0012976429 -0111886901[4] -00009477304 -0023137518 -002147218 0007969452 -0118696306[5] 00045016013 0001885546 -010170954 -0140312396 -0003970102

$W[[3]] [1] [2] [3] [4] [5][1] 01027992 -007288099 003051227 -001731639 0009518049

$vW$vW[[1]] [1] [2][1] -8335203e-06 1368580e-05[2] -6530183e-05 1135070e-04[3] 2544302e-05 -3947111e-05[4] -5512835e-06 9541682e-06[5] 3822854e-05 -6281762e-05

$vW[[2]] [1] [2] [3] [4] [5][1] 4172450e-04 -2554411e-04 4896670e-04 -3526093e-04 3041932e-04[2] -3210759e-04 1978412e-04 -3769148e-04 2727933e-04 -2338477e-04[3] 1058770e-04 -6705336e-05 1244419e-04 -9201508e-05 7678296e-05[4] -8894178e-05 5481668e-05 -1044110e-04 7558269e-05 -6477571e-05[5] 2676520e-05 -1622289e-05 3139684e-05 -2243174e-05 1954349e-05

$vW[[3]] [1] [2] [3] [4] [5][1] -0002603034 -0002398256 -0003274074 -0002542478 -000209672

Предсказание обученной сетью

predict by dnntest_Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02))test_Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1))test_x lt- matrix(c(test_Var1 test_Var2) nrow = 100 ncol = 2)nntest(dnn test_x y)

[1] 025 Value error rate

Сравнение обучающей и тестовой выборки

gttest_x [1] [2] [1] 091887443 -08940890 [2] 115219448 -06050481 [3] 069917981 -08524551 [4] 028213787 -08146816 [5] 098405598 -11440813 [6] 185911887 -08203652 [7] 010843056 -10123789 [8] 083827953 -07594760 [9] -016373562 -09087116 [10] 088298748 -09767741 [11] 005280917 -07525407

gt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370

Plot3d(test_xy) Plot3d(xy)

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)

Подготовка к обработке

starting installationstep1installpackages(devtools)library(devtools)install_github(repo = mnist username = xrobin ref = master)library(mnist)

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
  • Аппроксимация линейными многообразиями (подпространствами)
  • Slide 30
  • Алгоритм
  • princomp(formula data = NULL subset naaction )
  • Principal Component Analysis (PCA)
  • Линейный дискриминантный анализ (Linear Discriminant Analysis -
  • Решение
  • lda(x grouping prior = proportions tol = 10e-4 method
  • Slide 37
  • Linear Discriminant Analysis (LDA)
  • Сравнение PCA и LDA
  • Метод опорных векторов (Support Vector Machines - SVM)
  • Идея алгоритма
  • Иллюстрация на простейшем примере
  • Линейная неразделимость и использование ядер
  • Иллюстрация использования ядра для отображения 2D -gt 3D
  • svm((formula data = NULL subset naaction = naomit sc
  • Support Vector Machines
  • Глубокое обучение (Deep Learning)
  • laquoВ 1997 году Deep Blue обыграл в шахматы Каспарова В 2011 Wats
  • Распознавание основано на feature detection и последующем раз
  • Распознавание рукописных цифр
  • Еще пример посложнее
  • Использование нейронной сети с обучением
  • Сверхвысокая размерность при работе с первичным представлением
  • Пиксельное кодирование
  • Принцип иерархии понятий ndash основа deep learning
  • Разреженное (sparse) кодирование
  • Словарь для лиц
  • Slide 58
  • Выделение объектов заданного класса
  • Основные архитектуры Deep Learning
  • Задача классификации распознавания и подобные являются задачей
  • Фактор - графы
  • Slide 63
  • Slide 64
  • Подход разреженного кодирования
  • Обобщенная архитектура
  • Slide 67
  • Slide 68
  • Slide 69
  • В действительности работают любые архитектуры построения функц
  • Machine Learning with Torch7 (httpcodecogbitscomwikidoku
  • Torch 7 является расширением Lua
  • Slide 73
  • Slide 74
  • Сверточные (convolution) нейронные сети
  • Свертка и архитектура 4-х уровневой сверточной сети
  • Функциональная структура
  • Примеры успешного применения сверточных сетей
  • Диагностика эпилепсии по ЭЭГ
  • Реализация сверточной сетью
  • Одна из самых больших сверточных сетей
  • Пример тэгирования
  • Пример поиска похожих по изображению
  • Пример поиска в коллекции изображений по текстовому запросу
  • Пример laquoоблачногоraquo классификатора изображений
  • Slide 86
  • Самообучающиеся нейронные сети на основе минимизации функции эн
  • RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцман
  • Алгоритм обучения Contrastive Divergence (CD)
  • Основные уравнения адаптации
  • Алгоритм Хинтона - Contrastive Divergence (CD-k)
  • darch Package for deep architectures and Restricted-Bolzmann-
  • Связь плотности вероятности и энергии
  • Задача обучения с точки минимизации энергии сети
  • Интуитивные соображения
  • Slide 96
  • Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decom
  • Sparse linear reconstruction
  • Автоэнкодер (auto encoder)
  • Архитекттура ICA моделей
  • Итеративные алгоритмы с оптимальным разреженным кодированием 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)
Page 5: !Predictive analytics part_2

Сначала нужно загрузить несколько пакетов (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

Данные которые мы будем использовать для демо состоят из смеси трех двумерных нормальных распределений Целью является построить такую систему классификации которая сможет определять какому из распределений принадлежат поступающие данные Выведем данные для наглядности

A lt- rmulnorm (N3 c(11) matrix(c(4-6-618) 22))B lt- rmulnorm (N3 c(81) matrix(c(1001) 22))C lt- rmulnorm (N3 c(38) matrix(c(405052) 22))

data lt- dataframe(rbind (ABC))colnames(data) lt- c(x y)data$class lt- c(rep(A N3) rep(B N3) rep(C N3))

Data looks likeplot_it lt- function ()

plot (data[12] type=n)points(A pch=A col=red)points(B pch=B col=blue)points(C pch=C col=orange)

plot_it()

Так выглядят визуализированные данные сгенерированные скриптом

Разделение данных на обучающие и проверочные является важным этапом 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

not used

kmeans(x centers itermax = 10 nstart = 1 algorithm = c(Hartigan-Wong Lloyd Forgy MacQueen) trace=FALSE) S3 method for class kmeans fitted(object method = c(centers classes) )

cluster A vector of integers (from 1k) indicating the cluster to which each point is allocated

centers A matrix of cluster centres

totss The total sum of squares

withinss Vector of within-cluster sum of squares one component per cluster

totwithinss Total within-cluster sum of squares ie sum(withinss)

betweenss The between-cluster sum of squares ie totss-totwithinss

size The number of points in each cluster

iter The number of (outer) iterations

ifault integer indicator of a possible algorithm problem ndash for experts

kmeans returns an object of class kmeans which has a print and a fitted method It is a list with at least the following components

fitted(object method = c(centers classes) )

Здесь мы используем заранее известный факт что необходимо классифицировать данные на три класса ndash кластера Поэтому число кластеров k=3

gtk lt- kmeans(train[12] 3)gtplot(train[12] type=n)gttext(train[12] ascharacter(k$cluster))gtcm (train$class k$cluster)

predicted A B C 3 504 0 0 1 6 692 3 2 186 0 709

Еще одна иллюстрация работы алгоритма 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

test$predicted_class lt- knn(train[12] test[12] train$class k=1)

(mlt-cm(test$class test$predicted_class))

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)

predicted2 lt- asnumeric(apply(predict(r2) 1 function(r) order(-r)[1]))(m lt- cm (train$class predicted2))1 - sum(diag(m)) sum(m)

Линейный дискриминантный анализ (Linear Discriminant Analysis - LDA)bull Для каждого образца объекта или события с известным классом y

рассматривается набор наблюдений x (называемых ещё признаками переменными или измерениями) Набор таких образцов называется обучающей выборкой (или набором обучения обучением) Задачи классификации состоит в том чтобы построить хороший прогноз класса y для всякого так же распределённого объекта (не обязательно содержащегося в обучающей выборке) имея только наблюдения x Основная идея состоит в сравнении распределений для каждого из классов Расстоянием (по Фишеру) между распределениями принято считать отношение межклассовой дисперсии к внутриклассовой

Решение

bull Предполагается гауссово распределение совместных вероятностей

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

Linear Discriminant Analysis (LDA)

l lt- lda(class ~ x + y data = train)

(m lt- cm(train$class predict(l)$class))1 - sum(diag(m)) sum(m)

par(mfrow=c(12))train_lda lt- asmatrix(train[12]) l$scalingplot_it()plot(train_lda type=n)text(train_lda train$class)par(mfrow=c(11))

Сравнение 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)

(m lt- cm(train$class predict(s)))1 - sum(diag(m)) sum(m)

(m lt- cm(test$class predict(s test[12])))1 - sum(diag(m)) sum(m)

Глубокое обучение (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) матрицы Якобиана

ቈ120597119865119894ሺ119883119894minus1119882119894ሻ120597119882119894 119896119897 = 120597[119865119894(119883119894minus1119882119894)]119896120597[119882119894]119897

Сводится к рекуррентному соотношению для вычисления градиента 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

Сверточная (convolution) нейронная сеть

1 -- parameters 2 nstates = 16256128 3 fanin = 14 4 filtsize = 5 5 poolsize = 2 6 normkernel = imagegaussian1D(7) 7 8 -- Container 9 model = nnSequential()1011 -- stage 1 filter bank -gt squashing -gt L2 pooling -gt normalization12 modeladd(nnSpatialConvolutionMap(nntablesrandom(nfeats nstates[1] fanin[1]) filtsize filtsize))13 modeladd(nnTanh())14 modeladd(nnSpatialLPPooling(nstates[1]2poolsizepoolsizepoolsizepoolsize))15 modeladd(nnSpatialSubtractiveNormalization(16 normkernel))1617 -- stage 2 filter bank -gt squashing -gt L2 pooling -gt normalization18 modeladd(nnSpatialConvolutionMap(nntablesrandom(nstates[1] nstates[2] fanin[2]) filtsize filtsize))19 modeladd(nnTanh())20 modeladd(nnSpatialLPPooling(nstates[2]2poolsizepoolsizepoolsizepoolsize))21 modeladd(nnSpatialSubtractiveNormalization(nstates[2] normkernel))2223 -- stage 3 standard 2-layer neural network24 modeladd(nnReshape(nstates[2]filtsizefiltsize))25 modeladd(nnLinear(nstates[2]filtsizefiltsize nstates[3]))26 modeladd(nnTanh())27 modeladd(nnLinear(nstates[3] noutputs))

Код программы на Torch 7

Сверточные (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

Sparse linear reconstruction

bull Energy=reconstruction_error+code_prediction_error+code_sparsity

Автоэнкодер (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

bull saednntrain(x y hidden = c(1) activationfun = sigm learningrate = 08 momentum = 05 learningrate_scale = 1 output = sigm sae_output = linear numepochs = 3 batchsize = 100 hidden_dropout = 0 visible_dropout = 0)

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

Архитектура сети SAE

Архитектура с 5Х4 hidden 3 outs

Example

Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02)) Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1)) x lt- matrix(c(Var1 Var2) nrow = 100 ncol = 2)y lt- c(rep(1 50) rep(0 50))

обучение сетиdnn lt- saednntrain(x y hidden = c(5 5))

Анализ обучающего набора данныхgt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370helliphelliphelliphelliphelliphelliphelliphellip

gt y [1] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 [54] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

plot3d(xy)

Параметры SAE сети

gt dnn$input_dim[1] 2$output_dim[1] 1$hidden[1] 5 5$size[1] 2 5 5 1$activationfun[1] sigm$learningrate[1] 08

$momentum[1] 05$learningrate_scale[1] 1$hidden_dropout[1] 0$visible_dropout[1] 0$output[1] sigm$W

Коэффициенты связей

$W$W[[1]] [1] [2][1] -014355854 02471840[2] 011378030 -00715094[3] -004343738 03667468[4] 012756946 -01303379[5] -003445704 02293772

$W[[2]] [1] [2] [3] [4] [5][1] 00420191661 -0023073732 -008762756 0035575714 -0063000016[2] 00072771988 -0131204147 -010591421 0018221305 -0025539769[3] -01071896826 -0019479685 -009892573 -0012976429 -0111886901[4] -00009477304 -0023137518 -002147218 0007969452 -0118696306[5] 00045016013 0001885546 -010170954 -0140312396 -0003970102

$W[[3]] [1] [2] [3] [4] [5][1] 01027992 -007288099 003051227 -001731639 0009518049

$vW$vW[[1]] [1] [2][1] -8335203e-06 1368580e-05[2] -6530183e-05 1135070e-04[3] 2544302e-05 -3947111e-05[4] -5512835e-06 9541682e-06[5] 3822854e-05 -6281762e-05

$vW[[2]] [1] [2] [3] [4] [5][1] 4172450e-04 -2554411e-04 4896670e-04 -3526093e-04 3041932e-04[2] -3210759e-04 1978412e-04 -3769148e-04 2727933e-04 -2338477e-04[3] 1058770e-04 -6705336e-05 1244419e-04 -9201508e-05 7678296e-05[4] -8894178e-05 5481668e-05 -1044110e-04 7558269e-05 -6477571e-05[5] 2676520e-05 -1622289e-05 3139684e-05 -2243174e-05 1954349e-05

$vW[[3]] [1] [2] [3] [4] [5][1] -0002603034 -0002398256 -0003274074 -0002542478 -000209672

Предсказание обученной сетью

predict by dnntest_Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02))test_Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1))test_x lt- matrix(c(test_Var1 test_Var2) nrow = 100 ncol = 2)nntest(dnn test_x y)

[1] 025 Value error rate

Сравнение обучающей и тестовой выборки

gttest_x [1] [2] [1] 091887443 -08940890 [2] 115219448 -06050481 [3] 069917981 -08524551 [4] 028213787 -08146816 [5] 098405598 -11440813 [6] 185911887 -08203652 [7] 010843056 -10123789 [8] 083827953 -07594760 [9] -016373562 -09087116 [10] 088298748 -09767741 [11] 005280917 -07525407

gt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370

Plot3d(test_xy) Plot3d(xy)

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)

Подготовка к обработке

starting installationstep1installpackages(devtools)library(devtools)install_github(repo = mnist username = xrobin ref = master)library(mnist)

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
  • Аппроксимация линейными многообразиями (подпространствами)
  • Slide 30
  • Алгоритм
  • princomp(formula data = NULL subset naaction )
  • Principal Component Analysis (PCA)
  • Линейный дискриминантный анализ (Linear Discriminant Analysis -
  • Решение
  • lda(x grouping prior = proportions tol = 10e-4 method
  • Slide 37
  • Linear Discriminant Analysis (LDA)
  • Сравнение PCA и LDA
  • Метод опорных векторов (Support Vector Machines - SVM)
  • Идея алгоритма
  • Иллюстрация на простейшем примере
  • Линейная неразделимость и использование ядер
  • Иллюстрация использования ядра для отображения 2D -gt 3D
  • svm((formula data = NULL subset naaction = naomit sc
  • Support Vector Machines
  • Глубокое обучение (Deep Learning)
  • laquoВ 1997 году Deep Blue обыграл в шахматы Каспарова В 2011 Wats
  • Распознавание основано на feature detection и последующем раз
  • Распознавание рукописных цифр
  • Еще пример посложнее
  • Использование нейронной сети с обучением
  • Сверхвысокая размерность при работе с первичным представлением
  • Пиксельное кодирование
  • Принцип иерархии понятий ndash основа deep learning
  • Разреженное (sparse) кодирование
  • Словарь для лиц
  • Slide 58
  • Выделение объектов заданного класса
  • Основные архитектуры Deep Learning
  • Задача классификации распознавания и подобные являются задачей
  • Фактор - графы
  • Slide 63
  • Slide 64
  • Подход разреженного кодирования
  • Обобщенная архитектура
  • Slide 67
  • Slide 68
  • Slide 69
  • В действительности работают любые архитектуры построения функц
  • Machine Learning with Torch7 (httpcodecogbitscomwikidoku
  • Torch 7 является расширением Lua
  • Slide 73
  • Slide 74
  • Сверточные (convolution) нейронные сети
  • Свертка и архитектура 4-х уровневой сверточной сети
  • Функциональная структура
  • Примеры успешного применения сверточных сетей
  • Диагностика эпилепсии по ЭЭГ
  • Реализация сверточной сетью
  • Одна из самых больших сверточных сетей
  • Пример тэгирования
  • Пример поиска похожих по изображению
  • Пример поиска в коллекции изображений по текстовому запросу
  • Пример laquoоблачногоraquo классификатора изображений
  • Slide 86
  • Самообучающиеся нейронные сети на основе минимизации функции эн
  • RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцман
  • Алгоритм обучения Contrastive Divergence (CD)
  • Основные уравнения адаптации
  • Алгоритм Хинтона - Contrastive Divergence (CD-k)
  • darch Package for deep architectures and Restricted-Bolzmann-
  • Связь плотности вероятности и энергии
  • Задача обучения с точки минимизации энергии сети
  • Интуитивные соображения
  • Slide 96
  • Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decom
  • Sparse linear reconstruction
  • Автоэнкодер (auto encoder)
  • Архитекттура ICA моделей
  • Итеративные алгоритмы с оптимальным разреженным кодированием 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)
Page 6: !Predictive analytics part_2

Данные для анализа

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

Данные которые мы будем использовать для демо состоят из смеси трех двумерных нормальных распределений Целью является построить такую систему классификации которая сможет определять какому из распределений принадлежат поступающие данные Выведем данные для наглядности

A lt- rmulnorm (N3 c(11) matrix(c(4-6-618) 22))B lt- rmulnorm (N3 c(81) matrix(c(1001) 22))C lt- rmulnorm (N3 c(38) matrix(c(405052) 22))

data lt- dataframe(rbind (ABC))colnames(data) lt- c(x y)data$class lt- c(rep(A N3) rep(B N3) rep(C N3))

Data looks likeplot_it lt- function ()

plot (data[12] type=n)points(A pch=A col=red)points(B pch=B col=blue)points(C pch=C col=orange)

plot_it()

Так выглядят визуализированные данные сгенерированные скриптом

Разделение данных на обучающие и проверочные является важным этапом 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

not used

kmeans(x centers itermax = 10 nstart = 1 algorithm = c(Hartigan-Wong Lloyd Forgy MacQueen) trace=FALSE) S3 method for class kmeans fitted(object method = c(centers classes) )

cluster A vector of integers (from 1k) indicating the cluster to which each point is allocated

centers A matrix of cluster centres

totss The total sum of squares

withinss Vector of within-cluster sum of squares one component per cluster

totwithinss Total within-cluster sum of squares ie sum(withinss)

betweenss The between-cluster sum of squares ie totss-totwithinss

size The number of points in each cluster

iter The number of (outer) iterations

ifault integer indicator of a possible algorithm problem ndash for experts

kmeans returns an object of class kmeans which has a print and a fitted method It is a list with at least the following components

fitted(object method = c(centers classes) )

Здесь мы используем заранее известный факт что необходимо классифицировать данные на три класса ndash кластера Поэтому число кластеров k=3

gtk lt- kmeans(train[12] 3)gtplot(train[12] type=n)gttext(train[12] ascharacter(k$cluster))gtcm (train$class k$cluster)

predicted A B C 3 504 0 0 1 6 692 3 2 186 0 709

Еще одна иллюстрация работы алгоритма 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

test$predicted_class lt- knn(train[12] test[12] train$class k=1)

(mlt-cm(test$class test$predicted_class))

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)

predicted2 lt- asnumeric(apply(predict(r2) 1 function(r) order(-r)[1]))(m lt- cm (train$class predicted2))1 - sum(diag(m)) sum(m)

Линейный дискриминантный анализ (Linear Discriminant Analysis - LDA)bull Для каждого образца объекта или события с известным классом y

рассматривается набор наблюдений x (называемых ещё признаками переменными или измерениями) Набор таких образцов называется обучающей выборкой (или набором обучения обучением) Задачи классификации состоит в том чтобы построить хороший прогноз класса y для всякого так же распределённого объекта (не обязательно содержащегося в обучающей выборке) имея только наблюдения x Основная идея состоит в сравнении распределений для каждого из классов Расстоянием (по Фишеру) между распределениями принято считать отношение межклассовой дисперсии к внутриклассовой

Решение

bull Предполагается гауссово распределение совместных вероятностей

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

Linear Discriminant Analysis (LDA)

l lt- lda(class ~ x + y data = train)

(m lt- cm(train$class predict(l)$class))1 - sum(diag(m)) sum(m)

par(mfrow=c(12))train_lda lt- asmatrix(train[12]) l$scalingplot_it()plot(train_lda type=n)text(train_lda train$class)par(mfrow=c(11))

Сравнение 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)

(m lt- cm(train$class predict(s)))1 - sum(diag(m)) sum(m)

(m lt- cm(test$class predict(s test[12])))1 - sum(diag(m)) sum(m)

Глубокое обучение (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) матрицы Якобиана

ቈ120597119865119894ሺ119883119894minus1119882119894ሻ120597119882119894 119896119897 = 120597[119865119894(119883119894minus1119882119894)]119896120597[119882119894]119897

Сводится к рекуррентному соотношению для вычисления градиента 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

Сверточная (convolution) нейронная сеть

1 -- parameters 2 nstates = 16256128 3 fanin = 14 4 filtsize = 5 5 poolsize = 2 6 normkernel = imagegaussian1D(7) 7 8 -- Container 9 model = nnSequential()1011 -- stage 1 filter bank -gt squashing -gt L2 pooling -gt normalization12 modeladd(nnSpatialConvolutionMap(nntablesrandom(nfeats nstates[1] fanin[1]) filtsize filtsize))13 modeladd(nnTanh())14 modeladd(nnSpatialLPPooling(nstates[1]2poolsizepoolsizepoolsizepoolsize))15 modeladd(nnSpatialSubtractiveNormalization(16 normkernel))1617 -- stage 2 filter bank -gt squashing -gt L2 pooling -gt normalization18 modeladd(nnSpatialConvolutionMap(nntablesrandom(nstates[1] nstates[2] fanin[2]) filtsize filtsize))19 modeladd(nnTanh())20 modeladd(nnSpatialLPPooling(nstates[2]2poolsizepoolsizepoolsizepoolsize))21 modeladd(nnSpatialSubtractiveNormalization(nstates[2] normkernel))2223 -- stage 3 standard 2-layer neural network24 modeladd(nnReshape(nstates[2]filtsizefiltsize))25 modeladd(nnLinear(nstates[2]filtsizefiltsize nstates[3]))26 modeladd(nnTanh())27 modeladd(nnLinear(nstates[3] noutputs))

Код программы на Torch 7

Сверточные (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

Sparse linear reconstruction

bull Energy=reconstruction_error+code_prediction_error+code_sparsity

Автоэнкодер (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

bull saednntrain(x y hidden = c(1) activationfun = sigm learningrate = 08 momentum = 05 learningrate_scale = 1 output = sigm sae_output = linear numepochs = 3 batchsize = 100 hidden_dropout = 0 visible_dropout = 0)

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

Архитектура сети SAE

Архитектура с 5Х4 hidden 3 outs

Example

Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02)) Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1)) x lt- matrix(c(Var1 Var2) nrow = 100 ncol = 2)y lt- c(rep(1 50) rep(0 50))

обучение сетиdnn lt- saednntrain(x y hidden = c(5 5))

Анализ обучающего набора данныхgt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370helliphelliphelliphelliphelliphelliphelliphellip

gt y [1] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 [54] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

plot3d(xy)

Параметры SAE сети

gt dnn$input_dim[1] 2$output_dim[1] 1$hidden[1] 5 5$size[1] 2 5 5 1$activationfun[1] sigm$learningrate[1] 08

$momentum[1] 05$learningrate_scale[1] 1$hidden_dropout[1] 0$visible_dropout[1] 0$output[1] sigm$W

Коэффициенты связей

$W$W[[1]] [1] [2][1] -014355854 02471840[2] 011378030 -00715094[3] -004343738 03667468[4] 012756946 -01303379[5] -003445704 02293772

$W[[2]] [1] [2] [3] [4] [5][1] 00420191661 -0023073732 -008762756 0035575714 -0063000016[2] 00072771988 -0131204147 -010591421 0018221305 -0025539769[3] -01071896826 -0019479685 -009892573 -0012976429 -0111886901[4] -00009477304 -0023137518 -002147218 0007969452 -0118696306[5] 00045016013 0001885546 -010170954 -0140312396 -0003970102

$W[[3]] [1] [2] [3] [4] [5][1] 01027992 -007288099 003051227 -001731639 0009518049

$vW$vW[[1]] [1] [2][1] -8335203e-06 1368580e-05[2] -6530183e-05 1135070e-04[3] 2544302e-05 -3947111e-05[4] -5512835e-06 9541682e-06[5] 3822854e-05 -6281762e-05

$vW[[2]] [1] [2] [3] [4] [5][1] 4172450e-04 -2554411e-04 4896670e-04 -3526093e-04 3041932e-04[2] -3210759e-04 1978412e-04 -3769148e-04 2727933e-04 -2338477e-04[3] 1058770e-04 -6705336e-05 1244419e-04 -9201508e-05 7678296e-05[4] -8894178e-05 5481668e-05 -1044110e-04 7558269e-05 -6477571e-05[5] 2676520e-05 -1622289e-05 3139684e-05 -2243174e-05 1954349e-05

$vW[[3]] [1] [2] [3] [4] [5][1] -0002603034 -0002398256 -0003274074 -0002542478 -000209672

Предсказание обученной сетью

predict by dnntest_Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02))test_Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1))test_x lt- matrix(c(test_Var1 test_Var2) nrow = 100 ncol = 2)nntest(dnn test_x y)

[1] 025 Value error rate

Сравнение обучающей и тестовой выборки

gttest_x [1] [2] [1] 091887443 -08940890 [2] 115219448 -06050481 [3] 069917981 -08524551 [4] 028213787 -08146816 [5] 098405598 -11440813 [6] 185911887 -08203652 [7] 010843056 -10123789 [8] 083827953 -07594760 [9] -016373562 -09087116 [10] 088298748 -09767741 [11] 005280917 -07525407

gt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370

Plot3d(test_xy) Plot3d(xy)

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)

Подготовка к обработке

starting installationstep1installpackages(devtools)library(devtools)install_github(repo = mnist username = xrobin ref = master)library(mnist)

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
  • Аппроксимация линейными многообразиями (подпространствами)
  • Slide 30
  • Алгоритм
  • princomp(formula data = NULL subset naaction )
  • Principal Component Analysis (PCA)
  • Линейный дискриминантный анализ (Linear Discriminant Analysis -
  • Решение
  • lda(x grouping prior = proportions tol = 10e-4 method
  • Slide 37
  • Linear Discriminant Analysis (LDA)
  • Сравнение PCA и LDA
  • Метод опорных векторов (Support Vector Machines - SVM)
  • Идея алгоритма
  • Иллюстрация на простейшем примере
  • Линейная неразделимость и использование ядер
  • Иллюстрация использования ядра для отображения 2D -gt 3D
  • svm((formula data = NULL subset naaction = naomit sc
  • Support Vector Machines
  • Глубокое обучение (Deep Learning)
  • laquoВ 1997 году Deep Blue обыграл в шахматы Каспарова В 2011 Wats
  • Распознавание основано на feature detection и последующем раз
  • Распознавание рукописных цифр
  • Еще пример посложнее
  • Использование нейронной сети с обучением
  • Сверхвысокая размерность при работе с первичным представлением
  • Пиксельное кодирование
  • Принцип иерархии понятий ndash основа deep learning
  • Разреженное (sparse) кодирование
  • Словарь для лиц
  • Slide 58
  • Выделение объектов заданного класса
  • Основные архитектуры Deep Learning
  • Задача классификации распознавания и подобные являются задачей
  • Фактор - графы
  • Slide 63
  • Slide 64
  • Подход разреженного кодирования
  • Обобщенная архитектура
  • Slide 67
  • Slide 68
  • Slide 69
  • В действительности работают любые архитектуры построения функц
  • Machine Learning with Torch7 (httpcodecogbitscomwikidoku
  • Torch 7 является расширением Lua
  • Slide 73
  • Slide 74
  • Сверточные (convolution) нейронные сети
  • Свертка и архитектура 4-х уровневой сверточной сети
  • Функциональная структура
  • Примеры успешного применения сверточных сетей
  • Диагностика эпилепсии по ЭЭГ
  • Реализация сверточной сетью
  • Одна из самых больших сверточных сетей
  • Пример тэгирования
  • Пример поиска похожих по изображению
  • Пример поиска в коллекции изображений по текстовому запросу
  • Пример laquoоблачногоraquo классификатора изображений
  • Slide 86
  • Самообучающиеся нейронные сети на основе минимизации функции эн
  • RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцман
  • Алгоритм обучения Contrastive Divergence (CD)
  • Основные уравнения адаптации
  • Алгоритм Хинтона - Contrastive Divergence (CD-k)
  • darch Package for deep architectures and Restricted-Bolzmann-
  • Связь плотности вероятности и энергии
  • Задача обучения с точки минимизации энергии сети
  • Интуитивные соображения
  • Slide 96
  • Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decom
  • Sparse linear reconstruction
  • Автоэнкодер (auto encoder)
  • Архитекттура ICA моделей
  • Итеративные алгоритмы с оптимальным разреженным кодированием 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)
Page 7: !Predictive analytics part_2

Скрипт для генерации

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

Данные которые мы будем использовать для демо состоят из смеси трех двумерных нормальных распределений Целью является построить такую систему классификации которая сможет определять какому из распределений принадлежат поступающие данные Выведем данные для наглядности

A lt- rmulnorm (N3 c(11) matrix(c(4-6-618) 22))B lt- rmulnorm (N3 c(81) matrix(c(1001) 22))C lt- rmulnorm (N3 c(38) matrix(c(405052) 22))

data lt- dataframe(rbind (ABC))colnames(data) lt- c(x y)data$class lt- c(rep(A N3) rep(B N3) rep(C N3))

Data looks likeplot_it lt- function ()

plot (data[12] type=n)points(A pch=A col=red)points(B pch=B col=blue)points(C pch=C col=orange)

plot_it()

Так выглядят визуализированные данные сгенерированные скриптом

Разделение данных на обучающие и проверочные является важным этапом 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

not used

kmeans(x centers itermax = 10 nstart = 1 algorithm = c(Hartigan-Wong Lloyd Forgy MacQueen) trace=FALSE) S3 method for class kmeans fitted(object method = c(centers classes) )

cluster A vector of integers (from 1k) indicating the cluster to which each point is allocated

centers A matrix of cluster centres

totss The total sum of squares

withinss Vector of within-cluster sum of squares one component per cluster

totwithinss Total within-cluster sum of squares ie sum(withinss)

betweenss The between-cluster sum of squares ie totss-totwithinss

size The number of points in each cluster

iter The number of (outer) iterations

ifault integer indicator of a possible algorithm problem ndash for experts

kmeans returns an object of class kmeans which has a print and a fitted method It is a list with at least the following components

fitted(object method = c(centers classes) )

Здесь мы используем заранее известный факт что необходимо классифицировать данные на три класса ndash кластера Поэтому число кластеров k=3

gtk lt- kmeans(train[12] 3)gtplot(train[12] type=n)gttext(train[12] ascharacter(k$cluster))gtcm (train$class k$cluster)

predicted A B C 3 504 0 0 1 6 692 3 2 186 0 709

Еще одна иллюстрация работы алгоритма 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

test$predicted_class lt- knn(train[12] test[12] train$class k=1)

(mlt-cm(test$class test$predicted_class))

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)

predicted2 lt- asnumeric(apply(predict(r2) 1 function(r) order(-r)[1]))(m lt- cm (train$class predicted2))1 - sum(diag(m)) sum(m)

Линейный дискриминантный анализ (Linear Discriminant Analysis - LDA)bull Для каждого образца объекта или события с известным классом y

рассматривается набор наблюдений x (называемых ещё признаками переменными или измерениями) Набор таких образцов называется обучающей выборкой (или набором обучения обучением) Задачи классификации состоит в том чтобы построить хороший прогноз класса y для всякого так же распределённого объекта (не обязательно содержащегося в обучающей выборке) имея только наблюдения x Основная идея состоит в сравнении распределений для каждого из классов Расстоянием (по Фишеру) между распределениями принято считать отношение межклассовой дисперсии к внутриклассовой

Решение

bull Предполагается гауссово распределение совместных вероятностей

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

Linear Discriminant Analysis (LDA)

l lt- lda(class ~ x + y data = train)

(m lt- cm(train$class predict(l)$class))1 - sum(diag(m)) sum(m)

par(mfrow=c(12))train_lda lt- asmatrix(train[12]) l$scalingplot_it()plot(train_lda type=n)text(train_lda train$class)par(mfrow=c(11))

Сравнение 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)

(m lt- cm(train$class predict(s)))1 - sum(diag(m)) sum(m)

(m lt- cm(test$class predict(s test[12])))1 - sum(diag(m)) sum(m)

Глубокое обучение (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) матрицы Якобиана

ቈ120597119865119894ሺ119883119894minus1119882119894ሻ120597119882119894 119896119897 = 120597[119865119894(119883119894minus1119882119894)]119896120597[119882119894]119897

Сводится к рекуррентному соотношению для вычисления градиента 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

Сверточная (convolution) нейронная сеть

1 -- parameters 2 nstates = 16256128 3 fanin = 14 4 filtsize = 5 5 poolsize = 2 6 normkernel = imagegaussian1D(7) 7 8 -- Container 9 model = nnSequential()1011 -- stage 1 filter bank -gt squashing -gt L2 pooling -gt normalization12 modeladd(nnSpatialConvolutionMap(nntablesrandom(nfeats nstates[1] fanin[1]) filtsize filtsize))13 modeladd(nnTanh())14 modeladd(nnSpatialLPPooling(nstates[1]2poolsizepoolsizepoolsizepoolsize))15 modeladd(nnSpatialSubtractiveNormalization(16 normkernel))1617 -- stage 2 filter bank -gt squashing -gt L2 pooling -gt normalization18 modeladd(nnSpatialConvolutionMap(nntablesrandom(nstates[1] nstates[2] fanin[2]) filtsize filtsize))19 modeladd(nnTanh())20 modeladd(nnSpatialLPPooling(nstates[2]2poolsizepoolsizepoolsizepoolsize))21 modeladd(nnSpatialSubtractiveNormalization(nstates[2] normkernel))2223 -- stage 3 standard 2-layer neural network24 modeladd(nnReshape(nstates[2]filtsizefiltsize))25 modeladd(nnLinear(nstates[2]filtsizefiltsize nstates[3]))26 modeladd(nnTanh())27 modeladd(nnLinear(nstates[3] noutputs))

Код программы на Torch 7

Сверточные (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

Sparse linear reconstruction

bull Energy=reconstruction_error+code_prediction_error+code_sparsity

Автоэнкодер (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

bull saednntrain(x y hidden = c(1) activationfun = sigm learningrate = 08 momentum = 05 learningrate_scale = 1 output = sigm sae_output = linear numepochs = 3 batchsize = 100 hidden_dropout = 0 visible_dropout = 0)

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

Архитектура сети SAE

Архитектура с 5Х4 hidden 3 outs

Example

Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02)) Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1)) x lt- matrix(c(Var1 Var2) nrow = 100 ncol = 2)y lt- c(rep(1 50) rep(0 50))

обучение сетиdnn lt- saednntrain(x y hidden = c(5 5))

Анализ обучающего набора данныхgt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370helliphelliphelliphelliphelliphelliphelliphellip

gt y [1] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 [54] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

plot3d(xy)

Параметры SAE сети

gt dnn$input_dim[1] 2$output_dim[1] 1$hidden[1] 5 5$size[1] 2 5 5 1$activationfun[1] sigm$learningrate[1] 08

$momentum[1] 05$learningrate_scale[1] 1$hidden_dropout[1] 0$visible_dropout[1] 0$output[1] sigm$W

Коэффициенты связей

$W$W[[1]] [1] [2][1] -014355854 02471840[2] 011378030 -00715094[3] -004343738 03667468[4] 012756946 -01303379[5] -003445704 02293772

$W[[2]] [1] [2] [3] [4] [5][1] 00420191661 -0023073732 -008762756 0035575714 -0063000016[2] 00072771988 -0131204147 -010591421 0018221305 -0025539769[3] -01071896826 -0019479685 -009892573 -0012976429 -0111886901[4] -00009477304 -0023137518 -002147218 0007969452 -0118696306[5] 00045016013 0001885546 -010170954 -0140312396 -0003970102

$W[[3]] [1] [2] [3] [4] [5][1] 01027992 -007288099 003051227 -001731639 0009518049

$vW$vW[[1]] [1] [2][1] -8335203e-06 1368580e-05[2] -6530183e-05 1135070e-04[3] 2544302e-05 -3947111e-05[4] -5512835e-06 9541682e-06[5] 3822854e-05 -6281762e-05

$vW[[2]] [1] [2] [3] [4] [5][1] 4172450e-04 -2554411e-04 4896670e-04 -3526093e-04 3041932e-04[2] -3210759e-04 1978412e-04 -3769148e-04 2727933e-04 -2338477e-04[3] 1058770e-04 -6705336e-05 1244419e-04 -9201508e-05 7678296e-05[4] -8894178e-05 5481668e-05 -1044110e-04 7558269e-05 -6477571e-05[5] 2676520e-05 -1622289e-05 3139684e-05 -2243174e-05 1954349e-05

$vW[[3]] [1] [2] [3] [4] [5][1] -0002603034 -0002398256 -0003274074 -0002542478 -000209672

Предсказание обученной сетью

predict by dnntest_Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02))test_Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1))test_x lt- matrix(c(test_Var1 test_Var2) nrow = 100 ncol = 2)nntest(dnn test_x y)

[1] 025 Value error rate

Сравнение обучающей и тестовой выборки

gttest_x [1] [2] [1] 091887443 -08940890 [2] 115219448 -06050481 [3] 069917981 -08524551 [4] 028213787 -08146816 [5] 098405598 -11440813 [6] 185911887 -08203652 [7] 010843056 -10123789 [8] 083827953 -07594760 [9] -016373562 -09087116 [10] 088298748 -09767741 [11] 005280917 -07525407

gt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370

Plot3d(test_xy) Plot3d(xy)

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)

Подготовка к обработке

starting installationstep1installpackages(devtools)library(devtools)install_github(repo = mnist username = xrobin ref = master)library(mnist)

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
  • Аппроксимация линейными многообразиями (подпространствами)
  • Slide 30
  • Алгоритм
  • princomp(formula data = NULL subset naaction )
  • Principal Component Analysis (PCA)
  • Линейный дискриминантный анализ (Linear Discriminant Analysis -
  • Решение
  • lda(x grouping prior = proportions tol = 10e-4 method
  • Slide 37
  • Linear Discriminant Analysis (LDA)
  • Сравнение PCA и LDA
  • Метод опорных векторов (Support Vector Machines - SVM)
  • Идея алгоритма
  • Иллюстрация на простейшем примере
  • Линейная неразделимость и использование ядер
  • Иллюстрация использования ядра для отображения 2D -gt 3D
  • svm((formula data = NULL subset naaction = naomit sc
  • Support Vector Machines
  • Глубокое обучение (Deep Learning)
  • laquoВ 1997 году Deep Blue обыграл в шахматы Каспарова В 2011 Wats
  • Распознавание основано на feature detection и последующем раз
  • Распознавание рукописных цифр
  • Еще пример посложнее
  • Использование нейронной сети с обучением
  • Сверхвысокая размерность при работе с первичным представлением
  • Пиксельное кодирование
  • Принцип иерархии понятий ndash основа deep learning
  • Разреженное (sparse) кодирование
  • Словарь для лиц
  • Slide 58
  • Выделение объектов заданного класса
  • Основные архитектуры Deep Learning
  • Задача классификации распознавания и подобные являются задачей
  • Фактор - графы
  • Slide 63
  • Slide 64
  • Подход разреженного кодирования
  • Обобщенная архитектура
  • Slide 67
  • Slide 68
  • Slide 69
  • В действительности работают любые архитектуры построения функц
  • Machine Learning with Torch7 (httpcodecogbitscomwikidoku
  • Torch 7 является расширением Lua
  • Slide 73
  • Slide 74
  • Сверточные (convolution) нейронные сети
  • Свертка и архитектура 4-х уровневой сверточной сети
  • Функциональная структура
  • Примеры успешного применения сверточных сетей
  • Диагностика эпилепсии по ЭЭГ
  • Реализация сверточной сетью
  • Одна из самых больших сверточных сетей
  • Пример тэгирования
  • Пример поиска похожих по изображению
  • Пример поиска в коллекции изображений по текстовому запросу
  • Пример laquoоблачногоraquo классификатора изображений
  • Slide 86
  • Самообучающиеся нейронные сети на основе минимизации функции эн
  • RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцман
  • Алгоритм обучения Contrastive Divergence (CD)
  • Основные уравнения адаптации
  • Алгоритм Хинтона - Contrastive Divergence (CD-k)
  • darch Package for deep architectures and Restricted-Bolzmann-
  • Связь плотности вероятности и энергии
  • Задача обучения с точки минимизации энергии сети
  • Интуитивные соображения
  • Slide 96
  • Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decom
  • Sparse linear reconstruction
  • Автоэнкодер (auto encoder)
  • Архитекттура ICA моделей
  • Итеративные алгоритмы с оптимальным разреженным кодированием 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)
Page 8: !Predictive analytics part_2

Данные которые мы будем использовать для демо состоят из смеси трех двумерных нормальных распределений Целью является построить такую систему классификации которая сможет определять какому из распределений принадлежат поступающие данные Выведем данные для наглядности

A lt- rmulnorm (N3 c(11) matrix(c(4-6-618) 22))B lt- rmulnorm (N3 c(81) matrix(c(1001) 22))C lt- rmulnorm (N3 c(38) matrix(c(405052) 22))

data lt- dataframe(rbind (ABC))colnames(data) lt- c(x y)data$class lt- c(rep(A N3) rep(B N3) rep(C N3))

Data looks likeplot_it lt- function ()

plot (data[12] type=n)points(A pch=A col=red)points(B pch=B col=blue)points(C pch=C col=orange)

plot_it()

Так выглядят визуализированные данные сгенерированные скриптом

Разделение данных на обучающие и проверочные является важным этапом 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

not used

kmeans(x centers itermax = 10 nstart = 1 algorithm = c(Hartigan-Wong Lloyd Forgy MacQueen) trace=FALSE) S3 method for class kmeans fitted(object method = c(centers classes) )

cluster A vector of integers (from 1k) indicating the cluster to which each point is allocated

centers A matrix of cluster centres

totss The total sum of squares

withinss Vector of within-cluster sum of squares one component per cluster

totwithinss Total within-cluster sum of squares ie sum(withinss)

betweenss The between-cluster sum of squares ie totss-totwithinss

size The number of points in each cluster

iter The number of (outer) iterations

ifault integer indicator of a possible algorithm problem ndash for experts

kmeans returns an object of class kmeans which has a print and a fitted method It is a list with at least the following components

fitted(object method = c(centers classes) )

Здесь мы используем заранее известный факт что необходимо классифицировать данные на три класса ndash кластера Поэтому число кластеров k=3

gtk lt- kmeans(train[12] 3)gtplot(train[12] type=n)gttext(train[12] ascharacter(k$cluster))gtcm (train$class k$cluster)

predicted A B C 3 504 0 0 1 6 692 3 2 186 0 709

Еще одна иллюстрация работы алгоритма 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

test$predicted_class lt- knn(train[12] test[12] train$class k=1)

(mlt-cm(test$class test$predicted_class))

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)

predicted2 lt- asnumeric(apply(predict(r2) 1 function(r) order(-r)[1]))(m lt- cm (train$class predicted2))1 - sum(diag(m)) sum(m)

Линейный дискриминантный анализ (Linear Discriminant Analysis - LDA)bull Для каждого образца объекта или события с известным классом y

рассматривается набор наблюдений x (называемых ещё признаками переменными или измерениями) Набор таких образцов называется обучающей выборкой (или набором обучения обучением) Задачи классификации состоит в том чтобы построить хороший прогноз класса y для всякого так же распределённого объекта (не обязательно содержащегося в обучающей выборке) имея только наблюдения x Основная идея состоит в сравнении распределений для каждого из классов Расстоянием (по Фишеру) между распределениями принято считать отношение межклассовой дисперсии к внутриклассовой

Решение

bull Предполагается гауссово распределение совместных вероятностей

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

Linear Discriminant Analysis (LDA)

l lt- lda(class ~ x + y data = train)

(m lt- cm(train$class predict(l)$class))1 - sum(diag(m)) sum(m)

par(mfrow=c(12))train_lda lt- asmatrix(train[12]) l$scalingplot_it()plot(train_lda type=n)text(train_lda train$class)par(mfrow=c(11))

Сравнение 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)

(m lt- cm(train$class predict(s)))1 - sum(diag(m)) sum(m)

(m lt- cm(test$class predict(s test[12])))1 - sum(diag(m)) sum(m)

Глубокое обучение (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) матрицы Якобиана

ቈ120597119865119894ሺ119883119894minus1119882119894ሻ120597119882119894 119896119897 = 120597[119865119894(119883119894minus1119882119894)]119896120597[119882119894]119897

Сводится к рекуррентному соотношению для вычисления градиента 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

Сверточная (convolution) нейронная сеть

1 -- parameters 2 nstates = 16256128 3 fanin = 14 4 filtsize = 5 5 poolsize = 2 6 normkernel = imagegaussian1D(7) 7 8 -- Container 9 model = nnSequential()1011 -- stage 1 filter bank -gt squashing -gt L2 pooling -gt normalization12 modeladd(nnSpatialConvolutionMap(nntablesrandom(nfeats nstates[1] fanin[1]) filtsize filtsize))13 modeladd(nnTanh())14 modeladd(nnSpatialLPPooling(nstates[1]2poolsizepoolsizepoolsizepoolsize))15 modeladd(nnSpatialSubtractiveNormalization(16 normkernel))1617 -- stage 2 filter bank -gt squashing -gt L2 pooling -gt normalization18 modeladd(nnSpatialConvolutionMap(nntablesrandom(nstates[1] nstates[2] fanin[2]) filtsize filtsize))19 modeladd(nnTanh())20 modeladd(nnSpatialLPPooling(nstates[2]2poolsizepoolsizepoolsizepoolsize))21 modeladd(nnSpatialSubtractiveNormalization(nstates[2] normkernel))2223 -- stage 3 standard 2-layer neural network24 modeladd(nnReshape(nstates[2]filtsizefiltsize))25 modeladd(nnLinear(nstates[2]filtsizefiltsize nstates[3]))26 modeladd(nnTanh())27 modeladd(nnLinear(nstates[3] noutputs))

Код программы на Torch 7

Сверточные (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

Sparse linear reconstruction

bull Energy=reconstruction_error+code_prediction_error+code_sparsity

Автоэнкодер (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

bull saednntrain(x y hidden = c(1) activationfun = sigm learningrate = 08 momentum = 05 learningrate_scale = 1 output = sigm sae_output = linear numepochs = 3 batchsize = 100 hidden_dropout = 0 visible_dropout = 0)

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

Архитектура сети SAE

Архитектура с 5Х4 hidden 3 outs

Example

Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02)) Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1)) x lt- matrix(c(Var1 Var2) nrow = 100 ncol = 2)y lt- c(rep(1 50) rep(0 50))

обучение сетиdnn lt- saednntrain(x y hidden = c(5 5))

Анализ обучающего набора данныхgt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370helliphelliphelliphelliphelliphelliphelliphellip

gt y [1] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 [54] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

plot3d(xy)

Параметры SAE сети

gt dnn$input_dim[1] 2$output_dim[1] 1$hidden[1] 5 5$size[1] 2 5 5 1$activationfun[1] sigm$learningrate[1] 08

$momentum[1] 05$learningrate_scale[1] 1$hidden_dropout[1] 0$visible_dropout[1] 0$output[1] sigm$W

Коэффициенты связей

$W$W[[1]] [1] [2][1] -014355854 02471840[2] 011378030 -00715094[3] -004343738 03667468[4] 012756946 -01303379[5] -003445704 02293772

$W[[2]] [1] [2] [3] [4] [5][1] 00420191661 -0023073732 -008762756 0035575714 -0063000016[2] 00072771988 -0131204147 -010591421 0018221305 -0025539769[3] -01071896826 -0019479685 -009892573 -0012976429 -0111886901[4] -00009477304 -0023137518 -002147218 0007969452 -0118696306[5] 00045016013 0001885546 -010170954 -0140312396 -0003970102

$W[[3]] [1] [2] [3] [4] [5][1] 01027992 -007288099 003051227 -001731639 0009518049

$vW$vW[[1]] [1] [2][1] -8335203e-06 1368580e-05[2] -6530183e-05 1135070e-04[3] 2544302e-05 -3947111e-05[4] -5512835e-06 9541682e-06[5] 3822854e-05 -6281762e-05

$vW[[2]] [1] [2] [3] [4] [5][1] 4172450e-04 -2554411e-04 4896670e-04 -3526093e-04 3041932e-04[2] -3210759e-04 1978412e-04 -3769148e-04 2727933e-04 -2338477e-04[3] 1058770e-04 -6705336e-05 1244419e-04 -9201508e-05 7678296e-05[4] -8894178e-05 5481668e-05 -1044110e-04 7558269e-05 -6477571e-05[5] 2676520e-05 -1622289e-05 3139684e-05 -2243174e-05 1954349e-05

$vW[[3]] [1] [2] [3] [4] [5][1] -0002603034 -0002398256 -0003274074 -0002542478 -000209672

Предсказание обученной сетью

predict by dnntest_Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02))test_Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1))test_x lt- matrix(c(test_Var1 test_Var2) nrow = 100 ncol = 2)nntest(dnn test_x y)

[1] 025 Value error rate

Сравнение обучающей и тестовой выборки

gttest_x [1] [2] [1] 091887443 -08940890 [2] 115219448 -06050481 [3] 069917981 -08524551 [4] 028213787 -08146816 [5] 098405598 -11440813 [6] 185911887 -08203652 [7] 010843056 -10123789 [8] 083827953 -07594760 [9] -016373562 -09087116 [10] 088298748 -09767741 [11] 005280917 -07525407

gt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370

Plot3d(test_xy) Plot3d(xy)

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)

Подготовка к обработке

starting installationstep1installpackages(devtools)library(devtools)install_github(repo = mnist username = xrobin ref = master)library(mnist)

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
  • Аппроксимация линейными многообразиями (подпространствами)
  • Slide 30
  • Алгоритм
  • princomp(formula data = NULL subset naaction )
  • Principal Component Analysis (PCA)
  • Линейный дискриминантный анализ (Linear Discriminant Analysis -
  • Решение
  • lda(x grouping prior = proportions tol = 10e-4 method
  • Slide 37
  • Linear Discriminant Analysis (LDA)
  • Сравнение PCA и LDA
  • Метод опорных векторов (Support Vector Machines - SVM)
  • Идея алгоритма
  • Иллюстрация на простейшем примере
  • Линейная неразделимость и использование ядер
  • Иллюстрация использования ядра для отображения 2D -gt 3D
  • svm((formula data = NULL subset naaction = naomit sc
  • Support Vector Machines
  • Глубокое обучение (Deep Learning)
  • laquoВ 1997 году Deep Blue обыграл в шахматы Каспарова В 2011 Wats
  • Распознавание основано на feature detection и последующем раз
  • Распознавание рукописных цифр
  • Еще пример посложнее
  • Использование нейронной сети с обучением
  • Сверхвысокая размерность при работе с первичным представлением
  • Пиксельное кодирование
  • Принцип иерархии понятий ndash основа deep learning
  • Разреженное (sparse) кодирование
  • Словарь для лиц
  • Slide 58
  • Выделение объектов заданного класса
  • Основные архитектуры Deep Learning
  • Задача классификации распознавания и подобные являются задачей
  • Фактор - графы
  • Slide 63
  • Slide 64
  • Подход разреженного кодирования
  • Обобщенная архитектура
  • Slide 67
  • Slide 68
  • Slide 69
  • В действительности работают любые архитектуры построения функц
  • Machine Learning with Torch7 (httpcodecogbitscomwikidoku
  • Torch 7 является расширением Lua
  • Slide 73
  • Slide 74
  • Сверточные (convolution) нейронные сети
  • Свертка и архитектура 4-х уровневой сверточной сети
  • Функциональная структура
  • Примеры успешного применения сверточных сетей
  • Диагностика эпилепсии по ЭЭГ
  • Реализация сверточной сетью
  • Одна из самых больших сверточных сетей
  • Пример тэгирования
  • Пример поиска похожих по изображению
  • Пример поиска в коллекции изображений по текстовому запросу
  • Пример laquoоблачногоraquo классификатора изображений
  • Slide 86
  • Самообучающиеся нейронные сети на основе минимизации функции эн
  • RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцман
  • Алгоритм обучения Contrastive Divergence (CD)
  • Основные уравнения адаптации
  • Алгоритм Хинтона - Contrastive Divergence (CD-k)
  • darch Package for deep architectures and Restricted-Bolzmann-
  • Связь плотности вероятности и энергии
  • Задача обучения с точки минимизации энергии сети
  • Интуитивные соображения
  • Slide 96
  • Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decom
  • Sparse linear reconstruction
  • Автоэнкодер (auto encoder)
  • Архитекттура ICA моделей
  • Итеративные алгоритмы с оптимальным разреженным кодированием 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)
Page 9: !Predictive analytics part_2

Так выглядят визуализированные данные сгенерированные скриптом

Разделение данных на обучающие и проверочные является важным этапом 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

not used

kmeans(x centers itermax = 10 nstart = 1 algorithm = c(Hartigan-Wong Lloyd Forgy MacQueen) trace=FALSE) S3 method for class kmeans fitted(object method = c(centers classes) )

cluster A vector of integers (from 1k) indicating the cluster to which each point is allocated

centers A matrix of cluster centres

totss The total sum of squares

withinss Vector of within-cluster sum of squares one component per cluster

totwithinss Total within-cluster sum of squares ie sum(withinss)

betweenss The between-cluster sum of squares ie totss-totwithinss

size The number of points in each cluster

iter The number of (outer) iterations

ifault integer indicator of a possible algorithm problem ndash for experts

kmeans returns an object of class kmeans which has a print and a fitted method It is a list with at least the following components

fitted(object method = c(centers classes) )

Здесь мы используем заранее известный факт что необходимо классифицировать данные на три класса ndash кластера Поэтому число кластеров k=3

gtk lt- kmeans(train[12] 3)gtplot(train[12] type=n)gttext(train[12] ascharacter(k$cluster))gtcm (train$class k$cluster)

predicted A B C 3 504 0 0 1 6 692 3 2 186 0 709

Еще одна иллюстрация работы алгоритма 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

test$predicted_class lt- knn(train[12] test[12] train$class k=1)

(mlt-cm(test$class test$predicted_class))

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)

predicted2 lt- asnumeric(apply(predict(r2) 1 function(r) order(-r)[1]))(m lt- cm (train$class predicted2))1 - sum(diag(m)) sum(m)

Линейный дискриминантный анализ (Linear Discriminant Analysis - LDA)bull Для каждого образца объекта или события с известным классом y

рассматривается набор наблюдений x (называемых ещё признаками переменными или измерениями) Набор таких образцов называется обучающей выборкой (или набором обучения обучением) Задачи классификации состоит в том чтобы построить хороший прогноз класса y для всякого так же распределённого объекта (не обязательно содержащегося в обучающей выборке) имея только наблюдения x Основная идея состоит в сравнении распределений для каждого из классов Расстоянием (по Фишеру) между распределениями принято считать отношение межклассовой дисперсии к внутриклассовой

Решение

bull Предполагается гауссово распределение совместных вероятностей

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

Linear Discriminant Analysis (LDA)

l lt- lda(class ~ x + y data = train)

(m lt- cm(train$class predict(l)$class))1 - sum(diag(m)) sum(m)

par(mfrow=c(12))train_lda lt- asmatrix(train[12]) l$scalingplot_it()plot(train_lda type=n)text(train_lda train$class)par(mfrow=c(11))

Сравнение 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)

(m lt- cm(train$class predict(s)))1 - sum(diag(m)) sum(m)

(m lt- cm(test$class predict(s test[12])))1 - sum(diag(m)) sum(m)

Глубокое обучение (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) матрицы Якобиана

ቈ120597119865119894ሺ119883119894minus1119882119894ሻ120597119882119894 119896119897 = 120597[119865119894(119883119894minus1119882119894)]119896120597[119882119894]119897

Сводится к рекуррентному соотношению для вычисления градиента 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

Сверточная (convolution) нейронная сеть

1 -- parameters 2 nstates = 16256128 3 fanin = 14 4 filtsize = 5 5 poolsize = 2 6 normkernel = imagegaussian1D(7) 7 8 -- Container 9 model = nnSequential()1011 -- stage 1 filter bank -gt squashing -gt L2 pooling -gt normalization12 modeladd(nnSpatialConvolutionMap(nntablesrandom(nfeats nstates[1] fanin[1]) filtsize filtsize))13 modeladd(nnTanh())14 modeladd(nnSpatialLPPooling(nstates[1]2poolsizepoolsizepoolsizepoolsize))15 modeladd(nnSpatialSubtractiveNormalization(16 normkernel))1617 -- stage 2 filter bank -gt squashing -gt L2 pooling -gt normalization18 modeladd(nnSpatialConvolutionMap(nntablesrandom(nstates[1] nstates[2] fanin[2]) filtsize filtsize))19 modeladd(nnTanh())20 modeladd(nnSpatialLPPooling(nstates[2]2poolsizepoolsizepoolsizepoolsize))21 modeladd(nnSpatialSubtractiveNormalization(nstates[2] normkernel))2223 -- stage 3 standard 2-layer neural network24 modeladd(nnReshape(nstates[2]filtsizefiltsize))25 modeladd(nnLinear(nstates[2]filtsizefiltsize nstates[3]))26 modeladd(nnTanh())27 modeladd(nnLinear(nstates[3] noutputs))

Код программы на Torch 7

Сверточные (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

Sparse linear reconstruction

bull Energy=reconstruction_error+code_prediction_error+code_sparsity

Автоэнкодер (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

bull saednntrain(x y hidden = c(1) activationfun = sigm learningrate = 08 momentum = 05 learningrate_scale = 1 output = sigm sae_output = linear numepochs = 3 batchsize = 100 hidden_dropout = 0 visible_dropout = 0)

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

Архитектура сети SAE

Архитектура с 5Х4 hidden 3 outs

Example

Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02)) Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1)) x lt- matrix(c(Var1 Var2) nrow = 100 ncol = 2)y lt- c(rep(1 50) rep(0 50))

обучение сетиdnn lt- saednntrain(x y hidden = c(5 5))

Анализ обучающего набора данныхgt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370helliphelliphelliphelliphelliphelliphelliphellip

gt y [1] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 [54] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

plot3d(xy)

Параметры SAE сети

gt dnn$input_dim[1] 2$output_dim[1] 1$hidden[1] 5 5$size[1] 2 5 5 1$activationfun[1] sigm$learningrate[1] 08

$momentum[1] 05$learningrate_scale[1] 1$hidden_dropout[1] 0$visible_dropout[1] 0$output[1] sigm$W

Коэффициенты связей

$W$W[[1]] [1] [2][1] -014355854 02471840[2] 011378030 -00715094[3] -004343738 03667468[4] 012756946 -01303379[5] -003445704 02293772

$W[[2]] [1] [2] [3] [4] [5][1] 00420191661 -0023073732 -008762756 0035575714 -0063000016[2] 00072771988 -0131204147 -010591421 0018221305 -0025539769[3] -01071896826 -0019479685 -009892573 -0012976429 -0111886901[4] -00009477304 -0023137518 -002147218 0007969452 -0118696306[5] 00045016013 0001885546 -010170954 -0140312396 -0003970102

$W[[3]] [1] [2] [3] [4] [5][1] 01027992 -007288099 003051227 -001731639 0009518049

$vW$vW[[1]] [1] [2][1] -8335203e-06 1368580e-05[2] -6530183e-05 1135070e-04[3] 2544302e-05 -3947111e-05[4] -5512835e-06 9541682e-06[5] 3822854e-05 -6281762e-05

$vW[[2]] [1] [2] [3] [4] [5][1] 4172450e-04 -2554411e-04 4896670e-04 -3526093e-04 3041932e-04[2] -3210759e-04 1978412e-04 -3769148e-04 2727933e-04 -2338477e-04[3] 1058770e-04 -6705336e-05 1244419e-04 -9201508e-05 7678296e-05[4] -8894178e-05 5481668e-05 -1044110e-04 7558269e-05 -6477571e-05[5] 2676520e-05 -1622289e-05 3139684e-05 -2243174e-05 1954349e-05

$vW[[3]] [1] [2] [3] [4] [5][1] -0002603034 -0002398256 -0003274074 -0002542478 -000209672

Предсказание обученной сетью

predict by dnntest_Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02))test_Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1))test_x lt- matrix(c(test_Var1 test_Var2) nrow = 100 ncol = 2)nntest(dnn test_x y)

[1] 025 Value error rate

Сравнение обучающей и тестовой выборки

gttest_x [1] [2] [1] 091887443 -08940890 [2] 115219448 -06050481 [3] 069917981 -08524551 [4] 028213787 -08146816 [5] 098405598 -11440813 [6] 185911887 -08203652 [7] 010843056 -10123789 [8] 083827953 -07594760 [9] -016373562 -09087116 [10] 088298748 -09767741 [11] 005280917 -07525407

gt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370

Plot3d(test_xy) Plot3d(xy)

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)

Подготовка к обработке

starting installationstep1installpackages(devtools)library(devtools)install_github(repo = mnist username = xrobin ref = master)library(mnist)

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
  • Аппроксимация линейными многообразиями (подпространствами)
  • Slide 30
  • Алгоритм
  • princomp(formula data = NULL subset naaction )
  • Principal Component Analysis (PCA)
  • Линейный дискриминантный анализ (Linear Discriminant Analysis -
  • Решение
  • lda(x grouping prior = proportions tol = 10e-4 method
  • Slide 37
  • Linear Discriminant Analysis (LDA)
  • Сравнение PCA и LDA
  • Метод опорных векторов (Support Vector Machines - SVM)
  • Идея алгоритма
  • Иллюстрация на простейшем примере
  • Линейная неразделимость и использование ядер
  • Иллюстрация использования ядра для отображения 2D -gt 3D
  • svm((formula data = NULL subset naaction = naomit sc
  • Support Vector Machines
  • Глубокое обучение (Deep Learning)
  • laquoВ 1997 году Deep Blue обыграл в шахматы Каспарова В 2011 Wats
  • Распознавание основано на feature detection и последующем раз
  • Распознавание рукописных цифр
  • Еще пример посложнее
  • Использование нейронной сети с обучением
  • Сверхвысокая размерность при работе с первичным представлением
  • Пиксельное кодирование
  • Принцип иерархии понятий ndash основа deep learning
  • Разреженное (sparse) кодирование
  • Словарь для лиц
  • Slide 58
  • Выделение объектов заданного класса
  • Основные архитектуры Deep Learning
  • Задача классификации распознавания и подобные являются задачей
  • Фактор - графы
  • Slide 63
  • Slide 64
  • Подход разреженного кодирования
  • Обобщенная архитектура
  • Slide 67
  • Slide 68
  • Slide 69
  • В действительности работают любые архитектуры построения функц
  • Machine Learning with Torch7 (httpcodecogbitscomwikidoku
  • Torch 7 является расширением Lua
  • Slide 73
  • Slide 74
  • Сверточные (convolution) нейронные сети
  • Свертка и архитектура 4-х уровневой сверточной сети
  • Функциональная структура
  • Примеры успешного применения сверточных сетей
  • Диагностика эпилепсии по ЭЭГ
  • Реализация сверточной сетью
  • Одна из самых больших сверточных сетей
  • Пример тэгирования
  • Пример поиска похожих по изображению
  • Пример поиска в коллекции изображений по текстовому запросу
  • Пример laquoоблачногоraquo классификатора изображений
  • Slide 86
  • Самообучающиеся нейронные сети на основе минимизации функции эн
  • RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцман
  • Алгоритм обучения Contrastive Divergence (CD)
  • Основные уравнения адаптации
  • Алгоритм Хинтона - Contrastive Divergence (CD-k)
  • darch Package for deep architectures and Restricted-Bolzmann-
  • Связь плотности вероятности и энергии
  • Задача обучения с точки минимизации энергии сети
  • Интуитивные соображения
  • Slide 96
  • Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decom
  • Sparse linear reconstruction
  • Автоэнкодер (auto encoder)
  • Архитекттура ICA моделей
  • Итеративные алгоритмы с оптимальным разреженным кодированием 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)
Page 10: !Predictive analytics part_2

Разделение данных на обучающие и проверочные является важным этапом 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

not used

kmeans(x centers itermax = 10 nstart = 1 algorithm = c(Hartigan-Wong Lloyd Forgy MacQueen) trace=FALSE) S3 method for class kmeans fitted(object method = c(centers classes) )

cluster A vector of integers (from 1k) indicating the cluster to which each point is allocated

centers A matrix of cluster centres

totss The total sum of squares

withinss Vector of within-cluster sum of squares one component per cluster

totwithinss Total within-cluster sum of squares ie sum(withinss)

betweenss The between-cluster sum of squares ie totss-totwithinss

size The number of points in each cluster

iter The number of (outer) iterations

ifault integer indicator of a possible algorithm problem ndash for experts

kmeans returns an object of class kmeans which has a print and a fitted method It is a list with at least the following components

fitted(object method = c(centers classes) )

Здесь мы используем заранее известный факт что необходимо классифицировать данные на три класса ndash кластера Поэтому число кластеров k=3

gtk lt- kmeans(train[12] 3)gtplot(train[12] type=n)gttext(train[12] ascharacter(k$cluster))gtcm (train$class k$cluster)

predicted A B C 3 504 0 0 1 6 692 3 2 186 0 709

Еще одна иллюстрация работы алгоритма 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

test$predicted_class lt- knn(train[12] test[12] train$class k=1)

(mlt-cm(test$class test$predicted_class))

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)

predicted2 lt- asnumeric(apply(predict(r2) 1 function(r) order(-r)[1]))(m lt- cm (train$class predicted2))1 - sum(diag(m)) sum(m)

Линейный дискриминантный анализ (Linear Discriminant Analysis - LDA)bull Для каждого образца объекта или события с известным классом y

рассматривается набор наблюдений x (называемых ещё признаками переменными или измерениями) Набор таких образцов называется обучающей выборкой (или набором обучения обучением) Задачи классификации состоит в том чтобы построить хороший прогноз класса y для всякого так же распределённого объекта (не обязательно содержащегося в обучающей выборке) имея только наблюдения x Основная идея состоит в сравнении распределений для каждого из классов Расстоянием (по Фишеру) между распределениями принято считать отношение межклассовой дисперсии к внутриклассовой

Решение

bull Предполагается гауссово распределение совместных вероятностей

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

Linear Discriminant Analysis (LDA)

l lt- lda(class ~ x + y data = train)

(m lt- cm(train$class predict(l)$class))1 - sum(diag(m)) sum(m)

par(mfrow=c(12))train_lda lt- asmatrix(train[12]) l$scalingplot_it()plot(train_lda type=n)text(train_lda train$class)par(mfrow=c(11))

Сравнение 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)

(m lt- cm(train$class predict(s)))1 - sum(diag(m)) sum(m)

(m lt- cm(test$class predict(s test[12])))1 - sum(diag(m)) sum(m)

Глубокое обучение (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) матрицы Якобиана

ቈ120597119865119894ሺ119883119894minus1119882119894ሻ120597119882119894 119896119897 = 120597[119865119894(119883119894minus1119882119894)]119896120597[119882119894]119897

Сводится к рекуррентному соотношению для вычисления градиента 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

Сверточная (convolution) нейронная сеть

1 -- parameters 2 nstates = 16256128 3 fanin = 14 4 filtsize = 5 5 poolsize = 2 6 normkernel = imagegaussian1D(7) 7 8 -- Container 9 model = nnSequential()1011 -- stage 1 filter bank -gt squashing -gt L2 pooling -gt normalization12 modeladd(nnSpatialConvolutionMap(nntablesrandom(nfeats nstates[1] fanin[1]) filtsize filtsize))13 modeladd(nnTanh())14 modeladd(nnSpatialLPPooling(nstates[1]2poolsizepoolsizepoolsizepoolsize))15 modeladd(nnSpatialSubtractiveNormalization(16 normkernel))1617 -- stage 2 filter bank -gt squashing -gt L2 pooling -gt normalization18 modeladd(nnSpatialConvolutionMap(nntablesrandom(nstates[1] nstates[2] fanin[2]) filtsize filtsize))19 modeladd(nnTanh())20 modeladd(nnSpatialLPPooling(nstates[2]2poolsizepoolsizepoolsizepoolsize))21 modeladd(nnSpatialSubtractiveNormalization(nstates[2] normkernel))2223 -- stage 3 standard 2-layer neural network24 modeladd(nnReshape(nstates[2]filtsizefiltsize))25 modeladd(nnLinear(nstates[2]filtsizefiltsize nstates[3]))26 modeladd(nnTanh())27 modeladd(nnLinear(nstates[3] noutputs))

Код программы на Torch 7

Сверточные (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

Sparse linear reconstruction

bull Energy=reconstruction_error+code_prediction_error+code_sparsity

Автоэнкодер (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

bull saednntrain(x y hidden = c(1) activationfun = sigm learningrate = 08 momentum = 05 learningrate_scale = 1 output = sigm sae_output = linear numepochs = 3 batchsize = 100 hidden_dropout = 0 visible_dropout = 0)

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

Архитектура сети SAE

Архитектура с 5Х4 hidden 3 outs

Example

Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02)) Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1)) x lt- matrix(c(Var1 Var2) nrow = 100 ncol = 2)y lt- c(rep(1 50) rep(0 50))

обучение сетиdnn lt- saednntrain(x y hidden = c(5 5))

Анализ обучающего набора данныхgt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370helliphelliphelliphelliphelliphelliphelliphellip

gt y [1] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 [54] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

plot3d(xy)

Параметры SAE сети

gt dnn$input_dim[1] 2$output_dim[1] 1$hidden[1] 5 5$size[1] 2 5 5 1$activationfun[1] sigm$learningrate[1] 08

$momentum[1] 05$learningrate_scale[1] 1$hidden_dropout[1] 0$visible_dropout[1] 0$output[1] sigm$W

Коэффициенты связей

$W$W[[1]] [1] [2][1] -014355854 02471840[2] 011378030 -00715094[3] -004343738 03667468[4] 012756946 -01303379[5] -003445704 02293772

$W[[2]] [1] [2] [3] [4] [5][1] 00420191661 -0023073732 -008762756 0035575714 -0063000016[2] 00072771988 -0131204147 -010591421 0018221305 -0025539769[3] -01071896826 -0019479685 -009892573 -0012976429 -0111886901[4] -00009477304 -0023137518 -002147218 0007969452 -0118696306[5] 00045016013 0001885546 -010170954 -0140312396 -0003970102

$W[[3]] [1] [2] [3] [4] [5][1] 01027992 -007288099 003051227 -001731639 0009518049

$vW$vW[[1]] [1] [2][1] -8335203e-06 1368580e-05[2] -6530183e-05 1135070e-04[3] 2544302e-05 -3947111e-05[4] -5512835e-06 9541682e-06[5] 3822854e-05 -6281762e-05

$vW[[2]] [1] [2] [3] [4] [5][1] 4172450e-04 -2554411e-04 4896670e-04 -3526093e-04 3041932e-04[2] -3210759e-04 1978412e-04 -3769148e-04 2727933e-04 -2338477e-04[3] 1058770e-04 -6705336e-05 1244419e-04 -9201508e-05 7678296e-05[4] -8894178e-05 5481668e-05 -1044110e-04 7558269e-05 -6477571e-05[5] 2676520e-05 -1622289e-05 3139684e-05 -2243174e-05 1954349e-05

$vW[[3]] [1] [2] [3] [4] [5][1] -0002603034 -0002398256 -0003274074 -0002542478 -000209672

Предсказание обученной сетью

predict by dnntest_Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02))test_Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1))test_x lt- matrix(c(test_Var1 test_Var2) nrow = 100 ncol = 2)nntest(dnn test_x y)

[1] 025 Value error rate

Сравнение обучающей и тестовой выборки

gttest_x [1] [2] [1] 091887443 -08940890 [2] 115219448 -06050481 [3] 069917981 -08524551 [4] 028213787 -08146816 [5] 098405598 -11440813 [6] 185911887 -08203652 [7] 010843056 -10123789 [8] 083827953 -07594760 [9] -016373562 -09087116 [10] 088298748 -09767741 [11] 005280917 -07525407

gt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370

Plot3d(test_xy) Plot3d(xy)

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)

Подготовка к обработке

starting installationstep1installpackages(devtools)library(devtools)install_github(repo = mnist username = xrobin ref = master)library(mnist)

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
  • Аппроксимация линейными многообразиями (подпространствами)
  • Slide 30
  • Алгоритм
  • princomp(formula data = NULL subset naaction )
  • Principal Component Analysis (PCA)
  • Линейный дискриминантный анализ (Linear Discriminant Analysis -
  • Решение
  • lda(x grouping prior = proportions tol = 10e-4 method
  • Slide 37
  • Linear Discriminant Analysis (LDA)
  • Сравнение PCA и LDA
  • Метод опорных векторов (Support Vector Machines - SVM)
  • Идея алгоритма
  • Иллюстрация на простейшем примере
  • Линейная неразделимость и использование ядер
  • Иллюстрация использования ядра для отображения 2D -gt 3D
  • svm((formula data = NULL subset naaction = naomit sc
  • Support Vector Machines
  • Глубокое обучение (Deep Learning)
  • laquoВ 1997 году Deep Blue обыграл в шахматы Каспарова В 2011 Wats
  • Распознавание основано на feature detection и последующем раз
  • Распознавание рукописных цифр
  • Еще пример посложнее
  • Использование нейронной сети с обучением
  • Сверхвысокая размерность при работе с первичным представлением
  • Пиксельное кодирование
  • Принцип иерархии понятий ndash основа deep learning
  • Разреженное (sparse) кодирование
  • Словарь для лиц
  • Slide 58
  • Выделение объектов заданного класса
  • Основные архитектуры Deep Learning
  • Задача классификации распознавания и подобные являются задачей
  • Фактор - графы
  • Slide 63
  • Slide 64
  • Подход разреженного кодирования
  • Обобщенная архитектура
  • Slide 67
  • Slide 68
  • Slide 69
  • В действительности работают любые архитектуры построения функц
  • Machine Learning with Torch7 (httpcodecogbitscomwikidoku
  • Torch 7 является расширением Lua
  • Slide 73
  • Slide 74
  • Сверточные (convolution) нейронные сети
  • Свертка и архитектура 4-х уровневой сверточной сети
  • Функциональная структура
  • Примеры успешного применения сверточных сетей
  • Диагностика эпилепсии по ЭЭГ
  • Реализация сверточной сетью
  • Одна из самых больших сверточных сетей
  • Пример тэгирования
  • Пример поиска похожих по изображению
  • Пример поиска в коллекции изображений по текстовому запросу
  • Пример laquoоблачногоraquo классификатора изображений
  • Slide 86
  • Самообучающиеся нейронные сети на основе минимизации функции эн
  • RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцман
  • Алгоритм обучения Contrastive Divergence (CD)
  • Основные уравнения адаптации
  • Алгоритм Хинтона - Contrastive Divergence (CD-k)
  • darch Package for deep architectures and Restricted-Bolzmann-
  • Связь плотности вероятности и энергии
  • Задача обучения с точки минимизации энергии сети
  • Интуитивные соображения
  • Slide 96
  • Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decom
  • Sparse linear reconstruction
  • Автоэнкодер (auto encoder)
  • Архитекттура ICA моделей
  • Итеративные алгоритмы с оптимальным разреженным кодированием 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)
Page 11: !Predictive analytics part_2

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

not used

kmeans(x centers itermax = 10 nstart = 1 algorithm = c(Hartigan-Wong Lloyd Forgy MacQueen) trace=FALSE) S3 method for class kmeans fitted(object method = c(centers classes) )

cluster A vector of integers (from 1k) indicating the cluster to which each point is allocated

centers A matrix of cluster centres

totss The total sum of squares

withinss Vector of within-cluster sum of squares one component per cluster

totwithinss Total within-cluster sum of squares ie sum(withinss)

betweenss The between-cluster sum of squares ie totss-totwithinss

size The number of points in each cluster

iter The number of (outer) iterations

ifault integer indicator of a possible algorithm problem ndash for experts

kmeans returns an object of class kmeans which has a print and a fitted method It is a list with at least the following components

fitted(object method = c(centers classes) )

Здесь мы используем заранее известный факт что необходимо классифицировать данные на три класса ndash кластера Поэтому число кластеров k=3

gtk lt- kmeans(train[12] 3)gtplot(train[12] type=n)gttext(train[12] ascharacter(k$cluster))gtcm (train$class k$cluster)

predicted A B C 3 504 0 0 1 6 692 3 2 186 0 709

Еще одна иллюстрация работы алгоритма 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

test$predicted_class lt- knn(train[12] test[12] train$class k=1)

(mlt-cm(test$class test$predicted_class))

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)

predicted2 lt- asnumeric(apply(predict(r2) 1 function(r) order(-r)[1]))(m lt- cm (train$class predicted2))1 - sum(diag(m)) sum(m)

Линейный дискриминантный анализ (Linear Discriminant Analysis - LDA)bull Для каждого образца объекта или события с известным классом y

рассматривается набор наблюдений x (называемых ещё признаками переменными или измерениями) Набор таких образцов называется обучающей выборкой (или набором обучения обучением) Задачи классификации состоит в том чтобы построить хороший прогноз класса y для всякого так же распределённого объекта (не обязательно содержащегося в обучающей выборке) имея только наблюдения x Основная идея состоит в сравнении распределений для каждого из классов Расстоянием (по Фишеру) между распределениями принято считать отношение межклассовой дисперсии к внутриклассовой

Решение

bull Предполагается гауссово распределение совместных вероятностей

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

Linear Discriminant Analysis (LDA)

l lt- lda(class ~ x + y data = train)

(m lt- cm(train$class predict(l)$class))1 - sum(diag(m)) sum(m)

par(mfrow=c(12))train_lda lt- asmatrix(train[12]) l$scalingplot_it()plot(train_lda type=n)text(train_lda train$class)par(mfrow=c(11))

Сравнение 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)

(m lt- cm(train$class predict(s)))1 - sum(diag(m)) sum(m)

(m lt- cm(test$class predict(s test[12])))1 - sum(diag(m)) sum(m)

Глубокое обучение (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) матрицы Якобиана

ቈ120597119865119894ሺ119883119894minus1119882119894ሻ120597119882119894 119896119897 = 120597[119865119894(119883119894minus1119882119894)]119896120597[119882119894]119897

Сводится к рекуррентному соотношению для вычисления градиента 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

Сверточная (convolution) нейронная сеть

1 -- parameters 2 nstates = 16256128 3 fanin = 14 4 filtsize = 5 5 poolsize = 2 6 normkernel = imagegaussian1D(7) 7 8 -- Container 9 model = nnSequential()1011 -- stage 1 filter bank -gt squashing -gt L2 pooling -gt normalization12 modeladd(nnSpatialConvolutionMap(nntablesrandom(nfeats nstates[1] fanin[1]) filtsize filtsize))13 modeladd(nnTanh())14 modeladd(nnSpatialLPPooling(nstates[1]2poolsizepoolsizepoolsizepoolsize))15 modeladd(nnSpatialSubtractiveNormalization(16 normkernel))1617 -- stage 2 filter bank -gt squashing -gt L2 pooling -gt normalization18 modeladd(nnSpatialConvolutionMap(nntablesrandom(nstates[1] nstates[2] fanin[2]) filtsize filtsize))19 modeladd(nnTanh())20 modeladd(nnSpatialLPPooling(nstates[2]2poolsizepoolsizepoolsizepoolsize))21 modeladd(nnSpatialSubtractiveNormalization(nstates[2] normkernel))2223 -- stage 3 standard 2-layer neural network24 modeladd(nnReshape(nstates[2]filtsizefiltsize))25 modeladd(nnLinear(nstates[2]filtsizefiltsize nstates[3]))26 modeladd(nnTanh())27 modeladd(nnLinear(nstates[3] noutputs))

Код программы на Torch 7

Сверточные (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

Sparse linear reconstruction

bull Energy=reconstruction_error+code_prediction_error+code_sparsity

Автоэнкодер (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

bull saednntrain(x y hidden = c(1) activationfun = sigm learningrate = 08 momentum = 05 learningrate_scale = 1 output = sigm sae_output = linear numepochs = 3 batchsize = 100 hidden_dropout = 0 visible_dropout = 0)

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

Архитектура сети SAE

Архитектура с 5Х4 hidden 3 outs

Example

Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02)) Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1)) x lt- matrix(c(Var1 Var2) nrow = 100 ncol = 2)y lt- c(rep(1 50) rep(0 50))

обучение сетиdnn lt- saednntrain(x y hidden = c(5 5))

Анализ обучающего набора данныхgt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370helliphelliphelliphelliphelliphelliphelliphellip

gt y [1] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 [54] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

plot3d(xy)

Параметры SAE сети

gt dnn$input_dim[1] 2$output_dim[1] 1$hidden[1] 5 5$size[1] 2 5 5 1$activationfun[1] sigm$learningrate[1] 08

$momentum[1] 05$learningrate_scale[1] 1$hidden_dropout[1] 0$visible_dropout[1] 0$output[1] sigm$W

Коэффициенты связей

$W$W[[1]] [1] [2][1] -014355854 02471840[2] 011378030 -00715094[3] -004343738 03667468[4] 012756946 -01303379[5] -003445704 02293772

$W[[2]] [1] [2] [3] [4] [5][1] 00420191661 -0023073732 -008762756 0035575714 -0063000016[2] 00072771988 -0131204147 -010591421 0018221305 -0025539769[3] -01071896826 -0019479685 -009892573 -0012976429 -0111886901[4] -00009477304 -0023137518 -002147218 0007969452 -0118696306[5] 00045016013 0001885546 -010170954 -0140312396 -0003970102

$W[[3]] [1] [2] [3] [4] [5][1] 01027992 -007288099 003051227 -001731639 0009518049

$vW$vW[[1]] [1] [2][1] -8335203e-06 1368580e-05[2] -6530183e-05 1135070e-04[3] 2544302e-05 -3947111e-05[4] -5512835e-06 9541682e-06[5] 3822854e-05 -6281762e-05

$vW[[2]] [1] [2] [3] [4] [5][1] 4172450e-04 -2554411e-04 4896670e-04 -3526093e-04 3041932e-04[2] -3210759e-04 1978412e-04 -3769148e-04 2727933e-04 -2338477e-04[3] 1058770e-04 -6705336e-05 1244419e-04 -9201508e-05 7678296e-05[4] -8894178e-05 5481668e-05 -1044110e-04 7558269e-05 -6477571e-05[5] 2676520e-05 -1622289e-05 3139684e-05 -2243174e-05 1954349e-05

$vW[[3]] [1] [2] [3] [4] [5][1] -0002603034 -0002398256 -0003274074 -0002542478 -000209672

Предсказание обученной сетью

predict by dnntest_Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02))test_Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1))test_x lt- matrix(c(test_Var1 test_Var2) nrow = 100 ncol = 2)nntest(dnn test_x y)

[1] 025 Value error rate

Сравнение обучающей и тестовой выборки

gttest_x [1] [2] [1] 091887443 -08940890 [2] 115219448 -06050481 [3] 069917981 -08524551 [4] 028213787 -08146816 [5] 098405598 -11440813 [6] 185911887 -08203652 [7] 010843056 -10123789 [8] 083827953 -07594760 [9] -016373562 -09087116 [10] 088298748 -09767741 [11] 005280917 -07525407

gt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370

Plot3d(test_xy) Plot3d(xy)

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)

Подготовка к обработке

starting installationstep1installpackages(devtools)library(devtools)install_github(repo = mnist username = xrobin ref = master)library(mnist)

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
  • Аппроксимация линейными многообразиями (подпространствами)
  • Slide 30
  • Алгоритм
  • princomp(formula data = NULL subset naaction )
  • Principal Component Analysis (PCA)
  • Линейный дискриминантный анализ (Linear Discriminant Analysis -
  • Решение
  • lda(x grouping prior = proportions tol = 10e-4 method
  • Slide 37
  • Linear Discriminant Analysis (LDA)
  • Сравнение PCA и LDA
  • Метод опорных векторов (Support Vector Machines - SVM)
  • Идея алгоритма
  • Иллюстрация на простейшем примере
  • Линейная неразделимость и использование ядер
  • Иллюстрация использования ядра для отображения 2D -gt 3D
  • svm((formula data = NULL subset naaction = naomit sc
  • Support Vector Machines
  • Глубокое обучение (Deep Learning)
  • laquoВ 1997 году Deep Blue обыграл в шахматы Каспарова В 2011 Wats
  • Распознавание основано на feature detection и последующем раз
  • Распознавание рукописных цифр
  • Еще пример посложнее
  • Использование нейронной сети с обучением
  • Сверхвысокая размерность при работе с первичным представлением
  • Пиксельное кодирование
  • Принцип иерархии понятий ndash основа deep learning
  • Разреженное (sparse) кодирование
  • Словарь для лиц
  • Slide 58
  • Выделение объектов заданного класса
  • Основные архитектуры Deep Learning
  • Задача классификации распознавания и подобные являются задачей
  • Фактор - графы
  • Slide 63
  • Slide 64
  • Подход разреженного кодирования
  • Обобщенная архитектура
  • Slide 67
  • Slide 68
  • Slide 69
  • В действительности работают любые архитектуры построения функц
  • Machine Learning with Torch7 (httpcodecogbitscomwikidoku
  • Torch 7 является расширением Lua
  • Slide 73
  • Slide 74
  • Сверточные (convolution) нейронные сети
  • Свертка и архитектура 4-х уровневой сверточной сети
  • Функциональная структура
  • Примеры успешного применения сверточных сетей
  • Диагностика эпилепсии по ЭЭГ
  • Реализация сверточной сетью
  • Одна из самых больших сверточных сетей
  • Пример тэгирования
  • Пример поиска похожих по изображению
  • Пример поиска в коллекции изображений по текстовому запросу
  • Пример laquoоблачногоraquo классификатора изображений
  • Slide 86
  • Самообучающиеся нейронные сети на основе минимизации функции эн
  • RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцман
  • Алгоритм обучения Contrastive Divergence (CD)
  • Основные уравнения адаптации
  • Алгоритм Хинтона - Contrastive Divergence (CD-k)
  • darch Package for deep architectures and Restricted-Bolzmann-
  • Связь плотности вероятности и энергии
  • Задача обучения с точки минимизации энергии сети
  • Интуитивные соображения
  • Slide 96
  • Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decom
  • Sparse linear reconstruction
  • Автоэнкодер (auto encoder)
  • Архитекттура ICA моделей
  • Итеративные алгоритмы с оптимальным разреженным кодированием 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)
Page 12: !Predictive analytics part_2

Обучающаяся машина без учителя Алгоритм 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

not used

kmeans(x centers itermax = 10 nstart = 1 algorithm = c(Hartigan-Wong Lloyd Forgy MacQueen) trace=FALSE) S3 method for class kmeans fitted(object method = c(centers classes) )

cluster A vector of integers (from 1k) indicating the cluster to which each point is allocated

centers A matrix of cluster centres

totss The total sum of squares

withinss Vector of within-cluster sum of squares one component per cluster

totwithinss Total within-cluster sum of squares ie sum(withinss)

betweenss The between-cluster sum of squares ie totss-totwithinss

size The number of points in each cluster

iter The number of (outer) iterations

ifault integer indicator of a possible algorithm problem ndash for experts

kmeans returns an object of class kmeans which has a print and a fitted method It is a list with at least the following components

fitted(object method = c(centers classes) )

Здесь мы используем заранее известный факт что необходимо классифицировать данные на три класса ndash кластера Поэтому число кластеров k=3

gtk lt- kmeans(train[12] 3)gtplot(train[12] type=n)gttext(train[12] ascharacter(k$cluster))gtcm (train$class k$cluster)

predicted A B C 3 504 0 0 1 6 692 3 2 186 0 709

Еще одна иллюстрация работы алгоритма 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

test$predicted_class lt- knn(train[12] test[12] train$class k=1)

(mlt-cm(test$class test$predicted_class))

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)

predicted2 lt- asnumeric(apply(predict(r2) 1 function(r) order(-r)[1]))(m lt- cm (train$class predicted2))1 - sum(diag(m)) sum(m)

Линейный дискриминантный анализ (Linear Discriminant Analysis - LDA)bull Для каждого образца объекта или события с известным классом y

рассматривается набор наблюдений x (называемых ещё признаками переменными или измерениями) Набор таких образцов называется обучающей выборкой (или набором обучения обучением) Задачи классификации состоит в том чтобы построить хороший прогноз класса y для всякого так же распределённого объекта (не обязательно содержащегося в обучающей выборке) имея только наблюдения x Основная идея состоит в сравнении распределений для каждого из классов Расстоянием (по Фишеру) между распределениями принято считать отношение межклассовой дисперсии к внутриклассовой

Решение

bull Предполагается гауссово распределение совместных вероятностей

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

Linear Discriminant Analysis (LDA)

l lt- lda(class ~ x + y data = train)

(m lt- cm(train$class predict(l)$class))1 - sum(diag(m)) sum(m)

par(mfrow=c(12))train_lda lt- asmatrix(train[12]) l$scalingplot_it()plot(train_lda type=n)text(train_lda train$class)par(mfrow=c(11))

Сравнение 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)

(m lt- cm(train$class predict(s)))1 - sum(diag(m)) sum(m)

(m lt- cm(test$class predict(s test[12])))1 - sum(diag(m)) sum(m)

Глубокое обучение (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) матрицы Якобиана

ቈ120597119865119894ሺ119883119894minus1119882119894ሻ120597119882119894 119896119897 = 120597[119865119894(119883119894minus1119882119894)]119896120597[119882119894]119897

Сводится к рекуррентному соотношению для вычисления градиента 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

Сверточная (convolution) нейронная сеть

1 -- parameters 2 nstates = 16256128 3 fanin = 14 4 filtsize = 5 5 poolsize = 2 6 normkernel = imagegaussian1D(7) 7 8 -- Container 9 model = nnSequential()1011 -- stage 1 filter bank -gt squashing -gt L2 pooling -gt normalization12 modeladd(nnSpatialConvolutionMap(nntablesrandom(nfeats nstates[1] fanin[1]) filtsize filtsize))13 modeladd(nnTanh())14 modeladd(nnSpatialLPPooling(nstates[1]2poolsizepoolsizepoolsizepoolsize))15 modeladd(nnSpatialSubtractiveNormalization(16 normkernel))1617 -- stage 2 filter bank -gt squashing -gt L2 pooling -gt normalization18 modeladd(nnSpatialConvolutionMap(nntablesrandom(nstates[1] nstates[2] fanin[2]) filtsize filtsize))19 modeladd(nnTanh())20 modeladd(nnSpatialLPPooling(nstates[2]2poolsizepoolsizepoolsizepoolsize))21 modeladd(nnSpatialSubtractiveNormalization(nstates[2] normkernel))2223 -- stage 3 standard 2-layer neural network24 modeladd(nnReshape(nstates[2]filtsizefiltsize))25 modeladd(nnLinear(nstates[2]filtsizefiltsize nstates[3]))26 modeladd(nnTanh())27 modeladd(nnLinear(nstates[3] noutputs))

Код программы на Torch 7

Сверточные (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

Sparse linear reconstruction

bull Energy=reconstruction_error+code_prediction_error+code_sparsity

Автоэнкодер (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

bull saednntrain(x y hidden = c(1) activationfun = sigm learningrate = 08 momentum = 05 learningrate_scale = 1 output = sigm sae_output = linear numepochs = 3 batchsize = 100 hidden_dropout = 0 visible_dropout = 0)

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

Архитектура сети SAE

Архитектура с 5Х4 hidden 3 outs

Example

Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02)) Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1)) x lt- matrix(c(Var1 Var2) nrow = 100 ncol = 2)y lt- c(rep(1 50) rep(0 50))

обучение сетиdnn lt- saednntrain(x y hidden = c(5 5))

Анализ обучающего набора данныхgt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370helliphelliphelliphelliphelliphelliphelliphellip

gt y [1] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 [54] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

plot3d(xy)

Параметры SAE сети

gt dnn$input_dim[1] 2$output_dim[1] 1$hidden[1] 5 5$size[1] 2 5 5 1$activationfun[1] sigm$learningrate[1] 08

$momentum[1] 05$learningrate_scale[1] 1$hidden_dropout[1] 0$visible_dropout[1] 0$output[1] sigm$W

Коэффициенты связей

$W$W[[1]] [1] [2][1] -014355854 02471840[2] 011378030 -00715094[3] -004343738 03667468[4] 012756946 -01303379[5] -003445704 02293772

$W[[2]] [1] [2] [3] [4] [5][1] 00420191661 -0023073732 -008762756 0035575714 -0063000016[2] 00072771988 -0131204147 -010591421 0018221305 -0025539769[3] -01071896826 -0019479685 -009892573 -0012976429 -0111886901[4] -00009477304 -0023137518 -002147218 0007969452 -0118696306[5] 00045016013 0001885546 -010170954 -0140312396 -0003970102

$W[[3]] [1] [2] [3] [4] [5][1] 01027992 -007288099 003051227 -001731639 0009518049

$vW$vW[[1]] [1] [2][1] -8335203e-06 1368580e-05[2] -6530183e-05 1135070e-04[3] 2544302e-05 -3947111e-05[4] -5512835e-06 9541682e-06[5] 3822854e-05 -6281762e-05

$vW[[2]] [1] [2] [3] [4] [5][1] 4172450e-04 -2554411e-04 4896670e-04 -3526093e-04 3041932e-04[2] -3210759e-04 1978412e-04 -3769148e-04 2727933e-04 -2338477e-04[3] 1058770e-04 -6705336e-05 1244419e-04 -9201508e-05 7678296e-05[4] -8894178e-05 5481668e-05 -1044110e-04 7558269e-05 -6477571e-05[5] 2676520e-05 -1622289e-05 3139684e-05 -2243174e-05 1954349e-05

$vW[[3]] [1] [2] [3] [4] [5][1] -0002603034 -0002398256 -0003274074 -0002542478 -000209672

Предсказание обученной сетью

predict by dnntest_Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02))test_Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1))test_x lt- matrix(c(test_Var1 test_Var2) nrow = 100 ncol = 2)nntest(dnn test_x y)

[1] 025 Value error rate

Сравнение обучающей и тестовой выборки

gttest_x [1] [2] [1] 091887443 -08940890 [2] 115219448 -06050481 [3] 069917981 -08524551 [4] 028213787 -08146816 [5] 098405598 -11440813 [6] 185911887 -08203652 [7] 010843056 -10123789 [8] 083827953 -07594760 [9] -016373562 -09087116 [10] 088298748 -09767741 [11] 005280917 -07525407

gt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370

Plot3d(test_xy) Plot3d(xy)

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)

Подготовка к обработке

starting installationstep1installpackages(devtools)library(devtools)install_github(repo = mnist username = xrobin ref = master)library(mnist)

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
  • Аппроксимация линейными многообразиями (подпространствами)
  • Slide 30
  • Алгоритм
  • princomp(formula data = NULL subset naaction )
  • Principal Component Analysis (PCA)
  • Линейный дискриминантный анализ (Linear Discriminant Analysis -
  • Решение
  • lda(x grouping prior = proportions tol = 10e-4 method
  • Slide 37
  • Linear Discriminant Analysis (LDA)
  • Сравнение PCA и LDA
  • Метод опорных векторов (Support Vector Machines - SVM)
  • Идея алгоритма
  • Иллюстрация на простейшем примере
  • Линейная неразделимость и использование ядер
  • Иллюстрация использования ядра для отображения 2D -gt 3D
  • svm((formula data = NULL subset naaction = naomit sc
  • Support Vector Machines
  • Глубокое обучение (Deep Learning)
  • laquoВ 1997 году Deep Blue обыграл в шахматы Каспарова В 2011 Wats
  • Распознавание основано на feature detection и последующем раз
  • Распознавание рукописных цифр
  • Еще пример посложнее
  • Использование нейронной сети с обучением
  • Сверхвысокая размерность при работе с первичным представлением
  • Пиксельное кодирование
  • Принцип иерархии понятий ndash основа deep learning
  • Разреженное (sparse) кодирование
  • Словарь для лиц
  • Slide 58
  • Выделение объектов заданного класса
  • Основные архитектуры Deep Learning
  • Задача классификации распознавания и подобные являются задачей
  • Фактор - графы
  • Slide 63
  • Slide 64
  • Подход разреженного кодирования
  • Обобщенная архитектура
  • Slide 67
  • Slide 68
  • Slide 69
  • В действительности работают любые архитектуры построения функц
  • Machine Learning with Torch7 (httpcodecogbitscomwikidoku
  • Torch 7 является расширением Lua
  • Slide 73
  • Slide 74
  • Сверточные (convolution) нейронные сети
  • Свертка и архитектура 4-х уровневой сверточной сети
  • Функциональная структура
  • Примеры успешного применения сверточных сетей
  • Диагностика эпилепсии по ЭЭГ
  • Реализация сверточной сетью
  • Одна из самых больших сверточных сетей
  • Пример тэгирования
  • Пример поиска похожих по изображению
  • Пример поиска в коллекции изображений по текстовому запросу
  • Пример laquoоблачногоraquo классификатора изображений
  • Slide 86
  • Самообучающиеся нейронные сети на основе минимизации функции эн
  • RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцман
  • Алгоритм обучения Contrastive Divergence (CD)
  • Основные уравнения адаптации
  • Алгоритм Хинтона - Contrastive Divergence (CD-k)
  • darch Package for deep architectures and Restricted-Bolzmann-
  • Связь плотности вероятности и энергии
  • Задача обучения с точки минимизации энергии сети
  • Интуитивные соображения
  • Slide 96
  • Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decom
  • Sparse linear reconstruction
  • Автоэнкодер (auto encoder)
  • Архитекттура ICA моделей
  • Итеративные алгоритмы с оптимальным разреженным кодированием 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)
Page 13: !Predictive analytics part_2

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

not used

kmeans(x centers itermax = 10 nstart = 1 algorithm = c(Hartigan-Wong Lloyd Forgy MacQueen) trace=FALSE) S3 method for class kmeans fitted(object method = c(centers classes) )

cluster A vector of integers (from 1k) indicating the cluster to which each point is allocated

centers A matrix of cluster centres

totss The total sum of squares

withinss Vector of within-cluster sum of squares one component per cluster

totwithinss Total within-cluster sum of squares ie sum(withinss)

betweenss The between-cluster sum of squares ie totss-totwithinss

size The number of points in each cluster

iter The number of (outer) iterations

ifault integer indicator of a possible algorithm problem ndash for experts

kmeans returns an object of class kmeans which has a print and a fitted method It is a list with at least the following components

fitted(object method = c(centers classes) )

Здесь мы используем заранее известный факт что необходимо классифицировать данные на три класса ndash кластера Поэтому число кластеров k=3

gtk lt- kmeans(train[12] 3)gtplot(train[12] type=n)gttext(train[12] ascharacter(k$cluster))gtcm (train$class k$cluster)

predicted A B C 3 504 0 0 1 6 692 3 2 186 0 709

Еще одна иллюстрация работы алгоритма 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

test$predicted_class lt- knn(train[12] test[12] train$class k=1)

(mlt-cm(test$class test$predicted_class))

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)

predicted2 lt- asnumeric(apply(predict(r2) 1 function(r) order(-r)[1]))(m lt- cm (train$class predicted2))1 - sum(diag(m)) sum(m)

Линейный дискриминантный анализ (Linear Discriminant Analysis - LDA)bull Для каждого образца объекта или события с известным классом y

рассматривается набор наблюдений x (называемых ещё признаками переменными или измерениями) Набор таких образцов называется обучающей выборкой (или набором обучения обучением) Задачи классификации состоит в том чтобы построить хороший прогноз класса y для всякого так же распределённого объекта (не обязательно содержащегося в обучающей выборке) имея только наблюдения x Основная идея состоит в сравнении распределений для каждого из классов Расстоянием (по Фишеру) между распределениями принято считать отношение межклассовой дисперсии к внутриклассовой

Решение

bull Предполагается гауссово распределение совместных вероятностей

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

Linear Discriminant Analysis (LDA)

l lt- lda(class ~ x + y data = train)

(m lt- cm(train$class predict(l)$class))1 - sum(diag(m)) sum(m)

par(mfrow=c(12))train_lda lt- asmatrix(train[12]) l$scalingplot_it()plot(train_lda type=n)text(train_lda train$class)par(mfrow=c(11))

Сравнение 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)

(m lt- cm(train$class predict(s)))1 - sum(diag(m)) sum(m)

(m lt- cm(test$class predict(s test[12])))1 - sum(diag(m)) sum(m)

Глубокое обучение (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) матрицы Якобиана

ቈ120597119865119894ሺ119883119894minus1119882119894ሻ120597119882119894 119896119897 = 120597[119865119894(119883119894minus1119882119894)]119896120597[119882119894]119897

Сводится к рекуррентному соотношению для вычисления градиента 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

Сверточная (convolution) нейронная сеть

1 -- parameters 2 nstates = 16256128 3 fanin = 14 4 filtsize = 5 5 poolsize = 2 6 normkernel = imagegaussian1D(7) 7 8 -- Container 9 model = nnSequential()1011 -- stage 1 filter bank -gt squashing -gt L2 pooling -gt normalization12 modeladd(nnSpatialConvolutionMap(nntablesrandom(nfeats nstates[1] fanin[1]) filtsize filtsize))13 modeladd(nnTanh())14 modeladd(nnSpatialLPPooling(nstates[1]2poolsizepoolsizepoolsizepoolsize))15 modeladd(nnSpatialSubtractiveNormalization(16 normkernel))1617 -- stage 2 filter bank -gt squashing -gt L2 pooling -gt normalization18 modeladd(nnSpatialConvolutionMap(nntablesrandom(nstates[1] nstates[2] fanin[2]) filtsize filtsize))19 modeladd(nnTanh())20 modeladd(nnSpatialLPPooling(nstates[2]2poolsizepoolsizepoolsizepoolsize))21 modeladd(nnSpatialSubtractiveNormalization(nstates[2] normkernel))2223 -- stage 3 standard 2-layer neural network24 modeladd(nnReshape(nstates[2]filtsizefiltsize))25 modeladd(nnLinear(nstates[2]filtsizefiltsize nstates[3]))26 modeladd(nnTanh())27 modeladd(nnLinear(nstates[3] noutputs))

Код программы на Torch 7

Сверточные (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

Sparse linear reconstruction

bull Energy=reconstruction_error+code_prediction_error+code_sparsity

Автоэнкодер (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

bull saednntrain(x y hidden = c(1) activationfun = sigm learningrate = 08 momentum = 05 learningrate_scale = 1 output = sigm sae_output = linear numepochs = 3 batchsize = 100 hidden_dropout = 0 visible_dropout = 0)

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

Архитектура сети SAE

Архитектура с 5Х4 hidden 3 outs

Example

Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02)) Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1)) x lt- matrix(c(Var1 Var2) nrow = 100 ncol = 2)y lt- c(rep(1 50) rep(0 50))

обучение сетиdnn lt- saednntrain(x y hidden = c(5 5))

Анализ обучающего набора данныхgt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370helliphelliphelliphelliphelliphelliphelliphellip

gt y [1] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 [54] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

plot3d(xy)

Параметры SAE сети

gt dnn$input_dim[1] 2$output_dim[1] 1$hidden[1] 5 5$size[1] 2 5 5 1$activationfun[1] sigm$learningrate[1] 08

$momentum[1] 05$learningrate_scale[1] 1$hidden_dropout[1] 0$visible_dropout[1] 0$output[1] sigm$W

Коэффициенты связей

$W$W[[1]] [1] [2][1] -014355854 02471840[2] 011378030 -00715094[3] -004343738 03667468[4] 012756946 -01303379[5] -003445704 02293772

$W[[2]] [1] [2] [3] [4] [5][1] 00420191661 -0023073732 -008762756 0035575714 -0063000016[2] 00072771988 -0131204147 -010591421 0018221305 -0025539769[3] -01071896826 -0019479685 -009892573 -0012976429 -0111886901[4] -00009477304 -0023137518 -002147218 0007969452 -0118696306[5] 00045016013 0001885546 -010170954 -0140312396 -0003970102

$W[[3]] [1] [2] [3] [4] [5][1] 01027992 -007288099 003051227 -001731639 0009518049

$vW$vW[[1]] [1] [2][1] -8335203e-06 1368580e-05[2] -6530183e-05 1135070e-04[3] 2544302e-05 -3947111e-05[4] -5512835e-06 9541682e-06[5] 3822854e-05 -6281762e-05

$vW[[2]] [1] [2] [3] [4] [5][1] 4172450e-04 -2554411e-04 4896670e-04 -3526093e-04 3041932e-04[2] -3210759e-04 1978412e-04 -3769148e-04 2727933e-04 -2338477e-04[3] 1058770e-04 -6705336e-05 1244419e-04 -9201508e-05 7678296e-05[4] -8894178e-05 5481668e-05 -1044110e-04 7558269e-05 -6477571e-05[5] 2676520e-05 -1622289e-05 3139684e-05 -2243174e-05 1954349e-05

$vW[[3]] [1] [2] [3] [4] [5][1] -0002603034 -0002398256 -0003274074 -0002542478 -000209672

Предсказание обученной сетью

predict by dnntest_Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02))test_Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1))test_x lt- matrix(c(test_Var1 test_Var2) nrow = 100 ncol = 2)nntest(dnn test_x y)

[1] 025 Value error rate

Сравнение обучающей и тестовой выборки

gttest_x [1] [2] [1] 091887443 -08940890 [2] 115219448 -06050481 [3] 069917981 -08524551 [4] 028213787 -08146816 [5] 098405598 -11440813 [6] 185911887 -08203652 [7] 010843056 -10123789 [8] 083827953 -07594760 [9] -016373562 -09087116 [10] 088298748 -09767741 [11] 005280917 -07525407

gt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370

Plot3d(test_xy) Plot3d(xy)

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)

Подготовка к обработке

starting installationstep1installpackages(devtools)library(devtools)install_github(repo = mnist username = xrobin ref = master)library(mnist)

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
  • Аппроксимация линейными многообразиями (подпространствами)
  • Slide 30
  • Алгоритм
  • princomp(formula data = NULL subset naaction )
  • Principal Component Analysis (PCA)
  • Линейный дискриминантный анализ (Linear Discriminant Analysis -
  • Решение
  • lda(x grouping prior = proportions tol = 10e-4 method
  • Slide 37
  • Linear Discriminant Analysis (LDA)
  • Сравнение PCA и LDA
  • Метод опорных векторов (Support Vector Machines - SVM)
  • Идея алгоритма
  • Иллюстрация на простейшем примере
  • Линейная неразделимость и использование ядер
  • Иллюстрация использования ядра для отображения 2D -gt 3D
  • svm((formula data = NULL subset naaction = naomit sc
  • Support Vector Machines
  • Глубокое обучение (Deep Learning)
  • laquoВ 1997 году Deep Blue обыграл в шахматы Каспарова В 2011 Wats
  • Распознавание основано на feature detection и последующем раз
  • Распознавание рукописных цифр
  • Еще пример посложнее
  • Использование нейронной сети с обучением
  • Сверхвысокая размерность при работе с первичным представлением
  • Пиксельное кодирование
  • Принцип иерархии понятий ndash основа deep learning
  • Разреженное (sparse) кодирование
  • Словарь для лиц
  • Slide 58
  • Выделение объектов заданного класса
  • Основные архитектуры Deep Learning
  • Задача классификации распознавания и подобные являются задачей
  • Фактор - графы
  • Slide 63
  • Slide 64
  • Подход разреженного кодирования
  • Обобщенная архитектура
  • Slide 67
  • Slide 68
  • Slide 69
  • В действительности работают любые архитектуры построения функц
  • Machine Learning with Torch7 (httpcodecogbitscomwikidoku
  • Torch 7 является расширением Lua
  • Slide 73
  • Slide 74
  • Сверточные (convolution) нейронные сети
  • Свертка и архитектура 4-х уровневой сверточной сети
  • Функциональная структура
  • Примеры успешного применения сверточных сетей
  • Диагностика эпилепсии по ЭЭГ
  • Реализация сверточной сетью
  • Одна из самых больших сверточных сетей
  • Пример тэгирования
  • Пример поиска похожих по изображению
  • Пример поиска в коллекции изображений по текстовому запросу
  • Пример laquoоблачногоraquo классификатора изображений
  • Slide 86
  • Самообучающиеся нейронные сети на основе минимизации функции эн
  • RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцман
  • Алгоритм обучения Contrastive Divergence (CD)
  • Основные уравнения адаптации
  • Алгоритм Хинтона - Contrastive Divergence (CD-k)
  • darch Package for deep architectures and Restricted-Bolzmann-
  • Связь плотности вероятности и энергии
  • Задача обучения с точки минимизации энергии сети
  • Интуитивные соображения
  • Slide 96
  • Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decom
  • Sparse linear reconstruction
  • Автоэнкодер (auto encoder)
  • Архитекттура ICA моделей
  • Итеративные алгоритмы с оптимальным разреженным кодированием 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)
Page 14: !Predictive analytics part_2

cluster A vector of integers (from 1k) indicating the cluster to which each point is allocated

centers A matrix of cluster centres

totss The total sum of squares

withinss Vector of within-cluster sum of squares one component per cluster

totwithinss Total within-cluster sum of squares ie sum(withinss)

betweenss The between-cluster sum of squares ie totss-totwithinss

size The number of points in each cluster

iter The number of (outer) iterations

ifault integer indicator of a possible algorithm problem ndash for experts

kmeans returns an object of class kmeans which has a print and a fitted method It is a list with at least the following components

fitted(object method = c(centers classes) )

Здесь мы используем заранее известный факт что необходимо классифицировать данные на три класса ndash кластера Поэтому число кластеров k=3

gtk lt- kmeans(train[12] 3)gtplot(train[12] type=n)gttext(train[12] ascharacter(k$cluster))gtcm (train$class k$cluster)

predicted A B C 3 504 0 0 1 6 692 3 2 186 0 709

Еще одна иллюстрация работы алгоритма 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

test$predicted_class lt- knn(train[12] test[12] train$class k=1)

(mlt-cm(test$class test$predicted_class))

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)

predicted2 lt- asnumeric(apply(predict(r2) 1 function(r) order(-r)[1]))(m lt- cm (train$class predicted2))1 - sum(diag(m)) sum(m)

Линейный дискриминантный анализ (Linear Discriminant Analysis - LDA)bull Для каждого образца объекта или события с известным классом y

рассматривается набор наблюдений x (называемых ещё признаками переменными или измерениями) Набор таких образцов называется обучающей выборкой (или набором обучения обучением) Задачи классификации состоит в том чтобы построить хороший прогноз класса y для всякого так же распределённого объекта (не обязательно содержащегося в обучающей выборке) имея только наблюдения x Основная идея состоит в сравнении распределений для каждого из классов Расстоянием (по Фишеру) между распределениями принято считать отношение межклассовой дисперсии к внутриклассовой

Решение

bull Предполагается гауссово распределение совместных вероятностей

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

Linear Discriminant Analysis (LDA)

l lt- lda(class ~ x + y data = train)

(m lt- cm(train$class predict(l)$class))1 - sum(diag(m)) sum(m)

par(mfrow=c(12))train_lda lt- asmatrix(train[12]) l$scalingplot_it()plot(train_lda type=n)text(train_lda train$class)par(mfrow=c(11))

Сравнение 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)

(m lt- cm(train$class predict(s)))1 - sum(diag(m)) sum(m)

(m lt- cm(test$class predict(s test[12])))1 - sum(diag(m)) sum(m)

Глубокое обучение (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) матрицы Якобиана

ቈ120597119865119894ሺ119883119894minus1119882119894ሻ120597119882119894 119896119897 = 120597[119865119894(119883119894minus1119882119894)]119896120597[119882119894]119897

Сводится к рекуррентному соотношению для вычисления градиента 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

Сверточная (convolution) нейронная сеть

1 -- parameters 2 nstates = 16256128 3 fanin = 14 4 filtsize = 5 5 poolsize = 2 6 normkernel = imagegaussian1D(7) 7 8 -- Container 9 model = nnSequential()1011 -- stage 1 filter bank -gt squashing -gt L2 pooling -gt normalization12 modeladd(nnSpatialConvolutionMap(nntablesrandom(nfeats nstates[1] fanin[1]) filtsize filtsize))13 modeladd(nnTanh())14 modeladd(nnSpatialLPPooling(nstates[1]2poolsizepoolsizepoolsizepoolsize))15 modeladd(nnSpatialSubtractiveNormalization(16 normkernel))1617 -- stage 2 filter bank -gt squashing -gt L2 pooling -gt normalization18 modeladd(nnSpatialConvolutionMap(nntablesrandom(nstates[1] nstates[2] fanin[2]) filtsize filtsize))19 modeladd(nnTanh())20 modeladd(nnSpatialLPPooling(nstates[2]2poolsizepoolsizepoolsizepoolsize))21 modeladd(nnSpatialSubtractiveNormalization(nstates[2] normkernel))2223 -- stage 3 standard 2-layer neural network24 modeladd(nnReshape(nstates[2]filtsizefiltsize))25 modeladd(nnLinear(nstates[2]filtsizefiltsize nstates[3]))26 modeladd(nnTanh())27 modeladd(nnLinear(nstates[3] noutputs))

Код программы на Torch 7

Сверточные (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

Sparse linear reconstruction

bull Energy=reconstruction_error+code_prediction_error+code_sparsity

Автоэнкодер (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

bull saednntrain(x y hidden = c(1) activationfun = sigm learningrate = 08 momentum = 05 learningrate_scale = 1 output = sigm sae_output = linear numepochs = 3 batchsize = 100 hidden_dropout = 0 visible_dropout = 0)

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

Архитектура сети SAE

Архитектура с 5Х4 hidden 3 outs

Example

Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02)) Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1)) x lt- matrix(c(Var1 Var2) nrow = 100 ncol = 2)y lt- c(rep(1 50) rep(0 50))

обучение сетиdnn lt- saednntrain(x y hidden = c(5 5))

Анализ обучающего набора данныхgt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370helliphelliphelliphelliphelliphelliphelliphellip

gt y [1] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 [54] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

plot3d(xy)

Параметры SAE сети

gt dnn$input_dim[1] 2$output_dim[1] 1$hidden[1] 5 5$size[1] 2 5 5 1$activationfun[1] sigm$learningrate[1] 08

$momentum[1] 05$learningrate_scale[1] 1$hidden_dropout[1] 0$visible_dropout[1] 0$output[1] sigm$W

Коэффициенты связей

$W$W[[1]] [1] [2][1] -014355854 02471840[2] 011378030 -00715094[3] -004343738 03667468[4] 012756946 -01303379[5] -003445704 02293772

$W[[2]] [1] [2] [3] [4] [5][1] 00420191661 -0023073732 -008762756 0035575714 -0063000016[2] 00072771988 -0131204147 -010591421 0018221305 -0025539769[3] -01071896826 -0019479685 -009892573 -0012976429 -0111886901[4] -00009477304 -0023137518 -002147218 0007969452 -0118696306[5] 00045016013 0001885546 -010170954 -0140312396 -0003970102

$W[[3]] [1] [2] [3] [4] [5][1] 01027992 -007288099 003051227 -001731639 0009518049

$vW$vW[[1]] [1] [2][1] -8335203e-06 1368580e-05[2] -6530183e-05 1135070e-04[3] 2544302e-05 -3947111e-05[4] -5512835e-06 9541682e-06[5] 3822854e-05 -6281762e-05

$vW[[2]] [1] [2] [3] [4] [5][1] 4172450e-04 -2554411e-04 4896670e-04 -3526093e-04 3041932e-04[2] -3210759e-04 1978412e-04 -3769148e-04 2727933e-04 -2338477e-04[3] 1058770e-04 -6705336e-05 1244419e-04 -9201508e-05 7678296e-05[4] -8894178e-05 5481668e-05 -1044110e-04 7558269e-05 -6477571e-05[5] 2676520e-05 -1622289e-05 3139684e-05 -2243174e-05 1954349e-05

$vW[[3]] [1] [2] [3] [4] [5][1] -0002603034 -0002398256 -0003274074 -0002542478 -000209672

Предсказание обученной сетью

predict by dnntest_Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02))test_Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1))test_x lt- matrix(c(test_Var1 test_Var2) nrow = 100 ncol = 2)nntest(dnn test_x y)

[1] 025 Value error rate

Сравнение обучающей и тестовой выборки

gttest_x [1] [2] [1] 091887443 -08940890 [2] 115219448 -06050481 [3] 069917981 -08524551 [4] 028213787 -08146816 [5] 098405598 -11440813 [6] 185911887 -08203652 [7] 010843056 -10123789 [8] 083827953 -07594760 [9] -016373562 -09087116 [10] 088298748 -09767741 [11] 005280917 -07525407

gt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370

Plot3d(test_xy) Plot3d(xy)

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)

Подготовка к обработке

starting installationstep1installpackages(devtools)library(devtools)install_github(repo = mnist username = xrobin ref = master)library(mnist)

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
  • Аппроксимация линейными многообразиями (подпространствами)
  • Slide 30
  • Алгоритм
  • princomp(formula data = NULL subset naaction )
  • Principal Component Analysis (PCA)
  • Линейный дискриминантный анализ (Linear Discriminant Analysis -
  • Решение
  • lda(x grouping prior = proportions tol = 10e-4 method
  • Slide 37
  • Linear Discriminant Analysis (LDA)
  • Сравнение PCA и LDA
  • Метод опорных векторов (Support Vector Machines - SVM)
  • Идея алгоритма
  • Иллюстрация на простейшем примере
  • Линейная неразделимость и использование ядер
  • Иллюстрация использования ядра для отображения 2D -gt 3D
  • svm((formula data = NULL subset naaction = naomit sc
  • Support Vector Machines
  • Глубокое обучение (Deep Learning)
  • laquoВ 1997 году Deep Blue обыграл в шахматы Каспарова В 2011 Wats
  • Распознавание основано на feature detection и последующем раз
  • Распознавание рукописных цифр
  • Еще пример посложнее
  • Использование нейронной сети с обучением
  • Сверхвысокая размерность при работе с первичным представлением
  • Пиксельное кодирование
  • Принцип иерархии понятий ndash основа deep learning
  • Разреженное (sparse) кодирование
  • Словарь для лиц
  • Slide 58
  • Выделение объектов заданного класса
  • Основные архитектуры Deep Learning
  • Задача классификации распознавания и подобные являются задачей
  • Фактор - графы
  • Slide 63
  • Slide 64
  • Подход разреженного кодирования
  • Обобщенная архитектура
  • Slide 67
  • Slide 68
  • Slide 69
  • В действительности работают любые архитектуры построения функц
  • Machine Learning with Torch7 (httpcodecogbitscomwikidoku
  • Torch 7 является расширением Lua
  • Slide 73
  • Slide 74
  • Сверточные (convolution) нейронные сети
  • Свертка и архитектура 4-х уровневой сверточной сети
  • Функциональная структура
  • Примеры успешного применения сверточных сетей
  • Диагностика эпилепсии по ЭЭГ
  • Реализация сверточной сетью
  • Одна из самых больших сверточных сетей
  • Пример тэгирования
  • Пример поиска похожих по изображению
  • Пример поиска в коллекции изображений по текстовому запросу
  • Пример laquoоблачногоraquo классификатора изображений
  • Slide 86
  • Самообучающиеся нейронные сети на основе минимизации функции эн
  • RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцман
  • Алгоритм обучения Contrastive Divergence (CD)
  • Основные уравнения адаптации
  • Алгоритм Хинтона - Contrastive Divergence (CD-k)
  • darch Package for deep architectures and Restricted-Bolzmann-
  • Связь плотности вероятности и энергии
  • Задача обучения с точки минимизации энергии сети
  • Интуитивные соображения
  • Slide 96
  • Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decom
  • Sparse linear reconstruction
  • Автоэнкодер (auto encoder)
  • Архитекттура ICA моделей
  • Итеративные алгоритмы с оптимальным разреженным кодированием 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)
Page 15: !Predictive analytics part_2

Здесь мы используем заранее известный факт что необходимо классифицировать данные на три класса ndash кластера Поэтому число кластеров k=3

gtk lt- kmeans(train[12] 3)gtplot(train[12] type=n)gttext(train[12] ascharacter(k$cluster))gtcm (train$class k$cluster)

predicted A B C 3 504 0 0 1 6 692 3 2 186 0 709

Еще одна иллюстрация работы алгоритма 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

test$predicted_class lt- knn(train[12] test[12] train$class k=1)

(mlt-cm(test$class test$predicted_class))

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)

predicted2 lt- asnumeric(apply(predict(r2) 1 function(r) order(-r)[1]))(m lt- cm (train$class predicted2))1 - sum(diag(m)) sum(m)

Линейный дискриминантный анализ (Linear Discriminant Analysis - LDA)bull Для каждого образца объекта или события с известным классом y

рассматривается набор наблюдений x (называемых ещё признаками переменными или измерениями) Набор таких образцов называется обучающей выборкой (или набором обучения обучением) Задачи классификации состоит в том чтобы построить хороший прогноз класса y для всякого так же распределённого объекта (не обязательно содержащегося в обучающей выборке) имея только наблюдения x Основная идея состоит в сравнении распределений для каждого из классов Расстоянием (по Фишеру) между распределениями принято считать отношение межклассовой дисперсии к внутриклассовой

Решение

bull Предполагается гауссово распределение совместных вероятностей

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

Linear Discriminant Analysis (LDA)

l lt- lda(class ~ x + y data = train)

(m lt- cm(train$class predict(l)$class))1 - sum(diag(m)) sum(m)

par(mfrow=c(12))train_lda lt- asmatrix(train[12]) l$scalingplot_it()plot(train_lda type=n)text(train_lda train$class)par(mfrow=c(11))

Сравнение 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)

(m lt- cm(train$class predict(s)))1 - sum(diag(m)) sum(m)

(m lt- cm(test$class predict(s test[12])))1 - sum(diag(m)) sum(m)

Глубокое обучение (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) матрицы Якобиана

ቈ120597119865119894ሺ119883119894minus1119882119894ሻ120597119882119894 119896119897 = 120597[119865119894(119883119894minus1119882119894)]119896120597[119882119894]119897

Сводится к рекуррентному соотношению для вычисления градиента 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

Сверточная (convolution) нейронная сеть

1 -- parameters 2 nstates = 16256128 3 fanin = 14 4 filtsize = 5 5 poolsize = 2 6 normkernel = imagegaussian1D(7) 7 8 -- Container 9 model = nnSequential()1011 -- stage 1 filter bank -gt squashing -gt L2 pooling -gt normalization12 modeladd(nnSpatialConvolutionMap(nntablesrandom(nfeats nstates[1] fanin[1]) filtsize filtsize))13 modeladd(nnTanh())14 modeladd(nnSpatialLPPooling(nstates[1]2poolsizepoolsizepoolsizepoolsize))15 modeladd(nnSpatialSubtractiveNormalization(16 normkernel))1617 -- stage 2 filter bank -gt squashing -gt L2 pooling -gt normalization18 modeladd(nnSpatialConvolutionMap(nntablesrandom(nstates[1] nstates[2] fanin[2]) filtsize filtsize))19 modeladd(nnTanh())20 modeladd(nnSpatialLPPooling(nstates[2]2poolsizepoolsizepoolsizepoolsize))21 modeladd(nnSpatialSubtractiveNormalization(nstates[2] normkernel))2223 -- stage 3 standard 2-layer neural network24 modeladd(nnReshape(nstates[2]filtsizefiltsize))25 modeladd(nnLinear(nstates[2]filtsizefiltsize nstates[3]))26 modeladd(nnTanh())27 modeladd(nnLinear(nstates[3] noutputs))

Код программы на Torch 7

Сверточные (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

Sparse linear reconstruction

bull Energy=reconstruction_error+code_prediction_error+code_sparsity

Автоэнкодер (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

bull saednntrain(x y hidden = c(1) activationfun = sigm learningrate = 08 momentum = 05 learningrate_scale = 1 output = sigm sae_output = linear numepochs = 3 batchsize = 100 hidden_dropout = 0 visible_dropout = 0)

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

Архитектура сети SAE

Архитектура с 5Х4 hidden 3 outs

Example

Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02)) Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1)) x lt- matrix(c(Var1 Var2) nrow = 100 ncol = 2)y lt- c(rep(1 50) rep(0 50))

обучение сетиdnn lt- saednntrain(x y hidden = c(5 5))

Анализ обучающего набора данныхgt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370helliphelliphelliphelliphelliphelliphelliphellip

gt y [1] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 [54] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

plot3d(xy)

Параметры SAE сети

gt dnn$input_dim[1] 2$output_dim[1] 1$hidden[1] 5 5$size[1] 2 5 5 1$activationfun[1] sigm$learningrate[1] 08

$momentum[1] 05$learningrate_scale[1] 1$hidden_dropout[1] 0$visible_dropout[1] 0$output[1] sigm$W

Коэффициенты связей

$W$W[[1]] [1] [2][1] -014355854 02471840[2] 011378030 -00715094[3] -004343738 03667468[4] 012756946 -01303379[5] -003445704 02293772

$W[[2]] [1] [2] [3] [4] [5][1] 00420191661 -0023073732 -008762756 0035575714 -0063000016[2] 00072771988 -0131204147 -010591421 0018221305 -0025539769[3] -01071896826 -0019479685 -009892573 -0012976429 -0111886901[4] -00009477304 -0023137518 -002147218 0007969452 -0118696306[5] 00045016013 0001885546 -010170954 -0140312396 -0003970102

$W[[3]] [1] [2] [3] [4] [5][1] 01027992 -007288099 003051227 -001731639 0009518049

$vW$vW[[1]] [1] [2][1] -8335203e-06 1368580e-05[2] -6530183e-05 1135070e-04[3] 2544302e-05 -3947111e-05[4] -5512835e-06 9541682e-06[5] 3822854e-05 -6281762e-05

$vW[[2]] [1] [2] [3] [4] [5][1] 4172450e-04 -2554411e-04 4896670e-04 -3526093e-04 3041932e-04[2] -3210759e-04 1978412e-04 -3769148e-04 2727933e-04 -2338477e-04[3] 1058770e-04 -6705336e-05 1244419e-04 -9201508e-05 7678296e-05[4] -8894178e-05 5481668e-05 -1044110e-04 7558269e-05 -6477571e-05[5] 2676520e-05 -1622289e-05 3139684e-05 -2243174e-05 1954349e-05

$vW[[3]] [1] [2] [3] [4] [5][1] -0002603034 -0002398256 -0003274074 -0002542478 -000209672

Предсказание обученной сетью

predict by dnntest_Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02))test_Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1))test_x lt- matrix(c(test_Var1 test_Var2) nrow = 100 ncol = 2)nntest(dnn test_x y)

[1] 025 Value error rate

Сравнение обучающей и тестовой выборки

gttest_x [1] [2] [1] 091887443 -08940890 [2] 115219448 -06050481 [3] 069917981 -08524551 [4] 028213787 -08146816 [5] 098405598 -11440813 [6] 185911887 -08203652 [7] 010843056 -10123789 [8] 083827953 -07594760 [9] -016373562 -09087116 [10] 088298748 -09767741 [11] 005280917 -07525407

gt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370

Plot3d(test_xy) Plot3d(xy)

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)

Подготовка к обработке

starting installationstep1installpackages(devtools)library(devtools)install_github(repo = mnist username = xrobin ref = master)library(mnist)

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
  • Аппроксимация линейными многообразиями (подпространствами)
  • Slide 30
  • Алгоритм
  • princomp(formula data = NULL subset naaction )
  • Principal Component Analysis (PCA)
  • Линейный дискриминантный анализ (Linear Discriminant Analysis -
  • Решение
  • lda(x grouping prior = proportions tol = 10e-4 method
  • Slide 37
  • Linear Discriminant Analysis (LDA)
  • Сравнение PCA и LDA
  • Метод опорных векторов (Support Vector Machines - SVM)
  • Идея алгоритма
  • Иллюстрация на простейшем примере
  • Линейная неразделимость и использование ядер
  • Иллюстрация использования ядра для отображения 2D -gt 3D
  • svm((formula data = NULL subset naaction = naomit sc
  • Support Vector Machines
  • Глубокое обучение (Deep Learning)
  • laquoВ 1997 году Deep Blue обыграл в шахматы Каспарова В 2011 Wats
  • Распознавание основано на feature detection и последующем раз
  • Распознавание рукописных цифр
  • Еще пример посложнее
  • Использование нейронной сети с обучением
  • Сверхвысокая размерность при работе с первичным представлением
  • Пиксельное кодирование
  • Принцип иерархии понятий ndash основа deep learning
  • Разреженное (sparse) кодирование
  • Словарь для лиц
  • Slide 58
  • Выделение объектов заданного класса
  • Основные архитектуры Deep Learning
  • Задача классификации распознавания и подобные являются задачей
  • Фактор - графы
  • Slide 63
  • Slide 64
  • Подход разреженного кодирования
  • Обобщенная архитектура
  • Slide 67
  • Slide 68
  • Slide 69
  • В действительности работают любые архитектуры построения функц
  • Machine Learning with Torch7 (httpcodecogbitscomwikidoku
  • Torch 7 является расширением Lua
  • Slide 73
  • Slide 74
  • Сверточные (convolution) нейронные сети
  • Свертка и архитектура 4-х уровневой сверточной сети
  • Функциональная структура
  • Примеры успешного применения сверточных сетей
  • Диагностика эпилепсии по ЭЭГ
  • Реализация сверточной сетью
  • Одна из самых больших сверточных сетей
  • Пример тэгирования
  • Пример поиска похожих по изображению
  • Пример поиска в коллекции изображений по текстовому запросу
  • Пример laquoоблачногоraquo классификатора изображений
  • Slide 86
  • Самообучающиеся нейронные сети на основе минимизации функции эн
  • RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцман
  • Алгоритм обучения Contrastive Divergence (CD)
  • Основные уравнения адаптации
  • Алгоритм Хинтона - Contrastive Divergence (CD-k)
  • darch Package for deep architectures and Restricted-Bolzmann-
  • Связь плотности вероятности и энергии
  • Задача обучения с точки минимизации энергии сети
  • Интуитивные соображения
  • Slide 96
  • Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decom
  • Sparse linear reconstruction
  • Автоэнкодер (auto encoder)
  • Архитекттура ICA моделей
  • Итеративные алгоритмы с оптимальным разреженным кодированием 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)
Page 16: !Predictive analytics part_2

Еще одна иллюстрация работы алгоритма 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

test$predicted_class lt- knn(train[12] test[12] train$class k=1)

(mlt-cm(test$class test$predicted_class))

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)

predicted2 lt- asnumeric(apply(predict(r2) 1 function(r) order(-r)[1]))(m lt- cm (train$class predicted2))1 - sum(diag(m)) sum(m)

Линейный дискриминантный анализ (Linear Discriminant Analysis - LDA)bull Для каждого образца объекта или события с известным классом y

рассматривается набор наблюдений x (называемых ещё признаками переменными или измерениями) Набор таких образцов называется обучающей выборкой (или набором обучения обучением) Задачи классификации состоит в том чтобы построить хороший прогноз класса y для всякого так же распределённого объекта (не обязательно содержащегося в обучающей выборке) имея только наблюдения x Основная идея состоит в сравнении распределений для каждого из классов Расстоянием (по Фишеру) между распределениями принято считать отношение межклассовой дисперсии к внутриклассовой

Решение

bull Предполагается гауссово распределение совместных вероятностей

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

Linear Discriminant Analysis (LDA)

l lt- lda(class ~ x + y data = train)

(m lt- cm(train$class predict(l)$class))1 - sum(diag(m)) sum(m)

par(mfrow=c(12))train_lda lt- asmatrix(train[12]) l$scalingplot_it()plot(train_lda type=n)text(train_lda train$class)par(mfrow=c(11))

Сравнение 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)

(m lt- cm(train$class predict(s)))1 - sum(diag(m)) sum(m)

(m lt- cm(test$class predict(s test[12])))1 - sum(diag(m)) sum(m)

Глубокое обучение (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) матрицы Якобиана

ቈ120597119865119894ሺ119883119894minus1119882119894ሻ120597119882119894 119896119897 = 120597[119865119894(119883119894minus1119882119894)]119896120597[119882119894]119897

Сводится к рекуррентному соотношению для вычисления градиента 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

Сверточная (convolution) нейронная сеть

1 -- parameters 2 nstates = 16256128 3 fanin = 14 4 filtsize = 5 5 poolsize = 2 6 normkernel = imagegaussian1D(7) 7 8 -- Container 9 model = nnSequential()1011 -- stage 1 filter bank -gt squashing -gt L2 pooling -gt normalization12 modeladd(nnSpatialConvolutionMap(nntablesrandom(nfeats nstates[1] fanin[1]) filtsize filtsize))13 modeladd(nnTanh())14 modeladd(nnSpatialLPPooling(nstates[1]2poolsizepoolsizepoolsizepoolsize))15 modeladd(nnSpatialSubtractiveNormalization(16 normkernel))1617 -- stage 2 filter bank -gt squashing -gt L2 pooling -gt normalization18 modeladd(nnSpatialConvolutionMap(nntablesrandom(nstates[1] nstates[2] fanin[2]) filtsize filtsize))19 modeladd(nnTanh())20 modeladd(nnSpatialLPPooling(nstates[2]2poolsizepoolsizepoolsizepoolsize))21 modeladd(nnSpatialSubtractiveNormalization(nstates[2] normkernel))2223 -- stage 3 standard 2-layer neural network24 modeladd(nnReshape(nstates[2]filtsizefiltsize))25 modeladd(nnLinear(nstates[2]filtsizefiltsize nstates[3]))26 modeladd(nnTanh())27 modeladd(nnLinear(nstates[3] noutputs))

Код программы на Torch 7

Сверточные (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

Sparse linear reconstruction

bull Energy=reconstruction_error+code_prediction_error+code_sparsity

Автоэнкодер (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

bull saednntrain(x y hidden = c(1) activationfun = sigm learningrate = 08 momentum = 05 learningrate_scale = 1 output = sigm sae_output = linear numepochs = 3 batchsize = 100 hidden_dropout = 0 visible_dropout = 0)

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

Архитектура сети SAE

Архитектура с 5Х4 hidden 3 outs

Example

Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02)) Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1)) x lt- matrix(c(Var1 Var2) nrow = 100 ncol = 2)y lt- c(rep(1 50) rep(0 50))

обучение сетиdnn lt- saednntrain(x y hidden = c(5 5))

Анализ обучающего набора данныхgt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370helliphelliphelliphelliphelliphelliphelliphellip

gt y [1] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 [54] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

plot3d(xy)

Параметры SAE сети

gt dnn$input_dim[1] 2$output_dim[1] 1$hidden[1] 5 5$size[1] 2 5 5 1$activationfun[1] sigm$learningrate[1] 08

$momentum[1] 05$learningrate_scale[1] 1$hidden_dropout[1] 0$visible_dropout[1] 0$output[1] sigm$W

Коэффициенты связей

$W$W[[1]] [1] [2][1] -014355854 02471840[2] 011378030 -00715094[3] -004343738 03667468[4] 012756946 -01303379[5] -003445704 02293772

$W[[2]] [1] [2] [3] [4] [5][1] 00420191661 -0023073732 -008762756 0035575714 -0063000016[2] 00072771988 -0131204147 -010591421 0018221305 -0025539769[3] -01071896826 -0019479685 -009892573 -0012976429 -0111886901[4] -00009477304 -0023137518 -002147218 0007969452 -0118696306[5] 00045016013 0001885546 -010170954 -0140312396 -0003970102

$W[[3]] [1] [2] [3] [4] [5][1] 01027992 -007288099 003051227 -001731639 0009518049

$vW$vW[[1]] [1] [2][1] -8335203e-06 1368580e-05[2] -6530183e-05 1135070e-04[3] 2544302e-05 -3947111e-05[4] -5512835e-06 9541682e-06[5] 3822854e-05 -6281762e-05

$vW[[2]] [1] [2] [3] [4] [5][1] 4172450e-04 -2554411e-04 4896670e-04 -3526093e-04 3041932e-04[2] -3210759e-04 1978412e-04 -3769148e-04 2727933e-04 -2338477e-04[3] 1058770e-04 -6705336e-05 1244419e-04 -9201508e-05 7678296e-05[4] -8894178e-05 5481668e-05 -1044110e-04 7558269e-05 -6477571e-05[5] 2676520e-05 -1622289e-05 3139684e-05 -2243174e-05 1954349e-05

$vW[[3]] [1] [2] [3] [4] [5][1] -0002603034 -0002398256 -0003274074 -0002542478 -000209672

Предсказание обученной сетью

predict by dnntest_Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02))test_Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1))test_x lt- matrix(c(test_Var1 test_Var2) nrow = 100 ncol = 2)nntest(dnn test_x y)

[1] 025 Value error rate

Сравнение обучающей и тестовой выборки

gttest_x [1] [2] [1] 091887443 -08940890 [2] 115219448 -06050481 [3] 069917981 -08524551 [4] 028213787 -08146816 [5] 098405598 -11440813 [6] 185911887 -08203652 [7] 010843056 -10123789 [8] 083827953 -07594760 [9] -016373562 -09087116 [10] 088298748 -09767741 [11] 005280917 -07525407

gt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370

Plot3d(test_xy) Plot3d(xy)

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)

Подготовка к обработке

starting installationstep1installpackages(devtools)library(devtools)install_github(repo = mnist username = xrobin ref = master)library(mnist)

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
  • Аппроксимация линейными многообразиями (подпространствами)
  • Slide 30
  • Алгоритм
  • princomp(formula data = NULL subset naaction )
  • Principal Component Analysis (PCA)
  • Линейный дискриминантный анализ (Linear Discriminant Analysis -
  • Решение
  • lda(x grouping prior = proportions tol = 10e-4 method
  • Slide 37
  • Linear Discriminant Analysis (LDA)
  • Сравнение PCA и LDA
  • Метод опорных векторов (Support Vector Machines - SVM)
  • Идея алгоритма
  • Иллюстрация на простейшем примере
  • Линейная неразделимость и использование ядер
  • Иллюстрация использования ядра для отображения 2D -gt 3D
  • svm((formula data = NULL subset naaction = naomit sc
  • Support Vector Machines
  • Глубокое обучение (Deep Learning)
  • laquoВ 1997 году Deep Blue обыграл в шахматы Каспарова В 2011 Wats
  • Распознавание основано на feature detection и последующем раз
  • Распознавание рукописных цифр
  • Еще пример посложнее
  • Использование нейронной сети с обучением
  • Сверхвысокая размерность при работе с первичным представлением
  • Пиксельное кодирование
  • Принцип иерархии понятий ndash основа deep learning
  • Разреженное (sparse) кодирование
  • Словарь для лиц
  • Slide 58
  • Выделение объектов заданного класса
  • Основные архитектуры Deep Learning
  • Задача классификации распознавания и подобные являются задачей
  • Фактор - графы
  • Slide 63
  • Slide 64
  • Подход разреженного кодирования
  • Обобщенная архитектура
  • Slide 67
  • Slide 68
  • Slide 69
  • В действительности работают любые архитектуры построения функц
  • Machine Learning with Torch7 (httpcodecogbitscomwikidoku
  • Torch 7 является расширением Lua
  • Slide 73
  • Slide 74
  • Сверточные (convolution) нейронные сети
  • Свертка и архитектура 4-х уровневой сверточной сети
  • Функциональная структура
  • Примеры успешного применения сверточных сетей
  • Диагностика эпилепсии по ЭЭГ
  • Реализация сверточной сетью
  • Одна из самых больших сверточных сетей
  • Пример тэгирования
  • Пример поиска похожих по изображению
  • Пример поиска в коллекции изображений по текстовому запросу
  • Пример laquoоблачногоraquo классификатора изображений
  • Slide 86
  • Самообучающиеся нейронные сети на основе минимизации функции эн
  • RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцман
  • Алгоритм обучения Contrastive Divergence (CD)
  • Основные уравнения адаптации
  • Алгоритм Хинтона - Contrastive Divergence (CD-k)
  • darch Package for deep architectures and Restricted-Bolzmann-
  • Связь плотности вероятности и энергии
  • Задача обучения с точки минимизации энергии сети
  • Интуитивные соображения
  • Slide 96
  • Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decom
  • Sparse linear reconstruction
  • Автоэнкодер (auto encoder)
  • Архитекттура ICA моделей
  • Итеративные алгоритмы с оптимальным разреженным кодированием 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)
Page 17: !Predictive analytics part_2

Обучающаяся машина без учителя Алгоритм 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

test$predicted_class lt- knn(train[12] test[12] train$class k=1)

(mlt-cm(test$class test$predicted_class))

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)

predicted2 lt- asnumeric(apply(predict(r2) 1 function(r) order(-r)[1]))(m lt- cm (train$class predicted2))1 - sum(diag(m)) sum(m)

Линейный дискриминантный анализ (Linear Discriminant Analysis - LDA)bull Для каждого образца объекта или события с известным классом y

рассматривается набор наблюдений x (называемых ещё признаками переменными или измерениями) Набор таких образцов называется обучающей выборкой (или набором обучения обучением) Задачи классификации состоит в том чтобы построить хороший прогноз класса y для всякого так же распределённого объекта (не обязательно содержащегося в обучающей выборке) имея только наблюдения x Основная идея состоит в сравнении распределений для каждого из классов Расстоянием (по Фишеру) между распределениями принято считать отношение межклассовой дисперсии к внутриклассовой

Решение

bull Предполагается гауссово распределение совместных вероятностей

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

Linear Discriminant Analysis (LDA)

l lt- lda(class ~ x + y data = train)

(m lt- cm(train$class predict(l)$class))1 - sum(diag(m)) sum(m)

par(mfrow=c(12))train_lda lt- asmatrix(train[12]) l$scalingplot_it()plot(train_lda type=n)text(train_lda train$class)par(mfrow=c(11))

Сравнение 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)

(m lt- cm(train$class predict(s)))1 - sum(diag(m)) sum(m)

(m lt- cm(test$class predict(s test[12])))1 - sum(diag(m)) sum(m)

Глубокое обучение (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) матрицы Якобиана

ቈ120597119865119894ሺ119883119894minus1119882119894ሻ120597119882119894 119896119897 = 120597[119865119894(119883119894minus1119882119894)]119896120597[119882119894]119897

Сводится к рекуррентному соотношению для вычисления градиента 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

Сверточная (convolution) нейронная сеть

1 -- parameters 2 nstates = 16256128 3 fanin = 14 4 filtsize = 5 5 poolsize = 2 6 normkernel = imagegaussian1D(7) 7 8 -- Container 9 model = nnSequential()1011 -- stage 1 filter bank -gt squashing -gt L2 pooling -gt normalization12 modeladd(nnSpatialConvolutionMap(nntablesrandom(nfeats nstates[1] fanin[1]) filtsize filtsize))13 modeladd(nnTanh())14 modeladd(nnSpatialLPPooling(nstates[1]2poolsizepoolsizepoolsizepoolsize))15 modeladd(nnSpatialSubtractiveNormalization(16 normkernel))1617 -- stage 2 filter bank -gt squashing -gt L2 pooling -gt normalization18 modeladd(nnSpatialConvolutionMap(nntablesrandom(nstates[1] nstates[2] fanin[2]) filtsize filtsize))19 modeladd(nnTanh())20 modeladd(nnSpatialLPPooling(nstates[2]2poolsizepoolsizepoolsizepoolsize))21 modeladd(nnSpatialSubtractiveNormalization(nstates[2] normkernel))2223 -- stage 3 standard 2-layer neural network24 modeladd(nnReshape(nstates[2]filtsizefiltsize))25 modeladd(nnLinear(nstates[2]filtsizefiltsize nstates[3]))26 modeladd(nnTanh())27 modeladd(nnLinear(nstates[3] noutputs))

Код программы на Torch 7

Сверточные (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

Sparse linear reconstruction

bull Energy=reconstruction_error+code_prediction_error+code_sparsity

Автоэнкодер (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

bull saednntrain(x y hidden = c(1) activationfun = sigm learningrate = 08 momentum = 05 learningrate_scale = 1 output = sigm sae_output = linear numepochs = 3 batchsize = 100 hidden_dropout = 0 visible_dropout = 0)

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

Архитектура сети SAE

Архитектура с 5Х4 hidden 3 outs

Example

Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02)) Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1)) x lt- matrix(c(Var1 Var2) nrow = 100 ncol = 2)y lt- c(rep(1 50) rep(0 50))

обучение сетиdnn lt- saednntrain(x y hidden = c(5 5))

Анализ обучающего набора данныхgt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370helliphelliphelliphelliphelliphelliphelliphellip

gt y [1] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 [54] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

plot3d(xy)

Параметры SAE сети

gt dnn$input_dim[1] 2$output_dim[1] 1$hidden[1] 5 5$size[1] 2 5 5 1$activationfun[1] sigm$learningrate[1] 08

$momentum[1] 05$learningrate_scale[1] 1$hidden_dropout[1] 0$visible_dropout[1] 0$output[1] sigm$W

Коэффициенты связей

$W$W[[1]] [1] [2][1] -014355854 02471840[2] 011378030 -00715094[3] -004343738 03667468[4] 012756946 -01303379[5] -003445704 02293772

$W[[2]] [1] [2] [3] [4] [5][1] 00420191661 -0023073732 -008762756 0035575714 -0063000016[2] 00072771988 -0131204147 -010591421 0018221305 -0025539769[3] -01071896826 -0019479685 -009892573 -0012976429 -0111886901[4] -00009477304 -0023137518 -002147218 0007969452 -0118696306[5] 00045016013 0001885546 -010170954 -0140312396 -0003970102

$W[[3]] [1] [2] [3] [4] [5][1] 01027992 -007288099 003051227 -001731639 0009518049

$vW$vW[[1]] [1] [2][1] -8335203e-06 1368580e-05[2] -6530183e-05 1135070e-04[3] 2544302e-05 -3947111e-05[4] -5512835e-06 9541682e-06[5] 3822854e-05 -6281762e-05

$vW[[2]] [1] [2] [3] [4] [5][1] 4172450e-04 -2554411e-04 4896670e-04 -3526093e-04 3041932e-04[2] -3210759e-04 1978412e-04 -3769148e-04 2727933e-04 -2338477e-04[3] 1058770e-04 -6705336e-05 1244419e-04 -9201508e-05 7678296e-05[4] -8894178e-05 5481668e-05 -1044110e-04 7558269e-05 -6477571e-05[5] 2676520e-05 -1622289e-05 3139684e-05 -2243174e-05 1954349e-05

$vW[[3]] [1] [2] [3] [4] [5][1] -0002603034 -0002398256 -0003274074 -0002542478 -000209672

Предсказание обученной сетью

predict by dnntest_Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02))test_Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1))test_x lt- matrix(c(test_Var1 test_Var2) nrow = 100 ncol = 2)nntest(dnn test_x y)

[1] 025 Value error rate

Сравнение обучающей и тестовой выборки

gttest_x [1] [2] [1] 091887443 -08940890 [2] 115219448 -06050481 [3] 069917981 -08524551 [4] 028213787 -08146816 [5] 098405598 -11440813 [6] 185911887 -08203652 [7] 010843056 -10123789 [8] 083827953 -07594760 [9] -016373562 -09087116 [10] 088298748 -09767741 [11] 005280917 -07525407

gt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370

Plot3d(test_xy) Plot3d(xy)

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)

Подготовка к обработке

starting installationstep1installpackages(devtools)library(devtools)install_github(repo = mnist username = xrobin ref = master)library(mnist)

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
  • Аппроксимация линейными многообразиями (подпространствами)
  • Slide 30
  • Алгоритм
  • princomp(formula data = NULL subset naaction )
  • Principal Component Analysis (PCA)
  • Линейный дискриминантный анализ (Linear Discriminant Analysis -
  • Решение
  • lda(x grouping prior = proportions tol = 10e-4 method
  • Slide 37
  • Linear Discriminant Analysis (LDA)
  • Сравнение PCA и LDA
  • Метод опорных векторов (Support Vector Machines - SVM)
  • Идея алгоритма
  • Иллюстрация на простейшем примере
  • Линейная неразделимость и использование ядер
  • Иллюстрация использования ядра для отображения 2D -gt 3D
  • svm((formula data = NULL subset naaction = naomit sc
  • Support Vector Machines
  • Глубокое обучение (Deep Learning)
  • laquoВ 1997 году Deep Blue обыграл в шахматы Каспарова В 2011 Wats
  • Распознавание основано на feature detection и последующем раз
  • Распознавание рукописных цифр
  • Еще пример посложнее
  • Использование нейронной сети с обучением
  • Сверхвысокая размерность при работе с первичным представлением
  • Пиксельное кодирование
  • Принцип иерархии понятий ndash основа deep learning
  • Разреженное (sparse) кодирование
  • Словарь для лиц
  • Slide 58
  • Выделение объектов заданного класса
  • Основные архитектуры Deep Learning
  • Задача классификации распознавания и подобные являются задачей
  • Фактор - графы
  • Slide 63
  • Slide 64
  • Подход разреженного кодирования
  • Обобщенная архитектура
  • Slide 67
  • Slide 68
  • Slide 69
  • В действительности работают любые архитектуры построения функц
  • Machine Learning with Torch7 (httpcodecogbitscomwikidoku
  • Torch 7 является расширением Lua
  • Slide 73
  • Slide 74
  • Сверточные (convolution) нейронные сети
  • Свертка и архитектура 4-х уровневой сверточной сети
  • Функциональная структура
  • Примеры успешного применения сверточных сетей
  • Диагностика эпилепсии по ЭЭГ
  • Реализация сверточной сетью
  • Одна из самых больших сверточных сетей
  • Пример тэгирования
  • Пример поиска похожих по изображению
  • Пример поиска в коллекции изображений по текстовому запросу
  • Пример laquoоблачногоraquo классификатора изображений
  • Slide 86
  • Самообучающиеся нейронные сети на основе минимизации функции эн
  • RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцман
  • Алгоритм обучения Contrastive Divergence (CD)
  • Основные уравнения адаптации
  • Алгоритм Хинтона - Contrastive Divergence (CD-k)
  • darch Package for deep architectures and Restricted-Bolzmann-
  • Связь плотности вероятности и энергии
  • Задача обучения с точки минимизации энергии сети
  • Интуитивные соображения
  • Slide 96
  • Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decom
  • Sparse linear reconstruction
  • Автоэнкодер (auto encoder)
  • Архитекттура ICA моделей
  • Итеративные алгоритмы с оптимальным разреженным кодированием 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)
Page 18: !Predictive analytics part_2

Как работает алгоритм 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

test$predicted_class lt- knn(train[12] test[12] train$class k=1)

(mlt-cm(test$class test$predicted_class))

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)

predicted2 lt- asnumeric(apply(predict(r2) 1 function(r) order(-r)[1]))(m lt- cm (train$class predicted2))1 - sum(diag(m)) sum(m)

Линейный дискриминантный анализ (Linear Discriminant Analysis - LDA)bull Для каждого образца объекта или события с известным классом y

рассматривается набор наблюдений x (называемых ещё признаками переменными или измерениями) Набор таких образцов называется обучающей выборкой (или набором обучения обучением) Задачи классификации состоит в том чтобы построить хороший прогноз класса y для всякого так же распределённого объекта (не обязательно содержащегося в обучающей выборке) имея только наблюдения x Основная идея состоит в сравнении распределений для каждого из классов Расстоянием (по Фишеру) между распределениями принято считать отношение межклассовой дисперсии к внутриклассовой

Решение

bull Предполагается гауссово распределение совместных вероятностей

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

Linear Discriminant Analysis (LDA)

l lt- lda(class ~ x + y data = train)

(m lt- cm(train$class predict(l)$class))1 - sum(diag(m)) sum(m)

par(mfrow=c(12))train_lda lt- asmatrix(train[12]) l$scalingplot_it()plot(train_lda type=n)text(train_lda train$class)par(mfrow=c(11))

Сравнение 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)

(m lt- cm(train$class predict(s)))1 - sum(diag(m)) sum(m)

(m lt- cm(test$class predict(s test[12])))1 - sum(diag(m)) sum(m)

Глубокое обучение (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) матрицы Якобиана

ቈ120597119865119894ሺ119883119894minus1119882119894ሻ120597119882119894 119896119897 = 120597[119865119894(119883119894minus1119882119894)]119896120597[119882119894]119897

Сводится к рекуррентному соотношению для вычисления градиента 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

Сверточная (convolution) нейронная сеть

1 -- parameters 2 nstates = 16256128 3 fanin = 14 4 filtsize = 5 5 poolsize = 2 6 normkernel = imagegaussian1D(7) 7 8 -- Container 9 model = nnSequential()1011 -- stage 1 filter bank -gt squashing -gt L2 pooling -gt normalization12 modeladd(nnSpatialConvolutionMap(nntablesrandom(nfeats nstates[1] fanin[1]) filtsize filtsize))13 modeladd(nnTanh())14 modeladd(nnSpatialLPPooling(nstates[1]2poolsizepoolsizepoolsizepoolsize))15 modeladd(nnSpatialSubtractiveNormalization(16 normkernel))1617 -- stage 2 filter bank -gt squashing -gt L2 pooling -gt normalization18 modeladd(nnSpatialConvolutionMap(nntablesrandom(nstates[1] nstates[2] fanin[2]) filtsize filtsize))19 modeladd(nnTanh())20 modeladd(nnSpatialLPPooling(nstates[2]2poolsizepoolsizepoolsizepoolsize))21 modeladd(nnSpatialSubtractiveNormalization(nstates[2] normkernel))2223 -- stage 3 standard 2-layer neural network24 modeladd(nnReshape(nstates[2]filtsizefiltsize))25 modeladd(nnLinear(nstates[2]filtsizefiltsize nstates[3]))26 modeladd(nnTanh())27 modeladd(nnLinear(nstates[3] noutputs))

Код программы на Torch 7

Сверточные (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

Sparse linear reconstruction

bull Energy=reconstruction_error+code_prediction_error+code_sparsity

Автоэнкодер (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

bull saednntrain(x y hidden = c(1) activationfun = sigm learningrate = 08 momentum = 05 learningrate_scale = 1 output = sigm sae_output = linear numepochs = 3 batchsize = 100 hidden_dropout = 0 visible_dropout = 0)

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

Архитектура сети SAE

Архитектура с 5Х4 hidden 3 outs

Example

Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02)) Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1)) x lt- matrix(c(Var1 Var2) nrow = 100 ncol = 2)y lt- c(rep(1 50) rep(0 50))

обучение сетиdnn lt- saednntrain(x y hidden = c(5 5))

Анализ обучающего набора данныхgt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370helliphelliphelliphelliphelliphelliphelliphellip

gt y [1] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 [54] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

plot3d(xy)

Параметры SAE сети

gt dnn$input_dim[1] 2$output_dim[1] 1$hidden[1] 5 5$size[1] 2 5 5 1$activationfun[1] sigm$learningrate[1] 08

$momentum[1] 05$learningrate_scale[1] 1$hidden_dropout[1] 0$visible_dropout[1] 0$output[1] sigm$W

Коэффициенты связей

$W$W[[1]] [1] [2][1] -014355854 02471840[2] 011378030 -00715094[3] -004343738 03667468[4] 012756946 -01303379[5] -003445704 02293772

$W[[2]] [1] [2] [3] [4] [5][1] 00420191661 -0023073732 -008762756 0035575714 -0063000016[2] 00072771988 -0131204147 -010591421 0018221305 -0025539769[3] -01071896826 -0019479685 -009892573 -0012976429 -0111886901[4] -00009477304 -0023137518 -002147218 0007969452 -0118696306[5] 00045016013 0001885546 -010170954 -0140312396 -0003970102

$W[[3]] [1] [2] [3] [4] [5][1] 01027992 -007288099 003051227 -001731639 0009518049

$vW$vW[[1]] [1] [2][1] -8335203e-06 1368580e-05[2] -6530183e-05 1135070e-04[3] 2544302e-05 -3947111e-05[4] -5512835e-06 9541682e-06[5] 3822854e-05 -6281762e-05

$vW[[2]] [1] [2] [3] [4] [5][1] 4172450e-04 -2554411e-04 4896670e-04 -3526093e-04 3041932e-04[2] -3210759e-04 1978412e-04 -3769148e-04 2727933e-04 -2338477e-04[3] 1058770e-04 -6705336e-05 1244419e-04 -9201508e-05 7678296e-05[4] -8894178e-05 5481668e-05 -1044110e-04 7558269e-05 -6477571e-05[5] 2676520e-05 -1622289e-05 3139684e-05 -2243174e-05 1954349e-05

$vW[[3]] [1] [2] [3] [4] [5][1] -0002603034 -0002398256 -0003274074 -0002542478 -000209672

Предсказание обученной сетью

predict by dnntest_Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02))test_Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1))test_x lt- matrix(c(test_Var1 test_Var2) nrow = 100 ncol = 2)nntest(dnn test_x y)

[1] 025 Value error rate

Сравнение обучающей и тестовой выборки

gttest_x [1] [2] [1] 091887443 -08940890 [2] 115219448 -06050481 [3] 069917981 -08524551 [4] 028213787 -08146816 [5] 098405598 -11440813 [6] 185911887 -08203652 [7] 010843056 -10123789 [8] 083827953 -07594760 [9] -016373562 -09087116 [10] 088298748 -09767741 [11] 005280917 -07525407

gt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370

Plot3d(test_xy) Plot3d(xy)

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)

Подготовка к обработке

starting installationstep1installpackages(devtools)library(devtools)install_github(repo = mnist username = xrobin ref = master)library(mnist)

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
  • Аппроксимация линейными многообразиями (подпространствами)
  • Slide 30
  • Алгоритм
  • princomp(formula data = NULL subset naaction )
  • Principal Component Analysis (PCA)
  • Линейный дискриминантный анализ (Linear Discriminant Analysis -
  • Решение
  • lda(x grouping prior = proportions tol = 10e-4 method
  • Slide 37
  • Linear Discriminant Analysis (LDA)
  • Сравнение PCA и LDA
  • Метод опорных векторов (Support Vector Machines - SVM)
  • Идея алгоритма
  • Иллюстрация на простейшем примере
  • Линейная неразделимость и использование ядер
  • Иллюстрация использования ядра для отображения 2D -gt 3D
  • svm((formula data = NULL subset naaction = naomit sc
  • Support Vector Machines
  • Глубокое обучение (Deep Learning)
  • laquoВ 1997 году Deep Blue обыграл в шахматы Каспарова В 2011 Wats
  • Распознавание основано на feature detection и последующем раз
  • Распознавание рукописных цифр
  • Еще пример посложнее
  • Использование нейронной сети с обучением
  • Сверхвысокая размерность при работе с первичным представлением
  • Пиксельное кодирование
  • Принцип иерархии понятий ndash основа deep learning
  • Разреженное (sparse) кодирование
  • Словарь для лиц
  • Slide 58
  • Выделение объектов заданного класса
  • Основные архитектуры Deep Learning
  • Задача классификации распознавания и подобные являются задачей
  • Фактор - графы
  • Slide 63
  • Slide 64
  • Подход разреженного кодирования
  • Обобщенная архитектура
  • Slide 67
  • Slide 68
  • Slide 69
  • В действительности работают любые архитектуры построения функц
  • Machine Learning with Torch7 (httpcodecogbitscomwikidoku
  • Torch 7 является расширением Lua
  • Slide 73
  • Slide 74
  • Сверточные (convolution) нейронные сети
  • Свертка и архитектура 4-х уровневой сверточной сети
  • Функциональная структура
  • Примеры успешного применения сверточных сетей
  • Диагностика эпилепсии по ЭЭГ
  • Реализация сверточной сетью
  • Одна из самых больших сверточных сетей
  • Пример тэгирования
  • Пример поиска похожих по изображению
  • Пример поиска в коллекции изображений по текстовому запросу
  • Пример laquoоблачногоraquo классификатора изображений
  • Slide 86
  • Самообучающиеся нейронные сети на основе минимизации функции эн
  • RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцман
  • Алгоритм обучения Contrastive Divergence (CD)
  • Основные уравнения адаптации
  • Алгоритм Хинтона - Contrastive Divergence (CD-k)
  • darch Package for deep architectures and Restricted-Bolzmann-
  • Связь плотности вероятности и энергии
  • Задача обучения с точки минимизации энергии сети
  • Интуитивные соображения
  • Slide 96
  • Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decom
  • Sparse linear reconstruction
  • Автоэнкодер (auto encoder)
  • Архитекттура ICA моделей
  • Итеративные алгоритмы с оптимальным разреженным кодированием 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)
Page 19: !Predictive analytics part_2

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

test$predicted_class lt- knn(train[12] test[12] train$class k=1)

(mlt-cm(test$class test$predicted_class))

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)

predicted2 lt- asnumeric(apply(predict(r2) 1 function(r) order(-r)[1]))(m lt- cm (train$class predicted2))1 - sum(diag(m)) sum(m)

Линейный дискриминантный анализ (Linear Discriminant Analysis - LDA)bull Для каждого образца объекта или события с известным классом y

рассматривается набор наблюдений x (называемых ещё признаками переменными или измерениями) Набор таких образцов называется обучающей выборкой (или набором обучения обучением) Задачи классификации состоит в том чтобы построить хороший прогноз класса y для всякого так же распределённого объекта (не обязательно содержащегося в обучающей выборке) имея только наблюдения x Основная идея состоит в сравнении распределений для каждого из классов Расстоянием (по Фишеру) между распределениями принято считать отношение межклассовой дисперсии к внутриклассовой

Решение

bull Предполагается гауссово распределение совместных вероятностей

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

Linear Discriminant Analysis (LDA)

l lt- lda(class ~ x + y data = train)

(m lt- cm(train$class predict(l)$class))1 - sum(diag(m)) sum(m)

par(mfrow=c(12))train_lda lt- asmatrix(train[12]) l$scalingplot_it()plot(train_lda type=n)text(train_lda train$class)par(mfrow=c(11))

Сравнение 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)

(m lt- cm(train$class predict(s)))1 - sum(diag(m)) sum(m)

(m lt- cm(test$class predict(s test[12])))1 - sum(diag(m)) sum(m)

Глубокое обучение (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) матрицы Якобиана

ቈ120597119865119894ሺ119883119894minus1119882119894ሻ120597119882119894 119896119897 = 120597[119865119894(119883119894minus1119882119894)]119896120597[119882119894]119897

Сводится к рекуррентному соотношению для вычисления градиента 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

Сверточная (convolution) нейронная сеть

1 -- parameters 2 nstates = 16256128 3 fanin = 14 4 filtsize = 5 5 poolsize = 2 6 normkernel = imagegaussian1D(7) 7 8 -- Container 9 model = nnSequential()1011 -- stage 1 filter bank -gt squashing -gt L2 pooling -gt normalization12 modeladd(nnSpatialConvolutionMap(nntablesrandom(nfeats nstates[1] fanin[1]) filtsize filtsize))13 modeladd(nnTanh())14 modeladd(nnSpatialLPPooling(nstates[1]2poolsizepoolsizepoolsizepoolsize))15 modeladd(nnSpatialSubtractiveNormalization(16 normkernel))1617 -- stage 2 filter bank -gt squashing -gt L2 pooling -gt normalization18 modeladd(nnSpatialConvolutionMap(nntablesrandom(nstates[1] nstates[2] fanin[2]) filtsize filtsize))19 modeladd(nnTanh())20 modeladd(nnSpatialLPPooling(nstates[2]2poolsizepoolsizepoolsizepoolsize))21 modeladd(nnSpatialSubtractiveNormalization(nstates[2] normkernel))2223 -- stage 3 standard 2-layer neural network24 modeladd(nnReshape(nstates[2]filtsizefiltsize))25 modeladd(nnLinear(nstates[2]filtsizefiltsize nstates[3]))26 modeladd(nnTanh())27 modeladd(nnLinear(nstates[3] noutputs))

Код программы на Torch 7

Сверточные (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

Sparse linear reconstruction

bull Energy=reconstruction_error+code_prediction_error+code_sparsity

Автоэнкодер (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

bull saednntrain(x y hidden = c(1) activationfun = sigm learningrate = 08 momentum = 05 learningrate_scale = 1 output = sigm sae_output = linear numepochs = 3 batchsize = 100 hidden_dropout = 0 visible_dropout = 0)

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

Архитектура сети SAE

Архитектура с 5Х4 hidden 3 outs

Example

Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02)) Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1)) x lt- matrix(c(Var1 Var2) nrow = 100 ncol = 2)y lt- c(rep(1 50) rep(0 50))

обучение сетиdnn lt- saednntrain(x y hidden = c(5 5))

Анализ обучающего набора данныхgt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370helliphelliphelliphelliphelliphelliphelliphellip

gt y [1] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 [54] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

plot3d(xy)

Параметры SAE сети

gt dnn$input_dim[1] 2$output_dim[1] 1$hidden[1] 5 5$size[1] 2 5 5 1$activationfun[1] sigm$learningrate[1] 08

$momentum[1] 05$learningrate_scale[1] 1$hidden_dropout[1] 0$visible_dropout[1] 0$output[1] sigm$W

Коэффициенты связей

$W$W[[1]] [1] [2][1] -014355854 02471840[2] 011378030 -00715094[3] -004343738 03667468[4] 012756946 -01303379[5] -003445704 02293772

$W[[2]] [1] [2] [3] [4] [5][1] 00420191661 -0023073732 -008762756 0035575714 -0063000016[2] 00072771988 -0131204147 -010591421 0018221305 -0025539769[3] -01071896826 -0019479685 -009892573 -0012976429 -0111886901[4] -00009477304 -0023137518 -002147218 0007969452 -0118696306[5] 00045016013 0001885546 -010170954 -0140312396 -0003970102

$W[[3]] [1] [2] [3] [4] [5][1] 01027992 -007288099 003051227 -001731639 0009518049

$vW$vW[[1]] [1] [2][1] -8335203e-06 1368580e-05[2] -6530183e-05 1135070e-04[3] 2544302e-05 -3947111e-05[4] -5512835e-06 9541682e-06[5] 3822854e-05 -6281762e-05

$vW[[2]] [1] [2] [3] [4] [5][1] 4172450e-04 -2554411e-04 4896670e-04 -3526093e-04 3041932e-04[2] -3210759e-04 1978412e-04 -3769148e-04 2727933e-04 -2338477e-04[3] 1058770e-04 -6705336e-05 1244419e-04 -9201508e-05 7678296e-05[4] -8894178e-05 5481668e-05 -1044110e-04 7558269e-05 -6477571e-05[5] 2676520e-05 -1622289e-05 3139684e-05 -2243174e-05 1954349e-05

$vW[[3]] [1] [2] [3] [4] [5][1] -0002603034 -0002398256 -0003274074 -0002542478 -000209672

Предсказание обученной сетью

predict by dnntest_Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02))test_Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1))test_x lt- matrix(c(test_Var1 test_Var2) nrow = 100 ncol = 2)nntest(dnn test_x y)

[1] 025 Value error rate

Сравнение обучающей и тестовой выборки

gttest_x [1] [2] [1] 091887443 -08940890 [2] 115219448 -06050481 [3] 069917981 -08524551 [4] 028213787 -08146816 [5] 098405598 -11440813 [6] 185911887 -08203652 [7] 010843056 -10123789 [8] 083827953 -07594760 [9] -016373562 -09087116 [10] 088298748 -09767741 [11] 005280917 -07525407

gt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370

Plot3d(test_xy) Plot3d(xy)

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)

Подготовка к обработке

starting installationstep1installpackages(devtools)library(devtools)install_github(repo = mnist username = xrobin ref = master)library(mnist)

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
  • Аппроксимация линейными многообразиями (подпространствами)
  • Slide 30
  • Алгоритм
  • princomp(formula data = NULL subset naaction )
  • Principal Component Analysis (PCA)
  • Линейный дискриминантный анализ (Linear Discriminant Analysis -
  • Решение
  • lda(x grouping prior = proportions tol = 10e-4 method
  • Slide 37
  • Linear Discriminant Analysis (LDA)
  • Сравнение PCA и LDA
  • Метод опорных векторов (Support Vector Machines - SVM)
  • Идея алгоритма
  • Иллюстрация на простейшем примере
  • Линейная неразделимость и использование ядер
  • Иллюстрация использования ядра для отображения 2D -gt 3D
  • svm((formula data = NULL subset naaction = naomit sc
  • Support Vector Machines
  • Глубокое обучение (Deep Learning)
  • laquoВ 1997 году Deep Blue обыграл в шахматы Каспарова В 2011 Wats
  • Распознавание основано на feature detection и последующем раз
  • Распознавание рукописных цифр
  • Еще пример посложнее
  • Использование нейронной сети с обучением
  • Сверхвысокая размерность при работе с первичным представлением
  • Пиксельное кодирование
  • Принцип иерархии понятий ndash основа deep learning
  • Разреженное (sparse) кодирование
  • Словарь для лиц
  • Slide 58
  • Выделение объектов заданного класса
  • Основные архитектуры Deep Learning
  • Задача классификации распознавания и подобные являются задачей
  • Фактор - графы
  • Slide 63
  • Slide 64
  • Подход разреженного кодирования
  • Обобщенная архитектура
  • Slide 67
  • Slide 68
  • Slide 69
  • В действительности работают любые архитектуры построения функц
  • Machine Learning with Torch7 (httpcodecogbitscomwikidoku
  • Torch 7 является расширением Lua
  • Slide 73
  • Slide 74
  • Сверточные (convolution) нейронные сети
  • Свертка и архитектура 4-х уровневой сверточной сети
  • Функциональная структура
  • Примеры успешного применения сверточных сетей
  • Диагностика эпилепсии по ЭЭГ
  • Реализация сверточной сетью
  • Одна из самых больших сверточных сетей
  • Пример тэгирования
  • Пример поиска похожих по изображению
  • Пример поиска в коллекции изображений по текстовому запросу
  • Пример laquoоблачногоraquo классификатора изображений
  • Slide 86
  • Самообучающиеся нейронные сети на основе минимизации функции эн
  • RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцман
  • Алгоритм обучения Contrastive Divergence (CD)
  • Основные уравнения адаптации
  • Алгоритм Хинтона - Contrastive Divergence (CD-k)
  • darch Package for deep architectures and Restricted-Bolzmann-
  • Связь плотности вероятности и энергии
  • Задача обучения с точки минимизации энергии сети
  • Интуитивные соображения
  • Slide 96
  • Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decom
  • Sparse linear reconstruction
  • Автоэнкодер (auto encoder)
  • Архитекттура ICA моделей
  • Итеративные алгоритмы с оптимальным разреженным кодированием 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)
Page 20: !Predictive analytics part_2

test$predicted_class lt- knn(train[12] test[12] train$class k=1)

(mlt-cm(test$class test$predicted_class))

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)

predicted2 lt- asnumeric(apply(predict(r2) 1 function(r) order(-r)[1]))(m lt- cm (train$class predicted2))1 - sum(diag(m)) sum(m)

Линейный дискриминантный анализ (Linear Discriminant Analysis - LDA)bull Для каждого образца объекта или события с известным классом y

рассматривается набор наблюдений x (называемых ещё признаками переменными или измерениями) Набор таких образцов называется обучающей выборкой (или набором обучения обучением) Задачи классификации состоит в том чтобы построить хороший прогноз класса y для всякого так же распределённого объекта (не обязательно содержащегося в обучающей выборке) имея только наблюдения x Основная идея состоит в сравнении распределений для каждого из классов Расстоянием (по Фишеру) между распределениями принято считать отношение межклассовой дисперсии к внутриклассовой

Решение

bull Предполагается гауссово распределение совместных вероятностей

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

Linear Discriminant Analysis (LDA)

l lt- lda(class ~ x + y data = train)

(m lt- cm(train$class predict(l)$class))1 - sum(diag(m)) sum(m)

par(mfrow=c(12))train_lda lt- asmatrix(train[12]) l$scalingplot_it()plot(train_lda type=n)text(train_lda train$class)par(mfrow=c(11))

Сравнение 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)

(m lt- cm(train$class predict(s)))1 - sum(diag(m)) sum(m)

(m lt- cm(test$class predict(s test[12])))1 - sum(diag(m)) sum(m)

Глубокое обучение (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) матрицы Якобиана

ቈ120597119865119894ሺ119883119894minus1119882119894ሻ120597119882119894 119896119897 = 120597[119865119894(119883119894minus1119882119894)]119896120597[119882119894]119897

Сводится к рекуррентному соотношению для вычисления градиента 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

Сверточная (convolution) нейронная сеть

1 -- parameters 2 nstates = 16256128 3 fanin = 14 4 filtsize = 5 5 poolsize = 2 6 normkernel = imagegaussian1D(7) 7 8 -- Container 9 model = nnSequential()1011 -- stage 1 filter bank -gt squashing -gt L2 pooling -gt normalization12 modeladd(nnSpatialConvolutionMap(nntablesrandom(nfeats nstates[1] fanin[1]) filtsize filtsize))13 modeladd(nnTanh())14 modeladd(nnSpatialLPPooling(nstates[1]2poolsizepoolsizepoolsizepoolsize))15 modeladd(nnSpatialSubtractiveNormalization(16 normkernel))1617 -- stage 2 filter bank -gt squashing -gt L2 pooling -gt normalization18 modeladd(nnSpatialConvolutionMap(nntablesrandom(nstates[1] nstates[2] fanin[2]) filtsize filtsize))19 modeladd(nnTanh())20 modeladd(nnSpatialLPPooling(nstates[2]2poolsizepoolsizepoolsizepoolsize))21 modeladd(nnSpatialSubtractiveNormalization(nstates[2] normkernel))2223 -- stage 3 standard 2-layer neural network24 modeladd(nnReshape(nstates[2]filtsizefiltsize))25 modeladd(nnLinear(nstates[2]filtsizefiltsize nstates[3]))26 modeladd(nnTanh())27 modeladd(nnLinear(nstates[3] noutputs))

Код программы на Torch 7

Сверточные (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

Sparse linear reconstruction

bull Energy=reconstruction_error+code_prediction_error+code_sparsity

Автоэнкодер (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

bull saednntrain(x y hidden = c(1) activationfun = sigm learningrate = 08 momentum = 05 learningrate_scale = 1 output = sigm sae_output = linear numepochs = 3 batchsize = 100 hidden_dropout = 0 visible_dropout = 0)

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

Архитектура сети SAE

Архитектура с 5Х4 hidden 3 outs

Example

Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02)) Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1)) x lt- matrix(c(Var1 Var2) nrow = 100 ncol = 2)y lt- c(rep(1 50) rep(0 50))

обучение сетиdnn lt- saednntrain(x y hidden = c(5 5))

Анализ обучающего набора данныхgt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370helliphelliphelliphelliphelliphelliphelliphellip

gt y [1] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 [54] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

plot3d(xy)

Параметры SAE сети

gt dnn$input_dim[1] 2$output_dim[1] 1$hidden[1] 5 5$size[1] 2 5 5 1$activationfun[1] sigm$learningrate[1] 08

$momentum[1] 05$learningrate_scale[1] 1$hidden_dropout[1] 0$visible_dropout[1] 0$output[1] sigm$W

Коэффициенты связей

$W$W[[1]] [1] [2][1] -014355854 02471840[2] 011378030 -00715094[3] -004343738 03667468[4] 012756946 -01303379[5] -003445704 02293772

$W[[2]] [1] [2] [3] [4] [5][1] 00420191661 -0023073732 -008762756 0035575714 -0063000016[2] 00072771988 -0131204147 -010591421 0018221305 -0025539769[3] -01071896826 -0019479685 -009892573 -0012976429 -0111886901[4] -00009477304 -0023137518 -002147218 0007969452 -0118696306[5] 00045016013 0001885546 -010170954 -0140312396 -0003970102

$W[[3]] [1] [2] [3] [4] [5][1] 01027992 -007288099 003051227 -001731639 0009518049

$vW$vW[[1]] [1] [2][1] -8335203e-06 1368580e-05[2] -6530183e-05 1135070e-04[3] 2544302e-05 -3947111e-05[4] -5512835e-06 9541682e-06[5] 3822854e-05 -6281762e-05

$vW[[2]] [1] [2] [3] [4] [5][1] 4172450e-04 -2554411e-04 4896670e-04 -3526093e-04 3041932e-04[2] -3210759e-04 1978412e-04 -3769148e-04 2727933e-04 -2338477e-04[3] 1058770e-04 -6705336e-05 1244419e-04 -9201508e-05 7678296e-05[4] -8894178e-05 5481668e-05 -1044110e-04 7558269e-05 -6477571e-05[5] 2676520e-05 -1622289e-05 3139684e-05 -2243174e-05 1954349e-05

$vW[[3]] [1] [2] [3] [4] [5][1] -0002603034 -0002398256 -0003274074 -0002542478 -000209672

Предсказание обученной сетью

predict by dnntest_Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02))test_Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1))test_x lt- matrix(c(test_Var1 test_Var2) nrow = 100 ncol = 2)nntest(dnn test_x y)

[1] 025 Value error rate

Сравнение обучающей и тестовой выборки

gttest_x [1] [2] [1] 091887443 -08940890 [2] 115219448 -06050481 [3] 069917981 -08524551 [4] 028213787 -08146816 [5] 098405598 -11440813 [6] 185911887 -08203652 [7] 010843056 -10123789 [8] 083827953 -07594760 [9] -016373562 -09087116 [10] 088298748 -09767741 [11] 005280917 -07525407

gt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370

Plot3d(test_xy) Plot3d(xy)

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)

Подготовка к обработке

starting installationstep1installpackages(devtools)library(devtools)install_github(repo = mnist username = xrobin ref = master)library(mnist)

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
  • Аппроксимация линейными многообразиями (подпространствами)
  • Slide 30
  • Алгоритм
  • princomp(formula data = NULL subset naaction )
  • Principal Component Analysis (PCA)
  • Линейный дискриминантный анализ (Linear Discriminant Analysis -
  • Решение
  • lda(x grouping prior = proportions tol = 10e-4 method
  • Slide 37
  • Linear Discriminant Analysis (LDA)
  • Сравнение PCA и LDA
  • Метод опорных векторов (Support Vector Machines - SVM)
  • Идея алгоритма
  • Иллюстрация на простейшем примере
  • Линейная неразделимость и использование ядер
  • Иллюстрация использования ядра для отображения 2D -gt 3D
  • svm((formula data = NULL subset naaction = naomit sc
  • Support Vector Machines
  • Глубокое обучение (Deep Learning)
  • laquoВ 1997 году Deep Blue обыграл в шахматы Каспарова В 2011 Wats
  • Распознавание основано на feature detection и последующем раз
  • Распознавание рукописных цифр
  • Еще пример посложнее
  • Использование нейронной сети с обучением
  • Сверхвысокая размерность при работе с первичным представлением
  • Пиксельное кодирование
  • Принцип иерархии понятий ndash основа deep learning
  • Разреженное (sparse) кодирование
  • Словарь для лиц
  • Slide 58
  • Выделение объектов заданного класса
  • Основные архитектуры Deep Learning
  • Задача классификации распознавания и подобные являются задачей
  • Фактор - графы
  • Slide 63
  • Slide 64
  • Подход разреженного кодирования
  • Обобщенная архитектура
  • Slide 67
  • Slide 68
  • Slide 69
  • В действительности работают любые архитектуры построения функц
  • Machine Learning with Torch7 (httpcodecogbitscomwikidoku
  • Torch 7 является расширением Lua
  • Slide 73
  • Slide 74
  • Сверточные (convolution) нейронные сети
  • Свертка и архитектура 4-х уровневой сверточной сети
  • Функциональная структура
  • Примеры успешного применения сверточных сетей
  • Диагностика эпилепсии по ЭЭГ
  • Реализация сверточной сетью
  • Одна из самых больших сверточных сетей
  • Пример тэгирования
  • Пример поиска похожих по изображению
  • Пример поиска в коллекции изображений по текстовому запросу
  • Пример laquoоблачногоraquo классификатора изображений
  • Slide 86
  • Самообучающиеся нейронные сети на основе минимизации функции эн
  • RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцман
  • Алгоритм обучения Contrastive Divergence (CD)
  • Основные уравнения адаптации
  • Алгоритм Хинтона - Contrastive Divergence (CD-k)
  • darch Package for deep architectures and Restricted-Bolzmann-
  • Связь плотности вероятности и энергии
  • Задача обучения с точки минимизации энергии сети
  • Интуитивные соображения
  • Slide 96
  • Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decom
  • Sparse linear reconstruction
  • Автоэнкодер (auto encoder)
  • Архитекттура ICA моделей
  • Итеративные алгоритмы с оптимальным разреженным кодированием 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)
Page 21: !Predictive analytics part_2

Результаты кластеризации и зависимость ошибки от числа кластеров

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)

predicted2 lt- asnumeric(apply(predict(r2) 1 function(r) order(-r)[1]))(m lt- cm (train$class predicted2))1 - sum(diag(m)) sum(m)

Линейный дискриминантный анализ (Linear Discriminant Analysis - LDA)bull Для каждого образца объекта или события с известным классом y

рассматривается набор наблюдений x (называемых ещё признаками переменными или измерениями) Набор таких образцов называется обучающей выборкой (или набором обучения обучением) Задачи классификации состоит в том чтобы построить хороший прогноз класса y для всякого так же распределённого объекта (не обязательно содержащегося в обучающей выборке) имея только наблюдения x Основная идея состоит в сравнении распределений для каждого из классов Расстоянием (по Фишеру) между распределениями принято считать отношение межклассовой дисперсии к внутриклассовой

Решение

bull Предполагается гауссово распределение совместных вероятностей

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

Linear Discriminant Analysis (LDA)

l lt- lda(class ~ x + y data = train)

(m lt- cm(train$class predict(l)$class))1 - sum(diag(m)) sum(m)

par(mfrow=c(12))train_lda lt- asmatrix(train[12]) l$scalingplot_it()plot(train_lda type=n)text(train_lda train$class)par(mfrow=c(11))

Сравнение 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)

(m lt- cm(train$class predict(s)))1 - sum(diag(m)) sum(m)

(m lt- cm(test$class predict(s test[12])))1 - sum(diag(m)) sum(m)

Глубокое обучение (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) матрицы Якобиана

ቈ120597119865119894ሺ119883119894minus1119882119894ሻ120597119882119894 119896119897 = 120597[119865119894(119883119894minus1119882119894)]119896120597[119882119894]119897

Сводится к рекуррентному соотношению для вычисления градиента 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

Сверточная (convolution) нейронная сеть

1 -- parameters 2 nstates = 16256128 3 fanin = 14 4 filtsize = 5 5 poolsize = 2 6 normkernel = imagegaussian1D(7) 7 8 -- Container 9 model = nnSequential()1011 -- stage 1 filter bank -gt squashing -gt L2 pooling -gt normalization12 modeladd(nnSpatialConvolutionMap(nntablesrandom(nfeats nstates[1] fanin[1]) filtsize filtsize))13 modeladd(nnTanh())14 modeladd(nnSpatialLPPooling(nstates[1]2poolsizepoolsizepoolsizepoolsize))15 modeladd(nnSpatialSubtractiveNormalization(16 normkernel))1617 -- stage 2 filter bank -gt squashing -gt L2 pooling -gt normalization18 modeladd(nnSpatialConvolutionMap(nntablesrandom(nstates[1] nstates[2] fanin[2]) filtsize filtsize))19 modeladd(nnTanh())20 modeladd(nnSpatialLPPooling(nstates[2]2poolsizepoolsizepoolsizepoolsize))21 modeladd(nnSpatialSubtractiveNormalization(nstates[2] normkernel))2223 -- stage 3 standard 2-layer neural network24 modeladd(nnReshape(nstates[2]filtsizefiltsize))25 modeladd(nnLinear(nstates[2]filtsizefiltsize nstates[3]))26 modeladd(nnTanh())27 modeladd(nnLinear(nstates[3] noutputs))

Код программы на Torch 7

Сверточные (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

Sparse linear reconstruction

bull Energy=reconstruction_error+code_prediction_error+code_sparsity

Автоэнкодер (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

bull saednntrain(x y hidden = c(1) activationfun = sigm learningrate = 08 momentum = 05 learningrate_scale = 1 output = sigm sae_output = linear numepochs = 3 batchsize = 100 hidden_dropout = 0 visible_dropout = 0)

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

Архитектура сети SAE

Архитектура с 5Х4 hidden 3 outs

Example

Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02)) Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1)) x lt- matrix(c(Var1 Var2) nrow = 100 ncol = 2)y lt- c(rep(1 50) rep(0 50))

обучение сетиdnn lt- saednntrain(x y hidden = c(5 5))

Анализ обучающего набора данныхgt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370helliphelliphelliphelliphelliphelliphelliphellip

gt y [1] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 [54] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

plot3d(xy)

Параметры SAE сети

gt dnn$input_dim[1] 2$output_dim[1] 1$hidden[1] 5 5$size[1] 2 5 5 1$activationfun[1] sigm$learningrate[1] 08

$momentum[1] 05$learningrate_scale[1] 1$hidden_dropout[1] 0$visible_dropout[1] 0$output[1] sigm$W

Коэффициенты связей

$W$W[[1]] [1] [2][1] -014355854 02471840[2] 011378030 -00715094[3] -004343738 03667468[4] 012756946 -01303379[5] -003445704 02293772

$W[[2]] [1] [2] [3] [4] [5][1] 00420191661 -0023073732 -008762756 0035575714 -0063000016[2] 00072771988 -0131204147 -010591421 0018221305 -0025539769[3] -01071896826 -0019479685 -009892573 -0012976429 -0111886901[4] -00009477304 -0023137518 -002147218 0007969452 -0118696306[5] 00045016013 0001885546 -010170954 -0140312396 -0003970102

$W[[3]] [1] [2] [3] [4] [5][1] 01027992 -007288099 003051227 -001731639 0009518049

$vW$vW[[1]] [1] [2][1] -8335203e-06 1368580e-05[2] -6530183e-05 1135070e-04[3] 2544302e-05 -3947111e-05[4] -5512835e-06 9541682e-06[5] 3822854e-05 -6281762e-05

$vW[[2]] [1] [2] [3] [4] [5][1] 4172450e-04 -2554411e-04 4896670e-04 -3526093e-04 3041932e-04[2] -3210759e-04 1978412e-04 -3769148e-04 2727933e-04 -2338477e-04[3] 1058770e-04 -6705336e-05 1244419e-04 -9201508e-05 7678296e-05[4] -8894178e-05 5481668e-05 -1044110e-04 7558269e-05 -6477571e-05[5] 2676520e-05 -1622289e-05 3139684e-05 -2243174e-05 1954349e-05

$vW[[3]] [1] [2] [3] [4] [5][1] -0002603034 -0002398256 -0003274074 -0002542478 -000209672

Предсказание обученной сетью

predict by dnntest_Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02))test_Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1))test_x lt- matrix(c(test_Var1 test_Var2) nrow = 100 ncol = 2)nntest(dnn test_x y)

[1] 025 Value error rate

Сравнение обучающей и тестовой выборки

gttest_x [1] [2] [1] 091887443 -08940890 [2] 115219448 -06050481 [3] 069917981 -08524551 [4] 028213787 -08146816 [5] 098405598 -11440813 [6] 185911887 -08203652 [7] 010843056 -10123789 [8] 083827953 -07594760 [9] -016373562 -09087116 [10] 088298748 -09767741 [11] 005280917 -07525407

gt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370

Plot3d(test_xy) Plot3d(xy)

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)

Подготовка к обработке

starting installationstep1installpackages(devtools)library(devtools)install_github(repo = mnist username = xrobin ref = master)library(mnist)

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
  • Аппроксимация линейными многообразиями (подпространствами)
  • Slide 30
  • Алгоритм
  • princomp(formula data = NULL subset naaction )
  • Principal Component Analysis (PCA)
  • Линейный дискриминантный анализ (Linear Discriminant Analysis -
  • Решение
  • lda(x grouping prior = proportions tol = 10e-4 method
  • Slide 37
  • Linear Discriminant Analysis (LDA)
  • Сравнение PCA и LDA
  • Метод опорных векторов (Support Vector Machines - SVM)
  • Идея алгоритма
  • Иллюстрация на простейшем примере
  • Линейная неразделимость и использование ядер
  • Иллюстрация использования ядра для отображения 2D -gt 3D
  • svm((formula data = NULL subset naaction = naomit sc
  • Support Vector Machines
  • Глубокое обучение (Deep Learning)
  • laquoВ 1997 году Deep Blue обыграл в шахматы Каспарова В 2011 Wats
  • Распознавание основано на feature detection и последующем раз
  • Распознавание рукописных цифр
  • Еще пример посложнее
  • Использование нейронной сети с обучением
  • Сверхвысокая размерность при работе с первичным представлением
  • Пиксельное кодирование
  • Принцип иерархии понятий ndash основа deep learning
  • Разреженное (sparse) кодирование
  • Словарь для лиц
  • Slide 58
  • Выделение объектов заданного класса
  • Основные архитектуры Deep Learning
  • Задача классификации распознавания и подобные являются задачей
  • Фактор - графы
  • Slide 63
  • Slide 64
  • Подход разреженного кодирования
  • Обобщенная архитектура
  • Slide 67
  • Slide 68
  • Slide 69
  • В действительности работают любые архитектуры построения функц
  • Machine Learning with Torch7 (httpcodecogbitscomwikidoku
  • Torch 7 является расширением Lua
  • Slide 73
  • Slide 74
  • Сверточные (convolution) нейронные сети
  • Свертка и архитектура 4-х уровневой сверточной сети
  • Функциональная структура
  • Примеры успешного применения сверточных сетей
  • Диагностика эпилепсии по ЭЭГ
  • Реализация сверточной сетью
  • Одна из самых больших сверточных сетей
  • Пример тэгирования
  • Пример поиска похожих по изображению
  • Пример поиска в коллекции изображений по текстовому запросу
  • Пример laquoоблачногоraquo классификатора изображений
  • Slide 86
  • Самообучающиеся нейронные сети на основе минимизации функции эн
  • RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцман
  • Алгоритм обучения Contrastive Divergence (CD)
  • Основные уравнения адаптации
  • Алгоритм Хинтона - Contrastive Divergence (CD-k)
  • darch Package for deep architectures and Restricted-Bolzmann-
  • Связь плотности вероятности и энергии
  • Задача обучения с точки минимизации энергии сети
  • Интуитивные соображения
  • Slide 96
  • Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decom
  • Sparse linear reconstruction
  • Автоэнкодер (auto encoder)
  • Архитекттура ICA моделей
  • Итеративные алгоритмы с оптимальным разреженным кодированием 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)
Page 22: !Predictive analytics part_2

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)

predicted2 lt- asnumeric(apply(predict(r2) 1 function(r) order(-r)[1]))(m lt- cm (train$class predicted2))1 - sum(diag(m)) sum(m)

Линейный дискриминантный анализ (Linear Discriminant Analysis - LDA)bull Для каждого образца объекта или события с известным классом y

рассматривается набор наблюдений x (называемых ещё признаками переменными или измерениями) Набор таких образцов называется обучающей выборкой (или набором обучения обучением) Задачи классификации состоит в том чтобы построить хороший прогноз класса y для всякого так же распределённого объекта (не обязательно содержащегося в обучающей выборке) имея только наблюдения x Основная идея состоит в сравнении распределений для каждого из классов Расстоянием (по Фишеру) между распределениями принято считать отношение межклассовой дисперсии к внутриклассовой

Решение

bull Предполагается гауссово распределение совместных вероятностей

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

Linear Discriminant Analysis (LDA)

l lt- lda(class ~ x + y data = train)

(m lt- cm(train$class predict(l)$class))1 - sum(diag(m)) sum(m)

par(mfrow=c(12))train_lda lt- asmatrix(train[12]) l$scalingplot_it()plot(train_lda type=n)text(train_lda train$class)par(mfrow=c(11))

Сравнение 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)

(m lt- cm(train$class predict(s)))1 - sum(diag(m)) sum(m)

(m lt- cm(test$class predict(s test[12])))1 - sum(diag(m)) sum(m)

Глубокое обучение (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) матрицы Якобиана

ቈ120597119865119894ሺ119883119894minus1119882119894ሻ120597119882119894 119896119897 = 120597[119865119894(119883119894minus1119882119894)]119896120597[119882119894]119897

Сводится к рекуррентному соотношению для вычисления градиента 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

Сверточная (convolution) нейронная сеть

1 -- parameters 2 nstates = 16256128 3 fanin = 14 4 filtsize = 5 5 poolsize = 2 6 normkernel = imagegaussian1D(7) 7 8 -- Container 9 model = nnSequential()1011 -- stage 1 filter bank -gt squashing -gt L2 pooling -gt normalization12 modeladd(nnSpatialConvolutionMap(nntablesrandom(nfeats nstates[1] fanin[1]) filtsize filtsize))13 modeladd(nnTanh())14 modeladd(nnSpatialLPPooling(nstates[1]2poolsizepoolsizepoolsizepoolsize))15 modeladd(nnSpatialSubtractiveNormalization(16 normkernel))1617 -- stage 2 filter bank -gt squashing -gt L2 pooling -gt normalization18 modeladd(nnSpatialConvolutionMap(nntablesrandom(nstates[1] nstates[2] fanin[2]) filtsize filtsize))19 modeladd(nnTanh())20 modeladd(nnSpatialLPPooling(nstates[2]2poolsizepoolsizepoolsizepoolsize))21 modeladd(nnSpatialSubtractiveNormalization(nstates[2] normkernel))2223 -- stage 3 standard 2-layer neural network24 modeladd(nnReshape(nstates[2]filtsizefiltsize))25 modeladd(nnLinear(nstates[2]filtsizefiltsize nstates[3]))26 modeladd(nnTanh())27 modeladd(nnLinear(nstates[3] noutputs))

Код программы на Torch 7

Сверточные (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

Sparse linear reconstruction

bull Energy=reconstruction_error+code_prediction_error+code_sparsity

Автоэнкодер (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

bull saednntrain(x y hidden = c(1) activationfun = sigm learningrate = 08 momentum = 05 learningrate_scale = 1 output = sigm sae_output = linear numepochs = 3 batchsize = 100 hidden_dropout = 0 visible_dropout = 0)

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

Архитектура сети SAE

Архитектура с 5Х4 hidden 3 outs

Example

Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02)) Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1)) x lt- matrix(c(Var1 Var2) nrow = 100 ncol = 2)y lt- c(rep(1 50) rep(0 50))

обучение сетиdnn lt- saednntrain(x y hidden = c(5 5))

Анализ обучающего набора данныхgt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370helliphelliphelliphelliphelliphelliphelliphellip

gt y [1] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 [54] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

plot3d(xy)

Параметры SAE сети

gt dnn$input_dim[1] 2$output_dim[1] 1$hidden[1] 5 5$size[1] 2 5 5 1$activationfun[1] sigm$learningrate[1] 08

$momentum[1] 05$learningrate_scale[1] 1$hidden_dropout[1] 0$visible_dropout[1] 0$output[1] sigm$W

Коэффициенты связей

$W$W[[1]] [1] [2][1] -014355854 02471840[2] 011378030 -00715094[3] -004343738 03667468[4] 012756946 -01303379[5] -003445704 02293772

$W[[2]] [1] [2] [3] [4] [5][1] 00420191661 -0023073732 -008762756 0035575714 -0063000016[2] 00072771988 -0131204147 -010591421 0018221305 -0025539769[3] -01071896826 -0019479685 -009892573 -0012976429 -0111886901[4] -00009477304 -0023137518 -002147218 0007969452 -0118696306[5] 00045016013 0001885546 -010170954 -0140312396 -0003970102

$W[[3]] [1] [2] [3] [4] [5][1] 01027992 -007288099 003051227 -001731639 0009518049

$vW$vW[[1]] [1] [2][1] -8335203e-06 1368580e-05[2] -6530183e-05 1135070e-04[3] 2544302e-05 -3947111e-05[4] -5512835e-06 9541682e-06[5] 3822854e-05 -6281762e-05

$vW[[2]] [1] [2] [3] [4] [5][1] 4172450e-04 -2554411e-04 4896670e-04 -3526093e-04 3041932e-04[2] -3210759e-04 1978412e-04 -3769148e-04 2727933e-04 -2338477e-04[3] 1058770e-04 -6705336e-05 1244419e-04 -9201508e-05 7678296e-05[4] -8894178e-05 5481668e-05 -1044110e-04 7558269e-05 -6477571e-05[5] 2676520e-05 -1622289e-05 3139684e-05 -2243174e-05 1954349e-05

$vW[[3]] [1] [2] [3] [4] [5][1] -0002603034 -0002398256 -0003274074 -0002542478 -000209672

Предсказание обученной сетью

predict by dnntest_Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02))test_Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1))test_x lt- matrix(c(test_Var1 test_Var2) nrow = 100 ncol = 2)nntest(dnn test_x y)

[1] 025 Value error rate

Сравнение обучающей и тестовой выборки

gttest_x [1] [2] [1] 091887443 -08940890 [2] 115219448 -06050481 [3] 069917981 -08524551 [4] 028213787 -08146816 [5] 098405598 -11440813 [6] 185911887 -08203652 [7] 010843056 -10123789 [8] 083827953 -07594760 [9] -016373562 -09087116 [10] 088298748 -09767741 [11] 005280917 -07525407

gt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370

Plot3d(test_xy) Plot3d(xy)

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)

Подготовка к обработке

starting installationstep1installpackages(devtools)library(devtools)install_github(repo = mnist username = xrobin ref = master)library(mnist)

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
  • Аппроксимация линейными многообразиями (подпространствами)
  • Slide 30
  • Алгоритм
  • princomp(formula data = NULL subset naaction )
  • Principal Component Analysis (PCA)
  • Линейный дискриминантный анализ (Linear Discriminant Analysis -
  • Решение
  • lda(x grouping prior = proportions tol = 10e-4 method
  • Slide 37
  • Linear Discriminant Analysis (LDA)
  • Сравнение PCA и LDA
  • Метод опорных векторов (Support Vector Machines - SVM)
  • Идея алгоритма
  • Иллюстрация на простейшем примере
  • Линейная неразделимость и использование ядер
  • Иллюстрация использования ядра для отображения 2D -gt 3D
  • svm((formula data = NULL subset naaction = naomit sc
  • Support Vector Machines
  • Глубокое обучение (Deep Learning)
  • laquoВ 1997 году Deep Blue обыграл в шахматы Каспарова В 2011 Wats
  • Распознавание основано на feature detection и последующем раз
  • Распознавание рукописных цифр
  • Еще пример посложнее
  • Использование нейронной сети с обучением
  • Сверхвысокая размерность при работе с первичным представлением
  • Пиксельное кодирование
  • Принцип иерархии понятий ndash основа deep learning
  • Разреженное (sparse) кодирование
  • Словарь для лиц
  • Slide 58
  • Выделение объектов заданного класса
  • Основные архитектуры Deep Learning
  • Задача классификации распознавания и подобные являются задачей
  • Фактор - графы
  • Slide 63
  • Slide 64
  • Подход разреженного кодирования
  • Обобщенная архитектура
  • Slide 67
  • Slide 68
  • Slide 69
  • В действительности работают любые архитектуры построения функц
  • Machine Learning with Torch7 (httpcodecogbitscomwikidoku
  • Torch 7 является расширением Lua
  • Slide 73
  • Slide 74
  • Сверточные (convolution) нейронные сети
  • Свертка и архитектура 4-х уровневой сверточной сети
  • Функциональная структура
  • Примеры успешного применения сверточных сетей
  • Диагностика эпилепсии по ЭЭГ
  • Реализация сверточной сетью
  • Одна из самых больших сверточных сетей
  • Пример тэгирования
  • Пример поиска похожих по изображению
  • Пример поиска в коллекции изображений по текстовому запросу
  • Пример laquoоблачногоraquo классификатора изображений
  • Slide 86
  • Самообучающиеся нейронные сети на основе минимизации функции эн
  • RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцман
  • Алгоритм обучения Contrastive Divergence (CD)
  • Основные уравнения адаптации
  • Алгоритм Хинтона - Contrastive Divergence (CD-k)
  • darch Package for deep architectures and Restricted-Bolzmann-
  • Связь плотности вероятности и энергии
  • Задача обучения с точки минимизации энергии сети
  • Интуитивные соображения
  • Slide 96
  • Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decom
  • Sparse linear reconstruction
  • Автоэнкодер (auto encoder)
  • Архитекттура ICA моделей
  • Итеративные алгоритмы с оптимальным разреженным кодированием 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)
Page 23: !Predictive analytics part_2

Метод 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)

predicted2 lt- asnumeric(apply(predict(r2) 1 function(r) order(-r)[1]))(m lt- cm (train$class predicted2))1 - sum(diag(m)) sum(m)

Линейный дискриминантный анализ (Linear Discriminant Analysis - LDA)bull Для каждого образца объекта или события с известным классом y

рассматривается набор наблюдений x (называемых ещё признаками переменными или измерениями) Набор таких образцов называется обучающей выборкой (или набором обучения обучением) Задачи классификации состоит в том чтобы построить хороший прогноз класса y для всякого так же распределённого объекта (не обязательно содержащегося в обучающей выборке) имея только наблюдения x Основная идея состоит в сравнении распределений для каждого из классов Расстоянием (по Фишеру) между распределениями принято считать отношение межклассовой дисперсии к внутриклассовой

Решение

bull Предполагается гауссово распределение совместных вероятностей

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

Linear Discriminant Analysis (LDA)

l lt- lda(class ~ x + y data = train)

(m lt- cm(train$class predict(l)$class))1 - sum(diag(m)) sum(m)

par(mfrow=c(12))train_lda lt- asmatrix(train[12]) l$scalingplot_it()plot(train_lda type=n)text(train_lda train$class)par(mfrow=c(11))

Сравнение 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)

(m lt- cm(train$class predict(s)))1 - sum(diag(m)) sum(m)

(m lt- cm(test$class predict(s test[12])))1 - sum(diag(m)) sum(m)

Глубокое обучение (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) матрицы Якобиана

ቈ120597119865119894ሺ119883119894minus1119882119894ሻ120597119882119894 119896119897 = 120597[119865119894(119883119894minus1119882119894)]119896120597[119882119894]119897

Сводится к рекуррентному соотношению для вычисления градиента 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

Сверточная (convolution) нейронная сеть

1 -- parameters 2 nstates = 16256128 3 fanin = 14 4 filtsize = 5 5 poolsize = 2 6 normkernel = imagegaussian1D(7) 7 8 -- Container 9 model = nnSequential()1011 -- stage 1 filter bank -gt squashing -gt L2 pooling -gt normalization12 modeladd(nnSpatialConvolutionMap(nntablesrandom(nfeats nstates[1] fanin[1]) filtsize filtsize))13 modeladd(nnTanh())14 modeladd(nnSpatialLPPooling(nstates[1]2poolsizepoolsizepoolsizepoolsize))15 modeladd(nnSpatialSubtractiveNormalization(16 normkernel))1617 -- stage 2 filter bank -gt squashing -gt L2 pooling -gt normalization18 modeladd(nnSpatialConvolutionMap(nntablesrandom(nstates[1] nstates[2] fanin[2]) filtsize filtsize))19 modeladd(nnTanh())20 modeladd(nnSpatialLPPooling(nstates[2]2poolsizepoolsizepoolsizepoolsize))21 modeladd(nnSpatialSubtractiveNormalization(nstates[2] normkernel))2223 -- stage 3 standard 2-layer neural network24 modeladd(nnReshape(nstates[2]filtsizefiltsize))25 modeladd(nnLinear(nstates[2]filtsizefiltsize nstates[3]))26 modeladd(nnTanh())27 modeladd(nnLinear(nstates[3] noutputs))

Код программы на Torch 7

Сверточные (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

Sparse linear reconstruction

bull Energy=reconstruction_error+code_prediction_error+code_sparsity

Автоэнкодер (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

bull saednntrain(x y hidden = c(1) activationfun = sigm learningrate = 08 momentum = 05 learningrate_scale = 1 output = sigm sae_output = linear numepochs = 3 batchsize = 100 hidden_dropout = 0 visible_dropout = 0)

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

Архитектура сети SAE

Архитектура с 5Х4 hidden 3 outs

Example

Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02)) Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1)) x lt- matrix(c(Var1 Var2) nrow = 100 ncol = 2)y lt- c(rep(1 50) rep(0 50))

обучение сетиdnn lt- saednntrain(x y hidden = c(5 5))

Анализ обучающего набора данныхgt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370helliphelliphelliphelliphelliphelliphelliphellip

gt y [1] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 [54] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

plot3d(xy)

Параметры SAE сети

gt dnn$input_dim[1] 2$output_dim[1] 1$hidden[1] 5 5$size[1] 2 5 5 1$activationfun[1] sigm$learningrate[1] 08

$momentum[1] 05$learningrate_scale[1] 1$hidden_dropout[1] 0$visible_dropout[1] 0$output[1] sigm$W

Коэффициенты связей

$W$W[[1]] [1] [2][1] -014355854 02471840[2] 011378030 -00715094[3] -004343738 03667468[4] 012756946 -01303379[5] -003445704 02293772

$W[[2]] [1] [2] [3] [4] [5][1] 00420191661 -0023073732 -008762756 0035575714 -0063000016[2] 00072771988 -0131204147 -010591421 0018221305 -0025539769[3] -01071896826 -0019479685 -009892573 -0012976429 -0111886901[4] -00009477304 -0023137518 -002147218 0007969452 -0118696306[5] 00045016013 0001885546 -010170954 -0140312396 -0003970102

$W[[3]] [1] [2] [3] [4] [5][1] 01027992 -007288099 003051227 -001731639 0009518049

$vW$vW[[1]] [1] [2][1] -8335203e-06 1368580e-05[2] -6530183e-05 1135070e-04[3] 2544302e-05 -3947111e-05[4] -5512835e-06 9541682e-06[5] 3822854e-05 -6281762e-05

$vW[[2]] [1] [2] [3] [4] [5][1] 4172450e-04 -2554411e-04 4896670e-04 -3526093e-04 3041932e-04[2] -3210759e-04 1978412e-04 -3769148e-04 2727933e-04 -2338477e-04[3] 1058770e-04 -6705336e-05 1244419e-04 -9201508e-05 7678296e-05[4] -8894178e-05 5481668e-05 -1044110e-04 7558269e-05 -6477571e-05[5] 2676520e-05 -1622289e-05 3139684e-05 -2243174e-05 1954349e-05

$vW[[3]] [1] [2] [3] [4] [5][1] -0002603034 -0002398256 -0003274074 -0002542478 -000209672

Предсказание обученной сетью

predict by dnntest_Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02))test_Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1))test_x lt- matrix(c(test_Var1 test_Var2) nrow = 100 ncol = 2)nntest(dnn test_x y)

[1] 025 Value error rate

Сравнение обучающей и тестовой выборки

gttest_x [1] [2] [1] 091887443 -08940890 [2] 115219448 -06050481 [3] 069917981 -08524551 [4] 028213787 -08146816 [5] 098405598 -11440813 [6] 185911887 -08203652 [7] 010843056 -10123789 [8] 083827953 -07594760 [9] -016373562 -09087116 [10] 088298748 -09767741 [11] 005280917 -07525407

gt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370

Plot3d(test_xy) Plot3d(xy)

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)

Подготовка к обработке

starting installationstep1installpackages(devtools)library(devtools)install_github(repo = mnist username = xrobin ref = master)library(mnist)

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
  • Аппроксимация линейными многообразиями (подпространствами)
  • Slide 30
  • Алгоритм
  • princomp(formula data = NULL subset naaction )
  • Principal Component Analysis (PCA)
  • Линейный дискриминантный анализ (Linear Discriminant Analysis -
  • Решение
  • lda(x grouping prior = proportions tol = 10e-4 method
  • Slide 37
  • Linear Discriminant Analysis (LDA)
  • Сравнение PCA и LDA
  • Метод опорных векторов (Support Vector Machines - SVM)
  • Идея алгоритма
  • Иллюстрация на простейшем примере
  • Линейная неразделимость и использование ядер
  • Иллюстрация использования ядра для отображения 2D -gt 3D
  • svm((formula data = NULL subset naaction = naomit sc
  • Support Vector Machines
  • Глубокое обучение (Deep Learning)
  • laquoВ 1997 году Deep Blue обыграл в шахматы Каспарова В 2011 Wats
  • Распознавание основано на feature detection и последующем раз
  • Распознавание рукописных цифр
  • Еще пример посложнее
  • Использование нейронной сети с обучением
  • Сверхвысокая размерность при работе с первичным представлением
  • Пиксельное кодирование
  • Принцип иерархии понятий ndash основа deep learning
  • Разреженное (sparse) кодирование
  • Словарь для лиц
  • Slide 58
  • Выделение объектов заданного класса
  • Основные архитектуры Deep Learning
  • Задача классификации распознавания и подобные являются задачей
  • Фактор - графы
  • Slide 63
  • Slide 64
  • Подход разреженного кодирования
  • Обобщенная архитектура
  • Slide 67
  • Slide 68
  • Slide 69
  • В действительности работают любые архитектуры построения функц
  • Machine Learning with Torch7 (httpcodecogbitscomwikidoku
  • Torch 7 является расширением Lua
  • Slide 73
  • Slide 74
  • Сверточные (convolution) нейронные сети
  • Свертка и архитектура 4-х уровневой сверточной сети
  • Функциональная структура
  • Примеры успешного применения сверточных сетей
  • Диагностика эпилепсии по ЭЭГ
  • Реализация сверточной сетью
  • Одна из самых больших сверточных сетей
  • Пример тэгирования
  • Пример поиска похожих по изображению
  • Пример поиска в коллекции изображений по текстовому запросу
  • Пример laquoоблачногоraquo классификатора изображений
  • Slide 86
  • Самообучающиеся нейронные сети на основе минимизации функции эн
  • RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцман
  • Алгоритм обучения Contrastive Divergence (CD)
  • Основные уравнения адаптации
  • Алгоритм Хинтона - Contrastive Divergence (CD-k)
  • darch Package for deep architectures and Restricted-Bolzmann-
  • Связь плотности вероятности и энергии
  • Задача обучения с точки минимизации энергии сети
  • Интуитивные соображения
  • Slide 96
  • Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decom
  • Sparse linear reconstruction
  • Автоэнкодер (auto encoder)
  • Архитекттура ICA моделей
  • Итеративные алгоритмы с оптимальным разреженным кодированием 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)
Page 24: !Predictive analytics part_2

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)

predicted2 lt- asnumeric(apply(predict(r2) 1 function(r) order(-r)[1]))(m lt- cm (train$class predicted2))1 - sum(diag(m)) sum(m)

Линейный дискриминантный анализ (Linear Discriminant Analysis - LDA)bull Для каждого образца объекта или события с известным классом y

рассматривается набор наблюдений x (называемых ещё признаками переменными или измерениями) Набор таких образцов называется обучающей выборкой (или набором обучения обучением) Задачи классификации состоит в том чтобы построить хороший прогноз класса y для всякого так же распределённого объекта (не обязательно содержащегося в обучающей выборке) имея только наблюдения x Основная идея состоит в сравнении распределений для каждого из классов Расстоянием (по Фишеру) между распределениями принято считать отношение межклассовой дисперсии к внутриклассовой

Решение

bull Предполагается гауссово распределение совместных вероятностей

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

Linear Discriminant Analysis (LDA)

l lt- lda(class ~ x + y data = train)

(m lt- cm(train$class predict(l)$class))1 - sum(diag(m)) sum(m)

par(mfrow=c(12))train_lda lt- asmatrix(train[12]) l$scalingplot_it()plot(train_lda type=n)text(train_lda train$class)par(mfrow=c(11))

Сравнение 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)

(m lt- cm(train$class predict(s)))1 - sum(diag(m)) sum(m)

(m lt- cm(test$class predict(s test[12])))1 - sum(diag(m)) sum(m)

Глубокое обучение (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) матрицы Якобиана

ቈ120597119865119894ሺ119883119894minus1119882119894ሻ120597119882119894 119896119897 = 120597[119865119894(119883119894minus1119882119894)]119896120597[119882119894]119897

Сводится к рекуррентному соотношению для вычисления градиента 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

Сверточная (convolution) нейронная сеть

1 -- parameters 2 nstates = 16256128 3 fanin = 14 4 filtsize = 5 5 poolsize = 2 6 normkernel = imagegaussian1D(7) 7 8 -- Container 9 model = nnSequential()1011 -- stage 1 filter bank -gt squashing -gt L2 pooling -gt normalization12 modeladd(nnSpatialConvolutionMap(nntablesrandom(nfeats nstates[1] fanin[1]) filtsize filtsize))13 modeladd(nnTanh())14 modeladd(nnSpatialLPPooling(nstates[1]2poolsizepoolsizepoolsizepoolsize))15 modeladd(nnSpatialSubtractiveNormalization(16 normkernel))1617 -- stage 2 filter bank -gt squashing -gt L2 pooling -gt normalization18 modeladd(nnSpatialConvolutionMap(nntablesrandom(nstates[1] nstates[2] fanin[2]) filtsize filtsize))19 modeladd(nnTanh())20 modeladd(nnSpatialLPPooling(nstates[2]2poolsizepoolsizepoolsizepoolsize))21 modeladd(nnSpatialSubtractiveNormalization(nstates[2] normkernel))2223 -- stage 3 standard 2-layer neural network24 modeladd(nnReshape(nstates[2]filtsizefiltsize))25 modeladd(nnLinear(nstates[2]filtsizefiltsize nstates[3]))26 modeladd(nnTanh())27 modeladd(nnLinear(nstates[3] noutputs))

Код программы на Torch 7

Сверточные (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

Sparse linear reconstruction

bull Energy=reconstruction_error+code_prediction_error+code_sparsity

Автоэнкодер (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

bull saednntrain(x y hidden = c(1) activationfun = sigm learningrate = 08 momentum = 05 learningrate_scale = 1 output = sigm sae_output = linear numepochs = 3 batchsize = 100 hidden_dropout = 0 visible_dropout = 0)

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

Архитектура сети SAE

Архитектура с 5Х4 hidden 3 outs

Example

Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02)) Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1)) x lt- matrix(c(Var1 Var2) nrow = 100 ncol = 2)y lt- c(rep(1 50) rep(0 50))

обучение сетиdnn lt- saednntrain(x y hidden = c(5 5))

Анализ обучающего набора данныхgt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370helliphelliphelliphelliphelliphelliphelliphellip

gt y [1] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 [54] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

plot3d(xy)

Параметры SAE сети

gt dnn$input_dim[1] 2$output_dim[1] 1$hidden[1] 5 5$size[1] 2 5 5 1$activationfun[1] sigm$learningrate[1] 08

$momentum[1] 05$learningrate_scale[1] 1$hidden_dropout[1] 0$visible_dropout[1] 0$output[1] sigm$W

Коэффициенты связей

$W$W[[1]] [1] [2][1] -014355854 02471840[2] 011378030 -00715094[3] -004343738 03667468[4] 012756946 -01303379[5] -003445704 02293772

$W[[2]] [1] [2] [3] [4] [5][1] 00420191661 -0023073732 -008762756 0035575714 -0063000016[2] 00072771988 -0131204147 -010591421 0018221305 -0025539769[3] -01071896826 -0019479685 -009892573 -0012976429 -0111886901[4] -00009477304 -0023137518 -002147218 0007969452 -0118696306[5] 00045016013 0001885546 -010170954 -0140312396 -0003970102

$W[[3]] [1] [2] [3] [4] [5][1] 01027992 -007288099 003051227 -001731639 0009518049

$vW$vW[[1]] [1] [2][1] -8335203e-06 1368580e-05[2] -6530183e-05 1135070e-04[3] 2544302e-05 -3947111e-05[4] -5512835e-06 9541682e-06[5] 3822854e-05 -6281762e-05

$vW[[2]] [1] [2] [3] [4] [5][1] 4172450e-04 -2554411e-04 4896670e-04 -3526093e-04 3041932e-04[2] -3210759e-04 1978412e-04 -3769148e-04 2727933e-04 -2338477e-04[3] 1058770e-04 -6705336e-05 1244419e-04 -9201508e-05 7678296e-05[4] -8894178e-05 5481668e-05 -1044110e-04 7558269e-05 -6477571e-05[5] 2676520e-05 -1622289e-05 3139684e-05 -2243174e-05 1954349e-05

$vW[[3]] [1] [2] [3] [4] [5][1] -0002603034 -0002398256 -0003274074 -0002542478 -000209672

Предсказание обученной сетью

predict by dnntest_Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02))test_Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1))test_x lt- matrix(c(test_Var1 test_Var2) nrow = 100 ncol = 2)nntest(dnn test_x y)

[1] 025 Value error rate

Сравнение обучающей и тестовой выборки

gttest_x [1] [2] [1] 091887443 -08940890 [2] 115219448 -06050481 [3] 069917981 -08524551 [4] 028213787 -08146816 [5] 098405598 -11440813 [6] 185911887 -08203652 [7] 010843056 -10123789 [8] 083827953 -07594760 [9] -016373562 -09087116 [10] 088298748 -09767741 [11] 005280917 -07525407

gt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370

Plot3d(test_xy) Plot3d(xy)

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)

Подготовка к обработке

starting installationstep1installpackages(devtools)library(devtools)install_github(repo = mnist username = xrobin ref = master)library(mnist)

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
  • Аппроксимация линейными многообразиями (подпространствами)
  • Slide 30
  • Алгоритм
  • princomp(formula data = NULL subset naaction )
  • Principal Component Analysis (PCA)
  • Линейный дискриминантный анализ (Linear Discriminant Analysis -
  • Решение
  • lda(x grouping prior = proportions tol = 10e-4 method
  • Slide 37
  • Linear Discriminant Analysis (LDA)
  • Сравнение PCA и LDA
  • Метод опорных векторов (Support Vector Machines - SVM)
  • Идея алгоритма
  • Иллюстрация на простейшем примере
  • Линейная неразделимость и использование ядер
  • Иллюстрация использования ядра для отображения 2D -gt 3D
  • svm((formula data = NULL subset naaction = naomit sc
  • Support Vector Machines
  • Глубокое обучение (Deep Learning)
  • laquoВ 1997 году Deep Blue обыграл в шахматы Каспарова В 2011 Wats
  • Распознавание основано на feature detection и последующем раз
  • Распознавание рукописных цифр
  • Еще пример посложнее
  • Использование нейронной сети с обучением
  • Сверхвысокая размерность при работе с первичным представлением
  • Пиксельное кодирование
  • Принцип иерархии понятий ndash основа deep learning
  • Разреженное (sparse) кодирование
  • Словарь для лиц
  • Slide 58
  • Выделение объектов заданного класса
  • Основные архитектуры Deep Learning
  • Задача классификации распознавания и подобные являются задачей
  • Фактор - графы
  • Slide 63
  • Slide 64
  • Подход разреженного кодирования
  • Обобщенная архитектура
  • Slide 67
  • Slide 68
  • Slide 69
  • В действительности работают любые архитектуры построения функц
  • Machine Learning with Torch7 (httpcodecogbitscomwikidoku
  • Torch 7 является расширением Lua
  • Slide 73
  • Slide 74
  • Сверточные (convolution) нейронные сети
  • Свертка и архитектура 4-х уровневой сверточной сети
  • Функциональная структура
  • Примеры успешного применения сверточных сетей
  • Диагностика эпилепсии по ЭЭГ
  • Реализация сверточной сетью
  • Одна из самых больших сверточных сетей
  • Пример тэгирования
  • Пример поиска похожих по изображению
  • Пример поиска в коллекции изображений по текстовому запросу
  • Пример laquoоблачногоraquo классификатора изображений
  • Slide 86
  • Самообучающиеся нейронные сети на основе минимизации функции эн
  • RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцман
  • Алгоритм обучения Contrastive Divergence (CD)
  • Основные уравнения адаптации
  • Алгоритм Хинтона - Contrastive Divergence (CD-k)
  • darch Package for deep architectures and Restricted-Bolzmann-
  • Связь плотности вероятности и энергии
  • Задача обучения с точки минимизации энергии сети
  • Интуитивные соображения
  • Slide 96
  • Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decom
  • Sparse linear reconstruction
  • Автоэнкодер (auto encoder)
  • Архитекттура ICA моделей
  • Итеративные алгоритмы с оптимальным разреженным кодированием 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)
Page 25: !Predictive analytics part_2

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)

predicted2 lt- asnumeric(apply(predict(r2) 1 function(r) order(-r)[1]))(m lt- cm (train$class predicted2))1 - sum(diag(m)) sum(m)

Линейный дискриминантный анализ (Linear Discriminant Analysis - LDA)bull Для каждого образца объекта или события с известным классом y

рассматривается набор наблюдений x (называемых ещё признаками переменными или измерениями) Набор таких образцов называется обучающей выборкой (или набором обучения обучением) Задачи классификации состоит в том чтобы построить хороший прогноз класса y для всякого так же распределённого объекта (не обязательно содержащегося в обучающей выборке) имея только наблюдения x Основная идея состоит в сравнении распределений для каждого из классов Расстоянием (по Фишеру) между распределениями принято считать отношение межклассовой дисперсии к внутриклассовой

Решение

bull Предполагается гауссово распределение совместных вероятностей

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

Linear Discriminant Analysis (LDA)

l lt- lda(class ~ x + y data = train)

(m lt- cm(train$class predict(l)$class))1 - sum(diag(m)) sum(m)

par(mfrow=c(12))train_lda lt- asmatrix(train[12]) l$scalingplot_it()plot(train_lda type=n)text(train_lda train$class)par(mfrow=c(11))

Сравнение 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)

(m lt- cm(train$class predict(s)))1 - sum(diag(m)) sum(m)

(m lt- cm(test$class predict(s test[12])))1 - sum(diag(m)) sum(m)

Глубокое обучение (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) матрицы Якобиана

ቈ120597119865119894ሺ119883119894minus1119882119894ሻ120597119882119894 119896119897 = 120597[119865119894(119883119894minus1119882119894)]119896120597[119882119894]119897

Сводится к рекуррентному соотношению для вычисления градиента 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

Сверточная (convolution) нейронная сеть

1 -- parameters 2 nstates = 16256128 3 fanin = 14 4 filtsize = 5 5 poolsize = 2 6 normkernel = imagegaussian1D(7) 7 8 -- Container 9 model = nnSequential()1011 -- stage 1 filter bank -gt squashing -gt L2 pooling -gt normalization12 modeladd(nnSpatialConvolutionMap(nntablesrandom(nfeats nstates[1] fanin[1]) filtsize filtsize))13 modeladd(nnTanh())14 modeladd(nnSpatialLPPooling(nstates[1]2poolsizepoolsizepoolsizepoolsize))15 modeladd(nnSpatialSubtractiveNormalization(16 normkernel))1617 -- stage 2 filter bank -gt squashing -gt L2 pooling -gt normalization18 modeladd(nnSpatialConvolutionMap(nntablesrandom(nstates[1] nstates[2] fanin[2]) filtsize filtsize))19 modeladd(nnTanh())20 modeladd(nnSpatialLPPooling(nstates[2]2poolsizepoolsizepoolsizepoolsize))21 modeladd(nnSpatialSubtractiveNormalization(nstates[2] normkernel))2223 -- stage 3 standard 2-layer neural network24 modeladd(nnReshape(nstates[2]filtsizefiltsize))25 modeladd(nnLinear(nstates[2]filtsizefiltsize nstates[3]))26 modeladd(nnTanh())27 modeladd(nnLinear(nstates[3] noutputs))

Код программы на Torch 7

Сверточные (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

Sparse linear reconstruction

bull Energy=reconstruction_error+code_prediction_error+code_sparsity

Автоэнкодер (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

bull saednntrain(x y hidden = c(1) activationfun = sigm learningrate = 08 momentum = 05 learningrate_scale = 1 output = sigm sae_output = linear numepochs = 3 batchsize = 100 hidden_dropout = 0 visible_dropout = 0)

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

Архитектура сети SAE

Архитектура с 5Х4 hidden 3 outs

Example

Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02)) Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1)) x lt- matrix(c(Var1 Var2) nrow = 100 ncol = 2)y lt- c(rep(1 50) rep(0 50))

обучение сетиdnn lt- saednntrain(x y hidden = c(5 5))

Анализ обучающего набора данныхgt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370helliphelliphelliphelliphelliphelliphelliphellip

gt y [1] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 [54] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

plot3d(xy)

Параметры SAE сети

gt dnn$input_dim[1] 2$output_dim[1] 1$hidden[1] 5 5$size[1] 2 5 5 1$activationfun[1] sigm$learningrate[1] 08

$momentum[1] 05$learningrate_scale[1] 1$hidden_dropout[1] 0$visible_dropout[1] 0$output[1] sigm$W

Коэффициенты связей

$W$W[[1]] [1] [2][1] -014355854 02471840[2] 011378030 -00715094[3] -004343738 03667468[4] 012756946 -01303379[5] -003445704 02293772

$W[[2]] [1] [2] [3] [4] [5][1] 00420191661 -0023073732 -008762756 0035575714 -0063000016[2] 00072771988 -0131204147 -010591421 0018221305 -0025539769[3] -01071896826 -0019479685 -009892573 -0012976429 -0111886901[4] -00009477304 -0023137518 -002147218 0007969452 -0118696306[5] 00045016013 0001885546 -010170954 -0140312396 -0003970102

$W[[3]] [1] [2] [3] [4] [5][1] 01027992 -007288099 003051227 -001731639 0009518049

$vW$vW[[1]] [1] [2][1] -8335203e-06 1368580e-05[2] -6530183e-05 1135070e-04[3] 2544302e-05 -3947111e-05[4] -5512835e-06 9541682e-06[5] 3822854e-05 -6281762e-05

$vW[[2]] [1] [2] [3] [4] [5][1] 4172450e-04 -2554411e-04 4896670e-04 -3526093e-04 3041932e-04[2] -3210759e-04 1978412e-04 -3769148e-04 2727933e-04 -2338477e-04[3] 1058770e-04 -6705336e-05 1244419e-04 -9201508e-05 7678296e-05[4] -8894178e-05 5481668e-05 -1044110e-04 7558269e-05 -6477571e-05[5] 2676520e-05 -1622289e-05 3139684e-05 -2243174e-05 1954349e-05

$vW[[3]] [1] [2] [3] [4] [5][1] -0002603034 -0002398256 -0003274074 -0002542478 -000209672

Предсказание обученной сетью

predict by dnntest_Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02))test_Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1))test_x lt- matrix(c(test_Var1 test_Var2) nrow = 100 ncol = 2)nntest(dnn test_x y)

[1] 025 Value error rate

Сравнение обучающей и тестовой выборки

gttest_x [1] [2] [1] 091887443 -08940890 [2] 115219448 -06050481 [3] 069917981 -08524551 [4] 028213787 -08146816 [5] 098405598 -11440813 [6] 185911887 -08203652 [7] 010843056 -10123789 [8] 083827953 -07594760 [9] -016373562 -09087116 [10] 088298748 -09767741 [11] 005280917 -07525407

gt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370

Plot3d(test_xy) Plot3d(xy)

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)

Подготовка к обработке

starting installationstep1installpackages(devtools)library(devtools)install_github(repo = mnist username = xrobin ref = master)library(mnist)

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
  • Аппроксимация линейными многообразиями (подпространствами)
  • Slide 30
  • Алгоритм
  • princomp(formula data = NULL subset naaction )
  • Principal Component Analysis (PCA)
  • Линейный дискриминантный анализ (Linear Discriminant Analysis -
  • Решение
  • lda(x grouping prior = proportions tol = 10e-4 method
  • Slide 37
  • Linear Discriminant Analysis (LDA)
  • Сравнение PCA и LDA
  • Метод опорных векторов (Support Vector Machines - SVM)
  • Идея алгоритма
  • Иллюстрация на простейшем примере
  • Линейная неразделимость и использование ядер
  • Иллюстрация использования ядра для отображения 2D -gt 3D
  • svm((formula data = NULL subset naaction = naomit sc
  • Support Vector Machines
  • Глубокое обучение (Deep Learning)
  • laquoВ 1997 году Deep Blue обыграл в шахматы Каспарова В 2011 Wats
  • Распознавание основано на feature detection и последующем раз
  • Распознавание рукописных цифр
  • Еще пример посложнее
  • Использование нейронной сети с обучением
  • Сверхвысокая размерность при работе с первичным представлением
  • Пиксельное кодирование
  • Принцип иерархии понятий ndash основа deep learning
  • Разреженное (sparse) кодирование
  • Словарь для лиц
  • Slide 58
  • Выделение объектов заданного класса
  • Основные архитектуры Deep Learning
  • Задача классификации распознавания и подобные являются задачей
  • Фактор - графы
  • Slide 63
  • Slide 64
  • Подход разреженного кодирования
  • Обобщенная архитектура
  • Slide 67
  • Slide 68
  • Slide 69
  • В действительности работают любые архитектуры построения функц
  • Machine Learning with Torch7 (httpcodecogbitscomwikidoku
  • Torch 7 является расширением Lua
  • Slide 73
  • Slide 74
  • Сверточные (convolution) нейронные сети
  • Свертка и архитектура 4-х уровневой сверточной сети
  • Функциональная структура
  • Примеры успешного применения сверточных сетей
  • Диагностика эпилепсии по ЭЭГ
  • Реализация сверточной сетью
  • Одна из самых больших сверточных сетей
  • Пример тэгирования
  • Пример поиска похожих по изображению
  • Пример поиска в коллекции изображений по текстовому запросу
  • Пример laquoоблачногоraquo классификатора изображений
  • Slide 86
  • Самообучающиеся нейронные сети на основе минимизации функции эн
  • RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцман
  • Алгоритм обучения Contrastive Divergence (CD)
  • Основные уравнения адаптации
  • Алгоритм Хинтона - Contrastive Divergence (CD-k)
  • darch Package for deep architectures and Restricted-Bolzmann-
  • Связь плотности вероятности и энергии
  • Задача обучения с точки минимизации энергии сети
  • Интуитивные соображения
  • Slide 96
  • Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decom
  • Sparse linear reconstruction
  • Автоэнкодер (auto encoder)
  • Архитекттура ICA моделей
  • Итеративные алгоритмы с оптимальным разреженным кодированием 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)
Page 26: !Predictive analytics part_2

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)

predicted2 lt- asnumeric(apply(predict(r2) 1 function(r) order(-r)[1]))(m lt- cm (train$class predicted2))1 - sum(diag(m)) sum(m)

Линейный дискриминантный анализ (Linear Discriminant Analysis - LDA)bull Для каждого образца объекта или события с известным классом y

рассматривается набор наблюдений x (называемых ещё признаками переменными или измерениями) Набор таких образцов называется обучающей выборкой (или набором обучения обучением) Задачи классификации состоит в том чтобы построить хороший прогноз класса y для всякого так же распределённого объекта (не обязательно содержащегося в обучающей выборке) имея только наблюдения x Основная идея состоит в сравнении распределений для каждого из классов Расстоянием (по Фишеру) между распределениями принято считать отношение межклассовой дисперсии к внутриклассовой

Решение

bull Предполагается гауссово распределение совместных вероятностей

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

Linear Discriminant Analysis (LDA)

l lt- lda(class ~ x + y data = train)

(m lt- cm(train$class predict(l)$class))1 - sum(diag(m)) sum(m)

par(mfrow=c(12))train_lda lt- asmatrix(train[12]) l$scalingplot_it()plot(train_lda type=n)text(train_lda train$class)par(mfrow=c(11))

Сравнение 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)

(m lt- cm(train$class predict(s)))1 - sum(diag(m)) sum(m)

(m lt- cm(test$class predict(s test[12])))1 - sum(diag(m)) sum(m)

Глубокое обучение (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) матрицы Якобиана

ቈ120597119865119894ሺ119883119894minus1119882119894ሻ120597119882119894 119896119897 = 120597[119865119894(119883119894minus1119882119894)]119896120597[119882119894]119897

Сводится к рекуррентному соотношению для вычисления градиента 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

Сверточная (convolution) нейронная сеть

1 -- parameters 2 nstates = 16256128 3 fanin = 14 4 filtsize = 5 5 poolsize = 2 6 normkernel = imagegaussian1D(7) 7 8 -- Container 9 model = nnSequential()1011 -- stage 1 filter bank -gt squashing -gt L2 pooling -gt normalization12 modeladd(nnSpatialConvolutionMap(nntablesrandom(nfeats nstates[1] fanin[1]) filtsize filtsize))13 modeladd(nnTanh())14 modeladd(nnSpatialLPPooling(nstates[1]2poolsizepoolsizepoolsizepoolsize))15 modeladd(nnSpatialSubtractiveNormalization(16 normkernel))1617 -- stage 2 filter bank -gt squashing -gt L2 pooling -gt normalization18 modeladd(nnSpatialConvolutionMap(nntablesrandom(nstates[1] nstates[2] fanin[2]) filtsize filtsize))19 modeladd(nnTanh())20 modeladd(nnSpatialLPPooling(nstates[2]2poolsizepoolsizepoolsizepoolsize))21 modeladd(nnSpatialSubtractiveNormalization(nstates[2] normkernel))2223 -- stage 3 standard 2-layer neural network24 modeladd(nnReshape(nstates[2]filtsizefiltsize))25 modeladd(nnLinear(nstates[2]filtsizefiltsize nstates[3]))26 modeladd(nnTanh())27 modeladd(nnLinear(nstates[3] noutputs))

Код программы на Torch 7

Сверточные (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

Sparse linear reconstruction

bull Energy=reconstruction_error+code_prediction_error+code_sparsity

Автоэнкодер (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

bull saednntrain(x y hidden = c(1) activationfun = sigm learningrate = 08 momentum = 05 learningrate_scale = 1 output = sigm sae_output = linear numepochs = 3 batchsize = 100 hidden_dropout = 0 visible_dropout = 0)

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

Архитектура сети SAE

Архитектура с 5Х4 hidden 3 outs

Example

Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02)) Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1)) x lt- matrix(c(Var1 Var2) nrow = 100 ncol = 2)y lt- c(rep(1 50) rep(0 50))

обучение сетиdnn lt- saednntrain(x y hidden = c(5 5))

Анализ обучающего набора данныхgt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370helliphelliphelliphelliphelliphelliphelliphellip

gt y [1] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 [54] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

plot3d(xy)

Параметры SAE сети

gt dnn$input_dim[1] 2$output_dim[1] 1$hidden[1] 5 5$size[1] 2 5 5 1$activationfun[1] sigm$learningrate[1] 08

$momentum[1] 05$learningrate_scale[1] 1$hidden_dropout[1] 0$visible_dropout[1] 0$output[1] sigm$W

Коэффициенты связей

$W$W[[1]] [1] [2][1] -014355854 02471840[2] 011378030 -00715094[3] -004343738 03667468[4] 012756946 -01303379[5] -003445704 02293772

$W[[2]] [1] [2] [3] [4] [5][1] 00420191661 -0023073732 -008762756 0035575714 -0063000016[2] 00072771988 -0131204147 -010591421 0018221305 -0025539769[3] -01071896826 -0019479685 -009892573 -0012976429 -0111886901[4] -00009477304 -0023137518 -002147218 0007969452 -0118696306[5] 00045016013 0001885546 -010170954 -0140312396 -0003970102

$W[[3]] [1] [2] [3] [4] [5][1] 01027992 -007288099 003051227 -001731639 0009518049

$vW$vW[[1]] [1] [2][1] -8335203e-06 1368580e-05[2] -6530183e-05 1135070e-04[3] 2544302e-05 -3947111e-05[4] -5512835e-06 9541682e-06[5] 3822854e-05 -6281762e-05

$vW[[2]] [1] [2] [3] [4] [5][1] 4172450e-04 -2554411e-04 4896670e-04 -3526093e-04 3041932e-04[2] -3210759e-04 1978412e-04 -3769148e-04 2727933e-04 -2338477e-04[3] 1058770e-04 -6705336e-05 1244419e-04 -9201508e-05 7678296e-05[4] -8894178e-05 5481668e-05 -1044110e-04 7558269e-05 -6477571e-05[5] 2676520e-05 -1622289e-05 3139684e-05 -2243174e-05 1954349e-05

$vW[[3]] [1] [2] [3] [4] [5][1] -0002603034 -0002398256 -0003274074 -0002542478 -000209672

Предсказание обученной сетью

predict by dnntest_Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02))test_Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1))test_x lt- matrix(c(test_Var1 test_Var2) nrow = 100 ncol = 2)nntest(dnn test_x y)

[1] 025 Value error rate

Сравнение обучающей и тестовой выборки

gttest_x [1] [2] [1] 091887443 -08940890 [2] 115219448 -06050481 [3] 069917981 -08524551 [4] 028213787 -08146816 [5] 098405598 -11440813 [6] 185911887 -08203652 [7] 010843056 -10123789 [8] 083827953 -07594760 [9] -016373562 -09087116 [10] 088298748 -09767741 [11] 005280917 -07525407

gt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370

Plot3d(test_xy) Plot3d(xy)

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)

Подготовка к обработке

starting installationstep1installpackages(devtools)library(devtools)install_github(repo = mnist username = xrobin ref = master)library(mnist)

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
  • Аппроксимация линейными многообразиями (подпространствами)
  • Slide 30
  • Алгоритм
  • princomp(formula data = NULL subset naaction )
  • Principal Component Analysis (PCA)
  • Линейный дискриминантный анализ (Linear Discriminant Analysis -
  • Решение
  • lda(x grouping prior = proportions tol = 10e-4 method
  • Slide 37
  • Linear Discriminant Analysis (LDA)
  • Сравнение PCA и LDA
  • Метод опорных векторов (Support Vector Machines - SVM)
  • Идея алгоритма
  • Иллюстрация на простейшем примере
  • Линейная неразделимость и использование ядер
  • Иллюстрация использования ядра для отображения 2D -gt 3D
  • svm((formula data = NULL subset naaction = naomit sc
  • Support Vector Machines
  • Глубокое обучение (Deep Learning)
  • laquoВ 1997 году Deep Blue обыграл в шахматы Каспарова В 2011 Wats
  • Распознавание основано на feature detection и последующем раз
  • Распознавание рукописных цифр
  • Еще пример посложнее
  • Использование нейронной сети с обучением
  • Сверхвысокая размерность при работе с первичным представлением
  • Пиксельное кодирование
  • Принцип иерархии понятий ndash основа deep learning
  • Разреженное (sparse) кодирование
  • Словарь для лиц
  • Slide 58
  • Выделение объектов заданного класса
  • Основные архитектуры Deep Learning
  • Задача классификации распознавания и подобные являются задачей
  • Фактор - графы
  • Slide 63
  • Slide 64
  • Подход разреженного кодирования
  • Обобщенная архитектура
  • Slide 67
  • Slide 68
  • Slide 69
  • В действительности работают любые архитектуры построения функц
  • Machine Learning with Torch7 (httpcodecogbitscomwikidoku
  • Torch 7 является расширением Lua
  • Slide 73
  • Slide 74
  • Сверточные (convolution) нейронные сети
  • Свертка и архитектура 4-х уровневой сверточной сети
  • Функциональная структура
  • Примеры успешного применения сверточных сетей
  • Диагностика эпилепсии по ЭЭГ
  • Реализация сверточной сетью
  • Одна из самых больших сверточных сетей
  • Пример тэгирования
  • Пример поиска похожих по изображению
  • Пример поиска в коллекции изображений по текстовому запросу
  • Пример laquoоблачногоraquo классификатора изображений
  • Slide 86
  • Самообучающиеся нейронные сети на основе минимизации функции эн
  • RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцман
  • Алгоритм обучения Contrastive Divergence (CD)
  • Основные уравнения адаптации
  • Алгоритм Хинтона - Contrastive Divergence (CD-k)
  • darch Package for deep architectures and Restricted-Bolzmann-
  • Связь плотности вероятности и энергии
  • Задача обучения с точки минимизации энергии сети
  • Интуитивные соображения
  • Slide 96
  • Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decom
  • Sparse linear reconstruction
  • Автоэнкодер (auto encoder)
  • Архитекттура ICA моделей
  • Итеративные алгоритмы с оптимальным разреженным кодированием 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)
Page 27: !Predictive analytics part_2

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)

predicted2 lt- asnumeric(apply(predict(r2) 1 function(r) order(-r)[1]))(m lt- cm (train$class predicted2))1 - sum(diag(m)) sum(m)

Линейный дискриминантный анализ (Linear Discriminant Analysis - LDA)bull Для каждого образца объекта или события с известным классом y

рассматривается набор наблюдений x (называемых ещё признаками переменными или измерениями) Набор таких образцов называется обучающей выборкой (или набором обучения обучением) Задачи классификации состоит в том чтобы построить хороший прогноз класса y для всякого так же распределённого объекта (не обязательно содержащегося в обучающей выборке) имея только наблюдения x Основная идея состоит в сравнении распределений для каждого из классов Расстоянием (по Фишеру) между распределениями принято считать отношение межклассовой дисперсии к внутриклассовой

Решение

bull Предполагается гауссово распределение совместных вероятностей

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

Linear Discriminant Analysis (LDA)

l lt- lda(class ~ x + y data = train)

(m lt- cm(train$class predict(l)$class))1 - sum(diag(m)) sum(m)

par(mfrow=c(12))train_lda lt- asmatrix(train[12]) l$scalingplot_it()plot(train_lda type=n)text(train_lda train$class)par(mfrow=c(11))

Сравнение 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)

(m lt- cm(train$class predict(s)))1 - sum(diag(m)) sum(m)

(m lt- cm(test$class predict(s test[12])))1 - sum(diag(m)) sum(m)

Глубокое обучение (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) матрицы Якобиана

ቈ120597119865119894ሺ119883119894minus1119882119894ሻ120597119882119894 119896119897 = 120597[119865119894(119883119894minus1119882119894)]119896120597[119882119894]119897

Сводится к рекуррентному соотношению для вычисления градиента 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

Сверточная (convolution) нейронная сеть

1 -- parameters 2 nstates = 16256128 3 fanin = 14 4 filtsize = 5 5 poolsize = 2 6 normkernel = imagegaussian1D(7) 7 8 -- Container 9 model = nnSequential()1011 -- stage 1 filter bank -gt squashing -gt L2 pooling -gt normalization12 modeladd(nnSpatialConvolutionMap(nntablesrandom(nfeats nstates[1] fanin[1]) filtsize filtsize))13 modeladd(nnTanh())14 modeladd(nnSpatialLPPooling(nstates[1]2poolsizepoolsizepoolsizepoolsize))15 modeladd(nnSpatialSubtractiveNormalization(16 normkernel))1617 -- stage 2 filter bank -gt squashing -gt L2 pooling -gt normalization18 modeladd(nnSpatialConvolutionMap(nntablesrandom(nstates[1] nstates[2] fanin[2]) filtsize filtsize))19 modeladd(nnTanh())20 modeladd(nnSpatialLPPooling(nstates[2]2poolsizepoolsizepoolsizepoolsize))21 modeladd(nnSpatialSubtractiveNormalization(nstates[2] normkernel))2223 -- stage 3 standard 2-layer neural network24 modeladd(nnReshape(nstates[2]filtsizefiltsize))25 modeladd(nnLinear(nstates[2]filtsizefiltsize nstates[3]))26 modeladd(nnTanh())27 modeladd(nnLinear(nstates[3] noutputs))

Код программы на Torch 7

Сверточные (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

Sparse linear reconstruction

bull Energy=reconstruction_error+code_prediction_error+code_sparsity

Автоэнкодер (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

bull saednntrain(x y hidden = c(1) activationfun = sigm learningrate = 08 momentum = 05 learningrate_scale = 1 output = sigm sae_output = linear numepochs = 3 batchsize = 100 hidden_dropout = 0 visible_dropout = 0)

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

Архитектура сети SAE

Архитектура с 5Х4 hidden 3 outs

Example

Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02)) Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1)) x lt- matrix(c(Var1 Var2) nrow = 100 ncol = 2)y lt- c(rep(1 50) rep(0 50))

обучение сетиdnn lt- saednntrain(x y hidden = c(5 5))

Анализ обучающего набора данныхgt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370helliphelliphelliphelliphelliphelliphelliphellip

gt y [1] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 [54] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

plot3d(xy)

Параметры SAE сети

gt dnn$input_dim[1] 2$output_dim[1] 1$hidden[1] 5 5$size[1] 2 5 5 1$activationfun[1] sigm$learningrate[1] 08

$momentum[1] 05$learningrate_scale[1] 1$hidden_dropout[1] 0$visible_dropout[1] 0$output[1] sigm$W

Коэффициенты связей

$W$W[[1]] [1] [2][1] -014355854 02471840[2] 011378030 -00715094[3] -004343738 03667468[4] 012756946 -01303379[5] -003445704 02293772

$W[[2]] [1] [2] [3] [4] [5][1] 00420191661 -0023073732 -008762756 0035575714 -0063000016[2] 00072771988 -0131204147 -010591421 0018221305 -0025539769[3] -01071896826 -0019479685 -009892573 -0012976429 -0111886901[4] -00009477304 -0023137518 -002147218 0007969452 -0118696306[5] 00045016013 0001885546 -010170954 -0140312396 -0003970102

$W[[3]] [1] [2] [3] [4] [5][1] 01027992 -007288099 003051227 -001731639 0009518049

$vW$vW[[1]] [1] [2][1] -8335203e-06 1368580e-05[2] -6530183e-05 1135070e-04[3] 2544302e-05 -3947111e-05[4] -5512835e-06 9541682e-06[5] 3822854e-05 -6281762e-05

$vW[[2]] [1] [2] [3] [4] [5][1] 4172450e-04 -2554411e-04 4896670e-04 -3526093e-04 3041932e-04[2] -3210759e-04 1978412e-04 -3769148e-04 2727933e-04 -2338477e-04[3] 1058770e-04 -6705336e-05 1244419e-04 -9201508e-05 7678296e-05[4] -8894178e-05 5481668e-05 -1044110e-04 7558269e-05 -6477571e-05[5] 2676520e-05 -1622289e-05 3139684e-05 -2243174e-05 1954349e-05

$vW[[3]] [1] [2] [3] [4] [5][1] -0002603034 -0002398256 -0003274074 -0002542478 -000209672

Предсказание обученной сетью

predict by dnntest_Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02))test_Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1))test_x lt- matrix(c(test_Var1 test_Var2) nrow = 100 ncol = 2)nntest(dnn test_x y)

[1] 025 Value error rate

Сравнение обучающей и тестовой выборки

gttest_x [1] [2] [1] 091887443 -08940890 [2] 115219448 -06050481 [3] 069917981 -08524551 [4] 028213787 -08146816 [5] 098405598 -11440813 [6] 185911887 -08203652 [7] 010843056 -10123789 [8] 083827953 -07594760 [9] -016373562 -09087116 [10] 088298748 -09767741 [11] 005280917 -07525407

gt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370

Plot3d(test_xy) Plot3d(xy)

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)

Подготовка к обработке

starting installationstep1installpackages(devtools)library(devtools)install_github(repo = mnist username = xrobin ref = master)library(mnist)

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
  • Аппроксимация линейными многообразиями (подпространствами)
  • Slide 30
  • Алгоритм
  • princomp(formula data = NULL subset naaction )
  • Principal Component Analysis (PCA)
  • Линейный дискриминантный анализ (Linear Discriminant Analysis -
  • Решение
  • lda(x grouping prior = proportions tol = 10e-4 method
  • Slide 37
  • Linear Discriminant Analysis (LDA)
  • Сравнение PCA и LDA
  • Метод опорных векторов (Support Vector Machines - SVM)
  • Идея алгоритма
  • Иллюстрация на простейшем примере
  • Линейная неразделимость и использование ядер
  • Иллюстрация использования ядра для отображения 2D -gt 3D
  • svm((formula data = NULL subset naaction = naomit sc
  • Support Vector Machines
  • Глубокое обучение (Deep Learning)
  • laquoВ 1997 году Deep Blue обыграл в шахматы Каспарова В 2011 Wats
  • Распознавание основано на feature detection и последующем раз
  • Распознавание рукописных цифр
  • Еще пример посложнее
  • Использование нейронной сети с обучением
  • Сверхвысокая размерность при работе с первичным представлением
  • Пиксельное кодирование
  • Принцип иерархии понятий ndash основа deep learning
  • Разреженное (sparse) кодирование
  • Словарь для лиц
  • Slide 58
  • Выделение объектов заданного класса
  • Основные архитектуры Deep Learning
  • Задача классификации распознавания и подобные являются задачей
  • Фактор - графы
  • Slide 63
  • Slide 64
  • Подход разреженного кодирования
  • Обобщенная архитектура
  • Slide 67
  • Slide 68
  • Slide 69
  • В действительности работают любые архитектуры построения функц
  • Machine Learning with Torch7 (httpcodecogbitscomwikidoku
  • Torch 7 является расширением Lua
  • Slide 73
  • Slide 74
  • Сверточные (convolution) нейронные сети
  • Свертка и архитектура 4-х уровневой сверточной сети
  • Функциональная структура
  • Примеры успешного применения сверточных сетей
  • Диагностика эпилепсии по ЭЭГ
  • Реализация сверточной сетью
  • Одна из самых больших сверточных сетей
  • Пример тэгирования
  • Пример поиска похожих по изображению
  • Пример поиска в коллекции изображений по текстовому запросу
  • Пример laquoоблачногоraquo классификатора изображений
  • Slide 86
  • Самообучающиеся нейронные сети на основе минимизации функции эн
  • RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцман
  • Алгоритм обучения Contrastive Divergence (CD)
  • Основные уравнения адаптации
  • Алгоритм Хинтона - Contrastive Divergence (CD-k)
  • darch Package for deep architectures and Restricted-Bolzmann-
  • Связь плотности вероятности и энергии
  • Задача обучения с точки минимизации энергии сети
  • Интуитивные соображения
  • Slide 96
  • Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decom
  • Sparse linear reconstruction
  • Автоэнкодер (auto encoder)
  • Архитекттура ICA моделей
  • Итеративные алгоритмы с оптимальным разреженным кодированием 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)
Page 28: !Predictive analytics part_2

Анализ по главным компонентам (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)

predicted2 lt- asnumeric(apply(predict(r2) 1 function(r) order(-r)[1]))(m lt- cm (train$class predicted2))1 - sum(diag(m)) sum(m)

Линейный дискриминантный анализ (Linear Discriminant Analysis - LDA)bull Для каждого образца объекта или события с известным классом y

рассматривается набор наблюдений x (называемых ещё признаками переменными или измерениями) Набор таких образцов называется обучающей выборкой (или набором обучения обучением) Задачи классификации состоит в том чтобы построить хороший прогноз класса y для всякого так же распределённого объекта (не обязательно содержащегося в обучающей выборке) имея только наблюдения x Основная идея состоит в сравнении распределений для каждого из классов Расстоянием (по Фишеру) между распределениями принято считать отношение межклассовой дисперсии к внутриклассовой

Решение

bull Предполагается гауссово распределение совместных вероятностей

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

Linear Discriminant Analysis (LDA)

l lt- lda(class ~ x + y data = train)

(m lt- cm(train$class predict(l)$class))1 - sum(diag(m)) sum(m)

par(mfrow=c(12))train_lda lt- asmatrix(train[12]) l$scalingplot_it()plot(train_lda type=n)text(train_lda train$class)par(mfrow=c(11))

Сравнение 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)

(m lt- cm(train$class predict(s)))1 - sum(diag(m)) sum(m)

(m lt- cm(test$class predict(s test[12])))1 - sum(diag(m)) sum(m)

Глубокое обучение (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) матрицы Якобиана

ቈ120597119865119894ሺ119883119894minus1119882119894ሻ120597119882119894 119896119897 = 120597[119865119894(119883119894minus1119882119894)]119896120597[119882119894]119897

Сводится к рекуррентному соотношению для вычисления градиента 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

Сверточная (convolution) нейронная сеть

1 -- parameters 2 nstates = 16256128 3 fanin = 14 4 filtsize = 5 5 poolsize = 2 6 normkernel = imagegaussian1D(7) 7 8 -- Container 9 model = nnSequential()1011 -- stage 1 filter bank -gt squashing -gt L2 pooling -gt normalization12 modeladd(nnSpatialConvolutionMap(nntablesrandom(nfeats nstates[1] fanin[1]) filtsize filtsize))13 modeladd(nnTanh())14 modeladd(nnSpatialLPPooling(nstates[1]2poolsizepoolsizepoolsizepoolsize))15 modeladd(nnSpatialSubtractiveNormalization(16 normkernel))1617 -- stage 2 filter bank -gt squashing -gt L2 pooling -gt normalization18 modeladd(nnSpatialConvolutionMap(nntablesrandom(nstates[1] nstates[2] fanin[2]) filtsize filtsize))19 modeladd(nnTanh())20 modeladd(nnSpatialLPPooling(nstates[2]2poolsizepoolsizepoolsizepoolsize))21 modeladd(nnSpatialSubtractiveNormalization(nstates[2] normkernel))2223 -- stage 3 standard 2-layer neural network24 modeladd(nnReshape(nstates[2]filtsizefiltsize))25 modeladd(nnLinear(nstates[2]filtsizefiltsize nstates[3]))26 modeladd(nnTanh())27 modeladd(nnLinear(nstates[3] noutputs))

Код программы на Torch 7

Сверточные (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

Sparse linear reconstruction

bull Energy=reconstruction_error+code_prediction_error+code_sparsity

Автоэнкодер (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

bull saednntrain(x y hidden = c(1) activationfun = sigm learningrate = 08 momentum = 05 learningrate_scale = 1 output = sigm sae_output = linear numepochs = 3 batchsize = 100 hidden_dropout = 0 visible_dropout = 0)

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

Архитектура сети SAE

Архитектура с 5Х4 hidden 3 outs

Example

Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02)) Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1)) x lt- matrix(c(Var1 Var2) nrow = 100 ncol = 2)y lt- c(rep(1 50) rep(0 50))

обучение сетиdnn lt- saednntrain(x y hidden = c(5 5))

Анализ обучающего набора данныхgt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370helliphelliphelliphelliphelliphelliphelliphellip

gt y [1] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 [54] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

plot3d(xy)

Параметры SAE сети

gt dnn$input_dim[1] 2$output_dim[1] 1$hidden[1] 5 5$size[1] 2 5 5 1$activationfun[1] sigm$learningrate[1] 08

$momentum[1] 05$learningrate_scale[1] 1$hidden_dropout[1] 0$visible_dropout[1] 0$output[1] sigm$W

Коэффициенты связей

$W$W[[1]] [1] [2][1] -014355854 02471840[2] 011378030 -00715094[3] -004343738 03667468[4] 012756946 -01303379[5] -003445704 02293772

$W[[2]] [1] [2] [3] [4] [5][1] 00420191661 -0023073732 -008762756 0035575714 -0063000016[2] 00072771988 -0131204147 -010591421 0018221305 -0025539769[3] -01071896826 -0019479685 -009892573 -0012976429 -0111886901[4] -00009477304 -0023137518 -002147218 0007969452 -0118696306[5] 00045016013 0001885546 -010170954 -0140312396 -0003970102

$W[[3]] [1] [2] [3] [4] [5][1] 01027992 -007288099 003051227 -001731639 0009518049

$vW$vW[[1]] [1] [2][1] -8335203e-06 1368580e-05[2] -6530183e-05 1135070e-04[3] 2544302e-05 -3947111e-05[4] -5512835e-06 9541682e-06[5] 3822854e-05 -6281762e-05

$vW[[2]] [1] [2] [3] [4] [5][1] 4172450e-04 -2554411e-04 4896670e-04 -3526093e-04 3041932e-04[2] -3210759e-04 1978412e-04 -3769148e-04 2727933e-04 -2338477e-04[3] 1058770e-04 -6705336e-05 1244419e-04 -9201508e-05 7678296e-05[4] -8894178e-05 5481668e-05 -1044110e-04 7558269e-05 -6477571e-05[5] 2676520e-05 -1622289e-05 3139684e-05 -2243174e-05 1954349e-05

$vW[[3]] [1] [2] [3] [4] [5][1] -0002603034 -0002398256 -0003274074 -0002542478 -000209672

Предсказание обученной сетью

predict by dnntest_Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02))test_Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1))test_x lt- matrix(c(test_Var1 test_Var2) nrow = 100 ncol = 2)nntest(dnn test_x y)

[1] 025 Value error rate

Сравнение обучающей и тестовой выборки

gttest_x [1] [2] [1] 091887443 -08940890 [2] 115219448 -06050481 [3] 069917981 -08524551 [4] 028213787 -08146816 [5] 098405598 -11440813 [6] 185911887 -08203652 [7] 010843056 -10123789 [8] 083827953 -07594760 [9] -016373562 -09087116 [10] 088298748 -09767741 [11] 005280917 -07525407

gt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370

Plot3d(test_xy) Plot3d(xy)

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)

Подготовка к обработке

starting installationstep1installpackages(devtools)library(devtools)install_github(repo = mnist username = xrobin ref = master)library(mnist)

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
  • Аппроксимация линейными многообразиями (подпространствами)
  • Slide 30
  • Алгоритм
  • princomp(formula data = NULL subset naaction )
  • Principal Component Analysis (PCA)
  • Линейный дискриминантный анализ (Linear Discriminant Analysis -
  • Решение
  • lda(x grouping prior = proportions tol = 10e-4 method
  • Slide 37
  • Linear Discriminant Analysis (LDA)
  • Сравнение PCA и LDA
  • Метод опорных векторов (Support Vector Machines - SVM)
  • Идея алгоритма
  • Иллюстрация на простейшем примере
  • Линейная неразделимость и использование ядер
  • Иллюстрация использования ядра для отображения 2D -gt 3D
  • svm((formula data = NULL subset naaction = naomit sc
  • Support Vector Machines
  • Глубокое обучение (Deep Learning)
  • laquoВ 1997 году Deep Blue обыграл в шахматы Каспарова В 2011 Wats
  • Распознавание основано на feature detection и последующем раз
  • Распознавание рукописных цифр
  • Еще пример посложнее
  • Использование нейронной сети с обучением
  • Сверхвысокая размерность при работе с первичным представлением
  • Пиксельное кодирование
  • Принцип иерархии понятий ndash основа deep learning
  • Разреженное (sparse) кодирование
  • Словарь для лиц
  • Slide 58
  • Выделение объектов заданного класса
  • Основные архитектуры Deep Learning
  • Задача классификации распознавания и подобные являются задачей
  • Фактор - графы
  • Slide 63
  • Slide 64
  • Подход разреженного кодирования
  • Обобщенная архитектура
  • Slide 67
  • Slide 68
  • Slide 69
  • В действительности работают любые архитектуры построения функц
  • Machine Learning with Torch7 (httpcodecogbitscomwikidoku
  • Torch 7 является расширением Lua
  • Slide 73
  • Slide 74
  • Сверточные (convolution) нейронные сети
  • Свертка и архитектура 4-х уровневой сверточной сети
  • Функциональная структура
  • Примеры успешного применения сверточных сетей
  • Диагностика эпилепсии по ЭЭГ
  • Реализация сверточной сетью
  • Одна из самых больших сверточных сетей
  • Пример тэгирования
  • Пример поиска похожих по изображению
  • Пример поиска в коллекции изображений по текстовому запросу
  • Пример laquoоблачногоraquo классификатора изображений
  • Slide 86
  • Самообучающиеся нейронные сети на основе минимизации функции эн
  • RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцман
  • Алгоритм обучения Contrastive Divergence (CD)
  • Основные уравнения адаптации
  • Алгоритм Хинтона - Contrastive Divergence (CD-k)
  • darch Package for deep architectures and Restricted-Bolzmann-
  • Связь плотности вероятности и энергии
  • Задача обучения с точки минимизации энергии сети
  • Интуитивные соображения
  • Slide 96
  • Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decom
  • Sparse linear reconstruction
  • Автоэнкодер (auto encoder)
  • Архитекттура ICA моделей
  • Итеративные алгоритмы с оптимальным разреженным кодированием 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)
Page 29: !Predictive analytics part_2

Аппроксимация линейными многообразиями (подпространствами)

В основе задача наилучшей аппроксимации конечного множества точек прямыми и плоскостями (Пирсон 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)

predicted2 lt- asnumeric(apply(predict(r2) 1 function(r) order(-r)[1]))(m lt- cm (train$class predicted2))1 - sum(diag(m)) sum(m)

Линейный дискриминантный анализ (Linear Discriminant Analysis - LDA)bull Для каждого образца объекта или события с известным классом y

рассматривается набор наблюдений x (называемых ещё признаками переменными или измерениями) Набор таких образцов называется обучающей выборкой (или набором обучения обучением) Задачи классификации состоит в том чтобы построить хороший прогноз класса y для всякого так же распределённого объекта (не обязательно содержащегося в обучающей выборке) имея только наблюдения x Основная идея состоит в сравнении распределений для каждого из классов Расстоянием (по Фишеру) между распределениями принято считать отношение межклассовой дисперсии к внутриклассовой

Решение

bull Предполагается гауссово распределение совместных вероятностей

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

Linear Discriminant Analysis (LDA)

l lt- lda(class ~ x + y data = train)

(m lt- cm(train$class predict(l)$class))1 - sum(diag(m)) sum(m)

par(mfrow=c(12))train_lda lt- asmatrix(train[12]) l$scalingplot_it()plot(train_lda type=n)text(train_lda train$class)par(mfrow=c(11))

Сравнение 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)

(m lt- cm(train$class predict(s)))1 - sum(diag(m)) sum(m)

(m lt- cm(test$class predict(s test[12])))1 - sum(diag(m)) sum(m)

Глубокое обучение (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) матрицы Якобиана

ቈ120597119865119894ሺ119883119894minus1119882119894ሻ120597119882119894 119896119897 = 120597[119865119894(119883119894minus1119882119894)]119896120597[119882119894]119897

Сводится к рекуррентному соотношению для вычисления градиента 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

Сверточная (convolution) нейронная сеть

1 -- parameters 2 nstates = 16256128 3 fanin = 14 4 filtsize = 5 5 poolsize = 2 6 normkernel = imagegaussian1D(7) 7 8 -- Container 9 model = nnSequential()1011 -- stage 1 filter bank -gt squashing -gt L2 pooling -gt normalization12 modeladd(nnSpatialConvolutionMap(nntablesrandom(nfeats nstates[1] fanin[1]) filtsize filtsize))13 modeladd(nnTanh())14 modeladd(nnSpatialLPPooling(nstates[1]2poolsizepoolsizepoolsizepoolsize))15 modeladd(nnSpatialSubtractiveNormalization(16 normkernel))1617 -- stage 2 filter bank -gt squashing -gt L2 pooling -gt normalization18 modeladd(nnSpatialConvolutionMap(nntablesrandom(nstates[1] nstates[2] fanin[2]) filtsize filtsize))19 modeladd(nnTanh())20 modeladd(nnSpatialLPPooling(nstates[2]2poolsizepoolsizepoolsizepoolsize))21 modeladd(nnSpatialSubtractiveNormalization(nstates[2] normkernel))2223 -- stage 3 standard 2-layer neural network24 modeladd(nnReshape(nstates[2]filtsizefiltsize))25 modeladd(nnLinear(nstates[2]filtsizefiltsize nstates[3]))26 modeladd(nnTanh())27 modeladd(nnLinear(nstates[3] noutputs))

Код программы на Torch 7

Сверточные (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

Sparse linear reconstruction

bull Energy=reconstruction_error+code_prediction_error+code_sparsity

Автоэнкодер (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

bull saednntrain(x y hidden = c(1) activationfun = sigm learningrate = 08 momentum = 05 learningrate_scale = 1 output = sigm sae_output = linear numepochs = 3 batchsize = 100 hidden_dropout = 0 visible_dropout = 0)

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

Архитектура сети SAE

Архитектура с 5Х4 hidden 3 outs

Example

Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02)) Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1)) x lt- matrix(c(Var1 Var2) nrow = 100 ncol = 2)y lt- c(rep(1 50) rep(0 50))

обучение сетиdnn lt- saednntrain(x y hidden = c(5 5))

Анализ обучающего набора данныхgt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370helliphelliphelliphelliphelliphelliphelliphellip

gt y [1] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 [54] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

plot3d(xy)

Параметры SAE сети

gt dnn$input_dim[1] 2$output_dim[1] 1$hidden[1] 5 5$size[1] 2 5 5 1$activationfun[1] sigm$learningrate[1] 08

$momentum[1] 05$learningrate_scale[1] 1$hidden_dropout[1] 0$visible_dropout[1] 0$output[1] sigm$W

Коэффициенты связей

$W$W[[1]] [1] [2][1] -014355854 02471840[2] 011378030 -00715094[3] -004343738 03667468[4] 012756946 -01303379[5] -003445704 02293772

$W[[2]] [1] [2] [3] [4] [5][1] 00420191661 -0023073732 -008762756 0035575714 -0063000016[2] 00072771988 -0131204147 -010591421 0018221305 -0025539769[3] -01071896826 -0019479685 -009892573 -0012976429 -0111886901[4] -00009477304 -0023137518 -002147218 0007969452 -0118696306[5] 00045016013 0001885546 -010170954 -0140312396 -0003970102

$W[[3]] [1] [2] [3] [4] [5][1] 01027992 -007288099 003051227 -001731639 0009518049

$vW$vW[[1]] [1] [2][1] -8335203e-06 1368580e-05[2] -6530183e-05 1135070e-04[3] 2544302e-05 -3947111e-05[4] -5512835e-06 9541682e-06[5] 3822854e-05 -6281762e-05

$vW[[2]] [1] [2] [3] [4] [5][1] 4172450e-04 -2554411e-04 4896670e-04 -3526093e-04 3041932e-04[2] -3210759e-04 1978412e-04 -3769148e-04 2727933e-04 -2338477e-04[3] 1058770e-04 -6705336e-05 1244419e-04 -9201508e-05 7678296e-05[4] -8894178e-05 5481668e-05 -1044110e-04 7558269e-05 -6477571e-05[5] 2676520e-05 -1622289e-05 3139684e-05 -2243174e-05 1954349e-05

$vW[[3]] [1] [2] [3] [4] [5][1] -0002603034 -0002398256 -0003274074 -0002542478 -000209672

Предсказание обученной сетью

predict by dnntest_Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02))test_Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1))test_x lt- matrix(c(test_Var1 test_Var2) nrow = 100 ncol = 2)nntest(dnn test_x y)

[1] 025 Value error rate

Сравнение обучающей и тестовой выборки

gttest_x [1] [2] [1] 091887443 -08940890 [2] 115219448 -06050481 [3] 069917981 -08524551 [4] 028213787 -08146816 [5] 098405598 -11440813 [6] 185911887 -08203652 [7] 010843056 -10123789 [8] 083827953 -07594760 [9] -016373562 -09087116 [10] 088298748 -09767741 [11] 005280917 -07525407

gt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370

Plot3d(test_xy) Plot3d(xy)

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)

Подготовка к обработке

starting installationstep1installpackages(devtools)library(devtools)install_github(repo = mnist username = xrobin ref = master)library(mnist)

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
  • Аппроксимация линейными многообразиями (подпространствами)
  • Slide 30
  • Алгоритм
  • princomp(formula data = NULL subset naaction )
  • Principal Component Analysis (PCA)
  • Линейный дискриминантный анализ (Linear Discriminant Analysis -
  • Решение
  • lda(x grouping prior = proportions tol = 10e-4 method
  • Slide 37
  • Linear Discriminant Analysis (LDA)
  • Сравнение PCA и LDA
  • Метод опорных векторов (Support Vector Machines - SVM)
  • Идея алгоритма
  • Иллюстрация на простейшем примере
  • Линейная неразделимость и использование ядер
  • Иллюстрация использования ядра для отображения 2D -gt 3D
  • svm((formula data = NULL subset naaction = naomit sc
  • Support Vector Machines
  • Глубокое обучение (Deep Learning)
  • laquoВ 1997 году Deep Blue обыграл в шахматы Каспарова В 2011 Wats
  • Распознавание основано на feature detection и последующем раз
  • Распознавание рукописных цифр
  • Еще пример посложнее
  • Использование нейронной сети с обучением
  • Сверхвысокая размерность при работе с первичным представлением
  • Пиксельное кодирование
  • Принцип иерархии понятий ndash основа deep learning
  • Разреженное (sparse) кодирование
  • Словарь для лиц
  • Slide 58
  • Выделение объектов заданного класса
  • Основные архитектуры Deep Learning
  • Задача классификации распознавания и подобные являются задачей
  • Фактор - графы
  • Slide 63
  • Slide 64
  • Подход разреженного кодирования
  • Обобщенная архитектура
  • Slide 67
  • Slide 68
  • Slide 69
  • В действительности работают любые архитектуры построения функц
  • Machine Learning with Torch7 (httpcodecogbitscomwikidoku
  • Torch 7 является расширением Lua
  • Slide 73
  • Slide 74
  • Сверточные (convolution) нейронные сети
  • Свертка и архитектура 4-х уровневой сверточной сети
  • Функциональная структура
  • Примеры успешного применения сверточных сетей
  • Диагностика эпилепсии по ЭЭГ
  • Реализация сверточной сетью
  • Одна из самых больших сверточных сетей
  • Пример тэгирования
  • Пример поиска похожих по изображению
  • Пример поиска в коллекции изображений по текстовому запросу
  • Пример laquoоблачногоraquo классификатора изображений
  • Slide 86
  • Самообучающиеся нейронные сети на основе минимизации функции эн
  • RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцман
  • Алгоритм обучения Contrastive Divergence (CD)
  • Основные уравнения адаптации
  • Алгоритм Хинтона - Contrastive Divergence (CD-k)
  • darch Package for deep architectures and Restricted-Bolzmann-
  • Связь плотности вероятности и энергии
  • Задача обучения с точки минимизации энергии сети
  • Интуитивные соображения
  • Slide 96
  • Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decom
  • Sparse linear reconstruction
  • Автоэнкодер (auto encoder)
  • Архитекттура ICA моделей
  • Итеративные алгоритмы с оптимальным разреженным кодированием 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)
Page 30: !Predictive analytics part_2

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)

predicted2 lt- asnumeric(apply(predict(r2) 1 function(r) order(-r)[1]))(m lt- cm (train$class predicted2))1 - sum(diag(m)) sum(m)

Линейный дискриминантный анализ (Linear Discriminant Analysis - LDA)bull Для каждого образца объекта или события с известным классом y

рассматривается набор наблюдений x (называемых ещё признаками переменными или измерениями) Набор таких образцов называется обучающей выборкой (или набором обучения обучением) Задачи классификации состоит в том чтобы построить хороший прогноз класса y для всякого так же распределённого объекта (не обязательно содержащегося в обучающей выборке) имея только наблюдения x Основная идея состоит в сравнении распределений для каждого из классов Расстоянием (по Фишеру) между распределениями принято считать отношение межклассовой дисперсии к внутриклассовой

Решение

bull Предполагается гауссово распределение совместных вероятностей

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

Linear Discriminant Analysis (LDA)

l lt- lda(class ~ x + y data = train)

(m lt- cm(train$class predict(l)$class))1 - sum(diag(m)) sum(m)

par(mfrow=c(12))train_lda lt- asmatrix(train[12]) l$scalingplot_it()plot(train_lda type=n)text(train_lda train$class)par(mfrow=c(11))

Сравнение 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)

(m lt- cm(train$class predict(s)))1 - sum(diag(m)) sum(m)

(m lt- cm(test$class predict(s test[12])))1 - sum(diag(m)) sum(m)

Глубокое обучение (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) матрицы Якобиана

ቈ120597119865119894ሺ119883119894minus1119882119894ሻ120597119882119894 119896119897 = 120597[119865119894(119883119894minus1119882119894)]119896120597[119882119894]119897

Сводится к рекуррентному соотношению для вычисления градиента 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

Сверточная (convolution) нейронная сеть

1 -- parameters 2 nstates = 16256128 3 fanin = 14 4 filtsize = 5 5 poolsize = 2 6 normkernel = imagegaussian1D(7) 7 8 -- Container 9 model = nnSequential()1011 -- stage 1 filter bank -gt squashing -gt L2 pooling -gt normalization12 modeladd(nnSpatialConvolutionMap(nntablesrandom(nfeats nstates[1] fanin[1]) filtsize filtsize))13 modeladd(nnTanh())14 modeladd(nnSpatialLPPooling(nstates[1]2poolsizepoolsizepoolsizepoolsize))15 modeladd(nnSpatialSubtractiveNormalization(16 normkernel))1617 -- stage 2 filter bank -gt squashing -gt L2 pooling -gt normalization18 modeladd(nnSpatialConvolutionMap(nntablesrandom(nstates[1] nstates[2] fanin[2]) filtsize filtsize))19 modeladd(nnTanh())20 modeladd(nnSpatialLPPooling(nstates[2]2poolsizepoolsizepoolsizepoolsize))21 modeladd(nnSpatialSubtractiveNormalization(nstates[2] normkernel))2223 -- stage 3 standard 2-layer neural network24 modeladd(nnReshape(nstates[2]filtsizefiltsize))25 modeladd(nnLinear(nstates[2]filtsizefiltsize nstates[3]))26 modeladd(nnTanh())27 modeladd(nnLinear(nstates[3] noutputs))

Код программы на Torch 7

Сверточные (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

Sparse linear reconstruction

bull Energy=reconstruction_error+code_prediction_error+code_sparsity

Автоэнкодер (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

bull saednntrain(x y hidden = c(1) activationfun = sigm learningrate = 08 momentum = 05 learningrate_scale = 1 output = sigm sae_output = linear numepochs = 3 batchsize = 100 hidden_dropout = 0 visible_dropout = 0)

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

Архитектура сети SAE

Архитектура с 5Х4 hidden 3 outs

Example

Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02)) Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1)) x lt- matrix(c(Var1 Var2) nrow = 100 ncol = 2)y lt- c(rep(1 50) rep(0 50))

обучение сетиdnn lt- saednntrain(x y hidden = c(5 5))

Анализ обучающего набора данныхgt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370helliphelliphelliphelliphelliphelliphelliphellip

gt y [1] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 [54] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

plot3d(xy)

Параметры SAE сети

gt dnn$input_dim[1] 2$output_dim[1] 1$hidden[1] 5 5$size[1] 2 5 5 1$activationfun[1] sigm$learningrate[1] 08

$momentum[1] 05$learningrate_scale[1] 1$hidden_dropout[1] 0$visible_dropout[1] 0$output[1] sigm$W

Коэффициенты связей

$W$W[[1]] [1] [2][1] -014355854 02471840[2] 011378030 -00715094[3] -004343738 03667468[4] 012756946 -01303379[5] -003445704 02293772

$W[[2]] [1] [2] [3] [4] [5][1] 00420191661 -0023073732 -008762756 0035575714 -0063000016[2] 00072771988 -0131204147 -010591421 0018221305 -0025539769[3] -01071896826 -0019479685 -009892573 -0012976429 -0111886901[4] -00009477304 -0023137518 -002147218 0007969452 -0118696306[5] 00045016013 0001885546 -010170954 -0140312396 -0003970102

$W[[3]] [1] [2] [3] [4] [5][1] 01027992 -007288099 003051227 -001731639 0009518049

$vW$vW[[1]] [1] [2][1] -8335203e-06 1368580e-05[2] -6530183e-05 1135070e-04[3] 2544302e-05 -3947111e-05[4] -5512835e-06 9541682e-06[5] 3822854e-05 -6281762e-05

$vW[[2]] [1] [2] [3] [4] [5][1] 4172450e-04 -2554411e-04 4896670e-04 -3526093e-04 3041932e-04[2] -3210759e-04 1978412e-04 -3769148e-04 2727933e-04 -2338477e-04[3] 1058770e-04 -6705336e-05 1244419e-04 -9201508e-05 7678296e-05[4] -8894178e-05 5481668e-05 -1044110e-04 7558269e-05 -6477571e-05[5] 2676520e-05 -1622289e-05 3139684e-05 -2243174e-05 1954349e-05

$vW[[3]] [1] [2] [3] [4] [5][1] -0002603034 -0002398256 -0003274074 -0002542478 -000209672

Предсказание обученной сетью

predict by dnntest_Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02))test_Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1))test_x lt- matrix(c(test_Var1 test_Var2) nrow = 100 ncol = 2)nntest(dnn test_x y)

[1] 025 Value error rate

Сравнение обучающей и тестовой выборки

gttest_x [1] [2] [1] 091887443 -08940890 [2] 115219448 -06050481 [3] 069917981 -08524551 [4] 028213787 -08146816 [5] 098405598 -11440813 [6] 185911887 -08203652 [7] 010843056 -10123789 [8] 083827953 -07594760 [9] -016373562 -09087116 [10] 088298748 -09767741 [11] 005280917 -07525407

gt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370

Plot3d(test_xy) Plot3d(xy)

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)

Подготовка к обработке

starting installationstep1installpackages(devtools)library(devtools)install_github(repo = mnist username = xrobin ref = master)library(mnist)

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
  • Аппроксимация линейными многообразиями (подпространствами)
  • Slide 30
  • Алгоритм
  • princomp(formula data = NULL subset naaction )
  • Principal Component Analysis (PCA)
  • Линейный дискриминантный анализ (Linear Discriminant Analysis -
  • Решение
  • lda(x grouping prior = proportions tol = 10e-4 method
  • Slide 37
  • Linear Discriminant Analysis (LDA)
  • Сравнение PCA и LDA
  • Метод опорных векторов (Support Vector Machines - SVM)
  • Идея алгоритма
  • Иллюстрация на простейшем примере
  • Линейная неразделимость и использование ядер
  • Иллюстрация использования ядра для отображения 2D -gt 3D
  • svm((formula data = NULL subset naaction = naomit sc
  • Support Vector Machines
  • Глубокое обучение (Deep Learning)
  • laquoВ 1997 году Deep Blue обыграл в шахматы Каспарова В 2011 Wats
  • Распознавание основано на feature detection и последующем раз
  • Распознавание рукописных цифр
  • Еще пример посложнее
  • Использование нейронной сети с обучением
  • Сверхвысокая размерность при работе с первичным представлением
  • Пиксельное кодирование
  • Принцип иерархии понятий ndash основа deep learning
  • Разреженное (sparse) кодирование
  • Словарь для лиц
  • Slide 58
  • Выделение объектов заданного класса
  • Основные архитектуры Deep Learning
  • Задача классификации распознавания и подобные являются задачей
  • Фактор - графы
  • Slide 63
  • Slide 64
  • Подход разреженного кодирования
  • Обобщенная архитектура
  • Slide 67
  • Slide 68
  • Slide 69
  • В действительности работают любые архитектуры построения функц
  • Machine Learning with Torch7 (httpcodecogbitscomwikidoku
  • Torch 7 является расширением Lua
  • Slide 73
  • Slide 74
  • Сверточные (convolution) нейронные сети
  • Свертка и архитектура 4-х уровневой сверточной сети
  • Функциональная структура
  • Примеры успешного применения сверточных сетей
  • Диагностика эпилепсии по ЭЭГ
  • Реализация сверточной сетью
  • Одна из самых больших сверточных сетей
  • Пример тэгирования
  • Пример поиска похожих по изображению
  • Пример поиска в коллекции изображений по текстовому запросу
  • Пример laquoоблачногоraquo классификатора изображений
  • Slide 86
  • Самообучающиеся нейронные сети на основе минимизации функции эн
  • RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцман
  • Алгоритм обучения Contrastive Divergence (CD)
  • Основные уравнения адаптации
  • Алгоритм Хинтона - Contrastive Divergence (CD-k)
  • darch Package for deep architectures and Restricted-Bolzmann-
  • Связь плотности вероятности и энергии
  • Задача обучения с точки минимизации энергии сети
  • Интуитивные соображения
  • Slide 96
  • Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decom
  • Sparse linear reconstruction
  • Автоэнкодер (auto encoder)
  • Архитекттура ICA моделей
  • Итеративные алгоритмы с оптимальным разреженным кодированием 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)
Page 31: !Predictive analytics part_2

Алгоритм

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)

predicted2 lt- asnumeric(apply(predict(r2) 1 function(r) order(-r)[1]))(m lt- cm (train$class predicted2))1 - sum(diag(m)) sum(m)

Линейный дискриминантный анализ (Linear Discriminant Analysis - LDA)bull Для каждого образца объекта или события с известным классом y

рассматривается набор наблюдений x (называемых ещё признаками переменными или измерениями) Набор таких образцов называется обучающей выборкой (или набором обучения обучением) Задачи классификации состоит в том чтобы построить хороший прогноз класса y для всякого так же распределённого объекта (не обязательно содержащегося в обучающей выборке) имея только наблюдения x Основная идея состоит в сравнении распределений для каждого из классов Расстоянием (по Фишеру) между распределениями принято считать отношение межклассовой дисперсии к внутриклассовой

Решение

bull Предполагается гауссово распределение совместных вероятностей

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

Linear Discriminant Analysis (LDA)

l lt- lda(class ~ x + y data = train)

(m lt- cm(train$class predict(l)$class))1 - sum(diag(m)) sum(m)

par(mfrow=c(12))train_lda lt- asmatrix(train[12]) l$scalingplot_it()plot(train_lda type=n)text(train_lda train$class)par(mfrow=c(11))

Сравнение 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)

(m lt- cm(train$class predict(s)))1 - sum(diag(m)) sum(m)

(m lt- cm(test$class predict(s test[12])))1 - sum(diag(m)) sum(m)

Глубокое обучение (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) матрицы Якобиана

ቈ120597119865119894ሺ119883119894minus1119882119894ሻ120597119882119894 119896119897 = 120597[119865119894(119883119894minus1119882119894)]119896120597[119882119894]119897

Сводится к рекуррентному соотношению для вычисления градиента 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

Сверточная (convolution) нейронная сеть

1 -- parameters 2 nstates = 16256128 3 fanin = 14 4 filtsize = 5 5 poolsize = 2 6 normkernel = imagegaussian1D(7) 7 8 -- Container 9 model = nnSequential()1011 -- stage 1 filter bank -gt squashing -gt L2 pooling -gt normalization12 modeladd(nnSpatialConvolutionMap(nntablesrandom(nfeats nstates[1] fanin[1]) filtsize filtsize))13 modeladd(nnTanh())14 modeladd(nnSpatialLPPooling(nstates[1]2poolsizepoolsizepoolsizepoolsize))15 modeladd(nnSpatialSubtractiveNormalization(16 normkernel))1617 -- stage 2 filter bank -gt squashing -gt L2 pooling -gt normalization18 modeladd(nnSpatialConvolutionMap(nntablesrandom(nstates[1] nstates[2] fanin[2]) filtsize filtsize))19 modeladd(nnTanh())20 modeladd(nnSpatialLPPooling(nstates[2]2poolsizepoolsizepoolsizepoolsize))21 modeladd(nnSpatialSubtractiveNormalization(nstates[2] normkernel))2223 -- stage 3 standard 2-layer neural network24 modeladd(nnReshape(nstates[2]filtsizefiltsize))25 modeladd(nnLinear(nstates[2]filtsizefiltsize nstates[3]))26 modeladd(nnTanh())27 modeladd(nnLinear(nstates[3] noutputs))

Код программы на Torch 7

Сверточные (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

Sparse linear reconstruction

bull Energy=reconstruction_error+code_prediction_error+code_sparsity

Автоэнкодер (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

bull saednntrain(x y hidden = c(1) activationfun = sigm learningrate = 08 momentum = 05 learningrate_scale = 1 output = sigm sae_output = linear numepochs = 3 batchsize = 100 hidden_dropout = 0 visible_dropout = 0)

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

Архитектура сети SAE

Архитектура с 5Х4 hidden 3 outs

Example

Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02)) Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1)) x lt- matrix(c(Var1 Var2) nrow = 100 ncol = 2)y lt- c(rep(1 50) rep(0 50))

обучение сетиdnn lt- saednntrain(x y hidden = c(5 5))

Анализ обучающего набора данныхgt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370helliphelliphelliphelliphelliphelliphelliphellip

gt y [1] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 [54] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

plot3d(xy)

Параметры SAE сети

gt dnn$input_dim[1] 2$output_dim[1] 1$hidden[1] 5 5$size[1] 2 5 5 1$activationfun[1] sigm$learningrate[1] 08

$momentum[1] 05$learningrate_scale[1] 1$hidden_dropout[1] 0$visible_dropout[1] 0$output[1] sigm$W

Коэффициенты связей

$W$W[[1]] [1] [2][1] -014355854 02471840[2] 011378030 -00715094[3] -004343738 03667468[4] 012756946 -01303379[5] -003445704 02293772

$W[[2]] [1] [2] [3] [4] [5][1] 00420191661 -0023073732 -008762756 0035575714 -0063000016[2] 00072771988 -0131204147 -010591421 0018221305 -0025539769[3] -01071896826 -0019479685 -009892573 -0012976429 -0111886901[4] -00009477304 -0023137518 -002147218 0007969452 -0118696306[5] 00045016013 0001885546 -010170954 -0140312396 -0003970102

$W[[3]] [1] [2] [3] [4] [5][1] 01027992 -007288099 003051227 -001731639 0009518049

$vW$vW[[1]] [1] [2][1] -8335203e-06 1368580e-05[2] -6530183e-05 1135070e-04[3] 2544302e-05 -3947111e-05[4] -5512835e-06 9541682e-06[5] 3822854e-05 -6281762e-05

$vW[[2]] [1] [2] [3] [4] [5][1] 4172450e-04 -2554411e-04 4896670e-04 -3526093e-04 3041932e-04[2] -3210759e-04 1978412e-04 -3769148e-04 2727933e-04 -2338477e-04[3] 1058770e-04 -6705336e-05 1244419e-04 -9201508e-05 7678296e-05[4] -8894178e-05 5481668e-05 -1044110e-04 7558269e-05 -6477571e-05[5] 2676520e-05 -1622289e-05 3139684e-05 -2243174e-05 1954349e-05

$vW[[3]] [1] [2] [3] [4] [5][1] -0002603034 -0002398256 -0003274074 -0002542478 -000209672

Предсказание обученной сетью

predict by dnntest_Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02))test_Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1))test_x lt- matrix(c(test_Var1 test_Var2) nrow = 100 ncol = 2)nntest(dnn test_x y)

[1] 025 Value error rate

Сравнение обучающей и тестовой выборки

gttest_x [1] [2] [1] 091887443 -08940890 [2] 115219448 -06050481 [3] 069917981 -08524551 [4] 028213787 -08146816 [5] 098405598 -11440813 [6] 185911887 -08203652 [7] 010843056 -10123789 [8] 083827953 -07594760 [9] -016373562 -09087116 [10] 088298748 -09767741 [11] 005280917 -07525407

gt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370

Plot3d(test_xy) Plot3d(xy)

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)

Подготовка к обработке

starting installationstep1installpackages(devtools)library(devtools)install_github(repo = mnist username = xrobin ref = master)library(mnist)

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
  • Аппроксимация линейными многообразиями (подпространствами)
  • Slide 30
  • Алгоритм
  • princomp(formula data = NULL subset naaction )
  • Principal Component Analysis (PCA)
  • Линейный дискриминантный анализ (Linear Discriminant Analysis -
  • Решение
  • lda(x grouping prior = proportions tol = 10e-4 method
  • Slide 37
  • Linear Discriminant Analysis (LDA)
  • Сравнение PCA и LDA
  • Метод опорных векторов (Support Vector Machines - SVM)
  • Идея алгоритма
  • Иллюстрация на простейшем примере
  • Линейная неразделимость и использование ядер
  • Иллюстрация использования ядра для отображения 2D -gt 3D
  • svm((formula data = NULL subset naaction = naomit sc
  • Support Vector Machines
  • Глубокое обучение (Deep Learning)
  • laquoВ 1997 году Deep Blue обыграл в шахматы Каспарова В 2011 Wats
  • Распознавание основано на feature detection и последующем раз
  • Распознавание рукописных цифр
  • Еще пример посложнее
  • Использование нейронной сети с обучением
  • Сверхвысокая размерность при работе с первичным представлением
  • Пиксельное кодирование
  • Принцип иерархии понятий ndash основа deep learning
  • Разреженное (sparse) кодирование
  • Словарь для лиц
  • Slide 58
  • Выделение объектов заданного класса
  • Основные архитектуры Deep Learning
  • Задача классификации распознавания и подобные являются задачей
  • Фактор - графы
  • Slide 63
  • Slide 64
  • Подход разреженного кодирования
  • Обобщенная архитектура
  • Slide 67
  • Slide 68
  • Slide 69
  • В действительности работают любые архитектуры построения функц
  • Machine Learning with Torch7 (httpcodecogbitscomwikidoku
  • Torch 7 является расширением Lua
  • Slide 73
  • Slide 74
  • Сверточные (convolution) нейронные сети
  • Свертка и архитектура 4-х уровневой сверточной сети
  • Функциональная структура
  • Примеры успешного применения сверточных сетей
  • Диагностика эпилепсии по ЭЭГ
  • Реализация сверточной сетью
  • Одна из самых больших сверточных сетей
  • Пример тэгирования
  • Пример поиска похожих по изображению
  • Пример поиска в коллекции изображений по текстовому запросу
  • Пример laquoоблачногоraquo классификатора изображений
  • Slide 86
  • Самообучающиеся нейронные сети на основе минимизации функции эн
  • RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцман
  • Алгоритм обучения Contrastive Divergence (CD)
  • Основные уравнения адаптации
  • Алгоритм Хинтона - Contrastive Divergence (CD-k)
  • darch Package for deep architectures and Restricted-Bolzmann-
  • Связь плотности вероятности и энергии
  • Задача обучения с точки минимизации энергии сети
  • Интуитивные соображения
  • Slide 96
  • Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decom
  • Sparse linear reconstruction
  • Автоэнкодер (auto encoder)
  • Архитекттура ICA моделей
  • Итеративные алгоритмы с оптимальным разреженным кодированием 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)
Page 32: !Predictive analytics part_2

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)

predicted2 lt- asnumeric(apply(predict(r2) 1 function(r) order(-r)[1]))(m lt- cm (train$class predicted2))1 - sum(diag(m)) sum(m)

Линейный дискриминантный анализ (Linear Discriminant Analysis - LDA)bull Для каждого образца объекта или события с известным классом y

рассматривается набор наблюдений x (называемых ещё признаками переменными или измерениями) Набор таких образцов называется обучающей выборкой (или набором обучения обучением) Задачи классификации состоит в том чтобы построить хороший прогноз класса y для всякого так же распределённого объекта (не обязательно содержащегося в обучающей выборке) имея только наблюдения x Основная идея состоит в сравнении распределений для каждого из классов Расстоянием (по Фишеру) между распределениями принято считать отношение межклассовой дисперсии к внутриклассовой

Решение

bull Предполагается гауссово распределение совместных вероятностей

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

Linear Discriminant Analysis (LDA)

l lt- lda(class ~ x + y data = train)

(m lt- cm(train$class predict(l)$class))1 - sum(diag(m)) sum(m)

par(mfrow=c(12))train_lda lt- asmatrix(train[12]) l$scalingplot_it()plot(train_lda type=n)text(train_lda train$class)par(mfrow=c(11))

Сравнение 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)

(m lt- cm(train$class predict(s)))1 - sum(diag(m)) sum(m)

(m lt- cm(test$class predict(s test[12])))1 - sum(diag(m)) sum(m)

Глубокое обучение (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) матрицы Якобиана

ቈ120597119865119894ሺ119883119894minus1119882119894ሻ120597119882119894 119896119897 = 120597[119865119894(119883119894minus1119882119894)]119896120597[119882119894]119897

Сводится к рекуррентному соотношению для вычисления градиента 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

Сверточная (convolution) нейронная сеть

1 -- parameters 2 nstates = 16256128 3 fanin = 14 4 filtsize = 5 5 poolsize = 2 6 normkernel = imagegaussian1D(7) 7 8 -- Container 9 model = nnSequential()1011 -- stage 1 filter bank -gt squashing -gt L2 pooling -gt normalization12 modeladd(nnSpatialConvolutionMap(nntablesrandom(nfeats nstates[1] fanin[1]) filtsize filtsize))13 modeladd(nnTanh())14 modeladd(nnSpatialLPPooling(nstates[1]2poolsizepoolsizepoolsizepoolsize))15 modeladd(nnSpatialSubtractiveNormalization(16 normkernel))1617 -- stage 2 filter bank -gt squashing -gt L2 pooling -gt normalization18 modeladd(nnSpatialConvolutionMap(nntablesrandom(nstates[1] nstates[2] fanin[2]) filtsize filtsize))19 modeladd(nnTanh())20 modeladd(nnSpatialLPPooling(nstates[2]2poolsizepoolsizepoolsizepoolsize))21 modeladd(nnSpatialSubtractiveNormalization(nstates[2] normkernel))2223 -- stage 3 standard 2-layer neural network24 modeladd(nnReshape(nstates[2]filtsizefiltsize))25 modeladd(nnLinear(nstates[2]filtsizefiltsize nstates[3]))26 modeladd(nnTanh())27 modeladd(nnLinear(nstates[3] noutputs))

Код программы на Torch 7

Сверточные (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

Sparse linear reconstruction

bull Energy=reconstruction_error+code_prediction_error+code_sparsity

Автоэнкодер (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

bull saednntrain(x y hidden = c(1) activationfun = sigm learningrate = 08 momentum = 05 learningrate_scale = 1 output = sigm sae_output = linear numepochs = 3 batchsize = 100 hidden_dropout = 0 visible_dropout = 0)

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

Архитектура сети SAE

Архитектура с 5Х4 hidden 3 outs

Example

Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02)) Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1)) x lt- matrix(c(Var1 Var2) nrow = 100 ncol = 2)y lt- c(rep(1 50) rep(0 50))

обучение сетиdnn lt- saednntrain(x y hidden = c(5 5))

Анализ обучающего набора данныхgt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370helliphelliphelliphelliphelliphelliphelliphellip

gt y [1] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 [54] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

plot3d(xy)

Параметры SAE сети

gt dnn$input_dim[1] 2$output_dim[1] 1$hidden[1] 5 5$size[1] 2 5 5 1$activationfun[1] sigm$learningrate[1] 08

$momentum[1] 05$learningrate_scale[1] 1$hidden_dropout[1] 0$visible_dropout[1] 0$output[1] sigm$W

Коэффициенты связей

$W$W[[1]] [1] [2][1] -014355854 02471840[2] 011378030 -00715094[3] -004343738 03667468[4] 012756946 -01303379[5] -003445704 02293772

$W[[2]] [1] [2] [3] [4] [5][1] 00420191661 -0023073732 -008762756 0035575714 -0063000016[2] 00072771988 -0131204147 -010591421 0018221305 -0025539769[3] -01071896826 -0019479685 -009892573 -0012976429 -0111886901[4] -00009477304 -0023137518 -002147218 0007969452 -0118696306[5] 00045016013 0001885546 -010170954 -0140312396 -0003970102

$W[[3]] [1] [2] [3] [4] [5][1] 01027992 -007288099 003051227 -001731639 0009518049

$vW$vW[[1]] [1] [2][1] -8335203e-06 1368580e-05[2] -6530183e-05 1135070e-04[3] 2544302e-05 -3947111e-05[4] -5512835e-06 9541682e-06[5] 3822854e-05 -6281762e-05

$vW[[2]] [1] [2] [3] [4] [5][1] 4172450e-04 -2554411e-04 4896670e-04 -3526093e-04 3041932e-04[2] -3210759e-04 1978412e-04 -3769148e-04 2727933e-04 -2338477e-04[3] 1058770e-04 -6705336e-05 1244419e-04 -9201508e-05 7678296e-05[4] -8894178e-05 5481668e-05 -1044110e-04 7558269e-05 -6477571e-05[5] 2676520e-05 -1622289e-05 3139684e-05 -2243174e-05 1954349e-05

$vW[[3]] [1] [2] [3] [4] [5][1] -0002603034 -0002398256 -0003274074 -0002542478 -000209672

Предсказание обученной сетью

predict by dnntest_Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02))test_Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1))test_x lt- matrix(c(test_Var1 test_Var2) nrow = 100 ncol = 2)nntest(dnn test_x y)

[1] 025 Value error rate

Сравнение обучающей и тестовой выборки

gttest_x [1] [2] [1] 091887443 -08940890 [2] 115219448 -06050481 [3] 069917981 -08524551 [4] 028213787 -08146816 [5] 098405598 -11440813 [6] 185911887 -08203652 [7] 010843056 -10123789 [8] 083827953 -07594760 [9] -016373562 -09087116 [10] 088298748 -09767741 [11] 005280917 -07525407

gt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370

Plot3d(test_xy) Plot3d(xy)

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)

Подготовка к обработке

starting installationstep1installpackages(devtools)library(devtools)install_github(repo = mnist username = xrobin ref = master)library(mnist)

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
  • Аппроксимация линейными многообразиями (подпространствами)
  • Slide 30
  • Алгоритм
  • princomp(formula data = NULL subset naaction )
  • Principal Component Analysis (PCA)
  • Линейный дискриминантный анализ (Linear Discriminant Analysis -
  • Решение
  • lda(x grouping prior = proportions tol = 10e-4 method
  • Slide 37
  • Linear Discriminant Analysis (LDA)
  • Сравнение PCA и LDA
  • Метод опорных векторов (Support Vector Machines - SVM)
  • Идея алгоритма
  • Иллюстрация на простейшем примере
  • Линейная неразделимость и использование ядер
  • Иллюстрация использования ядра для отображения 2D -gt 3D
  • svm((formula data = NULL subset naaction = naomit sc
  • Support Vector Machines
  • Глубокое обучение (Deep Learning)
  • laquoВ 1997 году Deep Blue обыграл в шахматы Каспарова В 2011 Wats
  • Распознавание основано на feature detection и последующем раз
  • Распознавание рукописных цифр
  • Еще пример посложнее
  • Использование нейронной сети с обучением
  • Сверхвысокая размерность при работе с первичным представлением
  • Пиксельное кодирование
  • Принцип иерархии понятий ndash основа deep learning
  • Разреженное (sparse) кодирование
  • Словарь для лиц
  • Slide 58
  • Выделение объектов заданного класса
  • Основные архитектуры Deep Learning
  • Задача классификации распознавания и подобные являются задачей
  • Фактор - графы
  • Slide 63
  • Slide 64
  • Подход разреженного кодирования
  • Обобщенная архитектура
  • Slide 67
  • Slide 68
  • Slide 69
  • В действительности работают любые архитектуры построения функц
  • Machine Learning with Torch7 (httpcodecogbitscomwikidoku
  • Torch 7 является расширением Lua
  • Slide 73
  • Slide 74
  • Сверточные (convolution) нейронные сети
  • Свертка и архитектура 4-х уровневой сверточной сети
  • Функциональная структура
  • Примеры успешного применения сверточных сетей
  • Диагностика эпилепсии по ЭЭГ
  • Реализация сверточной сетью
  • Одна из самых больших сверточных сетей
  • Пример тэгирования
  • Пример поиска похожих по изображению
  • Пример поиска в коллекции изображений по текстовому запросу
  • Пример laquoоблачногоraquo классификатора изображений
  • Slide 86
  • Самообучающиеся нейронные сети на основе минимизации функции эн
  • RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцман
  • Алгоритм обучения Contrastive Divergence (CD)
  • Основные уравнения адаптации
  • Алгоритм Хинтона - Contrastive Divergence (CD-k)
  • darch Package for deep architectures and Restricted-Bolzmann-
  • Связь плотности вероятности и энергии
  • Задача обучения с точки минимизации энергии сети
  • Интуитивные соображения
  • Slide 96
  • Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decom
  • Sparse linear reconstruction
  • Автоэнкодер (auto encoder)
  • Архитекттура ICA моделей
  • Итеративные алгоритмы с оптимальным разреженным кодированием 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)
Page 33: !Predictive analytics part_2

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)

predicted2 lt- asnumeric(apply(predict(r2) 1 function(r) order(-r)[1]))(m lt- cm (train$class predicted2))1 - sum(diag(m)) sum(m)

Линейный дискриминантный анализ (Linear Discriminant Analysis - LDA)bull Для каждого образца объекта или события с известным классом y

рассматривается набор наблюдений x (называемых ещё признаками переменными или измерениями) Набор таких образцов называется обучающей выборкой (или набором обучения обучением) Задачи классификации состоит в том чтобы построить хороший прогноз класса y для всякого так же распределённого объекта (не обязательно содержащегося в обучающей выборке) имея только наблюдения x Основная идея состоит в сравнении распределений для каждого из классов Расстоянием (по Фишеру) между распределениями принято считать отношение межклассовой дисперсии к внутриклассовой

Решение

bull Предполагается гауссово распределение совместных вероятностей

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

Linear Discriminant Analysis (LDA)

l lt- lda(class ~ x + y data = train)

(m lt- cm(train$class predict(l)$class))1 - sum(diag(m)) sum(m)

par(mfrow=c(12))train_lda lt- asmatrix(train[12]) l$scalingplot_it()plot(train_lda type=n)text(train_lda train$class)par(mfrow=c(11))

Сравнение 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)

(m lt- cm(train$class predict(s)))1 - sum(diag(m)) sum(m)

(m lt- cm(test$class predict(s test[12])))1 - sum(diag(m)) sum(m)

Глубокое обучение (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) матрицы Якобиана

ቈ120597119865119894ሺ119883119894minus1119882119894ሻ120597119882119894 119896119897 = 120597[119865119894(119883119894minus1119882119894)]119896120597[119882119894]119897

Сводится к рекуррентному соотношению для вычисления градиента 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

Сверточная (convolution) нейронная сеть

1 -- parameters 2 nstates = 16256128 3 fanin = 14 4 filtsize = 5 5 poolsize = 2 6 normkernel = imagegaussian1D(7) 7 8 -- Container 9 model = nnSequential()1011 -- stage 1 filter bank -gt squashing -gt L2 pooling -gt normalization12 modeladd(nnSpatialConvolutionMap(nntablesrandom(nfeats nstates[1] fanin[1]) filtsize filtsize))13 modeladd(nnTanh())14 modeladd(nnSpatialLPPooling(nstates[1]2poolsizepoolsizepoolsizepoolsize))15 modeladd(nnSpatialSubtractiveNormalization(16 normkernel))1617 -- stage 2 filter bank -gt squashing -gt L2 pooling -gt normalization18 modeladd(nnSpatialConvolutionMap(nntablesrandom(nstates[1] nstates[2] fanin[2]) filtsize filtsize))19 modeladd(nnTanh())20 modeladd(nnSpatialLPPooling(nstates[2]2poolsizepoolsizepoolsizepoolsize))21 modeladd(nnSpatialSubtractiveNormalization(nstates[2] normkernel))2223 -- stage 3 standard 2-layer neural network24 modeladd(nnReshape(nstates[2]filtsizefiltsize))25 modeladd(nnLinear(nstates[2]filtsizefiltsize nstates[3]))26 modeladd(nnTanh())27 modeladd(nnLinear(nstates[3] noutputs))

Код программы на Torch 7

Сверточные (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

Sparse linear reconstruction

bull Energy=reconstruction_error+code_prediction_error+code_sparsity

Автоэнкодер (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

bull saednntrain(x y hidden = c(1) activationfun = sigm learningrate = 08 momentum = 05 learningrate_scale = 1 output = sigm sae_output = linear numepochs = 3 batchsize = 100 hidden_dropout = 0 visible_dropout = 0)

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

Архитектура сети SAE

Архитектура с 5Х4 hidden 3 outs

Example

Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02)) Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1)) x lt- matrix(c(Var1 Var2) nrow = 100 ncol = 2)y lt- c(rep(1 50) rep(0 50))

обучение сетиdnn lt- saednntrain(x y hidden = c(5 5))

Анализ обучающего набора данныхgt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370helliphelliphelliphelliphelliphelliphelliphellip

gt y [1] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 [54] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

plot3d(xy)

Параметры SAE сети

gt dnn$input_dim[1] 2$output_dim[1] 1$hidden[1] 5 5$size[1] 2 5 5 1$activationfun[1] sigm$learningrate[1] 08

$momentum[1] 05$learningrate_scale[1] 1$hidden_dropout[1] 0$visible_dropout[1] 0$output[1] sigm$W

Коэффициенты связей

$W$W[[1]] [1] [2][1] -014355854 02471840[2] 011378030 -00715094[3] -004343738 03667468[4] 012756946 -01303379[5] -003445704 02293772

$W[[2]] [1] [2] [3] [4] [5][1] 00420191661 -0023073732 -008762756 0035575714 -0063000016[2] 00072771988 -0131204147 -010591421 0018221305 -0025539769[3] -01071896826 -0019479685 -009892573 -0012976429 -0111886901[4] -00009477304 -0023137518 -002147218 0007969452 -0118696306[5] 00045016013 0001885546 -010170954 -0140312396 -0003970102

$W[[3]] [1] [2] [3] [4] [5][1] 01027992 -007288099 003051227 -001731639 0009518049

$vW$vW[[1]] [1] [2][1] -8335203e-06 1368580e-05[2] -6530183e-05 1135070e-04[3] 2544302e-05 -3947111e-05[4] -5512835e-06 9541682e-06[5] 3822854e-05 -6281762e-05

$vW[[2]] [1] [2] [3] [4] [5][1] 4172450e-04 -2554411e-04 4896670e-04 -3526093e-04 3041932e-04[2] -3210759e-04 1978412e-04 -3769148e-04 2727933e-04 -2338477e-04[3] 1058770e-04 -6705336e-05 1244419e-04 -9201508e-05 7678296e-05[4] -8894178e-05 5481668e-05 -1044110e-04 7558269e-05 -6477571e-05[5] 2676520e-05 -1622289e-05 3139684e-05 -2243174e-05 1954349e-05

$vW[[3]] [1] [2] [3] [4] [5][1] -0002603034 -0002398256 -0003274074 -0002542478 -000209672

Предсказание обученной сетью

predict by dnntest_Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02))test_Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1))test_x lt- matrix(c(test_Var1 test_Var2) nrow = 100 ncol = 2)nntest(dnn test_x y)

[1] 025 Value error rate

Сравнение обучающей и тестовой выборки

gttest_x [1] [2] [1] 091887443 -08940890 [2] 115219448 -06050481 [3] 069917981 -08524551 [4] 028213787 -08146816 [5] 098405598 -11440813 [6] 185911887 -08203652 [7] 010843056 -10123789 [8] 083827953 -07594760 [9] -016373562 -09087116 [10] 088298748 -09767741 [11] 005280917 -07525407

gt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370

Plot3d(test_xy) Plot3d(xy)

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)

Подготовка к обработке

starting installationstep1installpackages(devtools)library(devtools)install_github(repo = mnist username = xrobin ref = master)library(mnist)

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
  • Аппроксимация линейными многообразиями (подпространствами)
  • Slide 30
  • Алгоритм
  • princomp(formula data = NULL subset naaction )
  • Principal Component Analysis (PCA)
  • Линейный дискриминантный анализ (Linear Discriminant Analysis -
  • Решение
  • lda(x grouping prior = proportions tol = 10e-4 method
  • Slide 37
  • Linear Discriminant Analysis (LDA)
  • Сравнение PCA и LDA
  • Метод опорных векторов (Support Vector Machines - SVM)
  • Идея алгоритма
  • Иллюстрация на простейшем примере
  • Линейная неразделимость и использование ядер
  • Иллюстрация использования ядра для отображения 2D -gt 3D
  • svm((formula data = NULL subset naaction = naomit sc
  • Support Vector Machines
  • Глубокое обучение (Deep Learning)
  • laquoВ 1997 году Deep Blue обыграл в шахматы Каспарова В 2011 Wats
  • Распознавание основано на feature detection и последующем раз
  • Распознавание рукописных цифр
  • Еще пример посложнее
  • Использование нейронной сети с обучением
  • Сверхвысокая размерность при работе с первичным представлением
  • Пиксельное кодирование
  • Принцип иерархии понятий ndash основа deep learning
  • Разреженное (sparse) кодирование
  • Словарь для лиц
  • Slide 58
  • Выделение объектов заданного класса
  • Основные архитектуры Deep Learning
  • Задача классификации распознавания и подобные являются задачей
  • Фактор - графы
  • Slide 63
  • Slide 64
  • Подход разреженного кодирования
  • Обобщенная архитектура
  • Slide 67
  • Slide 68
  • Slide 69
  • В действительности работают любые архитектуры построения функц
  • Machine Learning with Torch7 (httpcodecogbitscomwikidoku
  • Torch 7 является расширением Lua
  • Slide 73
  • Slide 74
  • Сверточные (convolution) нейронные сети
  • Свертка и архитектура 4-х уровневой сверточной сети
  • Функциональная структура
  • Примеры успешного применения сверточных сетей
  • Диагностика эпилепсии по ЭЭГ
  • Реализация сверточной сетью
  • Одна из самых больших сверточных сетей
  • Пример тэгирования
  • Пример поиска похожих по изображению
  • Пример поиска в коллекции изображений по текстовому запросу
  • Пример laquoоблачногоraquo классификатора изображений
  • Slide 86
  • Самообучающиеся нейронные сети на основе минимизации функции эн
  • RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцман
  • Алгоритм обучения Contrastive Divergence (CD)
  • Основные уравнения адаптации
  • Алгоритм Хинтона - Contrastive Divergence (CD-k)
  • darch Package for deep architectures and Restricted-Bolzmann-
  • Связь плотности вероятности и энергии
  • Задача обучения с точки минимизации энергии сети
  • Интуитивные соображения
  • Slide 96
  • Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decom
  • Sparse linear reconstruction
  • Автоэнкодер (auto encoder)
  • Архитекттура ICA моделей
  • Итеративные алгоритмы с оптимальным разреженным кодированием 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)
Page 34: !Predictive analytics part_2

Линейный дискриминантный анализ (Linear Discriminant Analysis - LDA)bull Для каждого образца объекта или события с известным классом y

рассматривается набор наблюдений x (называемых ещё признаками переменными или измерениями) Набор таких образцов называется обучающей выборкой (или набором обучения обучением) Задачи классификации состоит в том чтобы построить хороший прогноз класса y для всякого так же распределённого объекта (не обязательно содержащегося в обучающей выборке) имея только наблюдения x Основная идея состоит в сравнении распределений для каждого из классов Расстоянием (по Фишеру) между распределениями принято считать отношение межклассовой дисперсии к внутриклассовой

Решение

bull Предполагается гауссово распределение совместных вероятностей

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

Linear Discriminant Analysis (LDA)

l lt- lda(class ~ x + y data = train)

(m lt- cm(train$class predict(l)$class))1 - sum(diag(m)) sum(m)

par(mfrow=c(12))train_lda lt- asmatrix(train[12]) l$scalingplot_it()plot(train_lda type=n)text(train_lda train$class)par(mfrow=c(11))

Сравнение 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)

(m lt- cm(train$class predict(s)))1 - sum(diag(m)) sum(m)

(m lt- cm(test$class predict(s test[12])))1 - sum(diag(m)) sum(m)

Глубокое обучение (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) матрицы Якобиана

ቈ120597119865119894ሺ119883119894minus1119882119894ሻ120597119882119894 119896119897 = 120597[119865119894(119883119894minus1119882119894)]119896120597[119882119894]119897

Сводится к рекуррентному соотношению для вычисления градиента 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

Сверточная (convolution) нейронная сеть

1 -- parameters 2 nstates = 16256128 3 fanin = 14 4 filtsize = 5 5 poolsize = 2 6 normkernel = imagegaussian1D(7) 7 8 -- Container 9 model = nnSequential()1011 -- stage 1 filter bank -gt squashing -gt L2 pooling -gt normalization12 modeladd(nnSpatialConvolutionMap(nntablesrandom(nfeats nstates[1] fanin[1]) filtsize filtsize))13 modeladd(nnTanh())14 modeladd(nnSpatialLPPooling(nstates[1]2poolsizepoolsizepoolsizepoolsize))15 modeladd(nnSpatialSubtractiveNormalization(16 normkernel))1617 -- stage 2 filter bank -gt squashing -gt L2 pooling -gt normalization18 modeladd(nnSpatialConvolutionMap(nntablesrandom(nstates[1] nstates[2] fanin[2]) filtsize filtsize))19 modeladd(nnTanh())20 modeladd(nnSpatialLPPooling(nstates[2]2poolsizepoolsizepoolsizepoolsize))21 modeladd(nnSpatialSubtractiveNormalization(nstates[2] normkernel))2223 -- stage 3 standard 2-layer neural network24 modeladd(nnReshape(nstates[2]filtsizefiltsize))25 modeladd(nnLinear(nstates[2]filtsizefiltsize nstates[3]))26 modeladd(nnTanh())27 modeladd(nnLinear(nstates[3] noutputs))

Код программы на Torch 7

Сверточные (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

Sparse linear reconstruction

bull Energy=reconstruction_error+code_prediction_error+code_sparsity

Автоэнкодер (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

bull saednntrain(x y hidden = c(1) activationfun = sigm learningrate = 08 momentum = 05 learningrate_scale = 1 output = sigm sae_output = linear numepochs = 3 batchsize = 100 hidden_dropout = 0 visible_dropout = 0)

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

Архитектура сети SAE

Архитектура с 5Х4 hidden 3 outs

Example

Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02)) Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1)) x lt- matrix(c(Var1 Var2) nrow = 100 ncol = 2)y lt- c(rep(1 50) rep(0 50))

обучение сетиdnn lt- saednntrain(x y hidden = c(5 5))

Анализ обучающего набора данныхgt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370helliphelliphelliphelliphelliphelliphelliphellip

gt y [1] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 [54] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

plot3d(xy)

Параметры SAE сети

gt dnn$input_dim[1] 2$output_dim[1] 1$hidden[1] 5 5$size[1] 2 5 5 1$activationfun[1] sigm$learningrate[1] 08

$momentum[1] 05$learningrate_scale[1] 1$hidden_dropout[1] 0$visible_dropout[1] 0$output[1] sigm$W

Коэффициенты связей

$W$W[[1]] [1] [2][1] -014355854 02471840[2] 011378030 -00715094[3] -004343738 03667468[4] 012756946 -01303379[5] -003445704 02293772

$W[[2]] [1] [2] [3] [4] [5][1] 00420191661 -0023073732 -008762756 0035575714 -0063000016[2] 00072771988 -0131204147 -010591421 0018221305 -0025539769[3] -01071896826 -0019479685 -009892573 -0012976429 -0111886901[4] -00009477304 -0023137518 -002147218 0007969452 -0118696306[5] 00045016013 0001885546 -010170954 -0140312396 -0003970102

$W[[3]] [1] [2] [3] [4] [5][1] 01027992 -007288099 003051227 -001731639 0009518049

$vW$vW[[1]] [1] [2][1] -8335203e-06 1368580e-05[2] -6530183e-05 1135070e-04[3] 2544302e-05 -3947111e-05[4] -5512835e-06 9541682e-06[5] 3822854e-05 -6281762e-05

$vW[[2]] [1] [2] [3] [4] [5][1] 4172450e-04 -2554411e-04 4896670e-04 -3526093e-04 3041932e-04[2] -3210759e-04 1978412e-04 -3769148e-04 2727933e-04 -2338477e-04[3] 1058770e-04 -6705336e-05 1244419e-04 -9201508e-05 7678296e-05[4] -8894178e-05 5481668e-05 -1044110e-04 7558269e-05 -6477571e-05[5] 2676520e-05 -1622289e-05 3139684e-05 -2243174e-05 1954349e-05

$vW[[3]] [1] [2] [3] [4] [5][1] -0002603034 -0002398256 -0003274074 -0002542478 -000209672

Предсказание обученной сетью

predict by dnntest_Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02))test_Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1))test_x lt- matrix(c(test_Var1 test_Var2) nrow = 100 ncol = 2)nntest(dnn test_x y)

[1] 025 Value error rate

Сравнение обучающей и тестовой выборки

gttest_x [1] [2] [1] 091887443 -08940890 [2] 115219448 -06050481 [3] 069917981 -08524551 [4] 028213787 -08146816 [5] 098405598 -11440813 [6] 185911887 -08203652 [7] 010843056 -10123789 [8] 083827953 -07594760 [9] -016373562 -09087116 [10] 088298748 -09767741 [11] 005280917 -07525407

gt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370

Plot3d(test_xy) Plot3d(xy)

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)

Подготовка к обработке

starting installationstep1installpackages(devtools)library(devtools)install_github(repo = mnist username = xrobin ref = master)library(mnist)

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
  • Аппроксимация линейными многообразиями (подпространствами)
  • Slide 30
  • Алгоритм
  • princomp(formula data = NULL subset naaction )
  • Principal Component Analysis (PCA)
  • Линейный дискриминантный анализ (Linear Discriminant Analysis -
  • Решение
  • lda(x grouping prior = proportions tol = 10e-4 method
  • Slide 37
  • Linear Discriminant Analysis (LDA)
  • Сравнение PCA и LDA
  • Метод опорных векторов (Support Vector Machines - SVM)
  • Идея алгоритма
  • Иллюстрация на простейшем примере
  • Линейная неразделимость и использование ядер
  • Иллюстрация использования ядра для отображения 2D -gt 3D
  • svm((formula data = NULL subset naaction = naomit sc
  • Support Vector Machines
  • Глубокое обучение (Deep Learning)
  • laquoВ 1997 году Deep Blue обыграл в шахматы Каспарова В 2011 Wats
  • Распознавание основано на feature detection и последующем раз
  • Распознавание рукописных цифр
  • Еще пример посложнее
  • Использование нейронной сети с обучением
  • Сверхвысокая размерность при работе с первичным представлением
  • Пиксельное кодирование
  • Принцип иерархии понятий ndash основа deep learning
  • Разреженное (sparse) кодирование
  • Словарь для лиц
  • Slide 58
  • Выделение объектов заданного класса
  • Основные архитектуры Deep Learning
  • Задача классификации распознавания и подобные являются задачей
  • Фактор - графы
  • Slide 63
  • Slide 64
  • Подход разреженного кодирования
  • Обобщенная архитектура
  • Slide 67
  • Slide 68
  • Slide 69
  • В действительности работают любые архитектуры построения функц
  • Machine Learning with Torch7 (httpcodecogbitscomwikidoku
  • Torch 7 является расширением Lua
  • Slide 73
  • Slide 74
  • Сверточные (convolution) нейронные сети
  • Свертка и архитектура 4-х уровневой сверточной сети
  • Функциональная структура
  • Примеры успешного применения сверточных сетей
  • Диагностика эпилепсии по ЭЭГ
  • Реализация сверточной сетью
  • Одна из самых больших сверточных сетей
  • Пример тэгирования
  • Пример поиска похожих по изображению
  • Пример поиска в коллекции изображений по текстовому запросу
  • Пример laquoоблачногоraquo классификатора изображений
  • Slide 86
  • Самообучающиеся нейронные сети на основе минимизации функции эн
  • RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцман
  • Алгоритм обучения Contrastive Divergence (CD)
  • Основные уравнения адаптации
  • Алгоритм Хинтона - Contrastive Divergence (CD-k)
  • darch Package for deep architectures and Restricted-Bolzmann-
  • Связь плотности вероятности и энергии
  • Задача обучения с точки минимизации энергии сети
  • Интуитивные соображения
  • Slide 96
  • Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decom
  • Sparse linear reconstruction
  • Автоэнкодер (auto encoder)
  • Архитекттура ICA моделей
  • Итеративные алгоритмы с оптимальным разреженным кодированием 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)
Page 35: !Predictive analytics part_2

Решение

bull Предполагается гауссово распределение совместных вероятностей

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

Linear Discriminant Analysis (LDA)

l lt- lda(class ~ x + y data = train)

(m lt- cm(train$class predict(l)$class))1 - sum(diag(m)) sum(m)

par(mfrow=c(12))train_lda lt- asmatrix(train[12]) l$scalingplot_it()plot(train_lda type=n)text(train_lda train$class)par(mfrow=c(11))

Сравнение 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)

(m lt- cm(train$class predict(s)))1 - sum(diag(m)) sum(m)

(m lt- cm(test$class predict(s test[12])))1 - sum(diag(m)) sum(m)

Глубокое обучение (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) матрицы Якобиана

ቈ120597119865119894ሺ119883119894minus1119882119894ሻ120597119882119894 119896119897 = 120597[119865119894(119883119894minus1119882119894)]119896120597[119882119894]119897

Сводится к рекуррентному соотношению для вычисления градиента 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

Сверточная (convolution) нейронная сеть

1 -- parameters 2 nstates = 16256128 3 fanin = 14 4 filtsize = 5 5 poolsize = 2 6 normkernel = imagegaussian1D(7) 7 8 -- Container 9 model = nnSequential()1011 -- stage 1 filter bank -gt squashing -gt L2 pooling -gt normalization12 modeladd(nnSpatialConvolutionMap(nntablesrandom(nfeats nstates[1] fanin[1]) filtsize filtsize))13 modeladd(nnTanh())14 modeladd(nnSpatialLPPooling(nstates[1]2poolsizepoolsizepoolsizepoolsize))15 modeladd(nnSpatialSubtractiveNormalization(16 normkernel))1617 -- stage 2 filter bank -gt squashing -gt L2 pooling -gt normalization18 modeladd(nnSpatialConvolutionMap(nntablesrandom(nstates[1] nstates[2] fanin[2]) filtsize filtsize))19 modeladd(nnTanh())20 modeladd(nnSpatialLPPooling(nstates[2]2poolsizepoolsizepoolsizepoolsize))21 modeladd(nnSpatialSubtractiveNormalization(nstates[2] normkernel))2223 -- stage 3 standard 2-layer neural network24 modeladd(nnReshape(nstates[2]filtsizefiltsize))25 modeladd(nnLinear(nstates[2]filtsizefiltsize nstates[3]))26 modeladd(nnTanh())27 modeladd(nnLinear(nstates[3] noutputs))

Код программы на Torch 7

Сверточные (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

Sparse linear reconstruction

bull Energy=reconstruction_error+code_prediction_error+code_sparsity

Автоэнкодер (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

bull saednntrain(x y hidden = c(1) activationfun = sigm learningrate = 08 momentum = 05 learningrate_scale = 1 output = sigm sae_output = linear numepochs = 3 batchsize = 100 hidden_dropout = 0 visible_dropout = 0)

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

Архитектура сети SAE

Архитектура с 5Х4 hidden 3 outs

Example

Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02)) Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1)) x lt- matrix(c(Var1 Var2) nrow = 100 ncol = 2)y lt- c(rep(1 50) rep(0 50))

обучение сетиdnn lt- saednntrain(x y hidden = c(5 5))

Анализ обучающего набора данныхgt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370helliphelliphelliphelliphelliphelliphelliphellip

gt y [1] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 [54] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

plot3d(xy)

Параметры SAE сети

gt dnn$input_dim[1] 2$output_dim[1] 1$hidden[1] 5 5$size[1] 2 5 5 1$activationfun[1] sigm$learningrate[1] 08

$momentum[1] 05$learningrate_scale[1] 1$hidden_dropout[1] 0$visible_dropout[1] 0$output[1] sigm$W

Коэффициенты связей

$W$W[[1]] [1] [2][1] -014355854 02471840[2] 011378030 -00715094[3] -004343738 03667468[4] 012756946 -01303379[5] -003445704 02293772

$W[[2]] [1] [2] [3] [4] [5][1] 00420191661 -0023073732 -008762756 0035575714 -0063000016[2] 00072771988 -0131204147 -010591421 0018221305 -0025539769[3] -01071896826 -0019479685 -009892573 -0012976429 -0111886901[4] -00009477304 -0023137518 -002147218 0007969452 -0118696306[5] 00045016013 0001885546 -010170954 -0140312396 -0003970102

$W[[3]] [1] [2] [3] [4] [5][1] 01027992 -007288099 003051227 -001731639 0009518049

$vW$vW[[1]] [1] [2][1] -8335203e-06 1368580e-05[2] -6530183e-05 1135070e-04[3] 2544302e-05 -3947111e-05[4] -5512835e-06 9541682e-06[5] 3822854e-05 -6281762e-05

$vW[[2]] [1] [2] [3] [4] [5][1] 4172450e-04 -2554411e-04 4896670e-04 -3526093e-04 3041932e-04[2] -3210759e-04 1978412e-04 -3769148e-04 2727933e-04 -2338477e-04[3] 1058770e-04 -6705336e-05 1244419e-04 -9201508e-05 7678296e-05[4] -8894178e-05 5481668e-05 -1044110e-04 7558269e-05 -6477571e-05[5] 2676520e-05 -1622289e-05 3139684e-05 -2243174e-05 1954349e-05

$vW[[3]] [1] [2] [3] [4] [5][1] -0002603034 -0002398256 -0003274074 -0002542478 -000209672

Предсказание обученной сетью

predict by dnntest_Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02))test_Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1))test_x lt- matrix(c(test_Var1 test_Var2) nrow = 100 ncol = 2)nntest(dnn test_x y)

[1] 025 Value error rate

Сравнение обучающей и тестовой выборки

gttest_x [1] [2] [1] 091887443 -08940890 [2] 115219448 -06050481 [3] 069917981 -08524551 [4] 028213787 -08146816 [5] 098405598 -11440813 [6] 185911887 -08203652 [7] 010843056 -10123789 [8] 083827953 -07594760 [9] -016373562 -09087116 [10] 088298748 -09767741 [11] 005280917 -07525407

gt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370

Plot3d(test_xy) Plot3d(xy)

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)

Подготовка к обработке

starting installationstep1installpackages(devtools)library(devtools)install_github(repo = mnist username = xrobin ref = master)library(mnist)

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
  • Аппроксимация линейными многообразиями (подпространствами)
  • Slide 30
  • Алгоритм
  • princomp(formula data = NULL subset naaction )
  • Principal Component Analysis (PCA)
  • Линейный дискриминантный анализ (Linear Discriminant Analysis -
  • Решение
  • lda(x grouping prior = proportions tol = 10e-4 method
  • Slide 37
  • Linear Discriminant Analysis (LDA)
  • Сравнение PCA и LDA
  • Метод опорных векторов (Support Vector Machines - SVM)
  • Идея алгоритма
  • Иллюстрация на простейшем примере
  • Линейная неразделимость и использование ядер
  • Иллюстрация использования ядра для отображения 2D -gt 3D
  • svm((formula data = NULL subset naaction = naomit sc
  • Support Vector Machines
  • Глубокое обучение (Deep Learning)
  • laquoВ 1997 году Deep Blue обыграл в шахматы Каспарова В 2011 Wats
  • Распознавание основано на feature detection и последующем раз
  • Распознавание рукописных цифр
  • Еще пример посложнее
  • Использование нейронной сети с обучением
  • Сверхвысокая размерность при работе с первичным представлением
  • Пиксельное кодирование
  • Принцип иерархии понятий ndash основа deep learning
  • Разреженное (sparse) кодирование
  • Словарь для лиц
  • Slide 58
  • Выделение объектов заданного класса
  • Основные архитектуры Deep Learning
  • Задача классификации распознавания и подобные являются задачей
  • Фактор - графы
  • Slide 63
  • Slide 64
  • Подход разреженного кодирования
  • Обобщенная архитектура
  • Slide 67
  • Slide 68
  • Slide 69
  • В действительности работают любые архитектуры построения функц
  • Machine Learning with Torch7 (httpcodecogbitscomwikidoku
  • Torch 7 является расширением Lua
  • Slide 73
  • Slide 74
  • Сверточные (convolution) нейронные сети
  • Свертка и архитектура 4-х уровневой сверточной сети
  • Функциональная структура
  • Примеры успешного применения сверточных сетей
  • Диагностика эпилепсии по ЭЭГ
  • Реализация сверточной сетью
  • Одна из самых больших сверточных сетей
  • Пример тэгирования
  • Пример поиска похожих по изображению
  • Пример поиска в коллекции изображений по текстовому запросу
  • Пример laquoоблачногоraquo классификатора изображений
  • Slide 86
  • Самообучающиеся нейронные сети на основе минимизации функции эн
  • RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцман
  • Алгоритм обучения Contrastive Divergence (CD)
  • Основные уравнения адаптации
  • Алгоритм Хинтона - Contrastive Divergence (CD-k)
  • darch Package for deep architectures and Restricted-Bolzmann-
  • Связь плотности вероятности и энергии
  • Задача обучения с точки минимизации энергии сети
  • Интуитивные соображения
  • Slide 96
  • Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decom
  • Sparse linear reconstruction
  • Автоэнкодер (auto encoder)
  • Архитекттура ICA моделей
  • Итеративные алгоритмы с оптимальным разреженным кодированием 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)
Page 36: !Predictive analytics part_2

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

Linear Discriminant Analysis (LDA)

l lt- lda(class ~ x + y data = train)

(m lt- cm(train$class predict(l)$class))1 - sum(diag(m)) sum(m)

par(mfrow=c(12))train_lda lt- asmatrix(train[12]) l$scalingplot_it()plot(train_lda type=n)text(train_lda train$class)par(mfrow=c(11))

Сравнение 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)

(m lt- cm(train$class predict(s)))1 - sum(diag(m)) sum(m)

(m lt- cm(test$class predict(s test[12])))1 - sum(diag(m)) sum(m)

Глубокое обучение (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) матрицы Якобиана

ቈ120597119865119894ሺ119883119894minus1119882119894ሻ120597119882119894 119896119897 = 120597[119865119894(119883119894minus1119882119894)]119896120597[119882119894]119897

Сводится к рекуррентному соотношению для вычисления градиента 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

Сверточная (convolution) нейронная сеть

1 -- parameters 2 nstates = 16256128 3 fanin = 14 4 filtsize = 5 5 poolsize = 2 6 normkernel = imagegaussian1D(7) 7 8 -- Container 9 model = nnSequential()1011 -- stage 1 filter bank -gt squashing -gt L2 pooling -gt normalization12 modeladd(nnSpatialConvolutionMap(nntablesrandom(nfeats nstates[1] fanin[1]) filtsize filtsize))13 modeladd(nnTanh())14 modeladd(nnSpatialLPPooling(nstates[1]2poolsizepoolsizepoolsizepoolsize))15 modeladd(nnSpatialSubtractiveNormalization(16 normkernel))1617 -- stage 2 filter bank -gt squashing -gt L2 pooling -gt normalization18 modeladd(nnSpatialConvolutionMap(nntablesrandom(nstates[1] nstates[2] fanin[2]) filtsize filtsize))19 modeladd(nnTanh())20 modeladd(nnSpatialLPPooling(nstates[2]2poolsizepoolsizepoolsizepoolsize))21 modeladd(nnSpatialSubtractiveNormalization(nstates[2] normkernel))2223 -- stage 3 standard 2-layer neural network24 modeladd(nnReshape(nstates[2]filtsizefiltsize))25 modeladd(nnLinear(nstates[2]filtsizefiltsize nstates[3]))26 modeladd(nnTanh())27 modeladd(nnLinear(nstates[3] noutputs))

Код программы на Torch 7

Сверточные (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

Sparse linear reconstruction

bull Energy=reconstruction_error+code_prediction_error+code_sparsity

Автоэнкодер (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

bull saednntrain(x y hidden = c(1) activationfun = sigm learningrate = 08 momentum = 05 learningrate_scale = 1 output = sigm sae_output = linear numepochs = 3 batchsize = 100 hidden_dropout = 0 visible_dropout = 0)

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

Архитектура сети SAE

Архитектура с 5Х4 hidden 3 outs

Example

Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02)) Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1)) x lt- matrix(c(Var1 Var2) nrow = 100 ncol = 2)y lt- c(rep(1 50) rep(0 50))

обучение сетиdnn lt- saednntrain(x y hidden = c(5 5))

Анализ обучающего набора данныхgt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370helliphelliphelliphelliphelliphelliphelliphellip

gt y [1] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 [54] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

plot3d(xy)

Параметры SAE сети

gt dnn$input_dim[1] 2$output_dim[1] 1$hidden[1] 5 5$size[1] 2 5 5 1$activationfun[1] sigm$learningrate[1] 08

$momentum[1] 05$learningrate_scale[1] 1$hidden_dropout[1] 0$visible_dropout[1] 0$output[1] sigm$W

Коэффициенты связей

$W$W[[1]] [1] [2][1] -014355854 02471840[2] 011378030 -00715094[3] -004343738 03667468[4] 012756946 -01303379[5] -003445704 02293772

$W[[2]] [1] [2] [3] [4] [5][1] 00420191661 -0023073732 -008762756 0035575714 -0063000016[2] 00072771988 -0131204147 -010591421 0018221305 -0025539769[3] -01071896826 -0019479685 -009892573 -0012976429 -0111886901[4] -00009477304 -0023137518 -002147218 0007969452 -0118696306[5] 00045016013 0001885546 -010170954 -0140312396 -0003970102

$W[[3]] [1] [2] [3] [4] [5][1] 01027992 -007288099 003051227 -001731639 0009518049

$vW$vW[[1]] [1] [2][1] -8335203e-06 1368580e-05[2] -6530183e-05 1135070e-04[3] 2544302e-05 -3947111e-05[4] -5512835e-06 9541682e-06[5] 3822854e-05 -6281762e-05

$vW[[2]] [1] [2] [3] [4] [5][1] 4172450e-04 -2554411e-04 4896670e-04 -3526093e-04 3041932e-04[2] -3210759e-04 1978412e-04 -3769148e-04 2727933e-04 -2338477e-04[3] 1058770e-04 -6705336e-05 1244419e-04 -9201508e-05 7678296e-05[4] -8894178e-05 5481668e-05 -1044110e-04 7558269e-05 -6477571e-05[5] 2676520e-05 -1622289e-05 3139684e-05 -2243174e-05 1954349e-05

$vW[[3]] [1] [2] [3] [4] [5][1] -0002603034 -0002398256 -0003274074 -0002542478 -000209672

Предсказание обученной сетью

predict by dnntest_Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02))test_Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1))test_x lt- matrix(c(test_Var1 test_Var2) nrow = 100 ncol = 2)nntest(dnn test_x y)

[1] 025 Value error rate

Сравнение обучающей и тестовой выборки

gttest_x [1] [2] [1] 091887443 -08940890 [2] 115219448 -06050481 [3] 069917981 -08524551 [4] 028213787 -08146816 [5] 098405598 -11440813 [6] 185911887 -08203652 [7] 010843056 -10123789 [8] 083827953 -07594760 [9] -016373562 -09087116 [10] 088298748 -09767741 [11] 005280917 -07525407

gt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370

Plot3d(test_xy) Plot3d(xy)

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)

Подготовка к обработке

starting installationstep1installpackages(devtools)library(devtools)install_github(repo = mnist username = xrobin ref = master)library(mnist)

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
  • Аппроксимация линейными многообразиями (подпространствами)
  • Slide 30
  • Алгоритм
  • princomp(formula data = NULL subset naaction )
  • Principal Component Analysis (PCA)
  • Линейный дискриминантный анализ (Linear Discriminant Analysis -
  • Решение
  • lda(x grouping prior = proportions tol = 10e-4 method
  • Slide 37
  • Linear Discriminant Analysis (LDA)
  • Сравнение PCA и LDA
  • Метод опорных векторов (Support Vector Machines - SVM)
  • Идея алгоритма
  • Иллюстрация на простейшем примере
  • Линейная неразделимость и использование ядер
  • Иллюстрация использования ядра для отображения 2D -gt 3D
  • svm((formula data = NULL subset naaction = naomit sc
  • Support Vector Machines
  • Глубокое обучение (Deep Learning)
  • laquoВ 1997 году Deep Blue обыграл в шахматы Каспарова В 2011 Wats
  • Распознавание основано на feature detection и последующем раз
  • Распознавание рукописных цифр
  • Еще пример посложнее
  • Использование нейронной сети с обучением
  • Сверхвысокая размерность при работе с первичным представлением
  • Пиксельное кодирование
  • Принцип иерархии понятий ndash основа deep learning
  • Разреженное (sparse) кодирование
  • Словарь для лиц
  • Slide 58
  • Выделение объектов заданного класса
  • Основные архитектуры Deep Learning
  • Задача классификации распознавания и подобные являются задачей
  • Фактор - графы
  • Slide 63
  • Slide 64
  • Подход разреженного кодирования
  • Обобщенная архитектура
  • Slide 67
  • Slide 68
  • Slide 69
  • В действительности работают любые архитектуры построения функц
  • Machine Learning with Torch7 (httpcodecogbitscomwikidoku
  • Torch 7 является расширением Lua
  • Slide 73
  • Slide 74
  • Сверточные (convolution) нейронные сети
  • Свертка и архитектура 4-х уровневой сверточной сети
  • Функциональная структура
  • Примеры успешного применения сверточных сетей
  • Диагностика эпилепсии по ЭЭГ
  • Реализация сверточной сетью
  • Одна из самых больших сверточных сетей
  • Пример тэгирования
  • Пример поиска похожих по изображению
  • Пример поиска в коллекции изображений по текстовому запросу
  • Пример laquoоблачногоraquo классификатора изображений
  • Slide 86
  • Самообучающиеся нейронные сети на основе минимизации функции эн
  • RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцман
  • Алгоритм обучения Contrastive Divergence (CD)
  • Основные уравнения адаптации
  • Алгоритм Хинтона - Contrastive Divergence (CD-k)
  • darch Package for deep architectures and Restricted-Bolzmann-
  • Связь плотности вероятности и энергии
  • Задача обучения с точки минимизации энергии сети
  • Интуитивные соображения
  • Slide 96
  • Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decom
  • Sparse linear reconstruction
  • Автоэнкодер (auto encoder)
  • Архитекттура ICA моделей
  • Итеративные алгоритмы с оптимальным разреженным кодированием 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)
Page 37: !Predictive analytics part_2

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

Linear Discriminant Analysis (LDA)

l lt- lda(class ~ x + y data = train)

(m lt- cm(train$class predict(l)$class))1 - sum(diag(m)) sum(m)

par(mfrow=c(12))train_lda lt- asmatrix(train[12]) l$scalingplot_it()plot(train_lda type=n)text(train_lda train$class)par(mfrow=c(11))

Сравнение 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)

(m lt- cm(train$class predict(s)))1 - sum(diag(m)) sum(m)

(m lt- cm(test$class predict(s test[12])))1 - sum(diag(m)) sum(m)

Глубокое обучение (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) матрицы Якобиана

ቈ120597119865119894ሺ119883119894minus1119882119894ሻ120597119882119894 119896119897 = 120597[119865119894(119883119894minus1119882119894)]119896120597[119882119894]119897

Сводится к рекуррентному соотношению для вычисления градиента 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

Сверточная (convolution) нейронная сеть

1 -- parameters 2 nstates = 16256128 3 fanin = 14 4 filtsize = 5 5 poolsize = 2 6 normkernel = imagegaussian1D(7) 7 8 -- Container 9 model = nnSequential()1011 -- stage 1 filter bank -gt squashing -gt L2 pooling -gt normalization12 modeladd(nnSpatialConvolutionMap(nntablesrandom(nfeats nstates[1] fanin[1]) filtsize filtsize))13 modeladd(nnTanh())14 modeladd(nnSpatialLPPooling(nstates[1]2poolsizepoolsizepoolsizepoolsize))15 modeladd(nnSpatialSubtractiveNormalization(16 normkernel))1617 -- stage 2 filter bank -gt squashing -gt L2 pooling -gt normalization18 modeladd(nnSpatialConvolutionMap(nntablesrandom(nstates[1] nstates[2] fanin[2]) filtsize filtsize))19 modeladd(nnTanh())20 modeladd(nnSpatialLPPooling(nstates[2]2poolsizepoolsizepoolsizepoolsize))21 modeladd(nnSpatialSubtractiveNormalization(nstates[2] normkernel))2223 -- stage 3 standard 2-layer neural network24 modeladd(nnReshape(nstates[2]filtsizefiltsize))25 modeladd(nnLinear(nstates[2]filtsizefiltsize nstates[3]))26 modeladd(nnTanh())27 modeladd(nnLinear(nstates[3] noutputs))

Код программы на Torch 7

Сверточные (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

Sparse linear reconstruction

bull Energy=reconstruction_error+code_prediction_error+code_sparsity

Автоэнкодер (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

bull saednntrain(x y hidden = c(1) activationfun = sigm learningrate = 08 momentum = 05 learningrate_scale = 1 output = sigm sae_output = linear numepochs = 3 batchsize = 100 hidden_dropout = 0 visible_dropout = 0)

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

Архитектура сети SAE

Архитектура с 5Х4 hidden 3 outs

Example

Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02)) Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1)) x lt- matrix(c(Var1 Var2) nrow = 100 ncol = 2)y lt- c(rep(1 50) rep(0 50))

обучение сетиdnn lt- saednntrain(x y hidden = c(5 5))

Анализ обучающего набора данныхgt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370helliphelliphelliphelliphelliphelliphelliphellip

gt y [1] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 [54] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

plot3d(xy)

Параметры SAE сети

gt dnn$input_dim[1] 2$output_dim[1] 1$hidden[1] 5 5$size[1] 2 5 5 1$activationfun[1] sigm$learningrate[1] 08

$momentum[1] 05$learningrate_scale[1] 1$hidden_dropout[1] 0$visible_dropout[1] 0$output[1] sigm$W

Коэффициенты связей

$W$W[[1]] [1] [2][1] -014355854 02471840[2] 011378030 -00715094[3] -004343738 03667468[4] 012756946 -01303379[5] -003445704 02293772

$W[[2]] [1] [2] [3] [4] [5][1] 00420191661 -0023073732 -008762756 0035575714 -0063000016[2] 00072771988 -0131204147 -010591421 0018221305 -0025539769[3] -01071896826 -0019479685 -009892573 -0012976429 -0111886901[4] -00009477304 -0023137518 -002147218 0007969452 -0118696306[5] 00045016013 0001885546 -010170954 -0140312396 -0003970102

$W[[3]] [1] [2] [3] [4] [5][1] 01027992 -007288099 003051227 -001731639 0009518049

$vW$vW[[1]] [1] [2][1] -8335203e-06 1368580e-05[2] -6530183e-05 1135070e-04[3] 2544302e-05 -3947111e-05[4] -5512835e-06 9541682e-06[5] 3822854e-05 -6281762e-05

$vW[[2]] [1] [2] [3] [4] [5][1] 4172450e-04 -2554411e-04 4896670e-04 -3526093e-04 3041932e-04[2] -3210759e-04 1978412e-04 -3769148e-04 2727933e-04 -2338477e-04[3] 1058770e-04 -6705336e-05 1244419e-04 -9201508e-05 7678296e-05[4] -8894178e-05 5481668e-05 -1044110e-04 7558269e-05 -6477571e-05[5] 2676520e-05 -1622289e-05 3139684e-05 -2243174e-05 1954349e-05

$vW[[3]] [1] [2] [3] [4] [5][1] -0002603034 -0002398256 -0003274074 -0002542478 -000209672

Предсказание обученной сетью

predict by dnntest_Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02))test_Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1))test_x lt- matrix(c(test_Var1 test_Var2) nrow = 100 ncol = 2)nntest(dnn test_x y)

[1] 025 Value error rate

Сравнение обучающей и тестовой выборки

gttest_x [1] [2] [1] 091887443 -08940890 [2] 115219448 -06050481 [3] 069917981 -08524551 [4] 028213787 -08146816 [5] 098405598 -11440813 [6] 185911887 -08203652 [7] 010843056 -10123789 [8] 083827953 -07594760 [9] -016373562 -09087116 [10] 088298748 -09767741 [11] 005280917 -07525407

gt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370

Plot3d(test_xy) Plot3d(xy)

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)

Подготовка к обработке

starting installationstep1installpackages(devtools)library(devtools)install_github(repo = mnist username = xrobin ref = master)library(mnist)

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
  • Аппроксимация линейными многообразиями (подпространствами)
  • Slide 30
  • Алгоритм
  • princomp(formula data = NULL subset naaction )
  • Principal Component Analysis (PCA)
  • Линейный дискриминантный анализ (Linear Discriminant Analysis -
  • Решение
  • lda(x grouping prior = proportions tol = 10e-4 method
  • Slide 37
  • Linear Discriminant Analysis (LDA)
  • Сравнение PCA и LDA
  • Метод опорных векторов (Support Vector Machines - SVM)
  • Идея алгоритма
  • Иллюстрация на простейшем примере
  • Линейная неразделимость и использование ядер
  • Иллюстрация использования ядра для отображения 2D -gt 3D
  • svm((formula data = NULL subset naaction = naomit sc
  • Support Vector Machines
  • Глубокое обучение (Deep Learning)
  • laquoВ 1997 году Deep Blue обыграл в шахматы Каспарова В 2011 Wats
  • Распознавание основано на feature detection и последующем раз
  • Распознавание рукописных цифр
  • Еще пример посложнее
  • Использование нейронной сети с обучением
  • Сверхвысокая размерность при работе с первичным представлением
  • Пиксельное кодирование
  • Принцип иерархии понятий ndash основа deep learning
  • Разреженное (sparse) кодирование
  • Словарь для лиц
  • Slide 58
  • Выделение объектов заданного класса
  • Основные архитектуры Deep Learning
  • Задача классификации распознавания и подобные являются задачей
  • Фактор - графы
  • Slide 63
  • Slide 64
  • Подход разреженного кодирования
  • Обобщенная архитектура
  • Slide 67
  • Slide 68
  • Slide 69
  • В действительности работают любые архитектуры построения функц
  • Machine Learning with Torch7 (httpcodecogbitscomwikidoku
  • Torch 7 является расширением Lua
  • Slide 73
  • Slide 74
  • Сверточные (convolution) нейронные сети
  • Свертка и архитектура 4-х уровневой сверточной сети
  • Функциональная структура
  • Примеры успешного применения сверточных сетей
  • Диагностика эпилепсии по ЭЭГ
  • Реализация сверточной сетью
  • Одна из самых больших сверточных сетей
  • Пример тэгирования
  • Пример поиска похожих по изображению
  • Пример поиска в коллекции изображений по текстовому запросу
  • Пример laquoоблачногоraquo классификатора изображений
  • Slide 86
  • Самообучающиеся нейронные сети на основе минимизации функции эн
  • RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцман
  • Алгоритм обучения Contrastive Divergence (CD)
  • Основные уравнения адаптации
  • Алгоритм Хинтона - Contrastive Divergence (CD-k)
  • darch Package for deep architectures and Restricted-Bolzmann-
  • Связь плотности вероятности и энергии
  • Задача обучения с точки минимизации энергии сети
  • Интуитивные соображения
  • Slide 96
  • Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decom
  • Sparse linear reconstruction
  • Автоэнкодер (auto encoder)
  • Архитекттура ICA моделей
  • Итеративные алгоритмы с оптимальным разреженным кодированием 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)
Page 38: !Predictive analytics part_2

Linear Discriminant Analysis (LDA)

l lt- lda(class ~ x + y data = train)

(m lt- cm(train$class predict(l)$class))1 - sum(diag(m)) sum(m)

par(mfrow=c(12))train_lda lt- asmatrix(train[12]) l$scalingplot_it()plot(train_lda type=n)text(train_lda train$class)par(mfrow=c(11))

Сравнение 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)

(m lt- cm(train$class predict(s)))1 - sum(diag(m)) sum(m)

(m lt- cm(test$class predict(s test[12])))1 - sum(diag(m)) sum(m)

Глубокое обучение (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) матрицы Якобиана

ቈ120597119865119894ሺ119883119894minus1119882119894ሻ120597119882119894 119896119897 = 120597[119865119894(119883119894minus1119882119894)]119896120597[119882119894]119897

Сводится к рекуррентному соотношению для вычисления градиента 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

Сверточная (convolution) нейронная сеть

1 -- parameters 2 nstates = 16256128 3 fanin = 14 4 filtsize = 5 5 poolsize = 2 6 normkernel = imagegaussian1D(7) 7 8 -- Container 9 model = nnSequential()1011 -- stage 1 filter bank -gt squashing -gt L2 pooling -gt normalization12 modeladd(nnSpatialConvolutionMap(nntablesrandom(nfeats nstates[1] fanin[1]) filtsize filtsize))13 modeladd(nnTanh())14 modeladd(nnSpatialLPPooling(nstates[1]2poolsizepoolsizepoolsizepoolsize))15 modeladd(nnSpatialSubtractiveNormalization(16 normkernel))1617 -- stage 2 filter bank -gt squashing -gt L2 pooling -gt normalization18 modeladd(nnSpatialConvolutionMap(nntablesrandom(nstates[1] nstates[2] fanin[2]) filtsize filtsize))19 modeladd(nnTanh())20 modeladd(nnSpatialLPPooling(nstates[2]2poolsizepoolsizepoolsizepoolsize))21 modeladd(nnSpatialSubtractiveNormalization(nstates[2] normkernel))2223 -- stage 3 standard 2-layer neural network24 modeladd(nnReshape(nstates[2]filtsizefiltsize))25 modeladd(nnLinear(nstates[2]filtsizefiltsize nstates[3]))26 modeladd(nnTanh())27 modeladd(nnLinear(nstates[3] noutputs))

Код программы на Torch 7

Сверточные (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

Sparse linear reconstruction

bull Energy=reconstruction_error+code_prediction_error+code_sparsity

Автоэнкодер (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

bull saednntrain(x y hidden = c(1) activationfun = sigm learningrate = 08 momentum = 05 learningrate_scale = 1 output = sigm sae_output = linear numepochs = 3 batchsize = 100 hidden_dropout = 0 visible_dropout = 0)

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

Архитектура сети SAE

Архитектура с 5Х4 hidden 3 outs

Example

Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02)) Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1)) x lt- matrix(c(Var1 Var2) nrow = 100 ncol = 2)y lt- c(rep(1 50) rep(0 50))

обучение сетиdnn lt- saednntrain(x y hidden = c(5 5))

Анализ обучающего набора данныхgt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370helliphelliphelliphelliphelliphelliphelliphellip

gt y [1] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 [54] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

plot3d(xy)

Параметры SAE сети

gt dnn$input_dim[1] 2$output_dim[1] 1$hidden[1] 5 5$size[1] 2 5 5 1$activationfun[1] sigm$learningrate[1] 08

$momentum[1] 05$learningrate_scale[1] 1$hidden_dropout[1] 0$visible_dropout[1] 0$output[1] sigm$W

Коэффициенты связей

$W$W[[1]] [1] [2][1] -014355854 02471840[2] 011378030 -00715094[3] -004343738 03667468[4] 012756946 -01303379[5] -003445704 02293772

$W[[2]] [1] [2] [3] [4] [5][1] 00420191661 -0023073732 -008762756 0035575714 -0063000016[2] 00072771988 -0131204147 -010591421 0018221305 -0025539769[3] -01071896826 -0019479685 -009892573 -0012976429 -0111886901[4] -00009477304 -0023137518 -002147218 0007969452 -0118696306[5] 00045016013 0001885546 -010170954 -0140312396 -0003970102

$W[[3]] [1] [2] [3] [4] [5][1] 01027992 -007288099 003051227 -001731639 0009518049

$vW$vW[[1]] [1] [2][1] -8335203e-06 1368580e-05[2] -6530183e-05 1135070e-04[3] 2544302e-05 -3947111e-05[4] -5512835e-06 9541682e-06[5] 3822854e-05 -6281762e-05

$vW[[2]] [1] [2] [3] [4] [5][1] 4172450e-04 -2554411e-04 4896670e-04 -3526093e-04 3041932e-04[2] -3210759e-04 1978412e-04 -3769148e-04 2727933e-04 -2338477e-04[3] 1058770e-04 -6705336e-05 1244419e-04 -9201508e-05 7678296e-05[4] -8894178e-05 5481668e-05 -1044110e-04 7558269e-05 -6477571e-05[5] 2676520e-05 -1622289e-05 3139684e-05 -2243174e-05 1954349e-05

$vW[[3]] [1] [2] [3] [4] [5][1] -0002603034 -0002398256 -0003274074 -0002542478 -000209672

Предсказание обученной сетью

predict by dnntest_Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02))test_Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1))test_x lt- matrix(c(test_Var1 test_Var2) nrow = 100 ncol = 2)nntest(dnn test_x y)

[1] 025 Value error rate

Сравнение обучающей и тестовой выборки

gttest_x [1] [2] [1] 091887443 -08940890 [2] 115219448 -06050481 [3] 069917981 -08524551 [4] 028213787 -08146816 [5] 098405598 -11440813 [6] 185911887 -08203652 [7] 010843056 -10123789 [8] 083827953 -07594760 [9] -016373562 -09087116 [10] 088298748 -09767741 [11] 005280917 -07525407

gt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370

Plot3d(test_xy) Plot3d(xy)

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)

Подготовка к обработке

starting installationstep1installpackages(devtools)library(devtools)install_github(repo = mnist username = xrobin ref = master)library(mnist)

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
  • Аппроксимация линейными многообразиями (подпространствами)
  • Slide 30
  • Алгоритм
  • princomp(formula data = NULL subset naaction )
  • Principal Component Analysis (PCA)
  • Линейный дискриминантный анализ (Linear Discriminant Analysis -
  • Решение
  • lda(x grouping prior = proportions tol = 10e-4 method
  • Slide 37
  • Linear Discriminant Analysis (LDA)
  • Сравнение PCA и LDA
  • Метод опорных векторов (Support Vector Machines - SVM)
  • Идея алгоритма
  • Иллюстрация на простейшем примере
  • Линейная неразделимость и использование ядер
  • Иллюстрация использования ядра для отображения 2D -gt 3D
  • svm((formula data = NULL subset naaction = naomit sc
  • Support Vector Machines
  • Глубокое обучение (Deep Learning)
  • laquoВ 1997 году Deep Blue обыграл в шахматы Каспарова В 2011 Wats
  • Распознавание основано на feature detection и последующем раз
  • Распознавание рукописных цифр
  • Еще пример посложнее
  • Использование нейронной сети с обучением
  • Сверхвысокая размерность при работе с первичным представлением
  • Пиксельное кодирование
  • Принцип иерархии понятий ndash основа deep learning
  • Разреженное (sparse) кодирование
  • Словарь для лиц
  • Slide 58
  • Выделение объектов заданного класса
  • Основные архитектуры Deep Learning
  • Задача классификации распознавания и подобные являются задачей
  • Фактор - графы
  • Slide 63
  • Slide 64
  • Подход разреженного кодирования
  • Обобщенная архитектура
  • Slide 67
  • Slide 68
  • Slide 69
  • В действительности работают любые архитектуры построения функц
  • Machine Learning with Torch7 (httpcodecogbitscomwikidoku
  • Torch 7 является расширением Lua
  • Slide 73
  • Slide 74
  • Сверточные (convolution) нейронные сети
  • Свертка и архитектура 4-х уровневой сверточной сети
  • Функциональная структура
  • Примеры успешного применения сверточных сетей
  • Диагностика эпилепсии по ЭЭГ
  • Реализация сверточной сетью
  • Одна из самых больших сверточных сетей
  • Пример тэгирования
  • Пример поиска похожих по изображению
  • Пример поиска в коллекции изображений по текстовому запросу
  • Пример laquoоблачногоraquo классификатора изображений
  • Slide 86
  • Самообучающиеся нейронные сети на основе минимизации функции эн
  • RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцман
  • Алгоритм обучения Contrastive Divergence (CD)
  • Основные уравнения адаптации
  • Алгоритм Хинтона - Contrastive Divergence (CD-k)
  • darch Package for deep architectures and Restricted-Bolzmann-
  • Связь плотности вероятности и энергии
  • Задача обучения с точки минимизации энергии сети
  • Интуитивные соображения
  • Slide 96
  • Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decom
  • Sparse linear reconstruction
  • Автоэнкодер (auto encoder)
  • Архитекттура ICA моделей
  • Итеративные алгоритмы с оптимальным разреженным кодированием 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)
Page 39: !Predictive analytics part_2

Сравнение 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)

(m lt- cm(train$class predict(s)))1 - sum(diag(m)) sum(m)

(m lt- cm(test$class predict(s test[12])))1 - sum(diag(m)) sum(m)

Глубокое обучение (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) матрицы Якобиана

ቈ120597119865119894ሺ119883119894minus1119882119894ሻ120597119882119894 119896119897 = 120597[119865119894(119883119894minus1119882119894)]119896120597[119882119894]119897

Сводится к рекуррентному соотношению для вычисления градиента 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

Сверточная (convolution) нейронная сеть

1 -- parameters 2 nstates = 16256128 3 fanin = 14 4 filtsize = 5 5 poolsize = 2 6 normkernel = imagegaussian1D(7) 7 8 -- Container 9 model = nnSequential()1011 -- stage 1 filter bank -gt squashing -gt L2 pooling -gt normalization12 modeladd(nnSpatialConvolutionMap(nntablesrandom(nfeats nstates[1] fanin[1]) filtsize filtsize))13 modeladd(nnTanh())14 modeladd(nnSpatialLPPooling(nstates[1]2poolsizepoolsizepoolsizepoolsize))15 modeladd(nnSpatialSubtractiveNormalization(16 normkernel))1617 -- stage 2 filter bank -gt squashing -gt L2 pooling -gt normalization18 modeladd(nnSpatialConvolutionMap(nntablesrandom(nstates[1] nstates[2] fanin[2]) filtsize filtsize))19 modeladd(nnTanh())20 modeladd(nnSpatialLPPooling(nstates[2]2poolsizepoolsizepoolsizepoolsize))21 modeladd(nnSpatialSubtractiveNormalization(nstates[2] normkernel))2223 -- stage 3 standard 2-layer neural network24 modeladd(nnReshape(nstates[2]filtsizefiltsize))25 modeladd(nnLinear(nstates[2]filtsizefiltsize nstates[3]))26 modeladd(nnTanh())27 modeladd(nnLinear(nstates[3] noutputs))

Код программы на Torch 7

Сверточные (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

Sparse linear reconstruction

bull Energy=reconstruction_error+code_prediction_error+code_sparsity

Автоэнкодер (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

bull saednntrain(x y hidden = c(1) activationfun = sigm learningrate = 08 momentum = 05 learningrate_scale = 1 output = sigm sae_output = linear numepochs = 3 batchsize = 100 hidden_dropout = 0 visible_dropout = 0)

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

Архитектура сети SAE

Архитектура с 5Х4 hidden 3 outs

Example

Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02)) Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1)) x lt- matrix(c(Var1 Var2) nrow = 100 ncol = 2)y lt- c(rep(1 50) rep(0 50))

обучение сетиdnn lt- saednntrain(x y hidden = c(5 5))

Анализ обучающего набора данныхgt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370helliphelliphelliphelliphelliphelliphelliphellip

gt y [1] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 [54] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

plot3d(xy)

Параметры SAE сети

gt dnn$input_dim[1] 2$output_dim[1] 1$hidden[1] 5 5$size[1] 2 5 5 1$activationfun[1] sigm$learningrate[1] 08

$momentum[1] 05$learningrate_scale[1] 1$hidden_dropout[1] 0$visible_dropout[1] 0$output[1] sigm$W

Коэффициенты связей

$W$W[[1]] [1] [2][1] -014355854 02471840[2] 011378030 -00715094[3] -004343738 03667468[4] 012756946 -01303379[5] -003445704 02293772

$W[[2]] [1] [2] [3] [4] [5][1] 00420191661 -0023073732 -008762756 0035575714 -0063000016[2] 00072771988 -0131204147 -010591421 0018221305 -0025539769[3] -01071896826 -0019479685 -009892573 -0012976429 -0111886901[4] -00009477304 -0023137518 -002147218 0007969452 -0118696306[5] 00045016013 0001885546 -010170954 -0140312396 -0003970102

$W[[3]] [1] [2] [3] [4] [5][1] 01027992 -007288099 003051227 -001731639 0009518049

$vW$vW[[1]] [1] [2][1] -8335203e-06 1368580e-05[2] -6530183e-05 1135070e-04[3] 2544302e-05 -3947111e-05[4] -5512835e-06 9541682e-06[5] 3822854e-05 -6281762e-05

$vW[[2]] [1] [2] [3] [4] [5][1] 4172450e-04 -2554411e-04 4896670e-04 -3526093e-04 3041932e-04[2] -3210759e-04 1978412e-04 -3769148e-04 2727933e-04 -2338477e-04[3] 1058770e-04 -6705336e-05 1244419e-04 -9201508e-05 7678296e-05[4] -8894178e-05 5481668e-05 -1044110e-04 7558269e-05 -6477571e-05[5] 2676520e-05 -1622289e-05 3139684e-05 -2243174e-05 1954349e-05

$vW[[3]] [1] [2] [3] [4] [5][1] -0002603034 -0002398256 -0003274074 -0002542478 -000209672

Предсказание обученной сетью

predict by dnntest_Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02))test_Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1))test_x lt- matrix(c(test_Var1 test_Var2) nrow = 100 ncol = 2)nntest(dnn test_x y)

[1] 025 Value error rate

Сравнение обучающей и тестовой выборки

gttest_x [1] [2] [1] 091887443 -08940890 [2] 115219448 -06050481 [3] 069917981 -08524551 [4] 028213787 -08146816 [5] 098405598 -11440813 [6] 185911887 -08203652 [7] 010843056 -10123789 [8] 083827953 -07594760 [9] -016373562 -09087116 [10] 088298748 -09767741 [11] 005280917 -07525407

gt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370

Plot3d(test_xy) Plot3d(xy)

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)

Подготовка к обработке

starting installationstep1installpackages(devtools)library(devtools)install_github(repo = mnist username = xrobin ref = master)library(mnist)

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
  • Аппроксимация линейными многообразиями (подпространствами)
  • Slide 30
  • Алгоритм
  • princomp(formula data = NULL subset naaction )
  • Principal Component Analysis (PCA)
  • Линейный дискриминантный анализ (Linear Discriminant Analysis -
  • Решение
  • lda(x grouping prior = proportions tol = 10e-4 method
  • Slide 37
  • Linear Discriminant Analysis (LDA)
  • Сравнение PCA и LDA
  • Метод опорных векторов (Support Vector Machines - SVM)
  • Идея алгоритма
  • Иллюстрация на простейшем примере
  • Линейная неразделимость и использование ядер
  • Иллюстрация использования ядра для отображения 2D -gt 3D
  • svm((formula data = NULL subset naaction = naomit sc
  • Support Vector Machines
  • Глубокое обучение (Deep Learning)
  • laquoВ 1997 году Deep Blue обыграл в шахматы Каспарова В 2011 Wats
  • Распознавание основано на feature detection и последующем раз
  • Распознавание рукописных цифр
  • Еще пример посложнее
  • Использование нейронной сети с обучением
  • Сверхвысокая размерность при работе с первичным представлением
  • Пиксельное кодирование
  • Принцип иерархии понятий ndash основа deep learning
  • Разреженное (sparse) кодирование
  • Словарь для лиц
  • Slide 58
  • Выделение объектов заданного класса
  • Основные архитектуры Deep Learning
  • Задача классификации распознавания и подобные являются задачей
  • Фактор - графы
  • Slide 63
  • Slide 64
  • Подход разреженного кодирования
  • Обобщенная архитектура
  • Slide 67
  • Slide 68
  • Slide 69
  • В действительности работают любые архитектуры построения функц
  • Machine Learning with Torch7 (httpcodecogbitscomwikidoku
  • Torch 7 является расширением Lua
  • Slide 73
  • Slide 74
  • Сверточные (convolution) нейронные сети
  • Свертка и архитектура 4-х уровневой сверточной сети
  • Функциональная структура
  • Примеры успешного применения сверточных сетей
  • Диагностика эпилепсии по ЭЭГ
  • Реализация сверточной сетью
  • Одна из самых больших сверточных сетей
  • Пример тэгирования
  • Пример поиска похожих по изображению
  • Пример поиска в коллекции изображений по текстовому запросу
  • Пример laquoоблачногоraquo классификатора изображений
  • Slide 86
  • Самообучающиеся нейронные сети на основе минимизации функции эн
  • RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцман
  • Алгоритм обучения Contrastive Divergence (CD)
  • Основные уравнения адаптации
  • Алгоритм Хинтона - Contrastive Divergence (CD-k)
  • darch Package for deep architectures and Restricted-Bolzmann-
  • Связь плотности вероятности и энергии
  • Задача обучения с точки минимизации энергии сети
  • Интуитивные соображения
  • Slide 96
  • Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decom
  • Sparse linear reconstruction
  • Автоэнкодер (auto encoder)
  • Архитекттура ICA моделей
  • Итеративные алгоритмы с оптимальным разреженным кодированием 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)
Page 40: !Predictive analytics part_2

Метод опорных векторов (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)

(m lt- cm(train$class predict(s)))1 - sum(diag(m)) sum(m)

(m lt- cm(test$class predict(s test[12])))1 - sum(diag(m)) sum(m)

Глубокое обучение (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) матрицы Якобиана

ቈ120597119865119894ሺ119883119894minus1119882119894ሻ120597119882119894 119896119897 = 120597[119865119894(119883119894minus1119882119894)]119896120597[119882119894]119897

Сводится к рекуррентному соотношению для вычисления градиента 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

Сверточная (convolution) нейронная сеть

1 -- parameters 2 nstates = 16256128 3 fanin = 14 4 filtsize = 5 5 poolsize = 2 6 normkernel = imagegaussian1D(7) 7 8 -- Container 9 model = nnSequential()1011 -- stage 1 filter bank -gt squashing -gt L2 pooling -gt normalization12 modeladd(nnSpatialConvolutionMap(nntablesrandom(nfeats nstates[1] fanin[1]) filtsize filtsize))13 modeladd(nnTanh())14 modeladd(nnSpatialLPPooling(nstates[1]2poolsizepoolsizepoolsizepoolsize))15 modeladd(nnSpatialSubtractiveNormalization(16 normkernel))1617 -- stage 2 filter bank -gt squashing -gt L2 pooling -gt normalization18 modeladd(nnSpatialConvolutionMap(nntablesrandom(nstates[1] nstates[2] fanin[2]) filtsize filtsize))19 modeladd(nnTanh())20 modeladd(nnSpatialLPPooling(nstates[2]2poolsizepoolsizepoolsizepoolsize))21 modeladd(nnSpatialSubtractiveNormalization(nstates[2] normkernel))2223 -- stage 3 standard 2-layer neural network24 modeladd(nnReshape(nstates[2]filtsizefiltsize))25 modeladd(nnLinear(nstates[2]filtsizefiltsize nstates[3]))26 modeladd(nnTanh())27 modeladd(nnLinear(nstates[3] noutputs))

Код программы на Torch 7

Сверточные (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

Sparse linear reconstruction

bull Energy=reconstruction_error+code_prediction_error+code_sparsity

Автоэнкодер (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

bull saednntrain(x y hidden = c(1) activationfun = sigm learningrate = 08 momentum = 05 learningrate_scale = 1 output = sigm sae_output = linear numepochs = 3 batchsize = 100 hidden_dropout = 0 visible_dropout = 0)

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

Архитектура сети SAE

Архитектура с 5Х4 hidden 3 outs

Example

Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02)) Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1)) x lt- matrix(c(Var1 Var2) nrow = 100 ncol = 2)y lt- c(rep(1 50) rep(0 50))

обучение сетиdnn lt- saednntrain(x y hidden = c(5 5))

Анализ обучающего набора данныхgt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370helliphelliphelliphelliphelliphelliphelliphellip

gt y [1] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 [54] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

plot3d(xy)

Параметры SAE сети

gt dnn$input_dim[1] 2$output_dim[1] 1$hidden[1] 5 5$size[1] 2 5 5 1$activationfun[1] sigm$learningrate[1] 08

$momentum[1] 05$learningrate_scale[1] 1$hidden_dropout[1] 0$visible_dropout[1] 0$output[1] sigm$W

Коэффициенты связей

$W$W[[1]] [1] [2][1] -014355854 02471840[2] 011378030 -00715094[3] -004343738 03667468[4] 012756946 -01303379[5] -003445704 02293772

$W[[2]] [1] [2] [3] [4] [5][1] 00420191661 -0023073732 -008762756 0035575714 -0063000016[2] 00072771988 -0131204147 -010591421 0018221305 -0025539769[3] -01071896826 -0019479685 -009892573 -0012976429 -0111886901[4] -00009477304 -0023137518 -002147218 0007969452 -0118696306[5] 00045016013 0001885546 -010170954 -0140312396 -0003970102

$W[[3]] [1] [2] [3] [4] [5][1] 01027992 -007288099 003051227 -001731639 0009518049

$vW$vW[[1]] [1] [2][1] -8335203e-06 1368580e-05[2] -6530183e-05 1135070e-04[3] 2544302e-05 -3947111e-05[4] -5512835e-06 9541682e-06[5] 3822854e-05 -6281762e-05

$vW[[2]] [1] [2] [3] [4] [5][1] 4172450e-04 -2554411e-04 4896670e-04 -3526093e-04 3041932e-04[2] -3210759e-04 1978412e-04 -3769148e-04 2727933e-04 -2338477e-04[3] 1058770e-04 -6705336e-05 1244419e-04 -9201508e-05 7678296e-05[4] -8894178e-05 5481668e-05 -1044110e-04 7558269e-05 -6477571e-05[5] 2676520e-05 -1622289e-05 3139684e-05 -2243174e-05 1954349e-05

$vW[[3]] [1] [2] [3] [4] [5][1] -0002603034 -0002398256 -0003274074 -0002542478 -000209672

Предсказание обученной сетью

predict by dnntest_Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02))test_Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1))test_x lt- matrix(c(test_Var1 test_Var2) nrow = 100 ncol = 2)nntest(dnn test_x y)

[1] 025 Value error rate

Сравнение обучающей и тестовой выборки

gttest_x [1] [2] [1] 091887443 -08940890 [2] 115219448 -06050481 [3] 069917981 -08524551 [4] 028213787 -08146816 [5] 098405598 -11440813 [6] 185911887 -08203652 [7] 010843056 -10123789 [8] 083827953 -07594760 [9] -016373562 -09087116 [10] 088298748 -09767741 [11] 005280917 -07525407

gt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370

Plot3d(test_xy) Plot3d(xy)

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)

Подготовка к обработке

starting installationstep1installpackages(devtools)library(devtools)install_github(repo = mnist username = xrobin ref = master)library(mnist)

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
  • Аппроксимация линейными многообразиями (подпространствами)
  • Slide 30
  • Алгоритм
  • princomp(formula data = NULL subset naaction )
  • Principal Component Analysis (PCA)
  • Линейный дискриминантный анализ (Linear Discriminant Analysis -
  • Решение
  • lda(x grouping prior = proportions tol = 10e-4 method
  • Slide 37
  • Linear Discriminant Analysis (LDA)
  • Сравнение PCA и LDA
  • Метод опорных векторов (Support Vector Machines - SVM)
  • Идея алгоритма
  • Иллюстрация на простейшем примере
  • Линейная неразделимость и использование ядер
  • Иллюстрация использования ядра для отображения 2D -gt 3D
  • svm((formula data = NULL subset naaction = naomit sc
  • Support Vector Machines
  • Глубокое обучение (Deep Learning)
  • laquoВ 1997 году Deep Blue обыграл в шахматы Каспарова В 2011 Wats
  • Распознавание основано на feature detection и последующем раз
  • Распознавание рукописных цифр
  • Еще пример посложнее
  • Использование нейронной сети с обучением
  • Сверхвысокая размерность при работе с первичным представлением
  • Пиксельное кодирование
  • Принцип иерархии понятий ndash основа deep learning
  • Разреженное (sparse) кодирование
  • Словарь для лиц
  • Slide 58
  • Выделение объектов заданного класса
  • Основные архитектуры Deep Learning
  • Задача классификации распознавания и подобные являются задачей
  • Фактор - графы
  • Slide 63
  • Slide 64
  • Подход разреженного кодирования
  • Обобщенная архитектура
  • Slide 67
  • Slide 68
  • Slide 69
  • В действительности работают любые архитектуры построения функц
  • Machine Learning with Torch7 (httpcodecogbitscomwikidoku
  • Torch 7 является расширением Lua
  • Slide 73
  • Slide 74
  • Сверточные (convolution) нейронные сети
  • Свертка и архитектура 4-х уровневой сверточной сети
  • Функциональная структура
  • Примеры успешного применения сверточных сетей
  • Диагностика эпилепсии по ЭЭГ
  • Реализация сверточной сетью
  • Одна из самых больших сверточных сетей
  • Пример тэгирования
  • Пример поиска похожих по изображению
  • Пример поиска в коллекции изображений по текстовому запросу
  • Пример laquoоблачногоraquo классификатора изображений
  • Slide 86
  • Самообучающиеся нейронные сети на основе минимизации функции эн
  • RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцман
  • Алгоритм обучения Contrastive Divergence (CD)
  • Основные уравнения адаптации
  • Алгоритм Хинтона - Contrastive Divergence (CD-k)
  • darch Package for deep architectures and Restricted-Bolzmann-
  • Связь плотности вероятности и энергии
  • Задача обучения с точки минимизации энергии сети
  • Интуитивные соображения
  • Slide 96
  • Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decom
  • Sparse linear reconstruction
  • Автоэнкодер (auto encoder)
  • Архитекттура ICA моделей
  • Итеративные алгоритмы с оптимальным разреженным кодированием 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)
Page 41: !Predictive analytics part_2

Идея алгоритма

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)

(m lt- cm(train$class predict(s)))1 - sum(diag(m)) sum(m)

(m lt- cm(test$class predict(s test[12])))1 - sum(diag(m)) sum(m)

Глубокое обучение (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) матрицы Якобиана

ቈ120597119865119894ሺ119883119894minus1119882119894ሻ120597119882119894 119896119897 = 120597[119865119894(119883119894minus1119882119894)]119896120597[119882119894]119897

Сводится к рекуррентному соотношению для вычисления градиента 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

Сверточная (convolution) нейронная сеть

1 -- parameters 2 nstates = 16256128 3 fanin = 14 4 filtsize = 5 5 poolsize = 2 6 normkernel = imagegaussian1D(7) 7 8 -- Container 9 model = nnSequential()1011 -- stage 1 filter bank -gt squashing -gt L2 pooling -gt normalization12 modeladd(nnSpatialConvolutionMap(nntablesrandom(nfeats nstates[1] fanin[1]) filtsize filtsize))13 modeladd(nnTanh())14 modeladd(nnSpatialLPPooling(nstates[1]2poolsizepoolsizepoolsizepoolsize))15 modeladd(nnSpatialSubtractiveNormalization(16 normkernel))1617 -- stage 2 filter bank -gt squashing -gt L2 pooling -gt normalization18 modeladd(nnSpatialConvolutionMap(nntablesrandom(nstates[1] nstates[2] fanin[2]) filtsize filtsize))19 modeladd(nnTanh())20 modeladd(nnSpatialLPPooling(nstates[2]2poolsizepoolsizepoolsizepoolsize))21 modeladd(nnSpatialSubtractiveNormalization(nstates[2] normkernel))2223 -- stage 3 standard 2-layer neural network24 modeladd(nnReshape(nstates[2]filtsizefiltsize))25 modeladd(nnLinear(nstates[2]filtsizefiltsize nstates[3]))26 modeladd(nnTanh())27 modeladd(nnLinear(nstates[3] noutputs))

Код программы на Torch 7

Сверточные (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

Sparse linear reconstruction

bull Energy=reconstruction_error+code_prediction_error+code_sparsity

Автоэнкодер (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

bull saednntrain(x y hidden = c(1) activationfun = sigm learningrate = 08 momentum = 05 learningrate_scale = 1 output = sigm sae_output = linear numepochs = 3 batchsize = 100 hidden_dropout = 0 visible_dropout = 0)

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

Архитектура сети SAE

Архитектура с 5Х4 hidden 3 outs

Example

Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02)) Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1)) x lt- matrix(c(Var1 Var2) nrow = 100 ncol = 2)y lt- c(rep(1 50) rep(0 50))

обучение сетиdnn lt- saednntrain(x y hidden = c(5 5))

Анализ обучающего набора данныхgt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370helliphelliphelliphelliphelliphelliphelliphellip

gt y [1] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 [54] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

plot3d(xy)

Параметры SAE сети

gt dnn$input_dim[1] 2$output_dim[1] 1$hidden[1] 5 5$size[1] 2 5 5 1$activationfun[1] sigm$learningrate[1] 08

$momentum[1] 05$learningrate_scale[1] 1$hidden_dropout[1] 0$visible_dropout[1] 0$output[1] sigm$W

Коэффициенты связей

$W$W[[1]] [1] [2][1] -014355854 02471840[2] 011378030 -00715094[3] -004343738 03667468[4] 012756946 -01303379[5] -003445704 02293772

$W[[2]] [1] [2] [3] [4] [5][1] 00420191661 -0023073732 -008762756 0035575714 -0063000016[2] 00072771988 -0131204147 -010591421 0018221305 -0025539769[3] -01071896826 -0019479685 -009892573 -0012976429 -0111886901[4] -00009477304 -0023137518 -002147218 0007969452 -0118696306[5] 00045016013 0001885546 -010170954 -0140312396 -0003970102

$W[[3]] [1] [2] [3] [4] [5][1] 01027992 -007288099 003051227 -001731639 0009518049

$vW$vW[[1]] [1] [2][1] -8335203e-06 1368580e-05[2] -6530183e-05 1135070e-04[3] 2544302e-05 -3947111e-05[4] -5512835e-06 9541682e-06[5] 3822854e-05 -6281762e-05

$vW[[2]] [1] [2] [3] [4] [5][1] 4172450e-04 -2554411e-04 4896670e-04 -3526093e-04 3041932e-04[2] -3210759e-04 1978412e-04 -3769148e-04 2727933e-04 -2338477e-04[3] 1058770e-04 -6705336e-05 1244419e-04 -9201508e-05 7678296e-05[4] -8894178e-05 5481668e-05 -1044110e-04 7558269e-05 -6477571e-05[5] 2676520e-05 -1622289e-05 3139684e-05 -2243174e-05 1954349e-05

$vW[[3]] [1] [2] [3] [4] [5][1] -0002603034 -0002398256 -0003274074 -0002542478 -000209672

Предсказание обученной сетью

predict by dnntest_Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02))test_Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1))test_x lt- matrix(c(test_Var1 test_Var2) nrow = 100 ncol = 2)nntest(dnn test_x y)

[1] 025 Value error rate

Сравнение обучающей и тестовой выборки

gttest_x [1] [2] [1] 091887443 -08940890 [2] 115219448 -06050481 [3] 069917981 -08524551 [4] 028213787 -08146816 [5] 098405598 -11440813 [6] 185911887 -08203652 [7] 010843056 -10123789 [8] 083827953 -07594760 [9] -016373562 -09087116 [10] 088298748 -09767741 [11] 005280917 -07525407

gt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370

Plot3d(test_xy) Plot3d(xy)

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)

Подготовка к обработке

starting installationstep1installpackages(devtools)library(devtools)install_github(repo = mnist username = xrobin ref = master)library(mnist)

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
  • Аппроксимация линейными многообразиями (подпространствами)
  • Slide 30
  • Алгоритм
  • princomp(formula data = NULL subset naaction )
  • Principal Component Analysis (PCA)
  • Линейный дискриминантный анализ (Linear Discriminant Analysis -
  • Решение
  • lda(x grouping prior = proportions tol = 10e-4 method
  • Slide 37
  • Linear Discriminant Analysis (LDA)
  • Сравнение PCA и LDA
  • Метод опорных векторов (Support Vector Machines - SVM)
  • Идея алгоритма
  • Иллюстрация на простейшем примере
  • Линейная неразделимость и использование ядер
  • Иллюстрация использования ядра для отображения 2D -gt 3D
  • svm((formula data = NULL subset naaction = naomit sc
  • Support Vector Machines
  • Глубокое обучение (Deep Learning)
  • laquoВ 1997 году Deep Blue обыграл в шахматы Каспарова В 2011 Wats
  • Распознавание основано на feature detection и последующем раз
  • Распознавание рукописных цифр
  • Еще пример посложнее
  • Использование нейронной сети с обучением
  • Сверхвысокая размерность при работе с первичным представлением
  • Пиксельное кодирование
  • Принцип иерархии понятий ndash основа deep learning
  • Разреженное (sparse) кодирование
  • Словарь для лиц
  • Slide 58
  • Выделение объектов заданного класса
  • Основные архитектуры Deep Learning
  • Задача классификации распознавания и подобные являются задачей
  • Фактор - графы
  • Slide 63
  • Slide 64
  • Подход разреженного кодирования
  • Обобщенная архитектура
  • Slide 67
  • Slide 68
  • Slide 69
  • В действительности работают любые архитектуры построения функц
  • Machine Learning with Torch7 (httpcodecogbitscomwikidoku
  • Torch 7 является расширением Lua
  • Slide 73
  • Slide 74
  • Сверточные (convolution) нейронные сети
  • Свертка и архитектура 4-х уровневой сверточной сети
  • Функциональная структура
  • Примеры успешного применения сверточных сетей
  • Диагностика эпилепсии по ЭЭГ
  • Реализация сверточной сетью
  • Одна из самых больших сверточных сетей
  • Пример тэгирования
  • Пример поиска похожих по изображению
  • Пример поиска в коллекции изображений по текстовому запросу
  • Пример laquoоблачногоraquo классификатора изображений
  • Slide 86
  • Самообучающиеся нейронные сети на основе минимизации функции эн
  • RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцман
  • Алгоритм обучения Contrastive Divergence (CD)
  • Основные уравнения адаптации
  • Алгоритм Хинтона - Contrastive Divergence (CD-k)
  • darch Package for deep architectures and Restricted-Bolzmann-
  • Связь плотности вероятности и энергии
  • Задача обучения с точки минимизации энергии сети
  • Интуитивные соображения
  • Slide 96
  • Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decom
  • Sparse linear reconstruction
  • Автоэнкодер (auto encoder)
  • Архитекттура ICA моделей
  • Итеративные алгоритмы с оптимальным разреженным кодированием 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)
Page 42: !Predictive analytics part_2

Иллюстрация на простейшем примере

>

Производится вложение обучающей выборки в пространство более высокой размерности Х с помощью нелинейной функции так чтобы обеспечит линейную разделимость в Х

Разделяющая функция тогда имеет вид

Функция называется ядром

Полиномиальное ядро

Радиальная базисная функция

Сигмоид

Линейная неразделимость и использование ядер

Иллюстрация использования ядра для отображения 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)

(m lt- cm(train$class predict(s)))1 - sum(diag(m)) sum(m)

(m lt- cm(test$class predict(s test[12])))1 - sum(diag(m)) sum(m)

Глубокое обучение (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) матрицы Якобиана

ቈ120597119865119894ሺ119883119894minus1119882119894ሻ120597119882119894 119896119897 = 120597[119865119894(119883119894minus1119882119894)]119896120597[119882119894]119897

Сводится к рекуррентному соотношению для вычисления градиента 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

Сверточная (convolution) нейронная сеть

1 -- parameters 2 nstates = 16256128 3 fanin = 14 4 filtsize = 5 5 poolsize = 2 6 normkernel = imagegaussian1D(7) 7 8 -- Container 9 model = nnSequential()1011 -- stage 1 filter bank -gt squashing -gt L2 pooling -gt normalization12 modeladd(nnSpatialConvolutionMap(nntablesrandom(nfeats nstates[1] fanin[1]) filtsize filtsize))13 modeladd(nnTanh())14 modeladd(nnSpatialLPPooling(nstates[1]2poolsizepoolsizepoolsizepoolsize))15 modeladd(nnSpatialSubtractiveNormalization(16 normkernel))1617 -- stage 2 filter bank -gt squashing -gt L2 pooling -gt normalization18 modeladd(nnSpatialConvolutionMap(nntablesrandom(nstates[1] nstates[2] fanin[2]) filtsize filtsize))19 modeladd(nnTanh())20 modeladd(nnSpatialLPPooling(nstates[2]2poolsizepoolsizepoolsizepoolsize))21 modeladd(nnSpatialSubtractiveNormalization(nstates[2] normkernel))2223 -- stage 3 standard 2-layer neural network24 modeladd(nnReshape(nstates[2]filtsizefiltsize))25 modeladd(nnLinear(nstates[2]filtsizefiltsize nstates[3]))26 modeladd(nnTanh())27 modeladd(nnLinear(nstates[3] noutputs))

Код программы на Torch 7

Сверточные (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

Sparse linear reconstruction

bull Energy=reconstruction_error+code_prediction_error+code_sparsity

Автоэнкодер (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

bull saednntrain(x y hidden = c(1) activationfun = sigm learningrate = 08 momentum = 05 learningrate_scale = 1 output = sigm sae_output = linear numepochs = 3 batchsize = 100 hidden_dropout = 0 visible_dropout = 0)

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

Архитектура сети SAE

Архитектура с 5Х4 hidden 3 outs

Example

Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02)) Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1)) x lt- matrix(c(Var1 Var2) nrow = 100 ncol = 2)y lt- c(rep(1 50) rep(0 50))

обучение сетиdnn lt- saednntrain(x y hidden = c(5 5))

Анализ обучающего набора данныхgt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370helliphelliphelliphelliphelliphelliphelliphellip

gt y [1] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 [54] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

plot3d(xy)

Параметры SAE сети

gt dnn$input_dim[1] 2$output_dim[1] 1$hidden[1] 5 5$size[1] 2 5 5 1$activationfun[1] sigm$learningrate[1] 08

$momentum[1] 05$learningrate_scale[1] 1$hidden_dropout[1] 0$visible_dropout[1] 0$output[1] sigm$W

Коэффициенты связей

$W$W[[1]] [1] [2][1] -014355854 02471840[2] 011378030 -00715094[3] -004343738 03667468[4] 012756946 -01303379[5] -003445704 02293772

$W[[2]] [1] [2] [3] [4] [5][1] 00420191661 -0023073732 -008762756 0035575714 -0063000016[2] 00072771988 -0131204147 -010591421 0018221305 -0025539769[3] -01071896826 -0019479685 -009892573 -0012976429 -0111886901[4] -00009477304 -0023137518 -002147218 0007969452 -0118696306[5] 00045016013 0001885546 -010170954 -0140312396 -0003970102

$W[[3]] [1] [2] [3] [4] [5][1] 01027992 -007288099 003051227 -001731639 0009518049

$vW$vW[[1]] [1] [2][1] -8335203e-06 1368580e-05[2] -6530183e-05 1135070e-04[3] 2544302e-05 -3947111e-05[4] -5512835e-06 9541682e-06[5] 3822854e-05 -6281762e-05

$vW[[2]] [1] [2] [3] [4] [5][1] 4172450e-04 -2554411e-04 4896670e-04 -3526093e-04 3041932e-04[2] -3210759e-04 1978412e-04 -3769148e-04 2727933e-04 -2338477e-04[3] 1058770e-04 -6705336e-05 1244419e-04 -9201508e-05 7678296e-05[4] -8894178e-05 5481668e-05 -1044110e-04 7558269e-05 -6477571e-05[5] 2676520e-05 -1622289e-05 3139684e-05 -2243174e-05 1954349e-05

$vW[[3]] [1] [2] [3] [4] [5][1] -0002603034 -0002398256 -0003274074 -0002542478 -000209672

Предсказание обученной сетью

predict by dnntest_Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02))test_Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1))test_x lt- matrix(c(test_Var1 test_Var2) nrow = 100 ncol = 2)nntest(dnn test_x y)

[1] 025 Value error rate

Сравнение обучающей и тестовой выборки

gttest_x [1] [2] [1] 091887443 -08940890 [2] 115219448 -06050481 [3] 069917981 -08524551 [4] 028213787 -08146816 [5] 098405598 -11440813 [6] 185911887 -08203652 [7] 010843056 -10123789 [8] 083827953 -07594760 [9] -016373562 -09087116 [10] 088298748 -09767741 [11] 005280917 -07525407

gt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370

Plot3d(test_xy) Plot3d(xy)

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)

Подготовка к обработке

starting installationstep1installpackages(devtools)library(devtools)install_github(repo = mnist username = xrobin ref = master)library(mnist)

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
  • Аппроксимация линейными многообразиями (подпространствами)
  • Slide 30
  • Алгоритм
  • princomp(formula data = NULL subset naaction )
  • Principal Component Analysis (PCA)
  • Линейный дискриминантный анализ (Linear Discriminant Analysis -
  • Решение
  • lda(x grouping prior = proportions tol = 10e-4 method
  • Slide 37
  • Linear Discriminant Analysis (LDA)
  • Сравнение PCA и LDA
  • Метод опорных векторов (Support Vector Machines - SVM)
  • Идея алгоритма
  • Иллюстрация на простейшем примере
  • Линейная неразделимость и использование ядер
  • Иллюстрация использования ядра для отображения 2D -gt 3D
  • svm((formula data = NULL subset naaction = naomit sc
  • Support Vector Machines
  • Глубокое обучение (Deep Learning)
  • laquoВ 1997 году Deep Blue обыграл в шахматы Каспарова В 2011 Wats
  • Распознавание основано на feature detection и последующем раз
  • Распознавание рукописных цифр
  • Еще пример посложнее
  • Использование нейронной сети с обучением
  • Сверхвысокая размерность при работе с первичным представлением
  • Пиксельное кодирование
  • Принцип иерархии понятий ndash основа deep learning
  • Разреженное (sparse) кодирование
  • Словарь для лиц
  • Slide 58
  • Выделение объектов заданного класса
  • Основные архитектуры Deep Learning
  • Задача классификации распознавания и подобные являются задачей
  • Фактор - графы
  • Slide 63
  • Slide 64
  • Подход разреженного кодирования
  • Обобщенная архитектура
  • Slide 67
  • Slide 68
  • Slide 69
  • В действительности работают любые архитектуры построения функц
  • Machine Learning with Torch7 (httpcodecogbitscomwikidoku
  • Torch 7 является расширением Lua
  • Slide 73
  • Slide 74
  • Сверточные (convolution) нейронные сети
  • Свертка и архитектура 4-х уровневой сверточной сети
  • Функциональная структура
  • Примеры успешного применения сверточных сетей
  • Диагностика эпилепсии по ЭЭГ
  • Реализация сверточной сетью
  • Одна из самых больших сверточных сетей
  • Пример тэгирования
  • Пример поиска похожих по изображению
  • Пример поиска в коллекции изображений по текстовому запросу
  • Пример laquoоблачногоraquo классификатора изображений
  • Slide 86
  • Самообучающиеся нейронные сети на основе минимизации функции эн
  • RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцман
  • Алгоритм обучения Contrastive Divergence (CD)
  • Основные уравнения адаптации
  • Алгоритм Хинтона - Contrastive Divergence (CD-k)
  • darch Package for deep architectures and Restricted-Bolzmann-
  • Связь плотности вероятности и энергии
  • Задача обучения с точки минимизации энергии сети
  • Интуитивные соображения
  • Slide 96
  • Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decom
  • Sparse linear reconstruction
  • Автоэнкодер (auto encoder)
  • Архитекттура ICA моделей
  • Итеративные алгоритмы с оптимальным разреженным кодированием 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)
Page 43: !Predictive analytics part_2

Производится вложение обучающей выборки в пространство более высокой размерности Х с помощью нелинейной функции так чтобы обеспечит линейную разделимость в Х

Разделяющая функция тогда имеет вид

Функция называется ядром

Полиномиальное ядро

Радиальная базисная функция

Сигмоид

Линейная неразделимость и использование ядер

Иллюстрация использования ядра для отображения 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)

(m lt- cm(train$class predict(s)))1 - sum(diag(m)) sum(m)

(m lt- cm(test$class predict(s test[12])))1 - sum(diag(m)) sum(m)

Глубокое обучение (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) матрицы Якобиана

ቈ120597119865119894ሺ119883119894minus1119882119894ሻ120597119882119894 119896119897 = 120597[119865119894(119883119894minus1119882119894)]119896120597[119882119894]119897

Сводится к рекуррентному соотношению для вычисления градиента 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

Сверточная (convolution) нейронная сеть

1 -- parameters 2 nstates = 16256128 3 fanin = 14 4 filtsize = 5 5 poolsize = 2 6 normkernel = imagegaussian1D(7) 7 8 -- Container 9 model = nnSequential()1011 -- stage 1 filter bank -gt squashing -gt L2 pooling -gt normalization12 modeladd(nnSpatialConvolutionMap(nntablesrandom(nfeats nstates[1] fanin[1]) filtsize filtsize))13 modeladd(nnTanh())14 modeladd(nnSpatialLPPooling(nstates[1]2poolsizepoolsizepoolsizepoolsize))15 modeladd(nnSpatialSubtractiveNormalization(16 normkernel))1617 -- stage 2 filter bank -gt squashing -gt L2 pooling -gt normalization18 modeladd(nnSpatialConvolutionMap(nntablesrandom(nstates[1] nstates[2] fanin[2]) filtsize filtsize))19 modeladd(nnTanh())20 modeladd(nnSpatialLPPooling(nstates[2]2poolsizepoolsizepoolsizepoolsize))21 modeladd(nnSpatialSubtractiveNormalization(nstates[2] normkernel))2223 -- stage 3 standard 2-layer neural network24 modeladd(nnReshape(nstates[2]filtsizefiltsize))25 modeladd(nnLinear(nstates[2]filtsizefiltsize nstates[3]))26 modeladd(nnTanh())27 modeladd(nnLinear(nstates[3] noutputs))

Код программы на Torch 7

Сверточные (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

Sparse linear reconstruction

bull Energy=reconstruction_error+code_prediction_error+code_sparsity

Автоэнкодер (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

bull saednntrain(x y hidden = c(1) activationfun = sigm learningrate = 08 momentum = 05 learningrate_scale = 1 output = sigm sae_output = linear numepochs = 3 batchsize = 100 hidden_dropout = 0 visible_dropout = 0)

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

Архитектура сети SAE

Архитектура с 5Х4 hidden 3 outs

Example

Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02)) Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1)) x lt- matrix(c(Var1 Var2) nrow = 100 ncol = 2)y lt- c(rep(1 50) rep(0 50))

обучение сетиdnn lt- saednntrain(x y hidden = c(5 5))

Анализ обучающего набора данныхgt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370helliphelliphelliphelliphelliphelliphelliphellip

gt y [1] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 [54] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

plot3d(xy)

Параметры SAE сети

gt dnn$input_dim[1] 2$output_dim[1] 1$hidden[1] 5 5$size[1] 2 5 5 1$activationfun[1] sigm$learningrate[1] 08

$momentum[1] 05$learningrate_scale[1] 1$hidden_dropout[1] 0$visible_dropout[1] 0$output[1] sigm$W

Коэффициенты связей

$W$W[[1]] [1] [2][1] -014355854 02471840[2] 011378030 -00715094[3] -004343738 03667468[4] 012756946 -01303379[5] -003445704 02293772

$W[[2]] [1] [2] [3] [4] [5][1] 00420191661 -0023073732 -008762756 0035575714 -0063000016[2] 00072771988 -0131204147 -010591421 0018221305 -0025539769[3] -01071896826 -0019479685 -009892573 -0012976429 -0111886901[4] -00009477304 -0023137518 -002147218 0007969452 -0118696306[5] 00045016013 0001885546 -010170954 -0140312396 -0003970102

$W[[3]] [1] [2] [3] [4] [5][1] 01027992 -007288099 003051227 -001731639 0009518049

$vW$vW[[1]] [1] [2][1] -8335203e-06 1368580e-05[2] -6530183e-05 1135070e-04[3] 2544302e-05 -3947111e-05[4] -5512835e-06 9541682e-06[5] 3822854e-05 -6281762e-05

$vW[[2]] [1] [2] [3] [4] [5][1] 4172450e-04 -2554411e-04 4896670e-04 -3526093e-04 3041932e-04[2] -3210759e-04 1978412e-04 -3769148e-04 2727933e-04 -2338477e-04[3] 1058770e-04 -6705336e-05 1244419e-04 -9201508e-05 7678296e-05[4] -8894178e-05 5481668e-05 -1044110e-04 7558269e-05 -6477571e-05[5] 2676520e-05 -1622289e-05 3139684e-05 -2243174e-05 1954349e-05

$vW[[3]] [1] [2] [3] [4] [5][1] -0002603034 -0002398256 -0003274074 -0002542478 -000209672

Предсказание обученной сетью

predict by dnntest_Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02))test_Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1))test_x lt- matrix(c(test_Var1 test_Var2) nrow = 100 ncol = 2)nntest(dnn test_x y)

[1] 025 Value error rate

Сравнение обучающей и тестовой выборки

gttest_x [1] [2] [1] 091887443 -08940890 [2] 115219448 -06050481 [3] 069917981 -08524551 [4] 028213787 -08146816 [5] 098405598 -11440813 [6] 185911887 -08203652 [7] 010843056 -10123789 [8] 083827953 -07594760 [9] -016373562 -09087116 [10] 088298748 -09767741 [11] 005280917 -07525407

gt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370

Plot3d(test_xy) Plot3d(xy)

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)

Подготовка к обработке

starting installationstep1installpackages(devtools)library(devtools)install_github(repo = mnist username = xrobin ref = master)library(mnist)

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
  • Аппроксимация линейными многообразиями (подпространствами)
  • Slide 30
  • Алгоритм
  • princomp(formula data = NULL subset naaction )
  • Principal Component Analysis (PCA)
  • Линейный дискриминантный анализ (Linear Discriminant Analysis -
  • Решение
  • lda(x grouping prior = proportions tol = 10e-4 method
  • Slide 37
  • Linear Discriminant Analysis (LDA)
  • Сравнение PCA и LDA
  • Метод опорных векторов (Support Vector Machines - SVM)
  • Идея алгоритма
  • Иллюстрация на простейшем примере
  • Линейная неразделимость и использование ядер
  • Иллюстрация использования ядра для отображения 2D -gt 3D
  • svm((formula data = NULL subset naaction = naomit sc
  • Support Vector Machines
  • Глубокое обучение (Deep Learning)
  • laquoВ 1997 году Deep Blue обыграл в шахматы Каспарова В 2011 Wats
  • Распознавание основано на feature detection и последующем раз
  • Распознавание рукописных цифр
  • Еще пример посложнее
  • Использование нейронной сети с обучением
  • Сверхвысокая размерность при работе с первичным представлением
  • Пиксельное кодирование
  • Принцип иерархии понятий ndash основа deep learning
  • Разреженное (sparse) кодирование
  • Словарь для лиц
  • Slide 58
  • Выделение объектов заданного класса
  • Основные архитектуры Deep Learning
  • Задача классификации распознавания и подобные являются задачей
  • Фактор - графы
  • Slide 63
  • Slide 64
  • Подход разреженного кодирования
  • Обобщенная архитектура
  • Slide 67
  • Slide 68
  • Slide 69
  • В действительности работают любые архитектуры построения функц
  • Machine Learning with Torch7 (httpcodecogbitscomwikidoku
  • Torch 7 является расширением Lua
  • Slide 73
  • Slide 74
  • Сверточные (convolution) нейронные сети
  • Свертка и архитектура 4-х уровневой сверточной сети
  • Функциональная структура
  • Примеры успешного применения сверточных сетей
  • Диагностика эпилепсии по ЭЭГ
  • Реализация сверточной сетью
  • Одна из самых больших сверточных сетей
  • Пример тэгирования
  • Пример поиска похожих по изображению
  • Пример поиска в коллекции изображений по текстовому запросу
  • Пример laquoоблачногоraquo классификатора изображений
  • Slide 86
  • Самообучающиеся нейронные сети на основе минимизации функции эн
  • RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцман
  • Алгоритм обучения Contrastive Divergence (CD)
  • Основные уравнения адаптации
  • Алгоритм Хинтона - Contrastive Divergence (CD-k)
  • darch Package for deep architectures and Restricted-Bolzmann-
  • Связь плотности вероятности и энергии
  • Задача обучения с точки минимизации энергии сети
  • Интуитивные соображения
  • Slide 96
  • Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decom
  • Sparse linear reconstruction
  • Автоэнкодер (auto encoder)
  • Архитекттура ICA моделей
  • Итеративные алгоритмы с оптимальным разреженным кодированием 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)
Page 44: !Predictive analytics part_2

Иллюстрация использования ядра для отображения 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)

(m lt- cm(train$class predict(s)))1 - sum(diag(m)) sum(m)

(m lt- cm(test$class predict(s test[12])))1 - sum(diag(m)) sum(m)

Глубокое обучение (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) матрицы Якобиана

ቈ120597119865119894ሺ119883119894minus1119882119894ሻ120597119882119894 119896119897 = 120597[119865119894(119883119894minus1119882119894)]119896120597[119882119894]119897

Сводится к рекуррентному соотношению для вычисления градиента 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

Сверточная (convolution) нейронная сеть

1 -- parameters 2 nstates = 16256128 3 fanin = 14 4 filtsize = 5 5 poolsize = 2 6 normkernel = imagegaussian1D(7) 7 8 -- Container 9 model = nnSequential()1011 -- stage 1 filter bank -gt squashing -gt L2 pooling -gt normalization12 modeladd(nnSpatialConvolutionMap(nntablesrandom(nfeats nstates[1] fanin[1]) filtsize filtsize))13 modeladd(nnTanh())14 modeladd(nnSpatialLPPooling(nstates[1]2poolsizepoolsizepoolsizepoolsize))15 modeladd(nnSpatialSubtractiveNormalization(16 normkernel))1617 -- stage 2 filter bank -gt squashing -gt L2 pooling -gt normalization18 modeladd(nnSpatialConvolutionMap(nntablesrandom(nstates[1] nstates[2] fanin[2]) filtsize filtsize))19 modeladd(nnTanh())20 modeladd(nnSpatialLPPooling(nstates[2]2poolsizepoolsizepoolsizepoolsize))21 modeladd(nnSpatialSubtractiveNormalization(nstates[2] normkernel))2223 -- stage 3 standard 2-layer neural network24 modeladd(nnReshape(nstates[2]filtsizefiltsize))25 modeladd(nnLinear(nstates[2]filtsizefiltsize nstates[3]))26 modeladd(nnTanh())27 modeladd(nnLinear(nstates[3] noutputs))

Код программы на Torch 7

Сверточные (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

Sparse linear reconstruction

bull Energy=reconstruction_error+code_prediction_error+code_sparsity

Автоэнкодер (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

bull saednntrain(x y hidden = c(1) activationfun = sigm learningrate = 08 momentum = 05 learningrate_scale = 1 output = sigm sae_output = linear numepochs = 3 batchsize = 100 hidden_dropout = 0 visible_dropout = 0)

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

Архитектура сети SAE

Архитектура с 5Х4 hidden 3 outs

Example

Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02)) Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1)) x lt- matrix(c(Var1 Var2) nrow = 100 ncol = 2)y lt- c(rep(1 50) rep(0 50))

обучение сетиdnn lt- saednntrain(x y hidden = c(5 5))

Анализ обучающего набора данныхgt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370helliphelliphelliphelliphelliphelliphelliphellip

gt y [1] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 [54] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

plot3d(xy)

Параметры SAE сети

gt dnn$input_dim[1] 2$output_dim[1] 1$hidden[1] 5 5$size[1] 2 5 5 1$activationfun[1] sigm$learningrate[1] 08

$momentum[1] 05$learningrate_scale[1] 1$hidden_dropout[1] 0$visible_dropout[1] 0$output[1] sigm$W

Коэффициенты связей

$W$W[[1]] [1] [2][1] -014355854 02471840[2] 011378030 -00715094[3] -004343738 03667468[4] 012756946 -01303379[5] -003445704 02293772

$W[[2]] [1] [2] [3] [4] [5][1] 00420191661 -0023073732 -008762756 0035575714 -0063000016[2] 00072771988 -0131204147 -010591421 0018221305 -0025539769[3] -01071896826 -0019479685 -009892573 -0012976429 -0111886901[4] -00009477304 -0023137518 -002147218 0007969452 -0118696306[5] 00045016013 0001885546 -010170954 -0140312396 -0003970102

$W[[3]] [1] [2] [3] [4] [5][1] 01027992 -007288099 003051227 -001731639 0009518049

$vW$vW[[1]] [1] [2][1] -8335203e-06 1368580e-05[2] -6530183e-05 1135070e-04[3] 2544302e-05 -3947111e-05[4] -5512835e-06 9541682e-06[5] 3822854e-05 -6281762e-05

$vW[[2]] [1] [2] [3] [4] [5][1] 4172450e-04 -2554411e-04 4896670e-04 -3526093e-04 3041932e-04[2] -3210759e-04 1978412e-04 -3769148e-04 2727933e-04 -2338477e-04[3] 1058770e-04 -6705336e-05 1244419e-04 -9201508e-05 7678296e-05[4] -8894178e-05 5481668e-05 -1044110e-04 7558269e-05 -6477571e-05[5] 2676520e-05 -1622289e-05 3139684e-05 -2243174e-05 1954349e-05

$vW[[3]] [1] [2] [3] [4] [5][1] -0002603034 -0002398256 -0003274074 -0002542478 -000209672

Предсказание обученной сетью

predict by dnntest_Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02))test_Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1))test_x lt- matrix(c(test_Var1 test_Var2) nrow = 100 ncol = 2)nntest(dnn test_x y)

[1] 025 Value error rate

Сравнение обучающей и тестовой выборки

gttest_x [1] [2] [1] 091887443 -08940890 [2] 115219448 -06050481 [3] 069917981 -08524551 [4] 028213787 -08146816 [5] 098405598 -11440813 [6] 185911887 -08203652 [7] 010843056 -10123789 [8] 083827953 -07594760 [9] -016373562 -09087116 [10] 088298748 -09767741 [11] 005280917 -07525407

gt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370

Plot3d(test_xy) Plot3d(xy)

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)

Подготовка к обработке

starting installationstep1installpackages(devtools)library(devtools)install_github(repo = mnist username = xrobin ref = master)library(mnist)

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
  • Аппроксимация линейными многообразиями (подпространствами)
  • Slide 30
  • Алгоритм
  • princomp(formula data = NULL subset naaction )
  • Principal Component Analysis (PCA)
  • Линейный дискриминантный анализ (Linear Discriminant Analysis -
  • Решение
  • lda(x grouping prior = proportions tol = 10e-4 method
  • Slide 37
  • Linear Discriminant Analysis (LDA)
  • Сравнение PCA и LDA
  • Метод опорных векторов (Support Vector Machines - SVM)
  • Идея алгоритма
  • Иллюстрация на простейшем примере
  • Линейная неразделимость и использование ядер
  • Иллюстрация использования ядра для отображения 2D -gt 3D
  • svm((formula data = NULL subset naaction = naomit sc
  • Support Vector Machines
  • Глубокое обучение (Deep Learning)
  • laquoВ 1997 году Deep Blue обыграл в шахматы Каспарова В 2011 Wats
  • Распознавание основано на feature detection и последующем раз
  • Распознавание рукописных цифр
  • Еще пример посложнее
  • Использование нейронной сети с обучением
  • Сверхвысокая размерность при работе с первичным представлением
  • Пиксельное кодирование
  • Принцип иерархии понятий ndash основа deep learning
  • Разреженное (sparse) кодирование
  • Словарь для лиц
  • Slide 58
  • Выделение объектов заданного класса
  • Основные архитектуры Deep Learning
  • Задача классификации распознавания и подобные являются задачей
  • Фактор - графы
  • Slide 63
  • Slide 64
  • Подход разреженного кодирования
  • Обобщенная архитектура
  • Slide 67
  • Slide 68
  • Slide 69
  • В действительности работают любые архитектуры построения функц
  • Machine Learning with Torch7 (httpcodecogbitscomwikidoku
  • Torch 7 является расширением Lua
  • Slide 73
  • Slide 74
  • Сверточные (convolution) нейронные сети
  • Свертка и архитектура 4-х уровневой сверточной сети
  • Функциональная структура
  • Примеры успешного применения сверточных сетей
  • Диагностика эпилепсии по ЭЭГ
  • Реализация сверточной сетью
  • Одна из самых больших сверточных сетей
  • Пример тэгирования
  • Пример поиска похожих по изображению
  • Пример поиска в коллекции изображений по текстовому запросу
  • Пример laquoоблачногоraquo классификатора изображений
  • Slide 86
  • Самообучающиеся нейронные сети на основе минимизации функции эн
  • RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцман
  • Алгоритм обучения Contrastive Divergence (CD)
  • Основные уравнения адаптации
  • Алгоритм Хинтона - Contrastive Divergence (CD-k)
  • darch Package for deep architectures and Restricted-Bolzmann-
  • Связь плотности вероятности и энергии
  • Задача обучения с точки минимизации энергии сети
  • Интуитивные соображения
  • Slide 96
  • Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decom
  • Sparse linear reconstruction
  • Автоэнкодер (auto encoder)
  • Архитекттура ICA моделей
  • Итеративные алгоритмы с оптимальным разреженным кодированием 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)
Page 45: !Predictive analytics part_2

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)

(m lt- cm(train$class predict(s)))1 - sum(diag(m)) sum(m)

(m lt- cm(test$class predict(s test[12])))1 - sum(diag(m)) sum(m)

Глубокое обучение (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) матрицы Якобиана

ቈ120597119865119894ሺ119883119894minus1119882119894ሻ120597119882119894 119896119897 = 120597[119865119894(119883119894minus1119882119894)]119896120597[119882119894]119897

Сводится к рекуррентному соотношению для вычисления градиента 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

Сверточная (convolution) нейронная сеть

1 -- parameters 2 nstates = 16256128 3 fanin = 14 4 filtsize = 5 5 poolsize = 2 6 normkernel = imagegaussian1D(7) 7 8 -- Container 9 model = nnSequential()1011 -- stage 1 filter bank -gt squashing -gt L2 pooling -gt normalization12 modeladd(nnSpatialConvolutionMap(nntablesrandom(nfeats nstates[1] fanin[1]) filtsize filtsize))13 modeladd(nnTanh())14 modeladd(nnSpatialLPPooling(nstates[1]2poolsizepoolsizepoolsizepoolsize))15 modeladd(nnSpatialSubtractiveNormalization(16 normkernel))1617 -- stage 2 filter bank -gt squashing -gt L2 pooling -gt normalization18 modeladd(nnSpatialConvolutionMap(nntablesrandom(nstates[1] nstates[2] fanin[2]) filtsize filtsize))19 modeladd(nnTanh())20 modeladd(nnSpatialLPPooling(nstates[2]2poolsizepoolsizepoolsizepoolsize))21 modeladd(nnSpatialSubtractiveNormalization(nstates[2] normkernel))2223 -- stage 3 standard 2-layer neural network24 modeladd(nnReshape(nstates[2]filtsizefiltsize))25 modeladd(nnLinear(nstates[2]filtsizefiltsize nstates[3]))26 modeladd(nnTanh())27 modeladd(nnLinear(nstates[3] noutputs))

Код программы на Torch 7

Сверточные (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

Sparse linear reconstruction

bull Energy=reconstruction_error+code_prediction_error+code_sparsity

Автоэнкодер (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

bull saednntrain(x y hidden = c(1) activationfun = sigm learningrate = 08 momentum = 05 learningrate_scale = 1 output = sigm sae_output = linear numepochs = 3 batchsize = 100 hidden_dropout = 0 visible_dropout = 0)

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

Архитектура сети SAE

Архитектура с 5Х4 hidden 3 outs

Example

Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02)) Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1)) x lt- matrix(c(Var1 Var2) nrow = 100 ncol = 2)y lt- c(rep(1 50) rep(0 50))

обучение сетиdnn lt- saednntrain(x y hidden = c(5 5))

Анализ обучающего набора данныхgt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370helliphelliphelliphelliphelliphelliphelliphellip

gt y [1] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 [54] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

plot3d(xy)

Параметры SAE сети

gt dnn$input_dim[1] 2$output_dim[1] 1$hidden[1] 5 5$size[1] 2 5 5 1$activationfun[1] sigm$learningrate[1] 08

$momentum[1] 05$learningrate_scale[1] 1$hidden_dropout[1] 0$visible_dropout[1] 0$output[1] sigm$W

Коэффициенты связей

$W$W[[1]] [1] [2][1] -014355854 02471840[2] 011378030 -00715094[3] -004343738 03667468[4] 012756946 -01303379[5] -003445704 02293772

$W[[2]] [1] [2] [3] [4] [5][1] 00420191661 -0023073732 -008762756 0035575714 -0063000016[2] 00072771988 -0131204147 -010591421 0018221305 -0025539769[3] -01071896826 -0019479685 -009892573 -0012976429 -0111886901[4] -00009477304 -0023137518 -002147218 0007969452 -0118696306[5] 00045016013 0001885546 -010170954 -0140312396 -0003970102

$W[[3]] [1] [2] [3] [4] [5][1] 01027992 -007288099 003051227 -001731639 0009518049

$vW$vW[[1]] [1] [2][1] -8335203e-06 1368580e-05[2] -6530183e-05 1135070e-04[3] 2544302e-05 -3947111e-05[4] -5512835e-06 9541682e-06[5] 3822854e-05 -6281762e-05

$vW[[2]] [1] [2] [3] [4] [5][1] 4172450e-04 -2554411e-04 4896670e-04 -3526093e-04 3041932e-04[2] -3210759e-04 1978412e-04 -3769148e-04 2727933e-04 -2338477e-04[3] 1058770e-04 -6705336e-05 1244419e-04 -9201508e-05 7678296e-05[4] -8894178e-05 5481668e-05 -1044110e-04 7558269e-05 -6477571e-05[5] 2676520e-05 -1622289e-05 3139684e-05 -2243174e-05 1954349e-05

$vW[[3]] [1] [2] [3] [4] [5][1] -0002603034 -0002398256 -0003274074 -0002542478 -000209672

Предсказание обученной сетью

predict by dnntest_Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02))test_Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1))test_x lt- matrix(c(test_Var1 test_Var2) nrow = 100 ncol = 2)nntest(dnn test_x y)

[1] 025 Value error rate

Сравнение обучающей и тестовой выборки

gttest_x [1] [2] [1] 091887443 -08940890 [2] 115219448 -06050481 [3] 069917981 -08524551 [4] 028213787 -08146816 [5] 098405598 -11440813 [6] 185911887 -08203652 [7] 010843056 -10123789 [8] 083827953 -07594760 [9] -016373562 -09087116 [10] 088298748 -09767741 [11] 005280917 -07525407

gt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370

Plot3d(test_xy) Plot3d(xy)

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)

Подготовка к обработке

starting installationstep1installpackages(devtools)library(devtools)install_github(repo = mnist username = xrobin ref = master)library(mnist)

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
  • Аппроксимация линейными многообразиями (подпространствами)
  • Slide 30
  • Алгоритм
  • princomp(formula data = NULL subset naaction )
  • Principal Component Analysis (PCA)
  • Линейный дискриминантный анализ (Linear Discriminant Analysis -
  • Решение
  • lda(x grouping prior = proportions tol = 10e-4 method
  • Slide 37
  • Linear Discriminant Analysis (LDA)
  • Сравнение PCA и LDA
  • Метод опорных векторов (Support Vector Machines - SVM)
  • Идея алгоритма
  • Иллюстрация на простейшем примере
  • Линейная неразделимость и использование ядер
  • Иллюстрация использования ядра для отображения 2D -gt 3D
  • svm((formula data = NULL subset naaction = naomit sc
  • Support Vector Machines
  • Глубокое обучение (Deep Learning)
  • laquoВ 1997 году Deep Blue обыграл в шахматы Каспарова В 2011 Wats
  • Распознавание основано на feature detection и последующем раз
  • Распознавание рукописных цифр
  • Еще пример посложнее
  • Использование нейронной сети с обучением
  • Сверхвысокая размерность при работе с первичным представлением
  • Пиксельное кодирование
  • Принцип иерархии понятий ndash основа deep learning
  • Разреженное (sparse) кодирование
  • Словарь для лиц
  • Slide 58
  • Выделение объектов заданного класса
  • Основные архитектуры Deep Learning
  • Задача классификации распознавания и подобные являются задачей
  • Фактор - графы
  • Slide 63
  • Slide 64
  • Подход разреженного кодирования
  • Обобщенная архитектура
  • Slide 67
  • Slide 68
  • Slide 69
  • В действительности работают любые архитектуры построения функц
  • Machine Learning with Torch7 (httpcodecogbitscomwikidoku
  • Torch 7 является расширением Lua
  • Slide 73
  • Slide 74
  • Сверточные (convolution) нейронные сети
  • Свертка и архитектура 4-х уровневой сверточной сети
  • Функциональная структура
  • Примеры успешного применения сверточных сетей
  • Диагностика эпилепсии по ЭЭГ
  • Реализация сверточной сетью
  • Одна из самых больших сверточных сетей
  • Пример тэгирования
  • Пример поиска похожих по изображению
  • Пример поиска в коллекции изображений по текстовому запросу
  • Пример laquoоблачногоraquo классификатора изображений
  • Slide 86
  • Самообучающиеся нейронные сети на основе минимизации функции эн
  • RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцман
  • Алгоритм обучения Contrastive Divergence (CD)
  • Основные уравнения адаптации
  • Алгоритм Хинтона - Contrastive Divergence (CD-k)
  • darch Package for deep architectures and Restricted-Bolzmann-
  • Связь плотности вероятности и энергии
  • Задача обучения с точки минимизации энергии сети
  • Интуитивные соображения
  • Slide 96
  • Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decom
  • Sparse linear reconstruction
  • Автоэнкодер (auto encoder)
  • Архитекттура ICA моделей
  • Итеративные алгоритмы с оптимальным разреженным кодированием 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)
Page 46: !Predictive analytics part_2

Support Vector Machines

s lt- svm( I(factor(class)) ~ x + y data = train cost = 100 gama = 1)

(m lt- cm(train$class predict(s)))1 - sum(diag(m)) sum(m)

(m lt- cm(test$class predict(s test[12])))1 - sum(diag(m)) sum(m)

Глубокое обучение (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) матрицы Якобиана

ቈ120597119865119894ሺ119883119894minus1119882119894ሻ120597119882119894 119896119897 = 120597[119865119894(119883119894minus1119882119894)]119896120597[119882119894]119897

Сводится к рекуррентному соотношению для вычисления градиента 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

Сверточная (convolution) нейронная сеть

1 -- parameters 2 nstates = 16256128 3 fanin = 14 4 filtsize = 5 5 poolsize = 2 6 normkernel = imagegaussian1D(7) 7 8 -- Container 9 model = nnSequential()1011 -- stage 1 filter bank -gt squashing -gt L2 pooling -gt normalization12 modeladd(nnSpatialConvolutionMap(nntablesrandom(nfeats nstates[1] fanin[1]) filtsize filtsize))13 modeladd(nnTanh())14 modeladd(nnSpatialLPPooling(nstates[1]2poolsizepoolsizepoolsizepoolsize))15 modeladd(nnSpatialSubtractiveNormalization(16 normkernel))1617 -- stage 2 filter bank -gt squashing -gt L2 pooling -gt normalization18 modeladd(nnSpatialConvolutionMap(nntablesrandom(nstates[1] nstates[2] fanin[2]) filtsize filtsize))19 modeladd(nnTanh())20 modeladd(nnSpatialLPPooling(nstates[2]2poolsizepoolsizepoolsizepoolsize))21 modeladd(nnSpatialSubtractiveNormalization(nstates[2] normkernel))2223 -- stage 3 standard 2-layer neural network24 modeladd(nnReshape(nstates[2]filtsizefiltsize))25 modeladd(nnLinear(nstates[2]filtsizefiltsize nstates[3]))26 modeladd(nnTanh())27 modeladd(nnLinear(nstates[3] noutputs))

Код программы на Torch 7

Сверточные (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

Sparse linear reconstruction

bull Energy=reconstruction_error+code_prediction_error+code_sparsity

Автоэнкодер (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

bull saednntrain(x y hidden = c(1) activationfun = sigm learningrate = 08 momentum = 05 learningrate_scale = 1 output = sigm sae_output = linear numepochs = 3 batchsize = 100 hidden_dropout = 0 visible_dropout = 0)

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

Архитектура сети SAE

Архитектура с 5Х4 hidden 3 outs

Example

Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02)) Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1)) x lt- matrix(c(Var1 Var2) nrow = 100 ncol = 2)y lt- c(rep(1 50) rep(0 50))

обучение сетиdnn lt- saednntrain(x y hidden = c(5 5))

Анализ обучающего набора данныхgt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370helliphelliphelliphelliphelliphelliphelliphellip

gt y [1] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 [54] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

plot3d(xy)

Параметры SAE сети

gt dnn$input_dim[1] 2$output_dim[1] 1$hidden[1] 5 5$size[1] 2 5 5 1$activationfun[1] sigm$learningrate[1] 08

$momentum[1] 05$learningrate_scale[1] 1$hidden_dropout[1] 0$visible_dropout[1] 0$output[1] sigm$W

Коэффициенты связей

$W$W[[1]] [1] [2][1] -014355854 02471840[2] 011378030 -00715094[3] -004343738 03667468[4] 012756946 -01303379[5] -003445704 02293772

$W[[2]] [1] [2] [3] [4] [5][1] 00420191661 -0023073732 -008762756 0035575714 -0063000016[2] 00072771988 -0131204147 -010591421 0018221305 -0025539769[3] -01071896826 -0019479685 -009892573 -0012976429 -0111886901[4] -00009477304 -0023137518 -002147218 0007969452 -0118696306[5] 00045016013 0001885546 -010170954 -0140312396 -0003970102

$W[[3]] [1] [2] [3] [4] [5][1] 01027992 -007288099 003051227 -001731639 0009518049

$vW$vW[[1]] [1] [2][1] -8335203e-06 1368580e-05[2] -6530183e-05 1135070e-04[3] 2544302e-05 -3947111e-05[4] -5512835e-06 9541682e-06[5] 3822854e-05 -6281762e-05

$vW[[2]] [1] [2] [3] [4] [5][1] 4172450e-04 -2554411e-04 4896670e-04 -3526093e-04 3041932e-04[2] -3210759e-04 1978412e-04 -3769148e-04 2727933e-04 -2338477e-04[3] 1058770e-04 -6705336e-05 1244419e-04 -9201508e-05 7678296e-05[4] -8894178e-05 5481668e-05 -1044110e-04 7558269e-05 -6477571e-05[5] 2676520e-05 -1622289e-05 3139684e-05 -2243174e-05 1954349e-05

$vW[[3]] [1] [2] [3] [4] [5][1] -0002603034 -0002398256 -0003274074 -0002542478 -000209672

Предсказание обученной сетью

predict by dnntest_Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02))test_Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1))test_x lt- matrix(c(test_Var1 test_Var2) nrow = 100 ncol = 2)nntest(dnn test_x y)

[1] 025 Value error rate

Сравнение обучающей и тестовой выборки

gttest_x [1] [2] [1] 091887443 -08940890 [2] 115219448 -06050481 [3] 069917981 -08524551 [4] 028213787 -08146816 [5] 098405598 -11440813 [6] 185911887 -08203652 [7] 010843056 -10123789 [8] 083827953 -07594760 [9] -016373562 -09087116 [10] 088298748 -09767741 [11] 005280917 -07525407

gt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370

Plot3d(test_xy) Plot3d(xy)

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)

Подготовка к обработке

starting installationstep1installpackages(devtools)library(devtools)install_github(repo = mnist username = xrobin ref = master)library(mnist)

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
  • Аппроксимация линейными многообразиями (подпространствами)
  • Slide 30
  • Алгоритм
  • princomp(formula data = NULL subset naaction )
  • Principal Component Analysis (PCA)
  • Линейный дискриминантный анализ (Linear Discriminant Analysis -
  • Решение
  • lda(x grouping prior = proportions tol = 10e-4 method
  • Slide 37
  • Linear Discriminant Analysis (LDA)
  • Сравнение PCA и LDA
  • Метод опорных векторов (Support Vector Machines - SVM)
  • Идея алгоритма
  • Иллюстрация на простейшем примере
  • Линейная неразделимость и использование ядер
  • Иллюстрация использования ядра для отображения 2D -gt 3D
  • svm((formula data = NULL subset naaction = naomit sc
  • Support Vector Machines
  • Глубокое обучение (Deep Learning)
  • laquoВ 1997 году Deep Blue обыграл в шахматы Каспарова В 2011 Wats
  • Распознавание основано на feature detection и последующем раз
  • Распознавание рукописных цифр
  • Еще пример посложнее
  • Использование нейронной сети с обучением
  • Сверхвысокая размерность при работе с первичным представлением
  • Пиксельное кодирование
  • Принцип иерархии понятий ndash основа deep learning
  • Разреженное (sparse) кодирование
  • Словарь для лиц
  • Slide 58
  • Выделение объектов заданного класса
  • Основные архитектуры Deep Learning
  • Задача классификации распознавания и подобные являются задачей
  • Фактор - графы
  • Slide 63
  • Slide 64
  • Подход разреженного кодирования
  • Обобщенная архитектура
  • Slide 67
  • Slide 68
  • Slide 69
  • В действительности работают любые архитектуры построения функц
  • Machine Learning with Torch7 (httpcodecogbitscomwikidoku
  • Torch 7 является расширением Lua
  • Slide 73
  • Slide 74
  • Сверточные (convolution) нейронные сети
  • Свертка и архитектура 4-х уровневой сверточной сети
  • Функциональная структура
  • Примеры успешного применения сверточных сетей
  • Диагностика эпилепсии по ЭЭГ
  • Реализация сверточной сетью
  • Одна из самых больших сверточных сетей
  • Пример тэгирования
  • Пример поиска похожих по изображению
  • Пример поиска в коллекции изображений по текстовому запросу
  • Пример laquoоблачногоraquo классификатора изображений
  • Slide 86
  • Самообучающиеся нейронные сети на основе минимизации функции эн
  • RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцман
  • Алгоритм обучения Contrastive Divergence (CD)
  • Основные уравнения адаптации
  • Алгоритм Хинтона - Contrastive Divergence (CD-k)
  • darch Package for deep architectures and Restricted-Bolzmann-
  • Связь плотности вероятности и энергии
  • Задача обучения с точки минимизации энергии сети
  • Интуитивные соображения
  • Slide 96
  • Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decom
  • Sparse linear reconstruction
  • Автоэнкодер (auto encoder)
  • Архитекттура ICA моделей
  • Итеративные алгоритмы с оптимальным разреженным кодированием 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)
Page 47: !Predictive analytics part_2

Глубокое обучение (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) матрицы Якобиана

ቈ120597119865119894ሺ119883119894minus1119882119894ሻ120597119882119894 119896119897 = 120597[119865119894(119883119894minus1119882119894)]119896120597[119882119894]119897

Сводится к рекуррентному соотношению для вычисления градиента 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

Сверточная (convolution) нейронная сеть

1 -- parameters 2 nstates = 16256128 3 fanin = 14 4 filtsize = 5 5 poolsize = 2 6 normkernel = imagegaussian1D(7) 7 8 -- Container 9 model = nnSequential()1011 -- stage 1 filter bank -gt squashing -gt L2 pooling -gt normalization12 modeladd(nnSpatialConvolutionMap(nntablesrandom(nfeats nstates[1] fanin[1]) filtsize filtsize))13 modeladd(nnTanh())14 modeladd(nnSpatialLPPooling(nstates[1]2poolsizepoolsizepoolsizepoolsize))15 modeladd(nnSpatialSubtractiveNormalization(16 normkernel))1617 -- stage 2 filter bank -gt squashing -gt L2 pooling -gt normalization18 modeladd(nnSpatialConvolutionMap(nntablesrandom(nstates[1] nstates[2] fanin[2]) filtsize filtsize))19 modeladd(nnTanh())20 modeladd(nnSpatialLPPooling(nstates[2]2poolsizepoolsizepoolsizepoolsize))21 modeladd(nnSpatialSubtractiveNormalization(nstates[2] normkernel))2223 -- stage 3 standard 2-layer neural network24 modeladd(nnReshape(nstates[2]filtsizefiltsize))25 modeladd(nnLinear(nstates[2]filtsizefiltsize nstates[3]))26 modeladd(nnTanh())27 modeladd(nnLinear(nstates[3] noutputs))

Код программы на Torch 7

Сверточные (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

Sparse linear reconstruction

bull Energy=reconstruction_error+code_prediction_error+code_sparsity

Автоэнкодер (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

bull saednntrain(x y hidden = c(1) activationfun = sigm learningrate = 08 momentum = 05 learningrate_scale = 1 output = sigm sae_output = linear numepochs = 3 batchsize = 100 hidden_dropout = 0 visible_dropout = 0)

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

Архитектура сети SAE

Архитектура с 5Х4 hidden 3 outs

Example

Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02)) Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1)) x lt- matrix(c(Var1 Var2) nrow = 100 ncol = 2)y lt- c(rep(1 50) rep(0 50))

обучение сетиdnn lt- saednntrain(x y hidden = c(5 5))

Анализ обучающего набора данныхgt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370helliphelliphelliphelliphelliphelliphelliphellip

gt y [1] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 [54] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

plot3d(xy)

Параметры SAE сети

gt dnn$input_dim[1] 2$output_dim[1] 1$hidden[1] 5 5$size[1] 2 5 5 1$activationfun[1] sigm$learningrate[1] 08

$momentum[1] 05$learningrate_scale[1] 1$hidden_dropout[1] 0$visible_dropout[1] 0$output[1] sigm$W

Коэффициенты связей

$W$W[[1]] [1] [2][1] -014355854 02471840[2] 011378030 -00715094[3] -004343738 03667468[4] 012756946 -01303379[5] -003445704 02293772

$W[[2]] [1] [2] [3] [4] [5][1] 00420191661 -0023073732 -008762756 0035575714 -0063000016[2] 00072771988 -0131204147 -010591421 0018221305 -0025539769[3] -01071896826 -0019479685 -009892573 -0012976429 -0111886901[4] -00009477304 -0023137518 -002147218 0007969452 -0118696306[5] 00045016013 0001885546 -010170954 -0140312396 -0003970102

$W[[3]] [1] [2] [3] [4] [5][1] 01027992 -007288099 003051227 -001731639 0009518049

$vW$vW[[1]] [1] [2][1] -8335203e-06 1368580e-05[2] -6530183e-05 1135070e-04[3] 2544302e-05 -3947111e-05[4] -5512835e-06 9541682e-06[5] 3822854e-05 -6281762e-05

$vW[[2]] [1] [2] [3] [4] [5][1] 4172450e-04 -2554411e-04 4896670e-04 -3526093e-04 3041932e-04[2] -3210759e-04 1978412e-04 -3769148e-04 2727933e-04 -2338477e-04[3] 1058770e-04 -6705336e-05 1244419e-04 -9201508e-05 7678296e-05[4] -8894178e-05 5481668e-05 -1044110e-04 7558269e-05 -6477571e-05[5] 2676520e-05 -1622289e-05 3139684e-05 -2243174e-05 1954349e-05

$vW[[3]] [1] [2] [3] [4] [5][1] -0002603034 -0002398256 -0003274074 -0002542478 -000209672

Предсказание обученной сетью

predict by dnntest_Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02))test_Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1))test_x lt- matrix(c(test_Var1 test_Var2) nrow = 100 ncol = 2)nntest(dnn test_x y)

[1] 025 Value error rate

Сравнение обучающей и тестовой выборки

gttest_x [1] [2] [1] 091887443 -08940890 [2] 115219448 -06050481 [3] 069917981 -08524551 [4] 028213787 -08146816 [5] 098405598 -11440813 [6] 185911887 -08203652 [7] 010843056 -10123789 [8] 083827953 -07594760 [9] -016373562 -09087116 [10] 088298748 -09767741 [11] 005280917 -07525407

gt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370

Plot3d(test_xy) Plot3d(xy)

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)

Подготовка к обработке

starting installationstep1installpackages(devtools)library(devtools)install_github(repo = mnist username = xrobin ref = master)library(mnist)

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
  • Аппроксимация линейными многообразиями (подпространствами)
  • Slide 30
  • Алгоритм
  • princomp(formula data = NULL subset naaction )
  • Principal Component Analysis (PCA)
  • Линейный дискриминантный анализ (Linear Discriminant Analysis -
  • Решение
  • lda(x grouping prior = proportions tol = 10e-4 method
  • Slide 37
  • Linear Discriminant Analysis (LDA)
  • Сравнение PCA и LDA
  • Метод опорных векторов (Support Vector Machines - SVM)
  • Идея алгоритма
  • Иллюстрация на простейшем примере
  • Линейная неразделимость и использование ядер
  • Иллюстрация использования ядра для отображения 2D -gt 3D
  • svm((formula data = NULL subset naaction = naomit sc
  • Support Vector Machines
  • Глубокое обучение (Deep Learning)
  • laquoВ 1997 году Deep Blue обыграл в шахматы Каспарова В 2011 Wats
  • Распознавание основано на feature detection и последующем раз
  • Распознавание рукописных цифр
  • Еще пример посложнее
  • Использование нейронной сети с обучением
  • Сверхвысокая размерность при работе с первичным представлением
  • Пиксельное кодирование
  • Принцип иерархии понятий ndash основа deep learning
  • Разреженное (sparse) кодирование
  • Словарь для лиц
  • Slide 58
  • Выделение объектов заданного класса
  • Основные архитектуры Deep Learning
  • Задача классификации распознавания и подобные являются задачей
  • Фактор - графы
  • Slide 63
  • Slide 64
  • Подход разреженного кодирования
  • Обобщенная архитектура
  • Slide 67
  • Slide 68
  • Slide 69
  • В действительности работают любые архитектуры построения функц
  • Machine Learning with Torch7 (httpcodecogbitscomwikidoku
  • Torch 7 является расширением Lua
  • Slide 73
  • Slide 74
  • Сверточные (convolution) нейронные сети
  • Свертка и архитектура 4-х уровневой сверточной сети
  • Функциональная структура
  • Примеры успешного применения сверточных сетей
  • Диагностика эпилепсии по ЭЭГ
  • Реализация сверточной сетью
  • Одна из самых больших сверточных сетей
  • Пример тэгирования
  • Пример поиска похожих по изображению
  • Пример поиска в коллекции изображений по текстовому запросу
  • Пример laquoоблачногоraquo классификатора изображений
  • Slide 86
  • Самообучающиеся нейронные сети на основе минимизации функции эн
  • RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцман
  • Алгоритм обучения Contrastive Divergence (CD)
  • Основные уравнения адаптации
  • Алгоритм Хинтона - Contrastive Divergence (CD-k)
  • darch Package for deep architectures and Restricted-Bolzmann-
  • Связь плотности вероятности и энергии
  • Задача обучения с точки минимизации энергии сети
  • Интуитивные соображения
  • Slide 96
  • Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decom
  • Sparse linear reconstruction
  • Автоэнкодер (auto encoder)
  • Архитекттура ICA моделей
  • Итеративные алгоритмы с оптимальным разреженным кодированием 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)
Page 48: !Predictive analytics part_2

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) матрицы Якобиана

ቈ120597119865119894ሺ119883119894minus1119882119894ሻ120597119882119894 119896119897 = 120597[119865119894(119883119894minus1119882119894)]119896120597[119882119894]119897

Сводится к рекуррентному соотношению для вычисления градиента 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

Сверточная (convolution) нейронная сеть

1 -- parameters 2 nstates = 16256128 3 fanin = 14 4 filtsize = 5 5 poolsize = 2 6 normkernel = imagegaussian1D(7) 7 8 -- Container 9 model = nnSequential()1011 -- stage 1 filter bank -gt squashing -gt L2 pooling -gt normalization12 modeladd(nnSpatialConvolutionMap(nntablesrandom(nfeats nstates[1] fanin[1]) filtsize filtsize))13 modeladd(nnTanh())14 modeladd(nnSpatialLPPooling(nstates[1]2poolsizepoolsizepoolsizepoolsize))15 modeladd(nnSpatialSubtractiveNormalization(16 normkernel))1617 -- stage 2 filter bank -gt squashing -gt L2 pooling -gt normalization18 modeladd(nnSpatialConvolutionMap(nntablesrandom(nstates[1] nstates[2] fanin[2]) filtsize filtsize))19 modeladd(nnTanh())20 modeladd(nnSpatialLPPooling(nstates[2]2poolsizepoolsizepoolsizepoolsize))21 modeladd(nnSpatialSubtractiveNormalization(nstates[2] normkernel))2223 -- stage 3 standard 2-layer neural network24 modeladd(nnReshape(nstates[2]filtsizefiltsize))25 modeladd(nnLinear(nstates[2]filtsizefiltsize nstates[3]))26 modeladd(nnTanh())27 modeladd(nnLinear(nstates[3] noutputs))

Код программы на Torch 7

Сверточные (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

Sparse linear reconstruction

bull Energy=reconstruction_error+code_prediction_error+code_sparsity

Автоэнкодер (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

bull saednntrain(x y hidden = c(1) activationfun = sigm learningrate = 08 momentum = 05 learningrate_scale = 1 output = sigm sae_output = linear numepochs = 3 batchsize = 100 hidden_dropout = 0 visible_dropout = 0)

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

Архитектура сети SAE

Архитектура с 5Х4 hidden 3 outs

Example

Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02)) Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1)) x lt- matrix(c(Var1 Var2) nrow = 100 ncol = 2)y lt- c(rep(1 50) rep(0 50))

обучение сетиdnn lt- saednntrain(x y hidden = c(5 5))

Анализ обучающего набора данныхgt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370helliphelliphelliphelliphelliphelliphelliphellip

gt y [1] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 [54] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

plot3d(xy)

Параметры SAE сети

gt dnn$input_dim[1] 2$output_dim[1] 1$hidden[1] 5 5$size[1] 2 5 5 1$activationfun[1] sigm$learningrate[1] 08

$momentum[1] 05$learningrate_scale[1] 1$hidden_dropout[1] 0$visible_dropout[1] 0$output[1] sigm$W

Коэффициенты связей

$W$W[[1]] [1] [2][1] -014355854 02471840[2] 011378030 -00715094[3] -004343738 03667468[4] 012756946 -01303379[5] -003445704 02293772

$W[[2]] [1] [2] [3] [4] [5][1] 00420191661 -0023073732 -008762756 0035575714 -0063000016[2] 00072771988 -0131204147 -010591421 0018221305 -0025539769[3] -01071896826 -0019479685 -009892573 -0012976429 -0111886901[4] -00009477304 -0023137518 -002147218 0007969452 -0118696306[5] 00045016013 0001885546 -010170954 -0140312396 -0003970102

$W[[3]] [1] [2] [3] [4] [5][1] 01027992 -007288099 003051227 -001731639 0009518049

$vW$vW[[1]] [1] [2][1] -8335203e-06 1368580e-05[2] -6530183e-05 1135070e-04[3] 2544302e-05 -3947111e-05[4] -5512835e-06 9541682e-06[5] 3822854e-05 -6281762e-05

$vW[[2]] [1] [2] [3] [4] [5][1] 4172450e-04 -2554411e-04 4896670e-04 -3526093e-04 3041932e-04[2] -3210759e-04 1978412e-04 -3769148e-04 2727933e-04 -2338477e-04[3] 1058770e-04 -6705336e-05 1244419e-04 -9201508e-05 7678296e-05[4] -8894178e-05 5481668e-05 -1044110e-04 7558269e-05 -6477571e-05[5] 2676520e-05 -1622289e-05 3139684e-05 -2243174e-05 1954349e-05

$vW[[3]] [1] [2] [3] [4] [5][1] -0002603034 -0002398256 -0003274074 -0002542478 -000209672

Предсказание обученной сетью

predict by dnntest_Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02))test_Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1))test_x lt- matrix(c(test_Var1 test_Var2) nrow = 100 ncol = 2)nntest(dnn test_x y)

[1] 025 Value error rate

Сравнение обучающей и тестовой выборки

gttest_x [1] [2] [1] 091887443 -08940890 [2] 115219448 -06050481 [3] 069917981 -08524551 [4] 028213787 -08146816 [5] 098405598 -11440813 [6] 185911887 -08203652 [7] 010843056 -10123789 [8] 083827953 -07594760 [9] -016373562 -09087116 [10] 088298748 -09767741 [11] 005280917 -07525407

gt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370

Plot3d(test_xy) Plot3d(xy)

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)

Подготовка к обработке

starting installationstep1installpackages(devtools)library(devtools)install_github(repo = mnist username = xrobin ref = master)library(mnist)

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
  • Аппроксимация линейными многообразиями (подпространствами)
  • Slide 30
  • Алгоритм
  • princomp(formula data = NULL subset naaction )
  • Principal Component Analysis (PCA)
  • Линейный дискриминантный анализ (Linear Discriminant Analysis -
  • Решение
  • lda(x grouping prior = proportions tol = 10e-4 method
  • Slide 37
  • Linear Discriminant Analysis (LDA)
  • Сравнение PCA и LDA
  • Метод опорных векторов (Support Vector Machines - SVM)
  • Идея алгоритма
  • Иллюстрация на простейшем примере
  • Линейная неразделимость и использование ядер
  • Иллюстрация использования ядра для отображения 2D -gt 3D
  • svm((formula data = NULL subset naaction = naomit sc
  • Support Vector Machines
  • Глубокое обучение (Deep Learning)
  • laquoВ 1997 году Deep Blue обыграл в шахматы Каспарова В 2011 Wats
  • Распознавание основано на feature detection и последующем раз
  • Распознавание рукописных цифр
  • Еще пример посложнее
  • Использование нейронной сети с обучением
  • Сверхвысокая размерность при работе с первичным представлением
  • Пиксельное кодирование
  • Принцип иерархии понятий ndash основа deep learning
  • Разреженное (sparse) кодирование
  • Словарь для лиц
  • Slide 58
  • Выделение объектов заданного класса
  • Основные архитектуры Deep Learning
  • Задача классификации распознавания и подобные являются задачей
  • Фактор - графы
  • Slide 63
  • Slide 64
  • Подход разреженного кодирования
  • Обобщенная архитектура
  • Slide 67
  • Slide 68
  • Slide 69
  • В действительности работают любые архитектуры построения функц
  • Machine Learning with Torch7 (httpcodecogbitscomwikidoku
  • Torch 7 является расширением Lua
  • Slide 73
  • Slide 74
  • Сверточные (convolution) нейронные сети
  • Свертка и архитектура 4-х уровневой сверточной сети
  • Функциональная структура
  • Примеры успешного применения сверточных сетей
  • Диагностика эпилепсии по ЭЭГ
  • Реализация сверточной сетью
  • Одна из самых больших сверточных сетей
  • Пример тэгирования
  • Пример поиска похожих по изображению
  • Пример поиска в коллекции изображений по текстовому запросу
  • Пример laquoоблачногоraquo классификатора изображений
  • Slide 86
  • Самообучающиеся нейронные сети на основе минимизации функции эн
  • RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцман
  • Алгоритм обучения Contrastive Divergence (CD)
  • Основные уравнения адаптации
  • Алгоритм Хинтона - Contrastive Divergence (CD-k)
  • darch Package for deep architectures and Restricted-Bolzmann-
  • Связь плотности вероятности и энергии
  • Задача обучения с точки минимизации энергии сети
  • Интуитивные соображения
  • Slide 96
  • Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decom
  • Sparse linear reconstruction
  • Автоэнкодер (auto encoder)
  • Архитекттура ICA моделей
  • Итеративные алгоритмы с оптимальным разреженным кодированием 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)
Page 49: !Predictive analytics part_2

Распознавание основано на 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) матрицы Якобиана

ቈ120597119865119894ሺ119883119894minus1119882119894ሻ120597119882119894 119896119897 = 120597[119865119894(119883119894minus1119882119894)]119896120597[119882119894]119897

Сводится к рекуррентному соотношению для вычисления градиента 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

Сверточная (convolution) нейронная сеть

1 -- parameters 2 nstates = 16256128 3 fanin = 14 4 filtsize = 5 5 poolsize = 2 6 normkernel = imagegaussian1D(7) 7 8 -- Container 9 model = nnSequential()1011 -- stage 1 filter bank -gt squashing -gt L2 pooling -gt normalization12 modeladd(nnSpatialConvolutionMap(nntablesrandom(nfeats nstates[1] fanin[1]) filtsize filtsize))13 modeladd(nnTanh())14 modeladd(nnSpatialLPPooling(nstates[1]2poolsizepoolsizepoolsizepoolsize))15 modeladd(nnSpatialSubtractiveNormalization(16 normkernel))1617 -- stage 2 filter bank -gt squashing -gt L2 pooling -gt normalization18 modeladd(nnSpatialConvolutionMap(nntablesrandom(nstates[1] nstates[2] fanin[2]) filtsize filtsize))19 modeladd(nnTanh())20 modeladd(nnSpatialLPPooling(nstates[2]2poolsizepoolsizepoolsizepoolsize))21 modeladd(nnSpatialSubtractiveNormalization(nstates[2] normkernel))2223 -- stage 3 standard 2-layer neural network24 modeladd(nnReshape(nstates[2]filtsizefiltsize))25 modeladd(nnLinear(nstates[2]filtsizefiltsize nstates[3]))26 modeladd(nnTanh())27 modeladd(nnLinear(nstates[3] noutputs))

Код программы на Torch 7

Сверточные (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

Sparse linear reconstruction

bull Energy=reconstruction_error+code_prediction_error+code_sparsity

Автоэнкодер (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

bull saednntrain(x y hidden = c(1) activationfun = sigm learningrate = 08 momentum = 05 learningrate_scale = 1 output = sigm sae_output = linear numepochs = 3 batchsize = 100 hidden_dropout = 0 visible_dropout = 0)

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

Архитектура сети SAE

Архитектура с 5Х4 hidden 3 outs

Example

Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02)) Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1)) x lt- matrix(c(Var1 Var2) nrow = 100 ncol = 2)y lt- c(rep(1 50) rep(0 50))

обучение сетиdnn lt- saednntrain(x y hidden = c(5 5))

Анализ обучающего набора данныхgt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370helliphelliphelliphelliphelliphelliphelliphellip

gt y [1] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 [54] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

plot3d(xy)

Параметры SAE сети

gt dnn$input_dim[1] 2$output_dim[1] 1$hidden[1] 5 5$size[1] 2 5 5 1$activationfun[1] sigm$learningrate[1] 08

$momentum[1] 05$learningrate_scale[1] 1$hidden_dropout[1] 0$visible_dropout[1] 0$output[1] sigm$W

Коэффициенты связей

$W$W[[1]] [1] [2][1] -014355854 02471840[2] 011378030 -00715094[3] -004343738 03667468[4] 012756946 -01303379[5] -003445704 02293772

$W[[2]] [1] [2] [3] [4] [5][1] 00420191661 -0023073732 -008762756 0035575714 -0063000016[2] 00072771988 -0131204147 -010591421 0018221305 -0025539769[3] -01071896826 -0019479685 -009892573 -0012976429 -0111886901[4] -00009477304 -0023137518 -002147218 0007969452 -0118696306[5] 00045016013 0001885546 -010170954 -0140312396 -0003970102

$W[[3]] [1] [2] [3] [4] [5][1] 01027992 -007288099 003051227 -001731639 0009518049

$vW$vW[[1]] [1] [2][1] -8335203e-06 1368580e-05[2] -6530183e-05 1135070e-04[3] 2544302e-05 -3947111e-05[4] -5512835e-06 9541682e-06[5] 3822854e-05 -6281762e-05

$vW[[2]] [1] [2] [3] [4] [5][1] 4172450e-04 -2554411e-04 4896670e-04 -3526093e-04 3041932e-04[2] -3210759e-04 1978412e-04 -3769148e-04 2727933e-04 -2338477e-04[3] 1058770e-04 -6705336e-05 1244419e-04 -9201508e-05 7678296e-05[4] -8894178e-05 5481668e-05 -1044110e-04 7558269e-05 -6477571e-05[5] 2676520e-05 -1622289e-05 3139684e-05 -2243174e-05 1954349e-05

$vW[[3]] [1] [2] [3] [4] [5][1] -0002603034 -0002398256 -0003274074 -0002542478 -000209672

Предсказание обученной сетью

predict by dnntest_Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02))test_Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1))test_x lt- matrix(c(test_Var1 test_Var2) nrow = 100 ncol = 2)nntest(dnn test_x y)

[1] 025 Value error rate

Сравнение обучающей и тестовой выборки

gttest_x [1] [2] [1] 091887443 -08940890 [2] 115219448 -06050481 [3] 069917981 -08524551 [4] 028213787 -08146816 [5] 098405598 -11440813 [6] 185911887 -08203652 [7] 010843056 -10123789 [8] 083827953 -07594760 [9] -016373562 -09087116 [10] 088298748 -09767741 [11] 005280917 -07525407

gt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370

Plot3d(test_xy) Plot3d(xy)

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)

Подготовка к обработке

starting installationstep1installpackages(devtools)library(devtools)install_github(repo = mnist username = xrobin ref = master)library(mnist)

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
  • Аппроксимация линейными многообразиями (подпространствами)
  • Slide 30
  • Алгоритм
  • princomp(formula data = NULL subset naaction )
  • Principal Component Analysis (PCA)
  • Линейный дискриминантный анализ (Linear Discriminant Analysis -
  • Решение
  • lda(x grouping prior = proportions tol = 10e-4 method
  • Slide 37
  • Linear Discriminant Analysis (LDA)
  • Сравнение PCA и LDA
  • Метод опорных векторов (Support Vector Machines - SVM)
  • Идея алгоритма
  • Иллюстрация на простейшем примере
  • Линейная неразделимость и использование ядер
  • Иллюстрация использования ядра для отображения 2D -gt 3D
  • svm((formula data = NULL subset naaction = naomit sc
  • Support Vector Machines
  • Глубокое обучение (Deep Learning)
  • laquoВ 1997 году Deep Blue обыграл в шахматы Каспарова В 2011 Wats
  • Распознавание основано на feature detection и последующем раз
  • Распознавание рукописных цифр
  • Еще пример посложнее
  • Использование нейронной сети с обучением
  • Сверхвысокая размерность при работе с первичным представлением
  • Пиксельное кодирование
  • Принцип иерархии понятий ndash основа deep learning
  • Разреженное (sparse) кодирование
  • Словарь для лиц
  • Slide 58
  • Выделение объектов заданного класса
  • Основные архитектуры Deep Learning
  • Задача классификации распознавания и подобные являются задачей
  • Фактор - графы
  • Slide 63
  • Slide 64
  • Подход разреженного кодирования
  • Обобщенная архитектура
  • Slide 67
  • Slide 68
  • Slide 69
  • В действительности работают любые архитектуры построения функц
  • Machine Learning with Torch7 (httpcodecogbitscomwikidoku
  • Torch 7 является расширением Lua
  • Slide 73
  • Slide 74
  • Сверточные (convolution) нейронные сети
  • Свертка и архитектура 4-х уровневой сверточной сети
  • Функциональная структура
  • Примеры успешного применения сверточных сетей
  • Диагностика эпилепсии по ЭЭГ
  • Реализация сверточной сетью
  • Одна из самых больших сверточных сетей
  • Пример тэгирования
  • Пример поиска похожих по изображению
  • Пример поиска в коллекции изображений по текстовому запросу
  • Пример laquoоблачногоraquo классификатора изображений
  • Slide 86
  • Самообучающиеся нейронные сети на основе минимизации функции эн
  • RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцман
  • Алгоритм обучения Contrastive Divergence (CD)
  • Основные уравнения адаптации
  • Алгоритм Хинтона - Contrastive Divergence (CD-k)
  • darch Package for deep architectures and Restricted-Bolzmann-
  • Связь плотности вероятности и энергии
  • Задача обучения с точки минимизации энергии сети
  • Интуитивные соображения
  • Slide 96
  • Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decom
  • Sparse linear reconstruction
  • Автоэнкодер (auto encoder)
  • Архитекттура ICA моделей
  • Итеративные алгоритмы с оптимальным разреженным кодированием 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)
Page 50: !Predictive analytics part_2

Распознавание рукописных цифр

Еще пример посложнее

Использование нейронной сети с обучениемОбучение такой нейронной сети производится обычно методом обратного распространения ошибки таким образом чтобы минимизировать среднеквадратическую ошибку отклика сети на обучающей выборке Таким образом обучающая выборка содержит пары векторов признаков (входные данные) и эталонных векторов (маркированные данные) (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) матрицы Якобиана

ቈ120597119865119894ሺ119883119894minus1119882119894ሻ120597119882119894 119896119897 = 120597[119865119894(119883119894minus1119882119894)]119896120597[119882119894]119897

Сводится к рекуррентному соотношению для вычисления градиента 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

Сверточная (convolution) нейронная сеть

1 -- parameters 2 nstates = 16256128 3 fanin = 14 4 filtsize = 5 5 poolsize = 2 6 normkernel = imagegaussian1D(7) 7 8 -- Container 9 model = nnSequential()1011 -- stage 1 filter bank -gt squashing -gt L2 pooling -gt normalization12 modeladd(nnSpatialConvolutionMap(nntablesrandom(nfeats nstates[1] fanin[1]) filtsize filtsize))13 modeladd(nnTanh())14 modeladd(nnSpatialLPPooling(nstates[1]2poolsizepoolsizepoolsizepoolsize))15 modeladd(nnSpatialSubtractiveNormalization(16 normkernel))1617 -- stage 2 filter bank -gt squashing -gt L2 pooling -gt normalization18 modeladd(nnSpatialConvolutionMap(nntablesrandom(nstates[1] nstates[2] fanin[2]) filtsize filtsize))19 modeladd(nnTanh())20 modeladd(nnSpatialLPPooling(nstates[2]2poolsizepoolsizepoolsizepoolsize))21 modeladd(nnSpatialSubtractiveNormalization(nstates[2] normkernel))2223 -- stage 3 standard 2-layer neural network24 modeladd(nnReshape(nstates[2]filtsizefiltsize))25 modeladd(nnLinear(nstates[2]filtsizefiltsize nstates[3]))26 modeladd(nnTanh())27 modeladd(nnLinear(nstates[3] noutputs))

Код программы на Torch 7

Сверточные (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

Sparse linear reconstruction

bull Energy=reconstruction_error+code_prediction_error+code_sparsity

Автоэнкодер (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

bull saednntrain(x y hidden = c(1) activationfun = sigm learningrate = 08 momentum = 05 learningrate_scale = 1 output = sigm sae_output = linear numepochs = 3 batchsize = 100 hidden_dropout = 0 visible_dropout = 0)

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

Архитектура сети SAE

Архитектура с 5Х4 hidden 3 outs

Example

Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02)) Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1)) x lt- matrix(c(Var1 Var2) nrow = 100 ncol = 2)y lt- c(rep(1 50) rep(0 50))

обучение сетиdnn lt- saednntrain(x y hidden = c(5 5))

Анализ обучающего набора данныхgt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370helliphelliphelliphelliphelliphelliphelliphellip

gt y [1] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 [54] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

plot3d(xy)

Параметры SAE сети

gt dnn$input_dim[1] 2$output_dim[1] 1$hidden[1] 5 5$size[1] 2 5 5 1$activationfun[1] sigm$learningrate[1] 08

$momentum[1] 05$learningrate_scale[1] 1$hidden_dropout[1] 0$visible_dropout[1] 0$output[1] sigm$W

Коэффициенты связей

$W$W[[1]] [1] [2][1] -014355854 02471840[2] 011378030 -00715094[3] -004343738 03667468[4] 012756946 -01303379[5] -003445704 02293772

$W[[2]] [1] [2] [3] [4] [5][1] 00420191661 -0023073732 -008762756 0035575714 -0063000016[2] 00072771988 -0131204147 -010591421 0018221305 -0025539769[3] -01071896826 -0019479685 -009892573 -0012976429 -0111886901[4] -00009477304 -0023137518 -002147218 0007969452 -0118696306[5] 00045016013 0001885546 -010170954 -0140312396 -0003970102

$W[[3]] [1] [2] [3] [4] [5][1] 01027992 -007288099 003051227 -001731639 0009518049

$vW$vW[[1]] [1] [2][1] -8335203e-06 1368580e-05[2] -6530183e-05 1135070e-04[3] 2544302e-05 -3947111e-05[4] -5512835e-06 9541682e-06[5] 3822854e-05 -6281762e-05

$vW[[2]] [1] [2] [3] [4] [5][1] 4172450e-04 -2554411e-04 4896670e-04 -3526093e-04 3041932e-04[2] -3210759e-04 1978412e-04 -3769148e-04 2727933e-04 -2338477e-04[3] 1058770e-04 -6705336e-05 1244419e-04 -9201508e-05 7678296e-05[4] -8894178e-05 5481668e-05 -1044110e-04 7558269e-05 -6477571e-05[5] 2676520e-05 -1622289e-05 3139684e-05 -2243174e-05 1954349e-05

$vW[[3]] [1] [2] [3] [4] [5][1] -0002603034 -0002398256 -0003274074 -0002542478 -000209672

Предсказание обученной сетью

predict by dnntest_Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02))test_Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1))test_x lt- matrix(c(test_Var1 test_Var2) nrow = 100 ncol = 2)nntest(dnn test_x y)

[1] 025 Value error rate

Сравнение обучающей и тестовой выборки

gttest_x [1] [2] [1] 091887443 -08940890 [2] 115219448 -06050481 [3] 069917981 -08524551 [4] 028213787 -08146816 [5] 098405598 -11440813 [6] 185911887 -08203652 [7] 010843056 -10123789 [8] 083827953 -07594760 [9] -016373562 -09087116 [10] 088298748 -09767741 [11] 005280917 -07525407

gt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370

Plot3d(test_xy) Plot3d(xy)

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)

Подготовка к обработке

starting installationstep1installpackages(devtools)library(devtools)install_github(repo = mnist username = xrobin ref = master)library(mnist)

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
  • Аппроксимация линейными многообразиями (подпространствами)
  • Slide 30
  • Алгоритм
  • princomp(formula data = NULL subset naaction )
  • Principal Component Analysis (PCA)
  • Линейный дискриминантный анализ (Linear Discriminant Analysis -
  • Решение
  • lda(x grouping prior = proportions tol = 10e-4 method
  • Slide 37
  • Linear Discriminant Analysis (LDA)
  • Сравнение PCA и LDA
  • Метод опорных векторов (Support Vector Machines - SVM)
  • Идея алгоритма
  • Иллюстрация на простейшем примере
  • Линейная неразделимость и использование ядер
  • Иллюстрация использования ядра для отображения 2D -gt 3D
  • svm((formula data = NULL subset naaction = naomit sc
  • Support Vector Machines
  • Глубокое обучение (Deep Learning)
  • laquoВ 1997 году Deep Blue обыграл в шахматы Каспарова В 2011 Wats
  • Распознавание основано на feature detection и последующем раз
  • Распознавание рукописных цифр
  • Еще пример посложнее
  • Использование нейронной сети с обучением
  • Сверхвысокая размерность при работе с первичным представлением
  • Пиксельное кодирование
  • Принцип иерархии понятий ndash основа deep learning
  • Разреженное (sparse) кодирование
  • Словарь для лиц
  • Slide 58
  • Выделение объектов заданного класса
  • Основные архитектуры Deep Learning
  • Задача классификации распознавания и подобные являются задачей
  • Фактор - графы
  • Slide 63
  • Slide 64
  • Подход разреженного кодирования
  • Обобщенная архитектура
  • Slide 67
  • Slide 68
  • Slide 69
  • В действительности работают любые архитектуры построения функц
  • Machine Learning with Torch7 (httpcodecogbitscomwikidoku
  • Torch 7 является расширением Lua
  • Slide 73
  • Slide 74
  • Сверточные (convolution) нейронные сети
  • Свертка и архитектура 4-х уровневой сверточной сети
  • Функциональная структура
  • Примеры успешного применения сверточных сетей
  • Диагностика эпилепсии по ЭЭГ
  • Реализация сверточной сетью
  • Одна из самых больших сверточных сетей
  • Пример тэгирования
  • Пример поиска похожих по изображению
  • Пример поиска в коллекции изображений по текстовому запросу
  • Пример laquoоблачногоraquo классификатора изображений
  • Slide 86
  • Самообучающиеся нейронные сети на основе минимизации функции эн
  • RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцман
  • Алгоритм обучения Contrastive Divergence (CD)
  • Основные уравнения адаптации
  • Алгоритм Хинтона - Contrastive Divergence (CD-k)
  • darch Package for deep architectures and Restricted-Bolzmann-
  • Связь плотности вероятности и энергии
  • Задача обучения с точки минимизации энергии сети
  • Интуитивные соображения
  • Slide 96
  • Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decom
  • Sparse linear reconstruction
  • Автоэнкодер (auto encoder)
  • Архитекттура ICA моделей
  • Итеративные алгоритмы с оптимальным разреженным кодированием 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)
Page 51: !Predictive analytics part_2

Еще пример посложнее

Использование нейронной сети с обучениемОбучение такой нейронной сети производится обычно методом обратного распространения ошибки таким образом чтобы минимизировать среднеквадратическую ошибку отклика сети на обучающей выборке Таким образом обучающая выборка содержит пары векторов признаков (входные данные) и эталонных векторов (маркированные данные) (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) матрицы Якобиана

ቈ120597119865119894ሺ119883119894minus1119882119894ሻ120597119882119894 119896119897 = 120597[119865119894(119883119894minus1119882119894)]119896120597[119882119894]119897

Сводится к рекуррентному соотношению для вычисления градиента 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

Сверточная (convolution) нейронная сеть

1 -- parameters 2 nstates = 16256128 3 fanin = 14 4 filtsize = 5 5 poolsize = 2 6 normkernel = imagegaussian1D(7) 7 8 -- Container 9 model = nnSequential()1011 -- stage 1 filter bank -gt squashing -gt L2 pooling -gt normalization12 modeladd(nnSpatialConvolutionMap(nntablesrandom(nfeats nstates[1] fanin[1]) filtsize filtsize))13 modeladd(nnTanh())14 modeladd(nnSpatialLPPooling(nstates[1]2poolsizepoolsizepoolsizepoolsize))15 modeladd(nnSpatialSubtractiveNormalization(16 normkernel))1617 -- stage 2 filter bank -gt squashing -gt L2 pooling -gt normalization18 modeladd(nnSpatialConvolutionMap(nntablesrandom(nstates[1] nstates[2] fanin[2]) filtsize filtsize))19 modeladd(nnTanh())20 modeladd(nnSpatialLPPooling(nstates[2]2poolsizepoolsizepoolsizepoolsize))21 modeladd(nnSpatialSubtractiveNormalization(nstates[2] normkernel))2223 -- stage 3 standard 2-layer neural network24 modeladd(nnReshape(nstates[2]filtsizefiltsize))25 modeladd(nnLinear(nstates[2]filtsizefiltsize nstates[3]))26 modeladd(nnTanh())27 modeladd(nnLinear(nstates[3] noutputs))

Код программы на Torch 7

Сверточные (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

Sparse linear reconstruction

bull Energy=reconstruction_error+code_prediction_error+code_sparsity

Автоэнкодер (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

bull saednntrain(x y hidden = c(1) activationfun = sigm learningrate = 08 momentum = 05 learningrate_scale = 1 output = sigm sae_output = linear numepochs = 3 batchsize = 100 hidden_dropout = 0 visible_dropout = 0)

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

Архитектура сети SAE

Архитектура с 5Х4 hidden 3 outs

Example

Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02)) Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1)) x lt- matrix(c(Var1 Var2) nrow = 100 ncol = 2)y lt- c(rep(1 50) rep(0 50))

обучение сетиdnn lt- saednntrain(x y hidden = c(5 5))

Анализ обучающего набора данныхgt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370helliphelliphelliphelliphelliphelliphelliphellip

gt y [1] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 [54] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

plot3d(xy)

Параметры SAE сети

gt dnn$input_dim[1] 2$output_dim[1] 1$hidden[1] 5 5$size[1] 2 5 5 1$activationfun[1] sigm$learningrate[1] 08

$momentum[1] 05$learningrate_scale[1] 1$hidden_dropout[1] 0$visible_dropout[1] 0$output[1] sigm$W

Коэффициенты связей

$W$W[[1]] [1] [2][1] -014355854 02471840[2] 011378030 -00715094[3] -004343738 03667468[4] 012756946 -01303379[5] -003445704 02293772

$W[[2]] [1] [2] [3] [4] [5][1] 00420191661 -0023073732 -008762756 0035575714 -0063000016[2] 00072771988 -0131204147 -010591421 0018221305 -0025539769[3] -01071896826 -0019479685 -009892573 -0012976429 -0111886901[4] -00009477304 -0023137518 -002147218 0007969452 -0118696306[5] 00045016013 0001885546 -010170954 -0140312396 -0003970102

$W[[3]] [1] [2] [3] [4] [5][1] 01027992 -007288099 003051227 -001731639 0009518049

$vW$vW[[1]] [1] [2][1] -8335203e-06 1368580e-05[2] -6530183e-05 1135070e-04[3] 2544302e-05 -3947111e-05[4] -5512835e-06 9541682e-06[5] 3822854e-05 -6281762e-05

$vW[[2]] [1] [2] [3] [4] [5][1] 4172450e-04 -2554411e-04 4896670e-04 -3526093e-04 3041932e-04[2] -3210759e-04 1978412e-04 -3769148e-04 2727933e-04 -2338477e-04[3] 1058770e-04 -6705336e-05 1244419e-04 -9201508e-05 7678296e-05[4] -8894178e-05 5481668e-05 -1044110e-04 7558269e-05 -6477571e-05[5] 2676520e-05 -1622289e-05 3139684e-05 -2243174e-05 1954349e-05

$vW[[3]] [1] [2] [3] [4] [5][1] -0002603034 -0002398256 -0003274074 -0002542478 -000209672

Предсказание обученной сетью

predict by dnntest_Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02))test_Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1))test_x lt- matrix(c(test_Var1 test_Var2) nrow = 100 ncol = 2)nntest(dnn test_x y)

[1] 025 Value error rate

Сравнение обучающей и тестовой выборки

gttest_x [1] [2] [1] 091887443 -08940890 [2] 115219448 -06050481 [3] 069917981 -08524551 [4] 028213787 -08146816 [5] 098405598 -11440813 [6] 185911887 -08203652 [7] 010843056 -10123789 [8] 083827953 -07594760 [9] -016373562 -09087116 [10] 088298748 -09767741 [11] 005280917 -07525407

gt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370

Plot3d(test_xy) Plot3d(xy)

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)

Подготовка к обработке

starting installationstep1installpackages(devtools)library(devtools)install_github(repo = mnist username = xrobin ref = master)library(mnist)

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
  • Аппроксимация линейными многообразиями (подпространствами)
  • Slide 30
  • Алгоритм
  • princomp(formula data = NULL subset naaction )
  • Principal Component Analysis (PCA)
  • Линейный дискриминантный анализ (Linear Discriminant Analysis -
  • Решение
  • lda(x grouping prior = proportions tol = 10e-4 method
  • Slide 37
  • Linear Discriminant Analysis (LDA)
  • Сравнение PCA и LDA
  • Метод опорных векторов (Support Vector Machines - SVM)
  • Идея алгоритма
  • Иллюстрация на простейшем примере
  • Линейная неразделимость и использование ядер
  • Иллюстрация использования ядра для отображения 2D -gt 3D
  • svm((formula data = NULL subset naaction = naomit sc
  • Support Vector Machines
  • Глубокое обучение (Deep Learning)
  • laquoВ 1997 году Deep Blue обыграл в шахматы Каспарова В 2011 Wats
  • Распознавание основано на feature detection и последующем раз
  • Распознавание рукописных цифр
  • Еще пример посложнее
  • Использование нейронной сети с обучением
  • Сверхвысокая размерность при работе с первичным представлением
  • Пиксельное кодирование
  • Принцип иерархии понятий ndash основа deep learning
  • Разреженное (sparse) кодирование
  • Словарь для лиц
  • Slide 58
  • Выделение объектов заданного класса
  • Основные архитектуры Deep Learning
  • Задача классификации распознавания и подобные являются задачей
  • Фактор - графы
  • Slide 63
  • Slide 64
  • Подход разреженного кодирования
  • Обобщенная архитектура
  • Slide 67
  • Slide 68
  • Slide 69
  • В действительности работают любые архитектуры построения функц
  • Machine Learning with Torch7 (httpcodecogbitscomwikidoku
  • Torch 7 является расширением Lua
  • Slide 73
  • Slide 74
  • Сверточные (convolution) нейронные сети
  • Свертка и архитектура 4-х уровневой сверточной сети
  • Функциональная структура
  • Примеры успешного применения сверточных сетей
  • Диагностика эпилепсии по ЭЭГ
  • Реализация сверточной сетью
  • Одна из самых больших сверточных сетей
  • Пример тэгирования
  • Пример поиска похожих по изображению
  • Пример поиска в коллекции изображений по текстовому запросу
  • Пример laquoоблачногоraquo классификатора изображений
  • Slide 86
  • Самообучающиеся нейронные сети на основе минимизации функции эн
  • RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцман
  • Алгоритм обучения Contrastive Divergence (CD)
  • Основные уравнения адаптации
  • Алгоритм Хинтона - Contrastive Divergence (CD-k)
  • darch Package for deep architectures and Restricted-Bolzmann-
  • Связь плотности вероятности и энергии
  • Задача обучения с точки минимизации энергии сети
  • Интуитивные соображения
  • Slide 96
  • Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decom
  • Sparse linear reconstruction
  • Автоэнкодер (auto encoder)
  • Архитекттура ICA моделей
  • Итеративные алгоритмы с оптимальным разреженным кодированием 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)
Page 52: !Predictive analytics part_2

Использование нейронной сети с обучениемОбучение такой нейронной сети производится обычно методом обратного распространения ошибки таким образом чтобы минимизировать среднеквадратическую ошибку отклика сети на обучающей выборке Таким образом обучающая выборка содержит пары векторов признаков (входные данные) и эталонных векторов (маркированные данные) (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) матрицы Якобиана

ቈ120597119865119894ሺ119883119894minus1119882119894ሻ120597119882119894 119896119897 = 120597[119865119894(119883119894minus1119882119894)]119896120597[119882119894]119897

Сводится к рекуррентному соотношению для вычисления градиента 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

Сверточная (convolution) нейронная сеть

1 -- parameters 2 nstates = 16256128 3 fanin = 14 4 filtsize = 5 5 poolsize = 2 6 normkernel = imagegaussian1D(7) 7 8 -- Container 9 model = nnSequential()1011 -- stage 1 filter bank -gt squashing -gt L2 pooling -gt normalization12 modeladd(nnSpatialConvolutionMap(nntablesrandom(nfeats nstates[1] fanin[1]) filtsize filtsize))13 modeladd(nnTanh())14 modeladd(nnSpatialLPPooling(nstates[1]2poolsizepoolsizepoolsizepoolsize))15 modeladd(nnSpatialSubtractiveNormalization(16 normkernel))1617 -- stage 2 filter bank -gt squashing -gt L2 pooling -gt normalization18 modeladd(nnSpatialConvolutionMap(nntablesrandom(nstates[1] nstates[2] fanin[2]) filtsize filtsize))19 modeladd(nnTanh())20 modeladd(nnSpatialLPPooling(nstates[2]2poolsizepoolsizepoolsizepoolsize))21 modeladd(nnSpatialSubtractiveNormalization(nstates[2] normkernel))2223 -- stage 3 standard 2-layer neural network24 modeladd(nnReshape(nstates[2]filtsizefiltsize))25 modeladd(nnLinear(nstates[2]filtsizefiltsize nstates[3]))26 modeladd(nnTanh())27 modeladd(nnLinear(nstates[3] noutputs))

Код программы на Torch 7

Сверточные (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

Sparse linear reconstruction

bull Energy=reconstruction_error+code_prediction_error+code_sparsity

Автоэнкодер (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

bull saednntrain(x y hidden = c(1) activationfun = sigm learningrate = 08 momentum = 05 learningrate_scale = 1 output = sigm sae_output = linear numepochs = 3 batchsize = 100 hidden_dropout = 0 visible_dropout = 0)

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

Архитектура сети SAE

Архитектура с 5Х4 hidden 3 outs

Example

Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02)) Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1)) x lt- matrix(c(Var1 Var2) nrow = 100 ncol = 2)y lt- c(rep(1 50) rep(0 50))

обучение сетиdnn lt- saednntrain(x y hidden = c(5 5))

Анализ обучающего набора данныхgt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370helliphelliphelliphelliphelliphelliphelliphellip

gt y [1] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 [54] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

plot3d(xy)

Параметры SAE сети

gt dnn$input_dim[1] 2$output_dim[1] 1$hidden[1] 5 5$size[1] 2 5 5 1$activationfun[1] sigm$learningrate[1] 08

$momentum[1] 05$learningrate_scale[1] 1$hidden_dropout[1] 0$visible_dropout[1] 0$output[1] sigm$W

Коэффициенты связей

$W$W[[1]] [1] [2][1] -014355854 02471840[2] 011378030 -00715094[3] -004343738 03667468[4] 012756946 -01303379[5] -003445704 02293772

$W[[2]] [1] [2] [3] [4] [5][1] 00420191661 -0023073732 -008762756 0035575714 -0063000016[2] 00072771988 -0131204147 -010591421 0018221305 -0025539769[3] -01071896826 -0019479685 -009892573 -0012976429 -0111886901[4] -00009477304 -0023137518 -002147218 0007969452 -0118696306[5] 00045016013 0001885546 -010170954 -0140312396 -0003970102

$W[[3]] [1] [2] [3] [4] [5][1] 01027992 -007288099 003051227 -001731639 0009518049

$vW$vW[[1]] [1] [2][1] -8335203e-06 1368580e-05[2] -6530183e-05 1135070e-04[3] 2544302e-05 -3947111e-05[4] -5512835e-06 9541682e-06[5] 3822854e-05 -6281762e-05

$vW[[2]] [1] [2] [3] [4] [5][1] 4172450e-04 -2554411e-04 4896670e-04 -3526093e-04 3041932e-04[2] -3210759e-04 1978412e-04 -3769148e-04 2727933e-04 -2338477e-04[3] 1058770e-04 -6705336e-05 1244419e-04 -9201508e-05 7678296e-05[4] -8894178e-05 5481668e-05 -1044110e-04 7558269e-05 -6477571e-05[5] 2676520e-05 -1622289e-05 3139684e-05 -2243174e-05 1954349e-05

$vW[[3]] [1] [2] [3] [4] [5][1] -0002603034 -0002398256 -0003274074 -0002542478 -000209672

Предсказание обученной сетью

predict by dnntest_Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02))test_Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1))test_x lt- matrix(c(test_Var1 test_Var2) nrow = 100 ncol = 2)nntest(dnn test_x y)

[1] 025 Value error rate

Сравнение обучающей и тестовой выборки

gttest_x [1] [2] [1] 091887443 -08940890 [2] 115219448 -06050481 [3] 069917981 -08524551 [4] 028213787 -08146816 [5] 098405598 -11440813 [6] 185911887 -08203652 [7] 010843056 -10123789 [8] 083827953 -07594760 [9] -016373562 -09087116 [10] 088298748 -09767741 [11] 005280917 -07525407

gt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370

Plot3d(test_xy) Plot3d(xy)

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)

Подготовка к обработке

starting installationstep1installpackages(devtools)library(devtools)install_github(repo = mnist username = xrobin ref = master)library(mnist)

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
  • Аппроксимация линейными многообразиями (подпространствами)
  • Slide 30
  • Алгоритм
  • princomp(formula data = NULL subset naaction )
  • Principal Component Analysis (PCA)
  • Линейный дискриминантный анализ (Linear Discriminant Analysis -
  • Решение
  • lda(x grouping prior = proportions tol = 10e-4 method
  • Slide 37
  • Linear Discriminant Analysis (LDA)
  • Сравнение PCA и LDA
  • Метод опорных векторов (Support Vector Machines - SVM)
  • Идея алгоритма
  • Иллюстрация на простейшем примере
  • Линейная неразделимость и использование ядер
  • Иллюстрация использования ядра для отображения 2D -gt 3D
  • svm((formula data = NULL subset naaction = naomit sc
  • Support Vector Machines
  • Глубокое обучение (Deep Learning)
  • laquoВ 1997 году Deep Blue обыграл в шахматы Каспарова В 2011 Wats
  • Распознавание основано на feature detection и последующем раз
  • Распознавание рукописных цифр
  • Еще пример посложнее
  • Использование нейронной сети с обучением
  • Сверхвысокая размерность при работе с первичным представлением
  • Пиксельное кодирование
  • Принцип иерархии понятий ndash основа deep learning
  • Разреженное (sparse) кодирование
  • Словарь для лиц
  • Slide 58
  • Выделение объектов заданного класса
  • Основные архитектуры Deep Learning
  • Задача классификации распознавания и подобные являются задачей
  • Фактор - графы
  • Slide 63
  • Slide 64
  • Подход разреженного кодирования
  • Обобщенная архитектура
  • Slide 67
  • Slide 68
  • Slide 69
  • В действительности работают любые архитектуры построения функц
  • Machine Learning with Torch7 (httpcodecogbitscomwikidoku
  • Torch 7 является расширением Lua
  • Slide 73
  • Slide 74
  • Сверточные (convolution) нейронные сети
  • Свертка и архитектура 4-х уровневой сверточной сети
  • Функциональная структура
  • Примеры успешного применения сверточных сетей
  • Диагностика эпилепсии по ЭЭГ
  • Реализация сверточной сетью
  • Одна из самых больших сверточных сетей
  • Пример тэгирования
  • Пример поиска похожих по изображению
  • Пример поиска в коллекции изображений по текстовому запросу
  • Пример laquoоблачногоraquo классификатора изображений
  • Slide 86
  • Самообучающиеся нейронные сети на основе минимизации функции эн
  • RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцман
  • Алгоритм обучения Contrastive Divergence (CD)
  • Основные уравнения адаптации
  • Алгоритм Хинтона - Contrastive Divergence (CD-k)
  • darch Package for deep architectures and Restricted-Bolzmann-
  • Связь плотности вероятности и энергии
  • Задача обучения с точки минимизации энергии сети
  • Интуитивные соображения
  • Slide 96
  • Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decom
  • Sparse linear reconstruction
  • Автоэнкодер (auto encoder)
  • Архитекттура ICA моделей
  • Итеративные алгоритмы с оптимальным разреженным кодированием 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)
Page 53: !Predictive analytics part_2

Сверхвысокая размерность при работе с первичным представлением пикселями

Пиксельное кодирование

Принцип иерархии понятий 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) матрицы Якобиана

ቈ120597119865119894ሺ119883119894minus1119882119894ሻ120597119882119894 119896119897 = 120597[119865119894(119883119894minus1119882119894)]119896120597[119882119894]119897

Сводится к рекуррентному соотношению для вычисления градиента 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

Сверточная (convolution) нейронная сеть

1 -- parameters 2 nstates = 16256128 3 fanin = 14 4 filtsize = 5 5 poolsize = 2 6 normkernel = imagegaussian1D(7) 7 8 -- Container 9 model = nnSequential()1011 -- stage 1 filter bank -gt squashing -gt L2 pooling -gt normalization12 modeladd(nnSpatialConvolutionMap(nntablesrandom(nfeats nstates[1] fanin[1]) filtsize filtsize))13 modeladd(nnTanh())14 modeladd(nnSpatialLPPooling(nstates[1]2poolsizepoolsizepoolsizepoolsize))15 modeladd(nnSpatialSubtractiveNormalization(16 normkernel))1617 -- stage 2 filter bank -gt squashing -gt L2 pooling -gt normalization18 modeladd(nnSpatialConvolutionMap(nntablesrandom(nstates[1] nstates[2] fanin[2]) filtsize filtsize))19 modeladd(nnTanh())20 modeladd(nnSpatialLPPooling(nstates[2]2poolsizepoolsizepoolsizepoolsize))21 modeladd(nnSpatialSubtractiveNormalization(nstates[2] normkernel))2223 -- stage 3 standard 2-layer neural network24 modeladd(nnReshape(nstates[2]filtsizefiltsize))25 modeladd(nnLinear(nstates[2]filtsizefiltsize nstates[3]))26 modeladd(nnTanh())27 modeladd(nnLinear(nstates[3] noutputs))

Код программы на Torch 7

Сверточные (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

Sparse linear reconstruction

bull Energy=reconstruction_error+code_prediction_error+code_sparsity

Автоэнкодер (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

bull saednntrain(x y hidden = c(1) activationfun = sigm learningrate = 08 momentum = 05 learningrate_scale = 1 output = sigm sae_output = linear numepochs = 3 batchsize = 100 hidden_dropout = 0 visible_dropout = 0)

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

Архитектура сети SAE

Архитектура с 5Х4 hidden 3 outs

Example

Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02)) Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1)) x lt- matrix(c(Var1 Var2) nrow = 100 ncol = 2)y lt- c(rep(1 50) rep(0 50))

обучение сетиdnn lt- saednntrain(x y hidden = c(5 5))

Анализ обучающего набора данныхgt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370helliphelliphelliphelliphelliphelliphelliphellip

gt y [1] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 [54] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

plot3d(xy)

Параметры SAE сети

gt dnn$input_dim[1] 2$output_dim[1] 1$hidden[1] 5 5$size[1] 2 5 5 1$activationfun[1] sigm$learningrate[1] 08

$momentum[1] 05$learningrate_scale[1] 1$hidden_dropout[1] 0$visible_dropout[1] 0$output[1] sigm$W

Коэффициенты связей

$W$W[[1]] [1] [2][1] -014355854 02471840[2] 011378030 -00715094[3] -004343738 03667468[4] 012756946 -01303379[5] -003445704 02293772

$W[[2]] [1] [2] [3] [4] [5][1] 00420191661 -0023073732 -008762756 0035575714 -0063000016[2] 00072771988 -0131204147 -010591421 0018221305 -0025539769[3] -01071896826 -0019479685 -009892573 -0012976429 -0111886901[4] -00009477304 -0023137518 -002147218 0007969452 -0118696306[5] 00045016013 0001885546 -010170954 -0140312396 -0003970102

$W[[3]] [1] [2] [3] [4] [5][1] 01027992 -007288099 003051227 -001731639 0009518049

$vW$vW[[1]] [1] [2][1] -8335203e-06 1368580e-05[2] -6530183e-05 1135070e-04[3] 2544302e-05 -3947111e-05[4] -5512835e-06 9541682e-06[5] 3822854e-05 -6281762e-05

$vW[[2]] [1] [2] [3] [4] [5][1] 4172450e-04 -2554411e-04 4896670e-04 -3526093e-04 3041932e-04[2] -3210759e-04 1978412e-04 -3769148e-04 2727933e-04 -2338477e-04[3] 1058770e-04 -6705336e-05 1244419e-04 -9201508e-05 7678296e-05[4] -8894178e-05 5481668e-05 -1044110e-04 7558269e-05 -6477571e-05[5] 2676520e-05 -1622289e-05 3139684e-05 -2243174e-05 1954349e-05

$vW[[3]] [1] [2] [3] [4] [5][1] -0002603034 -0002398256 -0003274074 -0002542478 -000209672

Предсказание обученной сетью

predict by dnntest_Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02))test_Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1))test_x lt- matrix(c(test_Var1 test_Var2) nrow = 100 ncol = 2)nntest(dnn test_x y)

[1] 025 Value error rate

Сравнение обучающей и тестовой выборки

gttest_x [1] [2] [1] 091887443 -08940890 [2] 115219448 -06050481 [3] 069917981 -08524551 [4] 028213787 -08146816 [5] 098405598 -11440813 [6] 185911887 -08203652 [7] 010843056 -10123789 [8] 083827953 -07594760 [9] -016373562 -09087116 [10] 088298748 -09767741 [11] 005280917 -07525407

gt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370

Plot3d(test_xy) Plot3d(xy)

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)

Подготовка к обработке

starting installationstep1installpackages(devtools)library(devtools)install_github(repo = mnist username = xrobin ref = master)library(mnist)

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
  • Аппроксимация линейными многообразиями (подпространствами)
  • Slide 30
  • Алгоритм
  • princomp(formula data = NULL subset naaction )
  • Principal Component Analysis (PCA)
  • Линейный дискриминантный анализ (Linear Discriminant Analysis -
  • Решение
  • lda(x grouping prior = proportions tol = 10e-4 method
  • Slide 37
  • Linear Discriminant Analysis (LDA)
  • Сравнение PCA и LDA
  • Метод опорных векторов (Support Vector Machines - SVM)
  • Идея алгоритма
  • Иллюстрация на простейшем примере
  • Линейная неразделимость и использование ядер
  • Иллюстрация использования ядра для отображения 2D -gt 3D
  • svm((formula data = NULL subset naaction = naomit sc
  • Support Vector Machines
  • Глубокое обучение (Deep Learning)
  • laquoВ 1997 году Deep Blue обыграл в шахматы Каспарова В 2011 Wats
  • Распознавание основано на feature detection и последующем раз
  • Распознавание рукописных цифр
  • Еще пример посложнее
  • Использование нейронной сети с обучением
  • Сверхвысокая размерность при работе с первичным представлением
  • Пиксельное кодирование
  • Принцип иерархии понятий ndash основа deep learning
  • Разреженное (sparse) кодирование
  • Словарь для лиц
  • Slide 58
  • Выделение объектов заданного класса
  • Основные архитектуры Deep Learning
  • Задача классификации распознавания и подобные являются задачей
  • Фактор - графы
  • Slide 63
  • Slide 64
  • Подход разреженного кодирования
  • Обобщенная архитектура
  • Slide 67
  • Slide 68
  • Slide 69
  • В действительности работают любые архитектуры построения функц
  • Machine Learning with Torch7 (httpcodecogbitscomwikidoku
  • Torch 7 является расширением Lua
  • Slide 73
  • Slide 74
  • Сверточные (convolution) нейронные сети
  • Свертка и архитектура 4-х уровневой сверточной сети
  • Функциональная структура
  • Примеры успешного применения сверточных сетей
  • Диагностика эпилепсии по ЭЭГ
  • Реализация сверточной сетью
  • Одна из самых больших сверточных сетей
  • Пример тэгирования
  • Пример поиска похожих по изображению
  • Пример поиска в коллекции изображений по текстовому запросу
  • Пример laquoоблачногоraquo классификатора изображений
  • Slide 86
  • Самообучающиеся нейронные сети на основе минимизации функции эн
  • RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцман
  • Алгоритм обучения Contrastive Divergence (CD)
  • Основные уравнения адаптации
  • Алгоритм Хинтона - Contrastive Divergence (CD-k)
  • darch Package for deep architectures and Restricted-Bolzmann-
  • Связь плотности вероятности и энергии
  • Задача обучения с точки минимизации энергии сети
  • Интуитивные соображения
  • Slide 96
  • Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decom
  • Sparse linear reconstruction
  • Автоэнкодер (auto encoder)
  • Архитекттура ICA моделей
  • Итеративные алгоритмы с оптимальным разреженным кодированием 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)
Page 54: !Predictive analytics part_2

Пиксельное кодирование

Принцип иерархии понятий 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) матрицы Якобиана

ቈ120597119865119894ሺ119883119894minus1119882119894ሻ120597119882119894 119896119897 = 120597[119865119894(119883119894minus1119882119894)]119896120597[119882119894]119897

Сводится к рекуррентному соотношению для вычисления градиента 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

Сверточная (convolution) нейронная сеть

1 -- parameters 2 nstates = 16256128 3 fanin = 14 4 filtsize = 5 5 poolsize = 2 6 normkernel = imagegaussian1D(7) 7 8 -- Container 9 model = nnSequential()1011 -- stage 1 filter bank -gt squashing -gt L2 pooling -gt normalization12 modeladd(nnSpatialConvolutionMap(nntablesrandom(nfeats nstates[1] fanin[1]) filtsize filtsize))13 modeladd(nnTanh())14 modeladd(nnSpatialLPPooling(nstates[1]2poolsizepoolsizepoolsizepoolsize))15 modeladd(nnSpatialSubtractiveNormalization(16 normkernel))1617 -- stage 2 filter bank -gt squashing -gt L2 pooling -gt normalization18 modeladd(nnSpatialConvolutionMap(nntablesrandom(nstates[1] nstates[2] fanin[2]) filtsize filtsize))19 modeladd(nnTanh())20 modeladd(nnSpatialLPPooling(nstates[2]2poolsizepoolsizepoolsizepoolsize))21 modeladd(nnSpatialSubtractiveNormalization(nstates[2] normkernel))2223 -- stage 3 standard 2-layer neural network24 modeladd(nnReshape(nstates[2]filtsizefiltsize))25 modeladd(nnLinear(nstates[2]filtsizefiltsize nstates[3]))26 modeladd(nnTanh())27 modeladd(nnLinear(nstates[3] noutputs))

Код программы на Torch 7

Сверточные (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

Sparse linear reconstruction

bull Energy=reconstruction_error+code_prediction_error+code_sparsity

Автоэнкодер (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

bull saednntrain(x y hidden = c(1) activationfun = sigm learningrate = 08 momentum = 05 learningrate_scale = 1 output = sigm sae_output = linear numepochs = 3 batchsize = 100 hidden_dropout = 0 visible_dropout = 0)

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

Архитектура сети SAE

Архитектура с 5Х4 hidden 3 outs

Example

Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02)) Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1)) x lt- matrix(c(Var1 Var2) nrow = 100 ncol = 2)y lt- c(rep(1 50) rep(0 50))

обучение сетиdnn lt- saednntrain(x y hidden = c(5 5))

Анализ обучающего набора данныхgt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370helliphelliphelliphelliphelliphelliphelliphellip

gt y [1] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 [54] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

plot3d(xy)

Параметры SAE сети

gt dnn$input_dim[1] 2$output_dim[1] 1$hidden[1] 5 5$size[1] 2 5 5 1$activationfun[1] sigm$learningrate[1] 08

$momentum[1] 05$learningrate_scale[1] 1$hidden_dropout[1] 0$visible_dropout[1] 0$output[1] sigm$W

Коэффициенты связей

$W$W[[1]] [1] [2][1] -014355854 02471840[2] 011378030 -00715094[3] -004343738 03667468[4] 012756946 -01303379[5] -003445704 02293772

$W[[2]] [1] [2] [3] [4] [5][1] 00420191661 -0023073732 -008762756 0035575714 -0063000016[2] 00072771988 -0131204147 -010591421 0018221305 -0025539769[3] -01071896826 -0019479685 -009892573 -0012976429 -0111886901[4] -00009477304 -0023137518 -002147218 0007969452 -0118696306[5] 00045016013 0001885546 -010170954 -0140312396 -0003970102

$W[[3]] [1] [2] [3] [4] [5][1] 01027992 -007288099 003051227 -001731639 0009518049

$vW$vW[[1]] [1] [2][1] -8335203e-06 1368580e-05[2] -6530183e-05 1135070e-04[3] 2544302e-05 -3947111e-05[4] -5512835e-06 9541682e-06[5] 3822854e-05 -6281762e-05

$vW[[2]] [1] [2] [3] [4] [5][1] 4172450e-04 -2554411e-04 4896670e-04 -3526093e-04 3041932e-04[2] -3210759e-04 1978412e-04 -3769148e-04 2727933e-04 -2338477e-04[3] 1058770e-04 -6705336e-05 1244419e-04 -9201508e-05 7678296e-05[4] -8894178e-05 5481668e-05 -1044110e-04 7558269e-05 -6477571e-05[5] 2676520e-05 -1622289e-05 3139684e-05 -2243174e-05 1954349e-05

$vW[[3]] [1] [2] [3] [4] [5][1] -0002603034 -0002398256 -0003274074 -0002542478 -000209672

Предсказание обученной сетью

predict by dnntest_Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02))test_Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1))test_x lt- matrix(c(test_Var1 test_Var2) nrow = 100 ncol = 2)nntest(dnn test_x y)

[1] 025 Value error rate

Сравнение обучающей и тестовой выборки

gttest_x [1] [2] [1] 091887443 -08940890 [2] 115219448 -06050481 [3] 069917981 -08524551 [4] 028213787 -08146816 [5] 098405598 -11440813 [6] 185911887 -08203652 [7] 010843056 -10123789 [8] 083827953 -07594760 [9] -016373562 -09087116 [10] 088298748 -09767741 [11] 005280917 -07525407

gt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370

Plot3d(test_xy) Plot3d(xy)

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)

Подготовка к обработке

starting installationstep1installpackages(devtools)library(devtools)install_github(repo = mnist username = xrobin ref = master)library(mnist)

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
  • Аппроксимация линейными многообразиями (подпространствами)
  • Slide 30
  • Алгоритм
  • princomp(formula data = NULL subset naaction )
  • Principal Component Analysis (PCA)
  • Линейный дискриминантный анализ (Linear Discriminant Analysis -
  • Решение
  • lda(x grouping prior = proportions tol = 10e-4 method
  • Slide 37
  • Linear Discriminant Analysis (LDA)
  • Сравнение PCA и LDA
  • Метод опорных векторов (Support Vector Machines - SVM)
  • Идея алгоритма
  • Иллюстрация на простейшем примере
  • Линейная неразделимость и использование ядер
  • Иллюстрация использования ядра для отображения 2D -gt 3D
  • svm((formula data = NULL subset naaction = naomit sc
  • Support Vector Machines
  • Глубокое обучение (Deep Learning)
  • laquoВ 1997 году Deep Blue обыграл в шахматы Каспарова В 2011 Wats
  • Распознавание основано на feature detection и последующем раз
  • Распознавание рукописных цифр
  • Еще пример посложнее
  • Использование нейронной сети с обучением
  • Сверхвысокая размерность при работе с первичным представлением
  • Пиксельное кодирование
  • Принцип иерархии понятий ndash основа deep learning
  • Разреженное (sparse) кодирование
  • Словарь для лиц
  • Slide 58
  • Выделение объектов заданного класса
  • Основные архитектуры Deep Learning
  • Задача классификации распознавания и подобные являются задачей
  • Фактор - графы
  • Slide 63
  • Slide 64
  • Подход разреженного кодирования
  • Обобщенная архитектура
  • Slide 67
  • Slide 68
  • Slide 69
  • В действительности работают любые архитектуры построения функц
  • Machine Learning with Torch7 (httpcodecogbitscomwikidoku
  • Torch 7 является расширением Lua
  • Slide 73
  • Slide 74
  • Сверточные (convolution) нейронные сети
  • Свертка и архитектура 4-х уровневой сверточной сети
  • Функциональная структура
  • Примеры успешного применения сверточных сетей
  • Диагностика эпилепсии по ЭЭГ
  • Реализация сверточной сетью
  • Одна из самых больших сверточных сетей
  • Пример тэгирования
  • Пример поиска похожих по изображению
  • Пример поиска в коллекции изображений по текстовому запросу
  • Пример laquoоблачногоraquo классификатора изображений
  • Slide 86
  • Самообучающиеся нейронные сети на основе минимизации функции эн
  • RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцман
  • Алгоритм обучения Contrastive Divergence (CD)
  • Основные уравнения адаптации
  • Алгоритм Хинтона - Contrastive Divergence (CD-k)
  • darch Package for deep architectures and Restricted-Bolzmann-
  • Связь плотности вероятности и энергии
  • Задача обучения с точки минимизации энергии сети
  • Интуитивные соображения
  • Slide 96
  • Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decom
  • Sparse linear reconstruction
  • Автоэнкодер (auto encoder)
  • Архитекттура ICA моделей
  • Итеративные алгоритмы с оптимальным разреженным кодированием 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)
Page 55: !Predictive analytics part_2

Принцип иерархии понятий 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) матрицы Якобиана

ቈ120597119865119894ሺ119883119894minus1119882119894ሻ120597119882119894 119896119897 = 120597[119865119894(119883119894minus1119882119894)]119896120597[119882119894]119897

Сводится к рекуррентному соотношению для вычисления градиента 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

Сверточная (convolution) нейронная сеть

1 -- parameters 2 nstates = 16256128 3 fanin = 14 4 filtsize = 5 5 poolsize = 2 6 normkernel = imagegaussian1D(7) 7 8 -- Container 9 model = nnSequential()1011 -- stage 1 filter bank -gt squashing -gt L2 pooling -gt normalization12 modeladd(nnSpatialConvolutionMap(nntablesrandom(nfeats nstates[1] fanin[1]) filtsize filtsize))13 modeladd(nnTanh())14 modeladd(nnSpatialLPPooling(nstates[1]2poolsizepoolsizepoolsizepoolsize))15 modeladd(nnSpatialSubtractiveNormalization(16 normkernel))1617 -- stage 2 filter bank -gt squashing -gt L2 pooling -gt normalization18 modeladd(nnSpatialConvolutionMap(nntablesrandom(nstates[1] nstates[2] fanin[2]) filtsize filtsize))19 modeladd(nnTanh())20 modeladd(nnSpatialLPPooling(nstates[2]2poolsizepoolsizepoolsizepoolsize))21 modeladd(nnSpatialSubtractiveNormalization(nstates[2] normkernel))2223 -- stage 3 standard 2-layer neural network24 modeladd(nnReshape(nstates[2]filtsizefiltsize))25 modeladd(nnLinear(nstates[2]filtsizefiltsize nstates[3]))26 modeladd(nnTanh())27 modeladd(nnLinear(nstates[3] noutputs))

Код программы на Torch 7

Сверточные (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

Sparse linear reconstruction

bull Energy=reconstruction_error+code_prediction_error+code_sparsity

Автоэнкодер (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

bull saednntrain(x y hidden = c(1) activationfun = sigm learningrate = 08 momentum = 05 learningrate_scale = 1 output = sigm sae_output = linear numepochs = 3 batchsize = 100 hidden_dropout = 0 visible_dropout = 0)

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

Архитектура сети SAE

Архитектура с 5Х4 hidden 3 outs

Example

Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02)) Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1)) x lt- matrix(c(Var1 Var2) nrow = 100 ncol = 2)y lt- c(rep(1 50) rep(0 50))

обучение сетиdnn lt- saednntrain(x y hidden = c(5 5))

Анализ обучающего набора данныхgt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370helliphelliphelliphelliphelliphelliphelliphellip

gt y [1] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 [54] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

plot3d(xy)

Параметры SAE сети

gt dnn$input_dim[1] 2$output_dim[1] 1$hidden[1] 5 5$size[1] 2 5 5 1$activationfun[1] sigm$learningrate[1] 08

$momentum[1] 05$learningrate_scale[1] 1$hidden_dropout[1] 0$visible_dropout[1] 0$output[1] sigm$W

Коэффициенты связей

$W$W[[1]] [1] [2][1] -014355854 02471840[2] 011378030 -00715094[3] -004343738 03667468[4] 012756946 -01303379[5] -003445704 02293772

$W[[2]] [1] [2] [3] [4] [5][1] 00420191661 -0023073732 -008762756 0035575714 -0063000016[2] 00072771988 -0131204147 -010591421 0018221305 -0025539769[3] -01071896826 -0019479685 -009892573 -0012976429 -0111886901[4] -00009477304 -0023137518 -002147218 0007969452 -0118696306[5] 00045016013 0001885546 -010170954 -0140312396 -0003970102

$W[[3]] [1] [2] [3] [4] [5][1] 01027992 -007288099 003051227 -001731639 0009518049

$vW$vW[[1]] [1] [2][1] -8335203e-06 1368580e-05[2] -6530183e-05 1135070e-04[3] 2544302e-05 -3947111e-05[4] -5512835e-06 9541682e-06[5] 3822854e-05 -6281762e-05

$vW[[2]] [1] [2] [3] [4] [5][1] 4172450e-04 -2554411e-04 4896670e-04 -3526093e-04 3041932e-04[2] -3210759e-04 1978412e-04 -3769148e-04 2727933e-04 -2338477e-04[3] 1058770e-04 -6705336e-05 1244419e-04 -9201508e-05 7678296e-05[4] -8894178e-05 5481668e-05 -1044110e-04 7558269e-05 -6477571e-05[5] 2676520e-05 -1622289e-05 3139684e-05 -2243174e-05 1954349e-05

$vW[[3]] [1] [2] [3] [4] [5][1] -0002603034 -0002398256 -0003274074 -0002542478 -000209672

Предсказание обученной сетью

predict by dnntest_Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02))test_Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1))test_x lt- matrix(c(test_Var1 test_Var2) nrow = 100 ncol = 2)nntest(dnn test_x y)

[1] 025 Value error rate

Сравнение обучающей и тестовой выборки

gttest_x [1] [2] [1] 091887443 -08940890 [2] 115219448 -06050481 [3] 069917981 -08524551 [4] 028213787 -08146816 [5] 098405598 -11440813 [6] 185911887 -08203652 [7] 010843056 -10123789 [8] 083827953 -07594760 [9] -016373562 -09087116 [10] 088298748 -09767741 [11] 005280917 -07525407

gt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370

Plot3d(test_xy) Plot3d(xy)

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)

Подготовка к обработке

starting installationstep1installpackages(devtools)library(devtools)install_github(repo = mnist username = xrobin ref = master)library(mnist)

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
  • Аппроксимация линейными многообразиями (подпространствами)
  • Slide 30
  • Алгоритм
  • princomp(formula data = NULL subset naaction )
  • Principal Component Analysis (PCA)
  • Линейный дискриминантный анализ (Linear Discriminant Analysis -
  • Решение
  • lda(x grouping prior = proportions tol = 10e-4 method
  • Slide 37
  • Linear Discriminant Analysis (LDA)
  • Сравнение PCA и LDA
  • Метод опорных векторов (Support Vector Machines - SVM)
  • Идея алгоритма
  • Иллюстрация на простейшем примере
  • Линейная неразделимость и использование ядер
  • Иллюстрация использования ядра для отображения 2D -gt 3D
  • svm((formula data = NULL subset naaction = naomit sc
  • Support Vector Machines
  • Глубокое обучение (Deep Learning)
  • laquoВ 1997 году Deep Blue обыграл в шахматы Каспарова В 2011 Wats
  • Распознавание основано на feature detection и последующем раз
  • Распознавание рукописных цифр
  • Еще пример посложнее
  • Использование нейронной сети с обучением
  • Сверхвысокая размерность при работе с первичным представлением
  • Пиксельное кодирование
  • Принцип иерархии понятий ndash основа deep learning
  • Разреженное (sparse) кодирование
  • Словарь для лиц
  • Slide 58
  • Выделение объектов заданного класса
  • Основные архитектуры Deep Learning
  • Задача классификации распознавания и подобные являются задачей
  • Фактор - графы
  • Slide 63
  • Slide 64
  • Подход разреженного кодирования
  • Обобщенная архитектура
  • Slide 67
  • Slide 68
  • Slide 69
  • В действительности работают любые архитектуры построения функц
  • Machine Learning with Torch7 (httpcodecogbitscomwikidoku
  • Torch 7 является расширением Lua
  • Slide 73
  • Slide 74
  • Сверточные (convolution) нейронные сети
  • Свертка и архитектура 4-х уровневой сверточной сети
  • Функциональная структура
  • Примеры успешного применения сверточных сетей
  • Диагностика эпилепсии по ЭЭГ
  • Реализация сверточной сетью
  • Одна из самых больших сверточных сетей
  • Пример тэгирования
  • Пример поиска похожих по изображению
  • Пример поиска в коллекции изображений по текстовому запросу
  • Пример laquoоблачногоraquo классификатора изображений
  • Slide 86
  • Самообучающиеся нейронные сети на основе минимизации функции эн
  • RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцман
  • Алгоритм обучения Contrastive Divergence (CD)
  • Основные уравнения адаптации
  • Алгоритм Хинтона - Contrastive Divergence (CD-k)
  • darch Package for deep architectures and Restricted-Bolzmann-
  • Связь плотности вероятности и энергии
  • Задача обучения с точки минимизации энергии сети
  • Интуитивные соображения
  • Slide 96
  • Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decom
  • Sparse linear reconstruction
  • Автоэнкодер (auto encoder)
  • Архитекттура ICA моделей
  • Итеративные алгоритмы с оптимальным разреженным кодированием 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)
Page 56: !Predictive analytics part_2

Разреженное (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) матрицы Якобиана

ቈ120597119865119894ሺ119883119894minus1119882119894ሻ120597119882119894 119896119897 = 120597[119865119894(119883119894minus1119882119894)]119896120597[119882119894]119897

Сводится к рекуррентному соотношению для вычисления градиента 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

Сверточная (convolution) нейронная сеть

1 -- parameters 2 nstates = 16256128 3 fanin = 14 4 filtsize = 5 5 poolsize = 2 6 normkernel = imagegaussian1D(7) 7 8 -- Container 9 model = nnSequential()1011 -- stage 1 filter bank -gt squashing -gt L2 pooling -gt normalization12 modeladd(nnSpatialConvolutionMap(nntablesrandom(nfeats nstates[1] fanin[1]) filtsize filtsize))13 modeladd(nnTanh())14 modeladd(nnSpatialLPPooling(nstates[1]2poolsizepoolsizepoolsizepoolsize))15 modeladd(nnSpatialSubtractiveNormalization(16 normkernel))1617 -- stage 2 filter bank -gt squashing -gt L2 pooling -gt normalization18 modeladd(nnSpatialConvolutionMap(nntablesrandom(nstates[1] nstates[2] fanin[2]) filtsize filtsize))19 modeladd(nnTanh())20 modeladd(nnSpatialLPPooling(nstates[2]2poolsizepoolsizepoolsizepoolsize))21 modeladd(nnSpatialSubtractiveNormalization(nstates[2] normkernel))2223 -- stage 3 standard 2-layer neural network24 modeladd(nnReshape(nstates[2]filtsizefiltsize))25 modeladd(nnLinear(nstates[2]filtsizefiltsize nstates[3]))26 modeladd(nnTanh())27 modeladd(nnLinear(nstates[3] noutputs))

Код программы на Torch 7

Сверточные (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

Sparse linear reconstruction

bull Energy=reconstruction_error+code_prediction_error+code_sparsity

Автоэнкодер (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

bull saednntrain(x y hidden = c(1) activationfun = sigm learningrate = 08 momentum = 05 learningrate_scale = 1 output = sigm sae_output = linear numepochs = 3 batchsize = 100 hidden_dropout = 0 visible_dropout = 0)

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

Архитектура сети SAE

Архитектура с 5Х4 hidden 3 outs

Example

Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02)) Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1)) x lt- matrix(c(Var1 Var2) nrow = 100 ncol = 2)y lt- c(rep(1 50) rep(0 50))

обучение сетиdnn lt- saednntrain(x y hidden = c(5 5))

Анализ обучающего набора данныхgt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370helliphelliphelliphelliphelliphelliphelliphellip

gt y [1] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 [54] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

plot3d(xy)

Параметры SAE сети

gt dnn$input_dim[1] 2$output_dim[1] 1$hidden[1] 5 5$size[1] 2 5 5 1$activationfun[1] sigm$learningrate[1] 08

$momentum[1] 05$learningrate_scale[1] 1$hidden_dropout[1] 0$visible_dropout[1] 0$output[1] sigm$W

Коэффициенты связей

$W$W[[1]] [1] [2][1] -014355854 02471840[2] 011378030 -00715094[3] -004343738 03667468[4] 012756946 -01303379[5] -003445704 02293772

$W[[2]] [1] [2] [3] [4] [5][1] 00420191661 -0023073732 -008762756 0035575714 -0063000016[2] 00072771988 -0131204147 -010591421 0018221305 -0025539769[3] -01071896826 -0019479685 -009892573 -0012976429 -0111886901[4] -00009477304 -0023137518 -002147218 0007969452 -0118696306[5] 00045016013 0001885546 -010170954 -0140312396 -0003970102

$W[[3]] [1] [2] [3] [4] [5][1] 01027992 -007288099 003051227 -001731639 0009518049

$vW$vW[[1]] [1] [2][1] -8335203e-06 1368580e-05[2] -6530183e-05 1135070e-04[3] 2544302e-05 -3947111e-05[4] -5512835e-06 9541682e-06[5] 3822854e-05 -6281762e-05

$vW[[2]] [1] [2] [3] [4] [5][1] 4172450e-04 -2554411e-04 4896670e-04 -3526093e-04 3041932e-04[2] -3210759e-04 1978412e-04 -3769148e-04 2727933e-04 -2338477e-04[3] 1058770e-04 -6705336e-05 1244419e-04 -9201508e-05 7678296e-05[4] -8894178e-05 5481668e-05 -1044110e-04 7558269e-05 -6477571e-05[5] 2676520e-05 -1622289e-05 3139684e-05 -2243174e-05 1954349e-05

$vW[[3]] [1] [2] [3] [4] [5][1] -0002603034 -0002398256 -0003274074 -0002542478 -000209672

Предсказание обученной сетью

predict by dnntest_Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02))test_Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1))test_x lt- matrix(c(test_Var1 test_Var2) nrow = 100 ncol = 2)nntest(dnn test_x y)

[1] 025 Value error rate

Сравнение обучающей и тестовой выборки

gttest_x [1] [2] [1] 091887443 -08940890 [2] 115219448 -06050481 [3] 069917981 -08524551 [4] 028213787 -08146816 [5] 098405598 -11440813 [6] 185911887 -08203652 [7] 010843056 -10123789 [8] 083827953 -07594760 [9] -016373562 -09087116 [10] 088298748 -09767741 [11] 005280917 -07525407

gt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370

Plot3d(test_xy) Plot3d(xy)

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)

Подготовка к обработке

starting installationstep1installpackages(devtools)library(devtools)install_github(repo = mnist username = xrobin ref = master)library(mnist)

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
  • Аппроксимация линейными многообразиями (подпространствами)
  • Slide 30
  • Алгоритм
  • princomp(formula data = NULL subset naaction )
  • Principal Component Analysis (PCA)
  • Линейный дискриминантный анализ (Linear Discriminant Analysis -
  • Решение
  • lda(x grouping prior = proportions tol = 10e-4 method
  • Slide 37
  • Linear Discriminant Analysis (LDA)
  • Сравнение PCA и LDA
  • Метод опорных векторов (Support Vector Machines - SVM)
  • Идея алгоритма
  • Иллюстрация на простейшем примере
  • Линейная неразделимость и использование ядер
  • Иллюстрация использования ядра для отображения 2D -gt 3D
  • svm((formula data = NULL subset naaction = naomit sc
  • Support Vector Machines
  • Глубокое обучение (Deep Learning)
  • laquoВ 1997 году Deep Blue обыграл в шахматы Каспарова В 2011 Wats
  • Распознавание основано на feature detection и последующем раз
  • Распознавание рукописных цифр
  • Еще пример посложнее
  • Использование нейронной сети с обучением
  • Сверхвысокая размерность при работе с первичным представлением
  • Пиксельное кодирование
  • Принцип иерархии понятий ndash основа deep learning
  • Разреженное (sparse) кодирование
  • Словарь для лиц
  • Slide 58
  • Выделение объектов заданного класса
  • Основные архитектуры Deep Learning
  • Задача классификации распознавания и подобные являются задачей
  • Фактор - графы
  • Slide 63
  • Slide 64
  • Подход разреженного кодирования
  • Обобщенная архитектура
  • Slide 67
  • Slide 68
  • Slide 69
  • В действительности работают любые архитектуры построения функц
  • Machine Learning with Torch7 (httpcodecogbitscomwikidoku
  • Torch 7 является расширением Lua
  • Slide 73
  • Slide 74
  • Сверточные (convolution) нейронные сети
  • Свертка и архитектура 4-х уровневой сверточной сети
  • Функциональная структура
  • Примеры успешного применения сверточных сетей
  • Диагностика эпилепсии по ЭЭГ
  • Реализация сверточной сетью
  • Одна из самых больших сверточных сетей
  • Пример тэгирования
  • Пример поиска похожих по изображению
  • Пример поиска в коллекции изображений по текстовому запросу
  • Пример laquoоблачногоraquo классификатора изображений
  • Slide 86
  • Самообучающиеся нейронные сети на основе минимизации функции эн
  • RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцман
  • Алгоритм обучения Contrastive Divergence (CD)
  • Основные уравнения адаптации
  • Алгоритм Хинтона - Contrastive Divergence (CD-k)
  • darch Package for deep architectures and Restricted-Bolzmann-
  • Связь плотности вероятности и энергии
  • Задача обучения с точки минимизации энергии сети
  • Интуитивные соображения
  • Slide 96
  • Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decom
  • Sparse linear reconstruction
  • Автоэнкодер (auto encoder)
  • Архитекттура ICA моделей
  • Итеративные алгоритмы с оптимальным разреженным кодированием 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)
Page 57: !Predictive analytics part_2

Словарь для лиц

Выделение объектов заданного класса

Основные архитектуры 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) матрицы Якобиана

ቈ120597119865119894ሺ119883119894minus1119882119894ሻ120597119882119894 119896119897 = 120597[119865119894(119883119894minus1119882119894)]119896120597[119882119894]119897

Сводится к рекуррентному соотношению для вычисления градиента 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

Сверточная (convolution) нейронная сеть

1 -- parameters 2 nstates = 16256128 3 fanin = 14 4 filtsize = 5 5 poolsize = 2 6 normkernel = imagegaussian1D(7) 7 8 -- Container 9 model = nnSequential()1011 -- stage 1 filter bank -gt squashing -gt L2 pooling -gt normalization12 modeladd(nnSpatialConvolutionMap(nntablesrandom(nfeats nstates[1] fanin[1]) filtsize filtsize))13 modeladd(nnTanh())14 modeladd(nnSpatialLPPooling(nstates[1]2poolsizepoolsizepoolsizepoolsize))15 modeladd(nnSpatialSubtractiveNormalization(16 normkernel))1617 -- stage 2 filter bank -gt squashing -gt L2 pooling -gt normalization18 modeladd(nnSpatialConvolutionMap(nntablesrandom(nstates[1] nstates[2] fanin[2]) filtsize filtsize))19 modeladd(nnTanh())20 modeladd(nnSpatialLPPooling(nstates[2]2poolsizepoolsizepoolsizepoolsize))21 modeladd(nnSpatialSubtractiveNormalization(nstates[2] normkernel))2223 -- stage 3 standard 2-layer neural network24 modeladd(nnReshape(nstates[2]filtsizefiltsize))25 modeladd(nnLinear(nstates[2]filtsizefiltsize nstates[3]))26 modeladd(nnTanh())27 modeladd(nnLinear(nstates[3] noutputs))

Код программы на Torch 7

Сверточные (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

Sparse linear reconstruction

bull Energy=reconstruction_error+code_prediction_error+code_sparsity

Автоэнкодер (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

bull saednntrain(x y hidden = c(1) activationfun = sigm learningrate = 08 momentum = 05 learningrate_scale = 1 output = sigm sae_output = linear numepochs = 3 batchsize = 100 hidden_dropout = 0 visible_dropout = 0)

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

Архитектура сети SAE

Архитектура с 5Х4 hidden 3 outs

Example

Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02)) Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1)) x lt- matrix(c(Var1 Var2) nrow = 100 ncol = 2)y lt- c(rep(1 50) rep(0 50))

обучение сетиdnn lt- saednntrain(x y hidden = c(5 5))

Анализ обучающего набора данныхgt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370helliphelliphelliphelliphelliphelliphelliphellip

gt y [1] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 [54] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

plot3d(xy)

Параметры SAE сети

gt dnn$input_dim[1] 2$output_dim[1] 1$hidden[1] 5 5$size[1] 2 5 5 1$activationfun[1] sigm$learningrate[1] 08

$momentum[1] 05$learningrate_scale[1] 1$hidden_dropout[1] 0$visible_dropout[1] 0$output[1] sigm$W

Коэффициенты связей

$W$W[[1]] [1] [2][1] -014355854 02471840[2] 011378030 -00715094[3] -004343738 03667468[4] 012756946 -01303379[5] -003445704 02293772

$W[[2]] [1] [2] [3] [4] [5][1] 00420191661 -0023073732 -008762756 0035575714 -0063000016[2] 00072771988 -0131204147 -010591421 0018221305 -0025539769[3] -01071896826 -0019479685 -009892573 -0012976429 -0111886901[4] -00009477304 -0023137518 -002147218 0007969452 -0118696306[5] 00045016013 0001885546 -010170954 -0140312396 -0003970102

$W[[3]] [1] [2] [3] [4] [5][1] 01027992 -007288099 003051227 -001731639 0009518049

$vW$vW[[1]] [1] [2][1] -8335203e-06 1368580e-05[2] -6530183e-05 1135070e-04[3] 2544302e-05 -3947111e-05[4] -5512835e-06 9541682e-06[5] 3822854e-05 -6281762e-05

$vW[[2]] [1] [2] [3] [4] [5][1] 4172450e-04 -2554411e-04 4896670e-04 -3526093e-04 3041932e-04[2] -3210759e-04 1978412e-04 -3769148e-04 2727933e-04 -2338477e-04[3] 1058770e-04 -6705336e-05 1244419e-04 -9201508e-05 7678296e-05[4] -8894178e-05 5481668e-05 -1044110e-04 7558269e-05 -6477571e-05[5] 2676520e-05 -1622289e-05 3139684e-05 -2243174e-05 1954349e-05

$vW[[3]] [1] [2] [3] [4] [5][1] -0002603034 -0002398256 -0003274074 -0002542478 -000209672

Предсказание обученной сетью

predict by dnntest_Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02))test_Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1))test_x lt- matrix(c(test_Var1 test_Var2) nrow = 100 ncol = 2)nntest(dnn test_x y)

[1] 025 Value error rate

Сравнение обучающей и тестовой выборки

gttest_x [1] [2] [1] 091887443 -08940890 [2] 115219448 -06050481 [3] 069917981 -08524551 [4] 028213787 -08146816 [5] 098405598 -11440813 [6] 185911887 -08203652 [7] 010843056 -10123789 [8] 083827953 -07594760 [9] -016373562 -09087116 [10] 088298748 -09767741 [11] 005280917 -07525407

gt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370

Plot3d(test_xy) Plot3d(xy)

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)

Подготовка к обработке

starting installationstep1installpackages(devtools)library(devtools)install_github(repo = mnist username = xrobin ref = master)library(mnist)

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
  • Аппроксимация линейными многообразиями (подпространствами)
  • Slide 30
  • Алгоритм
  • princomp(formula data = NULL subset naaction )
  • Principal Component Analysis (PCA)
  • Линейный дискриминантный анализ (Linear Discriminant Analysis -
  • Решение
  • lda(x grouping prior = proportions tol = 10e-4 method
  • Slide 37
  • Linear Discriminant Analysis (LDA)
  • Сравнение PCA и LDA
  • Метод опорных векторов (Support Vector Machines - SVM)
  • Идея алгоритма
  • Иллюстрация на простейшем примере
  • Линейная неразделимость и использование ядер
  • Иллюстрация использования ядра для отображения 2D -gt 3D
  • svm((formula data = NULL subset naaction = naomit sc
  • Support Vector Machines
  • Глубокое обучение (Deep Learning)
  • laquoВ 1997 году Deep Blue обыграл в шахматы Каспарова В 2011 Wats
  • Распознавание основано на feature detection и последующем раз
  • Распознавание рукописных цифр
  • Еще пример посложнее
  • Использование нейронной сети с обучением
  • Сверхвысокая размерность при работе с первичным представлением
  • Пиксельное кодирование
  • Принцип иерархии понятий ndash основа deep learning
  • Разреженное (sparse) кодирование
  • Словарь для лиц
  • Slide 58
  • Выделение объектов заданного класса
  • Основные архитектуры Deep Learning
  • Задача классификации распознавания и подобные являются задачей
  • Фактор - графы
  • Slide 63
  • Slide 64
  • Подход разреженного кодирования
  • Обобщенная архитектура
  • Slide 67
  • Slide 68
  • Slide 69
  • В действительности работают любые архитектуры построения функц
  • Machine Learning with Torch7 (httpcodecogbitscomwikidoku
  • Torch 7 является расширением Lua
  • Slide 73
  • Slide 74
  • Сверточные (convolution) нейронные сети
  • Свертка и архитектура 4-х уровневой сверточной сети
  • Функциональная структура
  • Примеры успешного применения сверточных сетей
  • Диагностика эпилепсии по ЭЭГ
  • Реализация сверточной сетью
  • Одна из самых больших сверточных сетей
  • Пример тэгирования
  • Пример поиска похожих по изображению
  • Пример поиска в коллекции изображений по текстовому запросу
  • Пример laquoоблачногоraquo классификатора изображений
  • Slide 86
  • Самообучающиеся нейронные сети на основе минимизации функции эн
  • RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцман
  • Алгоритм обучения Contrastive Divergence (CD)
  • Основные уравнения адаптации
  • Алгоритм Хинтона - Contrastive Divergence (CD-k)
  • darch Package for deep architectures and Restricted-Bolzmann-
  • Связь плотности вероятности и энергии
  • Задача обучения с точки минимизации энергии сети
  • Интуитивные соображения
  • Slide 96
  • Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decom
  • Sparse linear reconstruction
  • Автоэнкодер (auto encoder)
  • Архитекттура ICA моделей
  • Итеративные алгоритмы с оптимальным разреженным кодированием 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)
Page 58: !Predictive analytics part_2

Выделение объектов заданного класса

Основные архитектуры 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) матрицы Якобиана

ቈ120597119865119894ሺ119883119894minus1119882119894ሻ120597119882119894 119896119897 = 120597[119865119894(119883119894minus1119882119894)]119896120597[119882119894]119897

Сводится к рекуррентному соотношению для вычисления градиента 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

Сверточная (convolution) нейронная сеть

1 -- parameters 2 nstates = 16256128 3 fanin = 14 4 filtsize = 5 5 poolsize = 2 6 normkernel = imagegaussian1D(7) 7 8 -- Container 9 model = nnSequential()1011 -- stage 1 filter bank -gt squashing -gt L2 pooling -gt normalization12 modeladd(nnSpatialConvolutionMap(nntablesrandom(nfeats nstates[1] fanin[1]) filtsize filtsize))13 modeladd(nnTanh())14 modeladd(nnSpatialLPPooling(nstates[1]2poolsizepoolsizepoolsizepoolsize))15 modeladd(nnSpatialSubtractiveNormalization(16 normkernel))1617 -- stage 2 filter bank -gt squashing -gt L2 pooling -gt normalization18 modeladd(nnSpatialConvolutionMap(nntablesrandom(nstates[1] nstates[2] fanin[2]) filtsize filtsize))19 modeladd(nnTanh())20 modeladd(nnSpatialLPPooling(nstates[2]2poolsizepoolsizepoolsizepoolsize))21 modeladd(nnSpatialSubtractiveNormalization(nstates[2] normkernel))2223 -- stage 3 standard 2-layer neural network24 modeladd(nnReshape(nstates[2]filtsizefiltsize))25 modeladd(nnLinear(nstates[2]filtsizefiltsize nstates[3]))26 modeladd(nnTanh())27 modeladd(nnLinear(nstates[3] noutputs))

Код программы на Torch 7

Сверточные (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

Sparse linear reconstruction

bull Energy=reconstruction_error+code_prediction_error+code_sparsity

Автоэнкодер (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

bull saednntrain(x y hidden = c(1) activationfun = sigm learningrate = 08 momentum = 05 learningrate_scale = 1 output = sigm sae_output = linear numepochs = 3 batchsize = 100 hidden_dropout = 0 visible_dropout = 0)

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

Архитектура сети SAE

Архитектура с 5Х4 hidden 3 outs

Example

Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02)) Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1)) x lt- matrix(c(Var1 Var2) nrow = 100 ncol = 2)y lt- c(rep(1 50) rep(0 50))

обучение сетиdnn lt- saednntrain(x y hidden = c(5 5))

Анализ обучающего набора данныхgt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370helliphelliphelliphelliphelliphelliphelliphellip

gt y [1] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 [54] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

plot3d(xy)

Параметры SAE сети

gt dnn$input_dim[1] 2$output_dim[1] 1$hidden[1] 5 5$size[1] 2 5 5 1$activationfun[1] sigm$learningrate[1] 08

$momentum[1] 05$learningrate_scale[1] 1$hidden_dropout[1] 0$visible_dropout[1] 0$output[1] sigm$W

Коэффициенты связей

$W$W[[1]] [1] [2][1] -014355854 02471840[2] 011378030 -00715094[3] -004343738 03667468[4] 012756946 -01303379[5] -003445704 02293772

$W[[2]] [1] [2] [3] [4] [5][1] 00420191661 -0023073732 -008762756 0035575714 -0063000016[2] 00072771988 -0131204147 -010591421 0018221305 -0025539769[3] -01071896826 -0019479685 -009892573 -0012976429 -0111886901[4] -00009477304 -0023137518 -002147218 0007969452 -0118696306[5] 00045016013 0001885546 -010170954 -0140312396 -0003970102

$W[[3]] [1] [2] [3] [4] [5][1] 01027992 -007288099 003051227 -001731639 0009518049

$vW$vW[[1]] [1] [2][1] -8335203e-06 1368580e-05[2] -6530183e-05 1135070e-04[3] 2544302e-05 -3947111e-05[4] -5512835e-06 9541682e-06[5] 3822854e-05 -6281762e-05

$vW[[2]] [1] [2] [3] [4] [5][1] 4172450e-04 -2554411e-04 4896670e-04 -3526093e-04 3041932e-04[2] -3210759e-04 1978412e-04 -3769148e-04 2727933e-04 -2338477e-04[3] 1058770e-04 -6705336e-05 1244419e-04 -9201508e-05 7678296e-05[4] -8894178e-05 5481668e-05 -1044110e-04 7558269e-05 -6477571e-05[5] 2676520e-05 -1622289e-05 3139684e-05 -2243174e-05 1954349e-05

$vW[[3]] [1] [2] [3] [4] [5][1] -0002603034 -0002398256 -0003274074 -0002542478 -000209672

Предсказание обученной сетью

predict by dnntest_Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02))test_Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1))test_x lt- matrix(c(test_Var1 test_Var2) nrow = 100 ncol = 2)nntest(dnn test_x y)

[1] 025 Value error rate

Сравнение обучающей и тестовой выборки

gttest_x [1] [2] [1] 091887443 -08940890 [2] 115219448 -06050481 [3] 069917981 -08524551 [4] 028213787 -08146816 [5] 098405598 -11440813 [6] 185911887 -08203652 [7] 010843056 -10123789 [8] 083827953 -07594760 [9] -016373562 -09087116 [10] 088298748 -09767741 [11] 005280917 -07525407

gt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370

Plot3d(test_xy) Plot3d(xy)

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)

Подготовка к обработке

starting installationstep1installpackages(devtools)library(devtools)install_github(repo = mnist username = xrobin ref = master)library(mnist)

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
  • Аппроксимация линейными многообразиями (подпространствами)
  • Slide 30
  • Алгоритм
  • princomp(formula data = NULL subset naaction )
  • Principal Component Analysis (PCA)
  • Линейный дискриминантный анализ (Linear Discriminant Analysis -
  • Решение
  • lda(x grouping prior = proportions tol = 10e-4 method
  • Slide 37
  • Linear Discriminant Analysis (LDA)
  • Сравнение PCA и LDA
  • Метод опорных векторов (Support Vector Machines - SVM)
  • Идея алгоритма
  • Иллюстрация на простейшем примере
  • Линейная неразделимость и использование ядер
  • Иллюстрация использования ядра для отображения 2D -gt 3D
  • svm((formula data = NULL subset naaction = naomit sc
  • Support Vector Machines
  • Глубокое обучение (Deep Learning)
  • laquoВ 1997 году Deep Blue обыграл в шахматы Каспарова В 2011 Wats
  • Распознавание основано на feature detection и последующем раз
  • Распознавание рукописных цифр
  • Еще пример посложнее
  • Использование нейронной сети с обучением
  • Сверхвысокая размерность при работе с первичным представлением
  • Пиксельное кодирование
  • Принцип иерархии понятий ndash основа deep learning
  • Разреженное (sparse) кодирование
  • Словарь для лиц
  • Slide 58
  • Выделение объектов заданного класса
  • Основные архитектуры Deep Learning
  • Задача классификации распознавания и подобные являются задачей
  • Фактор - графы
  • Slide 63
  • Slide 64
  • Подход разреженного кодирования
  • Обобщенная архитектура
  • Slide 67
  • Slide 68
  • Slide 69
  • В действительности работают любые архитектуры построения функц
  • Machine Learning with Torch7 (httpcodecogbitscomwikidoku
  • Torch 7 является расширением Lua
  • Slide 73
  • Slide 74
  • Сверточные (convolution) нейронные сети
  • Свертка и архитектура 4-х уровневой сверточной сети
  • Функциональная структура
  • Примеры успешного применения сверточных сетей
  • Диагностика эпилепсии по ЭЭГ
  • Реализация сверточной сетью
  • Одна из самых больших сверточных сетей
  • Пример тэгирования
  • Пример поиска похожих по изображению
  • Пример поиска в коллекции изображений по текстовому запросу
  • Пример laquoоблачногоraquo классификатора изображений
  • Slide 86
  • Самообучающиеся нейронные сети на основе минимизации функции эн
  • RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцман
  • Алгоритм обучения Contrastive Divergence (CD)
  • Основные уравнения адаптации
  • Алгоритм Хинтона - Contrastive Divergence (CD-k)
  • darch Package for deep architectures and Restricted-Bolzmann-
  • Связь плотности вероятности и энергии
  • Задача обучения с точки минимизации энергии сети
  • Интуитивные соображения
  • Slide 96
  • Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decom
  • Sparse linear reconstruction
  • Автоэнкодер (auto encoder)
  • Архитекттура ICA моделей
  • Итеративные алгоритмы с оптимальным разреженным кодированием 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)
Page 59: !Predictive analytics part_2

Основные архитектуры 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) матрицы Якобиана

ቈ120597119865119894ሺ119883119894minus1119882119894ሻ120597119882119894 119896119897 = 120597[119865119894(119883119894minus1119882119894)]119896120597[119882119894]119897

Сводится к рекуррентному соотношению для вычисления градиента 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

Сверточная (convolution) нейронная сеть

1 -- parameters 2 nstates = 16256128 3 fanin = 14 4 filtsize = 5 5 poolsize = 2 6 normkernel = imagegaussian1D(7) 7 8 -- Container 9 model = nnSequential()1011 -- stage 1 filter bank -gt squashing -gt L2 pooling -gt normalization12 modeladd(nnSpatialConvolutionMap(nntablesrandom(nfeats nstates[1] fanin[1]) filtsize filtsize))13 modeladd(nnTanh())14 modeladd(nnSpatialLPPooling(nstates[1]2poolsizepoolsizepoolsizepoolsize))15 modeladd(nnSpatialSubtractiveNormalization(16 normkernel))1617 -- stage 2 filter bank -gt squashing -gt L2 pooling -gt normalization18 modeladd(nnSpatialConvolutionMap(nntablesrandom(nstates[1] nstates[2] fanin[2]) filtsize filtsize))19 modeladd(nnTanh())20 modeladd(nnSpatialLPPooling(nstates[2]2poolsizepoolsizepoolsizepoolsize))21 modeladd(nnSpatialSubtractiveNormalization(nstates[2] normkernel))2223 -- stage 3 standard 2-layer neural network24 modeladd(nnReshape(nstates[2]filtsizefiltsize))25 modeladd(nnLinear(nstates[2]filtsizefiltsize nstates[3]))26 modeladd(nnTanh())27 modeladd(nnLinear(nstates[3] noutputs))

Код программы на Torch 7

Сверточные (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

Sparse linear reconstruction

bull Energy=reconstruction_error+code_prediction_error+code_sparsity

Автоэнкодер (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

bull saednntrain(x y hidden = c(1) activationfun = sigm learningrate = 08 momentum = 05 learningrate_scale = 1 output = sigm sae_output = linear numepochs = 3 batchsize = 100 hidden_dropout = 0 visible_dropout = 0)

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

Архитектура сети SAE

Архитектура с 5Х4 hidden 3 outs

Example

Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02)) Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1)) x lt- matrix(c(Var1 Var2) nrow = 100 ncol = 2)y lt- c(rep(1 50) rep(0 50))

обучение сетиdnn lt- saednntrain(x y hidden = c(5 5))

Анализ обучающего набора данныхgt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370helliphelliphelliphelliphelliphelliphelliphellip

gt y [1] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 [54] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

plot3d(xy)

Параметры SAE сети

gt dnn$input_dim[1] 2$output_dim[1] 1$hidden[1] 5 5$size[1] 2 5 5 1$activationfun[1] sigm$learningrate[1] 08

$momentum[1] 05$learningrate_scale[1] 1$hidden_dropout[1] 0$visible_dropout[1] 0$output[1] sigm$W

Коэффициенты связей

$W$W[[1]] [1] [2][1] -014355854 02471840[2] 011378030 -00715094[3] -004343738 03667468[4] 012756946 -01303379[5] -003445704 02293772

$W[[2]] [1] [2] [3] [4] [5][1] 00420191661 -0023073732 -008762756 0035575714 -0063000016[2] 00072771988 -0131204147 -010591421 0018221305 -0025539769[3] -01071896826 -0019479685 -009892573 -0012976429 -0111886901[4] -00009477304 -0023137518 -002147218 0007969452 -0118696306[5] 00045016013 0001885546 -010170954 -0140312396 -0003970102

$W[[3]] [1] [2] [3] [4] [5][1] 01027992 -007288099 003051227 -001731639 0009518049

$vW$vW[[1]] [1] [2][1] -8335203e-06 1368580e-05[2] -6530183e-05 1135070e-04[3] 2544302e-05 -3947111e-05[4] -5512835e-06 9541682e-06[5] 3822854e-05 -6281762e-05

$vW[[2]] [1] [2] [3] [4] [5][1] 4172450e-04 -2554411e-04 4896670e-04 -3526093e-04 3041932e-04[2] -3210759e-04 1978412e-04 -3769148e-04 2727933e-04 -2338477e-04[3] 1058770e-04 -6705336e-05 1244419e-04 -9201508e-05 7678296e-05[4] -8894178e-05 5481668e-05 -1044110e-04 7558269e-05 -6477571e-05[5] 2676520e-05 -1622289e-05 3139684e-05 -2243174e-05 1954349e-05

$vW[[3]] [1] [2] [3] [4] [5][1] -0002603034 -0002398256 -0003274074 -0002542478 -000209672

Предсказание обученной сетью

predict by dnntest_Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02))test_Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1))test_x lt- matrix(c(test_Var1 test_Var2) nrow = 100 ncol = 2)nntest(dnn test_x y)

[1] 025 Value error rate

Сравнение обучающей и тестовой выборки

gttest_x [1] [2] [1] 091887443 -08940890 [2] 115219448 -06050481 [3] 069917981 -08524551 [4] 028213787 -08146816 [5] 098405598 -11440813 [6] 185911887 -08203652 [7] 010843056 -10123789 [8] 083827953 -07594760 [9] -016373562 -09087116 [10] 088298748 -09767741 [11] 005280917 -07525407

gt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370

Plot3d(test_xy) Plot3d(xy)

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)

Подготовка к обработке

starting installationstep1installpackages(devtools)library(devtools)install_github(repo = mnist username = xrobin ref = master)library(mnist)

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
  • Аппроксимация линейными многообразиями (подпространствами)
  • Slide 30
  • Алгоритм
  • princomp(formula data = NULL subset naaction )
  • Principal Component Analysis (PCA)
  • Линейный дискриминантный анализ (Linear Discriminant Analysis -
  • Решение
  • lda(x grouping prior = proportions tol = 10e-4 method
  • Slide 37
  • Linear Discriminant Analysis (LDA)
  • Сравнение PCA и LDA
  • Метод опорных векторов (Support Vector Machines - SVM)
  • Идея алгоритма
  • Иллюстрация на простейшем примере
  • Линейная неразделимость и использование ядер
  • Иллюстрация использования ядра для отображения 2D -gt 3D
  • svm((formula data = NULL subset naaction = naomit sc
  • Support Vector Machines
  • Глубокое обучение (Deep Learning)
  • laquoВ 1997 году Deep Blue обыграл в шахматы Каспарова В 2011 Wats
  • Распознавание основано на feature detection и последующем раз
  • Распознавание рукописных цифр
  • Еще пример посложнее
  • Использование нейронной сети с обучением
  • Сверхвысокая размерность при работе с первичным представлением
  • Пиксельное кодирование
  • Принцип иерархии понятий ndash основа deep learning
  • Разреженное (sparse) кодирование
  • Словарь для лиц
  • Slide 58
  • Выделение объектов заданного класса
  • Основные архитектуры Deep Learning
  • Задача классификации распознавания и подобные являются задачей
  • Фактор - графы
  • Slide 63
  • Slide 64
  • Подход разреженного кодирования
  • Обобщенная архитектура
  • Slide 67
  • Slide 68
  • Slide 69
  • В действительности работают любые архитектуры построения функц
  • Machine Learning with Torch7 (httpcodecogbitscomwikidoku
  • Torch 7 является расширением Lua
  • Slide 73
  • Slide 74
  • Сверточные (convolution) нейронные сети
  • Свертка и архитектура 4-х уровневой сверточной сети
  • Функциональная структура
  • Примеры успешного применения сверточных сетей
  • Диагностика эпилепсии по ЭЭГ
  • Реализация сверточной сетью
  • Одна из самых больших сверточных сетей
  • Пример тэгирования
  • Пример поиска похожих по изображению
  • Пример поиска в коллекции изображений по текстовому запросу
  • Пример laquoоблачногоraquo классификатора изображений
  • Slide 86
  • Самообучающиеся нейронные сети на основе минимизации функции эн
  • RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцман
  • Алгоритм обучения Contrastive Divergence (CD)
  • Основные уравнения адаптации
  • Алгоритм Хинтона - Contrastive Divergence (CD-k)
  • darch Package for deep architectures and Restricted-Bolzmann-
  • Связь плотности вероятности и энергии
  • Задача обучения с точки минимизации энергии сети
  • Интуитивные соображения
  • Slide 96
  • Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decom
  • Sparse linear reconstruction
  • Автоэнкодер (auto encoder)
  • Архитекттура ICA моделей
  • Итеративные алгоритмы с оптимальным разреженным кодированием 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)
Page 60: !Predictive analytics part_2

Задача классификации распознавания и подобные являются задачей конструирования функции на множестве входных наборов и со значениями в множестве требуемого вида выходных

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) матрицы Якобиана

ቈ120597119865119894ሺ119883119894minus1119882119894ሻ120597119882119894 119896119897 = 120597[119865119894(119883119894minus1119882119894)]119896120597[119882119894]119897

Сводится к рекуррентному соотношению для вычисления градиента 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

Сверточная (convolution) нейронная сеть

1 -- parameters 2 nstates = 16256128 3 fanin = 14 4 filtsize = 5 5 poolsize = 2 6 normkernel = imagegaussian1D(7) 7 8 -- Container 9 model = nnSequential()1011 -- stage 1 filter bank -gt squashing -gt L2 pooling -gt normalization12 modeladd(nnSpatialConvolutionMap(nntablesrandom(nfeats nstates[1] fanin[1]) filtsize filtsize))13 modeladd(nnTanh())14 modeladd(nnSpatialLPPooling(nstates[1]2poolsizepoolsizepoolsizepoolsize))15 modeladd(nnSpatialSubtractiveNormalization(16 normkernel))1617 -- stage 2 filter bank -gt squashing -gt L2 pooling -gt normalization18 modeladd(nnSpatialConvolutionMap(nntablesrandom(nstates[1] nstates[2] fanin[2]) filtsize filtsize))19 modeladd(nnTanh())20 modeladd(nnSpatialLPPooling(nstates[2]2poolsizepoolsizepoolsizepoolsize))21 modeladd(nnSpatialSubtractiveNormalization(nstates[2] normkernel))2223 -- stage 3 standard 2-layer neural network24 modeladd(nnReshape(nstates[2]filtsizefiltsize))25 modeladd(nnLinear(nstates[2]filtsizefiltsize nstates[3]))26 modeladd(nnTanh())27 modeladd(nnLinear(nstates[3] noutputs))

Код программы на Torch 7

Сверточные (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

Sparse linear reconstruction

bull Energy=reconstruction_error+code_prediction_error+code_sparsity

Автоэнкодер (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

bull saednntrain(x y hidden = c(1) activationfun = sigm learningrate = 08 momentum = 05 learningrate_scale = 1 output = sigm sae_output = linear numepochs = 3 batchsize = 100 hidden_dropout = 0 visible_dropout = 0)

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

Архитектура сети SAE

Архитектура с 5Х4 hidden 3 outs

Example

Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02)) Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1)) x lt- matrix(c(Var1 Var2) nrow = 100 ncol = 2)y lt- c(rep(1 50) rep(0 50))

обучение сетиdnn lt- saednntrain(x y hidden = c(5 5))

Анализ обучающего набора данныхgt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370helliphelliphelliphelliphelliphelliphelliphellip

gt y [1] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 [54] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

plot3d(xy)

Параметры SAE сети

gt dnn$input_dim[1] 2$output_dim[1] 1$hidden[1] 5 5$size[1] 2 5 5 1$activationfun[1] sigm$learningrate[1] 08

$momentum[1] 05$learningrate_scale[1] 1$hidden_dropout[1] 0$visible_dropout[1] 0$output[1] sigm$W

Коэффициенты связей

$W$W[[1]] [1] [2][1] -014355854 02471840[2] 011378030 -00715094[3] -004343738 03667468[4] 012756946 -01303379[5] -003445704 02293772

$W[[2]] [1] [2] [3] [4] [5][1] 00420191661 -0023073732 -008762756 0035575714 -0063000016[2] 00072771988 -0131204147 -010591421 0018221305 -0025539769[3] -01071896826 -0019479685 -009892573 -0012976429 -0111886901[4] -00009477304 -0023137518 -002147218 0007969452 -0118696306[5] 00045016013 0001885546 -010170954 -0140312396 -0003970102

$W[[3]] [1] [2] [3] [4] [5][1] 01027992 -007288099 003051227 -001731639 0009518049

$vW$vW[[1]] [1] [2][1] -8335203e-06 1368580e-05[2] -6530183e-05 1135070e-04[3] 2544302e-05 -3947111e-05[4] -5512835e-06 9541682e-06[5] 3822854e-05 -6281762e-05

$vW[[2]] [1] [2] [3] [4] [5][1] 4172450e-04 -2554411e-04 4896670e-04 -3526093e-04 3041932e-04[2] -3210759e-04 1978412e-04 -3769148e-04 2727933e-04 -2338477e-04[3] 1058770e-04 -6705336e-05 1244419e-04 -9201508e-05 7678296e-05[4] -8894178e-05 5481668e-05 -1044110e-04 7558269e-05 -6477571e-05[5] 2676520e-05 -1622289e-05 3139684e-05 -2243174e-05 1954349e-05

$vW[[3]] [1] [2] [3] [4] [5][1] -0002603034 -0002398256 -0003274074 -0002542478 -000209672

Предсказание обученной сетью

predict by dnntest_Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02))test_Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1))test_x lt- matrix(c(test_Var1 test_Var2) nrow = 100 ncol = 2)nntest(dnn test_x y)

[1] 025 Value error rate

Сравнение обучающей и тестовой выборки

gttest_x [1] [2] [1] 091887443 -08940890 [2] 115219448 -06050481 [3] 069917981 -08524551 [4] 028213787 -08146816 [5] 098405598 -11440813 [6] 185911887 -08203652 [7] 010843056 -10123789 [8] 083827953 -07594760 [9] -016373562 -09087116 [10] 088298748 -09767741 [11] 005280917 -07525407

gt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370

Plot3d(test_xy) Plot3d(xy)

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)

Подготовка к обработке

starting installationstep1installpackages(devtools)library(devtools)install_github(repo = mnist username = xrobin ref = master)library(mnist)

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
  • Аппроксимация линейными многообразиями (подпространствами)
  • Slide 30
  • Алгоритм
  • princomp(formula data = NULL subset naaction )
  • Principal Component Analysis (PCA)
  • Линейный дискриминантный анализ (Linear Discriminant Analysis -
  • Решение
  • lda(x grouping prior = proportions tol = 10e-4 method
  • Slide 37
  • Linear Discriminant Analysis (LDA)
  • Сравнение PCA и LDA
  • Метод опорных векторов (Support Vector Machines - SVM)
  • Идея алгоритма
  • Иллюстрация на простейшем примере
  • Линейная неразделимость и использование ядер
  • Иллюстрация использования ядра для отображения 2D -gt 3D
  • svm((formula data = NULL subset naaction = naomit sc
  • Support Vector Machines
  • Глубокое обучение (Deep Learning)
  • laquoВ 1997 году Deep Blue обыграл в шахматы Каспарова В 2011 Wats
  • Распознавание основано на feature detection и последующем раз
  • Распознавание рукописных цифр
  • Еще пример посложнее
  • Использование нейронной сети с обучением
  • Сверхвысокая размерность при работе с первичным представлением
  • Пиксельное кодирование
  • Принцип иерархии понятий ndash основа deep learning
  • Разреженное (sparse) кодирование
  • Словарь для лиц
  • Slide 58
  • Выделение объектов заданного класса
  • Основные архитектуры Deep Learning
  • Задача классификации распознавания и подобные являются задачей
  • Фактор - графы
  • Slide 63
  • Slide 64
  • Подход разреженного кодирования
  • Обобщенная архитектура
  • Slide 67
  • Slide 68
  • Slide 69
  • В действительности работают любые архитектуры построения функц
  • Machine Learning with Torch7 (httpcodecogbitscomwikidoku
  • Torch 7 является расширением Lua
  • Slide 73
  • Slide 74
  • Сверточные (convolution) нейронные сети
  • Свертка и архитектура 4-х уровневой сверточной сети
  • Функциональная структура
  • Примеры успешного применения сверточных сетей
  • Диагностика эпилепсии по ЭЭГ
  • Реализация сверточной сетью
  • Одна из самых больших сверточных сетей
  • Пример тэгирования
  • Пример поиска похожих по изображению
  • Пример поиска в коллекции изображений по текстовому запросу
  • Пример laquoоблачногоraquo классификатора изображений
  • Slide 86
  • Самообучающиеся нейронные сети на основе минимизации функции эн
  • RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцман
  • Алгоритм обучения Contrastive Divergence (CD)
  • Основные уравнения адаптации
  • Алгоритм Хинтона - Contrastive Divergence (CD-k)
  • darch Package for deep architectures and Restricted-Bolzmann-
  • Связь плотности вероятности и энергии
  • Задача обучения с точки минимизации энергии сети
  • Интуитивные соображения
  • Slide 96
  • Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decom
  • Sparse linear reconstruction
  • Автоэнкодер (auto encoder)
  • Архитекттура ICA моделей
  • Итеративные алгоритмы с оптимальным разреженным кодированием 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)
Page 61: !Predictive analytics part_2

Фактор - графыВсе методы которые расмотрели 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) матрицы Якобиана

ቈ120597119865119894ሺ119883119894minus1119882119894ሻ120597119882119894 119896119897 = 120597[119865119894(119883119894minus1119882119894)]119896120597[119882119894]119897

Сводится к рекуррентному соотношению для вычисления градиента 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

Сверточная (convolution) нейронная сеть

1 -- parameters 2 nstates = 16256128 3 fanin = 14 4 filtsize = 5 5 poolsize = 2 6 normkernel = imagegaussian1D(7) 7 8 -- Container 9 model = nnSequential()1011 -- stage 1 filter bank -gt squashing -gt L2 pooling -gt normalization12 modeladd(nnSpatialConvolutionMap(nntablesrandom(nfeats nstates[1] fanin[1]) filtsize filtsize))13 modeladd(nnTanh())14 modeladd(nnSpatialLPPooling(nstates[1]2poolsizepoolsizepoolsizepoolsize))15 modeladd(nnSpatialSubtractiveNormalization(16 normkernel))1617 -- stage 2 filter bank -gt squashing -gt L2 pooling -gt normalization18 modeladd(nnSpatialConvolutionMap(nntablesrandom(nstates[1] nstates[2] fanin[2]) filtsize filtsize))19 modeladd(nnTanh())20 modeladd(nnSpatialLPPooling(nstates[2]2poolsizepoolsizepoolsizepoolsize))21 modeladd(nnSpatialSubtractiveNormalization(nstates[2] normkernel))2223 -- stage 3 standard 2-layer neural network24 modeladd(nnReshape(nstates[2]filtsizefiltsize))25 modeladd(nnLinear(nstates[2]filtsizefiltsize nstates[3]))26 modeladd(nnTanh())27 modeladd(nnLinear(nstates[3] noutputs))

Код программы на Torch 7

Сверточные (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

Sparse linear reconstruction

bull Energy=reconstruction_error+code_prediction_error+code_sparsity

Автоэнкодер (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

bull saednntrain(x y hidden = c(1) activationfun = sigm learningrate = 08 momentum = 05 learningrate_scale = 1 output = sigm sae_output = linear numepochs = 3 batchsize = 100 hidden_dropout = 0 visible_dropout = 0)

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

Архитектура сети SAE

Архитектура с 5Х4 hidden 3 outs

Example

Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02)) Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1)) x lt- matrix(c(Var1 Var2) nrow = 100 ncol = 2)y lt- c(rep(1 50) rep(0 50))

обучение сетиdnn lt- saednntrain(x y hidden = c(5 5))

Анализ обучающего набора данныхgt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370helliphelliphelliphelliphelliphelliphelliphellip

gt y [1] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 [54] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

plot3d(xy)

Параметры SAE сети

gt dnn$input_dim[1] 2$output_dim[1] 1$hidden[1] 5 5$size[1] 2 5 5 1$activationfun[1] sigm$learningrate[1] 08

$momentum[1] 05$learningrate_scale[1] 1$hidden_dropout[1] 0$visible_dropout[1] 0$output[1] sigm$W

Коэффициенты связей

$W$W[[1]] [1] [2][1] -014355854 02471840[2] 011378030 -00715094[3] -004343738 03667468[4] 012756946 -01303379[5] -003445704 02293772

$W[[2]] [1] [2] [3] [4] [5][1] 00420191661 -0023073732 -008762756 0035575714 -0063000016[2] 00072771988 -0131204147 -010591421 0018221305 -0025539769[3] -01071896826 -0019479685 -009892573 -0012976429 -0111886901[4] -00009477304 -0023137518 -002147218 0007969452 -0118696306[5] 00045016013 0001885546 -010170954 -0140312396 -0003970102

$W[[3]] [1] [2] [3] [4] [5][1] 01027992 -007288099 003051227 -001731639 0009518049

$vW$vW[[1]] [1] [2][1] -8335203e-06 1368580e-05[2] -6530183e-05 1135070e-04[3] 2544302e-05 -3947111e-05[4] -5512835e-06 9541682e-06[5] 3822854e-05 -6281762e-05

$vW[[2]] [1] [2] [3] [4] [5][1] 4172450e-04 -2554411e-04 4896670e-04 -3526093e-04 3041932e-04[2] -3210759e-04 1978412e-04 -3769148e-04 2727933e-04 -2338477e-04[3] 1058770e-04 -6705336e-05 1244419e-04 -9201508e-05 7678296e-05[4] -8894178e-05 5481668e-05 -1044110e-04 7558269e-05 -6477571e-05[5] 2676520e-05 -1622289e-05 3139684e-05 -2243174e-05 1954349e-05

$vW[[3]] [1] [2] [3] [4] [5][1] -0002603034 -0002398256 -0003274074 -0002542478 -000209672

Предсказание обученной сетью

predict by dnntest_Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02))test_Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1))test_x lt- matrix(c(test_Var1 test_Var2) nrow = 100 ncol = 2)nntest(dnn test_x y)

[1] 025 Value error rate

Сравнение обучающей и тестовой выборки

gttest_x [1] [2] [1] 091887443 -08940890 [2] 115219448 -06050481 [3] 069917981 -08524551 [4] 028213787 -08146816 [5] 098405598 -11440813 [6] 185911887 -08203652 [7] 010843056 -10123789 [8] 083827953 -07594760 [9] -016373562 -09087116 [10] 088298748 -09767741 [11] 005280917 -07525407

gt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370

Plot3d(test_xy) Plot3d(xy)

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)

Подготовка к обработке

starting installationstep1installpackages(devtools)library(devtools)install_github(repo = mnist username = xrobin ref = master)library(mnist)

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
  • Аппроксимация линейными многообразиями (подпространствами)
  • Slide 30
  • Алгоритм
  • princomp(formula data = NULL subset naaction )
  • Principal Component Analysis (PCA)
  • Линейный дискриминантный анализ (Linear Discriminant Analysis -
  • Решение
  • lda(x grouping prior = proportions tol = 10e-4 method
  • Slide 37
  • Linear Discriminant Analysis (LDA)
  • Сравнение PCA и LDA
  • Метод опорных векторов (Support Vector Machines - SVM)
  • Идея алгоритма
  • Иллюстрация на простейшем примере
  • Линейная неразделимость и использование ядер
  • Иллюстрация использования ядра для отображения 2D -gt 3D
  • svm((formula data = NULL subset naaction = naomit sc
  • Support Vector Machines
  • Глубокое обучение (Deep Learning)
  • laquoВ 1997 году Deep Blue обыграл в шахматы Каспарова В 2011 Wats
  • Распознавание основано на feature detection и последующем раз
  • Распознавание рукописных цифр
  • Еще пример посложнее
  • Использование нейронной сети с обучением
  • Сверхвысокая размерность при работе с первичным представлением
  • Пиксельное кодирование
  • Принцип иерархии понятий ndash основа deep learning
  • Разреженное (sparse) кодирование
  • Словарь для лиц
  • Slide 58
  • Выделение объектов заданного класса
  • Основные архитектуры Deep Learning
  • Задача классификации распознавания и подобные являются задачей
  • Фактор - графы
  • Slide 63
  • Slide 64
  • Подход разреженного кодирования
  • Обобщенная архитектура
  • Slide 67
  • Slide 68
  • Slide 69
  • В действительности работают любые архитектуры построения функц
  • Machine Learning with Torch7 (httpcodecogbitscomwikidoku
  • Torch 7 является расширением Lua
  • Slide 73
  • Slide 74
  • Сверточные (convolution) нейронные сети
  • Свертка и архитектура 4-х уровневой сверточной сети
  • Функциональная структура
  • Примеры успешного применения сверточных сетей
  • Диагностика эпилепсии по ЭЭГ
  • Реализация сверточной сетью
  • Одна из самых больших сверточных сетей
  • Пример тэгирования
  • Пример поиска похожих по изображению
  • Пример поиска в коллекции изображений по текстовому запросу
  • Пример laquoоблачногоraquo классификатора изображений
  • Slide 86
  • Самообучающиеся нейронные сети на основе минимизации функции эн
  • RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцман
  • Алгоритм обучения Contrastive Divergence (CD)
  • Основные уравнения адаптации
  • Алгоритм Хинтона - Contrastive Divergence (CD-k)
  • darch Package for deep architectures and Restricted-Bolzmann-
  • Связь плотности вероятности и энергии
  • Задача обучения с точки минимизации энергии сети
  • Интуитивные соображения
  • Slide 96
  • Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decom
  • Sparse linear reconstruction
  • Автоэнкодер (auto encoder)
  • Архитекттура ICA моделей
  • Итеративные алгоритмы с оптимальным разреженным кодированием 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)
Page 62: !Predictive analytics part_2

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) матрицы Якобиана

ቈ120597119865119894ሺ119883119894minus1119882119894ሻ120597119882119894 119896119897 = 120597[119865119894(119883119894minus1119882119894)]119896120597[119882119894]119897

Сводится к рекуррентному соотношению для вычисления градиента 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

Сверточная (convolution) нейронная сеть

1 -- parameters 2 nstates = 16256128 3 fanin = 14 4 filtsize = 5 5 poolsize = 2 6 normkernel = imagegaussian1D(7) 7 8 -- Container 9 model = nnSequential()1011 -- stage 1 filter bank -gt squashing -gt L2 pooling -gt normalization12 modeladd(nnSpatialConvolutionMap(nntablesrandom(nfeats nstates[1] fanin[1]) filtsize filtsize))13 modeladd(nnTanh())14 modeladd(nnSpatialLPPooling(nstates[1]2poolsizepoolsizepoolsizepoolsize))15 modeladd(nnSpatialSubtractiveNormalization(16 normkernel))1617 -- stage 2 filter bank -gt squashing -gt L2 pooling -gt normalization18 modeladd(nnSpatialConvolutionMap(nntablesrandom(nstates[1] nstates[2] fanin[2]) filtsize filtsize))19 modeladd(nnTanh())20 modeladd(nnSpatialLPPooling(nstates[2]2poolsizepoolsizepoolsizepoolsize))21 modeladd(nnSpatialSubtractiveNormalization(nstates[2] normkernel))2223 -- stage 3 standard 2-layer neural network24 modeladd(nnReshape(nstates[2]filtsizefiltsize))25 modeladd(nnLinear(nstates[2]filtsizefiltsize nstates[3]))26 modeladd(nnTanh())27 modeladd(nnLinear(nstates[3] noutputs))

Код программы на Torch 7

Сверточные (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

Sparse linear reconstruction

bull Energy=reconstruction_error+code_prediction_error+code_sparsity

Автоэнкодер (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

bull saednntrain(x y hidden = c(1) activationfun = sigm learningrate = 08 momentum = 05 learningrate_scale = 1 output = sigm sae_output = linear numepochs = 3 batchsize = 100 hidden_dropout = 0 visible_dropout = 0)

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

Архитектура сети SAE

Архитектура с 5Х4 hidden 3 outs

Example

Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02)) Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1)) x lt- matrix(c(Var1 Var2) nrow = 100 ncol = 2)y lt- c(rep(1 50) rep(0 50))

обучение сетиdnn lt- saednntrain(x y hidden = c(5 5))

Анализ обучающего набора данныхgt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370helliphelliphelliphelliphelliphelliphelliphellip

gt y [1] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 [54] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

plot3d(xy)

Параметры SAE сети

gt dnn$input_dim[1] 2$output_dim[1] 1$hidden[1] 5 5$size[1] 2 5 5 1$activationfun[1] sigm$learningrate[1] 08

$momentum[1] 05$learningrate_scale[1] 1$hidden_dropout[1] 0$visible_dropout[1] 0$output[1] sigm$W

Коэффициенты связей

$W$W[[1]] [1] [2][1] -014355854 02471840[2] 011378030 -00715094[3] -004343738 03667468[4] 012756946 -01303379[5] -003445704 02293772

$W[[2]] [1] [2] [3] [4] [5][1] 00420191661 -0023073732 -008762756 0035575714 -0063000016[2] 00072771988 -0131204147 -010591421 0018221305 -0025539769[3] -01071896826 -0019479685 -009892573 -0012976429 -0111886901[4] -00009477304 -0023137518 -002147218 0007969452 -0118696306[5] 00045016013 0001885546 -010170954 -0140312396 -0003970102

$W[[3]] [1] [2] [3] [4] [5][1] 01027992 -007288099 003051227 -001731639 0009518049

$vW$vW[[1]] [1] [2][1] -8335203e-06 1368580e-05[2] -6530183e-05 1135070e-04[3] 2544302e-05 -3947111e-05[4] -5512835e-06 9541682e-06[5] 3822854e-05 -6281762e-05

$vW[[2]] [1] [2] [3] [4] [5][1] 4172450e-04 -2554411e-04 4896670e-04 -3526093e-04 3041932e-04[2] -3210759e-04 1978412e-04 -3769148e-04 2727933e-04 -2338477e-04[3] 1058770e-04 -6705336e-05 1244419e-04 -9201508e-05 7678296e-05[4] -8894178e-05 5481668e-05 -1044110e-04 7558269e-05 -6477571e-05[5] 2676520e-05 -1622289e-05 3139684e-05 -2243174e-05 1954349e-05

$vW[[3]] [1] [2] [3] [4] [5][1] -0002603034 -0002398256 -0003274074 -0002542478 -000209672

Предсказание обученной сетью

predict by dnntest_Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02))test_Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1))test_x lt- matrix(c(test_Var1 test_Var2) nrow = 100 ncol = 2)nntest(dnn test_x y)

[1] 025 Value error rate

Сравнение обучающей и тестовой выборки

gttest_x [1] [2] [1] 091887443 -08940890 [2] 115219448 -06050481 [3] 069917981 -08524551 [4] 028213787 -08146816 [5] 098405598 -11440813 [6] 185911887 -08203652 [7] 010843056 -10123789 [8] 083827953 -07594760 [9] -016373562 -09087116 [10] 088298748 -09767741 [11] 005280917 -07525407

gt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370

Plot3d(test_xy) Plot3d(xy)

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)

Подготовка к обработке

starting installationstep1installpackages(devtools)library(devtools)install_github(repo = mnist username = xrobin ref = master)library(mnist)

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
  • Аппроксимация линейными многообразиями (подпространствами)
  • Slide 30
  • Алгоритм
  • princomp(formula data = NULL subset naaction )
  • Principal Component Analysis (PCA)
  • Линейный дискриминантный анализ (Linear Discriminant Analysis -
  • Решение
  • lda(x grouping prior = proportions tol = 10e-4 method
  • Slide 37
  • Linear Discriminant Analysis (LDA)
  • Сравнение PCA и LDA
  • Метод опорных векторов (Support Vector Machines - SVM)
  • Идея алгоритма
  • Иллюстрация на простейшем примере
  • Линейная неразделимость и использование ядер
  • Иллюстрация использования ядра для отображения 2D -gt 3D
  • svm((formula data = NULL subset naaction = naomit sc
  • Support Vector Machines
  • Глубокое обучение (Deep Learning)
  • laquoВ 1997 году Deep Blue обыграл в шахматы Каспарова В 2011 Wats
  • Распознавание основано на feature detection и последующем раз
  • Распознавание рукописных цифр
  • Еще пример посложнее
  • Использование нейронной сети с обучением
  • Сверхвысокая размерность при работе с первичным представлением
  • Пиксельное кодирование
  • Принцип иерархии понятий ndash основа deep learning
  • Разреженное (sparse) кодирование
  • Словарь для лиц
  • Slide 58
  • Выделение объектов заданного класса
  • Основные архитектуры Deep Learning
  • Задача классификации распознавания и подобные являются задачей
  • Фактор - графы
  • Slide 63
  • Slide 64
  • Подход разреженного кодирования
  • Обобщенная архитектура
  • Slide 67
  • Slide 68
  • Slide 69
  • В действительности работают любые архитектуры построения функц
  • Machine Learning with Torch7 (httpcodecogbitscomwikidoku
  • Torch 7 является расширением Lua
  • Slide 73
  • Slide 74
  • Сверточные (convolution) нейронные сети
  • Свертка и архитектура 4-х уровневой сверточной сети
  • Функциональная структура
  • Примеры успешного применения сверточных сетей
  • Диагностика эпилепсии по ЭЭГ
  • Реализация сверточной сетью
  • Одна из самых больших сверточных сетей
  • Пример тэгирования
  • Пример поиска похожих по изображению
  • Пример поиска в коллекции изображений по текстовому запросу
  • Пример laquoоблачногоraquo классификатора изображений
  • Slide 86
  • Самообучающиеся нейронные сети на основе минимизации функции эн
  • RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцман
  • Алгоритм обучения Contrastive Divergence (CD)
  • Основные уравнения адаптации
  • Алгоритм Хинтона - Contrastive Divergence (CD-k)
  • darch Package for deep architectures and Restricted-Bolzmann-
  • Связь плотности вероятности и энергии
  • Задача обучения с точки минимизации энергии сети
  • Интуитивные соображения
  • Slide 96
  • Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decom
  • Sparse linear reconstruction
  • Автоэнкодер (auto encoder)
  • Архитекттура ICA моделей
  • Итеративные алгоритмы с оптимальным разреженным кодированием 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)
Page 63: !Predictive analytics part_2

bull Основная идея ndash применение нелинейного отображения входного набора в более высокоразмерное пространство где многие неразделимые композиции становятся разделимыми а затем объединение композиций по семантической близости

Подход разреженного кодирования

Обобщенная архитектура

bull DL сеть может быть собрана каскадированием и использованием обучения с учителем

Здесь используется forward propagation для обучения

Для настройки коэффициентов используется метод fprof для каждого

Требуется знание градиента энергии

Элементы (kl) матрицы Якобиана

Требуется знание градиента энергии 120597119864120597119882119894 = 120597119864120597119883119894120597119865119894(119883119894minus1119882119894)120597119882119894

ሾ1times 119873119908ሿ= ሾ1times 119873119909ሿlowast[119873119909 times 119873119908] Элементы (kl) матрицы Якобиана

ቈ120597119865119894ሺ119883119894minus1119882119894ሻ120597119882119894 119896119897 = 120597[119865119894(119883119894minus1119882119894)]119896120597[119882119894]119897

Сводится к рекуррентному соотношению для вычисления градиента 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

Сверточная (convolution) нейронная сеть

1 -- parameters 2 nstates = 16256128 3 fanin = 14 4 filtsize = 5 5 poolsize = 2 6 normkernel = imagegaussian1D(7) 7 8 -- Container 9 model = nnSequential()1011 -- stage 1 filter bank -gt squashing -gt L2 pooling -gt normalization12 modeladd(nnSpatialConvolutionMap(nntablesrandom(nfeats nstates[1] fanin[1]) filtsize filtsize))13 modeladd(nnTanh())14 modeladd(nnSpatialLPPooling(nstates[1]2poolsizepoolsizepoolsizepoolsize))15 modeladd(nnSpatialSubtractiveNormalization(16 normkernel))1617 -- stage 2 filter bank -gt squashing -gt L2 pooling -gt normalization18 modeladd(nnSpatialConvolutionMap(nntablesrandom(nstates[1] nstates[2] fanin[2]) filtsize filtsize))19 modeladd(nnTanh())20 modeladd(nnSpatialLPPooling(nstates[2]2poolsizepoolsizepoolsizepoolsize))21 modeladd(nnSpatialSubtractiveNormalization(nstates[2] normkernel))2223 -- stage 3 standard 2-layer neural network24 modeladd(nnReshape(nstates[2]filtsizefiltsize))25 modeladd(nnLinear(nstates[2]filtsizefiltsize nstates[3]))26 modeladd(nnTanh())27 modeladd(nnLinear(nstates[3] noutputs))

Код программы на Torch 7

Сверточные (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

Sparse linear reconstruction

bull Energy=reconstruction_error+code_prediction_error+code_sparsity

Автоэнкодер (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

bull saednntrain(x y hidden = c(1) activationfun = sigm learningrate = 08 momentum = 05 learningrate_scale = 1 output = sigm sae_output = linear numepochs = 3 batchsize = 100 hidden_dropout = 0 visible_dropout = 0)

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

Архитектура сети SAE

Архитектура с 5Х4 hidden 3 outs

Example

Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02)) Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1)) x lt- matrix(c(Var1 Var2) nrow = 100 ncol = 2)y lt- c(rep(1 50) rep(0 50))

обучение сетиdnn lt- saednntrain(x y hidden = c(5 5))

Анализ обучающего набора данныхgt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370helliphelliphelliphelliphelliphelliphelliphellip

gt y [1] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 [54] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

plot3d(xy)

Параметры SAE сети

gt dnn$input_dim[1] 2$output_dim[1] 1$hidden[1] 5 5$size[1] 2 5 5 1$activationfun[1] sigm$learningrate[1] 08

$momentum[1] 05$learningrate_scale[1] 1$hidden_dropout[1] 0$visible_dropout[1] 0$output[1] sigm$W

Коэффициенты связей

$W$W[[1]] [1] [2][1] -014355854 02471840[2] 011378030 -00715094[3] -004343738 03667468[4] 012756946 -01303379[5] -003445704 02293772

$W[[2]] [1] [2] [3] [4] [5][1] 00420191661 -0023073732 -008762756 0035575714 -0063000016[2] 00072771988 -0131204147 -010591421 0018221305 -0025539769[3] -01071896826 -0019479685 -009892573 -0012976429 -0111886901[4] -00009477304 -0023137518 -002147218 0007969452 -0118696306[5] 00045016013 0001885546 -010170954 -0140312396 -0003970102

$W[[3]] [1] [2] [3] [4] [5][1] 01027992 -007288099 003051227 -001731639 0009518049

$vW$vW[[1]] [1] [2][1] -8335203e-06 1368580e-05[2] -6530183e-05 1135070e-04[3] 2544302e-05 -3947111e-05[4] -5512835e-06 9541682e-06[5] 3822854e-05 -6281762e-05

$vW[[2]] [1] [2] [3] [4] [5][1] 4172450e-04 -2554411e-04 4896670e-04 -3526093e-04 3041932e-04[2] -3210759e-04 1978412e-04 -3769148e-04 2727933e-04 -2338477e-04[3] 1058770e-04 -6705336e-05 1244419e-04 -9201508e-05 7678296e-05[4] -8894178e-05 5481668e-05 -1044110e-04 7558269e-05 -6477571e-05[5] 2676520e-05 -1622289e-05 3139684e-05 -2243174e-05 1954349e-05

$vW[[3]] [1] [2] [3] [4] [5][1] -0002603034 -0002398256 -0003274074 -0002542478 -000209672

Предсказание обученной сетью

predict by dnntest_Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02))test_Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1))test_x lt- matrix(c(test_Var1 test_Var2) nrow = 100 ncol = 2)nntest(dnn test_x y)

[1] 025 Value error rate

Сравнение обучающей и тестовой выборки

gttest_x [1] [2] [1] 091887443 -08940890 [2] 115219448 -06050481 [3] 069917981 -08524551 [4] 028213787 -08146816 [5] 098405598 -11440813 [6] 185911887 -08203652 [7] 010843056 -10123789 [8] 083827953 -07594760 [9] -016373562 -09087116 [10] 088298748 -09767741 [11] 005280917 -07525407

gt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370

Plot3d(test_xy) Plot3d(xy)

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)

Подготовка к обработке

starting installationstep1installpackages(devtools)library(devtools)install_github(repo = mnist username = xrobin ref = master)library(mnist)

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
  • Аппроксимация линейными многообразиями (подпространствами)
  • Slide 30
  • Алгоритм
  • princomp(formula data = NULL subset naaction )
  • Principal Component Analysis (PCA)
  • Линейный дискриминантный анализ (Linear Discriminant Analysis -
  • Решение
  • lda(x grouping prior = proportions tol = 10e-4 method
  • Slide 37
  • Linear Discriminant Analysis (LDA)
  • Сравнение PCA и LDA
  • Метод опорных векторов (Support Vector Machines - SVM)
  • Идея алгоритма
  • Иллюстрация на простейшем примере
  • Линейная неразделимость и использование ядер
  • Иллюстрация использования ядра для отображения 2D -gt 3D
  • svm((formula data = NULL subset naaction = naomit sc
  • Support Vector Machines
  • Глубокое обучение (Deep Learning)
  • laquoВ 1997 году Deep Blue обыграл в шахматы Каспарова В 2011 Wats
  • Распознавание основано на feature detection и последующем раз
  • Распознавание рукописных цифр
  • Еще пример посложнее
  • Использование нейронной сети с обучением
  • Сверхвысокая размерность при работе с первичным представлением
  • Пиксельное кодирование
  • Принцип иерархии понятий ndash основа deep learning
  • Разреженное (sparse) кодирование
  • Словарь для лиц
  • Slide 58
  • Выделение объектов заданного класса
  • Основные архитектуры Deep Learning
  • Задача классификации распознавания и подобные являются задачей
  • Фактор - графы
  • Slide 63
  • Slide 64
  • Подход разреженного кодирования
  • Обобщенная архитектура
  • Slide 67
  • Slide 68
  • Slide 69
  • В действительности работают любые архитектуры построения функц
  • Machine Learning with Torch7 (httpcodecogbitscomwikidoku
  • Torch 7 является расширением Lua
  • Slide 73
  • Slide 74
  • Сверточные (convolution) нейронные сети
  • Свертка и архитектура 4-х уровневой сверточной сети
  • Функциональная структура
  • Примеры успешного применения сверточных сетей
  • Диагностика эпилепсии по ЭЭГ
  • Реализация сверточной сетью
  • Одна из самых больших сверточных сетей
  • Пример тэгирования
  • Пример поиска похожих по изображению
  • Пример поиска в коллекции изображений по текстовому запросу
  • Пример laquoоблачногоraquo классификатора изображений
  • Slide 86
  • Самообучающиеся нейронные сети на основе минимизации функции эн
  • RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцман
  • Алгоритм обучения Contrastive Divergence (CD)
  • Основные уравнения адаптации
  • Алгоритм Хинтона - Contrastive Divergence (CD-k)
  • darch Package for deep architectures and Restricted-Bolzmann-
  • Связь плотности вероятности и энергии
  • Задача обучения с точки минимизации энергии сети
  • Интуитивные соображения
  • Slide 96
  • Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decom
  • Sparse linear reconstruction
  • Автоэнкодер (auto encoder)
  • Архитекттура ICA моделей
  • Итеративные алгоритмы с оптимальным разреженным кодированием 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)
Page 64: !Predictive analytics part_2

Подход разреженного кодирования

Обобщенная архитектура

bull DL сеть может быть собрана каскадированием и использованием обучения с учителем

Здесь используется forward propagation для обучения

Для настройки коэффициентов используется метод fprof для каждого

Требуется знание градиента энергии

Элементы (kl) матрицы Якобиана

Требуется знание градиента энергии 120597119864120597119882119894 = 120597119864120597119883119894120597119865119894(119883119894minus1119882119894)120597119882119894

ሾ1times 119873119908ሿ= ሾ1times 119873119909ሿlowast[119873119909 times 119873119908] Элементы (kl) матрицы Якобиана

ቈ120597119865119894ሺ119883119894minus1119882119894ሻ120597119882119894 119896119897 = 120597[119865119894(119883119894minus1119882119894)]119896120597[119882119894]119897

Сводится к рекуррентному соотношению для вычисления градиента 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

Сверточная (convolution) нейронная сеть

1 -- parameters 2 nstates = 16256128 3 fanin = 14 4 filtsize = 5 5 poolsize = 2 6 normkernel = imagegaussian1D(7) 7 8 -- Container 9 model = nnSequential()1011 -- stage 1 filter bank -gt squashing -gt L2 pooling -gt normalization12 modeladd(nnSpatialConvolutionMap(nntablesrandom(nfeats nstates[1] fanin[1]) filtsize filtsize))13 modeladd(nnTanh())14 modeladd(nnSpatialLPPooling(nstates[1]2poolsizepoolsizepoolsizepoolsize))15 modeladd(nnSpatialSubtractiveNormalization(16 normkernel))1617 -- stage 2 filter bank -gt squashing -gt L2 pooling -gt normalization18 modeladd(nnSpatialConvolutionMap(nntablesrandom(nstates[1] nstates[2] fanin[2]) filtsize filtsize))19 modeladd(nnTanh())20 modeladd(nnSpatialLPPooling(nstates[2]2poolsizepoolsizepoolsizepoolsize))21 modeladd(nnSpatialSubtractiveNormalization(nstates[2] normkernel))2223 -- stage 3 standard 2-layer neural network24 modeladd(nnReshape(nstates[2]filtsizefiltsize))25 modeladd(nnLinear(nstates[2]filtsizefiltsize nstates[3]))26 modeladd(nnTanh())27 modeladd(nnLinear(nstates[3] noutputs))

Код программы на Torch 7

Сверточные (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

Sparse linear reconstruction

bull Energy=reconstruction_error+code_prediction_error+code_sparsity

Автоэнкодер (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

bull saednntrain(x y hidden = c(1) activationfun = sigm learningrate = 08 momentum = 05 learningrate_scale = 1 output = sigm sae_output = linear numepochs = 3 batchsize = 100 hidden_dropout = 0 visible_dropout = 0)

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

Архитектура сети SAE

Архитектура с 5Х4 hidden 3 outs

Example

Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02)) Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1)) x lt- matrix(c(Var1 Var2) nrow = 100 ncol = 2)y lt- c(rep(1 50) rep(0 50))

обучение сетиdnn lt- saednntrain(x y hidden = c(5 5))

Анализ обучающего набора данныхgt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370helliphelliphelliphelliphelliphelliphelliphellip

gt y [1] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 [54] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

plot3d(xy)

Параметры SAE сети

gt dnn$input_dim[1] 2$output_dim[1] 1$hidden[1] 5 5$size[1] 2 5 5 1$activationfun[1] sigm$learningrate[1] 08

$momentum[1] 05$learningrate_scale[1] 1$hidden_dropout[1] 0$visible_dropout[1] 0$output[1] sigm$W

Коэффициенты связей

$W$W[[1]] [1] [2][1] -014355854 02471840[2] 011378030 -00715094[3] -004343738 03667468[4] 012756946 -01303379[5] -003445704 02293772

$W[[2]] [1] [2] [3] [4] [5][1] 00420191661 -0023073732 -008762756 0035575714 -0063000016[2] 00072771988 -0131204147 -010591421 0018221305 -0025539769[3] -01071896826 -0019479685 -009892573 -0012976429 -0111886901[4] -00009477304 -0023137518 -002147218 0007969452 -0118696306[5] 00045016013 0001885546 -010170954 -0140312396 -0003970102

$W[[3]] [1] [2] [3] [4] [5][1] 01027992 -007288099 003051227 -001731639 0009518049

$vW$vW[[1]] [1] [2][1] -8335203e-06 1368580e-05[2] -6530183e-05 1135070e-04[3] 2544302e-05 -3947111e-05[4] -5512835e-06 9541682e-06[5] 3822854e-05 -6281762e-05

$vW[[2]] [1] [2] [3] [4] [5][1] 4172450e-04 -2554411e-04 4896670e-04 -3526093e-04 3041932e-04[2] -3210759e-04 1978412e-04 -3769148e-04 2727933e-04 -2338477e-04[3] 1058770e-04 -6705336e-05 1244419e-04 -9201508e-05 7678296e-05[4] -8894178e-05 5481668e-05 -1044110e-04 7558269e-05 -6477571e-05[5] 2676520e-05 -1622289e-05 3139684e-05 -2243174e-05 1954349e-05

$vW[[3]] [1] [2] [3] [4] [5][1] -0002603034 -0002398256 -0003274074 -0002542478 -000209672

Предсказание обученной сетью

predict by dnntest_Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02))test_Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1))test_x lt- matrix(c(test_Var1 test_Var2) nrow = 100 ncol = 2)nntest(dnn test_x y)

[1] 025 Value error rate

Сравнение обучающей и тестовой выборки

gttest_x [1] [2] [1] 091887443 -08940890 [2] 115219448 -06050481 [3] 069917981 -08524551 [4] 028213787 -08146816 [5] 098405598 -11440813 [6] 185911887 -08203652 [7] 010843056 -10123789 [8] 083827953 -07594760 [9] -016373562 -09087116 [10] 088298748 -09767741 [11] 005280917 -07525407

gt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370

Plot3d(test_xy) Plot3d(xy)

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)

Подготовка к обработке

starting installationstep1installpackages(devtools)library(devtools)install_github(repo = mnist username = xrobin ref = master)library(mnist)

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
  • Аппроксимация линейными многообразиями (подпространствами)
  • Slide 30
  • Алгоритм
  • princomp(formula data = NULL subset naaction )
  • Principal Component Analysis (PCA)
  • Линейный дискриминантный анализ (Linear Discriminant Analysis -
  • Решение
  • lda(x grouping prior = proportions tol = 10e-4 method
  • Slide 37
  • Linear Discriminant Analysis (LDA)
  • Сравнение PCA и LDA
  • Метод опорных векторов (Support Vector Machines - SVM)
  • Идея алгоритма
  • Иллюстрация на простейшем примере
  • Линейная неразделимость и использование ядер
  • Иллюстрация использования ядра для отображения 2D -gt 3D
  • svm((formula data = NULL subset naaction = naomit sc
  • Support Vector Machines
  • Глубокое обучение (Deep Learning)
  • laquoВ 1997 году Deep Blue обыграл в шахматы Каспарова В 2011 Wats
  • Распознавание основано на feature detection и последующем раз
  • Распознавание рукописных цифр
  • Еще пример посложнее
  • Использование нейронной сети с обучением
  • Сверхвысокая размерность при работе с первичным представлением
  • Пиксельное кодирование
  • Принцип иерархии понятий ndash основа deep learning
  • Разреженное (sparse) кодирование
  • Словарь для лиц
  • Slide 58
  • Выделение объектов заданного класса
  • Основные архитектуры Deep Learning
  • Задача классификации распознавания и подобные являются задачей
  • Фактор - графы
  • Slide 63
  • Slide 64
  • Подход разреженного кодирования
  • Обобщенная архитектура
  • Slide 67
  • Slide 68
  • Slide 69
  • В действительности работают любые архитектуры построения функц
  • Machine Learning with Torch7 (httpcodecogbitscomwikidoku
  • Torch 7 является расширением Lua
  • Slide 73
  • Slide 74
  • Сверточные (convolution) нейронные сети
  • Свертка и архитектура 4-х уровневой сверточной сети
  • Функциональная структура
  • Примеры успешного применения сверточных сетей
  • Диагностика эпилепсии по ЭЭГ
  • Реализация сверточной сетью
  • Одна из самых больших сверточных сетей
  • Пример тэгирования
  • Пример поиска похожих по изображению
  • Пример поиска в коллекции изображений по текстовому запросу
  • Пример laquoоблачногоraquo классификатора изображений
  • Slide 86
  • Самообучающиеся нейронные сети на основе минимизации функции эн
  • RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцман
  • Алгоритм обучения Contrastive Divergence (CD)
  • Основные уравнения адаптации
  • Алгоритм Хинтона - Contrastive Divergence (CD-k)
  • darch Package for deep architectures and Restricted-Bolzmann-
  • Связь плотности вероятности и энергии
  • Задача обучения с точки минимизации энергии сети
  • Интуитивные соображения
  • Slide 96
  • Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decom
  • Sparse linear reconstruction
  • Автоэнкодер (auto encoder)
  • Архитекттура ICA моделей
  • Итеративные алгоритмы с оптимальным разреженным кодированием 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)
Page 65: !Predictive analytics part_2

Обобщенная архитектура

bull DL сеть может быть собрана каскадированием и использованием обучения с учителем

Здесь используется forward propagation для обучения

Для настройки коэффициентов используется метод fprof для каждого

Требуется знание градиента энергии

Элементы (kl) матрицы Якобиана

Требуется знание градиента энергии 120597119864120597119882119894 = 120597119864120597119883119894120597119865119894(119883119894minus1119882119894)120597119882119894

ሾ1times 119873119908ሿ= ሾ1times 119873119909ሿlowast[119873119909 times 119873119908] Элементы (kl) матрицы Якобиана

ቈ120597119865119894ሺ119883119894minus1119882119894ሻ120597119882119894 119896119897 = 120597[119865119894(119883119894minus1119882119894)]119896120597[119882119894]119897

Сводится к рекуррентному соотношению для вычисления градиента 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

Сверточная (convolution) нейронная сеть

1 -- parameters 2 nstates = 16256128 3 fanin = 14 4 filtsize = 5 5 poolsize = 2 6 normkernel = imagegaussian1D(7) 7 8 -- Container 9 model = nnSequential()1011 -- stage 1 filter bank -gt squashing -gt L2 pooling -gt normalization12 modeladd(nnSpatialConvolutionMap(nntablesrandom(nfeats nstates[1] fanin[1]) filtsize filtsize))13 modeladd(nnTanh())14 modeladd(nnSpatialLPPooling(nstates[1]2poolsizepoolsizepoolsizepoolsize))15 modeladd(nnSpatialSubtractiveNormalization(16 normkernel))1617 -- stage 2 filter bank -gt squashing -gt L2 pooling -gt normalization18 modeladd(nnSpatialConvolutionMap(nntablesrandom(nstates[1] nstates[2] fanin[2]) filtsize filtsize))19 modeladd(nnTanh())20 modeladd(nnSpatialLPPooling(nstates[2]2poolsizepoolsizepoolsizepoolsize))21 modeladd(nnSpatialSubtractiveNormalization(nstates[2] normkernel))2223 -- stage 3 standard 2-layer neural network24 modeladd(nnReshape(nstates[2]filtsizefiltsize))25 modeladd(nnLinear(nstates[2]filtsizefiltsize nstates[3]))26 modeladd(nnTanh())27 modeladd(nnLinear(nstates[3] noutputs))

Код программы на Torch 7

Сверточные (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

Sparse linear reconstruction

bull Energy=reconstruction_error+code_prediction_error+code_sparsity

Автоэнкодер (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

bull saednntrain(x y hidden = c(1) activationfun = sigm learningrate = 08 momentum = 05 learningrate_scale = 1 output = sigm sae_output = linear numepochs = 3 batchsize = 100 hidden_dropout = 0 visible_dropout = 0)

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

Архитектура сети SAE

Архитектура с 5Х4 hidden 3 outs

Example

Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02)) Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1)) x lt- matrix(c(Var1 Var2) nrow = 100 ncol = 2)y lt- c(rep(1 50) rep(0 50))

обучение сетиdnn lt- saednntrain(x y hidden = c(5 5))

Анализ обучающего набора данныхgt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370helliphelliphelliphelliphelliphelliphelliphellip

gt y [1] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 [54] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

plot3d(xy)

Параметры SAE сети

gt dnn$input_dim[1] 2$output_dim[1] 1$hidden[1] 5 5$size[1] 2 5 5 1$activationfun[1] sigm$learningrate[1] 08

$momentum[1] 05$learningrate_scale[1] 1$hidden_dropout[1] 0$visible_dropout[1] 0$output[1] sigm$W

Коэффициенты связей

$W$W[[1]] [1] [2][1] -014355854 02471840[2] 011378030 -00715094[3] -004343738 03667468[4] 012756946 -01303379[5] -003445704 02293772

$W[[2]] [1] [2] [3] [4] [5][1] 00420191661 -0023073732 -008762756 0035575714 -0063000016[2] 00072771988 -0131204147 -010591421 0018221305 -0025539769[3] -01071896826 -0019479685 -009892573 -0012976429 -0111886901[4] -00009477304 -0023137518 -002147218 0007969452 -0118696306[5] 00045016013 0001885546 -010170954 -0140312396 -0003970102

$W[[3]] [1] [2] [3] [4] [5][1] 01027992 -007288099 003051227 -001731639 0009518049

$vW$vW[[1]] [1] [2][1] -8335203e-06 1368580e-05[2] -6530183e-05 1135070e-04[3] 2544302e-05 -3947111e-05[4] -5512835e-06 9541682e-06[5] 3822854e-05 -6281762e-05

$vW[[2]] [1] [2] [3] [4] [5][1] 4172450e-04 -2554411e-04 4896670e-04 -3526093e-04 3041932e-04[2] -3210759e-04 1978412e-04 -3769148e-04 2727933e-04 -2338477e-04[3] 1058770e-04 -6705336e-05 1244419e-04 -9201508e-05 7678296e-05[4] -8894178e-05 5481668e-05 -1044110e-04 7558269e-05 -6477571e-05[5] 2676520e-05 -1622289e-05 3139684e-05 -2243174e-05 1954349e-05

$vW[[3]] [1] [2] [3] [4] [5][1] -0002603034 -0002398256 -0003274074 -0002542478 -000209672

Предсказание обученной сетью

predict by dnntest_Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02))test_Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1))test_x lt- matrix(c(test_Var1 test_Var2) nrow = 100 ncol = 2)nntest(dnn test_x y)

[1] 025 Value error rate

Сравнение обучающей и тестовой выборки

gttest_x [1] [2] [1] 091887443 -08940890 [2] 115219448 -06050481 [3] 069917981 -08524551 [4] 028213787 -08146816 [5] 098405598 -11440813 [6] 185911887 -08203652 [7] 010843056 -10123789 [8] 083827953 -07594760 [9] -016373562 -09087116 [10] 088298748 -09767741 [11] 005280917 -07525407

gt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370

Plot3d(test_xy) Plot3d(xy)

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)

Подготовка к обработке

starting installationstep1installpackages(devtools)library(devtools)install_github(repo = mnist username = xrobin ref = master)library(mnist)

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
  • Аппроксимация линейными многообразиями (подпространствами)
  • Slide 30
  • Алгоритм
  • princomp(formula data = NULL subset naaction )
  • Principal Component Analysis (PCA)
  • Линейный дискриминантный анализ (Linear Discriminant Analysis -
  • Решение
  • lda(x grouping prior = proportions tol = 10e-4 method
  • Slide 37
  • Linear Discriminant Analysis (LDA)
  • Сравнение PCA и LDA
  • Метод опорных векторов (Support Vector Machines - SVM)
  • Идея алгоритма
  • Иллюстрация на простейшем примере
  • Линейная неразделимость и использование ядер
  • Иллюстрация использования ядра для отображения 2D -gt 3D
  • svm((formula data = NULL subset naaction = naomit sc
  • Support Vector Machines
  • Глубокое обучение (Deep Learning)
  • laquoВ 1997 году Deep Blue обыграл в шахматы Каспарова В 2011 Wats
  • Распознавание основано на feature detection и последующем раз
  • Распознавание рукописных цифр
  • Еще пример посложнее
  • Использование нейронной сети с обучением
  • Сверхвысокая размерность при работе с первичным представлением
  • Пиксельное кодирование
  • Принцип иерархии понятий ndash основа deep learning
  • Разреженное (sparse) кодирование
  • Словарь для лиц
  • Slide 58
  • Выделение объектов заданного класса
  • Основные архитектуры Deep Learning
  • Задача классификации распознавания и подобные являются задачей
  • Фактор - графы
  • Slide 63
  • Slide 64
  • Подход разреженного кодирования
  • Обобщенная архитектура
  • Slide 67
  • Slide 68
  • Slide 69
  • В действительности работают любые архитектуры построения функц
  • Machine Learning with Torch7 (httpcodecogbitscomwikidoku
  • Torch 7 является расширением Lua
  • Slide 73
  • Slide 74
  • Сверточные (convolution) нейронные сети
  • Свертка и архитектура 4-х уровневой сверточной сети
  • Функциональная структура
  • Примеры успешного применения сверточных сетей
  • Диагностика эпилепсии по ЭЭГ
  • Реализация сверточной сетью
  • Одна из самых больших сверточных сетей
  • Пример тэгирования
  • Пример поиска похожих по изображению
  • Пример поиска в коллекции изображений по текстовому запросу
  • Пример laquoоблачногоraquo классификатора изображений
  • Slide 86
  • Самообучающиеся нейронные сети на основе минимизации функции эн
  • RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцман
  • Алгоритм обучения Contrastive Divergence (CD)
  • Основные уравнения адаптации
  • Алгоритм Хинтона - Contrastive Divergence (CD-k)
  • darch Package for deep architectures and Restricted-Bolzmann-
  • Связь плотности вероятности и энергии
  • Задача обучения с точки минимизации энергии сети
  • Интуитивные соображения
  • Slide 96
  • Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decom
  • Sparse linear reconstruction
  • Автоэнкодер (auto encoder)
  • Архитекттура ICA моделей
  • Итеративные алгоритмы с оптимальным разреженным кодированием 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)
Page 66: !Predictive analytics part_2

Здесь используется forward propagation для обучения

Для настройки коэффициентов используется метод fprof для каждого

Требуется знание градиента энергии

Элементы (kl) матрицы Якобиана

Требуется знание градиента энергии 120597119864120597119882119894 = 120597119864120597119883119894120597119865119894(119883119894minus1119882119894)120597119882119894

ሾ1times 119873119908ሿ= ሾ1times 119873119909ሿlowast[119873119909 times 119873119908] Элементы (kl) матрицы Якобиана

ቈ120597119865119894ሺ119883119894minus1119882119894ሻ120597119882119894 119896119897 = 120597[119865119894(119883119894minus1119882119894)]119896120597[119882119894]119897

Сводится к рекуррентному соотношению для вычисления градиента 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

Сверточная (convolution) нейронная сеть

1 -- parameters 2 nstates = 16256128 3 fanin = 14 4 filtsize = 5 5 poolsize = 2 6 normkernel = imagegaussian1D(7) 7 8 -- Container 9 model = nnSequential()1011 -- stage 1 filter bank -gt squashing -gt L2 pooling -gt normalization12 modeladd(nnSpatialConvolutionMap(nntablesrandom(nfeats nstates[1] fanin[1]) filtsize filtsize))13 modeladd(nnTanh())14 modeladd(nnSpatialLPPooling(nstates[1]2poolsizepoolsizepoolsizepoolsize))15 modeladd(nnSpatialSubtractiveNormalization(16 normkernel))1617 -- stage 2 filter bank -gt squashing -gt L2 pooling -gt normalization18 modeladd(nnSpatialConvolutionMap(nntablesrandom(nstates[1] nstates[2] fanin[2]) filtsize filtsize))19 modeladd(nnTanh())20 modeladd(nnSpatialLPPooling(nstates[2]2poolsizepoolsizepoolsizepoolsize))21 modeladd(nnSpatialSubtractiveNormalization(nstates[2] normkernel))2223 -- stage 3 standard 2-layer neural network24 modeladd(nnReshape(nstates[2]filtsizefiltsize))25 modeladd(nnLinear(nstates[2]filtsizefiltsize nstates[3]))26 modeladd(nnTanh())27 modeladd(nnLinear(nstates[3] noutputs))

Код программы на Torch 7

Сверточные (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

Sparse linear reconstruction

bull Energy=reconstruction_error+code_prediction_error+code_sparsity

Автоэнкодер (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

bull saednntrain(x y hidden = c(1) activationfun = sigm learningrate = 08 momentum = 05 learningrate_scale = 1 output = sigm sae_output = linear numepochs = 3 batchsize = 100 hidden_dropout = 0 visible_dropout = 0)

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

Архитектура сети SAE

Архитектура с 5Х4 hidden 3 outs

Example

Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02)) Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1)) x lt- matrix(c(Var1 Var2) nrow = 100 ncol = 2)y lt- c(rep(1 50) rep(0 50))

обучение сетиdnn lt- saednntrain(x y hidden = c(5 5))

Анализ обучающего набора данныхgt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370helliphelliphelliphelliphelliphelliphelliphellip

gt y [1] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 [54] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

plot3d(xy)

Параметры SAE сети

gt dnn$input_dim[1] 2$output_dim[1] 1$hidden[1] 5 5$size[1] 2 5 5 1$activationfun[1] sigm$learningrate[1] 08

$momentum[1] 05$learningrate_scale[1] 1$hidden_dropout[1] 0$visible_dropout[1] 0$output[1] sigm$W

Коэффициенты связей

$W$W[[1]] [1] [2][1] -014355854 02471840[2] 011378030 -00715094[3] -004343738 03667468[4] 012756946 -01303379[5] -003445704 02293772

$W[[2]] [1] [2] [3] [4] [5][1] 00420191661 -0023073732 -008762756 0035575714 -0063000016[2] 00072771988 -0131204147 -010591421 0018221305 -0025539769[3] -01071896826 -0019479685 -009892573 -0012976429 -0111886901[4] -00009477304 -0023137518 -002147218 0007969452 -0118696306[5] 00045016013 0001885546 -010170954 -0140312396 -0003970102

$W[[3]] [1] [2] [3] [4] [5][1] 01027992 -007288099 003051227 -001731639 0009518049

$vW$vW[[1]] [1] [2][1] -8335203e-06 1368580e-05[2] -6530183e-05 1135070e-04[3] 2544302e-05 -3947111e-05[4] -5512835e-06 9541682e-06[5] 3822854e-05 -6281762e-05

$vW[[2]] [1] [2] [3] [4] [5][1] 4172450e-04 -2554411e-04 4896670e-04 -3526093e-04 3041932e-04[2] -3210759e-04 1978412e-04 -3769148e-04 2727933e-04 -2338477e-04[3] 1058770e-04 -6705336e-05 1244419e-04 -9201508e-05 7678296e-05[4] -8894178e-05 5481668e-05 -1044110e-04 7558269e-05 -6477571e-05[5] 2676520e-05 -1622289e-05 3139684e-05 -2243174e-05 1954349e-05

$vW[[3]] [1] [2] [3] [4] [5][1] -0002603034 -0002398256 -0003274074 -0002542478 -000209672

Предсказание обученной сетью

predict by dnntest_Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02))test_Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1))test_x lt- matrix(c(test_Var1 test_Var2) nrow = 100 ncol = 2)nntest(dnn test_x y)

[1] 025 Value error rate

Сравнение обучающей и тестовой выборки

gttest_x [1] [2] [1] 091887443 -08940890 [2] 115219448 -06050481 [3] 069917981 -08524551 [4] 028213787 -08146816 [5] 098405598 -11440813 [6] 185911887 -08203652 [7] 010843056 -10123789 [8] 083827953 -07594760 [9] -016373562 -09087116 [10] 088298748 -09767741 [11] 005280917 -07525407

gt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370

Plot3d(test_xy) Plot3d(xy)

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)

Подготовка к обработке

starting installationstep1installpackages(devtools)library(devtools)install_github(repo = mnist username = xrobin ref = master)library(mnist)

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
  • Аппроксимация линейными многообразиями (подпространствами)
  • Slide 30
  • Алгоритм
  • princomp(formula data = NULL subset naaction )
  • Principal Component Analysis (PCA)
  • Линейный дискриминантный анализ (Linear Discriminant Analysis -
  • Решение
  • lda(x grouping prior = proportions tol = 10e-4 method
  • Slide 37
  • Linear Discriminant Analysis (LDA)
  • Сравнение PCA и LDA
  • Метод опорных векторов (Support Vector Machines - SVM)
  • Идея алгоритма
  • Иллюстрация на простейшем примере
  • Линейная неразделимость и использование ядер
  • Иллюстрация использования ядра для отображения 2D -gt 3D
  • svm((formula data = NULL subset naaction = naomit sc
  • Support Vector Machines
  • Глубокое обучение (Deep Learning)
  • laquoВ 1997 году Deep Blue обыграл в шахматы Каспарова В 2011 Wats
  • Распознавание основано на feature detection и последующем раз
  • Распознавание рукописных цифр
  • Еще пример посложнее
  • Использование нейронной сети с обучением
  • Сверхвысокая размерность при работе с первичным представлением
  • Пиксельное кодирование
  • Принцип иерархии понятий ndash основа deep learning
  • Разреженное (sparse) кодирование
  • Словарь для лиц
  • Slide 58
  • Выделение объектов заданного класса
  • Основные архитектуры Deep Learning
  • Задача классификации распознавания и подобные являются задачей
  • Фактор - графы
  • Slide 63
  • Slide 64
  • Подход разреженного кодирования
  • Обобщенная архитектура
  • Slide 67
  • Slide 68
  • Slide 69
  • В действительности работают любые архитектуры построения функц
  • Machine Learning with Torch7 (httpcodecogbitscomwikidoku
  • Torch 7 является расширением Lua
  • Slide 73
  • Slide 74
  • Сверточные (convolution) нейронные сети
  • Свертка и архитектура 4-х уровневой сверточной сети
  • Функциональная структура
  • Примеры успешного применения сверточных сетей
  • Диагностика эпилепсии по ЭЭГ
  • Реализация сверточной сетью
  • Одна из самых больших сверточных сетей
  • Пример тэгирования
  • Пример поиска похожих по изображению
  • Пример поиска в коллекции изображений по текстовому запросу
  • Пример laquoоблачногоraquo классификатора изображений
  • Slide 86
  • Самообучающиеся нейронные сети на основе минимизации функции эн
  • RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцман
  • Алгоритм обучения Contrastive Divergence (CD)
  • Основные уравнения адаптации
  • Алгоритм Хинтона - Contrastive Divergence (CD-k)
  • darch Package for deep architectures and Restricted-Bolzmann-
  • Связь плотности вероятности и энергии
  • Задача обучения с точки минимизации энергии сети
  • Интуитивные соображения
  • Slide 96
  • Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decom
  • Sparse linear reconstruction
  • Автоэнкодер (auto encoder)
  • Архитекттура ICA моделей
  • Итеративные алгоритмы с оптимальным разреженным кодированием 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)
Page 67: !Predictive analytics part_2

Требуется знание градиента энергии 120597119864120597119882119894 = 120597119864120597119883119894120597119865119894(119883119894minus1119882119894)120597119882119894

ሾ1times 119873119908ሿ= ሾ1times 119873119909ሿlowast[119873119909 times 119873119908] Элементы (kl) матрицы Якобиана

ቈ120597119865119894ሺ119883119894minus1119882119894ሻ120597119882119894 119896119897 = 120597[119865119894(119883119894minus1119882119894)]119896120597[119882119894]119897

Сводится к рекуррентному соотношению для вычисления градиента 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

Сверточная (convolution) нейронная сеть

1 -- parameters 2 nstates = 16256128 3 fanin = 14 4 filtsize = 5 5 poolsize = 2 6 normkernel = imagegaussian1D(7) 7 8 -- Container 9 model = nnSequential()1011 -- stage 1 filter bank -gt squashing -gt L2 pooling -gt normalization12 modeladd(nnSpatialConvolutionMap(nntablesrandom(nfeats nstates[1] fanin[1]) filtsize filtsize))13 modeladd(nnTanh())14 modeladd(nnSpatialLPPooling(nstates[1]2poolsizepoolsizepoolsizepoolsize))15 modeladd(nnSpatialSubtractiveNormalization(16 normkernel))1617 -- stage 2 filter bank -gt squashing -gt L2 pooling -gt normalization18 modeladd(nnSpatialConvolutionMap(nntablesrandom(nstates[1] nstates[2] fanin[2]) filtsize filtsize))19 modeladd(nnTanh())20 modeladd(nnSpatialLPPooling(nstates[2]2poolsizepoolsizepoolsizepoolsize))21 modeladd(nnSpatialSubtractiveNormalization(nstates[2] normkernel))2223 -- stage 3 standard 2-layer neural network24 modeladd(nnReshape(nstates[2]filtsizefiltsize))25 modeladd(nnLinear(nstates[2]filtsizefiltsize nstates[3]))26 modeladd(nnTanh())27 modeladd(nnLinear(nstates[3] noutputs))

Код программы на Torch 7

Сверточные (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

Sparse linear reconstruction

bull Energy=reconstruction_error+code_prediction_error+code_sparsity

Автоэнкодер (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

bull saednntrain(x y hidden = c(1) activationfun = sigm learningrate = 08 momentum = 05 learningrate_scale = 1 output = sigm sae_output = linear numepochs = 3 batchsize = 100 hidden_dropout = 0 visible_dropout = 0)

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

Архитектура сети SAE

Архитектура с 5Х4 hidden 3 outs

Example

Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02)) Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1)) x lt- matrix(c(Var1 Var2) nrow = 100 ncol = 2)y lt- c(rep(1 50) rep(0 50))

обучение сетиdnn lt- saednntrain(x y hidden = c(5 5))

Анализ обучающего набора данныхgt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370helliphelliphelliphelliphelliphelliphelliphellip

gt y [1] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 [54] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

plot3d(xy)

Параметры SAE сети

gt dnn$input_dim[1] 2$output_dim[1] 1$hidden[1] 5 5$size[1] 2 5 5 1$activationfun[1] sigm$learningrate[1] 08

$momentum[1] 05$learningrate_scale[1] 1$hidden_dropout[1] 0$visible_dropout[1] 0$output[1] sigm$W

Коэффициенты связей

$W$W[[1]] [1] [2][1] -014355854 02471840[2] 011378030 -00715094[3] -004343738 03667468[4] 012756946 -01303379[5] -003445704 02293772

$W[[2]] [1] [2] [3] [4] [5][1] 00420191661 -0023073732 -008762756 0035575714 -0063000016[2] 00072771988 -0131204147 -010591421 0018221305 -0025539769[3] -01071896826 -0019479685 -009892573 -0012976429 -0111886901[4] -00009477304 -0023137518 -002147218 0007969452 -0118696306[5] 00045016013 0001885546 -010170954 -0140312396 -0003970102

$W[[3]] [1] [2] [3] [4] [5][1] 01027992 -007288099 003051227 -001731639 0009518049

$vW$vW[[1]] [1] [2][1] -8335203e-06 1368580e-05[2] -6530183e-05 1135070e-04[3] 2544302e-05 -3947111e-05[4] -5512835e-06 9541682e-06[5] 3822854e-05 -6281762e-05

$vW[[2]] [1] [2] [3] [4] [5][1] 4172450e-04 -2554411e-04 4896670e-04 -3526093e-04 3041932e-04[2] -3210759e-04 1978412e-04 -3769148e-04 2727933e-04 -2338477e-04[3] 1058770e-04 -6705336e-05 1244419e-04 -9201508e-05 7678296e-05[4] -8894178e-05 5481668e-05 -1044110e-04 7558269e-05 -6477571e-05[5] 2676520e-05 -1622289e-05 3139684e-05 -2243174e-05 1954349e-05

$vW[[3]] [1] [2] [3] [4] [5][1] -0002603034 -0002398256 -0003274074 -0002542478 -000209672

Предсказание обученной сетью

predict by dnntest_Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02))test_Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1))test_x lt- matrix(c(test_Var1 test_Var2) nrow = 100 ncol = 2)nntest(dnn test_x y)

[1] 025 Value error rate

Сравнение обучающей и тестовой выборки

gttest_x [1] [2] [1] 091887443 -08940890 [2] 115219448 -06050481 [3] 069917981 -08524551 [4] 028213787 -08146816 [5] 098405598 -11440813 [6] 185911887 -08203652 [7] 010843056 -10123789 [8] 083827953 -07594760 [9] -016373562 -09087116 [10] 088298748 -09767741 [11] 005280917 -07525407

gt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370

Plot3d(test_xy) Plot3d(xy)

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)

Подготовка к обработке

starting installationstep1installpackages(devtools)library(devtools)install_github(repo = mnist username = xrobin ref = master)library(mnist)

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
  • Аппроксимация линейными многообразиями (подпространствами)
  • Slide 30
  • Алгоритм
  • princomp(formula data = NULL subset naaction )
  • Principal Component Analysis (PCA)
  • Линейный дискриминантный анализ (Linear Discriminant Analysis -
  • Решение
  • lda(x grouping prior = proportions tol = 10e-4 method
  • Slide 37
  • Linear Discriminant Analysis (LDA)
  • Сравнение PCA и LDA
  • Метод опорных векторов (Support Vector Machines - SVM)
  • Идея алгоритма
  • Иллюстрация на простейшем примере
  • Линейная неразделимость и использование ядер
  • Иллюстрация использования ядра для отображения 2D -gt 3D
  • svm((formula data = NULL subset naaction = naomit sc
  • Support Vector Machines
  • Глубокое обучение (Deep Learning)
  • laquoВ 1997 году Deep Blue обыграл в шахматы Каспарова В 2011 Wats
  • Распознавание основано на feature detection и последующем раз
  • Распознавание рукописных цифр
  • Еще пример посложнее
  • Использование нейронной сети с обучением
  • Сверхвысокая размерность при работе с первичным представлением
  • Пиксельное кодирование
  • Принцип иерархии понятий ndash основа deep learning
  • Разреженное (sparse) кодирование
  • Словарь для лиц
  • Slide 58
  • Выделение объектов заданного класса
  • Основные архитектуры Deep Learning
  • Задача классификации распознавания и подобные являются задачей
  • Фактор - графы
  • Slide 63
  • Slide 64
  • Подход разреженного кодирования
  • Обобщенная архитектура
  • Slide 67
  • Slide 68
  • Slide 69
  • В действительности работают любые архитектуры построения функц
  • Machine Learning with Torch7 (httpcodecogbitscomwikidoku
  • Torch 7 является расширением Lua
  • Slide 73
  • Slide 74
  • Сверточные (convolution) нейронные сети
  • Свертка и архитектура 4-х уровневой сверточной сети
  • Функциональная структура
  • Примеры успешного применения сверточных сетей
  • Диагностика эпилепсии по ЭЭГ
  • Реализация сверточной сетью
  • Одна из самых больших сверточных сетей
  • Пример тэгирования
  • Пример поиска похожих по изображению
  • Пример поиска в коллекции изображений по текстовому запросу
  • Пример laquoоблачногоraquo классификатора изображений
  • Slide 86
  • Самообучающиеся нейронные сети на основе минимизации функции эн
  • RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцман
  • Алгоритм обучения Contrastive Divergence (CD)
  • Основные уравнения адаптации
  • Алгоритм Хинтона - Contrastive Divergence (CD-k)
  • darch Package for deep architectures and Restricted-Bolzmann-
  • Связь плотности вероятности и энергии
  • Задача обучения с точки минимизации энергии сети
  • Интуитивные соображения
  • Slide 96
  • Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decom
  • Sparse linear reconstruction
  • Автоэнкодер (auto encoder)
  • Архитекттура ICA моделей
  • Итеративные алгоритмы с оптимальным разреженным кодированием 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)
Page 68: !Predictive analytics part_2

Для вычисления градиента может использоваться метод 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

Сверточная (convolution) нейронная сеть

1 -- parameters 2 nstates = 16256128 3 fanin = 14 4 filtsize = 5 5 poolsize = 2 6 normkernel = imagegaussian1D(7) 7 8 -- Container 9 model = nnSequential()1011 -- stage 1 filter bank -gt squashing -gt L2 pooling -gt normalization12 modeladd(nnSpatialConvolutionMap(nntablesrandom(nfeats nstates[1] fanin[1]) filtsize filtsize))13 modeladd(nnTanh())14 modeladd(nnSpatialLPPooling(nstates[1]2poolsizepoolsizepoolsizepoolsize))15 modeladd(nnSpatialSubtractiveNormalization(16 normkernel))1617 -- stage 2 filter bank -gt squashing -gt L2 pooling -gt normalization18 modeladd(nnSpatialConvolutionMap(nntablesrandom(nstates[1] nstates[2] fanin[2]) filtsize filtsize))19 modeladd(nnTanh())20 modeladd(nnSpatialLPPooling(nstates[2]2poolsizepoolsizepoolsizepoolsize))21 modeladd(nnSpatialSubtractiveNormalization(nstates[2] normkernel))2223 -- stage 3 standard 2-layer neural network24 modeladd(nnReshape(nstates[2]filtsizefiltsize))25 modeladd(nnLinear(nstates[2]filtsizefiltsize nstates[3]))26 modeladd(nnTanh())27 modeladd(nnLinear(nstates[3] noutputs))

Код программы на Torch 7

Сверточные (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

Sparse linear reconstruction

bull Energy=reconstruction_error+code_prediction_error+code_sparsity

Автоэнкодер (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

bull saednntrain(x y hidden = c(1) activationfun = sigm learningrate = 08 momentum = 05 learningrate_scale = 1 output = sigm sae_output = linear numepochs = 3 batchsize = 100 hidden_dropout = 0 visible_dropout = 0)

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

Архитектура сети SAE

Архитектура с 5Х4 hidden 3 outs

Example

Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02)) Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1)) x lt- matrix(c(Var1 Var2) nrow = 100 ncol = 2)y lt- c(rep(1 50) rep(0 50))

обучение сетиdnn lt- saednntrain(x y hidden = c(5 5))

Анализ обучающего набора данныхgt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370helliphelliphelliphelliphelliphelliphelliphellip

gt y [1] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 [54] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

plot3d(xy)

Параметры SAE сети

gt dnn$input_dim[1] 2$output_dim[1] 1$hidden[1] 5 5$size[1] 2 5 5 1$activationfun[1] sigm$learningrate[1] 08

$momentum[1] 05$learningrate_scale[1] 1$hidden_dropout[1] 0$visible_dropout[1] 0$output[1] sigm$W

Коэффициенты связей

$W$W[[1]] [1] [2][1] -014355854 02471840[2] 011378030 -00715094[3] -004343738 03667468[4] 012756946 -01303379[5] -003445704 02293772

$W[[2]] [1] [2] [3] [4] [5][1] 00420191661 -0023073732 -008762756 0035575714 -0063000016[2] 00072771988 -0131204147 -010591421 0018221305 -0025539769[3] -01071896826 -0019479685 -009892573 -0012976429 -0111886901[4] -00009477304 -0023137518 -002147218 0007969452 -0118696306[5] 00045016013 0001885546 -010170954 -0140312396 -0003970102

$W[[3]] [1] [2] [3] [4] [5][1] 01027992 -007288099 003051227 -001731639 0009518049

$vW$vW[[1]] [1] [2][1] -8335203e-06 1368580e-05[2] -6530183e-05 1135070e-04[3] 2544302e-05 -3947111e-05[4] -5512835e-06 9541682e-06[5] 3822854e-05 -6281762e-05

$vW[[2]] [1] [2] [3] [4] [5][1] 4172450e-04 -2554411e-04 4896670e-04 -3526093e-04 3041932e-04[2] -3210759e-04 1978412e-04 -3769148e-04 2727933e-04 -2338477e-04[3] 1058770e-04 -6705336e-05 1244419e-04 -9201508e-05 7678296e-05[4] -8894178e-05 5481668e-05 -1044110e-04 7558269e-05 -6477571e-05[5] 2676520e-05 -1622289e-05 3139684e-05 -2243174e-05 1954349e-05

$vW[[3]] [1] [2] [3] [4] [5][1] -0002603034 -0002398256 -0003274074 -0002542478 -000209672

Предсказание обученной сетью

predict by dnntest_Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02))test_Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1))test_x lt- matrix(c(test_Var1 test_Var2) nrow = 100 ncol = 2)nntest(dnn test_x y)

[1] 025 Value error rate

Сравнение обучающей и тестовой выборки

gttest_x [1] [2] [1] 091887443 -08940890 [2] 115219448 -06050481 [3] 069917981 -08524551 [4] 028213787 -08146816 [5] 098405598 -11440813 [6] 185911887 -08203652 [7] 010843056 -10123789 [8] 083827953 -07594760 [9] -016373562 -09087116 [10] 088298748 -09767741 [11] 005280917 -07525407

gt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370

Plot3d(test_xy) Plot3d(xy)

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)

Подготовка к обработке

starting installationstep1installpackages(devtools)library(devtools)install_github(repo = mnist username = xrobin ref = master)library(mnist)

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
  • Аппроксимация линейными многообразиями (подпространствами)
  • Slide 30
  • Алгоритм
  • princomp(formula data = NULL subset naaction )
  • Principal Component Analysis (PCA)
  • Линейный дискриминантный анализ (Linear Discriminant Analysis -
  • Решение
  • lda(x grouping prior = proportions tol = 10e-4 method
  • Slide 37
  • Linear Discriminant Analysis (LDA)
  • Сравнение PCA и LDA
  • Метод опорных векторов (Support Vector Machines - SVM)
  • Идея алгоритма
  • Иллюстрация на простейшем примере
  • Линейная неразделимость и использование ядер
  • Иллюстрация использования ядра для отображения 2D -gt 3D
  • svm((formula data = NULL subset naaction = naomit sc
  • Support Vector Machines
  • Глубокое обучение (Deep Learning)
  • laquoВ 1997 году Deep Blue обыграл в шахматы Каспарова В 2011 Wats
  • Распознавание основано на feature detection и последующем раз
  • Распознавание рукописных цифр
  • Еще пример посложнее
  • Использование нейронной сети с обучением
  • Сверхвысокая размерность при работе с первичным представлением
  • Пиксельное кодирование
  • Принцип иерархии понятий ndash основа deep learning
  • Разреженное (sparse) кодирование
  • Словарь для лиц
  • Slide 58
  • Выделение объектов заданного класса
  • Основные архитектуры Deep Learning
  • Задача классификации распознавания и подобные являются задачей
  • Фактор - графы
  • Slide 63
  • Slide 64
  • Подход разреженного кодирования
  • Обобщенная архитектура
  • Slide 67
  • Slide 68
  • Slide 69
  • В действительности работают любые архитектуры построения функц
  • Machine Learning with Torch7 (httpcodecogbitscomwikidoku
  • Torch 7 является расширением Lua
  • Slide 73
  • Slide 74
  • Сверточные (convolution) нейронные сети
  • Свертка и архитектура 4-х уровневой сверточной сети
  • Функциональная структура
  • Примеры успешного применения сверточных сетей
  • Диагностика эпилепсии по ЭЭГ
  • Реализация сверточной сетью
  • Одна из самых больших сверточных сетей
  • Пример тэгирования
  • Пример поиска похожих по изображению
  • Пример поиска в коллекции изображений по текстовому запросу
  • Пример laquoоблачногоraquo классификатора изображений
  • Slide 86
  • Самообучающиеся нейронные сети на основе минимизации функции эн
  • RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцман
  • Алгоритм обучения Contrastive Divergence (CD)
  • Основные уравнения адаптации
  • Алгоритм Хинтона - Contrastive Divergence (CD-k)
  • darch Package for deep architectures and Restricted-Bolzmann-
  • Связь плотности вероятности и энергии
  • Задача обучения с точки минимизации энергии сети
  • Интуитивные соображения
  • Slide 96
  • Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decom
  • Sparse linear reconstruction
  • Автоэнкодер (auto encoder)
  • Архитекттура ICA моделей
  • Итеративные алгоритмы с оптимальным разреженным кодированием 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)
Page 69: !Predictive analytics part_2

В действительности работают любые архитектуры построения функции Нужно конструировать связи и функции блоков

Язык 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

Сверточная (convolution) нейронная сеть

1 -- parameters 2 nstates = 16256128 3 fanin = 14 4 filtsize = 5 5 poolsize = 2 6 normkernel = imagegaussian1D(7) 7 8 -- Container 9 model = nnSequential()1011 -- stage 1 filter bank -gt squashing -gt L2 pooling -gt normalization12 modeladd(nnSpatialConvolutionMap(nntablesrandom(nfeats nstates[1] fanin[1]) filtsize filtsize))13 modeladd(nnTanh())14 modeladd(nnSpatialLPPooling(nstates[1]2poolsizepoolsizepoolsizepoolsize))15 modeladd(nnSpatialSubtractiveNormalization(16 normkernel))1617 -- stage 2 filter bank -gt squashing -gt L2 pooling -gt normalization18 modeladd(nnSpatialConvolutionMap(nntablesrandom(nstates[1] nstates[2] fanin[2]) filtsize filtsize))19 modeladd(nnTanh())20 modeladd(nnSpatialLPPooling(nstates[2]2poolsizepoolsizepoolsizepoolsize))21 modeladd(nnSpatialSubtractiveNormalization(nstates[2] normkernel))2223 -- stage 3 standard 2-layer neural network24 modeladd(nnReshape(nstates[2]filtsizefiltsize))25 modeladd(nnLinear(nstates[2]filtsizefiltsize nstates[3]))26 modeladd(nnTanh())27 modeladd(nnLinear(nstates[3] noutputs))

Код программы на Torch 7

Сверточные (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

Sparse linear reconstruction

bull Energy=reconstruction_error+code_prediction_error+code_sparsity

Автоэнкодер (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

bull saednntrain(x y hidden = c(1) activationfun = sigm learningrate = 08 momentum = 05 learningrate_scale = 1 output = sigm sae_output = linear numepochs = 3 batchsize = 100 hidden_dropout = 0 visible_dropout = 0)

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

Архитектура сети SAE

Архитектура с 5Х4 hidden 3 outs

Example

Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02)) Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1)) x lt- matrix(c(Var1 Var2) nrow = 100 ncol = 2)y lt- c(rep(1 50) rep(0 50))

обучение сетиdnn lt- saednntrain(x y hidden = c(5 5))

Анализ обучающего набора данныхgt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370helliphelliphelliphelliphelliphelliphelliphellip

gt y [1] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 [54] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

plot3d(xy)

Параметры SAE сети

gt dnn$input_dim[1] 2$output_dim[1] 1$hidden[1] 5 5$size[1] 2 5 5 1$activationfun[1] sigm$learningrate[1] 08

$momentum[1] 05$learningrate_scale[1] 1$hidden_dropout[1] 0$visible_dropout[1] 0$output[1] sigm$W

Коэффициенты связей

$W$W[[1]] [1] [2][1] -014355854 02471840[2] 011378030 -00715094[3] -004343738 03667468[4] 012756946 -01303379[5] -003445704 02293772

$W[[2]] [1] [2] [3] [4] [5][1] 00420191661 -0023073732 -008762756 0035575714 -0063000016[2] 00072771988 -0131204147 -010591421 0018221305 -0025539769[3] -01071896826 -0019479685 -009892573 -0012976429 -0111886901[4] -00009477304 -0023137518 -002147218 0007969452 -0118696306[5] 00045016013 0001885546 -010170954 -0140312396 -0003970102

$W[[3]] [1] [2] [3] [4] [5][1] 01027992 -007288099 003051227 -001731639 0009518049

$vW$vW[[1]] [1] [2][1] -8335203e-06 1368580e-05[2] -6530183e-05 1135070e-04[3] 2544302e-05 -3947111e-05[4] -5512835e-06 9541682e-06[5] 3822854e-05 -6281762e-05

$vW[[2]] [1] [2] [3] [4] [5][1] 4172450e-04 -2554411e-04 4896670e-04 -3526093e-04 3041932e-04[2] -3210759e-04 1978412e-04 -3769148e-04 2727933e-04 -2338477e-04[3] 1058770e-04 -6705336e-05 1244419e-04 -9201508e-05 7678296e-05[4] -8894178e-05 5481668e-05 -1044110e-04 7558269e-05 -6477571e-05[5] 2676520e-05 -1622289e-05 3139684e-05 -2243174e-05 1954349e-05

$vW[[3]] [1] [2] [3] [4] [5][1] -0002603034 -0002398256 -0003274074 -0002542478 -000209672

Предсказание обученной сетью

predict by dnntest_Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02))test_Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1))test_x lt- matrix(c(test_Var1 test_Var2) nrow = 100 ncol = 2)nntest(dnn test_x y)

[1] 025 Value error rate

Сравнение обучающей и тестовой выборки

gttest_x [1] [2] [1] 091887443 -08940890 [2] 115219448 -06050481 [3] 069917981 -08524551 [4] 028213787 -08146816 [5] 098405598 -11440813 [6] 185911887 -08203652 [7] 010843056 -10123789 [8] 083827953 -07594760 [9] -016373562 -09087116 [10] 088298748 -09767741 [11] 005280917 -07525407

gt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370

Plot3d(test_xy) Plot3d(xy)

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)

Подготовка к обработке

starting installationstep1installpackages(devtools)library(devtools)install_github(repo = mnist username = xrobin ref = master)library(mnist)

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
  • Аппроксимация линейными многообразиями (подпространствами)
  • Slide 30
  • Алгоритм
  • princomp(formula data = NULL subset naaction )
  • Principal Component Analysis (PCA)
  • Линейный дискриминантный анализ (Linear Discriminant Analysis -
  • Решение
  • lda(x grouping prior = proportions tol = 10e-4 method
  • Slide 37
  • Linear Discriminant Analysis (LDA)
  • Сравнение PCA и LDA
  • Метод опорных векторов (Support Vector Machines - SVM)
  • Идея алгоритма
  • Иллюстрация на простейшем примере
  • Линейная неразделимость и использование ядер
  • Иллюстрация использования ядра для отображения 2D -gt 3D
  • svm((formula data = NULL subset naaction = naomit sc
  • Support Vector Machines
  • Глубокое обучение (Deep Learning)
  • laquoВ 1997 году Deep Blue обыграл в шахматы Каспарова В 2011 Wats
  • Распознавание основано на feature detection и последующем раз
  • Распознавание рукописных цифр
  • Еще пример посложнее
  • Использование нейронной сети с обучением
  • Сверхвысокая размерность при работе с первичным представлением
  • Пиксельное кодирование
  • Принцип иерархии понятий ndash основа deep learning
  • Разреженное (sparse) кодирование
  • Словарь для лиц
  • Slide 58
  • Выделение объектов заданного класса
  • Основные архитектуры Deep Learning
  • Задача классификации распознавания и подобные являются задачей
  • Фактор - графы
  • Slide 63
  • Slide 64
  • Подход разреженного кодирования
  • Обобщенная архитектура
  • Slide 67
  • Slide 68
  • Slide 69
  • В действительности работают любые архитектуры построения функц
  • Machine Learning with Torch7 (httpcodecogbitscomwikidoku
  • Torch 7 является расширением Lua
  • Slide 73
  • Slide 74
  • Сверточные (convolution) нейронные сети
  • Свертка и архитектура 4-х уровневой сверточной сети
  • Функциональная структура
  • Примеры успешного применения сверточных сетей
  • Диагностика эпилепсии по ЭЭГ
  • Реализация сверточной сетью
  • Одна из самых больших сверточных сетей
  • Пример тэгирования
  • Пример поиска похожих по изображению
  • Пример поиска в коллекции изображений по текстовому запросу
  • Пример laquoоблачногоraquo классификатора изображений
  • Slide 86
  • Самообучающиеся нейронные сети на основе минимизации функции эн
  • RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцман
  • Алгоритм обучения Contrastive Divergence (CD)
  • Основные уравнения адаптации
  • Алгоритм Хинтона - Contrastive Divergence (CD-k)
  • darch Package for deep architectures and Restricted-Bolzmann-
  • Связь плотности вероятности и энергии
  • Задача обучения с точки минимизации энергии сети
  • Интуитивные соображения
  • Slide 96
  • Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decom
  • Sparse linear reconstruction
  • Автоэнкодер (auto encoder)
  • Архитекттура ICA моделей
  • Итеративные алгоритмы с оптимальным разреженным кодированием 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)
Page 70: !Predictive analytics part_2

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

Сверточная (convolution) нейронная сеть

1 -- parameters 2 nstates = 16256128 3 fanin = 14 4 filtsize = 5 5 poolsize = 2 6 normkernel = imagegaussian1D(7) 7 8 -- Container 9 model = nnSequential()1011 -- stage 1 filter bank -gt squashing -gt L2 pooling -gt normalization12 modeladd(nnSpatialConvolutionMap(nntablesrandom(nfeats nstates[1] fanin[1]) filtsize filtsize))13 modeladd(nnTanh())14 modeladd(nnSpatialLPPooling(nstates[1]2poolsizepoolsizepoolsizepoolsize))15 modeladd(nnSpatialSubtractiveNormalization(16 normkernel))1617 -- stage 2 filter bank -gt squashing -gt L2 pooling -gt normalization18 modeladd(nnSpatialConvolutionMap(nntablesrandom(nstates[1] nstates[2] fanin[2]) filtsize filtsize))19 modeladd(nnTanh())20 modeladd(nnSpatialLPPooling(nstates[2]2poolsizepoolsizepoolsizepoolsize))21 modeladd(nnSpatialSubtractiveNormalization(nstates[2] normkernel))2223 -- stage 3 standard 2-layer neural network24 modeladd(nnReshape(nstates[2]filtsizefiltsize))25 modeladd(nnLinear(nstates[2]filtsizefiltsize nstates[3]))26 modeladd(nnTanh())27 modeladd(nnLinear(nstates[3] noutputs))

Код программы на Torch 7

Сверточные (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

Sparse linear reconstruction

bull Energy=reconstruction_error+code_prediction_error+code_sparsity

Автоэнкодер (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

bull saednntrain(x y hidden = c(1) activationfun = sigm learningrate = 08 momentum = 05 learningrate_scale = 1 output = sigm sae_output = linear numepochs = 3 batchsize = 100 hidden_dropout = 0 visible_dropout = 0)

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

Архитектура сети SAE

Архитектура с 5Х4 hidden 3 outs

Example

Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02)) Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1)) x lt- matrix(c(Var1 Var2) nrow = 100 ncol = 2)y lt- c(rep(1 50) rep(0 50))

обучение сетиdnn lt- saednntrain(x y hidden = c(5 5))

Анализ обучающего набора данныхgt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370helliphelliphelliphelliphelliphelliphelliphellip

gt y [1] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 [54] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

plot3d(xy)

Параметры SAE сети

gt dnn$input_dim[1] 2$output_dim[1] 1$hidden[1] 5 5$size[1] 2 5 5 1$activationfun[1] sigm$learningrate[1] 08

$momentum[1] 05$learningrate_scale[1] 1$hidden_dropout[1] 0$visible_dropout[1] 0$output[1] sigm$W

Коэффициенты связей

$W$W[[1]] [1] [2][1] -014355854 02471840[2] 011378030 -00715094[3] -004343738 03667468[4] 012756946 -01303379[5] -003445704 02293772

$W[[2]] [1] [2] [3] [4] [5][1] 00420191661 -0023073732 -008762756 0035575714 -0063000016[2] 00072771988 -0131204147 -010591421 0018221305 -0025539769[3] -01071896826 -0019479685 -009892573 -0012976429 -0111886901[4] -00009477304 -0023137518 -002147218 0007969452 -0118696306[5] 00045016013 0001885546 -010170954 -0140312396 -0003970102

$W[[3]] [1] [2] [3] [4] [5][1] 01027992 -007288099 003051227 -001731639 0009518049

$vW$vW[[1]] [1] [2][1] -8335203e-06 1368580e-05[2] -6530183e-05 1135070e-04[3] 2544302e-05 -3947111e-05[4] -5512835e-06 9541682e-06[5] 3822854e-05 -6281762e-05

$vW[[2]] [1] [2] [3] [4] [5][1] 4172450e-04 -2554411e-04 4896670e-04 -3526093e-04 3041932e-04[2] -3210759e-04 1978412e-04 -3769148e-04 2727933e-04 -2338477e-04[3] 1058770e-04 -6705336e-05 1244419e-04 -9201508e-05 7678296e-05[4] -8894178e-05 5481668e-05 -1044110e-04 7558269e-05 -6477571e-05[5] 2676520e-05 -1622289e-05 3139684e-05 -2243174e-05 1954349e-05

$vW[[3]] [1] [2] [3] [4] [5][1] -0002603034 -0002398256 -0003274074 -0002542478 -000209672

Предсказание обученной сетью

predict by dnntest_Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02))test_Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1))test_x lt- matrix(c(test_Var1 test_Var2) nrow = 100 ncol = 2)nntest(dnn test_x y)

[1] 025 Value error rate

Сравнение обучающей и тестовой выборки

gttest_x [1] [2] [1] 091887443 -08940890 [2] 115219448 -06050481 [3] 069917981 -08524551 [4] 028213787 -08146816 [5] 098405598 -11440813 [6] 185911887 -08203652 [7] 010843056 -10123789 [8] 083827953 -07594760 [9] -016373562 -09087116 [10] 088298748 -09767741 [11] 005280917 -07525407

gt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370

Plot3d(test_xy) Plot3d(xy)

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)

Подготовка к обработке

starting installationstep1installpackages(devtools)library(devtools)install_github(repo = mnist username = xrobin ref = master)library(mnist)

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
  • Аппроксимация линейными многообразиями (подпространствами)
  • Slide 30
  • Алгоритм
  • princomp(formula data = NULL subset naaction )
  • Principal Component Analysis (PCA)
  • Линейный дискриминантный анализ (Linear Discriminant Analysis -
  • Решение
  • lda(x grouping prior = proportions tol = 10e-4 method
  • Slide 37
  • Linear Discriminant Analysis (LDA)
  • Сравнение PCA и LDA
  • Метод опорных векторов (Support Vector Machines - SVM)
  • Идея алгоритма
  • Иллюстрация на простейшем примере
  • Линейная неразделимость и использование ядер
  • Иллюстрация использования ядра для отображения 2D -gt 3D
  • svm((formula data = NULL subset naaction = naomit sc
  • Support Vector Machines
  • Глубокое обучение (Deep Learning)
  • laquoВ 1997 году Deep Blue обыграл в шахматы Каспарова В 2011 Wats
  • Распознавание основано на feature detection и последующем раз
  • Распознавание рукописных цифр
  • Еще пример посложнее
  • Использование нейронной сети с обучением
  • Сверхвысокая размерность при работе с первичным представлением
  • Пиксельное кодирование
  • Принцип иерархии понятий ndash основа deep learning
  • Разреженное (sparse) кодирование
  • Словарь для лиц
  • Slide 58
  • Выделение объектов заданного класса
  • Основные архитектуры Deep Learning
  • Задача классификации распознавания и подобные являются задачей
  • Фактор - графы
  • Slide 63
  • Slide 64
  • Подход разреженного кодирования
  • Обобщенная архитектура
  • Slide 67
  • Slide 68
  • Slide 69
  • В действительности работают любые архитектуры построения функц
  • Machine Learning with Torch7 (httpcodecogbitscomwikidoku
  • Torch 7 является расширением Lua
  • Slide 73
  • Slide 74
  • Сверточные (convolution) нейронные сети
  • Свертка и архитектура 4-х уровневой сверточной сети
  • Функциональная структура
  • Примеры успешного применения сверточных сетей
  • Диагностика эпилепсии по ЭЭГ
  • Реализация сверточной сетью
  • Одна из самых больших сверточных сетей
  • Пример тэгирования
  • Пример поиска похожих по изображению
  • Пример поиска в коллекции изображений по текстовому запросу
  • Пример laquoоблачногоraquo классификатора изображений
  • Slide 86
  • Самообучающиеся нейронные сети на основе минимизации функции эн
  • RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцман
  • Алгоритм обучения Contrastive Divergence (CD)
  • Основные уравнения адаптации
  • Алгоритм Хинтона - Contrastive Divergence (CD-k)
  • darch Package for deep architectures and Restricted-Bolzmann-
  • Связь плотности вероятности и энергии
  • Задача обучения с точки минимизации энергии сети
  • Интуитивные соображения
  • Slide 96
  • Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decom
  • Sparse linear reconstruction
  • Автоэнкодер (auto encoder)
  • Архитекттура ICA моделей
  • Итеративные алгоритмы с оптимальным разреженным кодированием 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)
Page 71: !Predictive analytics part_2

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

Сверточная (convolution) нейронная сеть

1 -- parameters 2 nstates = 16256128 3 fanin = 14 4 filtsize = 5 5 poolsize = 2 6 normkernel = imagegaussian1D(7) 7 8 -- Container 9 model = nnSequential()1011 -- stage 1 filter bank -gt squashing -gt L2 pooling -gt normalization12 modeladd(nnSpatialConvolutionMap(nntablesrandom(nfeats nstates[1] fanin[1]) filtsize filtsize))13 modeladd(nnTanh())14 modeladd(nnSpatialLPPooling(nstates[1]2poolsizepoolsizepoolsizepoolsize))15 modeladd(nnSpatialSubtractiveNormalization(16 normkernel))1617 -- stage 2 filter bank -gt squashing -gt L2 pooling -gt normalization18 modeladd(nnSpatialConvolutionMap(nntablesrandom(nstates[1] nstates[2] fanin[2]) filtsize filtsize))19 modeladd(nnTanh())20 modeladd(nnSpatialLPPooling(nstates[2]2poolsizepoolsizepoolsizepoolsize))21 modeladd(nnSpatialSubtractiveNormalization(nstates[2] normkernel))2223 -- stage 3 standard 2-layer neural network24 modeladd(nnReshape(nstates[2]filtsizefiltsize))25 modeladd(nnLinear(nstates[2]filtsizefiltsize nstates[3]))26 modeladd(nnTanh())27 modeladd(nnLinear(nstates[3] noutputs))

Код программы на Torch 7

Сверточные (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

Sparse linear reconstruction

bull Energy=reconstruction_error+code_prediction_error+code_sparsity

Автоэнкодер (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

bull saednntrain(x y hidden = c(1) activationfun = sigm learningrate = 08 momentum = 05 learningrate_scale = 1 output = sigm sae_output = linear numepochs = 3 batchsize = 100 hidden_dropout = 0 visible_dropout = 0)

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

Архитектура сети SAE

Архитектура с 5Х4 hidden 3 outs

Example

Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02)) Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1)) x lt- matrix(c(Var1 Var2) nrow = 100 ncol = 2)y lt- c(rep(1 50) rep(0 50))

обучение сетиdnn lt- saednntrain(x y hidden = c(5 5))

Анализ обучающего набора данныхgt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370helliphelliphelliphelliphelliphelliphelliphellip

gt y [1] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 [54] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

plot3d(xy)

Параметры SAE сети

gt dnn$input_dim[1] 2$output_dim[1] 1$hidden[1] 5 5$size[1] 2 5 5 1$activationfun[1] sigm$learningrate[1] 08

$momentum[1] 05$learningrate_scale[1] 1$hidden_dropout[1] 0$visible_dropout[1] 0$output[1] sigm$W

Коэффициенты связей

$W$W[[1]] [1] [2][1] -014355854 02471840[2] 011378030 -00715094[3] -004343738 03667468[4] 012756946 -01303379[5] -003445704 02293772

$W[[2]] [1] [2] [3] [4] [5][1] 00420191661 -0023073732 -008762756 0035575714 -0063000016[2] 00072771988 -0131204147 -010591421 0018221305 -0025539769[3] -01071896826 -0019479685 -009892573 -0012976429 -0111886901[4] -00009477304 -0023137518 -002147218 0007969452 -0118696306[5] 00045016013 0001885546 -010170954 -0140312396 -0003970102

$W[[3]] [1] [2] [3] [4] [5][1] 01027992 -007288099 003051227 -001731639 0009518049

$vW$vW[[1]] [1] [2][1] -8335203e-06 1368580e-05[2] -6530183e-05 1135070e-04[3] 2544302e-05 -3947111e-05[4] -5512835e-06 9541682e-06[5] 3822854e-05 -6281762e-05

$vW[[2]] [1] [2] [3] [4] [5][1] 4172450e-04 -2554411e-04 4896670e-04 -3526093e-04 3041932e-04[2] -3210759e-04 1978412e-04 -3769148e-04 2727933e-04 -2338477e-04[3] 1058770e-04 -6705336e-05 1244419e-04 -9201508e-05 7678296e-05[4] -8894178e-05 5481668e-05 -1044110e-04 7558269e-05 -6477571e-05[5] 2676520e-05 -1622289e-05 3139684e-05 -2243174e-05 1954349e-05

$vW[[3]] [1] [2] [3] [4] [5][1] -0002603034 -0002398256 -0003274074 -0002542478 -000209672

Предсказание обученной сетью

predict by dnntest_Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02))test_Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1))test_x lt- matrix(c(test_Var1 test_Var2) nrow = 100 ncol = 2)nntest(dnn test_x y)

[1] 025 Value error rate

Сравнение обучающей и тестовой выборки

gttest_x [1] [2] [1] 091887443 -08940890 [2] 115219448 -06050481 [3] 069917981 -08524551 [4] 028213787 -08146816 [5] 098405598 -11440813 [6] 185911887 -08203652 [7] 010843056 -10123789 [8] 083827953 -07594760 [9] -016373562 -09087116 [10] 088298748 -09767741 [11] 005280917 -07525407

gt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370

Plot3d(test_xy) Plot3d(xy)

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)

Подготовка к обработке

starting installationstep1installpackages(devtools)library(devtools)install_github(repo = mnist username = xrobin ref = master)library(mnist)

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
  • Аппроксимация линейными многообразиями (подпространствами)
  • Slide 30
  • Алгоритм
  • princomp(formula data = NULL subset naaction )
  • Principal Component Analysis (PCA)
  • Линейный дискриминантный анализ (Linear Discriminant Analysis -
  • Решение
  • lda(x grouping prior = proportions tol = 10e-4 method
  • Slide 37
  • Linear Discriminant Analysis (LDA)
  • Сравнение PCA и LDA
  • Метод опорных векторов (Support Vector Machines - SVM)
  • Идея алгоритма
  • Иллюстрация на простейшем примере
  • Линейная неразделимость и использование ядер
  • Иллюстрация использования ядра для отображения 2D -gt 3D
  • svm((formula data = NULL subset naaction = naomit sc
  • Support Vector Machines
  • Глубокое обучение (Deep Learning)
  • laquoВ 1997 году Deep Blue обыграл в шахматы Каспарова В 2011 Wats
  • Распознавание основано на feature detection и последующем раз
  • Распознавание рукописных цифр
  • Еще пример посложнее
  • Использование нейронной сети с обучением
  • Сверхвысокая размерность при работе с первичным представлением
  • Пиксельное кодирование
  • Принцип иерархии понятий ndash основа deep learning
  • Разреженное (sparse) кодирование
  • Словарь для лиц
  • Slide 58
  • Выделение объектов заданного класса
  • Основные архитектуры Deep Learning
  • Задача классификации распознавания и подобные являются задачей
  • Фактор - графы
  • Slide 63
  • Slide 64
  • Подход разреженного кодирования
  • Обобщенная архитектура
  • Slide 67
  • Slide 68
  • Slide 69
  • В действительности работают любые архитектуры построения функц
  • Machine Learning with Torch7 (httpcodecogbitscomwikidoku
  • Torch 7 является расширением Lua
  • Slide 73
  • Slide 74
  • Сверточные (convolution) нейронные сети
  • Свертка и архитектура 4-х уровневой сверточной сети
  • Функциональная структура
  • Примеры успешного применения сверточных сетей
  • Диагностика эпилепсии по ЭЭГ
  • Реализация сверточной сетью
  • Одна из самых больших сверточных сетей
  • Пример тэгирования
  • Пример поиска похожих по изображению
  • Пример поиска в коллекции изображений по текстовому запросу
  • Пример laquoоблачногоraquo классификатора изображений
  • Slide 86
  • Самообучающиеся нейронные сети на основе минимизации функции эн
  • RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцман
  • Алгоритм обучения Contrastive Divergence (CD)
  • Основные уравнения адаптации
  • Алгоритм Хинтона - Contrastive Divergence (CD-k)
  • darch Package for deep architectures and Restricted-Bolzmann-
  • Связь плотности вероятности и энергии
  • Задача обучения с точки минимизации энергии сети
  • Интуитивные соображения
  • Slide 96
  • Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decom
  • Sparse linear reconstruction
  • Автоэнкодер (auto encoder)
  • Архитекттура ICA моделей
  • Итеративные алгоритмы с оптимальным разреженным кодированием 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)
Page 72: !Predictive analytics part_2

Сверточная (convolution) нейронная сеть

1 -- parameters 2 nstates = 16256128 3 fanin = 14 4 filtsize = 5 5 poolsize = 2 6 normkernel = imagegaussian1D(7) 7 8 -- Container 9 model = nnSequential()1011 -- stage 1 filter bank -gt squashing -gt L2 pooling -gt normalization12 modeladd(nnSpatialConvolutionMap(nntablesrandom(nfeats nstates[1] fanin[1]) filtsize filtsize))13 modeladd(nnTanh())14 modeladd(nnSpatialLPPooling(nstates[1]2poolsizepoolsizepoolsizepoolsize))15 modeladd(nnSpatialSubtractiveNormalization(16 normkernel))1617 -- stage 2 filter bank -gt squashing -gt L2 pooling -gt normalization18 modeladd(nnSpatialConvolutionMap(nntablesrandom(nstates[1] nstates[2] fanin[2]) filtsize filtsize))19 modeladd(nnTanh())20 modeladd(nnSpatialLPPooling(nstates[2]2poolsizepoolsizepoolsizepoolsize))21 modeladd(nnSpatialSubtractiveNormalization(nstates[2] normkernel))2223 -- stage 3 standard 2-layer neural network24 modeladd(nnReshape(nstates[2]filtsizefiltsize))25 modeladd(nnLinear(nstates[2]filtsizefiltsize nstates[3]))26 modeladd(nnTanh())27 modeladd(nnLinear(nstates[3] noutputs))

Код программы на Torch 7

Сверточные (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

Sparse linear reconstruction

bull Energy=reconstruction_error+code_prediction_error+code_sparsity

Автоэнкодер (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

bull saednntrain(x y hidden = c(1) activationfun = sigm learningrate = 08 momentum = 05 learningrate_scale = 1 output = sigm sae_output = linear numepochs = 3 batchsize = 100 hidden_dropout = 0 visible_dropout = 0)

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

Архитектура сети SAE

Архитектура с 5Х4 hidden 3 outs

Example

Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02)) Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1)) x lt- matrix(c(Var1 Var2) nrow = 100 ncol = 2)y lt- c(rep(1 50) rep(0 50))

обучение сетиdnn lt- saednntrain(x y hidden = c(5 5))

Анализ обучающего набора данныхgt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370helliphelliphelliphelliphelliphelliphelliphellip

gt y [1] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 [54] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

plot3d(xy)

Параметры SAE сети

gt dnn$input_dim[1] 2$output_dim[1] 1$hidden[1] 5 5$size[1] 2 5 5 1$activationfun[1] sigm$learningrate[1] 08

$momentum[1] 05$learningrate_scale[1] 1$hidden_dropout[1] 0$visible_dropout[1] 0$output[1] sigm$W

Коэффициенты связей

$W$W[[1]] [1] [2][1] -014355854 02471840[2] 011378030 -00715094[3] -004343738 03667468[4] 012756946 -01303379[5] -003445704 02293772

$W[[2]] [1] [2] [3] [4] [5][1] 00420191661 -0023073732 -008762756 0035575714 -0063000016[2] 00072771988 -0131204147 -010591421 0018221305 -0025539769[3] -01071896826 -0019479685 -009892573 -0012976429 -0111886901[4] -00009477304 -0023137518 -002147218 0007969452 -0118696306[5] 00045016013 0001885546 -010170954 -0140312396 -0003970102

$W[[3]] [1] [2] [3] [4] [5][1] 01027992 -007288099 003051227 -001731639 0009518049

$vW$vW[[1]] [1] [2][1] -8335203e-06 1368580e-05[2] -6530183e-05 1135070e-04[3] 2544302e-05 -3947111e-05[4] -5512835e-06 9541682e-06[5] 3822854e-05 -6281762e-05

$vW[[2]] [1] [2] [3] [4] [5][1] 4172450e-04 -2554411e-04 4896670e-04 -3526093e-04 3041932e-04[2] -3210759e-04 1978412e-04 -3769148e-04 2727933e-04 -2338477e-04[3] 1058770e-04 -6705336e-05 1244419e-04 -9201508e-05 7678296e-05[4] -8894178e-05 5481668e-05 -1044110e-04 7558269e-05 -6477571e-05[5] 2676520e-05 -1622289e-05 3139684e-05 -2243174e-05 1954349e-05

$vW[[3]] [1] [2] [3] [4] [5][1] -0002603034 -0002398256 -0003274074 -0002542478 -000209672

Предсказание обученной сетью

predict by dnntest_Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02))test_Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1))test_x lt- matrix(c(test_Var1 test_Var2) nrow = 100 ncol = 2)nntest(dnn test_x y)

[1] 025 Value error rate

Сравнение обучающей и тестовой выборки

gttest_x [1] [2] [1] 091887443 -08940890 [2] 115219448 -06050481 [3] 069917981 -08524551 [4] 028213787 -08146816 [5] 098405598 -11440813 [6] 185911887 -08203652 [7] 010843056 -10123789 [8] 083827953 -07594760 [9] -016373562 -09087116 [10] 088298748 -09767741 [11] 005280917 -07525407

gt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370

Plot3d(test_xy) Plot3d(xy)

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)

Подготовка к обработке

starting installationstep1installpackages(devtools)library(devtools)install_github(repo = mnist username = xrobin ref = master)library(mnist)

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
  • Аппроксимация линейными многообразиями (подпространствами)
  • Slide 30
  • Алгоритм
  • princomp(formula data = NULL subset naaction )
  • Principal Component Analysis (PCA)
  • Линейный дискриминантный анализ (Linear Discriminant Analysis -
  • Решение
  • lda(x grouping prior = proportions tol = 10e-4 method
  • Slide 37
  • Linear Discriminant Analysis (LDA)
  • Сравнение PCA и LDA
  • Метод опорных векторов (Support Vector Machines - SVM)
  • Идея алгоритма
  • Иллюстрация на простейшем примере
  • Линейная неразделимость и использование ядер
  • Иллюстрация использования ядра для отображения 2D -gt 3D
  • svm((formula data = NULL subset naaction = naomit sc
  • Support Vector Machines
  • Глубокое обучение (Deep Learning)
  • laquoВ 1997 году Deep Blue обыграл в шахматы Каспарова В 2011 Wats
  • Распознавание основано на feature detection и последующем раз
  • Распознавание рукописных цифр
  • Еще пример посложнее
  • Использование нейронной сети с обучением
  • Сверхвысокая размерность при работе с первичным представлением
  • Пиксельное кодирование
  • Принцип иерархии понятий ndash основа deep learning
  • Разреженное (sparse) кодирование
  • Словарь для лиц
  • Slide 58
  • Выделение объектов заданного класса
  • Основные архитектуры Deep Learning
  • Задача классификации распознавания и подобные являются задачей
  • Фактор - графы
  • Slide 63
  • Slide 64
  • Подход разреженного кодирования
  • Обобщенная архитектура
  • Slide 67
  • Slide 68
  • Slide 69
  • В действительности работают любые архитектуры построения функц
  • Machine Learning with Torch7 (httpcodecogbitscomwikidoku
  • Torch 7 является расширением Lua
  • Slide 73
  • Slide 74
  • Сверточные (convolution) нейронные сети
  • Свертка и архитектура 4-х уровневой сверточной сети
  • Функциональная структура
  • Примеры успешного применения сверточных сетей
  • Диагностика эпилепсии по ЭЭГ
  • Реализация сверточной сетью
  • Одна из самых больших сверточных сетей
  • Пример тэгирования
  • Пример поиска похожих по изображению
  • Пример поиска в коллекции изображений по текстовому запросу
  • Пример laquoоблачногоraquo классификатора изображений
  • Slide 86
  • Самообучающиеся нейронные сети на основе минимизации функции эн
  • RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцман
  • Алгоритм обучения Contrastive Divergence (CD)
  • Основные уравнения адаптации
  • Алгоритм Хинтона - Contrastive Divergence (CD-k)
  • darch Package for deep architectures and Restricted-Bolzmann-
  • Связь плотности вероятности и энергии
  • Задача обучения с точки минимизации энергии сети
  • Интуитивные соображения
  • Slide 96
  • Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decom
  • Sparse linear reconstruction
  • Автоэнкодер (auto encoder)
  • Архитекттура ICA моделей
  • Итеративные алгоритмы с оптимальным разреженным кодированием 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)
Page 73: !Predictive analytics part_2

1 -- parameters 2 nstates = 16256128 3 fanin = 14 4 filtsize = 5 5 poolsize = 2 6 normkernel = imagegaussian1D(7) 7 8 -- Container 9 model = nnSequential()1011 -- stage 1 filter bank -gt squashing -gt L2 pooling -gt normalization12 modeladd(nnSpatialConvolutionMap(nntablesrandom(nfeats nstates[1] fanin[1]) filtsize filtsize))13 modeladd(nnTanh())14 modeladd(nnSpatialLPPooling(nstates[1]2poolsizepoolsizepoolsizepoolsize))15 modeladd(nnSpatialSubtractiveNormalization(16 normkernel))1617 -- stage 2 filter bank -gt squashing -gt L2 pooling -gt normalization18 modeladd(nnSpatialConvolutionMap(nntablesrandom(nstates[1] nstates[2] fanin[2]) filtsize filtsize))19 modeladd(nnTanh())20 modeladd(nnSpatialLPPooling(nstates[2]2poolsizepoolsizepoolsizepoolsize))21 modeladd(nnSpatialSubtractiveNormalization(nstates[2] normkernel))2223 -- stage 3 standard 2-layer neural network24 modeladd(nnReshape(nstates[2]filtsizefiltsize))25 modeladd(nnLinear(nstates[2]filtsizefiltsize nstates[3]))26 modeladd(nnTanh())27 modeladd(nnLinear(nstates[3] noutputs))

Код программы на Torch 7

Сверточные (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

Sparse linear reconstruction

bull Energy=reconstruction_error+code_prediction_error+code_sparsity

Автоэнкодер (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

bull saednntrain(x y hidden = c(1) activationfun = sigm learningrate = 08 momentum = 05 learningrate_scale = 1 output = sigm sae_output = linear numepochs = 3 batchsize = 100 hidden_dropout = 0 visible_dropout = 0)

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

Архитектура сети SAE

Архитектура с 5Х4 hidden 3 outs

Example

Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02)) Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1)) x lt- matrix(c(Var1 Var2) nrow = 100 ncol = 2)y lt- c(rep(1 50) rep(0 50))

обучение сетиdnn lt- saednntrain(x y hidden = c(5 5))

Анализ обучающего набора данныхgt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370helliphelliphelliphelliphelliphelliphelliphellip

gt y [1] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 [54] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

plot3d(xy)

Параметры SAE сети

gt dnn$input_dim[1] 2$output_dim[1] 1$hidden[1] 5 5$size[1] 2 5 5 1$activationfun[1] sigm$learningrate[1] 08

$momentum[1] 05$learningrate_scale[1] 1$hidden_dropout[1] 0$visible_dropout[1] 0$output[1] sigm$W

Коэффициенты связей

$W$W[[1]] [1] [2][1] -014355854 02471840[2] 011378030 -00715094[3] -004343738 03667468[4] 012756946 -01303379[5] -003445704 02293772

$W[[2]] [1] [2] [3] [4] [5][1] 00420191661 -0023073732 -008762756 0035575714 -0063000016[2] 00072771988 -0131204147 -010591421 0018221305 -0025539769[3] -01071896826 -0019479685 -009892573 -0012976429 -0111886901[4] -00009477304 -0023137518 -002147218 0007969452 -0118696306[5] 00045016013 0001885546 -010170954 -0140312396 -0003970102

$W[[3]] [1] [2] [3] [4] [5][1] 01027992 -007288099 003051227 -001731639 0009518049

$vW$vW[[1]] [1] [2][1] -8335203e-06 1368580e-05[2] -6530183e-05 1135070e-04[3] 2544302e-05 -3947111e-05[4] -5512835e-06 9541682e-06[5] 3822854e-05 -6281762e-05

$vW[[2]] [1] [2] [3] [4] [5][1] 4172450e-04 -2554411e-04 4896670e-04 -3526093e-04 3041932e-04[2] -3210759e-04 1978412e-04 -3769148e-04 2727933e-04 -2338477e-04[3] 1058770e-04 -6705336e-05 1244419e-04 -9201508e-05 7678296e-05[4] -8894178e-05 5481668e-05 -1044110e-04 7558269e-05 -6477571e-05[5] 2676520e-05 -1622289e-05 3139684e-05 -2243174e-05 1954349e-05

$vW[[3]] [1] [2] [3] [4] [5][1] -0002603034 -0002398256 -0003274074 -0002542478 -000209672

Предсказание обученной сетью

predict by dnntest_Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02))test_Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1))test_x lt- matrix(c(test_Var1 test_Var2) nrow = 100 ncol = 2)nntest(dnn test_x y)

[1] 025 Value error rate

Сравнение обучающей и тестовой выборки

gttest_x [1] [2] [1] 091887443 -08940890 [2] 115219448 -06050481 [3] 069917981 -08524551 [4] 028213787 -08146816 [5] 098405598 -11440813 [6] 185911887 -08203652 [7] 010843056 -10123789 [8] 083827953 -07594760 [9] -016373562 -09087116 [10] 088298748 -09767741 [11] 005280917 -07525407

gt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370

Plot3d(test_xy) Plot3d(xy)

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)

Подготовка к обработке

starting installationstep1installpackages(devtools)library(devtools)install_github(repo = mnist username = xrobin ref = master)library(mnist)

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
  • Аппроксимация линейными многообразиями (подпространствами)
  • Slide 30
  • Алгоритм
  • princomp(formula data = NULL subset naaction )
  • Principal Component Analysis (PCA)
  • Линейный дискриминантный анализ (Linear Discriminant Analysis -
  • Решение
  • lda(x grouping prior = proportions tol = 10e-4 method
  • Slide 37
  • Linear Discriminant Analysis (LDA)
  • Сравнение PCA и LDA
  • Метод опорных векторов (Support Vector Machines - SVM)
  • Идея алгоритма
  • Иллюстрация на простейшем примере
  • Линейная неразделимость и использование ядер
  • Иллюстрация использования ядра для отображения 2D -gt 3D
  • svm((formula data = NULL subset naaction = naomit sc
  • Support Vector Machines
  • Глубокое обучение (Deep Learning)
  • laquoВ 1997 году Deep Blue обыграл в шахматы Каспарова В 2011 Wats
  • Распознавание основано на feature detection и последующем раз
  • Распознавание рукописных цифр
  • Еще пример посложнее
  • Использование нейронной сети с обучением
  • Сверхвысокая размерность при работе с первичным представлением
  • Пиксельное кодирование
  • Принцип иерархии понятий ndash основа deep learning
  • Разреженное (sparse) кодирование
  • Словарь для лиц
  • Slide 58
  • Выделение объектов заданного класса
  • Основные архитектуры Deep Learning
  • Задача классификации распознавания и подобные являются задачей
  • Фактор - графы
  • Slide 63
  • Slide 64
  • Подход разреженного кодирования
  • Обобщенная архитектура
  • Slide 67
  • Slide 68
  • Slide 69
  • В действительности работают любые архитектуры построения функц
  • Machine Learning with Torch7 (httpcodecogbitscomwikidoku
  • Torch 7 является расширением Lua
  • Slide 73
  • Slide 74
  • Сверточные (convolution) нейронные сети
  • Свертка и архитектура 4-х уровневой сверточной сети
  • Функциональная структура
  • Примеры успешного применения сверточных сетей
  • Диагностика эпилепсии по ЭЭГ
  • Реализация сверточной сетью
  • Одна из самых больших сверточных сетей
  • Пример тэгирования
  • Пример поиска похожих по изображению
  • Пример поиска в коллекции изображений по текстовому запросу
  • Пример laquoоблачногоraquo классификатора изображений
  • Slide 86
  • Самообучающиеся нейронные сети на основе минимизации функции эн
  • RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцман
  • Алгоритм обучения Contrastive Divergence (CD)
  • Основные уравнения адаптации
  • Алгоритм Хинтона - Contrastive Divergence (CD-k)
  • darch Package for deep architectures and Restricted-Bolzmann-
  • Связь плотности вероятности и энергии
  • Задача обучения с точки минимизации энергии сети
  • Интуитивные соображения
  • Slide 96
  • Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decom
  • Sparse linear reconstruction
  • Автоэнкодер (auto encoder)
  • Архитекттура ICA моделей
  • Итеративные алгоритмы с оптимальным разреженным кодированием 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)
Page 74: !Predictive analytics part_2

Сверточные (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

Sparse linear reconstruction

bull Energy=reconstruction_error+code_prediction_error+code_sparsity

Автоэнкодер (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

bull saednntrain(x y hidden = c(1) activationfun = sigm learningrate = 08 momentum = 05 learningrate_scale = 1 output = sigm sae_output = linear numepochs = 3 batchsize = 100 hidden_dropout = 0 visible_dropout = 0)

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

Архитектура сети SAE

Архитектура с 5Х4 hidden 3 outs

Example

Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02)) Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1)) x lt- matrix(c(Var1 Var2) nrow = 100 ncol = 2)y lt- c(rep(1 50) rep(0 50))

обучение сетиdnn lt- saednntrain(x y hidden = c(5 5))

Анализ обучающего набора данныхgt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370helliphelliphelliphelliphelliphelliphelliphellip

gt y [1] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 [54] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

plot3d(xy)

Параметры SAE сети

gt dnn$input_dim[1] 2$output_dim[1] 1$hidden[1] 5 5$size[1] 2 5 5 1$activationfun[1] sigm$learningrate[1] 08

$momentum[1] 05$learningrate_scale[1] 1$hidden_dropout[1] 0$visible_dropout[1] 0$output[1] sigm$W

Коэффициенты связей

$W$W[[1]] [1] [2][1] -014355854 02471840[2] 011378030 -00715094[3] -004343738 03667468[4] 012756946 -01303379[5] -003445704 02293772

$W[[2]] [1] [2] [3] [4] [5][1] 00420191661 -0023073732 -008762756 0035575714 -0063000016[2] 00072771988 -0131204147 -010591421 0018221305 -0025539769[3] -01071896826 -0019479685 -009892573 -0012976429 -0111886901[4] -00009477304 -0023137518 -002147218 0007969452 -0118696306[5] 00045016013 0001885546 -010170954 -0140312396 -0003970102

$W[[3]] [1] [2] [3] [4] [5][1] 01027992 -007288099 003051227 -001731639 0009518049

$vW$vW[[1]] [1] [2][1] -8335203e-06 1368580e-05[2] -6530183e-05 1135070e-04[3] 2544302e-05 -3947111e-05[4] -5512835e-06 9541682e-06[5] 3822854e-05 -6281762e-05

$vW[[2]] [1] [2] [3] [4] [5][1] 4172450e-04 -2554411e-04 4896670e-04 -3526093e-04 3041932e-04[2] -3210759e-04 1978412e-04 -3769148e-04 2727933e-04 -2338477e-04[3] 1058770e-04 -6705336e-05 1244419e-04 -9201508e-05 7678296e-05[4] -8894178e-05 5481668e-05 -1044110e-04 7558269e-05 -6477571e-05[5] 2676520e-05 -1622289e-05 3139684e-05 -2243174e-05 1954349e-05

$vW[[3]] [1] [2] [3] [4] [5][1] -0002603034 -0002398256 -0003274074 -0002542478 -000209672

Предсказание обученной сетью

predict by dnntest_Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02))test_Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1))test_x lt- matrix(c(test_Var1 test_Var2) nrow = 100 ncol = 2)nntest(dnn test_x y)

[1] 025 Value error rate

Сравнение обучающей и тестовой выборки

gttest_x [1] [2] [1] 091887443 -08940890 [2] 115219448 -06050481 [3] 069917981 -08524551 [4] 028213787 -08146816 [5] 098405598 -11440813 [6] 185911887 -08203652 [7] 010843056 -10123789 [8] 083827953 -07594760 [9] -016373562 -09087116 [10] 088298748 -09767741 [11] 005280917 -07525407

gt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370

Plot3d(test_xy) Plot3d(xy)

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)

Подготовка к обработке

starting installationstep1installpackages(devtools)library(devtools)install_github(repo = mnist username = xrobin ref = master)library(mnist)

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
  • Аппроксимация линейными многообразиями (подпространствами)
  • Slide 30
  • Алгоритм
  • princomp(formula data = NULL subset naaction )
  • Principal Component Analysis (PCA)
  • Линейный дискриминантный анализ (Linear Discriminant Analysis -
  • Решение
  • lda(x grouping prior = proportions tol = 10e-4 method
  • Slide 37
  • Linear Discriminant Analysis (LDA)
  • Сравнение PCA и LDA
  • Метод опорных векторов (Support Vector Machines - SVM)
  • Идея алгоритма
  • Иллюстрация на простейшем примере
  • Линейная неразделимость и использование ядер
  • Иллюстрация использования ядра для отображения 2D -gt 3D
  • svm((formula data = NULL subset naaction = naomit sc
  • Support Vector Machines
  • Глубокое обучение (Deep Learning)
  • laquoВ 1997 году Deep Blue обыграл в шахматы Каспарова В 2011 Wats
  • Распознавание основано на feature detection и последующем раз
  • Распознавание рукописных цифр
  • Еще пример посложнее
  • Использование нейронной сети с обучением
  • Сверхвысокая размерность при работе с первичным представлением
  • Пиксельное кодирование
  • Принцип иерархии понятий ndash основа deep learning
  • Разреженное (sparse) кодирование
  • Словарь для лиц
  • Slide 58
  • Выделение объектов заданного класса
  • Основные архитектуры Deep Learning
  • Задача классификации распознавания и подобные являются задачей
  • Фактор - графы
  • Slide 63
  • Slide 64
  • Подход разреженного кодирования
  • Обобщенная архитектура
  • Slide 67
  • Slide 68
  • Slide 69
  • В действительности работают любые архитектуры построения функц
  • Machine Learning with Torch7 (httpcodecogbitscomwikidoku
  • Torch 7 является расширением Lua
  • Slide 73
  • Slide 74
  • Сверточные (convolution) нейронные сети
  • Свертка и архитектура 4-х уровневой сверточной сети
  • Функциональная структура
  • Примеры успешного применения сверточных сетей
  • Диагностика эпилепсии по ЭЭГ
  • Реализация сверточной сетью
  • Одна из самых больших сверточных сетей
  • Пример тэгирования
  • Пример поиска похожих по изображению
  • Пример поиска в коллекции изображений по текстовому запросу
  • Пример laquoоблачногоraquo классификатора изображений
  • Slide 86
  • Самообучающиеся нейронные сети на основе минимизации функции эн
  • RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцман
  • Алгоритм обучения Contrastive Divergence (CD)
  • Основные уравнения адаптации
  • Алгоритм Хинтона - Contrastive Divergence (CD-k)
  • darch Package for deep architectures and Restricted-Bolzmann-
  • Связь плотности вероятности и энергии
  • Задача обучения с точки минимизации энергии сети
  • Интуитивные соображения
  • Slide 96
  • Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decom
  • Sparse linear reconstruction
  • Автоэнкодер (auto encoder)
  • Архитекттура ICA моделей
  • Итеративные алгоритмы с оптимальным разреженным кодированием 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)
Page 75: !Predictive analytics part_2

Свертка и архитектура 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

Sparse linear reconstruction

bull Energy=reconstruction_error+code_prediction_error+code_sparsity

Автоэнкодер (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

bull saednntrain(x y hidden = c(1) activationfun = sigm learningrate = 08 momentum = 05 learningrate_scale = 1 output = sigm sae_output = linear numepochs = 3 batchsize = 100 hidden_dropout = 0 visible_dropout = 0)

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

Архитектура сети SAE

Архитектура с 5Х4 hidden 3 outs

Example

Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02)) Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1)) x lt- matrix(c(Var1 Var2) nrow = 100 ncol = 2)y lt- c(rep(1 50) rep(0 50))

обучение сетиdnn lt- saednntrain(x y hidden = c(5 5))

Анализ обучающего набора данныхgt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370helliphelliphelliphelliphelliphelliphelliphellip

gt y [1] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 [54] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

plot3d(xy)

Параметры SAE сети

gt dnn$input_dim[1] 2$output_dim[1] 1$hidden[1] 5 5$size[1] 2 5 5 1$activationfun[1] sigm$learningrate[1] 08

$momentum[1] 05$learningrate_scale[1] 1$hidden_dropout[1] 0$visible_dropout[1] 0$output[1] sigm$W

Коэффициенты связей

$W$W[[1]] [1] [2][1] -014355854 02471840[2] 011378030 -00715094[3] -004343738 03667468[4] 012756946 -01303379[5] -003445704 02293772

$W[[2]] [1] [2] [3] [4] [5][1] 00420191661 -0023073732 -008762756 0035575714 -0063000016[2] 00072771988 -0131204147 -010591421 0018221305 -0025539769[3] -01071896826 -0019479685 -009892573 -0012976429 -0111886901[4] -00009477304 -0023137518 -002147218 0007969452 -0118696306[5] 00045016013 0001885546 -010170954 -0140312396 -0003970102

$W[[3]] [1] [2] [3] [4] [5][1] 01027992 -007288099 003051227 -001731639 0009518049

$vW$vW[[1]] [1] [2][1] -8335203e-06 1368580e-05[2] -6530183e-05 1135070e-04[3] 2544302e-05 -3947111e-05[4] -5512835e-06 9541682e-06[5] 3822854e-05 -6281762e-05

$vW[[2]] [1] [2] [3] [4] [5][1] 4172450e-04 -2554411e-04 4896670e-04 -3526093e-04 3041932e-04[2] -3210759e-04 1978412e-04 -3769148e-04 2727933e-04 -2338477e-04[3] 1058770e-04 -6705336e-05 1244419e-04 -9201508e-05 7678296e-05[4] -8894178e-05 5481668e-05 -1044110e-04 7558269e-05 -6477571e-05[5] 2676520e-05 -1622289e-05 3139684e-05 -2243174e-05 1954349e-05

$vW[[3]] [1] [2] [3] [4] [5][1] -0002603034 -0002398256 -0003274074 -0002542478 -000209672

Предсказание обученной сетью

predict by dnntest_Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02))test_Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1))test_x lt- matrix(c(test_Var1 test_Var2) nrow = 100 ncol = 2)nntest(dnn test_x y)

[1] 025 Value error rate

Сравнение обучающей и тестовой выборки

gttest_x [1] [2] [1] 091887443 -08940890 [2] 115219448 -06050481 [3] 069917981 -08524551 [4] 028213787 -08146816 [5] 098405598 -11440813 [6] 185911887 -08203652 [7] 010843056 -10123789 [8] 083827953 -07594760 [9] -016373562 -09087116 [10] 088298748 -09767741 [11] 005280917 -07525407

gt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370

Plot3d(test_xy) Plot3d(xy)

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)

Подготовка к обработке

starting installationstep1installpackages(devtools)library(devtools)install_github(repo = mnist username = xrobin ref = master)library(mnist)

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
  • Аппроксимация линейными многообразиями (подпространствами)
  • Slide 30
  • Алгоритм
  • princomp(formula data = NULL subset naaction )
  • Principal Component Analysis (PCA)
  • Линейный дискриминантный анализ (Linear Discriminant Analysis -
  • Решение
  • lda(x grouping prior = proportions tol = 10e-4 method
  • Slide 37
  • Linear Discriminant Analysis (LDA)
  • Сравнение PCA и LDA
  • Метод опорных векторов (Support Vector Machines - SVM)
  • Идея алгоритма
  • Иллюстрация на простейшем примере
  • Линейная неразделимость и использование ядер
  • Иллюстрация использования ядра для отображения 2D -gt 3D
  • svm((formula data = NULL subset naaction = naomit sc
  • Support Vector Machines
  • Глубокое обучение (Deep Learning)
  • laquoВ 1997 году Deep Blue обыграл в шахматы Каспарова В 2011 Wats
  • Распознавание основано на feature detection и последующем раз
  • Распознавание рукописных цифр
  • Еще пример посложнее
  • Использование нейронной сети с обучением
  • Сверхвысокая размерность при работе с первичным представлением
  • Пиксельное кодирование
  • Принцип иерархии понятий ndash основа deep learning
  • Разреженное (sparse) кодирование
  • Словарь для лиц
  • Slide 58
  • Выделение объектов заданного класса
  • Основные архитектуры Deep Learning
  • Задача классификации распознавания и подобные являются задачей
  • Фактор - графы
  • Slide 63
  • Slide 64
  • Подход разреженного кодирования
  • Обобщенная архитектура
  • Slide 67
  • Slide 68
  • Slide 69
  • В действительности работают любые архитектуры построения функц
  • Machine Learning with Torch7 (httpcodecogbitscomwikidoku
  • Torch 7 является расширением Lua
  • Slide 73
  • Slide 74
  • Сверточные (convolution) нейронные сети
  • Свертка и архитектура 4-х уровневой сверточной сети
  • Функциональная структура
  • Примеры успешного применения сверточных сетей
  • Диагностика эпилепсии по ЭЭГ
  • Реализация сверточной сетью
  • Одна из самых больших сверточных сетей
  • Пример тэгирования
  • Пример поиска похожих по изображению
  • Пример поиска в коллекции изображений по текстовому запросу
  • Пример laquoоблачногоraquo классификатора изображений
  • Slide 86
  • Самообучающиеся нейронные сети на основе минимизации функции эн
  • RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцман
  • Алгоритм обучения Contrastive Divergence (CD)
  • Основные уравнения адаптации
  • Алгоритм Хинтона - Contrastive Divergence (CD-k)
  • darch Package for deep architectures and Restricted-Bolzmann-
  • Связь плотности вероятности и энергии
  • Задача обучения с точки минимизации энергии сети
  • Интуитивные соображения
  • Slide 96
  • Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decom
  • Sparse linear reconstruction
  • Автоэнкодер (auto encoder)
  • Архитекттура ICA моделей
  • Итеративные алгоритмы с оптимальным разреженным кодированием 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)
Page 76: !Predictive analytics part_2

Функциональная структура

Примеры успешного применения сверточных сетей

Диагностика эпилепсии по ЭЭГ

Реализация сверточной сетью

Одна из самых больших сверточных сетей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

Sparse linear reconstruction

bull Energy=reconstruction_error+code_prediction_error+code_sparsity

Автоэнкодер (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

bull saednntrain(x y hidden = c(1) activationfun = sigm learningrate = 08 momentum = 05 learningrate_scale = 1 output = sigm sae_output = linear numepochs = 3 batchsize = 100 hidden_dropout = 0 visible_dropout = 0)

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

Архитектура сети SAE

Архитектура с 5Х4 hidden 3 outs

Example

Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02)) Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1)) x lt- matrix(c(Var1 Var2) nrow = 100 ncol = 2)y lt- c(rep(1 50) rep(0 50))

обучение сетиdnn lt- saednntrain(x y hidden = c(5 5))

Анализ обучающего набора данныхgt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370helliphelliphelliphelliphelliphelliphelliphellip

gt y [1] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 [54] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

plot3d(xy)

Параметры SAE сети

gt dnn$input_dim[1] 2$output_dim[1] 1$hidden[1] 5 5$size[1] 2 5 5 1$activationfun[1] sigm$learningrate[1] 08

$momentum[1] 05$learningrate_scale[1] 1$hidden_dropout[1] 0$visible_dropout[1] 0$output[1] sigm$W

Коэффициенты связей

$W$W[[1]] [1] [2][1] -014355854 02471840[2] 011378030 -00715094[3] -004343738 03667468[4] 012756946 -01303379[5] -003445704 02293772

$W[[2]] [1] [2] [3] [4] [5][1] 00420191661 -0023073732 -008762756 0035575714 -0063000016[2] 00072771988 -0131204147 -010591421 0018221305 -0025539769[3] -01071896826 -0019479685 -009892573 -0012976429 -0111886901[4] -00009477304 -0023137518 -002147218 0007969452 -0118696306[5] 00045016013 0001885546 -010170954 -0140312396 -0003970102

$W[[3]] [1] [2] [3] [4] [5][1] 01027992 -007288099 003051227 -001731639 0009518049

$vW$vW[[1]] [1] [2][1] -8335203e-06 1368580e-05[2] -6530183e-05 1135070e-04[3] 2544302e-05 -3947111e-05[4] -5512835e-06 9541682e-06[5] 3822854e-05 -6281762e-05

$vW[[2]] [1] [2] [3] [4] [5][1] 4172450e-04 -2554411e-04 4896670e-04 -3526093e-04 3041932e-04[2] -3210759e-04 1978412e-04 -3769148e-04 2727933e-04 -2338477e-04[3] 1058770e-04 -6705336e-05 1244419e-04 -9201508e-05 7678296e-05[4] -8894178e-05 5481668e-05 -1044110e-04 7558269e-05 -6477571e-05[5] 2676520e-05 -1622289e-05 3139684e-05 -2243174e-05 1954349e-05

$vW[[3]] [1] [2] [3] [4] [5][1] -0002603034 -0002398256 -0003274074 -0002542478 -000209672

Предсказание обученной сетью

predict by dnntest_Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02))test_Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1))test_x lt- matrix(c(test_Var1 test_Var2) nrow = 100 ncol = 2)nntest(dnn test_x y)

[1] 025 Value error rate

Сравнение обучающей и тестовой выборки

gttest_x [1] [2] [1] 091887443 -08940890 [2] 115219448 -06050481 [3] 069917981 -08524551 [4] 028213787 -08146816 [5] 098405598 -11440813 [6] 185911887 -08203652 [7] 010843056 -10123789 [8] 083827953 -07594760 [9] -016373562 -09087116 [10] 088298748 -09767741 [11] 005280917 -07525407

gt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370

Plot3d(test_xy) Plot3d(xy)

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)

Подготовка к обработке

starting installationstep1installpackages(devtools)library(devtools)install_github(repo = mnist username = xrobin ref = master)library(mnist)

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
  • Аппроксимация линейными многообразиями (подпространствами)
  • Slide 30
  • Алгоритм
  • princomp(formula data = NULL subset naaction )
  • Principal Component Analysis (PCA)
  • Линейный дискриминантный анализ (Linear Discriminant Analysis -
  • Решение
  • lda(x grouping prior = proportions tol = 10e-4 method
  • Slide 37
  • Linear Discriminant Analysis (LDA)
  • Сравнение PCA и LDA
  • Метод опорных векторов (Support Vector Machines - SVM)
  • Идея алгоритма
  • Иллюстрация на простейшем примере
  • Линейная неразделимость и использование ядер
  • Иллюстрация использования ядра для отображения 2D -gt 3D
  • svm((formula data = NULL subset naaction = naomit sc
  • Support Vector Machines
  • Глубокое обучение (Deep Learning)
  • laquoВ 1997 году Deep Blue обыграл в шахматы Каспарова В 2011 Wats
  • Распознавание основано на feature detection и последующем раз
  • Распознавание рукописных цифр
  • Еще пример посложнее
  • Использование нейронной сети с обучением
  • Сверхвысокая размерность при работе с первичным представлением
  • Пиксельное кодирование
  • Принцип иерархии понятий ndash основа deep learning
  • Разреженное (sparse) кодирование
  • Словарь для лиц
  • Slide 58
  • Выделение объектов заданного класса
  • Основные архитектуры Deep Learning
  • Задача классификации распознавания и подобные являются задачей
  • Фактор - графы
  • Slide 63
  • Slide 64
  • Подход разреженного кодирования
  • Обобщенная архитектура
  • Slide 67
  • Slide 68
  • Slide 69
  • В действительности работают любые архитектуры построения функц
  • Machine Learning with Torch7 (httpcodecogbitscomwikidoku
  • Torch 7 является расширением Lua
  • Slide 73
  • Slide 74
  • Сверточные (convolution) нейронные сети
  • Свертка и архитектура 4-х уровневой сверточной сети
  • Функциональная структура
  • Примеры успешного применения сверточных сетей
  • Диагностика эпилепсии по ЭЭГ
  • Реализация сверточной сетью
  • Одна из самых больших сверточных сетей
  • Пример тэгирования
  • Пример поиска похожих по изображению
  • Пример поиска в коллекции изображений по текстовому запросу
  • Пример laquoоблачногоraquo классификатора изображений
  • Slide 86
  • Самообучающиеся нейронные сети на основе минимизации функции эн
  • RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцман
  • Алгоритм обучения Contrastive Divergence (CD)
  • Основные уравнения адаптации
  • Алгоритм Хинтона - Contrastive Divergence (CD-k)
  • darch Package for deep architectures and Restricted-Bolzmann-
  • Связь плотности вероятности и энергии
  • Задача обучения с точки минимизации энергии сети
  • Интуитивные соображения
  • Slide 96
  • Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decom
  • Sparse linear reconstruction
  • Автоэнкодер (auto encoder)
  • Архитекттура ICA моделей
  • Итеративные алгоритмы с оптимальным разреженным кодированием 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)
Page 77: !Predictive analytics part_2

Примеры успешного применения сверточных сетей

Диагностика эпилепсии по ЭЭГ

Реализация сверточной сетью

Одна из самых больших сверточных сетей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

Sparse linear reconstruction

bull Energy=reconstruction_error+code_prediction_error+code_sparsity

Автоэнкодер (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

bull saednntrain(x y hidden = c(1) activationfun = sigm learningrate = 08 momentum = 05 learningrate_scale = 1 output = sigm sae_output = linear numepochs = 3 batchsize = 100 hidden_dropout = 0 visible_dropout = 0)

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

Архитектура сети SAE

Архитектура с 5Х4 hidden 3 outs

Example

Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02)) Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1)) x lt- matrix(c(Var1 Var2) nrow = 100 ncol = 2)y lt- c(rep(1 50) rep(0 50))

обучение сетиdnn lt- saednntrain(x y hidden = c(5 5))

Анализ обучающего набора данныхgt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370helliphelliphelliphelliphelliphelliphelliphellip

gt y [1] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 [54] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

plot3d(xy)

Параметры SAE сети

gt dnn$input_dim[1] 2$output_dim[1] 1$hidden[1] 5 5$size[1] 2 5 5 1$activationfun[1] sigm$learningrate[1] 08

$momentum[1] 05$learningrate_scale[1] 1$hidden_dropout[1] 0$visible_dropout[1] 0$output[1] sigm$W

Коэффициенты связей

$W$W[[1]] [1] [2][1] -014355854 02471840[2] 011378030 -00715094[3] -004343738 03667468[4] 012756946 -01303379[5] -003445704 02293772

$W[[2]] [1] [2] [3] [4] [5][1] 00420191661 -0023073732 -008762756 0035575714 -0063000016[2] 00072771988 -0131204147 -010591421 0018221305 -0025539769[3] -01071896826 -0019479685 -009892573 -0012976429 -0111886901[4] -00009477304 -0023137518 -002147218 0007969452 -0118696306[5] 00045016013 0001885546 -010170954 -0140312396 -0003970102

$W[[3]] [1] [2] [3] [4] [5][1] 01027992 -007288099 003051227 -001731639 0009518049

$vW$vW[[1]] [1] [2][1] -8335203e-06 1368580e-05[2] -6530183e-05 1135070e-04[3] 2544302e-05 -3947111e-05[4] -5512835e-06 9541682e-06[5] 3822854e-05 -6281762e-05

$vW[[2]] [1] [2] [3] [4] [5][1] 4172450e-04 -2554411e-04 4896670e-04 -3526093e-04 3041932e-04[2] -3210759e-04 1978412e-04 -3769148e-04 2727933e-04 -2338477e-04[3] 1058770e-04 -6705336e-05 1244419e-04 -9201508e-05 7678296e-05[4] -8894178e-05 5481668e-05 -1044110e-04 7558269e-05 -6477571e-05[5] 2676520e-05 -1622289e-05 3139684e-05 -2243174e-05 1954349e-05

$vW[[3]] [1] [2] [3] [4] [5][1] -0002603034 -0002398256 -0003274074 -0002542478 -000209672

Предсказание обученной сетью

predict by dnntest_Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02))test_Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1))test_x lt- matrix(c(test_Var1 test_Var2) nrow = 100 ncol = 2)nntest(dnn test_x y)

[1] 025 Value error rate

Сравнение обучающей и тестовой выборки

gttest_x [1] [2] [1] 091887443 -08940890 [2] 115219448 -06050481 [3] 069917981 -08524551 [4] 028213787 -08146816 [5] 098405598 -11440813 [6] 185911887 -08203652 [7] 010843056 -10123789 [8] 083827953 -07594760 [9] -016373562 -09087116 [10] 088298748 -09767741 [11] 005280917 -07525407

gt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370

Plot3d(test_xy) Plot3d(xy)

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)

Подготовка к обработке

starting installationstep1installpackages(devtools)library(devtools)install_github(repo = mnist username = xrobin ref = master)library(mnist)

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
  • Аппроксимация линейными многообразиями (подпространствами)
  • Slide 30
  • Алгоритм
  • princomp(formula data = NULL subset naaction )
  • Principal Component Analysis (PCA)
  • Линейный дискриминантный анализ (Linear Discriminant Analysis -
  • Решение
  • lda(x grouping prior = proportions tol = 10e-4 method
  • Slide 37
  • Linear Discriminant Analysis (LDA)
  • Сравнение PCA и LDA
  • Метод опорных векторов (Support Vector Machines - SVM)
  • Идея алгоритма
  • Иллюстрация на простейшем примере
  • Линейная неразделимость и использование ядер
  • Иллюстрация использования ядра для отображения 2D -gt 3D
  • svm((formula data = NULL subset naaction = naomit sc
  • Support Vector Machines
  • Глубокое обучение (Deep Learning)
  • laquoВ 1997 году Deep Blue обыграл в шахматы Каспарова В 2011 Wats
  • Распознавание основано на feature detection и последующем раз
  • Распознавание рукописных цифр
  • Еще пример посложнее
  • Использование нейронной сети с обучением
  • Сверхвысокая размерность при работе с первичным представлением
  • Пиксельное кодирование
  • Принцип иерархии понятий ndash основа deep learning
  • Разреженное (sparse) кодирование
  • Словарь для лиц
  • Slide 58
  • Выделение объектов заданного класса
  • Основные архитектуры Deep Learning
  • Задача классификации распознавания и подобные являются задачей
  • Фактор - графы
  • Slide 63
  • Slide 64
  • Подход разреженного кодирования
  • Обобщенная архитектура
  • Slide 67
  • Slide 68
  • Slide 69
  • В действительности работают любые архитектуры построения функц
  • Machine Learning with Torch7 (httpcodecogbitscomwikidoku
  • Torch 7 является расширением Lua
  • Slide 73
  • Slide 74
  • Сверточные (convolution) нейронные сети
  • Свертка и архитектура 4-х уровневой сверточной сети
  • Функциональная структура
  • Примеры успешного применения сверточных сетей
  • Диагностика эпилепсии по ЭЭГ
  • Реализация сверточной сетью
  • Одна из самых больших сверточных сетей
  • Пример тэгирования
  • Пример поиска похожих по изображению
  • Пример поиска в коллекции изображений по текстовому запросу
  • Пример laquoоблачногоraquo классификатора изображений
  • Slide 86
  • Самообучающиеся нейронные сети на основе минимизации функции эн
  • RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцман
  • Алгоритм обучения Contrastive Divergence (CD)
  • Основные уравнения адаптации
  • Алгоритм Хинтона - Contrastive Divergence (CD-k)
  • darch Package for deep architectures and Restricted-Bolzmann-
  • Связь плотности вероятности и энергии
  • Задача обучения с точки минимизации энергии сети
  • Интуитивные соображения
  • Slide 96
  • Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decom
  • Sparse linear reconstruction
  • Автоэнкодер (auto encoder)
  • Архитекттура ICA моделей
  • Итеративные алгоритмы с оптимальным разреженным кодированием 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)
Page 78: !Predictive analytics part_2

Диагностика эпилепсии по ЭЭГ

Реализация сверточной сетью

Одна из самых больших сверточных сетей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

Sparse linear reconstruction

bull Energy=reconstruction_error+code_prediction_error+code_sparsity

Автоэнкодер (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

bull saednntrain(x y hidden = c(1) activationfun = sigm learningrate = 08 momentum = 05 learningrate_scale = 1 output = sigm sae_output = linear numepochs = 3 batchsize = 100 hidden_dropout = 0 visible_dropout = 0)

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

Архитектура сети SAE

Архитектура с 5Х4 hidden 3 outs

Example

Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02)) Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1)) x lt- matrix(c(Var1 Var2) nrow = 100 ncol = 2)y lt- c(rep(1 50) rep(0 50))

обучение сетиdnn lt- saednntrain(x y hidden = c(5 5))

Анализ обучающего набора данныхgt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370helliphelliphelliphelliphelliphelliphelliphellip

gt y [1] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 [54] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

plot3d(xy)

Параметры SAE сети

gt dnn$input_dim[1] 2$output_dim[1] 1$hidden[1] 5 5$size[1] 2 5 5 1$activationfun[1] sigm$learningrate[1] 08

$momentum[1] 05$learningrate_scale[1] 1$hidden_dropout[1] 0$visible_dropout[1] 0$output[1] sigm$W

Коэффициенты связей

$W$W[[1]] [1] [2][1] -014355854 02471840[2] 011378030 -00715094[3] -004343738 03667468[4] 012756946 -01303379[5] -003445704 02293772

$W[[2]] [1] [2] [3] [4] [5][1] 00420191661 -0023073732 -008762756 0035575714 -0063000016[2] 00072771988 -0131204147 -010591421 0018221305 -0025539769[3] -01071896826 -0019479685 -009892573 -0012976429 -0111886901[4] -00009477304 -0023137518 -002147218 0007969452 -0118696306[5] 00045016013 0001885546 -010170954 -0140312396 -0003970102

$W[[3]] [1] [2] [3] [4] [5][1] 01027992 -007288099 003051227 -001731639 0009518049

$vW$vW[[1]] [1] [2][1] -8335203e-06 1368580e-05[2] -6530183e-05 1135070e-04[3] 2544302e-05 -3947111e-05[4] -5512835e-06 9541682e-06[5] 3822854e-05 -6281762e-05

$vW[[2]] [1] [2] [3] [4] [5][1] 4172450e-04 -2554411e-04 4896670e-04 -3526093e-04 3041932e-04[2] -3210759e-04 1978412e-04 -3769148e-04 2727933e-04 -2338477e-04[3] 1058770e-04 -6705336e-05 1244419e-04 -9201508e-05 7678296e-05[4] -8894178e-05 5481668e-05 -1044110e-04 7558269e-05 -6477571e-05[5] 2676520e-05 -1622289e-05 3139684e-05 -2243174e-05 1954349e-05

$vW[[3]] [1] [2] [3] [4] [5][1] -0002603034 -0002398256 -0003274074 -0002542478 -000209672

Предсказание обученной сетью

predict by dnntest_Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02))test_Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1))test_x lt- matrix(c(test_Var1 test_Var2) nrow = 100 ncol = 2)nntest(dnn test_x y)

[1] 025 Value error rate

Сравнение обучающей и тестовой выборки

gttest_x [1] [2] [1] 091887443 -08940890 [2] 115219448 -06050481 [3] 069917981 -08524551 [4] 028213787 -08146816 [5] 098405598 -11440813 [6] 185911887 -08203652 [7] 010843056 -10123789 [8] 083827953 -07594760 [9] -016373562 -09087116 [10] 088298748 -09767741 [11] 005280917 -07525407

gt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370

Plot3d(test_xy) Plot3d(xy)

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)

Подготовка к обработке

starting installationstep1installpackages(devtools)library(devtools)install_github(repo = mnist username = xrobin ref = master)library(mnist)

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
  • Аппроксимация линейными многообразиями (подпространствами)
  • Slide 30
  • Алгоритм
  • princomp(formula data = NULL subset naaction )
  • Principal Component Analysis (PCA)
  • Линейный дискриминантный анализ (Linear Discriminant Analysis -
  • Решение
  • lda(x grouping prior = proportions tol = 10e-4 method
  • Slide 37
  • Linear Discriminant Analysis (LDA)
  • Сравнение PCA и LDA
  • Метод опорных векторов (Support Vector Machines - SVM)
  • Идея алгоритма
  • Иллюстрация на простейшем примере
  • Линейная неразделимость и использование ядер
  • Иллюстрация использования ядра для отображения 2D -gt 3D
  • svm((formula data = NULL subset naaction = naomit sc
  • Support Vector Machines
  • Глубокое обучение (Deep Learning)
  • laquoВ 1997 году Deep Blue обыграл в шахматы Каспарова В 2011 Wats
  • Распознавание основано на feature detection и последующем раз
  • Распознавание рукописных цифр
  • Еще пример посложнее
  • Использование нейронной сети с обучением
  • Сверхвысокая размерность при работе с первичным представлением
  • Пиксельное кодирование
  • Принцип иерархии понятий ndash основа deep learning
  • Разреженное (sparse) кодирование
  • Словарь для лиц
  • Slide 58
  • Выделение объектов заданного класса
  • Основные архитектуры Deep Learning
  • Задача классификации распознавания и подобные являются задачей
  • Фактор - графы
  • Slide 63
  • Slide 64
  • Подход разреженного кодирования
  • Обобщенная архитектура
  • Slide 67
  • Slide 68
  • Slide 69
  • В действительности работают любые архитектуры построения функц
  • Machine Learning with Torch7 (httpcodecogbitscomwikidoku
  • Torch 7 является расширением Lua
  • Slide 73
  • Slide 74
  • Сверточные (convolution) нейронные сети
  • Свертка и архитектура 4-х уровневой сверточной сети
  • Функциональная структура
  • Примеры успешного применения сверточных сетей
  • Диагностика эпилепсии по ЭЭГ
  • Реализация сверточной сетью
  • Одна из самых больших сверточных сетей
  • Пример тэгирования
  • Пример поиска похожих по изображению
  • Пример поиска в коллекции изображений по текстовому запросу
  • Пример laquoоблачногоraquo классификатора изображений
  • Slide 86
  • Самообучающиеся нейронные сети на основе минимизации функции эн
  • RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцман
  • Алгоритм обучения Contrastive Divergence (CD)
  • Основные уравнения адаптации
  • Алгоритм Хинтона - Contrastive Divergence (CD-k)
  • darch Package for deep architectures and Restricted-Bolzmann-
  • Связь плотности вероятности и энергии
  • Задача обучения с точки минимизации энергии сети
  • Интуитивные соображения
  • Slide 96
  • Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decom
  • Sparse linear reconstruction
  • Автоэнкодер (auto encoder)
  • Архитекттура ICA моделей
  • Итеративные алгоритмы с оптимальным разреженным кодированием 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)
Page 79: !Predictive analytics part_2

Реализация сверточной сетью

Одна из самых больших сверточных сетей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

Sparse linear reconstruction

bull Energy=reconstruction_error+code_prediction_error+code_sparsity

Автоэнкодер (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

bull saednntrain(x y hidden = c(1) activationfun = sigm learningrate = 08 momentum = 05 learningrate_scale = 1 output = sigm sae_output = linear numepochs = 3 batchsize = 100 hidden_dropout = 0 visible_dropout = 0)

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

Архитектура сети SAE

Архитектура с 5Х4 hidden 3 outs

Example

Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02)) Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1)) x lt- matrix(c(Var1 Var2) nrow = 100 ncol = 2)y lt- c(rep(1 50) rep(0 50))

обучение сетиdnn lt- saednntrain(x y hidden = c(5 5))

Анализ обучающего набора данныхgt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370helliphelliphelliphelliphelliphelliphelliphellip

gt y [1] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 [54] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

plot3d(xy)

Параметры SAE сети

gt dnn$input_dim[1] 2$output_dim[1] 1$hidden[1] 5 5$size[1] 2 5 5 1$activationfun[1] sigm$learningrate[1] 08

$momentum[1] 05$learningrate_scale[1] 1$hidden_dropout[1] 0$visible_dropout[1] 0$output[1] sigm$W

Коэффициенты связей

$W$W[[1]] [1] [2][1] -014355854 02471840[2] 011378030 -00715094[3] -004343738 03667468[4] 012756946 -01303379[5] -003445704 02293772

$W[[2]] [1] [2] [3] [4] [5][1] 00420191661 -0023073732 -008762756 0035575714 -0063000016[2] 00072771988 -0131204147 -010591421 0018221305 -0025539769[3] -01071896826 -0019479685 -009892573 -0012976429 -0111886901[4] -00009477304 -0023137518 -002147218 0007969452 -0118696306[5] 00045016013 0001885546 -010170954 -0140312396 -0003970102

$W[[3]] [1] [2] [3] [4] [5][1] 01027992 -007288099 003051227 -001731639 0009518049

$vW$vW[[1]] [1] [2][1] -8335203e-06 1368580e-05[2] -6530183e-05 1135070e-04[3] 2544302e-05 -3947111e-05[4] -5512835e-06 9541682e-06[5] 3822854e-05 -6281762e-05

$vW[[2]] [1] [2] [3] [4] [5][1] 4172450e-04 -2554411e-04 4896670e-04 -3526093e-04 3041932e-04[2] -3210759e-04 1978412e-04 -3769148e-04 2727933e-04 -2338477e-04[3] 1058770e-04 -6705336e-05 1244419e-04 -9201508e-05 7678296e-05[4] -8894178e-05 5481668e-05 -1044110e-04 7558269e-05 -6477571e-05[5] 2676520e-05 -1622289e-05 3139684e-05 -2243174e-05 1954349e-05

$vW[[3]] [1] [2] [3] [4] [5][1] -0002603034 -0002398256 -0003274074 -0002542478 -000209672

Предсказание обученной сетью

predict by dnntest_Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02))test_Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1))test_x lt- matrix(c(test_Var1 test_Var2) nrow = 100 ncol = 2)nntest(dnn test_x y)

[1] 025 Value error rate

Сравнение обучающей и тестовой выборки

gttest_x [1] [2] [1] 091887443 -08940890 [2] 115219448 -06050481 [3] 069917981 -08524551 [4] 028213787 -08146816 [5] 098405598 -11440813 [6] 185911887 -08203652 [7] 010843056 -10123789 [8] 083827953 -07594760 [9] -016373562 -09087116 [10] 088298748 -09767741 [11] 005280917 -07525407

gt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370

Plot3d(test_xy) Plot3d(xy)

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)

Подготовка к обработке

starting installationstep1installpackages(devtools)library(devtools)install_github(repo = mnist username = xrobin ref = master)library(mnist)

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
  • Аппроксимация линейными многообразиями (подпространствами)
  • Slide 30
  • Алгоритм
  • princomp(formula data = NULL subset naaction )
  • Principal Component Analysis (PCA)
  • Линейный дискриминантный анализ (Linear Discriminant Analysis -
  • Решение
  • lda(x grouping prior = proportions tol = 10e-4 method
  • Slide 37
  • Linear Discriminant Analysis (LDA)
  • Сравнение PCA и LDA
  • Метод опорных векторов (Support Vector Machines - SVM)
  • Идея алгоритма
  • Иллюстрация на простейшем примере
  • Линейная неразделимость и использование ядер
  • Иллюстрация использования ядра для отображения 2D -gt 3D
  • svm((formula data = NULL subset naaction = naomit sc
  • Support Vector Machines
  • Глубокое обучение (Deep Learning)
  • laquoВ 1997 году Deep Blue обыграл в шахматы Каспарова В 2011 Wats
  • Распознавание основано на feature detection и последующем раз
  • Распознавание рукописных цифр
  • Еще пример посложнее
  • Использование нейронной сети с обучением
  • Сверхвысокая размерность при работе с первичным представлением
  • Пиксельное кодирование
  • Принцип иерархии понятий ndash основа deep learning
  • Разреженное (sparse) кодирование
  • Словарь для лиц
  • Slide 58
  • Выделение объектов заданного класса
  • Основные архитектуры Deep Learning
  • Задача классификации распознавания и подобные являются задачей
  • Фактор - графы
  • Slide 63
  • Slide 64
  • Подход разреженного кодирования
  • Обобщенная архитектура
  • Slide 67
  • Slide 68
  • Slide 69
  • В действительности работают любые архитектуры построения функц
  • Machine Learning with Torch7 (httpcodecogbitscomwikidoku
  • Torch 7 является расширением Lua
  • Slide 73
  • Slide 74
  • Сверточные (convolution) нейронные сети
  • Свертка и архитектура 4-х уровневой сверточной сети
  • Функциональная структура
  • Примеры успешного применения сверточных сетей
  • Диагностика эпилепсии по ЭЭГ
  • Реализация сверточной сетью
  • Одна из самых больших сверточных сетей
  • Пример тэгирования
  • Пример поиска похожих по изображению
  • Пример поиска в коллекции изображений по текстовому запросу
  • Пример laquoоблачногоraquo классификатора изображений
  • Slide 86
  • Самообучающиеся нейронные сети на основе минимизации функции эн
  • RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцман
  • Алгоритм обучения Contrastive Divergence (CD)
  • Основные уравнения адаптации
  • Алгоритм Хинтона - Contrastive Divergence (CD-k)
  • darch Package for deep architectures and Restricted-Bolzmann-
  • Связь плотности вероятности и энергии
  • Задача обучения с точки минимизации энергии сети
  • Интуитивные соображения
  • Slide 96
  • Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decom
  • Sparse linear reconstruction
  • Автоэнкодер (auto encoder)
  • Архитекттура ICA моделей
  • Итеративные алгоритмы с оптимальным разреженным кодированием 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)
Page 80: !Predictive analytics part_2

Одна из самых больших сверточных сетей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

Sparse linear reconstruction

bull Energy=reconstruction_error+code_prediction_error+code_sparsity

Автоэнкодер (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

bull saednntrain(x y hidden = c(1) activationfun = sigm learningrate = 08 momentum = 05 learningrate_scale = 1 output = sigm sae_output = linear numepochs = 3 batchsize = 100 hidden_dropout = 0 visible_dropout = 0)

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

Архитектура сети SAE

Архитектура с 5Х4 hidden 3 outs

Example

Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02)) Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1)) x lt- matrix(c(Var1 Var2) nrow = 100 ncol = 2)y lt- c(rep(1 50) rep(0 50))

обучение сетиdnn lt- saednntrain(x y hidden = c(5 5))

Анализ обучающего набора данныхgt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370helliphelliphelliphelliphelliphelliphelliphellip

gt y [1] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 [54] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

plot3d(xy)

Параметры SAE сети

gt dnn$input_dim[1] 2$output_dim[1] 1$hidden[1] 5 5$size[1] 2 5 5 1$activationfun[1] sigm$learningrate[1] 08

$momentum[1] 05$learningrate_scale[1] 1$hidden_dropout[1] 0$visible_dropout[1] 0$output[1] sigm$W

Коэффициенты связей

$W$W[[1]] [1] [2][1] -014355854 02471840[2] 011378030 -00715094[3] -004343738 03667468[4] 012756946 -01303379[5] -003445704 02293772

$W[[2]] [1] [2] [3] [4] [5][1] 00420191661 -0023073732 -008762756 0035575714 -0063000016[2] 00072771988 -0131204147 -010591421 0018221305 -0025539769[3] -01071896826 -0019479685 -009892573 -0012976429 -0111886901[4] -00009477304 -0023137518 -002147218 0007969452 -0118696306[5] 00045016013 0001885546 -010170954 -0140312396 -0003970102

$W[[3]] [1] [2] [3] [4] [5][1] 01027992 -007288099 003051227 -001731639 0009518049

$vW$vW[[1]] [1] [2][1] -8335203e-06 1368580e-05[2] -6530183e-05 1135070e-04[3] 2544302e-05 -3947111e-05[4] -5512835e-06 9541682e-06[5] 3822854e-05 -6281762e-05

$vW[[2]] [1] [2] [3] [4] [5][1] 4172450e-04 -2554411e-04 4896670e-04 -3526093e-04 3041932e-04[2] -3210759e-04 1978412e-04 -3769148e-04 2727933e-04 -2338477e-04[3] 1058770e-04 -6705336e-05 1244419e-04 -9201508e-05 7678296e-05[4] -8894178e-05 5481668e-05 -1044110e-04 7558269e-05 -6477571e-05[5] 2676520e-05 -1622289e-05 3139684e-05 -2243174e-05 1954349e-05

$vW[[3]] [1] [2] [3] [4] [5][1] -0002603034 -0002398256 -0003274074 -0002542478 -000209672

Предсказание обученной сетью

predict by dnntest_Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02))test_Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1))test_x lt- matrix(c(test_Var1 test_Var2) nrow = 100 ncol = 2)nntest(dnn test_x y)

[1] 025 Value error rate

Сравнение обучающей и тестовой выборки

gttest_x [1] [2] [1] 091887443 -08940890 [2] 115219448 -06050481 [3] 069917981 -08524551 [4] 028213787 -08146816 [5] 098405598 -11440813 [6] 185911887 -08203652 [7] 010843056 -10123789 [8] 083827953 -07594760 [9] -016373562 -09087116 [10] 088298748 -09767741 [11] 005280917 -07525407

gt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370

Plot3d(test_xy) Plot3d(xy)

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)

Подготовка к обработке

starting installationstep1installpackages(devtools)library(devtools)install_github(repo = mnist username = xrobin ref = master)library(mnist)

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
  • Аппроксимация линейными многообразиями (подпространствами)
  • Slide 30
  • Алгоритм
  • princomp(formula data = NULL subset naaction )
  • Principal Component Analysis (PCA)
  • Линейный дискриминантный анализ (Linear Discriminant Analysis -
  • Решение
  • lda(x grouping prior = proportions tol = 10e-4 method
  • Slide 37
  • Linear Discriminant Analysis (LDA)
  • Сравнение PCA и LDA
  • Метод опорных векторов (Support Vector Machines - SVM)
  • Идея алгоритма
  • Иллюстрация на простейшем примере
  • Линейная неразделимость и использование ядер
  • Иллюстрация использования ядра для отображения 2D -gt 3D
  • svm((formula data = NULL subset naaction = naomit sc
  • Support Vector Machines
  • Глубокое обучение (Deep Learning)
  • laquoВ 1997 году Deep Blue обыграл в шахматы Каспарова В 2011 Wats
  • Распознавание основано на feature detection и последующем раз
  • Распознавание рукописных цифр
  • Еще пример посложнее
  • Использование нейронной сети с обучением
  • Сверхвысокая размерность при работе с первичным представлением
  • Пиксельное кодирование
  • Принцип иерархии понятий ndash основа deep learning
  • Разреженное (sparse) кодирование
  • Словарь для лиц
  • Slide 58
  • Выделение объектов заданного класса
  • Основные архитектуры Deep Learning
  • Задача классификации распознавания и подобные являются задачей
  • Фактор - графы
  • Slide 63
  • Slide 64
  • Подход разреженного кодирования
  • Обобщенная архитектура
  • Slide 67
  • Slide 68
  • Slide 69
  • В действительности работают любые архитектуры построения функц
  • Machine Learning with Torch7 (httpcodecogbitscomwikidoku
  • Torch 7 является расширением Lua
  • Slide 73
  • Slide 74
  • Сверточные (convolution) нейронные сети
  • Свертка и архитектура 4-х уровневой сверточной сети
  • Функциональная структура
  • Примеры успешного применения сверточных сетей
  • Диагностика эпилепсии по ЭЭГ
  • Реализация сверточной сетью
  • Одна из самых больших сверточных сетей
  • Пример тэгирования
  • Пример поиска похожих по изображению
  • Пример поиска в коллекции изображений по текстовому запросу
  • Пример laquoоблачногоraquo классификатора изображений
  • Slide 86
  • Самообучающиеся нейронные сети на основе минимизации функции эн
  • RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцман
  • Алгоритм обучения Contrastive Divergence (CD)
  • Основные уравнения адаптации
  • Алгоритм Хинтона - Contrastive Divergence (CD-k)
  • darch Package for deep architectures and Restricted-Bolzmann-
  • Связь плотности вероятности и энергии
  • Задача обучения с точки минимизации энергии сети
  • Интуитивные соображения
  • Slide 96
  • Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decom
  • Sparse linear reconstruction
  • Автоэнкодер (auto encoder)
  • Архитекттура ICA моделей
  • Итеративные алгоритмы с оптимальным разреженным кодированием 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)
Page 81: !Predictive analytics part_2

Пример тэгирования

Пример поиска похожих по изображению

Пример поиска в коллекции изображений по текстовому запросу

Пример 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

Sparse linear reconstruction

bull Energy=reconstruction_error+code_prediction_error+code_sparsity

Автоэнкодер (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

bull saednntrain(x y hidden = c(1) activationfun = sigm learningrate = 08 momentum = 05 learningrate_scale = 1 output = sigm sae_output = linear numepochs = 3 batchsize = 100 hidden_dropout = 0 visible_dropout = 0)

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

Архитектура сети SAE

Архитектура с 5Х4 hidden 3 outs

Example

Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02)) Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1)) x lt- matrix(c(Var1 Var2) nrow = 100 ncol = 2)y lt- c(rep(1 50) rep(0 50))

обучение сетиdnn lt- saednntrain(x y hidden = c(5 5))

Анализ обучающего набора данныхgt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370helliphelliphelliphelliphelliphelliphelliphellip

gt y [1] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 [54] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

plot3d(xy)

Параметры SAE сети

gt dnn$input_dim[1] 2$output_dim[1] 1$hidden[1] 5 5$size[1] 2 5 5 1$activationfun[1] sigm$learningrate[1] 08

$momentum[1] 05$learningrate_scale[1] 1$hidden_dropout[1] 0$visible_dropout[1] 0$output[1] sigm$W

Коэффициенты связей

$W$W[[1]] [1] [2][1] -014355854 02471840[2] 011378030 -00715094[3] -004343738 03667468[4] 012756946 -01303379[5] -003445704 02293772

$W[[2]] [1] [2] [3] [4] [5][1] 00420191661 -0023073732 -008762756 0035575714 -0063000016[2] 00072771988 -0131204147 -010591421 0018221305 -0025539769[3] -01071896826 -0019479685 -009892573 -0012976429 -0111886901[4] -00009477304 -0023137518 -002147218 0007969452 -0118696306[5] 00045016013 0001885546 -010170954 -0140312396 -0003970102

$W[[3]] [1] [2] [3] [4] [5][1] 01027992 -007288099 003051227 -001731639 0009518049

$vW$vW[[1]] [1] [2][1] -8335203e-06 1368580e-05[2] -6530183e-05 1135070e-04[3] 2544302e-05 -3947111e-05[4] -5512835e-06 9541682e-06[5] 3822854e-05 -6281762e-05

$vW[[2]] [1] [2] [3] [4] [5][1] 4172450e-04 -2554411e-04 4896670e-04 -3526093e-04 3041932e-04[2] -3210759e-04 1978412e-04 -3769148e-04 2727933e-04 -2338477e-04[3] 1058770e-04 -6705336e-05 1244419e-04 -9201508e-05 7678296e-05[4] -8894178e-05 5481668e-05 -1044110e-04 7558269e-05 -6477571e-05[5] 2676520e-05 -1622289e-05 3139684e-05 -2243174e-05 1954349e-05

$vW[[3]] [1] [2] [3] [4] [5][1] -0002603034 -0002398256 -0003274074 -0002542478 -000209672

Предсказание обученной сетью

predict by dnntest_Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02))test_Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1))test_x lt- matrix(c(test_Var1 test_Var2) nrow = 100 ncol = 2)nntest(dnn test_x y)

[1] 025 Value error rate

Сравнение обучающей и тестовой выборки

gttest_x [1] [2] [1] 091887443 -08940890 [2] 115219448 -06050481 [3] 069917981 -08524551 [4] 028213787 -08146816 [5] 098405598 -11440813 [6] 185911887 -08203652 [7] 010843056 -10123789 [8] 083827953 -07594760 [9] -016373562 -09087116 [10] 088298748 -09767741 [11] 005280917 -07525407

gt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370

Plot3d(test_xy) Plot3d(xy)

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)

Подготовка к обработке

starting installationstep1installpackages(devtools)library(devtools)install_github(repo = mnist username = xrobin ref = master)library(mnist)

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
  • Аппроксимация линейными многообразиями (подпространствами)
  • Slide 30
  • Алгоритм
  • princomp(formula data = NULL subset naaction )
  • Principal Component Analysis (PCA)
  • Линейный дискриминантный анализ (Linear Discriminant Analysis -
  • Решение
  • lda(x grouping prior = proportions tol = 10e-4 method
  • Slide 37
  • Linear Discriminant Analysis (LDA)
  • Сравнение PCA и LDA
  • Метод опорных векторов (Support Vector Machines - SVM)
  • Идея алгоритма
  • Иллюстрация на простейшем примере
  • Линейная неразделимость и использование ядер
  • Иллюстрация использования ядра для отображения 2D -gt 3D
  • svm((formula data = NULL subset naaction = naomit sc
  • Support Vector Machines
  • Глубокое обучение (Deep Learning)
  • laquoВ 1997 году Deep Blue обыграл в шахматы Каспарова В 2011 Wats
  • Распознавание основано на feature detection и последующем раз
  • Распознавание рукописных цифр
  • Еще пример посложнее
  • Использование нейронной сети с обучением
  • Сверхвысокая размерность при работе с первичным представлением
  • Пиксельное кодирование
  • Принцип иерархии понятий ndash основа deep learning
  • Разреженное (sparse) кодирование
  • Словарь для лиц
  • Slide 58
  • Выделение объектов заданного класса
  • Основные архитектуры Deep Learning
  • Задача классификации распознавания и подобные являются задачей
  • Фактор - графы
  • Slide 63
  • Slide 64
  • Подход разреженного кодирования
  • Обобщенная архитектура
  • Slide 67
  • Slide 68
  • Slide 69
  • В действительности работают любые архитектуры построения функц
  • Machine Learning with Torch7 (httpcodecogbitscomwikidoku
  • Torch 7 является расширением Lua
  • Slide 73
  • Slide 74
  • Сверточные (convolution) нейронные сети
  • Свертка и архитектура 4-х уровневой сверточной сети
  • Функциональная структура
  • Примеры успешного применения сверточных сетей
  • Диагностика эпилепсии по ЭЭГ
  • Реализация сверточной сетью
  • Одна из самых больших сверточных сетей
  • Пример тэгирования
  • Пример поиска похожих по изображению
  • Пример поиска в коллекции изображений по текстовому запросу
  • Пример laquoоблачногоraquo классификатора изображений
  • Slide 86
  • Самообучающиеся нейронные сети на основе минимизации функции эн
  • RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцман
  • Алгоритм обучения Contrastive Divergence (CD)
  • Основные уравнения адаптации
  • Алгоритм Хинтона - Contrastive Divergence (CD-k)
  • darch Package for deep architectures and Restricted-Bolzmann-
  • Связь плотности вероятности и энергии
  • Задача обучения с точки минимизации энергии сети
  • Интуитивные соображения
  • Slide 96
  • Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decom
  • Sparse linear reconstruction
  • Автоэнкодер (auto encoder)
  • Архитекттура ICA моделей
  • Итеративные алгоритмы с оптимальным разреженным кодированием 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)
Page 82: !Predictive analytics part_2

Пример поиска похожих по изображению

Пример поиска в коллекции изображений по текстовому запросу

Пример 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

Sparse linear reconstruction

bull Energy=reconstruction_error+code_prediction_error+code_sparsity

Автоэнкодер (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

bull saednntrain(x y hidden = c(1) activationfun = sigm learningrate = 08 momentum = 05 learningrate_scale = 1 output = sigm sae_output = linear numepochs = 3 batchsize = 100 hidden_dropout = 0 visible_dropout = 0)

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

Архитектура сети SAE

Архитектура с 5Х4 hidden 3 outs

Example

Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02)) Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1)) x lt- matrix(c(Var1 Var2) nrow = 100 ncol = 2)y lt- c(rep(1 50) rep(0 50))

обучение сетиdnn lt- saednntrain(x y hidden = c(5 5))

Анализ обучающего набора данныхgt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370helliphelliphelliphelliphelliphelliphelliphellip

gt y [1] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 [54] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

plot3d(xy)

Параметры SAE сети

gt dnn$input_dim[1] 2$output_dim[1] 1$hidden[1] 5 5$size[1] 2 5 5 1$activationfun[1] sigm$learningrate[1] 08

$momentum[1] 05$learningrate_scale[1] 1$hidden_dropout[1] 0$visible_dropout[1] 0$output[1] sigm$W

Коэффициенты связей

$W$W[[1]] [1] [2][1] -014355854 02471840[2] 011378030 -00715094[3] -004343738 03667468[4] 012756946 -01303379[5] -003445704 02293772

$W[[2]] [1] [2] [3] [4] [5][1] 00420191661 -0023073732 -008762756 0035575714 -0063000016[2] 00072771988 -0131204147 -010591421 0018221305 -0025539769[3] -01071896826 -0019479685 -009892573 -0012976429 -0111886901[4] -00009477304 -0023137518 -002147218 0007969452 -0118696306[5] 00045016013 0001885546 -010170954 -0140312396 -0003970102

$W[[3]] [1] [2] [3] [4] [5][1] 01027992 -007288099 003051227 -001731639 0009518049

$vW$vW[[1]] [1] [2][1] -8335203e-06 1368580e-05[2] -6530183e-05 1135070e-04[3] 2544302e-05 -3947111e-05[4] -5512835e-06 9541682e-06[5] 3822854e-05 -6281762e-05

$vW[[2]] [1] [2] [3] [4] [5][1] 4172450e-04 -2554411e-04 4896670e-04 -3526093e-04 3041932e-04[2] -3210759e-04 1978412e-04 -3769148e-04 2727933e-04 -2338477e-04[3] 1058770e-04 -6705336e-05 1244419e-04 -9201508e-05 7678296e-05[4] -8894178e-05 5481668e-05 -1044110e-04 7558269e-05 -6477571e-05[5] 2676520e-05 -1622289e-05 3139684e-05 -2243174e-05 1954349e-05

$vW[[3]] [1] [2] [3] [4] [5][1] -0002603034 -0002398256 -0003274074 -0002542478 -000209672

Предсказание обученной сетью

predict by dnntest_Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02))test_Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1))test_x lt- matrix(c(test_Var1 test_Var2) nrow = 100 ncol = 2)nntest(dnn test_x y)

[1] 025 Value error rate

Сравнение обучающей и тестовой выборки

gttest_x [1] [2] [1] 091887443 -08940890 [2] 115219448 -06050481 [3] 069917981 -08524551 [4] 028213787 -08146816 [5] 098405598 -11440813 [6] 185911887 -08203652 [7] 010843056 -10123789 [8] 083827953 -07594760 [9] -016373562 -09087116 [10] 088298748 -09767741 [11] 005280917 -07525407

gt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370

Plot3d(test_xy) Plot3d(xy)

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)

Подготовка к обработке

starting installationstep1installpackages(devtools)library(devtools)install_github(repo = mnist username = xrobin ref = master)library(mnist)

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
  • Аппроксимация линейными многообразиями (подпространствами)
  • Slide 30
  • Алгоритм
  • princomp(formula data = NULL subset naaction )
  • Principal Component Analysis (PCA)
  • Линейный дискриминантный анализ (Linear Discriminant Analysis -
  • Решение
  • lda(x grouping prior = proportions tol = 10e-4 method
  • Slide 37
  • Linear Discriminant Analysis (LDA)
  • Сравнение PCA и LDA
  • Метод опорных векторов (Support Vector Machines - SVM)
  • Идея алгоритма
  • Иллюстрация на простейшем примере
  • Линейная неразделимость и использование ядер
  • Иллюстрация использования ядра для отображения 2D -gt 3D
  • svm((formula data = NULL subset naaction = naomit sc
  • Support Vector Machines
  • Глубокое обучение (Deep Learning)
  • laquoВ 1997 году Deep Blue обыграл в шахматы Каспарова В 2011 Wats
  • Распознавание основано на feature detection и последующем раз
  • Распознавание рукописных цифр
  • Еще пример посложнее
  • Использование нейронной сети с обучением
  • Сверхвысокая размерность при работе с первичным представлением
  • Пиксельное кодирование
  • Принцип иерархии понятий ndash основа deep learning
  • Разреженное (sparse) кодирование
  • Словарь для лиц
  • Slide 58
  • Выделение объектов заданного класса
  • Основные архитектуры Deep Learning
  • Задача классификации распознавания и подобные являются задачей
  • Фактор - графы
  • Slide 63
  • Slide 64
  • Подход разреженного кодирования
  • Обобщенная архитектура
  • Slide 67
  • Slide 68
  • Slide 69
  • В действительности работают любые архитектуры построения функц
  • Machine Learning with Torch7 (httpcodecogbitscomwikidoku
  • Torch 7 является расширением Lua
  • Slide 73
  • Slide 74
  • Сверточные (convolution) нейронные сети
  • Свертка и архитектура 4-х уровневой сверточной сети
  • Функциональная структура
  • Примеры успешного применения сверточных сетей
  • Диагностика эпилепсии по ЭЭГ
  • Реализация сверточной сетью
  • Одна из самых больших сверточных сетей
  • Пример тэгирования
  • Пример поиска похожих по изображению
  • Пример поиска в коллекции изображений по текстовому запросу
  • Пример laquoоблачногоraquo классификатора изображений
  • Slide 86
  • Самообучающиеся нейронные сети на основе минимизации функции эн
  • RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцман
  • Алгоритм обучения Contrastive Divergence (CD)
  • Основные уравнения адаптации
  • Алгоритм Хинтона - Contrastive Divergence (CD-k)
  • darch Package for deep architectures and Restricted-Bolzmann-
  • Связь плотности вероятности и энергии
  • Задача обучения с точки минимизации энергии сети
  • Интуитивные соображения
  • Slide 96
  • Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decom
  • Sparse linear reconstruction
  • Автоэнкодер (auto encoder)
  • Архитекттура ICA моделей
  • Итеративные алгоритмы с оптимальным разреженным кодированием 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)
Page 83: !Predictive analytics part_2

Пример поиска в коллекции изображений по текстовому запросу

Пример 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

Sparse linear reconstruction

bull Energy=reconstruction_error+code_prediction_error+code_sparsity

Автоэнкодер (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

bull saednntrain(x y hidden = c(1) activationfun = sigm learningrate = 08 momentum = 05 learningrate_scale = 1 output = sigm sae_output = linear numepochs = 3 batchsize = 100 hidden_dropout = 0 visible_dropout = 0)

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

Архитектура сети SAE

Архитектура с 5Х4 hidden 3 outs

Example

Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02)) Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1)) x lt- matrix(c(Var1 Var2) nrow = 100 ncol = 2)y lt- c(rep(1 50) rep(0 50))

обучение сетиdnn lt- saednntrain(x y hidden = c(5 5))

Анализ обучающего набора данныхgt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370helliphelliphelliphelliphelliphelliphelliphellip

gt y [1] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 [54] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

plot3d(xy)

Параметры SAE сети

gt dnn$input_dim[1] 2$output_dim[1] 1$hidden[1] 5 5$size[1] 2 5 5 1$activationfun[1] sigm$learningrate[1] 08

$momentum[1] 05$learningrate_scale[1] 1$hidden_dropout[1] 0$visible_dropout[1] 0$output[1] sigm$W

Коэффициенты связей

$W$W[[1]] [1] [2][1] -014355854 02471840[2] 011378030 -00715094[3] -004343738 03667468[4] 012756946 -01303379[5] -003445704 02293772

$W[[2]] [1] [2] [3] [4] [5][1] 00420191661 -0023073732 -008762756 0035575714 -0063000016[2] 00072771988 -0131204147 -010591421 0018221305 -0025539769[3] -01071896826 -0019479685 -009892573 -0012976429 -0111886901[4] -00009477304 -0023137518 -002147218 0007969452 -0118696306[5] 00045016013 0001885546 -010170954 -0140312396 -0003970102

$W[[3]] [1] [2] [3] [4] [5][1] 01027992 -007288099 003051227 -001731639 0009518049

$vW$vW[[1]] [1] [2][1] -8335203e-06 1368580e-05[2] -6530183e-05 1135070e-04[3] 2544302e-05 -3947111e-05[4] -5512835e-06 9541682e-06[5] 3822854e-05 -6281762e-05

$vW[[2]] [1] [2] [3] [4] [5][1] 4172450e-04 -2554411e-04 4896670e-04 -3526093e-04 3041932e-04[2] -3210759e-04 1978412e-04 -3769148e-04 2727933e-04 -2338477e-04[3] 1058770e-04 -6705336e-05 1244419e-04 -9201508e-05 7678296e-05[4] -8894178e-05 5481668e-05 -1044110e-04 7558269e-05 -6477571e-05[5] 2676520e-05 -1622289e-05 3139684e-05 -2243174e-05 1954349e-05

$vW[[3]] [1] [2] [3] [4] [5][1] -0002603034 -0002398256 -0003274074 -0002542478 -000209672

Предсказание обученной сетью

predict by dnntest_Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02))test_Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1))test_x lt- matrix(c(test_Var1 test_Var2) nrow = 100 ncol = 2)nntest(dnn test_x y)

[1] 025 Value error rate

Сравнение обучающей и тестовой выборки

gttest_x [1] [2] [1] 091887443 -08940890 [2] 115219448 -06050481 [3] 069917981 -08524551 [4] 028213787 -08146816 [5] 098405598 -11440813 [6] 185911887 -08203652 [7] 010843056 -10123789 [8] 083827953 -07594760 [9] -016373562 -09087116 [10] 088298748 -09767741 [11] 005280917 -07525407

gt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370

Plot3d(test_xy) Plot3d(xy)

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)

Подготовка к обработке

starting installationstep1installpackages(devtools)library(devtools)install_github(repo = mnist username = xrobin ref = master)library(mnist)

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
  • Аппроксимация линейными многообразиями (подпространствами)
  • Slide 30
  • Алгоритм
  • princomp(formula data = NULL subset naaction )
  • Principal Component Analysis (PCA)
  • Линейный дискриминантный анализ (Linear Discriminant Analysis -
  • Решение
  • lda(x grouping prior = proportions tol = 10e-4 method
  • Slide 37
  • Linear Discriminant Analysis (LDA)
  • Сравнение PCA и LDA
  • Метод опорных векторов (Support Vector Machines - SVM)
  • Идея алгоритма
  • Иллюстрация на простейшем примере
  • Линейная неразделимость и использование ядер
  • Иллюстрация использования ядра для отображения 2D -gt 3D
  • svm((formula data = NULL subset naaction = naomit sc
  • Support Vector Machines
  • Глубокое обучение (Deep Learning)
  • laquoВ 1997 году Deep Blue обыграл в шахматы Каспарова В 2011 Wats
  • Распознавание основано на feature detection и последующем раз
  • Распознавание рукописных цифр
  • Еще пример посложнее
  • Использование нейронной сети с обучением
  • Сверхвысокая размерность при работе с первичным представлением
  • Пиксельное кодирование
  • Принцип иерархии понятий ndash основа deep learning
  • Разреженное (sparse) кодирование
  • Словарь для лиц
  • Slide 58
  • Выделение объектов заданного класса
  • Основные архитектуры Deep Learning
  • Задача классификации распознавания и подобные являются задачей
  • Фактор - графы
  • Slide 63
  • Slide 64
  • Подход разреженного кодирования
  • Обобщенная архитектура
  • Slide 67
  • Slide 68
  • Slide 69
  • В действительности работают любые архитектуры построения функц
  • Machine Learning with Torch7 (httpcodecogbitscomwikidoku
  • Torch 7 является расширением Lua
  • Slide 73
  • Slide 74
  • Сверточные (convolution) нейронные сети
  • Свертка и архитектура 4-х уровневой сверточной сети
  • Функциональная структура
  • Примеры успешного применения сверточных сетей
  • Диагностика эпилепсии по ЭЭГ
  • Реализация сверточной сетью
  • Одна из самых больших сверточных сетей
  • Пример тэгирования
  • Пример поиска похожих по изображению
  • Пример поиска в коллекции изображений по текстовому запросу
  • Пример laquoоблачногоraquo классификатора изображений
  • Slide 86
  • Самообучающиеся нейронные сети на основе минимизации функции эн
  • RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцман
  • Алгоритм обучения Contrastive Divergence (CD)
  • Основные уравнения адаптации
  • Алгоритм Хинтона - Contrastive Divergence (CD-k)
  • darch Package for deep architectures and Restricted-Bolzmann-
  • Связь плотности вероятности и энергии
  • Задача обучения с точки минимизации энергии сети
  • Интуитивные соображения
  • Slide 96
  • Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decom
  • Sparse linear reconstruction
  • Автоэнкодер (auto encoder)
  • Архитекттура ICA моделей
  • Итеративные алгоритмы с оптимальным разреженным кодированием 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)
Page 84: !Predictive analytics part_2

Пример 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

Sparse linear reconstruction

bull Energy=reconstruction_error+code_prediction_error+code_sparsity

Автоэнкодер (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

bull saednntrain(x y hidden = c(1) activationfun = sigm learningrate = 08 momentum = 05 learningrate_scale = 1 output = sigm sae_output = linear numepochs = 3 batchsize = 100 hidden_dropout = 0 visible_dropout = 0)

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

Архитектура сети SAE

Архитектура с 5Х4 hidden 3 outs

Example

Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02)) Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1)) x lt- matrix(c(Var1 Var2) nrow = 100 ncol = 2)y lt- c(rep(1 50) rep(0 50))

обучение сетиdnn lt- saednntrain(x y hidden = c(5 5))

Анализ обучающего набора данныхgt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370helliphelliphelliphelliphelliphelliphelliphellip

gt y [1] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 [54] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

plot3d(xy)

Параметры SAE сети

gt dnn$input_dim[1] 2$output_dim[1] 1$hidden[1] 5 5$size[1] 2 5 5 1$activationfun[1] sigm$learningrate[1] 08

$momentum[1] 05$learningrate_scale[1] 1$hidden_dropout[1] 0$visible_dropout[1] 0$output[1] sigm$W

Коэффициенты связей

$W$W[[1]] [1] [2][1] -014355854 02471840[2] 011378030 -00715094[3] -004343738 03667468[4] 012756946 -01303379[5] -003445704 02293772

$W[[2]] [1] [2] [3] [4] [5][1] 00420191661 -0023073732 -008762756 0035575714 -0063000016[2] 00072771988 -0131204147 -010591421 0018221305 -0025539769[3] -01071896826 -0019479685 -009892573 -0012976429 -0111886901[4] -00009477304 -0023137518 -002147218 0007969452 -0118696306[5] 00045016013 0001885546 -010170954 -0140312396 -0003970102

$W[[3]] [1] [2] [3] [4] [5][1] 01027992 -007288099 003051227 -001731639 0009518049

$vW$vW[[1]] [1] [2][1] -8335203e-06 1368580e-05[2] -6530183e-05 1135070e-04[3] 2544302e-05 -3947111e-05[4] -5512835e-06 9541682e-06[5] 3822854e-05 -6281762e-05

$vW[[2]] [1] [2] [3] [4] [5][1] 4172450e-04 -2554411e-04 4896670e-04 -3526093e-04 3041932e-04[2] -3210759e-04 1978412e-04 -3769148e-04 2727933e-04 -2338477e-04[3] 1058770e-04 -6705336e-05 1244419e-04 -9201508e-05 7678296e-05[4] -8894178e-05 5481668e-05 -1044110e-04 7558269e-05 -6477571e-05[5] 2676520e-05 -1622289e-05 3139684e-05 -2243174e-05 1954349e-05

$vW[[3]] [1] [2] [3] [4] [5][1] -0002603034 -0002398256 -0003274074 -0002542478 -000209672

Предсказание обученной сетью

predict by dnntest_Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02))test_Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1))test_x lt- matrix(c(test_Var1 test_Var2) nrow = 100 ncol = 2)nntest(dnn test_x y)

[1] 025 Value error rate

Сравнение обучающей и тестовой выборки

gttest_x [1] [2] [1] 091887443 -08940890 [2] 115219448 -06050481 [3] 069917981 -08524551 [4] 028213787 -08146816 [5] 098405598 -11440813 [6] 185911887 -08203652 [7] 010843056 -10123789 [8] 083827953 -07594760 [9] -016373562 -09087116 [10] 088298748 -09767741 [11] 005280917 -07525407

gt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370

Plot3d(test_xy) Plot3d(xy)

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)

Подготовка к обработке

starting installationstep1installpackages(devtools)library(devtools)install_github(repo = mnist username = xrobin ref = master)library(mnist)

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
  • Аппроксимация линейными многообразиями (подпространствами)
  • Slide 30
  • Алгоритм
  • princomp(formula data = NULL subset naaction )
  • Principal Component Analysis (PCA)
  • Линейный дискриминантный анализ (Linear Discriminant Analysis -
  • Решение
  • lda(x grouping prior = proportions tol = 10e-4 method
  • Slide 37
  • Linear Discriminant Analysis (LDA)
  • Сравнение PCA и LDA
  • Метод опорных векторов (Support Vector Machines - SVM)
  • Идея алгоритма
  • Иллюстрация на простейшем примере
  • Линейная неразделимость и использование ядер
  • Иллюстрация использования ядра для отображения 2D -gt 3D
  • svm((formula data = NULL subset naaction = naomit sc
  • Support Vector Machines
  • Глубокое обучение (Deep Learning)
  • laquoВ 1997 году Deep Blue обыграл в шахматы Каспарова В 2011 Wats
  • Распознавание основано на feature detection и последующем раз
  • Распознавание рукописных цифр
  • Еще пример посложнее
  • Использование нейронной сети с обучением
  • Сверхвысокая размерность при работе с первичным представлением
  • Пиксельное кодирование
  • Принцип иерархии понятий ndash основа deep learning
  • Разреженное (sparse) кодирование
  • Словарь для лиц
  • Slide 58
  • Выделение объектов заданного класса
  • Основные архитектуры Deep Learning
  • Задача классификации распознавания и подобные являются задачей
  • Фактор - графы
  • Slide 63
  • Slide 64
  • Подход разреженного кодирования
  • Обобщенная архитектура
  • Slide 67
  • Slide 68
  • Slide 69
  • В действительности работают любые архитектуры построения функц
  • Machine Learning with Torch7 (httpcodecogbitscomwikidoku
  • Torch 7 является расширением Lua
  • Slide 73
  • Slide 74
  • Сверточные (convolution) нейронные сети
  • Свертка и архитектура 4-х уровневой сверточной сети
  • Функциональная структура
  • Примеры успешного применения сверточных сетей
  • Диагностика эпилепсии по ЭЭГ
  • Реализация сверточной сетью
  • Одна из самых больших сверточных сетей
  • Пример тэгирования
  • Пример поиска похожих по изображению
  • Пример поиска в коллекции изображений по текстовому запросу
  • Пример laquoоблачногоraquo классификатора изображений
  • Slide 86
  • Самообучающиеся нейронные сети на основе минимизации функции эн
  • RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцман
  • Алгоритм обучения Contrastive Divergence (CD)
  • Основные уравнения адаптации
  • Алгоритм Хинтона - Contrastive Divergence (CD-k)
  • darch Package for deep architectures and Restricted-Bolzmann-
  • Связь плотности вероятности и энергии
  • Задача обучения с точки минимизации энергии сети
  • Интуитивные соображения
  • Slide 96
  • Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decom
  • Sparse linear reconstruction
  • Автоэнкодер (auto encoder)
  • Архитекттура ICA моделей
  • Итеративные алгоритмы с оптимальным разреженным кодированием 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)
Page 85: !Predictive analytics part_2

Самообучающиеся нейронные сети на основе минимизации функции энергии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

Sparse linear reconstruction

bull Energy=reconstruction_error+code_prediction_error+code_sparsity

Автоэнкодер (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

bull saednntrain(x y hidden = c(1) activationfun = sigm learningrate = 08 momentum = 05 learningrate_scale = 1 output = sigm sae_output = linear numepochs = 3 batchsize = 100 hidden_dropout = 0 visible_dropout = 0)

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

Архитектура сети SAE

Архитектура с 5Х4 hidden 3 outs

Example

Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02)) Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1)) x lt- matrix(c(Var1 Var2) nrow = 100 ncol = 2)y lt- c(rep(1 50) rep(0 50))

обучение сетиdnn lt- saednntrain(x y hidden = c(5 5))

Анализ обучающего набора данныхgt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370helliphelliphelliphelliphelliphelliphelliphellip

gt y [1] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 [54] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

plot3d(xy)

Параметры SAE сети

gt dnn$input_dim[1] 2$output_dim[1] 1$hidden[1] 5 5$size[1] 2 5 5 1$activationfun[1] sigm$learningrate[1] 08

$momentum[1] 05$learningrate_scale[1] 1$hidden_dropout[1] 0$visible_dropout[1] 0$output[1] sigm$W

Коэффициенты связей

$W$W[[1]] [1] [2][1] -014355854 02471840[2] 011378030 -00715094[3] -004343738 03667468[4] 012756946 -01303379[5] -003445704 02293772

$W[[2]] [1] [2] [3] [4] [5][1] 00420191661 -0023073732 -008762756 0035575714 -0063000016[2] 00072771988 -0131204147 -010591421 0018221305 -0025539769[3] -01071896826 -0019479685 -009892573 -0012976429 -0111886901[4] -00009477304 -0023137518 -002147218 0007969452 -0118696306[5] 00045016013 0001885546 -010170954 -0140312396 -0003970102

$W[[3]] [1] [2] [3] [4] [5][1] 01027992 -007288099 003051227 -001731639 0009518049

$vW$vW[[1]] [1] [2][1] -8335203e-06 1368580e-05[2] -6530183e-05 1135070e-04[3] 2544302e-05 -3947111e-05[4] -5512835e-06 9541682e-06[5] 3822854e-05 -6281762e-05

$vW[[2]] [1] [2] [3] [4] [5][1] 4172450e-04 -2554411e-04 4896670e-04 -3526093e-04 3041932e-04[2] -3210759e-04 1978412e-04 -3769148e-04 2727933e-04 -2338477e-04[3] 1058770e-04 -6705336e-05 1244419e-04 -9201508e-05 7678296e-05[4] -8894178e-05 5481668e-05 -1044110e-04 7558269e-05 -6477571e-05[5] 2676520e-05 -1622289e-05 3139684e-05 -2243174e-05 1954349e-05

$vW[[3]] [1] [2] [3] [4] [5][1] -0002603034 -0002398256 -0003274074 -0002542478 -000209672

Предсказание обученной сетью

predict by dnntest_Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02))test_Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1))test_x lt- matrix(c(test_Var1 test_Var2) nrow = 100 ncol = 2)nntest(dnn test_x y)

[1] 025 Value error rate

Сравнение обучающей и тестовой выборки

gttest_x [1] [2] [1] 091887443 -08940890 [2] 115219448 -06050481 [3] 069917981 -08524551 [4] 028213787 -08146816 [5] 098405598 -11440813 [6] 185911887 -08203652 [7] 010843056 -10123789 [8] 083827953 -07594760 [9] -016373562 -09087116 [10] 088298748 -09767741 [11] 005280917 -07525407

gt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370

Plot3d(test_xy) Plot3d(xy)

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)

Подготовка к обработке

starting installationstep1installpackages(devtools)library(devtools)install_github(repo = mnist username = xrobin ref = master)library(mnist)

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
  • Аппроксимация линейными многообразиями (подпространствами)
  • Slide 30
  • Алгоритм
  • princomp(formula data = NULL subset naaction )
  • Principal Component Analysis (PCA)
  • Линейный дискриминантный анализ (Linear Discriminant Analysis -
  • Решение
  • lda(x grouping prior = proportions tol = 10e-4 method
  • Slide 37
  • Linear Discriminant Analysis (LDA)
  • Сравнение PCA и LDA
  • Метод опорных векторов (Support Vector Machines - SVM)
  • Идея алгоритма
  • Иллюстрация на простейшем примере
  • Линейная неразделимость и использование ядер
  • Иллюстрация использования ядра для отображения 2D -gt 3D
  • svm((formula data = NULL subset naaction = naomit sc
  • Support Vector Machines
  • Глубокое обучение (Deep Learning)
  • laquoВ 1997 году Deep Blue обыграл в шахматы Каспарова В 2011 Wats
  • Распознавание основано на feature detection и последующем раз
  • Распознавание рукописных цифр
  • Еще пример посложнее
  • Использование нейронной сети с обучением
  • Сверхвысокая размерность при работе с первичным представлением
  • Пиксельное кодирование
  • Принцип иерархии понятий ndash основа deep learning
  • Разреженное (sparse) кодирование
  • Словарь для лиц
  • Slide 58
  • Выделение объектов заданного класса
  • Основные архитектуры Deep Learning
  • Задача классификации распознавания и подобные являются задачей
  • Фактор - графы
  • Slide 63
  • Slide 64
  • Подход разреженного кодирования
  • Обобщенная архитектура
  • Slide 67
  • Slide 68
  • Slide 69
  • В действительности работают любые архитектуры построения функц
  • Machine Learning with Torch7 (httpcodecogbitscomwikidoku
  • Torch 7 является расширением Lua
  • Slide 73
  • Slide 74
  • Сверточные (convolution) нейронные сети
  • Свертка и архитектура 4-х уровневой сверточной сети
  • Функциональная структура
  • Примеры успешного применения сверточных сетей
  • Диагностика эпилепсии по ЭЭГ
  • Реализация сверточной сетью
  • Одна из самых больших сверточных сетей
  • Пример тэгирования
  • Пример поиска похожих по изображению
  • Пример поиска в коллекции изображений по текстовому запросу
  • Пример laquoоблачногоraquo классификатора изображений
  • Slide 86
  • Самообучающиеся нейронные сети на основе минимизации функции эн
  • RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцман
  • Алгоритм обучения Contrastive Divergence (CD)
  • Основные уравнения адаптации
  • Алгоритм Хинтона - Contrastive Divergence (CD-k)
  • darch Package for deep architectures and Restricted-Bolzmann-
  • Связь плотности вероятности и энергии
  • Задача обучения с точки минимизации энергии сети
  • Интуитивные соображения
  • Slide 96
  • Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decom
  • Sparse linear reconstruction
  • Автоэнкодер (auto encoder)
  • Архитекттура ICA моделей
  • Итеративные алгоритмы с оптимальным разреженным кодированием 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)
Page 86: !Predictive analytics part_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

Sparse linear reconstruction

bull Energy=reconstruction_error+code_prediction_error+code_sparsity

Автоэнкодер (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

bull saednntrain(x y hidden = c(1) activationfun = sigm learningrate = 08 momentum = 05 learningrate_scale = 1 output = sigm sae_output = linear numepochs = 3 batchsize = 100 hidden_dropout = 0 visible_dropout = 0)

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

Архитектура сети SAE

Архитектура с 5Х4 hidden 3 outs

Example

Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02)) Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1)) x lt- matrix(c(Var1 Var2) nrow = 100 ncol = 2)y lt- c(rep(1 50) rep(0 50))

обучение сетиdnn lt- saednntrain(x y hidden = c(5 5))

Анализ обучающего набора данныхgt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370helliphelliphelliphelliphelliphelliphelliphellip

gt y [1] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 [54] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

plot3d(xy)

Параметры SAE сети

gt dnn$input_dim[1] 2$output_dim[1] 1$hidden[1] 5 5$size[1] 2 5 5 1$activationfun[1] sigm$learningrate[1] 08

$momentum[1] 05$learningrate_scale[1] 1$hidden_dropout[1] 0$visible_dropout[1] 0$output[1] sigm$W

Коэффициенты связей

$W$W[[1]] [1] [2][1] -014355854 02471840[2] 011378030 -00715094[3] -004343738 03667468[4] 012756946 -01303379[5] -003445704 02293772

$W[[2]] [1] [2] [3] [4] [5][1] 00420191661 -0023073732 -008762756 0035575714 -0063000016[2] 00072771988 -0131204147 -010591421 0018221305 -0025539769[3] -01071896826 -0019479685 -009892573 -0012976429 -0111886901[4] -00009477304 -0023137518 -002147218 0007969452 -0118696306[5] 00045016013 0001885546 -010170954 -0140312396 -0003970102

$W[[3]] [1] [2] [3] [4] [5][1] 01027992 -007288099 003051227 -001731639 0009518049

$vW$vW[[1]] [1] [2][1] -8335203e-06 1368580e-05[2] -6530183e-05 1135070e-04[3] 2544302e-05 -3947111e-05[4] -5512835e-06 9541682e-06[5] 3822854e-05 -6281762e-05

$vW[[2]] [1] [2] [3] [4] [5][1] 4172450e-04 -2554411e-04 4896670e-04 -3526093e-04 3041932e-04[2] -3210759e-04 1978412e-04 -3769148e-04 2727933e-04 -2338477e-04[3] 1058770e-04 -6705336e-05 1244419e-04 -9201508e-05 7678296e-05[4] -8894178e-05 5481668e-05 -1044110e-04 7558269e-05 -6477571e-05[5] 2676520e-05 -1622289e-05 3139684e-05 -2243174e-05 1954349e-05

$vW[[3]] [1] [2] [3] [4] [5][1] -0002603034 -0002398256 -0003274074 -0002542478 -000209672

Предсказание обученной сетью

predict by dnntest_Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02))test_Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1))test_x lt- matrix(c(test_Var1 test_Var2) nrow = 100 ncol = 2)nntest(dnn test_x y)

[1] 025 Value error rate

Сравнение обучающей и тестовой выборки

gttest_x [1] [2] [1] 091887443 -08940890 [2] 115219448 -06050481 [3] 069917981 -08524551 [4] 028213787 -08146816 [5] 098405598 -11440813 [6] 185911887 -08203652 [7] 010843056 -10123789 [8] 083827953 -07594760 [9] -016373562 -09087116 [10] 088298748 -09767741 [11] 005280917 -07525407

gt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370

Plot3d(test_xy) Plot3d(xy)

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)

Подготовка к обработке

starting installationstep1installpackages(devtools)library(devtools)install_github(repo = mnist username = xrobin ref = master)library(mnist)

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
  • Аппроксимация линейными многообразиями (подпространствами)
  • Slide 30
  • Алгоритм
  • princomp(formula data = NULL subset naaction )
  • Principal Component Analysis (PCA)
  • Линейный дискриминантный анализ (Linear Discriminant Analysis -
  • Решение
  • lda(x grouping prior = proportions tol = 10e-4 method
  • Slide 37
  • Linear Discriminant Analysis (LDA)
  • Сравнение PCA и LDA
  • Метод опорных векторов (Support Vector Machines - SVM)
  • Идея алгоритма
  • Иллюстрация на простейшем примере
  • Линейная неразделимость и использование ядер
  • Иллюстрация использования ядра для отображения 2D -gt 3D
  • svm((formula data = NULL subset naaction = naomit sc
  • Support Vector Machines
  • Глубокое обучение (Deep Learning)
  • laquoВ 1997 году Deep Blue обыграл в шахматы Каспарова В 2011 Wats
  • Распознавание основано на feature detection и последующем раз
  • Распознавание рукописных цифр
  • Еще пример посложнее
  • Использование нейронной сети с обучением
  • Сверхвысокая размерность при работе с первичным представлением
  • Пиксельное кодирование
  • Принцип иерархии понятий ndash основа deep learning
  • Разреженное (sparse) кодирование
  • Словарь для лиц
  • Slide 58
  • Выделение объектов заданного класса
  • Основные архитектуры Deep Learning
  • Задача классификации распознавания и подобные являются задачей
  • Фактор - графы
  • Slide 63
  • Slide 64
  • Подход разреженного кодирования
  • Обобщенная архитектура
  • Slide 67
  • Slide 68
  • Slide 69
  • В действительности работают любые архитектуры построения функц
  • Machine Learning with Torch7 (httpcodecogbitscomwikidoku
  • Torch 7 является расширением Lua
  • Slide 73
  • Slide 74
  • Сверточные (convolution) нейронные сети
  • Свертка и архитектура 4-х уровневой сверточной сети
  • Функциональная структура
  • Примеры успешного применения сверточных сетей
  • Диагностика эпилепсии по ЭЭГ
  • Реализация сверточной сетью
  • Одна из самых больших сверточных сетей
  • Пример тэгирования
  • Пример поиска похожих по изображению
  • Пример поиска в коллекции изображений по текстовому запросу
  • Пример laquoоблачногоraquo классификатора изображений
  • Slide 86
  • Самообучающиеся нейронные сети на основе минимизации функции эн
  • RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцман
  • Алгоритм обучения Contrastive Divergence (CD)
  • Основные уравнения адаптации
  • Алгоритм Хинтона - Contrastive Divergence (CD-k)
  • darch Package for deep architectures and Restricted-Bolzmann-
  • Связь плотности вероятности и энергии
  • Задача обучения с точки минимизации энергии сети
  • Интуитивные соображения
  • Slide 96
  • Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decom
  • Sparse linear reconstruction
  • Автоэнкодер (auto encoder)
  • Архитекттура ICA моделей
  • Итеративные алгоритмы с оптимальным разреженным кодированием 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)
Page 87: !Predictive analytics part_2

Алгоритм обучения 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

Sparse linear reconstruction

bull Energy=reconstruction_error+code_prediction_error+code_sparsity

Автоэнкодер (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

bull saednntrain(x y hidden = c(1) activationfun = sigm learningrate = 08 momentum = 05 learningrate_scale = 1 output = sigm sae_output = linear numepochs = 3 batchsize = 100 hidden_dropout = 0 visible_dropout = 0)

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

Архитектура сети SAE

Архитектура с 5Х4 hidden 3 outs

Example

Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02)) Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1)) x lt- matrix(c(Var1 Var2) nrow = 100 ncol = 2)y lt- c(rep(1 50) rep(0 50))

обучение сетиdnn lt- saednntrain(x y hidden = c(5 5))

Анализ обучающего набора данныхgt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370helliphelliphelliphelliphelliphelliphelliphellip

gt y [1] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 [54] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

plot3d(xy)

Параметры SAE сети

gt dnn$input_dim[1] 2$output_dim[1] 1$hidden[1] 5 5$size[1] 2 5 5 1$activationfun[1] sigm$learningrate[1] 08

$momentum[1] 05$learningrate_scale[1] 1$hidden_dropout[1] 0$visible_dropout[1] 0$output[1] sigm$W

Коэффициенты связей

$W$W[[1]] [1] [2][1] -014355854 02471840[2] 011378030 -00715094[3] -004343738 03667468[4] 012756946 -01303379[5] -003445704 02293772

$W[[2]] [1] [2] [3] [4] [5][1] 00420191661 -0023073732 -008762756 0035575714 -0063000016[2] 00072771988 -0131204147 -010591421 0018221305 -0025539769[3] -01071896826 -0019479685 -009892573 -0012976429 -0111886901[4] -00009477304 -0023137518 -002147218 0007969452 -0118696306[5] 00045016013 0001885546 -010170954 -0140312396 -0003970102

$W[[3]] [1] [2] [3] [4] [5][1] 01027992 -007288099 003051227 -001731639 0009518049

$vW$vW[[1]] [1] [2][1] -8335203e-06 1368580e-05[2] -6530183e-05 1135070e-04[3] 2544302e-05 -3947111e-05[4] -5512835e-06 9541682e-06[5] 3822854e-05 -6281762e-05

$vW[[2]] [1] [2] [3] [4] [5][1] 4172450e-04 -2554411e-04 4896670e-04 -3526093e-04 3041932e-04[2] -3210759e-04 1978412e-04 -3769148e-04 2727933e-04 -2338477e-04[3] 1058770e-04 -6705336e-05 1244419e-04 -9201508e-05 7678296e-05[4] -8894178e-05 5481668e-05 -1044110e-04 7558269e-05 -6477571e-05[5] 2676520e-05 -1622289e-05 3139684e-05 -2243174e-05 1954349e-05

$vW[[3]] [1] [2] [3] [4] [5][1] -0002603034 -0002398256 -0003274074 -0002542478 -000209672

Предсказание обученной сетью

predict by dnntest_Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02))test_Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1))test_x lt- matrix(c(test_Var1 test_Var2) nrow = 100 ncol = 2)nntest(dnn test_x y)

[1] 025 Value error rate

Сравнение обучающей и тестовой выборки

gttest_x [1] [2] [1] 091887443 -08940890 [2] 115219448 -06050481 [3] 069917981 -08524551 [4] 028213787 -08146816 [5] 098405598 -11440813 [6] 185911887 -08203652 [7] 010843056 -10123789 [8] 083827953 -07594760 [9] -016373562 -09087116 [10] 088298748 -09767741 [11] 005280917 -07525407

gt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370

Plot3d(test_xy) Plot3d(xy)

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)

Подготовка к обработке

starting installationstep1installpackages(devtools)library(devtools)install_github(repo = mnist username = xrobin ref = master)library(mnist)

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
  • Аппроксимация линейными многообразиями (подпространствами)
  • Slide 30
  • Алгоритм
  • princomp(formula data = NULL subset naaction )
  • Principal Component Analysis (PCA)
  • Линейный дискриминантный анализ (Linear Discriminant Analysis -
  • Решение
  • lda(x grouping prior = proportions tol = 10e-4 method
  • Slide 37
  • Linear Discriminant Analysis (LDA)
  • Сравнение PCA и LDA
  • Метод опорных векторов (Support Vector Machines - SVM)
  • Идея алгоритма
  • Иллюстрация на простейшем примере
  • Линейная неразделимость и использование ядер
  • Иллюстрация использования ядра для отображения 2D -gt 3D
  • svm((formula data = NULL subset naaction = naomit sc
  • Support Vector Machines
  • Глубокое обучение (Deep Learning)
  • laquoВ 1997 году Deep Blue обыграл в шахматы Каспарова В 2011 Wats
  • Распознавание основано на feature detection и последующем раз
  • Распознавание рукописных цифр
  • Еще пример посложнее
  • Использование нейронной сети с обучением
  • Сверхвысокая размерность при работе с первичным представлением
  • Пиксельное кодирование
  • Принцип иерархии понятий ndash основа deep learning
  • Разреженное (sparse) кодирование
  • Словарь для лиц
  • Slide 58
  • Выделение объектов заданного класса
  • Основные архитектуры Deep Learning
  • Задача классификации распознавания и подобные являются задачей
  • Фактор - графы
  • Slide 63
  • Slide 64
  • Подход разреженного кодирования
  • Обобщенная архитектура
  • Slide 67
  • Slide 68
  • Slide 69
  • В действительности работают любые архитектуры построения функц
  • Machine Learning with Torch7 (httpcodecogbitscomwikidoku
  • Torch 7 является расширением Lua
  • Slide 73
  • Slide 74
  • Сверточные (convolution) нейронные сети
  • Свертка и архитектура 4-х уровневой сверточной сети
  • Функциональная структура
  • Примеры успешного применения сверточных сетей
  • Диагностика эпилепсии по ЭЭГ
  • Реализация сверточной сетью
  • Одна из самых больших сверточных сетей
  • Пример тэгирования
  • Пример поиска похожих по изображению
  • Пример поиска в коллекции изображений по текстовому запросу
  • Пример laquoоблачногоraquo классификатора изображений
  • Slide 86
  • Самообучающиеся нейронные сети на основе минимизации функции эн
  • RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцман
  • Алгоритм обучения Contrastive Divergence (CD)
  • Основные уравнения адаптации
  • Алгоритм Хинтона - Contrastive Divergence (CD-k)
  • darch Package for deep architectures and Restricted-Bolzmann-
  • Связь плотности вероятности и энергии
  • Задача обучения с точки минимизации энергии сети
  • Интуитивные соображения
  • Slide 96
  • Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decom
  • Sparse linear reconstruction
  • Автоэнкодер (auto encoder)
  • Архитекттура ICA моделей
  • Итеративные алгоритмы с оптимальным разреженным кодированием 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)
Page 88: !Predictive analytics part_2

Основные уравнения адаптации

Алгоритм Хинтона - 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

Sparse linear reconstruction

bull Energy=reconstruction_error+code_prediction_error+code_sparsity

Автоэнкодер (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

bull saednntrain(x y hidden = c(1) activationfun = sigm learningrate = 08 momentum = 05 learningrate_scale = 1 output = sigm sae_output = linear numepochs = 3 batchsize = 100 hidden_dropout = 0 visible_dropout = 0)

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

Архитектура сети SAE

Архитектура с 5Х4 hidden 3 outs

Example

Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02)) Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1)) x lt- matrix(c(Var1 Var2) nrow = 100 ncol = 2)y lt- c(rep(1 50) rep(0 50))

обучение сетиdnn lt- saednntrain(x y hidden = c(5 5))

Анализ обучающего набора данныхgt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370helliphelliphelliphelliphelliphelliphelliphellip

gt y [1] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 [54] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

plot3d(xy)

Параметры SAE сети

gt dnn$input_dim[1] 2$output_dim[1] 1$hidden[1] 5 5$size[1] 2 5 5 1$activationfun[1] sigm$learningrate[1] 08

$momentum[1] 05$learningrate_scale[1] 1$hidden_dropout[1] 0$visible_dropout[1] 0$output[1] sigm$W

Коэффициенты связей

$W$W[[1]] [1] [2][1] -014355854 02471840[2] 011378030 -00715094[3] -004343738 03667468[4] 012756946 -01303379[5] -003445704 02293772

$W[[2]] [1] [2] [3] [4] [5][1] 00420191661 -0023073732 -008762756 0035575714 -0063000016[2] 00072771988 -0131204147 -010591421 0018221305 -0025539769[3] -01071896826 -0019479685 -009892573 -0012976429 -0111886901[4] -00009477304 -0023137518 -002147218 0007969452 -0118696306[5] 00045016013 0001885546 -010170954 -0140312396 -0003970102

$W[[3]] [1] [2] [3] [4] [5][1] 01027992 -007288099 003051227 -001731639 0009518049

$vW$vW[[1]] [1] [2][1] -8335203e-06 1368580e-05[2] -6530183e-05 1135070e-04[3] 2544302e-05 -3947111e-05[4] -5512835e-06 9541682e-06[5] 3822854e-05 -6281762e-05

$vW[[2]] [1] [2] [3] [4] [5][1] 4172450e-04 -2554411e-04 4896670e-04 -3526093e-04 3041932e-04[2] -3210759e-04 1978412e-04 -3769148e-04 2727933e-04 -2338477e-04[3] 1058770e-04 -6705336e-05 1244419e-04 -9201508e-05 7678296e-05[4] -8894178e-05 5481668e-05 -1044110e-04 7558269e-05 -6477571e-05[5] 2676520e-05 -1622289e-05 3139684e-05 -2243174e-05 1954349e-05

$vW[[3]] [1] [2] [3] [4] [5][1] -0002603034 -0002398256 -0003274074 -0002542478 -000209672

Предсказание обученной сетью

predict by dnntest_Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02))test_Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1))test_x lt- matrix(c(test_Var1 test_Var2) nrow = 100 ncol = 2)nntest(dnn test_x y)

[1] 025 Value error rate

Сравнение обучающей и тестовой выборки

gttest_x [1] [2] [1] 091887443 -08940890 [2] 115219448 -06050481 [3] 069917981 -08524551 [4] 028213787 -08146816 [5] 098405598 -11440813 [6] 185911887 -08203652 [7] 010843056 -10123789 [8] 083827953 -07594760 [9] -016373562 -09087116 [10] 088298748 -09767741 [11] 005280917 -07525407

gt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370

Plot3d(test_xy) Plot3d(xy)

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)

Подготовка к обработке

starting installationstep1installpackages(devtools)library(devtools)install_github(repo = mnist username = xrobin ref = master)library(mnist)

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
  • Аппроксимация линейными многообразиями (подпространствами)
  • Slide 30
  • Алгоритм
  • princomp(formula data = NULL subset naaction )
  • Principal Component Analysis (PCA)
  • Линейный дискриминантный анализ (Linear Discriminant Analysis -
  • Решение
  • lda(x grouping prior = proportions tol = 10e-4 method
  • Slide 37
  • Linear Discriminant Analysis (LDA)
  • Сравнение PCA и LDA
  • Метод опорных векторов (Support Vector Machines - SVM)
  • Идея алгоритма
  • Иллюстрация на простейшем примере
  • Линейная неразделимость и использование ядер
  • Иллюстрация использования ядра для отображения 2D -gt 3D
  • svm((formula data = NULL subset naaction = naomit sc
  • Support Vector Machines
  • Глубокое обучение (Deep Learning)
  • laquoВ 1997 году Deep Blue обыграл в шахматы Каспарова В 2011 Wats
  • Распознавание основано на feature detection и последующем раз
  • Распознавание рукописных цифр
  • Еще пример посложнее
  • Использование нейронной сети с обучением
  • Сверхвысокая размерность при работе с первичным представлением
  • Пиксельное кодирование
  • Принцип иерархии понятий ndash основа deep learning
  • Разреженное (sparse) кодирование
  • Словарь для лиц
  • Slide 58
  • Выделение объектов заданного класса
  • Основные архитектуры Deep Learning
  • Задача классификации распознавания и подобные являются задачей
  • Фактор - графы
  • Slide 63
  • Slide 64
  • Подход разреженного кодирования
  • Обобщенная архитектура
  • Slide 67
  • Slide 68
  • Slide 69
  • В действительности работают любые архитектуры построения функц
  • Machine Learning with Torch7 (httpcodecogbitscomwikidoku
  • Torch 7 является расширением Lua
  • Slide 73
  • Slide 74
  • Сверточные (convolution) нейронные сети
  • Свертка и архитектура 4-х уровневой сверточной сети
  • Функциональная структура
  • Примеры успешного применения сверточных сетей
  • Диагностика эпилепсии по ЭЭГ
  • Реализация сверточной сетью
  • Одна из самых больших сверточных сетей
  • Пример тэгирования
  • Пример поиска похожих по изображению
  • Пример поиска в коллекции изображений по текстовому запросу
  • Пример laquoоблачногоraquo классификатора изображений
  • Slide 86
  • Самообучающиеся нейронные сети на основе минимизации функции эн
  • RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцман
  • Алгоритм обучения Contrastive Divergence (CD)
  • Основные уравнения адаптации
  • Алгоритм Хинтона - Contrastive Divergence (CD-k)
  • darch Package for deep architectures and Restricted-Bolzmann-
  • Связь плотности вероятности и энергии
  • Задача обучения с точки минимизации энергии сети
  • Интуитивные соображения
  • Slide 96
  • Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decom
  • Sparse linear reconstruction
  • Автоэнкодер (auto encoder)
  • Архитекттура ICA моделей
  • Итеративные алгоритмы с оптимальным разреженным кодированием 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)
Page 89: !Predictive analytics part_2

Алгоритм Хинтона - 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

Sparse linear reconstruction

bull Energy=reconstruction_error+code_prediction_error+code_sparsity

Автоэнкодер (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

bull saednntrain(x y hidden = c(1) activationfun = sigm learningrate = 08 momentum = 05 learningrate_scale = 1 output = sigm sae_output = linear numepochs = 3 batchsize = 100 hidden_dropout = 0 visible_dropout = 0)

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

Архитектура сети SAE

Архитектура с 5Х4 hidden 3 outs

Example

Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02)) Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1)) x lt- matrix(c(Var1 Var2) nrow = 100 ncol = 2)y lt- c(rep(1 50) rep(0 50))

обучение сетиdnn lt- saednntrain(x y hidden = c(5 5))

Анализ обучающего набора данныхgt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370helliphelliphelliphelliphelliphelliphelliphellip

gt y [1] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 [54] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

plot3d(xy)

Параметры SAE сети

gt dnn$input_dim[1] 2$output_dim[1] 1$hidden[1] 5 5$size[1] 2 5 5 1$activationfun[1] sigm$learningrate[1] 08

$momentum[1] 05$learningrate_scale[1] 1$hidden_dropout[1] 0$visible_dropout[1] 0$output[1] sigm$W

Коэффициенты связей

$W$W[[1]] [1] [2][1] -014355854 02471840[2] 011378030 -00715094[3] -004343738 03667468[4] 012756946 -01303379[5] -003445704 02293772

$W[[2]] [1] [2] [3] [4] [5][1] 00420191661 -0023073732 -008762756 0035575714 -0063000016[2] 00072771988 -0131204147 -010591421 0018221305 -0025539769[3] -01071896826 -0019479685 -009892573 -0012976429 -0111886901[4] -00009477304 -0023137518 -002147218 0007969452 -0118696306[5] 00045016013 0001885546 -010170954 -0140312396 -0003970102

$W[[3]] [1] [2] [3] [4] [5][1] 01027992 -007288099 003051227 -001731639 0009518049

$vW$vW[[1]] [1] [2][1] -8335203e-06 1368580e-05[2] -6530183e-05 1135070e-04[3] 2544302e-05 -3947111e-05[4] -5512835e-06 9541682e-06[5] 3822854e-05 -6281762e-05

$vW[[2]] [1] [2] [3] [4] [5][1] 4172450e-04 -2554411e-04 4896670e-04 -3526093e-04 3041932e-04[2] -3210759e-04 1978412e-04 -3769148e-04 2727933e-04 -2338477e-04[3] 1058770e-04 -6705336e-05 1244419e-04 -9201508e-05 7678296e-05[4] -8894178e-05 5481668e-05 -1044110e-04 7558269e-05 -6477571e-05[5] 2676520e-05 -1622289e-05 3139684e-05 -2243174e-05 1954349e-05

$vW[[3]] [1] [2] [3] [4] [5][1] -0002603034 -0002398256 -0003274074 -0002542478 -000209672

Предсказание обученной сетью

predict by dnntest_Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02))test_Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1))test_x lt- matrix(c(test_Var1 test_Var2) nrow = 100 ncol = 2)nntest(dnn test_x y)

[1] 025 Value error rate

Сравнение обучающей и тестовой выборки

gttest_x [1] [2] [1] 091887443 -08940890 [2] 115219448 -06050481 [3] 069917981 -08524551 [4] 028213787 -08146816 [5] 098405598 -11440813 [6] 185911887 -08203652 [7] 010843056 -10123789 [8] 083827953 -07594760 [9] -016373562 -09087116 [10] 088298748 -09767741 [11] 005280917 -07525407

gt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370

Plot3d(test_xy) Plot3d(xy)

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)

Подготовка к обработке

starting installationstep1installpackages(devtools)library(devtools)install_github(repo = mnist username = xrobin ref = master)library(mnist)

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
  • Аппроксимация линейными многообразиями (подпространствами)
  • Slide 30
  • Алгоритм
  • princomp(formula data = NULL subset naaction )
  • Principal Component Analysis (PCA)
  • Линейный дискриминантный анализ (Linear Discriminant Analysis -
  • Решение
  • lda(x grouping prior = proportions tol = 10e-4 method
  • Slide 37
  • Linear Discriminant Analysis (LDA)
  • Сравнение PCA и LDA
  • Метод опорных векторов (Support Vector Machines - SVM)
  • Идея алгоритма
  • Иллюстрация на простейшем примере
  • Линейная неразделимость и использование ядер
  • Иллюстрация использования ядра для отображения 2D -gt 3D
  • svm((formula data = NULL subset naaction = naomit sc
  • Support Vector Machines
  • Глубокое обучение (Deep Learning)
  • laquoВ 1997 году Deep Blue обыграл в шахматы Каспарова В 2011 Wats
  • Распознавание основано на feature detection и последующем раз
  • Распознавание рукописных цифр
  • Еще пример посложнее
  • Использование нейронной сети с обучением
  • Сверхвысокая размерность при работе с первичным представлением
  • Пиксельное кодирование
  • Принцип иерархии понятий ndash основа deep learning
  • Разреженное (sparse) кодирование
  • Словарь для лиц
  • Slide 58
  • Выделение объектов заданного класса
  • Основные архитектуры Deep Learning
  • Задача классификации распознавания и подобные являются задачей
  • Фактор - графы
  • Slide 63
  • Slide 64
  • Подход разреженного кодирования
  • Обобщенная архитектура
  • Slide 67
  • Slide 68
  • Slide 69
  • В действительности работают любые архитектуры построения функц
  • Machine Learning with Torch7 (httpcodecogbitscomwikidoku
  • Torch 7 является расширением Lua
  • Slide 73
  • Slide 74
  • Сверточные (convolution) нейронные сети
  • Свертка и архитектура 4-х уровневой сверточной сети
  • Функциональная структура
  • Примеры успешного применения сверточных сетей
  • Диагностика эпилепсии по ЭЭГ
  • Реализация сверточной сетью
  • Одна из самых больших сверточных сетей
  • Пример тэгирования
  • Пример поиска похожих по изображению
  • Пример поиска в коллекции изображений по текстовому запросу
  • Пример laquoоблачногоraquo классификатора изображений
  • Slide 86
  • Самообучающиеся нейронные сети на основе минимизации функции эн
  • RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцман
  • Алгоритм обучения Contrastive Divergence (CD)
  • Основные уравнения адаптации
  • Алгоритм Хинтона - Contrastive Divergence (CD-k)
  • darch Package for deep architectures and Restricted-Bolzmann-
  • Связь плотности вероятности и энергии
  • Задача обучения с точки минимизации энергии сети
  • Интуитивные соображения
  • Slide 96
  • Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decom
  • Sparse linear reconstruction
  • Автоэнкодер (auto encoder)
  • Архитекттура ICA моделей
  • Итеративные алгоритмы с оптимальным разреженным кодированием 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)
Page 90: !Predictive analytics part_2

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

Sparse linear reconstruction

bull Energy=reconstruction_error+code_prediction_error+code_sparsity

Автоэнкодер (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

bull saednntrain(x y hidden = c(1) activationfun = sigm learningrate = 08 momentum = 05 learningrate_scale = 1 output = sigm sae_output = linear numepochs = 3 batchsize = 100 hidden_dropout = 0 visible_dropout = 0)

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

Архитектура сети SAE

Архитектура с 5Х4 hidden 3 outs

Example

Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02)) Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1)) x lt- matrix(c(Var1 Var2) nrow = 100 ncol = 2)y lt- c(rep(1 50) rep(0 50))

обучение сетиdnn lt- saednntrain(x y hidden = c(5 5))

Анализ обучающего набора данныхgt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370helliphelliphelliphelliphelliphelliphelliphellip

gt y [1] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 [54] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

plot3d(xy)

Параметры SAE сети

gt dnn$input_dim[1] 2$output_dim[1] 1$hidden[1] 5 5$size[1] 2 5 5 1$activationfun[1] sigm$learningrate[1] 08

$momentum[1] 05$learningrate_scale[1] 1$hidden_dropout[1] 0$visible_dropout[1] 0$output[1] sigm$W

Коэффициенты связей

$W$W[[1]] [1] [2][1] -014355854 02471840[2] 011378030 -00715094[3] -004343738 03667468[4] 012756946 -01303379[5] -003445704 02293772

$W[[2]] [1] [2] [3] [4] [5][1] 00420191661 -0023073732 -008762756 0035575714 -0063000016[2] 00072771988 -0131204147 -010591421 0018221305 -0025539769[3] -01071896826 -0019479685 -009892573 -0012976429 -0111886901[4] -00009477304 -0023137518 -002147218 0007969452 -0118696306[5] 00045016013 0001885546 -010170954 -0140312396 -0003970102

$W[[3]] [1] [2] [3] [4] [5][1] 01027992 -007288099 003051227 -001731639 0009518049

$vW$vW[[1]] [1] [2][1] -8335203e-06 1368580e-05[2] -6530183e-05 1135070e-04[3] 2544302e-05 -3947111e-05[4] -5512835e-06 9541682e-06[5] 3822854e-05 -6281762e-05

$vW[[2]] [1] [2] [3] [4] [5][1] 4172450e-04 -2554411e-04 4896670e-04 -3526093e-04 3041932e-04[2] -3210759e-04 1978412e-04 -3769148e-04 2727933e-04 -2338477e-04[3] 1058770e-04 -6705336e-05 1244419e-04 -9201508e-05 7678296e-05[4] -8894178e-05 5481668e-05 -1044110e-04 7558269e-05 -6477571e-05[5] 2676520e-05 -1622289e-05 3139684e-05 -2243174e-05 1954349e-05

$vW[[3]] [1] [2] [3] [4] [5][1] -0002603034 -0002398256 -0003274074 -0002542478 -000209672

Предсказание обученной сетью

predict by dnntest_Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02))test_Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1))test_x lt- matrix(c(test_Var1 test_Var2) nrow = 100 ncol = 2)nntest(dnn test_x y)

[1] 025 Value error rate

Сравнение обучающей и тестовой выборки

gttest_x [1] [2] [1] 091887443 -08940890 [2] 115219448 -06050481 [3] 069917981 -08524551 [4] 028213787 -08146816 [5] 098405598 -11440813 [6] 185911887 -08203652 [7] 010843056 -10123789 [8] 083827953 -07594760 [9] -016373562 -09087116 [10] 088298748 -09767741 [11] 005280917 -07525407

gt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370

Plot3d(test_xy) Plot3d(xy)

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)

Подготовка к обработке

starting installationstep1installpackages(devtools)library(devtools)install_github(repo = mnist username = xrobin ref = master)library(mnist)

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
  • Аппроксимация линейными многообразиями (подпространствами)
  • Slide 30
  • Алгоритм
  • princomp(formula data = NULL subset naaction )
  • Principal Component Analysis (PCA)
  • Линейный дискриминантный анализ (Linear Discriminant Analysis -
  • Решение
  • lda(x grouping prior = proportions tol = 10e-4 method
  • Slide 37
  • Linear Discriminant Analysis (LDA)
  • Сравнение PCA и LDA
  • Метод опорных векторов (Support Vector Machines - SVM)
  • Идея алгоритма
  • Иллюстрация на простейшем примере
  • Линейная неразделимость и использование ядер
  • Иллюстрация использования ядра для отображения 2D -gt 3D
  • svm((formula data = NULL subset naaction = naomit sc
  • Support Vector Machines
  • Глубокое обучение (Deep Learning)
  • laquoВ 1997 году Deep Blue обыграл в шахматы Каспарова В 2011 Wats
  • Распознавание основано на feature detection и последующем раз
  • Распознавание рукописных цифр
  • Еще пример посложнее
  • Использование нейронной сети с обучением
  • Сверхвысокая размерность при работе с первичным представлением
  • Пиксельное кодирование
  • Принцип иерархии понятий ndash основа deep learning
  • Разреженное (sparse) кодирование
  • Словарь для лиц
  • Slide 58
  • Выделение объектов заданного класса
  • Основные архитектуры Deep Learning
  • Задача классификации распознавания и подобные являются задачей
  • Фактор - графы
  • Slide 63
  • Slide 64
  • Подход разреженного кодирования
  • Обобщенная архитектура
  • Slide 67
  • Slide 68
  • Slide 69
  • В действительности работают любые архитектуры построения функц
  • Machine Learning with Torch7 (httpcodecogbitscomwikidoku
  • Torch 7 является расширением Lua
  • Slide 73
  • Slide 74
  • Сверточные (convolution) нейронные сети
  • Свертка и архитектура 4-х уровневой сверточной сети
  • Функциональная структура
  • Примеры успешного применения сверточных сетей
  • Диагностика эпилепсии по ЭЭГ
  • Реализация сверточной сетью
  • Одна из самых больших сверточных сетей
  • Пример тэгирования
  • Пример поиска похожих по изображению
  • Пример поиска в коллекции изображений по текстовому запросу
  • Пример laquoоблачногоraquo классификатора изображений
  • Slide 86
  • Самообучающиеся нейронные сети на основе минимизации функции эн
  • RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцман
  • Алгоритм обучения Contrastive Divergence (CD)
  • Основные уравнения адаптации
  • Алгоритм Хинтона - Contrastive Divergence (CD-k)
  • darch Package for deep architectures and Restricted-Bolzmann-
  • Связь плотности вероятности и энергии
  • Задача обучения с точки минимизации энергии сети
  • Интуитивные соображения
  • Slide 96
  • Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decom
  • Sparse linear reconstruction
  • Автоэнкодер (auto encoder)
  • Архитекттура ICA моделей
  • Итеративные алгоритмы с оптимальным разреженным кодированием 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)
Page 91: !Predictive analytics part_2

Связь плотности вероятности и энергии

Используется распределение Гиббса

Задача обучения с точки минимизации энергии сети

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

Sparse linear reconstruction

bull Energy=reconstruction_error+code_prediction_error+code_sparsity

Автоэнкодер (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

bull saednntrain(x y hidden = c(1) activationfun = sigm learningrate = 08 momentum = 05 learningrate_scale = 1 output = sigm sae_output = linear numepochs = 3 batchsize = 100 hidden_dropout = 0 visible_dropout = 0)

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

Архитектура сети SAE

Архитектура с 5Х4 hidden 3 outs

Example

Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02)) Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1)) x lt- matrix(c(Var1 Var2) nrow = 100 ncol = 2)y lt- c(rep(1 50) rep(0 50))

обучение сетиdnn lt- saednntrain(x y hidden = c(5 5))

Анализ обучающего набора данныхgt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370helliphelliphelliphelliphelliphelliphelliphellip

gt y [1] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 [54] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

plot3d(xy)

Параметры SAE сети

gt dnn$input_dim[1] 2$output_dim[1] 1$hidden[1] 5 5$size[1] 2 5 5 1$activationfun[1] sigm$learningrate[1] 08

$momentum[1] 05$learningrate_scale[1] 1$hidden_dropout[1] 0$visible_dropout[1] 0$output[1] sigm$W

Коэффициенты связей

$W$W[[1]] [1] [2][1] -014355854 02471840[2] 011378030 -00715094[3] -004343738 03667468[4] 012756946 -01303379[5] -003445704 02293772

$W[[2]] [1] [2] [3] [4] [5][1] 00420191661 -0023073732 -008762756 0035575714 -0063000016[2] 00072771988 -0131204147 -010591421 0018221305 -0025539769[3] -01071896826 -0019479685 -009892573 -0012976429 -0111886901[4] -00009477304 -0023137518 -002147218 0007969452 -0118696306[5] 00045016013 0001885546 -010170954 -0140312396 -0003970102

$W[[3]] [1] [2] [3] [4] [5][1] 01027992 -007288099 003051227 -001731639 0009518049

$vW$vW[[1]] [1] [2][1] -8335203e-06 1368580e-05[2] -6530183e-05 1135070e-04[3] 2544302e-05 -3947111e-05[4] -5512835e-06 9541682e-06[5] 3822854e-05 -6281762e-05

$vW[[2]] [1] [2] [3] [4] [5][1] 4172450e-04 -2554411e-04 4896670e-04 -3526093e-04 3041932e-04[2] -3210759e-04 1978412e-04 -3769148e-04 2727933e-04 -2338477e-04[3] 1058770e-04 -6705336e-05 1244419e-04 -9201508e-05 7678296e-05[4] -8894178e-05 5481668e-05 -1044110e-04 7558269e-05 -6477571e-05[5] 2676520e-05 -1622289e-05 3139684e-05 -2243174e-05 1954349e-05

$vW[[3]] [1] [2] [3] [4] [5][1] -0002603034 -0002398256 -0003274074 -0002542478 -000209672

Предсказание обученной сетью

predict by dnntest_Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02))test_Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1))test_x lt- matrix(c(test_Var1 test_Var2) nrow = 100 ncol = 2)nntest(dnn test_x y)

[1] 025 Value error rate

Сравнение обучающей и тестовой выборки

gttest_x [1] [2] [1] 091887443 -08940890 [2] 115219448 -06050481 [3] 069917981 -08524551 [4] 028213787 -08146816 [5] 098405598 -11440813 [6] 185911887 -08203652 [7] 010843056 -10123789 [8] 083827953 -07594760 [9] -016373562 -09087116 [10] 088298748 -09767741 [11] 005280917 -07525407

gt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370

Plot3d(test_xy) Plot3d(xy)

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)

Подготовка к обработке

starting installationstep1installpackages(devtools)library(devtools)install_github(repo = mnist username = xrobin ref = master)library(mnist)

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
  • Аппроксимация линейными многообразиями (подпространствами)
  • Slide 30
  • Алгоритм
  • princomp(formula data = NULL subset naaction )
  • Principal Component Analysis (PCA)
  • Линейный дискриминантный анализ (Linear Discriminant Analysis -
  • Решение
  • lda(x grouping prior = proportions tol = 10e-4 method
  • Slide 37
  • Linear Discriminant Analysis (LDA)
  • Сравнение PCA и LDA
  • Метод опорных векторов (Support Vector Machines - SVM)
  • Идея алгоритма
  • Иллюстрация на простейшем примере
  • Линейная неразделимость и использование ядер
  • Иллюстрация использования ядра для отображения 2D -gt 3D
  • svm((formula data = NULL subset naaction = naomit sc
  • Support Vector Machines
  • Глубокое обучение (Deep Learning)
  • laquoВ 1997 году Deep Blue обыграл в шахматы Каспарова В 2011 Wats
  • Распознавание основано на feature detection и последующем раз
  • Распознавание рукописных цифр
  • Еще пример посложнее
  • Использование нейронной сети с обучением
  • Сверхвысокая размерность при работе с первичным представлением
  • Пиксельное кодирование
  • Принцип иерархии понятий ndash основа deep learning
  • Разреженное (sparse) кодирование
  • Словарь для лиц
  • Slide 58
  • Выделение объектов заданного класса
  • Основные архитектуры Deep Learning
  • Задача классификации распознавания и подобные являются задачей
  • Фактор - графы
  • Slide 63
  • Slide 64
  • Подход разреженного кодирования
  • Обобщенная архитектура
  • Slide 67
  • Slide 68
  • Slide 69
  • В действительности работают любые архитектуры построения функц
  • Machine Learning with Torch7 (httpcodecogbitscomwikidoku
  • Torch 7 является расширением Lua
  • Slide 73
  • Slide 74
  • Сверточные (convolution) нейронные сети
  • Свертка и архитектура 4-х уровневой сверточной сети
  • Функциональная структура
  • Примеры успешного применения сверточных сетей
  • Диагностика эпилепсии по ЭЭГ
  • Реализация сверточной сетью
  • Одна из самых больших сверточных сетей
  • Пример тэгирования
  • Пример поиска похожих по изображению
  • Пример поиска в коллекции изображений по текстовому запросу
  • Пример laquoоблачногоraquo классификатора изображений
  • Slide 86
  • Самообучающиеся нейронные сети на основе минимизации функции эн
  • RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцман
  • Алгоритм обучения Contrastive Divergence (CD)
  • Основные уравнения адаптации
  • Алгоритм Хинтона - Contrastive Divergence (CD-k)
  • darch Package for deep architectures and Restricted-Bolzmann-
  • Связь плотности вероятности и энергии
  • Задача обучения с точки минимизации энергии сети
  • Интуитивные соображения
  • Slide 96
  • Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decom
  • Sparse linear reconstruction
  • Автоэнкодер (auto encoder)
  • Архитекттура ICA моделей
  • Итеративные алгоритмы с оптимальным разреженным кодированием 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)
Page 92: !Predictive analytics part_2

Задача обучения с точки минимизации энергии сети

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

Sparse linear reconstruction

bull Energy=reconstruction_error+code_prediction_error+code_sparsity

Автоэнкодер (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

bull saednntrain(x y hidden = c(1) activationfun = sigm learningrate = 08 momentum = 05 learningrate_scale = 1 output = sigm sae_output = linear numepochs = 3 batchsize = 100 hidden_dropout = 0 visible_dropout = 0)

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

Архитектура сети SAE

Архитектура с 5Х4 hidden 3 outs

Example

Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02)) Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1)) x lt- matrix(c(Var1 Var2) nrow = 100 ncol = 2)y lt- c(rep(1 50) rep(0 50))

обучение сетиdnn lt- saednntrain(x y hidden = c(5 5))

Анализ обучающего набора данныхgt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370helliphelliphelliphelliphelliphelliphelliphellip

gt y [1] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 [54] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

plot3d(xy)

Параметры SAE сети

gt dnn$input_dim[1] 2$output_dim[1] 1$hidden[1] 5 5$size[1] 2 5 5 1$activationfun[1] sigm$learningrate[1] 08

$momentum[1] 05$learningrate_scale[1] 1$hidden_dropout[1] 0$visible_dropout[1] 0$output[1] sigm$W

Коэффициенты связей

$W$W[[1]] [1] [2][1] -014355854 02471840[2] 011378030 -00715094[3] -004343738 03667468[4] 012756946 -01303379[5] -003445704 02293772

$W[[2]] [1] [2] [3] [4] [5][1] 00420191661 -0023073732 -008762756 0035575714 -0063000016[2] 00072771988 -0131204147 -010591421 0018221305 -0025539769[3] -01071896826 -0019479685 -009892573 -0012976429 -0111886901[4] -00009477304 -0023137518 -002147218 0007969452 -0118696306[5] 00045016013 0001885546 -010170954 -0140312396 -0003970102

$W[[3]] [1] [2] [3] [4] [5][1] 01027992 -007288099 003051227 -001731639 0009518049

$vW$vW[[1]] [1] [2][1] -8335203e-06 1368580e-05[2] -6530183e-05 1135070e-04[3] 2544302e-05 -3947111e-05[4] -5512835e-06 9541682e-06[5] 3822854e-05 -6281762e-05

$vW[[2]] [1] [2] [3] [4] [5][1] 4172450e-04 -2554411e-04 4896670e-04 -3526093e-04 3041932e-04[2] -3210759e-04 1978412e-04 -3769148e-04 2727933e-04 -2338477e-04[3] 1058770e-04 -6705336e-05 1244419e-04 -9201508e-05 7678296e-05[4] -8894178e-05 5481668e-05 -1044110e-04 7558269e-05 -6477571e-05[5] 2676520e-05 -1622289e-05 3139684e-05 -2243174e-05 1954349e-05

$vW[[3]] [1] [2] [3] [4] [5][1] -0002603034 -0002398256 -0003274074 -0002542478 -000209672

Предсказание обученной сетью

predict by dnntest_Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02))test_Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1))test_x lt- matrix(c(test_Var1 test_Var2) nrow = 100 ncol = 2)nntest(dnn test_x y)

[1] 025 Value error rate

Сравнение обучающей и тестовой выборки

gttest_x [1] [2] [1] 091887443 -08940890 [2] 115219448 -06050481 [3] 069917981 -08524551 [4] 028213787 -08146816 [5] 098405598 -11440813 [6] 185911887 -08203652 [7] 010843056 -10123789 [8] 083827953 -07594760 [9] -016373562 -09087116 [10] 088298748 -09767741 [11] 005280917 -07525407

gt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370

Plot3d(test_xy) Plot3d(xy)

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)

Подготовка к обработке

starting installationstep1installpackages(devtools)library(devtools)install_github(repo = mnist username = xrobin ref = master)library(mnist)

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
  • Аппроксимация линейными многообразиями (подпространствами)
  • Slide 30
  • Алгоритм
  • princomp(formula data = NULL subset naaction )
  • Principal Component Analysis (PCA)
  • Линейный дискриминантный анализ (Linear Discriminant Analysis -
  • Решение
  • lda(x grouping prior = proportions tol = 10e-4 method
  • Slide 37
  • Linear Discriminant Analysis (LDA)
  • Сравнение PCA и LDA
  • Метод опорных векторов (Support Vector Machines - SVM)
  • Идея алгоритма
  • Иллюстрация на простейшем примере
  • Линейная неразделимость и использование ядер
  • Иллюстрация использования ядра для отображения 2D -gt 3D
  • svm((formula data = NULL subset naaction = naomit sc
  • Support Vector Machines
  • Глубокое обучение (Deep Learning)
  • laquoВ 1997 году Deep Blue обыграл в шахматы Каспарова В 2011 Wats
  • Распознавание основано на feature detection и последующем раз
  • Распознавание рукописных цифр
  • Еще пример посложнее
  • Использование нейронной сети с обучением
  • Сверхвысокая размерность при работе с первичным представлением
  • Пиксельное кодирование
  • Принцип иерархии понятий ndash основа deep learning
  • Разреженное (sparse) кодирование
  • Словарь для лиц
  • Slide 58
  • Выделение объектов заданного класса
  • Основные архитектуры Deep Learning
  • Задача классификации распознавания и подобные являются задачей
  • Фактор - графы
  • Slide 63
  • Slide 64
  • Подход разреженного кодирования
  • Обобщенная архитектура
  • Slide 67
  • Slide 68
  • Slide 69
  • В действительности работают любые архитектуры построения функц
  • Machine Learning with Torch7 (httpcodecogbitscomwikidoku
  • Torch 7 является расширением Lua
  • Slide 73
  • Slide 74
  • Сверточные (convolution) нейронные сети
  • Свертка и архитектура 4-х уровневой сверточной сети
  • Функциональная структура
  • Примеры успешного применения сверточных сетей
  • Диагностика эпилепсии по ЭЭГ
  • Реализация сверточной сетью
  • Одна из самых больших сверточных сетей
  • Пример тэгирования
  • Пример поиска похожих по изображению
  • Пример поиска в коллекции изображений по текстовому запросу
  • Пример laquoоблачногоraquo классификатора изображений
  • Slide 86
  • Самообучающиеся нейронные сети на основе минимизации функции эн
  • RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцман
  • Алгоритм обучения Contrastive Divergence (CD)
  • Основные уравнения адаптации
  • Алгоритм Хинтона - Contrastive Divergence (CD-k)
  • darch Package for deep architectures and Restricted-Bolzmann-
  • Связь плотности вероятности и энергии
  • Задача обучения с точки минимизации энергии сети
  • Интуитивные соображения
  • Slide 96
  • Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decom
  • Sparse linear reconstruction
  • Автоэнкодер (auto encoder)
  • Архитекттура ICA моделей
  • Итеративные алгоритмы с оптимальным разреженным кодированием 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)
Page 93: !Predictive analytics part_2

Интуитивные соображения

Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decomposition LISTA ndashметоды использующие разреженные коды

Латентная переменная Z =argmin_z Distance[Decoder(Z)Y]+FactorB(Z)MAPminimaize sum of factors

Sparse linear reconstruction

bull Energy=reconstruction_error+code_prediction_error+code_sparsity

Автоэнкодер (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

bull saednntrain(x y hidden = c(1) activationfun = sigm learningrate = 08 momentum = 05 learningrate_scale = 1 output = sigm sae_output = linear numepochs = 3 batchsize = 100 hidden_dropout = 0 visible_dropout = 0)

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

Архитектура сети SAE

Архитектура с 5Х4 hidden 3 outs

Example

Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02)) Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1)) x lt- matrix(c(Var1 Var2) nrow = 100 ncol = 2)y lt- c(rep(1 50) rep(0 50))

обучение сетиdnn lt- saednntrain(x y hidden = c(5 5))

Анализ обучающего набора данныхgt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370helliphelliphelliphelliphelliphelliphelliphellip

gt y [1] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 [54] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

plot3d(xy)

Параметры SAE сети

gt dnn$input_dim[1] 2$output_dim[1] 1$hidden[1] 5 5$size[1] 2 5 5 1$activationfun[1] sigm$learningrate[1] 08

$momentum[1] 05$learningrate_scale[1] 1$hidden_dropout[1] 0$visible_dropout[1] 0$output[1] sigm$W

Коэффициенты связей

$W$W[[1]] [1] [2][1] -014355854 02471840[2] 011378030 -00715094[3] -004343738 03667468[4] 012756946 -01303379[5] -003445704 02293772

$W[[2]] [1] [2] [3] [4] [5][1] 00420191661 -0023073732 -008762756 0035575714 -0063000016[2] 00072771988 -0131204147 -010591421 0018221305 -0025539769[3] -01071896826 -0019479685 -009892573 -0012976429 -0111886901[4] -00009477304 -0023137518 -002147218 0007969452 -0118696306[5] 00045016013 0001885546 -010170954 -0140312396 -0003970102

$W[[3]] [1] [2] [3] [4] [5][1] 01027992 -007288099 003051227 -001731639 0009518049

$vW$vW[[1]] [1] [2][1] -8335203e-06 1368580e-05[2] -6530183e-05 1135070e-04[3] 2544302e-05 -3947111e-05[4] -5512835e-06 9541682e-06[5] 3822854e-05 -6281762e-05

$vW[[2]] [1] [2] [3] [4] [5][1] 4172450e-04 -2554411e-04 4896670e-04 -3526093e-04 3041932e-04[2] -3210759e-04 1978412e-04 -3769148e-04 2727933e-04 -2338477e-04[3] 1058770e-04 -6705336e-05 1244419e-04 -9201508e-05 7678296e-05[4] -8894178e-05 5481668e-05 -1044110e-04 7558269e-05 -6477571e-05[5] 2676520e-05 -1622289e-05 3139684e-05 -2243174e-05 1954349e-05

$vW[[3]] [1] [2] [3] [4] [5][1] -0002603034 -0002398256 -0003274074 -0002542478 -000209672

Предсказание обученной сетью

predict by dnntest_Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02))test_Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1))test_x lt- matrix(c(test_Var1 test_Var2) nrow = 100 ncol = 2)nntest(dnn test_x y)

[1] 025 Value error rate

Сравнение обучающей и тестовой выборки

gttest_x [1] [2] [1] 091887443 -08940890 [2] 115219448 -06050481 [3] 069917981 -08524551 [4] 028213787 -08146816 [5] 098405598 -11440813 [6] 185911887 -08203652 [7] 010843056 -10123789 [8] 083827953 -07594760 [9] -016373562 -09087116 [10] 088298748 -09767741 [11] 005280917 -07525407

gt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370

Plot3d(test_xy) Plot3d(xy)

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)

Подготовка к обработке

starting installationstep1installpackages(devtools)library(devtools)install_github(repo = mnist username = xrobin ref = master)library(mnist)

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
  • Аппроксимация линейными многообразиями (подпространствами)
  • Slide 30
  • Алгоритм
  • princomp(formula data = NULL subset naaction )
  • Principal Component Analysis (PCA)
  • Линейный дискриминантный анализ (Linear Discriminant Analysis -
  • Решение
  • lda(x grouping prior = proportions tol = 10e-4 method
  • Slide 37
  • Linear Discriminant Analysis (LDA)
  • Сравнение PCA и LDA
  • Метод опорных векторов (Support Vector Machines - SVM)
  • Идея алгоритма
  • Иллюстрация на простейшем примере
  • Линейная неразделимость и использование ядер
  • Иллюстрация использования ядра для отображения 2D -gt 3D
  • svm((formula data = NULL subset naaction = naomit sc
  • Support Vector Machines
  • Глубокое обучение (Deep Learning)
  • laquoВ 1997 году Deep Blue обыграл в шахматы Каспарова В 2011 Wats
  • Распознавание основано на feature detection и последующем раз
  • Распознавание рукописных цифр
  • Еще пример посложнее
  • Использование нейронной сети с обучением
  • Сверхвысокая размерность при работе с первичным представлением
  • Пиксельное кодирование
  • Принцип иерархии понятий ndash основа deep learning
  • Разреженное (sparse) кодирование
  • Словарь для лиц
  • Slide 58
  • Выделение объектов заданного класса
  • Основные архитектуры Deep Learning
  • Задача классификации распознавания и подобные являются задачей
  • Фактор - графы
  • Slide 63
  • Slide 64
  • Подход разреженного кодирования
  • Обобщенная архитектура
  • Slide 67
  • Slide 68
  • Slide 69
  • В действительности работают любые архитектуры построения функц
  • Machine Learning with Torch7 (httpcodecogbitscomwikidoku
  • Torch 7 является расширением Lua
  • Slide 73
  • Slide 74
  • Сверточные (convolution) нейронные сети
  • Свертка и архитектура 4-х уровневой сверточной сети
  • Функциональная структура
  • Примеры успешного применения сверточных сетей
  • Диагностика эпилепсии по ЭЭГ
  • Реализация сверточной сетью
  • Одна из самых больших сверточных сетей
  • Пример тэгирования
  • Пример поиска похожих по изображению
  • Пример поиска в коллекции изображений по текстовому запросу
  • Пример laquoоблачногоraquo классификатора изображений
  • Slide 86
  • Самообучающиеся нейронные сети на основе минимизации функции эн
  • RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцман
  • Алгоритм обучения Contrastive Divergence (CD)
  • Основные уравнения адаптации
  • Алгоритм Хинтона - Contrastive Divergence (CD-k)
  • darch Package for deep architectures and Restricted-Bolzmann-
  • Связь плотности вероятности и энергии
  • Задача обучения с точки минимизации энергии сети
  • Интуитивные соображения
  • Slide 96
  • Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decom
  • Sparse linear reconstruction
  • Автоэнкодер (auto encoder)
  • Архитекттура ICA моделей
  • Итеративные алгоритмы с оптимальным разреженным кодированием 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)
Page 94: !Predictive analytics part_2

Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decomposition LISTA ndashметоды использующие разреженные коды

Латентная переменная Z =argmin_z Distance[Decoder(Z)Y]+FactorB(Z)MAPminimaize sum of factors

Sparse linear reconstruction

bull Energy=reconstruction_error+code_prediction_error+code_sparsity

Автоэнкодер (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

bull saednntrain(x y hidden = c(1) activationfun = sigm learningrate = 08 momentum = 05 learningrate_scale = 1 output = sigm sae_output = linear numepochs = 3 batchsize = 100 hidden_dropout = 0 visible_dropout = 0)

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

Архитектура сети SAE

Архитектура с 5Х4 hidden 3 outs

Example

Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02)) Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1)) x lt- matrix(c(Var1 Var2) nrow = 100 ncol = 2)y lt- c(rep(1 50) rep(0 50))

обучение сетиdnn lt- saednntrain(x y hidden = c(5 5))

Анализ обучающего набора данныхgt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370helliphelliphelliphelliphelliphelliphelliphellip

gt y [1] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 [54] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

plot3d(xy)

Параметры SAE сети

gt dnn$input_dim[1] 2$output_dim[1] 1$hidden[1] 5 5$size[1] 2 5 5 1$activationfun[1] sigm$learningrate[1] 08

$momentum[1] 05$learningrate_scale[1] 1$hidden_dropout[1] 0$visible_dropout[1] 0$output[1] sigm$W

Коэффициенты связей

$W$W[[1]] [1] [2][1] -014355854 02471840[2] 011378030 -00715094[3] -004343738 03667468[4] 012756946 -01303379[5] -003445704 02293772

$W[[2]] [1] [2] [3] [4] [5][1] 00420191661 -0023073732 -008762756 0035575714 -0063000016[2] 00072771988 -0131204147 -010591421 0018221305 -0025539769[3] -01071896826 -0019479685 -009892573 -0012976429 -0111886901[4] -00009477304 -0023137518 -002147218 0007969452 -0118696306[5] 00045016013 0001885546 -010170954 -0140312396 -0003970102

$W[[3]] [1] [2] [3] [4] [5][1] 01027992 -007288099 003051227 -001731639 0009518049

$vW$vW[[1]] [1] [2][1] -8335203e-06 1368580e-05[2] -6530183e-05 1135070e-04[3] 2544302e-05 -3947111e-05[4] -5512835e-06 9541682e-06[5] 3822854e-05 -6281762e-05

$vW[[2]] [1] [2] [3] [4] [5][1] 4172450e-04 -2554411e-04 4896670e-04 -3526093e-04 3041932e-04[2] -3210759e-04 1978412e-04 -3769148e-04 2727933e-04 -2338477e-04[3] 1058770e-04 -6705336e-05 1244419e-04 -9201508e-05 7678296e-05[4] -8894178e-05 5481668e-05 -1044110e-04 7558269e-05 -6477571e-05[5] 2676520e-05 -1622289e-05 3139684e-05 -2243174e-05 1954349e-05

$vW[[3]] [1] [2] [3] [4] [5][1] -0002603034 -0002398256 -0003274074 -0002542478 -000209672

Предсказание обученной сетью

predict by dnntest_Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02))test_Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1))test_x lt- matrix(c(test_Var1 test_Var2) nrow = 100 ncol = 2)nntest(dnn test_x y)

[1] 025 Value error rate

Сравнение обучающей и тестовой выборки

gttest_x [1] [2] [1] 091887443 -08940890 [2] 115219448 -06050481 [3] 069917981 -08524551 [4] 028213787 -08146816 [5] 098405598 -11440813 [6] 185911887 -08203652 [7] 010843056 -10123789 [8] 083827953 -07594760 [9] -016373562 -09087116 [10] 088298748 -09767741 [11] 005280917 -07525407

gt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370

Plot3d(test_xy) Plot3d(xy)

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)

Подготовка к обработке

starting installationstep1installpackages(devtools)library(devtools)install_github(repo = mnist username = xrobin ref = master)library(mnist)

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
  • Аппроксимация линейными многообразиями (подпространствами)
  • Slide 30
  • Алгоритм
  • princomp(formula data = NULL subset naaction )
  • Principal Component Analysis (PCA)
  • Линейный дискриминантный анализ (Linear Discriminant Analysis -
  • Решение
  • lda(x grouping prior = proportions tol = 10e-4 method
  • Slide 37
  • Linear Discriminant Analysis (LDA)
  • Сравнение PCA и LDA
  • Метод опорных векторов (Support Vector Machines - SVM)
  • Идея алгоритма
  • Иллюстрация на простейшем примере
  • Линейная неразделимость и использование ядер
  • Иллюстрация использования ядра для отображения 2D -gt 3D
  • svm((formula data = NULL subset naaction = naomit sc
  • Support Vector Machines
  • Глубокое обучение (Deep Learning)
  • laquoВ 1997 году Deep Blue обыграл в шахматы Каспарова В 2011 Wats
  • Распознавание основано на feature detection и последующем раз
  • Распознавание рукописных цифр
  • Еще пример посложнее
  • Использование нейронной сети с обучением
  • Сверхвысокая размерность при работе с первичным представлением
  • Пиксельное кодирование
  • Принцип иерархии понятий ndash основа deep learning
  • Разреженное (sparse) кодирование
  • Словарь для лиц
  • Slide 58
  • Выделение объектов заданного класса
  • Основные архитектуры Deep Learning
  • Задача классификации распознавания и подобные являются задачей
  • Фактор - графы
  • Slide 63
  • Slide 64
  • Подход разреженного кодирования
  • Обобщенная архитектура
  • Slide 67
  • Slide 68
  • Slide 69
  • В действительности работают любые архитектуры построения функц
  • Machine Learning with Torch7 (httpcodecogbitscomwikidoku
  • Torch 7 является расширением Lua
  • Slide 73
  • Slide 74
  • Сверточные (convolution) нейронные сети
  • Свертка и архитектура 4-х уровневой сверточной сети
  • Функциональная структура
  • Примеры успешного применения сверточных сетей
  • Диагностика эпилепсии по ЭЭГ
  • Реализация сверточной сетью
  • Одна из самых больших сверточных сетей
  • Пример тэгирования
  • Пример поиска похожих по изображению
  • Пример поиска в коллекции изображений по текстовому запросу
  • Пример laquoоблачногоraquo классификатора изображений
  • Slide 86
  • Самообучающиеся нейронные сети на основе минимизации функции эн
  • RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцман
  • Алгоритм обучения Contrastive Divergence (CD)
  • Основные уравнения адаптации
  • Алгоритм Хинтона - Contrastive Divergence (CD-k)
  • darch Package for deep architectures and Restricted-Bolzmann-
  • Связь плотности вероятности и энергии
  • Задача обучения с точки минимизации энергии сети
  • Интуитивные соображения
  • Slide 96
  • Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decom
  • Sparse linear reconstruction
  • Автоэнкодер (auto encoder)
  • Архитекттура ICA моделей
  • Итеративные алгоритмы с оптимальным разреженным кодированием 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)
Page 95: !Predictive analytics part_2

Sparse linear reconstruction

bull Energy=reconstruction_error+code_prediction_error+code_sparsity

Автоэнкодер (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

bull saednntrain(x y hidden = c(1) activationfun = sigm learningrate = 08 momentum = 05 learningrate_scale = 1 output = sigm sae_output = linear numepochs = 3 batchsize = 100 hidden_dropout = 0 visible_dropout = 0)

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

Архитектура сети SAE

Архитектура с 5Х4 hidden 3 outs

Example

Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02)) Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1)) x lt- matrix(c(Var1 Var2) nrow = 100 ncol = 2)y lt- c(rep(1 50) rep(0 50))

обучение сетиdnn lt- saednntrain(x y hidden = c(5 5))

Анализ обучающего набора данныхgt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370helliphelliphelliphelliphelliphelliphelliphellip

gt y [1] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 [54] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

plot3d(xy)

Параметры SAE сети

gt dnn$input_dim[1] 2$output_dim[1] 1$hidden[1] 5 5$size[1] 2 5 5 1$activationfun[1] sigm$learningrate[1] 08

$momentum[1] 05$learningrate_scale[1] 1$hidden_dropout[1] 0$visible_dropout[1] 0$output[1] sigm$W

Коэффициенты связей

$W$W[[1]] [1] [2][1] -014355854 02471840[2] 011378030 -00715094[3] -004343738 03667468[4] 012756946 -01303379[5] -003445704 02293772

$W[[2]] [1] [2] [3] [4] [5][1] 00420191661 -0023073732 -008762756 0035575714 -0063000016[2] 00072771988 -0131204147 -010591421 0018221305 -0025539769[3] -01071896826 -0019479685 -009892573 -0012976429 -0111886901[4] -00009477304 -0023137518 -002147218 0007969452 -0118696306[5] 00045016013 0001885546 -010170954 -0140312396 -0003970102

$W[[3]] [1] [2] [3] [4] [5][1] 01027992 -007288099 003051227 -001731639 0009518049

$vW$vW[[1]] [1] [2][1] -8335203e-06 1368580e-05[2] -6530183e-05 1135070e-04[3] 2544302e-05 -3947111e-05[4] -5512835e-06 9541682e-06[5] 3822854e-05 -6281762e-05

$vW[[2]] [1] [2] [3] [4] [5][1] 4172450e-04 -2554411e-04 4896670e-04 -3526093e-04 3041932e-04[2] -3210759e-04 1978412e-04 -3769148e-04 2727933e-04 -2338477e-04[3] 1058770e-04 -6705336e-05 1244419e-04 -9201508e-05 7678296e-05[4] -8894178e-05 5481668e-05 -1044110e-04 7558269e-05 -6477571e-05[5] 2676520e-05 -1622289e-05 3139684e-05 -2243174e-05 1954349e-05

$vW[[3]] [1] [2] [3] [4] [5][1] -0002603034 -0002398256 -0003274074 -0002542478 -000209672

Предсказание обученной сетью

predict by dnntest_Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02))test_Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1))test_x lt- matrix(c(test_Var1 test_Var2) nrow = 100 ncol = 2)nntest(dnn test_x y)

[1] 025 Value error rate

Сравнение обучающей и тестовой выборки

gttest_x [1] [2] [1] 091887443 -08940890 [2] 115219448 -06050481 [3] 069917981 -08524551 [4] 028213787 -08146816 [5] 098405598 -11440813 [6] 185911887 -08203652 [7] 010843056 -10123789 [8] 083827953 -07594760 [9] -016373562 -09087116 [10] 088298748 -09767741 [11] 005280917 -07525407

gt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370

Plot3d(test_xy) Plot3d(xy)

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)

Подготовка к обработке

starting installationstep1installpackages(devtools)library(devtools)install_github(repo = mnist username = xrobin ref = master)library(mnist)

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
  • Аппроксимация линейными многообразиями (подпространствами)
  • Slide 30
  • Алгоритм
  • princomp(formula data = NULL subset naaction )
  • Principal Component Analysis (PCA)
  • Линейный дискриминантный анализ (Linear Discriminant Analysis -
  • Решение
  • lda(x grouping prior = proportions tol = 10e-4 method
  • Slide 37
  • Linear Discriminant Analysis (LDA)
  • Сравнение PCA и LDA
  • Метод опорных векторов (Support Vector Machines - SVM)
  • Идея алгоритма
  • Иллюстрация на простейшем примере
  • Линейная неразделимость и использование ядер
  • Иллюстрация использования ядра для отображения 2D -gt 3D
  • svm((formula data = NULL subset naaction = naomit sc
  • Support Vector Machines
  • Глубокое обучение (Deep Learning)
  • laquoВ 1997 году Deep Blue обыграл в шахматы Каспарова В 2011 Wats
  • Распознавание основано на feature detection и последующем раз
  • Распознавание рукописных цифр
  • Еще пример посложнее
  • Использование нейронной сети с обучением
  • Сверхвысокая размерность при работе с первичным представлением
  • Пиксельное кодирование
  • Принцип иерархии понятий ndash основа deep learning
  • Разреженное (sparse) кодирование
  • Словарь для лиц
  • Slide 58
  • Выделение объектов заданного класса
  • Основные архитектуры Deep Learning
  • Задача классификации распознавания и подобные являются задачей
  • Фактор - графы
  • Slide 63
  • Slide 64
  • Подход разреженного кодирования
  • Обобщенная архитектура
  • Slide 67
  • Slide 68
  • Slide 69
  • В действительности работают любые архитектуры построения функц
  • Machine Learning with Torch7 (httpcodecogbitscomwikidoku
  • Torch 7 является расширением Lua
  • Slide 73
  • Slide 74
  • Сверточные (convolution) нейронные сети
  • Свертка и архитектура 4-х уровневой сверточной сети
  • Функциональная структура
  • Примеры успешного применения сверточных сетей
  • Диагностика эпилепсии по ЭЭГ
  • Реализация сверточной сетью
  • Одна из самых больших сверточных сетей
  • Пример тэгирования
  • Пример поиска похожих по изображению
  • Пример поиска в коллекции изображений по текстовому запросу
  • Пример laquoоблачногоraquo классификатора изображений
  • Slide 86
  • Самообучающиеся нейронные сети на основе минимизации функции эн
  • RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцман
  • Алгоритм обучения Contrastive Divergence (CD)
  • Основные уравнения адаптации
  • Алгоритм Хинтона - Contrastive Divergence (CD-k)
  • darch Package for deep architectures and Restricted-Bolzmann-
  • Связь плотности вероятности и энергии
  • Задача обучения с точки минимизации энергии сети
  • Интуитивные соображения
  • Slide 96
  • Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decom
  • Sparse linear reconstruction
  • Автоэнкодер (auto encoder)
  • Архитекттура ICA моделей
  • Итеративные алгоритмы с оптимальным разреженным кодированием 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)
Page 96: !Predictive analytics part_2

Автоэнкодер (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

bull saednntrain(x y hidden = c(1) activationfun = sigm learningrate = 08 momentum = 05 learningrate_scale = 1 output = sigm sae_output = linear numepochs = 3 batchsize = 100 hidden_dropout = 0 visible_dropout = 0)

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

Архитектура сети SAE

Архитектура с 5Х4 hidden 3 outs

Example

Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02)) Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1)) x lt- matrix(c(Var1 Var2) nrow = 100 ncol = 2)y lt- c(rep(1 50) rep(0 50))

обучение сетиdnn lt- saednntrain(x y hidden = c(5 5))

Анализ обучающего набора данныхgt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370helliphelliphelliphelliphelliphelliphelliphellip

gt y [1] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 [54] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

plot3d(xy)

Параметры SAE сети

gt dnn$input_dim[1] 2$output_dim[1] 1$hidden[1] 5 5$size[1] 2 5 5 1$activationfun[1] sigm$learningrate[1] 08

$momentum[1] 05$learningrate_scale[1] 1$hidden_dropout[1] 0$visible_dropout[1] 0$output[1] sigm$W

Коэффициенты связей

$W$W[[1]] [1] [2][1] -014355854 02471840[2] 011378030 -00715094[3] -004343738 03667468[4] 012756946 -01303379[5] -003445704 02293772

$W[[2]] [1] [2] [3] [4] [5][1] 00420191661 -0023073732 -008762756 0035575714 -0063000016[2] 00072771988 -0131204147 -010591421 0018221305 -0025539769[3] -01071896826 -0019479685 -009892573 -0012976429 -0111886901[4] -00009477304 -0023137518 -002147218 0007969452 -0118696306[5] 00045016013 0001885546 -010170954 -0140312396 -0003970102

$W[[3]] [1] [2] [3] [4] [5][1] 01027992 -007288099 003051227 -001731639 0009518049

$vW$vW[[1]] [1] [2][1] -8335203e-06 1368580e-05[2] -6530183e-05 1135070e-04[3] 2544302e-05 -3947111e-05[4] -5512835e-06 9541682e-06[5] 3822854e-05 -6281762e-05

$vW[[2]] [1] [2] [3] [4] [5][1] 4172450e-04 -2554411e-04 4896670e-04 -3526093e-04 3041932e-04[2] -3210759e-04 1978412e-04 -3769148e-04 2727933e-04 -2338477e-04[3] 1058770e-04 -6705336e-05 1244419e-04 -9201508e-05 7678296e-05[4] -8894178e-05 5481668e-05 -1044110e-04 7558269e-05 -6477571e-05[5] 2676520e-05 -1622289e-05 3139684e-05 -2243174e-05 1954349e-05

$vW[[3]] [1] [2] [3] [4] [5][1] -0002603034 -0002398256 -0003274074 -0002542478 -000209672

Предсказание обученной сетью

predict by dnntest_Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02))test_Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1))test_x lt- matrix(c(test_Var1 test_Var2) nrow = 100 ncol = 2)nntest(dnn test_x y)

[1] 025 Value error rate

Сравнение обучающей и тестовой выборки

gttest_x [1] [2] [1] 091887443 -08940890 [2] 115219448 -06050481 [3] 069917981 -08524551 [4] 028213787 -08146816 [5] 098405598 -11440813 [6] 185911887 -08203652 [7] 010843056 -10123789 [8] 083827953 -07594760 [9] -016373562 -09087116 [10] 088298748 -09767741 [11] 005280917 -07525407

gt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370

Plot3d(test_xy) Plot3d(xy)

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)

Подготовка к обработке

starting installationstep1installpackages(devtools)library(devtools)install_github(repo = mnist username = xrobin ref = master)library(mnist)

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
  • Аппроксимация линейными многообразиями (подпространствами)
  • Slide 30
  • Алгоритм
  • princomp(formula data = NULL subset naaction )
  • Principal Component Analysis (PCA)
  • Линейный дискриминантный анализ (Linear Discriminant Analysis -
  • Решение
  • lda(x grouping prior = proportions tol = 10e-4 method
  • Slide 37
  • Linear Discriminant Analysis (LDA)
  • Сравнение PCA и LDA
  • Метод опорных векторов (Support Vector Machines - SVM)
  • Идея алгоритма
  • Иллюстрация на простейшем примере
  • Линейная неразделимость и использование ядер
  • Иллюстрация использования ядра для отображения 2D -gt 3D
  • svm((formula data = NULL subset naaction = naomit sc
  • Support Vector Machines
  • Глубокое обучение (Deep Learning)
  • laquoВ 1997 году Deep Blue обыграл в шахматы Каспарова В 2011 Wats
  • Распознавание основано на feature detection и последующем раз
  • Распознавание рукописных цифр
  • Еще пример посложнее
  • Использование нейронной сети с обучением
  • Сверхвысокая размерность при работе с первичным представлением
  • Пиксельное кодирование
  • Принцип иерархии понятий ndash основа deep learning
  • Разреженное (sparse) кодирование
  • Словарь для лиц
  • Slide 58
  • Выделение объектов заданного класса
  • Основные архитектуры Deep Learning
  • Задача классификации распознавания и подобные являются задачей
  • Фактор - графы
  • Slide 63
  • Slide 64
  • Подход разреженного кодирования
  • Обобщенная архитектура
  • Slide 67
  • Slide 68
  • Slide 69
  • В действительности работают любые архитектуры построения функц
  • Machine Learning with Torch7 (httpcodecogbitscomwikidoku
  • Torch 7 является расширением Lua
  • Slide 73
  • Slide 74
  • Сверточные (convolution) нейронные сети
  • Свертка и архитектура 4-х уровневой сверточной сети
  • Функциональная структура
  • Примеры успешного применения сверточных сетей
  • Диагностика эпилепсии по ЭЭГ
  • Реализация сверточной сетью
  • Одна из самых больших сверточных сетей
  • Пример тэгирования
  • Пример поиска похожих по изображению
  • Пример поиска в коллекции изображений по текстовому запросу
  • Пример laquoоблачногоraquo классификатора изображений
  • Slide 86
  • Самообучающиеся нейронные сети на основе минимизации функции эн
  • RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцман
  • Алгоритм обучения Contrastive Divergence (CD)
  • Основные уравнения адаптации
  • Алгоритм Хинтона - Contrastive Divergence (CD-k)
  • darch Package for deep architectures and Restricted-Bolzmann-
  • Связь плотности вероятности и энергии
  • Задача обучения с точки минимизации энергии сети
  • Интуитивные соображения
  • Slide 96
  • Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decom
  • Sparse linear reconstruction
  • Автоэнкодер (auto encoder)
  • Архитекттура ICA моделей
  • Итеративные алгоритмы с оптимальным разреженным кодированием 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)
Page 97: !Predictive analytics part_2

Архитекттура 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

bull saednntrain(x y hidden = c(1) activationfun = sigm learningrate = 08 momentum = 05 learningrate_scale = 1 output = sigm sae_output = linear numepochs = 3 batchsize = 100 hidden_dropout = 0 visible_dropout = 0)

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

Архитектура сети SAE

Архитектура с 5Х4 hidden 3 outs

Example

Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02)) Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1)) x lt- matrix(c(Var1 Var2) nrow = 100 ncol = 2)y lt- c(rep(1 50) rep(0 50))

обучение сетиdnn lt- saednntrain(x y hidden = c(5 5))

Анализ обучающего набора данныхgt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370helliphelliphelliphelliphelliphelliphelliphellip

gt y [1] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 [54] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

plot3d(xy)

Параметры SAE сети

gt dnn$input_dim[1] 2$output_dim[1] 1$hidden[1] 5 5$size[1] 2 5 5 1$activationfun[1] sigm$learningrate[1] 08

$momentum[1] 05$learningrate_scale[1] 1$hidden_dropout[1] 0$visible_dropout[1] 0$output[1] sigm$W

Коэффициенты связей

$W$W[[1]] [1] [2][1] -014355854 02471840[2] 011378030 -00715094[3] -004343738 03667468[4] 012756946 -01303379[5] -003445704 02293772

$W[[2]] [1] [2] [3] [4] [5][1] 00420191661 -0023073732 -008762756 0035575714 -0063000016[2] 00072771988 -0131204147 -010591421 0018221305 -0025539769[3] -01071896826 -0019479685 -009892573 -0012976429 -0111886901[4] -00009477304 -0023137518 -002147218 0007969452 -0118696306[5] 00045016013 0001885546 -010170954 -0140312396 -0003970102

$W[[3]] [1] [2] [3] [4] [5][1] 01027992 -007288099 003051227 -001731639 0009518049

$vW$vW[[1]] [1] [2][1] -8335203e-06 1368580e-05[2] -6530183e-05 1135070e-04[3] 2544302e-05 -3947111e-05[4] -5512835e-06 9541682e-06[5] 3822854e-05 -6281762e-05

$vW[[2]] [1] [2] [3] [4] [5][1] 4172450e-04 -2554411e-04 4896670e-04 -3526093e-04 3041932e-04[2] -3210759e-04 1978412e-04 -3769148e-04 2727933e-04 -2338477e-04[3] 1058770e-04 -6705336e-05 1244419e-04 -9201508e-05 7678296e-05[4] -8894178e-05 5481668e-05 -1044110e-04 7558269e-05 -6477571e-05[5] 2676520e-05 -1622289e-05 3139684e-05 -2243174e-05 1954349e-05

$vW[[3]] [1] [2] [3] [4] [5][1] -0002603034 -0002398256 -0003274074 -0002542478 -000209672

Предсказание обученной сетью

predict by dnntest_Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02))test_Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1))test_x lt- matrix(c(test_Var1 test_Var2) nrow = 100 ncol = 2)nntest(dnn test_x y)

[1] 025 Value error rate

Сравнение обучающей и тестовой выборки

gttest_x [1] [2] [1] 091887443 -08940890 [2] 115219448 -06050481 [3] 069917981 -08524551 [4] 028213787 -08146816 [5] 098405598 -11440813 [6] 185911887 -08203652 [7] 010843056 -10123789 [8] 083827953 -07594760 [9] -016373562 -09087116 [10] 088298748 -09767741 [11] 005280917 -07525407

gt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370

Plot3d(test_xy) Plot3d(xy)

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)

Подготовка к обработке

starting installationstep1installpackages(devtools)library(devtools)install_github(repo = mnist username = xrobin ref = master)library(mnist)

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
  • Аппроксимация линейными многообразиями (подпространствами)
  • Slide 30
  • Алгоритм
  • princomp(formula data = NULL subset naaction )
  • Principal Component Analysis (PCA)
  • Линейный дискриминантный анализ (Linear Discriminant Analysis -
  • Решение
  • lda(x grouping prior = proportions tol = 10e-4 method
  • Slide 37
  • Linear Discriminant Analysis (LDA)
  • Сравнение PCA и LDA
  • Метод опорных векторов (Support Vector Machines - SVM)
  • Идея алгоритма
  • Иллюстрация на простейшем примере
  • Линейная неразделимость и использование ядер
  • Иллюстрация использования ядра для отображения 2D -gt 3D
  • svm((formula data = NULL subset naaction = naomit sc
  • Support Vector Machines
  • Глубокое обучение (Deep Learning)
  • laquoВ 1997 году Deep Blue обыграл в шахматы Каспарова В 2011 Wats
  • Распознавание основано на feature detection и последующем раз
  • Распознавание рукописных цифр
  • Еще пример посложнее
  • Использование нейронной сети с обучением
  • Сверхвысокая размерность при работе с первичным представлением
  • Пиксельное кодирование
  • Принцип иерархии понятий ndash основа deep learning
  • Разреженное (sparse) кодирование
  • Словарь для лиц
  • Slide 58
  • Выделение объектов заданного класса
  • Основные архитектуры Deep Learning
  • Задача классификации распознавания и подобные являются задачей
  • Фактор - графы
  • Slide 63
  • Slide 64
  • Подход разреженного кодирования
  • Обобщенная архитектура
  • Slide 67
  • Slide 68
  • Slide 69
  • В действительности работают любые архитектуры построения функц
  • Machine Learning with Torch7 (httpcodecogbitscomwikidoku
  • Torch 7 является расширением Lua
  • Slide 73
  • Slide 74
  • Сверточные (convolution) нейронные сети
  • Свертка и архитектура 4-х уровневой сверточной сети
  • Функциональная структура
  • Примеры успешного применения сверточных сетей
  • Диагностика эпилепсии по ЭЭГ
  • Реализация сверточной сетью
  • Одна из самых больших сверточных сетей
  • Пример тэгирования
  • Пример поиска похожих по изображению
  • Пример поиска в коллекции изображений по текстовому запросу
  • Пример laquoоблачногоraquo классификатора изображений
  • Slide 86
  • Самообучающиеся нейронные сети на основе минимизации функции эн
  • RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцман
  • Алгоритм обучения Contrastive Divergence (CD)
  • Основные уравнения адаптации
  • Алгоритм Хинтона - Contrastive Divergence (CD-k)
  • darch Package for deep architectures and Restricted-Bolzmann-
  • Связь плотности вероятности и энергии
  • Задача обучения с точки минимизации энергии сети
  • Интуитивные соображения
  • Slide 96
  • Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decom
  • Sparse linear reconstruction
  • Автоэнкодер (auto encoder)
  • Архитекттура ICA моделей
  • Итеративные алгоритмы с оптимальным разреженным кодированием 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)
Page 98: !Predictive analytics part_2

Итеративные алгоритмы с оптимальным разреженным кодированием 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

bull saednntrain(x y hidden = c(1) activationfun = sigm learningrate = 08 momentum = 05 learningrate_scale = 1 output = sigm sae_output = linear numepochs = 3 batchsize = 100 hidden_dropout = 0 visible_dropout = 0)

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

Архитектура сети SAE

Архитектура с 5Х4 hidden 3 outs

Example

Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02)) Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1)) x lt- matrix(c(Var1 Var2) nrow = 100 ncol = 2)y lt- c(rep(1 50) rep(0 50))

обучение сетиdnn lt- saednntrain(x y hidden = c(5 5))

Анализ обучающего набора данныхgt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370helliphelliphelliphelliphelliphelliphelliphellip

gt y [1] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 [54] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

plot3d(xy)

Параметры SAE сети

gt dnn$input_dim[1] 2$output_dim[1] 1$hidden[1] 5 5$size[1] 2 5 5 1$activationfun[1] sigm$learningrate[1] 08

$momentum[1] 05$learningrate_scale[1] 1$hidden_dropout[1] 0$visible_dropout[1] 0$output[1] sigm$W

Коэффициенты связей

$W$W[[1]] [1] [2][1] -014355854 02471840[2] 011378030 -00715094[3] -004343738 03667468[4] 012756946 -01303379[5] -003445704 02293772

$W[[2]] [1] [2] [3] [4] [5][1] 00420191661 -0023073732 -008762756 0035575714 -0063000016[2] 00072771988 -0131204147 -010591421 0018221305 -0025539769[3] -01071896826 -0019479685 -009892573 -0012976429 -0111886901[4] -00009477304 -0023137518 -002147218 0007969452 -0118696306[5] 00045016013 0001885546 -010170954 -0140312396 -0003970102

$W[[3]] [1] [2] [3] [4] [5][1] 01027992 -007288099 003051227 -001731639 0009518049

$vW$vW[[1]] [1] [2][1] -8335203e-06 1368580e-05[2] -6530183e-05 1135070e-04[3] 2544302e-05 -3947111e-05[4] -5512835e-06 9541682e-06[5] 3822854e-05 -6281762e-05

$vW[[2]] [1] [2] [3] [4] [5][1] 4172450e-04 -2554411e-04 4896670e-04 -3526093e-04 3041932e-04[2] -3210759e-04 1978412e-04 -3769148e-04 2727933e-04 -2338477e-04[3] 1058770e-04 -6705336e-05 1244419e-04 -9201508e-05 7678296e-05[4] -8894178e-05 5481668e-05 -1044110e-04 7558269e-05 -6477571e-05[5] 2676520e-05 -1622289e-05 3139684e-05 -2243174e-05 1954349e-05

$vW[[3]] [1] [2] [3] [4] [5][1] -0002603034 -0002398256 -0003274074 -0002542478 -000209672

Предсказание обученной сетью

predict by dnntest_Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02))test_Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1))test_x lt- matrix(c(test_Var1 test_Var2) nrow = 100 ncol = 2)nntest(dnn test_x y)

[1] 025 Value error rate

Сравнение обучающей и тестовой выборки

gttest_x [1] [2] [1] 091887443 -08940890 [2] 115219448 -06050481 [3] 069917981 -08524551 [4] 028213787 -08146816 [5] 098405598 -11440813 [6] 185911887 -08203652 [7] 010843056 -10123789 [8] 083827953 -07594760 [9] -016373562 -09087116 [10] 088298748 -09767741 [11] 005280917 -07525407

gt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370

Plot3d(test_xy) Plot3d(xy)

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)

Подготовка к обработке

starting installationstep1installpackages(devtools)library(devtools)install_github(repo = mnist username = xrobin ref = master)library(mnist)

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
  • Аппроксимация линейными многообразиями (подпространствами)
  • Slide 30
  • Алгоритм
  • princomp(formula data = NULL subset naaction )
  • Principal Component Analysis (PCA)
  • Линейный дискриминантный анализ (Linear Discriminant Analysis -
  • Решение
  • lda(x grouping prior = proportions tol = 10e-4 method
  • Slide 37
  • Linear Discriminant Analysis (LDA)
  • Сравнение PCA и LDA
  • Метод опорных векторов (Support Vector Machines - SVM)
  • Идея алгоритма
  • Иллюстрация на простейшем примере
  • Линейная неразделимость и использование ядер
  • Иллюстрация использования ядра для отображения 2D -gt 3D
  • svm((formula data = NULL subset naaction = naomit sc
  • Support Vector Machines
  • Глубокое обучение (Deep Learning)
  • laquoВ 1997 году Deep Blue обыграл в шахматы Каспарова В 2011 Wats
  • Распознавание основано на feature detection и последующем раз
  • Распознавание рукописных цифр
  • Еще пример посложнее
  • Использование нейронной сети с обучением
  • Сверхвысокая размерность при работе с первичным представлением
  • Пиксельное кодирование
  • Принцип иерархии понятий ndash основа deep learning
  • Разреженное (sparse) кодирование
  • Словарь для лиц
  • Slide 58
  • Выделение объектов заданного класса
  • Основные архитектуры Deep Learning
  • Задача классификации распознавания и подобные являются задачей
  • Фактор - графы
  • Slide 63
  • Slide 64
  • Подход разреженного кодирования
  • Обобщенная архитектура
  • Slide 67
  • Slide 68
  • Slide 69
  • В действительности работают любые архитектуры построения функц
  • Machine Learning with Torch7 (httpcodecogbitscomwikidoku
  • Torch 7 является расширением Lua
  • Slide 73
  • Slide 74
  • Сверточные (convolution) нейронные сети
  • Свертка и архитектура 4-х уровневой сверточной сети
  • Функциональная структура
  • Примеры успешного применения сверточных сетей
  • Диагностика эпилепсии по ЭЭГ
  • Реализация сверточной сетью
  • Одна из самых больших сверточных сетей
  • Пример тэгирования
  • Пример поиска похожих по изображению
  • Пример поиска в коллекции изображений по текстовому запросу
  • Пример laquoоблачногоraquo классификатора изображений
  • Slide 86
  • Самообучающиеся нейронные сети на основе минимизации функции эн
  • RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцман
  • Алгоритм обучения Contrastive Divergence (CD)
  • Основные уравнения адаптации
  • Алгоритм Хинтона - Contrastive Divergence (CD-k)
  • darch Package for deep architectures and Restricted-Bolzmann-
  • Связь плотности вероятности и энергии
  • Задача обучения с точки минимизации энергии сети
  • Интуитивные соображения
  • Slide 96
  • Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decom
  • Sparse linear reconstruction
  • Автоэнкодер (auto encoder)
  • Архитекттура ICA моделей
  • Итеративные алгоритмы с оптимальным разреженным кодированием 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)
Page 99: !Predictive analytics part_2

Самоорганизация данных методами 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

bull saednntrain(x y hidden = c(1) activationfun = sigm learningrate = 08 momentum = 05 learningrate_scale = 1 output = sigm sae_output = linear numepochs = 3 batchsize = 100 hidden_dropout = 0 visible_dropout = 0)

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

Архитектура сети SAE

Архитектура с 5Х4 hidden 3 outs

Example

Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02)) Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1)) x lt- matrix(c(Var1 Var2) nrow = 100 ncol = 2)y lt- c(rep(1 50) rep(0 50))

обучение сетиdnn lt- saednntrain(x y hidden = c(5 5))

Анализ обучающего набора данныхgt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370helliphelliphelliphelliphelliphelliphelliphellip

gt y [1] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 [54] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

plot3d(xy)

Параметры SAE сети

gt dnn$input_dim[1] 2$output_dim[1] 1$hidden[1] 5 5$size[1] 2 5 5 1$activationfun[1] sigm$learningrate[1] 08

$momentum[1] 05$learningrate_scale[1] 1$hidden_dropout[1] 0$visible_dropout[1] 0$output[1] sigm$W

Коэффициенты связей

$W$W[[1]] [1] [2][1] -014355854 02471840[2] 011378030 -00715094[3] -004343738 03667468[4] 012756946 -01303379[5] -003445704 02293772

$W[[2]] [1] [2] [3] [4] [5][1] 00420191661 -0023073732 -008762756 0035575714 -0063000016[2] 00072771988 -0131204147 -010591421 0018221305 -0025539769[3] -01071896826 -0019479685 -009892573 -0012976429 -0111886901[4] -00009477304 -0023137518 -002147218 0007969452 -0118696306[5] 00045016013 0001885546 -010170954 -0140312396 -0003970102

$W[[3]] [1] [2] [3] [4] [5][1] 01027992 -007288099 003051227 -001731639 0009518049

$vW$vW[[1]] [1] [2][1] -8335203e-06 1368580e-05[2] -6530183e-05 1135070e-04[3] 2544302e-05 -3947111e-05[4] -5512835e-06 9541682e-06[5] 3822854e-05 -6281762e-05

$vW[[2]] [1] [2] [3] [4] [5][1] 4172450e-04 -2554411e-04 4896670e-04 -3526093e-04 3041932e-04[2] -3210759e-04 1978412e-04 -3769148e-04 2727933e-04 -2338477e-04[3] 1058770e-04 -6705336e-05 1244419e-04 -9201508e-05 7678296e-05[4] -8894178e-05 5481668e-05 -1044110e-04 7558269e-05 -6477571e-05[5] 2676520e-05 -1622289e-05 3139684e-05 -2243174e-05 1954349e-05

$vW[[3]] [1] [2] [3] [4] [5][1] -0002603034 -0002398256 -0003274074 -0002542478 -000209672

Предсказание обученной сетью

predict by dnntest_Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02))test_Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1))test_x lt- matrix(c(test_Var1 test_Var2) nrow = 100 ncol = 2)nntest(dnn test_x y)

[1] 025 Value error rate

Сравнение обучающей и тестовой выборки

gttest_x [1] [2] [1] 091887443 -08940890 [2] 115219448 -06050481 [3] 069917981 -08524551 [4] 028213787 -08146816 [5] 098405598 -11440813 [6] 185911887 -08203652 [7] 010843056 -10123789 [8] 083827953 -07594760 [9] -016373562 -09087116 [10] 088298748 -09767741 [11] 005280917 -07525407

gt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370

Plot3d(test_xy) Plot3d(xy)

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)

Подготовка к обработке

starting installationstep1installpackages(devtools)library(devtools)install_github(repo = mnist username = xrobin ref = master)library(mnist)

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
  • Аппроксимация линейными многообразиями (подпространствами)
  • Slide 30
  • Алгоритм
  • princomp(formula data = NULL subset naaction )
  • Principal Component Analysis (PCA)
  • Линейный дискриминантный анализ (Linear Discriminant Analysis -
  • Решение
  • lda(x grouping prior = proportions tol = 10e-4 method
  • Slide 37
  • Linear Discriminant Analysis (LDA)
  • Сравнение PCA и LDA
  • Метод опорных векторов (Support Vector Machines - SVM)
  • Идея алгоритма
  • Иллюстрация на простейшем примере
  • Линейная неразделимость и использование ядер
  • Иллюстрация использования ядра для отображения 2D -gt 3D
  • svm((formula data = NULL subset naaction = naomit sc
  • Support Vector Machines
  • Глубокое обучение (Deep Learning)
  • laquoВ 1997 году Deep Blue обыграл в шахматы Каспарова В 2011 Wats
  • Распознавание основано на feature detection и последующем раз
  • Распознавание рукописных цифр
  • Еще пример посложнее
  • Использование нейронной сети с обучением
  • Сверхвысокая размерность при работе с первичным представлением
  • Пиксельное кодирование
  • Принцип иерархии понятий ndash основа deep learning
  • Разреженное (sparse) кодирование
  • Словарь для лиц
  • Slide 58
  • Выделение объектов заданного класса
  • Основные архитектуры Deep Learning
  • Задача классификации распознавания и подобные являются задачей
  • Фактор - графы
  • Slide 63
  • Slide 64
  • Подход разреженного кодирования
  • Обобщенная архитектура
  • Slide 67
  • Slide 68
  • Slide 69
  • В действительности работают любые архитектуры построения функц
  • Machine Learning with Torch7 (httpcodecogbitscomwikidoku
  • Torch 7 является расширением Lua
  • Slide 73
  • Slide 74
  • Сверточные (convolution) нейронные сети
  • Свертка и архитектура 4-х уровневой сверточной сети
  • Функциональная структура
  • Примеры успешного применения сверточных сетей
  • Диагностика эпилепсии по ЭЭГ
  • Реализация сверточной сетью
  • Одна из самых больших сверточных сетей
  • Пример тэгирования
  • Пример поиска похожих по изображению
  • Пример поиска в коллекции изображений по текстовому запросу
  • Пример laquoоблачногоraquo классификатора изображений
  • Slide 86
  • Самообучающиеся нейронные сети на основе минимизации функции эн
  • RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцман
  • Алгоритм обучения Contrastive Divergence (CD)
  • Основные уравнения адаптации
  • Алгоритм Хинтона - Contrastive Divergence (CD-k)
  • darch Package for deep architectures and Restricted-Bolzmann-
  • Связь плотности вероятности и энергии
  • Задача обучения с точки минимизации энергии сети
  • Интуитивные соображения
  • Slide 96
  • Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decom
  • Sparse linear reconstruction
  • Автоэнкодер (auto encoder)
  • Архитекттура ICA моделей
  • Итеративные алгоритмы с оптимальным разреженным кодированием 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)
Page 100: !Predictive analytics part_2

Знакомство с пакетом 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

bull saednntrain(x y hidden = c(1) activationfun = sigm learningrate = 08 momentum = 05 learningrate_scale = 1 output = sigm sae_output = linear numepochs = 3 batchsize = 100 hidden_dropout = 0 visible_dropout = 0)

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

Архитектура сети SAE

Архитектура с 5Х4 hidden 3 outs

Example

Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02)) Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1)) x lt- matrix(c(Var1 Var2) nrow = 100 ncol = 2)y lt- c(rep(1 50) rep(0 50))

обучение сетиdnn lt- saednntrain(x y hidden = c(5 5))

Анализ обучающего набора данныхgt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370helliphelliphelliphelliphelliphelliphelliphellip

gt y [1] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 [54] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

plot3d(xy)

Параметры SAE сети

gt dnn$input_dim[1] 2$output_dim[1] 1$hidden[1] 5 5$size[1] 2 5 5 1$activationfun[1] sigm$learningrate[1] 08

$momentum[1] 05$learningrate_scale[1] 1$hidden_dropout[1] 0$visible_dropout[1] 0$output[1] sigm$W

Коэффициенты связей

$W$W[[1]] [1] [2][1] -014355854 02471840[2] 011378030 -00715094[3] -004343738 03667468[4] 012756946 -01303379[5] -003445704 02293772

$W[[2]] [1] [2] [3] [4] [5][1] 00420191661 -0023073732 -008762756 0035575714 -0063000016[2] 00072771988 -0131204147 -010591421 0018221305 -0025539769[3] -01071896826 -0019479685 -009892573 -0012976429 -0111886901[4] -00009477304 -0023137518 -002147218 0007969452 -0118696306[5] 00045016013 0001885546 -010170954 -0140312396 -0003970102

$W[[3]] [1] [2] [3] [4] [5][1] 01027992 -007288099 003051227 -001731639 0009518049

$vW$vW[[1]] [1] [2][1] -8335203e-06 1368580e-05[2] -6530183e-05 1135070e-04[3] 2544302e-05 -3947111e-05[4] -5512835e-06 9541682e-06[5] 3822854e-05 -6281762e-05

$vW[[2]] [1] [2] [3] [4] [5][1] 4172450e-04 -2554411e-04 4896670e-04 -3526093e-04 3041932e-04[2] -3210759e-04 1978412e-04 -3769148e-04 2727933e-04 -2338477e-04[3] 1058770e-04 -6705336e-05 1244419e-04 -9201508e-05 7678296e-05[4] -8894178e-05 5481668e-05 -1044110e-04 7558269e-05 -6477571e-05[5] 2676520e-05 -1622289e-05 3139684e-05 -2243174e-05 1954349e-05

$vW[[3]] [1] [2] [3] [4] [5][1] -0002603034 -0002398256 -0003274074 -0002542478 -000209672

Предсказание обученной сетью

predict by dnntest_Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02))test_Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1))test_x lt- matrix(c(test_Var1 test_Var2) nrow = 100 ncol = 2)nntest(dnn test_x y)

[1] 025 Value error rate

Сравнение обучающей и тестовой выборки

gttest_x [1] [2] [1] 091887443 -08940890 [2] 115219448 -06050481 [3] 069917981 -08524551 [4] 028213787 -08146816 [5] 098405598 -11440813 [6] 185911887 -08203652 [7] 010843056 -10123789 [8] 083827953 -07594760 [9] -016373562 -09087116 [10] 088298748 -09767741 [11] 005280917 -07525407

gt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370

Plot3d(test_xy) Plot3d(xy)

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)

Подготовка к обработке

starting installationstep1installpackages(devtools)library(devtools)install_github(repo = mnist username = xrobin ref = master)library(mnist)

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
  • Аппроксимация линейными многообразиями (подпространствами)
  • Slide 30
  • Алгоритм
  • princomp(formula data = NULL subset naaction )
  • Principal Component Analysis (PCA)
  • Линейный дискриминантный анализ (Linear Discriminant Analysis -
  • Решение
  • lda(x grouping prior = proportions tol = 10e-4 method
  • Slide 37
  • Linear Discriminant Analysis (LDA)
  • Сравнение PCA и LDA
  • Метод опорных векторов (Support Vector Machines - SVM)
  • Идея алгоритма
  • Иллюстрация на простейшем примере
  • Линейная неразделимость и использование ядер
  • Иллюстрация использования ядра для отображения 2D -gt 3D
  • svm((formula data = NULL subset naaction = naomit sc
  • Support Vector Machines
  • Глубокое обучение (Deep Learning)
  • laquoВ 1997 году Deep Blue обыграл в шахматы Каспарова В 2011 Wats
  • Распознавание основано на feature detection и последующем раз
  • Распознавание рукописных цифр
  • Еще пример посложнее
  • Использование нейронной сети с обучением
  • Сверхвысокая размерность при работе с первичным представлением
  • Пиксельное кодирование
  • Принцип иерархии понятий ndash основа deep learning
  • Разреженное (sparse) кодирование
  • Словарь для лиц
  • Slide 58
  • Выделение объектов заданного класса
  • Основные архитектуры Deep Learning
  • Задача классификации распознавания и подобные являются задачей
  • Фактор - графы
  • Slide 63
  • Slide 64
  • Подход разреженного кодирования
  • Обобщенная архитектура
  • Slide 67
  • Slide 68
  • Slide 69
  • В действительности работают любые архитектуры построения функц
  • Machine Learning with Torch7 (httpcodecogbitscomwikidoku
  • Torch 7 является расширением Lua
  • Slide 73
  • Slide 74
  • Сверточные (convolution) нейронные сети
  • Свертка и архитектура 4-х уровневой сверточной сети
  • Функциональная структура
  • Примеры успешного применения сверточных сетей
  • Диагностика эпилепсии по ЭЭГ
  • Реализация сверточной сетью
  • Одна из самых больших сверточных сетей
  • Пример тэгирования
  • Пример поиска похожих по изображению
  • Пример поиска в коллекции изображений по текстовому запросу
  • Пример laquoоблачногоraquo классификатора изображений
  • Slide 86
  • Самообучающиеся нейронные сети на основе минимизации функции эн
  • RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцман
  • Алгоритм обучения Contrastive Divergence (CD)
  • Основные уравнения адаптации
  • Алгоритм Хинтона - Contrastive Divergence (CD-k)
  • darch Package for deep architectures and Restricted-Bolzmann-
  • Связь плотности вероятности и энергии
  • Задача обучения с точки минимизации энергии сети
  • Интуитивные соображения
  • Slide 96
  • Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decom
  • Sparse linear reconstruction
  • Автоэнкодер (auto encoder)
  • Архитекттура ICA моделей
  • Итеративные алгоритмы с оптимальным разреженным кодированием 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)
Page 101: !Predictive analytics part_2

Прогнозирование (классификация) нейронной сетью с архитектурой stacked auto encoder

bull saednntrain(x y hidden = c(1) activationfun = sigm learningrate = 08 momentum = 05 learningrate_scale = 1 output = sigm sae_output = linear numepochs = 3 batchsize = 100 hidden_dropout = 0 visible_dropout = 0)

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

Архитектура сети SAE

Архитектура с 5Х4 hidden 3 outs

Example

Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02)) Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1)) x lt- matrix(c(Var1 Var2) nrow = 100 ncol = 2)y lt- c(rep(1 50) rep(0 50))

обучение сетиdnn lt- saednntrain(x y hidden = c(5 5))

Анализ обучающего набора данныхgt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370helliphelliphelliphelliphelliphelliphelliphellip

gt y [1] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 [54] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

plot3d(xy)

Параметры SAE сети

gt dnn$input_dim[1] 2$output_dim[1] 1$hidden[1] 5 5$size[1] 2 5 5 1$activationfun[1] sigm$learningrate[1] 08

$momentum[1] 05$learningrate_scale[1] 1$hidden_dropout[1] 0$visible_dropout[1] 0$output[1] sigm$W

Коэффициенты связей

$W$W[[1]] [1] [2][1] -014355854 02471840[2] 011378030 -00715094[3] -004343738 03667468[4] 012756946 -01303379[5] -003445704 02293772

$W[[2]] [1] [2] [3] [4] [5][1] 00420191661 -0023073732 -008762756 0035575714 -0063000016[2] 00072771988 -0131204147 -010591421 0018221305 -0025539769[3] -01071896826 -0019479685 -009892573 -0012976429 -0111886901[4] -00009477304 -0023137518 -002147218 0007969452 -0118696306[5] 00045016013 0001885546 -010170954 -0140312396 -0003970102

$W[[3]] [1] [2] [3] [4] [5][1] 01027992 -007288099 003051227 -001731639 0009518049

$vW$vW[[1]] [1] [2][1] -8335203e-06 1368580e-05[2] -6530183e-05 1135070e-04[3] 2544302e-05 -3947111e-05[4] -5512835e-06 9541682e-06[5] 3822854e-05 -6281762e-05

$vW[[2]] [1] [2] [3] [4] [5][1] 4172450e-04 -2554411e-04 4896670e-04 -3526093e-04 3041932e-04[2] -3210759e-04 1978412e-04 -3769148e-04 2727933e-04 -2338477e-04[3] 1058770e-04 -6705336e-05 1244419e-04 -9201508e-05 7678296e-05[4] -8894178e-05 5481668e-05 -1044110e-04 7558269e-05 -6477571e-05[5] 2676520e-05 -1622289e-05 3139684e-05 -2243174e-05 1954349e-05

$vW[[3]] [1] [2] [3] [4] [5][1] -0002603034 -0002398256 -0003274074 -0002542478 -000209672

Предсказание обученной сетью

predict by dnntest_Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02))test_Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1))test_x lt- matrix(c(test_Var1 test_Var2) nrow = 100 ncol = 2)nntest(dnn test_x y)

[1] 025 Value error rate

Сравнение обучающей и тестовой выборки

gttest_x [1] [2] [1] 091887443 -08940890 [2] 115219448 -06050481 [3] 069917981 -08524551 [4] 028213787 -08146816 [5] 098405598 -11440813 [6] 185911887 -08203652 [7] 010843056 -10123789 [8] 083827953 -07594760 [9] -016373562 -09087116 [10] 088298748 -09767741 [11] 005280917 -07525407

gt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370

Plot3d(test_xy) Plot3d(xy)

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)

Подготовка к обработке

starting installationstep1installpackages(devtools)library(devtools)install_github(repo = mnist username = xrobin ref = master)library(mnist)

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
  • Аппроксимация линейными многообразиями (подпространствами)
  • Slide 30
  • Алгоритм
  • princomp(formula data = NULL subset naaction )
  • Principal Component Analysis (PCA)
  • Линейный дискриминантный анализ (Linear Discriminant Analysis -
  • Решение
  • lda(x grouping prior = proportions tol = 10e-4 method
  • Slide 37
  • Linear Discriminant Analysis (LDA)
  • Сравнение PCA и LDA
  • Метод опорных векторов (Support Vector Machines - SVM)
  • Идея алгоритма
  • Иллюстрация на простейшем примере
  • Линейная неразделимость и использование ядер
  • Иллюстрация использования ядра для отображения 2D -gt 3D
  • svm((formula data = NULL subset naaction = naomit sc
  • Support Vector Machines
  • Глубокое обучение (Deep Learning)
  • laquoВ 1997 году Deep Blue обыграл в шахматы Каспарова В 2011 Wats
  • Распознавание основано на feature detection и последующем раз
  • Распознавание рукописных цифр
  • Еще пример посложнее
  • Использование нейронной сети с обучением
  • Сверхвысокая размерность при работе с первичным представлением
  • Пиксельное кодирование
  • Принцип иерархии понятий ndash основа deep learning
  • Разреженное (sparse) кодирование
  • Словарь для лиц
  • Slide 58
  • Выделение объектов заданного класса
  • Основные архитектуры Deep Learning
  • Задача классификации распознавания и подобные являются задачей
  • Фактор - графы
  • Slide 63
  • Slide 64
  • Подход разреженного кодирования
  • Обобщенная архитектура
  • Slide 67
  • Slide 68
  • Slide 69
  • В действительности работают любые архитектуры построения функц
  • Machine Learning with Torch7 (httpcodecogbitscomwikidoku
  • Torch 7 является расширением Lua
  • Slide 73
  • Slide 74
  • Сверточные (convolution) нейронные сети
  • Свертка и архитектура 4-х уровневой сверточной сети
  • Функциональная структура
  • Примеры успешного применения сверточных сетей
  • Диагностика эпилепсии по ЭЭГ
  • Реализация сверточной сетью
  • Одна из самых больших сверточных сетей
  • Пример тэгирования
  • Пример поиска похожих по изображению
  • Пример поиска в коллекции изображений по текстовому запросу
  • Пример laquoоблачногоraquo классификатора изображений
  • Slide 86
  • Самообучающиеся нейронные сети на основе минимизации функции эн
  • RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцман
  • Алгоритм обучения Contrastive Divergence (CD)
  • Основные уравнения адаптации
  • Алгоритм Хинтона - Contrastive Divergence (CD-k)
  • darch Package for deep architectures and Restricted-Bolzmann-
  • Связь плотности вероятности и энергии
  • Задача обучения с точки минимизации энергии сети
  • Интуитивные соображения
  • Slide 96
  • Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decom
  • Sparse linear reconstruction
  • Автоэнкодер (auto encoder)
  • Архитекттура ICA моделей
  • Итеративные алгоритмы с оптимальным разреженным кодированием 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)
Page 102: !Predictive analytics part_2

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

Архитектура сети SAE

Архитектура с 5Х4 hidden 3 outs

Example

Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02)) Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1)) x lt- matrix(c(Var1 Var2) nrow = 100 ncol = 2)y lt- c(rep(1 50) rep(0 50))

обучение сетиdnn lt- saednntrain(x y hidden = c(5 5))

Анализ обучающего набора данныхgt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370helliphelliphelliphelliphelliphelliphelliphellip

gt y [1] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 [54] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

plot3d(xy)

Параметры SAE сети

gt dnn$input_dim[1] 2$output_dim[1] 1$hidden[1] 5 5$size[1] 2 5 5 1$activationfun[1] sigm$learningrate[1] 08

$momentum[1] 05$learningrate_scale[1] 1$hidden_dropout[1] 0$visible_dropout[1] 0$output[1] sigm$W

Коэффициенты связей

$W$W[[1]] [1] [2][1] -014355854 02471840[2] 011378030 -00715094[3] -004343738 03667468[4] 012756946 -01303379[5] -003445704 02293772

$W[[2]] [1] [2] [3] [4] [5][1] 00420191661 -0023073732 -008762756 0035575714 -0063000016[2] 00072771988 -0131204147 -010591421 0018221305 -0025539769[3] -01071896826 -0019479685 -009892573 -0012976429 -0111886901[4] -00009477304 -0023137518 -002147218 0007969452 -0118696306[5] 00045016013 0001885546 -010170954 -0140312396 -0003970102

$W[[3]] [1] [2] [3] [4] [5][1] 01027992 -007288099 003051227 -001731639 0009518049

$vW$vW[[1]] [1] [2][1] -8335203e-06 1368580e-05[2] -6530183e-05 1135070e-04[3] 2544302e-05 -3947111e-05[4] -5512835e-06 9541682e-06[5] 3822854e-05 -6281762e-05

$vW[[2]] [1] [2] [3] [4] [5][1] 4172450e-04 -2554411e-04 4896670e-04 -3526093e-04 3041932e-04[2] -3210759e-04 1978412e-04 -3769148e-04 2727933e-04 -2338477e-04[3] 1058770e-04 -6705336e-05 1244419e-04 -9201508e-05 7678296e-05[4] -8894178e-05 5481668e-05 -1044110e-04 7558269e-05 -6477571e-05[5] 2676520e-05 -1622289e-05 3139684e-05 -2243174e-05 1954349e-05

$vW[[3]] [1] [2] [3] [4] [5][1] -0002603034 -0002398256 -0003274074 -0002542478 -000209672

Предсказание обученной сетью

predict by dnntest_Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02))test_Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1))test_x lt- matrix(c(test_Var1 test_Var2) nrow = 100 ncol = 2)nntest(dnn test_x y)

[1] 025 Value error rate

Сравнение обучающей и тестовой выборки

gttest_x [1] [2] [1] 091887443 -08940890 [2] 115219448 -06050481 [3] 069917981 -08524551 [4] 028213787 -08146816 [5] 098405598 -11440813 [6] 185911887 -08203652 [7] 010843056 -10123789 [8] 083827953 -07594760 [9] -016373562 -09087116 [10] 088298748 -09767741 [11] 005280917 -07525407

gt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370

Plot3d(test_xy) Plot3d(xy)

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)

Подготовка к обработке

starting installationstep1installpackages(devtools)library(devtools)install_github(repo = mnist username = xrobin ref = master)library(mnist)

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
  • Аппроксимация линейными многообразиями (подпространствами)
  • Slide 30
  • Алгоритм
  • princomp(formula data = NULL subset naaction )
  • Principal Component Analysis (PCA)
  • Линейный дискриминантный анализ (Linear Discriminant Analysis -
  • Решение
  • lda(x grouping prior = proportions tol = 10e-4 method
  • Slide 37
  • Linear Discriminant Analysis (LDA)
  • Сравнение PCA и LDA
  • Метод опорных векторов (Support Vector Machines - SVM)
  • Идея алгоритма
  • Иллюстрация на простейшем примере
  • Линейная неразделимость и использование ядер
  • Иллюстрация использования ядра для отображения 2D -gt 3D
  • svm((formula data = NULL subset naaction = naomit sc
  • Support Vector Machines
  • Глубокое обучение (Deep Learning)
  • laquoВ 1997 году Deep Blue обыграл в шахматы Каспарова В 2011 Wats
  • Распознавание основано на feature detection и последующем раз
  • Распознавание рукописных цифр
  • Еще пример посложнее
  • Использование нейронной сети с обучением
  • Сверхвысокая размерность при работе с первичным представлением
  • Пиксельное кодирование
  • Принцип иерархии понятий ndash основа deep learning
  • Разреженное (sparse) кодирование
  • Словарь для лиц
  • Slide 58
  • Выделение объектов заданного класса
  • Основные архитектуры Deep Learning
  • Задача классификации распознавания и подобные являются задачей
  • Фактор - графы
  • Slide 63
  • Slide 64
  • Подход разреженного кодирования
  • Обобщенная архитектура
  • Slide 67
  • Slide 68
  • Slide 69
  • В действительности работают любые архитектуры построения функц
  • Machine Learning with Torch7 (httpcodecogbitscomwikidoku
  • Torch 7 является расширением Lua
  • Slide 73
  • Slide 74
  • Сверточные (convolution) нейронные сети
  • Свертка и архитектура 4-х уровневой сверточной сети
  • Функциональная структура
  • Примеры успешного применения сверточных сетей
  • Диагностика эпилепсии по ЭЭГ
  • Реализация сверточной сетью
  • Одна из самых больших сверточных сетей
  • Пример тэгирования
  • Пример поиска похожих по изображению
  • Пример поиска в коллекции изображений по текстовому запросу
  • Пример laquoоблачногоraquo классификатора изображений
  • Slide 86
  • Самообучающиеся нейронные сети на основе минимизации функции эн
  • RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцман
  • Алгоритм обучения Contrastive Divergence (CD)
  • Основные уравнения адаптации
  • Алгоритм Хинтона - Contrastive Divergence (CD-k)
  • darch Package for deep architectures and Restricted-Bolzmann-
  • Связь плотности вероятности и энергии
  • Задача обучения с точки минимизации энергии сети
  • Интуитивные соображения
  • Slide 96
  • Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decom
  • Sparse linear reconstruction
  • Автоэнкодер (auto encoder)
  • Архитекттура ICA моделей
  • Итеративные алгоритмы с оптимальным разреженным кодированием 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)
Page 103: !Predictive analytics part_2

Архитектура сети SAE

Архитектура с 5Х4 hidden 3 outs

Example

Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02)) Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1)) x lt- matrix(c(Var1 Var2) nrow = 100 ncol = 2)y lt- c(rep(1 50) rep(0 50))

обучение сетиdnn lt- saednntrain(x y hidden = c(5 5))

Анализ обучающего набора данныхgt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370helliphelliphelliphelliphelliphelliphelliphellip

gt y [1] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 [54] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

plot3d(xy)

Параметры SAE сети

gt dnn$input_dim[1] 2$output_dim[1] 1$hidden[1] 5 5$size[1] 2 5 5 1$activationfun[1] sigm$learningrate[1] 08

$momentum[1] 05$learningrate_scale[1] 1$hidden_dropout[1] 0$visible_dropout[1] 0$output[1] sigm$W

Коэффициенты связей

$W$W[[1]] [1] [2][1] -014355854 02471840[2] 011378030 -00715094[3] -004343738 03667468[4] 012756946 -01303379[5] -003445704 02293772

$W[[2]] [1] [2] [3] [4] [5][1] 00420191661 -0023073732 -008762756 0035575714 -0063000016[2] 00072771988 -0131204147 -010591421 0018221305 -0025539769[3] -01071896826 -0019479685 -009892573 -0012976429 -0111886901[4] -00009477304 -0023137518 -002147218 0007969452 -0118696306[5] 00045016013 0001885546 -010170954 -0140312396 -0003970102

$W[[3]] [1] [2] [3] [4] [5][1] 01027992 -007288099 003051227 -001731639 0009518049

$vW$vW[[1]] [1] [2][1] -8335203e-06 1368580e-05[2] -6530183e-05 1135070e-04[3] 2544302e-05 -3947111e-05[4] -5512835e-06 9541682e-06[5] 3822854e-05 -6281762e-05

$vW[[2]] [1] [2] [3] [4] [5][1] 4172450e-04 -2554411e-04 4896670e-04 -3526093e-04 3041932e-04[2] -3210759e-04 1978412e-04 -3769148e-04 2727933e-04 -2338477e-04[3] 1058770e-04 -6705336e-05 1244419e-04 -9201508e-05 7678296e-05[4] -8894178e-05 5481668e-05 -1044110e-04 7558269e-05 -6477571e-05[5] 2676520e-05 -1622289e-05 3139684e-05 -2243174e-05 1954349e-05

$vW[[3]] [1] [2] [3] [4] [5][1] -0002603034 -0002398256 -0003274074 -0002542478 -000209672

Предсказание обученной сетью

predict by dnntest_Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02))test_Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1))test_x lt- matrix(c(test_Var1 test_Var2) nrow = 100 ncol = 2)nntest(dnn test_x y)

[1] 025 Value error rate

Сравнение обучающей и тестовой выборки

gttest_x [1] [2] [1] 091887443 -08940890 [2] 115219448 -06050481 [3] 069917981 -08524551 [4] 028213787 -08146816 [5] 098405598 -11440813 [6] 185911887 -08203652 [7] 010843056 -10123789 [8] 083827953 -07594760 [9] -016373562 -09087116 [10] 088298748 -09767741 [11] 005280917 -07525407

gt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370

Plot3d(test_xy) Plot3d(xy)

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)

Подготовка к обработке

starting installationstep1installpackages(devtools)library(devtools)install_github(repo = mnist username = xrobin ref = master)library(mnist)

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
  • Аппроксимация линейными многообразиями (подпространствами)
  • Slide 30
  • Алгоритм
  • princomp(formula data = NULL subset naaction )
  • Principal Component Analysis (PCA)
  • Линейный дискриминантный анализ (Linear Discriminant Analysis -
  • Решение
  • lda(x grouping prior = proportions tol = 10e-4 method
  • Slide 37
  • Linear Discriminant Analysis (LDA)
  • Сравнение PCA и LDA
  • Метод опорных векторов (Support Vector Machines - SVM)
  • Идея алгоритма
  • Иллюстрация на простейшем примере
  • Линейная неразделимость и использование ядер
  • Иллюстрация использования ядра для отображения 2D -gt 3D
  • svm((formula data = NULL subset naaction = naomit sc
  • Support Vector Machines
  • Глубокое обучение (Deep Learning)
  • laquoВ 1997 году Deep Blue обыграл в шахматы Каспарова В 2011 Wats
  • Распознавание основано на feature detection и последующем раз
  • Распознавание рукописных цифр
  • Еще пример посложнее
  • Использование нейронной сети с обучением
  • Сверхвысокая размерность при работе с первичным представлением
  • Пиксельное кодирование
  • Принцип иерархии понятий ndash основа deep learning
  • Разреженное (sparse) кодирование
  • Словарь для лиц
  • Slide 58
  • Выделение объектов заданного класса
  • Основные архитектуры Deep Learning
  • Задача классификации распознавания и подобные являются задачей
  • Фактор - графы
  • Slide 63
  • Slide 64
  • Подход разреженного кодирования
  • Обобщенная архитектура
  • Slide 67
  • Slide 68
  • Slide 69
  • В действительности работают любые архитектуры построения функц
  • Machine Learning with Torch7 (httpcodecogbitscomwikidoku
  • Torch 7 является расширением Lua
  • Slide 73
  • Slide 74
  • Сверточные (convolution) нейронные сети
  • Свертка и архитектура 4-х уровневой сверточной сети
  • Функциональная структура
  • Примеры успешного применения сверточных сетей
  • Диагностика эпилепсии по ЭЭГ
  • Реализация сверточной сетью
  • Одна из самых больших сверточных сетей
  • Пример тэгирования
  • Пример поиска похожих по изображению
  • Пример поиска в коллекции изображений по текстовому запросу
  • Пример laquoоблачногоraquo классификатора изображений
  • Slide 86
  • Самообучающиеся нейронные сети на основе минимизации функции эн
  • RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцман
  • Алгоритм обучения Contrastive Divergence (CD)
  • Основные уравнения адаптации
  • Алгоритм Хинтона - Contrastive Divergence (CD-k)
  • darch Package for deep architectures and Restricted-Bolzmann-
  • Связь плотности вероятности и энергии
  • Задача обучения с точки минимизации энергии сети
  • Интуитивные соображения
  • Slide 96
  • Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decom
  • Sparse linear reconstruction
  • Автоэнкодер (auto encoder)
  • Архитекттура ICA моделей
  • Итеративные алгоритмы с оптимальным разреженным кодированием 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)
Page 104: !Predictive analytics part_2

Архитектура с 5Х4 hidden 3 outs

Example

Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02)) Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1)) x lt- matrix(c(Var1 Var2) nrow = 100 ncol = 2)y lt- c(rep(1 50) rep(0 50))

обучение сетиdnn lt- saednntrain(x y hidden = c(5 5))

Анализ обучающего набора данныхgt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370helliphelliphelliphelliphelliphelliphelliphellip

gt y [1] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 [54] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

plot3d(xy)

Параметры SAE сети

gt dnn$input_dim[1] 2$output_dim[1] 1$hidden[1] 5 5$size[1] 2 5 5 1$activationfun[1] sigm$learningrate[1] 08

$momentum[1] 05$learningrate_scale[1] 1$hidden_dropout[1] 0$visible_dropout[1] 0$output[1] sigm$W

Коэффициенты связей

$W$W[[1]] [1] [2][1] -014355854 02471840[2] 011378030 -00715094[3] -004343738 03667468[4] 012756946 -01303379[5] -003445704 02293772

$W[[2]] [1] [2] [3] [4] [5][1] 00420191661 -0023073732 -008762756 0035575714 -0063000016[2] 00072771988 -0131204147 -010591421 0018221305 -0025539769[3] -01071896826 -0019479685 -009892573 -0012976429 -0111886901[4] -00009477304 -0023137518 -002147218 0007969452 -0118696306[5] 00045016013 0001885546 -010170954 -0140312396 -0003970102

$W[[3]] [1] [2] [3] [4] [5][1] 01027992 -007288099 003051227 -001731639 0009518049

$vW$vW[[1]] [1] [2][1] -8335203e-06 1368580e-05[2] -6530183e-05 1135070e-04[3] 2544302e-05 -3947111e-05[4] -5512835e-06 9541682e-06[5] 3822854e-05 -6281762e-05

$vW[[2]] [1] [2] [3] [4] [5][1] 4172450e-04 -2554411e-04 4896670e-04 -3526093e-04 3041932e-04[2] -3210759e-04 1978412e-04 -3769148e-04 2727933e-04 -2338477e-04[3] 1058770e-04 -6705336e-05 1244419e-04 -9201508e-05 7678296e-05[4] -8894178e-05 5481668e-05 -1044110e-04 7558269e-05 -6477571e-05[5] 2676520e-05 -1622289e-05 3139684e-05 -2243174e-05 1954349e-05

$vW[[3]] [1] [2] [3] [4] [5][1] -0002603034 -0002398256 -0003274074 -0002542478 -000209672

Предсказание обученной сетью

predict by dnntest_Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02))test_Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1))test_x lt- matrix(c(test_Var1 test_Var2) nrow = 100 ncol = 2)nntest(dnn test_x y)

[1] 025 Value error rate

Сравнение обучающей и тестовой выборки

gttest_x [1] [2] [1] 091887443 -08940890 [2] 115219448 -06050481 [3] 069917981 -08524551 [4] 028213787 -08146816 [5] 098405598 -11440813 [6] 185911887 -08203652 [7] 010843056 -10123789 [8] 083827953 -07594760 [9] -016373562 -09087116 [10] 088298748 -09767741 [11] 005280917 -07525407

gt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370

Plot3d(test_xy) Plot3d(xy)

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)

Подготовка к обработке

starting installationstep1installpackages(devtools)library(devtools)install_github(repo = mnist username = xrobin ref = master)library(mnist)

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
  • Аппроксимация линейными многообразиями (подпространствами)
  • Slide 30
  • Алгоритм
  • princomp(formula data = NULL subset naaction )
  • Principal Component Analysis (PCA)
  • Линейный дискриминантный анализ (Linear Discriminant Analysis -
  • Решение
  • lda(x grouping prior = proportions tol = 10e-4 method
  • Slide 37
  • Linear Discriminant Analysis (LDA)
  • Сравнение PCA и LDA
  • Метод опорных векторов (Support Vector Machines - SVM)
  • Идея алгоритма
  • Иллюстрация на простейшем примере
  • Линейная неразделимость и использование ядер
  • Иллюстрация использования ядра для отображения 2D -gt 3D
  • svm((formula data = NULL subset naaction = naomit sc
  • Support Vector Machines
  • Глубокое обучение (Deep Learning)
  • laquoВ 1997 году Deep Blue обыграл в шахматы Каспарова В 2011 Wats
  • Распознавание основано на feature detection и последующем раз
  • Распознавание рукописных цифр
  • Еще пример посложнее
  • Использование нейронной сети с обучением
  • Сверхвысокая размерность при работе с первичным представлением
  • Пиксельное кодирование
  • Принцип иерархии понятий ndash основа deep learning
  • Разреженное (sparse) кодирование
  • Словарь для лиц
  • Slide 58
  • Выделение объектов заданного класса
  • Основные архитектуры Deep Learning
  • Задача классификации распознавания и подобные являются задачей
  • Фактор - графы
  • Slide 63
  • Slide 64
  • Подход разреженного кодирования
  • Обобщенная архитектура
  • Slide 67
  • Slide 68
  • Slide 69
  • В действительности работают любые архитектуры построения функц
  • Machine Learning with Torch7 (httpcodecogbitscomwikidoku
  • Torch 7 является расширением Lua
  • Slide 73
  • Slide 74
  • Сверточные (convolution) нейронные сети
  • Свертка и архитектура 4-х уровневой сверточной сети
  • Функциональная структура
  • Примеры успешного применения сверточных сетей
  • Диагностика эпилепсии по ЭЭГ
  • Реализация сверточной сетью
  • Одна из самых больших сверточных сетей
  • Пример тэгирования
  • Пример поиска похожих по изображению
  • Пример поиска в коллекции изображений по текстовому запросу
  • Пример laquoоблачногоraquo классификатора изображений
  • Slide 86
  • Самообучающиеся нейронные сети на основе минимизации функции эн
  • RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцман
  • Алгоритм обучения Contrastive Divergence (CD)
  • Основные уравнения адаптации
  • Алгоритм Хинтона - Contrastive Divergence (CD-k)
  • darch Package for deep architectures and Restricted-Bolzmann-
  • Связь плотности вероятности и энергии
  • Задача обучения с точки минимизации энергии сети
  • Интуитивные соображения
  • Slide 96
  • Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decom
  • Sparse linear reconstruction
  • Автоэнкодер (auto encoder)
  • Архитекттура ICA моделей
  • Итеративные алгоритмы с оптимальным разреженным кодированием 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)
Page 105: !Predictive analytics part_2

Example

Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02)) Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1)) x lt- matrix(c(Var1 Var2) nrow = 100 ncol = 2)y lt- c(rep(1 50) rep(0 50))

обучение сетиdnn lt- saednntrain(x y hidden = c(5 5))

Анализ обучающего набора данныхgt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370helliphelliphelliphelliphelliphelliphelliphellip

gt y [1] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 [54] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

plot3d(xy)

Параметры SAE сети

gt dnn$input_dim[1] 2$output_dim[1] 1$hidden[1] 5 5$size[1] 2 5 5 1$activationfun[1] sigm$learningrate[1] 08

$momentum[1] 05$learningrate_scale[1] 1$hidden_dropout[1] 0$visible_dropout[1] 0$output[1] sigm$W

Коэффициенты связей

$W$W[[1]] [1] [2][1] -014355854 02471840[2] 011378030 -00715094[3] -004343738 03667468[4] 012756946 -01303379[5] -003445704 02293772

$W[[2]] [1] [2] [3] [4] [5][1] 00420191661 -0023073732 -008762756 0035575714 -0063000016[2] 00072771988 -0131204147 -010591421 0018221305 -0025539769[3] -01071896826 -0019479685 -009892573 -0012976429 -0111886901[4] -00009477304 -0023137518 -002147218 0007969452 -0118696306[5] 00045016013 0001885546 -010170954 -0140312396 -0003970102

$W[[3]] [1] [2] [3] [4] [5][1] 01027992 -007288099 003051227 -001731639 0009518049

$vW$vW[[1]] [1] [2][1] -8335203e-06 1368580e-05[2] -6530183e-05 1135070e-04[3] 2544302e-05 -3947111e-05[4] -5512835e-06 9541682e-06[5] 3822854e-05 -6281762e-05

$vW[[2]] [1] [2] [3] [4] [5][1] 4172450e-04 -2554411e-04 4896670e-04 -3526093e-04 3041932e-04[2] -3210759e-04 1978412e-04 -3769148e-04 2727933e-04 -2338477e-04[3] 1058770e-04 -6705336e-05 1244419e-04 -9201508e-05 7678296e-05[4] -8894178e-05 5481668e-05 -1044110e-04 7558269e-05 -6477571e-05[5] 2676520e-05 -1622289e-05 3139684e-05 -2243174e-05 1954349e-05

$vW[[3]] [1] [2] [3] [4] [5][1] -0002603034 -0002398256 -0003274074 -0002542478 -000209672

Предсказание обученной сетью

predict by dnntest_Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02))test_Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1))test_x lt- matrix(c(test_Var1 test_Var2) nrow = 100 ncol = 2)nntest(dnn test_x y)

[1] 025 Value error rate

Сравнение обучающей и тестовой выборки

gttest_x [1] [2] [1] 091887443 -08940890 [2] 115219448 -06050481 [3] 069917981 -08524551 [4] 028213787 -08146816 [5] 098405598 -11440813 [6] 185911887 -08203652 [7] 010843056 -10123789 [8] 083827953 -07594760 [9] -016373562 -09087116 [10] 088298748 -09767741 [11] 005280917 -07525407

gt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370

Plot3d(test_xy) Plot3d(xy)

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)

Подготовка к обработке

starting installationstep1installpackages(devtools)library(devtools)install_github(repo = mnist username = xrobin ref = master)library(mnist)

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
  • Аппроксимация линейными многообразиями (подпространствами)
  • Slide 30
  • Алгоритм
  • princomp(formula data = NULL subset naaction )
  • Principal Component Analysis (PCA)
  • Линейный дискриминантный анализ (Linear Discriminant Analysis -
  • Решение
  • lda(x grouping prior = proportions tol = 10e-4 method
  • Slide 37
  • Linear Discriminant Analysis (LDA)
  • Сравнение PCA и LDA
  • Метод опорных векторов (Support Vector Machines - SVM)
  • Идея алгоритма
  • Иллюстрация на простейшем примере
  • Линейная неразделимость и использование ядер
  • Иллюстрация использования ядра для отображения 2D -gt 3D
  • svm((formula data = NULL subset naaction = naomit sc
  • Support Vector Machines
  • Глубокое обучение (Deep Learning)
  • laquoВ 1997 году Deep Blue обыграл в шахматы Каспарова В 2011 Wats
  • Распознавание основано на feature detection и последующем раз
  • Распознавание рукописных цифр
  • Еще пример посложнее
  • Использование нейронной сети с обучением
  • Сверхвысокая размерность при работе с первичным представлением
  • Пиксельное кодирование
  • Принцип иерархии понятий ndash основа deep learning
  • Разреженное (sparse) кодирование
  • Словарь для лиц
  • Slide 58
  • Выделение объектов заданного класса
  • Основные архитектуры Deep Learning
  • Задача классификации распознавания и подобные являются задачей
  • Фактор - графы
  • Slide 63
  • Slide 64
  • Подход разреженного кодирования
  • Обобщенная архитектура
  • Slide 67
  • Slide 68
  • Slide 69
  • В действительности работают любые архитектуры построения функц
  • Machine Learning with Torch7 (httpcodecogbitscomwikidoku
  • Torch 7 является расширением Lua
  • Slide 73
  • Slide 74
  • Сверточные (convolution) нейронные сети
  • Свертка и архитектура 4-х уровневой сверточной сети
  • Функциональная структура
  • Примеры успешного применения сверточных сетей
  • Диагностика эпилепсии по ЭЭГ
  • Реализация сверточной сетью
  • Одна из самых больших сверточных сетей
  • Пример тэгирования
  • Пример поиска похожих по изображению
  • Пример поиска в коллекции изображений по текстовому запросу
  • Пример laquoоблачногоraquo классификатора изображений
  • Slide 86
  • Самообучающиеся нейронные сети на основе минимизации функции эн
  • RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцман
  • Алгоритм обучения Contrastive Divergence (CD)
  • Основные уравнения адаптации
  • Алгоритм Хинтона - Contrastive Divergence (CD-k)
  • darch Package for deep architectures and Restricted-Bolzmann-
  • Связь плотности вероятности и энергии
  • Задача обучения с точки минимизации энергии сети
  • Интуитивные соображения
  • Slide 96
  • Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decom
  • Sparse linear reconstruction
  • Автоэнкодер (auto encoder)
  • Архитекттура ICA моделей
  • Итеративные алгоритмы с оптимальным разреженным кодированием 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)
Page 106: !Predictive analytics part_2

Анализ обучающего набора данныхgt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370helliphelliphelliphelliphelliphelliphelliphellip

gt y [1] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 [54] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

plot3d(xy)

Параметры SAE сети

gt dnn$input_dim[1] 2$output_dim[1] 1$hidden[1] 5 5$size[1] 2 5 5 1$activationfun[1] sigm$learningrate[1] 08

$momentum[1] 05$learningrate_scale[1] 1$hidden_dropout[1] 0$visible_dropout[1] 0$output[1] sigm$W

Коэффициенты связей

$W$W[[1]] [1] [2][1] -014355854 02471840[2] 011378030 -00715094[3] -004343738 03667468[4] 012756946 -01303379[5] -003445704 02293772

$W[[2]] [1] [2] [3] [4] [5][1] 00420191661 -0023073732 -008762756 0035575714 -0063000016[2] 00072771988 -0131204147 -010591421 0018221305 -0025539769[3] -01071896826 -0019479685 -009892573 -0012976429 -0111886901[4] -00009477304 -0023137518 -002147218 0007969452 -0118696306[5] 00045016013 0001885546 -010170954 -0140312396 -0003970102

$W[[3]] [1] [2] [3] [4] [5][1] 01027992 -007288099 003051227 -001731639 0009518049

$vW$vW[[1]] [1] [2][1] -8335203e-06 1368580e-05[2] -6530183e-05 1135070e-04[3] 2544302e-05 -3947111e-05[4] -5512835e-06 9541682e-06[5] 3822854e-05 -6281762e-05

$vW[[2]] [1] [2] [3] [4] [5][1] 4172450e-04 -2554411e-04 4896670e-04 -3526093e-04 3041932e-04[2] -3210759e-04 1978412e-04 -3769148e-04 2727933e-04 -2338477e-04[3] 1058770e-04 -6705336e-05 1244419e-04 -9201508e-05 7678296e-05[4] -8894178e-05 5481668e-05 -1044110e-04 7558269e-05 -6477571e-05[5] 2676520e-05 -1622289e-05 3139684e-05 -2243174e-05 1954349e-05

$vW[[3]] [1] [2] [3] [4] [5][1] -0002603034 -0002398256 -0003274074 -0002542478 -000209672

Предсказание обученной сетью

predict by dnntest_Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02))test_Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1))test_x lt- matrix(c(test_Var1 test_Var2) nrow = 100 ncol = 2)nntest(dnn test_x y)

[1] 025 Value error rate

Сравнение обучающей и тестовой выборки

gttest_x [1] [2] [1] 091887443 -08940890 [2] 115219448 -06050481 [3] 069917981 -08524551 [4] 028213787 -08146816 [5] 098405598 -11440813 [6] 185911887 -08203652 [7] 010843056 -10123789 [8] 083827953 -07594760 [9] -016373562 -09087116 [10] 088298748 -09767741 [11] 005280917 -07525407

gt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370

Plot3d(test_xy) Plot3d(xy)

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)

Подготовка к обработке

starting installationstep1installpackages(devtools)library(devtools)install_github(repo = mnist username = xrobin ref = master)library(mnist)

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
  • Аппроксимация линейными многообразиями (подпространствами)
  • Slide 30
  • Алгоритм
  • princomp(formula data = NULL subset naaction )
  • Principal Component Analysis (PCA)
  • Линейный дискриминантный анализ (Linear Discriminant Analysis -
  • Решение
  • lda(x grouping prior = proportions tol = 10e-4 method
  • Slide 37
  • Linear Discriminant Analysis (LDA)
  • Сравнение PCA и LDA
  • Метод опорных векторов (Support Vector Machines - SVM)
  • Идея алгоритма
  • Иллюстрация на простейшем примере
  • Линейная неразделимость и использование ядер
  • Иллюстрация использования ядра для отображения 2D -gt 3D
  • svm((formula data = NULL subset naaction = naomit sc
  • Support Vector Machines
  • Глубокое обучение (Deep Learning)
  • laquoВ 1997 году Deep Blue обыграл в шахматы Каспарова В 2011 Wats
  • Распознавание основано на feature detection и последующем раз
  • Распознавание рукописных цифр
  • Еще пример посложнее
  • Использование нейронной сети с обучением
  • Сверхвысокая размерность при работе с первичным представлением
  • Пиксельное кодирование
  • Принцип иерархии понятий ndash основа deep learning
  • Разреженное (sparse) кодирование
  • Словарь для лиц
  • Slide 58
  • Выделение объектов заданного класса
  • Основные архитектуры Deep Learning
  • Задача классификации распознавания и подобные являются задачей
  • Фактор - графы
  • Slide 63
  • Slide 64
  • Подход разреженного кодирования
  • Обобщенная архитектура
  • Slide 67
  • Slide 68
  • Slide 69
  • В действительности работают любые архитектуры построения функц
  • Machine Learning with Torch7 (httpcodecogbitscomwikidoku
  • Torch 7 является расширением Lua
  • Slide 73
  • Slide 74
  • Сверточные (convolution) нейронные сети
  • Свертка и архитектура 4-х уровневой сверточной сети
  • Функциональная структура
  • Примеры успешного применения сверточных сетей
  • Диагностика эпилепсии по ЭЭГ
  • Реализация сверточной сетью
  • Одна из самых больших сверточных сетей
  • Пример тэгирования
  • Пример поиска похожих по изображению
  • Пример поиска в коллекции изображений по текстовому запросу
  • Пример laquoоблачногоraquo классификатора изображений
  • Slide 86
  • Самообучающиеся нейронные сети на основе минимизации функции эн
  • RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцман
  • Алгоритм обучения Contrastive Divergence (CD)
  • Основные уравнения адаптации
  • Алгоритм Хинтона - Contrastive Divergence (CD-k)
  • darch Package for deep architectures and Restricted-Bolzmann-
  • Связь плотности вероятности и энергии
  • Задача обучения с точки минимизации энергии сети
  • Интуитивные соображения
  • Slide 96
  • Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decom
  • Sparse linear reconstruction
  • Автоэнкодер (auto encoder)
  • Архитекттура ICA моделей
  • Итеративные алгоритмы с оптимальным разреженным кодированием 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)
Page 107: !Predictive analytics part_2

Параметры SAE сети

gt dnn$input_dim[1] 2$output_dim[1] 1$hidden[1] 5 5$size[1] 2 5 5 1$activationfun[1] sigm$learningrate[1] 08

$momentum[1] 05$learningrate_scale[1] 1$hidden_dropout[1] 0$visible_dropout[1] 0$output[1] sigm$W

Коэффициенты связей

$W$W[[1]] [1] [2][1] -014355854 02471840[2] 011378030 -00715094[3] -004343738 03667468[4] 012756946 -01303379[5] -003445704 02293772

$W[[2]] [1] [2] [3] [4] [5][1] 00420191661 -0023073732 -008762756 0035575714 -0063000016[2] 00072771988 -0131204147 -010591421 0018221305 -0025539769[3] -01071896826 -0019479685 -009892573 -0012976429 -0111886901[4] -00009477304 -0023137518 -002147218 0007969452 -0118696306[5] 00045016013 0001885546 -010170954 -0140312396 -0003970102

$W[[3]] [1] [2] [3] [4] [5][1] 01027992 -007288099 003051227 -001731639 0009518049

$vW$vW[[1]] [1] [2][1] -8335203e-06 1368580e-05[2] -6530183e-05 1135070e-04[3] 2544302e-05 -3947111e-05[4] -5512835e-06 9541682e-06[5] 3822854e-05 -6281762e-05

$vW[[2]] [1] [2] [3] [4] [5][1] 4172450e-04 -2554411e-04 4896670e-04 -3526093e-04 3041932e-04[2] -3210759e-04 1978412e-04 -3769148e-04 2727933e-04 -2338477e-04[3] 1058770e-04 -6705336e-05 1244419e-04 -9201508e-05 7678296e-05[4] -8894178e-05 5481668e-05 -1044110e-04 7558269e-05 -6477571e-05[5] 2676520e-05 -1622289e-05 3139684e-05 -2243174e-05 1954349e-05

$vW[[3]] [1] [2] [3] [4] [5][1] -0002603034 -0002398256 -0003274074 -0002542478 -000209672

Предсказание обученной сетью

predict by dnntest_Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02))test_Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1))test_x lt- matrix(c(test_Var1 test_Var2) nrow = 100 ncol = 2)nntest(dnn test_x y)

[1] 025 Value error rate

Сравнение обучающей и тестовой выборки

gttest_x [1] [2] [1] 091887443 -08940890 [2] 115219448 -06050481 [3] 069917981 -08524551 [4] 028213787 -08146816 [5] 098405598 -11440813 [6] 185911887 -08203652 [7] 010843056 -10123789 [8] 083827953 -07594760 [9] -016373562 -09087116 [10] 088298748 -09767741 [11] 005280917 -07525407

gt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370

Plot3d(test_xy) Plot3d(xy)

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)

Подготовка к обработке

starting installationstep1installpackages(devtools)library(devtools)install_github(repo = mnist username = xrobin ref = master)library(mnist)

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
  • Аппроксимация линейными многообразиями (подпространствами)
  • Slide 30
  • Алгоритм
  • princomp(formula data = NULL subset naaction )
  • Principal Component Analysis (PCA)
  • Линейный дискриминантный анализ (Linear Discriminant Analysis -
  • Решение
  • lda(x grouping prior = proportions tol = 10e-4 method
  • Slide 37
  • Linear Discriminant Analysis (LDA)
  • Сравнение PCA и LDA
  • Метод опорных векторов (Support Vector Machines - SVM)
  • Идея алгоритма
  • Иллюстрация на простейшем примере
  • Линейная неразделимость и использование ядер
  • Иллюстрация использования ядра для отображения 2D -gt 3D
  • svm((formula data = NULL subset naaction = naomit sc
  • Support Vector Machines
  • Глубокое обучение (Deep Learning)
  • laquoВ 1997 году Deep Blue обыграл в шахматы Каспарова В 2011 Wats
  • Распознавание основано на feature detection и последующем раз
  • Распознавание рукописных цифр
  • Еще пример посложнее
  • Использование нейронной сети с обучением
  • Сверхвысокая размерность при работе с первичным представлением
  • Пиксельное кодирование
  • Принцип иерархии понятий ndash основа deep learning
  • Разреженное (sparse) кодирование
  • Словарь для лиц
  • Slide 58
  • Выделение объектов заданного класса
  • Основные архитектуры Deep Learning
  • Задача классификации распознавания и подобные являются задачей
  • Фактор - графы
  • Slide 63
  • Slide 64
  • Подход разреженного кодирования
  • Обобщенная архитектура
  • Slide 67
  • Slide 68
  • Slide 69
  • В действительности работают любые архитектуры построения функц
  • Machine Learning with Torch7 (httpcodecogbitscomwikidoku
  • Torch 7 является расширением Lua
  • Slide 73
  • Slide 74
  • Сверточные (convolution) нейронные сети
  • Свертка и архитектура 4-х уровневой сверточной сети
  • Функциональная структура
  • Примеры успешного применения сверточных сетей
  • Диагностика эпилепсии по ЭЭГ
  • Реализация сверточной сетью
  • Одна из самых больших сверточных сетей
  • Пример тэгирования
  • Пример поиска похожих по изображению
  • Пример поиска в коллекции изображений по текстовому запросу
  • Пример laquoоблачногоraquo классификатора изображений
  • Slide 86
  • Самообучающиеся нейронные сети на основе минимизации функции эн
  • RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцман
  • Алгоритм обучения Contrastive Divergence (CD)
  • Основные уравнения адаптации
  • Алгоритм Хинтона - Contrastive Divergence (CD-k)
  • darch Package for deep architectures and Restricted-Bolzmann-
  • Связь плотности вероятности и энергии
  • Задача обучения с точки минимизации энергии сети
  • Интуитивные соображения
  • Slide 96
  • Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decom
  • Sparse linear reconstruction
  • Автоэнкодер (auto encoder)
  • Архитекттура ICA моделей
  • Итеративные алгоритмы с оптимальным разреженным кодированием 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)
Page 108: !Predictive analytics part_2

Коэффициенты связей

$W$W[[1]] [1] [2][1] -014355854 02471840[2] 011378030 -00715094[3] -004343738 03667468[4] 012756946 -01303379[5] -003445704 02293772

$W[[2]] [1] [2] [3] [4] [5][1] 00420191661 -0023073732 -008762756 0035575714 -0063000016[2] 00072771988 -0131204147 -010591421 0018221305 -0025539769[3] -01071896826 -0019479685 -009892573 -0012976429 -0111886901[4] -00009477304 -0023137518 -002147218 0007969452 -0118696306[5] 00045016013 0001885546 -010170954 -0140312396 -0003970102

$W[[3]] [1] [2] [3] [4] [5][1] 01027992 -007288099 003051227 -001731639 0009518049

$vW$vW[[1]] [1] [2][1] -8335203e-06 1368580e-05[2] -6530183e-05 1135070e-04[3] 2544302e-05 -3947111e-05[4] -5512835e-06 9541682e-06[5] 3822854e-05 -6281762e-05

$vW[[2]] [1] [2] [3] [4] [5][1] 4172450e-04 -2554411e-04 4896670e-04 -3526093e-04 3041932e-04[2] -3210759e-04 1978412e-04 -3769148e-04 2727933e-04 -2338477e-04[3] 1058770e-04 -6705336e-05 1244419e-04 -9201508e-05 7678296e-05[4] -8894178e-05 5481668e-05 -1044110e-04 7558269e-05 -6477571e-05[5] 2676520e-05 -1622289e-05 3139684e-05 -2243174e-05 1954349e-05

$vW[[3]] [1] [2] [3] [4] [5][1] -0002603034 -0002398256 -0003274074 -0002542478 -000209672

Предсказание обученной сетью

predict by dnntest_Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02))test_Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1))test_x lt- matrix(c(test_Var1 test_Var2) nrow = 100 ncol = 2)nntest(dnn test_x y)

[1] 025 Value error rate

Сравнение обучающей и тестовой выборки

gttest_x [1] [2] [1] 091887443 -08940890 [2] 115219448 -06050481 [3] 069917981 -08524551 [4] 028213787 -08146816 [5] 098405598 -11440813 [6] 185911887 -08203652 [7] 010843056 -10123789 [8] 083827953 -07594760 [9] -016373562 -09087116 [10] 088298748 -09767741 [11] 005280917 -07525407

gt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370

Plot3d(test_xy) Plot3d(xy)

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)

Подготовка к обработке

starting installationstep1installpackages(devtools)library(devtools)install_github(repo = mnist username = xrobin ref = master)library(mnist)

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
  • Аппроксимация линейными многообразиями (подпространствами)
  • Slide 30
  • Алгоритм
  • princomp(formula data = NULL subset naaction )
  • Principal Component Analysis (PCA)
  • Линейный дискриминантный анализ (Linear Discriminant Analysis -
  • Решение
  • lda(x grouping prior = proportions tol = 10e-4 method
  • Slide 37
  • Linear Discriminant Analysis (LDA)
  • Сравнение PCA и LDA
  • Метод опорных векторов (Support Vector Machines - SVM)
  • Идея алгоритма
  • Иллюстрация на простейшем примере
  • Линейная неразделимость и использование ядер
  • Иллюстрация использования ядра для отображения 2D -gt 3D
  • svm((formula data = NULL subset naaction = naomit sc
  • Support Vector Machines
  • Глубокое обучение (Deep Learning)
  • laquoВ 1997 году Deep Blue обыграл в шахматы Каспарова В 2011 Wats
  • Распознавание основано на feature detection и последующем раз
  • Распознавание рукописных цифр
  • Еще пример посложнее
  • Использование нейронной сети с обучением
  • Сверхвысокая размерность при работе с первичным представлением
  • Пиксельное кодирование
  • Принцип иерархии понятий ndash основа deep learning
  • Разреженное (sparse) кодирование
  • Словарь для лиц
  • Slide 58
  • Выделение объектов заданного класса
  • Основные архитектуры Deep Learning
  • Задача классификации распознавания и подобные являются задачей
  • Фактор - графы
  • Slide 63
  • Slide 64
  • Подход разреженного кодирования
  • Обобщенная архитектура
  • Slide 67
  • Slide 68
  • Slide 69
  • В действительности работают любые архитектуры построения функц
  • Machine Learning with Torch7 (httpcodecogbitscomwikidoku
  • Torch 7 является расширением Lua
  • Slide 73
  • Slide 74
  • Сверточные (convolution) нейронные сети
  • Свертка и архитектура 4-х уровневой сверточной сети
  • Функциональная структура
  • Примеры успешного применения сверточных сетей
  • Диагностика эпилепсии по ЭЭГ
  • Реализация сверточной сетью
  • Одна из самых больших сверточных сетей
  • Пример тэгирования
  • Пример поиска похожих по изображению
  • Пример поиска в коллекции изображений по текстовому запросу
  • Пример laquoоблачногоraquo классификатора изображений
  • Slide 86
  • Самообучающиеся нейронные сети на основе минимизации функции эн
  • RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцман
  • Алгоритм обучения Contrastive Divergence (CD)
  • Основные уравнения адаптации
  • Алгоритм Хинтона - Contrastive Divergence (CD-k)
  • darch Package for deep architectures and Restricted-Bolzmann-
  • Связь плотности вероятности и энергии
  • Задача обучения с точки минимизации энергии сети
  • Интуитивные соображения
  • Slide 96
  • Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decom
  • Sparse linear reconstruction
  • Автоэнкодер (auto encoder)
  • Архитекттура ICA моделей
  • Итеративные алгоритмы с оптимальным разреженным кодированием 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)
Page 109: !Predictive analytics part_2

Предсказание обученной сетью

predict by dnntest_Var1 lt- c(rnorm(50 1 05) rnorm(50 -06 02))test_Var2 lt- c(rnorm(50 -08 02) rnorm(50 2 1))test_x lt- matrix(c(test_Var1 test_Var2) nrow = 100 ncol = 2)nntest(dnn test_x y)

[1] 025 Value error rate

Сравнение обучающей и тестовой выборки

gttest_x [1] [2] [1] 091887443 -08940890 [2] 115219448 -06050481 [3] 069917981 -08524551 [4] 028213787 -08146816 [5] 098405598 -11440813 [6] 185911887 -08203652 [7] 010843056 -10123789 [8] 083827953 -07594760 [9] -016373562 -09087116 [10] 088298748 -09767741 [11] 005280917 -07525407

gt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370

Plot3d(test_xy) Plot3d(xy)

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)

Подготовка к обработке

starting installationstep1installpackages(devtools)library(devtools)install_github(repo = mnist username = xrobin ref = master)library(mnist)

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
  • Аппроксимация линейными многообразиями (подпространствами)
  • Slide 30
  • Алгоритм
  • princomp(formula data = NULL subset naaction )
  • Principal Component Analysis (PCA)
  • Линейный дискриминантный анализ (Linear Discriminant Analysis -
  • Решение
  • lda(x grouping prior = proportions tol = 10e-4 method
  • Slide 37
  • Linear Discriminant Analysis (LDA)
  • Сравнение PCA и LDA
  • Метод опорных векторов (Support Vector Machines - SVM)
  • Идея алгоритма
  • Иллюстрация на простейшем примере
  • Линейная неразделимость и использование ядер
  • Иллюстрация использования ядра для отображения 2D -gt 3D
  • svm((formula data = NULL subset naaction = naomit sc
  • Support Vector Machines
  • Глубокое обучение (Deep Learning)
  • laquoВ 1997 году Deep Blue обыграл в шахматы Каспарова В 2011 Wats
  • Распознавание основано на feature detection и последующем раз
  • Распознавание рукописных цифр
  • Еще пример посложнее
  • Использование нейронной сети с обучением
  • Сверхвысокая размерность при работе с первичным представлением
  • Пиксельное кодирование
  • Принцип иерархии понятий ndash основа deep learning
  • Разреженное (sparse) кодирование
  • Словарь для лиц
  • Slide 58
  • Выделение объектов заданного класса
  • Основные архитектуры Deep Learning
  • Задача классификации распознавания и подобные являются задачей
  • Фактор - графы
  • Slide 63
  • Slide 64
  • Подход разреженного кодирования
  • Обобщенная архитектура
  • Slide 67
  • Slide 68
  • Slide 69
  • В действительности работают любые архитектуры построения функц
  • Machine Learning with Torch7 (httpcodecogbitscomwikidoku
  • Torch 7 является расширением Lua
  • Slide 73
  • Slide 74
  • Сверточные (convolution) нейронные сети
  • Свертка и архитектура 4-х уровневой сверточной сети
  • Функциональная структура
  • Примеры успешного применения сверточных сетей
  • Диагностика эпилепсии по ЭЭГ
  • Реализация сверточной сетью
  • Одна из самых больших сверточных сетей
  • Пример тэгирования
  • Пример поиска похожих по изображению
  • Пример поиска в коллекции изображений по текстовому запросу
  • Пример laquoоблачногоraquo классификатора изображений
  • Slide 86
  • Самообучающиеся нейронные сети на основе минимизации функции эн
  • RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцман
  • Алгоритм обучения Contrastive Divergence (CD)
  • Основные уравнения адаптации
  • Алгоритм Хинтона - Contrastive Divergence (CD-k)
  • darch Package for deep architectures and Restricted-Bolzmann-
  • Связь плотности вероятности и энергии
  • Задача обучения с точки минимизации энергии сети
  • Интуитивные соображения
  • Slide 96
  • Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decom
  • Sparse linear reconstruction
  • Автоэнкодер (auto encoder)
  • Архитекттура ICA моделей
  • Итеративные алгоритмы с оптимальным разреженным кодированием 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)
Page 110: !Predictive analytics part_2

Сравнение обучающей и тестовой выборки

gttest_x [1] [2] [1] 091887443 -08940890 [2] 115219448 -06050481 [3] 069917981 -08524551 [4] 028213787 -08146816 [5] 098405598 -11440813 [6] 185911887 -08203652 [7] 010843056 -10123789 [8] 083827953 -07594760 [9] -016373562 -09087116 [10] 088298748 -09767741 [11] 005280917 -07525407

gt x [1] [2] [1] 088054736 -110526435 [2] 106079238 -098188779 [3] 093539637 -077314850 [4] 093287405 -090543229 [5] 103270795 -073311771 [6] 007203757 -096509158 [7] 056998897 -065290008 [8] 166550025 -057820327 [9] 086844989 -075556096 [10] 081573887 -055563354 [11] 138560217 -063934370

Plot3d(test_xy) Plot3d(xy)

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)

Подготовка к обработке

starting installationstep1installpackages(devtools)library(devtools)install_github(repo = mnist username = xrobin ref = master)library(mnist)

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
  • Аппроксимация линейными многообразиями (подпространствами)
  • Slide 30
  • Алгоритм
  • princomp(formula data = NULL subset naaction )
  • Principal Component Analysis (PCA)
  • Линейный дискриминантный анализ (Linear Discriminant Analysis -
  • Решение
  • lda(x grouping prior = proportions tol = 10e-4 method
  • Slide 37
  • Linear Discriminant Analysis (LDA)
  • Сравнение PCA и LDA
  • Метод опорных векторов (Support Vector Machines - SVM)
  • Идея алгоритма
  • Иллюстрация на простейшем примере
  • Линейная неразделимость и использование ядер
  • Иллюстрация использования ядра для отображения 2D -gt 3D
  • svm((formula data = NULL subset naaction = naomit sc
  • Support Vector Machines
  • Глубокое обучение (Deep Learning)
  • laquoВ 1997 году Deep Blue обыграл в шахматы Каспарова В 2011 Wats
  • Распознавание основано на feature detection и последующем раз
  • Распознавание рукописных цифр
  • Еще пример посложнее
  • Использование нейронной сети с обучением
  • Сверхвысокая размерность при работе с первичным представлением
  • Пиксельное кодирование
  • Принцип иерархии понятий ndash основа deep learning
  • Разреженное (sparse) кодирование
  • Словарь для лиц
  • Slide 58
  • Выделение объектов заданного класса
  • Основные архитектуры Deep Learning
  • Задача классификации распознавания и подобные являются задачей
  • Фактор - графы
  • Slide 63
  • Slide 64
  • Подход разреженного кодирования
  • Обобщенная архитектура
  • Slide 67
  • Slide 68
  • Slide 69
  • В действительности работают любые архитектуры построения функц
  • Machine Learning with Torch7 (httpcodecogbitscomwikidoku
  • Torch 7 является расширением Lua
  • Slide 73
  • Slide 74
  • Сверточные (convolution) нейронные сети
  • Свертка и архитектура 4-х уровневой сверточной сети
  • Функциональная структура
  • Примеры успешного применения сверточных сетей
  • Диагностика эпилепсии по ЭЭГ
  • Реализация сверточной сетью
  • Одна из самых больших сверточных сетей
  • Пример тэгирования
  • Пример поиска похожих по изображению
  • Пример поиска в коллекции изображений по текстовому запросу
  • Пример laquoоблачногоraquo классификатора изображений
  • Slide 86
  • Самообучающиеся нейронные сети на основе минимизации функции эн
  • RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцман
  • Алгоритм обучения Contrastive Divergence (CD)
  • Основные уравнения адаптации
  • Алгоритм Хинтона - Contrastive Divergence (CD-k)
  • darch Package for deep architectures and Restricted-Bolzmann-
  • Связь плотности вероятности и энергии
  • Задача обучения с точки минимизации энергии сети
  • Интуитивные соображения
  • Slide 96
  • Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decom
  • Sparse linear reconstruction
  • Автоэнкодер (auto encoder)
  • Архитекттура ICA моделей
  • Итеративные алгоритмы с оптимальным разреженным кодированием 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)
Page 111: !Predictive analytics part_2

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)

Подготовка к обработке

starting installationstep1installpackages(devtools)library(devtools)install_github(repo = mnist username = xrobin ref = master)library(mnist)

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
  • Аппроксимация линейными многообразиями (подпространствами)
  • Slide 30
  • Алгоритм
  • princomp(formula data = NULL subset naaction )
  • Principal Component Analysis (PCA)
  • Линейный дискриминантный анализ (Linear Discriminant Analysis -
  • Решение
  • lda(x grouping prior = proportions tol = 10e-4 method
  • Slide 37
  • Linear Discriminant Analysis (LDA)
  • Сравнение PCA и LDA
  • Метод опорных векторов (Support Vector Machines - SVM)
  • Идея алгоритма
  • Иллюстрация на простейшем примере
  • Линейная неразделимость и использование ядер
  • Иллюстрация использования ядра для отображения 2D -gt 3D
  • svm((formula data = NULL subset naaction = naomit sc
  • Support Vector Machines
  • Глубокое обучение (Deep Learning)
  • laquoВ 1997 году Deep Blue обыграл в шахматы Каспарова В 2011 Wats
  • Распознавание основано на feature detection и последующем раз
  • Распознавание рукописных цифр
  • Еще пример посложнее
  • Использование нейронной сети с обучением
  • Сверхвысокая размерность при работе с первичным представлением
  • Пиксельное кодирование
  • Принцип иерархии понятий ndash основа deep learning
  • Разреженное (sparse) кодирование
  • Словарь для лиц
  • Slide 58
  • Выделение объектов заданного класса
  • Основные архитектуры Deep Learning
  • Задача классификации распознавания и подобные являются задачей
  • Фактор - графы
  • Slide 63
  • Slide 64
  • Подход разреженного кодирования
  • Обобщенная архитектура
  • Slide 67
  • Slide 68
  • Slide 69
  • В действительности работают любые архитектуры построения функц
  • Machine Learning with Torch7 (httpcodecogbitscomwikidoku
  • Torch 7 является расширением Lua
  • Slide 73
  • Slide 74
  • Сверточные (convolution) нейронные сети
  • Свертка и архитектура 4-х уровневой сверточной сети
  • Функциональная структура
  • Примеры успешного применения сверточных сетей
  • Диагностика эпилепсии по ЭЭГ
  • Реализация сверточной сетью
  • Одна из самых больших сверточных сетей
  • Пример тэгирования
  • Пример поиска похожих по изображению
  • Пример поиска в коллекции изображений по текстовому запросу
  • Пример laquoоблачногоraquo классификатора изображений
  • Slide 86
  • Самообучающиеся нейронные сети на основе минимизации функции эн
  • RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцман
  • Алгоритм обучения Contrastive Divergence (CD)
  • Основные уравнения адаптации
  • Алгоритм Хинтона - Contrastive Divergence (CD-k)
  • darch Package for deep architectures and Restricted-Bolzmann-
  • Связь плотности вероятности и энергии
  • Задача обучения с точки минимизации энергии сети
  • Интуитивные соображения
  • Slide 96
  • Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decom
  • Sparse linear reconstruction
  • Автоэнкодер (auto encoder)
  • Архитекттура ICA моделей
  • Итеративные алгоритмы с оптимальным разреженным кодированием 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)
Page 112: !Predictive analytics part_2

Работаем с пакетом 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)

Подготовка к обработке

starting installationstep1installpackages(devtools)library(devtools)install_github(repo = mnist username = xrobin ref = master)library(mnist)

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
  • Аппроксимация линейными многообразиями (подпространствами)
  • Slide 30
  • Алгоритм
  • princomp(formula data = NULL subset naaction )
  • Principal Component Analysis (PCA)
  • Линейный дискриминантный анализ (Linear Discriminant Analysis -
  • Решение
  • lda(x grouping prior = proportions tol = 10e-4 method
  • Slide 37
  • Linear Discriminant Analysis (LDA)
  • Сравнение PCA и LDA
  • Метод опорных векторов (Support Vector Machines - SVM)
  • Идея алгоритма
  • Иллюстрация на простейшем примере
  • Линейная неразделимость и использование ядер
  • Иллюстрация использования ядра для отображения 2D -gt 3D
  • svm((formula data = NULL subset naaction = naomit sc
  • Support Vector Machines
  • Глубокое обучение (Deep Learning)
  • laquoВ 1997 году Deep Blue обыграл в шахматы Каспарова В 2011 Wats
  • Распознавание основано на feature detection и последующем раз
  • Распознавание рукописных цифр
  • Еще пример посложнее
  • Использование нейронной сети с обучением
  • Сверхвысокая размерность при работе с первичным представлением
  • Пиксельное кодирование
  • Принцип иерархии понятий ndash основа deep learning
  • Разреженное (sparse) кодирование
  • Словарь для лиц
  • Slide 58
  • Выделение объектов заданного класса
  • Основные архитектуры Deep Learning
  • Задача классификации распознавания и подобные являются задачей
  • Фактор - графы
  • Slide 63
  • Slide 64
  • Подход разреженного кодирования
  • Обобщенная архитектура
  • Slide 67
  • Slide 68
  • Slide 69
  • В действительности работают любые архитектуры построения функц
  • Machine Learning with Torch7 (httpcodecogbitscomwikidoku
  • Torch 7 является расширением Lua
  • Slide 73
  • Slide 74
  • Сверточные (convolution) нейронные сети
  • Свертка и архитектура 4-х уровневой сверточной сети
  • Функциональная структура
  • Примеры успешного применения сверточных сетей
  • Диагностика эпилепсии по ЭЭГ
  • Реализация сверточной сетью
  • Одна из самых больших сверточных сетей
  • Пример тэгирования
  • Пример поиска похожих по изображению
  • Пример поиска в коллекции изображений по текстовому запросу
  • Пример laquoоблачногоraquo классификатора изображений
  • Slide 86
  • Самообучающиеся нейронные сети на основе минимизации функции эн
  • RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцман
  • Алгоритм обучения Contrastive Divergence (CD)
  • Основные уравнения адаптации
  • Алгоритм Хинтона - Contrastive Divergence (CD-k)
  • darch Package for deep architectures and Restricted-Bolzmann-
  • Связь плотности вероятности и энергии
  • Задача обучения с точки минимизации энергии сети
  • Интуитивные соображения
  • Slide 96
  • Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decom
  • Sparse linear reconstruction
  • Автоэнкодер (auto encoder)
  • Архитекттура ICA моделей
  • Итеративные алгоритмы с оптимальным разреженным кодированием 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)
Page 113: !Predictive analytics part_2

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)

Подготовка к обработке

starting installationstep1installpackages(devtools)library(devtools)install_github(repo = mnist username = xrobin ref = master)library(mnist)

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
  • Аппроксимация линейными многообразиями (подпространствами)
  • Slide 30
  • Алгоритм
  • princomp(formula data = NULL subset naaction )
  • Principal Component Analysis (PCA)
  • Линейный дискриминантный анализ (Linear Discriminant Analysis -
  • Решение
  • lda(x grouping prior = proportions tol = 10e-4 method
  • Slide 37
  • Linear Discriminant Analysis (LDA)
  • Сравнение PCA и LDA
  • Метод опорных векторов (Support Vector Machines - SVM)
  • Идея алгоритма
  • Иллюстрация на простейшем примере
  • Линейная неразделимость и использование ядер
  • Иллюстрация использования ядра для отображения 2D -gt 3D
  • svm((formula data = NULL subset naaction = naomit sc
  • Support Vector Machines
  • Глубокое обучение (Deep Learning)
  • laquoВ 1997 году Deep Blue обыграл в шахматы Каспарова В 2011 Wats
  • Распознавание основано на feature detection и последующем раз
  • Распознавание рукописных цифр
  • Еще пример посложнее
  • Использование нейронной сети с обучением
  • Сверхвысокая размерность при работе с первичным представлением
  • Пиксельное кодирование
  • Принцип иерархии понятий ndash основа deep learning
  • Разреженное (sparse) кодирование
  • Словарь для лиц
  • Slide 58
  • Выделение объектов заданного класса
  • Основные архитектуры Deep Learning
  • Задача классификации распознавания и подобные являются задачей
  • Фактор - графы
  • Slide 63
  • Slide 64
  • Подход разреженного кодирования
  • Обобщенная архитектура
  • Slide 67
  • Slide 68
  • Slide 69
  • В действительности работают любые архитектуры построения функц
  • Machine Learning with Torch7 (httpcodecogbitscomwikidoku
  • Torch 7 является расширением Lua
  • Slide 73
  • Slide 74
  • Сверточные (convolution) нейронные сети
  • Свертка и архитектура 4-х уровневой сверточной сети
  • Функциональная структура
  • Примеры успешного применения сверточных сетей
  • Диагностика эпилепсии по ЭЭГ
  • Реализация сверточной сетью
  • Одна из самых больших сверточных сетей
  • Пример тэгирования
  • Пример поиска похожих по изображению
  • Пример поиска в коллекции изображений по текстовому запросу
  • Пример laquoоблачногоraquo классификатора изображений
  • Slide 86
  • Самообучающиеся нейронные сети на основе минимизации функции эн
  • RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцман
  • Алгоритм обучения Contrastive Divergence (CD)
  • Основные уравнения адаптации
  • Алгоритм Хинтона - Contrastive Divergence (CD-k)
  • darch Package for deep architectures and Restricted-Bolzmann-
  • Связь плотности вероятности и энергии
  • Задача обучения с точки минимизации энергии сети
  • Интуитивные соображения
  • Slide 96
  • Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decom
  • Sparse linear reconstruction
  • Автоэнкодер (auto encoder)
  • Архитекттура ICA моделей
  • Итеративные алгоритмы с оптимальным разреженным кодированием 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)
Page 114: !Predictive analytics part_2

Подготовка к обработке

starting installationstep1installpackages(devtools)library(devtools)install_github(repo = mnist username = xrobin ref = master)library(mnist)

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
  • Аппроксимация линейными многообразиями (подпространствами)
  • Slide 30
  • Алгоритм
  • princomp(formula data = NULL subset naaction )
  • Principal Component Analysis (PCA)
  • Линейный дискриминантный анализ (Linear Discriminant Analysis -
  • Решение
  • lda(x grouping prior = proportions tol = 10e-4 method
  • Slide 37
  • Linear Discriminant Analysis (LDA)
  • Сравнение PCA и LDA
  • Метод опорных векторов (Support Vector Machines - SVM)
  • Идея алгоритма
  • Иллюстрация на простейшем примере
  • Линейная неразделимость и использование ядер
  • Иллюстрация использования ядра для отображения 2D -gt 3D
  • svm((formula data = NULL subset naaction = naomit sc
  • Support Vector Machines
  • Глубокое обучение (Deep Learning)
  • laquoВ 1997 году Deep Blue обыграл в шахматы Каспарова В 2011 Wats
  • Распознавание основано на feature detection и последующем раз
  • Распознавание рукописных цифр
  • Еще пример посложнее
  • Использование нейронной сети с обучением
  • Сверхвысокая размерность при работе с первичным представлением
  • Пиксельное кодирование
  • Принцип иерархии понятий ndash основа deep learning
  • Разреженное (sparse) кодирование
  • Словарь для лиц
  • Slide 58
  • Выделение объектов заданного класса
  • Основные архитектуры Deep Learning
  • Задача классификации распознавания и подобные являются задачей
  • Фактор - графы
  • Slide 63
  • Slide 64
  • Подход разреженного кодирования
  • Обобщенная архитектура
  • Slide 67
  • Slide 68
  • Slide 69
  • В действительности работают любые архитектуры построения функц
  • Machine Learning with Torch7 (httpcodecogbitscomwikidoku
  • Torch 7 является расширением Lua
  • Slide 73
  • Slide 74
  • Сверточные (convolution) нейронные сети
  • Свертка и архитектура 4-х уровневой сверточной сети
  • Функциональная структура
  • Примеры успешного применения сверточных сетей
  • Диагностика эпилепсии по ЭЭГ
  • Реализация сверточной сетью
  • Одна из самых больших сверточных сетей
  • Пример тэгирования
  • Пример поиска похожих по изображению
  • Пример поиска в коллекции изображений по текстовому запросу
  • Пример laquoоблачногоraquo классификатора изображений
  • Slide 86
  • Самообучающиеся нейронные сети на основе минимизации функции эн
  • RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцман
  • Алгоритм обучения Contrastive Divergence (CD)
  • Основные уравнения адаптации
  • Алгоритм Хинтона - Contrastive Divergence (CD-k)
  • darch Package for deep architectures and Restricted-Bolzmann-
  • Связь плотности вероятности и энергии
  • Задача обучения с точки минимизации энергии сети
  • Интуитивные соображения
  • Slide 96
  • Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decom
  • Sparse linear reconstruction
  • Автоэнкодер (auto encoder)
  • Архитекттура ICA моделей
  • Итеративные алгоритмы с оптимальным разреженным кодированием 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)
Page 115: !Predictive analytics part_2

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
  • Аппроксимация линейными многообразиями (подпространствами)
  • Slide 30
  • Алгоритм
  • princomp(formula data = NULL subset naaction )
  • Principal Component Analysis (PCA)
  • Линейный дискриминантный анализ (Linear Discriminant Analysis -
  • Решение
  • lda(x grouping prior = proportions tol = 10e-4 method
  • Slide 37
  • Linear Discriminant Analysis (LDA)
  • Сравнение PCA и LDA
  • Метод опорных векторов (Support Vector Machines - SVM)
  • Идея алгоритма
  • Иллюстрация на простейшем примере
  • Линейная неразделимость и использование ядер
  • Иллюстрация использования ядра для отображения 2D -gt 3D
  • svm((formula data = NULL subset naaction = naomit sc
  • Support Vector Machines
  • Глубокое обучение (Deep Learning)
  • laquoВ 1997 году Deep Blue обыграл в шахматы Каспарова В 2011 Wats
  • Распознавание основано на feature detection и последующем раз
  • Распознавание рукописных цифр
  • Еще пример посложнее
  • Использование нейронной сети с обучением
  • Сверхвысокая размерность при работе с первичным представлением
  • Пиксельное кодирование
  • Принцип иерархии понятий ndash основа deep learning
  • Разреженное (sparse) кодирование
  • Словарь для лиц
  • Slide 58
  • Выделение объектов заданного класса
  • Основные архитектуры Deep Learning
  • Задача классификации распознавания и подобные являются задачей
  • Фактор - графы
  • Slide 63
  • Slide 64
  • Подход разреженного кодирования
  • Обобщенная архитектура
  • Slide 67
  • Slide 68
  • Slide 69
  • В действительности работают любые архитектуры построения функц
  • Machine Learning with Torch7 (httpcodecogbitscomwikidoku
  • Torch 7 является расширением Lua
  • Slide 73
  • Slide 74
  • Сверточные (convolution) нейронные сети
  • Свертка и архитектура 4-х уровневой сверточной сети
  • Функциональная структура
  • Примеры успешного применения сверточных сетей
  • Диагностика эпилепсии по ЭЭГ
  • Реализация сверточной сетью
  • Одна из самых больших сверточных сетей
  • Пример тэгирования
  • Пример поиска похожих по изображению
  • Пример поиска в коллекции изображений по текстовому запросу
  • Пример laquoоблачногоraquo классификатора изображений
  • Slide 86
  • Самообучающиеся нейронные сети на основе минимизации функции эн
  • RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцман
  • Алгоритм обучения Contrastive Divergence (CD)
  • Основные уравнения адаптации
  • Алгоритм Хинтона - Contrastive Divergence (CD-k)
  • darch Package for deep architectures and Restricted-Bolzmann-
  • Связь плотности вероятности и энергии
  • Задача обучения с точки минимизации энергии сети
  • Интуитивные соображения
  • Slide 96
  • Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decom
  • Sparse linear reconstruction
  • Автоэнкодер (auto encoder)
  • Архитекттура ICA моделей
  • Итеративные алгоритмы с оптимальным разреженным кодированием 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)
Page 116: !Predictive analytics part_2

Визуализация

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
  • Аппроксимация линейными многообразиями (подпространствами)
  • Slide 30
  • Алгоритм
  • princomp(formula data = NULL subset naaction )
  • Principal Component Analysis (PCA)
  • Линейный дискриминантный анализ (Linear Discriminant Analysis -
  • Решение
  • lda(x grouping prior = proportions tol = 10e-4 method
  • Slide 37
  • Linear Discriminant Analysis (LDA)
  • Сравнение PCA и LDA
  • Метод опорных векторов (Support Vector Machines - SVM)
  • Идея алгоритма
  • Иллюстрация на простейшем примере
  • Линейная неразделимость и использование ядер
  • Иллюстрация использования ядра для отображения 2D -gt 3D
  • svm((formula data = NULL subset naaction = naomit sc
  • Support Vector Machines
  • Глубокое обучение (Deep Learning)
  • laquoВ 1997 году Deep Blue обыграл в шахматы Каспарова В 2011 Wats
  • Распознавание основано на feature detection и последующем раз
  • Распознавание рукописных цифр
  • Еще пример посложнее
  • Использование нейронной сети с обучением
  • Сверхвысокая размерность при работе с первичным представлением
  • Пиксельное кодирование
  • Принцип иерархии понятий ndash основа deep learning
  • Разреженное (sparse) кодирование
  • Словарь для лиц
  • Slide 58
  • Выделение объектов заданного класса
  • Основные архитектуры Deep Learning
  • Задача классификации распознавания и подобные являются задачей
  • Фактор - графы
  • Slide 63
  • Slide 64
  • Подход разреженного кодирования
  • Обобщенная архитектура
  • Slide 67
  • Slide 68
  • Slide 69
  • В действительности работают любые архитектуры построения функц
  • Machine Learning with Torch7 (httpcodecogbitscomwikidoku
  • Torch 7 является расширением Lua
  • Slide 73
  • Slide 74
  • Сверточные (convolution) нейронные сети
  • Свертка и архитектура 4-х уровневой сверточной сети
  • Функциональная структура
  • Примеры успешного применения сверточных сетей
  • Диагностика эпилепсии по ЭЭГ
  • Реализация сверточной сетью
  • Одна из самых больших сверточных сетей
  • Пример тэгирования
  • Пример поиска похожих по изображению
  • Пример поиска в коллекции изображений по текстовому запросу
  • Пример laquoоблачногоraquo классификатора изображений
  • Slide 86
  • Самообучающиеся нейронные сети на основе минимизации функции эн
  • RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцман
  • Алгоритм обучения Contrastive Divergence (CD)
  • Основные уравнения адаптации
  • Алгоритм Хинтона - Contrastive Divergence (CD-k)
  • darch Package for deep architectures and Restricted-Bolzmann-
  • Связь плотности вероятности и энергии
  • Задача обучения с точки минимизации энергии сети
  • Интуитивные соображения
  • Slide 96
  • Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decom
  • Sparse linear reconstruction
  • Автоэнкодер (auto encoder)
  • Архитекттура ICA моделей
  • Итеративные алгоритмы с оптимальным разреженным кодированием 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)
Page 117: !Predictive analytics part_2

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
  • Аппроксимация линейными многообразиями (подпространствами)
  • Slide 30
  • Алгоритм
  • princomp(formula data = NULL subset naaction )
  • Principal Component Analysis (PCA)
  • Линейный дискриминантный анализ (Linear Discriminant Analysis -
  • Решение
  • lda(x grouping prior = proportions tol = 10e-4 method
  • Slide 37
  • Linear Discriminant Analysis (LDA)
  • Сравнение PCA и LDA
  • Метод опорных векторов (Support Vector Machines - SVM)
  • Идея алгоритма
  • Иллюстрация на простейшем примере
  • Линейная неразделимость и использование ядер
  • Иллюстрация использования ядра для отображения 2D -gt 3D
  • svm((formula data = NULL subset naaction = naomit sc
  • Support Vector Machines
  • Глубокое обучение (Deep Learning)
  • laquoВ 1997 году Deep Blue обыграл в шахматы Каспарова В 2011 Wats
  • Распознавание основано на feature detection и последующем раз
  • Распознавание рукописных цифр
  • Еще пример посложнее
  • Использование нейронной сети с обучением
  • Сверхвысокая размерность при работе с первичным представлением
  • Пиксельное кодирование
  • Принцип иерархии понятий ndash основа deep learning
  • Разреженное (sparse) кодирование
  • Словарь для лиц
  • Slide 58
  • Выделение объектов заданного класса
  • Основные архитектуры Deep Learning
  • Задача классификации распознавания и подобные являются задачей
  • Фактор - графы
  • Slide 63
  • Slide 64
  • Подход разреженного кодирования
  • Обобщенная архитектура
  • Slide 67
  • Slide 68
  • Slide 69
  • В действительности работают любые архитектуры построения функц
  • Machine Learning with Torch7 (httpcodecogbitscomwikidoku
  • Torch 7 является расширением Lua
  • Slide 73
  • Slide 74
  • Сверточные (convolution) нейронные сети
  • Свертка и архитектура 4-х уровневой сверточной сети
  • Функциональная структура
  • Примеры успешного применения сверточных сетей
  • Диагностика эпилепсии по ЭЭГ
  • Реализация сверточной сетью
  • Одна из самых больших сверточных сетей
  • Пример тэгирования
  • Пример поиска похожих по изображению
  • Пример поиска в коллекции изображений по текстовому запросу
  • Пример laquoоблачногоraquo классификатора изображений
  • Slide 86
  • Самообучающиеся нейронные сети на основе минимизации функции эн
  • RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцман
  • Алгоритм обучения Contrastive Divergence (CD)
  • Основные уравнения адаптации
  • Алгоритм Хинтона - Contrastive Divergence (CD-k)
  • darch Package for deep architectures and Restricted-Bolzmann-
  • Связь плотности вероятности и энергии
  • Задача обучения с точки минимизации энергии сети
  • Интуитивные соображения
  • Slide 96
  • Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decom
  • Sparse linear reconstruction
  • Автоэнкодер (auto encoder)
  • Архитекттура ICA моделей
  • Итеративные алгоритмы с оптимальным разреженным кодированием 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)
Page 118: !Predictive analytics part_2

Распознавание рукописных цифр в 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
  • Аппроксимация линейными многообразиями (подпространствами)
  • Slide 30
  • Алгоритм
  • princomp(formula data = NULL subset naaction )
  • Principal Component Analysis (PCA)
  • Линейный дискриминантный анализ (Linear Discriminant Analysis -
  • Решение
  • lda(x grouping prior = proportions tol = 10e-4 method
  • Slide 37
  • Linear Discriminant Analysis (LDA)
  • Сравнение PCA и LDA
  • Метод опорных векторов (Support Vector Machines - SVM)
  • Идея алгоритма
  • Иллюстрация на простейшем примере
  • Линейная неразделимость и использование ядер
  • Иллюстрация использования ядра для отображения 2D -gt 3D
  • svm((formula data = NULL subset naaction = naomit sc
  • Support Vector Machines
  • Глубокое обучение (Deep Learning)
  • laquoВ 1997 году Deep Blue обыграл в шахматы Каспарова В 2011 Wats
  • Распознавание основано на feature detection и последующем раз
  • Распознавание рукописных цифр
  • Еще пример посложнее
  • Использование нейронной сети с обучением
  • Сверхвысокая размерность при работе с первичным представлением
  • Пиксельное кодирование
  • Принцип иерархии понятий ndash основа deep learning
  • Разреженное (sparse) кодирование
  • Словарь для лиц
  • Slide 58
  • Выделение объектов заданного класса
  • Основные архитектуры Deep Learning
  • Задача классификации распознавания и подобные являются задачей
  • Фактор - графы
  • Slide 63
  • Slide 64
  • Подход разреженного кодирования
  • Обобщенная архитектура
  • Slide 67
  • Slide 68
  • Slide 69
  • В действительности работают любые архитектуры построения функц
  • Machine Learning with Torch7 (httpcodecogbitscomwikidoku
  • Torch 7 является расширением Lua
  • Slide 73
  • Slide 74
  • Сверточные (convolution) нейронные сети
  • Свертка и архитектура 4-х уровневой сверточной сети
  • Функциональная структура
  • Примеры успешного применения сверточных сетей
  • Диагностика эпилепсии по ЭЭГ
  • Реализация сверточной сетью
  • Одна из самых больших сверточных сетей
  • Пример тэгирования
  • Пример поиска похожих по изображению
  • Пример поиска в коллекции изображений по текстовому запросу
  • Пример laquoоблачногоraquo классификатора изображений
  • Slide 86
  • Самообучающиеся нейронные сети на основе минимизации функции эн
  • RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцман
  • Алгоритм обучения Contrastive Divergence (CD)
  • Основные уравнения адаптации
  • Алгоритм Хинтона - Contrastive Divergence (CD-k)
  • darch Package for deep architectures and Restricted-Bolzmann-
  • Связь плотности вероятности и энергии
  • Задача обучения с точки минимизации энергии сети
  • Интуитивные соображения
  • Slide 96
  • Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decom
  • Sparse linear reconstruction
  • Автоэнкодер (auto encoder)
  • Архитекттура ICA моделей
  • Итеративные алгоритмы с оптимальным разреженным кодированием 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)
Page 119: !Predictive analytics part_2

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
  • Аппроксимация линейными многообразиями (подпространствами)
  • Slide 30
  • Алгоритм
  • princomp(formula data = NULL subset naaction )
  • Principal Component Analysis (PCA)
  • Линейный дискриминантный анализ (Linear Discriminant Analysis -
  • Решение
  • lda(x grouping prior = proportions tol = 10e-4 method
  • Slide 37
  • Linear Discriminant Analysis (LDA)
  • Сравнение PCA и LDA
  • Метод опорных векторов (Support Vector Machines - SVM)
  • Идея алгоритма
  • Иллюстрация на простейшем примере
  • Линейная неразделимость и использование ядер
  • Иллюстрация использования ядра для отображения 2D -gt 3D
  • svm((formula data = NULL subset naaction = naomit sc
  • Support Vector Machines
  • Глубокое обучение (Deep Learning)
  • laquoВ 1997 году Deep Blue обыграл в шахматы Каспарова В 2011 Wats
  • Распознавание основано на feature detection и последующем раз
  • Распознавание рукописных цифр
  • Еще пример посложнее
  • Использование нейронной сети с обучением
  • Сверхвысокая размерность при работе с первичным представлением
  • Пиксельное кодирование
  • Принцип иерархии понятий ndash основа deep learning
  • Разреженное (sparse) кодирование
  • Словарь для лиц
  • Slide 58
  • Выделение объектов заданного класса
  • Основные архитектуры Deep Learning
  • Задача классификации распознавания и подобные являются задачей
  • Фактор - графы
  • Slide 63
  • Slide 64
  • Подход разреженного кодирования
  • Обобщенная архитектура
  • Slide 67
  • Slide 68
  • Slide 69
  • В действительности работают любые архитектуры построения функц
  • Machine Learning with Torch7 (httpcodecogbitscomwikidoku
  • Torch 7 является расширением Lua
  • Slide 73
  • Slide 74
  • Сверточные (convolution) нейронные сети
  • Свертка и архитектура 4-х уровневой сверточной сети
  • Функциональная структура
  • Примеры успешного применения сверточных сетей
  • Диагностика эпилепсии по ЭЭГ
  • Реализация сверточной сетью
  • Одна из самых больших сверточных сетей
  • Пример тэгирования
  • Пример поиска похожих по изображению
  • Пример поиска в коллекции изображений по текстовому запросу
  • Пример laquoоблачногоraquo классификатора изображений
  • Slide 86
  • Самообучающиеся нейронные сети на основе минимизации функции эн
  • RBM ndash Restricted Bolzman Machine ndash ограниченная машина Больцман
  • Алгоритм обучения Contrastive Divergence (CD)
  • Основные уравнения адаптации
  • Алгоритм Хинтона - Contrastive Divergence (CD-k)
  • darch Package for deep architectures and Restricted-Bolzmann-
  • Связь плотности вероятности и энергии
  • Задача обучения с точки минимизации энергии сети
  • Интуитивные соображения
  • Slide 96
  • Sparse Modeling Sparse Auto-Encoders Predictive Sparse Decom
  • Sparse linear reconstruction
  • Автоэнкодер (auto encoder)
  • Архитекттура ICA моделей
  • Итеративные алгоритмы с оптимальным разреженным кодированием 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)