2017-05-07 10 views
0

MATLAB 기본 피드 포워드 도구 상자의 가중치에 대한 Hinton 용지 코드의 RBM 사전 가중치를 사용하고 싶습니다. 누구나 Feedforwardnet을 위해 사전 훈련 된 웨이트를 설정하거나 조정하는 방법을 알려줄 수 있습니까? 예를 들어Hinton paper의 RBM 사전 가중치 MATLAB 기본 Feedforwardnet 도구 상자의 가중치 코드

, 내가 http://www.cs.toronto.edu/~hinton/MatlabForSciencePaper.html

에서 힌튼 코드를 사용 matlab에 feedforwardnet에 대한 사전 교육을받은 가중치를 사용합니다.

W=hintonRBMpretrained; 

net=feedforwardnet([700 300 200 30 200 300 700]); 

net.setwb(net,W); 

피드 포워드 네트 구조와 일치하도록 W를 설정하거나 배열하는 방법은 무엇입니까? 단일 벡터를 사용하는 방법을 알고 있지만 순서 또는 가중치 시퀀스가 ​​올바르지 않다고 두려워합니다.

+0

안녕하세요. 이 [how-to-ask] (http://stackoverflow.com/help/how-to-ask)를 읽고 거기에 나와있는 지침에 따라 프로그래밍을 설명하는 코드 및 오류 메시지와 같은 추가 정보로 질문을 수정하십시오. 문제. – thewaywewere

답변

0

MATLAB feedforwardnet 함수는 documentation에 설명 된대로 속성이 신경망 개체를 반환합니다.

  1. 데이터로드
  2. 네트워크
  3. 구성
  4. 는 가중치를 초기화하고
  5. 기차를 네트워크 바이어스 네트워크를 만들기를 다음과 같이 사전 훈련 무게 신경망을 만들기위한 작업 단계는

단계 1, 2, 3 및 5는 처음부터 신경망을 만들 때와 동일합니다. 간단한 예를 살펴 보자 : 이제

% 1. Load data 
load fisheriris 
meas = meas.'; 
species = species.'; 
targets = dummyvar(categorical(species)); 

% 2. Create network 
net = feedforwardnet([16, 16]); 

% 3. Configure the network 
configure(net, meas, targets) 

, 우리는 신경 네트워크가 4 개 입력 (꽃받침 잎과 꽃잎의 길이와 폭), 3 개 출력 ('setosa', '베르시'와 'virginica'와 net). 우리는 16 개의 노드를 가진 두 개의 숨겨진 레이어를 가지고 있습니다. 가중치는 두 필드 IWI에게와트 형상을 nput있다 net.IWnet.LW에 저장되고, LWL 아이어 와트 형상을 같습니다

>> net.IW 
ans = 
    3×1 cell array 

    [16×4 double] 
    [] 
    [] 

>> net.LW 
ans = 
    3×3 cell array 

       []    [] [] 
    [16×16 double]    [] [] 
       [] [3×16 double] [] 

이 처음에 혼란 이 두 셀 배열의 각 행은 우리가 가지고있는 계층 중 하나에 해당합니다.

IW 배열에서 우리는 입력과 각 레이어 사이에 가중치를가집니다. 분명히, 입력과 첫 번째 레이어 사이에 가중치 만 있습니다. 이 가중치 행렬의 모양은 4 개의 입력과 16 숨겨진 단위가 있으므로 16x4입니다. LW 어레이에서

, 우리는 가중치에서 각 층 (행) 각 층 (열)를 있다. 여기서는 첫 번째 레이어에서 두 번째 레이어까지의 가중치 행렬이 16x16이고 두 번째 레이어에서 세 번째 레이어의 가중치 행렬은 3x16입니다. 완벽한 말이 맞지?그와

, 우리는 우리가 RBM 코드에서 가지고 가중치를 초기화하는 방법을 알고 그와

net.IW{1,1} = weights_input; 
net.LW{2,1} = weights_hidden; 

, 당신은 감독 방식으로 네트워크를 훈련 5 단계, 즉 계속할 수 있습니다.

+0

응답 해 주셔서 감사합니다. 그러나 문제는 사전 훈련에서 가중치의 순서를 모른다는 것입니다. 무게가 줄어드는 색인에 있거나 두꺼운 크기가 피드 포워드 넷의 무게와 같은 위쪽 또는 왼쪽으로 뒤집힌 것이 걱정됩니다. –

+0

내가 한 것은 주문을 변경하지 않고 입력 가중치로 'vishid'를 설정하는 것입니다. –