기고글 토론 "3세대 신경망: 심층 신경망" - 페이지 12

 
kimkarus:

블라디미르 페레르벤코

R Studio 작업에 대한 추가 정보를 문서에 추가하세요.

  • 모든 것이 올바르게 실행되도록 하려면 호스트 파일에 "localhost"에 대한 다른 참조가 없는지 확인해야 합니다.

안녕하세요.

호스트 파일에 대해 잘 모르겠습니다. 더 자세히 설명해 주시겠어요?

행운을 빕니다

 
kimkarus:

블라디미르 페레르벤코

R Studio 작업에 대한 추가 정보를 문서에 추가하세요.

  • 모든 것을 올바르게 실행하려면 호스트 파일에 "localhost"에 대한 다른 참조가 없는지 확인해야 합니다.
  • 모든 패키지를 설치하고 명령을 사용하여 실행하세요(R 작업 영역에서):

install.packages("R.matlab")
install.packages("deepnet")
install.packages("caret")
install.packages("h2o")
install.packages("TTR")
install.packages("rminer")
install.packages("foreach")
install.packages("doParallel")
install.packages("svSocket")
install.packages("lattice")
install.packages("ggplot2")
install.packages("statmod")
install.packages("kknn")
install.packages("iterators")
install.packages("parallel")

library("R.matlab")
library("deepnet")
library("caret")
library("h2o")
library("TTR")
library("rminer")
library("foreach")
library("doParallel")
library("svSocket")
library("lattice")
library("ggplot2")
library("statmod")
library("kknn")
library("iterators")
library("parallel")

저는 설치된 패키지를 확인하기 위해 다른 형태의 레코드를 사용합니다:

packets <- Hmisc::Cs(R.matlab, deepnet, caret, h2o, TTR, rminer, foreach, doParallel, 
                        svSocket, lattice, ggplot2, statmod, kknn, iterators, parallel)
for(i in 1:length(packets)) {
  if (! (packets[i] %in% rownames(installed.packages()))) { 
    install.packages(packets[i]) }
}

라이브러리를 사용하는 함수에 대한 설명에서 라이브러리를 로드해야 합니다. Expert Advisor를 초기화할 때 이 방법으로도 할 수 있습니다.

그렇다면 왜 테스터에서 Expert Advisor를 실행해야 할까요?

행운을 빕니다.

 

오랫동안 R 스크립트를 디버깅하는 동안 들어오는 데이터에 NA가 있으면 잡기 어려운 버그를 발견했습니다. 단순히 신호를 트리거하지 않습니다. "e_SAE_init.r" 파일에서 new.data <- predict(prepr, tail(x, 50)): x <- na.omit(x) 전에 Test(dt,x) 함수에 NA 정리 용어를 추가하는 것이 좋습니다;

이것은 "버팀목"처럼 보이지만 아직 더 나은 것을 생각하지 못했습니다.

이 기능이 없으면 숨겨진 오류가 발생합니다:

if (sqrt(denom) > .Machine$double.eps) x/sqrt(denom) else x * : TRUE/FALSE가 필요한 곳에 누락된 값 오류

 
kimkarus:

오랫동안 R 스크립트를 디버깅하는 동안 들어오는 데이터에 NA가 있으면 잡기 어려운 버그를 발견했습니다. 단순히 신호를 트리거하지 않습니다. "e_SAE_init.r" 파일에서 new.data <- predict(prepr, tail(x, 50)): x <- na.omit(x) 전에 Test(dt,x) 함수에 NA 정리 용어를 추가하는 것이 좋습니다;

이것은 "버팀목"처럼 보이지만 아직 더 나은 것을 생각하지 못했습니다.

이 기능이 없으면 숨겨진 오류가 발생합니다:

if (sqrt(denom) > .Machine$double.eps) x/sqrt(denom) else x * : TRUE/FALSE가 필요한 곳에 값이 없습니다.

김카루스:

오랫동안 R 스크립트를 디버깅하던 중 들어오는 데이터에 NA가 있으면 잡기 어려운 버그를 발견했습니다. 단순히 신호를 트리거하지 않습니다. "e_SAE_init.r" 파일에서, new.data <- predict(prepr, tail(x, 50)): x <- na.omit(x) 전에 Test(dt,x) 함수에 NA 정리 용어를 추가하는 것이 좋습니다;

이것은 "버팀목"처럼 보이지만 아직 더 나은 것을 생각하지 못했습니다.

이 기능이 없으면 숨겨진 오류가 발생합니다:

if (sqrt(denom) > .Machine$double.eps) x/sqrt(denom) else x * : TRUE/FALSE가 필요한 값 누락 오류

이 문은 올바르지 않습니다.

Test(dt, x) 함수에서 x는 In() 함수에 의해 계산된 입력 데이터입니다. "i_SAE_fun.r" 스크립트에서 이를 살펴봅시다.

In <- function(p = 16){
        require(TTR)
        adx <- ADX(price, n = p)
        ar <- aroon(price[ ,c('High', 'Low')], n = p)[ ,'oscillator']
        cci <- CCI(price[ ,2:4], n = p)
        chv <- chaikinVolatility(price[ ,2:4], n = p)
        cmo <- CMO(price[ ,'Med'], n = p)
        macd <- MACD(price[ ,'Med'], 12, 26, 9)[ ,'macd']
        osma <- macd - MACD(price[ ,'Med'],12, 26, 9)[ ,'signal']
        rsi <- RSI(price[ ,'Med'], n = p)
        stoh <- stoch(price[ ,2:4], 14, 3, 3)
        smi <- SMI(price[ ,2:4],n = p, nFast = 2, nSlow = 25, nSig = 9)
        vol <- volatility(price[ ,1:4], n = p, calc="yang.zhang", N=96)
        In <- cbind(adx, ar, cci, chv, cmo, macd, osma, rsi, stoh, smi, vol)
        return(In)
}

이것은 여러 지표입니다. 2000개의 막대 길이를 가진 가격[] 기록에서 이를 계산해 보겠습니다.

> x <- In()필요한 패키지 로드 중: TTR 어떤 데이터가 있는지 봅시다
> summary(x)
      DIp             DIn                DX          
 Min.   :20.24   Min.   :  9.546   Min.   : 0.04605  
 1st Qu.:43.61   1st Qu.: 31.022   1st Qu.:10.28793  
 Median :50.46   Median : 39.297   Median :19.31075  
 Mean   :49.01   Mean   : 41.833   Mean   :21.82957  
 3rd Qu.:55.78   3rd Qu.: 49.441   3rd Qu.:31.18539  
 Max.   :74.50   Max.   :116.050   Max.   :71.84495  
 NA's   :16      NA's   :16        NA's   :16        
      ADX               ar                cci           
 Min.   : 7.038   Min.   :-100.000   Min.   :-364.2786  
 1st Qu.:15.559   1st Qu.: -56.250   1st Qu.: -86.9604  
 Median :20.450   Median : -12.500   Median :  -6.4301  
 Mean   :21.878   Mean   :  -1.147   Mean   :  -0.3145  
 3rd Qu.:27.330   3rd Qu.:  56.250   3rd Qu.:  86.1551  
 Max.   :47.191   Max.   : 100.000   Max.   : 331.4449  
 NA's   :31       NA's   :16         NA's   :15         
      chv                cmo                macd          
 Min.   :-0.63538   Min.   :-88.8628   Min.   :-0.219469  
 1st Qu.:-0.28769   1st Qu.:-29.6125   1st Qu.:-0.030508  
 Median :-0.01415   Median : -0.8713   Median : 0.001847  
 Mean   : 0.12162   Mean   : -1.6646   Mean   : 0.009282  
 3rd Qu.: 0.35276   3rd Qu.: 27.7824   3rd Qu.: 0.037112  
 Max.   : 7.37405   Max.   : 86.9767   Max.   : 0.703234  
 NA's   :31         NA's   :16         NA's   :25         
      osma               rsi             fastK       
 Min.   :-0.10903   Min.   : 8.614   Min.   :0.0000  
 1st Qu.:-0.01063   1st Qu.:41.108   1st Qu.:0.2246  
 Median :-0.00016   Median :50.547   Median :0.4553  
 Mean   :-0.00006   Mean   :49.953   Mean   :0.4793  
 3rd Qu.: 0.01021   3rd Qu.:58.706   3rd Qu.:0.7425  
 Max.   : 0.28849   Max.   :84.854   Max.   :1.0000  
 NA's   :33         NA's   :16       NA's   :13      
     fastD             slowD              SMI         
 Min.   :0.01645   Min.   :0.03279   Min.   :-77.616  
 1st Qu.:0.23056   1st Qu.:0.23618   1st Qu.:-27.662  
 Median :0.45989   Median :0.46420   Median : -2.998  
 Mean   :0.47916   Mean   :0.47922   Mean   : -3.468  
 3rd Qu.:0.72776   3rd Qu.:0.71850   3rd Qu.: 21.330  
 Max.   :0.98610   Max.   :0.96254   Max.   : 73.964  
 NA's   :15        NA's   :17        NA's   :25       
     signal             vol          
 Min.   :-74.526   Min.   :0.001235  
 1st Qu.:-24.781   1st Qu.:0.003168  
 Median : -2.446   Median :0.004686  
 Mean   : -3.358   Mean   :0.005457  
 3rd Qu.: 19.029   3rd Qu.:0.006484  
 Max.   : 71.664   Max.   :0.047742  
 NA's   :33        NA's   :16        
모든 변수는 NA입니다. 하지만 모든 지표가 그렇듯이 처음에 위치합니다!!! 모든 지표가 그렇습니다. 따라서 스크립트를 작성할 때

 new.data <- predict(prepr, tail(x, 500));

정의되지 않은 데이터를 잘라냅니다. 조건 : nrow(x) > 500 + max(NA). 즉, 적어도 우리의 경우 533입니다. 안전을 위해 nrow(x) = 600-700을 입력합니다.

x에서 어떻게 불확실한 NA를 얻었는지 모르겠습니다.

행운을 빕니다.

 

안녕하세요 블라디미르,

브라질에서 왔습니다!!!

R을 사용하여 신경망에 대한 지침을 읽었지만 멍청한 질문이 있습니다 (미안합니다, 나는 이것에 초보자!).

당신이 쓴 튜토리얼 ( https://www.mql5.com/ko/articles/1103#ch_3) 에서"섹션 3.3.1 - 소스 데이터"에서 내가 잘 이해 한 pr.OHLC라는 함수를 설명했습니다.

그러나 아래 결과에 필요한 매개 변수가 무엇인지 명확하지 않은 몇 가지 결과를 보여줍니다.

> head(price)
        Open    High     Low   Close      Med     CO
[1,] 1.33848 1.33851 1.33824 1.33844 1.338375 -4e-05
[2,] 1.33843 1.33868 1.33842 1.33851 1.338550  8e-05
[3,] 1.33849 1.33862 1.33846 1.33859 1.338540  1e-04
[4,] 1.33858 1.33861 1.33856 1.33859 1.338585  1e-05
[5,] 1.33862 1.33868 1.33855 1.33855 1.338615 -7e-05 

이 부분에 대해 도와주실 수 있나요?

최고입니다,

파비오

Third Generation Neural Networks: Deep Networks
Third Generation Neural Networks: Deep Networks
  • 2015.02.05
  • Vladimir Perervenko
  • www.mql5.com
This article is dedicated to a new and perspective direction in machine learning - deep learning or, to be precise, deep neural networks. This is a brief review of second generation neural networks, the architecture of their connections and main types, methods and rules of learning and their main disadvantages followed by the history of the third generation neural network development, their main types, peculiarities and training methods. Conducted are practical experiments on building and training a deep neural network initiated by the weights of a stacked autoencoder with real data. All the stages from selecting input data to metric derivation are discussed in detail. The last part of the article contains a software implementation of a deep neural network in an Expert Advisor with a built-in indicator based on MQL4/R.
 
fabiocarvalho:

안녕하세요 블라디미르,

브라질에서 왔습니다!!!

R을 사용하여 신경망에 대한 지침을 읽었지만 멍청한 질문이 있습니다 (미안합니다, 나는 이것에 초보자!).

당신이 쓴 튜토리얼 ( https://www.mql5.com/ko/articles/1103#ch_3) 에서"섹션 3.3.1 - 소스 데이터"에서 내가 잘 이해 한 pr.OHLC라는 함수를 설명했습니다.

그러나 아래 결과에 필요한 매개 변수가 무엇인지 명확하지 않은 몇 가지 결과를 보여줍니다.

이 부분에 대해 도와주실 수 있나요?

최고입니다,

파비오

안녕하세요, 파비오

이해가 안 되는 부분이 있나요?

pr.OHLC <- function (o, h, l, c) 
{
  #Unite quote vectors into a matrix having previously expanded them
  #Indexing of time series of vectors in R starts with 1. 
  #Direction of indexing is from old to new ones.   
  price <- cbind(Open = rev(o), High = rev(h), Low = rev(l), Close = rev(c))
  Med <- (price[, 2] + price[, 3])/2 #We calculate average price (HIgh + Low)/2
  CO <- price[, 4] - price[, 1] # We calculate body candles (Close - Open)
  #add Med and CO to the matrix
  price <- cbind(price, Med, CO)#We are putting it all in a matrix
}
 

안녕하세요 블라디미르,

MT5용 파일을 구할 수 있을까요?

안부

파비오 리마

 
fabioflimaster:

안녕하세요 블라디미르,

MT5용 파일을 구할 수 있을까요?

안부

파비오 리마

안녕하세요 파비오,

죄송합니다.

저는 MKL5에 글을 쓰지 않습니다.

안부 전해주세요.

블라디미르


 

질문이 하나 있습니다 . 가격 벡터의 순서가 명확하지 않습니다 .

여기서 반전을 수행합니다 : 가격 <- cbind(Open = rev(o), High = rev(h), Low = rev(l), Close = rev(c))

o,h,l,c의 원래 순서는 무엇인가요?

 
jake89:

질문이 하나 있습니다 . 가격 벡터의 순서가 명확하지 않습니다 .

여기서 반전을 수행합니다 : 가격 <- cbind(Open = rev(o), High = rev(h), Low = rev(l), Close = rev(c))

o,h,l,c의 원래 순서는 무엇입니까?

안녕하세요,

MT4 번호 매기기 막대는 가장 최근 것부터 가장 오래된 것까지입니다. 반대로 R은 오래된 것에서 새로운 것, 새로운 막대가 마지막에 있습니다.