Wednesday, July 13, 2016

신경망 이진 옵션






+

메타 트레이더 4 - 스택 RBM과 거래 시스템 깊은 신경망. 자기 훈련, 자기 통제는이 문서 깊은 신경망 및 예측 선택에 대한 이전 기사의 연속이다. 여기에서 우리는 누적 RBM에 의해 시작 신경 네트워크의 기능을 포함하고 darch 패키지에 구현됩니다. 신경망 예측의 성능을 개선하기위한 은닉 마르코프 모델을 사용하는 가능성이 밝혀 질 것이다. 결론적으로, 우리는 프로그램 운영 전문가 관리자를 구현합니다. 내용 DBN 2. 준비 및 데이터 2.1의 선택 1. 구조. 입력 변수 2.2. 출력 변수 2.3. 초기 데이터 프레임 2.3.1. 높은 상관 관계 변수 2.4 삭제. 가장 중요한 변수의 선택은 실험 부분을 3. 3.1. 건물 모델 3.1.1. darch 패키지 3.1.2에 대한 간략한 설명. DBN 모델을 구축. 매개 변수. 3.2. 교육 및 테스트 샘플의 형성. 3.2.1. 균형 클래스 및 전처리. 3.2.2. 3.3 변수의 슈팅이 골대를 코딩. 모델 3.3.1 훈련. 사전 교육 3.3.2. 3.4 미세 조정. 모델 테스트. etrics. 3.4.1. 디코딩 예측. 3.4.2. 이론적 인 균형 곡선 3.4.3에 예측 신호를 보정 마르코프 체인 모델 스무딩 예측 결과 교정을 향상시킬 수있다. 통계 전문가 어드바이저 4.1 4. 구조. 전문가 고문의 동작 4.2의 설명. 자기 제어 할 수 있습니다. 자기 훈련 설치 및 방법과 정 성적 지표를 개선하는 방법을 시작. 실험을 수행하기위한 데이터의 준비 결론 소개, 우리는 평가하고 예측 선택에 대한 이전 기사에서 변수를 사용합니다. 우리는 초기 샘플을 형성 청소하고 중요한 변수를 선택합니다. 우리는 교육, 테스트 및 검증 샘플로 초기 샘플을 분할하는 방법을 고려할 것입니다. darch 패키지 우리가 DBN 네트워크의 모델을 구축, 데이터의 우리의 세트에 훈련을합니다 사용. 모델을 테스트 한 후, 우리는 모델의 품질을 평가 할 수있게됩니다 통계를 얻을 것이다. 우리는 패키지가 신경 네트워크의 설정을 구성 할 수 있습니다 많은 기회를 고려할 것입니다. 또한, 우리는 숨겨진 마르코프 모델은 우리가 신경망 예측을 향상시킬 수있는 방법을 볼 수 있습니다. 우리는 모델을 지속적으로 모니터링의 결과에 따라, 무역 중단없이 즉석에서 정기적으로 훈련 될 것이다 전문가 고문을 개발할 것입니다. darch 패키지에서 DBN 모델은 Expert Advisor로 사용됩니다. 우리는 또한 전문가 관리자가 이전 기사에서 SAE DBN를 사용하여 구축 통합 할 예정이다. 또한, 우리는 방법과 모델의 질적 지표를 개선하는 방법을 나타냅니다. 누적 RBM (DN SRBM) 나는 DN SRBM은, 기본적으로, 신경 네트워크 자체를 신경 네트워크의 숨겨진 계층의 수를 동일 및 RBM n 개의 번호로 구성 리콜에 의해 초기화 깊은 신경망 1. 구조. 훈련은 두 단계를 포함한다. 첫 번째 단계는 PRE-훈련을 포함한다. 모든 RBM 체계적으로 (대상 제외) 설정 입력에 감독자없이 훈련. 숨겨진 층이 무게 후, RBM은 신경 네트워크의 관련 숨겨진 레이어로 전송됩니다. 두 번째 단계는 신경 네트워크가 감독자와 훈련 미세 조정을 포함한다. 그것에 대한 상세 정보는 이전 문서에서 제공하는, 그래서 우리는 t 여기에 자신을 반복해야 돈 하였다. 나는 단순히 우리가 이전 기사에서 사용한 deepnet 패키지는 달리, darch 패키지 모델을 건물에 넓은 기회를 구현하고 조정하는 데 도움이 언급됩니다. 모델을 만들 때 추가 사항이 제공됩니다. 무화과. (1) 구조 및 DN SRBM도 훈련 과정을 보여줍니다. DN SRBM 2. 준비 및 데이터 2.1의 선택 1. 구조. 이전 기사에서 입력 변수 (기호, 예측)이 이미 예측의 평가 및 선택을 고려, 이제 추가 정보를 제공 할 필요가 없다. 나는 단지 우리가 11 지표 (: ADX, 아룬, ATR, CCI, chaikinVolatility, CMO, MACD, RSI, 스토 흐, SMI, 변동성 모든 발진기)를 사용하는 것을 언급 할 것이다. 여러 변수는 일부 지표에서 선정되었다. 이러한 방법으로 우리는 (17)의 입력 변수의 집합을 형성했다. 들, EURUSD에 지난 6000 바에서 14.02.16에로 (30)를 인용을하고, 에서 () 함수를 사용하여 표시 값을 계산하자. 우리는 출력에 대한 입력 데이터 매트릭스를 얻을 것이다. 우리가 ZZ로 얻은 신호을 목표 변수로 2.2 출력 데이터 (목표 변수). 지그재그 및 신호 계산 기능 : -, HL을 매체 OHLCMed의 홍보 가격 행렬은 점 (4 표시) 또는 실질 지그재그 밴드의 채널 최소 길이를 인용한다 (예를 들어, 채널 0.0035) 모드 (m를 가격 적용 - 높고 낮은 CL -. 닫기), 매체 기본적으로 사용. 함수는 -1 (1)의 범위 내에서 지그재그 각도의 기준에 얻어진 사실 두 변수, 지그재그 상기 신호와 매트릭스를 반환한다. 우리는 (미래를) 왼쪽에 하나의 막대로 신호를 이동. 이러한 특정 신호는 신경 네트워크를 훈련하기 위해 사용된다. 우리는 적어도 37 점 (4 표시)의 굴곡 길이 ZZ에 대한 신호를 계산한다. 우리가 볼 수있는 바와 같이, 클래스는 약간 불균형이다. 모델 훈련을 위해 샘플을 형성 할 때, 우리는 그들을 수준으로 필요한 조치를 취할 것입니다. 2.3. 초기 데이터 프레임들, 초기 데이터 프레임을 생성 불확실한 데이터 (NA)의 청소 및 두 클래스 -1 및 1이되는 요인으로 목표 변수를 변환 함수를 작성하자. 이 기능은 이전에 ()와 ZZ () 함수를 작성 결합합니다. 우리는 즉시 모형의 예측의 품질을 평가하기 위해 사용되는 마지막 500 줄을 자르 것이다. 2.3.1. 높은 상관 관계 변수를 삭제하면 우리는 우리의 초기 설정에서 0.9 이상의 상관 계수와 변수를 삭제합니다. 우리는, 초기 데이터 프레임을 형성 높은 상관 관계 변수를 제거하고 깨끗한 데이터를 반환하는 함수를 작성합니다. 우리는 변수가 0.9 이상의 상관 관계를 사전에 확인할 수 있습니다. 따라서, 위 변수는 제거 될 수 있습니다. 우리는 데이터 프레임에서 삭제됩니다. 우리는 하나의 기능에 컴팩트를 기록합니다 : 패키지 및 연구자의 모든 저자는 높은 상관 데이터 세트에서 제거되어야 함을 동의합니다. 그러나 두 옵션을 사용하여 결과는 여기에 비교되어야한다. 우리의 경우, 우리는 삭제와 옵션을 선택합니다. 2.4. 글로벌 중요성, (함께) 지역의 중요성과별로 부분적인 중요성 : 가장 중요한 변수 중요 변수의 선택은 세 가지 지표에 따라 선택됩니다. 이전 기사에서 설명하는대로 우리는 randomUniformForest 패키지의 기회를 포착합니다. 모든 이전 및 다음 작업은 소형화를위한 하나의 기능에 수집됩니다. 실행되면, 우리는 결과로 3 세트 얻을 것이다 : 가장 기여 변수와의 상호 작용을 가지는 클래스에 가장 변수 -1과 1 급에 가장 변수. 우리는 함수 계산의 순서를 명확하게한다. 공식 파라미터 : 변수 방법은 입력 데이터 전처리에있어서 입력 데이터 파라미터 Z 출력 데이터 파라미터 컷 상관 임계치 N. 계산의 순서 : 매우 변수가 제거 상관 관계가있다 data. f의 초기 설정을 작성하고 교육의 인덱스를 확인하고 IDX의 샘플을 테스트하는 준비의 전처리 매개 변수 훈련에 초기 샘플을 분할 결정 더 사용할 수 있도록 저장하고 시험 샘플은, 입력 데이터는 가장 각 클래스 -1 한 최선 7 가장 중요한 변수를 선택 구하는 테스트 얻어진 세트에 RUF 모델 변수 기부와 상호 작용의 관점에서 10 가장 중요한 변수를 선택 imp. ruf의 중요도를 계산 규격화. buy, best. sell, 가장 좋은 예측 인자의 세 세트, best. buy와 목록을 작성 best. sell. 우리는이 샘플을 계산하고 선택한 변수, 글로벌 지역 및 부분 중요성의 가치를 평가합니다. 글로벌 중요성의 관점에서 모든 (14) 입력 변수는 동일하다. 가장 (10)는 전체 기여도 (글로벌 중요성)과 상호 작용 (현지 중요성)에 의해 정의된다. 각 클래스에 대한 부분 중요성 세븐 가장 변수는 아래 차트에 표시됩니다. 무화과. 1 클래스도에 대한 변수의 2 부분 중요성. 우리가 볼 수있는 바와 같이, -1 클래스에 대한 변수의 3 부분 중요성은, 다른 클래스의 가장 중요한 변수는 구조와 순위 모두에서 다르다. -1 클래스의 slowD 변수 인 경우 따라서, 가장 중요한 것은, 다음 1 클래스 만 제 4 위치에있다. 그래서 우리는 데이터 세트를 준비. 이제 우리는 실험을 진행할 수 있습니다. 3. 실험 부분입니다. 실험은 구체적으로는, R 언어 혁명 R 열기, 버전 3.2.2, 혁명 웹 로그 분석 회사의 유통에 실시됩니다. 재현 R 툴킷 인텔 수학 커널 라이브러리 고급 기능으로 멀티 스레드 처리 적용을 통해 신속하고보다 질적 계산 : revolutionanalytics / 회전-R-개방이 분포는 일반 R 3.2.2 이상의 장점을 가지고있다. 하나의 약간의 설명 다음 R 언어 적극적 끊임없이 기존 패키지의 개선 및 새로 추가하여 개발된다. 이러한 진보의 다른 측면은 재현성의 손실을 수반한다. 즉, 다시 몇 달을 작성하고 패키지의 다음 업데이트 후 작동이 중지 갑자기 잘 작동했다가, 당신의 제품이다. 많은 시간이 패키지 중 하나의 변화에​​ 의해 야기되는 오류를 식별하고 청산 낭비된다. 예를 들어, Expert Advisor로는 창조의 시점에서 잘 작동하던 깊은 신경 네트워크의 첫 번째 기사에 연결합니다. 그러나 몇 달은 발행 후 사용자의 숫자는 비 운용성에 대해 불평했다. 분석은 svSocket 패키지를 업데이트하는 것은 전문가 고문의 오작동을 주도 것을 보여 주었다, 나는 그 뒤에 이유를 찾을 수 없습니다. 완성 된 Expert Advisor로이 문서에 첨부됩니다. 이 문제는 가압 문제가 있으며, 그것은 쉽게 혁명 분석에 용해시켰다. 새 메일이 해제 될 때 지금의 크랑의 repositary의 모든 패키지의 상태는 거울에 복사하여 출시 날짜로 고정됩니다. 이 날짜 이후 크랑의 수탁자의 변경은 혁명의 거울에 고정 패키지에 영향을 미칠 수 있습니다. 또한 10 월 2014 년 시작, 이 회사는 매일 CRAN의 수탁자의 스냅 샷, 관련 상태를 고정 및 패키지 버전을 만든다. 자신의 체크 포인트 패키지와 함께 우리는 지금 우리가 필요로하는 일에 관련된 필요한 패키지를 업로드 할 수 있습니다. 즉, 우리는 시간 기계의 일종 동작한다. 그리고 다른 뉴스. Microsoft는 혁명의 웹 로그 분석을 구입했을 때 아홉 달 전에, 그것은 자신의 발전을 지원하기로 약속 무료로 사용할 수있는 혁명 R 열기 (RRO) 분포를 유지했다. 그것은 RRO과 혁명 R Enterpise에서 보지 못하던 상품에 대한 수많은 메시지로 하였다 (SQL 서버. PowerBI. 푸른와 Cortana Analitics와 R의 통합을 언급하지 않음). 이제 우리는 다음 RRO의 업데이트는 Microsoft R 열기를 호출 할 것이다 정보가 있습니다. 혁명 R 기업 마이크로 소프트 R 서버. 그리고 그리 오래 전 마이크로 소프트 R은 R은 Visual Studio에서 사용할 수 있다고 발표했다. 비주얼 스튜디오 (RTVS)에 대한 R 도구는 비주얼 스튜디오 모델에 대한 파이썬 도구를 다음과 같습니다. 이 스크립트를 대화식으로 편집하는 가능성 및 디버그와 R에 대한 완전한 IDE를 제공 할 것입니다 비주얼 스튜디오에 무료로 추가됩니다. 기사가 종료 된 시간으로 Microsoft R 열기 (R 3.2.3)는 이미 우리가이 버전의 패키지를 참조 할 문서에 추가 따라서, 릴리스되었습니다. 3.1. 건물 모델 3.1.1. darch 패키지 darch 버전에 대한 간략한 설명. 0.10.0 패키지는 돈 t 그냥 작성하고 모델을 학습하지만, 문자 그대로, 벽돌로 그것을 벽돌을 구축하고 환경 설정에 따라이를 조정할 수있는 다양한 기능을 제공합니다. 앞서 설명한 바와 같이, 깊은 신경망은 다수의 층으로 RBM의 N 개의 (N 계층 -1) 및 MLP 신경망 구성된다. RBM의 레이어 현명한 사전 교육을 감독자없이 포맷되지 않은 데이터를 실행한다. 신경 네트워크의 미세 조정은 형식의 데이터에 관리자로 수행된다. 트레이닝 단계를 나누면 우리 체적 각종 데이터 (그러나 구조)를 사용하여 단독 또는 이전 트레이닝에 기초하여 여러 가지 다양한 미세 조정 모델을 얻을 수있는 기회를 제공한다. 사전 훈련 및 미세 조정을위한 데이터가 동일한 경우 또한, 그 대신에 두 단계로 나누어 때문에, 한번에 훈련 할 수있다. 아니면 한편, 신경망없이 단지 RBM을 사용하여 사전 훈련을 생략하고 단지 다층 신경망을 사용하거나 할 수있다. 동시에 우리는 모든 내부 매개 변수에 액세스 할 수 있습니다. 패키지는 고급 사용자를위한 것입니다. 사전 교육 및 미세 조정 : 또한, 우리는 분할 프로세스를 분석합니다. 3.1.2. DBN 모델을 구축. 매개 변수. 우리는 훈련을 구축하고 DBN 모델을 테스트하는 과정을 설명한다. 1. 우리는 필요한 매개 변수 층으로 생성자를 사용 Darch라는 이름의 깊은 구조 개체를 만듭니다. 각 층의 층과 뉴런의 수를 나타내는 배열. 층 C (5,10,10,2) 5 뉴런 (가시), (10) 뉴런 각각 두 개의 숨겨진 층, 2 출력을 하나의 출력 층 입력 층 예를 들면 다음과 같습니다. BatchSize에서. 훈련 도중 미니 샘플의 크기입니다. FF. 빨리 감기 형식 무게, 편차 및 종료에 사용할지 여부를 나타냅니다. 빨리 감기 포맷은 압축 된 데이터의 대용량 저장을 위해 적용된다. LogLevel에. 기록 출력 레벨이 기능을 수행 할 때. GenWeightFunction. RBM 가중치 행렬을 생성하는 함수. 사용자의 활성화 기능을 사용할 수있는 기회가있다. 신경망을 미리 훈련에 사용할 축적 네트워크로 결합 RBM - 생성 된 darch 객체 (1 층)을 포함한다. 두 속성 fineTuneFunction 및 executeFunction은 미세 조정 (기본적으로 역 전파) 및 실행 (기본적으로 runDarch)에 대한 기능이 포함되어 있습니다. preTrainDArch () 및 fineTuneDArch () : 신경망 훈련하는 두 교육 기능이 수행된다. 첫 번째 함수는 대조적 발산 방법을 이용하여 관리자없이 RBM 네트워크 열차. 두 번째 기능은 신경 네트워크의 미세 조정에 대한 fineTuneFunction 속성에 표시된 함수를 사용합니다. executeOutputs가 executeOutput 속성에 속성 또는 전용 출력 층 신경망 성능 후, 각 층의 출력을 확인할 수있다. 사전 훈련 darch 객체 preTrainDArch (darch를 데이터 집합, numEpoch 1, numCD 1 trainOutputLayer F), darch 2. 기능. Darch 클래스 데이터 세트의 샘플입니다. 교육 numEpoch에 대한 데이터 세트. 훈련의 수는 numCD을 신 (新) 시대. 샘플링 반복의 수입니다. 일반적으로, 하나는 충분하다. trainRBM 함수 trainOutputLayer로 전송 될 수있는 추가 파라미터. RBM의 출력층 훈련되어야 하는지를 나타낸다 논리 값. 이 함수는 darch 오브젝트 관련 계층 신경망 훈련 가중치 및 바이어스 후 복사마다 RBM 대한 trainRBM () 트레이닝 기능을 수행한다. darch 객체 darch 3. 미세 조정 기능. Darch 클래스 데이터 세트의 샘플입니다. 트레이닝 데이터 세트 (검증을 위해 사용될 수 있음) 및 dataSetValid 테스트. 검증 numxEpoch 사용되는 데이터의 집합입니다. 훈련의 수는 부트 스트랩을 신 (新) 시대. 논리가 검증 isBin 데이터를 생성 할 때 부트 스트랩을 적용 할 필요가있다 : 출력 데이터가 논리 값으로 해석되어야 하는지를 나타낸다. 기본 FALSE으로. TRUE 경우 0.5 위의 모든 값은 1로 해석, 아래 0으로 isClass된다. 네트워크 분류에 대한 교육을받은 경우를 나타냅니다. TRUE이면 분류에 대한 통계를 결정한다. 기본적으로 TRUE. stopErr. 때문에 오류 신경망의 훈련을 중지하는 기준은 훈련 기간 동안 발생했습니다. 기본 stopClassErr으로 - Inf. 때문에 분류 오류에 신경 네트워크의 훈련을 중지하는 기준은 훈련 기간 동안 발생했습니다. 기본 stopValidErr으로 (101). 검증 데이터 에러에 의한 신경망을 정지 기준. 기본 stopValidClassErr으로 - Inf. 때문에 분류 오류에 신경 네트워크를 정지 기준은 검증하는 동안 오류가 발생했습니다. 기본적으로 (101). 트레이닝 함수로 전달 될 수있는 추가적인 파라미터. 이 함수는 darch Object의 fineTuneFunction 속성으로 저장하는 기능을 네트워크에 열차. 입력 데이터 (trainData, validData, TestData 사용)과 그들에게 속한 클래스 (targetData는 validTargets, testTargets)는 데이터 집합 또는 FF-행렬로 전송 될 수 있습니다. 검증 및 테스트를위한 데이터 및 클래스는 의무적 없습니다. 들이 제공된다면, 신경망은 이러한 데이터 세트와 함께 수행되며, 통계가 계산된다. 출력 데이터는 이진으로 해석되어야하면 isBin 특성을 나타낸다. isBin TRUE 경우 0.5 위의 모든 출력 값은 그렇지 않은 경우는 0으로, 우리는 교육이나 검증 세트에 정지 오류에 따라 훈련을위한 기준 (stopErr, stopValidErr) 또는 올바른 분류 (stopClassErr, stopValidClassErr)을 설정할 수 있습니다, 1로 해석됩니다 . 모든 함수 매개 변수에는 기본값이 있습니다. 그러나, 다른 값도 사용할 수 있습니다. 따라서, 예를 들어 : 활성화 신경 sigmoidUnitDerivati​​ve, linearUnitDerivati​​ve, softmaxUnitDerivati​​ve의 기능을 사용할 수 tanSigmoidUnitDerivati​​ve 있습니다. sigmoidUnitDerivati​​ve은 기본적으로 사용됩니다. 기본적으로 신경 네트워크의 미세 조정 역 전파의 기능, 탄력 전파 rpropagation는 네 변형 (Rprop, Rprop-, iRprop, iRprop-) 및 minimizeClassifier (이 기능이 비선형 복합체를 사용하여 Darch 네트워크 분류에 의해 훈련에서 사용할 수 있습니다 구배 법). 마지막 두 알고리즘 및 주제에 대한 깊은 지식을 가지고 사람들을 위해, 자신의 여러 매개 변수의 구성과 신경망의 미세 조정 별도의 구현을 제공한다. 예를 들어 교육 targetData에 설정된 교육 trainData 입력 데이터에 대한 darch darch 객체는 트레이닝 세트 방법 교육 방법의 출력을 예상했다. 기본적으로 iRprop. Rprop, Rprop-는 훈련을 위해 요인을 감소 할 수 decFact iRprop - 있습니다. 기본 incFact 0.5은 - 훈련을 위해 요인을 증가시킨다. 기본 weightDecay 1.2은 교육에 무게를 감소. 업데이트에서 기본 initDelta 초기화 값으로 0. 스텝 크기에 대한 기본 minDelta 최소 경계로 0.0125. 기본적으로 0.000001은 스텝 사이즈에 대해 상부 테두리 maxDelta. 기본적으로 50. 이 함수는 훈련 된 신경 네트워크와 darch-개체를 반환합니다. 3.2. 교육 및 테스트 샘플의 형성. 우리는 이미 데이터의 초기 샘플을 형성했다. 이제, 우리는 검증 및 샘플 테스트, 교육으로 나눌 필요가있다. 기본적으로 비율은 2/3이다. 다양한 패키지 샘플을 분할하는 데 사용되는 많은 기능을 가지고 있습니다. 나는 rminer : (홀드 아웃) 훈련에 초기 샘플을 분해 및 샘플을 테스트하기 위해 인덱스를 계산 사용합니다. Y 원하는 목표 변수, 수치 벡터 또는 요소는, 이 경우, 성층 분리 분리의 비율이 비 (클래스 사이, 즉 비율이 모든 부분에 대해 동일) 적용된다 (백분율 트레이닝 샘플의 크기가 설정되거나에서 TRUE 후 훈련 데이터가 다시 한번 훈련 및 검증 샘플로 분리되면 시험 샘플의 크기가 설정되어 샘플의 총 수) internalsplit. 같은 비율은 내부 분리 모드 샘플링 모드에 적용된다. 사용 가능한 옵션 : 층화 층화 무작위 부문의 첫 번째 예는 훈련을 위해 사용되며, 테스트를 위해 남아있는 사람이 (널리 시간 시리즈에 적용) (인자 그렇지 않으면 표준 랜덤 부문의 경우) 임의의 표준 임의 분할 위해 정적 모드, 더 일반적으로 알려진 창을 압연 압연 (널리 주식 및 금융 시장의 예측에 적용) 슬라이딩 윈도우, 유사 순서와. 그 창은 창 크기, ITER 압연 반복 및 샘플의 증가 수를 나타냅니다 제외하고 창마다 반복 앞으로 슬라이드. 시험 샘플은 마지막 반복 (여기서 덜 수)를 제외하고, 비에 해당하는 동안 각 반복에 대한 트레이닝 샘플의 크기는 윈도우로 고정된다. 해당 창을 제외하고 순서와 동일 또한 증가 창으로 알려진 재 훈련의 점진적 증가 모드는, 초기 창 크기, ITER 증가 반복 모든 반복에 추가 예제 증가 번호입니다. 테스트 세트의 크기가 작게 될 수있는 마지막 반복을 제외하고, 비에 해당하는 반면, 트레이닝 샘플의 크기는 모든 반복에서 (증가)을 성장한다. 재 훈련의 증분 모드의 반복 ITER 번호 (모드 압연 또는 증분가 ITER는 일반적으로 루프에서 설정된 경우에만 사용). NULL, 다음 랜덤 시드를 사용하는 경우 씨앗, 그렇지 않으면 씨는 창 훈련 창의 크기 (있는 경우 모드 압연) 또는 교육 윈도우의 초기 크기의 (경우 모드 증분) 증가 수를 (더 계산이 항상 같은 결과가 반환됩니다) 고정 모든 반복에 훈련 창에 추가 예 (모드 증분 또는 모드 압연 경우). 3.2.1. 균형 클래스 및 전처리. 우리는 높은 숫자를 향해 샘플 (필요한 경우) 클래스의 수를 정렬 교육 및 테스트 샘플로 샘플을 분할, 사전 처리를 수행하는 함수 쓰기 (정규화, 필요한 경우) 및 관련 샘플 목록을 반환합니다 테스트를 양성. 균형을 달성하기 위해, 우리는 캐럿 :: 업 샘플링 () 함수 클래스 분포가 동일하고, 임의로 교체로 촬영 한 샘플을 추가 사용하는 것입니다. 나는 모든 연구자가 필요한 클래스의 균형을 찾을 수 있다고한다. 그러나, 이미 알려진 바와 같이, 연습은 진리의 기준이며, 내 여러 실험의 결과는 균형 잡힌 샘플이 항상 훈련에 더 나은 결과를 보여줄 것으로 나타났다. 그것은 아무튼 있지만 t는 우리 자신에 실험을 우리를 중지합니다. 사전 처리를 위해 우리는 캐럿 :: 전처리 () 함수를 사용합니다. 전처리의 매개 변수는 prepr 변수에 저장됩니다. 우리가 이미 고려 이전 기사를 적용했기 때문에, 나는 여기에 더 설명을 제공하지 않습니다. 사전 처리에 관한 한 의견은 : 입력 변수의 범위로 정규화됩니다 (-1, 1). 3.2.2. 분류 작업을 풀 때 목표 가변 부호화 대상 변수는 여러 가지 레벨 (등급)가있는 요소이다. 모델의 그것 이후의 대상 상태로 구성되는 벡터 (열)으로 설정된다. 예를 들어, Y (1, 1, 2, 3, 1). 신경 네트워크를 훈련하기 위해, 목표 변수 부호화해야 클래스의 수와 동일한 컬럼의 수와 매트릭스로 (변환). 이 행렬의 각 행에서 단지 하나의 열 출력 층의 softmax를 ()의 활성화 기능을 이용하여 함께 (1) 이러한 변화를 포함 할 수 있으며, 각 클래스에서 예상되는 목표 변수의 상태 확률을 획득 할 수있다. classvec2classmat () 함수는 부호화시에 사용된다. 하지이 유일한 또는 목표 변수를 코딩하기위한 최선의 방법이지만 간단하기 때문에 우리는 그것을 사용한다. 대상 변수의 예측 값의 역 변환 (디코딩) 우리가 곧 다루려고 다른 방법을 통해 달성된다. 3.3. 모델 3.3.1 훈련. 위에서 언급 한 바와 같이 사전 훈련은, 첫째, 우리는 DArch라는 이름의 깊은 구조 개체를 만듭니다. 즉, 기본적으로 예비 훈련의 파라미터를 가지는 RBM 필요한 수의, 그리고 기본적으로 설정 임의의 무게와 신경 세포 활성화 기능을 시작 신경망을 포함한다. 필요한 경우 개체 생성 단계에서, 사전에 트레이닝 파라미터는 변경 될 수있다. 그 후, RBM 네트워크는 출력 (목표 변수)없이 트레이닝 샘플을 보냄으로써 감독없이 사전 훈련한다. 이 완료되면, 우리는 RBM 훈련 동안 얻은 무게와 편견이 신경 네트워크로 전송됩니다 D의 RCH를 얻을. 우리는 (예를 들어) 벡터의 형태로 미리 레이어 숨겨진 뉴런의 분포를 설정한다 : 입력 층 뉴런의 수의 입력 변수의 개수와 동일. 두 숨겨진 레이어 (50) 뉴런 각을 포함, 출력 층이있을 것이다. 내가 마지막 비트를 설명 할 수 있습니다. 목표 변수 (인자)는 두 레벨 (등급)를 갖는 경우, 사실상 하나의 출력은 충분하다. 그러나 두 개의 열, 이들 각각은 하나의 클래스에 대응하는 행렬로 변환하는 벡터, 우리 출력층으로 분류 작업에서 잘 동작 softmax를 활성화 함수를 적용 할 수있다. 또한, 클래스 확률의 형태로 출력이 우리에게 결과의 후속 분석에서 추가 기회를 제공합니다. 이 주제는 곧 적용됩니다. 에포크의 개수는 트레이닝은 일반적으로 10 ~ 50의 범위 내에서 실험적으로 설정 될 때. 샘플링 반복의 수는 기본적으로 남아있을 것입니다 만, 이 매개 변수는 실험하고자하는 경우 증가 될 수있다. 이는 별도의 함수로 정의된다 : 3.3.2. 전술 한 바와 같이 미세 조정은, 패키지는 미세 조정에 대한 역 전파 ()를, rpropagation (), minimizeClassifier (), minimizeAutoencoder () 제공합니다. 마지막 두가 t가 충분히 패키지에 설명되지 않기 때문에, 고려 및 적용하는 방법에는 예는 없다 할 원. 내 실험에서 이러한 기능은 t 좋은 결과를 보여 didn를. 또한 패키지 업데이트에 대해 뭔가를 추가하고 싶습니다. 이 글을 쓰기 시작했을 때, 현재의 버전은 0.9이고, 순간하여 여러 변경 사항을 포함하는 새로운 0.10 버전이 출시되었다, 완료했다. 모든 계산은 재실행했다. 짧은 테스트의 결과에 기초하여, I는 동작 속도를 상당히 (사용자 후 패키지보다 결함있는) 결과 품질 달리 증가했음을 알 수있다. 의 두 최초의 기능을 살펴 보자. 첫 번째 (역 전파는) 여기에 제공된 훈련 신경 네트워크 매개 변수를 D의 RCH 개체에서 기본적으로 설정하고 사용합니다. 두 번째 기능 (rpropagation)도 기본 매개 변수 기본적으로 iRprop 네 개의 훈련 방법 (전술)을 갖습니다. 당신은 확실히 매개 변수와 교육 방법을 모두 변경할 수 있습니다. 이러한 기능을 쉽게 적용 할 수 있습니다 : (필요한 경우) 우리가 설정해야합니다 설정을 조정 미세 또한 모든 계층에서 신경 세포를 활성화하는 기능을 FineTuneDarch ()의 미세 조정 기능을 변경합니다. 우리는 sigmoidUnit 기본적으로 모든 레이어에 설정되어 있는지 알고있다. 그것은 패키지 sigmoidUnitDerivati​​ve, linearUnitDerivati​​ve, tanSigmoidUnitDerivati​​ve에서 사용할 수 있습니다, softmaxUnitDerivati​​ve 국지적 인 미세 조정은 미세 조정 기능을 선택할 수있는 능력을 가진 별도의 함수로 정의 될 줘야 해. 우리는 별도의 목록에서 활성화 가능한 기능을 수집합니다 : 첫 번째, 두 번째 rpropagation과 함께 역 전파 기능을 사용하여 훈련 : 함수의 형식 매개 변수에 대한 몇 가지 사항에 우리는 훈련이 신경 네트워크를 생성하는 미세 조정 기능을 작성합니다. 변형 - 미세 조정 기능의 선택 (1 역 전파 2 rpropagation.). dbnin는 - 영수증의 모델은 사전 훈련의 결과. DS - 미세 조정 (와 DataSet)에 대한 데이터 세트. HD - 신경망의 숨겨진 레이어에서 샘플링 계수 (hiddenDropout). 아이디 - 신경망의 입력 층에서 샘플링 계수 (inputDropout). 행동 - 신경 네트워크의 모든 계층에서 신경 세포 활성화 기능의 표시 벡터. 벡터의 길이는 층의 수 이상의 단위 짧다. NE - 교육 시대의 수입니다. 이 버전의 등장 새로운 본질을 데이터 집합. 나는 t 정말 그 모습 뒤에 이유를 이해 돈. 일반적으로, 언어 쌍 (X, Y) 또는 식 (Y 데이터)을 사용하여 모델의 변수를 전송하는 방법에는 두 가지가있다. 이러한 본질의 모양은 t의 품질을 향상 아무튼, 대신 사용자를 혼란. 그러나 저자는 나에게 알 수없는 그의 이유가있을 수 있습니다. 3.4. 모델 테스트. etrics. 훈련 모델을 테스트하는 테스트 샘플에 대해 수행된다. 형식적인 정확성과 질적 K. 은 관련 정보는 아래에 제공됩니다 : 그것은 우리가이 통계를 계산하는 것이다 고려되어야한다. 이를 위해, 우리는 데이터의 두 개의 서로 다른 샘플이 필요합니다, 나는 왜 당신에게 설명합니다. 정확도를 계산하기 위해 우리는 이전부터 기억하고, 가장 빈번 마지막 막대에 정의되어 있지 않은 대상 변수의 값 및 지그재그 필요하다. 따라서, 정확도를 계산하기위한 테스트 샘플은 우리가 prepareTrain () 함수를 결정하며, 질적 지표에 대해 우리는 모델이 역사의 마지막 500 줄에 테스트 할 다음 함수를 사용합니다. 실제 테스트, testAcc ()와 testBal를 들어 () 적용됩니다. 첫 번째 기능은 액세서리와 가능한 추가 분석을 위해 대상 변수 값 (실제 또는 예상)을 반환합니다. 두 번째 함수는 시그 EA, 이들 신호 (BAL)에 기초하여 얻어진 보정을위한 예측 된 신호를 리턴 품질 계수 (). 시험 영역 (의 Kmax)과 같은 지역의 최대 삭감 (일)에이 계수의 최대 값. 균형을 계산할 때, 최종 예측 신호 t 단, 따라서, 계산에서 삭제해야 형성된 hasn 미래 바 지칭 것을 기억하는 것이 중요하다. 우리는 오른쪽으로 한 줄에 의해 시그 벡터를 이동하여 수행하고있다. 3.4.1. 디코딩 예측. 얻어진 결과는 WTA 방법을 사용하여 (벡터에 행렬 변환) 디코딩 될 수있다. 클래스는 확률의 최대 값과 열 번호와 동일하고, 이 확률의 값이 임계 값은 클래스가 결정되지 않은 아래에 설정 될 수있다. 임계 값을 0.5로 설정하고, 열에 가장 확률이 임계 값 미만인 경우, 우리는 별도의 클래스를 얻을 것이다 (정의 생략). 정확도와 같은 메트릭을 계산할 때를 고려한다. 3.4.2. 예측 결과를 향상하면 적용 할 수있는 세 가지 방법이있다 수신 후 가능한 예측 결과를 향상시키는 것이다. 실제 데이터와 가장 정확한 호환성을 줄 가능성 범위의 교정 교정 ISA 계산. 이를 위해, CORElearn 패키지에 특별한 기능이있다 : correctClass 방법과 같은 길이의 예측 클래스 1 (확률)에 문제 분류 predictedProb 벡터의 클래스의 올바른 레이블 correctClass 벡터는 다음 (isoReg, binIsoReg 중 하나 , 비닝 (binning), mdlMerge).




No comments:

Post a Comment