트레이딩의 머신러닝: 이론, 모델, 실전 및 알고리즘 트레이딩 - 페이지 1884

 
예브게니 듀카 :
1. 모든 것이 정확합니다. 모든 옵션을 통과해야 합니다. 문제는 너무 노동 집약적이라는 것입니다.
2. 시도했는데 더 나빠졌습니다.
3. 그리고 그녀가 사용하는 것을 찾는 방법 ??? 블랙박스라서 다 제출합니다.

MT 테스터의 옵티마이저와 같은 하이퍼파라미터 옵티마이저가 있습니다. 하루 동안 넣어 스스로 선택합니다.

그 역시 계산할 때까지 기다리기를 주저했지만 이것이 국회의 특징이고 정확한 과학은 없고 경험(타인, 자신)과 직관만 있을 뿐이다. 여기 또는 PM에서 결과를 공유할 수 있습니다.

이전에 실습 예제를 게시했습니다. 요점은 신호를 구매하도록 네트워크를 훈련시키는 것입니다. 그런 다음 항목을 뒤집으면 네트워크가 매도 신호를 보내야 합니다. 이것은 이진 분류이며 신호가 있거나 없습니다. 네트워크가 매수와 싯을 인식하도록 가르치는 것이 가능했지만 IMHO, 이것은 더 나쁩니다. 출력 범위는 0-1로 제한되며, 구매만 찾고 있는 경우 범위는 2개의 클래스(구매가 있음, 구매 없음)로 나뉘며 임계값은 최소 0.8만큼 이동할 수 있습니다. 매수 자리를 찾으면 0-1은 매수, 자리, 그 사이의 3가지 섹션으로 나뉩니다. IMHO, 구매 신호만 검색하면: 2배 더 많은 훈련 예제(입력 뒤집기), 더 작은 네트워크 크기(작업이 더 간단하고 더 적은 뉴런이 필요함), 더 적은 훈련 시간, 더 쉽게 솔루션을 찾을 수 있습니다( 1 클래스), 그러나 이것은 이론일 뿐입니다.

나는 네트워크 자체가 신호를 찾고 가격, 원하는 신호를 제공하고 모든 것을 자체적으로 수행할 것이라고 생각합니다. lstm으로 시작했는데 이상적인 것 같지만 아직 뭔가 좋지 않습니다. 일반 네트웍을 해보고 싶은데 안되면 차기작을 생각해봐야겠네요. CNN은 어떻게 든 출혈이 발생하고 레이어와 코어의 구성을 선택하여 괴로워합니다. 일반 네트워크에 웨이블릿을 제출하는 것이 더 쉬울 것입니다. 그리고 이것이 작동하지 않으면 입력 기능을 선택하는 데 더 많은 노력을 기울여야 하지만 문제는 이것이 필요하지만 "클래식" 시스템을 더 명확하고 안정적이며 경제적으로 만드는 것이 더 쉽습니다. 테스트하기 더 쉽습니다.

그리고 결과를 어떻게 분석합니까? 숫자만 볼까요? 이 코드를 사용합니까?

plt.plot(history.history['loss'])
plt.plot(history.history['val_loss'])

2개의 그래프가 만들어지고 기차와 테스트에서 오류가 발생하여 네트워크가 누락된 항목과 이동 방향을 이해하는 데 사용할 수 있습니다.

 
로르샤흐 :

그 역시 계산할 때까지 기다리기를 주저했지만 이것이 국회의 특징이고 정확한 과학은 없고 경험(타인, 자신)과 직관만 있을 뿐이다. 여기 또는 PM에서 결과를 공유할 수 있습니다.

우리는 사진에 대해 이야기하고 있습니까 아니면 시장에 대해 이야기하고 있습니까?

그리고 결과를 어떻게 분석합니까, 숫자만 볼까요? 이 코드를 사용합니까?

2개의 그래프가 만들어지고 기차와 테스트에서 오류가 발생하여 네트워크가 누락된 항목과 이동 방향을 이해하는 데 사용할 수 있습니다.

그 사람이 실제 프로세스에 있음이 즉시 분명합니다))

처음에는 다음을 사용하여 표준으로 렌더링했습니다.

import matplotlib.pyplot as plt

그러나 큰 노이즈 때문에 10 에포크 후에 그래프가 수평으로 떨어집니다.
나는 이진 분류를 가지고 있으며 각 답변에서 네트워크의 신뢰도를 분석합니다. 예를 들어, 정답은 0 1이고 네트워크는 0.4 0.6을 제공합니다. 이것은 좋은 답이지만 더 자주 다음과 같습니다. 정답은 0 1이고 네트워크는 0.49 0.51을 제공합니다.
수천 개의 답변이 있을 때 신뢰도에 따라 그룹으로 나누어 분석할 수 있습니다.


 
로르샤흐 :

결과적으로 실제로 이것은 신경망이 이해하기 시작하는 M2에 대한 오늘날의 유로이지만 지금까지는 약합니다.
파란색 - 예측 상승, 노란색 - 하락.


 
예브게니 듀카 :

그 사람이 실제 프로세스에 있음이 즉시 분명합니다))

처음에는 다음을 사용하여 표준으로 렌더링했습니다.

그러나 큰 노이즈 때문에 10 에포크 후에 그래프가 수평으로 떨어집니다.
나는 이진 분류를 가지고 있으며 각 답변에서 네트워크의 신뢰도를 분석합니다. 예를 들어, 정답은 0 1이고 네트워크는 0.4 0.6을 제공합니다. 이것은 좋은 답이지만 더 자주 다음과 같습니다. 정답은 0 1이고 네트워크는 0.49 0.51을 제공합니다.
수천 개의 답변이 있을 때 신뢰도에 따라 그룹으로 나누어 분석할 수 있습니다.


손실 차트를 게시할 수 있습니까? Epoch 외에도 배치 크기를 변경해야 하며, Epoch가 많을수록 배치 크기가 작아질수록 가중치가 더 많이 변경됩니다. +- 옵티마이저에서 lerning_rate를 크기 순서대로 변경하는 것도 의미가 있습니다. 어떤 옵티마이저를 사용하고 있습니까?

 
로르샤흐 :

차트를 게시할 수 있습니까? Epoch 외에도 배치 크기를 변경해야 하며, Epoch가 많을수록 배치 크기가 작아질수록 가중치가 더 많이 변경됩니다. +- 옵티마이저에서 lerning_rate를 크기 순서대로 변경하는 것도 의미가 있습니다. 어떤 옵티마이저를 사용하고 있습니까?

그래프의 경우 자습서를 실행한 다음 ... 그러나 흥미로운 것은 없습니다. 세로로 아래로, 가로로, 교과서에서처럼 부드럽게 감소하지 않음))
Bach 128, 우리가 같은 것에 대해 이야기하고 있다면. 항상 128이어야 합니다. 이것은 TPU와 관련된 요구 사항입니다.
Epoch도 변경을 멈췄습니다. 150 이후에는 일반적으로 아무 것도 변경되지 않습니다.
옵티마이저 adam, c SGD가 작동하지 않습니다.
 
로르샤흐 :

여기 내 그리드가 있습니다. 여기에서 레이어 수를 동적으로 변경합니다.

