거래에서 신경망 사용 - 페이지 39

 

'개척자'가 없는 것이 안타깝습니다. 파헤칠게...

 
나는 푸리에와 유사한 하틀리 변환을 시도했습니다. 나는 "과거"로 시간 이동된 직사각형 창 기능을 사용하도록 작업을 설정했습니다. 결과 벡터를 구성요소로 분해하고 이를 사용하여 NN을 입력합니다. 예측으로 - 스펙트럼 구성 요소의 변화와 역변환. 예측 스펙트럼의 결과 역변환이 지표에 사용되었습니다. 여기 에서 더 자세히 설명합니다.
 

흥미로운 기사를 읽었습니다.

나는 뇌를 신경망으로 구성하는 원리에 관심이 있었습니다. 먼저, 품질에 많은 관심을 기울이지 않고 많은 종류의 연결이 수집된 다음 "우리는 모든 것을 제거합니다."라는 원칙에 따라 선택이 시작됩니다. 결과를 달성하는 데 필요하지 않습니다."

그러한 접근 방식이 오버트레이닝과 말하자면 "구조적 불충분함"과 싸우는 데 도움이 될 가능성이 큽니다.

이와 관련하여 질문은 NS 이론에서 유사한 원리에 대한 연구를 접한 사람이 있다는 것입니다.

 
alsu :

흥미로운 기사를 읽었습니다.

나는 뇌를 신경망으로 구성하는 원리에 관심이 있었습니다. 먼저, 품질에 많은 관심을 기울이지 않고 많은 종류의 연결이 수집된 다음 "우리는 모든 것을 제거합니다."라는 원칙에 따라 선택이 시작됩니다. 결과를 달성하는 데 필요하지 않습니다."

그러한 접근 방식이 오버트레이닝과 말하자면 "구조적 불충분함"과 싸우는 데 도움이 될 가능성이 큽니다.

이와 관련하여 질문은 NS 이론에서 유사한 원리에 대한 연구를 접한 사람이 있다는 것입니다.

나는 계수에서 작은 절대값이 발견되었을 때 "네트워크 얇아짐"이 있는 것을 보았습니다.

그러나 수십 번, 그리고 기본 원칙으로 "크고 매우 큰 초과 다음 감소" - 나는 이것을 보지 못했습니다. 당신은 휘젓고 싶습니까?

내가 관심. 컴퓨팅 리소스만으로는 충분하지 않습니다. // GPU를 적용하는 방법을 상상할 수 없습니다. 동일한 유형의 체계만 계산하는 것이 좋지만 여기서는 매번 다른 네트워크 토폴로지를 계산하는 것이 좋습니다.

 

MetaDriver :

당신은 휘젓고 싶습니까?

원하다. 그러나 지금은 다음과 같이 생각합니다. 어떤 축소 알고리즘을 사용할지 이해하려면 신중하게 생각해야 합니다. 첫 번째 아이디어는 실제로 절대값 에 의한 데시메이션이며 이미 제시된 예제의 수에 따라 임계값을 설정합니다. 훈련 샘플이 클수록 연결을 유지하기가 더 어려워집니다.

 
MetaDriver :
GPU를 적용하는 방법을 상상할 수 없습니다. 거기에서 동일한 유형의 체계만 계산하는 것이 유리하지만 여기서는 매번 다른 네트워크 토폴로지를 계산합니다.
동일한 유형 및 구현된 하드웨어. 병렬 컴퓨팅 의 효율성은 일반적으로 크게 과장되어 있습니다. 사실(실제 계산이 있으며 박사 과정도 이 문제에 대해 옹호됩니다) 일반적인 경우에는 순차 계산보다 훨씬 느립니다. 그 이유는 데이터 전송에 소요되는 시간입니다.
 
alsu :
동일한 유형 및 구현된 하드웨어. 병렬 컴퓨팅의 효율성은 일반적으로 크게 과장되어 있습니다. 사실(실제 계산이 있으며 박사 과정도 이 문제에 대해 옹호됩니다) 일반적인 경우에는 순차 계산보다 훨씬 느립니다. 그 이유는 데이터 전송에 소요되는 시간입니다.

바로 동의할 수 없습니다. 세부 사항을 잘 이해하면 GPU에서 일부 작업에서 수백 배 더 높은 발사 속도를 짜낼 수 있습니다. 따라서 방대한 계산을 통해 문제를 매우 " 일부" 의 범주로 줄이려고 노력하는 것이 항상 의미가 있습니다. 그것이 효과가 있다면, 그 결과는 엄청날 수 있습니다. 그렇지 않은 경우 아니오 - 기존 프로세서에서 순차적으로 계산합니다.

--

예를 들어, 동일한 유형의(동일한 토폴로지를 사용하는) 많은 훈련 예제가 있는 신경망의 유전자 최적화는 매우 유용합니다(발사 속도가 수십, 수백 배 더 큼). 유일한 문제는 각 토폴로지에 새로운 OpenCL 프로그램 이 필요하다는 것입니다. 이것은 기본 ocl 템플릿을 구성하고 주어진 토폴로지에 대해 자동으로(프로그래밍 방식으로) 새 ocl 프로그램을 생성함으로써 해결됩니다.

여기, 그런데. 위의 내용을 작성하는 동안 GPU에 유익한 계산 클래스로 문제를 줄이는 방법에 대한 아이디어가 떠올랐습니다. 이렇게 하려면 단계적으로 축소를 수행해야 합니다. 각 단계 내에서 하나의 OCL 프로그램을 사용하여 모든 것을 계산하지만 계수를 재설정하여 축소를 수행합니다(본질적으로 시뮬레이션). 그리고 새 단계의 경우 이전 단계의 축소가 이미 프로그램에 "기록"된 새 프로그램을 생성하십시오. 등. 그러나 이것은 유전자 "훈련"을 사용하는 경우입니다.

 
MetaDriver :
바로 동의할 수 없습니다. 세부 사항을 잘 이해하면 GPU에서 일부 작업에서 수백 배 더 높은 발사 속도를 짜낼 수 있습니다. 따라서 방대한 계산을 통해 문제를 매우 " 일부" 의 범주로 줄이려고 노력하는 것이 항상 의미가 있습니다. 그것이 효과가 있다면, 그 결과는 엄청날 수 있습니다. 그렇지 않은 경우 아니오 - 기존 프로세서에서 순차적으로 계산합니다.

내가 기억하는 한 중요한 것은 병렬 처리된 작업 의 실행 시간과 메인 루프에서 병렬 처리되지 않은 작업(데이터 준비, 데이터 전송)의 실행 시간 비율이며, 병렬 처리가 높을수록 이에 대한 요구 사항이 더 엄격해집니다. 비율. 따라서 알고리즘을 '병렬-필릭(parallel-philic)'으로 축소하는 노력뿐만 아니라 병렬이 아닌 부분을 최소화하는 노력도 필요하다.

예를 들어, 현재 유행하는(그리고 상위 5개에서 구현된) 클라우드 컴퓨팅에서는 전송 시간 때문에 상금에 대한 제한이 매우 심각합니다. 그러나 공정하게 말하면 클라우드 네트워크가 최소한 수십 퍼센트 로드될 때만 나타날 것입니다.

글쎄요, 이제 그것에 대해 이야기하지 않겠습니다. 이 작업에서 병렬 처리는 거의 이루어지지 않을 것입니다.

 
MetaDriver : // 유일한 문제는 각 토폴로지에 새로운 OpenCL 프로그램이 필요하다는 것입니다. 이것은 기본 ocl 템플릿을 구성하고 주어진 토폴로지에 대해 자동으로(프로그래밍 방식으로) 새 ocl 프로그램을 생성함으로써 해결됩니다.


병렬 처리는 작동하지 않습니다. 템플릿은 서로 순차적으로 의존하므로 사전에 모두 생성해야 하지만 그 다음에는 수조 개의 템플릿이 있을 것이고 우리는 현재 올바른 템플릿을 찾는 데 대부분의 시간을 할애할 것입니다)
 
alsu :

병렬 처리는 작동하지 않습니다. 템플릿은 서로 순차적으로 의존하므로 사전에 모두 생성해야 하지만 그 다음에는 수조 개의 템플릿이 있을 것이고 우리는 현재 올바른 템플릿을 찾는 데 대부분의 시간을 할애할 것입니다)
사실이 아니다. 동일한 유형의 신경망에 대해 수행했습니다. 코드 생성기를 보낼 수도 있습니다. 질문은 다릅니다. 작업을 수익성 있는 클래스로 줄이는 방법입니다. 이전 게시물을 다시 읽으십시오 - 거기에 추가했습니다.

알겠습니다. 요약하겠습니다.

여기, 그런데. 위의 내용을 작성하는 동안 GPU에 유익한 계산 클래스로 문제를 줄이는 방법에 대한 아이디어가 떠올랐습니다. 이렇게 하려면 단계적으로 축소를 수행해야 합니다. 각 단계 내에서 하나의 OCL 프로그램을 사용하여 모든 것을 계산하지만 계수를 재설정하여 축소를 수행합니다(본질적으로 시뮬레이션). 그리고 새 단계의 경우 이전 단계의 축소가 이미 프로그램에 "기록"된 새 프로그램을 생성하십시오. 등. 그러나 이것은 유전자 "훈련"을 사용하는 경우입니다.