Машинное обучение в трейдинге: теория, модели, практика и алготорговля - страница 531

 
elibrarius:

Вопрос к знатокам  R.

Как матрицу с абсолютными значениями преобразовать в матрицу классов по софтмакс?

apply(matr, 1, function (rowvec) { result <- rep(0, length(rowvec)); result[which.max(rowvec)] <- 1; result } )

и транспонировать по необходимости в зависимости от размерности матрицы

 
Maxim Dmitrievsky:

а, ну пока нет библиотек если.. не самому же их писать )


думаю написать им, попросить нейросеть в долг, если заработает - верну с % :)

ну кстати они уже чуть ближе к оригиналу, хотя бы медиаторы добавили, но это все равно не ИИ т.к. синапсы новые сами по себе не образуются и не перестраиваются, насколько я понял

 
Maxim Dmitrievsky:

думаю написать им, попросить нейросеть в долг, если заработает - верну с % :)

Я думаю, что если нет какого-либо сдвига в решениях с простыми МЛП, то его не будет и со сложными НС. Кроме того, даже если заменить МЛП более сложной НС, то далеко не факт, что результат как-то улучшится. Потому, что другой инструмент требует другого обращения, другой постановки задачи.

Пока останусь верен простым МЛП и древним, БП, алгоритмам обучения, а там видно будет - если реальная необходимость возникнет.

 
anonymous:

и транспонировать по необходимости в зависимости от размерности матрицы

Ого! Намного короче! Спасибо!

Немного переделал, новую матрицу через копирование из старой создаю, чтобы остались названия столбцов и строк. Так универсальнее будет на случай, если они должны дальше использоваться. И сразу перворачиваю матрицу. Как я понял, apply(x,1,f) всегда! переворачивает матрицу, т.к. обрабатывает данные построчно и объединяет в столбцы.

get_softmax <- function(m){
    t(apply(m, 1, function (row) {r <- row;  r [1:length(row)] <-0 ; r[which.max(row)] <- 1;  r } ))
}

 
Yuriy Asaulenko:

Я думаю, что если нет какого-либо сдвига в решениях с простыми МЛП, то его не будет и со сложными НС. Кроме того, даже если заменить МЛП более сложной НС, то далеко не факт, что результат как-то улучшится. Потому, что другой инструмент требует другого обращения, другой постановки задачи.

Пока останусь верен простым МЛП и древним, БП, алгоритмам обучения, а там видно будет - если реальная необходимость возникнет.


да пока сам леса кручу-верчу, просто люблю когда все быстро считается, можно много стратегий перебрать

был бы более производительный аналог - перешел бы на него.. а так да, 90% это датамайнинг 10% выбор модели

 
Maxim Dmitrievsky:

да пока сам леса кручу-верчу, просто люблю когда все быстро считается, можно много стратегий перебрать

был бы более производительный аналог - перешел бы на него.. а так да, 90% это датамайнинг 10% выбор модели

Что касается производительности, то время реакции обученного 6-ти слойного МЛП (~60 нейронов) - 0.005с. Вполне достаточно практически для всего.

Что касается времени обучения, а это долго, то это вообще не волнует, т.к. только на обдумывание каждого следующего эксперимента уходит гораздо больше времени - неделя, а то и более.

Ну, а переобучать раз в несколько месяцев, скажем, затратим мы пару дней - думаю не проблема. Переделывать систему на логике гораздо дольше. Да и просто стандартное обучение не проходит - нужны продолжительные танцы с бубном между эпохами. А стандартное обучение (без танцев)) дает прекрасные результаты - но только на обучающей выборке.)

 

Еще проблема с R.

На одном компьютере все нормально, на другом какие то повышенные требования к правильности кода.

Например

darch.unitFunction = linearUnit - вызывало крах Rterm.exe

поменял на

darch.unitFunction = "linearUnit"

эту точку стал проходить до следующей ошибки.

так же пришлось поменять library(darch) на require(darch)

Теперь на самом обучении облом.

    R_NN <- darch(
        darch = NULL,
        x = MatrixLearnX ,
        y = MatrixLearnY ,
        paramsList = params
    )

много вариантов перепробовал, всегда происходит крах Rterm.exe

У R  есть какое-то регулирование уровня ошибки? Может на втором ПК у меня оказался уровень ошибок для разаработки, когда остановка при каждом warning-е происходит?

На обоих компьютерах R ставил с настройками по умолчанию, пакеты все установил.
Как исправить?

 

Если библиотека darch не установлена то library(darch) вызовет ошибку и выполнение кода остановится, а require(darch) вызовет просто варнинг и код продолжит работать, но раз бибилотека не установлена то и её функции вызывать не получится.

Нужно выполнить
install.packages("darch", dependencies=TRUE) для автоматической установки библиотеки

 
Yuriy Asaulenko:

Что касается производительности, то время реакции обученного 6-ти слойного МЛП (~60 нейронов) - 0.005с. Вполне достаточно практически для всего.

Что касается времени обучения, а это долго, то это вообще не волнует, т.к. только на обдумывание каждого следующего эксперимента уходит гораздо больше времени - неделя, а то и более.

Ну, а переобучать раз в несколько месяцев, скажем, затратим мы пару дней - думаю не проблема. Переделывать систему на логике гораздо дольше. Да и просто стандартное обучение не проходит - нужны продолжительные танцы с бубном между эпохами. А стандартное обучение (без танцев)) дает прекрасные результаты - но только на обучающей выборке.)


немного не так делаю - активно юзаю оптимизатор именно для поиска стратегий, то есть перебираются фичи, комбинации блоков ТС, еще что-то.. потому что иногда даже бывает так что какую-то мелочь не учел, а ее в системе и не хватало. А что бы перебрать хотя бы сотню вариантов нужна нехилая скорость обучения (причем 100 вариантов это очень мало).. ну тут у каждого свой подход, я не говорю что мой лучше. Можно конечно сказать что НС сама по себе оптимизатор, но все равно всегда существует ряд гиперпараметров которые можно подобрать на начальном этапе

 
Maxim Dmitrievsky:

немного не так делаю - активно юзаю оптимизатор именно для поиска стратегий, то есть перебираются фичи, комбинации блоков ТС, еще что-то.. потому что иногда даже бывает так что какую-то мелочь не учел, а ее в системе и не хватало. А что бы перебрать хотя бы сотню вариантов нужна нехилая скорость обучения (причем 100 вариантов это очень мало).. ну тут у каждого свой подход, я не говорю что мой лучше. Можно конечно сказать что НС сама по себе оптимизатор, но все равно всегда существует ряд гиперпараметров которые можно подобрать на начальном этапе

Этак Вам вскоре придется майнинг ферму заводить для добычи стратегий.

Причина обращения: