• 締切済み

ニューラルネットワークのプログラムの翻訳

初めて質問させて頂きます。 大学の教授に、MATLABのプログラムを配られました。 そのプログラムがどういう処理を行って、何をしているのかを、何も知識のない学生に向けて発表しなければいけません。 しかし、自分もほとんど知識がなく、具体的に配られたプログラムがどういう処理を行っているのか、よくわかりません。ニューラルネットワークを使って何かをしているのはわかるのですが。 どなたかこのプログラムの意味を、何もわからない自分でもわかるように教えて頂けますでしょうか。 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%% Neural Network for Classification %%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%% clear, clf, and close %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% clear; clf; close all hidden; %%%%%%%%%%%%%% True Classfication Rule %%%%%%%%%%%%%%%%%%%%%%%%%%%% true_rule=@(x1,x2)(x1.^2+x2.^2-2); %%%%%%%%%%%%%%%%%%%%% Generate Training Data %%%%%%%%%%%%%%%%%%%%% n=50; %%%%% Number of Training samples xdata=-4*rand(2,n)+2; ydata(1,:)=0.01+0.98*(sign(true_rule(xdata(1,:),xdata(2,:)))+1)/2; %%%%%%%%%%%%%%%%%%%%% Draw Training Samples %%%%%%%%%%%%%%%%%%%% for i=1:1:n if(ydata(i)>0.5) plot(xdata(1,i),xdata(2,i),'ro'); hold on; else plot(xdata(1,i),xdata(2,i),'b*'); hold on; end end xlim([-2,2]); ylim([-2,2]); drawnow; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%% Begin Neural Network Learning %%%%%%%%%%%% neuron=@(u,ph,h)(1./(1+exp(-(u*h+ph)))); %%%%%%%%%%%%%%%%%%%%%%%% Hyperparameters %%%%%%%%%%%%% HYPERPARAMETER=0.0001; diffhyper=@(a)(HYPERPARAMETER*a); %%%%%%%%%%%%%%%%%%%%%%% Training Conditions %%%%%%%%%%%%%%%%% CYCLE=2000; %%% training cycles N=1; %%% output Units H=8; %%% hidden Units M=2; %%% input Units ETA=0.8; %%% gradient constant ALPHA=0.3; %%% accelerator EPSILON=0.01; %%% regularization %%%%%%%%%%%%%%%%%%%%%% Training Initialization %%%%%%%% u=0.1*randn(N,H); %%% weight from hidden to output w=0.1*randn(H,M); %%% weight from input to hidden ph=0.1*randn(N,1); %%% bias of output th=0.1*randn(H,1); %%% bias of hidden du=zeros(N,H); %%% gradient weight from hidden to output dw=zeros(H,M); %%% gradient weight from input to hidden dph=zeros(N,1); %%% gradient bias of output dth=zeros(H,1); %%% gradient bias of hidden %%%%%%%%%%%%%%%%%%%% Backpropagation Learning %%%%%%%%%%%% for cycle=1:1:CYCLE for i=1:1:n x=xdata(:,i); t=ydata(:,i); h=neuron(w,th,x); o=neuron(u,ph,h); %%%%%%%%%%%%%%%%%% delta calculation %%%%%%%%%%%% delta1=(o-t).*(o.*(1-o)+EPSILON); delta2=(delta1'*u)'.*(h.*(1-h)+EPSILON); %%%%%%%%%%%%%%%%%% gradient %%%%%%%%%%% du=delta1*h'+ALPHA*du; dph=delta1+ALPHA*dph; dw=delta2*x'+ALPHA*dw; dth=delta2+ALPHA*dth; %%%%%%%%%%%%%%%%%%% steepest descent %%%%%%%%%% u=u-ETA*du-diffhyper(u); ph=ph-ETA*dph; w=w-ETA*dw-diffhyper(w); th=th-ETA*dth; end end %%%%%%%%%% End Neural Network Learning %%%%%%%%%%%%%%%% %%%%%%%%%% Draw Trained Results %%%%%%%%%%%%%%%% for j=1:1:41 for k=1:1:41 xxx(1,1)=-2+(j-1)/10; xxx(2,1)=-2+(k-1)/10; testx1(j,k)=-2+(j-1)/10; testx2(j,k)=-2+(k-1)/10; h=neuron(w,th,xxx); testy(j,k)=neuron(u,ph,h); end end contour(testx1,testx2,testy,5); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

  • XML
  • 回答数1
  • ありがとう数0

みんなの回答

  • k_kota
  • ベストアンサー率19% (434/2186)
回答No.1

それはダメでしょう。 それを自分でやるのが教授の意図だし、そもそも一旦教授に聞いたらいいんじゃないですか。 パッと見ましたが全部コメント読みましたか? 英語とMATLABと両方読めないなら説明無理なので出来るようにしてください。 最低限分からない所がどこか教えてください。

関連するQ&A

  • Matlabについて質問

    制約条件付きの最大化は、どのようにプログラムを書けばいいのでしょうか? 具体的には、fortranでは、以下のように書かれているのですが、、、 (以下のページの(3.家計行動) http://www8.plala.or.jp/uemura/sim2.html を参照しています。) DOUBLE PRECISION ALPHA,BETA,PX,PY,I,X,H,MAXU,Y,U ALPHA=0.4 !α BETA=0.6 !β PX=3 !px PY=2 !py I=100 !予算 X=0 !xの初期値 H=1 !ステップ幅 MAXU=0 100 Y=(I-PX*X)/PY !予算制約 U =X**ALPHA*Y**BETA !効用関数 IF (U.GE.MAXU) THEN  MAXU = U  X = X + H  GOTO 100 END IF IF (U.LT.MAXU) THEN  X = X - H  H = H / 10  IF (H.LT..000001) GOTO 200 !収束判定  X = X + H  GOTO 100 END IF 200 WRITE(*,*) 'X*= ',X WRITE(*,*) 'Y*= ',Y WRITE(*,*) 'U*= ',U END これを実行すると、次のようになる。 X*= 13.333332999999990 Y*= 29.999999000000010 U*= 21.689437517636550

  • ニューラルネットワークの「重み」について

    「ニューラルネットワークの重みの初期値によって、学習の結果は変わることはないが、学習の進み方や速さには影響が出る」という話を聞きましたが、この知識は正しいでしょうか? (私は重みの初期値はニューラルネットワークの学習の結果にも進み方・速さにも影響があると思っているのですがいかがでしょうか?)

  • ニューラルネットワークについて

     私は今、ニューラルネットワークやDeepLearningといったものに興味があり、 その仕組みや設計方法、プログラムや使い方等を、ネットや本で調べているのですが、 どれを見てもたくさんの専門用語や複雑な数式で説明されているものがほとんどで、 それらを全く理解できないわけではないですが、詳細な解き方や、直感的な考え方の説明が 欲しいです。自分でも色々調べましたが、私が今知っていることと言えば、ニューラルネットが どんなもので、どんなことが出来て、どんな種類があるか、また、ニューロンの動作を表す数式が なんとなく理解できる程度で、そこからもっと発展した話についてはほとんど分かりません。 さらに調べていくうちに、DeepLearningや、SOINN等の、高い性能を持つニューラルネットの 存在も知り、もっと強い興味が湧いてそれらについても調べてみましたが、英語で書かれた サイトや、大学の論文と思われるものが出てくるばかりで、これについても分かっていることは、 段数の多いニューラルネットで、認識精度がとても良いということくらいです。もっと詳しく分かる ようになり、自分でも何か認識させたり、ロボットに組み込んで使うなど、色々やりたいことは あります。誰かに質問することも考えましたが、周りにいるのはロボット専門の人で、ニューラル ネットワークについて分かりやすい説明を得るのは難しいと考えました。私自身も学力があまり よくなく、どうすれば良いか分からない状態です。ニューラルネットワークやDeepLearningの 数式の詳細な解き方、ネットワークの説明を直感的で分かりやすい、詳しい設計方法等が 書かれている、サイト、書籍等をご存知でしたら、教えて頂けるととても有難いです。曖昧な 表現で分かりにくく、カテゴリが合っているかどうかもよくわからず、また、虫がいい質問である とは思いますが。よろしくお願いします。

  • ニューラルネットワークについて

    最近ニューラルネットについて勉強しています。 特に準ニュートン法での学習について考えています。 ある日手に入れたデータで学習したところ、誤差があまり小さくならなかったので(何度も学習を試し、ノイズ混入も試したので、ローカルミニマムに引っかかっている感じではないと思います)、中間層のユニット数を莫大に大きくしました(最初試したときの100倍以上です)。 しかし誤差が全然変らない、という結果が出ました。 このように、自由度を上げても学習しきらないことってあるんでしょうか。もしあるのなら、その原因は何でしょうか。また、学習しない原因となっている邪魔なデータを探す方法ってあるのでしょうか(出来れば視覚的に見えると嬉しいです)。 宜しくお願い致します。

  • ニューラルネットワークってなに?

    題名のままですがニューラルネットワークとはなんでしょうか. よく巡回セールスマンの効率的な回り方などで ニューラルネットワークとの言葉が出てきますが 調べても, 用語の説明とかはなかなか見つからなくて… 見つかっても,ちょっと難しくて… わかりやくニューラルネットワークを おしえてください!

  • ニューラルネットワーク

    0~9までの7セグメントディスプレイで表す数字を識別するニューラルネットワークを作成したいのですがなかなかわからないので質問したい所存です。 7セグメントを1~7のノードに割り振り中間層に10個のノード8~17でつなぎ出力するノードを18~27として18から0~9まで出力するようにしたいのですが、やり方としてまず、 27個のノードの結合関係を隣接行列で表す。 つぎに内部状態と重みのとる値の範囲を示す。 そしてそのニューラルネットワークに入力を与え、出力を計算する手順を説明するとのことなのですが。 よろしければアドバイス等お願いいたします。

  • (緊急)ニューラルネットワークについて

    ニューラルネットワークに関して、人間の心の働きと比較した時の問題点をいくつか教えて頂けますか?

  • ニューラルネットワークに関する本

    今回、ITと生物学との関連についての授業で、課題として、ニューラルネットワークについてのレポートを書くことになりました。そこで、参考文献を探していたのですが、プログラムに重点を置く本が多くみつかりました。 ですが、僕自身は理工系の学部ではないため理解しづらく、レポートもプログラムよりも応用面に重点を置きたいのですが、そのようなレポートを書く上で、参考となる本を教えて頂けませんでしょうか?お願いします。

  • 階層型ニューラルネットワークについて

    大学から出された課題です。 階層型ニューラルネットワークについて教えてもらえませんか? 詳細があるサイトなどあったら教えてほしいのですが。。 最終的に、 学習データ数Pの時刻tにおける重みの変化量を数式で表し、解説しなければなりません。 よろしくお願い致しますm(_ _)m

専門家に質問してみよう