def make_model(arr_size, lays):
  sgd = SGD(lr= 0.01 , decay= 1 e- 6 , momentum= 0.9 , nesterov=True)

  #res = 2 # количество ответов
  act = "softmax"
  #act = "sigmoid"
  #opt = sgd
  opt = 'adam'

  model = Sequential()

   if lays == 1 :
    model.add(Dense( int ((arr_size-res)*k), input_dim=(arr_size-res), activation= 'relu' ))
    model.add(Dropout(dropout))

   if lays == 2 :
    model.add(Dense( int ((arr_size-res)*k), input_dim=(arr_size-res), activation= 'relu' ))
    model.add(Dropout(dropout))
    model.add(Dense( int ((arr_size-res)* 0.5 *k), activation= 'relu' ))
    model.add(Dropout(dropout))

   if lays == 3 :
    model.add(Dense( int ((arr_size-res)*k), input_dim=(arr_size-res), activation= 'relu' ))
    model.add(Dropout(dropout))
    model.add(Dense( int ((arr_size-res)* 0.5 *k), activation= 'relu' ))
    model.add(Dropout(dropout))
    model.add(Dense( int ((arr_size-res)* 0.3 *k), activation= 'relu' ))
    model.add(Dropout(dropout))

   if lays == 4 :
    model.add(Dense( int ((arr_size-res)*k), input_dim=(arr_size-res), activation= 'relu' ))
    model.add(Dropout(dropout))
    model.add(Dense( int ((arr_size-res)* 0.7 *k), activation= 'relu' ))
    model.add(Dropout(dropout))
    model.add(Dense( int ((arr_size-res)* 0.5 *k), activation= 'relu' ))
    model.add(Dropout(dropout))
    model.add(Dense( int ((arr_size-res)* 0.3 *k), activation= 'relu' ))
    model.add(Dropout(dropout))

  #model.add(Dense( int ((arr_size-res)* 0.1 *k), activation= 'relu' ))
  #model.add(Dropout(dropout))

  model.add(Dense(res, activation=act))

   if res== 1 :
    ls= "binary_crossentropy"
   else :
    ls= "categorical_crossentropy"
  model.compile(loss=ls, optimizer=opt, metrics=[ 'accuracy' ])
   return model
 
예브게니 듀카 :

여기 내 그리드가 있습니다. 여기에서 레이어 수를 동적으로 변경합니다.

Dropout 대신 다른 것을 시도할 수 있으며 뉴런 수를 줄일 수 있습니다. 가중치의 초기화 및 정규화를 추가합니다. 입력이 어떻게 든 처리됩니까? 입력 데이터에 10배를 곱한 후 결과가 더 좋아졌습니다. 여전히 비정상성을 제거해야 하는 것처럼 보입니다.

 
로르샤흐 :

Dropout 대신 다른 것을 시도할 수 있으며 뉴런 수를 줄일 수 있습니다. 가중치의 초기화 및 정규화를 추가합니다. 입력이 어떻게든 처리됩니까? 입력 데이터에 10배를 곱한 후 결과가 더 좋아졌습니다. 여전히 비정상성을 제거해야 하는 것처럼 보입니다.

어떤 패키지도 정확한 결과를 제공하지 않습니다. 모든 NN은 위, 아래 또는 알 수 없는 확률적 예측만 발행할 수 있습니다. 가격은 신경망을 따르지 않으며 쉽게 반대할 수 있습니다. 65% 옵션은 이미 허용됩니다.

 
울라지미르 이제르스키 :

어떤 패키지도 정확한 결과를 제공하지 않습니다. 모든 NN은 위, 아래 또는 알 수 없는 확률적 예측만 발행할 수 있습니다. 가격은 신경망을 따르지 않으며 쉽게 반대할 수 있습니다. 65% 옵션은 이미 허용됩니다.

여기 56%. 파란색은 네트워크의 응답입니다. 백분율은 아무 의미가 없습니다.

여기 48%, 그 수치는 훨씬 적지만 적어도 일부 움직임이 있습니다.


 
로르샤흐 :

Dropout 대신 다른 것을 시도할 수 있으며 뉴런 수를 줄일 수 있습니다. 가중치의 초기화 및 정규화를 추가합니다. 입력이 어떻게든 처리됩니까? 입력 데이터에 10배를 곱한 후 결과가 더 좋아졌습니다. 여전히 비정상성을 제거해야 하는 것 같습니다.

예, 모든 것을 만질 필요가 있습니다. 그렇지 않으면 아무것도 아닙니다.
그것을 재생 하려고하면 매개 변수가 결과에 어떻게 영향을 미치는지 이해가 잘됩니다.
Tensorflow — Neural Network Playground
Tensorflow — Neural Network Playground
  • Daniel Smilkov and Shan Carter
  • playground.tensorflow.org
It’s a technique for building a computer program that learns from data. It is based very loosely on how we think the human brain works. First, a collection of software “neurons” are created and connected together, allowing them to send messages to each other. Next, the network is asked to solve a problem, which it attempts to do over and over...
사유: